diff --git a/.gitignore b/.gitignore index e64146aa9..d55560f7a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,6 @@ /packages/*/node_modules /packages/*/docs /packages/*/lib -/packages/*/ts*/ -/packages/*/types +/packages/*/temp +tsdoc-metadata.json +*.log diff --git a/api-extractor.base.json b/api-extractor.base.json new file mode 100644 index 000000000..b0ff3329f --- /dev/null +++ b/api-extractor.base.json @@ -0,0 +1,457 @@ +/** + * Config file for API Extractor. For more info, please visit: https://api-extractor.com + */ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + /** + * Optionally specifies another JSON config file that this file extends from. This provides a way for + * standard settings to be shared across multiple projects. + * + * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains + * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be + * resolved using NodeJS require(). + * + * SUPPORTED TOKENS: none + * DEFAULT VALUE: "" + */ + // "extends": "./shared/api-extractor-base.json" + // "extends": "my-package/include/api-extractor-base.json" + + /** + * Determines the "" token that can be used with other config file settings. The project folder + * typically contains the tsconfig.json and package.json config files, but the path is user-defined. + * + * The path is resolved relative to the folder of the config file that contains the setting. + * + * The default value for "projectFolder" is the token "", which means the folder is determined by traversing + * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder + * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error + * will be reported. + * + * SUPPORTED TOKENS: + * DEFAULT VALUE: "" + */ + // "projectFolder": "..", + + /** + * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor + * analyzes the symbols exported by this module. + * + * The file extension must be ".d.ts" and not ".ts". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + */ + "mainEntryPointFilePath": "/types/index.d.ts", + + /** + * A list of NPM package names whose exports should be treated as part of this package. + * + * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", + * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part + * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly + * imports library2. To avoid this, we can specify: + * + * "bundledPackages": [ "library2" ], + * + * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been + * local files for library1. + */ + "bundledPackages": [ + "@pixiv/three-vrm-core", + "@pixiv/three-vrm-materials-hdr-emissive-multiplier", + "@pixiv/three-vrm-materials-mtoon", + "@pixiv/three-vrm-materials-v0compat", + "@pixiv/three-vrm-node-constraint", + "@pixiv/three-vrm-springbone", + "@pixiv/three-vrm", + "@pixiv/types-vrm-0.0", + "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0", + "@pixiv/types-vrmc-materials-mtoon-1.0", + "@pixiv/types-vrmc-node-constraint-1.0", + "@pixiv/types-vrmc-springbone-1.0", + "@pixiv/types-vrmc-vrm-1.0" + ], + + /** + * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files + * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. + * To use the OS's default newline kind, specify "os". + * + * DEFAULT VALUE: "crlf" + */ + // "newlineKind": "crlf", + + /** + * Set to true when invoking API Extractor's test harness. When `testMode` is true, the `toolVersion` field in the + * .api.json file is assigned an empty string to prevent spurious diffs in output files tracked for tests. + * + * DEFAULT VALUE: "false" + */ + // "testMode": false, + + /** + * Specifies how API Extractor sorts members of an enum when generating the .api.json file. By default, the output + * files will be sorted alphabetically, which is "by-name". To keep the ordering in the source code, specify + * "preserve". + * + * DEFAULT VALUE: "by-name" + */ + // "enumMemberOrder": "by-name", + + /** + * Determines how the TypeScript compiler engine will be invoked by API Extractor. + */ + "compiler": { + /** + * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * Note: This setting will be ignored if "overrideTsconfig" is used. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/tsconfig.json" + */ + // "tsconfigFilePath": "/tsconfig.json", + /** + * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. + * The object must conform to the TypeScript tsconfig schema: + * + * http://json.schemastore.org/tsconfig + * + * If omitted, then the tsconfig.json file will be read from the "projectFolder". + * + * DEFAULT VALUE: no overrideTsconfig section + */ + // "overrideTsconfig": { + // . . . + // } + /** + * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended + * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when + * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses + * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. + * + * DEFAULT VALUE: false + */ + // "skipLibCheck": true, + }, + + /** + * Configures how the API report file (*.api.md) will be generated. + */ + "apiReport": { + /** + * (REQUIRED) Whether to generate an API report. + */ + "enabled": true, + + /** + * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce + * a full file path. + * + * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". + * + * SUPPORTED TOKENS: , + * DEFAULT VALUE: ".api.md" + */ + "reportFileName": ".api.md", + + /** + * Specifies the folder where the API report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, + * e.g. for an API review. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/" + */ + "reportFolder": "" + + /** + * Specifies the folder where the temporary report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * After the temporary file is written to disk, it is compared with the file in the "reportFolder". + * If they are different, a production build will fail. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/" + */ + // "reportTempFolder": "/temp/", + + /** + * Whether "forgotten exports" should be included in the API report file. Forgotten exports are declarations + * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to + * learn more. + * + * DEFAULT VALUE: "false" + */ + // "includeForgottenExports": false + }, + + /** + * Configures how the doc model file (*.api.json) will be generated. + */ + "docModel": { + /** + * (REQUIRED) Whether to generate a doc model file. + */ + "enabled": false + + /** + * The output path for the doc model file. The file extension should be ".api.json". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/.api.json" + */ + // "apiJsonFilePath": "/temp/.api.json", + + /** + * Whether "forgotten exports" should be included in the doc model file. Forgotten exports are declarations + * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to + * learn more. + * + * DEFAULT VALUE: "false" + */ + // "includeForgottenExports": false, + + /** + * The base URL where the project's source code can be viewed on a website such as GitHub or + * Azure DevOps. This URL path corresponds to the `` path on disk. + * + * This URL is concatenated with the file paths serialized to the doc model to produce URL file paths to individual API items. + * For example, if the `projectFolderUrl` is "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor" and an API + * item's file path is "api/ExtractorConfig.ts", the full URL file path would be + * "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor/api/ExtractorConfig.js". + * + * Can be omitted if you don't need source code links in your API documentation reference. + * + * SUPPORTED TOKENS: none + * DEFAULT VALUE: "" + */ + // "projectFolderUrl": "http://github.com/path/to/your/projectFolder" + }, + + /** + * Configures how the .d.ts rollup file will be generated. + */ + "dtsRollup": { + /** + * (REQUIRED) Whether to generate the .d.ts rollup file. + */ + "enabled": true, + + /** + * Specifies the output path for a .d.ts rollup file to be generated without any trimming. + * This file will include all declarations that are exported by the main entry point. + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/dist/.d.ts" + */ + "untrimmedFilePath": "/lib/.d.ts" + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for an "alpha" release. + * This file will include only declarations that are marked as "@public", "@beta", or "@alpha". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "alphaTrimmedFilePath": "/dist/-alpha.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. + * This file will include only declarations that are marked as "@public" or "@beta". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "betaTrimmedFilePath": "/dist/-beta.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. + * This file will include only declarations that are marked as "@public". + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "publicTrimmedFilePath": "/dist/-public.d.ts", + + /** + * When a declaration is trimmed, by default it will be replaced by a code comment such as + * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the + * declaration completely. + * + * DEFAULT VALUE: false + */ + // "omitTrimmingComments": true + }, + + /** + * Configures how the tsdoc-metadata.json file will be generated. + */ + "tsdocMetadata": { + /** + * Whether to generate the tsdoc-metadata.json file. + * + * DEFAULT VALUE: true + */ + // "enabled": true, + /** + * Specifies where the TSDoc metadata file should be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", + * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup + * falls back to "tsdoc-metadata.json" in the package folder. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" + }, + + /** + * Configures how API Extractor reports error and warning messages produced during analysis. + * + * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. + */ + "messages": { + /** + * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing + * the input .d.ts files. + * + * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "compilerMessageReporting": { + /** + * Configures the default routing for messages that don't match an explicit rule in this table. + */ + "default": { + /** + * Specifies whether the message should be written to the the tool's output log. Note that + * the "addToApiReportFile" property may supersede this option. + * + * Possible values: "error", "warning", "none" + * + * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail + * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes + * the "--local" option), the warning is displayed but the build will not fail. + * + * DEFAULT VALUE: "warning" + */ + "logLevel": "warning" + + /** + * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), + * then the message will be written inside that file; otherwise, the message is instead logged according to + * the "logLevel" option. + * + * DEFAULT VALUE: false + */ + // "addToApiReportFile": false + } + + // "TS2551": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by API Extractor during its analysis. + * + * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" + * + * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings + */ + "extractorMessageReporting": { + "default": { + "logLevel": "warning", + "addToApiReportFile": false + }, + + "ae-missing-release-tag": { + "logLevel": "none" + }, + + "ae-unresolved-link": { + "logLevel": "none" + }, + + "ae-forgotten-export": { + "logLevel": "error", + "addToApiReportFile": true + } + + // + // . . . + }, + + /** + * Configures handling of messages reported by the TSDoc parser when analyzing code comments. + * + * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "tsdocMessageReporting": { + "default": { + "logLevel": "warning" + }, + + "tsdoc-undefined-tag": { + "logLevel": "none" + }, + + "tsdoc-param-tag-missing-hyphen": { + "logLevel": "none" + } + + // "tsdoc-link-tag-unescaped-text": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + } + } +} diff --git a/package.json b/package.json index 780872582..fafead8c6 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,12 @@ }, "devDependencies": { "@gltf-transform/core": "^2.4.7", + "@microsoft/api-extractor": "^7.37.0", "@rollup/plugin-typescript": "^11.0.0", "@types/jest": "^26.0.15", "@typescript-eslint/eslint-plugin": "^4.6.1", "@typescript-eslint/parser": "^4.6.1", "cross-env": "^7.0.2", - "downlevel-dts": "^0.11.0", "eslint": "^7.12.1", "eslint-config-mdcs": "^5.0.0", "eslint-config-prettier": "^8.3.0", diff --git a/packages/three-vrm-core/.gitignore b/packages/three-vrm-core/.gitignore new file mode 100644 index 000000000..a7c47537d --- /dev/null +++ b/packages/three-vrm-core/.gitignore @@ -0,0 +1 @@ +types/ diff --git a/packages/three-vrm-core/api-extractor.json b/packages/three-vrm-core/api-extractor.json new file mode 100644 index 000000000..2069b8ac3 --- /dev/null +++ b/packages/three-vrm-core/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} diff --git a/packages/three-vrm-core/package.json b/packages/three-vrm-core/package.json index d649f7848..ad86dfb91 100644 --- a/packages/three-vrm-core/package.json +++ b/packages/three-vrm-core/package.json @@ -7,19 +7,11 @@ "files": [ "/lib/", "/ts*/", - "/types/", "LICENSE" ], "main": "lib/three-vrm-core.js", "module": "lib/three-vrm-core.module.js", - "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, + "types": "lib/three-vrm-core.d.ts", "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -33,7 +25,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "test": "jest", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", @@ -46,11 +38,9 @@ "prettier --write" ] }, - "dependencies": { - "@pixiv/types-vrm-0.0": "2.0.6-alpha.2", - "@pixiv/types-vrmc-vrm-1.0": "2.0.6-alpha.2" - }, "devDependencies": { + "@pixiv/types-vrm-0.0": "2.0.6-alpha.2", + "@pixiv/types-vrmc-vrm-1.0": "2.0.6-alpha.2", "@types/three": "^0.154.0", "lint-staged": "13.1.2", "three": "^0.154.0" diff --git a/packages/three-vrm-core/src/expressions/index.ts b/packages/three-vrm-core/src/expressions/index.ts index 59c12ce46..96a7a13ce 100644 --- a/packages/three-vrm-core/src/expressions/index.ts +++ b/packages/three-vrm-core/src/expressions/index.ts @@ -8,3 +8,6 @@ export { VRMExpressionMorphTargetBind } from './VRMExpressionMorphTargetBind'; export { VRMExpressionOverrideType } from './VRMExpressionOverrideType'; export { VRMExpressionPresetName } from './VRMExpressionPresetName'; export { VRMExpressionTextureTransformBind } from './VRMExpressionTextureTransformBind'; + +import type * as V0VRM from '@pixiv/types-vrm-0.0'; +export type { V0VRM }; diff --git a/packages/three-vrm-core/src/lookAt/VRMLookAt.ts b/packages/three-vrm-core/src/lookAt/VRMLookAt.ts index d24898c11..95c6cfbbd 100644 --- a/packages/three-vrm-core/src/lookAt/VRMLookAt.ts +++ b/packages/three-vrm-core/src/lookAt/VRMLookAt.ts @@ -73,9 +73,6 @@ export class VRMLookAt { return this._yaw; } - /** - * Its current angle around Y axis, in degree. - */ public set yaw(value: number) { this._yaw = value; this._needsUpdate = true; @@ -93,16 +90,13 @@ export class VRMLookAt { return this._pitch; } - /** - * Its current angle around X axis, in degree. - */ public set pitch(value: number) { this._pitch = value; this._needsUpdate = true; } /** - * Specifies that angles need to be applied to its [@link applier]. + * Specifies that angles need to be applied to its {@link applier}. */ protected _needsUpdate: boolean; diff --git a/packages/three-vrm-core/src/lookAt/index.ts b/packages/three-vrm-core/src/lookAt/index.ts index dc9c6e930..37e3f4557 100644 --- a/packages/three-vrm-core/src/lookAt/index.ts +++ b/packages/three-vrm-core/src/lookAt/index.ts @@ -5,5 +5,6 @@ export type { VRMLookAtApplier } from './VRMLookAtApplier'; export { VRMLookAtBoneApplier } from './VRMLookAtBoneApplier'; export { VRMLookAtExpressionApplier } from './VRMLookAtExpressionApplier'; export { VRMLookAtLoaderPlugin } from './VRMLookAtLoaderPlugin'; +export { VRMLookAtLoaderPluginOptions } from './VRMLookAtLoaderPluginOptions'; export { VRMLookAtRangeMap } from './VRMLookAtRangeMap'; export { VRMLookAtTypeName } from './VRMLookAtTypeName'; diff --git a/packages/three-vrm-core/three-vrm-core.api.md b/packages/three-vrm-core/three-vrm-core.api.md new file mode 100644 index 000000000..219357c86 --- /dev/null +++ b/packages/three-vrm-core/three-vrm-core.api.md @@ -0,0 +1,1024 @@ +## API Report File for "@pixiv/three-vrm-core" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public +interface BlendShape { + // (undocumented) + blendShapeGroups?: BlendShapeGroup[]; +} + +// @public (undocumented) +interface BlendShapeBind { + // (undocumented) + index?: number; + + // (undocumented) + mesh?: number; + + weight?: number; +} + +// @public (undocumented) +interface BlendShapeGroup { + binds?: BlendShapeBind[]; + + isBinary?: boolean; + + materialValues?: BlendShapeMaterialbind[]; + + name?: string; + + presetName?: BlendShapePresetName; +} + +// @public (undocumented) +interface BlendShapeMaterialbind { + // (undocumented) + materialName?: string; + // (undocumented) + propertyName?: string; + // (undocumented) + targetValue?: number[]; +} + +// @public +type BlendShapePresetName = +| 'a' +| 'angry' +| 'blink' +| 'blink_l' +| 'blink_r' +| 'e' +| 'fun' +| 'i' +| 'joy' +| 'lookdown' +| 'lookleft' +| 'lookright' +| 'lookup' +| 'neutral' +| 'o' +| 'sorrow' +| 'u' +| 'unknown'; + +// @public (undocumented) +interface FirstPerson { + firstPersonBone?: number; + + firstPersonBoneOffset?: Vector3; + + // (undocumented) + lookAtHorizontalInner?: FirstPersonDegreeMap; + + // (undocumented) + lookAtHorizontalOuter?: FirstPersonDegreeMap; + + lookAtTypeName?: 'Bone' | 'BlendShape'; + + // (undocumented) + lookAtVerticalDown?: FirstPersonDegreeMap; + + // (undocumented) + lookAtVerticalUp?: FirstPersonDegreeMap; + + meshAnnotations?: FirstPersonMeshAnnotation[]; +} + +// @public +interface FirstPersonDegreeMap { + curve?: number[]; + + xRange?: number; + + yRange?: number; +} + +// @public (undocumented) +interface FirstPersonMeshAnnotation { + // (undocumented) + firstPersonFlag?: string; + // (undocumented) + mesh?: number; +} + +// @public (undocumented) +interface Humanoid { + armStretch?: number; + + feetSpacing?: number; + + hasTranslationDoF?: boolean; + + // (undocumented) + humanBones?: HumanoidBone[]; + + legStretch?: number; + + lowerArmTwist?: number; + + lowerLegTwist?: number; + + upperArmTwist?: number; + + upperLegTwist?: number; +} + +// @public (undocumented) +interface HumanoidBone { + axisLength?: number; + + bone?: HumanoidBoneName; + + center?: Vector3; + + max?: Vector3; + + min?: Vector3; + + node?: number; + + useDefaultValues?: boolean; +} + +// @public +type HumanoidBoneName = +| 'chest' +| 'head' +| 'hips' +| 'jaw' +| 'leftEye' +| 'leftFoot' +| 'leftHand' +| 'leftIndexDistal' +| 'leftIndexIntermediate' +| 'leftIndexProximal' +| 'leftLittleDistal' +| 'leftLittleIntermediate' +| 'leftLittleProximal' +| 'leftLowerArm' +| 'leftLowerLeg' +| 'leftMiddleDistal' +| 'leftMiddleIntermediate' +| 'leftMiddleProximal' +| 'leftRingDistal' +| 'leftRingIntermediate' +| 'leftRingProximal' +| 'leftShoulder' +| 'leftThumbDistal' +| 'leftThumbIntermediate' +| 'leftThumbProximal' +| 'leftToes' +| 'leftUpperArm' +| 'leftUpperLeg' +| 'neck' +| 'rightEye' +| 'rightFoot' +| 'rightHand' +| 'rightIndexDistal' +| 'rightIndexIntermediate' +| 'rightIndexProximal' +| 'rightLittleDistal' +| 'rightLittleIntermediate' +| 'rightLittleProximal' +| 'rightLowerArm' +| 'rightLowerLeg' +| 'rightMiddleDistal' +| 'rightMiddleIntermediate' +| 'rightMiddleProximal' +| 'rightRingDistal' +| 'rightRingIntermediate' +| 'rightRingProximal' +| 'rightShoulder' +| 'rightThumbDistal' +| 'rightThumbIntermediate' +| 'rightThumbProximal' +| 'rightToes' +| 'rightUpperArm' +| 'rightUpperLeg' +| 'spine' +| 'upperChest'; + +// @public (undocumented) +interface Material { + // (undocumented) + floatProperties?: { [key: string]: any }; + // (undocumented) + keywordMap?: { [key: string]: any }; + // (undocumented) + name?: string; + // (undocumented) + renderQueue?: number; + // (undocumented) + shader?: string; + // (undocumented) + tagMap?: { [key: string]: any }; + // (undocumented) + textureProperties?: { [key: string]: any }; + // (undocumented) + vectorProperties?: { [key: string]: any }; +} + +// @public (undocumented) +interface Meta { + allowedUserName?: 'OnlyAuthor' | 'ExplicitlyLicensedPerson' | 'Everyone'; + + author?: string; + + commercialUssageName?: 'Disallow' | 'Allow'; + + contactInformation?: string; + + licenseName?: + | 'Redistribution_Prohibited' + | 'CC0' + | 'CC_BY' + | 'CC_BY_NC' + | 'CC_BY_SA' + | 'CC_BY_NC_SA' + | 'CC_BY_ND' + | 'CC_BY_NC_ND' + | 'Other'; + + otherLicenseUrl?: string; + + otherPermissionUrl?: string; + + reference?: string; + + sexualUssageName?: 'Disallow' | 'Allow'; + + texture?: number; + + title?: string; + + version?: string; + + violentUssageName?: 'Disallow' | 'Allow'; +} + +// @public +interface SecondaryAnimation { + // (undocumented) + boneGroups?: SecondaryAnimationSpring[]; + // (undocumented) + colliderGroups?: SecondaryAnimationColliderGroup[]; +} + +// @public (undocumented) +interface SecondaryAnimationCollider { + offset?: Vector3; + + radius?: number; +} + +// @public (undocumented) +interface SecondaryAnimationColliderGroup { + // (undocumented) + colliders?: SecondaryAnimationCollider[]; + + node?: number; +} + +// @public (undocumented) +interface SecondaryAnimationSpring { + bones?: number[]; + + center?: number; + + colliderGroups?: number[]; + + comment?: string; + + dragForce?: number; + + gravityDir?: Vector3; + + gravityPower?: number; + + hitRadius?: number; + + stiffiness?: number; +} + +declare namespace V0VRM { + export { + BlendShape, + BlendShapeBind, + BlendShapeGroup, + BlendShapeMaterialbind, + BlendShapePresetName, + FirstPerson, + FirstPersonDegreeMap, + FirstPersonMeshAnnotation, + Humanoid, + HumanoidBone, + HumanoidBoneName, + Material, + Meta, + SecondaryAnimation, + SecondaryAnimationCollider, + SecondaryAnimationColliderGroup, + SecondaryAnimationSpring, + Vector3, + VRM + } +} +export { V0VRM } + +// @public (undocumented) +interface Vector3 { + // (undocumented) + x?: number; + // (undocumented) + y?: number; + // (undocumented) + z?: number; +} + +// @public +interface VRM { + // (undocumented) + blendShapeMaster?: BlendShape; + + exporterVersion?: string; + + // (undocumented) + firstPerson?: FirstPerson; + + // (undocumented) + humanoid?: Humanoid; + + // (undocumented) + materialProperties?: Material[]; + + // (undocumented) + meta?: Meta; + + // (undocumented) + secondaryAnimation?: SecondaryAnimation; + + specVersion?: '0.0'; +} + +// @public +export interface VRM0Meta { + allowedUserName?: 'Everyone' | 'ExplicitlyLicensedPerson' | 'OnlyAuthor'; + author?: string; + commercialUssageName?: 'Allow' | 'Disallow'; + contactInformation?: string; + licenseName?: 'CC0' | 'CC_BY' | 'CC_BY_NC' | 'CC_BY_NC_ND' | 'CC_BY_NC_SA' | 'CC_BY_ND' | 'CC_BY_SA' | 'Other' | 'Redistribution_Prohibited'; + metaVersion: '0'; + otherLicenseUrl?: string; + otherPermissionUrl?: string; + reference?: string; + sexualUssageName?: 'Allow' | 'Disallow'; + texture?: THREE_2.Texture; + title?: string; + version?: string; + violentUssageName?: 'Allow' | 'Disallow'; +} + +// @public +export interface VRM1Meta { + allowAntisocialOrHateUsage?: boolean; + allowExcessivelySexualUsage?: boolean; + allowExcessivelyViolentUsage?: boolean; + allowPoliticalOrReligiousUsage?: boolean; + allowRedistribution?: boolean; + authors: string[]; + avatarPermission?: 'onlyAuthor' | 'onlySeparatelyLicensedPerson' | 'everyone'; + commercialUsage?: 'personalNonProfit' | 'personalProfit' | 'corporation'; + contactInformation?: string; + copyrightInformation?: string; + creditNotation?: 'required' | 'unnecessary'; + licenseUrl: string; + metaVersion: '1'; + modification?: 'prohibited' | 'allowModification' | 'allowModificationRedistribution'; + name: string; + otherLicenseUrl?: string; + references?: string[]; + thirdPartyLicenses?: string; + thumbnailImage?: HTMLImageElement; + version?: string; +} + +// @public +export class VRMCore { + constructor(params: VRMCoreParameters); + readonly expressionManager?: VRMExpressionManager; + readonly firstPerson?: VRMFirstPerson; + readonly humanoid: VRMHumanoid; + readonly lookAt?: VRMLookAt; + readonly meta: VRMMeta; + readonly scene: THREE_2.Group; + update(delta: number): void; +} + +// @public (undocumented) +export class VRMCoreLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMCoreLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + readonly expressionPlugin: VRMExpressionLoaderPlugin; + // (undocumented) + readonly firstPersonPlugin: VRMFirstPersonLoaderPlugin; + // (undocumented) + readonly humanoidPlugin: VRMHumanoidLoaderPlugin; + // (undocumented) + readonly lookAtPlugin: VRMLookAtLoaderPlugin; + // (undocumented) + readonly metaPlugin: VRMMetaLoaderPlugin; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMCoreLoaderPluginOptions { + // (undocumented) + autoUpdateHumanBones?: boolean; + // (undocumented) + expressionPlugin?: VRMExpressionLoaderPlugin; + // (undocumented) + firstPersonPlugin?: VRMFirstPersonLoaderPlugin; + helperRoot?: THREE.Object3D; + // (undocumented) + humanoidPlugin?: VRMHumanoidLoaderPlugin; + // (undocumented) + lookAtPlugin?: VRMLookAtLoaderPlugin; + // (undocumented) + metaPlugin?: VRMMetaLoaderPlugin; +} + +// @public +export interface VRMCoreParameters { + // (undocumented) + expressionManager?: VRMExpressionManager; + // (undocumented) + firstPerson?: VRMFirstPerson; + // (undocumented) + humanoid: VRMHumanoid; + // (undocumented) + lookAt?: VRMLookAt; + // (undocumented) + meta: VRMMeta; + // (undocumented) + scene: THREE.Group; +} + +// @public (undocumented) +export class VRMExpression extends THREE_2.Object3D { + constructor(expressionName: string); + // (undocumented) + addBind(bind: VRMExpressionBind): void; + applyWeight(options?: { + multiplier?: number; + }): void; + clearAppliedWeight(): void; + expressionName: string; + isBinary: boolean; + overrideBlink: VRMExpressionOverrideType; + get overrideBlinkAmount(): number; + overrideLookAt: VRMExpressionOverrideType; + get overrideLookAtAmount(): number; + overrideMouth: VRMExpressionOverrideType; + get overrideMouthAmount(): number; + // (undocumented) + readonly type: string | 'VRMExpression'; + weight: number; +} + +// @public (undocumented) +export interface VRMExpressionBind { + applyWeight(weight: number): void; + clearAppliedWeight(): void; +} + +// @public +export class VRMExpressionLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; + // (undocumented) + static readonly v0v1PresetNameMap: { + [v0Name in V0VRM.BlendShapePresetName]?: VRMExpressionPresetName; + }; +} + +// @public (undocumented) +export class VRMExpressionManager { + constructor(); + blinkExpressionNames: string[]; + clone(): VRMExpressionManager; + copy(source: VRMExpressionManager): this; + get customExpressionMap(): { + [name: string]: VRMExpression; + }; + // (undocumented) + get expressionMap(): { + [name: string]: VRMExpression; + }; + // (undocumented) + get expressions(): VRMExpression[]; + getExpression(name: VRMExpressionPresetName | string): VRMExpression | null; + getExpressionTrackName(name: VRMExpressionPresetName | string): string | null; + getValue(name: VRMExpressionPresetName | string): number | null; + lookAtExpressionNames: string[]; + mouthExpressionNames: string[]; + get presetExpressionMap(): { + [name in VRMExpressionPresetName]?: VRMExpression; + }; + registerExpression(expression: VRMExpression): void; + setValue(name: VRMExpressionPresetName | string, weight: number): void; + unregisterExpression(expression: VRMExpression): void; + update(): void; +} + +// @public +export class VRMExpressionMaterialColorBind implements VRMExpressionBind { + constructor({ material, type, targetValue, }: { + material: THREE_2.Material; + type: VRMExpressionMaterialColorType; + targetValue: THREE_2.Color; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly material: THREE_2.Material; + readonly targetValue: THREE_2.Color; + readonly type: VRMExpressionMaterialColorType; +} + +// @public (undocumented) +export const VRMExpressionMaterialColorType: { + readonly Color: "color"; + readonly EmissionColor: "emissionColor"; + readonly ShadeColor: "shadeColor"; + readonly MatcapColor: "matcapColor"; + readonly RimColor: "rimColor"; + readonly OutlineColor: "outlineColor"; +}; + +// @public (undocumented) +export type VRMExpressionMaterialColorType = typeof VRMExpressionMaterialColorType[keyof typeof VRMExpressionMaterialColorType]; + +// @public +export class VRMExpressionMorphTargetBind implements VRMExpressionBind { + constructor({ primitives, index, weight, }: { + primitives: THREE_2.Mesh[]; + index: number; + weight: number; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly index: number; + readonly primitives: THREE_2.Mesh[]; + readonly weight: number; +} + +// @public (undocumented) +export const VRMExpressionOverrideType: { + readonly None: "none"; + readonly Block: "block"; + readonly Blend: "blend"; +}; + +// @public (undocumented) +export type VRMExpressionOverrideType = typeof VRMExpressionOverrideType[keyof typeof VRMExpressionOverrideType]; + +// @public (undocumented) +export const VRMExpressionPresetName: { + readonly Aa: "aa"; + readonly Ih: "ih"; + readonly Ou: "ou"; + readonly Ee: "ee"; + readonly Oh: "oh"; + readonly Blink: "blink"; + readonly Happy: "happy"; + readonly Angry: "angry"; + readonly Sad: "sad"; + readonly Relaxed: "relaxed"; + readonly LookUp: "lookUp"; + readonly Surprised: "surprised"; + readonly LookDown: "lookDown"; + readonly LookLeft: "lookLeft"; + readonly LookRight: "lookRight"; + readonly BlinkLeft: "blinkLeft"; + readonly BlinkRight: "blinkRight"; + readonly Neutral: "neutral"; +}; + +// @public (undocumented) +export type VRMExpressionPresetName = typeof VRMExpressionPresetName[keyof typeof VRMExpressionPresetName]; + +// @public +export class VRMExpressionTextureTransformBind implements VRMExpressionBind { + constructor({ material, scale, offset, }: { + material: THREE_2.Material; + scale: THREE_2.Vector2; + offset: THREE_2.Vector2; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly material: THREE_2.Material; + readonly offset: THREE_2.Vector2; + readonly scale: THREE_2.Vector2; +} + +// @public (undocumented) +export class VRMFirstPerson { + constructor(humanoid: VRMHumanoid, meshAnnotations: VRMFirstPersonMeshAnnotation[]); + clone(): VRMFirstPerson; + copy(source: VRMFirstPerson): this; + static readonly DEFAULT_FIRSTPERSON_ONLY_LAYER = 9; + static readonly DEFAULT_THIRDPERSON_ONLY_LAYER = 10; + get firstPersonOnlyLayer(): number; + readonly humanoid: VRMHumanoid; + // (undocumented) + meshAnnotations: VRMFirstPersonMeshAnnotation[]; + setup({ firstPersonOnlyLayer, thirdPersonOnlyLayer, }?: { + firstPersonOnlyLayer?: number | undefined; + thirdPersonOnlyLayer?: number | undefined; + }): void; + get thirdPersonOnlyLayer(): number; +} + +// @public +export class VRMFirstPersonLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMFirstPersonMeshAnnotation { + // (undocumented) + meshes: THREE.Mesh[]; + // (undocumented) + type: VRMFirstPersonMeshAnnotationType; +} + +// @public (undocumented) +export const VRMFirstPersonMeshAnnotationType: { + readonly Auto: "auto"; + readonly Both: "both"; + readonly ThirdPersonOnly: "thirdPersonOnly"; + readonly FirstPersonOnly: "firstPersonOnly"; +}; + +// @public (undocumented) +export type VRMFirstPersonMeshAnnotationType = typeof VRMFirstPersonMeshAnnotationType[keyof typeof VRMFirstPersonMeshAnnotationType]; + +// @public +export interface VRMHumanBone { + node: THREE_2.Object3D; +} + +// @public +export const VRMHumanBoneList: VRMHumanBoneName[]; + +// @public +export const VRMHumanBoneName: { + readonly Hips: "hips"; + readonly Spine: "spine"; + readonly Chest: "chest"; + readonly UpperChest: "upperChest"; + readonly Neck: "neck"; + readonly Head: "head"; + readonly LeftEye: "leftEye"; + readonly RightEye: "rightEye"; + readonly Jaw: "jaw"; + readonly LeftUpperLeg: "leftUpperLeg"; + readonly LeftLowerLeg: "leftLowerLeg"; + readonly LeftFoot: "leftFoot"; + readonly LeftToes: "leftToes"; + readonly RightUpperLeg: "rightUpperLeg"; + readonly RightLowerLeg: "rightLowerLeg"; + readonly RightFoot: "rightFoot"; + readonly RightToes: "rightToes"; + readonly LeftShoulder: "leftShoulder"; + readonly LeftUpperArm: "leftUpperArm"; + readonly LeftLowerArm: "leftLowerArm"; + readonly LeftHand: "leftHand"; + readonly RightShoulder: "rightShoulder"; + readonly RightUpperArm: "rightUpperArm"; + readonly RightLowerArm: "rightLowerArm"; + readonly RightHand: "rightHand"; + readonly LeftThumbMetacarpal: "leftThumbMetacarpal"; + readonly LeftThumbProximal: "leftThumbProximal"; + readonly LeftThumbDistal: "leftThumbDistal"; + readonly LeftIndexProximal: "leftIndexProximal"; + readonly LeftIndexIntermediate: "leftIndexIntermediate"; + readonly LeftIndexDistal: "leftIndexDistal"; + readonly LeftMiddleProximal: "leftMiddleProximal"; + readonly LeftMiddleIntermediate: "leftMiddleIntermediate"; + readonly LeftMiddleDistal: "leftMiddleDistal"; + readonly LeftRingProximal: "leftRingProximal"; + readonly LeftRingIntermediate: "leftRingIntermediate"; + readonly LeftRingDistal: "leftRingDistal"; + readonly LeftLittleProximal: "leftLittleProximal"; + readonly LeftLittleIntermediate: "leftLittleIntermediate"; + readonly LeftLittleDistal: "leftLittleDistal"; + readonly RightThumbMetacarpal: "rightThumbMetacarpal"; + readonly RightThumbProximal: "rightThumbProximal"; + readonly RightThumbDistal: "rightThumbDistal"; + readonly RightIndexProximal: "rightIndexProximal"; + readonly RightIndexIntermediate: "rightIndexIntermediate"; + readonly RightIndexDistal: "rightIndexDistal"; + readonly RightMiddleProximal: "rightMiddleProximal"; + readonly RightMiddleIntermediate: "rightMiddleIntermediate"; + readonly RightMiddleDistal: "rightMiddleDistal"; + readonly RightRingProximal: "rightRingProximal"; + readonly RightRingIntermediate: "rightRingIntermediate"; + readonly RightRingDistal: "rightRingDistal"; + readonly RightLittleProximal: "rightLittleProximal"; + readonly RightLittleIntermediate: "rightLittleIntermediate"; + readonly RightLittleDistal: "rightLittleDistal"; +}; + +// @public (undocumented) +export type VRMHumanBoneName = typeof VRMHumanBoneName[keyof typeof VRMHumanBoneName]; + +// @public +export const VRMHumanBoneParentMap: { + [bone in VRMHumanBoneName]: VRMHumanBoneName | null; +}; + +// @public +export type VRMHumanBones = { + [name in VRMHumanBoneName]?: VRMHumanBone; +} & { + [name in VRMRequiredHumanBoneName]: VRMHumanBone; +}; + +// @public +export class VRMHumanoid { + constructor(humanBones: VRMHumanBones, options?: { + autoUpdateHumanBones?: boolean; + }); + autoUpdateHumanBones: boolean; + clone(): VRMHumanoid; + copy(source: VRMHumanoid): this; + // @deprecated (undocumented) + getAbsolutePose(): VRMPose; + // @deprecated (undocumented) + getBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + // @deprecated (undocumented) + getBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getNormalizedAbsolutePose(): VRMPose; + getNormalizedBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + getNormalizedBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getNormalizedPose(): VRMPose; + // @deprecated (undocumented) + getPose(): VRMPose; + getRawAbsolutePose(): VRMPose; + getRawBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + getRawBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getRawPose(): VRMPose; + get humanBones(): VRMHumanBones; + get normalizedHumanBones(): VRMHumanBones; + get normalizedHumanBonesRoot(): THREE_2.Object3D; + get normalizedRestPose(): VRMPose; + get rawHumanBones(): VRMHumanBones; + get rawRestPose(): VRMPose; + resetNormalizedPose(): void; + // @deprecated (undocumented) + resetPose(): void; + resetRawPose(): void; + // @deprecated (undocumented) + get restPose(): VRMPose; + setNormalizedPose(poseObject: VRMPose): void; + // @deprecated (undocumented) + setPose(poseObject: VRMPose): void; + setRawPose(poseObject: VRMPose): void; + update(): void; +} + +// @public (undocumented) +export class VRMHumanoidHelper extends THREE_2.Group { + constructor(humanoid: VRMHumanoid); + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; + // (undocumented) + readonly vrmHumanoid: VRMHumanoid; +} + +// @public +export class VRMHumanoidLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMHumanoidLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + autoUpdateHumanBones?: boolean; + helperRoot?: THREE.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMHumanoidLoaderPluginOptions { + autoUpdateHumanBones?: boolean; + helperRoot?: THREE.Object3D; +} + +// @public +export class VRMLookAt { + constructor(humanoid: VRMHumanoid, applier: VRMLookAtApplier); + applier: VRMLookAtApplier; + autoUpdate: boolean; + clone(): VRMLookAt; + copy(source: VRMLookAt): this; + // @deprecated (undocumented) + get euler(): THREE_2.Euler; + // (undocumented) + static readonly EULER_ORDER = "YXZ"; + faceFront: THREE_2.Vector3; + getEuler(target: THREE_2.Euler): THREE_2.Euler; + getFaceFrontQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; + getLookAtWorldDirection(target: THREE_2.Vector3): THREE_2.Vector3; + getLookAtWorldPosition(target: THREE_2.Vector3): THREE_2.Vector3; + getLookAtWorldQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; + readonly humanoid: VRMHumanoid; + lookAt(position: THREE_2.Vector3): void; + protected _needsUpdate: boolean; + offsetFromHeadBone: THREE_2.Vector3; + get pitch(): number; + set pitch(value: number); + protected _pitch: number; + reset(): void; + target?: THREE_2.Object3D | null; + update(delta: number): void; + get yaw(): number; + set yaw(value: number); + protected _yaw: number; +} + +// @public +export interface VRMLookAtApplier { + applyYawPitch: (yaw: number, pitch: number) => void; + // @deprecated (undocumented) + lookAt: (euler: THREE_2.Euler) => void; +} + +// @public +export class VRMLookAtBoneApplier implements VRMLookAtApplier { + constructor(humanoid: VRMHumanoid, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); + applyYawPitch(yaw: number, pitch: number): void; + faceFront: THREE_2.Vector3; + readonly humanoid: VRMHumanoid; + // @deprecated (undocumented) + lookAt(euler: THREE_2.Euler): void; + rangeMapHorizontalInner: VRMLookAtRangeMap; + rangeMapHorizontalOuter: VRMLookAtRangeMap; + rangeMapVerticalDown: VRMLookAtRangeMap; + rangeMapVerticalUp: VRMLookAtRangeMap; + static readonly type = "bone"; +} + +// @public +export class VRMLookAtExpressionApplier implements VRMLookAtApplier { + constructor(expressions: VRMExpressionManager, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); + applyYawPitch(yaw: number, pitch: number): void; + readonly expressions: VRMExpressionManager; + // @deprecated (undocumented) + lookAt(euler: THREE_2.Euler): void; + rangeMapHorizontalInner: VRMLookAtRangeMap; + rangeMapHorizontalOuter: VRMLookAtRangeMap; + rangeMapVerticalDown: VRMLookAtRangeMap; + rangeMapVerticalUp: VRMLookAtRangeMap; + static readonly type = "expression"; +} + +// @public (undocumented) +export class VRMLookAtHelper extends THREE_2.Group { + constructor(lookAt: VRMLookAt); + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; + // (undocumented) + readonly vrmLookAt: VRMLookAt; +} + +// @public +export class VRMLookAtLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMLookAtLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + helperRoot?: THREE.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMLookAtLoaderPluginOptions { + helperRoot?: THREE.Object3D; +} + +// @public (undocumented) +export class VRMLookAtRangeMap { + constructor(inputMaxValue: number, outputScale: number); + inputMaxValue: number; + map(src: number): number; + outputScale: number; +} + +// @public +export const VRMLookAtTypeName: { + Bone: string; + Expression: string; +}; + +// @public (undocumented) +export type VRMLookAtTypeName = typeof VRMLookAtTypeName[keyof typeof VRMLookAtTypeName]; + +// @public +export type VRMMeta = VRM0Meta | VRM1Meta; + +// @public +export interface VRMMetaImporterOptions { + acceptLicenseUrls?: string[]; + acceptV0Meta?: boolean; + needThumbnailImage?: boolean; +} + +// @public +export class VRMMetaLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMMetaImporterOptions); + acceptLicenseUrls: string[]; + acceptV0Meta: boolean; + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + needThumbnailImage: boolean; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public +export type VRMPose = { + [boneName in VRMHumanBoneName]?: VRMPoseTransform; +}; + +// @public +export interface VRMPoseTransform { + position?: [number, number, number]; + rotation?: [number, number, number, number]; +} + +// @public (undocumented) +export const VRMRequiredHumanBoneName: { + readonly Hips: "hips"; + readonly Spine: "spine"; + readonly Head: "head"; + readonly LeftUpperLeg: "leftUpperLeg"; + readonly LeftLowerLeg: "leftLowerLeg"; + readonly LeftFoot: "leftFoot"; + readonly RightUpperLeg: "rightUpperLeg"; + readonly RightLowerLeg: "rightLowerLeg"; + readonly RightFoot: "rightFoot"; + readonly LeftUpperArm: "leftUpperArm"; + readonly LeftLowerArm: "leftLowerArm"; + readonly LeftHand: "leftHand"; + readonly RightUpperArm: "rightUpperArm"; + readonly RightLowerArm: "rightLowerArm"; + readonly RightHand: "rightHand"; +}; + +// @public (undocumented) +export type VRMRequiredHumanBoneName = typeof VRMRequiredHumanBoneName[keyof typeof VRMRequiredHumanBoneName]; + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-materials-hdr-emissive-multiplier/.gitignore b/packages/three-vrm-materials-hdr-emissive-multiplier/.gitignore new file mode 100644 index 000000000..a7c47537d --- /dev/null +++ b/packages/three-vrm-materials-hdr-emissive-multiplier/.gitignore @@ -0,0 +1 @@ +types/ diff --git a/packages/three-vrm-materials-hdr-emissive-multiplier/api-extractor.json b/packages/three-vrm-materials-hdr-emissive-multiplier/api-extractor.json new file mode 100644 index 000000000..2069b8ac3 --- /dev/null +++ b/packages/three-vrm-materials-hdr-emissive-multiplier/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} diff --git a/packages/three-vrm-materials-hdr-emissive-multiplier/package.json b/packages/three-vrm-materials-hdr-emissive-multiplier/package.json index 11b602ded..9960fbbdc 100644 --- a/packages/three-vrm-materials-hdr-emissive-multiplier/package.json +++ b/packages/three-vrm-materials-hdr-emissive-multiplier/package.json @@ -7,19 +7,11 @@ "files": [ "/lib/", "/ts*/", - "/types/", "LICENSE" ], "main": "lib/three-vrm-materials-hdr-emissive-multiplier.js", "module": "lib/three-vrm-materials-hdr-emissive-multiplier.module.js", - "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, + "types": "lib/three-vrm-materials-hdr-emissive-multiplier.d.ts", "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -33,7 +25,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", "lint-examples": "eslint \"examples/**/*.{ts,tsx,js,html}\" --rule \"padded-blocks: error\"", @@ -45,10 +37,8 @@ "prettier --write" ] }, - "dependencies": { - "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0": "2.0.6-alpha.2" - }, "devDependencies": { + "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0": "2.0.6-alpha.2", "@types/three": "^0.154.0", "three": "^0.154.0" }, diff --git a/packages/three-vrm-materials-hdr-emissive-multiplier/three-vrm-materials-hdr-emissive-multiplier.api.md b/packages/three-vrm-materials-hdr-emissive-multiplier/three-vrm-materials-hdr-emissive-multiplier.api.md new file mode 100644 index 000000000..26941b3e7 --- /dev/null +++ b/packages/three-vrm-materials-hdr-emissive-multiplier/three-vrm-materials-hdr-emissive-multiplier.api.md @@ -0,0 +1,27 @@ +## API Report File for "@pixiv/three-vrm-materials-hdr-emissive-multiplier" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; + +// @public (undocumented) +export class VRMMaterialsHDREmissiveMultiplierLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + extendMaterialParams(materialIndex: number, materialParams: { + [key: string]: any; + }): Promise; + // (undocumented) + static EXTENSION_NAME: "VRMC_materials_hdr_emissiveMultiplier"; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-materials-mtoon/.gitignore b/packages/three-vrm-materials-mtoon/.gitignore new file mode 100644 index 000000000..a7c47537d --- /dev/null +++ b/packages/three-vrm-materials-mtoon/.gitignore @@ -0,0 +1 @@ +types/ diff --git a/packages/three-vrm-materials-mtoon/api-extractor.json b/packages/three-vrm-materials-mtoon/api-extractor.json new file mode 100644 index 000000000..2069b8ac3 --- /dev/null +++ b/packages/three-vrm-materials-mtoon/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} diff --git a/packages/three-vrm-materials-mtoon/package.json b/packages/three-vrm-materials-mtoon/package.json index 1782083ad..5492d68ab 100644 --- a/packages/three-vrm-materials-mtoon/package.json +++ b/packages/three-vrm-materials-mtoon/package.json @@ -7,19 +7,11 @@ "files": [ "/lib/", "/ts*/", - "/types/", "LICENSE" ], "main": "lib/three-vrm-materials-mtoon.js", "module": "lib/three-vrm-materials-mtoon.module.js", - "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, + "types": "lib/three-vrm-materials-mtoon.d.ts", "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -33,7 +25,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", "lint-examples": "eslint \"examples/**/*.{ts,tsx,js,html}\" --rule \"padded-blocks: error\"", @@ -45,11 +37,9 @@ "prettier --write" ] }, - "dependencies": { - "@pixiv/types-vrm-0.0": "2.0.6-alpha.2", - "@pixiv/types-vrmc-materials-mtoon-1.0": "2.0.6-alpha.2" - }, "devDependencies": { + "@pixiv/types-vrm-0.0": "2.0.6-alpha.2", + "@pixiv/types-vrmc-materials-mtoon-1.0": "2.0.6-alpha.2", "@types/three": "^0.154.0", "three": "^0.154.0" }, diff --git a/packages/three-vrm-materials-mtoon/src/MToonMaterial.ts b/packages/three-vrm-materials-mtoon/src/MToonMaterial.ts index c0236287a..fcadf96c8 100644 --- a/packages/three-vrm-materials-mtoon/src/MToonMaterial.ts +++ b/packages/three-vrm-materials-mtoon/src/MToonMaterial.ts @@ -309,12 +309,6 @@ export class MToonMaterial extends THREE.ShaderMaterial { return this._v0CompatShade; } - /** - * There is a line of the shader called "comment out if you want to PBR absolutely" in VRM0.0 MToon. - * When this is true, the material enables the line to make it compatible with the legacy rendering of VRM. - * Usually not recommended to turn this on. - * `false` by default. - */ set v0CompatShade(v: boolean) { this._v0CompatShade = v; @@ -333,12 +327,6 @@ export class MToonMaterial extends THREE.ShaderMaterial { return this._debugMode; } - /** - * Debug mode for the material. - * You can visualize several components for diagnosis using debug mode. - * - * See: {@link MToonMaterialDebugMode} - */ set debugMode(m: MToonMaterialDebugMode) { this._debugMode = m; @@ -556,7 +544,7 @@ export class MToonMaterial extends THREE.ShaderMaterial { /** * Upload uniforms that need to upload but doesn't automatically because of reasons. - * Intended to be called via {@link constructor} and {@link update}. + * Intended to be called via {@link MToonMaterial}'s constructor and {@link update}. */ private _uploadUniformsWorkaround(): void { // workaround: since opacity is defined as a property in THREE.Material diff --git a/packages/three-vrm-materials-mtoon/three-vrm-materials-mtoon.api.md b/packages/three-vrm-materials-mtoon/three-vrm-materials-mtoon.api.md new file mode 100644 index 000000000..16f68624e --- /dev/null +++ b/packages/three-vrm-materials-mtoon/three-vrm-materials-mtoon.api.md @@ -0,0 +1,295 @@ +## API Report File for "@pixiv/three-vrm-materials-mtoon" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public +export class MToonMaterial extends THREE_2.ShaderMaterial { + constructor(parameters?: MToonMaterialParameters); + // (undocumented) + get color(): THREE_2.Color; + set color(value: THREE_2.Color); + // (undocumented) + copy(source: this): this; + get debugMode(): MToonMaterialDebugMode; + set debugMode(m: MToonMaterialDebugMode); + // (undocumented) + get emissive(): THREE_2.Color; + set emissive(value: THREE_2.Color); + // (undocumented) + get emissiveIntensity(): number; + set emissiveIntensity(value: number); + // (undocumented) + get emissiveMap(): THREE_2.Texture | null; + set emissiveMap(value: THREE_2.Texture | null); + fog: boolean; + // (undocumented) + get giEqualizationFactor(): number; + set giEqualizationFactor(value: number); + get ignoreVertexColor(): boolean; + set ignoreVertexColor(value: boolean); + get isMToonMaterial(): true; + // (undocumented) + get isOutline(): boolean; + set isOutline(b: boolean); + // (undocumented) + get map(): THREE_2.Texture | null; + set map(value: THREE_2.Texture | null); + // (undocumented) + get matcapFactor(): THREE_2.Color; + set matcapFactor(value: THREE_2.Color); + // (undocumented) + get matcapTexture(): THREE_2.Texture | null; + set matcapTexture(value: THREE_2.Texture | null); + // (undocumented) + get normalMap(): THREE_2.Texture | null; + set normalMap(value: THREE_2.Texture | null); + normalMapType: 0; + // (undocumented) + get normalScale(): THREE_2.Vector2; + set normalScale(value: THREE_2.Vector2); + // (undocumented) + get outlineColorFactor(): THREE_2.Color; + set outlineColorFactor(value: THREE_2.Color); + // (undocumented) + get outlineLightingMixFactor(): number; + set outlineLightingMixFactor(value: number); + // (undocumented) + get outlineWidthFactor(): number; + set outlineWidthFactor(value: number); + // (undocumented) + get outlineWidthMode(): MToonMaterialOutlineWidthMode; + set outlineWidthMode(m: MToonMaterialOutlineWidthMode); + // (undocumented) + get outlineWidthMultiplyTexture(): THREE_2.Texture | null; + set outlineWidthMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get parametricRimColorFactor(): THREE_2.Color; + set parametricRimColorFactor(value: THREE_2.Color); + // (undocumented) + get parametricRimFresnelPowerFactor(): number; + set parametricRimFresnelPowerFactor(value: number); + // (undocumented) + get parametricRimLiftFactor(): number; + set parametricRimLiftFactor(value: number); + // (undocumented) + get rimLightingMixFactor(): number; + set rimLightingMixFactor(value: number); + // (undocumented) + get rimMultiplyTexture(): THREE_2.Texture | null; + set rimMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadeColorFactor(): THREE_2.Color; + set shadeColorFactor(value: THREE_2.Color); + // (undocumented) + get shadeMultiplyTexture(): THREE_2.Texture | null; + set shadeMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadingShiftFactor(): number; + set shadingShiftFactor(value: number); + // (undocumented) + get shadingShiftTexture(): THREE_2.Texture | null; + set shadingShiftTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadingShiftTextureScale(): number; + set shadingShiftTextureScale(value: number); + // (undocumented) + get shadingToonyFactor(): number; + set shadingToonyFactor(value: number); + // (undocumented) + uniforms: { + litFactor: THREE_2.IUniform; + alphaTest: THREE_2.IUniform; + opacity: THREE_2.IUniform; + map: THREE_2.IUniform; + mapUvTransform: THREE_2.IUniform; + normalMap: THREE_2.IUniform; + normalMapUvTransform: THREE_2.IUniform; + normalScale: THREE_2.IUniform; + emissive: THREE_2.IUniform; + emissiveIntensity: THREE_2.IUniform; + emissiveMap: THREE_2.IUniform; + emissiveMapUvTransform: THREE_2.IUniform; + shadeColorFactor: THREE_2.IUniform; + shadeMultiplyTexture: THREE_2.IUniform; + shadeMultiplyTextureUvTransform: THREE_2.IUniform; + shadingShiftFactor: THREE_2.IUniform; + shadingShiftTexture: THREE_2.IUniform; + shadingShiftTextureUvTransform: THREE_2.IUniform; + shadingShiftTextureScale: THREE_2.IUniform; + shadingToonyFactor: THREE_2.IUniform; + giEqualizationFactor: THREE_2.IUniform; + matcapFactor: THREE_2.IUniform; + matcapTexture: THREE_2.IUniform; + matcapTextureUvTransform: THREE_2.IUniform; + parametricRimColorFactor: THREE_2.IUniform; + rimMultiplyTexture: THREE_2.IUniform; + rimMultiplyTextureUvTransform: THREE_2.IUniform; + rimLightingMixFactor: THREE_2.IUniform; + parametricRimFresnelPowerFactor: THREE_2.IUniform; + parametricRimLiftFactor: THREE_2.IUniform; + outlineWidthMultiplyTexture: THREE_2.IUniform; + outlineWidthMultiplyTextureUvTransform: THREE_2.IUniform; + outlineWidthFactor: THREE_2.IUniform; + outlineColorFactor: THREE_2.IUniform; + outlineLightingMixFactor: THREE_2.IUniform; + uvAnimationMaskTexture: THREE_2.IUniform; + uvAnimationMaskTextureUvTransform: THREE_2.IUniform; + uvAnimationScrollXOffset: THREE_2.IUniform; + uvAnimationScrollYOffset: THREE_2.IUniform; + uvAnimationRotationPhase: THREE_2.IUniform; + }; + update(delta: number): void; + // (undocumented) + get uvAnimationMaskTexture(): THREE_2.Texture | null; + set uvAnimationMaskTexture(value: THREE_2.Texture | null); + // (undocumented) + get uvAnimationRotationPhase(): number; + set uvAnimationRotationPhase(value: number); + // (undocumented) + uvAnimationRotationSpeedFactor: number; + // (undocumented) + get uvAnimationScrollXOffset(): number; + set uvAnimationScrollXOffset(value: number); + // (undocumented) + uvAnimationScrollXSpeedFactor: number; + // (undocumented) + get uvAnimationScrollYOffset(): number; + set uvAnimationScrollYOffset(value: number); + // (undocumented) + uvAnimationScrollYSpeedFactor: number; + get v0CompatShade(): boolean; + set v0CompatShade(v: boolean); +} + +// @public +export const MToonMaterialDebugMode: { + readonly None: "none"; + readonly Normal: "normal"; + readonly LitShadeRate: "litShadeRate"; + readonly UV: "uv"; +}; + +// @public (undocumented) +export type MToonMaterialDebugMode = typeof MToonMaterialDebugMode[keyof typeof MToonMaterialDebugMode]; + +// @public (undocumented) +export class MToonMaterialLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: MToonMaterialLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + beforeRoot(): Promise; + debugMode: MToonMaterialDebugMode; + // (undocumented) + extendMaterialParams(materialIndex: number, materialParams: MToonMaterialParameters): Promise | null; + // (undocumented) + static EXTENSION_NAME: string; + // (undocumented) + getMaterialType(materialIndex: number): typeof THREE_2.Material | null; + // (undocumented) + loadMesh(meshIndex: number): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; + renderOrderOffset: number; + v0CompatShade: boolean; +} + +// @public (undocumented) +export interface MToonMaterialLoaderPluginOptions { + debugMode?: MToonMaterialDebugMode; + renderOrderOffset?: number; + v0CompatShade?: boolean; +} + +// @public (undocumented) +export const MToonMaterialOutlineWidthMode: { + readonly None: "none"; + readonly WorldCoordinates: "worldCoordinates"; + readonly ScreenCoordinates: "screenCoordinates"; +}; + +// @public (undocumented) +export type MToonMaterialOutlineWidthMode = typeof MToonMaterialOutlineWidthMode[keyof typeof MToonMaterialOutlineWidthMode]; + +// @public (undocumented) +export interface MToonMaterialParameters extends THREE.ShaderMaterialParameters { + // (undocumented) + color?: THREE.Color; + debugMode?: MToonMaterialDebugMode; + // (undocumented) + emissive?: THREE.Color; + // (undocumented) + emissiveIntensity?: number; + // (undocumented) + emissiveMap?: THREE.Texture; + fog?: boolean; + // (undocumented) + giEqualizationFactor?: number; + ignoreVertexColor?: boolean; + isOutline?: boolean; + // (undocumented) + map?: THREE.Texture; + // (undocumented) + matcapFactor?: THREE.Color; + // (undocumented) + matcapTexture?: THREE.Texture; + // (undocumented) + normalMap?: THREE.Texture; + // (undocumented) + normalScale?: THREE.Vector2; + // (undocumented) + outlineColorFactor?: THREE.Color; + // (undocumented) + outlineLightingMixFactor?: number; + // (undocumented) + outlineWidthFactor?: number; + // (undocumented) + outlineWidthMode?: MToonMaterialOutlineWidthMode; + // (undocumented) + outlineWidthMultiplyTexture?: THREE.Texture; + // (undocumented) + parametricRimColorFactor?: THREE.Color; + // (undocumented) + parametricRimFresnelPowerFactor?: number; + // (undocumented) + parametricRimLiftFactor?: number; + // (undocumented) + rimLightingMixFactor?: number; + // (undocumented) + rimMultiplyTexture?: THREE.Texture; + // (undocumented) + shadeColorFactor?: THREE.Color; + // (undocumented) + shadeMultiplyTexture?: THREE.Texture; + // (undocumented) + shadingShiftFactor?: number; + // (undocumented) + shadingShiftTexture?: THREE.Texture; + // (undocumented) + shadingShiftTextureScale?: number; + // (undocumented) + shadingToonyFactor?: number; + transparentWithZWrite?: boolean; + // (undocumented) + uvAnimationMaskTexture?: THREE.Texture; + // (undocumented) + uvAnimationRotationSpeedFactor?: number; + // (undocumented) + uvAnimationScrollXSpeedFactor?: number; + // (undocumented) + uvAnimationScrollYSpeedFactor?: number; + v0CompatShade?: boolean; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-materials-v0compat/.gitignore b/packages/three-vrm-materials-v0compat/.gitignore new file mode 100644 index 000000000..a7c47537d --- /dev/null +++ b/packages/three-vrm-materials-v0compat/.gitignore @@ -0,0 +1 @@ +types/ diff --git a/packages/three-vrm-materials-v0compat/api-extractor.json b/packages/three-vrm-materials-v0compat/api-extractor.json new file mode 100644 index 000000000..2069b8ac3 --- /dev/null +++ b/packages/three-vrm-materials-v0compat/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} diff --git a/packages/three-vrm-materials-v0compat/package.json b/packages/three-vrm-materials-v0compat/package.json index fec5e3f7c..7cf07b5d6 100644 --- a/packages/three-vrm-materials-v0compat/package.json +++ b/packages/three-vrm-materials-v0compat/package.json @@ -7,19 +7,11 @@ "files": [ "/lib/", "/ts*/", - "/types/", "LICENSE" ], "main": "lib/three-vrm-materials-v0compat.js", "module": "lib/three-vrm-materials-v0compat.module.js", - "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, + "types": "lib/three-vrm-materials-v0compat.d.ts", "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -33,7 +25,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --project ./tsconfig.build-types.json && downlevel-dts types ts3.4/types", + "build-types": "tsc --project ./tsconfig.build-types.json && api-extractor run && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" @@ -44,11 +36,9 @@ "prettier --write" ] }, - "dependencies": { - "@pixiv/types-vrm-0.0": "2.0.6-alpha.2", - "@pixiv/types-vrmc-materials-mtoon-1.0": "2.0.6-alpha.2" - }, "devDependencies": { + "@pixiv/types-vrm-0.0": "2.0.6-alpha.2", + "@pixiv/types-vrmc-materials-mtoon-1.0": "2.0.6-alpha.2", "@types/three": "^0.154.0", "lint-staged": "13.1.2", "three": "^0.154.0" diff --git a/packages/three-vrm-materials-v0compat/three-vrm-materials-v0compat.api.md b/packages/three-vrm-materials-v0compat/three-vrm-materials-v0compat.api.md new file mode 100644 index 000000000..4ebb3d849 --- /dev/null +++ b/packages/three-vrm-materials-v0compat/three-vrm-materials-v0compat.api.md @@ -0,0 +1,23 @@ +## API Report File for "@pixiv/three-vrm-materials-v0compat" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; + +// @public (undocumented) +export class VRMMaterialsV0CompatPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + beforeRoot(): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-node-constraint/.gitignore b/packages/three-vrm-node-constraint/.gitignore new file mode 100644 index 000000000..a7c47537d --- /dev/null +++ b/packages/three-vrm-node-constraint/.gitignore @@ -0,0 +1 @@ +types/ diff --git a/packages/three-vrm-node-constraint/api-extractor.json b/packages/three-vrm-node-constraint/api-extractor.json new file mode 100644 index 000000000..2069b8ac3 --- /dev/null +++ b/packages/three-vrm-node-constraint/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} diff --git a/packages/three-vrm-node-constraint/package.json b/packages/three-vrm-node-constraint/package.json index f41d26994..ca7b33b96 100644 --- a/packages/three-vrm-node-constraint/package.json +++ b/packages/three-vrm-node-constraint/package.json @@ -7,19 +7,11 @@ "files": [ "/lib/", "/ts*/", - "/types/", "LICENSE" ], "main": "lib/three-vrm-node-constraint.js", "module": "lib/three-vrm-node-constraint.module.js", - "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, + "types": "lib/three-vrm-node-constraint.d.ts", "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -33,7 +25,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --project ./tsconfig.build-types.json && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "test": "jest", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", @@ -46,10 +38,8 @@ "prettier --write" ] }, - "dependencies": { - "@pixiv/types-vrmc-node-constraint-1.0": "2.0.6-alpha.2" - }, "devDependencies": { + "@pixiv/types-vrmc-node-constraint-1.0": "2.0.6-alpha.2", "@types/three": "^0.154.0", "lint-staged": "13.1.2", "three": "^0.154.0" diff --git a/packages/three-vrm-node-constraint/src/VRMAimConstraint.ts b/packages/three-vrm-node-constraint/src/VRMAimConstraint.ts index 045d540c8..06f0bdb5e 100644 --- a/packages/three-vrm-node-constraint/src/VRMAimConstraint.ts +++ b/packages/three-vrm-node-constraint/src/VRMAimConstraint.ts @@ -24,9 +24,6 @@ export class VRMAimConstraint extends VRMNodeConstraint { return this._aimAxis; } - /** - * The aim axis of the constraint. - */ public set aimAxis(aimAxis: 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ') { this._aimAxis = aimAxis; this._v3AimAxis.set( diff --git a/packages/three-vrm-node-constraint/src/VRMRollConstraint.ts b/packages/three-vrm-node-constraint/src/VRMRollConstraint.ts index 4bd58a487..352787c71 100644 --- a/packages/three-vrm-node-constraint/src/VRMRollConstraint.ts +++ b/packages/three-vrm-node-constraint/src/VRMRollConstraint.ts @@ -19,9 +19,6 @@ export class VRMRollConstraint extends VRMNodeConstraint { return this._rollAxis; } - /** - * The roll axis of the constraint. - */ public set rollAxis(rollAxis: 'X' | 'Y' | 'Z') { this._rollAxis = rollAxis; this._v3RollAxis.set(rollAxis === 'X' ? 1.0 : 0.0, rollAxis === 'Y' ? 1.0 : 0.0, rollAxis === 'Z' ? 1.0 : 0.0); diff --git a/packages/three-vrm-node-constraint/src/index.ts b/packages/three-vrm-node-constraint/src/index.ts index c123c78e8..d01fdf58d 100644 --- a/packages/three-vrm-node-constraint/src/index.ts +++ b/packages/three-vrm-node-constraint/src/index.ts @@ -3,6 +3,10 @@ export * from './helpers'; export { VRMAimConstraint } from './VRMAimConstraint'; export { VRMNodeConstraint } from './VRMNodeConstraint'; export { VRMNodeConstraintLoaderPlugin } from './VRMNodeConstraintLoaderPlugin'; +export { VRMNodeConstraintLoaderPluginOptions } from './VRMNodeConstraintLoaderPluginOptions'; export { VRMNodeConstraintManager } from './VRMNodeConstraintManager'; export { VRMRollConstraint } from './VRMRollConstraint'; export { VRMRotationConstraint } from './VRMRotationConstraint'; + +import type * as ConstraintSchema from '@pixiv/types-vrmc-node-constraint-1.0'; +export type { ConstraintSchema }; diff --git a/packages/three-vrm-node-constraint/three-vrm-node-constraint.api.md b/packages/three-vrm-node-constraint/three-vrm-node-constraint.api.md new file mode 100644 index 000000000..d4ae8c874 --- /dev/null +++ b/packages/three-vrm-node-constraint/three-vrm-node-constraint.api.md @@ -0,0 +1,194 @@ +## API Report File for "@pixiv/three-vrm-node-constraint" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public +interface AimConstraint { + aimAxis: 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'; + + // (undocumented) + extensions?: { [name: string]: any }; + + // (undocumented) + extras?: any; + + source: number; + + weight?: number; +} + +// @public +interface Constraint { + // (undocumented) + aim?: AimConstraint; + // (undocumented) + extensions?: { [name: string]: any }; + // (undocumented) + extras?: any; + // (undocumented) + roll?: RollConstraint; + // (undocumented) + rotation?: RotationConstraint; +} + +declare namespace ConstraintSchema { + export { + AimConstraint, + Constraint, + RollConstraint, + RotationConstraint, + VRMCNodeConstraint + } +} +export { ConstraintSchema } + +// @public +interface RollConstraint { + // (undocumented) + extensions?: { [name: string]: any }; + + // (undocumented) + extras?: any; + + rollAxis: 'X' | 'Y' | 'Z'; + + source: number; + + weight?: number; +} + +// @public +interface RotationConstraint { + // (undocumented) + extensions?: { [name: string]: any }; + + // (undocumented) + extras?: any; + + source: number; + + weight?: number; +} + +// @public +export class VRMAimConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + get aimAxis(): 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'; + set aimAxis(aimAxis: 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'); + // (undocumented) + get dependencies(): Set>; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +interface VRMCNodeConstraint { + // (undocumented) + constraint: Constraint; + + // (undocumented) + extensions?: { [name: string]: any }; + + // (undocumented) + extras?: any; + + specVersion: '1.0' | '1.0-beta'; +} + +// @public +export abstract class VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + abstract get dependencies(): Set; + destination: THREE_2.Object3D; + abstract setInitState(): void; + source: THREE_2.Object3D; + abstract update(): void; + weight: number; +} + +// @public (undocumented) +export class VRMNodeConstraintHelper extends THREE_2.Group { + constructor(constraint: VRMNodeConstraint); + // (undocumented) + readonly constraint: VRMNodeConstraint; + // (undocumented) + updateMatrixWorld(force?: boolean): void; +} + +// @public (undocumented) +export class VRMNodeConstraintLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMNodeConstraintLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + static readonly EXTENSION_NAME = "VRMC_node_constraint"; + helperRoot?: THREE_2.Object3D; + protected _import(gltf: GLTF): Promise; + // (undocumented) + protected _importAimConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], aimConstraintDef: ConstraintSchema.AimConstraint): VRMAimConstraint; + // (undocumented) + protected _importRollConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rollConstraintDef: ConstraintSchema.RollConstraint): VRMRollConstraint; + // (undocumented) + protected _importRotationConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rotationConstraintDef: ConstraintSchema.RotationConstraint): VRMRotationConstraint; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMNodeConstraintLoaderPluginOptions { + helperRoot?: THREE.Object3D; +} + +// @public (undocumented) +export class VRMNodeConstraintManager { + // (undocumented) + addConstraint(constraint: VRMNodeConstraint): void; + // (undocumented) + get constraints(): Set; + // (undocumented) + deleteConstraint(constraint: VRMNodeConstraint): void; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMRollConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + get dependencies(): Set>; + get rollAxis(): 'X' | 'Y' | 'Z'; + set rollAxis(rollAxis: 'X' | 'Y' | 'Z'); + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMRotationConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + get dependencies(): Set>; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm-springbone/.gitignore b/packages/three-vrm-springbone/.gitignore new file mode 100644 index 000000000..a7c47537d --- /dev/null +++ b/packages/three-vrm-springbone/.gitignore @@ -0,0 +1 @@ +types/ diff --git a/packages/three-vrm-springbone/api-extractor.json b/packages/three-vrm-springbone/api-extractor.json new file mode 100644 index 000000000..2069b8ac3 --- /dev/null +++ b/packages/three-vrm-springbone/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} diff --git a/packages/three-vrm-springbone/package.json b/packages/three-vrm-springbone/package.json index 8c77c3cb4..1e1dbf67a 100644 --- a/packages/three-vrm-springbone/package.json +++ b/packages/three-vrm-springbone/package.json @@ -7,19 +7,11 @@ "files": [ "/lib/", "/ts*/", - "/types/", "LICENSE" ], "main": "lib/three-vrm-springbone.js", "module": "lib/three-vrm-springbone.module.js", - "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, + "types": "lib/three-vrm-springbone.d.ts", "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -33,7 +25,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "test": "jest", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", @@ -46,11 +38,9 @@ "prettier --write" ] }, - "dependencies": { - "@pixiv/types-vrm-0.0": "2.0.6-alpha.2", - "@pixiv/types-vrmc-springbone-1.0": "2.0.6-alpha.2" - }, "devDependencies": { + "@pixiv/types-vrm-0.0": "2.0.6-alpha.2", + "@pixiv/types-vrmc-springbone-1.0": "2.0.6-alpha.2", "lint-staged": "13.1.2", "three": "^0.154.0" }, diff --git a/packages/three-vrm-springbone/src/index.ts b/packages/three-vrm-springbone/src/index.ts index 62b73923d..624a964c5 100644 --- a/packages/three-vrm-springbone/src/index.ts +++ b/packages/three-vrm-springbone/src/index.ts @@ -6,5 +6,6 @@ export * from './VRMSpringBoneColliderShapeCapsule'; export * from './VRMSpringBoneColliderShapeSphere'; export * from './VRMSpringBoneJoint'; export * from './VRMSpringBoneLoaderPlugin'; +export * from './VRMSpringBoneLoaderPluginOptions'; export * from './VRMSpringBoneManager'; export * from './VRMSpringBoneJointSettings'; diff --git a/packages/three-vrm-springbone/three-vrm-springbone.api.md b/packages/three-vrm-springbone/three-vrm-springbone.api.md new file mode 100644 index 000000000..9b1d76348 --- /dev/null +++ b/packages/three-vrm-springbone/three-vrm-springbone.api.md @@ -0,0 +1,161 @@ +## API Report File for "@pixiv/three-vrm-springbone" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import type { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public +export class VRMSpringBoneCollider extends THREE_2.Object3D { + constructor(shape: VRMSpringBoneColliderShape); + readonly shape: VRMSpringBoneColliderShape; +} + +// @public +export interface VRMSpringBoneColliderGroup { + colliders: VRMSpringBoneCollider[]; + name?: string; +} + +// @public (undocumented) +export class VRMSpringBoneColliderHelper extends THREE_2.Group { + constructor(collider: VRMSpringBoneCollider); + // (undocumented) + readonly collider: VRMSpringBoneCollider; + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; +} + +// @public +export abstract class VRMSpringBoneColliderShape { + abstract calculateCollision(colliderMatrix: THREE.Matrix4, objectPosition: THREE.Vector3, objectRadius: number, target: THREE.Vector3): number; + abstract get type(): string; +} + +// @public (undocumented) +export class VRMSpringBoneColliderShapeCapsule extends VRMSpringBoneColliderShape { + constructor(params?: { + radius?: number; + offset?: THREE_2.Vector3; + tail?: THREE_2.Vector3; + }); + // (undocumented) + calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; + offset: THREE_2.Vector3; + radius: number; + tail: THREE_2.Vector3; + // (undocumented) + get type(): 'capsule'; +} + +// @public (undocumented) +export class VRMSpringBoneColliderShapeSphere extends VRMSpringBoneColliderShape { + constructor(params?: { + radius?: number; + offset?: THREE_2.Vector3; + }); + // (undocumented) + calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; + offset: THREE_2.Vector3; + radius: number; + // (undocumented) + get type(): 'sphere'; +} + +// @public +export class VRMSpringBoneJoint { + constructor(bone: THREE_2.Object3D, child: THREE_2.Object3D | null, settings?: Partial, colliderGroups?: VRMSpringBoneColliderGroup[]); + readonly bone: THREE_2.Object3D; + // (undocumented) + get center(): THREE_2.Object3D | null; + set center(center: THREE_2.Object3D | null); + readonly child: THREE_2.Object3D | null; + colliderGroups: VRMSpringBoneColliderGroup[]; + // (undocumented) + get initialLocalChildPosition(): THREE_2.Vector3; + reset(): void; + setInitState(): void; + settings: VRMSpringBoneJointSettings; + update(delta: number): void; +} + +// @public (undocumented) +export class VRMSpringBoneJointHelper extends THREE_2.Group { + constructor(springBone: VRMSpringBoneJoint); + // (undocumented) + dispose(): void; + // (undocumented) + readonly springBone: VRMSpringBoneJoint; + // (undocumented) + updateMatrixWorld(force: boolean): void; +} + +// @public (undocumented) +export interface VRMSpringBoneJointSettings { + // (undocumented) + dragForce: number; + // (undocumented) + gravityDir: THREE.Vector3; + // (undocumented) + gravityPower: number; + hitRadius: number; + // (undocumented) + stiffness: number; +} + +// @public (undocumented) +export class VRMSpringBoneLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMSpringBoneLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + colliderHelperRoot?: THREE_2.Object3D; + // (undocumented) + static readonly EXTENSION_NAME = "VRMC_springBone"; + jointHelperRoot?: THREE_2.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMSpringBoneLoaderPluginOptions { + colliderHelperRoot?: THREE.Object3D; + jointHelperRoot?: THREE.Object3D; +} + +// @public (undocumented) +export class VRMSpringBoneManager { + // (undocumented) + addJoint(joint: VRMSpringBoneJoint): void; + // @deprecated (undocumented) + addSpringBone(joint: VRMSpringBoneJoint): void; + // (undocumented) + get colliderGroups(): VRMSpringBoneColliderGroup[]; + // (undocumented) + get colliders(): VRMSpringBoneCollider[]; + // (undocumented) + deleteJoint(joint: VRMSpringBoneJoint): void; + // @deprecated (undocumented) + deleteSpringBone(joint: VRMSpringBoneJoint): void; + // (undocumented) + get joints(): Set; + // (undocumented) + reset(): void; + // (undocumented) + setInitState(): void; + // @deprecated (undocumented) + get springBones(): Set; + // (undocumented) + update(delta: number): void; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/three-vrm/.gitignore b/packages/three-vrm/.gitignore new file mode 100644 index 000000000..a7c47537d --- /dev/null +++ b/packages/three-vrm/.gitignore @@ -0,0 +1 @@ +types/ diff --git a/packages/three-vrm/api-extractor.json b/packages/three-vrm/api-extractor.json new file mode 100644 index 000000000..2069b8ac3 --- /dev/null +++ b/packages/three-vrm/api-extractor.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.base.json" +} diff --git a/packages/three-vrm/package.json b/packages/three-vrm/package.json index cae38e40b..e52bce4b1 100644 --- a/packages/three-vrm/package.json +++ b/packages/three-vrm/package.json @@ -7,19 +7,11 @@ "files": [ "/lib/", "/ts*/", - "/types/", "LICENSE" ], "main": "lib/three-vrm.js", "module": "lib/three-vrm.module.js", - "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, + "types": "lib/three-vrm.d.ts", "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -33,7 +25,7 @@ "build": "yarn build-dev && yarn build-prod && yarn build-types", "build-dev": "cross-env NODE_ENV=development rollup -c", "build-prod": "cross-env NODE_ENV=production rollup -c", - "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", + "build-types": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && api-extractor run && rimraf types", "docs": "typedoc --entryPoints ./src/index.ts --out docs", "test": "echo There is no test for three-vrm", "lint": "eslint \"src/**/*.{ts,tsx}\" && yarn lint-examples && prettier \"src/**/*.{ts,tsx}\" --check", @@ -46,15 +38,13 @@ "prettier --write" ] }, - "dependencies": { + "devDependencies": { "@pixiv/three-vrm-core": "2.0.6-alpha.2", "@pixiv/three-vrm-materials-hdr-emissive-multiplier": "2.0.6-alpha.2", "@pixiv/three-vrm-materials-mtoon": "2.0.6-alpha.2", "@pixiv/three-vrm-materials-v0compat": "2.0.6-alpha.2", "@pixiv/three-vrm-node-constraint": "2.0.6-alpha.2", - "@pixiv/three-vrm-springbone": "2.0.6-alpha.2" - }, - "devDependencies": { + "@pixiv/three-vrm-springbone": "2.0.6-alpha.2", "@rollup/plugin-node-resolve": "^15.0.1", "@types/three": "^0.154.0", "lint-staged": "13.1.2", diff --git a/packages/three-vrm/src/VRMUtils/index.ts b/packages/three-vrm/src/VRMUtils/index.ts index 78b52f207..afef9a0fa 100644 --- a/packages/three-vrm/src/VRMUtils/index.ts +++ b/packages/three-vrm/src/VRMUtils/index.ts @@ -3,6 +3,8 @@ import { removeUnnecessaryJoints } from './removeUnnecessaryJoints'; import { removeUnnecessaryVertices } from './removeUnnecessaryVertices'; import { rotateVRM0 } from './rotateVRM0'; +export type { deepDispose, removeUnnecessaryJoints, removeUnnecessaryVertices, rotateVRM0 }; + export class VRMUtils { private constructor() { // this class is not meant to be instantiated diff --git a/packages/three-vrm/src/index.ts b/packages/three-vrm/src/index.ts index 62c049c06..706ae2f46 100644 --- a/packages/three-vrm/src/index.ts +++ b/packages/three-vrm/src/index.ts @@ -9,3 +9,6 @@ export * from '@pixiv/three-vrm-core'; export * from '@pixiv/three-vrm-materials-mtoon'; export * from '@pixiv/three-vrm-node-constraint'; export * from '@pixiv/three-vrm-springbone'; + +export type { VRMMaterialsV0CompatPlugin } from '@pixiv/three-vrm-materials-v0compat'; +export type { VRMNodeConstraintLoaderPlugin } from '@pixiv/three-vrm-node-constraint'; diff --git a/packages/three-vrm/three-vrm.api.md b/packages/three-vrm/three-vrm.api.md new file mode 100644 index 000000000..95a4c4219 --- /dev/null +++ b/packages/three-vrm/three-vrm.api.md @@ -0,0 +1,1349 @@ +## API Report File for "@pixiv/three-vrm" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFLoaderPlugin } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import { GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; +import * as THREE_2 from 'three'; + +// @public (undocumented) +export namespace ConstraintSchema { + { + AimConstraint, + Constraint, + RollConstraint, + RotationConstraint, + VRMCNodeConstraint + } +} + +// @public (undocumented) +export function deepDispose(object3D: THREE_2.Object3D): void; + +// @public +export class MToonMaterial extends THREE_2.ShaderMaterial { + constructor(parameters?: MToonMaterialParameters); + // (undocumented) + get color(): THREE_2.Color; + set color(value: THREE_2.Color); + // (undocumented) + copy(source: this): this; + get debugMode(): MToonMaterialDebugMode; + set debugMode(m: MToonMaterialDebugMode); + // (undocumented) + get emissive(): THREE_2.Color; + set emissive(value: THREE_2.Color); + // (undocumented) + get emissiveIntensity(): number; + set emissiveIntensity(value: number); + // (undocumented) + get emissiveMap(): THREE_2.Texture | null; + set emissiveMap(value: THREE_2.Texture | null); + fog: boolean; + // (undocumented) + get giEqualizationFactor(): number; + set giEqualizationFactor(value: number); + get ignoreVertexColor(): boolean; + set ignoreVertexColor(value: boolean); + get isMToonMaterial(): true; + // (undocumented) + get isOutline(): boolean; + set isOutline(b: boolean); + // (undocumented) + get map(): THREE_2.Texture | null; + set map(value: THREE_2.Texture | null); + // (undocumented) + get matcapFactor(): THREE_2.Color; + set matcapFactor(value: THREE_2.Color); + // (undocumented) + get matcapTexture(): THREE_2.Texture | null; + set matcapTexture(value: THREE_2.Texture | null); + // (undocumented) + get normalMap(): THREE_2.Texture | null; + set normalMap(value: THREE_2.Texture | null); + normalMapType: 0; + // (undocumented) + get normalScale(): THREE_2.Vector2; + set normalScale(value: THREE_2.Vector2); + // (undocumented) + get outlineColorFactor(): THREE_2.Color; + set outlineColorFactor(value: THREE_2.Color); + // (undocumented) + get outlineLightingMixFactor(): number; + set outlineLightingMixFactor(value: number); + // (undocumented) + get outlineWidthFactor(): number; + set outlineWidthFactor(value: number); + // (undocumented) + get outlineWidthMode(): MToonMaterialOutlineWidthMode; + set outlineWidthMode(m: MToonMaterialOutlineWidthMode); + // (undocumented) + get outlineWidthMultiplyTexture(): THREE_2.Texture | null; + set outlineWidthMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get parametricRimColorFactor(): THREE_2.Color; + set parametricRimColorFactor(value: THREE_2.Color); + // (undocumented) + get parametricRimFresnelPowerFactor(): number; + set parametricRimFresnelPowerFactor(value: number); + // (undocumented) + get parametricRimLiftFactor(): number; + set parametricRimLiftFactor(value: number); + // (undocumented) + get rimLightingMixFactor(): number; + set rimLightingMixFactor(value: number); + // (undocumented) + get rimMultiplyTexture(): THREE_2.Texture | null; + set rimMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadeColorFactor(): THREE_2.Color; + set shadeColorFactor(value: THREE_2.Color); + // (undocumented) + get shadeMultiplyTexture(): THREE_2.Texture | null; + set shadeMultiplyTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadingShiftFactor(): number; + set shadingShiftFactor(value: number); + // (undocumented) + get shadingShiftTexture(): THREE_2.Texture | null; + set shadingShiftTexture(value: THREE_2.Texture | null); + // (undocumented) + get shadingShiftTextureScale(): number; + set shadingShiftTextureScale(value: number); + // (undocumented) + get shadingToonyFactor(): number; + set shadingToonyFactor(value: number); + // (undocumented) + uniforms: { + litFactor: THREE_2.IUniform; + alphaTest: THREE_2.IUniform; + opacity: THREE_2.IUniform; + map: THREE_2.IUniform; + mapUvTransform: THREE_2.IUniform; + normalMap: THREE_2.IUniform; + normalMapUvTransform: THREE_2.IUniform; + normalScale: THREE_2.IUniform; + emissive: THREE_2.IUniform; + emissiveIntensity: THREE_2.IUniform; + emissiveMap: THREE_2.IUniform; + emissiveMapUvTransform: THREE_2.IUniform; + shadeColorFactor: THREE_2.IUniform; + shadeMultiplyTexture: THREE_2.IUniform; + shadeMultiplyTextureUvTransform: THREE_2.IUniform; + shadingShiftFactor: THREE_2.IUniform; + shadingShiftTexture: THREE_2.IUniform; + shadingShiftTextureUvTransform: THREE_2.IUniform; + shadingShiftTextureScale: THREE_2.IUniform; + shadingToonyFactor: THREE_2.IUniform; + giEqualizationFactor: THREE_2.IUniform; + matcapFactor: THREE_2.IUniform; + matcapTexture: THREE_2.IUniform; + matcapTextureUvTransform: THREE_2.IUniform; + parametricRimColorFactor: THREE_2.IUniform; + rimMultiplyTexture: THREE_2.IUniform; + rimMultiplyTextureUvTransform: THREE_2.IUniform; + rimLightingMixFactor: THREE_2.IUniform; + parametricRimFresnelPowerFactor: THREE_2.IUniform; + parametricRimLiftFactor: THREE_2.IUniform; + outlineWidthMultiplyTexture: THREE_2.IUniform; + outlineWidthMultiplyTextureUvTransform: THREE_2.IUniform; + outlineWidthFactor: THREE_2.IUniform; + outlineColorFactor: THREE_2.IUniform; + outlineLightingMixFactor: THREE_2.IUniform; + uvAnimationMaskTexture: THREE_2.IUniform; + uvAnimationMaskTextureUvTransform: THREE_2.IUniform; + uvAnimationScrollXOffset: THREE_2.IUniform; + uvAnimationScrollYOffset: THREE_2.IUniform; + uvAnimationRotationPhase: THREE_2.IUniform; + }; + update(delta: number): void; + // (undocumented) + get uvAnimationMaskTexture(): THREE_2.Texture | null; + set uvAnimationMaskTexture(value: THREE_2.Texture | null); + // (undocumented) + get uvAnimationRotationPhase(): number; + set uvAnimationRotationPhase(value: number); + // (undocumented) + uvAnimationRotationSpeedFactor: number; + // (undocumented) + get uvAnimationScrollXOffset(): number; + set uvAnimationScrollXOffset(value: number); + // (undocumented) + uvAnimationScrollXSpeedFactor: number; + // (undocumented) + get uvAnimationScrollYOffset(): number; + set uvAnimationScrollYOffset(value: number); + // (undocumented) + uvAnimationScrollYSpeedFactor: number; + get v0CompatShade(): boolean; + set v0CompatShade(v: boolean); +} + +// @public +export const MToonMaterialDebugMode: { + readonly None: "none"; + readonly Normal: "normal"; + readonly LitShadeRate: "litShadeRate"; + readonly UV: "uv"; +}; + +// @public (undocumented) +export type MToonMaterialDebugMode = typeof MToonMaterialDebugMode[keyof typeof MToonMaterialDebugMode]; + +// @public (undocumented) +export class MToonMaterialLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: MToonMaterialLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + beforeRoot(): Promise; + debugMode: MToonMaterialDebugMode; + // (undocumented) + extendMaterialParams(materialIndex: number, materialParams: MToonMaterialParameters): Promise | null; + // (undocumented) + static EXTENSION_NAME: string; + // (undocumented) + getMaterialType(materialIndex: number): typeof THREE_2.Material | null; + // (undocumented) + loadMesh(meshIndex: number): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; + renderOrderOffset: number; + v0CompatShade: boolean; +} + +// @public (undocumented) +export interface MToonMaterialLoaderPluginOptions { + debugMode?: MToonMaterialDebugMode; + renderOrderOffset?: number; + v0CompatShade?: boolean; +} + +// @public (undocumented) +export const MToonMaterialOutlineWidthMode: { + readonly None: "none"; + readonly WorldCoordinates: "worldCoordinates"; + readonly ScreenCoordinates: "screenCoordinates"; +}; + +// @public (undocumented) +export type MToonMaterialOutlineWidthMode = typeof MToonMaterialOutlineWidthMode[keyof typeof MToonMaterialOutlineWidthMode]; + +// @public (undocumented) +export interface MToonMaterialParameters extends THREE.ShaderMaterialParameters { + // (undocumented) + color?: THREE.Color; + debugMode?: MToonMaterialDebugMode; + // (undocumented) + emissive?: THREE.Color; + // (undocumented) + emissiveIntensity?: number; + // (undocumented) + emissiveMap?: THREE.Texture; + fog?: boolean; + // (undocumented) + giEqualizationFactor?: number; + ignoreVertexColor?: boolean; + isOutline?: boolean; + // (undocumented) + map?: THREE.Texture; + // (undocumented) + matcapFactor?: THREE.Color; + // (undocumented) + matcapTexture?: THREE.Texture; + // (undocumented) + normalMap?: THREE.Texture; + // (undocumented) + normalScale?: THREE.Vector2; + // (undocumented) + outlineColorFactor?: THREE.Color; + // (undocumented) + outlineLightingMixFactor?: number; + // (undocumented) + outlineWidthFactor?: number; + // (undocumented) + outlineWidthMode?: MToonMaterialOutlineWidthMode; + // (undocumented) + outlineWidthMultiplyTexture?: THREE.Texture; + // (undocumented) + parametricRimColorFactor?: THREE.Color; + // (undocumented) + parametricRimFresnelPowerFactor?: number; + // (undocumented) + parametricRimLiftFactor?: number; + // (undocumented) + rimLightingMixFactor?: number; + // (undocumented) + rimMultiplyTexture?: THREE.Texture; + // (undocumented) + shadeColorFactor?: THREE.Color; + // (undocumented) + shadeMultiplyTexture?: THREE.Texture; + // (undocumented) + shadingShiftFactor?: number; + // (undocumented) + shadingShiftTexture?: THREE.Texture; + // (undocumented) + shadingShiftTextureScale?: number; + // (undocumented) + shadingToonyFactor?: number; + transparentWithZWrite?: boolean; + // (undocumented) + uvAnimationMaskTexture?: THREE.Texture; + // (undocumented) + uvAnimationRotationSpeedFactor?: number; + // (undocumented) + uvAnimationScrollXSpeedFactor?: number; + // (undocumented) + uvAnimationScrollYSpeedFactor?: number; + v0CompatShade?: boolean; +} + +// @public +export function removeUnnecessaryJoints(root: THREE_2.Object3D): void; + +// @public +export function removeUnnecessaryVertices(root: THREE_2.Object3D): void; + +// @public +export function rotateVRM0(vrm: VRM): void; + +// @public (undocumented) +export namespace V0VRM { + { + BlendShape, + BlendShapeBind, + BlendShapeGroup, + BlendShapeMaterialbind, + BlendShapePresetName, + FirstPerson, + FirstPersonDegreeMap, + FirstPersonMeshAnnotation, + Humanoid, + HumanoidBone, + HumanoidBoneName, + Material, + Meta, + SecondaryAnimation, + SecondaryAnimationCollider, + SecondaryAnimationColliderGroup, + SecondaryAnimationSpring, + Vector3, + VRM + } +} + +// @public +export class VRM extends VRMCore { + constructor(params: VRMParameters); + readonly materials?: THREE_2.Material[]; + readonly nodeConstraintManager?: VRMNodeConstraintManager; + readonly springBoneManager?: VRMSpringBoneManager; + update(delta: number): void; +} + +// @public +export interface VRM0Meta { + allowedUserName?: 'Everyone' | 'ExplicitlyLicensedPerson' | 'OnlyAuthor'; + author?: string; + commercialUssageName?: 'Allow' | 'Disallow'; + contactInformation?: string; + licenseName?: 'CC0' | 'CC_BY' | 'CC_BY_NC' | 'CC_BY_NC_ND' | 'CC_BY_NC_SA' | 'CC_BY_ND' | 'CC_BY_SA' | 'Other' | 'Redistribution_Prohibited'; + metaVersion: '0'; + otherLicenseUrl?: string; + otherPermissionUrl?: string; + reference?: string; + sexualUssageName?: 'Allow' | 'Disallow'; + texture?: THREE_2.Texture; + title?: string; + version?: string; + violentUssageName?: 'Allow' | 'Disallow'; +} + +// @public +export interface VRM1Meta { + allowAntisocialOrHateUsage?: boolean; + allowExcessivelySexualUsage?: boolean; + allowExcessivelyViolentUsage?: boolean; + allowPoliticalOrReligiousUsage?: boolean; + allowRedistribution?: boolean; + authors: string[]; + avatarPermission?: 'onlyAuthor' | 'onlySeparatelyLicensedPerson' | 'everyone'; + commercialUsage?: 'personalNonProfit' | 'personalProfit' | 'corporation'; + contactInformation?: string; + copyrightInformation?: string; + creditNotation?: 'required' | 'unnecessary'; + licenseUrl: string; + metaVersion: '1'; + modification?: 'prohibited' | 'allowModification' | 'allowModificationRedistribution'; + name: string; + otherLicenseUrl?: string; + references?: string[]; + thirdPartyLicenses?: string; + thumbnailImage?: HTMLImageElement; + version?: string; +} + +// @public +export class VRMAimConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + get aimAxis(): 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'; + set aimAxis(aimAxis: 'PositiveX' | 'NegativeX' | 'PositiveY' | 'NegativeY' | 'PositiveZ' | 'NegativeZ'); + // (undocumented) + get dependencies(): Set>; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMCore { + constructor(params: VRMCoreParameters); + readonly expressionManager?: VRMExpressionManager; + readonly firstPerson?: VRMFirstPerson; + readonly humanoid: VRMHumanoid; + readonly lookAt?: VRMLookAt; + readonly meta: VRMMeta; + readonly scene: THREE_2.Group; + update(delta: number): void; +} + +// @public (undocumented) +export class VRMCoreLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMCoreLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + readonly expressionPlugin: VRMExpressionLoaderPlugin; + // (undocumented) + readonly firstPersonPlugin: VRMFirstPersonLoaderPlugin; + // (undocumented) + readonly humanoidPlugin: VRMHumanoidLoaderPlugin; + // (undocumented) + readonly lookAtPlugin: VRMLookAtLoaderPlugin; + // (undocumented) + readonly metaPlugin: VRMMetaLoaderPlugin; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMCoreLoaderPluginOptions { + // (undocumented) + autoUpdateHumanBones?: boolean; + // (undocumented) + expressionPlugin?: VRMExpressionLoaderPlugin; + // (undocumented) + firstPersonPlugin?: VRMFirstPersonLoaderPlugin; + helperRoot?: THREE.Object3D; + // (undocumented) + humanoidPlugin?: VRMHumanoidLoaderPlugin; + // (undocumented) + lookAtPlugin?: VRMLookAtLoaderPlugin; + // (undocumented) + metaPlugin?: VRMMetaLoaderPlugin; +} + +// @public +export interface VRMCoreParameters { + // (undocumented) + expressionManager?: VRMExpressionManager; + // (undocumented) + firstPerson?: VRMFirstPerson; + // (undocumented) + humanoid: VRMHumanoid; + // (undocumented) + lookAt?: VRMLookAt; + // (undocumented) + meta: VRMMeta; + // (undocumented) + scene: THREE.Group; +} + +// @public (undocumented) +export class VRMExpression extends THREE_2.Object3D { + constructor(expressionName: string); + // (undocumented) + addBind(bind: VRMExpressionBind): void; + applyWeight(options?: { + multiplier?: number; + }): void; + clearAppliedWeight(): void; + expressionName: string; + isBinary: boolean; + overrideBlink: VRMExpressionOverrideType; + get overrideBlinkAmount(): number; + overrideLookAt: VRMExpressionOverrideType; + get overrideLookAtAmount(): number; + overrideMouth: VRMExpressionOverrideType; + get overrideMouthAmount(): number; + // (undocumented) + readonly type: string | 'VRMExpression'; + weight: number; +} + +// @public (undocumented) +export interface VRMExpressionBind { + applyWeight(weight: number): void; + clearAppliedWeight(): void; +} + +// @public +export class VRMExpressionLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; + // (undocumented) + static readonly v0v1PresetNameMap: { + [v0Name in V0VRM.BlendShapePresetName]?: VRMExpressionPresetName; + }; +} + +// @public (undocumented) +export class VRMExpressionManager { + constructor(); + blinkExpressionNames: string[]; + clone(): VRMExpressionManager; + copy(source: VRMExpressionManager): this; + get customExpressionMap(): { + [name: string]: VRMExpression; + }; + // (undocumented) + get expressionMap(): { + [name: string]: VRMExpression; + }; + // (undocumented) + get expressions(): VRMExpression[]; + getExpression(name: VRMExpressionPresetName | string): VRMExpression | null; + getExpressionTrackName(name: VRMExpressionPresetName | string): string | null; + getValue(name: VRMExpressionPresetName | string): number | null; + lookAtExpressionNames: string[]; + mouthExpressionNames: string[]; + get presetExpressionMap(): { + [name in VRMExpressionPresetName]?: VRMExpression; + }; + registerExpression(expression: VRMExpression): void; + setValue(name: VRMExpressionPresetName | string, weight: number): void; + unregisterExpression(expression: VRMExpression): void; + update(): void; +} + +// @public +export class VRMExpressionMaterialColorBind implements VRMExpressionBind { + constructor({ material, type, targetValue, }: { + material: THREE_2.Material; + type: VRMExpressionMaterialColorType; + targetValue: THREE_2.Color; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly material: THREE_2.Material; + readonly targetValue: THREE_2.Color; + readonly type: VRMExpressionMaterialColorType; +} + +// @public (undocumented) +export const VRMExpressionMaterialColorType: { + readonly Color: "color"; + readonly EmissionColor: "emissionColor"; + readonly ShadeColor: "shadeColor"; + readonly MatcapColor: "matcapColor"; + readonly RimColor: "rimColor"; + readonly OutlineColor: "outlineColor"; +}; + +// @public (undocumented) +export type VRMExpressionMaterialColorType = typeof VRMExpressionMaterialColorType[keyof typeof VRMExpressionMaterialColorType]; + +// @public +export class VRMExpressionMorphTargetBind implements VRMExpressionBind { + constructor({ primitives, index, weight, }: { + primitives: THREE_2.Mesh[]; + index: number; + weight: number; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly index: number; + readonly primitives: THREE_2.Mesh[]; + readonly weight: number; +} + +// @public (undocumented) +export const VRMExpressionOverrideType: { + readonly None: "none"; + readonly Block: "block"; + readonly Blend: "blend"; +}; + +// @public (undocumented) +export type VRMExpressionOverrideType = typeof VRMExpressionOverrideType[keyof typeof VRMExpressionOverrideType]; + +// @public (undocumented) +export const VRMExpressionPresetName: { + readonly Aa: "aa"; + readonly Ih: "ih"; + readonly Ou: "ou"; + readonly Ee: "ee"; + readonly Oh: "oh"; + readonly Blink: "blink"; + readonly Happy: "happy"; + readonly Angry: "angry"; + readonly Sad: "sad"; + readonly Relaxed: "relaxed"; + readonly LookUp: "lookUp"; + readonly Surprised: "surprised"; + readonly LookDown: "lookDown"; + readonly LookLeft: "lookLeft"; + readonly LookRight: "lookRight"; + readonly BlinkLeft: "blinkLeft"; + readonly BlinkRight: "blinkRight"; + readonly Neutral: "neutral"; +}; + +// @public (undocumented) +export type VRMExpressionPresetName = typeof VRMExpressionPresetName[keyof typeof VRMExpressionPresetName]; + +// @public +export class VRMExpressionTextureTransformBind implements VRMExpressionBind { + constructor({ material, scale, offset, }: { + material: THREE_2.Material; + scale: THREE_2.Vector2; + offset: THREE_2.Vector2; + }); + // (undocumented) + applyWeight(weight: number): void; + // (undocumented) + clearAppliedWeight(): void; + readonly material: THREE_2.Material; + readonly offset: THREE_2.Vector2; + readonly scale: THREE_2.Vector2; +} + +// @public (undocumented) +export class VRMFirstPerson { + constructor(humanoid: VRMHumanoid, meshAnnotations: VRMFirstPersonMeshAnnotation[]); + clone(): VRMFirstPerson; + copy(source: VRMFirstPerson): this; + static readonly DEFAULT_FIRSTPERSON_ONLY_LAYER = 9; + static readonly DEFAULT_THIRDPERSON_ONLY_LAYER = 10; + get firstPersonOnlyLayer(): number; + readonly humanoid: VRMHumanoid; + // (undocumented) + meshAnnotations: VRMFirstPersonMeshAnnotation[]; + setup({ firstPersonOnlyLayer, thirdPersonOnlyLayer, }?: { + firstPersonOnlyLayer?: number | undefined; + thirdPersonOnlyLayer?: number | undefined; + }): void; + get thirdPersonOnlyLayer(): number; +} + +// @public +export class VRMFirstPersonLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMFirstPersonMeshAnnotation { + // (undocumented) + meshes: THREE.Mesh[]; + // (undocumented) + type: VRMFirstPersonMeshAnnotationType; +} + +// @public (undocumented) +export const VRMFirstPersonMeshAnnotationType: { + readonly Auto: "auto"; + readonly Both: "both"; + readonly ThirdPersonOnly: "thirdPersonOnly"; + readonly FirstPersonOnly: "firstPersonOnly"; +}; + +// @public (undocumented) +export type VRMFirstPersonMeshAnnotationType = typeof VRMFirstPersonMeshAnnotationType[keyof typeof VRMFirstPersonMeshAnnotationType]; + +// @public +export interface VRMHumanBone { + node: THREE_2.Object3D; +} + +// @public +export const VRMHumanBoneList: VRMHumanBoneName[]; + +// @public +export const VRMHumanBoneName: { + readonly Hips: "hips"; + readonly Spine: "spine"; + readonly Chest: "chest"; + readonly UpperChest: "upperChest"; + readonly Neck: "neck"; + readonly Head: "head"; + readonly LeftEye: "leftEye"; + readonly RightEye: "rightEye"; + readonly Jaw: "jaw"; + readonly LeftUpperLeg: "leftUpperLeg"; + readonly LeftLowerLeg: "leftLowerLeg"; + readonly LeftFoot: "leftFoot"; + readonly LeftToes: "leftToes"; + readonly RightUpperLeg: "rightUpperLeg"; + readonly RightLowerLeg: "rightLowerLeg"; + readonly RightFoot: "rightFoot"; + readonly RightToes: "rightToes"; + readonly LeftShoulder: "leftShoulder"; + readonly LeftUpperArm: "leftUpperArm"; + readonly LeftLowerArm: "leftLowerArm"; + readonly LeftHand: "leftHand"; + readonly RightShoulder: "rightShoulder"; + readonly RightUpperArm: "rightUpperArm"; + readonly RightLowerArm: "rightLowerArm"; + readonly RightHand: "rightHand"; + readonly LeftThumbMetacarpal: "leftThumbMetacarpal"; + readonly LeftThumbProximal: "leftThumbProximal"; + readonly LeftThumbDistal: "leftThumbDistal"; + readonly LeftIndexProximal: "leftIndexProximal"; + readonly LeftIndexIntermediate: "leftIndexIntermediate"; + readonly LeftIndexDistal: "leftIndexDistal"; + readonly LeftMiddleProximal: "leftMiddleProximal"; + readonly LeftMiddleIntermediate: "leftMiddleIntermediate"; + readonly LeftMiddleDistal: "leftMiddleDistal"; + readonly LeftRingProximal: "leftRingProximal"; + readonly LeftRingIntermediate: "leftRingIntermediate"; + readonly LeftRingDistal: "leftRingDistal"; + readonly LeftLittleProximal: "leftLittleProximal"; + readonly LeftLittleIntermediate: "leftLittleIntermediate"; + readonly LeftLittleDistal: "leftLittleDistal"; + readonly RightThumbMetacarpal: "rightThumbMetacarpal"; + readonly RightThumbProximal: "rightThumbProximal"; + readonly RightThumbDistal: "rightThumbDistal"; + readonly RightIndexProximal: "rightIndexProximal"; + readonly RightIndexIntermediate: "rightIndexIntermediate"; + readonly RightIndexDistal: "rightIndexDistal"; + readonly RightMiddleProximal: "rightMiddleProximal"; + readonly RightMiddleIntermediate: "rightMiddleIntermediate"; + readonly RightMiddleDistal: "rightMiddleDistal"; + readonly RightRingProximal: "rightRingProximal"; + readonly RightRingIntermediate: "rightRingIntermediate"; + readonly RightRingDistal: "rightRingDistal"; + readonly RightLittleProximal: "rightLittleProximal"; + readonly RightLittleIntermediate: "rightLittleIntermediate"; + readonly RightLittleDistal: "rightLittleDistal"; +}; + +// @public (undocumented) +export type VRMHumanBoneName = typeof VRMHumanBoneName[keyof typeof VRMHumanBoneName]; + +// @public +export const VRMHumanBoneParentMap: { + [bone in VRMHumanBoneName]: VRMHumanBoneName | null; +}; + +// @public +export type VRMHumanBones = { + [name in VRMHumanBoneName]?: VRMHumanBone; +} & { + [name in VRMRequiredHumanBoneName]: VRMHumanBone; +}; + +// @public +export class VRMHumanoid { + constructor(humanBones: VRMHumanBones, options?: { + autoUpdateHumanBones?: boolean; + }); + autoUpdateHumanBones: boolean; + clone(): VRMHumanoid; + copy(source: VRMHumanoid): this; + // @deprecated (undocumented) + getAbsolutePose(): VRMPose; + // @deprecated (undocumented) + getBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + // @deprecated (undocumented) + getBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getNormalizedAbsolutePose(): VRMPose; + getNormalizedBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + getNormalizedBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getNormalizedPose(): VRMPose; + // @deprecated (undocumented) + getPose(): VRMPose; + getRawAbsolutePose(): VRMPose; + getRawBone(name: VRMHumanBoneName): VRMHumanBone | undefined; + getRawBoneNode(name: VRMHumanBoneName): THREE_2.Object3D | null; + getRawPose(): VRMPose; + get humanBones(): VRMHumanBones; + get normalizedHumanBones(): VRMHumanBones; + get normalizedHumanBonesRoot(): THREE_2.Object3D; + get normalizedRestPose(): VRMPose; + get rawHumanBones(): VRMHumanBones; + get rawRestPose(): VRMPose; + resetNormalizedPose(): void; + // @deprecated (undocumented) + resetPose(): void; + resetRawPose(): void; + // @deprecated (undocumented) + get restPose(): VRMPose; + setNormalizedPose(poseObject: VRMPose): void; + // @deprecated (undocumented) + setPose(poseObject: VRMPose): void; + setRawPose(poseObject: VRMPose): void; + update(): void; +} + +// @public (undocumented) +export class VRMHumanoidHelper extends THREE_2.Group { + constructor(humanoid: VRMHumanoid); + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; + // (undocumented) + readonly vrmHumanoid: VRMHumanoid; +} + +// @public +export class VRMHumanoidLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMHumanoidLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + autoUpdateHumanBones?: boolean; + helperRoot?: THREE.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMHumanoidLoaderPluginOptions { + autoUpdateHumanBones?: boolean; + helperRoot?: THREE.Object3D; +} + +// @public (undocumented) +export class VRMLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + beforeRoot(): Promise; + // (undocumented) + readonly expressionPlugin: VRMExpressionLoaderPlugin; + // (undocumented) + extendMaterialParams(materialIndex: number, materialParams: { + [key: string]: any; + }): Promise; + // (undocumented) + readonly firstPersonPlugin: VRMFirstPersonLoaderPlugin; + // (undocumented) + getMaterialType(materialIndex: number): typeof THREE_2.Material | null; + // (undocumented) + readonly humanoidPlugin: VRMHumanoidLoaderPlugin; + // (undocumented) + loadMesh(meshIndex: number): Promise; + // (undocumented) + readonly lookAtPlugin: VRMLookAtLoaderPlugin; + // Warning: (ae-forgotten-export) The symbol "VRMMaterialsHDREmissiveMultiplierLoaderPlugin" needs to be exported by the entry point index.d.ts + // + // (undocumented) + readonly materialsHDREmissiveMultiplierPlugin: VRMMaterialsHDREmissiveMultiplierLoaderPlugin; + // (undocumented) + readonly materialsV0CompatPlugin: VRMMaterialsV0CompatPlugin; + // (undocumented) + readonly metaPlugin: VRMMetaLoaderPlugin; + // (undocumented) + readonly mtoonMaterialPlugin: MToonMaterialLoaderPlugin; + // (undocumented) + get name(): string; + // (undocumented) + readonly nodeConstraintPlugin: VRMNodeConstraintLoaderPlugin; + // (undocumented) + readonly parser: GLTFParser; + // (undocumented) + readonly springBonePlugin: VRMSpringBoneLoaderPlugin; +} + +// @public (undocumented) +export interface VRMLoaderPluginOptions { + autoUpdateHumanBones?: boolean; + // (undocumented) + expressionPlugin?: VRMExpressionLoaderPlugin; + // (undocumented) + firstPersonPlugin?: VRMFirstPersonLoaderPlugin; + helperRoot?: THREE_2.Object3D; + // (undocumented) + humanoidPlugin?: VRMHumanoidLoaderPlugin; + // (undocumented) + lookAtPlugin?: VRMLookAtLoaderPlugin; + // (undocumented) + materialsHDREmissiveMultiplierPlugin?: VRMMaterialsHDREmissiveMultiplierLoaderPlugin; + // (undocumented) + materialsV0CompatPlugin?: VRMMaterialsV0CompatPlugin; + // (undocumented) + metaPlugin?: VRMMetaLoaderPlugin; + // (undocumented) + mtoonMaterialPlugin?: MToonMaterialLoaderPlugin; + // (undocumented) + nodeConstraintPlugin?: VRMNodeConstraintLoaderPlugin; + // (undocumented) + springBonePlugin?: VRMSpringBoneLoaderPlugin; +} + +// @public +export class VRMLookAt { + constructor(humanoid: VRMHumanoid, applier: VRMLookAtApplier); + applier: VRMLookAtApplier; + autoUpdate: boolean; + clone(): VRMLookAt; + copy(source: VRMLookAt): this; + // @deprecated (undocumented) + get euler(): THREE_2.Euler; + // (undocumented) + static readonly EULER_ORDER = "YXZ"; + faceFront: THREE_2.Vector3; + getEuler(target: THREE_2.Euler): THREE_2.Euler; + getFaceFrontQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; + getLookAtWorldDirection(target: THREE_2.Vector3): THREE_2.Vector3; + getLookAtWorldPosition(target: THREE_2.Vector3): THREE_2.Vector3; + getLookAtWorldQuaternion(target: THREE_2.Quaternion): THREE_2.Quaternion; + readonly humanoid: VRMHumanoid; + lookAt(position: THREE_2.Vector3): void; + protected _needsUpdate: boolean; + offsetFromHeadBone: THREE_2.Vector3; + get pitch(): number; + set pitch(value: number); + protected _pitch: number; + reset(): void; + target?: THREE_2.Object3D | null; + update(delta: number): void; + get yaw(): number; + set yaw(value: number); + protected _yaw: number; +} + +// @public +export interface VRMLookAtApplier { + applyYawPitch: (yaw: number, pitch: number) => void; + // @deprecated (undocumented) + lookAt: (euler: THREE_2.Euler) => void; +} + +// @public +export class VRMLookAtBoneApplier implements VRMLookAtApplier { + constructor(humanoid: VRMHumanoid, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); + applyYawPitch(yaw: number, pitch: number): void; + faceFront: THREE_2.Vector3; + readonly humanoid: VRMHumanoid; + // @deprecated (undocumented) + lookAt(euler: THREE_2.Euler): void; + rangeMapHorizontalInner: VRMLookAtRangeMap; + rangeMapHorizontalOuter: VRMLookAtRangeMap; + rangeMapVerticalDown: VRMLookAtRangeMap; + rangeMapVerticalUp: VRMLookAtRangeMap; + static readonly type = "bone"; +} + +// @public +export class VRMLookAtExpressionApplier implements VRMLookAtApplier { + constructor(expressions: VRMExpressionManager, rangeMapHorizontalInner: VRMLookAtRangeMap, rangeMapHorizontalOuter: VRMLookAtRangeMap, rangeMapVerticalDown: VRMLookAtRangeMap, rangeMapVerticalUp: VRMLookAtRangeMap); + applyYawPitch(yaw: number, pitch: number): void; + readonly expressions: VRMExpressionManager; + // @deprecated (undocumented) + lookAt(euler: THREE_2.Euler): void; + rangeMapHorizontalInner: VRMLookAtRangeMap; + rangeMapHorizontalOuter: VRMLookAtRangeMap; + rangeMapVerticalDown: VRMLookAtRangeMap; + rangeMapVerticalUp: VRMLookAtRangeMap; + static readonly type = "expression"; +} + +// @public (undocumented) +export class VRMLookAtHelper extends THREE_2.Group { + constructor(lookAt: VRMLookAt); + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; + // (undocumented) + readonly vrmLookAt: VRMLookAt; +} + +// @public +export class VRMLookAtLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMLookAtLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + helperRoot?: THREE.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMLookAtLoaderPluginOptions { + helperRoot?: THREE.Object3D; +} + +// @public (undocumented) +export class VRMLookAtRangeMap { + constructor(inputMaxValue: number, outputScale: number); + inputMaxValue: number; + map(src: number): number; + outputScale: number; +} + +// @public +export const VRMLookAtTypeName: { + Bone: string; + Expression: string; +}; + +// @public (undocumented) +export type VRMLookAtTypeName = typeof VRMLookAtTypeName[keyof typeof VRMLookAtTypeName]; + +// @public (undocumented) +export class VRMMaterialsV0CompatPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser); + // (undocumented) + beforeRoot(): Promise; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public +export type VRMMeta = VRM0Meta | VRM1Meta; + +// @public +export interface VRMMetaImporterOptions { + acceptLicenseUrls?: string[]; + acceptV0Meta?: boolean; + needThumbnailImage?: boolean; +} + +// @public +export class VRMMetaLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMMetaImporterOptions); + acceptLicenseUrls: string[]; + acceptV0Meta: boolean; + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + get name(): string; + needThumbnailImage: boolean; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public +export abstract class VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + abstract get dependencies(): Set; + destination: THREE_2.Object3D; + abstract setInitState(): void; + source: THREE_2.Object3D; + abstract update(): void; + weight: number; +} + +// @public (undocumented) +export class VRMNodeConstraintHelper extends THREE_2.Group { + constructor(constraint: VRMNodeConstraint); + // (undocumented) + readonly constraint: VRMNodeConstraint; + // (undocumented) + updateMatrixWorld(force?: boolean): void; +} + +// @public (undocumented) +export class VRMNodeConstraintLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMNodeConstraintLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + // (undocumented) + static readonly EXTENSION_NAME = "VRMC_node_constraint"; + helperRoot?: THREE_2.Object3D; + protected _import(gltf: GLTF): Promise; + // (undocumented) + protected _importAimConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], aimConstraintDef: ConstraintSchema.AimConstraint): VRMAimConstraint; + // (undocumented) + protected _importRollConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rollConstraintDef: ConstraintSchema.RollConstraint): VRMRollConstraint; + // (undocumented) + protected _importRotationConstraint(destination: THREE_2.Object3D, nodes: THREE_2.Object3D[], rotationConstraintDef: ConstraintSchema.RotationConstraint): VRMRotationConstraint; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMNodeConstraintLoaderPluginOptions { + helperRoot?: THREE.Object3D; +} + +// @public (undocumented) +export class VRMNodeConstraintManager { + // (undocumented) + addConstraint(constraint: VRMNodeConstraint): void; + // (undocumented) + get constraints(): Set; + // (undocumented) + deleteConstraint(constraint: VRMNodeConstraint): void; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export interface VRMParameters extends VRMCoreParameters { + // (undocumented) + materials?: THREE.Material[]; + // (undocumented) + nodeConstraintManager?: VRMNodeConstraintManager; + // (undocumented) + springBoneManager?: VRMSpringBoneManager; +} + +// @public +export type VRMPose = { + [boneName in VRMHumanBoneName]?: VRMPoseTransform; +}; + +// @public +export interface VRMPoseTransform { + position?: [number, number, number]; + rotation?: [number, number, number, number]; +} + +// @public (undocumented) +export const VRMRequiredHumanBoneName: { + readonly Hips: "hips"; + readonly Spine: "spine"; + readonly Head: "head"; + readonly LeftUpperLeg: "leftUpperLeg"; + readonly LeftLowerLeg: "leftLowerLeg"; + readonly LeftFoot: "leftFoot"; + readonly RightUpperLeg: "rightUpperLeg"; + readonly RightLowerLeg: "rightLowerLeg"; + readonly RightFoot: "rightFoot"; + readonly LeftUpperArm: "leftUpperArm"; + readonly LeftLowerArm: "leftLowerArm"; + readonly LeftHand: "leftHand"; + readonly RightUpperArm: "rightUpperArm"; + readonly RightLowerArm: "rightLowerArm"; + readonly RightHand: "rightHand"; +}; + +// @public (undocumented) +export type VRMRequiredHumanBoneName = typeof VRMRequiredHumanBoneName[keyof typeof VRMRequiredHumanBoneName]; + +// @public +export class VRMRollConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + get dependencies(): Set>; + get rollAxis(): 'X' | 'Y' | 'Z'; + set rollAxis(rollAxis: 'X' | 'Y' | 'Z'); + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMRotationConstraint extends VRMNodeConstraint { + constructor(destination: THREE_2.Object3D, source: THREE_2.Object3D); + // (undocumented) + get dependencies(): Set>; + // (undocumented) + setInitState(): void; + // (undocumented) + update(): void; +} + +// @public +export class VRMSpringBoneCollider extends THREE_2.Object3D { + constructor(shape: VRMSpringBoneColliderShape); + readonly shape: VRMSpringBoneColliderShape; +} + +// @public +export interface VRMSpringBoneColliderGroup { + colliders: VRMSpringBoneCollider[]; + name?: string; +} + +// @public (undocumented) +export class VRMSpringBoneColliderHelper extends THREE_2.Group { + constructor(collider: VRMSpringBoneCollider); + // (undocumented) + readonly collider: VRMSpringBoneCollider; + // (undocumented) + dispose(): void; + // (undocumented) + updateMatrixWorld(force: boolean): void; +} + +// @public +export abstract class VRMSpringBoneColliderShape { + abstract calculateCollision(colliderMatrix: THREE.Matrix4, objectPosition: THREE.Vector3, objectRadius: number, target: THREE.Vector3): number; + abstract get type(): string; +} + +// @public (undocumented) +export class VRMSpringBoneColliderShapeCapsule extends VRMSpringBoneColliderShape { + constructor(params?: { + radius?: number; + offset?: THREE_2.Vector3; + tail?: THREE_2.Vector3; + }); + // (undocumented) + calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; + offset: THREE_2.Vector3; + radius: number; + tail: THREE_2.Vector3; + // (undocumented) + get type(): 'capsule'; +} + +// @public (undocumented) +export class VRMSpringBoneColliderShapeSphere extends VRMSpringBoneColliderShape { + constructor(params?: { + radius?: number; + offset?: THREE_2.Vector3; + }); + // (undocumented) + calculateCollision(colliderMatrix: THREE_2.Matrix4, objectPosition: THREE_2.Vector3, objectRadius: number, target: THREE_2.Vector3): number; + offset: THREE_2.Vector3; + radius: number; + // (undocumented) + get type(): 'sphere'; +} + +// @public +export class VRMSpringBoneJoint { + constructor(bone: THREE_2.Object3D, child: THREE_2.Object3D | null, settings?: Partial, colliderGroups?: VRMSpringBoneColliderGroup[]); + readonly bone: THREE_2.Object3D; + // (undocumented) + get center(): THREE_2.Object3D | null; + set center(center: THREE_2.Object3D | null); + readonly child: THREE_2.Object3D | null; + colliderGroups: VRMSpringBoneColliderGroup[]; + // (undocumented) + get initialLocalChildPosition(): THREE_2.Vector3; + reset(): void; + setInitState(): void; + settings: VRMSpringBoneJointSettings; + update(delta: number): void; +} + +// @public (undocumented) +export class VRMSpringBoneJointHelper extends THREE_2.Group { + constructor(springBone: VRMSpringBoneJoint); + // (undocumented) + dispose(): void; + // (undocumented) + readonly springBone: VRMSpringBoneJoint; + // (undocumented) + updateMatrixWorld(force: boolean): void; +} + +// @public (undocumented) +export interface VRMSpringBoneJointSettings { + // (undocumented) + dragForce: number; + // (undocumented) + gravityDir: THREE.Vector3; + // (undocumented) + gravityPower: number; + hitRadius: number; + // (undocumented) + stiffness: number; +} + +// @public (undocumented) +export class VRMSpringBoneLoaderPlugin implements GLTFLoaderPlugin { + constructor(parser: GLTFParser, options?: VRMSpringBoneLoaderPluginOptions); + // (undocumented) + afterRoot(gltf: GLTF): Promise; + colliderHelperRoot?: THREE_2.Object3D; + // (undocumented) + static readonly EXTENSION_NAME = "VRMC_springBone"; + jointHelperRoot?: THREE_2.Object3D; + // (undocumented) + get name(): string; + // (undocumented) + readonly parser: GLTFParser; +} + +// @public (undocumented) +export interface VRMSpringBoneLoaderPluginOptions { + colliderHelperRoot?: THREE.Object3D; + jointHelperRoot?: THREE.Object3D; +} + +// @public (undocumented) +export class VRMSpringBoneManager { + // (undocumented) + addJoint(joint: VRMSpringBoneJoint): void; + // @deprecated (undocumented) + addSpringBone(joint: VRMSpringBoneJoint): void; + // (undocumented) + get colliderGroups(): VRMSpringBoneColliderGroup[]; + // (undocumented) + get colliders(): VRMSpringBoneCollider[]; + // (undocumented) + deleteJoint(joint: VRMSpringBoneJoint): void; + // @deprecated (undocumented) + deleteSpringBone(joint: VRMSpringBoneJoint): void; + // (undocumented) + get joints(): Set; + // (undocumented) + reset(): void; + // (undocumented) + setInitState(): void; + // @deprecated (undocumented) + get springBones(): Set; + // (undocumented) + update(delta: number): void; +} + +// @public (undocumented) +export class VRMUtils { + // (undocumented) + static deepDispose: typeof deepDispose; + // (undocumented) + static removeUnnecessaryJoints: typeof removeUnnecessaryJoints; + // (undocumented) + static removeUnnecessaryVertices: typeof removeUnnecessaryVertices; + // (undocumented) + static rotateVRM0: typeof rotateVRM0; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/types-vrm-0.0/package.json b/packages/types-vrm-0.0/package.json index 67f7b74b2..ea90e9603 100644 --- a/packages/types-vrm-0.0/package.json +++ b/packages/types-vrm-0.0/package.json @@ -5,19 +5,11 @@ "license": "MIT", "author": "pixiv", "files": [ - "/ts*/", "/types/", "LICENSE" ], "main": "", "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -25,15 +17,14 @@ }, "scripts": { "version": "yarn all", - "all": "yarn lint && yarn clean && yarn build && yarn docs", + "all": "yarn lint && yarn clean && yarn docs", "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", - "docs": "typedoc --entryPoints ./src/index.ts --out docs", - "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", - "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" + "docs": "typedoc --entryPoints ./types/index.d.ts --out docs", + "lint": "eslint \"types/**/*.{ts,tsx}\" && prettier \"types/**/*.{ts,tsx}\" --check", + "lint-fix": "eslint \"types/**/*.{ts,tsx}\" --fix && prettier \"types/**/*.{ts,tsx}\" --write" }, "lint-staged": { - "./src/**/*.{ts,tsx}": [ + "./types/**/*.{ts,tsx}": [ "eslint --fix", "prettier --write" ] diff --git a/packages/types-vrm-0.0/tsconfig.json b/packages/types-vrm-0.0/tsconfig.json index 5bac6173e..15b9f2152 100644 --- a/packages/types-vrm-0.0/tsconfig.json +++ b/packages/types-vrm-0.0/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../tsconfig.json", "include": [ - "./src" + "./types" ] } diff --git a/packages/types-vrm-0.0/src/BlendShape.ts b/packages/types-vrm-0.0/types/BlendShape.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/BlendShape.ts rename to packages/types-vrm-0.0/types/BlendShape.d.ts diff --git a/packages/types-vrm-0.0/src/BlendShapeBind.ts b/packages/types-vrm-0.0/types/BlendShapeBind.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/BlendShapeBind.ts rename to packages/types-vrm-0.0/types/BlendShapeBind.d.ts diff --git a/packages/types-vrm-0.0/src/BlendShapeGroup.ts b/packages/types-vrm-0.0/types/BlendShapeGroup.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/BlendShapeGroup.ts rename to packages/types-vrm-0.0/types/BlendShapeGroup.d.ts diff --git a/packages/types-vrm-0.0/src/BlendShapeMaterialBind.ts b/packages/types-vrm-0.0/types/BlendShapeMaterialBind.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/BlendShapeMaterialBind.ts rename to packages/types-vrm-0.0/types/BlendShapeMaterialBind.d.ts diff --git a/packages/types-vrm-0.0/src/BlendShapePresetName.ts b/packages/types-vrm-0.0/types/BlendShapePresetName.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/BlendShapePresetName.ts rename to packages/types-vrm-0.0/types/BlendShapePresetName.d.ts diff --git a/packages/types-vrm-0.0/src/FirstPerson.ts b/packages/types-vrm-0.0/types/FirstPerson.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/FirstPerson.ts rename to packages/types-vrm-0.0/types/FirstPerson.d.ts diff --git a/packages/types-vrm-0.0/src/FirstPersonDegreeMap.ts b/packages/types-vrm-0.0/types/FirstPersonDegreeMap.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/FirstPersonDegreeMap.ts rename to packages/types-vrm-0.0/types/FirstPersonDegreeMap.d.ts diff --git a/packages/types-vrm-0.0/src/FirstPersonMeshAnnotation.ts b/packages/types-vrm-0.0/types/FirstPersonMeshAnnotation.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/FirstPersonMeshAnnotation.ts rename to packages/types-vrm-0.0/types/FirstPersonMeshAnnotation.d.ts diff --git a/packages/types-vrm-0.0/src/Humanoid.ts b/packages/types-vrm-0.0/types/Humanoid.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/Humanoid.ts rename to packages/types-vrm-0.0/types/Humanoid.d.ts diff --git a/packages/types-vrm-0.0/src/HumanoidBone.ts b/packages/types-vrm-0.0/types/HumanoidBone.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/HumanoidBone.ts rename to packages/types-vrm-0.0/types/HumanoidBone.d.ts diff --git a/packages/types-vrm-0.0/src/HumanoidBoneName.ts b/packages/types-vrm-0.0/types/HumanoidBoneName.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/HumanoidBoneName.ts rename to packages/types-vrm-0.0/types/HumanoidBoneName.d.ts diff --git a/packages/types-vrm-0.0/src/Material.ts b/packages/types-vrm-0.0/types/Material.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/Material.ts rename to packages/types-vrm-0.0/types/Material.d.ts diff --git a/packages/types-vrm-0.0/src/Meta.ts b/packages/types-vrm-0.0/types/Meta.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/Meta.ts rename to packages/types-vrm-0.0/types/Meta.d.ts diff --git a/packages/types-vrm-0.0/src/SecondaryAnimation.ts b/packages/types-vrm-0.0/types/SecondaryAnimation.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/SecondaryAnimation.ts rename to packages/types-vrm-0.0/types/SecondaryAnimation.d.ts diff --git a/packages/types-vrm-0.0/src/SecondaryAnimationCollider.ts b/packages/types-vrm-0.0/types/SecondaryAnimationCollider.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/SecondaryAnimationCollider.ts rename to packages/types-vrm-0.0/types/SecondaryAnimationCollider.d.ts diff --git a/packages/types-vrm-0.0/src/SecondaryAnimationColliderGroup.ts b/packages/types-vrm-0.0/types/SecondaryAnimationColliderGroup.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/SecondaryAnimationColliderGroup.ts rename to packages/types-vrm-0.0/types/SecondaryAnimationColliderGroup.d.ts diff --git a/packages/types-vrm-0.0/src/SecondaryAnimationSpring.ts b/packages/types-vrm-0.0/types/SecondaryAnimationSpring.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/SecondaryAnimationSpring.ts rename to packages/types-vrm-0.0/types/SecondaryAnimationSpring.d.ts diff --git a/packages/types-vrm-0.0/src/VRM.ts b/packages/types-vrm-0.0/types/VRM.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/VRM.ts rename to packages/types-vrm-0.0/types/VRM.d.ts diff --git a/packages/types-vrm-0.0/src/Vector3.ts b/packages/types-vrm-0.0/types/Vector3.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/Vector3.ts rename to packages/types-vrm-0.0/types/Vector3.d.ts diff --git a/packages/types-vrm-0.0/src/index.ts b/packages/types-vrm-0.0/types/index.d.ts similarity index 100% rename from packages/types-vrm-0.0/src/index.ts rename to packages/types-vrm-0.0/types/index.d.ts diff --git a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/package.json b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/package.json index 89191c6e8..e8557c054 100644 --- a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/package.json +++ b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/package.json @@ -5,19 +5,11 @@ "license": "MIT", "author": "pixiv", "files": [ - "/ts*/", "/types/", "LICENSE" ], "main": "", "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -25,15 +17,14 @@ }, "scripts": { "version": "yarn all", - "all": "yarn lint && yarn clean && yarn build && yarn docs", + "all": "yarn lint && yarn clean && yarn docs", "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", - "docs": "typedoc --entryPoints ./src/index.ts --out docs", - "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", - "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" + "docs": "typedoc --entryPoints ./types/index.d.ts --out docs", + "lint": "eslint \"types/**/*.{ts,tsx}\" && prettier \"types/**/*.{ts,tsx}\" --check", + "lint-fix": "eslint \"types/**/*.{ts,tsx}\" --fix && prettier \"types/**/*.{ts,tsx}\" --write" }, "lint-staged": { - "./src/**/*.{ts,tsx}": [ + "./types/**/*.{ts,tsx}": [ "eslint --fix", "prettier --write" ] diff --git a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/tsconfig.json b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/tsconfig.json index 5bac6173e..15b9f2152 100644 --- a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/tsconfig.json +++ b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../tsconfig.json", "include": [ - "./src" + "./types" ] } diff --git a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/src/VRMCMaterialsHDREmissiveMultiplier.ts b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/types/VRMCMaterialsHDREmissiveMultiplier.d.ts similarity index 100% rename from packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/src/VRMCMaterialsHDREmissiveMultiplier.ts rename to packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/types/VRMCMaterialsHDREmissiveMultiplier.d.ts diff --git a/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/src/index.ts b/packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/types/index.d.ts similarity index 100% rename from packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/src/index.ts rename to packages/types-vrmc-materials-hdr-emissive-multiplier-1.0/types/index.d.ts diff --git a/packages/types-vrmc-materials-mtoon-1.0/package.json b/packages/types-vrmc-materials-mtoon-1.0/package.json index b1d289598..a472a0e69 100644 --- a/packages/types-vrmc-materials-mtoon-1.0/package.json +++ b/packages/types-vrmc-materials-mtoon-1.0/package.json @@ -5,19 +5,11 @@ "license": "MIT", "author": "pixiv", "files": [ - "/ts*/", "/types/", "LICENSE" ], "main": "", "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -25,15 +17,14 @@ }, "scripts": { "version": "yarn all", - "all": "yarn lint && yarn clean && yarn build && yarn docs", - "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", - "docs": "typedoc --entryPoints ./src/index.ts --out docs", - "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", - "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" + "all": "yarn lint && yarn clean && yarn docs", + "clean": "rimraf docs/", + "docs": "typedoc --entryPoints ./types/index.d.ts --out docs", + "lint": "eslint \"types/**/*.{ts,tsx}\" && prettier \"types/**/*.{ts,tsx}\" --check", + "lint-fix": "eslint \"types/**/*.{ts,tsx}\" --fix && prettier \"types/**/*.{ts,tsx}\" --write" }, "lint-staged": { - "./src/**/*.{ts,tsx}": [ + "./types/**/*.{ts,tsx}": [ "eslint --fix", "prettier --write" ] diff --git a/packages/types-vrmc-materials-mtoon-1.0/tsconfig.json b/packages/types-vrmc-materials-mtoon-1.0/tsconfig.json index 5bac6173e..15b9f2152 100644 --- a/packages/types-vrmc-materials-mtoon-1.0/tsconfig.json +++ b/packages/types-vrmc-materials-mtoon-1.0/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../tsconfig.json", "include": [ - "./src" + "./types" ] } diff --git a/packages/types-vrmc-materials-mtoon-1.0/src/MaterialsMToonOutlineWidthMode.ts b/packages/types-vrmc-materials-mtoon-1.0/types/MaterialsMToonOutlineWidthMode.d.ts similarity index 100% rename from packages/types-vrmc-materials-mtoon-1.0/src/MaterialsMToonOutlineWidthMode.ts rename to packages/types-vrmc-materials-mtoon-1.0/types/MaterialsMToonOutlineWidthMode.d.ts diff --git a/packages/types-vrmc-materials-mtoon-1.0/src/MaterialsMToonShadingShiftTextureInfo.ts b/packages/types-vrmc-materials-mtoon-1.0/types/MaterialsMToonShadingShiftTextureInfo.d.ts similarity index 100% rename from packages/types-vrmc-materials-mtoon-1.0/src/MaterialsMToonShadingShiftTextureInfo.ts rename to packages/types-vrmc-materials-mtoon-1.0/types/MaterialsMToonShadingShiftTextureInfo.d.ts diff --git a/packages/types-vrmc-materials-mtoon-1.0/src/MaterialsMToonTextureInfo.ts b/packages/types-vrmc-materials-mtoon-1.0/types/MaterialsMToonTextureInfo.d.ts similarity index 100% rename from packages/types-vrmc-materials-mtoon-1.0/src/MaterialsMToonTextureInfo.ts rename to packages/types-vrmc-materials-mtoon-1.0/types/MaterialsMToonTextureInfo.d.ts diff --git a/packages/types-vrmc-materials-mtoon-1.0/src/VRMCMaterialsMToon.ts b/packages/types-vrmc-materials-mtoon-1.0/types/VRMCMaterialsMToon.d.ts similarity index 100% rename from packages/types-vrmc-materials-mtoon-1.0/src/VRMCMaterialsMToon.ts rename to packages/types-vrmc-materials-mtoon-1.0/types/VRMCMaterialsMToon.d.ts diff --git a/packages/types-vrmc-materials-mtoon-1.0/src/index.ts b/packages/types-vrmc-materials-mtoon-1.0/types/index.d.ts similarity index 100% rename from packages/types-vrmc-materials-mtoon-1.0/src/index.ts rename to packages/types-vrmc-materials-mtoon-1.0/types/index.d.ts diff --git a/packages/types-vrmc-node-constraint-1.0/package.json b/packages/types-vrmc-node-constraint-1.0/package.json index 6850e102b..efd45663c 100644 --- a/packages/types-vrmc-node-constraint-1.0/package.json +++ b/packages/types-vrmc-node-constraint-1.0/package.json @@ -5,19 +5,11 @@ "license": "MIT", "author": "pixiv", "files": [ - "/ts*/", "/types/", "LICENSE" ], "main": "", "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -25,15 +17,14 @@ }, "scripts": { "version": "yarn all", - "all": "yarn lint && yarn clean && yarn build && yarn docs", - "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", - "docs": "typedoc --entryPoints ./src/index.ts --out docs", - "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", - "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" + "all": "yarn lint && yarn clean && yarn docs", + "clean": "rimraf docs/", + "docs": "typedoc --entryPoints ./types/index.d.ts --out docs", + "lint": "eslint \"types/**/*.{ts,tsx}\" && prettier \"types/**/*.{ts,tsx}\" --check", + "lint-fix": "eslint \"types/**/*.{ts,tsx}\" --fix && prettier \"types/**/*.{ts,tsx}\" --write" }, "lint-staged": { - "./src/**/*.{ts,tsx}": [ + "./types/**/*.{ts,tsx}": [ "eslint --fix", "prettier --write" ] diff --git a/packages/types-vrmc-node-constraint-1.0/tsconfig.json b/packages/types-vrmc-node-constraint-1.0/tsconfig.json index 5bac6173e..15b9f2152 100644 --- a/packages/types-vrmc-node-constraint-1.0/tsconfig.json +++ b/packages/types-vrmc-node-constraint-1.0/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../tsconfig.json", "include": [ - "./src" + "./types" ] } diff --git a/packages/types-vrmc-node-constraint-1.0/src/AimConstraint.ts b/packages/types-vrmc-node-constraint-1.0/types/AimConstraint.d.ts similarity index 100% rename from packages/types-vrmc-node-constraint-1.0/src/AimConstraint.ts rename to packages/types-vrmc-node-constraint-1.0/types/AimConstraint.d.ts diff --git a/packages/types-vrmc-node-constraint-1.0/src/Constraint.ts b/packages/types-vrmc-node-constraint-1.0/types/Constraint.d.ts similarity index 100% rename from packages/types-vrmc-node-constraint-1.0/src/Constraint.ts rename to packages/types-vrmc-node-constraint-1.0/types/Constraint.d.ts diff --git a/packages/types-vrmc-node-constraint-1.0/src/RollConstraint.ts b/packages/types-vrmc-node-constraint-1.0/types/RollConstraint.d.ts similarity index 100% rename from packages/types-vrmc-node-constraint-1.0/src/RollConstraint.ts rename to packages/types-vrmc-node-constraint-1.0/types/RollConstraint.d.ts diff --git a/packages/types-vrmc-node-constraint-1.0/src/RotationConstraint.ts b/packages/types-vrmc-node-constraint-1.0/types/RotationConstraint.d.ts similarity index 100% rename from packages/types-vrmc-node-constraint-1.0/src/RotationConstraint.ts rename to packages/types-vrmc-node-constraint-1.0/types/RotationConstraint.d.ts diff --git a/packages/types-vrmc-node-constraint-1.0/src/VRMCNodeConstraint.ts b/packages/types-vrmc-node-constraint-1.0/types/VRMCNodeConstraint.d.ts similarity index 100% rename from packages/types-vrmc-node-constraint-1.0/src/VRMCNodeConstraint.ts rename to packages/types-vrmc-node-constraint-1.0/types/VRMCNodeConstraint.d.ts diff --git a/packages/types-vrmc-node-constraint-1.0/src/index.ts b/packages/types-vrmc-node-constraint-1.0/types/index.d.ts similarity index 100% rename from packages/types-vrmc-node-constraint-1.0/src/index.ts rename to packages/types-vrmc-node-constraint-1.0/types/index.d.ts diff --git a/packages/types-vrmc-springbone-1.0/package.json b/packages/types-vrmc-springbone-1.0/package.json index 902b659c0..eec35e4e3 100644 --- a/packages/types-vrmc-springbone-1.0/package.json +++ b/packages/types-vrmc-springbone-1.0/package.json @@ -5,19 +5,11 @@ "license": "MIT", "author": "pixiv", "files": [ - "/ts*/", "/types/", "LICENSE" ], "main": "", "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -25,15 +17,14 @@ }, "scripts": { "version": "yarn all", - "all": "yarn lint && yarn clean && yarn build && yarn docs", - "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", - "docs": "typedoc --entryPoints ./src/index.ts --out docs", - "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", - "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" + "all": "yarn lint && yarn clean && yarn docs", + "clean": "rimraf docs/", + "docs": "typedoc --entryPoints ./types/index.d.ts --out docs", + "lint": "eslint \"types/**/*.{ts,tsx}\" && prettier \"types/**/*.{ts,tsx}\" --check", + "lint-fix": "eslint \"types/**/*.{ts,tsx}\" --fix && prettier \"types/**/*.{ts,tsx}\" --write" }, "lint-staged": { - "./src/**/*.{ts,tsx}": [ + "./types/**/*.{ts,tsx}": [ "eslint --fix", "prettier --write" ] diff --git a/packages/types-vrmc-springbone-1.0/tsconfig.json b/packages/types-vrmc-springbone-1.0/tsconfig.json index 5bac6173e..15b9f2152 100644 --- a/packages/types-vrmc-springbone-1.0/tsconfig.json +++ b/packages/types-vrmc-springbone-1.0/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../tsconfig.json", "include": [ - "./src" + "./types" ] } diff --git a/packages/types-vrmc-springbone-1.0/src/SpringBoneCollider.ts b/packages/types-vrmc-springbone-1.0/types/SpringBoneCollider.d.ts similarity index 100% rename from packages/types-vrmc-springbone-1.0/src/SpringBoneCollider.ts rename to packages/types-vrmc-springbone-1.0/types/SpringBoneCollider.d.ts diff --git a/packages/types-vrmc-springbone-1.0/src/SpringBoneColliderCapsule.ts b/packages/types-vrmc-springbone-1.0/types/SpringBoneColliderCapsule.d.ts similarity index 100% rename from packages/types-vrmc-springbone-1.0/src/SpringBoneColliderCapsule.ts rename to packages/types-vrmc-springbone-1.0/types/SpringBoneColliderCapsule.d.ts diff --git a/packages/types-vrmc-springbone-1.0/src/SpringBoneColliderGroup.ts b/packages/types-vrmc-springbone-1.0/types/SpringBoneColliderGroup.d.ts similarity index 100% rename from packages/types-vrmc-springbone-1.0/src/SpringBoneColliderGroup.ts rename to packages/types-vrmc-springbone-1.0/types/SpringBoneColliderGroup.d.ts diff --git a/packages/types-vrmc-springbone-1.0/src/SpringBoneColliderShape.ts b/packages/types-vrmc-springbone-1.0/types/SpringBoneColliderShape.d.ts similarity index 100% rename from packages/types-vrmc-springbone-1.0/src/SpringBoneColliderShape.ts rename to packages/types-vrmc-springbone-1.0/types/SpringBoneColliderShape.d.ts diff --git a/packages/types-vrmc-springbone-1.0/src/SpringBoneColliderSphere.ts b/packages/types-vrmc-springbone-1.0/types/SpringBoneColliderSphere.d.ts similarity index 100% rename from packages/types-vrmc-springbone-1.0/src/SpringBoneColliderSphere.ts rename to packages/types-vrmc-springbone-1.0/types/SpringBoneColliderSphere.d.ts diff --git a/packages/types-vrmc-springbone-1.0/src/SpringBoneJoint.ts b/packages/types-vrmc-springbone-1.0/types/SpringBoneJoint.d.ts similarity index 100% rename from packages/types-vrmc-springbone-1.0/src/SpringBoneJoint.ts rename to packages/types-vrmc-springbone-1.0/types/SpringBoneJoint.d.ts diff --git a/packages/types-vrmc-springbone-1.0/src/SpringBoneSpring.ts b/packages/types-vrmc-springbone-1.0/types/SpringBoneSpring.d.ts similarity index 100% rename from packages/types-vrmc-springbone-1.0/src/SpringBoneSpring.ts rename to packages/types-vrmc-springbone-1.0/types/SpringBoneSpring.d.ts diff --git a/packages/types-vrmc-springbone-1.0/src/VRMCSpringBone.ts b/packages/types-vrmc-springbone-1.0/types/VRMCSpringBone.d.ts similarity index 100% rename from packages/types-vrmc-springbone-1.0/src/VRMCSpringBone.ts rename to packages/types-vrmc-springbone-1.0/types/VRMCSpringBone.d.ts diff --git a/packages/types-vrmc-springbone-1.0/src/index.ts b/packages/types-vrmc-springbone-1.0/types/index.d.ts similarity index 100% rename from packages/types-vrmc-springbone-1.0/src/index.ts rename to packages/types-vrmc-springbone-1.0/types/index.d.ts diff --git a/packages/types-vrmc-vrm-1.0/package.json b/packages/types-vrmc-vrm-1.0/package.json index 53f2462c2..13cc1b12e 100644 --- a/packages/types-vrmc-vrm-1.0/package.json +++ b/packages/types-vrmc-vrm-1.0/package.json @@ -5,19 +5,11 @@ "license": "MIT", "author": "pixiv", "files": [ - "/ts*/", "/types/", "LICENSE" ], "main": "", "types": "types/index.d.ts", - "typesVersions": { - "<3.9": { - "*": [ - "ts3.4/*" - ] - } - }, "repository": { "type": "git", "url": "https://github.com/pixiv/three-vrm.git", @@ -25,15 +17,14 @@ }, "scripts": { "version": "yarn all", - "all": "yarn lint && yarn clean && yarn build && yarn docs", - "clean": "rimraf docs/ ts*/ types/", - "build": "tsc --declaration --declarationDir ./types --emitDeclarationOnly && downlevel-dts types ts3.4/types", - "docs": "typedoc --entryPoints ./src/index.ts --out docs", - "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier \"src/**/*.{ts,tsx}\" --check", - "lint-fix": "eslint \"src/**/*.{ts,tsx}\" --fix && prettier \"src/**/*.{ts,tsx}\" --write" + "all": "yarn lint && yarn clean && yarn docs", + "clean": "rimraf docs/", + "docs": "typedoc --entryPoints ./types/index.d.ts --out docs", + "lint": "eslint \"types/**/*.{ts,tsx}\" && prettier \"types/**/*.{ts,tsx}\" --check", + "lint-fix": "eslint \"types/**/*.{ts,tsx}\" --fix && prettier \"types/**/*.{ts,tsx}\" --write" }, "lint-staged": { - "./src/**/*.{ts,tsx}": [ + "./types/**/*.{ts,tsx}": [ "eslint --fix", "prettier --write" ] diff --git a/packages/types-vrmc-vrm-1.0/tsconfig.json b/packages/types-vrmc-vrm-1.0/tsconfig.json index 5bac6173e..15b9f2152 100644 --- a/packages/types-vrmc-vrm-1.0/tsconfig.json +++ b/packages/types-vrmc-vrm-1.0/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../tsconfig.json", "include": [ - "./src" + "./types" ] } diff --git a/packages/types-vrmc-vrm-1.0/src/Expression.ts b/packages/types-vrmc-vrm-1.0/types/Expression.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/Expression.ts rename to packages/types-vrmc-vrm-1.0/types/Expression.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/ExpressionMaterialColorBind.ts b/packages/types-vrmc-vrm-1.0/types/ExpressionMaterialColorBind.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/ExpressionMaterialColorBind.ts rename to packages/types-vrmc-vrm-1.0/types/ExpressionMaterialColorBind.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/ExpressionMaterialColorType.ts b/packages/types-vrmc-vrm-1.0/types/ExpressionMaterialColorType.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/ExpressionMaterialColorType.ts rename to packages/types-vrmc-vrm-1.0/types/ExpressionMaterialColorType.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/ExpressionMorphTargetBind.ts b/packages/types-vrmc-vrm-1.0/types/ExpressionMorphTargetBind.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/ExpressionMorphTargetBind.ts rename to packages/types-vrmc-vrm-1.0/types/ExpressionMorphTargetBind.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/ExpressionOverrideType.ts b/packages/types-vrmc-vrm-1.0/types/ExpressionOverrideType.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/ExpressionOverrideType.ts rename to packages/types-vrmc-vrm-1.0/types/ExpressionOverrideType.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/ExpressionPresetName.ts b/packages/types-vrmc-vrm-1.0/types/ExpressionPresetName.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/ExpressionPresetName.ts rename to packages/types-vrmc-vrm-1.0/types/ExpressionPresetName.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/ExpressionTextureTransformBind.ts b/packages/types-vrmc-vrm-1.0/types/ExpressionTextureTransformBind.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/ExpressionTextureTransformBind.ts rename to packages/types-vrmc-vrm-1.0/types/ExpressionTextureTransformBind.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/Expressions.ts b/packages/types-vrmc-vrm-1.0/types/Expressions.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/Expressions.ts rename to packages/types-vrmc-vrm-1.0/types/Expressions.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/FirstPerson.ts b/packages/types-vrmc-vrm-1.0/types/FirstPerson.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/FirstPerson.ts rename to packages/types-vrmc-vrm-1.0/types/FirstPerson.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/FirstPersonMeshAnnotation.ts b/packages/types-vrmc-vrm-1.0/types/FirstPersonMeshAnnotation.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/FirstPersonMeshAnnotation.ts rename to packages/types-vrmc-vrm-1.0/types/FirstPersonMeshAnnotation.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/Humanoid.ts b/packages/types-vrmc-vrm-1.0/types/Humanoid.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/Humanoid.ts rename to packages/types-vrmc-vrm-1.0/types/Humanoid.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/HumanoidHumanBone.ts b/packages/types-vrmc-vrm-1.0/types/HumanoidHumanBone.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/HumanoidHumanBone.ts rename to packages/types-vrmc-vrm-1.0/types/HumanoidHumanBone.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/HumanoidHumanBoneName.ts b/packages/types-vrmc-vrm-1.0/types/HumanoidHumanBoneName.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/HumanoidHumanBoneName.ts rename to packages/types-vrmc-vrm-1.0/types/HumanoidHumanBoneName.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/HumanoidHumanBones.ts b/packages/types-vrmc-vrm-1.0/types/HumanoidHumanBones.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/HumanoidHumanBones.ts rename to packages/types-vrmc-vrm-1.0/types/HumanoidHumanBones.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/LookAt.ts b/packages/types-vrmc-vrm-1.0/types/LookAt.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/LookAt.ts rename to packages/types-vrmc-vrm-1.0/types/LookAt.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/LookAtRangeMap.ts b/packages/types-vrmc-vrm-1.0/types/LookAtRangeMap.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/LookAtRangeMap.ts rename to packages/types-vrmc-vrm-1.0/types/LookAtRangeMap.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/Meta.ts b/packages/types-vrmc-vrm-1.0/types/Meta.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/Meta.ts rename to packages/types-vrmc-vrm-1.0/types/Meta.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/VRMCVRM.ts b/packages/types-vrmc-vrm-1.0/types/VRMCVRM.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/VRMCVRM.ts rename to packages/types-vrmc-vrm-1.0/types/VRMCVRM.d.ts diff --git a/packages/types-vrmc-vrm-1.0/src/index.ts b/packages/types-vrmc-vrm-1.0/types/index.d.ts similarity index 100% rename from packages/types-vrmc-vrm-1.0/src/index.ts rename to packages/types-vrmc-vrm-1.0/types/index.d.ts diff --git a/yarn.lock b/yarn.lock index 031267457..6dba0899a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -709,6 +709,48 @@ write-pkg "4.0.0" yargs "16.2.0" +"@microsoft/api-extractor-model@7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.28.0.tgz#33136473abd048ca219a7f0bcb0b80030d712853" + integrity sha512-QIMtUVm1tqiKG+M6ciFgRShcDoovyltaeg+CbyOnyr7SMrp6gg0ojK5/nToMqR9kAvsTS4QVgW4Twl50EoAjcw== + dependencies: + "@microsoft/tsdoc" "0.14.2" + "@microsoft/tsdoc-config" "~0.16.1" + "@rushstack/node-core-library" "3.60.0" + +"@microsoft/api-extractor@^7.37.0": + version "7.37.0" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.37.0.tgz#374a0ef0e166de53a44033c4c59c7f25c96e15e5" + integrity sha512-df/wffWpDhYRw7kzdxeHGsCpim+dC8aFiZlsJb4uFvVPWhBZpDzOhQxSUTFx3Df1ORY+/JjuPR3fDE9Hq+PHzQ== + dependencies: + "@microsoft/api-extractor-model" "7.28.0" + "@microsoft/tsdoc" "0.14.2" + "@microsoft/tsdoc-config" "~0.16.1" + "@rushstack/node-core-library" "3.60.0" + "@rushstack/rig-package" "0.5.0" + "@rushstack/ts-command-line" "4.16.0" + colors "~1.2.1" + lodash "~4.17.15" + resolve "~1.22.1" + semver "~7.5.4" + source-map "~0.6.1" + typescript "~5.0.4" + +"@microsoft/tsdoc-config@~0.16.1": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz#b786bb4ead00d54f53839a458ce626c8548d3adf" + integrity sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw== + dependencies: + "@microsoft/tsdoc" "0.14.2" + ajv "~6.12.6" + jju "~1.4.0" + resolve "~1.19.0" + +"@microsoft/tsdoc@0.14.2": + version "0.14.2" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz#c3ec604a0b54b9a9b87e9735dfc59e1a5da6a5fb" + integrity sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug== + "@nodelib/fs.scandir@2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" @@ -1134,6 +1176,37 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@rushstack/node-core-library@3.60.0": + version "3.60.0" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.60.0.tgz#a52ca6b98762e9f64c1735d21456510d2aa956e3" + integrity sha512-PcyrqhILvzU+65wMFybQ2VeGNnU5JzhDq2OvUi3j6jPUxyllM7b2hrRUwCuVaYboewYzIbpzXFzgxe2K7ii1nw== + dependencies: + colors "~1.2.1" + fs-extra "~7.0.1" + import-lazy "~4.0.0" + jju "~1.4.0" + resolve "~1.22.1" + semver "~7.5.4" + z-schema "~5.0.2" + +"@rushstack/rig-package@0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.5.0.tgz#cca786e08634d12c6fde790d524a410a17f173d9" + integrity sha512-bGnOW4DWHOePDiABKy6qyqYJl9i7fKn4bRucExRVt5QzyPxuVHMl8CMmCabtoNSpXzgG3qymWOrMoa/W2PpJrw== + dependencies: + resolve "~1.22.1" + strip-json-comments "~3.1.1" + +"@rushstack/ts-command-line@4.16.0": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.16.0.tgz#92d3af993ca5ee271ea130d41f5ce6a9479cae3f" + integrity sha512-WJKhdR9ThK9Iy7t78O3at7I3X4Ssp5RRZay/IQa8NywqkFy/DQbT3iLouodMMdUwLZD9n8n++xLubVd3dkmpkg== + dependencies: + "@types/argparse" "1.0.38" + argparse "~1.0.9" + colors "~1.2.1" + string-argv "~0.3.1" + "@sigstore/bundle@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" @@ -1210,6 +1283,11 @@ resolved "https://registry.yarnpkg.com/@tweenjs/tween.js/-/tween.js-18.6.4.tgz#40a3d0a93647124872dec8e0fd1bd5926695b6ca" integrity sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ== +"@types/argparse@1.0.38": + version "1.0.38" + resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" + integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== + "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.15" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" @@ -1345,9 +1423,9 @@ meshoptimizer "~0.18.1" "@types/webxr@*": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.0.tgz#aae1cef3210d88fd4204f8c33385a0bbc4da07c9" - integrity sha512-IUMDPSXnYIbEO2IereEFcgcqfDREOgmbGqtrMpVPpACTU6pltYLwHgVkrnYv0XhWEcjio9sYEfIEzgn3c7nDqA== + version "0.5.5" + resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.5.tgz#9e0a27e809c8f76cc1ef525d9f96b8fd94ef9c42" + integrity sha512-HVOsSRTQYx3zpVl0c0FBmmmcY/60BkQLzVnpE9M1aG4f2Z0aKlBWfj4XZ2zr++XNBfkQWYcwhGlmuu44RJPDqg== "@types/yargs-parser@*": version "20.2.1" @@ -1538,7 +1616,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.10.0, ajv@^6.12.4: +ajv@^6.10.0, ajv@^6.12.4, ajv@~6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1658,7 +1736,7 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^1.0.7: +argparse@^1.0.7, argparse@~1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -2289,6 +2367,11 @@ colorette@^2.0.19: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== +colors@~1.2.1: + version "1.2.5" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" + integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== + columnify@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" @@ -2304,6 +2387,11 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2758,15 +2846,6 @@ dotenv@~10.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -downlevel-dts@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/downlevel-dts/-/downlevel-dts-0.11.0.tgz#514a2d723009c5845730c1db6c994484c596ed9c" - integrity sha512-vo835pntK7kzYStk7xUHDifiYJvXxVhUapt85uk2AI94gUUAQX9HNRtrcMHNSc3YHJUEHGbYIGsM99uIbgAtxw== - dependencies: - semver "^7.3.2" - shelljs "^0.8.3" - typescript next - duplexer@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -3400,6 +3479,15 @@ fs-extra@^11.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@~7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -3605,7 +3693,7 @@ glob@^10.2.2: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -3911,6 +3999,11 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-lazy@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -3986,11 +4079,6 @@ inquirer@8.2.4, inquirer@^8.2.4: through "^2.3.6" wrap-ansi "^7.0.0" -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" @@ -4034,6 +4122,13 @@ is-ci@2.0.0, is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-core-module@^2.1.0, is-core-module@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: version "2.10.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" @@ -4687,6 +4782,11 @@ jest@^26.6.3: import-local "^3.0.2" jest-cli "^26.6.3" +jju@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4802,6 +4902,13 @@ jsonc-parser@3.2.0, jsonc-parser@^3.0.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -5077,6 +5184,16 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" @@ -5092,7 +5209,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@4.x, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.7.0: +lodash@4.x, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.7.0, lodash@~4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6267,7 +6384,7 @@ path-key@^4.0.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -path-parse@^1.0.7: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -6648,13 +6765,6 @@ readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -6728,7 +6838,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.18.1, resolve@^1.22.1: +resolve@^1.10.0, resolve@^1.18.1, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -6737,6 +6847,23 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.18.1, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@~1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + +resolve@~1.22.1: + version "1.22.6" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" + integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -6903,7 +7030,7 @@ semver@7.3.8: dependencies: lru-cache "^6.0.0" -semver@7.5.4, semver@^7.3.8: +semver@7.5.4, semver@^7.3.8, semver@~7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -6975,15 +7102,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shelljs@^0.8.3: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" @@ -7239,6 +7357,11 @@ string-argv@^0.3.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== +string-argv@~0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -7334,7 +7457,7 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -7744,10 +7867,10 @@ typescript@^4.3.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typescript@next: - version "5.0.0-dev.20221212" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.0-dev.20221212.tgz#bdc0fca3a3c408209131daafa6c1cbf480f25fc1" - integrity sha512-bnSpGyeM4wf0n7H5Tv4oWf3dPiEpUh2bBLbrLkJ9LsCQVdedHQwC52H3gtWEPT/yt4XCiDtfqjZTGHXxEtDn7A== +typescript@~5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" + integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== uglify-js@^3.1.4: version "3.17.2" @@ -7804,7 +7927,7 @@ universal-user-agent@^6.0.0: resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== -universalify@^0.1.2: +universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== @@ -7897,6 +8020,11 @@ validate-npm-package-name@^5.0.0: dependencies: builtins "^5.0.0" +validator@^13.7.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" + integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== + vscode-oniguruma@^1.6.1: version "1.6.2" resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" @@ -8235,3 +8363,14 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +z-schema@~5.0.2: + version "5.0.6" + resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-5.0.6.tgz#46d6a687b15e4a4369e18d6cb1c7b8618fc256c5" + integrity sha512-+XR1GhnWklYdfr8YaZv/iu+vY+ux7V5DS5zH1DQf6bO5ufrt/5cgNhVO5qyhsjFXvsqQb/f08DWE9b6uPscyAg== + dependencies: + lodash.get "^4.4.2" + lodash.isequal "^4.5.0" + validator "^13.7.0" + optionalDependencies: + commander "^10.0.0"