+ ): ViewModelTriggerProperty | undefined;
+
+ enumProperty>(
+ path: P
+ ):
+ | TypedViewModelEnumProperty>
+ | undefined;
+
+ imageProperty(
+ path: VMPropsOfKind
+ ): ViewModelImageProperty | undefined;
+
+ listProperty(
+ path: VMPropsOfKind
+ ): TypedViewModelListProperty | undefined;
+
+ /** Access a nested ViewModel instance; return type is typed to the referenced ViewModel. */
+ viewModel>(
+ path: P
+ ):
+ | TypedViewModelInstance<
+ T,
+ VMRefName & keyof T['viewModels'] & string
+ >
+ | undefined;
+
+ viewModelAsync>(
+ path: P
+ ): Promise<
+ | TypedViewModelInstance<
+ T,
+ VMRefName & keyof T['viewModels'] & string
+ >
+ | undefined
+ >;
+
+ /** Brand that prevents typed instances from matching untyped hook overloads. */
+ readonly __vmBrand: [T, VMName];
+}
+
+/**
+ * A plain ViewModelInstance with no schema type information.
+ * Used in the untyped hook overloads — typed instances are intentionally
+ * excluded so TypeScript picks the typed overload when a schema is known.
+ */
+export type UntypedViewModelInstance = ViewModelInstance & {
+ __vmBrand?: never;
+};
+
+/**
+ * Convenience alias: infer the ViewModel instance type directly from a RiveAsset import.
+ *
+ * @example
+ * import rewardsRiv from './rewards.riv';
+ * type RewardsInstance = TypedViewModelOf;
+ */
+export type TypedViewModelOf<
+ T extends RiveFileSchema | RiveAsset,
+ VMName extends Extract['viewModels'], string>,
+> = TypedViewModelInstance, VMName>;
diff --git a/src/hooks/useRiveBoolean.ts b/src/hooks/useRiveBoolean.ts
index 657d9ad6..f6449aa0 100644
--- a/src/hooks/useRiveBoolean.ts
+++ b/src/hooks/useRiveBoolean.ts
@@ -4,6 +4,12 @@ import {
} from '../specs/ViewModel.nitro';
import type { UseRivePropertyResult } from '../types';
import { useRiveProperty } from './useRiveProperty';
+import type {
+ PathsOfKind,
+ TypedViewModelInstance,
+ UntypedViewModelInstance,
+} from '../core/TypedViewModelInstance';
+import type { RiveFileSchema } from '../core/TypedRiveFile';
const getBooleanProperty = (vmi: ViewModelInstance, p: string) =>
vmi.booleanProperty(p);
@@ -15,6 +21,17 @@ const getBooleanProperty = (vmi: ViewModelInstance, p: string) =>
* @param viewModelInstance - The ViewModelInstance containing the boolean property to operate on
* @returns An object with the boolean value, a setter function, and an error if the property is not found
*/
+export function useRiveBoolean<
+ T extends RiveFileSchema,
+ N extends Extract,
+>(
+ path: PathsOfKind,
+ viewModelInstance?: TypedViewModelInstance | null
+): UseRivePropertyResult;
+export function useRiveBoolean(
+ path: string,
+ viewModelInstance?: UntypedViewModelInstance | null
+): UseRivePropertyResult;
export function useRiveBoolean(
path: string,
viewModelInstance?: ViewModelInstance | null
diff --git a/src/hooks/useRiveColor.ts b/src/hooks/useRiveColor.ts
index bd6ce38e..f16ccfd8 100644
--- a/src/hooks/useRiveColor.ts
+++ b/src/hooks/useRiveColor.ts
@@ -5,6 +5,12 @@ import type {
} from '../specs/ViewModel.nitro';
import { useRiveProperty } from './useRiveProperty';
import { RiveColor } from '../core/RiveColor';
+import type {
+ PathsOfKind,
+ TypedViewModelInstance,
+ UntypedViewModelInstance,
+} from '../core/TypedViewModelInstance';
+import type { RiveFileSchema } from '../core/TypedRiveFile';
const getColorProperty = (vmi: ViewModelInstance, p: string) =>
vmi.colorProperty(p);
@@ -22,6 +28,17 @@ export interface UseRiveColorResult {
* @param viewModelInstance - The ViewModelInstance containing the color property to operate on
* @returns An object with the color value as RGBA, a setter function that accepts either RGBA or hex string, and an error if the property is not found
*/
+export function useRiveColor<
+ T extends RiveFileSchema,
+ N extends Extract,
+>(
+ path: PathsOfKind,
+ viewModelInstance?: TypedViewModelInstance | null
+): UseRiveColorResult;
+export function useRiveColor(
+ path: string,
+ viewModelInstance?: UntypedViewModelInstance | null
+): UseRiveColorResult;
export function useRiveColor(
path: string,
viewModelInstance?: ViewModelInstance | null
diff --git a/src/hooks/useRiveEnum.ts b/src/hooks/useRiveEnum.ts
index ee5d67ba..11ba2b3a 100644
--- a/src/hooks/useRiveEnum.ts
+++ b/src/hooks/useRiveEnum.ts
@@ -3,18 +3,32 @@ import {
type ViewModelInstance,
} from '../specs/ViewModel.nitro';
import type { UseRivePropertyResult } from '../types';
+import type { RiveFileSchema } from '../core/TypedRiveFile';
+import {
+ type EnumValuesOf,
+ type TypedViewModelInstance,
+ type UntypedViewModelInstance,
+ type VMPropsOfKind,
+} from '../core/TypedViewModelInstance';
import { useRiveProperty } from './useRiveProperty';
const getEnumProperty = (vmi: ViewModelInstance, p: string) =>
vmi.enumProperty(p);
-/**
- * Hook for interacting with enum ViewModel instance properties.
- *
- * @param path - The path to the enum property
- * @param viewModelInstance - The ViewModelInstance containing the enum property to operate on
- * @returns An object with the enum value, a setter function, and an error if the property is not found
- */
+export function useRiveEnum<
+ T extends RiveFileSchema,
+ N extends Extract,
+ P extends VMPropsOfKind,
+>(
+ path: P,
+ viewModelInstance?: TypedViewModelInstance | null
+): UseRivePropertyResult>;
+
+export function useRiveEnum(
+ path: string,
+ viewModelInstance?: UntypedViewModelInstance | null
+): UseRivePropertyResult;
+
export function useRiveEnum(
path: string,
viewModelInstance?: ViewModelInstance | null
diff --git a/src/hooks/useRiveFile.ts b/src/hooks/useRiveFile.ts
index b9d5d83e..ea7cc651 100644
--- a/src/hooks/useRiveFile.ts
+++ b/src/hooks/useRiveFile.ts
@@ -12,6 +12,11 @@ import type {
ReferencedAssets,
ResolvedReferencedAssets,
} from '../core/ReferencedAssets';
+import type {
+ RiveAsset,
+ RiveFileSchema,
+ TypedRiveFile,
+} from '../core/TypedRiveFile';
export type { ReferencedAssets, ResolvedReferencedAssets };
export type RiveFileInput = number | { uri: string } | string | ArrayBuffer;
@@ -92,6 +97,17 @@ export type UseRiveFileResult =
| { riveFile: null; isLoading: false; error: Error }
| { riveFile: undefined; isLoading: true; error: null };
+export function useRiveFile(
+ input: RiveAsset,
+ options?: UseRiveFileOptions
+):
+ | { riveFile: TypedRiveFile; isLoading: false; error: null }
+ | { riveFile: null; isLoading: false; error: Error }
+ | { riveFile: undefined; isLoading: true; error: null };
+export function useRiveFile(
+ input: RiveFileInput | undefined,
+ options?: UseRiveFileOptions
+): UseRiveFileResult;
export function useRiveFile(
input: RiveFileInput | undefined,
options: UseRiveFileOptions = {}
diff --git a/src/hooks/useRiveNumber.ts b/src/hooks/useRiveNumber.ts
index 773d30e2..4cda0bb0 100644
--- a/src/hooks/useRiveNumber.ts
+++ b/src/hooks/useRiveNumber.ts
@@ -4,6 +4,12 @@ import {
} from '../specs/ViewModel.nitro';
import type { UseRivePropertyResult } from '../types';
import { useRiveProperty } from './useRiveProperty';
+import type {
+ PathsOfKind,
+ TypedViewModelInstance,
+ UntypedViewModelInstance,
+} from '../core/TypedViewModelInstance';
+import type { RiveFileSchema } from '../core/TypedRiveFile';
const getNumberProperty = (vmi: ViewModelInstance, p: string) =>
vmi.numberProperty(p);
@@ -15,6 +21,17 @@ const getNumberProperty = (vmi: ViewModelInstance, p: string) =>
* @param viewModelInstance - The ViewModelInstance containing the number property to operate on
* @returns An object with the number value, a setter function, and an error if the property is not found
*/
+export function useRiveNumber<
+ T extends RiveFileSchema,
+ N extends Extract,
+>(
+ path: PathsOfKind,
+ viewModelInstance?: TypedViewModelInstance | null
+): UseRivePropertyResult;
+export function useRiveNumber(
+ path: string,
+ viewModelInstance?: UntypedViewModelInstance | null
+): UseRivePropertyResult;
export function useRiveNumber(
path: string,
viewModelInstance?: ViewModelInstance | null
diff --git a/src/hooks/useRiveString.ts b/src/hooks/useRiveString.ts
index e182ddff..c5210e2a 100644
--- a/src/hooks/useRiveString.ts
+++ b/src/hooks/useRiveString.ts
@@ -4,6 +4,12 @@ import {
} from '../specs/ViewModel.nitro';
import type { UseRivePropertyResult } from '../types';
import { useRiveProperty } from './useRiveProperty';
+import type {
+ PathsOfKind,
+ TypedViewModelInstance,
+ UntypedViewModelInstance,
+} from '../core/TypedViewModelInstance';
+import type { RiveFileSchema } from '../core/TypedRiveFile';
const getStringProperty = (vmi: ViewModelInstance, p: string) =>
vmi.stringProperty(p);
@@ -15,6 +21,17 @@ const getStringProperty = (vmi: ViewModelInstance, p: string) =>
* @param viewModelInstance - The ViewModelInstance containing the string property to operate on
* @returns An object with the number value, a setter function, and an error if the property is not found
*/
+export function useRiveString<
+ T extends RiveFileSchema,
+ N extends Extract,
+>(
+ path: PathsOfKind,
+ viewModelInstance?: TypedViewModelInstance | null
+): UseRivePropertyResult;
+export function useRiveString(
+ path: string,
+ viewModelInstance?: UntypedViewModelInstance | null
+): UseRivePropertyResult;
export function useRiveString(
path: string,
viewModelInstance?: ViewModelInstance | null
diff --git a/src/hooks/useRiveTrigger.ts b/src/hooks/useRiveTrigger.ts
index 8f8315c9..9ca2c22d 100644
--- a/src/hooks/useRiveTrigger.ts
+++ b/src/hooks/useRiveTrigger.ts
@@ -8,6 +8,12 @@ import type {
UseViewModelInstanceTriggerParameters,
} from '../types';
import { useDisposableMemo } from './useDisposableMemo';
+import type {
+ PathsOfKind,
+ TypedViewModelInstance,
+ UntypedViewModelInstance,
+} from '../core/TypedViewModelInstance';
+import type { RiveFileSchema } from '../core/TypedRiveFile';
/**
* Hook for interacting with trigger ViewModel instance properties.
@@ -21,6 +27,19 @@ import { useDisposableMemo } from './useDisposableMemo';
* @param params - Optional parameters including onTrigger callback
* @returns A trigger function and any error
*/
+export function useRiveTrigger<
+ T extends RiveFileSchema,
+ N extends Extract,
+>(
+ path: PathsOfKind,
+ viewModelInstance?: TypedViewModelInstance | null,
+ params?: UseViewModelInstanceTriggerParameters
+): UseRiveTriggerResult;
+export function useRiveTrigger(
+ path: string,
+ viewModelInstance?: UntypedViewModelInstance | null,
+ params?: UseViewModelInstanceTriggerParameters
+): UseRiveTriggerResult;
export function useRiveTrigger(
path: string,
viewModelInstance?: ViewModelInstance | null,
diff --git a/src/hooks/useViewModelInstance.ts b/src/hooks/useViewModelInstance.ts
index f5acea77..007c870a 100644
--- a/src/hooks/useViewModelInstance.ts
+++ b/src/hooks/useViewModelInstance.ts
@@ -3,6 +3,8 @@
import { useMemo, useRef } from 'react';
import type { ViewModel, ViewModelInstance } from '../specs/ViewModel.nitro';
import type { RiveFile } from '../specs/RiveFile.nitro';
+import type { RiveFileSchema } from '../core/TypedRiveFile';
+import type { TypedViewModelInstance } from '../core/TypedViewModelInstance';
import type { RiveViewRef } from '../index';
import { callDispose } from '../core/callDispose';
import { ArtboardByName } from '../specs/ArtboardBy';
@@ -263,6 +265,19 @@ export type UseViewModelInstanceResult =
* if (error) console.error(error.message);
* ```
*/
+// Typed overload: TypedRiveFile + literal viewModelName → TypedViewModelInstance
+export function useViewModelInstance<
+ T extends RiveFileSchema,
+ N extends Extract,
+>(
+ source: (RiveFile & { readonly __schema?: T }) | null | undefined,
+ params: UseViewModelInstanceFileParams & { viewModelName: N }
+):
+ | { instance: TypedViewModelInstance; error: null }
+ | { instance: null; error: Error }
+ | { instance: null; error: null }
+ | { instance: undefined; error: null };
+
// RiveFile overloads
export function useViewModelInstance(
source: RiveFile,
diff --git a/src/index.tsx b/src/index.tsx
index 7e29e27a..0000d19c 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -20,6 +20,21 @@ export { RiveView, type RiveViewProps } from './core/RiveView';
export type { RiveViewMethods };
export type RiveViewRef = HybridView;
export type { RiveFile } from './specs/RiveFile.nitro';
+export type {
+ RiveAsset,
+ RiveFileSchema,
+ SchemaOf,
+ TypedRiveFile,
+} from './core/TypedRiveFile';
+export type {
+ TypedViewModelInstance,
+ TypedViewModelOf,
+ UntypedViewModelInstance,
+ TypedViewModelListProperty,
+ TypedViewModelEnumProperty,
+ PathsOfKind,
+ EnumValuesOf,
+} from './core/TypedViewModelInstance';
export type {
ViewModel,
ViewModelInstance,
diff --git a/tsconfig.json b/tsconfig.json
index 278a9b8f..9e098526 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -24,7 +24,8 @@
"skipLibCheck": true,
"strict": true,
"target": "ESNext",
- "verbatimModuleSyntax": true
+ "verbatimModuleSyntax": true,
+ "allowArbitraryExtensions": true
},
- "exclude": ["expo-example", "expo55-example"]
+ "exclude": ["expo-example", "expo55-example", "**/*.test-d.ts", "scripts/__tests__"]
}
diff --git a/yarn.lock b/yarn.lock
index d8986822..f95ed8cc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5459,6 +5459,13 @@ __metadata:
languageName: node
linkType: hard
+"@rive-app/canvas@npm:^2.38.0":
+ version: 2.38.0
+ resolution: "@rive-app/canvas@npm:2.38.0"
+ checksum: a75508c461db26c48d3d3daebd9bd2b1a28fd528062640bd99f767f3b0fc32a518e3bffaadccbab93b3819c7f1225f7d1c65e1534c036798482cf271b5d61161
+ languageName: node
+ linkType: hard
+
"@rive-app/react-native@workspace:.":
version: 0.0.0-use.local
resolution: "@rive-app/react-native@workspace:."
@@ -5470,6 +5477,7 @@ __metadata:
"@react-native/babel-preset": 0.79.2
"@react-native/eslint-config": ^0.78.0
"@release-it/conventional-changelog": ^9.0.2
+ "@rive-app/canvas": ^2.38.0
"@testing-library/react-hooks": ^8.0.1
"@testing-library/react-native": ^13.3.3
"@types/jest": ^29.5.5
@@ -5492,6 +5500,7 @@ __metadata:
react-native-nitro-modules: 0.35.0
react-test-renderer: 19.0.0
release-it: ^17.10.0
+ tsd: ^0.33.0
turbo: ^1.10.7
typescript: ^5.2.2
peerDependencies:
@@ -5828,6 +5837,13 @@ __metadata:
languageName: node
linkType: hard
+"@tsd/typescript@npm:^5.9.2":
+ version: 5.9.3
+ resolution: "@tsd/typescript@npm:5.9.3"
+ checksum: d1209e850cb36715b62305821f87877c11756cb0530d562f2d0c7f34feb34d6524c13d12f79f020c6bf69d8e3f5085deaef6657004937668c38f4986d82fa98f
+ languageName: node
+ linkType: hard
+
"@tybys/wasm-util@npm:^0.10.0":
version: 0.10.2
resolution: "@tybys/wasm-util@npm:0.10.2"
@@ -5911,20 +5927,30 @@ __metadata:
languageName: node
linkType: hard
-"@types/estree@npm:1.0.8":
- version: 1.0.8
- resolution: "@types/estree@npm:1.0.8"
- checksum: bd93e2e415b6f182ec4da1074e1f36c480f1d26add3e696d54fb30c09bc470897e41361c8fd957bf0985024f8fbf1e6e2aff977d79352ef7eb93a5c6dcff6c11
+"@types/eslint@npm:^7.2.13":
+ version: 7.29.0
+ resolution: "@types/eslint@npm:7.29.0"
+ dependencies:
+ "@types/estree": "*"
+ "@types/json-schema": "*"
+ checksum: df13991c554954353ce8f3bb03e19da6cc71916889443d68d178d4f858b561ba4cc4a4f291c6eb9eebb7f864b12b9b9313051b3a8dfea3e513dadf3188a77bdf
languageName: node
linkType: hard
-"@types/estree@npm:^1.0.6":
+"@types/estree@npm:*, @types/estree@npm:^1.0.6":
version: 1.0.9
resolution: "@types/estree@npm:1.0.9"
checksum: 752c0afee3ec82b8e24484bf6a27dfa093bbf3de4ef1c20ed0364fb6ad2c0c7971e7504ed9a7aaff103a47e2d945ce7a17f74951743dd944782a0735f53170de
languageName: node
linkType: hard
+"@types/estree@npm:1.0.8":
+ version: 1.0.8
+ resolution: "@types/estree@npm:1.0.8"
+ checksum: bd93e2e415b6f182ec4da1074e1f36c480f1d26add3e696d54fb30c09bc470897e41361c8fd957bf0985024f8fbf1e6e2aff977d79352ef7eb93a5c6dcff6c11
+ languageName: node
+ linkType: hard
+
"@types/graceful-fs@npm:^4.1.3":
version: 4.1.9
resolution: "@types/graceful-fs@npm:4.1.9"
@@ -5976,7 +6002,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9":
+"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9":
version: 7.0.15
resolution: "@types/json-schema@npm:7.0.15"
checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98
@@ -5990,7 +6016,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/minimist@npm:^1.2.2":
+"@types/minimist@npm:^1.2.0, @types/minimist@npm:^1.2.2":
version: 1.2.5
resolution: "@types/minimist@npm:1.2.5"
checksum: 477047b606005058ab0263c4f58097136268007f320003c348794f74adedc3166ffc47c80ec3e94687787f2ab7f4e72c468223946e79892cf0fd9e25e9970a90
@@ -7707,6 +7733,17 @@ __metadata:
languageName: node
linkType: hard
+"camelcase-keys@npm:^6.2.2":
+ version: 6.2.2
+ resolution: "camelcase-keys@npm:6.2.2"
+ dependencies:
+ camelcase: ^5.3.1
+ map-obj: ^4.0.0
+ quick-lru: ^4.0.1
+ checksum: 43c9af1adf840471e54c68ab3e5fe8a62719a6b7dbf4e2e86886b7b0ff96112c945736342b837bd2529ec9d1c7d1934e5653318478d98e0cf22c475c04658e2a
+ languageName: node
+ linkType: hard
+
"camelcase-keys@npm:^7.0.0":
version: 7.0.2
resolution: "camelcase-keys@npm:7.0.2"
@@ -9429,6 +9466,22 @@ __metadata:
languageName: node
linkType: hard
+"eslint-formatter-pretty@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "eslint-formatter-pretty@npm:4.1.0"
+ dependencies:
+ "@types/eslint": ^7.2.13
+ ansi-escapes: ^4.2.1
+ chalk: ^4.1.0
+ eslint-rule-docs: ^1.1.5
+ log-symbols: ^4.0.0
+ plur: ^4.0.0
+ string-width: ^4.2.0
+ supports-hyperlinks: ^2.0.0
+ checksum: e8e0cd3843513fff32a70b036dd349fdab81d73b5e522f23685181c907a1faf2b2ebcae1688dc71d0fc026184011792f7e39b833d349df18fe2baea00d017901
+ languageName: node
+ linkType: hard
+
"eslint-import-context@npm:^0.1.8":
version: 0.1.9
resolution: "eslint-import-context@npm:0.1.9"
@@ -9705,6 +9758,13 @@ __metadata:
languageName: node
linkType: hard
+"eslint-rule-docs@npm:^1.1.5":
+ version: 1.1.235
+ resolution: "eslint-rule-docs@npm:1.1.235"
+ checksum: b163596f9a05568e287b2c78f51a280092122a2e43c45fa2c200f0bd3f61877af186c641dab97620978bec96d9e2cfb621e51728044d9efe42ddc24f5a594b26
+ languageName: node
+ linkType: hard
+
"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1":
version: 5.1.1
resolution: "eslint-scope@npm:5.1.1"
@@ -11612,6 +11672,13 @@ __metadata:
languageName: node
linkType: hard
+"hosted-git-info@npm:^2.1.4":
+ version: 2.8.9
+ resolution: "hosted-git-info@npm:2.8.9"
+ checksum: c955394bdab888a1e9bb10eb33029e0f7ce5a2ac7b3f158099dc8c486c99e73809dca609f5694b223920ca2174db33d32b12f9a2a47141dc59607c29da5a62dd
+ languageName: node
+ linkType: hard
+
"hosted-git-info@npm:^4.0.1":
version: 4.1.0
resolution: "hosted-git-info@npm:4.1.0"
@@ -11900,6 +11967,13 @@ __metadata:
languageName: node
linkType: hard
+"irregular-plurals@npm:^3.2.0":
+ version: 3.5.0
+ resolution: "irregular-plurals@npm:3.5.0"
+ checksum: 5b663091dc89155df7b2e9d053e8fb11941a0c4be95c4b6549ed3ea020489fdf4f75ea586c915b5b543704252679a5a6e8c6c3587da5ac3fc57b12da90a9aee7
+ languageName: node
+ linkType: hard
+
"is-absolute@npm:^1.0.0":
version: 1.0.0
resolution: "is-absolute@npm:1.0.0"
@@ -12686,7 +12760,7 @@ __metadata:
languageName: node
linkType: hard
-"jest-diff@npm:^29.7.0":
+"jest-diff@npm:^29.0.3, jest-diff@npm:^29.7.0":
version: 29.7.0
resolution: "jest-diff@npm:29.7.0"
dependencies:
@@ -13628,7 +13702,7 @@ __metadata:
languageName: node
linkType: hard
-"log-symbols@npm:^4.1.0":
+"log-symbols@npm:^4.0.0, log-symbols@npm:^4.1.0":
version: 4.1.0
resolution: "log-symbols@npm:4.1.0"
dependencies:
@@ -13743,7 +13817,7 @@ __metadata:
languageName: node
linkType: hard
-"map-obj@npm:^4.1.0":
+"map-obj@npm:^4.0.0, map-obj@npm:^4.1.0":
version: 4.3.0
resolution: "map-obj@npm:4.3.0"
checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e
@@ -13819,6 +13893,26 @@ __metadata:
languageName: node
linkType: hard
+"meow@npm:^9.0.0":
+ version: 9.0.0
+ resolution: "meow@npm:9.0.0"
+ dependencies:
+ "@types/minimist": ^1.2.0
+ camelcase-keys: ^6.2.2
+ decamelize: ^1.2.0
+ decamelize-keys: ^1.1.0
+ hard-rejection: ^2.1.0
+ minimist-options: 4.1.0
+ normalize-package-data: ^3.0.0
+ read-pkg-up: ^7.0.1
+ redent: ^3.0.0
+ trim-newlines: ^3.0.0
+ type-fest: ^0.18.0
+ yargs-parser: ^20.2.3
+ checksum: 99799c47247f4daeee178e3124f6ef6f84bde2ba3f37652865d5d8f8b8adcf9eedfc551dd043e2455cd8206545fd848e269c0c5ab6b594680a0ad4d3617c9639
+ languageName: node
+ linkType: hard
+
"merge-options@npm:^3.0.4":
version: 3.0.4
resolution: "merge-options@npm:3.0.4"
@@ -15141,7 +15235,19 @@ __metadata:
languageName: node
linkType: hard
-"normalize-package-data@npm:^3.0.2":
+"normalize-package-data@npm:^2.5.0":
+ version: 2.5.0
+ resolution: "normalize-package-data@npm:2.5.0"
+ dependencies:
+ hosted-git-info: ^2.1.4
+ resolve: ^1.10.0
+ semver: 2 || 3 || 4 || 5
+ validate-npm-package-license: ^3.0.1
+ checksum: 7999112efc35a6259bc22db460540cae06564aa65d0271e3bdfa86876d08b0e578b7b5b0028ee61b23f1cae9fc0e7847e4edc0948d3068a39a2a82853efc8499
+ languageName: node
+ linkType: hard
+
+"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.2":
version: 3.0.3
resolution: "normalize-package-data@npm:3.0.3"
dependencies:
@@ -15681,7 +15787,7 @@ __metadata:
languageName: node
linkType: hard
-"parse-json@npm:^5.2.0":
+"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0":
version: 5.2.0
resolution: "parse-json@npm:5.2.0"
dependencies:
@@ -15880,6 +15986,15 @@ __metadata:
languageName: node
linkType: hard
+"plur@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "plur@npm:4.0.0"
+ dependencies:
+ irregular-plurals: ^3.2.0
+ checksum: fea2e903efca67cc5c7a8952fca3db46ae8d9e9353373b406714977e601a5d3b628bcb043c3ad2126c6ff0e73d8020bf43af30a72dd087eff1ec240eb13b90e1
+ languageName: node
+ linkType: hard
+
"pngjs@npm:^3.3.0":
version: 3.4.0
resolution: "pngjs@npm:3.4.0"
@@ -16173,6 +16288,13 @@ __metadata:
languageName: node
linkType: hard
+"quick-lru@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "quick-lru@npm:4.0.1"
+ checksum: bea46e1abfaa07023e047d3cf1716a06172c4947886c053ede5c50321893711577cb6119360f810cc3ffcd70c4d7db4069c3cee876b358ceff8596e062bd1154
+ languageName: node
+ linkType: hard
+
"quick-lru@npm:^5.1.1":
version: 5.1.1
resolution: "quick-lru@npm:5.1.1"
@@ -16869,6 +16991,17 @@ __metadata:
languageName: node
linkType: hard
+"read-pkg-up@npm:^7.0.0, read-pkg-up@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "read-pkg-up@npm:7.0.1"
+ dependencies:
+ find-up: ^4.1.0
+ read-pkg: ^5.2.0
+ type-fest: ^0.8.1
+ checksum: e4e93ce70e5905b490ca8f883eb9e48b5d3cebc6cd4527c25a0d8f3ae2903bd4121c5ab9c5a3e217ada0141098eeb661313c86fa008524b089b8ed0b7f165e44
+ languageName: node
+ linkType: hard
+
"read-pkg-up@npm:^8.0.0":
version: 8.0.0
resolution: "read-pkg-up@npm:8.0.0"
@@ -16880,6 +17013,18 @@ __metadata:
languageName: node
linkType: hard
+"read-pkg@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "read-pkg@npm:5.2.0"
+ dependencies:
+ "@types/normalize-package-data": ^2.4.0
+ normalize-package-data: ^2.5.0
+ parse-json: ^5.0.0
+ type-fest: ^0.6.0
+ checksum: eb696e60528b29aebe10e499ba93f44991908c57d70f2d26f369e46b8b9afc208ef11b4ba64f67630f31df8b6872129e0a8933c8c53b7b4daf0eace536901222
+ languageName: node
+ linkType: hard
+
"read-pkg@npm:^6.0.0":
version: 6.0.0
resolution: "read-pkg@npm:6.0.0"
@@ -17165,7 +17310,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:^1.1.6, resolve@npm:^1.20.0, resolve@npm:^1.22.11, resolve@npm:^1.22.2":
+"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.11, resolve@npm:^1.22.2":
version: 1.22.12
resolution: "resolve@npm:1.22.12"
dependencies:
@@ -17204,7 +17349,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.11#~builtin, resolve@patch:resolve@^1.22.2#~builtin":
+"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.11#~builtin, resolve@patch:resolve@^1.22.2#~builtin":
version: 1.22.12
resolution: "resolve@patch:resolve@npm%3A1.22.12#~builtin::version=1.22.12&hash=c3c19d"
dependencies:
@@ -17496,6 +17641,15 @@ __metadata:
languageName: node
linkType: hard
+"semver@npm:2 || 3 || 4 || 5":
+ version: 5.7.2
+ resolution: "semver@npm:5.7.2"
+ bin:
+ semver: bin/semver
+ checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686
+ languageName: node
+ linkType: hard
+
"semver@npm:7.6.3, semver@npm:~7.6.3":
version: 7.6.3
resolution: "semver@npm:7.6.3"
@@ -18517,6 +18671,13 @@ __metadata:
languageName: node
linkType: hard
+"trim-newlines@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "trim-newlines@npm:3.0.1"
+ checksum: b530f3fadf78e570cf3c761fb74fef655beff6b0f84b29209bac6c9622db75ad1417f4a7b5d54c96605dcd72734ad44526fef9f396807b90839449eb543c6206
+ languageName: node
+ linkType: hard
+
"trim-newlines@npm:^4.0.2":
version: 4.1.1
resolution: "trim-newlines@npm:4.1.1"
@@ -18571,6 +18732,23 @@ __metadata:
languageName: node
linkType: hard
+"tsd@npm:^0.33.0":
+ version: 0.33.0
+ resolution: "tsd@npm:0.33.0"
+ dependencies:
+ "@tsd/typescript": ^5.9.2
+ eslint-formatter-pretty: ^4.1.0
+ globby: ^11.0.1
+ jest-diff: ^29.0.3
+ meow: ^9.0.0
+ path-exists: ^4.0.0
+ read-pkg-up: ^7.0.0
+ bin:
+ tsd: dist/cli.js
+ checksum: 2916bcfd9d46bbeaab09e28ca714d4792c64fe12eda1a31e3d0786546fe93a1d2aeba0af2a68be4f9b211d3466ecf4f0187e4dbe45fe9f3eb29c4690c98e3379
+ languageName: node
+ linkType: hard
+
"tslib@npm:^1.8.1":
version: 1.14.1
resolution: "tslib@npm:1.14.1"
@@ -18683,6 +18861,13 @@ __metadata:
languageName: node
linkType: hard
+"type-fest@npm:^0.18.0":
+ version: 0.18.1
+ resolution: "type-fest@npm:0.18.1"
+ checksum: e96dcee18abe50ec82dab6cbc4751b3a82046da54c52e3b2d035b3c519732c0b3dd7a2fa9df24efd1a38d953d8d4813c50985f215f1957ee5e4f26b0fe0da395
+ languageName: node
+ linkType: hard
+
"type-fest@npm:^0.21.3":
version: 0.21.3
resolution: "type-fest@npm:0.21.3"
@@ -18690,6 +18875,13 @@ __metadata:
languageName: node
linkType: hard
+"type-fest@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "type-fest@npm:0.6.0"
+ checksum: b2188e6e4b21557f6e92960ec496d28a51d68658018cba8b597bd3ef757721d1db309f120ae987abeeda874511d14b776157ff809f23c6d1ce8f83b9b2b7d60f
+ languageName: node
+ linkType: hard
+
"type-fest@npm:^0.7.1":
version: 0.7.1
resolution: "type-fest@npm:0.7.1"
@@ -18697,6 +18889,13 @@ __metadata:
languageName: node
linkType: hard
+"type-fest@npm:^0.8.1":
+ version: 0.8.1
+ resolution: "type-fest@npm:0.8.1"
+ checksum: d61c4b2eba24009033ae4500d7d818a94fd6d1b481a8111612ee141400d5f1db46f199c014766b9fa9b31a6a7374d96fc748c6d688a78a3ce5a33123839becb7
+ languageName: node
+ linkType: hard
+
"type-fest@npm:^1.0.1, type-fest@npm:^1.2.1, type-fest@npm:^1.2.2":
version: 1.4.0
resolution: "type-fest@npm:1.4.0"
@@ -19640,7 +19839,7 @@ __metadata:
languageName: node
linkType: hard
-"yargs-parser@npm:^20.2.9":
+"yargs-parser@npm:^20.2.3, yargs-parser@npm:^20.2.9":
version: 20.2.9
resolution: "yargs-parser@npm:20.2.9"
checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3