Started adopting api-extractor

This commit is contained in:
Aria Minaei 2021-10-02 13:48:02 +02:00
parent 3e71d6dacc
commit 90520dfb25
21 changed files with 896 additions and 38 deletions

View file

@ -1,9 +1,10 @@
module.exports = { module.exports = {
root: true, root: true,
plugins: ['unused-imports'], plugins: ['unused-imports', 'eslint-plugin-tsdoc'],
extends: [], extends: [],
rules: { rules: {
'unused-imports/no-unused-imports': 'warn', 'unused-imports/no-unused-imports': 'warn',
'tsdoc/syntax': 'warn',
'no-restricted-imports': [ 'no-restricted-imports': [
'error', 'error',
{ {
@ -16,7 +17,7 @@ module.exports = {
}, },
], ],
}, },
ignorePatterns: ['*.d.ts'], ignorePatterns: ['*.d.ts', '*.ignore.ts'],
overrides: [ overrides: [
{ {
files: ['*.ts', '*.tsx'], files: ['*.ts', '*.tsx'],

31
devEnv/api-docs.mjs Normal file
View file

@ -0,0 +1,31 @@
import path from 'path'
import {readFileSync, writeFileSync} from 'fs'
import {keyBy} from 'lodash-es'
;(async function () {
// better quote function from https://github.com/google/zx/pull/167
$.quote = function quote(arg) {
if (/^[a-z0-9/_.-]+$/i.test(arg)) {
return arg
}
return (
`$'` +
arg
.replace(/\\/g, '\\\\')
.replace(/'/g, "\\'")
.replace(/\f/g, '\\f')
.replace(/\n/g, '\\n')
.replace(/\r/g, '\\r')
.replace(/\t/g, '\\t')
.replace(/\v/g, '\\v')
.replace(/\0/g, '\\0') +
`'`
)
}
await $`yarn build:ts`
await Promise.all(
['@theatre/dataverse', '@theatre/react', 'theatre'].map(
(pkg) => $`yarn workspace ${pkg} run build:api-json`,
),
)
})()

View file

@ -0,0 +1,376 @@
/**
* 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 "<projectFolder>" 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 "<lookup>", 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: <lookup>
* DEFAULT VALUE: "<lookup>"
*/
// "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 "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
*/
"mainEntryPointFilePath": "<projectFolder>/dist/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": [],
/**
* 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 "<projectFolder>".
*
* Note: This setting will be ignored if "overrideTsconfig" is used.
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/tsconfig.json"
*/
"tsconfigFilePath": "<projectFolder>/devEnv/api-extractor.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": {
// "compilerOptions": {
// "paths": {
// // "@theatre/shared/*": ["./theatre/shared/src/*"]
// }
// }
// }
/**
* 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": false
/**
* 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: <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<unscopedPackageName>.api.md"
*/
// "reportFileName": "<unscopedPackageName>.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 "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/etc/"
*/
// "reportFolder": "<projectFolder>/etc/",
/**
* 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 "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/temp/"
*/
// "reportTempFolder": "<projectFolder>/temp/"
},
/**
* Configures how the doc model file (*.api.json) will be generated.
*/
"docModel": {
/**
* (REQUIRED) Whether to generate a doc model file.
*/
"enabled": true,
/**
* 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 "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/temp/<unscopedPackageName>.api.json"
*/
"apiJsonFilePath": "<projectFolder>/dist/<unscopedPackageName>.api.json"
},
/**
* Configures how the .d.ts rollup file will be generated.
*/
"dtsRollup": {
/**
* (REQUIRED) Whether to generate the .d.ts rollup file.
*/
"enabled": false
/**
* 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 "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<projectFolder>/dist/<unscopedPackageName>.d.ts"
*/
// "untrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>.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 "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: ""
*/
// "betaTrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>-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 "<projectFolder>".
*
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: ""
*/
// "publicTrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>-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 "<projectFolder>".
*
* The default value is "<lookup>", 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: <projectFolder>, <packageName>, <unscopedPackageName>
* DEFAULT VALUE: "<lookup>"
*/
// "tsdocMetadataFilePath": "<projectFolder>/dist/tsdoc-metadata.json"
},
/**
* 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",
/**
* 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": {
// let's configure message reporting later
"logLevel": "warning"
// "addToApiReportFile": false
},
"ae-missing-release-tag": {
"logLevel": "none"
},
"ae-forgotten-export": {
"logLevel": "none"
}
// "ae-extra-release-tag": {
// "logLevel": "warning",
// "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"
// "addToApiReportFile": false
}
// "tsdoc-link-tag-unescaped-text": {
// "logLevel": "warning",
// "addToApiReportFile": true
// },
//
// . . .
}
}
}

View file

@ -9,10 +9,12 @@
], ],
"scripts": { "scripts": {
"playground": "yarn workspace playground run serve", "playground": "yarn workspace playground run serve",
"typecheck": "tsc --build ./devEnv/typecheck-all-projects/tsconfig.all.json", "typecheck": "yarn run build:ts",
"build:ts": "tsc --build ./devEnv/typecheck-all-projects/tsconfig.all.json",
"test": "jest", "test": "jest",
"postinstall": "husky install", "postinstall": "husky install",
"deploy": "zx devEnv/deploy.mjs", "deploy": "zx devEnv/deploy.mjs",
"build:api-docs": "zx devEnv/api-docs.mjs",
"lint:all": "eslint . --ext ts,tsx --ignore-path=.gitignore --rulesdir ./devEnv/eslint/rules" "lint:all": "eslint . --ext ts,tsx --ignore-path=.gitignore --rulesdir ./devEnv/eslint/rules"
}, },
"lint-staged": { "lint-staged": {
@ -37,6 +39,7 @@
"eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-react": "^7.25.1", "eslint-plugin-react": "^7.25.1",
"eslint-plugin-react-hooks": "^4.2.0", "eslint-plugin-react-hooks": "^4.2.0",
"eslint-plugin-tsdoc": "^0.2.14",
"eslint-plugin-unused-imports": "^1.1.4", "eslint-plugin-unused-imports": "^1.1.4",
"husky": "^6.0.0", "husky": "^6.0.0",
"jest": "^27.1.0", "jest": "^27.1.0",
@ -47,6 +50,8 @@
"zx": "^2.0.0" "zx": "^2.0.0"
}, },
"dependencies": { "dependencies": {
"@microsoft/api-documenter": "^7.13.54",
"@microsoft/api-extractor": "^7.18.11",
"node-gyp": "^8.1.0" "node-gyp": "^8.1.0"
} }
} }

View file

@ -0,0 +1,36 @@
/**
* 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": "../../../devEnv/api-extractor-base.json",
// "extends": "my-package/include/api-extractor-base.json"
/**
* Determines the "<projectFolder>" 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 "<lookup>", 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: <lookup>
* DEFAULT VALUE: "<lookup>"
*/
"projectFolder": ".."
}

View file

@ -0,0 +1,4 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "../tsconfig.json"
}

View file

@ -19,13 +19,15 @@
], ],
"scripts": { "scripts": {
"prepack": "node ../../devEnv/ensurePublishing.js", "prepack": "node ../../devEnv/ensurePublishing.js",
"typecheck": "yarn run build", "typecheck": "yarn run build:ts",
"build": "run-s build:ts build:js", "build": "run-s build:ts build:js build:api-json",
"build:ts": "tsc --build ./tsconfig.json", "build:ts": "tsc --build ./tsconfig.json",
"build:js": "node -r esbuild-register ./devEnv/build.ts", "build:js": "node -r esbuild-register ./devEnv/build.ts",
"build:api-json": "api-extractor run --local --config devEnv/api-extractor.json",
"prepublish": "node ../../devEnv/ensurePublishing.js" "prepublish": "node ../../devEnv/ensurePublishing.js"
}, },
"devDependencies": { "devDependencies": {
"@microsoft/api-extractor": "^7.18.11",
"@types/jest": "^26.0.23", "@types/jest": "^26.0.23",
"@types/lodash-es": "^4.17.4", "@types/lodash-es": "^4.17.4",
"@types/node": "^15.6.2", "@types/node": "^15.6.2",

View file

@ -0,0 +1,36 @@
/**
* 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": "../../../devEnv/api-extractor-base.json",
// "extends": "my-package/include/api-extractor-base.json"
/**
* Determines the "<projectFolder>" 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 "<lookup>", 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: <lookup>
* DEFAULT VALUE: "<lookup>"
*/
"projectFolder": ".."
}

View file

@ -0,0 +1,7 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "../tsconfig.json",
"compilerOptions": {
"paths": {}
}
}

View file

@ -20,12 +20,14 @@
"scripts": { "scripts": {
"prepack": "node ../../devEnv/ensurePublishing.js", "prepack": "node ../../devEnv/ensurePublishing.js",
"typecheck": "yarn run build", "typecheck": "yarn run build",
"build": "run-s build:ts build:js", "build": "run-s build:ts build:js build:api-json",
"build:ts": "tsc --build ./tsconfig.json", "build:ts": "tsc --build ./tsconfig.json",
"build:js": "node -r esbuild-register ./devEnv/build.ts", "build:js": "node -r esbuild-register ./devEnv/build.ts",
"build:api-json": "api-extractor run --local --config devEnv/api-extractor.json",
"prepublish": "node ../../devEnv/ensurePublishing.js" "prepublish": "node ../../devEnv/ensurePublishing.js"
}, },
"devDependencies": { "devDependencies": {
"@microsoft/api-extractor": "^7.18.11",
"@types/jest": "^26.0.23", "@types/jest": "^26.0.23",
"@types/lodash-es": "^4.17.4", "@types/lodash-es": "^4.17.4",
"@types/node": "^15.6.2", "@types/node": "^15.6.2",

View file

@ -0,0 +1,39 @@
/**
* 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": "../../../devEnv/api-extractor-base.json",
// "extends": "my-package/include/api-extractor-base.json"
"mainEntryPointFilePath": "../../.temp/declarations/core/src/index.d.ts",
"bundledPackages": ["@theatre/core", "@theatre/shared"],
/**
* Determines the "<projectFolder>" 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 "<lookup>", 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: <lookup>
* DEFAULT VALUE: "<lookup>"
*/
"projectFolder": ".."
}

View file

@ -0,0 +1,10 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "../../tsconfig.json",
"compilerOptions": {
"paths": {
"@theatre/core/*": ["../../.temp/declarations/core/src/*"],
"@theatre/shared/*": ["../../.temp/declarations/shared/src/*"]
}
}
}

View file

@ -21,8 +21,12 @@ export {types}
/** /**
* Returns a project of the given id, or creates one if it doesn't already exist. * Returns a project of the given id, or creates one if it doesn't already exist.
* *
* If @theatre/studio is also loaded, then the state of the project will be managed by the studio. * @remarks
* If \@theatre/studio is also loaded, then the state of the project will be managed by the studio.
* *
* [Learn more about exporting](https://docs.theatrejs.com/in-depth/#exporting)
*
* @example
* Usage: * Usage:
* ```ts * ```ts
* import {getProject} from '@theatre/core' * import {getProject} from '@theatre/core'
@ -30,6 +34,7 @@ export {types}
* const project = getProject("a-unique-id", config) * const project = getProject("a-unique-id", config)
* ``` * ```
* *
* @example
* Usage with an explicit state: * Usage with an explicit state:
* ```ts * ```ts
* import {getProject} from '@theatre/core' * import {getProject} from '@theatre/core'
@ -37,8 +42,6 @@ export {types}
* const config = {state} // here the config contains our saved state * const config = {state} // here the config contains our saved state
* const project = getProject("a-unique-id", config) * const project = getProject("a-unique-id", config)
* ``` * ```
*
* Learn more about exporting https://docs.theatrejs.com/in-depth/#exporting
*/ */
export function getProject(id: string, config: IProjectConfig = {}): IProject { export function getProject(id: string, config: IProjectConfig = {}): IProject {
const {...restOfConfig} = config const {...restOfConfig} = config
@ -122,8 +125,8 @@ const validateProjectIdOrThrow = (value: string) => {
/** /**
* Calls `callback` every time the pointed value of `pointer` changes. * Calls `callback` every time the pointed value of `pointer` changes.
* *
* @param pointer A pointer (like `object.props.x`) * @param pointer - A pointer (like `object.props.x`)
* @param callback The callback is called every time the value of pointerOrDerivation changes * @param callback - The callback is called every time the value of pointerOrDerivation changes
* @returns An unsubscribe function * @returns An unsubscribe function
*/ */
export function onChange<P extends PointerType<$IntentionalAny>>( export function onChange<P extends PointerType<$IntentionalAny>>(

View file

@ -41,8 +41,8 @@ export interface IProject {
/** /**
* Creates a Sheet under the project * Creates a Sheet under the project
* @param sheetId Sheets are identified by their `sheetId`, which must be a string longer than 3 characters * @param sheetId - Sheets are identified by their `sheetId`, which must be a string longer than 3 characters
* @param instanceId Optionally provide an `instanceId` if you want to create multiple instances of the same Sheet * @param instanceId - Optionally provide an `instanceId` if you want to create multiple instances of the same Sheet
* @returns The newly created Sheet * @returns The newly created Sheet
* *
* **Docs: https://docs.theatrejs.com/in-depth/#sheets** * **Docs: https://docs.theatrejs.com/in-depth/#sheets**

View file

@ -65,9 +65,6 @@ const validateCommonOpts = (
* {label: "Position"} * {label: "Position"}
* ) * )
* ``` * ```
* @param props
* @param opts
* @returns
* *
*/ */
export const compound = <Props extends IShorthandCompoundProps>( export const compound = <Props extends IShorthandCompoundProps>(
@ -122,8 +119,8 @@ export const compound = <Props extends IShorthandCompoundProps>(
* }) * })
* ``` * ```
* *
* @param defaultValue The default value (Must be a finite number) * @param defaultValue - The default value (Must be a finite number)
* @param opts The options (See usage examples) * @param opts - The options (See usage examples)
* @returns A number prop config * @returns A number prop config
*/ */
export const number = ( export const number = (
@ -222,8 +219,8 @@ export const number = (
* }) * })
* ``` * ```
* *
* @param defaultValue The default value (must be a boolean) * @param defaultValue - The default value (must be a boolean)
* @param opts Options (See usage examples) * @param opts - Options (See usage examples)
*/ */
export const boolean = ( export const boolean = (
defaultValue: boolean, defaultValue: boolean,
@ -264,8 +261,8 @@ export const boolean = (
* }) * })
* ``` * ```
* *
* @param defaultValue The default value (must be a string) * @param defaultValue - The default value (must be a string)
* @param opts The options (See usage examples) * @param opts - The options (See usage examples)
* @returns A string prop type * @returns A string prop type
*/ */
export const string = ( export const string = (

View file

@ -13,12 +13,16 @@
"build:js:watch": "node -r esbuild-register devEnv/watch.ts", "build:js:watch": "node -r esbuild-register devEnv/watch.ts",
"build:ts": "run-s typecheck build:ts:bundle", "build:ts": "run-s typecheck build:ts:bundle",
"build:ts:bundle": "rollup -c devEnv/declarations-bundler/rollup.config.js", "build:ts:bundle": "rollup -c devEnv/declarations-bundler/rollup.config.js",
"build:api-json": "run-p build:api-json:core build:api-json:studio",
"build:api-json:core": "api-extractor run --local --config core/devEnv/api-extractor.json",
"build:api-json:studio": "api-extractor run --local --config studio/devEnv/api-extractor.json",
"build": "run-p build:ts build:js" "build": "run-p build:ts build:js"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.14.3", "@babel/cli": "^7.14.3",
"@babel/core": "^7.14.3", "@babel/core": "^7.14.3",
"@babel/runtime": "^7.14.0", "@babel/runtime": "^7.14.0",
"@microsoft/api-extractor": "^7.18.11",
"@rollup/plugin-alias": "^3.1.5", "@rollup/plugin-alias": "^3.1.5",
"@rollup/plugin-multi-entry": "^4.1.0", "@rollup/plugin-multi-entry": "^4.1.0",
"@rollup/plugin-replace": "^2.4.2", "@rollup/plugin-replace": "^2.4.2",

View file

@ -0,0 +1,39 @@
/**
* 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": "../../../devEnv/api-extractor-base.json",
// "extends": "my-package/include/api-extractor-base.json"
"mainEntryPointFilePath": "../../.temp/declarations/studio/src/index.d.ts",
"bundledPackages": ["@theatre/studio", "@theatre/shared"],
/**
* Determines the "<projectFolder>" 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 "<lookup>", 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: <lookup>
* DEFAULT VALUE: "<lookup>"
*/
"projectFolder": ".."
}

View file

@ -0,0 +1,12 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "../../tsconfig.json",
"compilerOptions": {
"paths": {
"@theatre/studio/*": ["../../.temp/declarations/studio/src/*"],
"@theatre/shared/*": ["../../.temp/declarations/shared/src/*"],
// not sure why it can't resolve react-icons, but we don't need it in the declarations anyway.
"react-icons": ["./cantResolve.ignore.ts"]
}
}
}

View file

@ -0,0 +1,7 @@
/**
* For some reason, invoking api-extractor causes TS to be unable to resolve
* some packages (so far "react-icons"). This module is a replacement for those.
*
* Check ./api-extractor.tsconfig.json -> compilerOptions.paths["react-icons"]
*/
export {}

View file

@ -35,8 +35,8 @@ export interface ITransactionAPI {
* set(obj.props.z, 10) * set(obj.props.z, 10)
* }) * })
* ``` * ```
* @param pointer A Pointer, like object.props * @param pointer - A Pointer, like object.props
* @param value The value to override the existing value. This is treated as a deep partial value. * @param value - The value to override the existing value. This is treated as a deep partial value.
*/ */
set<V>(pointer: Pointer<V>, value: V): void set<V>(pointer: Pointer<V>, value: V): void
/** /**
@ -152,14 +152,14 @@ export interface IStudio {
/** /**
* The local storage key to use to persist the state. * The local storage key to use to persist the state.
* *
* @default "theatrejs:0.4" * Default: "theatrejs:0.4"
*/ */
persistenceKey?: string persistenceKey?: string
/** /**
* Whether to persist the changes in the browser's temporary storage. * Whether to persist the changes in the browser's temporary storage.
* It is useful to set this to false in the test environment or when debugging things. * It is useful to set this to false in the test environment or when debugging things.
* *
* @default true * Default: true
*/ */
usePersistentStorage?: boolean usePersistentStorage?: boolean
}): void }): void
@ -212,7 +212,7 @@ export interface IStudio {
* automatically runs scrub.commit() after `threshhold` milliseconds have * automatically runs scrub.commit() after `threshhold` milliseconds have
* passed after the last `scrub.capture`. * passed after the last `scrub.capture`.
* *
* @param threshhold How long to wait before committing the scrub * @param threshhold - How long to wait before committing the scrub
* *
* Usage: * Usage:
* ```ts * ```ts
@ -288,7 +288,7 @@ export interface IStudio {
/** /**
* Creates a new pane * Creates a new pane
* *
* @param paneClass The class name of the pane (provided by an extension) * @param paneClass - The class name of the pane (provided by an extension)
*/ */
createPane<PaneClass extends string>( createPane<PaneClass extends string>(
paneClass: PaneClass, paneClass: PaneClass,
@ -307,7 +307,7 @@ export interface IStudio {
* to programmatically save the state of your projects to the storage system of your * to programmatically save the state of your projects to the storage system of your
* choice, rather than manually clicking on the "Export" button in the UI. * choice, rather than manually clicking on the "Export" button in the UI.
* *
* @param projectId same projectId as in `core.getProject(projectId)` * @param projectId - same projectId as in `core.getProject(projectId)`
* *
* Usage: * Usage:
* ```ts * ```ts

265
yarn.lock
View file

@ -4439,6 +4439,75 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@microsoft/api-documenter@npm:^7.13.54":
version: 7.13.54
resolution: "@microsoft/api-documenter@npm:7.13.54"
dependencies:
"@microsoft/api-extractor-model": 7.13.9
"@microsoft/tsdoc": 0.13.2
"@rushstack/node-core-library": 3.41.0
"@rushstack/ts-command-line": 4.9.1
colors: ~1.2.1
js-yaml: ~3.13.1
resolve: ~1.17.0
bin:
api-documenter: bin/api-documenter
checksum: 97b8960192aea3fa1bed18ca44ac4da8966ca7f74fc5a4e0c9c1add5fc38cf83972cee62d9bb04591fd8d9be45e439be6135bc6bdf9a1e66a0691a95d97bc3e6
languageName: node
linkType: hard
"@microsoft/api-extractor-model@npm:7.13.9":
version: 7.13.9
resolution: "@microsoft/api-extractor-model@npm:7.13.9"
dependencies:
"@microsoft/tsdoc": 0.13.2
"@microsoft/tsdoc-config": ~0.15.2
"@rushstack/node-core-library": 3.41.0
checksum: c133c86838747b586b5da45b498915f96836e7266822e0f017fc5c9ad273c0ec190df0051d414eb07dca8c7eab203355e7a090aa5bd8e331e6cb55b0e998638b
languageName: node
linkType: hard
"@microsoft/api-extractor@npm:^7.18.11":
version: 7.18.11
resolution: "@microsoft/api-extractor@npm:7.18.11"
dependencies:
"@microsoft/api-extractor-model": 7.13.9
"@microsoft/tsdoc": 0.13.2
"@microsoft/tsdoc-config": ~0.15.2
"@rushstack/node-core-library": 3.41.0
"@rushstack/rig-package": 0.3.1
"@rushstack/ts-command-line": 4.9.1
colors: ~1.2.1
lodash: ~4.17.15
resolve: ~1.17.0
semver: ~7.3.0
source-map: ~0.6.1
typescript: ~4.4.2
bin:
api-extractor: bin/api-extractor
checksum: 2f1b0c814e4e702b3ae4a095679d656e20c091cb646937a635ef857f94145762c145382a91b24deea87850aea55d9782c0693430cb89ecd8a6d48a15ad273282
languageName: node
linkType: hard
"@microsoft/tsdoc-config@npm:0.15.2, @microsoft/tsdoc-config@npm:~0.15.2":
version: 0.15.2
resolution: "@microsoft/tsdoc-config@npm:0.15.2"
dependencies:
"@microsoft/tsdoc": 0.13.2
ajv: ~6.12.6
jju: ~1.4.0
resolve: ~1.19.0
checksum: 1b6ba953ca8f82b9e2ae920ef48014c186ffdd8ee43b3e493bbafd8270a199829bf8a64929c6a19b537ec8df295b285eb365026fa0633d2f4529bca2ab009bc8
languageName: node
linkType: hard
"@microsoft/tsdoc@npm:0.13.2":
version: 0.13.2
resolution: "@microsoft/tsdoc@npm:0.13.2"
checksum: b0ddc7689f52a69e0472fd9ca30d8242d4d7bae5cb5d3d86f2ad394a122d63feee0a82276fc2dc6b199bb96c20b309bcd3ab3c6517ddd70b98d8ae890b6995ab
languageName: node
linkType: hard
"@mrmlnc/readdir-enhanced@npm:^2.2.1": "@mrmlnc/readdir-enhanced@npm:^2.2.1":
version: 2.2.1 version: 2.2.1
resolution: "@mrmlnc/readdir-enhanced@npm:2.2.1" resolution: "@mrmlnc/readdir-enhanced@npm:2.2.1"
@ -4982,6 +5051,45 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@rushstack/node-core-library@npm:3.41.0":
version: 3.41.0
resolution: "@rushstack/node-core-library@npm:3.41.0"
dependencies:
"@types/node": 12.20.24
colors: ~1.2.1
fs-extra: ~7.0.1
import-lazy: ~4.0.0
jju: ~1.4.0
resolve: ~1.17.0
semver: ~7.3.0
timsort: ~0.3.0
z-schema: ~3.18.3
checksum: ec31a18a39c8b69b6336d0704e409104a59a9a733ad6ef516d8b51818481a3d2dd91888e0f5722d915c0efe4def20dddddeef5eb209f02a36305909e9d2e430c
languageName: node
linkType: hard
"@rushstack/rig-package@npm:0.3.1":
version: 0.3.1
resolution: "@rushstack/rig-package@npm:0.3.1"
dependencies:
resolve: ~1.17.0
strip-json-comments: ~3.1.1
checksum: 7cc31624ed3d3d629e6e17e3c47549389e14da835a0a3826bf88791c8b6f6f531333a9f20150c92dabb91ddc4ac6df62fb52bf35e15a0d36ecd5deddaea5492f
languageName: node
linkType: hard
"@rushstack/ts-command-line@npm:4.9.1":
version: 4.9.1
resolution: "@rushstack/ts-command-line@npm:4.9.1"
dependencies:
"@types/argparse": 1.0.38
argparse: ~1.0.9
colors: ~1.2.1
string-argv: ~0.3.1
checksum: 2ce905982ea9105f4c6141bccc6599030159f718c3992cdf3ced8dead31f831d87a399a244d0e729c28e5ddc2e05c0d72dfc805ed899b1a65672b90e9c15115f
languageName: node
linkType: hard
"@sinonjs/commons@npm:^1.7.0": "@sinonjs/commons@npm:^1.7.0":
version: 1.8.2 version: 1.8.2
resolution: "@sinonjs/commons@npm:1.8.2" resolution: "@sinonjs/commons@npm:1.8.2"
@ -5246,6 +5354,7 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "@theatre/dataverse@workspace:packages/dataverse" resolution: "@theatre/dataverse@workspace:packages/dataverse"
dependencies: dependencies:
"@microsoft/api-extractor": ^7.18.11
"@types/jest": ^26.0.23 "@types/jest": ^26.0.23
"@types/lodash-es": ^4.17.4 "@types/lodash-es": ^4.17.4
"@types/node": ^15.6.2 "@types/node": ^15.6.2
@ -5293,6 +5402,7 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "@theatre/react@workspace:packages/react" resolution: "@theatre/react@workspace:packages/react"
dependencies: dependencies:
"@microsoft/api-extractor": ^7.18.11
"@theatre/dataverse": "workspace:*" "@theatre/dataverse": "workspace:*"
"@types/jest": ^26.0.23 "@types/jest": ^26.0.23
"@types/lodash-es": ^4.17.4 "@types/lodash-es": ^4.17.4
@ -5368,6 +5478,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/argparse@npm:1.0.38":
version: 1.0.38
resolution: "@types/argparse@npm:1.0.38"
checksum: 4b80a5e5c6c23fd48c88d7aab0b49e5b90285d570f2856bbaadf62538f261faaab0ee9246f25d98cb9c85a5a712d6619cad662644fe704b6a720cf1b85bbffce
languageName: node
linkType: hard
"@types/aria-query@npm:^4.2.0": "@types/aria-query@npm:^4.2.0":
version: 4.2.2 version: 4.2.2
resolution: "@types/aria-query@npm:4.2.2" resolution: "@types/aria-query@npm:4.2.2"
@ -5619,6 +5736,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:12.20.24":
version: 12.20.24
resolution: "@types/node@npm:12.20.24"
checksum: 0f908468d7c73159f838bbedc5c2d127aecfdf8bb720307664ba94d80510ed658e93e8dd6632e9f906a0f9d7f790e5f0632a19e0fe3ebb5fc61d7e2c9919489c
languageName: node
linkType: hard
"@types/node@npm:^15.12.3": "@types/node@npm:^15.12.3":
version: 15.12.3 version: 15.12.3
resolution: "@types/node@npm:15.12.3" resolution: "@types/node@npm:15.12.3"
@ -6528,7 +6652,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ajv@npm:^6.1.0, ajv@npm:^6.10.0, ajv@npm:^6.10.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": "ajv@npm:^6.1.0, ajv@npm:^6.10.0, ajv@npm:^6.10.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:~6.12.6":
version: 6.12.6 version: 6.12.6
resolution: "ajv@npm:6.12.6" resolution: "ajv@npm:6.12.6"
dependencies: dependencies:
@ -6723,7 +6847,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"argparse@npm:^1.0.7": "argparse@npm:^1.0.7, argparse@npm:~1.0.9":
version: 1.0.10 version: 1.0.10
resolution: "argparse@npm:1.0.10" resolution: "argparse@npm:1.0.10"
dependencies: dependencies:
@ -8717,6 +8841,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"colors@npm:~1.2.1":
version: 1.2.5
resolution: "colors@npm:1.2.5"
checksum: c396fe2a268fd95f37de874a4eb0f542698a6fd775bcecffdb8aa01fe6c67b4aab81bd7a93ee2f7a248f29a161446c1719d4590aff5e26e7315c7b9d473a513d
languageName: node
linkType: hard
"columnify@npm:^1.5.4": "columnify@npm:^1.5.4":
version: 1.5.4 version: 1.5.4
resolution: "columnify@npm:1.5.4" resolution: "columnify@npm:1.5.4"
@ -8743,7 +8874,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"commander@npm:^2.11.0, commander@npm:^2.19.0, commander@npm:^2.20.0": "commander@npm:^2.11.0, commander@npm:^2.19.0, commander@npm:^2.20.0, commander@npm:^2.7.1":
version: 2.20.3 version: 2.20.3
resolution: "commander@npm:2.20.3" resolution: "commander@npm:2.20.3"
checksum: b73428e97de7624323f81ba13f8ed9271de487017432d18b4da3f07cfc528ad754bbd199004bd5d14e0ccd67d1fdfe0ec8dbbd4c438b401df3c4cc387bfd1daa checksum: b73428e97de7624323f81ba13f8ed9271de487017432d18b4da3f07cfc528ad754bbd199004bd5d14e0ccd67d1fdfe0ec8dbbd4c438b401df3c4cc387bfd1daa
@ -11041,6 +11172,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"eslint-plugin-tsdoc@npm:^0.2.14":
version: 0.2.14
resolution: "eslint-plugin-tsdoc@npm:0.2.14"
dependencies:
"@microsoft/tsdoc": 0.13.2
"@microsoft/tsdoc-config": 0.15.2
checksum: e25c6df04a40c31cce70732ca2170df5cd3425c9e799b6aacd1f7078551fa8821cafd3f99dde29a0fc599ad08ed762d2d21794a52911742d048d36a18d6f7331
languageName: node
linkType: hard
"eslint-plugin-unused-imports@npm:^1.1.4": "eslint-plugin-unused-imports@npm:^1.1.4":
version: 1.1.4 version: 1.1.4
resolution: "eslint-plugin-unused-imports@npm:1.1.4" resolution: "eslint-plugin-unused-imports@npm:1.1.4"
@ -11975,7 +12116,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"fs-extra@npm:^7.0.0": "fs-extra@npm:^7.0.0, fs-extra@npm:~7.0.1":
version: 7.0.1 version: 7.0.1
resolution: "fs-extra@npm:7.0.1" resolution: "fs-extra@npm:7.0.1"
dependencies: dependencies:
@ -13188,6 +13329,13 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"import-lazy@npm:~4.0.0":
version: 4.0.0
resolution: "import-lazy@npm:4.0.0"
checksum: 8b87df6e579fb3d7c66d43efd25a46c3c61d636a1a48696d8a49d5592e1be97867fbb46de795e8f4311e85bc4eec78f9d7c638656bc41a2ecc53b9ed7883b423
languageName: node
linkType: hard
"import-local@npm:^2.0.0": "import-local@npm:^2.0.0":
version: 2.0.0 version: 2.0.0
resolution: "import-local@npm:2.0.0" resolution: "import-local@npm:2.0.0"
@ -13540,6 +13688,15 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"is-core-module@npm:^2.1.0":
version: 2.7.0
resolution: "is-core-module@npm:2.7.0"
dependencies:
has: ^1.0.3
checksum: e017cc444527b1ce29689ec355b6f0f129a964f38a2655e411284e7672ac58b02642eba599edb54632e57275cfa0726ccb45d959089d5b633e7a18487e410c9e
languageName: node
linkType: hard
"is-core-module@npm:^2.2.0": "is-core-module@npm:^2.2.0":
version: 2.2.0 version: 2.2.0
resolution: "is-core-module@npm:2.2.0" resolution: "is-core-module@npm:2.2.0"
@ -15081,6 +15238,13 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"jju@npm:~1.4.0":
version: 1.4.0
resolution: "jju@npm:1.4.0"
checksum: a58023d40e8e262366e95175dec782c7dc6ad94f2ad1fafe91f675ca6177505b4a8e679cec49c800acb8ceab9391856c7c03e871b30ef0590115d081fad814b9
languageName: node
linkType: hard
"joycon@npm:^3.0.1": "joycon@npm:^3.0.1":
version: 3.0.1 version: 3.0.1
resolution: "joycon@npm:3.0.1" resolution: "joycon@npm:3.0.1"
@ -15121,6 +15285,18 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"js-yaml@npm:~3.13.1":
version: 3.13.1
resolution: "js-yaml@npm:3.13.1"
dependencies:
argparse: ^1.0.7
esprima: ^4.0.0
bin:
js-yaml: bin/js-yaml.js
checksum: 277157fdf235757b71cfbf24f6bef57576a26d9b4cf89b63d89c9044da7b0f9d16c3629c8b5fd549ae343523727a0df1598794e9a4429763cee4e17056ff8523
languageName: node
linkType: hard
"jsbn@npm:~0.1.0": "jsbn@npm:~0.1.0":
version: 0.1.1 version: 0.1.1
resolution: "jsbn@npm:0.1.1" resolution: "jsbn@npm:0.1.1"
@ -15795,6 +15971,20 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"lodash.get@npm:^4.0.0":
version: 4.4.2
resolution: "lodash.get@npm:4.4.2"
checksum: 447e575e3caa5131ef44e5a0c135b1614f3c937d86b3be0568f9da7b0fd015010af3b6b4e41edf6e2698c9ce2dcc061ca71b31f274f799c991dceb018be16e4f
languageName: node
linkType: hard
"lodash.isequal@npm:^4.0.0":
version: 4.5.0
resolution: "lodash.isequal@npm:4.5.0"
checksum: 5b47e094641c18a915497343894c66f7da6aebb9aaa2a3fcc5643455aaf29d19df60ebbed664c8374fb959c8b4ce96810ee6becd8a71ac58c6c2ca8d29762947
languageName: node
linkType: hard
"lodash.ismatch@npm:^4.4.0": "lodash.ismatch@npm:^4.4.0":
version: 4.4.0 version: 4.4.0
resolution: "lodash.ismatch@npm:4.4.0" resolution: "lodash.ismatch@npm:4.4.0"
@ -15870,7 +16060,7 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"lodash@npm:>=3.5 <5, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.17.5, lodash@npm:^4.2.1, lodash@npm:^4.7.0": "lodash@npm:>=3.5 <5, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.17.5, lodash@npm:^4.2.1, lodash@npm:^4.7.0, lodash@npm:~4.17.15":
version: 4.17.21 version: 4.17.21
resolution: "lodash@npm:4.17.21" resolution: "lodash@npm:4.17.21"
checksum: 4983720b9abca930a4a46f18db163d7dad8dd00dbed6db0cc7b499b33b717cce69f80928b27bbb1ff2cbd3b19d251ee90669a8b5ea466072ca81c2ebe91e7468 checksum: 4983720b9abca930a4a46f18db163d7dad8dd00dbed6db0cc7b499b33b717cce69f80928b27bbb1ff2cbd3b19d251ee90669a8b5ea466072ca81c2ebe91e7468
@ -20706,6 +20896,25 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"resolve@npm:~1.17.0":
version: 1.17.0
resolution: "resolve@npm:1.17.0"
dependencies:
path-parse: ^1.0.6
checksum: 5e3cdb8cf68c20b0c5edeb6505e7fab20c6776af0cae4b978836e557420aef7bb50acd25339bbb143b7f80533aa1988c7e827a0061aee9c237926a7d2c41f8d0
languageName: node
linkType: hard
"resolve@npm:~1.19.0":
version: 1.19.0
resolution: "resolve@npm:1.19.0"
dependencies:
is-core-module: ^2.1.0
path-parse: ^1.0.6
checksum: 8b23c7fde1224898ffb9fec2a2295a44d1564981343bdbf5fd3769465658f6a6f6647bb7ea66dfb3c1291ca86046b0233be2edfcd8ca05b38886521e8869677c
languageName: node
linkType: hard
"restore-cursor@npm:^2.0.0": "restore-cursor@npm:^2.0.0":
version: 2.0.0 version: 2.0.0
resolution: "restore-cursor@npm:2.0.0" resolution: "restore-cursor@npm:2.0.0"
@ -21155,7 +21364,7 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5": "semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:~7.3.0":
version: 7.3.5 version: 7.3.5
resolution: "semver@npm:7.3.5" resolution: "semver@npm:7.3.5"
dependencies: dependencies:
@ -22002,7 +22211,7 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"string-argv@npm:0.3.1": "string-argv@npm:0.3.1, string-argv@npm:~0.3.1":
version: 0.3.1 version: 0.3.1
resolution: "string-argv@npm:0.3.1" resolution: "string-argv@npm:0.3.1"
checksum: 002a6902698eff6bd463ddd2b03864bf9be08a1359879243d94d3906ebbe984ff355d73224064be7504d20262eadb06897b3d40b5d7cefccacc69c9dc45c8d0e checksum: 002a6902698eff6bd463ddd2b03864bf9be08a1359879243d94d3906ebbe984ff355d73224064be7504d20262eadb06897b3d40b5d7cefccacc69c9dc45c8d0e
@ -22255,7 +22464,7 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": "strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1":
version: 3.1.1 version: 3.1.1
resolution: "strip-json-comments@npm:3.1.1" resolution: "strip-json-comments@npm:3.1.1"
checksum: f16719ce25abc58a55ef82b1c27f541dcfa5d544f17158f62d10be21ff9bd22fde45a53c592b29d80ad3c97ccb67b7451c4833913fdaeadb508a40f5e0a9c206 checksum: f16719ce25abc58a55ef82b1c27f541dcfa5d544f17158f62d10be21ff9bd22fde45a53c592b29d80ad3c97ccb67b7451c4833913fdaeadb508a40f5e0a9c206
@ -22655,6 +22864,8 @@ fsevents@^1.2.7:
"@babel/preset-env": ^7.15.0 "@babel/preset-env": ^7.15.0
"@babel/preset-react": ^7.14.5 "@babel/preset-react": ^7.14.5
"@babel/preset-typescript": ^7.15.0 "@babel/preset-typescript": ^7.15.0
"@microsoft/api-documenter": ^7.13.54
"@microsoft/api-extractor": ^7.18.11
"@typescript-eslint/eslint-plugin": ^4.30.0 "@typescript-eslint/eslint-plugin": ^4.30.0
"@typescript-eslint/parser": ^4.30.0 "@typescript-eslint/parser": ^4.30.0
esbuild: ^0.12.24 esbuild: ^0.12.24
@ -22663,6 +22874,7 @@ fsevents@^1.2.7:
eslint-plugin-jsx-a11y: ^6.4.1 eslint-plugin-jsx-a11y: ^6.4.1
eslint-plugin-react: ^7.25.1 eslint-plugin-react: ^7.25.1
eslint-plugin-react-hooks: ^4.2.0 eslint-plugin-react-hooks: ^4.2.0
eslint-plugin-tsdoc: ^0.2.14
eslint-plugin-unused-imports: ^1.1.4 eslint-plugin-unused-imports: ^1.1.4
husky: ^6.0.0 husky: ^6.0.0
jest: ^27.1.0 jest: ^27.1.0
@ -22682,6 +22894,7 @@ fsevents@^1.2.7:
"@babel/cli": ^7.14.3 "@babel/cli": ^7.14.3
"@babel/core": ^7.14.3 "@babel/core": ^7.14.3
"@babel/runtime": ^7.14.0 "@babel/runtime": ^7.14.0
"@microsoft/api-extractor": ^7.18.11
"@rollup/plugin-alias": ^3.1.5 "@rollup/plugin-alias": ^3.1.5
"@rollup/plugin-multi-entry": ^4.1.0 "@rollup/plugin-multi-entry": ^4.1.0
"@rollup/plugin-replace": ^2.4.2 "@rollup/plugin-replace": ^2.4.2
@ -22887,7 +23100,7 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"timsort@npm:^0.3.0": "timsort@npm:^0.3.0, timsort@npm:~0.3.0":
version: 0.3.0 version: 0.3.0
resolution: "timsort@npm:0.3.0" resolution: "timsort@npm:0.3.0"
checksum: d8300c3ecf1a3751413de82b04ad283b461ab6fb1041820c825d13b4ae74526e2101ab5fb84c57a0c6e1f4d7f67173b5d8754ed8bb7447c6a9ce1db8562eb82c checksum: d8300c3ecf1a3751413de82b04ad283b461ab6fb1041820c825d13b4ae74526e2101ab5fb84c57a0c6e1f4d7f67173b5d8754ed8bb7447c6a9ce1db8562eb82c
@ -23368,6 +23581,16 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"typescript@npm:~4.4.2":
version: 4.4.3
resolution: "typescript@npm:4.4.3"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 0da3a2a96506240557512ee49ff37a882c49c8c803444b90b98984e50d5d2e526885d57cd0f75225525413630b0e070e0e9ab4538485852fa1c158a6e7925cbb
languageName: node
linkType: hard
"uglify-js@npm:^3.1.4": "uglify-js@npm:^3.1.4":
version: 3.13.3 version: 3.13.3
resolution: "uglify-js@npm:3.13.3" resolution: "uglify-js@npm:3.13.3"
@ -23789,6 +24012,13 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"validator@npm:^8.0.0":
version: 8.2.0
resolution: "validator@npm:8.2.0"
checksum: a5be1d5728164f69b615986152e3fa7723e877abf5630f6c7153cfadfbd1bd971ddc2998063896b81a25efc067df14a420d074916a4010a6d3ad5b00a191bf99
languageName: node
linkType: hard
"vary@npm:~1.1.2": "vary@npm:~1.1.2":
version: 1.1.2 version: 1.1.2
resolution: "vary@npm:1.1.2" resolution: "vary@npm:1.1.2"
@ -24738,6 +24968,23 @@ fsevents@^1.2.7:
languageName: node languageName: node
linkType: hard linkType: hard
"z-schema@npm:~3.18.3":
version: 3.18.4
resolution: "z-schema@npm:3.18.4"
dependencies:
commander: ^2.7.1
lodash.get: ^4.0.0
lodash.isequal: ^4.0.0
validator: ^8.0.0
dependenciesMeta:
commander:
optional: true
bin:
z-schema: ./bin/z-schema
checksum: c19563899a8c1077c5350e9bb5c013729cb8b2168394a7c8d91091f1c6c269f7616a08c1218045a05322338ae29035d8ff2d674690425ef4c08388ba3d3ed875
languageName: node
linkType: hard
"zstddec@npm:^0.0.2": "zstddec@npm:^0.0.2":
version: 0.0.2 version: 0.0.2
resolution: "zstddec@npm:0.0.2" resolution: "zstddec@npm:0.0.2"