@sanity/cli-test 10.0.0 → 11.0.0

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.
package/dist/index.d.ts CHANGED
@@ -1,605 +1,8 @@
1
- import { CliConfig } from "@sanity/cli-core/types";
2
- import { ClientConfig } from "@sanity/client";
3
- import { CLITelemetryStore } from "@sanity/cli-core/types";
4
- import { Command } from "@oclif/core";
5
- import { Config } from "@oclif/core";
6
- import { Errors } from "@oclif/core";
7
- import { Hook } from "@oclif/core/hooks";
8
- import { Hooks } from "@oclif/core/hooks";
9
- import { Mock } from "vitest";
10
- import nock from "nock";
11
- import { ProjectRootResult } from "@sanity/cli-core/types";
12
- import { SanityClient } from "@sanity/client";
13
- import { SanityCommand } from "@sanity/cli-core/SanityCommand";
14
- import { SpinnerInstance } from "@sanity/cli-core/ux";
15
- import { TestProject } from "vitest/node";
16
- import { vi } from "vitest";
17
-
18
- /** @public */
19
- declare interface CaptureOptions {
20
- /**
21
- * Whether to print the output to the console
22
- */
23
- print?: boolean;
24
- /**
25
- * Whether to strip ANSI escape codes from the output
26
- */
27
- stripAnsi?: boolean;
28
- testNodeEnv?: string;
29
- }
30
-
31
- /** @public */
32
- declare interface CaptureResult<T = unknown> {
33
- stderr: string;
34
- stdout: string;
35
- error?: Error & Partial<Errors.CLIError>;
36
- result?: T;
37
- }
38
-
39
- declare type CommandClass = (new (argv: string[], config: Config) => Command) &
40
- typeof Command;
41
-
42
- /**
43
- * Converts Unix-style paths to platform-appropriate paths.
44
- * On Windows:
45
- * - Absolute paths starting with '/': adds drive letter and converts to backslashes
46
- * - Relative/partial paths: converts forward slashes to backslashes
47
- * On Unix: keeps paths as-is.
48
- *
49
- * @param pathStr - Unix-style path (e.g., '/test/path' or '.config/file.json')
50
- * @returns Platform-appropriate path
51
- * @internal
52
- */
53
- export declare function convertToSystemPath(pathStr: string): string;
54
-
55
- /**
56
- * Creates a mock HTTP server for testing.
57
- *
58
- * @returns A mock HTTP server object with emit and once methods
59
- * @internal
60
- */
61
- export declare function createMockHttpServer(): {
62
- emit(event: string, ...args: unknown[]): void;
63
- once(event: string, listener: (...args: unknown[]) => void): void;
64
- };
65
-
66
- /**
67
- * Creates a mock spinner function to avoid writing output to stdout.
68
- * @param overrides - Pass any mocks or stubs for test expectations
69
- * @internal
70
- * @deprecated Use mocks/cli-core/ux/spinner instead
71
- */
72
- export declare function createMockSpinner(
73
- overrides?: Partial<SpinnerInstance>,
74
- ): Mock<(options: string) => SpinnerInstance>;
75
-
76
- /**
77
- * Creates a mock Vite watcher for testing.
78
- *
79
- * @returns A mock watcher object with add, emit, and on methods
80
- * @internal
81
- */
82
- export declare function createMockWatcher(): MockWatcher;
83
-
84
- /**
85
- * Creates a real Sanity client instance for testing that makes actual HTTP requests.
86
- * Use with mockApi() to intercept and mock the HTTP calls.
87
- *
88
- * @public
89
- *
90
- * @example
91
- * ```typescript
92
- * // Mock getGlobalCliClient to return a test client
93
- * vi.mock('@sanity/cli-core', async (importOriginal) => {
94
- * const actual = await importOriginal<typeof import('@sanity/cli-core')>()
95
- * const {createTestClient} = await import('@sanity/cli-test')
96
- *
97
- * return {
98
- * ...actual,
99
- * getGlobalCliClient: vi.fn().mockImplementation((opts) => {
100
- * return Promise.resolve(createTestClient({
101
- * apiVersion: opts.apiVersion,
102
- * }))
103
- * }),
104
- * }
105
- * })
106
- *
107
- * // Then use mockApi to intercept requests
108
- * mockApi({
109
- * apiVersion: 'v2025-02-19',
110
- * method: 'get',
111
- * uri: '/media-libraries',
112
- * }).reply(200, {data: [...]})
113
- * ```
114
- */
115
- export declare function createTestClient(options: CreateTestClientOptions): {
116
- client: SanityClient;
117
- request: ReturnType<typeof vi.fn>;
118
- };
119
-
120
- /**
121
- * Options for createTestClient
122
- *
123
- * @public
124
- */
125
- export declare interface CreateTestClientOptions extends ClientConfig {
126
- /**
127
- * API version for the client
128
- */
129
- apiVersion: string;
130
- /**
131
- * Authentication token
132
- */
133
- token?: string;
134
- }
135
-
136
- /**
137
- * Creates a test token for the Sanity CLI
138
- *
139
- * @public
140
- *
141
- * @param token - The token to create
142
- * @returns void
143
- */
144
- export declare function createTestToken(token: string): void;
145
-
146
- /**
147
- * Creates a unique temporary directory for test output.
148
- * Uses {@link getTempPath} as the base, creating it if needed.
149
- *
150
- * @param options - Configuration options: `prefix` (default: 'cli-e2e-') and
151
- * `useSystemTmp` (default: false) which uses the OS temp directory instead of
152
- * cwd/tmp to avoid monorepo workspace detection by package managers and git.
153
- * @returns The path and a cleanup function
154
- * @public
155
- */
156
- export declare function createTmpDir(options?: {
157
- prefix?: string;
158
- useSystemTmp?: boolean;
159
- }): Promise<{
160
- cleanup: () => Promise<void>;
161
- path: string;
162
- }>;
163
-
164
- /**
165
- * Default fixtures bundled with the package and their options.
166
- *
167
- * @public
168
- */
169
- export declare const DEFAULT_FIXTURES: Record<FixtureName, FixtureOptions>;
170
-
171
- /**
172
- * @deprecated Use {@link FixtureName} instead. This type alias will be removed in a future release.
173
- * @public
174
- */
175
- export declare type ExampleName = FixtureName;
176
-
177
- /**
178
- * Valid fixture name type.
179
- * @public
180
- */
181
- export declare type FixtureName =
182
- | "basic-app"
183
- | "basic-functions"
184
- | "basic-studio"
185
- | "federated-studio"
186
- | "graphql-studio"
187
- | "multi-workspace-studio"
188
- | "nextjs-app"
189
- | "prebuilt-app"
190
- | "prebuilt-studio"
191
- | "worst-case-studio";
192
-
193
- /**
194
- * Options for each fixture.
195
- * @public
196
- */
197
- export declare interface FixtureOptions {
198
- includeDist?: boolean;
199
- }
200
-
201
- /**
202
- * Gets the current Windows drive letter from process.cwd().
203
- * Falls back to 'C:\\' if detection fails.
204
- *
205
- * @returns Drive letter with backslash (e.g., 'C:\\', 'D:\\') or empty string on Unix
206
- * @internal
207
- */
208
- export declare function getCurrentDrive(): string;
209
-
210
- /**
211
- * Gets the path to the fixtures directory bundled with this package.
212
- *
213
- * The fixtures are copied during build and bundled with the published package.
214
- * This function works the same whether the package is used in a monorepo
215
- * or installed from npm.
216
- *
217
- * @returns Absolute path to the fixtures directory
218
- * @internal
219
- */
220
- export declare function getFixturesPath(): string;
221
-
222
- /**
223
- * Gets the path to the temporary directory for test fixtures.
224
- *
225
- * Uses the initial working directory captured when this module was first loaded,
226
- * not process.cwd() which may change during test execution.
227
- *
228
- * @param customTempDir - Optional custom temp directory path
229
- * @returns Absolute path to temp directory (default: initial cwd/tmp)
230
- * @internal
231
- */
232
- export declare function getTempPath(customTempDir?: string): string;
233
-
234
- /**
235
- * Mocks the API calls, add some defaults so it doesn't cause too much friction
236
- *
237
- * @internal
238
- */
239
- export declare function mockApi({
240
- apiHost,
241
- apiVersion,
242
- includeQueryTag,
243
- method,
244
- projectId,
245
- query,
246
- uri,
247
- }: MockApiOptions): nock.Interceptor;
248
-
249
- /**
250
- * @internal
251
- */
252
- export declare interface MockApiOptions {
253
- /**
254
- * Uri to mock
255
- */
256
- uri: string;
257
- /**
258
- * Api host to mock, defaults to `https://api.sanity.io`
259
- */
260
- apiHost?: string;
261
- /**
262
- * Api version to mock, defaults to `v2025-05-14`
263
- */
264
- apiVersion?: string;
265
- /**
266
- * Whether to include `tag: 'sanity.cli'` in query parameters.
267
- * Defaults to `true`. Set to `false` for endpoints that don't use CLI tagging.
268
- */
269
- includeQueryTag?: boolean;
270
- /**
271
- * HTTP method to mock
272
- *
273
- * Defaults to 'get'
274
- */
275
- method?: "delete" | "get" | "patch" | "post" | "put";
276
- /**
277
- * Project ID to mock. When provided, constructs apiHost as `https://{projectId}.api.sanity.io`
278
- * Takes precedence over apiHost if both are provided.
279
- */
280
- projectId?: string;
281
- /**
282
- * Query parameters to mock
283
- */
284
- query?: Record<string, string>;
285
- }
286
-
287
- /**
288
- * Creates a testable subclass of a command with mocked SanityCommand dependencies.
289
- *
290
- * @public
291
- *
292
- * @example
293
- * ```ts
294
- * // Basic config mocking
295
- * const TestAdd = mockSanityCommand(Add, {
296
- * cliConfig: { api: { projectId: 'test-project' } }
297
- * })
298
- *
299
- * // With mock API client
300
- * const mockClient = {
301
- * getDocument: vi.fn().mockResolvedValue({ _id: 'doc1', title: 'Test' }),
302
- * fetch: vi.fn().mockResolvedValue([]),
303
- * }
304
- * const TestGet = mockSanityCommand(GetDocumentCommand, {
305
- * cliConfig: { api: { projectId: 'test-project', dataset: 'production' } },
306
- * projectApiClient: mockClient,
307
- * })
308
- *
309
- * const {stdout} = await testCommand(TestGet, ['doc1'])
310
- * expect(mockClient.getDocument).toHaveBeenCalledWith('doc1')
311
- * ```
312
- */
313
- export declare function mockSanityCommand<
314
- T extends typeof SanityCommand<typeof Command>,
315
- >(CommandClass: T, options?: MockSanityCommandOptions): T;
316
-
317
- /**
318
- * @public
319
- */
320
- export declare interface MockSanityCommandOptions {
321
- /**
322
- * Mock CLI config (required if command uses getCliConfig or getProjectId)
323
- */
324
- cliConfig?: CliConfig;
325
- /**
326
- * When provided, getCliConfig() will throw this error instead of returning a config.
327
- * Useful for simulating running outside a project directory.
328
- */
329
- cliConfigError?: Error;
330
- /**
331
- * Mock whether the terminal is interactive (used by isUnattended)
332
- */
333
- isInteractive?: boolean;
334
- /**
335
- * Mock project root result (required if command uses getProjectRoot)
336
- */
337
- projectRoot?: ProjectRootResult;
338
- /**
339
- * Mock authentication token (passed to API clients, bypasses getCliToken)
340
- */
341
- token?: string;
342
- }
343
-
344
- /**
345
- * @public
346
- * @param options - Options for mocking the telemetry store.
347
- * @returns The mocked telemetry store.
348
- */
349
- export declare const mockTelemetry: (
350
- options?: MockTelemetryOptions,
351
- ) => CLITelemetryStore;
352
-
353
- /**
354
- * @public
355
- */
356
- export declare interface MockTelemetryOptions {
357
- trace?: () => void;
358
- updateUserProperties?: () => void;
359
- }
360
-
361
- /**
362
- * @internal
363
- */
364
- export declare interface MockWatcher {
365
- add: Mock;
366
- emit: (event: string, ...args: unknown[]) => void;
367
- on: (event: string, listener: (...args: unknown[]) => void) => void;
368
- }
369
-
370
- declare interface Options {
371
- config: Config;
372
- Command?: Command.Class;
373
- context?: Hook.Context;
374
- }
375
-
376
- /**
377
- * Global setup function for initializing test fixtures.
378
- *
379
- * Copies fixtures from the bundled location to a temp directory
380
- * and installs dependencies.
381
- *
382
- * Note: Fixtures are NOT built during setup. Tests that need built
383
- * fixtures should build them as part of the test.
384
- *
385
- * This function is designed to be used with vitest globalSetup.
386
- *
387
- * @public
388
- *
389
- * @param options - Configuration options
390
- * @example
391
- * ```typescript
392
- * // In vitest.config.ts
393
- * export default defineConfig({
394
- * test: {
395
- * globalSetup: ['@sanity/cli-test/vitest']
396
- * }
397
- * })
398
- * ```
399
- */
400
- export declare function setup(
401
- _: TestProject,
402
- options?: SetupTestFixturesOptions,
403
- ): Promise<void>;
404
-
405
- /**
406
- * Options for setupTestFixtures
407
- *
408
- * @public
409
- */
410
- export declare interface SetupTestFixturesOptions {
411
- /**
412
- * Glob patterns for additional fixture directories to set up.
413
- *
414
- * Each pattern is matched against directories in the current working directory.
415
- * Only directories containing a `package.json` file are included.
416
- *
417
- * @example
418
- * ```typescript
419
- * ['fixtures/*', 'dev/*']
420
- * ```
421
- */
422
- additionalFixtures?: string[];
423
- /**
424
- * When true, passes `--ignore-workspace` to pnpm install so fixtures get
425
- * their own node_modules even when the temp directory is inside a pnpm
426
- * workspace. Required for E2E tests that spawn the CLI binary against
427
- * fixture directories.
428
- */
429
- ignoreWorkspace?: boolean;
430
- /**
431
- * Custom temp directory path. Defaults to process.cwd()/tmp
432
- */
433
- tempDir?: string;
434
- }
435
-
436
- /**
437
- * Teardown function to clean up test fixtures.
438
- *
439
- * Removes the temp directory created by setupTestFixtures.
440
- *
441
- * This function is designed to be used with vitest globalSetup.
442
- *
443
- * @public
444
- *
445
- * @param options - Configuration options
446
- */
447
- export declare function teardown(
448
- options?: TeardownTestFixturesOptions,
449
- ): Promise<void>;
450
-
451
- /**
452
- * Options for teardownTestFixtures
453
- *
454
- * @public
455
- */
456
- export declare interface TeardownTestFixturesOptions {
457
- /**
458
- * Custom temp directory path. Defaults to process.cwd()/tmp
459
- */
460
- tempDir?: string;
461
- }
462
-
463
- /**
464
- * @public
465
- */
466
- export declare function testCommand(
467
- command: CommandClass,
468
- args?: string[],
469
- options?: TestCommandOptions,
470
- ): Promise<CaptureResult<unknown>>;
471
-
472
- /**
473
- * @public
474
- */
475
- export declare interface TestCommandOptions {
476
- /**
477
- * Options for capturing output
478
- */
479
- capture?: CaptureOptions;
480
- /**
481
- * Partial oclif config overrides
482
- */
483
- config?: Partial<Config>;
484
- /**
485
- * Mock options for SanityCommand dependencies (config, project root, API clients).
486
- * When provided, the command is automatically wrapped with mockSanityCommand.
487
- */
488
- mocks?: MockSanityCommandOptions & MockTelemetryOptions;
489
- }
490
-
491
- /**
492
- * Recursively copy a directory, skipping specified folders.
493
- *
494
- * @param srcDir - Source directory to copy from
495
- * @param destDir - Destination directory to copy to
496
- * @param skip - Array of directory/file names to skip (e.g., ['node_modules', 'dist'])
497
- * @internal
498
- */
499
- export declare function testCopyDirectory(
500
- srcDir: string,
501
- destDir: string,
502
- skip?: string[],
503
- ): Promise<void>;
504
-
505
- /**
506
- * @deprecated Use {@link testFixture} instead. This function will be removed in a future release.
507
- *
508
- * Clones an example (now called fixture) directory into a temporary directory with an isolated copy.
509
- *
510
- * @param exampleName - The name of the example/fixture to clone (e.g., 'basic-app', 'basic-studio')
511
- * @param options - Configuration options
512
- * @returns The absolute path to the temporary directory containing the example/fixture
513
- *
514
- * @public
515
- */
516
- export declare function testExample(
517
- exampleName: FixtureName | (string & {}),
518
- options?: TestFixtureOptions,
519
- ): Promise<string>;
520
-
521
- /**
522
- * @deprecated Use {@link TestFixtureOptions} instead. This type alias will be removed in a future release.
523
- * @public
524
- */
525
- export declare type TestExampleOptions = TestFixtureOptions;
526
-
527
- /**
528
- * Clones a fixture directory into a temporary directory with an isolated copy.
529
- *
530
- * The function creates a unique temporary copy of the specified fixture with:
531
- * - A random unique ID to avoid conflicts between parallel tests
532
- * - Symlinked node_modules for performance (from the global setup version)
533
- * - Modified package.json name to prevent conflicts
534
- *
535
- * The fixture is first looked up in the temp directory (if global setup ran),
536
- * otherwise it falls back to the bundled fixtures in the package.
537
- *
538
- * @param fixtureName - The name of the fixture to clone (e.g., 'basic-app', 'basic-studio')
539
- * @param options - Configuration options
540
- * @returns The absolute path to the temporary directory containing the fixture
541
- *
542
- * @public
543
- *
544
- * @example
545
- * ```typescript
546
- * import {testFixture} from '@sanity/cli-test'
547
- * import {describe, test} from 'vitest'
548
- *
549
- * describe('my test suite', () => {
550
- * test('should work with basic-studio', async () => {
551
- * const cwd = await testFixture('basic-studio')
552
- * // ... run your tests in this directory
553
- * })
554
- * })
555
- * ```
556
- */
557
- export declare function testFixture(
558
- fixtureName: FixtureName | (string & {}),
559
- options?: TestFixtureOptions,
560
- ): Promise<string>;
561
-
562
- /**
563
- * @public
564
- */
565
- export declare interface TestFixtureOptions {
566
- /**
567
- * Custom temp directory. Defaults to process.cwd()/tmp (or the OS temp directory when
568
- * `useSystemTmp` is true).
569
- */
570
- tempDir?: string;
571
- /**
572
- * Use the OS temp directory instead of cwd/tmp. Avoids monorepo workspace detection by
573
- * package managers and git when tests run inside a monorepo. Ignored when `tempDir` is set.
574
- */
575
- useSystemTmp?: boolean;
576
- }
577
-
578
- /**
579
- * Test an oclif hook
580
- *
581
- * @public
582
- *
583
- * @example
584
- * ```ts
585
- * const result = await testHook(hook, {
586
- * Command: Command.loadable,
587
- * context: {
588
- * config: Config.load({
589
- * // CLI root is the directory of the package that contains the hook.
590
- * root: path.resolve(fileURLToPath(import.meta.url), '../../../root'),
591
- * }),
592
- * },
593
- * })
594
- * ```
595
- *
596
- * @param hook - The hook to test
597
- * @param options - The options for the hook
598
- * @returns The result of the hook
599
- */
600
- export declare function testHook<T extends keyof Hooks>(
601
- hook: Hook<T>,
602
- options: Options,
603
- ): Promise<CaptureResult<Hooks[T]["return"]>>;
604
-
605
- export {};
1
+ import { a as testFixture, c as createMockWatcher, d as DEFAULT_FIXTURES, f as ExampleName, i as testExample, l as createMockSpinner, m as FixtureOptions, n as TestFixtureOptions, o as createTestToken, p as FixtureName, r as testCopyDirectory, s as MockWatcher, t as TestExampleOptions, u as createMockHttpServer } from "./testFixture-8PtoG-6z.js";
2
+ import { CreateTestClientOptions, createTestClient } from "./test/createTestClient.js";
3
+ import { MockApiOptions, mockApi } from "./test/mockApi.js";
4
+ import { c as mockSanityCommand, n as TestCommandOptions, r as testCommand, s as MockSanityCommandOptions, t as testHook } from "./testHook-CG6GhHGq.js";
5
+ import { n as mockTelemetry, t as MockTelemetryOptions } from "./mockTelemetry-Bh1va02-.js";
6
+ import { SetupTestFixturesOptions, TeardownTestFixturesOptions, setup, teardown } from "./test/setupFixtures.js";
7
+ import { convertToSystemPath, createTmpDir, getCurrentDrive, getFixturesPath, getTempPath } from "./utils/paths.js";
8
+ export { CreateTestClientOptions, DEFAULT_FIXTURES, ExampleName, FixtureName, FixtureOptions, MockApiOptions, MockSanityCommandOptions, MockTelemetryOptions, MockWatcher, SetupTestFixturesOptions, TeardownTestFixturesOptions, TestCommandOptions, TestExampleOptions, TestFixtureOptions, convertToSystemPath, createMockHttpServer, createMockSpinner, createMockWatcher, createTestClient, createTestToken, createTmpDir, getCurrentDrive, getFixturesPath, getTempPath, mockApi, mockSanityCommand, mockTelemetry, setup, teardown, testCommand, testCopyDirectory, testExample, testFixture, testHook };
@@ -0,0 +1,16 @@
1
+ import { CLITelemetryStore } from "@sanity/cli-core/types";
2
+ /**
3
+ * @public
4
+ */
5
+ interface MockTelemetryOptions {
6
+ trace?: () => void;
7
+ updateUserProperties?: () => void;
8
+ }
9
+ /**
10
+ * @public
11
+ * @param options - Options for mocking the telemetry store.
12
+ * @returns The mocked telemetry store.
13
+ */
14
+ declare const mockTelemetry: (options?: MockTelemetryOptions) => CLITelemetryStore;
15
+ export { mockTelemetry as n, MockTelemetryOptions as t };
16
+ //# sourceMappingURL=mockTelemetry-Bh1va02-.d.ts.map
@@ -1,17 +1,9 @@
1
- import { Command } from "@oclif/core";
2
1
  import { Mock } from "vitest";
3
- import { Output } from "@sanity/cli-core/types";
4
- import { ProjectRootResult } from "@sanity/cli-core/types";
5
- import { SanityCommandInterface } from "@sanity/cli-core/types";
6
-
7
- /**
8
- * @internal
9
- */
10
- export declare function createMockOutput(): Output;
11
-
12
- declare interface MockCollection {
2
+ import { Command } from "@oclif/core";
3
+ import { Output, ProjectRootResult, SanityCommandInterface } from "@sanity/cli-core/types";
4
+ interface MockCollection {
13
5
  DefaultProjectRoot: ProjectRootResult;
14
- OclifCmdExit: Mock<Command["exit"]>;
6
+ OclifCmdExit: Mock<Command['exit']>;
15
7
  SanityCmdGetCliConfig: Mock;
16
8
  SanityCmdGetProjectId: Mock;
17
9
  SanityCmdGetProjectRoot: Mock<() => ProjectRootResult>;
@@ -19,20 +11,19 @@ declare interface MockCollection {
19
11
  SanityCmdOutput: Output;
20
12
  SanityCmdResolveIsInteractive: Mock;
21
13
  }
22
-
23
14
  /**
24
15
  * @internal
25
16
  */
26
- export declare const mocks: MockCollection;
27
-
17
+ declare const mocks: MockCollection;
18
+ /**
19
+ * @internal
20
+ */
21
+ declare function createMockOutput(): Output;
28
22
  /**
29
23
  * A mocked SanityCommand, for use in mocking out the `@sanity/cli-core/SanityCommand` module's command class.
30
24
  * @internal
31
25
  */
32
- export declare class SanityCommand
33
- extends Command
34
- implements SanityCommandInterface
35
- {
26
+ declare class SanityCommand extends Command implements SanityCommandInterface {
36
27
  args: {};
37
28
  flags: {};
38
29
  output: Output;
@@ -46,5 +37,5 @@ export declare class SanityCommand
46
37
  run(): Promise<void>;
47
38
  tryGetCliConfig(): Promise<any>;
48
39
  }
49
-
50
- export {};
40
+ export { SanityCommand, createMockOutput, mocks };
41
+ //# sourceMappingURL=SanityCommand.d.ts.map
@@ -1,9 +1,7 @@
1
1
  import { Mock } from "vitest";
2
-
3
2
  /** @internal */
4
- export declare const getGlobalCliClient: Mock;
5
-
3
+ declare const getGlobalCliClient: Mock;
6
4
  /** @internal */
7
- export declare const getProjectCliClient: Mock;
8
-
9
- export {};
5
+ declare const getProjectCliClient: Mock;
6
+ export { getGlobalCliClient, getProjectCliClient };
7
+ //# sourceMappingURL=apiClient.d.ts.map
@@ -1,6 +1,5 @@
1
1
  import { Mock } from "vitest";
2
-
3
2
  /** @internal */
4
- export declare const mockBrowserEnvironment: Mock;
5
-
6
- export {};
3
+ declare const mockBrowserEnvironment: Mock;
4
+ export { mockBrowserEnvironment };
5
+ //# sourceMappingURL=browser.d.ts.map