diff --git a/packages/cocos-cli-types/__tests__/__snapshots__/dts-snapshot.test.ts.snap b/packages/cocos-cli-types/__tests__/__snapshots__/dts-snapshot.test.ts.snap index bc2603f57..1e5b62036 100644 --- a/packages/cocos-cli-types/__tests__/__snapshots__/dts-snapshot.test.ts.snap +++ b/packages/cocos-cli-types/__tests__/__snapshots__/dts-snapshot.test.ts.snap @@ -5306,2156 +5306,2225 @@ export { } " `; -exports[`DTS API compatibility cli.d.ts should match snapshot 1`] = ` -"import type { Component } from 'cc'; -import type { Node as Node_2 } from 'cc'; -import type { Scene } from 'cc'; -import type { Vec3 as Vec3_2 } from 'cc'; -export declare interface AnimationClipAssetUserData { - name: string; +exports[`DTS API compatibility configuration.d.ts should match snapshot 1`] = ` +"import { EventEmitter } from 'events'; +export declare type ConfigurationScope = 'default' | 'project'; +export declare type EventEmitterMethods = Pick; +export declare function get(key: string, scope?: ConfigurationScope): Promise; +export declare function getConfigPath(): Promise; +export declare function getMetadata(): Promise; +export declare interface IBaseConfiguration extends EventEmitterMethods { + moduleName: string; + getDefaultConfig(): Record | undefined; + mergeDefaultConfig(defaultConfig?: Record): void; + get(key?: string, scope?: ConfigurationScope): Promise; + getAll(scope?: ConfigurationScope): Record | undefined; + set(key: string, value: T, scope?: ConfigurationScope): Promise; + remove(key: string, scope?: ConfigurationScope): Promise; + save(): Promise; } -export declare type AnimationEditorType = 'scene' | 'prefab' | 'unknown'; -export declare interface AnimationImportSetting { - name: string; - duration: number; - fps: number; - splits: Array<{ - previousId?: string; - name: string; - from: number; - to: number; - fps?: number; - speed?: number; - wrapMode?: number; - auxiliaryCurves?: Record< - string, - { - curve: unknown; - } - >; - additive?: { - enabled: boolean; - refClip?: string; - }; - }>; +export declare interface ICocosConfigurationNode { + id: string; + title: string; + group: string; + order?: number; + properties: Record; } -export declare type AnimationMode = 'general' | 'prefab' | 'animation' | 'preview' | 'unknown'; -export declare type AnimationPlayOperation = 'play' | 'pause' | 'resume' | 'stop'; -export declare type AnimationPlayState_2 = 'stop' | 'playing' | 'pause'; -export declare const ASSET_HANDLER_TYPES: string[]; -export declare type AssetHandlerType = typeof ASSET_HANDLER_TYPES[number] | 'database'; -export declare interface AssetUserDataMap { - 'animation-clip': AnimationClipAssetUserData; - 'auto-atlas': AutoAtlasAssetUserData; - 'label-atlas': LabelAtlasAssetUserData; - 'render-texture': RenderTextureAssetUserData; - 'directory': DirectoryAssetUserData; - 'texture-cube': TextureCubeAssetUserData; - 'erp-texture-cube': TextureCubeAssetUserData; - 'image': ImageAssetUserData; - 'sprite-frame': SpriteFrameAssetUserData; - 'texture': Texture2DAssetUserData; - 'spine-data': SpineAssetUserData; - 'javascript': JavaScriptAssetUserData; - 'gltf-animation': GltfAnimationAssetUserData; - 'particle': ParticleAssetUserData; - 'json': JsonAssetUserData; - 'prefab': PrefabAssetUserData; - 'scene': PrefabAssetUserData; - 'effect': EffectAssetUserData; - 'audio-clip': AudioClipAssetUserData; - 'bitmap-font': BitmapFontAssetUserData; - 'gltf-skeleton': GltfSkeletonAssetUserData; - 'gltf-embeded-image': GltfEmbededImageAssetUserData; - 'gltf-mesh': IVirtualAssetUserData; - 'gltf-material': IVirtualAssetUserData; - 'gltf-scene': IVirtualAssetUserData; - 'gltf': GlTFUserData; - 'fbx': GlTFUserData; - 'sprite-atlas': SpriteAtlasAssetUserData; - 'rt-sprite-frame': RtSpriteFrameAssetUserData; - 'sign-image': ImageAssetUserData; - 'alpha-image': ImageAssetUserData; - 'unknown': any; +export declare interface ICocosConfigurationPropertySchema { + type: 'string' | 'number' | 'boolean' | 'object' | 'array'; + default?: unknown; + title?: string; + description?: string; + enum?: Array; + enumDescriptions?: string[]; + minimum?: number; + maximum?: number; + step?: number; + order?: number; + properties?: Record; + items?: ICocosConfigurationPropertySchema | ICocosConfigurationPropertySchema[]; + additionalProperties?: boolean | ICocosConfigurationPropertySchema; + required?: string[]; + ui?: 'asset-picker' | string; + assetType?: string; + valueField?: string; + displayFields?: string[]; + query?: Record; } -export declare interface AudioClipAssetUserData { - downloadMode: number; +export declare interface IConfiguration { + [key: string]: any; } -export declare interface AutoAtlasAssetUserData { - compressed: boolean; - dest: any; - maxWidth: number; - maxHeight: number; - padding: number; - allowRotation: boolean; - forceSquared: boolean; - powerOfTwo: boolean; - algorithm: string; - format: string; - quality: number; - contourBleed: boolean; - paddingBleed: boolean; - filterUnused: boolean; - removeTextureInBundle: boolean; - removeImageInBundle: boolean; - removeSpriteAtlasInBundle: boolean; - platformSettings: any; - textureSetting: any; +export declare function init(projectPath: string): Promise; +export declare function migrate(): Promise; +export declare function migrateFromProject(): Promise; +export declare function onDidSave(callback: () => void): () => void; +export declare function reload(): Promise; +export declare function remove(key: string, scope?: ConfigurationScope): Promise; +export declare function save(force?: boolean): Promise; +export declare function set(key: string, value: T, scope?: ConfigurationScope): Promise; +export { } +" +`; + +exports[`DTS API compatibility engine.d.ts should match snapshot 1`] = ` +"import { __private } from 'cc'; +export declare interface BaseItem { + label?: string; + description?: string; + default: boolean; + readonly?: boolean; + hidden?: boolean; + category?: string; + required?: boolean; + dependencies?: string[]; } -export declare interface BitmapFontAssetUserData { - _fntConfig: any; - fontSize: number; - textureUuid: string; +export declare interface CategoryDetail extends CategoryInfo { + modules: IModules; } -export declare const CREATE_TYPES: readonly ["scene", "prefab"]; -export declare interface DirectoryAssetUserData { - isBundle?: boolean; - bundleConfigID?: string; - bundleName?: string; - priority?: number; +export declare interface CategoryInfo { + label?: string; + description?: string; + checkable?: boolean; + required?: boolean; } -export declare interface EffectAssetUserData { - combinations?: any; - editor?: any; +export declare interface CCEModuleConfig { + description: string; + main: string; + types: string; } -export declare type Filter = 'none' | 'nearest' | 'linear'; -export declare interface FntData { - commonHeight?: number; - fontSize?: number; - atlasName?: string; - fontDefDictionary?: FontDefDictionary; - kerningDict?: KerningDict; +export declare type CCEModuleMap = { + [moduleName: string]: CCEModuleConfig; +} & { + mapLocation: string; +}; +export declare interface EngineInfo { + typescript: { + type: 'builtin' | 'custom'; + builtin: string, + path: string; + }, + native: { + type: 'builtin' | 'custom'; + builtin: string, + path: string; + }, + tmpDir: string; + version: string; } -export declare interface FontDef { - rect: { - x: number; - y: number; - width: number; - height: number; - }; - xOffset: number; - yOffset: number; - xAdvance: number; +export declare interface Features { + [feature: string]: IModuleItem; } -export declare interface FontDefDictionary { - [charId: number]: FontDef; +export declare function getConfig(useDefault?: boolean): Promise; +export declare function getInfo(): Promise; +export declare function getRenderConfig(): Promise; +export declare interface IChunkContent { + skeleton: null | string; + clips: string[]; } -export declare class GlobalEventManager { - on>(event: keyof TEvents, listener: TEvents[keyof TEvents] extends void ? () => void : (payload: TEvents[keyof TEvents]) => void): void; - on(event: string, listener: (...args: any[]) => void): void; - once>(event: keyof TEvents, listener: TEvents[keyof TEvents] extends void ? () => void : (payload: TEvents[keyof TEvents]) => void): void; - once(event: string, listener: (...args: any[]) => void): void; - off>(event: keyof TEvents, listener: TEvents[keyof TEvents] extends void ? () => void : (payload: TEvents[keyof TEvents]) => void): void; - off(event: string, listener: (...args: any[]) => void): void; - emit>(event: keyof TEvents, ...args: TEvents[keyof TEvents]): void; - emit(event: string, ...args: any[]): void; - broadcast>(event: keyof TEvents, ...args: TEvents[keyof TEvents]): void; - broadcast(event: string, ...args: any[]): void; - clear(event?: string): void; +export declare interface ICollisionMatrix { + [x: string]: number; } -export declare interface GltfAnimationAssetUserData { - gltfIndex: number; - events: Array<{ - frame: number; - func: string; - params: string[]; - }>; - editorExtras?: unknown; - embeddedPlayers?: Array<{ - editorExtras?: unknown; - begin: number; - end: number; - reconciledSpeed: boolean; - playable: - | { - type: 'animation-clip'; - path: string; - clip: string; - } - | { - type: 'particle-system'; - path: string; - }; - }>; - auxiliaryCurves?: Record; - wrapMode: number; - speed?: number; - sample?: number; - span?: { - from: number; - to: number; - }; - additive?: any; -} -export declare interface GltfEmbededImageAssetUserData extends IVirtualAssetUserData { - fixAlphaTransparencyArtifacts?: boolean; +export declare type ICroppingConfig = { + name: string; + flags: IFlags_2, + includeModules: string[], + noDeprecatedFeatures: ICroppingConfigDeprecatedFeature; + moduleToFallBack?: Record; } -export declare type GltfpackOptions = Record; -export declare interface GltfSkeletonAssetUserData extends IVirtualAssetUserData { - jointsLength?: number; +export declare type ICroppingConfigDeprecatedFeature = { + value: boolean, + version: string +}; +export declare interface ICustomJointTextureLayout { + textureLength: number; + contents: IChunkContent[]; } -export declare interface GlTFUserData { - assetFinder?: SerializedAssetFinder; - imageMetas: ImageMeta[]; - normals?: NormalImportSetting; - tangents?: TangentImportSetting; - morphNormals?: NormalImportSetting.exclude | NormalImportSetting.optional; - dumpMaterials?: boolean; - redirectMaterialMap?: Record; - materialDumpDir?: string; - useVertexColors?: boolean; - depthWriteInAlphaModeBlend?: boolean; - skipValidation?: boolean; - animationImportSettings?: AnimationImportSetting[]; - mountAllAnimationsOnPrefab?: boolean; - legacyFbxImporter?: boolean; - disableMeshSplit?: boolean; - allowMeshDataAccess?: boolean; - addVertexColor?: boolean; - promoteSingleRootNode?: boolean; - generateLightmapUVNode?: boolean; - fbx?: IFbxSetting; - meshOptimizer?: MeshOptimizerOption; - meshOptimize?: MeshOptimizeOptions; - meshSimplify?: MeshSimplifyOptions; - meshCluster?: MeshClusterOptions; - meshCompress?: MeshCompressOptions; - lods?: { - enable: boolean; - hasBuiltinLOD: boolean; - options: LODsOption[]; - }; +export declare type IDefaultConfig = { + key: IDefaultConfigKeys; + name: string; + diyConfig: (cache: Record, flags: IFlags_2, includeModules: string[]) => void; } -export declare interface IAddComponentOptions { - nodePath: string; - component: string; +export declare type IDefaultConfigKeys = 'defaultConfig' | 'default2d' | 'default3d' | 'defaultNative' | 'defaultSmallGames' +export declare interface IDesignResolution { + height: number; + width: number; + fitWidth?: boolean; + fitHeight?: boolean; + policy?: number; } -export declare interface IAnimationAuxiliaryCurveDump { - keyframes: IAnimationAuxiliaryKeyDump[]; - preExtrap: number; - postExtrap: number; +export declare interface IDisplayModuleCache { + _value: boolean; + _option?: string; + _flags?: IFlags_2; } -export declare interface IAnimationAuxiliaryKeyDump extends IAnimationCurveKeyData { - frame: number; - value: number; +export declare interface IDisplayModuleItem extends IFeatureItem { + _value: boolean; + _option?: string; + options?: Record; } -export declare interface IAnimationClipDump { - name: string; - duration: number; - sample: number; - speed: number; - wrapMode: number; - curves: IAnimationCurveDump[]; - events: IAnimationEventDump[]; - embeddedPlayers: IAnimationEmbeddedPlayerDump[]; - embeddedPlayerGroups: IAnimationEmbeddedPlayerGroup[]; - auxiliaryCurves: Record; - time: number; - isLock: boolean; - isSkeleton: boolean; - useBakedAnimation: boolean; +export declare interface IEngineConfig extends IEngineModuleConfig { + physicsConfig: IPhysicsConfig; + macroConfig?: Record; + graphics?: IEngineGraphicsConfig; + sortingLayers: { id: number, name: string, value: number }[]; + customLayers: { name: string, value: number }[]; + renderPipeline?: string; + customPipeline?: boolean; + highQuality: boolean; + macroCustom: MacroItem[]; + customJointTextureLayouts: ICustomJointTextureLayout[]; + designResolution: IDesignResolution; + splashScreen: ISplashSetting; + downloadMaxConcurrency: number; } -export declare interface IAnimationClipMenuItem { - uuid: string; - name: string; +export declare interface IEngineGraphicsConfig { + pipeline?: IEngineGraphicsPipeline; + 'custom-pipeline-post-process'?: boolean; } -export declare interface IAnimationClipsInfo extends IAnimationRootResult { - clipsMenu: IAnimationClipMenuItem[]; - defaultClip: string; +export declare type IEngineGraphicsPipeline = 'custom-pipeline' | 'legacy-pipeline'; +export declare interface IEngineModuleConfig { + includeModules: string[]; + flags?: IFlags; + noDeprecatedFeatures?: { value: boolean, version: string }; } -export declare interface IAnimationCurveChannelDump { - key: string; - displayName?: string; - type?: IAnimationPropertyType; - keyframes: IAnimationCurveKeyDump[]; +export declare interface IEngineModuleProjectConfig extends IEngineModuleConfig { + name: string; } -export declare interface IAnimationCurveDump { - nodePath: string; - key: string; - keyframes: IAnimationCurveKeyDump[] | null; - channels?: IAnimationCurveChannelDump[]; - category?: string; - type?: IAnimationPropertyType; - displayName?: string; - name?: string; - comp?: string; - menuName?: string; - preExtrap?: number; - postExtrap?: number; - isCurveSupport?: boolean; - parentPropKey?: string; - partKeys?: string[]; +export declare interface IEngineProjectConfig extends Exclude { + configs?: Record; + globalConfigKey?: string; } -export declare interface IAnimationCurveKeyData { - inTangent?: number; - inTangentWeight?: number; - outTangent?: number; - outTangentWeight?: number; - interpMode?: number; - tangentWeightMode?: number; - tangentMode?: number; - easingMethod?: number; - broken?: boolean; +export declare interface IFeatureGroup extends BaseItem { + options: { [feature: string]: IFeatureItem }; } -export declare interface IAnimationCurveKeyDump extends IAnimationCurveKeyData { - frame: number; - dump: IAnimationKeyValueDump; - imgUrl?: string; +export declare interface IFeatureItem extends BaseItem { + enginePlugin?: boolean; + envCondition?: string; + fallback?: string; + flags: { [k: string]: Pick & { 'ui-type': 'checkbox' | 'select' } } + isNativeModule?: boolean; + cmakeConfig?: string; } -export declare interface IAnimationEditClipOptions { - clipUuid: string; +export declare type IFlags = Record; +export declare type IFlags_2 = Record; +export declare interface IInitEngineInfo { + importBase: string; + nativeBase: string; + writablePath: string; + serverURL?: string; } -export declare type IAnimationEmbeddedPlayable = { - type: 'animation-clip'; - clip?: string; - path?: string; -} | { - type: 'particle-system'; - path?: string; -}; -export declare interface IAnimationEmbeddedPlayerDump { - begin: number; - end: number; - reconciledSpeed: boolean; - playable?: IAnimationEmbeddedPlayable; - group: string; - displayName?: string; +export declare interface IJointTextureLayoutDeviceTip { + level: JointTextureLayoutDeviceTipLevel; + message: string; } -export declare interface IAnimationEmbeddedPlayerGroup { - key: string; - name: string; - type: string; +export declare interface IJointTextureLayoutPreviewItem { + index: number; + textureLength: number; + calculatedTextureLength: number; + fallbackTextureLength?: number; + resolvedLayout: IResolvedCustomJointTextureLayout | null; + tip: IJointTextureLayoutDeviceTip; + missingAssets: string[]; } -export declare interface IAnimationEnterOptions { - rootPath?: string; - rootUuid?: string; - clipUuid?: string; - restoreSelectionOnExit?: boolean; +export declare interface IJointTextureLayoutPreviewResult { + layouts: IJointTextureLayoutPreviewItem[]; + resolvedLayouts: IResolvedCustomJointTextureLayout[]; + missingAssets: string[]; } -export declare interface IAnimationEventDump { - frame: number; - func: string; - params: IAnimationValue[]; +export declare interface IModuleConfig { + moduleTreeDump: { + default: IModules; + categories: Record; + }, + nativeCodeModules: string[]; + moduleCmakeConfig: Record; + moduleDependMap: Record; + moduleDependedMap: Record; + features: IModules, + ignoreModules: string[], + envLimitModule: Record; } -export declare interface IAnimationExitOptions { - save?: boolean; - restoreSelection?: boolean; - restoreSampledSceneState?: boolean; -} -export declare interface IAnimationKeyValueDump { - value: IAnimationValue; - default?: IAnimationValue; - extends?: string[]; - readonly?: boolean; - type?: string; - visible?: boolean; -} -export declare type IAnimationOperation = { - type: 'changeSample'; - clipUuid: string; - sample: number; -} | { - type: 'changeSpeed'; - clipUuid: string; - speed: number; -} | { - type: 'changeWrapMode'; - clipUuid: string; - wrapMode: number; -} | { - type: 'addPropertyCurve'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - value?: IAnimationValue; -} | { - type: 'createPropertyKey'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - frame: number; - value?: IAnimationValue; - channel?: string; - keyData?: IAnimationCurveKeyData; - curveData?: IAnimationCurveKeyData; -} | { - type: 'updatePropertyKey'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - frame: number; - value?: IAnimationValue; - channel?: string; - keyData?: IAnimationCurveKeyData; - curveData?: IAnimationCurveKeyData; -} | { - type: 'updatePropertyKeyData'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - frame: number; - channel?: string; - keyData?: IAnimationCurveKeyData; - curveData?: IAnimationCurveKeyData; -} | { - type: 'removePropertyCurve'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; -} | { - type: 'removePropertyKey'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - frames: number[]; - channel?: string; -} | { - type: 'removePropertyKeys'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - frames: number[]; - channel?: string; -} | { - type: 'movePropertyKeys'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - frames: number[]; - offset: number; - channel?: string; -} | { - type: 'copyPropertyKeysTo'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - frames: number[]; - dstFrame: number; - channel?: string; -} | { - type: 'setPropertyCurveExtrapolation'; - clipUuid: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - preExtrap?: number; - postExtrap?: number; -} | { - type: 'addEvent'; - clipUuid: string; - frame: number; - func: string; - params?: IAnimationValue[]; -} | { - type: 'deleteEvent'; - clipUuid: string; - frames: number[]; -} | { - type: 'updateEvent'; - clipUuid: string; - frames: number[]; - events: IAnimationEventDump[]; -} | { - type: 'moveEvents'; - clipUuid: string; - frames: number[]; - offset: number; -} | { - type: 'copyEventsTo'; - clipUuid: string; - frames: number[]; - dstFrame: number; -} | { - type: 'addEmbeddedPlayer'; - clipUuid: string; - embeddedPlayer: IAnimationEmbeddedPlayerDump; -} | { - type: 'deleteEmbeddedPlayer'; - clipUuid: string; - embeddedPlayer: IAnimationEmbeddedPlayerDump; -} | { - type: 'updateEmbeddedPlayer'; - clipUuid: string; - embeddedPlayer: IAnimationEmbeddedPlayerDump; - newEmbeddedPlayer: IAnimationEmbeddedPlayerDump; -} | { - type: 'clearEmbeddedPlayer'; - clipUuid: string; - group?: string; -} | { - type: 'addEmbeddedPlayerGroup'; - clipUuid: string; - group: IAnimationEmbeddedPlayerGroup; -} | { - type: 'removeEmbeddedPlayerGroup'; - clipUuid: string; - key: string; -} | { - type: 'clearEmbeddedPlayerGroup'; - clipUuid: string; - key: string; -} | { - type: 'addAuxiliaryCurve'; - clipUuid: string; - name: string; -} | { - type: 'removeAuxiliaryCurve'; - clipUuid: string; - name: string; -} | { - type: 'renameAuxiliaryCurve'; - clipUuid: string; - name: string; - newName: string; -} | { - type: 'createAuxKey'; - clipUuid: string; - name: string; - frame: number; - value: number; - keyData?: IAnimationCurveKeyData; - curveData?: IAnimationCurveKeyData; -} | { - type: 'removeAuxKey'; - clipUuid: string; - name: string; - frame: number; -} | { - type: 'moveAuxKeys'; - clipUuid: string; - name: string; - frames: number[]; - offset: number; -} | { - type: 'copyAuxKey'; - clipUuid: string; - name: string; - frame: number; - dstFrame: number; -} | { - type: 'updateAuxKeyData'; - clipUuid: string; - name: string; - frame: number; - keyData?: IAnimationCurveKeyData; - curveData?: IAnimationCurveKeyData; -}; -export declare interface IAnimationOperationOptions { - operations: IAnimationOperation[]; - recordUndo?: boolean; - absorbPreviousScenePropertyUndo?: boolean; -} -export declare interface IAnimationOperationResult { - state: 'success' | 'failure'; - result: boolean; - reason?: string; -} -export declare interface IAnimationPlayStateOptions { - operate: AnimationPlayOperation; - clipUuid?: string; -} -export declare interface IAnimationPropertyInfo { - name: string; - key: string; - displayName: string; - type: IAnimationPropertyType; - menuName: string; - comp?: string; - category?: string; -} -export declare interface IAnimationPropertyType { - value: string; - extends?: string[]; - enumList?: Array<{ - name: string; - value: number; - }>; -} -export declare interface IAnimationQueryAuxiliaryCurveValueAtFrameOptions { - clipUuid?: string; - name: string; - frame: number; -} -export declare interface IAnimationQueryClipOptions extends IAnimationTargetOptions { - clipUuid?: string; -} -export declare interface IAnimationQueryPropertyValueAtFrameOptions { - clipUuid?: string; - nodePath?: string; - nodeUuid?: string; - propKey: string; - frame: number; -} -export declare interface IAnimationRootInfo extends IAnimationClipsInfo { - nodeTreeDump: INodeTreeItem | null; - clipDump: IAnimationClipDump | null; - time: number; - state: AnimationPlayState_2; - useBakedAnimation: boolean; -} -export declare interface IAnimationRootResult { - rootUuid: string; - rootPath: string; -} -export declare interface IAnimationSaveOptions { - saveScene?: boolean; -} -export declare interface IAnimationService extends IServiceEvents { - enter(options: IAnimationEnterOptions): Promise; - exit(options: IAnimationExitOptions): Promise; - queryState(): Promise; - queryRoot(options: IAnimationTargetOptions): Promise; - queryRootInfo(options: IAnimationTargetOptions): Promise; - queryClip(options: IAnimationQueryClipOptions): Promise; - queryClips(options: IAnimationTargetOptions): Promise; - queryProperties(options: IAnimationTargetOptions): Promise; - queryTime(options: IAnimationTimeOptions): Promise; - queryPropertyValueAtFrame(options: IAnimationQueryPropertyValueAtFrameOptions): Promise; - queryAuxiliaryCurveValueAtFrame(options: IAnimationQueryAuxiliaryCurveValueAtFrameOptions): Promise; - setTime(options: IAnimationSetTimeOptions): Promise; - changePlayState(options: IAnimationPlayStateOptions): Promise; - changeEditClip(options: IAnimationEditClipOptions): Promise; - applyOperations(options: IAnimationOperationOptions): Promise; - save(options?: IAnimationSaveOptions): Promise; -} -export declare interface IAnimationSetTimeOptions { - time: number; -} -export declare interface IAnimationStateInfo { - active: boolean; - editorType: AnimationEditorType; - mode: AnimationMode; - rootUuid: string; - rootPath: string; - clipUuid: string; - time: number; - playState: AnimationPlayState_2; - dirty: boolean; - selection: string[]; - restoreSelectionOnExit: boolean; -} -export declare interface IAnimationTargetOptions { - nodePath?: string; - nodeUuid?: string; - rootPath?: string; - rootUuid?: string; -} -export declare interface IAnimationTimeOptions { - clipUuid?: string; -} -export declare type IAnimationValue = string | number | boolean | null | undefined | IAnimationValue[] | { - [key: string]: IAnimationValue; -}; -export declare interface IApplyPrefabChangesParams { - nodePath: string; -} -export declare interface IAssetInfo { - name: string; - source: string; - loadUrl: string; - url: string; - file: string; - uuid: string; - importer: AssetHandlerType; - imported: boolean; - invalid: boolean; - type: IAssetType; - isDirectory: boolean; - library: { [key: string]: string }; - isBundle?: boolean; - displayName?: string; - readonly?: boolean; - visible?: boolean; - subAssets?: { [key: string]: IAssetInfo }; - instantiation?: string; - redirect?: IRedirectInfo; - meta?: IAssetMeta, - parent?: { - source: string; - library: { [key: string]: string }; - uuid: string; - }; - extends?: string[]; - mtime?: number; - depends?: string[]; - dependeds?: string[]; - temp?: string; -} -export declare interface IAssetMeta { - ver: string; - importer: AssetHandlerType; - imported: boolean; - uuid: string; - files: string[]; - subMetas: { - [index: string]: IAssetMeta<'unknown'>; +export declare type IModuleItem = IFeatureItem | IFeatureGroup; +export declare type IModules = Record; +export declare function init(projectPath: string): Promise; +export declare function initEngine(enginePath: string, projectPath: string, serverURL?: string): Promise; +export declare interface IPhysicsConfig { + gravity: IVec3Like; + allowSleep: boolean; + sleepThreshold: number; + autoSimulation: boolean; + fixedTimeStep: number; + maxSubSteps: number; + defaultMaterial?: string; + useNodeChains: boolean; + collisionMatrix: ICollisionMatrix; + physicsEngine: string; + physX?: { + notPackPhysXLibs: boolean; + multiThread: boolean; + subThreadCount: number; + epsilon: number; }; - userData: AssetUserDataMap[T extends keyof AssetUserDataMap ? T : 'unknown']; - displayName?: string; - id?: string; - name?: string; -} -export declare interface IAssetService extends IServiceEvents { - assetChanged(uuid: string): Promise; - assetDeleted(uuid: string): Promise; -} -export declare type IAssetType = -| ISupportCreateCCType -| 'cc.Asset' -| 'cce.Database' -| 'cce.EffectHeader' -| 'cc.VideoClip' -| 'cc.TiledMapAsset' -| 'cc.TTFFont' -| 'cc.Texture2D' -| 'cc.SpriteFrame' -| 'cc.ImageAsset' -| 'cc.TextAsset' -| 'cc.JsonAsset' -| 'cc.AudioClip' -| 'cc.BitmapFont' -| 'cc.BufferAsset' -| 'cc.ParticleAsset' -| 'cc.RenderPipeline' -| 'cc.Skeleton' -| 'cc.Mesh' -| 'sp.SkeletonData' -| 'dragonBones.DragonBonesAsset' -| 'dragonBones.DragonBonesAtlasAsset' -| 'RenderStage' -| 'RenderFlow'; -export declare interface IBaseCreateNodeParams { - path: string; - name?: string; - workMode?: '2d' | '3d'; - position?: IVec3; - keepWorldTransform?: boolean; - canvasRequired?: boolean; - unlinkPrefab?: boolean; -} -export declare interface IBaseIdentifier { - assetName: string; - assetUuid: string; - assetUrl: string; - assetType: string; -} -export declare interface ICameraConfig { - color: number[]; - fov: number; - far: number; - near: number; - wheelSpeed: number; - wanderSpeed: number; - enableAcceleration: boolean; - aperture: number; - shutter: number; - iso: number; -} -export declare interface ICameraService { - init(): void; - initFromConfig(): Promise; - is2D: boolean; - focus(nodes?: string[] | null, editorCameraInfo?: any, immediate?: boolean): void; - defaultFocus(uuid: string): void; - rotateCameraToDir(dir: Vec3_2, rotateByViewDist: boolean): void; - changeProjection(): void; - setGridVisible(value: boolean): void; - isGridVisible(): boolean; - setCameraProperty(options: any): void; - resetCameraProperty(): void; - queryConfig(): ICameraConfig; - updateConfig(config: Partial): void; - getCameraFov(): number; - zoomUp(): void; - zoomDown(): void; - zoomReset(): void; - alignNodeToSceneView(nodes: string[]): void; - alignSceneViewToNode(nodes: string[]): void; - setGridColor(color: number[]): void; - setOriginAxes2D(config: IOriginAxesConfig): void; - setOriginAxes3D(config: IOriginAxesConfig): void; - onUpdate(deltaTime: number): void; -} -export declare interface IChangeNodeLockParams { - paths: string[]; - locked: boolean; - loop?: boolean; -} -export declare interface IChangeNodeOptions { - source?: 'editor' | 'undo' | 'engine'; - type?: NodeEventType; - propPath?: string; - index?: number; - record?: boolean; - dumpImmediately?: boolean; -} -export declare interface ICLI { - Scene: IServiceManager; - SceneEvents: GlobalEventManager; } -export declare interface IClipboardState { - type: 'cut' | 'copy' | 'none'; - paths: string[]; +export declare interface IPhysicsMaterial { + friction: number; + rollingFriction: number; + spinningFriction: number; + restitution: number; } -export declare interface ICloseOptions { - urlOrUUID?: string; - save?: boolean; +export declare interface IResolvedChunkContent { + skeleton: number; + clips: number[]; } -export declare interface IComponent extends IProperty { - value: { - enabled: IPropertyValueType; - uuid: IPropertyValueType; - name: IPropertyValueType; - } & Record; - mountedRoot?: string; - component_path?: string; +export declare interface IResolvedCustomJointTextureLayout { + textureLength: number; + contents: IResolvedChunkContent[]; } -export declare interface IComponentService extends IServiceEvents { - add(params: IAddComponentOptions): Promise; - remove(params: IRemoveComponentOptions): Promise; - setProperty(params: ISetPropertyOptions): Promise; - query(params: IQueryComponentOptions | string): Promise; - queryAll(): Promise; - reset(params: IQueryComponentOptions): Promise; - queryClasses(options?: IQueryClassesOptions): Promise<{ - name: string; - }[]>; - queryFunctionOfNode(path: string): Promise; - queryComponents(): Promise>; - executeMethod(options: IExecuteComponentMethodOptions): Promise; - hasScript(name: string): Promise; - getPathByUuid(uuid: string): string; - init(): void; - unregisterCompMgrEvents(): void; +export declare interface ISplashBackgroundColor { + x: number; + y: number; + z: number; + w: number; } -export declare interface ICopyParams { - paths: string[]; +export declare interface ISplashSetting { + displayRatio: number; + totalTime: number; + watermarkLocation: 'default' | 'topLeft' | 'topRight' | 'topCenter' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'; + autoFit: boolean; + logo?: { + type: 'default' | 'none' | 'custom'; + image?: string; + base64?: string; + } + background?: { + type: 'default' | 'color' | 'custom'; + color?: ISplashBackgroundColor; + image?: string; + base64?: string; + } } -export declare interface ICreateByAssetParams extends IBaseCreateNodeParams { - dbURL: string; +export declare interface IVec3Like { + x: number; + y: number; + z: number; } -export declare interface ICreateByNodeTypeParams extends IBaseCreateNodeParams { - nodeType: NodeType; +export declare type JointTextureLayoutDeviceTipLevel = 'valid' | 'warning' | 'error'; +export declare type MacroItem = { + key: string; + value: boolean; } -export declare interface ICreateOptions { - type: ICreateType; - baseName: string; - targetDirectory: string; - templateType?: TSceneTemplateType; +export declare type MakeRequired = T & Required>; +export declare interface Migration { + version: string; + migrate(moduleCache: Record): Record; } -export declare interface ICreatePrefabFromNodeParams { - nodePath: string; - dbURL: string; - overwrite?: boolean; +export declare interface ModuleRenderConfig { + $schema?: string; + features: Features; + categories: { [category: string]: CategoryInfo }; + version: string; + migrationScript?: string; } -export declare type ICreateType = typeof CREATE_TYPES[number]; -export declare interface ICustomLayerConfig { +export declare function queryJointTextureLayoutPreview(): Promise; +export declare function queryLayerBuiltin(): Promise<{ name: string; value: number; +}[]>; +export declare function querySortingLayerBuiltin(): Promise; +export declare function startEngineCompilation(force?: boolean): Promise; +export { } +" +`; + +exports[`DTS API compatibility index.d.ts should match snapshot 1`] = ` +"import { __private } from 'cc'; +import { ChunkInfo } from '@cocos/creator-programming-quick-pack/lib/loader'; +import { EventEmitter } from 'events'; +import { default as i18n_2 } from 'i18next'; +import { NextFunction } from 'express'; +import { Request as Request_2 } from 'express'; +import { Response as Response_2 } from 'express'; +export declare interface AnimationClipAssetUserData { + name: string; } -export declare interface ICutParams { - paths: string[]; +export declare const animationGraphVariant: { + query(uuid: string): Promise; + change(uuid: string, dump: AnimGraphVariantDump): Promise; + save(uuid: string): Promise; +}; +export declare interface AnimationImportSetting { + name: string; + duration: number; + fps: number; + splits: Array<{ + previousId?: string; + name: string; + from: number; + to: number; + fps?: number; + speed?: number; + wrapMode?: number; + auxiliaryCurves?: Record< + string, + { + curve: unknown; + } + >; + additive?: { + enabled: boolean; + refClip?: string; + }; + }>; } -export declare interface IDeleteNodeParams { +export declare const animationMask: { + query(uuid: string): Promise; + importSkeleton(uuid: string, skeletonSourceUuid: string): Promise; + clearNodes(uuid: string): Promise; + changeDump(uuid: string, changes: AnimationMaskChange[]): Promise; + save(uuid: string): Promise; +}; +export declare interface AnimationMaskChange { path: string; - keepWorldTransform?: boolean; + enabled: boolean; + recursive?: boolean; } -export declare interface IDeleteNodeResult { +export declare interface AnimationMaskDump { + version: 1; + assetUuid: string; + joints: AnimationMaskJoint[]; +} +export declare interface AnimationMaskJoint { path: string; + enabled: boolean; + children?: AnimationMaskJoint[]; } -export declare interface IDuplicateParams { - paths: string[]; +export declare interface AnimGraphVariantDump { + graphUuid: string | null; + clips: Record; + invalids?: Record; } -export declare interface IEditorService extends IServiceEvents { - getCurrentEditorType(): 'scene' | 'prefab' | 'unknown'; - open(params: IOpenOptions): Promise; - close(params: ICloseOptions): Promise; - save(params: ISaveOptions): Promise; - reload(params: IReloadOptions): Promise; - create(params: ICreateOptions): Promise; - hasOpen(): Promise; - queryCurrent(): Promise; - getRootNode(): TEditorInstance | null; - lock(): Promise; - unlock(): void; +export declare const ASSET_HANDLER_TYPES: string[]; +export declare enum AssetActionEnum { + 'add' = 0, + 'change' = 1, + 'delete' = 2, + 'none' = 3 } -export declare interface IEngineService extends IServiceEvents { - init(): Promise; - repaintInEditMode(): Promise; - pause(): void; - resume(): void; - initCustomLayer(layers?: ICustomLayerConfig[]): Promise; - enterAnimationMode(): void; - exitAnimationMode(): void; +export declare interface AssetChangeInfo { + type: AssetChangeType; + uuid: string; + filePath: string; + importer: string; + userData: object; } -export declare interface IExecuteComponentMethodOptions { - path: string; +export declare type AssetChangeType = AssetActionEnum; +export declare interface AssetDBOptions { name: string; - args: any[]; + target: string; + library: string; + temp: string; + level: LogLevel; + ignoreFiles: string[]; + globList?: string[]; + readonly: boolean; + flags?: { + reimportCheck?: boolean; + }; + importConcurrency?: number; } -export declare interface IFbxSetting { - unitConversion?: 'geometry-level' | 'hierarchy-level' | 'disabled'; - animationBakeRate?: 0 | 24 | 25 | 30 | 60; - preferLocalTimeSpan?: boolean; - smartMaterialEnabled?: boolean; - matchMeshNames?: boolean; +export declare interface AssetDBOptions_2 { + name: string; + target: string; + library: string; + temp: string; + interval: number; + level: number; + ignoreFiles: string[]; + preImportExtList?: string[]; + readonly: boolean; + visible: boolean; + ignoreGlob?: string; } -export declare interface IGetPrefabInfoParams { - nodePath: string; +export declare type AssetHandlerType = typeof ASSET_HANDLER_TYPES[number] | 'database'; +export declare interface AssetInfo extends IAssetInfo { + name: string; + displayName: string; + source: string; + path: string; + url: string; + file: string; + uuid: string; + importer: string; + type: IAssetType; + isDirectory: boolean; + library: { [key: string]: string }; + subAssets: { [key: string]: AssetInfo }; + visible: boolean; + readonly: boolean; + instantiation?: string; + redirect?: IRedirectInfo; + extends?: string[]; + imported: boolean; + invalid: boolean; } -export declare interface IGizmoService { - gizmoRootNode: any; - foregroundNode: any; - backgroundNode: any; - transformToolData: any; - transformToolName: string; - isViewMode: boolean; - is2D: boolean; - init(): void; - initFromConfig(): Promise; - saveConfig(): Promise; - changeTool(name: string): void; - setCoordinate(coord: 'local' | 'global'): void; - setPivot(pivot: 'pivot' | 'center'): void; - lockGizmoTool(locked: boolean): void; - isGizmoToolLocked(): boolean; - setIconVisible(visible: boolean): void; - showAllGizmoOfNode(node: any, recursive?: boolean): void; - removeAllGizmoOfNode(node: any, recursive?: boolean): void; - clearAllGizmos(): void; - callAllGizmoFuncOfNode(node: any, funcName: string, ...params: any[]): boolean; - onUpdate(deltaTime: number): void; - queryToolsVisibility3d(): boolean; - setToolsVisibility3d(value: boolean): void; - isIconGizmo3D(): boolean; - setIconGizmo3D(value: boolean): void; - queryIconGizmoSize(): number; - setIconGizmoSize(size: number): void; - queryGridColor(): number[]; - setGridColor(color: number[]): void; - queryOriginAxes2D(): IOriginAxesConfig; - setOriginAxes2D(config: IOriginAxesConfig): void; - queryOriginAxes3D(): IOriginAxesConfig; - setOriginAxes3D(config: IOriginAxesConfig): void; - queryTransformSnapConfigs(): any; - setTransformSnapConfigs(name: string, value: any): void; - queryRectSnapConfig(): IRectSnapConfigData; - setRectSnapConfig(config: Partial): void; - querySelectNodes(): any[]; - hasSelected(uuid: string): boolean; - onResize(): void; - showSelectionRegion(left: number, right: number, top: number, bottom: number): void; - hideSelectionRegion(): void; - execGizmoMethods(name: string, funcName: string, params?: any[]): any; +export declare interface AssetOperationOption { + overwrite?: boolean; + rename?: boolean; +} +export declare interface AssetOperationOption { + overwrite?: boolean; + rename?: boolean; +} +export declare interface AssetPropertySchema { + label: string; + description?: string; + type: AssetPropertySchemaType; + default?: unknown; + options?: AssetPropertySchemaOption[]; + assetType?: string; + min?: number; + max?: number; + step?: number; + readOnly?: boolean; + order?: number; + properties?: Record; + items?: AssetPropertySchema | AssetPropertySchema[]; +} +export declare type AssetPropertySchemaMap = Record; +export declare interface AssetPropertySchemaOption { + label: string; + value: string | number | boolean; +} +export declare type AssetPropertySchemaType = 'string' | 'number' | 'boolean' | 'enum' | 'asset' | 'array' | 'object'; +export declare namespace Assets { + export { + init, + setFileSystemProvider, + start, + onReady, + onDBReady, + onProgress, + deleteAsset, + refresh, + queryAssetInfo, + queryAssetMeta, + queryCreateMap, + queryAssetInfos, + queryAssetDBInfos, + createAssetByType, + createAsset, + importAsset, + reimportAsset, + saveAsset, + querySerializedData, + saveSerializedData, + queryMaterialAllEffects, + queryMaterialEffect, + queryMaterial, + saveMaterial, + queryUUID, + queryPath, + queryUrl, + queryAssetDependencies, + queryAssetUsers, + querySortedPlugins, + renameAsset, + moveAsset, + updateDefaultUserData, + queryAssetUserDataConfig, + updateAssetUserData, + updateAssetUserDataByPath, + queryAssetConfigMap, + queryPropertySchema, + queryThumbnailHandlers, + generateThumbnail, + onAssetAdded, + onAssetChanged, + onAssetRemoved, + CreateAssetOptions, + IAssetConfig, + IAssetDBInfo, + ICreateMenuInfo, + IUerDataConfigItem, + QueryAssetType, + FilterPluginOptions, + IPluginScriptInfo, + AnimGraphVariantDump, + animationGraphVariant, + animationMask, + serializedData, + material, + IProperty, + IAssetDeleteOptions, + IAssetFileSystemProvider, + IAssetOperationContext, + IAssetOperationKind, + IAssetOperationOrigin, + IAssetRenameOptions, + IAssetWriteFileOptions, + IAssetMeta, + SerializedAssetDump, + SerializedAssetPatch, + SerializedAssetQueryResult, + MaterialEffectInfo, + MaterialPassDump, + MaterialTechniqueDump, + MaterialDump, + AssetPropertySchemaType, + AssetPropertySchemaOption, + AssetPropertySchema, + AssetPropertySchemaMap, + IAssetInfo, + AssetOperationOption, + DeleteAssetOptions, + AnimationMaskDump, + AnimationMaskJoint, + AnimationMaskChange, + AssetInfo, + IRedirectInfo, + QueryAssetsOption, + CreateAssetByTypeOptions, + AssetDBOptions_2 as AssetDBOptions, + ExecuteAssetDBScriptMethodOptions, + ISupportCreateCCType, + IAssetType, + ISupportCreateType, + AssetHandlerType, + AssetUserDataMap + } } -export declare interface IIsPrefabInstanceParams { - nodePath: string; +export declare interface AssetUserDataMap { + 'animation-clip': AnimationClipAssetUserData; + 'auto-atlas': AutoAtlasAssetUserData; + 'label-atlas': LabelAtlasAssetUserData; + 'render-texture': RenderTextureAssetUserData; + 'directory': DirectoryAssetUserData; + 'texture-cube': TextureCubeAssetUserData; + 'erp-texture-cube': TextureCubeAssetUserData; + 'image': ImageAssetUserData; + 'sprite-frame': SpriteFrameAssetUserData; + 'texture': Texture2DAssetUserData; + 'spine-data': SpineAssetUserData; + 'javascript': JavaScriptAssetUserData; + 'gltf-animation': GltfAnimationAssetUserData; + 'particle': ParticleAssetUserData; + 'json': JsonAssetUserData; + 'prefab': PrefabAssetUserData; + 'scene': PrefabAssetUserData; + 'effect': EffectAssetUserData; + 'audio-clip': AudioClipAssetUserData; + 'bitmap-font': BitmapFontAssetUserData; + 'gltf-skeleton': GltfSkeletonAssetUserData; + 'gltf-embeded-image': GltfEmbededImageAssetUserData; + 'gltf-mesh': IVirtualAssetUserData; + 'gltf-material': IVirtualAssetUserData; + 'gltf-scene': IVirtualAssetUserData; + 'gltf': GlTFUserData; + 'fbx': GlTFUserData; + 'sprite-atlas': SpriteAtlasAssetUserData; + 'rt-sprite-frame': RtSpriteFrameAssetUserData; + 'sign-image': ImageAssetUserData; + 'alpha-image': ImageAssetUserData; + 'unknown': any; } -export declare interface ImageAssetUserData { - type: ImageImportType; - flipVertical?: boolean; - fixAlphaTransparencyArtifacts?: boolean; - isRGBE?: boolean; - hasAlpha?: boolean; - redirect?: string; - visible?: boolean; - flipGreenChannel?: boolean; - sign?: string; - alpha?: string; +export declare interface AudioClipAssetUserData { + downloadMode: number; } -export declare type ImageImportType = 'raw' | 'texture' | 'normal map' | 'sprite-frame' | 'texture cube'; -export declare interface ImageMeta { - name?: string; - uri?: string; - remap?: string; +export declare interface AutoAtlasAssetUserData { + compressed: boolean; + dest: any; + maxWidth: number; + maxHeight: number; + padding: number; + allowRotation: boolean; + forceSquared: boolean; + powerOfTwo: boolean; + algorithm: string; + format: string; + quality: number; + contourBleed: boolean; + paddingBleed: boolean; + filterUnused: boolean; + removeTextureInBundle: boolean; + removeImageInBundle: boolean; + removeSpriteAtlasInBundle: boolean; + platformSettings: any; + textureSetting: any; } -export declare interface IMoveArrayElementParams { - nodePath: string; - path: string; - target: number; - offset: number; +export declare namespace Base { + export { + init_2 as init + } } -export declare interface INode { - path: string; - active: IProperty; - locked: IProperty; - name: IProperty; - position: IProperty; - rotation: IProperty; - mobility: IProperty; - scale: IProperty; - layer: IProperty; - uuid: IProperty; - children: IProperty[]; - parent: IProperty; - __comps__: IComponent[]; - __type__: string; - __prefab__?: IPrefab; - _prefabInstance?: any; - removedComponents?: IRemovedComponentInfo[]; - mountedRoot?: string; +export declare interface BaseItem { + label?: string; + description?: string; + default: boolean; + readonly?: boolean; + hidden?: boolean; + category?: string; + required?: boolean; + dependencies?: string[]; } -export declare interface INodeDumpOptions { - includeChildren?: boolean; - includeComponents?: boolean; +export declare interface BitmapFontAssetUserData { + _fntConfig: any; + fontSize: number; + textureUuid: string; } -export declare interface INodeService extends IServiceEvents { - createByType(params: ICreateByNodeTypeParams): Promise; - createByAsset(params: ICreateByAssetParams): Promise; - delete(params: IDeleteNodeParams): Promise; - query(params?: IQueryNodeParams): Promise; - queryNodeTree(params: IQueryNodeTreeParams): Promise; - queryNodesByAssetUuid(uuid: string): string[]; - queryNodesMissAsset(): Promise; - previewSetProperty(options: ISetPropertyOptions): Promise; - cancelPreviewSetProperty(options: ISetPropertyOptions): Promise; - setProperty(options: ISetPropertyOptions): Promise; - reset(path: string): Promise; - resetProperty(options: ISetPropertyOptions): Promise; - updatePropertyFromNull(options: ISetPropertyOptions): Promise; - setNodeAndChildrenLayer(options: ISetPropertyOptions): Promise; - getPathByUuid(uuid: string): string; - setParent(params: ISetParentParams): Promise; - reorder(params: IReorderParams): Promise; - copy(params: ICopyParams): Promise; - paste(params: IPasteParams): Promise; - duplicate(params: IDuplicateParams): Promise; - cut(params: ICutParams): Promise; - queryClipboardState(): Promise; - moveArrayElement(params: IMoveArrayElementParams): Promise; - removeArrayElement(params: IRemoveArrayElementParams): Promise; - changeNodeLock(params: IChangeNodeLockParams): Promise; +export declare interface CategoryDetail extends CategoryInfo { + modules: IModules; } -export declare interface INodeTreeComponent { - isCustom: boolean; - type: string; - value: string; - extends: string[]; +export declare interface CategoryInfo { + label?: string; + description?: string; + checkable?: boolean; + required?: boolean; } -export declare interface INodeTreeItem { - name: string; - active: boolean; - locked: boolean; - type: string; - uuid: string; - children: INodeTreeItem[]; - prefab: IPrefabStateInfo; - parent: string; - path: string; - isScene: boolean; - readonly: boolean; - components: INodeTreeComponent[]; +export declare interface CCEModuleConfig { + description: string; + main: string; + types: string; } -export declare interface IOpenOptions extends INodeDumpOptions { - urlOrUUID: string; +export declare type CCEModuleMap = { + [moduleName: string]: CCEModuleConfig; +} & { + mapLocation: string; +}; +export declare function close_2(): Promise; +export declare namespace Configuration { + export { + init_3 as init, + migrateFromProject, + reload, + migrate, + get, + set, + remove, + save, + getConfigPath, + onDidSave, + getMetadata, + IConfiguration, + ConfigurationScope, + IBaseConfiguration, + ICocosConfigurationNode, + ICocosConfigurationPropertySchema + } } -export declare interface IOperationService { - addListener(type: OperationEvent, listener: Function, priority?: number): void; - removeListener(type: OperationEvent, listener: Function): void; - dispatch(type: OperationEvent, ...args: any[]): void; - emitMouseEvent(type: string, event: ISceneMouseEvent, dpr?: number): void; - requestPointerLock(): void; - exitPointerLock(): void; - changePointer(type: string): void; +export declare type ConfigurationScope = 'default' | 'project'; +export declare function createAsset(options: CreateAssetOptions): Promise; +export declare function createAssetByType(ccType: ISupportCreateType, dirOrUrl: string, baseName: string, options?: CreateAssetByTypeOptions): Promise; +export declare interface CreateAssetByTypeOptions extends AssetOperationOption { + templateName?: string; + content?: string | Buffer | JSON; } -export declare interface IOriginAxesConfig { - x: boolean; - y: boolean; - z: boolean; +export declare interface CreateAssetOptions { + target: string; + content?: string | Buffer | JSON; + template?: string; + handler?: string; + uuid?: string; + overwrite?: boolean; + rename?: boolean; + userData?: Record; + customOptions?: Record; } -export declare interface IPasteParams { - parentPath?: string; - keepWorldTransform?: boolean; +export declare function deleteAsset(dbPath: string, options?: DeleteAssetOptions): Promise; +export declare interface DeleteAssetOptions { + useTrash?: boolean; } -export declare interface IPrefab { - uuid: string; - fileId: string; - rootUuid: string; - sync: boolean; - prefabStateInfo: IPrefabStateInfo; - targetOverrides?: ITargetOverrideInfo[]; - instance?: IProperty; +export declare interface DirectoryAssetUserData { + isBundle?: boolean; + bundleConfigID?: string; + bundleName?: string; + priority?: number; } -export declare interface IPrefabService extends IServiceEvents { - createPrefabFromNode(params: ICreatePrefabFromNodeParams): Promise; - applyPrefabChanges(params: IApplyPrefabChangesParams): Promise; - revertToPrefab(params: IRevertToPrefabParams): Promise; - unpackPrefabInstance(params: IUnpackPrefabInstanceParams): Promise; - isPrefabInstance(params: IIsPrefabInstanceParams): Promise; - getPrefabInfo(params: IGetPrefabInfoParams): Promise; - unlinkPrefab(params: IUnlinkPrefabParams): Promise; - removePrefabInfoFromNode(node: Node_2, removeNested?: boolean): void; +export declare interface EffectAssetUserData { + combinations?: any; + editor?: any; } -export declare interface IPrefabStateInfo { - state: PrefabState; - isUnwrappable: boolean; - isRevertable: boolean; - isApplicable: boolean; - isAddedChild: boolean; - isNested: boolean; - assetUuid: string; +export declare namespace Engine { + export { + init_4 as init, + getInfo, + getConfig, + getRenderConfig, + queryJointTextureLayoutPreview, + initEngine, + startEngineCompilation, + queryLayerBuiltin, + querySortingLayerBuiltin, + EngineInfo, + IFlags, + MakeRequired, + IPhysicsConfig, + ICollisionMatrix, + IVec3Like, + IPhysicsMaterial, + ICustomJointTextureLayout, + IChunkContent, + IResolvedCustomJointTextureLayout, + IResolvedChunkContent, + JointTextureLayoutDeviceTipLevel, + IJointTextureLayoutDeviceTip, + IJointTextureLayoutPreviewItem, + IJointTextureLayoutPreviewResult, + MacroItem, + ISplashBackgroundColor, + ISplashSetting, + IDesignResolution, + IEngineModuleConfig, + IEngineModuleProjectConfig, + IEngineGraphicsPipeline, + IEngineGraphicsConfig, + IEngineConfig, + IEngineProjectConfig, + IInitEngineInfo, + CCEModuleConfig, + CCEModuleMap, + ModuleRenderConfig, + Migration, + IModuleItem, + Features, + BaseItem, + IFeatureItem, + IFeatureGroup, + CategoryInfo, + IModules, + IDisplayModuleItem, + IDisplayModuleCache, + CategoryDetail, + IModuleConfig, + IDefaultConfigKeys, + IDefaultConfig, + ICroppingConfigDeprecatedFeature, + ICroppingConfig + } } -export declare interface IPreviewInstance { - onMouseDown(event: any): void; - onMouseMove(event: any): void; - onMouseUp(event: any): void; - onMouseWheel(event: any): void; - viewToggle(): void; - is2DView(): boolean; - resetCameraView(): void; - hide(): void; +export declare interface EngineInfo { + typescript: { + type: 'builtin' | 'custom'; + builtin: string, + path: string; + }, + native: { + type: 'builtin' | 'custom'; + builtin: string, + path: string; + }, + tmpDir: string; + version: string; } -export declare interface IPreviewService { - open(uuid: string): Promise; - generateThumbnail(uuid: string, assetType: string, width?: number, height?: number): Promise; +export declare type EventEmitterMethods = Pick; +export declare interface ExecuteAssetDBScriptMethodOptions { + name: string; + method: string; + args?: any[]; } -export declare interface IProperty { - value: { [key: string]: IPropertyValueType } | IPropertyValueType; - default?: any; - values?: ({ [key: string]: IPropertyValueType } | IPropertyValueType)[]; - lock?: { [key in keyof Vec4]?: IPropertyLock }; - cid?: string; - type?: string; - ui?: { name: string; data?: any }; - readonly?: boolean; - visible?: boolean; - name?: string; - elementTypeData?: IProperty; - path: string; - isArray?: boolean; - invalid?: boolean; - extends?: string[]; - displayName?: string; - displayOrder?: number; - help?: string; - group?: IPropertyGroupOptions; - tooltip?: string; - editor?: any; - animatable?: boolean; - radioGroup?: boolean; - enumList?: any[]; - bitmaskList?: any[]; - min?: number; - max?: number; - step?: number; - slide?: boolean; - unit?: string; - radian?: boolean; - multiline?: boolean; - optionalTypes?: string[]; - userData?: { [key: string]: any }; +export declare interface Features { + [feature: string]: IModuleItem; } -export declare interface IPropertyGroupOptions { - id: string - name: string, - displayOrder: number, - style: string +export declare interface FileNameCheckConfig { + regStr: string; + failedType: 'error' | 'warn' | 'info', + failedInfo: string; } -export declare type IPropertyLock = { - default: number; - message: string -}; -export declare type IPropertyValueType = IProperty | IProperty[] | null | undefined | number | boolean | string | Vec4 | Vec3 | Vec2 | Mat4 | any | Array -export declare interface IQueryClassesOptions { - extends?: string | string[]; - excludeSelf?: boolean; +export declare type Filter = 'none' | 'nearest' | 'linear'; +export declare interface FilterPluginOptions { + loadPluginInEditor?: boolean; + loadPluginInWeb?: boolean; + loadPluginInNative?: boolean; + loadPluginInMiniGame?: boolean; } -export declare interface IQueryComponentOptions { - path: string; +export declare interface FntData { + commonHeight?: number; + fontSize?: number; + atlasName?: string; + fontDefDictionary?: FontDefDictionary; + kerningDict?: KerningDict; +} +export declare interface FontDef { + rect: { + x: number; + y: number; + width: number; + height: number; + }; + xOffset: number; + yOffset: number; + xAdvance: number; } -export declare interface IQueryNodeParams extends INodeDumpOptions { - path: string; +export declare interface FontDefDictionary { + [charId: number]: FontDef; } -export declare interface IQueryNodeTreeParams { - path?: string; +export declare function generateThumbnail(urlOrUUIDOrPath: string, size?: ThumbnailSize): Promise; +export declare function get(key: string, scope?: ConfigurationScope): Promise; +export declare function get_2(): Promise; +export declare function getConfig(useDefault?: boolean): Promise; +export declare function getConfigPath(): Promise; +export declare function getInfo(): Promise; +export declare function getInfo_2(): Promise; +export declare function getMetadata(): Promise; +export declare function getProgrammingFacet(): Promise; +export declare function getRenderConfig(): Promise; +export declare function getStatus(): { + registered: boolean; + url?: string; +}; +export declare function getStatus_2(): { + running: boolean; + url?: string; +}; +export declare function getUrl(): string | undefined; +export declare interface GltfAnimationAssetUserData { + gltfIndex: number; + events: Array<{ + frame: number; + func: string; + params: string[]; + }>; + editorExtras?: unknown; + embeddedPlayers?: Array<{ + editorExtras?: unknown; + begin: number; + end: number; + reconciledSpeed: boolean; + playable: + | { + type: 'animation-clip'; + path: string; + clip: string; + } + | { + type: 'particle-system'; + path: string; + }; + }>; + auxiliaryCurves?: Record; + wrapMode: number; + speed?: number; + sample?: number; + span?: { + from: number; + to: number; + }; + additive?: any; } -export declare interface IRectSnapConfigData { - enableSnapping: boolean; - snapThreshold: number; +export declare interface GltfEmbededImageAssetUserData extends IVirtualAssetUserData { + fixAlphaTransparencyArtifacts?: boolean; } -export declare interface IRedirectInfo { - type: string; - uuid: string; +export declare type GltfpackOptions = Record; +export declare interface GltfSkeletonAssetUserData extends IVirtualAssetUserData { + jointsLength?: number; } -export declare interface IRedoService { - redo(options?: IUndoOperationOptions): Promise; - canRedo(options?: IUndoOperationOptions): boolean; +export declare interface GlTFUserData { + assetFinder?: SerializedAssetFinder; + imageMetas: ImageMeta[]; + normals?: NormalImportSetting; + tangents?: TangentImportSetting; + morphNormals?: NormalImportSetting.exclude | NormalImportSetting.optional; + dumpMaterials?: boolean; + redirectMaterialMap?: Record; + materialDumpDir?: string; + useVertexColors?: boolean; + depthWriteInAlphaModeBlend?: boolean; + skipValidation?: boolean; + animationImportSettings?: AnimationImportSetting[]; + mountAllAnimationsOnPrefab?: boolean; + legacyFbxImporter?: boolean; + disableMeshSplit?: boolean; + allowMeshDataAccess?: boolean; + addVertexColor?: boolean; + promoteSingleRootNode?: boolean; + generateLightmapUVNode?: boolean; + fbx?: IFbxSetting; + meshOptimizer?: MeshOptimizerOption; + meshOptimize?: MeshOptimizeOptions; + meshSimplify?: MeshSimplifyOptions; + meshCluster?: MeshClusterOptions; + meshCompress?: MeshCompressOptions; + lods?: { + enable: boolean; + hasBuiltinLOD: boolean; + options: LODsOption[]; + }; } -export declare interface IReloadOptions { - urlOrUUID?: string; - preserveUndoHistory?: boolean; +export declare namespace i18n { + export { + i18n_2 as default + } } -export declare interface IRemoveArrayElementParams { - nodePath: string; - path: string; - index: number; +export declare interface IAssetConfig { + displayName?: string; + description?: string; + docURL?: string; + userDataConfig?: Record; } -export declare interface IRemoveComponentOptions { - path: string; +export declare interface IAssetDBInfo extends AssetDBOptions { + state: 'none' | 'start' | 'startup' | 'refresh'; + visible: boolean; + preImportExtList: string[]; } -export declare interface IRemovedComponentInfo { - name: string; - fileID: string; +export declare interface IAssetDeleteOptions extends IAssetOperationOptionsBase { + recursive?: boolean; + useTrash?: boolean; } -export declare interface IReorderParams { - path: string; - target: number; - offset: number; +export declare interface IAssetFileSystemProvider { + readFile?(path: string, encoding?: BufferEncoding): Promise | Buffer | string; + writeFile?(path: string, content: Buffer | string | Uint8Array, options?: IAssetWriteFileOptions): Promise | void; + createDirectory?(path: string): Promise | void; + delete?(path: string, options?: IAssetDeleteOptions): Promise | void; + rename?(oldPath: string, newPath: string, options?: IAssetRenameOptions): Promise | void; + copy?(sourcePath: string, destinationPath: string, options?: IAssetRenameOptions): Promise | void; } -export declare interface IRevertToPrefabParams { - nodePath: string; +export declare interface IAssetInfo { + name: string; + source: string; + loadUrl: string; + url: string; + file: string; + uuid: string; + importer: AssetHandlerType; + imported: boolean; + invalid: boolean; + type: IAssetType; + isDirectory: boolean; + library: { [key: string]: string }; + isBundle?: boolean; + displayName?: string; + readonly?: boolean; + visible?: boolean; + subAssets?: { [key: string]: IAssetInfo }; + instantiation?: string; + redirect?: IRedirectInfo; + meta?: IAssetMeta, + parent?: { + source: string; + library: { [key: string]: string }; + uuid: string; + }; + extends?: string[]; + mtime?: number; + depends?: string[]; + dependeds?: string[]; + temp?: string; } -export declare interface ISaveOptions { - urlOrUUID?: string; +export declare interface IAssetMeta { + ver: string; + importer: AssetHandlerType; + imported: boolean; + uuid: string; + files: string[]; + subMetas: { + [index: string]: IAssetMeta<'unknown'>; + }; + userData: AssetUserDataMap[T extends keyof AssetUserDataMap ? T : 'unknown']; + displayName?: string; + id?: string; + name?: string; } -export declare interface IScene { - path: string; - name: IProperty; - active: IProperty; - locked: IProperty; - _globals: Record; - isScene: boolean; - autoReleaseAssets: IProperty; - uuid: IProperty; - children: IProperty[]; - parent: string; - __type__: string; - targetOverrides?: ITargetOverrideInfo[]; +export declare interface IAssetOperationContext { + opId: string; + kind: IAssetOperationKind; + origin: IAssetOperationOrigin; + source: string; + paths: string[]; + timestamp: number; } -export declare interface ISceneMouseEvent { - x: number; - y: number; - clientX: number; - clientY: number; - deltaX: number; - deltaY: number; - wheelDeltaX: number; - wheelDeltaY: number; - moveDeltaX: number; - moveDeltaY: number; - leftButton: boolean; - middleButton: boolean; - rightButton: boolean; - button: number; - buttons: number; - movementX: number; - movementY: number; - ctrlKey: boolean; - shiftKey: boolean; - altKey: boolean; - metaKey: boolean; - hitPoint?: any; - type?: string; - handleName?: string; +export declare type IAssetOperationKind = 'write' | 'rename' | 'move' | 'copy' | 'delete'; +export declare interface IAssetOperationOptionsBase { + context?: IAssetOperationContext; } -export declare interface ISceneViewService { - init(): void; - initFromConfig(): Promise; - saveConfig(): Promise; - setSceneLightOn(enable: boolean): void; - querySceneLightOn(): boolean; - onEditorOpened(): void; - onEditorClosed(): void; - onComponentAdded(comp: Component): void; - onComponentRemoved(comp: Component): void; +export declare type IAssetOperationOrigin = 'direct-op' | 'watcher'; +export declare interface IAssetRenameOptions extends IAssetOperationOptionsBase { + overwrite?: boolean; } -export declare interface IScriptService extends IServiceEvents { - investigatePackerDriver(): Promise; - loadScript(): Promise; - removeScript(): Promise; - scriptChange(): Promise; - queryScriptCid(uuid: string): Promise; - queryScriptName(uuid: string): Promise; - isCustomComponent(classConstructor: Function): boolean; - suspend(condition: Promise): void; +export declare type IAssetType = +| ISupportCreateCCType +| 'cc.Asset' +| 'cce.Database' +| 'cce.EffectHeader' +| 'cc.VideoClip' +| 'cc.TiledMapAsset' +| 'cc.TTFFont' +| 'cc.Texture2D' +| 'cc.SpriteFrame' +| 'cc.ImageAsset' +| 'cc.TextAsset' +| 'cc.JsonAsset' +| 'cc.AudioClip' +| 'cc.BitmapFont' +| 'cc.BufferAsset' +| 'cc.ParticleAsset' +| 'cc.RenderPipeline' +| 'cc.Skeleton' +| 'cc.Mesh' +| 'sp.SkeletonData' +| 'dragonBones.DragonBonesAsset' +| 'dragonBones.DragonBonesAtlasAsset' +| 'RenderStage' +| 'RenderFlow'; +export declare interface IAssetWriteFileOptions extends IAssetOperationOptionsBase { + create?: boolean; + overwrite?: boolean; } -export declare interface ISelectionService { - select(path: string): void; - unselect(path: string): void; - clear(): void; - query(): string[]; - isSelect(path: string): boolean; - reset(): void; +export declare interface IBaseConfiguration extends EventEmitterMethods { + moduleName: string; + getDefaultConfig(): Record | undefined; + mergeDefaultConfig(defaultConfig?: Record): void; + get(key?: string, scope?: ConfigurationScope): Promise; + getAll(scope?: ConfigurationScope): Record | undefined; + set(key: string, value: T, scope?: ConfigurationScope): Promise; + remove(key: string, scope?: ConfigurationScope): Promise; + save(): Promise; } -export declare interface IServiceEvents { - onEditorOpened?(): void; - onEditorReload?(): void; - onEditorClosed?(): void; - onEditorSaved?(): void; - onNodeBeforeChanged?(node: Node_2): void; - onBeforeRemoveNode?(node: Node_2): void; - onBeforeAddNode?(node: Node_2): void; - onNodeChanged?(node: Node_2, opts: IChangeNodeOptions): void; - onBeforeNodeAdded?(node: Node_2): void; - onAddNode?(node: Node_2): void; - onRemoveNode?(node: Node_2): void; - onNodeAdded?(node: Node_2): void; - onNodeRemoved?(node: Node_2): void; - onAddComponent?(comp: Component): void; - onRemoveComponent?(comp: Component): void; - onSetPropertyComponent?(comp: Component): void; - onComponentAdded?(comp: Component): void; - onComponentRemoved?(comp: Component): void; - onBeforeChangeComponent?(node: Node_2): void; - onBeforeAddComponent?(name: string, node: Node_2): void; - onBeforeRemoveComponent?(comp: Component): void; - onAssetDeleted?(uuid: string): void; - onAssetChanged?(uuid: string): void; - onAssetRefreshed?(uuid: string): void; - onScriptExecutionFinished?(): void; - onSelectionSelect?(path: string, paths: string[]): void; - onSelectionUnselect?(path: string, paths: string[]): void; - onSelectionClear?(): void; +export declare interface IChunkContent { + skeleton: null | string; + clips: string[]; } -export declare interface IServiceManager { - Editor: IEditorService; - Node: INodeService; - Component: IComponentService; - Script: IScriptService; - Asset: IAssetService; - Engine: IEngineService; - Animation: IAnimationService; - Prefab: IPrefabService; - Selection: ISelectionService; - Operation: IOperationService; - Undo: IUndoService; - Redo: IRedoService; - Camera: ICameraService; - Gizmo: IGizmoService; - SceneView: ISceneViewService; - Preview: IPreviewService; - UI: IUIService; +export declare interface ICocosConfigurationNode { + id: string; + title: string; + group: string; + order?: number; + properties: Record; } -export declare interface ISetParentParams { - paths: string[]; - parentPath: string; - keepWorldTransform?: boolean; +export declare interface ICocosConfigurationPropertySchema { + type: 'string' | 'number' | 'boolean' | 'object' | 'array'; + default?: unknown; + title?: string; + description?: string; + enum?: Array; + enumDescriptions?: string[]; + minimum?: number; + maximum?: number; + step?: number; + order?: number; + properties?: Record; + items?: ICocosConfigurationPropertySchema | ICocosConfigurationPropertySchema[]; + additionalProperties?: boolean | ICocosConfigurationPropertySchema; + required?: string[]; + ui?: 'asset-picker' | string; + assetType?: string; + valueField?: string; + displayFields?: string[]; + query?: Record; } -export declare interface ISetPropertyOptions { - nodePath: string; - path: string; - dump: IProperty; - record?: boolean; +export declare interface ICollisionMatrix { + [x: string]: number; } -export declare type ISupportCreateCCType = -| 'cc.AnimationClip' -| 'cc.Script' -| 'cc.SpriteAtlas' -| 'cc.EffectAsset' -| 'cc.SceneAsset' -| 'cc.Prefab' -| 'cc.Material' -| 'cc.TextureCube' -| 'cc.TerrainAsset' -| 'cc.PhysicsMaterial' -| 'cc.LabelAtlas' -| 'cc.RenderTexture' -| 'cc.AnimationGraph' -| 'cc.AnimationMask' -| 'cc.AnimationGraphVariant'; -export declare type ISupportCreateType = typeof SUPPORT_CREATE_TYPES[number]; -export declare interface ITargetOverrideInfo { - source: string; - sourceInfo?: string[]; - propertyPath: string[]; - target: string; - targetInfo?: string[]; +export declare interface IConfiguration { + [key: string]: any; } -export declare interface IUIService { - alignSelection(type: UIAlignType): Promise; - distributeSelection(type: UIAlignType): Promise; +export declare interface ICreateMenuInfo { + label: string; + name: string; + fullFileName: string; + template?: string; + handler?: string; + submenu?: ICreateMenuInfo[]; + group?: string; + fileNameCheckConfigs?: FileNameCheckConfig[]; } -export declare interface IUndoBeginOptions { - label?: string; - tag?: string; - scope?: IUndoScope; - customCommand?: IUndoCommand; +export declare type ICroppingConfig = { + name: string; + flags: IFlags_2, + includeModules: string[], + noDeprecatedFeatures: ICroppingConfigDeprecatedFeature; + moduleToFallBack?: Record; } -export declare interface IUndoCheckpoint { - commandId: string | null; - generation: number; +export declare type ICroppingConfigDeprecatedFeature = { + value: boolean, + version: string +}; +export declare interface ICustomJointTextureLayout { + textureLength: number; + contents: IChunkContent[]; } -export declare interface IUndoCommand { - meta: IUndoCommandMeta; - undo(): Promise; - redo(): Promise; +export declare type IDefaultConfig = { + key: IDefaultConfigKeys; + name: string; + diyConfig: (cache: Record, flags: IFlags_2, includeModules: string[]) => void; } -export declare interface IUndoCommandMeta { - id: string; - label: string; - type: string; - scope: IUndoScope; - timestamp: number; +export declare type IDefaultConfigKeys = 'defaultConfig' | 'default2d' | 'default3d' | 'defaultNative' | 'defaultSmallGames' +export declare interface IDesignResolution { + height: number; + width: number; + fitWidth?: boolean; + fitHeight?: boolean; + policy?: number; } -export declare interface IUndoGroupOptions { - label?: string; +export declare interface IDisplayModuleCache { + _value: boolean; + _option?: string; + _flags?: IFlags_2; } -export declare interface IUndoOperationOptions { - scope?: Partial; +export declare interface IDisplayModuleItem extends IFeatureItem { + _value: boolean; + _option?: string; + options?: Record; } -export declare interface IUndoPushWithPreviousOptions { - label?: string; - type: string; - scope: IUndoScope; - previousScope?: Partial; - previousTypes?: string[]; +export declare interface IEngineConfig extends IEngineModuleConfig { + physicsConfig: IPhysicsConfig; + macroConfig?: Record; + graphics?: IEngineGraphicsConfig; + sortingLayers: { id: number, name: string, value: number }[]; + customLayers: { name: string, value: number }[]; + renderPipeline?: string; + customPipeline?: boolean; + highQuality: boolean; + macroCustom: MacroItem[]; + customJointTextureLayouts: ICustomJointTextureLayout[]; + designResolution: IDesignResolution; + splashScreen: ISplashSetting; + downloadMaxConcurrency: number; +} +export declare interface IEngineGraphicsConfig { + pipeline?: IEngineGraphicsPipeline; + 'custom-pipeline-post-process'?: boolean; } -export declare interface IUndoRedoResult { - success: boolean; - commandId?: string; - label?: string; - reason?: string; +export declare type IEngineGraphicsPipeline = 'custom-pipeline' | 'legacy-pipeline'; +export declare interface IEngineModuleConfig { + includeModules: string[]; + flags?: IFlags; + noDeprecatedFeatures?: { value: boolean, version: string }; } -export declare interface IUndoScope { - assetUuid?: string; - assetUrl?: string; - nodePath?: string; - propPath?: string; - editorType?: 'scene' | 'prefab' | 'animation' | string; - mode?: 'general' | 'prefab' | 'animation' | 'preview' | string; +export declare interface IEngineModuleProjectConfig extends IEngineModuleConfig { + name: string; } -export declare interface IUndoService { - beginRecording(uuids: string[], options?: IUndoBeginOptions): string; - endRecording(commandId: string): Promise; - cancelRecording(commandId: string): void; - undo(options?: IUndoOperationOptions): Promise; - redo(options?: IUndoOperationOptions): Promise; - beginGroup(options?: IUndoGroupOptions): string; - endGroup(groupId: string): IUndoRedoResult; - cancelGroup(groupId: string): IUndoRedoResult; - isGroupActive(): boolean; - push(command: IUndoCommand): void; - pushWithPrevious(command: IUndoCommand, options: IUndoPushWithPreviousOptions): void; - reset(): void; - clearHistory(): void; - isDirty(): boolean; - createCheckpoint(): IUndoCheckpoint; - hasScopedDifference(checkpoint: IUndoCheckpoint, scope: Partial): boolean; - hasDifferenceOutsideScope(checkpoint: IUndoCheckpoint, scope: Partial): boolean; - canUndo(options?: IUndoOperationOptions): boolean; - canRedo(options?: IUndoOperationOptions): boolean; - markSaved(): void; - hasActiveRecording(uuid?: string): boolean; - isApplying(): boolean; +export declare interface IEngineOptions { + root: string; + distRoot: string; + baseUrl: string; + features: string[]; } -export declare interface IUnlinkPrefabParams { - nodePath: string; - removeNested?: boolean; +export declare interface IEngineProjectConfig extends Exclude { + configs?: Record; + globalConfigKey?: string; } -export declare interface IUnpackPrefabInstanceParams { - nodePath: string; - recursive?: boolean; +export declare interface IFbxSetting { + unitConversion?: 'geometry-level' | 'hierarchy-level' | 'disabled'; + animationBakeRate?: 0 | 24 | 25 | 30 | 60; + preferLocalTimeSpan?: boolean; + smartMaterialEnabled?: boolean; + matchMeshNames?: boolean; } -export declare interface IVec3 { - x: number; - y: number; - z: number; +export declare interface IFeatureGroup extends BaseItem { + options: { [feature: string]: IFeatureItem }; } -export declare interface IVirtualAssetUserData { - gltfIndex?: number; - triangleCount?: number; - lodLevel?: number; - lodOptions?: { - faceCount: number; - }; - [key: string]: any; +export declare interface IFeatureItem extends BaseItem { + enginePlugin?: boolean; + envCondition?: string; + fallback?: string; + flags: { [k: string]: Pick & { 'ui-type': 'checkbox' | 'select' } } + isNativeModule?: boolean; + cmakeConfig?: string; } -export declare type JavaScriptAssetUserData = ScriptModuleUserData | PluginScriptUserData; -export declare interface JsonAssetUserData { - json5?: boolean; +export declare type IFlags = Record; +export declare type IFlags_2 = Record; +export declare interface IGetPostConfig { + url: string | RegExp; + handler: (req: Request_2, res: Response_2, next?: NextFunction) => Promise; } -export declare interface KerningDict { - [key: number]: number; +export declare interface IInitEngineInfo { + importBase: string; + nativeBase: string; + writablePath: string; + serverURL?: string; } -export declare interface LabelAtlasAssetUserData { - itemWidth: number; - itemHeight: number; - startChar: string; - fontSize: number; - spriteFrameUuid: string; - _fntConfig: FntData; +export declare interface IJointTextureLayoutDeviceTip { + level: JointTextureLayoutDeviceTipLevel; + message: string; } -export declare interface LODsOption { - screenRatio: number; - faceCount: number; +export declare interface IJointTextureLayoutPreviewItem { + index: number; + textureLength: number; + calculatedTextureLength: number; + fallbackTextureLength?: number; + resolvedLayout: IResolvedCustomJointTextureLayout | null; + tip: IJointTextureLayoutDeviceTip; + missingAssets: string[]; } -export declare interface Mat4 { - m00: number; - m01: number; - m02: number; - m03: number; - m04: number; - m05: number; - m06: number; - m07: number; - m08: number; - m09: number; - m10: number; - m11: number; - m12: number; - m13: number; - m14: number; - m15: number; +export declare interface IJointTextureLayoutPreviewResult { + layouts: IJointTextureLayoutPreviewItem[]; + resolvedLayouts: IResolvedCustomJointTextureLayout[]; + missingAssets: string[]; } -export declare interface MeshClusterOptions { - enable: boolean; - coneCluster?: boolean; +export declare interface ImageAssetUserData { + type: ImageImportType; + flipVertical?: boolean; + fixAlphaTransparencyArtifacts?: boolean; + isRGBE?: boolean; + hasAlpha?: boolean; + redirect?: string; + visible?: boolean; + flipGreenChannel?: boolean; + sign?: string; + alpha?: string; } -export declare interface MeshCompressOptions { - enable: boolean; - encode?: boolean; - compress?: boolean; - quantize?: boolean; +export declare type ImageImportType = 'raw' | 'texture' | 'normal map' | 'sprite-frame' | 'texture cube'; +export declare interface ImageMeta { + name?: string; + uri?: string; + remap?: string; } -export declare interface MeshOptimizeOptions { - enable: boolean; - vertexCache?: boolean; - vertexFetch?: boolean; - overdraw?: boolean; +export declare interface IMiddlewareContribution { + get?: IGetPostConfig[]; + post?: IGetPostConfig[]; + staticFiles?: IStaticFileConfig[]; + socket?: ISocketConfig; } -export declare interface MeshOptimizerOption { - enable: boolean; - algorithm?: 'gltfpack' | 'simplify'; - simplifyOptions?: SimplifyOptions; - gltfpackOptions?: GltfpackOptions; +export declare interface IModuleConfig { + moduleTreeDump: { + default: IModules; + categories: Record; + }, + nativeCodeModules: string[]; + moduleCmakeConfig: Record; + moduleDependMap: Record; + moduleDependedMap: Record; + features: IModules, + ignoreModules: string[], + envLimitModule: Record; } -export declare interface MeshSimplifyOptions { - enable: boolean; - targetRatio?: number; - autoErrorRate?: boolean; - errorRate?: number; - lockBoundary?: boolean; +export declare type IModuleItem = IFeatureItem | IFeatureGroup; +export declare type IModules = Record; +export declare function importAsset(source: string, target: string, options?: AssetOperationOption): Promise; +export declare interface ImportMap { + imports?: Record; + scopes?: Record>; } -export declare enum NodeEventType { - TRANSFORM_CHANGED = "transform-changed", - SIZE_CHANGED = "size-changed", - ANCHOR_CHANGED = "anchor-changed", - CHILD_ADDED = "child-added", - CHILD_REMOVED = "child-removed", - PARENT_CHANGED = "parent-changed", - CHILD_CHANGED = "child-changed", - COMPONENT_CHANGED = "component-changed", - ACTIVE_IN_HIERARCHY_CHANGE = "active-in-hierarchy-changed", - NOTIFY_NODE_CHANGED = "notify-node-changed", - PREFAB_INFO_CHANGED = "prefab-info-changed", - LIGHT_PROBE_CHANGED = "light-probe-changed", - SET_PROPERTY = "set-property", - MOVE_ARRAY_ELEMENT = "move-array-element", - REMOVE_ARRAY_ELEMENT = "remove-array-element", - CREATE_COMPONENT = "create-component", - RESET_COMPONENT = "reset-component" +export declare function init(): Promise; +export declare function init_2(projectPath: string): Promise; +export declare function init_3(projectPath: string): Promise; +export declare function init_4(projectPath: string): Promise; +export declare function init_5(projectPath: string): Promise; +export declare function init_6(): Promise; +export declare function init_7(projectPath: string): Promise; +export declare function initEngine(enginePath: string, projectPath: string, serverURL?: string): Promise; +export declare function initProgrammingFacet(): Promise; +export declare interface IPhysicsConfig { + gravity: IVec3Like; + allowSleep: boolean; + sleepThreshold: number; + autoSimulation: boolean; + fixedTimeStep: number; + maxSubSteps: number; + defaultMaterial?: string; + useNodeChains: boolean; + collisionMatrix: ICollisionMatrix; + physicsEngine: string; + physX?: { + notPackPhysXLibs: boolean; + multiThread: boolean; + subThreadCount: number; + epsilon: number; + }; +} +export declare interface IPhysicsMaterial { + friction: number; + rollingFriction: number; + spinningFriction: number; + restitution: number; } -export declare enum NodeType { - EMPTY = "Empty", - TERRAIN = "Terrain", - CAMERA = "Camera", - SPRITE = "Sprite", - SPRITE_SPLASH = "SpriteSplash", - GRAPHICS = "Graphics", - LABEL = "Label", - MASK = "Mask", - PARTICLE = "Particle", - TILED_MAP = "TiledMap", - CAPSULE = "Capsule", - CONE = "Cone", - CUBE = "Cube", - CYLINDER = "Cylinder", - PLANE = "Plane", - QUAD = "Quad", - SPHERE = "Sphere", - TORUS = "Torus", - BUTTON = "Button", - CANVAS = "Canvas", - EDIT_BOX = "EditBox", - LAYOUT = "Layout", - PAGE_VIEW = "PageView", - PROGRESS_BAR = "ProgressBar", - RICH_TEXT = "RichText", - SCROLL_VIEW = "ScrollView", - SLIDER = "Slider", - TOGGLE = "Toggle", - TOGGLE_GROUP = "ToggleGroup", - VIDEO_PLAYER = "VideoPlayer", - WEB_VIEW = "WebView", - WIDGET = "Widget", - DIRECTIONAL_LIGHT = "Light-Directional", - SPHERE_LIGHT = "Light-Sphere", - SPOT_LIGHT = "Light-Spot", - PROBE_LIGHT = "Light-Probe-Group", - REFLECTION_LIGHT = "Light-Reflection-Probe" +export declare interface IPluginScriptInfo extends PluginScriptInfo { + url: string; } -export declare enum NormalImportSetting { - optional = 0, - exclude = 1, - require = 2, - recalculate = 3 +export declare interface IProject { + get path(): string; + get type(): '2d' | '3d'; + get pkgPath(): string; + get tmpDir(): string; + get libraryDir(): string; + open(projectPath: string): Promise; + close(): Promise; + getInfo(): ProjectInfo; + getInfo(key: string): any; + getInfo(key?: string): ProjectInfo | any; + updateInfo(keyOrValue: string | ProjectInfo, value?: T): Promise; } -export declare type OperationEvent = SceneDragEvent | SceneKeyboardEvent | SceneMouseEvent | 'resize'; -export declare interface ParticleAssetUserData { - totalParticles: number; - life: number; - lifeVar: number; - emissionRate: number; - duration: number; - srcBlendFactor: number; - dstBlendFactor: number; - startColor: any; - startColorVar: any; - endColor: any; - endColorVar: any; - startSize: number; - startSizeVar: number; - endSize: number; - endSizeVar: number; - positionType: number; - sourcePos: any; - posVar: any; - angle: number; - angleVar: number; - startSpin: number; - startSpinVar: number; - endSpin: number; - endSpinVar: number; - emitterMode: number; - gravity: any; - speed: number; - speedVar: number; - radialAccel: number; - radialAccelVar: number; - tangentialAccel: number; - tangentialAccelVar: number; - rotationIsDir: boolean; - startRadius: number; - startRadiusVar: number; - endRadius: number; - endRadiusVar: number; - rotatePerS: number; - rotatePerSVar: number; - spriteFrameUuid: string; +export declare interface IProperty { + value: { [key: string]: IPropertyValueType } | IPropertyValueType; + default?: any; + values?: ({ [key: string]: IPropertyValueType } | IPropertyValueType)[]; + lock?: { [key in keyof Vec4]?: IPropertyLock }; + cid?: string; + type?: string; + ui?: { name: string; data?: any }; + readonly?: boolean; + visible?: boolean; + name?: string; + elementTypeData?: IProperty; + path: string; + isArray?: boolean; + invalid?: boolean; + extends?: string[]; + displayName?: string; + displayOrder?: number; + help?: string; + group?: IPropertyGroupOptions; + tooltip?: string; + editor?: any; + animatable?: boolean; + radioGroup?: boolean; + enumList?: any[]; + bitmaskList?: any[]; + min?: number; + max?: number; + step?: number; + slide?: boolean; + unit?: string; + radian?: boolean; + multiline?: boolean; + optionalTypes?: string[]; + userData?: { [key: string]: any }; } -export declare interface PluginScriptUserData { - isPlugin: true; - experimentalHideCommonJs?: boolean; - experimentalHideAmd?: boolean; - simulateGlobals?: string[]; - executionScope?: 'enclosed' | 'global'; - loadPluginInEditor?: boolean; - loadPluginInWeb?: boolean; - loadPluginInMiniGame?: boolean; - loadPluginInNative?: boolean; +export declare interface IPropertyGroupOptions { + id: string + name: string, + displayOrder: number, + style: string } -export declare interface PrefabAssetUserData { - persistent?: boolean; - syncNodeName?: string; +export declare type IPropertyLock = { + default: number; + message: string +}; +export declare type IPropertyValueType = IProperty | IProperty[] | null | undefined | number | boolean | string | Vec4 | Vec3 | Vec2 | Mat4 | any | Array +export declare interface IRedirectInfo { + type: string; + uuid: string; } -export declare enum PrefabState { - NotAPrefab = 0, - PrefabChild = 1, - PrefabInstance = 2, - PrefabLostAsset = 3 +export declare interface IResolvedChunkContent { + skeleton: number; + clips: number[]; } -export declare enum ReloadResult { - SUCCESS = 0, - FAILED = 1, - QUEUED = 2, - NO_EDITOR = 3, - ASSET_NOT_FOUND = 4, - EDITOR_NOT_FOUND = 5 +export declare interface IResolvedCustomJointTextureLayout { + textureLength: number; + contents: IResolvedChunkContent[]; } -export declare interface RenderTextureAssetUserData extends TextureBaseAssetUserData { - width: number; - height: number; +export declare interface ISocketConfig { + connection: (socket: any) => void; + disconnect: (socket: any) => void; } -export declare interface RtSpriteFrameAssetUserData { - imageUuidOrDatabaseUri: string; - width?: number; - height?: number; +export declare interface ISplashBackgroundColor { + x: number; + y: number; + z: number; + w: number; } -export declare const SCENE_TEMPLATE_TYPE: readonly ["2d", "3d", "quality"]; -export declare type SceneDragEvent = 'onDragLeave' | 'onDragOver' | 'onDrop'; -export declare type SceneKeyboardEvent = 'keydown' | 'keyup'; -export declare type SceneMouseEvent = 'dblclick' | 'mousedown' | 'mousemove' | 'mouseup' | 'mousewheel'; -export declare interface ScriptModuleUserData { - isPlugin: false; +export declare interface ISplashSetting { + displayRatio: number; + totalTime: number; + watermarkLocation: 'default' | 'topLeft' | 'topRight' | 'topCenter' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'; + autoFit: boolean; + logo?: { + type: 'default' | 'none' | 'custom'; + image?: string; + base64?: string; + } + background?: { + type: 'default' | 'color' | 'custom'; + color?: ISplashBackgroundColor; + image?: string; + base64?: string; + } +} +export declare interface IStaticFileConfig { + url: string; + path: string; +} +export declare type ISupportCreateCCType = +| 'cc.AnimationClip' +| 'cc.Script' +| 'cc.SpriteAtlas' +| 'cc.EffectAsset' +| 'cc.SceneAsset' +| 'cc.Prefab' +| 'cc.Material' +| 'cc.TextureCube' +| 'cc.TerrainAsset' +| 'cc.PhysicsMaterial' +| 'cc.LabelAtlas' +| 'cc.RenderTexture' +| 'cc.AnimationGraph' +| 'cc.AnimationMask' +| 'cc.AnimationGraphVariant'; +export declare type ISupportCreateType = typeof SUPPORT_CREATE_TYPES[number]; +export declare interface IUerDataConfigItem { + key?: string; + label?: string; + description?: string; + default?: any; + type?: 'array' | 'object'; + itemConfigs?: IUerDataConfigItem[] | Record; + render?: { + ui: string; + attributes?: Record; + items?: Array<{ + label: string; + value: string; + }>; + }; +} +export declare interface IVec3Like { + x: number; + y: number; + z: number; } -export declare interface SerializedAssetFinder { - meshes?: Array; - animations?: Array; - skeletons?: Array; - textures?: Array; - materials?: Array; - scenes?: Array; +export declare interface IVirtualAssetUserData { + gltfIndex?: number; + triangleCount?: number; + lodLevel?: number; + lodOptions?: { + faceCount: number; + }; + [key: string]: any; } -export declare interface SimplifyOptions { - targetRatio?: number; - enableSmartLink?: boolean; - agressiveness?: number; - maxIterationCount?: number; +export declare type JavaScriptAssetUserData = ScriptModuleUserData | PluginScriptUserData; +export declare type JointTextureLayoutDeviceTipLevel = 'valid' | 'warning' | 'error'; +export declare interface JsonAssetUserData { + json5?: boolean; } -export declare interface SpineAssetUserData { - atlasUuid: string; +export declare interface KerningDict { + [key: number]: number; } -export declare interface SpriteAtlasAssetUserData { - atlasTextureName: string; - textureUuid: string | null; - frames: SpriteFrameAssetUserData[]; - uuid: string; - format: number; +export declare interface LabelAtlasAssetUserData { + itemWidth: number; + itemHeight: number; + startChar: string; + fontSize: number; + spriteFrameUuid: string; + _fntConfig: FntData; } -export declare interface SpriteFrameAssetUserData extends SpriteFrameBaseAssetUserData { - isUuid?: boolean; - imageUuidOrDatabaseUri: string; +export declare interface LODsOption { + screenRatio: number; + faceCount: number; } -export declare interface SpriteFrameBaseAssetUserData { - trimType?: string; - trimThreshold: number; - rotated: boolean; - offsetX: number; - offsetY: number; - trimX: number; - trimY: number; - width: number; - height: number; - rawWidth: number; - rawHeight: number; - borderTop: number; - borderBottom: number; - borderLeft: number; - borderRight: number; - packable?: boolean; - pixelsToUnit: number; - pivotX: number; - pivotY: number; - meshType: number; - vertices: SpriteFrameVertices; +export declare const enum LogLevel { + NONE = 0, + Error = 1, + WARN = 2, + LOG = 3, + DEBUG = 4 } -export declare interface SpriteFrameVertices { - rawPosition: number[]; - indexes: number[]; - uv: number[]; - nuv: number[]; - triangles?: number[]; - minPos: number[]; - maxPos: number[]; +export declare type MacroItem = { + key: string; + value: boolean; } -export declare const SUPPORT_CREATE_TYPES: readonly ["animation-clip", "typescript", "auto-atlas", "effect", "scene", "prefab", "material", "texture-cube", "terrain", "physics-material", "label-atlas", "render-texture", "directory", "effect-header"]; -export declare enum TangentImportSetting { - exclude = 0, - optional = 1, - require = 2, - recalculate = 3 +export declare type MakeRequired = T & Required>; +export declare interface Mat4 { + m00: number; + m01: number; + m02: number; + m03: number; + m04: number; + m05: number; + m06: number; + m07: number; + m08: number; + m09: number; + m10: number; + m11: number; + m12: number; + m13: number; + m14: number; + m15: number; } -export declare type TEditorEntity = IScene | INode; -export declare type TEditorInstance = Scene | Node_2; -export declare interface Texture2DAssetUserData extends TextureBaseAssetUserData { - isUuid?: boolean; - imageUuidOrDatabaseUri?: string; +export declare const material: { + query: typeof queryMaterial; + queryEffect: typeof queryMaterialEffect; + queryAllEffects: typeof queryMaterialAllEffects; + save: typeof saveMaterial; +}; +export declare interface MaterialDump { + effect: string; + technique: number; + data: MaterialTechniqueDump[]; } -export declare interface TextureBaseAssetUserData { - wrapModeS: WrapMode; - wrapModeT: WrapMode; - minfilter: Filter; - magfilter: Filter; - mipfilter: Filter; - anisotropy: number; +export declare interface MaterialEffectInfo { + uuid: string; + name: string; + hideInEditor?: boolean; + assetPath: string; } -export declare interface TextureCubeAssetUserData extends TextureBaseAssetUserData { - imageDatabaseUri?: string; - isRGBE: boolean; - mipBakeMode: number; - faceSize?: number; - sign?: string; - front?: string; - back?: string; - left?: string; - right?: string; - top?: string; - bottom?: string; +export declare interface MaterialPassDump { + index: number; + name?: string; + phase?: string; + switch?: IProperty; + propertyIndex: IProperty; + props: IProperty[]; + defines: IProperty[]; + states: IProperty; } -export declare type TSceneTemplateType = typeof SCENE_TEMPLATE_TYPE[number]; -export declare type UIAlignType = 'top' | 'v-center' | 'bottom' | 'left' | 'h-center' | 'right'; -export declare interface Vec2 { - x: number; - y: number; +export declare interface MaterialTechniqueDump { + name?: string; + passes: MaterialPassDump[]; } -export declare interface Vec3 { - x: number; - y: number; - z: number; +export declare namespace Mcp { + export { + register, + unregister, + getStatus + } } -export declare interface Vec4 { - x: number; - y: number; - z: number; - w: number; +export declare interface MeshClusterOptions { + enable: boolean; + coneCluster?: boolean; } -export declare type WrapMode = 'repeat' | 'clamp-to-edge' | 'mirrored-repeat'; -export { } -" -`; - -exports[`DTS API compatibility configuration.d.ts should match snapshot 1`] = ` -"import { EventEmitter } from 'events'; -export declare type ConfigurationScope = 'default' | 'project'; -export declare type EventEmitterMethods = Pick; -export declare function get(key: string, scope?: ConfigurationScope): Promise; -export declare function getConfigPath(): Promise; -export declare function getMetadata(): Promise; -export declare interface IBaseConfiguration extends EventEmitterMethods { - moduleName: string; - getDefaultConfig(): Record | undefined; - mergeDefaultConfig(defaultConfig?: Record): void; - get(key?: string, scope?: ConfigurationScope): Promise; - getAll(scope?: ConfigurationScope): Record | undefined; - set(key: string, value: T, scope?: ConfigurationScope): Promise; - remove(key: string, scope?: ConfigurationScope): Promise; - save(): Promise; +export declare interface MeshCompressOptions { + enable: boolean; + encode?: boolean; + compress?: boolean; + quantize?: boolean; } -export declare interface ICocosConfigurationNode { - id: string; - title: string; - group: string; - order?: number; - properties: Record; +export declare interface MeshOptimizeOptions { + enable: boolean; + vertexCache?: boolean; + vertexFetch?: boolean; + overdraw?: boolean; } -export declare interface ICocosConfigurationPropertySchema { - type: 'string' | 'number' | 'boolean' | 'object' | 'array'; - default?: unknown; - title?: string; - description?: string; - enum?: Array; - enumDescriptions?: string[]; - minimum?: number; - maximum?: number; - step?: number; - order?: number; - properties?: Record; - items?: ICocosConfigurationPropertySchema | ICocosConfigurationPropertySchema[]; - additionalProperties?: boolean | ICocosConfigurationPropertySchema; - required?: string[]; - ui?: 'asset-picker' | string; - assetType?: string; - valueField?: string; - displayFields?: string[]; - query?: Record; +export declare interface MeshOptimizerOption { + enable: boolean; + algorithm?: 'gltfpack' | 'simplify'; + simplifyOptions?: SimplifyOptions; + gltfpackOptions?: GltfpackOptions; } -export declare interface IConfiguration { - [key: string]: any; +export declare interface MeshSimplifyOptions { + enable: boolean; + targetRatio?: number; + autoErrorRate?: boolean; + errorRate?: number; + lockBoundary?: boolean; } -export declare function init(projectPath: string): Promise; export declare function migrate(): Promise; export declare function migrateFromProject(): Promise; +export declare interface Migration { + version: string; + migrate(moduleCache: Record): Record; +} +export declare interface ModuleRenderConfig { + $schema?: string; + features: Features; + categories: { [category: string]: CategoryInfo }; + version: string; + migrationScript?: string; +} +export declare function moveAsset(source: string, target: string, options?: AssetOperationOption): Promise; +export declare enum NormalImportSetting { + optional = 0, + exclude = 1, + require = 2, + recalculate = 3 +} +export declare function onAssetAdded(listener: (info: IAssetInfo) => void): () => void; +export declare function onAssetChanged(listener: (info: IAssetInfo) => void): () => void; +export declare function onAssetRemoved(listener: (info: IAssetInfo) => void): () => void; +export declare function onCompiled(listener: (e: { + scope: string; +}) => void): () => void; +export declare function onCompileStart(listener: (e: { + scope: string; + taskId?: string; +}) => void): () => void; +export declare function onDBReady(listener: (dbInfo: IAssetDBInfo) => void): () => void; export declare function onDidSave(callback: () => void): () => void; -export declare function reload(): Promise; -export declare function remove(key: string, scope?: ConfigurationScope): Promise; -export declare function save(force?: boolean): Promise; -export declare function set(key: string, value: T, scope?: ConfigurationScope): Promise; -export { } -" -`; - -exports[`DTS API compatibility engine.d.ts should match snapshot 1`] = ` -"import { __private } from 'cc'; -export declare interface BaseItem { - label?: string; - description?: string; - default: boolean; - readonly?: boolean; - hidden?: boolean; - category?: string; - required?: boolean; - dependencies?: string[]; +export declare function onPackBuildEnd(listener: (e: { + targetName: string; +}) => void): () => void; +export declare function onPackBuildStart(listener: (e: { + targetName: string; +}) => void): () => void; +export declare function onProgress(listener: (current: number, total: number, url: string, state: 'processing' | 'success' | 'failed') => void): () => void; +export declare function onReady(listener: () => void): () => void; +export declare function open_2(projectPath: string): Promise; +export declare interface ParticleAssetUserData { + totalParticles: number; + life: number; + lifeVar: number; + emissionRate: number; + duration: number; + srcBlendFactor: number; + dstBlendFactor: number; + startColor: any; + startColorVar: any; + endColor: any; + endColorVar: any; + startSize: number; + startSizeVar: number; + endSize: number; + endSizeVar: number; + positionType: number; + sourcePos: any; + posVar: any; + angle: number; + angleVar: number; + startSpin: number; + startSpinVar: number; + endSpin: number; + endSpinVar: number; + emitterMode: number; + gravity: any; + speed: number; + speedVar: number; + radialAccel: number; + radialAccelVar: number; + tangentialAccel: number; + tangentialAccelVar: number; + rotationIsDir: boolean; + startRadius: number; + startRadiusVar: number; + endRadius: number; + endRadiusVar: number; + rotatePerS: number; + rotatePerSVar: number; + spriteFrameUuid: string; } -export declare interface CategoryDetail extends CategoryInfo { - modules: IModules; +export declare interface PluginScriptInfo { + file: string; + uuid: string; } -export declare interface CategoryInfo { - label?: string; - description?: string; - checkable?: boolean; - required?: boolean; +export declare interface PluginScriptUserData { + isPlugin: true; + experimentalHideCommonJs?: boolean; + experimentalHideAmd?: boolean; + simulateGlobals?: string[]; + executionScope?: 'enclosed' | 'global'; + loadPluginInEditor?: boolean; + loadPluginInWeb?: boolean; + loadPluginInMiniGame?: boolean; + loadPluginInNative?: boolean; } -export declare interface CCEModuleConfig { - description: string; - main: string; - types: string; +export declare interface PrefabAssetUserData { + persistent?: boolean; + syncNodeName?: string; } -export declare type CCEModuleMap = { - [moduleName: string]: CCEModuleConfig; -} & { - mapLocation: string; -}; -export declare interface EngineInfo { - typescript: { - type: 'builtin' | 'custom'; - builtin: string, - path: string; - }, - native: { - type: 'builtin' | 'custom'; - builtin: string, - path: string; - }, - tmpDir: string; - version: string; +export declare class ProgrammingFacet { + private _packerDriverUpdateCount; + private _asyncIteration; + static create(engine: IEngineOptions, projectPath: string): Promise; + get engineRoot(): string; + get engineDistRoot(): string; + get systemJsHomeDir(): string; + get systemJsIndexFile(): string; + get engineImportMapURL(): string; + get packImportMapURL(): string; + get packResolutionDetailMapURL(): string; + loadPackResource(url: string): Promise<{ + type: "json"; + json: unknown; + } | { + type: "chunk"; + chunk: ChunkInfo; + }>; + getGlobalImportMap(): Promise; + }>; + private reload; + notifyPackDriverUpdated(): Promise; + private _staticImportMap; + private _engineRoot; + private _engineDistRoot; + private _systemJsHomeDir; + private _systemJsBundleFileName; + private _engineStatsQuery; + private _quickPackLoader; + private constructor(); + private _getQuickPackLoader; + private _initialize; + private _buildSystemJs; + private _resetQuickPackLoader; } -export declare interface Features { - [feature: string]: IModuleItem; +export declare namespace Project { + export { + init_5 as init, + open_2 as open, + close_2 as close, + getInfo_2 as getInfo, + get_2 as get + } } -export declare function getConfig(useDefault?: boolean): Promise; -export declare function getInfo(): Promise; -export declare function getRenderConfig(): Promise; -export declare interface IChunkContent { - skeleton: null | string; - clips: string[]; +export declare class Project_2 implements IProject { + static readonly version = "4.0.0"; + private _projectPath; + private _type; + private _pkgPath; + private _tmpDir; + private _libraryDir; + private _info; + get path(): string; + get type(): '2d' | '3d'; + static getPackageJsonPath(projectPath: string): string; + get pkgPath(): string; + get tmpDir(): string; + get libraryDir(): string; + static create(projectPath: string, type?: ProjectType): Promise; + getInfo(): ProjectInfo; + getInfo(key: string): any; + updateInfo(keyOrValue: string | ProjectInfo, value?: T): Promise; + open(projectPath: string): Promise; + close(): Promise; + private static generateProjectInfo; + private isValid; } -export declare interface ICollisionMatrix { - [x: string]: number; +export declare interface ProjectCreatorInfo { + version: string; + dependencies?: { + [name: string]: string, + }; + registry?: { + remote?: {}; + }; } -export declare type ICroppingConfig = { +export declare interface ProjectInfo { name: string; - flags: IFlags_2, - includeModules: string[], - noDeprecatedFeatures: ICroppingConfigDeprecatedFeature; - moduleToFallBack?: Record; + type: ProjectType; + version: string; + uuid: string; + creator: ProjectCreatorInfo; + [key: string]: any; } -export declare type ICroppingConfigDeprecatedFeature = { - value: boolean, - version: string -}; -export declare interface ICustomJointTextureLayout { - textureLength: number; - contents: IChunkContent[]; +export declare type ProjectType = '2d' | '3d'; +export declare function queryAssetConfigMap(): Promise>; +export declare function queryAssetDBInfos(): Promise>; +export declare function queryAssetDependencies(uuidOrUrl: string, type?: QueryAssetType): Promise; +export declare function queryAssetInfo(urlOrUUIDOrPath: string, dataKeys?: string[] | undefined): Promise; +export declare function queryAssetInfos(options?: QueryAssetsOption): Promise; +export declare function queryAssetMeta(urlOrUUIDOrPath: string): Promise | null>; +export declare interface QueryAssetsOption { + ccType?: string | string[], + isBundle?: boolean, + importer?: string | string[], + pattern?: string, + extname?: string | string[], + userData?: Record; + type?: string; } -export declare type IDefaultConfig = { - key: IDefaultConfigKeys; +export declare type QueryAssetType = 'asset' | 'script' | 'all'; +export declare function queryAssetUserDataConfig(urlOrUuidOrPath: string): Promise | undefined>; +export declare function queryAssetUsers(uuidOrUrl: string, type?: QueryAssetType): Promise; +export declare function queryCreateMap(): Promise; +export declare function queryJointTextureLayoutPreview(): Promise; +export declare function queryLayerBuiltin(): Promise<{ name: string; - diyConfig: (cache: Record, flags: IFlags_2, includeModules: string[]) => void; -} -export declare type IDefaultConfigKeys = 'defaultConfig' | 'default2d' | 'default3d' | 'defaultNative' | 'defaultSmallGames' -export declare interface IDesignResolution { - height: number; + value: number; +}[]>; +export declare function queryMaterial(uuidOrUrlOrPath: string): Promise; +export declare function queryMaterialAllEffects(): Promise>; +export declare function queryMaterialEffect(effectNameOrUuid: string): Promise; +export declare function queryPath(urlOrUuid: string): Promise; +export declare function queryPropertySchema(importer: string): Promise; +export declare function querySerializedData(uuidOrUrlOrPath: string): Promise; +export declare function querySortedPlugins(filterOptions?: FilterPluginOptions): Promise; +export declare function querySortingLayerBuiltin(): Promise; +export declare function queryThumbnailHandlers(): string[]; +export declare function queryUrl(uuidOrPath: string): Promise; +export declare function queryUUID(urlOrPath: string): Promise; +export declare function refresh(dir: string): Promise; +export declare function register(): Promise; +export declare function register_2(name: string, module: IMiddlewareContribution): Promise; +export declare function reimportAsset(pathOrUrlOrUUID: string): Promise; +export declare function reload(): Promise; +export declare function remove(key: string, scope?: ConfigurationScope): Promise; +export declare function renameAsset(source: string, newName: string, options?: AssetOperationOption): Promise; +export declare interface RenderTextureAssetUserData extends TextureBaseAssetUserData { width: number; - fitWidth?: boolean; - fitHeight?: boolean; - policy?: number; + height: number; } -export declare interface IDisplayModuleCache { - _value: boolean; - _option?: string; - _flags?: IFlags_2; +export declare interface RtSpriteFrameAssetUserData { + imageUuidOrDatabaseUri: string; + width?: number; + height?: number; } -export declare interface IDisplayModuleItem extends IFeatureItem { - _value: boolean; - _option?: string; - options?: Record; +export declare function save(force?: boolean): Promise; +export declare function saveAsset(pathOrUrlOrUUID: string, data: string | Buffer): Promise; +export declare function saveMaterial(uuidOrUrlOrPath: string, dump: MaterialDump): Promise; +export declare function saveSerializedData(uuidOrUrlOrPath: string, patch: SerializedAssetPatch): Promise; +export declare namespace Scene { + export { + init_6 as init, + startupWorker + } } -export declare interface IEngineConfig extends IEngineModuleConfig { - physicsConfig: IPhysicsConfig; - macroConfig?: Record; - graphics?: IEngineGraphicsConfig; - sortingLayers: { id: number, name: string, value: number }[]; - customLayers: { name: string, value: number }[]; - renderPipeline?: string; - customPipeline?: boolean; - highQuality: boolean; - macroCustom: MacroItem[]; - customJointTextureLayouts: ICustomJointTextureLayout[]; - designResolution: IDesignResolution; - splashScreen: ISplashSetting; - downloadMaxConcurrency: number; +export declare namespace Scripting { + export { + init_7 as init, + initProgrammingFacet, + getProgrammingFacet, + startCompileScript, + onCompileStart, + onCompiled, + onPackBuildStart, + onPackBuildEnd, + SharedSettings, + IPluginScriptInfo, + FilterPluginOptions + } } -export declare interface IEngineGraphicsConfig { - pipeline?: IEngineGraphicsPipeline; - 'custom-pipeline-post-process'?: boolean; +export declare interface ScriptModuleUserData { + isPlugin: false; } -export declare type IEngineGraphicsPipeline = 'custom-pipeline' | 'legacy-pipeline'; -export declare interface IEngineModuleConfig { - includeModules: string[]; - flags?: IFlags; - noDeprecatedFeatures?: { value: boolean, version: string }; +export declare type SerializedAssetDump = Record | IProperty; +export declare interface SerializedAssetFinder { + meshes?: Array; + animations?: Array; + skeletons?: Array; + textures?: Array; + materials?: Array; + scenes?: Array; } -export declare interface IEngineModuleProjectConfig extends IEngineModuleConfig { - name: string; +export declare type SerializedAssetPatch = SerializedAssetDump | Partial>; +export declare interface SerializedAssetQueryResult { + uuid: string; + url: string; + type: string; + importer: string; + dump: SerializedAssetDump; } -export declare interface IEngineProjectConfig extends Exclude { - configs?: Record; - globalConfigKey?: string; +export declare const serializedData: { + query: typeof querySerializedData; + save: typeof saveSerializedData; +}; +export declare namespace Server { + export { + start_2 as start, + stop_2 as stop, + getUrl, + register_2 as register, + getStatus_2 as getStatus + } } -export declare interface IFeatureGroup extends BaseItem { - options: { [feature: string]: IFeatureItem }; +export declare function set(key: string, value: T, scope?: ConfigurationScope): Promise; +export declare function setFileSystemProvider(provider: IAssetFileSystemProvider): void; +export declare interface SharedSettings { + useDefineForClassFields: boolean; + allowDeclareFields: boolean; + loose: boolean; + guessCommonJsExports: boolean; + exportsConditions: string[]; + preserveSymlinks: boolean; + importMap?: { + json: { + imports?: Record; + scopes?: Record>; + }; + url: string; + }; } -export declare interface IFeatureItem extends BaseItem { - enginePlugin?: boolean; - envCondition?: string; - fallback?: string; - flags: { [k: string]: Pick & { 'ui-type': 'checkbox' | 'select' } } - isNativeModule?: boolean; - cmakeConfig?: string; +export declare interface SimplifyOptions { + targetRatio?: number; + enableSmartLink?: boolean; + agressiveness?: number; + maxIterationCount?: number; } -export declare type IFlags = Record; -export declare type IFlags_2 = Record; -export declare interface IInitEngineInfo { - importBase: string; - nativeBase: string; - writablePath: string; - serverURL?: string; +export declare interface SpineAssetUserData { + atlasUuid: string; } -export declare interface IJointTextureLayoutDeviceTip { - level: JointTextureLayoutDeviceTipLevel; - message: string; +export declare interface SpriteAtlasAssetUserData { + atlasTextureName: string; + textureUuid: string | null; + frames: SpriteFrameAssetUserData[]; + uuid: string; + format: number; } -export declare interface IJointTextureLayoutPreviewItem { - index: number; - textureLength: number; - calculatedTextureLength: number; - fallbackTextureLength?: number; - resolvedLayout: IResolvedCustomJointTextureLayout | null; - tip: IJointTextureLayoutDeviceTip; - missingAssets: string[]; +export declare interface SpriteFrameAssetUserData extends SpriteFrameBaseAssetUserData { + isUuid?: boolean; + imageUuidOrDatabaseUri: string; } -export declare interface IJointTextureLayoutPreviewResult { - layouts: IJointTextureLayoutPreviewItem[]; - resolvedLayouts: IResolvedCustomJointTextureLayout[]; - missingAssets: string[]; +export declare interface SpriteFrameBaseAssetUserData { + trimType?: string; + trimThreshold: number; + rotated: boolean; + offsetX: number; + offsetY: number; + trimX: number; + trimY: number; + width: number; + height: number; + rawWidth: number; + rawHeight: number; + borderTop: number; + borderBottom: number; + borderLeft: number; + borderRight: number; + packable?: boolean; + pixelsToUnit: number; + pivotX: number; + pivotY: number; + meshType: number; + vertices: SpriteFrameVertices; } -export declare interface IModuleConfig { - moduleTreeDump: { - default: IModules; - categories: Record; - }, - nativeCodeModules: string[]; - moduleCmakeConfig: Record; - moduleDependMap: Record; - moduleDependedMap: Record; - features: IModules, - ignoreModules: string[], - envLimitModule: Record; +export declare interface SpriteFrameVertices { + rawPosition: number[]; + indexes: number[]; + uv: number[]; + nuv: number[]; + triangles?: number[]; + minPos: number[]; + maxPos: number[]; +} +export declare function start(): Promise; +export declare function start_2(options?: { + ip?: string; + port?: number; +}): Promise; +export declare function startCompileScript(assetChanges?: AssetChangeInfo[]): Promise; +export declare function startEngineCompilation(force?: boolean): Promise; +export declare function startupWorker(projectPath: string): Promise; +export declare function stop_2(): Promise; +export declare const SUPPORT_CREATE_TYPES: readonly ["animation-clip", "typescript", "auto-atlas", "effect", "scene", "prefab", "material", "texture-cube", "terrain", "physics-material", "label-atlas", "render-texture", "directory", "effect-header"]; +export declare enum TangentImportSetting { + exclude = 0, + optional = 1, + require = 2, + recalculate = 3 +} +export declare interface Texture2DAssetUserData extends TextureBaseAssetUserData { + isUuid?: boolean; + imageUuidOrDatabaseUri?: string; } -export declare type IModuleItem = IFeatureItem | IFeatureGroup; -export declare type IModules = Record; -export declare function init(projectPath: string): Promise; -export declare function initEngine(enginePath: string, projectPath: string, serverURL?: string): Promise; -export declare interface IPhysicsConfig { - gravity: IVec3Like; - allowSleep: boolean; - sleepThreshold: number; - autoSimulation: boolean; - fixedTimeStep: number; - maxSubSteps: number; - defaultMaterial?: string; - useNodeChains: boolean; - collisionMatrix: ICollisionMatrix; - physicsEngine: string; - physX?: { - notPackPhysXLibs: boolean; - multiThread: boolean; - subThreadCount: number; - epsilon: number; - }; +export declare interface TextureBaseAssetUserData { + wrapModeS: WrapMode; + wrapModeT: WrapMode; + minfilter: Filter; + magfilter: Filter; + mipfilter: Filter; + anisotropy: number; } -export declare interface IPhysicsMaterial { - friction: number; - rollingFriction: number; - spinningFriction: number; - restitution: number; +export declare interface TextureCubeAssetUserData extends TextureBaseAssetUserData { + imageDatabaseUri?: string; + isRGBE: boolean; + mipBakeMode: number; + faceSize?: number; + sign?: string; + front?: string; + back?: string; + left?: string; + right?: string; + top?: string; + bottom?: string; } -export declare interface IResolvedChunkContent { - skeleton: number; - clips: number[]; +export declare interface ThumbnailInfo { + type: 'icon' | 'image', + value: string; } -export declare interface IResolvedCustomJointTextureLayout { - textureLength: number; - contents: IResolvedChunkContent[]; +export declare type ThumbnailSize = 'large' | 'small' | 'middle' | 'origin'; +export declare function unregister(): Promise; +export declare function updateAssetUserData(urlOrUuidOrPath: string, userData: Record): Promise; +export declare function updateAssetUserDataByPath(urlOrUuidOrPath: string, path: string, value: any): Promise; +export declare function updateDefaultUserData(handler: string, path: string, value: any): Promise; +export declare interface Vec2 { + x: number; + y: number; } -export declare interface ISplashBackgroundColor { +export declare interface Vec3 { x: number; y: number; z: number; - w: number; -} -export declare interface ISplashSetting { - displayRatio: number; - totalTime: number; - watermarkLocation: 'default' | 'topLeft' | 'topRight' | 'topCenter' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'; - autoFit: boolean; - logo?: { - type: 'default' | 'none' | 'custom'; - image?: string; - base64?: string; - } - background?: { - type: 'default' | 'color' | 'custom'; - color?: ISplashBackgroundColor; - image?: string; - base64?: string; - } } -export declare interface IVec3Like { +export declare interface Vec4 { x: number; y: number; z: number; + w: number; } -export declare type JointTextureLayoutDeviceTipLevel = 'valid' | 'warning' | 'error'; -export declare type MacroItem = { - key: string; - value: boolean; +export declare type WrapMode = 'repeat' | 'clamp-to-edge' | 'mirrored-repeat'; +export { } +" +`; + +exports[`DTS API compatibility project.d.ts should match snapshot 1`] = ` +"export declare function close_2(): Promise; +export { close_2 as close } +export declare function get(): Promise; +export declare function getInfo(): Promise; +export declare function init(projectPath: string): Promise; +export declare interface IProject { + get path(): string; + get type(): '2d' | '3d'; + get pkgPath(): string; + get tmpDir(): string; + get libraryDir(): string; + open(projectPath: string): Promise; + close(): Promise; + getInfo(): ProjectInfo; + getInfo(key: string): any; + getInfo(key?: string): ProjectInfo | any; + updateInfo(keyOrValue: string | ProjectInfo, value?: T): Promise; } -export declare type MakeRequired = T & Required>; -export declare interface Migration { +export declare function open_2(projectPath: string): Promise; +export { open_2 as open } +export declare class Project implements IProject { + static readonly version = "4.0.0"; + private _projectPath; + private _type; + private _pkgPath; + private _tmpDir; + private _libraryDir; + private _info; + get path(): string; + get type(): '2d' | '3d'; + static getPackageJsonPath(projectPath: string): string; + get pkgPath(): string; + get tmpDir(): string; + get libraryDir(): string; + static create(projectPath: string, type?: ProjectType): Promise; + getInfo(): ProjectInfo; + getInfo(key: string): any; + updateInfo(keyOrValue: string | ProjectInfo, value?: T): Promise; + open(projectPath: string): Promise; + close(): Promise; + private static generateProjectInfo; + private isValid; +} +export declare interface ProjectCreatorInfo { version: string; - migrate(moduleCache: Record): Record; + dependencies?: { + [name: string]: string, + }; + registry?: { + remote?: {}; + }; } -export declare interface ModuleRenderConfig { - $schema?: string; - features: Features; - categories: { [category: string]: CategoryInfo }; +export declare interface ProjectInfo { + name: string; + type: ProjectType; version: string; - migrationScript?: string; + uuid: string; + creator: ProjectCreatorInfo; + [key: string]: any; +} +export declare type ProjectType = '2d' | '3d'; +export { } +" +`; + +exports[`DTS API compatibility scripting.d.ts should match snapshot 1`] = ` +"import { ChunkInfo } from '@cocos/creator-programming-quick-pack/lib/loader'; +export declare enum AssetActionEnum { + 'add' = 0, + 'change' = 1, + 'delete' = 2, + 'none' = 3 +} +export declare interface AssetChangeInfo { + type: AssetChangeType; + uuid: string; + filePath: string; + importer: string; + userData: object; +} +export declare type AssetChangeType = AssetActionEnum; +export declare interface FilterPluginOptions { + loadPluginInEditor?: boolean; + loadPluginInWeb?: boolean; + loadPluginInNative?: boolean; + loadPluginInMiniGame?: boolean; +} +export declare function getProgrammingFacet(): Promise; +export declare interface IEngineOptions { + root: string; + distRoot: string; + baseUrl: string; + features: string[]; +} +export declare interface ImportMap { + imports?: Record; + scopes?: Record>; +} +export declare function init(projectPath: string): Promise; +export declare function initProgrammingFacet(): Promise; +export declare interface IPluginScriptInfo extends PluginScriptInfo { + url: string; +} +export declare function onCompiled(listener: (e: { + scope: string; +}) => void): () => void; +export declare function onCompileStart(listener: (e: { + scope: string; + taskId?: string; +}) => void): () => void; +export declare function onPackBuildEnd(listener: (e: { + targetName: string; +}) => void): () => void; +export declare function onPackBuildStart(listener: (e: { + targetName: string; +}) => void): () => void; +export declare interface PluginScriptInfo { + file: string; + uuid: string; +} +export declare class ProgrammingFacet { + private _packerDriverUpdateCount; + private _asyncIteration; + static create(engine: IEngineOptions, projectPath: string): Promise; + get engineRoot(): string; + get engineDistRoot(): string; + get systemJsHomeDir(): string; + get systemJsIndexFile(): string; + get engineImportMapURL(): string; + get packImportMapURL(): string; + get packResolutionDetailMapURL(): string; + loadPackResource(url: string): Promise<{ + type: "json"; + json: unknown; + } | { + type: "chunk"; + chunk: ChunkInfo; + }>; + getGlobalImportMap(): Promise; + }>; + private reload; + notifyPackDriverUpdated(): Promise; + private _staticImportMap; + private _engineRoot; + private _engineDistRoot; + private _systemJsHomeDir; + private _systemJsBundleFileName; + private _engineStatsQuery; + private _quickPackLoader; + private constructor(); + private _getQuickPackLoader; + private _initialize; + private _buildSystemJs; + private _resetQuickPackLoader; +} +export declare interface SharedSettings { + useDefineForClassFields: boolean; + allowDeclareFields: boolean; + loose: boolean; + guessCommonJsExports: boolean; + exportsConditions: string[]; + preserveSymlinks: boolean; + importMap?: { + json: { + imports?: Record; + scopes?: Record>; + }; + url: string; + }; } -export declare function queryJointTextureLayoutPreview(): Promise; -export declare function queryLayerBuiltin(): Promise<{ - name: string; - value: number; -}[]>; -export declare function querySortingLayerBuiltin(): Promise; -export declare function startEngineCompilation(force?: boolean): Promise; +export declare function startCompileScript(assetChanges?: AssetChangeInfo[]): Promise; export { } " `; -exports[`DTS API compatibility index.d.ts should match snapshot 1`] = ` -"import { __private } from 'cc'; -import { ChunkInfo } from '@cocos/creator-programming-quick-pack/lib/loader'; -import { EventEmitter } from 'events'; -import { default as i18n_2 } from 'i18next'; -import { NextFunction } from 'express'; -import { Request as Request_2 } from 'express'; -import { Response as Response_2 } from 'express'; +exports[`DTS API compatibility service.d.ts should match snapshot 1`] = ` +"import type { Component } from 'cc'; +import type { Node as Node_2 } from 'cc'; +import type { Scene } from 'cc'; +import type { Vec3 as Vec3_2 } from 'cc'; export declare interface AnimationClipAssetUserData { name: string; } -export declare const animationGraphVariant: { - query(uuid: string): Promise; - change(uuid: string, dump: AnimGraphVariantDump): Promise; - save(uuid: string): Promise; -}; +export declare type AnimationEditorType = 'scene' | 'prefab' | 'unknown'; export declare interface AnimationImportSetting { name: string; duration: number; @@ -7480,223 +7549,11 @@ export declare interface AnimationImportSetting { }; }>; } -export declare const animationMask: { - query(uuid: string): Promise; - importSkeleton(uuid: string, skeletonSourceUuid: string): Promise; - clearNodes(uuid: string): Promise; - changeDump(uuid: string, changes: AnimationMaskChange[]): Promise; - save(uuid: string): Promise; -}; -export declare interface AnimationMaskChange { - path: string; - enabled: boolean; - recursive?: boolean; -} -export declare interface AnimationMaskDump { - version: 1; - assetUuid: string; - joints: AnimationMaskJoint[]; -} -export declare interface AnimationMaskJoint { - path: string; - enabled: boolean; - children?: AnimationMaskJoint[]; -} -export declare interface AnimGraphVariantDump { - graphUuid: string | null; - clips: Record; - invalids?: Record; -} -export declare const ASSET_HANDLER_TYPES: string[]; -export declare enum AssetActionEnum { - 'add' = 0, - 'change' = 1, - 'delete' = 2, - 'none' = 3 -} -export declare interface AssetChangeInfo { - type: AssetChangeType; - uuid: string; - filePath: string; - importer: string; - userData: object; -} -export declare type AssetChangeType = AssetActionEnum; -export declare interface AssetDBOptions { - name: string; - target: string; - library: string; - temp: string; - level: LogLevel; - ignoreFiles: string[]; - globList?: string[]; - readonly: boolean; - flags?: { - reimportCheck?: boolean; - }; - importConcurrency?: number; -} -export declare interface AssetDBOptions_2 { - name: string; - target: string; - library: string; - temp: string; - interval: number; - level: number; - ignoreFiles: string[]; - preImportExtList?: string[]; - readonly: boolean; - visible: boolean; - ignoreGlob?: string; -} -export declare type AssetHandlerType = typeof ASSET_HANDLER_TYPES[number] | 'database'; -export declare interface AssetInfo extends IAssetInfo { - name: string; - displayName: string; - source: string; - path: string; - url: string; - file: string; - uuid: string; - importer: string; - type: IAssetType; - isDirectory: boolean; - library: { [key: string]: string }; - subAssets: { [key: string]: AssetInfo }; - visible: boolean; - readonly: boolean; - instantiation?: string; - redirect?: IRedirectInfo; - extends?: string[]; - imported: boolean; - invalid: boolean; -} -export declare interface AssetOperationOption { - overwrite?: boolean; - rename?: boolean; -} -export declare interface AssetOperationOption { - overwrite?: boolean; - rename?: boolean; -} -export declare interface AssetPropertySchema { - label: string; - description?: string; - type: AssetPropertySchemaType; - default?: unknown; - options?: AssetPropertySchemaOption[]; - assetType?: string; - min?: number; - max?: number; - step?: number; - readOnly?: boolean; - order?: number; - properties?: Record; - items?: AssetPropertySchema | AssetPropertySchema[]; -} -export declare type AssetPropertySchemaMap = Record; -export declare interface AssetPropertySchemaOption { - label: string; - value: string | number | boolean; -} -export declare type AssetPropertySchemaType = 'string' | 'number' | 'boolean' | 'enum' | 'asset' | 'array' | 'object'; -export declare namespace Assets { - export { - init, - setFileSystemProvider, - start, - onReady, - onDBReady, - onProgress, - deleteAsset, - refresh, - queryAssetInfo, - queryAssetMeta, - queryCreateMap, - queryAssetInfos, - queryAssetDBInfos, - createAssetByType, - createAsset, - importAsset, - reimportAsset, - saveAsset, - querySerializedData, - saveSerializedData, - queryMaterialAllEffects, - queryMaterialEffect, - queryMaterial, - saveMaterial, - queryUUID, - queryPath, - queryUrl, - queryAssetDependencies, - queryAssetUsers, - querySortedPlugins, - renameAsset, - moveAsset, - updateDefaultUserData, - queryAssetUserDataConfig, - updateAssetUserData, - updateAssetUserDataByPath, - queryAssetConfigMap, - queryPropertySchema, - queryThumbnailHandlers, - generateThumbnail, - onAssetAdded, - onAssetChanged, - onAssetRemoved, - CreateAssetOptions, - IAssetConfig, - IAssetDBInfo, - ICreateMenuInfo, - IUerDataConfigItem, - QueryAssetType, - FilterPluginOptions, - IPluginScriptInfo, - AnimGraphVariantDump, - animationGraphVariant, - animationMask, - serializedData, - material, - IProperty, - IAssetDeleteOptions, - IAssetFileSystemProvider, - IAssetOperationContext, - IAssetOperationKind, - IAssetOperationOrigin, - IAssetRenameOptions, - IAssetWriteFileOptions, - IAssetMeta, - SerializedAssetDump, - SerializedAssetPatch, - SerializedAssetQueryResult, - MaterialEffectInfo, - MaterialPassDump, - MaterialTechniqueDump, - MaterialDump, - AssetPropertySchemaType, - AssetPropertySchemaOption, - AssetPropertySchema, - AssetPropertySchemaMap, - IAssetInfo, - AssetOperationOption, - DeleteAssetOptions, - AnimationMaskDump, - AnimationMaskJoint, - AnimationMaskChange, - AssetInfo, - IRedirectInfo, - QueryAssetsOption, - CreateAssetByTypeOptions, - AssetDBOptions_2 as AssetDBOptions, - ExecuteAssetDBScriptMethodOptions, - ISupportCreateCCType, - IAssetType, - ISupportCreateType, - AssetHandlerType, - AssetUserDataMap - } -} +export declare type AnimationMode = 'general' | 'prefab' | 'animation' | 'preview' | 'unknown'; +export declare type AnimationPlayOperation = 'play' | 'pause' | 'resume' | 'stop'; +export declare type AnimationPlayState_2 = 'stop' | 'playing' | 'pause'; +export declare const ASSET_HANDLER_TYPES: string[]; +export declare type AssetHandlerType = typeof ASSET_HANDLER_TYPES[number] | 'database'; export declare interface AssetUserDataMap { 'animation-clip': AnimationClipAssetUserData; 'auto-atlas': AutoAtlasAssetUserData; @@ -7755,331 +7612,561 @@ export declare interface AutoAtlasAssetUserData { platformSettings: any; textureSetting: any; } -export declare namespace Base { - export { - init_2 as init - } -} -export declare interface BaseItem { - label?: string; - description?: string; - default: boolean; - readonly?: boolean; - hidden?: boolean; - category?: string; - required?: boolean; - dependencies?: string[]; -} export declare interface BitmapFontAssetUserData { _fntConfig: any; fontSize: number; textureUuid: string; } -export declare interface CategoryDetail extends CategoryInfo { - modules: IModules; +export declare const CREATE_TYPES: readonly ["scene", "prefab"]; +export declare interface DirectoryAssetUserData { + isBundle?: boolean; + bundleConfigID?: string; + bundleName?: string; + priority?: number; } -export declare interface CategoryInfo { - label?: string; - description?: string; - checkable?: boolean; - required?: boolean; +export declare interface EffectAssetUserData { + combinations?: any; + editor?: any; } -export declare interface CCEModuleConfig { - description: string; - main: string; - types: string; +export declare type Filter = 'none' | 'nearest' | 'linear'; +export declare interface FntData { + commonHeight?: number; + fontSize?: number; + atlasName?: string; + fontDefDictionary?: FontDefDictionary; + kerningDict?: KerningDict; } -export declare type CCEModuleMap = { - [moduleName: string]: CCEModuleConfig; -} & { - mapLocation: string; -}; -export declare function close_2(): Promise; -export declare namespace Configuration { - export { - init_3 as init, - migrateFromProject, - reload, - migrate, - get, - set, - remove, - save, - getConfigPath, - onDidSave, - getMetadata, - IConfiguration, - ConfigurationScope, - IBaseConfiguration, - ICocosConfigurationNode, - ICocosConfigurationPropertySchema - } +export declare interface FontDef { + rect: { + x: number; + y: number; + width: number; + height: number; + }; + xOffset: number; + yOffset: number; + xAdvance: number; +} +export declare interface FontDefDictionary { + [charId: number]: FontDef; +} +export declare class GlobalEventManager { + on>(event: keyof TEvents, listener: TEvents[keyof TEvents] extends void ? () => void : (payload: TEvents[keyof TEvents]) => void): void; + on(event: string, listener: (...args: any[]) => void): void; + once>(event: keyof TEvents, listener: TEvents[keyof TEvents] extends void ? () => void : (payload: TEvents[keyof TEvents]) => void): void; + once(event: string, listener: (...args: any[]) => void): void; + off>(event: keyof TEvents, listener: TEvents[keyof TEvents] extends void ? () => void : (payload: TEvents[keyof TEvents]) => void): void; + off(event: string, listener: (...args: any[]) => void): void; + emit>(event: keyof TEvents, ...args: TEvents[keyof TEvents]): void; + emit(event: string, ...args: any[]): void; + broadcast>(event: keyof TEvents, ...args: TEvents[keyof TEvents]): void; + broadcast(event: string, ...args: any[]): void; + clear(event?: string): void; +} +export declare interface GltfAnimationAssetUserData { + gltfIndex: number; + events: Array<{ + frame: number; + func: string; + params: string[]; + }>; + editorExtras?: unknown; + embeddedPlayers?: Array<{ + editorExtras?: unknown; + begin: number; + end: number; + reconciledSpeed: boolean; + playable: + | { + type: 'animation-clip'; + path: string; + clip: string; + } + | { + type: 'particle-system'; + path: string; + }; + }>; + auxiliaryCurves?: Record; + wrapMode: number; + speed?: number; + sample?: number; + span?: { + from: number; + to: number; + }; + additive?: any; +} +export declare interface GltfEmbededImageAssetUserData extends IVirtualAssetUserData { + fixAlphaTransparencyArtifacts?: boolean; +} +export declare type GltfpackOptions = Record; +export declare interface GltfSkeletonAssetUserData extends IVirtualAssetUserData { + jointsLength?: number; +} +export declare interface GlTFUserData { + assetFinder?: SerializedAssetFinder; + imageMetas: ImageMeta[]; + normals?: NormalImportSetting; + tangents?: TangentImportSetting; + morphNormals?: NormalImportSetting.exclude | NormalImportSetting.optional; + dumpMaterials?: boolean; + redirectMaterialMap?: Record; + materialDumpDir?: string; + useVertexColors?: boolean; + depthWriteInAlphaModeBlend?: boolean; + skipValidation?: boolean; + animationImportSettings?: AnimationImportSetting[]; + mountAllAnimationsOnPrefab?: boolean; + legacyFbxImporter?: boolean; + disableMeshSplit?: boolean; + allowMeshDataAccess?: boolean; + addVertexColor?: boolean; + promoteSingleRootNode?: boolean; + generateLightmapUVNode?: boolean; + fbx?: IFbxSetting; + meshOptimizer?: MeshOptimizerOption; + meshOptimize?: MeshOptimizeOptions; + meshSimplify?: MeshSimplifyOptions; + meshCluster?: MeshClusterOptions; + meshCompress?: MeshCompressOptions; + lods?: { + enable: boolean; + hasBuiltinLOD: boolean; + options: LODsOption[]; + }; +} +export declare interface IAddComponentOptions { + nodePath: string; + component: string; +} +export declare interface IAnimationAuxiliaryCurveDump { + keyframes: IAnimationAuxiliaryKeyDump[]; + preExtrap: number; + postExtrap: number; +} +export declare interface IAnimationAuxiliaryKeyDump extends IAnimationCurveKeyData { + frame: number; + value: number; +} +export declare interface IAnimationClipDump { + name: string; + duration: number; + sample: number; + speed: number; + wrapMode: number; + curves: IAnimationCurveDump[]; + events: IAnimationEventDump[]; + embeddedPlayers: IAnimationEmbeddedPlayerDump[]; + embeddedPlayerGroups: IAnimationEmbeddedPlayerGroup[]; + auxiliaryCurves: Record; + time: number; + isLock: boolean; + isSkeleton: boolean; + useBakedAnimation: boolean; +} +export declare interface IAnimationClipMenuItem { + uuid: string; + name: string; +} +export declare interface IAnimationClipsInfo extends IAnimationRootResult { + clipsMenu: IAnimationClipMenuItem[]; + defaultClip: string; +} +export declare interface IAnimationCurveChannelDump { + key: string; + displayName?: string; + type?: IAnimationPropertyType; + keyframes: IAnimationCurveKeyDump[]; +} +export declare interface IAnimationCurveDump { + nodePath: string; + key: string; + keyframes: IAnimationCurveKeyDump[] | null; + channels?: IAnimationCurveChannelDump[]; + category?: string; + type?: IAnimationPropertyType; + displayName?: string; + name?: string; + comp?: string; + menuName?: string; + preExtrap?: number; + postExtrap?: number; + isCurveSupport?: boolean; + parentPropKey?: string; + partKeys?: string[]; +} +export declare interface IAnimationCurveKeyData { + inTangent?: number; + inTangentWeight?: number; + outTangent?: number; + outTangentWeight?: number; + interpMode?: number; + tangentWeightMode?: number; + tangentMode?: number; + easingMethod?: number; + broken?: boolean; +} +export declare interface IAnimationCurveKeyDump extends IAnimationCurveKeyData { + frame: number; + dump: IAnimationKeyValueDump; + imgUrl?: string; +} +export declare interface IAnimationEditClipOptions { + clipUuid: string; +} +export declare type IAnimationEmbeddedPlayable = { + type: 'animation-clip'; + clip?: string; + path?: string; +} | { + type: 'particle-system'; + path?: string; +}; +export declare interface IAnimationEmbeddedPlayerDump { + begin: number; + end: number; + reconciledSpeed: boolean; + playable?: IAnimationEmbeddedPlayable; + group: string; + displayName?: string; } -export declare type ConfigurationScope = 'default' | 'project'; -export declare function createAsset(options: CreateAssetOptions): Promise; -export declare function createAssetByType(ccType: ISupportCreateType, dirOrUrl: string, baseName: string, options?: CreateAssetByTypeOptions): Promise; -export declare interface CreateAssetByTypeOptions extends AssetOperationOption { - templateName?: string; - content?: string | Buffer | JSON; +export declare interface IAnimationEmbeddedPlayerGroup { + key: string; + name: string; + type: string; } -export declare interface CreateAssetOptions { - target: string; - content?: string | Buffer | JSON; - template?: string; - handler?: string; - uuid?: string; - overwrite?: boolean; - rename?: boolean; - userData?: Record; - customOptions?: Record; +export declare interface IAnimationEnterOptions { + rootPath?: string; + rootUuid?: string; + clipUuid?: string; + restoreSelectionOnExit?: boolean; } -export declare function deleteAsset(dbPath: string, options?: DeleteAssetOptions): Promise; -export declare interface DeleteAssetOptions { - useTrash?: boolean; +export declare interface IAnimationEventDump { + frame: number; + func: string; + params: IAnimationValue[]; } -export declare interface DirectoryAssetUserData { - isBundle?: boolean; - bundleConfigID?: string; - bundleName?: string; - priority?: number; +export declare interface IAnimationExitOptions { + save?: boolean; + restoreSelection?: boolean; + restoreSampledSceneState?: boolean; } -export declare interface EffectAssetUserData { - combinations?: any; - editor?: any; +export declare interface IAnimationKeyValueDump { + value: IAnimationValue; + default?: IAnimationValue; + extends?: string[]; + readonly?: boolean; + type?: string; + visible?: boolean; +} +export declare type IAnimationOperation = { + type: 'changeSample'; + clipUuid: string; + sample: number; +} | { + type: 'changeSpeed'; + clipUuid: string; + speed: number; +} | { + type: 'changeWrapMode'; + clipUuid: string; + wrapMode: number; +} | { + type: 'addPropertyCurve'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + value?: IAnimationValue; +} | { + type: 'createPropertyKey'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + frame: number; + value?: IAnimationValue; + channel?: string; + keyData?: IAnimationCurveKeyData; + curveData?: IAnimationCurveKeyData; +} | { + type: 'updatePropertyKey'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + frame: number; + value?: IAnimationValue; + channel?: string; + keyData?: IAnimationCurveKeyData; + curveData?: IAnimationCurveKeyData; +} | { + type: 'updatePropertyKeyData'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + frame: number; + channel?: string; + keyData?: IAnimationCurveKeyData; + curveData?: IAnimationCurveKeyData; +} | { + type: 'removePropertyCurve'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; +} | { + type: 'removePropertyKey'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + frames: number[]; + channel?: string; +} | { + type: 'removePropertyKeys'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + frames: number[]; + channel?: string; +} | { + type: 'movePropertyKeys'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + frames: number[]; + offset: number; + channel?: string; +} | { + type: 'copyPropertyKeysTo'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + frames: number[]; + dstFrame: number; + channel?: string; +} | { + type: 'setPropertyCurveExtrapolation'; + clipUuid: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + preExtrap?: number; + postExtrap?: number; +} | { + type: 'addEvent'; + clipUuid: string; + frame: number; + func: string; + params?: IAnimationValue[]; +} | { + type: 'deleteEvent'; + clipUuid: string; + frames: number[]; +} | { + type: 'updateEvent'; + clipUuid: string; + frames: number[]; + events: IAnimationEventDump[]; +} | { + type: 'moveEvents'; + clipUuid: string; + frames: number[]; + offset: number; +} | { + type: 'copyEventsTo'; + clipUuid: string; + frames: number[]; + dstFrame: number; +} | { + type: 'addEmbeddedPlayer'; + clipUuid: string; + embeddedPlayer: IAnimationEmbeddedPlayerDump; +} | { + type: 'deleteEmbeddedPlayer'; + clipUuid: string; + embeddedPlayer: IAnimationEmbeddedPlayerDump; +} | { + type: 'updateEmbeddedPlayer'; + clipUuid: string; + embeddedPlayer: IAnimationEmbeddedPlayerDump; + newEmbeddedPlayer: IAnimationEmbeddedPlayerDump; +} | { + type: 'clearEmbeddedPlayer'; + clipUuid: string; + group?: string; +} | { + type: 'addEmbeddedPlayerGroup'; + clipUuid: string; + group: IAnimationEmbeddedPlayerGroup; +} | { + type: 'removeEmbeddedPlayerGroup'; + clipUuid: string; + key: string; +} | { + type: 'clearEmbeddedPlayerGroup'; + clipUuid: string; + key: string; +} | { + type: 'addAuxiliaryCurve'; + clipUuid: string; + name: string; +} | { + type: 'removeAuxiliaryCurve'; + clipUuid: string; + name: string; +} | { + type: 'renameAuxiliaryCurve'; + clipUuid: string; + name: string; + newName: string; +} | { + type: 'createAuxKey'; + clipUuid: string; + name: string; + frame: number; + value: number; + keyData?: IAnimationCurveKeyData; + curveData?: IAnimationCurveKeyData; +} | { + type: 'removeAuxKey'; + clipUuid: string; + name: string; + frame: number; +} | { + type: 'moveAuxKeys'; + clipUuid: string; + name: string; + frames: number[]; + offset: number; +} | { + type: 'copyAuxKey'; + clipUuid: string; + name: string; + frame: number; + dstFrame: number; +} | { + type: 'updateAuxKeyData'; + clipUuid: string; + name: string; + frame: number; + keyData?: IAnimationCurveKeyData; + curveData?: IAnimationCurveKeyData; +}; +export declare interface IAnimationOperationOptions { + operations: IAnimationOperation[]; + recordUndo?: boolean; + absorbPreviousScenePropertyUndo?: boolean; } -export declare namespace Engine { - export { - init_4 as init, - getInfo, - getConfig, - getRenderConfig, - queryJointTextureLayoutPreview, - initEngine, - startEngineCompilation, - queryLayerBuiltin, - querySortingLayerBuiltin, - EngineInfo, - IFlags, - MakeRequired, - IPhysicsConfig, - ICollisionMatrix, - IVec3Like, - IPhysicsMaterial, - ICustomJointTextureLayout, - IChunkContent, - IResolvedCustomJointTextureLayout, - IResolvedChunkContent, - JointTextureLayoutDeviceTipLevel, - IJointTextureLayoutDeviceTip, - IJointTextureLayoutPreviewItem, - IJointTextureLayoutPreviewResult, - MacroItem, - ISplashBackgroundColor, - ISplashSetting, - IDesignResolution, - IEngineModuleConfig, - IEngineModuleProjectConfig, - IEngineGraphicsPipeline, - IEngineGraphicsConfig, - IEngineConfig, - IEngineProjectConfig, - IInitEngineInfo, - CCEModuleConfig, - CCEModuleMap, - ModuleRenderConfig, - Migration, - IModuleItem, - Features, - BaseItem, - IFeatureItem, - IFeatureGroup, - CategoryInfo, - IModules, - IDisplayModuleItem, - IDisplayModuleCache, - CategoryDetail, - IModuleConfig, - IDefaultConfigKeys, - IDefaultConfig, - ICroppingConfigDeprecatedFeature, - ICroppingConfig - } +export declare interface IAnimationOperationResult { + state: 'success' | 'failure'; + result: boolean; + reason?: string; } -export declare interface EngineInfo { - typescript: { - type: 'builtin' | 'custom'; - builtin: string, - path: string; - }, - native: { - type: 'builtin' | 'custom'; - builtin: string, - path: string; - }, - tmpDir: string; - version: string; +export declare interface IAnimationPlayStateOptions { + operate: AnimationPlayOperation; + clipUuid?: string; } -export declare type EventEmitterMethods = Pick; -export declare interface ExecuteAssetDBScriptMethodOptions { +export declare interface IAnimationPropertyInfo { name: string; - method: string; - args?: any[]; -} -export declare interface Features { - [feature: string]: IModuleItem; -} -export declare interface FileNameCheckConfig { - regStr: string; - failedType: 'error' | 'warn' | 'info', - failedInfo: string; + key: string; + displayName: string; + type: IAnimationPropertyType; + menuName: string; + comp?: string; + category?: string; } -export declare type Filter = 'none' | 'nearest' | 'linear'; -export declare interface FilterPluginOptions { - loadPluginInEditor?: boolean; - loadPluginInWeb?: boolean; - loadPluginInNative?: boolean; - loadPluginInMiniGame?: boolean; +export declare interface IAnimationPropertyType { + value: string; + extends?: string[]; + enumList?: Array<{ + name: string; + value: number; + }>; } -export declare interface FntData { - commonHeight?: number; - fontSize?: number; - atlasName?: string; - fontDefDictionary?: FontDefDictionary; - kerningDict?: KerningDict; +export declare interface IAnimationQueryAuxiliaryCurveValueAtFrameOptions { + clipUuid?: string; + name: string; + frame: number; } -export declare interface FontDef { - rect: { - x: number; - y: number; - width: number; - height: number; - }; - xOffset: number; - yOffset: number; - xAdvance: number; +export declare interface IAnimationQueryClipOptions extends IAnimationTargetOptions { + clipUuid?: string; } -export declare interface FontDefDictionary { - [charId: number]: FontDef; +export declare interface IAnimationQueryPropertyValueAtFrameOptions { + clipUuid?: string; + nodePath?: string; + nodeUuid?: string; + propKey: string; + frame: number; } -export declare function generateThumbnail(urlOrUUIDOrPath: string, size?: ThumbnailSize): Promise; -export declare function get(key: string, scope?: ConfigurationScope): Promise; -export declare function get_2(): Promise; -export declare function getConfig(useDefault?: boolean): Promise; -export declare function getConfigPath(): Promise; -export declare function getInfo(): Promise; -export declare function getInfo_2(): Promise; -export declare function getMetadata(): Promise; -export declare function getProgrammingFacet(): Promise; -export declare function getRenderConfig(): Promise; -export declare function getStatus(): { - registered: boolean; - url?: string; -}; -export declare function getStatus_2(): { - running: boolean; - url?: string; -}; -export declare function getUrl(): string | undefined; -export declare interface GltfAnimationAssetUserData { - gltfIndex: number; - events: Array<{ - frame: number; - func: string; - params: string[]; - }>; - editorExtras?: unknown; - embeddedPlayers?: Array<{ - editorExtras?: unknown; - begin: number; - end: number; - reconciledSpeed: boolean; - playable: - | { - type: 'animation-clip'; - path: string; - clip: string; - } - | { - type: 'particle-system'; - path: string; - }; - }>; - auxiliaryCurves?: Record; - wrapMode: number; - speed?: number; - sample?: number; - span?: { - from: number; - to: number; - }; - additive?: any; +export declare interface IAnimationRootInfo extends IAnimationClipsInfo { + nodeTreeDump: INodeTreeItem | null; + clipDump: IAnimationClipDump | null; + time: number; + state: AnimationPlayState_2; + useBakedAnimation: boolean; } -export declare interface GltfEmbededImageAssetUserData extends IVirtualAssetUserData { - fixAlphaTransparencyArtifacts?: boolean; +export declare interface IAnimationRootResult { + rootUuid: string; + rootPath: string; } -export declare type GltfpackOptions = Record; -export declare interface GltfSkeletonAssetUserData extends IVirtualAssetUserData { - jointsLength?: number; +export declare interface IAnimationSaveOptions { + saveScene?: boolean; } -export declare interface GlTFUserData { - assetFinder?: SerializedAssetFinder; - imageMetas: ImageMeta[]; - normals?: NormalImportSetting; - tangents?: TangentImportSetting; - morphNormals?: NormalImportSetting.exclude | NormalImportSetting.optional; - dumpMaterials?: boolean; - redirectMaterialMap?: Record; - materialDumpDir?: string; - useVertexColors?: boolean; - depthWriteInAlphaModeBlend?: boolean; - skipValidation?: boolean; - animationImportSettings?: AnimationImportSetting[]; - mountAllAnimationsOnPrefab?: boolean; - legacyFbxImporter?: boolean; - disableMeshSplit?: boolean; - allowMeshDataAccess?: boolean; - addVertexColor?: boolean; - promoteSingleRootNode?: boolean; - generateLightmapUVNode?: boolean; - fbx?: IFbxSetting; - meshOptimizer?: MeshOptimizerOption; - meshOptimize?: MeshOptimizeOptions; - meshSimplify?: MeshSimplifyOptions; - meshCluster?: MeshClusterOptions; - meshCompress?: MeshCompressOptions; - lods?: { - enable: boolean; - hasBuiltinLOD: boolean; - options: LODsOption[]; - }; +export declare interface IAnimationService extends IServiceEvents { + enter(options: IAnimationEnterOptions): Promise; + exit(options: IAnimationExitOptions): Promise; + queryState(): Promise; + queryRoot(options: IAnimationTargetOptions): Promise; + queryRootInfo(options: IAnimationTargetOptions): Promise; + queryClip(options: IAnimationQueryClipOptions): Promise; + queryClips(options: IAnimationTargetOptions): Promise; + queryProperties(options: IAnimationTargetOptions): Promise; + queryTime(options: IAnimationTimeOptions): Promise; + queryPropertyValueAtFrame(options: IAnimationQueryPropertyValueAtFrameOptions): Promise; + queryAuxiliaryCurveValueAtFrame(options: IAnimationQueryAuxiliaryCurveValueAtFrameOptions): Promise; + setTime(options: IAnimationSetTimeOptions): Promise; + changePlayState(options: IAnimationPlayStateOptions): Promise; + changeEditClip(options: IAnimationEditClipOptions): Promise; + applyOperations(options: IAnimationOperationOptions): Promise; + save(options?: IAnimationSaveOptions): Promise; } -export declare namespace i18n { - export { - i18n_2 as default - } +export declare interface IAnimationSetTimeOptions { + time: number; } -export declare interface IAssetConfig { - displayName?: string; - description?: string; - docURL?: string; - userDataConfig?: Record; +export declare interface IAnimationStateInfo { + active: boolean; + editorType: AnimationEditorType; + mode: AnimationMode; + rootUuid: string; + rootPath: string; + clipUuid: string; + time: number; + playState: AnimationPlayState_2; + dirty: boolean; + selection: string[]; + restoreSelectionOnExit: boolean; } -export declare interface IAssetDBInfo extends AssetDBOptions { - state: 'none' | 'start' | 'startup' | 'refresh'; - visible: boolean; - preImportExtList: string[]; +export declare interface IAnimationTargetOptions { + nodePath?: string; + nodeUuid?: string; + rootPath?: string; + rootUuid?: string; } -export declare interface IAssetDeleteOptions extends IAssetOperationOptionsBase { - recursive?: boolean; - useTrash?: boolean; +export declare interface IAnimationTimeOptions { + clipUuid?: string; } -export declare interface IAssetFileSystemProvider { - readFile?(path: string, encoding?: BufferEncoding): Promise | Buffer | string; - writeFile?(path: string, content: Buffer | string | Uint8Array, options?: IAssetWriteFileOptions): Promise | void; - createDirectory?(path: string): Promise | void; - delete?(path: string, options?: IAssetDeleteOptions): Promise | void; - rename?(oldPath: string, newPath: string, options?: IAssetRenameOptions): Promise | void; - copy?(sourcePath: string, destinationPath: string, options?: IAssetRenameOptions): Promise | void; +export declare type IAnimationValue = string | number | boolean | null | undefined | IAnimationValue[] | { + [key: string]: IAnimationValue; +}; +export declare interface IApplyPrefabChangesParams { + nodePath: string; } export declare interface IAssetInfo { name: string; @@ -8127,21 +8214,9 @@ export declare interface IAssetMeta; + assetDeleted(uuid: string): Promise; } export declare type IAssetType = | ISupportCreateCCType @@ -8168,143 +8243,174 @@ export declare type IAssetType = | 'dragonBones.DragonBonesAtlasAsset' | 'RenderStage' | 'RenderFlow'; -export declare interface IAssetWriteFileOptions extends IAssetOperationOptionsBase { - create?: boolean; - overwrite?: boolean; +export declare interface IBaseCreateNodeParams { + path: string; + name?: string; + workMode?: '2d' | '3d'; + position?: IVec3; + keepWorldTransform?: boolean; + canvasRequired?: boolean; + unlinkPrefab?: boolean; } -export declare interface IBaseConfiguration extends EventEmitterMethods { - moduleName: string; - getDefaultConfig(): Record | undefined; - mergeDefaultConfig(defaultConfig?: Record): void; - get(key?: string, scope?: ConfigurationScope): Promise; - getAll(scope?: ConfigurationScope): Record | undefined; - set(key: string, value: T, scope?: ConfigurationScope): Promise; - remove(key: string, scope?: ConfigurationScope): Promise; - save(): Promise; +export declare interface IBaseIdentifier { + assetName: string; + assetUuid: string; + assetUrl: string; + assetType: string; } -export declare interface IChunkContent { - skeleton: null | string; - clips: string[]; +export declare interface ICameraConfig { + color: number[]; + fov: number; + far: number; + near: number; + wheelSpeed: number; + wanderSpeed: number; + enableAcceleration: boolean; + aperture: number; + shutter: number; + iso: number; } -export declare interface ICocosConfigurationNode { - id: string; - title: string; - group: string; - order?: number; - properties: Record; +export declare interface ICameraService { + init(): void; + initFromConfig(): Promise; + is2D: boolean; + focus(nodes?: string[] | null, editorCameraInfo?: any, immediate?: boolean): void; + defaultFocus(uuid: string): void; + rotateCameraToDir(dir: Vec3_2, rotateByViewDist: boolean): void; + changeProjection(): void; + setGridVisible(value: boolean): void; + isGridVisible(): boolean; + setCameraProperty(options: any): void; + resetCameraProperty(): void; + queryConfig(): ICameraConfig; + updateConfig(config: Partial): void; + getCameraFov(): number; + zoomUp(): void; + zoomDown(): void; + zoomReset(): void; + alignNodeToSceneView(nodes: string[]): void; + alignSceneViewToNode(nodes: string[]): void; + setGridColor(color: number[]): void; + setOriginAxes2D(config: IOriginAxesConfig): void; + setOriginAxes3D(config: IOriginAxesConfig): void; + onUpdate(deltaTime: number): void; } -export declare interface ICocosConfigurationPropertySchema { - type: 'string' | 'number' | 'boolean' | 'object' | 'array'; - default?: unknown; - title?: string; - description?: string; - enum?: Array; - enumDescriptions?: string[]; - minimum?: number; - maximum?: number; - step?: number; - order?: number; - properties?: Record; - items?: ICocosConfigurationPropertySchema | ICocosConfigurationPropertySchema[]; - additionalProperties?: boolean | ICocosConfigurationPropertySchema; - required?: string[]; - ui?: 'asset-picker' | string; - assetType?: string; - valueField?: string; - displayFields?: string[]; - query?: Record; +export declare interface IChangeNodeLockParams { + paths: string[]; + locked: boolean; + loop?: boolean; } -export declare interface ICollisionMatrix { - [x: string]: number; +export declare interface IChangeNodeOptions { + source?: 'editor' | 'undo' | 'engine'; + type?: NodeEventType; + propPath?: string; + index?: number; + record?: boolean; + dumpImmediately?: boolean; } -export declare interface IConfiguration { - [key: string]: any; +export declare interface IClipboardState { + type: 'cut' | 'copy' | 'none'; + paths: string[]; } -export declare interface ICreateMenuInfo { - label: string; - name: string; - fullFileName: string; - template?: string; - handler?: string; - submenu?: ICreateMenuInfo[]; - group?: string; - fileNameCheckConfigs?: FileNameCheckConfig[]; +export declare interface ICloseOptions { + urlOrUUID?: string; + save?: boolean; } -export declare type ICroppingConfig = { - name: string; - flags: IFlags_2, - includeModules: string[], - noDeprecatedFeatures: ICroppingConfigDeprecatedFeature; - moduleToFallBack?: Record; +export declare interface IComponent extends IProperty { + value: { + enabled: IPropertyValueType; + uuid: IPropertyValueType; + name: IPropertyValueType; + } & Record; + mountedRoot?: string; + component_path?: string; } -export declare type ICroppingConfigDeprecatedFeature = { - value: boolean, - version: string -}; -export declare interface ICustomJointTextureLayout { - textureLength: number; - contents: IChunkContent[]; +export declare interface IComponentService extends IServiceEvents { + add(params: IAddComponentOptions): Promise; + remove(params: IRemoveComponentOptions): Promise; + setProperty(params: ISetPropertyOptions): Promise; + query(params: IQueryComponentOptions | string): Promise; + queryAll(): Promise; + reset(params: IQueryComponentOptions): Promise; + queryClasses(options?: IQueryClassesOptions): Promise<{ + name: string; + }[]>; + queryFunctionOfNode(path: string): Promise; + queryComponents(): Promise>; + executeMethod(options: IExecuteComponentMethodOptions): Promise; + hasScript(name: string): Promise; + getPathByUuid(uuid: string): string; + init(): void; + unregisterCompMgrEvents(): void; +} +export declare interface ICopyParams { + paths: string[]; +} +export declare interface ICreateByAssetParams extends IBaseCreateNodeParams { + dbURL: string; +} +export declare interface ICreateByNodeTypeParams extends IBaseCreateNodeParams { + nodeType: NodeType; +} +export declare interface ICreateOptions { + type: ICreateType; + baseName: string; + targetDirectory: string; + templateType?: TSceneTemplateType; +} +export declare interface ICreatePrefabFromNodeParams { + nodePath: string; + dbURL: string; + overwrite?: boolean; } -export declare type IDefaultConfig = { - key: IDefaultConfigKeys; +export declare type ICreateType = typeof CREATE_TYPES[number]; +export declare interface ICustomLayerConfig { name: string; - diyConfig: (cache: Record, flags: IFlags_2, includeModules: string[]) => void; + value: number; } -export declare type IDefaultConfigKeys = 'defaultConfig' | 'default2d' | 'default3d' | 'defaultNative' | 'defaultSmallGames' -export declare interface IDesignResolution { - height: number; - width: number; - fitWidth?: boolean; - fitHeight?: boolean; - policy?: number; +export declare interface ICutParams { + paths: string[]; } -export declare interface IDisplayModuleCache { - _value: boolean; - _option?: string; - _flags?: IFlags_2; +export declare interface IDeleteNodeParams { + path: string; + keepWorldTransform?: boolean; } -export declare interface IDisplayModuleItem extends IFeatureItem { - _value: boolean; - _option?: string; - options?: Record; +export declare interface IDeleteNodeResult { + path: string; } -export declare interface IEngineConfig extends IEngineModuleConfig { - physicsConfig: IPhysicsConfig; - macroConfig?: Record; - graphics?: IEngineGraphicsConfig; - sortingLayers: { id: number, name: string, value: number }[]; - customLayers: { name: string, value: number }[]; - renderPipeline?: string; - customPipeline?: boolean; - highQuality: boolean; - macroCustom: MacroItem[]; - customJointTextureLayouts: ICustomJointTextureLayout[]; - designResolution: IDesignResolution; - splashScreen: ISplashSetting; - downloadMaxConcurrency: number; +export declare interface IDuplicateParams { + paths: string[]; } -export declare interface IEngineGraphicsConfig { - pipeline?: IEngineGraphicsPipeline; - 'custom-pipeline-post-process'?: boolean; +export declare interface IEditorService extends IServiceEvents { + getCurrentEditorType(): 'scene' | 'prefab' | 'unknown'; + open(params: IOpenOptions): Promise; + close(params: ICloseOptions): Promise; + save(params: ISaveOptions): Promise; + reload(params: IReloadOptions): Promise; + create(params: ICreateOptions): Promise; + hasOpen(): Promise; + queryCurrent(): Promise; + getRootNode(): TEditorInstance | null; + lock(): Promise; + unlock(): void; } -export declare type IEngineGraphicsPipeline = 'custom-pipeline' | 'legacy-pipeline'; -export declare interface IEngineModuleConfig { - includeModules: string[]; - flags?: IFlags; - noDeprecatedFeatures?: { value: boolean, version: string }; +export declare interface IEngineService extends IServiceEvents { + init(): Promise; + repaintInEditMode(): Promise; + pause(): void; + resume(): void; + initCustomLayer(layers?: ICustomLayerConfig[]): Promise; + enterAnimationMode(): void; + exitAnimationMode(): void; } -export declare interface IEngineModuleProjectConfig extends IEngineModuleConfig { +export declare interface IExecuteComponentMethodOptions { + path: string; name: string; -} -export declare interface IEngineOptions { - root: string; - distRoot: string; - baseUrl: string; - features: string[]; -} -export declare interface IEngineProjectConfig extends Exclude { - configs?: Record; - globalConfigKey?: string; + args: any[]; } export declare interface IFbxSetting { unitConversion?: 'geometry-level' | 'hierarchy-level' | 'disabled'; @@ -8313,142 +8419,214 @@ export declare interface IFbxSetting { smartMaterialEnabled?: boolean; matchMeshNames?: boolean; } -export declare interface IFeatureGroup extends BaseItem { - options: { [feature: string]: IFeatureItem }; +export declare interface IGetPrefabInfoParams { + nodePath: string; } -export declare interface IFeatureItem extends BaseItem { - enginePlugin?: boolean; - envCondition?: string; - fallback?: string; - flags: { [k: string]: Pick & { 'ui-type': 'checkbox' | 'select' } } - isNativeModule?: boolean; - cmakeConfig?: string; +export declare interface IGizmoService { + gizmoRootNode: any; + foregroundNode: any; + backgroundNode: any; + transformToolData: any; + transformToolName: string; + isViewMode: boolean; + is2D: boolean; + init(): void; + initFromConfig(): Promise; + saveConfig(): Promise; + changeTool(name: string): void; + setCoordinate(coord: 'local' | 'global'): void; + setPivot(pivot: 'pivot' | 'center'): void; + lockGizmoTool(locked: boolean): void; + isGizmoToolLocked(): boolean; + setIconVisible(visible: boolean): void; + showAllGizmoOfNode(node: any, recursive?: boolean): void; + removeAllGizmoOfNode(node: any, recursive?: boolean): void; + clearAllGizmos(): void; + callAllGizmoFuncOfNode(node: any, funcName: string, ...params: any[]): boolean; + onUpdate(deltaTime: number): void; + queryToolsVisibility3d(): boolean; + setToolsVisibility3d(value: boolean): void; + isIconGizmo3D(): boolean; + setIconGizmo3D(value: boolean): void; + queryIconGizmoSize(): number; + setIconGizmoSize(size: number): void; + queryGridColor(): number[]; + setGridColor(color: number[]): void; + queryOriginAxes2D(): IOriginAxesConfig; + setOriginAxes2D(config: IOriginAxesConfig): void; + queryOriginAxes3D(): IOriginAxesConfig; + setOriginAxes3D(config: IOriginAxesConfig): void; + queryTransformSnapConfigs(): any; + setTransformSnapConfigs(name: string, value: any): void; + queryRectSnapConfig(): IRectSnapConfigData; + setRectSnapConfig(config: Partial): void; + querySelectNodes(): any[]; + hasSelected(uuid: string): boolean; + onResize(): void; + showSelectionRegion(left: number, right: number, top: number, bottom: number): void; + hideSelectionRegion(): void; + execGizmoMethods(name: string, funcName: string, params?: any[]): any; } -export declare type IFlags = Record; -export declare type IFlags_2 = Record; -export declare interface IGetPostConfig { - url: string | RegExp; - handler: (req: Request_2, res: Response_2, next?: NextFunction) => Promise; +export declare interface IIsPrefabInstanceParams { + nodePath: string; } -export declare interface IInitEngineInfo { - importBase: string; - nativeBase: string; - writablePath: string; - serverURL?: string; +export declare interface ImageAssetUserData { + type: ImageImportType; + flipVertical?: boolean; + fixAlphaTransparencyArtifacts?: boolean; + isRGBE?: boolean; + hasAlpha?: boolean; + redirect?: string; + visible?: boolean; + flipGreenChannel?: boolean; + sign?: string; + alpha?: string; } -export declare interface IJointTextureLayoutDeviceTip { - level: JointTextureLayoutDeviceTipLevel; - message: string; +export declare type ImageImportType = 'raw' | 'texture' | 'normal map' | 'sprite-frame' | 'texture cube'; +export declare interface ImageMeta { + name?: string; + uri?: string; + remap?: string; } -export declare interface IJointTextureLayoutPreviewItem { - index: number; - textureLength: number; - calculatedTextureLength: number; - fallbackTextureLength?: number; - resolvedLayout: IResolvedCustomJointTextureLayout | null; - tip: IJointTextureLayoutDeviceTip; - missingAssets: string[]; +export declare interface IMoveArrayElementParams { + nodePath: string; + path: string; + target: number; + offset: number; } -export declare interface IJointTextureLayoutPreviewResult { - layouts: IJointTextureLayoutPreviewItem[]; - resolvedLayouts: IResolvedCustomJointTextureLayout[]; - missingAssets: string[]; +export declare interface INode { + path: string; + active: IProperty; + locked: IProperty; + name: IProperty; + position: IProperty; + rotation: IProperty; + mobility: IProperty; + scale: IProperty; + layer: IProperty; + uuid: IProperty; + children: IProperty[]; + parent: IProperty; + __comps__: IComponent[]; + __type__: string; + __prefab__?: IPrefab; + _prefabInstance?: any; + removedComponents?: IRemovedComponentInfo[]; + mountedRoot?: string; +} +export declare interface INodeDumpOptions { + includeChildren?: boolean; + includeComponents?: boolean; +} +export declare interface INodeService extends IServiceEvents { + createByType(params: ICreateByNodeTypeParams): Promise; + createByAsset(params: ICreateByAssetParams): Promise; + delete(params: IDeleteNodeParams): Promise; + query(params?: IQueryNodeParams): Promise; + queryNodeTree(params: IQueryNodeTreeParams): Promise; + queryNodesByAssetUuid(uuid: string): string[]; + queryNodesMissAsset(): Promise; + previewSetProperty(options: ISetPropertyOptions): Promise; + cancelPreviewSetProperty(options: ISetPropertyOptions): Promise; + setProperty(options: ISetPropertyOptions): Promise; + reset(path: string): Promise; + resetProperty(options: ISetPropertyOptions): Promise; + updatePropertyFromNull(options: ISetPropertyOptions): Promise; + setNodeAndChildrenLayer(options: ISetPropertyOptions): Promise; + getPathByUuid(uuid: string): string; + setParent(params: ISetParentParams): Promise; + reorder(params: IReorderParams): Promise; + copy(params: ICopyParams): Promise; + paste(params: IPasteParams): Promise; + duplicate(params: IDuplicateParams): Promise; + cut(params: ICutParams): Promise; + queryClipboardState(): Promise; + moveArrayElement(params: IMoveArrayElementParams): Promise; + removeArrayElement(params: IRemoveArrayElementParams): Promise; + changeNodeLock(params: IChangeNodeLockParams): Promise; +} +export declare interface INodeTreeComponent { + isCustom: boolean; + type: string; + value: string; + extends: string[]; +} +export declare interface INodeTreeItem { + name: string; + active: boolean; + locked: boolean; + type: string; + uuid: string; + children: INodeTreeItem[]; + prefab: IPrefabStateInfo; + parent: string; + path: string; + isScene: boolean; + readonly: boolean; + components: INodeTreeComponent[]; } -export declare interface ImageAssetUserData { - type: ImageImportType; - flipVertical?: boolean; - fixAlphaTransparencyArtifacts?: boolean; - isRGBE?: boolean; - hasAlpha?: boolean; - redirect?: string; - visible?: boolean; - flipGreenChannel?: boolean; - sign?: string; - alpha?: string; +export declare interface IOpenOptions extends INodeDumpOptions { + urlOrUUID: string; } -export declare type ImageImportType = 'raw' | 'texture' | 'normal map' | 'sprite-frame' | 'texture cube'; -export declare interface ImageMeta { - name?: string; - uri?: string; - remap?: string; +export declare interface IOperationService { + addListener(type: OperationEvent, listener: Function, priority?: number): void; + removeListener(type: OperationEvent, listener: Function): void; + dispatch(type: OperationEvent, ...args: any[]): void; + emitMouseEvent(type: string, event: ISceneMouseEvent, dpr?: number): void; + requestPointerLock(): void; + exitPointerLock(): void; + changePointer(type: string): void; } -export declare interface IMiddlewareContribution { - get?: IGetPostConfig[]; - post?: IGetPostConfig[]; - staticFiles?: IStaticFileConfig[]; - socket?: ISocketConfig; +export declare interface IOriginAxesConfig { + x: boolean; + y: boolean; + z: boolean; } -export declare interface IModuleConfig { - moduleTreeDump: { - default: IModules; - categories: Record; - }, - nativeCodeModules: string[]; - moduleCmakeConfig: Record; - moduleDependMap: Record; - moduleDependedMap: Record; - features: IModules, - ignoreModules: string[], - envLimitModule: Record; +export declare interface IPasteParams { + parentPath?: string; + keepWorldTransform?: boolean; } -export declare type IModuleItem = IFeatureItem | IFeatureGroup; -export declare type IModules = Record; -export declare function importAsset(source: string, target: string, options?: AssetOperationOption): Promise; -export declare interface ImportMap { - imports?: Record; - scopes?: Record>; +export declare interface IPrefab { + uuid: string; + fileId: string; + rootUuid: string; + sync: boolean; + prefabStateInfo: IPrefabStateInfo; + targetOverrides?: ITargetOverrideInfo[]; + instance?: IProperty; } -export declare function init(): Promise; -export declare function init_2(projectPath: string): Promise; -export declare function init_3(projectPath: string): Promise; -export declare function init_4(projectPath: string): Promise; -export declare function init_5(projectPath: string): Promise; -export declare function init_6(): Promise; -export declare function init_7(projectPath: string): Promise; -export declare function initEngine(enginePath: string, projectPath: string, serverURL?: string): Promise; -export declare function initProgrammingFacet(): Promise; -export declare interface IPhysicsConfig { - gravity: IVec3Like; - allowSleep: boolean; - sleepThreshold: number; - autoSimulation: boolean; - fixedTimeStep: number; - maxSubSteps: number; - defaultMaterial?: string; - useNodeChains: boolean; - collisionMatrix: ICollisionMatrix; - physicsEngine: string; - physX?: { - notPackPhysXLibs: boolean; - multiThread: boolean; - subThreadCount: number; - epsilon: number; - }; +export declare interface IPrefabService extends IServiceEvents { + createPrefabFromNode(params: ICreatePrefabFromNodeParams): Promise; + applyPrefabChanges(params: IApplyPrefabChangesParams): Promise; + revertToPrefab(params: IRevertToPrefabParams): Promise; + unpackPrefabInstance(params: IUnpackPrefabInstanceParams): Promise; + isPrefabInstance(params: IIsPrefabInstanceParams): Promise; + getPrefabInfo(params: IGetPrefabInfoParams): Promise; + unlinkPrefab(params: IUnlinkPrefabParams): Promise; + removePrefabInfoFromNode(node: Node_2, removeNested?: boolean): void; } -export declare interface IPhysicsMaterial { - friction: number; - rollingFriction: number; - spinningFriction: number; - restitution: number; +export declare interface IPrefabStateInfo { + state: PrefabState; + isUnwrappable: boolean; + isRevertable: boolean; + isApplicable: boolean; + isAddedChild: boolean; + isNested: boolean; + assetUuid: string; } -export declare interface IPluginScriptInfo extends PluginScriptInfo { - url: string; +export declare interface IPreviewInstance { + onMouseDown(event: any): void; + onMouseMove(event: any): void; + onMouseUp(event: any): void; + onMouseWheel(event: any): void; + viewToggle(): void; + is2DView(): boolean; + resetCameraView(): void; + hide(): void; } -export declare interface IProject { - get path(): string; - get type(): '2d' | '3d'; - get pkgPath(): string; - get tmpDir(): string; - get libraryDir(): string; - open(projectPath: string): Promise; - close(): Promise; - getInfo(): ProjectInfo; - getInfo(key: string): any; - getInfo(key?: string): ProjectInfo | any; - updateInfo(keyOrValue: string | ProjectInfo, value?: T): Promise; +export declare interface IPreviewService { + open(uuid: string): Promise; + generateThumbnail(uuid: string, assetType: string, width?: number, height?: number): Promise; } export declare interface IProperty { value: { [key: string]: IPropertyValueType } | IPropertyValueType; @@ -8497,48 +8675,186 @@ export declare type IPropertyLock = { message: string }; export declare type IPropertyValueType = IProperty | IProperty[] | null | undefined | number | boolean | string | Vec4 | Vec3 | Vec2 | Mat4 | any | Array +export declare interface IQueryClassesOptions { + extends?: string | string[]; + excludeSelf?: boolean; +} +export declare interface IQueryComponentOptions { + path: string; +} +export declare interface IQueryNodeParams extends INodeDumpOptions { + path: string; +} +export declare interface IQueryNodeTreeParams { + path?: string; +} +export declare interface IRectSnapConfigData { + enableSnapping: boolean; + snapThreshold: number; +} export declare interface IRedirectInfo { type: string; uuid: string; } -export declare interface IResolvedChunkContent { - skeleton: number; - clips: number[]; +export declare interface IRedoService { + redo(options?: IUndoOperationOptions): Promise; + canRedo(options?: IUndoOperationOptions): boolean; } -export declare interface IResolvedCustomJointTextureLayout { - textureLength: number; - contents: IResolvedChunkContent[]; +export declare interface IReloadOptions { + urlOrUUID?: string; + preserveUndoHistory?: boolean; +} +export declare interface IRemoveArrayElementParams { + nodePath: string; + path: string; + index: number; +} +export declare interface IRemoveComponentOptions { + path: string; +} +export declare interface IRemovedComponentInfo { + name: string; + fileID: string; +} +export declare interface IReorderParams { + path: string; + target: number; + offset: number; +} +export declare interface IRevertToPrefabParams { + nodePath: string; +} +export declare interface ISaveOptions { + urlOrUUID?: string; +} +export declare interface IScene { + path: string; + name: IProperty; + active: IProperty; + locked: IProperty; + _globals: Record; + isScene: boolean; + autoReleaseAssets: IProperty; + uuid: IProperty; + children: IProperty[]; + parent: string; + __type__: string; + targetOverrides?: ITargetOverrideInfo[]; +} +export declare interface ISceneMouseEvent { + x: number; + y: number; + clientX: number; + clientY: number; + deltaX: number; + deltaY: number; + wheelDeltaX: number; + wheelDeltaY: number; + moveDeltaX: number; + moveDeltaY: number; + leftButton: boolean; + middleButton: boolean; + rightButton: boolean; + button: number; + buttons: number; + movementX: number; + movementY: number; + ctrlKey: boolean; + shiftKey: boolean; + altKey: boolean; + metaKey: boolean; + hitPoint?: any; + type?: string; + handleName?: string; +} +export declare interface ISceneViewService { + init(): void; + initFromConfig(): Promise; + saveConfig(): Promise; + setSceneLightOn(enable: boolean): void; + querySceneLightOn(): boolean; + onEditorOpened(): void; + onEditorClosed(): void; + onComponentAdded(comp: Component): void; + onComponentRemoved(comp: Component): void; +} +export declare interface IScriptService extends IServiceEvents { + investigatePackerDriver(): Promise; + loadScript(): Promise; + removeScript(): Promise; + scriptChange(): Promise; + queryScriptCid(uuid: string): Promise; + queryScriptName(uuid: string): Promise; + isCustomComponent(classConstructor: Function): boolean; + suspend(condition: Promise): void; } -export declare interface ISocketConfig { - connection: (socket: any) => void; - disconnect: (socket: any) => void; +export declare interface ISelectionService { + select(path: string): void; + unselect(path: string): void; + clear(): void; + query(): string[]; + isSelect(path: string): boolean; + reset(): void; } -export declare interface ISplashBackgroundColor { - x: number; - y: number; - z: number; - w: number; +export declare interface IServiceEvents { + onEditorOpened?(): void; + onEditorReload?(): void; + onEditorClosed?(): void; + onEditorSaved?(): void; + onNodeBeforeChanged?(node: Node_2): void; + onBeforeRemoveNode?(node: Node_2): void; + onBeforeAddNode?(node: Node_2): void; + onNodeChanged?(node: Node_2, opts: IChangeNodeOptions): void; + onBeforeNodeAdded?(node: Node_2): void; + onAddNode?(node: Node_2): void; + onRemoveNode?(node: Node_2): void; + onNodeAdded?(node: Node_2): void; + onNodeRemoved?(node: Node_2): void; + onAddComponent?(comp: Component): void; + onRemoveComponent?(comp: Component): void; + onSetPropertyComponent?(comp: Component): void; + onComponentAdded?(comp: Component): void; + onComponentRemoved?(comp: Component): void; + onBeforeChangeComponent?(node: Node_2): void; + onBeforeAddComponent?(name: string, node: Node_2): void; + onBeforeRemoveComponent?(comp: Component): void; + onAssetDeleted?(uuid: string): void; + onAssetChanged?(uuid: string): void; + onAssetRefreshed?(uuid: string): void; + onScriptExecutionFinished?(): void; + onSelectionSelect?(path: string, paths: string[]): void; + onSelectionUnselect?(path: string, paths: string[]): void; + onSelectionClear?(): void; } -export declare interface ISplashSetting { - displayRatio: number; - totalTime: number; - watermarkLocation: 'default' | 'topLeft' | 'topRight' | 'topCenter' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'; - autoFit: boolean; - logo?: { - type: 'default' | 'none' | 'custom'; - image?: string; - base64?: string; - } - background?: { - type: 'default' | 'color' | 'custom'; - color?: ISplashBackgroundColor; - image?: string; - base64?: string; - } +export declare interface IServiceManager { + Editor: IEditorService; + Node: INodeService; + Component: IComponentService; + Script: IScriptService; + Asset: IAssetService; + Engine: IEngineService; + Animation: IAnimationService; + Prefab: IPrefabService; + Selection: ISelectionService; + Operation: IOperationService; + Undo: IUndoService; + Redo: IRedoService; + Camera: ICameraService; + Gizmo: IGizmoService; + SceneView: ISceneViewService; + Preview: IPreviewService; + UI: IUIService; } -export declare interface IStaticFileConfig { - url: string; +export declare interface ISetParentParams { + paths: string[]; + parentPath: string; + keepWorldTransform?: boolean; +} +export declare interface ISetPropertyOptions { + nodePath: string; path: string; + dump: IProperty; + record?: boolean; } export declare type ISupportCreateCCType = | 'cc.AnimationClip' @@ -8557,23 +8873,99 @@ export declare type ISupportCreateCCType = | 'cc.AnimationMask' | 'cc.AnimationGraphVariant'; export declare type ISupportCreateType = typeof SUPPORT_CREATE_TYPES[number]; -export declare interface IUerDataConfigItem { - key?: string; +export declare interface ITargetOverrideInfo { + source: string; + sourceInfo?: string[]; + propertyPath: string[]; + target: string; + targetInfo?: string[]; +} +export declare interface IUIService { + alignSelection(type: UIAlignType): Promise; + distributeSelection(type: UIAlignType): Promise; +} +export declare interface IUndoBeginOptions { label?: string; - description?: string; - default?: any; - type?: 'array' | 'object'; - itemConfigs?: IUerDataConfigItem[] | Record; - render?: { - ui: string; - attributes?: Record; - items?: Array<{ - label: string; - value: string; - }>; - }; + tag?: string; + scope?: IUndoScope; + customCommand?: IUndoCommand; } -export declare interface IVec3Like { +export declare interface IUndoCheckpoint { + commandId: string | null; + generation: number; +} +export declare interface IUndoCommand { + meta: IUndoCommandMeta; + undo(): Promise; + redo(): Promise; +} +export declare interface IUndoCommandMeta { + id: string; + label: string; + type: string; + scope: IUndoScope; + timestamp: number; +} +export declare interface IUndoGroupOptions { + label?: string; +} +export declare interface IUndoOperationOptions { + scope?: Partial; +} +export declare interface IUndoPushWithPreviousOptions { + label?: string; + type: string; + scope: IUndoScope; + previousScope?: Partial; + previousTypes?: string[]; +} +export declare interface IUndoRedoResult { + success: boolean; + commandId?: string; + label?: string; + reason?: string; +} +export declare interface IUndoScope { + assetUuid?: string; + assetUrl?: string; + nodePath?: string; + propPath?: string; + editorType?: 'scene' | 'prefab' | 'animation' | string; + mode?: 'general' | 'prefab' | 'animation' | 'preview' | string; +} +export declare interface IUndoService { + beginRecording(uuids: string[], options?: IUndoBeginOptions): string; + endRecording(commandId: string): Promise; + cancelRecording(commandId: string): void; + undo(options?: IUndoOperationOptions): Promise; + redo(options?: IUndoOperationOptions): Promise; + beginGroup(options?: IUndoGroupOptions): string; + endGroup(groupId: string): IUndoRedoResult; + cancelGroup(groupId: string): IUndoRedoResult; + isGroupActive(): boolean; + push(command: IUndoCommand): void; + pushWithPrevious(command: IUndoCommand, options: IUndoPushWithPreviousOptions): void; + reset(): void; + clearHistory(): void; + isDirty(): boolean; + createCheckpoint(): IUndoCheckpoint; + hasScopedDifference(checkpoint: IUndoCheckpoint, scope: Partial): boolean; + hasDifferenceOutsideScope(checkpoint: IUndoCheckpoint, scope: Partial): boolean; + canUndo(options?: IUndoOperationOptions): boolean; + canRedo(options?: IUndoOperationOptions): boolean; + markSaved(): void; + hasActiveRecording(uuid?: string): boolean; + isApplying(): boolean; +} +export declare interface IUnlinkPrefabParams { + nodePath: string; + removeNested?: boolean; +} +export declare interface IUnpackPrefabInstanceParams { + nodePath: string; + recursive?: boolean; +} +export declare interface IVec3 { x: number; y: number; z: number; @@ -8588,7 +8980,6 @@ export declare interface IVirtualAssetUserData { [key: string]: any; } export declare type JavaScriptAssetUserData = ScriptModuleUserData | PluginScriptUserData; -export declare type JointTextureLayoutDeviceTipLevel = 'valid' | 'warning' | 'error'; export declare interface JsonAssetUserData { json5?: boolean; } @@ -8607,18 +8998,6 @@ export declare interface LODsOption { screenRatio: number; faceCount: number; } -export declare const enum LogLevel { - NONE = 0, - Error = 1, - WARN = 2, - LOG = 3, - DEBUG = 4 -} -export declare type MacroItem = { - key: string; - value: boolean; -} -export declare type MakeRequired = T & Required>; export declare interface Mat4 { m00: number; m01: number; @@ -8627,53 +9006,15 @@ export declare interface Mat4 { m04: number; m05: number; m06: number; - m07: number; - m08: number; - m09: number; - m10: number; - m11: number; - m12: number; - m13: number; - m14: number; - m15: number; -} -export declare const material: { - query: typeof queryMaterial; - queryEffect: typeof queryMaterialEffect; - queryAllEffects: typeof queryMaterialAllEffects; - save: typeof saveMaterial; -}; -export declare interface MaterialDump { - effect: string; - technique: number; - data: MaterialTechniqueDump[]; -} -export declare interface MaterialEffectInfo { - uuid: string; - name: string; - hideInEditor?: boolean; - assetPath: string; -} -export declare interface MaterialPassDump { - index: number; - name?: string; - phase?: string; - switch?: IProperty; - propertyIndex: IProperty; - props: IProperty[]; - defines: IProperty[]; - states: IProperty; -} -export declare interface MaterialTechniqueDump { - name?: string; - passes: MaterialPassDump[]; -} -export declare namespace Mcp { - export { - register, - unregister, - getStatus - } + m07: number; + m08: number; + m09: number; + m10: number; + m11: number; + m12: number; + m13: number; + m14: number; + m15: number; } export declare interface MeshClusterOptions { enable: boolean; @@ -8704,47 +9045,71 @@ export declare interface MeshSimplifyOptions { errorRate?: number; lockBoundary?: boolean; } -export declare function migrate(): Promise; -export declare function migrateFromProject(): Promise; -export declare interface Migration { - version: string; - migrate(moduleCache: Record): Record; +export declare enum NodeEventType { + TRANSFORM_CHANGED = "transform-changed", + SIZE_CHANGED = "size-changed", + ANCHOR_CHANGED = "anchor-changed", + CHILD_ADDED = "child-added", + CHILD_REMOVED = "child-removed", + PARENT_CHANGED = "parent-changed", + CHILD_CHANGED = "child-changed", + COMPONENT_CHANGED = "component-changed", + ACTIVE_IN_HIERARCHY_CHANGE = "active-in-hierarchy-changed", + NOTIFY_NODE_CHANGED = "notify-node-changed", + PREFAB_INFO_CHANGED = "prefab-info-changed", + LIGHT_PROBE_CHANGED = "light-probe-changed", + SET_PROPERTY = "set-property", + MOVE_ARRAY_ELEMENT = "move-array-element", + REMOVE_ARRAY_ELEMENT = "remove-array-element", + CREATE_COMPONENT = "create-component", + RESET_COMPONENT = "reset-component" } -export declare interface ModuleRenderConfig { - $schema?: string; - features: Features; - categories: { [category: string]: CategoryInfo }; - version: string; - migrationScript?: string; +export declare enum NodeType { + EMPTY = "Empty", + TERRAIN = "Terrain", + CAMERA = "Camera", + SPRITE = "Sprite", + SPRITE_SPLASH = "SpriteSplash", + GRAPHICS = "Graphics", + LABEL = "Label", + MASK = "Mask", + PARTICLE = "Particle", + TILED_MAP = "TiledMap", + CAPSULE = "Capsule", + CONE = "Cone", + CUBE = "Cube", + CYLINDER = "Cylinder", + PLANE = "Plane", + QUAD = "Quad", + SPHERE = "Sphere", + TORUS = "Torus", + BUTTON = "Button", + CANVAS = "Canvas", + EDIT_BOX = "EditBox", + LAYOUT = "Layout", + PAGE_VIEW = "PageView", + PROGRESS_BAR = "ProgressBar", + RICH_TEXT = "RichText", + SCROLL_VIEW = "ScrollView", + SLIDER = "Slider", + TOGGLE = "Toggle", + TOGGLE_GROUP = "ToggleGroup", + VIDEO_PLAYER = "VideoPlayer", + WEB_VIEW = "WebView", + WIDGET = "Widget", + DIRECTIONAL_LIGHT = "Light-Directional", + SPHERE_LIGHT = "Light-Sphere", + SPOT_LIGHT = "Light-Spot", + PROBE_LIGHT = "Light-Probe-Group", + REFLECTION_LIGHT = "Light-Reflection-Probe" } -export declare function moveAsset(source: string, target: string, options?: AssetOperationOption): Promise; export declare enum NormalImportSetting { optional = 0, exclude = 1, require = 2, recalculate = 3 } -export declare function onAssetAdded(listener: (info: IAssetInfo) => void): () => void; -export declare function onAssetChanged(listener: (info: IAssetInfo) => void): () => void; -export declare function onAssetRemoved(listener: (info: IAssetInfo) => void): () => void; -export declare function onCompiled(listener: (e: { - scope: string; -}) => void): () => void; -export declare function onCompileStart(listener: (e: { - scope: string; - taskId?: string; -}) => void): () => void; -export declare function onDBReady(listener: (dbInfo: IAssetDBInfo) => void): () => void; -export declare function onDidSave(callback: () => void): () => void; -export declare function onPackBuildEnd(listener: (e: { - targetName: string; -}) => void): () => void; -export declare function onPackBuildStart(listener: (e: { - targetName: string; -}) => void): () => void; -export declare function onProgress(listener: (current: number, total: number, url: string, state: 'processing' | 'success' | 'failed') => void): () => void; -export declare function onReady(listener: () => void): () => void; -export declare function open_2(projectPath: string): Promise; +export declare type OperationEvent = SceneDragEvent | SceneKeyboardEvent | SceneMouseEvent | 'resize'; export declare interface ParticleAssetUserData { totalParticles: number; life: number; @@ -8787,10 +9152,6 @@ export declare interface ParticleAssetUserData { rotatePerSVar: number; spriteFrameUuid: string; } -export declare interface PluginScriptInfo { - file: string; - uuid: string; -} export declare interface PluginScriptUserData { isPlugin: true; experimentalHideCommonJs?: boolean; @@ -8806,172 +9167,36 @@ export declare interface PrefabAssetUserData { persistent?: boolean; syncNodeName?: string; } -export declare class ProgrammingFacet { - private _packerDriverUpdateCount; - private _asyncIteration; - static create(engine: IEngineOptions, projectPath: string): Promise; - get engineRoot(): string; - get engineDistRoot(): string; - get systemJsHomeDir(): string; - get systemJsIndexFile(): string; - get engineImportMapURL(): string; - get packImportMapURL(): string; - get packResolutionDetailMapURL(): string; - loadPackResource(url: string): Promise<{ - type: "json"; - json: unknown; - } | { - type: "chunk"; - chunk: ChunkInfo; - }>; - getGlobalImportMap(): Promise; - }>; - private reload; - notifyPackDriverUpdated(): Promise; - private _staticImportMap; - private _engineRoot; - private _engineDistRoot; - private _systemJsHomeDir; - private _systemJsBundleFileName; - private _engineStatsQuery; - private _quickPackLoader; - private constructor(); - private _getQuickPackLoader; - private _initialize; - private _buildSystemJs; - private _resetQuickPackLoader; -} -export declare namespace Project { - export { - init_5 as init, - open_2 as open, - close_2 as close, - getInfo_2 as getInfo, - get_2 as get - } -} -export declare class Project_2 implements IProject { - static readonly version = "4.0.0"; - private _projectPath; - private _type; - private _pkgPath; - private _tmpDir; - private _libraryDir; - private _info; - get path(): string; - get type(): '2d' | '3d'; - static getPackageJsonPath(projectPath: string): string; - get pkgPath(): string; - get tmpDir(): string; - get libraryDir(): string; - static create(projectPath: string, type?: ProjectType): Promise; - getInfo(): ProjectInfo; - getInfo(key: string): any; - updateInfo(keyOrValue: string | ProjectInfo, value?: T): Promise; - open(projectPath: string): Promise; - close(): Promise; - private static generateProjectInfo; - private isValid; -} -export declare interface ProjectCreatorInfo { - version: string; - dependencies?: { - [name: string]: string, - }; - registry?: { - remote?: {}; - }; -} -export declare interface ProjectInfo { - name: string; - type: ProjectType; - version: string; - uuid: string; - creator: ProjectCreatorInfo; - [key: string]: any; +export declare enum PrefabState { + NotAPrefab = 0, + PrefabChild = 1, + PrefabInstance = 2, + PrefabLostAsset = 3 } -export declare type ProjectType = '2d' | '3d'; -export declare function queryAssetConfigMap(): Promise>; -export declare function queryAssetDBInfos(): Promise>; -export declare function queryAssetDependencies(uuidOrUrl: string, type?: QueryAssetType): Promise; -export declare function queryAssetInfo(urlOrUUIDOrPath: string, dataKeys?: string[] | undefined): Promise; -export declare function queryAssetInfos(options?: QueryAssetsOption): Promise; -export declare function queryAssetMeta(urlOrUUIDOrPath: string): Promise | null>; -export declare interface QueryAssetsOption { - ccType?: string | string[], - isBundle?: boolean, - importer?: string | string[], - pattern?: string, - extname?: string | string[], - userData?: Record; - type?: string; +export declare enum ReloadResult { + SUCCESS = 0, + FAILED = 1, + QUEUED = 2, + NO_EDITOR = 3, + ASSET_NOT_FOUND = 4, + EDITOR_NOT_FOUND = 5 } -export declare type QueryAssetType = 'asset' | 'script' | 'all'; -export declare function queryAssetUserDataConfig(urlOrUuidOrPath: string): Promise | undefined>; -export declare function queryAssetUsers(uuidOrUrl: string, type?: QueryAssetType): Promise; -export declare function queryCreateMap(): Promise; -export declare function queryJointTextureLayoutPreview(): Promise; -export declare function queryLayerBuiltin(): Promise<{ - name: string; - value: number; -}[]>; -export declare function queryMaterial(uuidOrUrlOrPath: string): Promise; -export declare function queryMaterialAllEffects(): Promise>; -export declare function queryMaterialEffect(effectNameOrUuid: string): Promise; -export declare function queryPath(urlOrUuid: string): Promise; -export declare function queryPropertySchema(importer: string): Promise; -export declare function querySerializedData(uuidOrUrlOrPath: string): Promise; -export declare function querySortedPlugins(filterOptions?: FilterPluginOptions): Promise; -export declare function querySortingLayerBuiltin(): Promise; -export declare function queryThumbnailHandlers(): string[]; -export declare function queryUrl(uuidOrPath: string): Promise; -export declare function queryUUID(urlOrPath: string): Promise; -export declare function refresh(dir: string): Promise; -export declare function register(): Promise; -export declare function register_2(name: string, module: IMiddlewareContribution): Promise; -export declare function reimportAsset(pathOrUrlOrUUID: string): Promise; -export declare function reload(): Promise; -export declare function remove(key: string, scope?: ConfigurationScope): Promise; -export declare function renameAsset(source: string, newName: string, options?: AssetOperationOption): Promise; export declare interface RenderTextureAssetUserData extends TextureBaseAssetUserData { width: number; height: number; } -export declare interface RtSpriteFrameAssetUserData { - imageUuidOrDatabaseUri: string; - width?: number; - height?: number; -} -export declare function save(force?: boolean): Promise; -export declare function saveAsset(pathOrUrlOrUUID: string, data: string | Buffer): Promise; -export declare function saveMaterial(uuidOrUrlOrPath: string, dump: MaterialDump): Promise; -export declare function saveSerializedData(uuidOrUrlOrPath: string, patch: SerializedAssetPatch): Promise; -export declare namespace Scene { - export { - init_6 as init, - startupWorker - } -} -export declare namespace Scripting { - export { - init_7 as init, - initProgrammingFacet, - getProgrammingFacet, - startCompileScript, - onCompileStart, - onCompiled, - onPackBuildStart, - onPackBuildEnd, - SharedSettings, - IPluginScriptInfo, - FilterPluginOptions - } +export declare interface RtSpriteFrameAssetUserData { + imageUuidOrDatabaseUri: string; + width?: number; + height?: number; } +export declare const SCENE_TEMPLATE_TYPE: readonly ["2d", "3d", "quality"]; +export declare type SceneDragEvent = 'onDragLeave' | 'onDragOver' | 'onDrop'; +export declare type SceneKeyboardEvent = 'keydown' | 'keyup'; +export declare type SceneMouseEvent = 'dblclick' | 'mousedown' | 'mousemove' | 'mouseup' | 'mousewheel'; export declare interface ScriptModuleUserData { isPlugin: false; } -export declare type SerializedAssetDump = Record | IProperty; export declare interface SerializedAssetFinder { meshes?: Array; animations?: Array; @@ -8980,44 +9205,7 @@ export declare interface SerializedAssetFinder { materials?: Array; scenes?: Array; } -export declare type SerializedAssetPatch = SerializedAssetDump | Partial>; -export declare interface SerializedAssetQueryResult { - uuid: string; - url: string; - type: string; - importer: string; - dump: SerializedAssetDump; -} -export declare const serializedData: { - query: typeof querySerializedData; - save: typeof saveSerializedData; -}; -export declare namespace Server { - export { - start_2 as start, - stop_2 as stop, - getUrl, - register_2 as register, - getStatus_2 as getStatus - } -} -export declare function set(key: string, value: T, scope?: ConfigurationScope): Promise; -export declare function setFileSystemProvider(provider: IAssetFileSystemProvider): void; -export declare interface SharedSettings { - useDefineForClassFields: boolean; - allowDeclareFields: boolean; - loose: boolean; - guessCommonJsExports: boolean; - exportsConditions: string[]; - preserveSymlinks: boolean; - importMap?: { - json: { - imports?: Record; - scopes?: Record>; - }; - url: string; - }; -} +export declare const Service: IServiceManager; export declare interface SimplifyOptions { targetRatio?: number; enableSmartLink?: boolean; @@ -9070,12 +9258,6 @@ export declare interface SpriteFrameVertices { minPos: number[]; maxPos: number[]; } -export declare function start(): Promise; -export declare function start_2(port?: number): Promise; -export declare function startCompileScript(assetChanges?: AssetChangeInfo[]): Promise; -export declare function startEngineCompilation(force?: boolean): Promise; -export declare function startupWorker(projectPath: string): Promise; -export declare function stop_2(): Promise; export declare const SUPPORT_CREATE_TYPES: readonly ["animation-clip", "typescript", "auto-atlas", "effect", "scene", "prefab", "material", "texture-cube", "terrain", "physics-material", "label-atlas", "render-texture", "directory", "effect-header"]; export declare enum TangentImportSetting { exclude = 0, @@ -9083,6 +9265,8 @@ export declare enum TangentImportSetting { require = 2, recalculate = 3 } +export declare type TEditorEntity = IScene | INode; +export declare type TEditorInstance = Scene | Node_2; export declare interface Texture2DAssetUserData extends TextureBaseAssetUserData { isUuid?: boolean; imageUuidOrDatabaseUri?: string; @@ -9108,15 +9292,8 @@ export declare interface TextureCubeAssetUserData extends TextureBaseAssetUserDa top?: string; bottom?: string; } -export declare interface ThumbnailInfo { - type: 'icon' | 'image', - value: string; -} -export declare type ThumbnailSize = 'large' | 'small' | 'middle' | 'origin'; -export declare function unregister(): Promise; -export declare function updateAssetUserData(urlOrUuidOrPath: string, userData: Record): Promise; -export declare function updateAssetUserDataByPath(urlOrUuidOrPath: string, path: string, value: any): Promise; -export declare function updateDefaultUserData(handler: string, path: string, value: any): Promise; +export declare type TSceneTemplateType = typeof SCENE_TEMPLATE_TYPE[number]; +export declare type UIAlignType = 'top' | 'v-center' | 'bottom' | 'left' | 'h-center' | 'right'; export declare interface Vec2 { x: number; y: number; @@ -9136,180 +9313,3 @@ export declare type WrapMode = 'repeat' | 'clamp-to-edge' | 'mirrored-repeat'; export { } " `; - -exports[`DTS API compatibility project.d.ts should match snapshot 1`] = ` -"export declare function close_2(): Promise; -export { close_2 as close } -export declare function get(): Promise; -export declare function getInfo(): Promise; -export declare function init(projectPath: string): Promise; -export declare interface IProject { - get path(): string; - get type(): '2d' | '3d'; - get pkgPath(): string; - get tmpDir(): string; - get libraryDir(): string; - open(projectPath: string): Promise; - close(): Promise; - getInfo(): ProjectInfo; - getInfo(key: string): any; - getInfo(key?: string): ProjectInfo | any; - updateInfo(keyOrValue: string | ProjectInfo, value?: T): Promise; -} -export declare function open_2(projectPath: string): Promise; -export { open_2 as open } -export declare class Project implements IProject { - static readonly version = "4.0.0"; - private _projectPath; - private _type; - private _pkgPath; - private _tmpDir; - private _libraryDir; - private _info; - get path(): string; - get type(): '2d' | '3d'; - static getPackageJsonPath(projectPath: string): string; - get pkgPath(): string; - get tmpDir(): string; - get libraryDir(): string; - static create(projectPath: string, type?: ProjectType): Promise; - getInfo(): ProjectInfo; - getInfo(key: string): any; - updateInfo(keyOrValue: string | ProjectInfo, value?: T): Promise; - open(projectPath: string): Promise; - close(): Promise; - private static generateProjectInfo; - private isValid; -} -export declare interface ProjectCreatorInfo { - version: string; - dependencies?: { - [name: string]: string, - }; - registry?: { - remote?: {}; - }; -} -export declare interface ProjectInfo { - name: string; - type: ProjectType; - version: string; - uuid: string; - creator: ProjectCreatorInfo; - [key: string]: any; -} -export declare type ProjectType = '2d' | '3d'; -export { } -" -`; - -exports[`DTS API compatibility scripting.d.ts should match snapshot 1`] = ` -"import { ChunkInfo } from '@cocos/creator-programming-quick-pack/lib/loader'; -export declare enum AssetActionEnum { - 'add' = 0, - 'change' = 1, - 'delete' = 2, - 'none' = 3 -} -export declare interface AssetChangeInfo { - type: AssetChangeType; - uuid: string; - filePath: string; - importer: string; - userData: object; -} -export declare type AssetChangeType = AssetActionEnum; -export declare interface FilterPluginOptions { - loadPluginInEditor?: boolean; - loadPluginInWeb?: boolean; - loadPluginInNative?: boolean; - loadPluginInMiniGame?: boolean; -} -export declare function getProgrammingFacet(): Promise; -export declare interface IEngineOptions { - root: string; - distRoot: string; - baseUrl: string; - features: string[]; -} -export declare interface ImportMap { - imports?: Record; - scopes?: Record>; -} -export declare function init(projectPath: string): Promise; -export declare function initProgrammingFacet(): Promise; -export declare interface IPluginScriptInfo extends PluginScriptInfo { - url: string; -} -export declare function onCompiled(listener: (e: { - scope: string; -}) => void): () => void; -export declare function onCompileStart(listener: (e: { - scope: string; - taskId?: string; -}) => void): () => void; -export declare function onPackBuildEnd(listener: (e: { - targetName: string; -}) => void): () => void; -export declare function onPackBuildStart(listener: (e: { - targetName: string; -}) => void): () => void; -export declare interface PluginScriptInfo { - file: string; - uuid: string; -} -export declare class ProgrammingFacet { - private _packerDriverUpdateCount; - private _asyncIteration; - static create(engine: IEngineOptions, projectPath: string): Promise; - get engineRoot(): string; - get engineDistRoot(): string; - get systemJsHomeDir(): string; - get systemJsIndexFile(): string; - get engineImportMapURL(): string; - get packImportMapURL(): string; - get packResolutionDetailMapURL(): string; - loadPackResource(url: string): Promise<{ - type: "json"; - json: unknown; - } | { - type: "chunk"; - chunk: ChunkInfo; - }>; - getGlobalImportMap(): Promise; - }>; - private reload; - notifyPackDriverUpdated(): Promise; - private _staticImportMap; - private _engineRoot; - private _engineDistRoot; - private _systemJsHomeDir; - private _systemJsBundleFileName; - private _engineStatsQuery; - private _quickPackLoader; - private constructor(); - private _getQuickPackLoader; - private _initialize; - private _buildSystemJs; - private _resetQuickPackLoader; -} -export declare interface SharedSettings { - useDefineForClassFields: boolean; - allowDeclareFields: boolean; - loose: boolean; - guessCommonJsExports: boolean; - exportsConditions: string[]; - preserveSymlinks: boolean; - importMap?: { - json: { - imports?: Record; - scopes?: Record>; - }; - url: string; - }; -} -export declare function startCompileScript(assetChanges?: AssetChangeInfo[]): Promise; -export { } -" -`; diff --git a/packages/cocos-cli-types/__tests__/cli.test.ts b/packages/cocos-cli-types/__tests__/cli.test.ts deleted file mode 100644 index b22ac4b3b..000000000 --- a/packages/cocos-cli-types/__tests__/cli.test.ts +++ /dev/null @@ -1,102 +0,0 @@ -import type { ICLI, IServiceManager, GlobalEventManager } from '../cli'; - -describe('cocos-cli-types: cli', () => { - it('should export ICLI interface with Scene and SceneEvents', () => { - const cli: Partial = {}; - expect(cli).toBeDefined(); - }); - - it('IServiceManager should have all 15 service modules', () => { - const scene: Partial = {}; - - const serviceKeys: (keyof IServiceManager)[] = [ - 'Editor', 'Node', 'Component', 'Script', - 'Asset', 'Engine', 'Prefab', 'Selection', - 'Operation', 'Undo', 'Camera', 'Gizmo', - 'SceneView', 'Preview', 'UI', - ]; - - for (const key of serviceKeys) { - expect(key).toBeDefined(); - } - expect(serviceKeys).toHaveLength(15); - expect(scene).toBeDefined(); - }); - - it('IServiceManager.Editor should have core methods', () => { - type EditorKeys = keyof IServiceManager['Editor']; - const editorMethods: EditorKeys[] = ['open', 'close', 'save', 'reload', 'create', 'queryCurrent', 'hasOpen']; - expect(editorMethods.length).toBeGreaterThan(0); - }); - - it('IServiceManager.Node should have CRUD methods', () => { - type NodeKeys = keyof IServiceManager['Node']; - const nodeMethods: NodeKeys[] = [ - 'createByType', 'createByAsset', 'delete', 'query', 'queryNodeTree', - 'setProperty', 'previewSetProperty', 'cancelPreviewSetProperty', - 'reset', 'resetProperty', 'getPathByUuid', - ]; - expect(nodeMethods.length).toBeGreaterThan(0); - }); - - it('IServiceManager.Component should have component methods', () => { - type CompKeys = keyof IServiceManager['Component']; - const compMethods: CompKeys[] = [ - 'add', 'remove', 'setProperty', 'query', 'queryAll', - 'reset', 'queryClasses', 'queryComponents', 'hasScript', - ]; - expect(compMethods.length).toBeGreaterThan(0); - }); - - it('IServiceManager.Prefab should have prefab methods', () => { - type PrefabKeys = keyof IServiceManager['Prefab']; - const prefabMethods: PrefabKeys[] = [ - 'createPrefabFromNode', 'applyPrefabChanges', 'revertToPrefab', - 'unpackPrefabInstance', 'isPrefabInstance', 'getPrefabInfo', - ]; - expect(prefabMethods).toHaveLength(6); - }); - - it('IServiceManager.Camera should have camera methods', () => { - type CameraKeys = keyof IServiceManager['Camera']; - const cameraMethods: CameraKeys[] = [ - 'init', 'focus', 'changeProjection', 'queryConfig', - 'zoomUp', 'zoomDown', 'zoomReset', - ]; - expect(cameraMethods.length).toBeGreaterThan(0); - }); - - it('IServiceManager.Selection should have selection methods', () => { - type SelectionKeys = keyof IServiceManager['Selection']; - const selectionMethods: SelectionKeys[] = [ - 'select', 'unselect', 'clear', 'query', 'isSelect', 'reset', - ]; - expect(selectionMethods).toHaveLength(6); - }); - - it('IServiceManager.Undo should have undo methods', () => { - type UndoKeys = keyof IServiceManager['Undo']; - const undoMethods: UndoKeys[] = [ - 'beginRecording', 'endRecording', 'cancelRecording', - 'undo', 'redo', 'canUndo', 'reset', 'isDirty', - ]; - expect(undoMethods).toHaveLength(8); - }); - - it('GlobalEventManager should have event methods', () => { - type EventKeys = keyof GlobalEventManager; - const eventMethods: EventKeys[] = ['on', 'once', 'off', 'emit', 'broadcast', 'clear']; - expect(eventMethods).toHaveLength(6); - }); - - it('ICLI should compose Scene and SceneEvents correctly', () => { - type SceneType = ICLI['Scene']; - type EventsType = ICLI['SceneEvents']; - - const hasEditor: keyof SceneType = 'Editor'; - const hasOn: keyof EventsType = 'on'; - - expect(hasEditor).toBe('Editor'); - expect(hasOn).toBe('on'); - }); -}); diff --git a/packages/cocos-cli-types/__tests__/dts-snapshot.test.ts b/packages/cocos-cli-types/__tests__/dts-snapshot.test.ts index ce7c26b05..b30fa48f1 100644 --- a/packages/cocos-cli-types/__tests__/dts-snapshot.test.ts +++ b/packages/cocos-cli-types/__tests__/dts-snapshot.test.ts @@ -8,11 +8,11 @@ const dtsFiles = [ 'assets.d.ts', 'base.d.ts', 'builder.d.ts', - 'cli.d.ts', 'configuration.d.ts', 'engine.d.ts', 'project.d.ts', 'scripting.d.ts', + 'service.d.ts', ]; function stripComments(content: string): string { diff --git a/src/core/preview/game-preview.middleware.ts b/src/core/preview/game-preview.middleware.ts index 6182718bb..72456fdd1 100644 --- a/src/core/preview/game-preview.middleware.ts +++ b/src/core/preview/game-preview.middleware.ts @@ -167,12 +167,15 @@ export default { async handler(req: Request, res: Response, next: NextFunction) { try { const { default: scripting } = await import('../../core/scripting'); - const serverBaseUrl = `${req.protocol}://${req.get('host')}`; + const host = req.get('host') || ''; + const colon = host.lastIndexOf(':'); const scene = typeof req.query.scene === 'string' ? req.query.scene : ''; const sceneQuery = scene ? `?scene=${encodeURIComponent(scene)}` : ''; const renderData = { title: `Cocos Creator - ${basename(scripting.projectPath)}`, - serverURL: serverBaseUrl, + ip: colon >= 0 ? host.slice(0, colon) : host, + port: colon >= 0 ? host.slice(colon + 1) : '', + https: req.protocol === 'https', settingsJs: `/preview/settings.js${sceneQuery}`, sceneQuery, }; diff --git a/src/core/scene/scene-process/engine-bootstrap.ts b/src/core/scene/scene-process/engine-bootstrap.ts index a04cc8857..103b4678f 100644 --- a/src/core/scene/scene-process/engine-bootstrap.ts +++ b/src/core/scene/scene-process/engine-bootstrap.ts @@ -2,7 +2,6 @@ import * as EditorExtends from '../../engine/editor-extends'; import { Rpc } from './rpc'; import { serviceManager } from './service/service-manager'; import { Service as DecoratorService } from './service/core/decorator'; -import { messageManager } from './service/message'; import { initLocalI18n } from './i18n'; import './service'; @@ -24,13 +23,13 @@ declare const cc: any; export async function startup(options: { serverURL: string; }) { - const defaultConfig = await fetch('/scripting/engine/game-config'); + const { serverURL } = options; + const defaultConfig = await fetch(`${serverURL}/scripting/engine/game-config`); const config = await defaultConfig.json(); - const modules = await fetch('/scripting/engine/modules'); + const modules = await fetch(`${serverURL}/scripting/engine/modules`); const features = (await modules.json()) as string[]; - const { serverURL } = options; - serviceManager.initialize(serverURL); + serviceManager.init(serverURL); const requiredModules = [ 'cc', @@ -84,9 +83,6 @@ export async function startup(options: { (globalThis as any).cce = (globalThis as any).cce || {}; (globalThis as any).cce.Script = DecoratorService.Script; - (globalThis as any).cli = {}; - (globalThis as any).cli.Scene = DecoratorService; - (globalThis as any).cli.SceneEvents = messageManager; if (EditorExtends.init) { await EditorExtends.init(); @@ -153,7 +149,7 @@ export async function startup(options: { // are available before preview services initialize. await (async () => { try { - const res = await fetch('/query-asset-infos/cc.EffectAsset'); + const res = await fetch(`${serverURL}/query-asset-infos/cc.EffectAsset`); if (!res.ok) return; const effectInfos: any[] = await res.json(); if (!effectInfos.length) return; @@ -168,7 +164,7 @@ export async function startup(options: { const encodedUuid = encodeURIComponent(uuid); const ext = (lib['.bin'] && !lib['.json']) ? 'bin' : 'json'; - const r = await fetch(`/import/${encodedUuid}.${ext}?isBrowser=true`); + const r = await fetch(`${serverURL}/import/${encodedUuid}.${ext}?isBrowser=true`); if (!r.ok) return; const isBinary = ext === 'bin'; @@ -275,7 +271,7 @@ export async function startup(options: { // reports width 0, and every SpriteFrame on it fails checkRect and gets // its rect reset (e.g. sprite frames from a plist atlas in a prefab). try { - const res = await fetch(`/query-asset-info/${encodeURIComponent(uuid)}`); + const res = await fetch(`${serverURL}/query-asset-info/${encodeURIComponent(uuid)}`); if (!res.ok) return ''; const info: any = await res.json(); const lib = info?.library; @@ -306,8 +302,8 @@ export async function startup(options: { const encodedUuid = encodeURIComponent(uuid); const isSubAsset = nativeExt.length > 0 && nativeExt[0] !== '.'; const nativeUrl = isSubAsset - ? `/native/${encodedUuid}/${nativeExt}?isBrowser=true` - : `/native/${encodedUuid}${nativeExt}?isBrowser=true`; + ? `${serverURL}/native/${encodedUuid}/${nativeExt}?isBrowser=true` + : `${serverURL}/native/${encodedUuid}${nativeExt}?isBrowser=true`; try { const res = await fetch(nativeUrl); @@ -340,12 +336,12 @@ export async function startup(options: { // binary (.bin/cconb) instead of .json. let ext = 'json'; try { - const extRes = await fetch(`/query-extname/${encodedUuid}`); + const extRes = await fetch(`${serverURL}/query-extname/${encodedUuid}`); const queryExt = (await extRes.text()).trim(); if (queryExt === '.cconb') ext = 'bin'; } catch { /* default to json */ } - const res = await fetch(`/import/${encodedUuid}.${ext}?isBrowser=true`); + const res = await fetch(`${serverURL}/import/${encodedUuid}.${ext}?isBrowser=true`); if (!res.ok) throw new Error(`Asset fetch failed (${res.status}): ${uuid}`); const isBinary = ext === 'bin'; diff --git a/src/core/scene/scene-process/main.ts b/src/core/scene/scene-process/main.ts index a4d128672..f341a4401 100644 --- a/src/core/scene/scene-process/main.ts +++ b/src/core/scene/scene-process/main.ts @@ -30,7 +30,7 @@ async function startup() { } // 初始化 service-manager - serviceManager.initialize(serverURL ?? ''); + serviceManager.init(serverURL ?? ''); await Engine.init(enginePath); // 这里 importBase 与 nativeBase 用服务器是为了让服务器转换资源真实存放的路径 diff --git a/src/core/scene/scene-process/service/engine.ts b/src/core/scene/scene-process/service/engine.ts index 6735e8811..f4dc3ba7d 100644 --- a/src/core/scene/scene-process/service/engine.ts +++ b/src/core/scene/scene-process/service/engine.ts @@ -8,6 +8,7 @@ import { Service } from './core/decorator'; import type { ICustomLayerConfig, IEngineEvents, IEngineService } from '../../common'; import { NodeEventType } from '../../common'; import { Rpc } from '../rpc'; +import { serviceManager } from './service-manager'; import { TimerUtil } from './utils/timer-util'; const tickTime = 1000 / 60; @@ -93,7 +94,7 @@ export class EngineService extends BaseService implements IEngine * 渲染调试视图(DebugView):单一通道调试 / 组合光照项开关 / 纯光照带固有色 / 级联阴影染色。 * 与 cocos-editor scene-facade-manager.changeDebugOption 对齐。 * 注意:不对外暴露为公共 API(未加入 IEngineService / EngineProxy,不生成到 cocos-cli-types); - * 目前仅由场景编辑器页面(scene-editor.ejs)在浏览器内通过 window.cli.Scene.Engine 直接调用。 + * 目前仅由场景编辑器页面(scene-editor.ejs)在浏览器内通过 serviceManager.getServices().Engine 直接调用。 * @param key 'single' | 'composite' | 'LIGHTING_WITH_BASE_COLOR' | 'CSM_LAYER_COLORATION' * @param value single: DebugViewSingleType 数值;composite: { key: DebugViewCompositeType | 10000(=ALL), value: boolean };其余: boolean */ @@ -149,7 +150,8 @@ export class EngineService extends BaseService implements IEngine if (!view || typeof fetch !== 'function') { return; } - const res = await fetch('/scripting/engine/design-resolution'); + const serverURL = serviceManager.getServerUrl(); + const res = await fetch(`${serverURL}/scripting/engine/design-resolution`); const dr = await res.json(); const width = Number(dr?.width); const height = Number(dr?.height); diff --git a/src/core/scene/scene-process/service/service-manager.ts b/src/core/scene/scene-process/service/service-manager.ts index 6cf5e31a4..41f691873 100644 --- a/src/core/scene/scene-process/service/service-manager.ts +++ b/src/core/scene/scene-process/service/service-manager.ts @@ -1,7 +1,9 @@ -import { getServiceAll, IServiceEvents, ServiceEvents } from './core'; +import { getServiceAll, IServiceEvents, ServiceEvents, Service } from './core'; import { InternalServiceEvents } from './core/internal-events'; import { IEditorEvents, INodeEvents, IComponentEvents, IScriptEvents, IAssetEvents, ISelectionEvents } from '../../common'; import { messageManager } from './message'; +import type { IServiceManager } from './interfaces'; +import type { GlobalEventManager } from './core/global-events'; type AllEvents = IEditorEvents & INodeEvents & IComponentEvents & IScriptEvents & IAssetEvents & ISelectionEvents; @@ -99,10 +101,32 @@ export class ServiceManager { this.registerAutoForwardEvents(); } + /** Alias of {@link initialize}; the public entry used by callers/boot. */ + init(serverUrl: string) { + this.initialize(serverUrl); + } + getServerUrl() { return this.serverUrl; } + /** + * The typed service map (Engine / Editor / Camera / Preview / ...). + * Both cli's own browser pages and external IDEs go through this instead of + * the former `window.cli.Scene` global. + */ + getServices(): IServiceManager { + return Service; + } + + /** + * The global service event bus where service events (e.g. `editor:open`) + * are actually emitted (see base-service emit -> ServiceEvents). + */ + getServiceEvents(): GlobalEventManager { + return ServiceEvents; + } + /** * Camera/Gizmo 依赖的编辑器内置 effect UUID */ diff --git a/src/core/scene/scene.scripting.middleware.ts b/src/core/scene/scene.scripting.middleware.ts index 076b77c70..c94ab64ae 100644 --- a/src/core/scene/scene.scripting.middleware.ts +++ b/src/core/scene/scene.scripting.middleware.ts @@ -18,10 +18,13 @@ export default { return res.redirect(302, '/scene-editor/'); } const { default: scripting } = await import('../../core/scripting'); - const serverBaseUrl = `${req.protocol}://${req.get('host')}`; + const host = req.get('host') || ''; + const colon = host.lastIndexOf(':'); const renderData = { title: `Cocos Creator Preview - ${basename(scripting.projectPath)}`, - serverURL: serverBaseUrl + ip: colon >= 0 ? host.slice(0, colon) : host, + port: colon >= 0 ? host.slice(colon + 1) : '', + https: req.protocol === 'https', }; const templatePath = join(GlobalPaths.workspace, 'static', 'web', 'scene-editor.ejs'); const html = await ejs.renderFile(templatePath, renderData); @@ -36,10 +39,13 @@ export default { async handler(req: Request, res: Response, next: NextFunction) { try { const { default: scripting } = await import('../../core/scripting'); - const serverBaseUrl = `${req.protocol}://${req.get('host')}`; + const host = req.get('host') || ''; + const colon = host.lastIndexOf(':'); const renderData = { title: `Resource Preview - ${basename(scripting.projectPath)}`, - serverURL: serverBaseUrl + ip: colon >= 0 ? host.slice(0, colon) : host, + port: colon >= 0 ? host.slice(colon + 1) : '', + https: req.protocol === 'https', }; const templatePath = join(GlobalPaths.workspace, 'static', 'web', 'preview.ejs'); const html = await ejs.renderFile(templatePath, renderData); diff --git a/src/lib/cli.ts b/src/lib/cli.ts deleted file mode 100644 index ae8dcf536..000000000 --- a/src/lib/cli.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { IServiceManager } from '../core/scene/scene-process/service/interfaces'; -import type { GlobalEventManager } from '../core/scene/scene-process/service/core/global-events'; - -export interface ICLI { - Scene: IServiceManager; - SceneEvents: GlobalEventManager; -} - -export type { IServiceManager, GlobalEventManager }; diff --git a/src/lib/index.ts b/src/lib/index.ts index ea6944720..90b9c82fd 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -8,3 +8,4 @@ export * as Server from './server/server'; export * as Scene from './scene/scene'; export * as Scripting from './scripting/scripting'; export * as i18n from '../i18n'; + diff --git a/src/lib/server/server.ts b/src/lib/server/server.ts index a9c77aac1..da316c557 100644 --- a/src/lib/server/server.ts +++ b/src/lib/server/server.ts @@ -11,16 +11,19 @@ let isRunning = false; /** * Initialize and start the Express HTTP server. * - * @param port Optional port number; auto-selected if omitted - * @returns The server base URL (e.g. http://localhost:9527) + * @param options Optional `{ ip, port }`. `port` is auto-selected if omitted (and + * retried on conflict); `ip` sets the bind/base-URL host (defaults + * to localhost). More parameters can be added here later. + * @returns The server base URL (e.g. http://localhost:9527), reflecting the + * actual bound port and the configured ip. */ -export async function start(port?: number): Promise { +export async function start(options?: { ip?: string; port?: number }): Promise { if (isRunning && serverUrl) { return serverUrl; } const { serverService } = await import('../../server/server'); - await serverService.start(port); + await serverService.start(options?.port, options?.ip); serverUrl = serverService.url; isRunning = true; diff --git a/src/lib/service/asset.ts b/src/lib/service/asset.ts new file mode 100644 index 000000000..cd0b24e24 --- /dev/null +++ b/src/lib/service/asset.ts @@ -0,0 +1,13 @@ +/** + * Asset service entry. + * + * Importing this module runs the service's `@register('Asset')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Asset } from '/lib/service/asset'; + * await Asset.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/asset'; + +export const Asset = Service.Asset; diff --git a/src/lib/service/camera.ts b/src/lib/service/camera.ts new file mode 100644 index 000000000..c6a9beae6 --- /dev/null +++ b/src/lib/service/camera.ts @@ -0,0 +1,13 @@ +/** + * Camera service entry. + * + * Importing this module runs the service's `@register('Camera')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Camera } from '/lib/service/camera'; + * await Camera.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/camera'; + +export const Camera = Service.Camera; diff --git a/src/lib/service/component.ts b/src/lib/service/component.ts new file mode 100644 index 000000000..43cc57371 --- /dev/null +++ b/src/lib/service/component.ts @@ -0,0 +1,13 @@ +/** + * Component service entry. + * + * Importing this module runs the service's `@register('Component')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Component } from '/lib/service/component'; + * await Component.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/component'; + +export const Component = Service.Component; diff --git a/src/lib/service/editor.ts b/src/lib/service/editor.ts new file mode 100644 index 000000000..955da8aba --- /dev/null +++ b/src/lib/service/editor.ts @@ -0,0 +1,13 @@ +/** + * Editor service entry. + * + * Importing this module runs the service's `@register('Editor')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Editor } from '/lib/service/editor'; + * await Editor.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/editor'; + +export const Editor = Service.Editor; diff --git a/src/lib/service/engine.ts b/src/lib/service/engine.ts new file mode 100644 index 000000000..ced8a9f09 --- /dev/null +++ b/src/lib/service/engine.ts @@ -0,0 +1,13 @@ +/** + * Engine service entry. + * + * Importing this module runs the service's `@register('Engine')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Engine } from '/lib/service/engine'; + * await Engine.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/engine'; + +export const Engine = Service.Engine; diff --git a/src/lib/service/gizmo.ts b/src/lib/service/gizmo.ts new file mode 100644 index 000000000..3539e9cf0 --- /dev/null +++ b/src/lib/service/gizmo.ts @@ -0,0 +1,13 @@ +/** + * Gizmo service entry. + * + * Importing this module runs the service's `@register('Gizmo')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Gizmo } from '/lib/service/gizmo'; + * await Gizmo.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/gizmo'; + +export const Gizmo = Service.Gizmo; diff --git a/src/lib/service/index.ts b/src/lib/service/index.ts new file mode 100644 index 000000000..aa5dd8b34 --- /dev/null +++ b/src/lib/service/index.ts @@ -0,0 +1,23 @@ +/** + * Scene service aggregate for external callers. + * + * Prefer the per-service entry modules — each registers its service (via its + * `@register(...)` decorator) and exports the ready, precisely-typed instance, + * so you only load what you use: + * + * ```ts + * import { Node } from '/lib/service/node'; + * await Node.createByType(...); + * ``` + * + * `Service` here is the shared `DecoratorService` proxy (`Service.Node`, …). It is + * typed as the full service map, so a service only actually resolves at runtime + * after its module has been imported; otherwise `Service.X` throws "not + * registered". Use it when you already hold the aggregate; otherwise prefer the + * per-service modules above. + */ +export { Service } from '../../core/scene/scene-process/service/core/decorator'; +export type { IServiceManager } from '../../core/scene/scene-process/service/interfaces'; +// The service event bus, returned at runtime by `serviceManager.getServiceEvents()`. +export type { GlobalEventManager } from '../../core/scene/scene-process/service/core/global-events'; + diff --git a/src/lib/service/node.ts b/src/lib/service/node.ts new file mode 100644 index 000000000..1719d3bdc --- /dev/null +++ b/src/lib/service/node.ts @@ -0,0 +1,13 @@ +/** + * Node service entry. + * + * Importing this module runs the service's `@register('Node')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Node } from '/lib/service/node'; + * await Node.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/node'; + +export const Node = Service.Node; diff --git a/src/lib/service/operation.ts b/src/lib/service/operation.ts new file mode 100644 index 000000000..3791c4712 --- /dev/null +++ b/src/lib/service/operation.ts @@ -0,0 +1,13 @@ +/** + * Operation service entry. + * + * Importing this module runs the service's `@register('Operation')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Operation } from '/lib/service/operation'; + * await Operation.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/operation'; + +export const Operation = Service.Operation; diff --git a/src/lib/service/prefab.ts b/src/lib/service/prefab.ts new file mode 100644 index 000000000..22193bc81 --- /dev/null +++ b/src/lib/service/prefab.ts @@ -0,0 +1,13 @@ +/** + * Prefab service entry. + * + * Importing this module runs the service's `@register('Prefab')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Prefab } from '/lib/service/prefab'; + * await Prefab.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/prefab'; + +export const Prefab = Service.Prefab; diff --git a/src/lib/service/preview.ts b/src/lib/service/preview.ts new file mode 100644 index 000000000..a3f006f76 --- /dev/null +++ b/src/lib/service/preview.ts @@ -0,0 +1,13 @@ +/** + * Preview service entry. + * + * Importing this module runs the service's `@register('Preview')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Preview } from '/lib/service/preview'; + * await Preview.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/preview'; + +export const Preview = Service.Preview; diff --git a/src/lib/service/redo.ts b/src/lib/service/redo.ts new file mode 100644 index 000000000..d04f6d546 --- /dev/null +++ b/src/lib/service/redo.ts @@ -0,0 +1,13 @@ +/** + * Redo service entry. + * + * Importing this module runs the service's `@register('Redo')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Redo } from '/lib/service/redo'; + * await Redo.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/redo'; + +export const Redo = Service.Redo; diff --git a/src/lib/service/scene-view.ts b/src/lib/service/scene-view.ts new file mode 100644 index 000000000..f1e34bcbd --- /dev/null +++ b/src/lib/service/scene-view.ts @@ -0,0 +1,13 @@ +/** + * SceneView service entry. + * + * Importing this module runs the service's `@register('SceneView')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { SceneView } from '/lib/service/scene-view'; + * await SceneView.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/scene-view'; + +export const SceneView = Service.SceneView; diff --git a/src/lib/service/script.ts b/src/lib/service/script.ts new file mode 100644 index 000000000..7b4c2d21d --- /dev/null +++ b/src/lib/service/script.ts @@ -0,0 +1,13 @@ +/** + * Script service entry. + * + * Importing this module runs the service's `@register('Script')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Script } from '/lib/service/script'; + * await Script.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/script'; + +export const Script = Service.Script; diff --git a/src/lib/service/selection.ts b/src/lib/service/selection.ts new file mode 100644 index 000000000..01cc977f9 --- /dev/null +++ b/src/lib/service/selection.ts @@ -0,0 +1,13 @@ +/** + * Selection service entry. + * + * Importing this module runs the service's `@register('Selection')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Selection } from '/lib/service/selection'; + * await Selection.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/selection'; + +export const Selection = Service.Selection; diff --git a/src/lib/service/ui.ts b/src/lib/service/ui.ts new file mode 100644 index 000000000..0b271bce6 --- /dev/null +++ b/src/lib/service/ui.ts @@ -0,0 +1,13 @@ +/** + * UI service entry. + * + * Importing this module runs the service's `@register('UI')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { UI } from '/lib/service/ui'; + * await UI.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/ui'; + +export const UI = Service.UI; diff --git a/src/lib/service/undo.ts b/src/lib/service/undo.ts new file mode 100644 index 000000000..7b198b15d --- /dev/null +++ b/src/lib/service/undo.ts @@ -0,0 +1,13 @@ +/** + * Undo service entry. + * + * Importing this module runs the service's `@register('Undo')` decorator and + * exposes the ready instance. Import only the services you actually use: + * + * import { Undo } from '/lib/service/undo'; + * await Undo.xxx(...); + */ +import { Service } from '../../core/scene/scene-process/service/core/decorator'; +import '../../core/scene/scene-process/service/undo'; + +export const Undo = Service.Undo; diff --git a/src/server/index.ts b/src/server/index.ts index 425976203..af5b60e8d 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -4,10 +4,10 @@ import { IMiddlewareContribution } from './interfaces'; /** * 启动服务器 */ -export async function startServer(port?: number): Promise { +export async function startServer(port?: number, host?: string): Promise { try { serverService.init(); - await serverService.start(port); + await serverService.start(port, host); } catch (error) { console.error(error); } diff --git a/src/server/server.ts b/src/server/server.ts index bf2bf21f1..3cd4c7f0a 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -14,6 +14,7 @@ import { IMiddlewareContribution } from './interfaces'; interface ServerOptions { port: number,// 端口 + host?: string,// 绑定/对外地址(ip 或 host);省略则绑定所有网卡 useHttps: boolean;// 是否启动 HTTPS keyFile?: string; // HTTPS 私钥文件路径 certFile?: string;// HTTPS 证书文件路径 @@ -24,6 +25,7 @@ export class ServerService { private app: Express = express(); private server: HTTPServer | HTTPSServer | undefined; private _port = 9527; + private _host = 'localhost';// 对外 url 使用的 host/ip private useHttps = false; private httpsConfig = { key: '',// HTTPS 私钥文件路径 @@ -34,20 +36,27 @@ export class ServerService { public get url() { if (this.server && this.server.listening) { const httpRoot = this.useHttps ? 'https' : 'http'; - return `${httpRoot}://localhost:${this._port}`; + return `${httpRoot}://${this._host}:${this._port}`; } return '服务器未启动'; } + public get host() { + return this._host; + } + public get port() { return this._port; } - async start(port?: number) { + async start(port?: number, host?: string) { console.log('🚀 开始启动服务器...'); this.init(); + if (host) { + this._host = host; + } const preferredPort = await getAvailablePort(port || this._port); - const { server, port: actualPort } = await this.createServerWithRetry(preferredPort); + const { server, port: actualPort } = await this.createServerWithRetry(preferredPort, host); this._port = actualPort; this.server = server; socketService.startup(this.server); @@ -78,7 +87,7 @@ export class ServerService { * @returns Promise */ async createServer(options: ServerOptions, requestHandler: Express): Promise { - const { port, useHttps, keyFile, certFile, caFile } = options; + const { port, host, useHttps, keyFile, certFile, caFile } = options; let server: HTTPServer | HTTPSServer; @@ -119,14 +128,20 @@ export class ServerService { reject(err); }); - server.listen(port); + // host 省略时 listen(port, undefined) 等价于绑定所有网卡(保持原行为)。 + if (host) { + server.listen(port, host); + } else { + server.listen(port); + } }); } - private async createServerWithRetry(port: number): Promise<{ server: HTTPServer | HTTPSServer; port: number }> { + private async createServerWithRetry(port: number, host?: string): Promise<{ server: HTTPServer | HTTPSServer; port: number }> { try { const server = await this.createServer({ port, + host, useHttps: this.useHttps, keyFile: this.httpsConfig.key, certFile: this.httpsConfig.cert, @@ -135,7 +150,7 @@ export class ServerService { return { server, port }; } catch (err: any) { if (err.code === 'EADDRINUSE') { - return this.createServerWithRetry(port + 1); + return this.createServerWithRetry(port + 1, host); } throw err; } diff --git a/static/web/editor-stub-preload.js b/static/web/editor-stub-preload.js index 1a6a5a637..766779cab 100644 --- a/static/web/editor-stub-preload.js +++ b/static/web/editor-stub-preload.js @@ -1,9 +1,16 @@ /* global window */ -window.CC_EDITOR = true; -const serverUrl = window.WebEnv.serverURL; +/** + * Install the editor stub (window.Editor + fs/require mocks) used by the engine + * editor modules in the browser. The server address is passed in explicitly + * instead of read from a global. + * @param {string} serverURL + */ +export function initEditorStub(serverURL) { + window.CC_EDITOR = true; + const serverUrl = serverURL; -window.Editor = { + window.Editor = { Message: { request: async function (target, method, uuid) { if (method === 'query-asset-info') { @@ -104,4 +111,5 @@ if (typeof window.require === 'undefined') { throw new Error('Module ' + name + ' not found in editor-stub-preload require mock'); }; window.require.cache = {}; + } } diff --git a/static/web/engine-loader.js b/static/web/engine-loader.js index f1492a946..ee92cd2c4 100644 --- a/static/web/engine-loader.js +++ b/static/web/engine-loader.js @@ -1,5 +1,17 @@ /* global window, document, System, fetch */ +/** + * 由 ip / port 组装服务地址;未提供 ip 时回退到当前页面 origin。 + * @param {{ ip?: string, port?: number|string, https?: boolean }} [addr] + * @returns {string} + */ +export function composeServerURL(addr = {}) { + const { ip, port, https } = addr; + if (!ip) return window.location.origin; + const protocol = https ? 'https' : 'http'; + return port ? `${protocol}://${ip}:${port}` : `${protocol}://${ip}`; +} + /** * 引擎加载公共流程。 * @@ -8,12 +20,13 @@ * 预览以 PREVIEW 模式(EDITOR=false / PREVIEW=true)加载,场景编辑器以默认编辑器模式加载。 * 加载完成后各调用方自行 System.import('cc') 跑游戏,或 import scene-bundle 启服务。 * + * @param {string} serverURL 服务地址(http[s]://ip:port),由调用方(boot)传入。 * @param {{ preview?: boolean }} [options] preview=true 时以 PREVIEW 模式加载引擎。 - * @returns {Promise} 填充后的 window.WebEnv(含 serverURL / enginePath 等)。 + * @returns {Promise} 加载环境(含 serverURL / enginePath 等)。 */ -export async function loadEngine(options = {}) { - const env = window.WebEnv; - const envRes = await fetch(`${env.serverURL}/scripting/web-env`); +export async function loadEngine(serverURL, options = {}) { + const env = { serverURL }; + const envRes = await fetch(`${serverURL}/scripting/web-env`); Object.assign(env, await envRes.json()); await import('/static/web/polyfills.bundle.js'); @@ -41,7 +54,8 @@ export async function loadEngine(options = {}) { return fetch(url).then((response) => response.json()).then((json) => ({ json, url: url.href })); }); - await import('/static/web/editor-stub-preload.js'); + const { initEditorStub } = await import('/static/web/editor-stub-preload.js'); + initEditorStub(serverURL); if (options.preview) { // 游戏预览必须以 PREVIEW 模式运行,而不是编辑器编辑模式。 // editor-stub-preload 会设置 window.CC_EDITOR=true(场景编辑器预览需要), diff --git a/static/web/game-boot.js b/static/web/game-boot.js index eea805c28..b68f3fe2e 100644 --- a/static/web/game-boot.js +++ b/static/web/game-boot.js @@ -1,6 +1,6 @@ /* global window, document, System, globalThis, fetch, location */ -import { loadEngine } from '/static/web/engine-loader.js'; +import { loadEngine, composeServerURL } from '/static/web/engine-loader.js'; /** * 浏览器游戏预览运行时引导。 @@ -9,7 +9,7 @@ import { loadEngine } from '/static/web/engine-loader.js'; * 共用 engine-loader.js,区别在于这里以 PREVIEW 模式加载,并在结尾调用 cc.game.init(settings) * 运行启动场景,而不是加载场景编辑器 bundle。流程对齐编辑器 preview-app/src/main.ts。 */ -export default async function gameBoot() { +export default async function gameBoot(addr = {}) { const showError = (e) => { const el = document.getElementById('error'); if (el) { @@ -20,7 +20,8 @@ export default async function gameBoot() { try { // 以 PREVIEW 模式加载引擎(EDITOR=false / PREVIEW=true) - const env = await loadEngine({ preview: true }); + const serverURL = composeServerURL(addr); + const env = await loadEngine(serverURL, { preview: true }); const _originalSystem = System; const cc = await System.import('cc'); diff --git a/static/web/game.ejs b/static/web/game.ejs index 91a5a2caa..ae3765825 100644 --- a/static/web/game.ejs +++ b/static/web/game.ejs @@ -53,7 +53,6 @@
@@ -62,7 +61,7 @@ diff --git a/static/web/load-scene.js b/static/web/load-scene.js index 16d3849ed..dcd47dada 100644 --- a/static/web/load-scene.js +++ b/static/web/load-scene.js @@ -1,6 +1,15 @@ -/* global window, cc, fetch */ +/* global cc, fetch */ + +/** + * 加载并打开场景/预制体。 + * + * @param {{ services: object, events: object, serverURL: string }} ctx boot() 返回的场景服务上下文 + * @param {string} [urlOrUUID] 场景/预制体 uuid 或 db:// url;缺省时自动挑选第一个用户场景 + */ +export async function loadScene(ctx, urlOrUUID) { + const { services, events, serverURL } = ctx; + const { Editor } = services; -window.loadScene = async function (serverURL, urlOrUUID) { if (!urlOrUUID) { const sceneListPromise = await fetch(`${serverURL}/query-asset-infos/cc.SceneAsset`); const sceneList = await sceneListPromise.json(); @@ -20,8 +29,8 @@ window.loadScene = async function (serverURL, urlOrUUID) { return; } - cli.SceneEvents.on('editor:open', () => { + events.on('editor:open', () => { console.log('editor:open onCalled'); }); - await cli.Scene.Editor.open({ urlOrUUID }); -}; + await Editor.open({ urlOrUUID }); +} diff --git a/static/web/preview-app.js b/static/web/preview-app.js index b59e90835..0a829752f 100644 --- a/static/web/preview-app.js +++ b/static/web/preview-app.js @@ -1,17 +1,21 @@ /* global window, document, cc */ +// Scene services, provided by boot() via initPreviewApp(ctx). Replaces the +// former window.cli.Scene global. +let services = null; + function log(msg, level) { if (level === 'err') console.error('[Preview]', msg); else if (level === 'warn') console.warn('[Preview]', msg); else console.log('[Preview]', msg); } +function repaint() { + try { services && services.Engine && services.Engine.repaintInEditMode(); } catch (e) { /* ignore */ } +} + function getPreviewService() { - try { - return window.cli && window.cli.Scene && window.cli.Scene.Preview; - } catch (e) { - return null; - } + return services && services.Preview; } function getActive() { @@ -59,7 +63,7 @@ function switchPrimitive(type) { var active = getActive(); if (active && active.switchPrimitive) { active.switchPrimitive(type); - window.cli.Scene.Engine.repaintInEditMode(); + repaint(); log('Switched primitive: ' + type); } } @@ -70,7 +74,7 @@ function toggleLight() { var light = active.lightComp; var on = light ? !light.enabled : true; active.setLightEnable(on); - window.cli.Scene.Engine.repaintInEditMode(); + repaint(); log('Light: ' + (on ? 'ON' : 'OFF')); } @@ -78,7 +82,7 @@ function toggle2D3D() { var active = getActive(); if (active && active.viewToggle) { active.viewToggle(); - window.cli.Scene.Engine.repaintInEditMode(); + repaint(); log('Toggled 2D/3D view'); } } @@ -96,7 +100,7 @@ function bindPreviewMouseEvents(canvas) { if (!active) return; active.onMouseMove(e); if (active._isMouseDown) { - window.cli.Scene.Engine.repaintInEditMode(); + repaint(); } }); @@ -112,7 +116,7 @@ function bindPreviewMouseEvents(canvas) { active.onMouseWheel({ wheelDeltaY: -e.deltaY, }); - window.cli.Scene.Engine.repaintInEditMode(); + repaint(); }, { passive: false }); canvas.addEventListener('contextmenu', function(e) { @@ -122,7 +126,8 @@ function bindPreviewMouseEvents(canvas) { // ── Initialization ── -export default function initPreviewApp() { +export default function initPreviewApp(ctx) { + services = ctx && ctx.services; var status = document.getElementById('pvStatus'); var preview = getPreviewService(); @@ -133,7 +138,7 @@ export default function initPreviewApp() { } try { - window.cli.Scene.Engine.resume(); + services && services.Engine && services.Engine.resume(); } catch (e) { log('Engine resume failed: ' + e.message, 'warn'); } diff --git a/static/web/preview.ejs b/static/web/preview.ejs index 990d4cd30..496fbd148 100644 --- a/static/web/preview.ejs +++ b/static/web/preview.ejs @@ -99,14 +99,11 @@ Initializing... - diff --git a/static/web/scene-editor-boot.js b/static/web/scene-editor-boot.js index a0654638d..c4a9a7349 100644 --- a/static/web/scene-editor-boot.js +++ b/static/web/scene-editor-boot.js @@ -1,33 +1,45 @@ /* global System, globalThis */ -import { loadEngine } from '/static/web/engine-loader.js'; +import { loadEngine, composeServerURL } from '/static/web/engine-loader.js'; /** - * 场景编辑器预览引导。 + * 场景编辑器 / 资源预览引导。 * * 引擎加载流程与浏览器游戏预览的 game-boot.js 共用 engine-loader.js;区别在于这里以默认 * 编辑器模式加载(不覆盖 CC_EDITOR/CC_PREVIEW),并在结尾加载 scene-bundle 启动场景服务, * 而不是运行游戏。 + * + * 服务地址通过入参传入(ip/port),不再依赖 window.WebEnv 全局。 + * + * @param {{ ip?: string, port?: number|string, https?: boolean }} [addr] + * @returns {Promise<{ services: object, events: object, serverURL: string } | null>} + * 场景服务上下文:`services` 为服务集(Engine/Editor/Camera/...),`events` 为服务事件总线。 */ -export default async function boot() { +export default async function boot(addr = {}) { try { - const env = await loadEngine(); + const serverURL = composeServerURL(addr); + const env = await loadEngine(serverURL); const _originalSystem = System; console.log('[Scene] loading scene bundle'); // SystemJS natively awaits the attached import maps above const SceneBundle = await System.import('/static/web/scene-bundle.js'); - const { startup, Service } = SceneBundle; + const { startup, serviceManager } = SceneBundle; globalThis.System = _originalSystem; await startup({ enginePath: env.enginePath, - serverURL: env.serverURL, + serverURL, }); - Service?.Engine?.resume?.(); + + const services = serviceManager.getServices(); + const events = serviceManager.getServiceEvents(); + services?.Engine?.resume?.(); console.log('Cocos Engine and Scene Services loaded successfully'); + return { services, events, serverURL }; } catch (err) { console.error('Failed to load Cocos Engine or Services:', err.stack || err); + return null; } } diff --git a/static/web/scene-editor-page.js b/static/web/scene-editor-page.js new file mode 100644 index 000000000..f8db544cc --- /dev/null +++ b/static/web/scene-editor-page.js @@ -0,0 +1,662 @@ +/* global window, document, cc, EditorExtends */ + +/** + * 场景编辑器调试页逻辑(浏览器 ESM)。 + * + * 由 scene-editor.ejs 末尾的 ` - - diff --git a/workflow/generate-dts.ts b/workflow/generate-dts.ts index ad27d1fe8..6e8e2da05 100644 --- a/workflow/generate-dts.ts +++ b/workflow/generate-dts.ts @@ -175,9 +175,9 @@ const entries: IDtsEntry[] = [ source: 'src/lib/builder/builder.ts', output: 'builder.d.ts' }, { - name: 'cli', - source: 'src/lib/cli.ts', - output: 'cli.d.ts' + name: 'service', + source: 'src/lib/service/index.ts', + output: 'service.d.ts' } ];