@isentinel/jest-roblox 0.3.1 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { ReportOptions } from "istanbul-reports";
2
2
 
3
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/is-any.d.ts
3
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/is-any.d.ts
4
4
  /**
5
5
  Returns a boolean for whether the given type is `any`.
6
6
 
@@ -31,7 +31,7 @@ const anyA = get(anyObject, 'a');
31
31
  */
32
32
  type IsAny<T> = 0 extends 1 & NoInfer<T> ? true : false;
33
33
  //#endregion
34
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/is-optional-key-of.d.ts
34
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/is-optional-key-of.d.ts
35
35
  /**
36
36
  Returns a boolean for whether the given key is an optional key of type.
37
37
 
@@ -74,7 +74,7 @@ type T5 = IsOptionalKeyOf<User | Admin, 'surname'>;
74
74
  */
75
75
  type IsOptionalKeyOf<Type extends object, Key extends keyof Type> = IsAny<Type | Key> extends true ? never : Key extends keyof Type ? Type extends Record<Key, Type[Key]> ? false : true : false;
76
76
  //#endregion
77
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/optional-keys-of.d.ts
77
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/optional-keys-of.d.ts
78
78
  /**
79
79
  Extract all optional keys from the given type.
80
80
 
@@ -112,7 +112,7 @@ type OptionalKeysOf<Type extends object> = Type extends unknown // For distribut
112
112
  ? (keyof { [Key in keyof Type as IsOptionalKeyOf<Type, Key> extends false ? never : Key]: never }) & keyof Type // Intersect with `keyof Type` to ensure result of `OptionalKeysOf<Type>` is always assignable to `keyof Type`
113
113
  : never;
114
114
  //#endregion
115
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/required-keys-of.d.ts
115
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/required-keys-of.d.ts
116
116
  /**
117
117
  Extract all required keys from the given type.
118
118
 
@@ -146,7 +146,7 @@ const validator3 = createValidation<User>('luckyNumber', value => value > 0);
146
146
  type RequiredKeysOf<Type extends object> = Type extends unknown // For distributing `Type`
147
147
  ? Exclude<keyof Type, OptionalKeysOf<Type>> : never;
148
148
  //#endregion
149
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/is-never.d.ts
149
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/is-never.d.ts
150
150
  /**
151
151
  Returns a boolean for whether the given type is `never`.
152
152
 
@@ -202,7 +202,7 @@ type B = IsTrueFixed<never>;
202
202
  */
203
203
  type IsNever<T> = [T] extends [never] ? true : false;
204
204
  //#endregion
205
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/if.d.ts
205
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/if.d.ts
206
206
  /**
207
207
  An if-else-like type that resolves depending on whether the given `boolean` type is `true` or `false`.
208
208
 
@@ -297,7 +297,7 @@ type Works = IncludesWithoutIf<HundredZeroes, '1'>;
297
297
  */
298
298
  type If<Type extends boolean, IfBranch, ElseBranch> = IsNever<Type> extends true ? ElseBranch : Type extends true ? IfBranch : ElseBranch;
299
299
  //#endregion
300
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/simplify.d.ts
300
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/simplify.d.ts
301
301
  /**
302
302
  Useful to flatten the type output to improve type hints shown in editors. And also to transform an interface into a type to aide with assignability.
303
303
 
@@ -358,7 +358,7 @@ fn(someInterface as Simplify<SomeInterface>); // Good: transform an `interface`
358
358
  */
359
359
  type Simplify<T> = { [KeyType in keyof T]: T[KeyType] } & {};
360
360
  //#endregion
361
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/is-equal.d.ts
361
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/is-equal.d.ts
362
362
  /**
363
363
  Returns a boolean for whether the two given types are equal.
364
364
 
@@ -389,7 +389,7 @@ type IsEqual<A, B> = [A] extends [B] ? [B] extends [A] ? _IsEqual<A, B> : false
389
389
  // This version fails the `equalWrappedTupleIntersectionToBeNeverAndNeverExpanded` test in `test-d/is-equal.ts`.
390
390
  type _IsEqual<A, B> = (<G>() => G extends A & G | G ? 1 : 2) extends (<G>() => G extends B & G | G ? 1 : 2) ? true : false;
391
391
  //#endregion
392
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/omit-index-signature.d.ts
392
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/omit-index-signature.d.ts
393
393
  /**
394
394
  Omit any index signatures from the given object type, leaving only explicitly defined properties.
395
395
 
@@ -483,7 +483,7 @@ type ExampleWithoutIndexSignatures = OmitIndexSignature<Example>;
483
483
  */
484
484
  type OmitIndexSignature<ObjectType> = { [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType] };
485
485
  //#endregion
486
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/pick-index-signature.d.ts
486
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/pick-index-signature.d.ts
487
487
  /**
488
488
  Pick only index signatures from the given object type, leaving out all explicitly defined properties.
489
489
 
@@ -531,7 +531,7 @@ type ExampleIndexSignature = PickIndexSignature<Example>;
531
531
  */
532
532
  type PickIndexSignature<ObjectType> = { [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? KeyType : never]: ObjectType[KeyType] };
533
533
  //#endregion
534
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/merge.d.ts
534
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/merge.d.ts
535
535
  // Merges two objects without worrying about index signatures.
536
536
  type SimpleMerge<Destination, Source> = Simplify<{ [Key in keyof Destination as Key extends keyof Source ? never : Key]: Destination[Key] } & Source>;
537
537
  /**
@@ -603,7 +603,7 @@ type Merge<Destination, Source> = Destination extends unknown // For distributin
603
603
  // Should never happen
604
604
  type _Merge<Destination, Source> = Simplify<SimpleMerge<PickIndexSignature<Destination>, PickIndexSignature<Source>> & SimpleMerge<OmitIndexSignature<Destination>, OmitIndexSignature<Source>>>;
605
605
  //#endregion
606
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/internal/object.d.ts
606
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/internal/object.d.ts
607
607
  /**
608
608
  Merges user specified options with default options.
609
609
 
@@ -656,9 +656,38 @@ type Result = ApplyDefaultOptions<PathsOptions, DefaultPathsOptions, SpecifiedOp
656
656
  // Types of property 'leavesOnly' are incompatible. Type 'string' is not assignable to type 'boolean'.
657
657
  ```
658
658
  */
659
- type ApplyDefaultOptions<Options extends object, Defaults extends Simplify<Omit<Required<Options>, RequiredKeysOf<Options>> & Partial<Record<RequiredKeysOf<Options>, never>>>, SpecifiedOptions extends Options> = If<IsAny<SpecifiedOptions>, Defaults, If<IsNever<SpecifiedOptions>, Defaults, Simplify<Merge<Defaults, { [Key in keyof SpecifiedOptions as Key extends OptionalKeysOf<Options> ? undefined extends SpecifiedOptions[Key] ? never : Key : Key]: SpecifiedOptions[Key] }> & Required<Options>>>>;
659
+ type ApplyDefaultOptions<Options extends object, Defaults extends Simplify<Omit<Required<Options>, RequiredKeysOf<Options>> & Partial<Record<RequiredKeysOf<Options>, never>>>, SpecifiedOptions extends Options> = _ApplyDefaultOptions<Options, Defaults, SpecifiedOptions> extends infer Result extends Required<Options> // `extends Required<Options>` ensures that `ApplyDefaultOptions<SomeOption, ...>` is always assignable to `Required<SomeOption>`
660
+ ? Result : never;
661
+ type _ApplyDefaultOptions<Options, Defaults, SpecifiedOptions> = If<IsAny<SpecifiedOptions>, Defaults, If<IsNever<SpecifiedOptions>, Defaults, Merge<Defaults, { [Key in keyof SpecifiedOptions as undefined extends Required<Options>[Key & keyof Options] ? Key : undefined extends SpecifiedOptions[Key] ? never : Key]: SpecifiedOptions[Key] }>>>;
662
+ /**
663
+ Collapses literal types in a union into their corresponding primitive types, when possible. For example, `CollapseLiterals<'foo' | 'bar' | (string & {})>` returns `string`.
664
+
665
+ Note: This doesn't collapse literals within tagged types. For example, `CollapseLiterals<Tagged<'foo' | (string & {}), 'Tag'>>` returns `("foo" & Tag<"Tag", never>) | (string & Tag<"Tag", never>)` and not `string & Tag<"Tag", never>`.
666
+
667
+ Use-case: For collapsing unions created using {@link LiteralUnion}.
668
+
669
+ @example
670
+ ```
671
+ import type {LiteralUnion} from 'type-fest';
672
+
673
+ type A = CollapseLiterals<'foo' | 'bar' | (string & {})>;
674
+ //=> string
675
+
676
+ type B = CollapseLiterals<LiteralUnion<1 | 2 | 3, number>>;
677
+ //=> number
678
+
679
+ type C = CollapseLiterals<LiteralUnion<'onClick' | 'onChange', `on${string}`>>;
680
+ //=> `on${string}`
681
+
682
+ type D = CollapseLiterals<'click' | 'change' | (`on${string}` & {})>;
683
+ //=> 'click' | 'change' | `on${string}`
684
+
685
+ type E = CollapseLiterals<LiteralUnion<'foo' | 'bar', string> | null | undefined>;
686
+ //=> string | null | undefined
687
+ ```
688
+ */
660
689
  //#endregion
661
- //#region node_modules/.pnpm/type-fest@5.5.0/node_modules/type-fest/source/except.d.ts
690
+ //#region node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/except.d.ts
662
691
  /**
663
692
  Filter out keys from an object.
664
693
 
@@ -756,6 +785,24 @@ type PostPayloadFixed = Except<UserData, 'email'>;
756
785
  type Except<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions = {}> = _Except<ObjectType, KeysType, ApplyDefaultOptions<ExceptOptions, DefaultExceptOptions, Options>>;
757
786
  type _Except<ObjectType, KeysType extends keyof ObjectType, Options extends Required<ExceptOptions>> = { [KeyType in keyof ObjectType as Filter<KeyType, KeysType>]: ObjectType[KeyType] } & (Options['requireExactProps'] extends true ? Partial<Record<KeysType, never>> : {});
758
787
  //#endregion
788
+ //#region src/config/resolve-typecheck-config.d.ts
789
+ /** Host-only Type Test config. Valid at root `test:` and per-project `test:`. */
790
+ interface TypecheckConfig {
791
+ enabled?: boolean;
792
+ exclude?: Array<string>;
793
+ /**
794
+ * When `false` (default), type errors in non-test source files surface as
795
+ * source-level failures (vitest parity). When `true`, errors outside the
796
+ * discovered Type Test files are suppressed.
797
+ */
798
+ ignoreSourceErrors?: boolean;
799
+ include?: Array<string>;
800
+ only?: boolean;
801
+ /** Milliseconds the tsgo spawn may run before it is killed and the pass throws. */
802
+ spawnTimeout?: number;
803
+ tsconfig?: string;
804
+ }
805
+ //#endregion
759
806
  //#region src/config/schema.d.ts
760
807
  type Backend = "auto" | "open-cloud" | "studio";
761
808
  type CoverageReporter = keyof ReportOptions;
@@ -794,6 +841,11 @@ interface SharedTestConfig {
794
841
  testPathIgnorePatterns?: Array<string>;
795
842
  testRegex?: Array<string> | string;
796
843
  testTimeout?: number;
844
+ /**
845
+ * Host-only Type Test config. Never forwarded to the Roblox runtime.
846
+ * Resolved per-project via `resolveTypecheckConfig`.
847
+ */
848
+ typecheck?: TypecheckConfig;
797
849
  }
798
850
  /** Jest-passthrough keys valid only per-project (under `projects[N].test`). */
799
851
  interface ProjectTestConfig extends SharedTestConfig {
@@ -915,9 +967,6 @@ interface Config {
915
967
  sourceMap?: boolean;
916
968
  test?: GlobalTestConfig;
917
969
  timeout?: number;
918
- typecheck?: boolean;
919
- typecheckOnly?: boolean;
920
- typecheckTsconfig?: string;
921
970
  universeId?: string;
922
971
  workspace?: WorkspaceConfig;
923
972
  }
@@ -930,6 +979,7 @@ interface Config {
930
979
  interface ResolvedConfig extends Except<Config, "test">, Except<GlobalTestConfig, "projects"> {
931
980
  backend: Backend;
932
981
  collectCoverage: boolean;
982
+ collectPerTestCoverage?: boolean;
933
983
  color: boolean;
934
984
  coverageCache: boolean;
935
985
  coverageDirectory: string;
@@ -950,9 +1000,6 @@ interface ResolvedConfig extends Except<Config, "test">, Except<GlobalTestConfig
950
1000
  testMatch: Array<string>;
951
1001
  testPathIgnorePatterns: Array<string>;
952
1002
  timeout: number;
953
- typecheck: boolean;
954
- typecheckOnly: boolean;
955
- typecheckTsconfig?: string;
956
1003
  verbose: boolean;
957
1004
  }
958
1005
  type MergerFunction<T> = (defaults: T) => T;
@@ -1023,4 +1070,4 @@ declare const JEST_ARGV_EXCLUDED_KEYS: ReadonlySet<string>;
1023
1070
  declare const defineConfig: (input: ConfigInput) => ConfigInput;
1024
1071
  declare const defineProject: (input: InlineProjectConfig) => InlineProjectConfig;
1025
1072
  //#endregion
1026
- export { SnapshotFormatOptions as _, DisplayName as a, defineProject as b, GlobalTestConfig as c, ProjectEntry as d, ProjectTestConfig as f, SharedTestConfig as g, SHARED_TEST_KEYS as h, DEFAULT_CONFIG as i, InlineProjectConfig as l, ResolvedConfig as m, Config as n, FormatterEntry as o, ROOT_CLI_KEYS as p, ConfigInput as r, GLOBAL_TEST_KEYS as s, CliOptions as t, JEST_ARGV_EXCLUDED_KEYS as u, WorkspaceConfig as v, defineConfig as y };
1073
+ export { SnapshotFormatOptions as _, DisplayName as a, defineProject as b, GlobalTestConfig as c, ProjectEntry as d, ProjectTestConfig as f, SharedTestConfig as g, SHARED_TEST_KEYS as h, DEFAULT_CONFIG as i, InlineProjectConfig as l, ResolvedConfig as m, Config as n, FormatterEntry as o, ROOT_CLI_KEYS as p, ConfigInput as r, GLOBAL_TEST_KEYS as s, CliOptions as t, JEST_ARGV_EXCLUDED_KEYS as u, WorkspaceConfig as v, TypecheckConfig as x, defineConfig as y };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isentinel/jest-roblox",
3
- "version": "0.3.1",
3
+ "version": "0.3.4",
4
4
  "description": "Jest-compatible CLI for running roblox-ts tests via Roblox Open Cloud",
5
5
  "keywords": [
6
6
  "jest",
@@ -22,7 +22,15 @@
22
22
  "sideEffects": false,
23
23
  "type": "module",
24
24
  "exports": {
25
- ".": "./dist/index.mjs",
25
+ ".": {
26
+ "source": "./src/source.ts",
27
+ "types": "./dist/index.d.mts",
28
+ "default": "./dist/index.mjs"
29
+ },
30
+ "./artifacts": {
31
+ "types": "./dist/index.d.mts",
32
+ "default": "./dist/index.mjs"
33
+ },
26
34
  "./cli": "./dist/cli.mjs",
27
35
  "./package.json": "./package.json"
28
36
  },
@@ -40,7 +48,7 @@
40
48
  "!dist/**/*.tsbuildinfo"
41
49
  ],
42
50
  "dependencies": {
43
- "@bedrock-rbx/ocale": "0.1.0-beta.15",
51
+ "@bedrock-rbx/ocale": "0.1.0-beta.16",
44
52
  "@jridgewell/trace-mapping": "0.3.31",
45
53
  "arktype": "2.2.0",
46
54
  "c12": "4.0.0-beta.5",
@@ -53,18 +61,18 @@
53
61
  "istanbul-reports": "3.2.0",
54
62
  "oxc-parser": "0.123.0",
55
63
  "picomatch": "4.0.4",
56
- "std-env": "4.0.0",
64
+ "std-env": "4.1.0",
57
65
  "tinyrainbow": "3.1.0",
58
66
  "ws": "8.20.1"
59
67
  },
60
68
  "devDependencies": {
61
- "@isentinel/eslint-config": "5.0.0-beta.11",
62
- "@isentinel/roblox-ts": "4.0.5",
69
+ "@isentinel/eslint-config": "5.2.0",
70
+ "@isentinel/roblox-ts": "4.0.6",
63
71
  "@isentinel/tsconfig": "1.2.0",
64
72
  "@isentinel/weld": "0.2.0",
65
73
  "@oxc-project/types": "0.123.0",
66
- "@rbxts/jest": "3.13.3-ts.1",
67
- "@rbxts/types": "1.0.920",
74
+ "@rbxts/jest": "3.16.0-ts.1",
75
+ "@rbxts/types": "1.0.925",
68
76
  "@total-typescript/shoehorn": "0.1.2",
69
77
  "@tsdown/exe": "0.22.0",
70
78
  "@types/istanbul-lib-coverage": "2.0.6",
@@ -73,28 +81,28 @@
73
81
  "@types/node": "24.12.3",
74
82
  "@types/picomatch": "4.0.3",
75
83
  "@types/ws": "8.18.1",
76
- "@typescript/native-preview": "7.0.0-dev.20260512.1",
77
- "@vitest/coverage-v8": "4.1.5",
78
- "@vitest/eslint-plugin": "1.6.17",
84
+ "@typescript/native-preview": "7.0.0-dev.20260607.1",
85
+ "@vitest/coverage-v8": "4.1.8",
86
+ "@vitest/eslint-plugin": "1.6.19",
79
87
  "better-typescript-lib": "2.12.0",
80
88
  "bumpp": "11.1.0",
81
89
  "eslint": "9.39.4",
82
90
  "eslint-plugin-jest-extended": "3.0.1",
83
- "eslint-plugin-n": "17.24.0",
84
- "eslint-plugin-pnpm": "1.6.0",
91
+ "eslint-plugin-n": "18.0.1",
92
+ "eslint-plugin-pnpm": "1.6.1",
85
93
  "jest-extended": "7.0.0",
86
94
  "memfs": "4.57.2",
87
95
  "publint": "0.3.21",
88
96
  "tsdown": "0.22.0",
89
- "type-fest": "5.5.0",
97
+ "type-fest": "5.7.0",
90
98
  "typescript": "6.0.3",
91
- "vitest": "4.1.5",
92
- "@isentinel/luau-ast": "0.1.0",
99
+ "vitest": "4.1.8",
93
100
  "@isentinel/roblox-runner": "0.1.0",
101
+ "@isentinel/luau-ast": "0.1.0",
94
102
  "@isentinel/rojo-utils": "0.1.0"
95
103
  },
96
104
  "engines": {
97
- "node": ">=24.10.0"
105
+ "node": ">=24.12.0"
98
106
  },
99
107
  "scripts": {
100
108
  "bench": "vitest bench --project unit",
Binary file