@api-client/core 0.18.36 → 0.18.38

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.
@@ -147,18 +147,6 @@ export declare class SdkMock {
147
147
  */
148
148
  me: (options?: MockResponseOptions) => StubReference;
149
149
  };
150
- /**
151
- * Auth API mocks.
152
- */
153
- auth: {
154
- /**
155
- * Mocks the `auth.oauthRedirect()` method.
156
- * This method returns `null` by default as it performs window navigation.
157
- * @param options Optional response customization.
158
- * @returns A stub reference that can be used to restore the original behavior.
159
- */
160
- oauthRedirect: (options?: MockResponseOptions) => StubReference;
161
- };
162
150
  /**
163
151
  * Files API mocks.
164
152
  */
@@ -259,13 +247,6 @@ export declare class SdkMock {
259
247
  * @returns A stub reference.
260
248
  */
261
249
  private createStub;
262
- /**
263
- * Creates a response object from data and options.
264
- * @param defaultData Default data to return if not overridden.
265
- * @param options Response options.
266
- * @returns The final data to return (for non-HTTP responses) or IStoreResponse (for HTTP responses).
267
- */
268
- private createResponse;
269
250
  /**
270
251
  * Generates a random organization object.
271
252
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SdkMock.d.ts","sourceRoot":"","sources":["../../../src/sdk/SdkMock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdkMock.d.ts","sourceRoot":"","sources":["../../../src/sdk/SdkMock.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAIhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,OAAO;IAGN,OAAO,CAAC,GAAG;IAFvB,OAAO,CAAC,KAAK,CAAsB;gBAEf,GAAG,EAAE,QAAQ;IAEjC;;OAEG;IACH,aAAa;QACX;;;;WAIG;yBACc,mBAAmB,KAAG,aAAa;QAapD;;;;WAIG;2BACgB,mBAAmB,KAAG,aAAa;;6BAWnC,mBAAmB,KAAG,aAAa;+BAWjC,mBAAmB,KAAG,aAAa;oCAS9B,mBAAmB,KAAG,aAAa;gCASvC,mBAAmB,KAAG,aAAa;+BASpC,mBAAmB,KAAG,aAAa;8BASpC,mBAAmB,KAAG,aAAa;+BASlC,mBAAmB,KAAG,aAAa;;;6BAYrC,mBAAmB,KAAG,aAAa;6BAWnC,mBAAmB,KAAG,aAAa;kCAS9B,mBAAmB,KAAG,aAAa;iCAWpC,mBAAmB,KAAG,aAAa;mCASjC,mBAAmB,KAAG,aAAa;+BASvC,mBAAmB,KAAG,aAAa;;MAUzD;IAED;;OAEG;IACH,MAAM;QACJ;;;;WAIG;yBACc,mBAAmB,KAAG,aAAa;QAapD;;;;WAIG;2BACgB,mBAAmB,KAAG,aAAa;QAWtD;;;;WAIG;yBACc,mBAAmB,KAAG,aAAa;QAUpD;;;;WAIG;2BACgB,mBAAmB,KAAG,aAAa;QAUtD;;;;WAIG;2BACgB,mBAAmB,KAAG,aAAa;QAUtD;;WAEG;6BACkB,mBAAmB,KAAG,aAAa;QAUxD;;WAEG;gCACqB,mBAAmB,KAAG,aAAa;MAS5D;IAED;;OAEG;IACH,KAAK;QACH;;;;WAIG;uBACY,mBAAmB,KAAG,aAAa;MASnD;IAED;;OAEG;IACH,IAAI;QACF;;WAEG;yBACc,mBAAmB,KAAG,aAAa;QAYpD;;WAEG;+BACoB,mBAAmB,KAAG,aAAa;QAW1D;;WAEG;gCACqB,mBAAmB,KAAG,aAAa;QAU3D;;WAEG;2BACgB,mBAAmB,KAAG,aAAa;QAWtD;;WAEG;iCACsB,mBAAmB,KAAG,aAAa;QAW5D;;WAEG;yBACc,mBAAmB,KAAG,aAAa;QAUpD;;WAEG;8BACmB,mBAAmB,KAAG,aAAa;QAUzD;;WAEG;6BACkB,mBAAmB,KAAG,aAAa;QAYxD;;WAEG;0BACe,mBAAmB,KAAG,aAAa;QAUrD;;WAEG;+BACoB,mBAAmB,KAAG,aAAa;QAU1D;;WAEG;2BACgB,mBAAmB,KAAG,aAAa;QAUtD;;WAEG;+BACoB,mBAAmB,KAAG,aAAa;QAU1D;;WAEG;+BACoB,mBAAmB,KAAG,aAAa;QAU1D;;WAEG;4BACiB,mBAAmB,KAAG,aAAa;QAUvD;;WAEG;+BACoB,mBAAmB,KAAG,aAAa;QAU1D;;WAEG;8BACmB,mBAAmB,KAAG,aAAa;QAYzD;;WAEG;gCACqB,mBAAmB,KAAG,aAAa;MAW5D;IAED;;OAEG;IACH,MAAM;yBACa,mBAAmB,KAAG,aAAa;MAWrD;IAED;;OAEG;IACH,KAAK;yBACc,mBAAmB,KAAG,aAAa;2BAWjC,mBAAmB,KAAG,aAAa;4BASlC,mBAAmB,KAAG,aAAa;0BASrC,mBAAmB,KAAG,aAAa;MAStD;IAED;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAgDlB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAgBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAYlC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,WAAW;CAKpB"}
@@ -320,29 +320,12 @@ export class SdkMock {
320
320
  return this.createStub('user', 'me', () => {
321
321
  const defaultData = this.generateUser();
322
322
  if (options?.status !== undefined && options.status !== 200) {
323
- throw new Exception('Mocked error', { status: options.status });
323
+ throw new Exception(`Mocked error. Status: ${options.status}`, { status: options.status });
324
324
  }
325
325
  return (options?.data ?? defaultData);
326
326
  });
327
327
  },
328
328
  };
329
- /**
330
- * Auth API mocks.
331
- */
332
- auth = {
333
- /**
334
- * Mocks the `auth.oauthRedirect()` method.
335
- * This method returns `null` by default as it performs window navigation.
336
- * @param options Optional response customization.
337
- * @returns A stub reference that can be used to restore the original behavior.
338
- */
339
- oauthRedirect: (options) => {
340
- return this.createStub('auth', 'oauthRedirect', () => {
341
- const defaultData = options?.data ?? null;
342
- return defaultData;
343
- }, true);
344
- },
345
- };
346
329
  /**
347
330
  * Files API mocks.
348
331
  */
@@ -636,7 +619,7 @@ export class SdkMock {
636
619
  * @param implementation The stub implementation that returns the mocked data.
637
620
  * @returns A stub reference.
638
621
  */
639
- createStub(api, method, implementation, sync) {
622
+ createStub(api, method, implementation) {
640
623
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
641
624
  let target = this.sdk;
642
625
  const parts = api.split('.');
@@ -650,10 +633,8 @@ export class SdkMock {
650
633
  if (typeof original !== 'function') {
651
634
  throw new Error(`Method '${method}' not found in ${api} API`);
652
635
  }
653
- // Store original and create stub using sinon
654
- const stub = sync
655
- ? sinon.stub(target, method).callsFake(() => implementation())
656
- : sinon.stub(target, method).callsFake(async () => implementation());
636
+ // Create stub using sinon
637
+ const stub = sinon.stub(target, method).callsFake(async () => implementation());
657
638
  const stubRef = {
658
639
  restore: () => {
659
640
  if (stub) {
@@ -668,18 +649,6 @@ export class SdkMock {
668
649
  this.stubs.push(stubRef);
669
650
  return stubRef;
670
651
  }
671
- /**
672
- * Creates a response object from data and options.
673
- * @param defaultData Default data to return if not overridden.
674
- * @param options Response options.
675
- * @returns The final data to return (for non-HTTP responses) or IStoreResponse (for HTTP responses).
676
- */
677
- createResponse(defaultData, options) {
678
- // For SDK-level stubs we return plain data. Status and headers are
679
- // accepted but not propagated, since high-level SDK methods return data.
680
- const data = options?.data !== undefined ? options.data : defaultData;
681
- return data;
682
- }
683
652
  /**
684
653
  * Generates a random organization object.
685
654
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SdkMock.js","sourceRoot":"","sources":["../../../src/sdk/SdkMock.ts"],"names":[],"mappings":"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","sourcesContent":["import { nanoid } from '../nanoid.js'\nimport type { IOrganization } from '../models/store/Organization.js'\nimport type { GroupSchema } from '../models/store/Group.js'\nimport type { IUser } from '../models/store/User.js'\nimport type { InvitationSchema } from '../models/store/Invitation.js'\nimport { OrganizationKind, GroupKind, InvitationKind } from '../models/kinds.js'\nimport { Kind as UserKind } from '../models/store/User.js'\nimport { File, type IFile, type FileBreadcrumb } from '../models/store/File.js'\nimport { CertificateFileKind, DomainFileKind, FolderKind, ProjectKind } from '../models/kinds.js'\nimport type { ContextListResult, IBulkOperationResult } from '../events/BaseEvents.js'\nimport type { MediaPatchRevision } from '../patch/types.js'\nimport type { IFolder } from '../models/Folder.js'\nimport type { TrashEntry } from '../models/TrashEntry.js'\nimport type { StoreSdk } from './StoreSdkWeb.js'\nimport * as sinon from 'sinon'\nimport { Exception } from '../exceptions/exception.js'\n\n/**\n * Options for customizing mock responses.\n */\nexport interface MockResponseOptions {\n /**\n * Custom response data to return instead of generated random data.\n */\n data?: unknown\n /**\n * HTTP status code to return. Defaults to 200.\n */\n status?: number\n /**\n * Custom headers to include in the response.\n */\n headers?: Record<string, string>\n}\n\n/**\n * A stub reference that can be used to restore the original behavior.\n */\nexport interface StubReference {\n /**\n * Restores the original behavior.\n */\n restore: () => void\n}\n\n/**\n * SDK mocking utility for testing. Provides simple API to mock SDK calls\n * with random or custom responses.\n *\n * @example\n * ```typescript\n * import { SdkMock } from '@api-client/core/sdk/SdkMock.js';\n * import { StoreSdk } from '@api-client/core/sdk/StoreSdkWeb.js';\n *\n * const sdk = new StoreSdk('http://localhost:8080');\n * const mocker = new SdkMock(sdk);\n *\n * // Simple usage - returns random valid organization\n * const stub1 = mocker.organizations.list();\n *\n * // Custom response\n * const stub2 = mocker.organizations.create({\n * data: { key: 'org-1', name: 'Test Org', ... }\n * });\n *\n * // Custom status and headers\n * const stub3 = mocker.users.me({\n * status: 404,\n * headers: { 'X-Custom': 'value' }\n * });\n *\n * // Restore all stubs\n * mocker.restore();\n * ```\n */\nexport class SdkMock {\n private stubs: StubReference[] = []\n\n constructor(private sdk: StoreSdk) {}\n\n /**\n * Organization API mocks.\n */\n organizations = {\n /**\n * Mocks the `organizations.list()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations', 'list', () => {\n const defaultData = {\n items: [this.generateOrganization(), this.generateOrganization()],\n nextPageToken: undefined,\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `organizations.create()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n create: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations', 'create', () => {\n const defaultData = this.generateOrganization()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n invitations: {\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'list', () => {\n const defaultData = {\n items: [this.generateInvitation(), this.generateInvitation()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n create: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'create', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n findByToken: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'findByToken', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n decline: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'decline', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'delete', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n patch: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'patch', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n resend: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'resend', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n },\n\n users: {\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'list', () => {\n const defaultData = {\n items: [this.generateUser(), this.generateUser()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n read: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'read', () => {\n const defaultData = this.generateUser()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n readBatch: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'readBatch', () => {\n const defaultData = {\n items: [this.generateUser(), this.generateUser()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n activate: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'activate', () => {\n const defaultData = this.generateUser()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n deactivate: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'deactivate', () => {\n const defaultData = this.generateUser()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'delete', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n },\n }\n\n /**\n * Group API mocks.\n */\n groups = {\n /**\n * Mocks the `groups.list()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'list', () => {\n const defaultData = {\n items: [this.generateGroup(), this.generateGroup()],\n nextPageToken: undefined,\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.create()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n create: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'create', () => {\n const defaultData = this.generateGroup()\n const status = options?.status ?? 201\n if (status !== 201) {\n throw new Exception('Mocked error', { status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.read()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n read: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'read', () => {\n const defaultData = this.generateGroup()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.update()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n update: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'update', () => {\n const defaultData = this.generateGroup()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.delete()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'delete', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n\n /**\n * Mocks the `groups.addUsers()` method.\n */\n addUsers: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'addUsers', () => {\n const defaultData = this.generateGroup()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.removeUsers()` method.\n */\n removeUsers: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'removeUsers', () => {\n const defaultData = this.generateGroup()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n }\n\n /**\n * User API mocks.\n */\n users = {\n /**\n * Mocks the `user.me()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n me: (options?: MockResponseOptions): StubReference => {\n return this.createStub('user', 'me', () => {\n const defaultData = this.generateUser()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n }\n\n /**\n * Auth API mocks.\n */\n auth = {\n /**\n * Mocks the `auth.oauthRedirect()` method.\n * This method returns `null` by default as it performs window navigation.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n oauthRedirect: (options?: MockResponseOptions): StubReference => {\n return this.createStub(\n 'auth',\n 'oauthRedirect',\n () => {\n const defaultData = options?.data ?? null\n return defaultData\n },\n true\n )\n },\n }\n\n /**\n * Files API mocks.\n */\n file = {\n /**\n * Mocks the `file.list()` method.\n */\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'list', () => {\n const defaultData: ContextListResult<IFile> = {\n items: [this.generateFile(), this.generateFile()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.createMeta()` method.\n */\n createMeta: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'createMeta', () => {\n const defaultData: IFile = this.generateFile()\n const status = options?.status ?? 201\n if (status !== 201) {\n throw new Exception('Mocked error', { status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.createMedia()` method.\n */\n createMedia: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'createMedia', () => {\n const status = options?.status ?? 200\n if (status !== 200) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n\n /**\n * Mocks the `file.create()` method.\n */\n create: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'create', () => {\n const status = options?.status ?? 201\n if (status !== 201) {\n throw new Exception('Mocked error', { status })\n }\n const defaultData: IFile = this.generateFile()\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.createFolder()` method.\n */\n createFolder: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'createFolder', () => {\n const status = options?.status ?? 201\n if (status !== 201) {\n throw new Exception('Mocked error', { status })\n }\n const defaultData: IFolder = this.generateFolder()\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.read()` method.\n */\n read: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'read', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.readMedia()` method.\n */\n readMedia: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'readMedia', () => {\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n const defaultData = { media: { ok: true }, version: 1 }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.readBulk()` method.\n */\n readBulk: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'readBulk', () => {\n const defaultData: IBulkOperationResult<IFile> = {\n items: [this.generateFile(), undefined],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.patch()` method.\n */\n patch: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'patch', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.patchMedia()` method.\n */\n patchMedia: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'patchMedia', () => {\n const defaultData: MediaPatchRevision = this.generateMediaPatchRevision()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.delete()` method.\n */\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'delete', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n\n /**\n * Mocks the `file.deleteBulk()` method.\n */\n deleteBulk: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'deleteBulk', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n\n /**\n * Mocks the `file.patchUsers()` method.\n */\n patchUsers: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'patchUsers', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.addUser()` method.\n */\n addUser: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'addUser', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.removeUser()` method.\n */\n removeUser: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'removeUser', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.listUsers()` method.\n */\n listUsers: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'listUsers', () => {\n const defaultData: ContextListResult<IUser> = {\n items: [this.generateUser(), this.generateUser()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.breadcrumbs()` method.\n */\n breadcrumbs: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'breadcrumbs', () => {\n const defaultData: ContextListResult<FileBreadcrumb> = {\n items: this.generateBreadcrumbs(),\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n }\n\n /**\n * Shared API mocks.\n */\n shared = {\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('shared', 'list', () => {\n const defaultData: ContextListResult<IFile> = {\n items: [this.generateFile(), this.generateFile()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n }\n\n /**\n * Trash API mocks.\n */\n trash = {\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('trash', 'list', () => {\n const defaultData: ContextListResult<TrashEntry> = {\n items: [this.generateTrashEntry(), this.generateTrashEntry()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('trash', 'delete', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n restore: (options?: MockResponseOptions): StubReference => {\n return this.createStub('trash', 'restore', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n empty: (options?: MockResponseOptions): StubReference => {\n return this.createStub('trash', 'empty', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n }\n\n /**\n * Restores all stubs created by this mocker.\n */\n restore(): void {\n this.stubs.forEach((stub) => stub.restore())\n this.stubs = []\n }\n\n /**\n * Creates a stub for a specific SDK method.\n * @param api The API name (e.g., 'organizations', 'groups', 'user', 'auth').\n * @param method The method name to stub.\n * @param implementation The stub implementation that returns the mocked data.\n * @returns A stub reference.\n */\n private createStub(\n api:\n | 'organizations'\n | 'groups'\n | 'user'\n | 'auth'\n | 'file'\n | 'shared'\n | 'trash'\n | 'organizations.invitations'\n | 'organizations.users',\n method: string,\n implementation: () => unknown,\n sync?: boolean\n ): StubReference {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let target: any = this.sdk\n const parts = api.split('.')\n for (const part of parts) {\n target = target[part]\n if (!target) {\n throw new Error(`API '${api}' not found in SDK`)\n }\n }\n\n const original = target[method]\n if (typeof original !== 'function') {\n throw new Error(`Method '${method}' not found in ${api} API`)\n }\n\n // Store original and create stub using sinon\n const stub = sync\n ? sinon.stub(target, method).callsFake(() => implementation())\n : sinon.stub(target, method).callsFake(async () => implementation())\n\n const stubRef: StubReference = {\n restore: () => {\n if (stub) {\n stub.restore()\n }\n const index = this.stubs.indexOf(stubRef)\n if (index > -1) {\n this.stubs.splice(index, 1)\n }\n },\n }\n\n this.stubs.push(stubRef)\n return stubRef\n }\n\n /**\n * Creates a response object from data and options.\n * @param defaultData Default data to return if not overridden.\n * @param options Response options.\n * @returns The final data to return (for non-HTTP responses) or IStoreResponse (for HTTP responses).\n */\n private createResponse(defaultData: unknown, options?: MockResponseOptions): unknown {\n // For SDK-level stubs we return plain data. Status and headers are\n // accepted but not propagated, since high-level SDK methods return data.\n const data = options?.data !== undefined ? options.data : defaultData\n return data\n }\n\n /**\n * Generates a random organization object.\n */\n private generateOrganization(): IOrganization {\n return {\n kind: OrganizationKind,\n key: nanoid(),\n name: `Organization ${this.randomString()}`,\n createdBy: nanoid(),\n createdDate: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 30,\n grantType: this.randomChoice(['owner', 'manager', 'editor', 'viewer'] as const),\n }\n }\n\n /**\n * Generates a random group object.\n */\n private generateGroup(): GroupSchema {\n return {\n kind: GroupKind,\n key: nanoid(),\n name: `Group ${this.randomString()}`,\n description: `Description for ${this.randomString()}`,\n owner: nanoid(),\n oid: nanoid(),\n users: [],\n createdAt: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 30,\n updatedAt: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 7,\n icon: `https://example.com/icon-${nanoid()}.png`,\n color: this.randomColor(),\n }\n }\n\n /**\n * Generates a random user object.\n */\n private generateUser(): IUser {\n const firstName = this.randomString()\n const lastName = this.randomString()\n return {\n kind: UserKind,\n key: nanoid(),\n name: `${firstName} ${lastName}`,\n email: [\n {\n email: `${firstName.toLowerCase()}.${lastName.toLowerCase()}@example.com`,\n verified: true,\n },\n ],\n status: 'active',\n created: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 365,\n updated: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 7,\n }\n }\n\n /**\n * Generates a random file meta object.\n */\n private generateFile(): IFile {\n const kind = this.randomChoice([ProjectKind, DomainFileKind, CertificateFileKind, FolderKind] as const)\n const name = `File ${this.randomString()}`\n return File.createSchema({ kind, info: { name } })\n }\n\n /**\n * Generates a random folder meta object.\n */\n private generateFolder(): IFolder {\n const file = File.createSchema({ kind: FolderKind, info: { name: `Folder ${this.randomString()}` } }) as IFolder\n return file\n }\n\n /**\n * Generates a random media patch revision object.\n */\n private generateMediaPatchRevision(): MediaPatchRevision {\n const version = Math.floor(Math.random() * 10) + 1\n return {\n id: nanoid(),\n timestamp: Date.now(),\n patch: [],\n version,\n revert: [],\n newVersion: version + 1,\n }\n }\n\n /**\n * Generates a random breadcrumbs list.\n */\n private generateBreadcrumbs(): FileBreadcrumb[] {\n const depth = 2 + Math.floor(Math.random() * 2) // 2-3\n const items: FileBreadcrumb[] = []\n for (let i = 0; i < depth; i += 1) {\n items.push({ key: nanoid(), kind: i === depth - 1 ? ProjectKind : FolderKind, name: this.randomString() })\n }\n return items\n }\n\n /**\n * Generates a random invitation object.\n */\n private generateInvitation(): InvitationSchema {\n const firstName = this.randomString()\n const lastName = this.randomString()\n const now = Date.now()\n return {\n kind: InvitationKind,\n key: nanoid(),\n uid: nanoid(),\n oid: nanoid(),\n email: `${firstName.toLowerCase()}.${lastName.toLowerCase()}@example.com`,\n name: `${firstName} ${lastName}`,\n token: nanoid(),\n expiresAt: now + 7 * 24 * 60 * 60 * 1000,\n status: 'pending',\n grantType: this.randomChoice(['owner', 'manager', 'editor', 'viewer'] as const),\n createdAt: now - Math.random() * 1000 * 60 * 60 * 24,\n updatedAt: now - Math.random() * 1000 * 60 * 60,\n resent: 0,\n lastSentAt: now - Math.random() * 1000 * 60 * 60,\n }\n }\n\n /**\n * Generates a random trash entry.\n */\n private generateTrashEntry(): TrashEntry {\n return {\n key: nanoid(),\n refKey: nanoid(),\n kind: this.randomChoice([ProjectKind, DomainFileKind, CertificateFileKind, FolderKind] as const),\n name: `Deleted ${this.randomString()}`,\n info: { byMe: false, time: Date.now() - Math.floor(Math.random() * 1000000), user: nanoid(), name: 'User' },\n capabilities: { canDelete: true, canRestore: true },\n }\n }\n\n /**\n * Generates a random string.\n */\n private randomString(): string {\n const words = [\n 'Alpha',\n 'Beta',\n 'Gamma',\n 'Delta',\n 'Epsilon',\n 'Zeta',\n 'Theta',\n 'Lambda',\n 'Sigma',\n 'Omega',\n 'Phoenix',\n 'Dragon',\n 'Tiger',\n 'Eagle',\n 'Falcon',\n ]\n return words[Math.floor(Math.random() * words.length)]\n }\n\n /**\n * Returns a random choice from an array.\n */\n private randomChoice<T>(choices: readonly T[]): T {\n return choices[Math.floor(Math.random() * choices.length)]\n }\n\n /**\n * Generates a random hex color.\n */\n private randomColor(): string {\n return `#${Math.floor(Math.random() * 16777215)\n .toString(16)\n .padStart(6, '0')}`\n }\n}\n"]}
1
+ {"version":3,"file":"SdkMock.js","sourceRoot":"","sources":["../../../src/sdk/SdkMock.ts"],"names":[],"mappings":"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","sourcesContent":["import { nanoid } from '../nanoid.js'\nimport type { IOrganization } from '../models/store/Organization.js'\nimport type { GroupSchema } from '../models/store/Group.js'\nimport type { IUser } from '../models/store/User.js'\nimport type { InvitationSchema } from '../models/store/Invitation.js'\nimport { OrganizationKind, GroupKind, InvitationKind } from '../models/kinds.js'\nimport { Kind as UserKind } from '../models/store/User.js'\nimport { File, type IFile, type FileBreadcrumb } from '../models/store/File.js'\nimport { CertificateFileKind, DomainFileKind, FolderKind, ProjectKind } from '../models/kinds.js'\nimport type { ContextListResult, IBulkOperationResult } from '../events/BaseEvents.js'\nimport type { MediaPatchRevision } from '../patch/types.js'\nimport type { IFolder } from '../models/Folder.js'\nimport type { TrashEntry } from '../models/TrashEntry.js'\nimport type { StoreSdk } from './StoreSdkWeb.js'\nimport * as sinon from 'sinon'\nimport { Exception } from '../exceptions/exception.js'\n\n/**\n * Options for customizing mock responses.\n */\nexport interface MockResponseOptions {\n /**\n * Custom response data to return instead of generated random data.\n */\n data?: unknown\n /**\n * HTTP status code to return. Defaults to 200.\n */\n status?: number\n /**\n * Custom headers to include in the response.\n */\n headers?: Record<string, string>\n}\n\n/**\n * A stub reference that can be used to restore the original behavior.\n */\nexport interface StubReference {\n /**\n * Restores the original behavior.\n */\n restore: () => void\n}\n\n/**\n * SDK mocking utility for testing. Provides simple API to mock SDK calls\n * with random or custom responses.\n *\n * @example\n * ```typescript\n * import { SdkMock } from '@api-client/core/sdk/SdkMock.js';\n * import { StoreSdk } from '@api-client/core/sdk/StoreSdkWeb.js';\n *\n * const sdk = new StoreSdk('http://localhost:8080');\n * const mocker = new SdkMock(sdk);\n *\n * // Simple usage - returns random valid organization\n * const stub1 = mocker.organizations.list();\n *\n * // Custom response\n * const stub2 = mocker.organizations.create({\n * data: { key: 'org-1', name: 'Test Org', ... }\n * });\n *\n * // Custom status and headers\n * const stub3 = mocker.users.me({\n * status: 404,\n * headers: { 'X-Custom': 'value' }\n * });\n *\n * // Restore all stubs\n * mocker.restore();\n * ```\n */\nexport class SdkMock {\n private stubs: StubReference[] = []\n\n constructor(private sdk: StoreSdk) {}\n\n /**\n * Organization API mocks.\n */\n organizations = {\n /**\n * Mocks the `organizations.list()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations', 'list', () => {\n const defaultData = {\n items: [this.generateOrganization(), this.generateOrganization()],\n nextPageToken: undefined,\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `organizations.create()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n create: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations', 'create', () => {\n const defaultData = this.generateOrganization()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n invitations: {\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'list', () => {\n const defaultData = {\n items: [this.generateInvitation(), this.generateInvitation()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n create: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'create', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n findByToken: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'findByToken', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n decline: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'decline', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'delete', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n patch: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'patch', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n resend: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.invitations', 'resend', () => {\n const defaultData = this.generateInvitation()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n },\n\n users: {\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'list', () => {\n const defaultData = {\n items: [this.generateUser(), this.generateUser()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n read: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'read', () => {\n const defaultData = this.generateUser()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n readBatch: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'readBatch', () => {\n const defaultData = {\n items: [this.generateUser(), this.generateUser()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n activate: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'activate', () => {\n const defaultData = this.generateUser()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n deactivate: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'deactivate', () => {\n const defaultData = this.generateUser()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('organizations.users', 'delete', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n },\n }\n\n /**\n * Group API mocks.\n */\n groups = {\n /**\n * Mocks the `groups.list()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'list', () => {\n const defaultData = {\n items: [this.generateGroup(), this.generateGroup()],\n nextPageToken: undefined,\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.create()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n create: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'create', () => {\n const defaultData = this.generateGroup()\n const status = options?.status ?? 201\n if (status !== 201) {\n throw new Exception('Mocked error', { status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.read()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n read: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'read', () => {\n const defaultData = this.generateGroup()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.update()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n update: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'update', () => {\n const defaultData = this.generateGroup()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.delete()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'delete', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n\n /**\n * Mocks the `groups.addUsers()` method.\n */\n addUsers: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'addUsers', () => {\n const defaultData = this.generateGroup()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `groups.removeUsers()` method.\n */\n removeUsers: (options?: MockResponseOptions): StubReference => {\n return this.createStub('groups', 'removeUsers', () => {\n const defaultData = this.generateGroup()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n }\n\n /**\n * User API mocks.\n */\n users = {\n /**\n * Mocks the `user.me()` method.\n * @param options Optional response customization.\n * @returns A stub reference that can be used to restore the original behavior.\n */\n me: (options?: MockResponseOptions): StubReference => {\n return this.createStub('user', 'me', () => {\n const defaultData = this.generateUser()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception(`Mocked error. Status: ${options.status}`, { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n }\n\n /**\n * Files API mocks.\n */\n file = {\n /**\n * Mocks the `file.list()` method.\n */\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'list', () => {\n const defaultData: ContextListResult<IFile> = {\n items: [this.generateFile(), this.generateFile()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.createMeta()` method.\n */\n createMeta: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'createMeta', () => {\n const defaultData: IFile = this.generateFile()\n const status = options?.status ?? 201\n if (status !== 201) {\n throw new Exception('Mocked error', { status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.createMedia()` method.\n */\n createMedia: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'createMedia', () => {\n const status = options?.status ?? 200\n if (status !== 200) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n\n /**\n * Mocks the `file.create()` method.\n */\n create: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'create', () => {\n const status = options?.status ?? 201\n if (status !== 201) {\n throw new Exception('Mocked error', { status })\n }\n const defaultData: IFile = this.generateFile()\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.createFolder()` method.\n */\n createFolder: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'createFolder', () => {\n const status = options?.status ?? 201\n if (status !== 201) {\n throw new Exception('Mocked error', { status })\n }\n const defaultData: IFolder = this.generateFolder()\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.read()` method.\n */\n read: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'read', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.readMedia()` method.\n */\n readMedia: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'readMedia', () => {\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n const defaultData = { media: { ok: true }, version: 1 }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.readBulk()` method.\n */\n readBulk: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'readBulk', () => {\n const defaultData: IBulkOperationResult<IFile> = {\n items: [this.generateFile(), undefined],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.patch()` method.\n */\n patch: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'patch', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.patchMedia()` method.\n */\n patchMedia: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'patchMedia', () => {\n const defaultData: MediaPatchRevision = this.generateMediaPatchRevision()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.delete()` method.\n */\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'delete', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n\n /**\n * Mocks the `file.deleteBulk()` method.\n */\n deleteBulk: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'deleteBulk', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n\n /**\n * Mocks the `file.patchUsers()` method.\n */\n patchUsers: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'patchUsers', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.addUser()` method.\n */\n addUser: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'addUser', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.removeUser()` method.\n */\n removeUser: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'removeUser', () => {\n const defaultData: IFile = this.generateFile()\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.listUsers()` method.\n */\n listUsers: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'listUsers', () => {\n const defaultData: ContextListResult<IUser> = {\n items: [this.generateUser(), this.generateUser()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n\n /**\n * Mocks the `file.breadcrumbs()` method.\n */\n breadcrumbs: (options?: MockResponseOptions): StubReference => {\n return this.createStub('file', 'breadcrumbs', () => {\n const defaultData: ContextListResult<FileBreadcrumb> = {\n items: this.generateBreadcrumbs(),\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n }\n\n /**\n * Shared API mocks.\n */\n shared = {\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('shared', 'list', () => {\n const defaultData: ContextListResult<IFile> = {\n items: [this.generateFile(), this.generateFile()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n }\n\n /**\n * Trash API mocks.\n */\n trash = {\n list: (options?: MockResponseOptions): StubReference => {\n return this.createStub('trash', 'list', () => {\n const defaultData: ContextListResult<TrashEntry> = {\n items: [this.generateTrashEntry(), this.generateTrashEntry()],\n }\n if (options?.status !== undefined && options.status !== 200) {\n throw new Exception('Mocked error', { status: options.status })\n }\n return (options?.data ?? defaultData) as unknown\n })\n },\n delete: (options?: MockResponseOptions): StubReference => {\n return this.createStub('trash', 'delete', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n restore: (options?: MockResponseOptions): StubReference => {\n return this.createStub('trash', 'restore', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n empty: (options?: MockResponseOptions): StubReference => {\n return this.createStub('trash', 'empty', () => {\n const status = options?.status ?? 204\n if (status !== 204) {\n throw new Exception('Mocked error', { status })\n }\n return undefined\n })\n },\n }\n\n /**\n * Restores all stubs created by this mocker.\n */\n restore(): void {\n this.stubs.forEach((stub) => stub.restore())\n this.stubs = []\n }\n\n /**\n * Creates a stub for a specific SDK method.\n * @param api The API name (e.g., 'organizations', 'groups', 'user', 'auth').\n * @param method The method name to stub.\n * @param implementation The stub implementation that returns the mocked data.\n * @returns A stub reference.\n */\n private createStub(\n api:\n | 'organizations'\n | 'groups'\n | 'user'\n | 'auth'\n | 'file'\n | 'shared'\n | 'trash'\n | 'organizations.invitations'\n | 'organizations.users',\n method: string,\n implementation: () => unknown\n ): StubReference {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let target: any = this.sdk\n const parts = api.split('.')\n for (const part of parts) {\n target = target[part]\n if (!target) {\n throw new Error(`API '${api}' not found in SDK`)\n }\n }\n\n const original = target[method]\n if (typeof original !== 'function') {\n throw new Error(`Method '${method}' not found in ${api} API`)\n }\n\n // Create stub using sinon\n const stub = sinon.stub(target, method).callsFake(async () => implementation())\n\n const stubRef: StubReference = {\n restore: () => {\n if (stub) {\n stub.restore()\n }\n const index = this.stubs.indexOf(stubRef)\n if (index > -1) {\n this.stubs.splice(index, 1)\n }\n },\n }\n\n this.stubs.push(stubRef)\n return stubRef\n }\n\n /**\n * Generates a random organization object.\n */\n private generateOrganization(): IOrganization {\n return {\n kind: OrganizationKind,\n key: nanoid(),\n name: `Organization ${this.randomString()}`,\n createdBy: nanoid(),\n createdDate: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 30,\n grantType: this.randomChoice(['owner', 'manager', 'editor', 'viewer'] as const),\n }\n }\n\n /**\n * Generates a random group object.\n */\n private generateGroup(): GroupSchema {\n return {\n kind: GroupKind,\n key: nanoid(),\n name: `Group ${this.randomString()}`,\n description: `Description for ${this.randomString()}`,\n owner: nanoid(),\n oid: nanoid(),\n users: [],\n createdAt: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 30,\n updatedAt: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 7,\n icon: `https://example.com/icon-${nanoid()}.png`,\n color: this.randomColor(),\n }\n }\n\n /**\n * Generates a random user object.\n */\n private generateUser(): IUser {\n const firstName = this.randomString()\n const lastName = this.randomString()\n return {\n kind: UserKind,\n key: nanoid(),\n name: `${firstName} ${lastName}`,\n email: [\n {\n email: `${firstName.toLowerCase()}.${lastName.toLowerCase()}@example.com`,\n verified: true,\n },\n ],\n status: 'active',\n created: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 365,\n updated: Date.now() - Math.random() * 1000 * 60 * 60 * 24 * 7,\n }\n }\n\n /**\n * Generates a random file meta object.\n */\n private generateFile(): IFile {\n const kind = this.randomChoice([ProjectKind, DomainFileKind, CertificateFileKind, FolderKind] as const)\n const name = `File ${this.randomString()}`\n return File.createSchema({ kind, info: { name } })\n }\n\n /**\n * Generates a random folder meta object.\n */\n private generateFolder(): IFolder {\n const file = File.createSchema({ kind: FolderKind, info: { name: `Folder ${this.randomString()}` } }) as IFolder\n return file\n }\n\n /**\n * Generates a random media patch revision object.\n */\n private generateMediaPatchRevision(): MediaPatchRevision {\n const version = Math.floor(Math.random() * 10) + 1\n return {\n id: nanoid(),\n timestamp: Date.now(),\n patch: [],\n version,\n revert: [],\n newVersion: version + 1,\n }\n }\n\n /**\n * Generates a random breadcrumbs list.\n */\n private generateBreadcrumbs(): FileBreadcrumb[] {\n const depth = 2 + Math.floor(Math.random() * 2) // 2-3\n const items: FileBreadcrumb[] = []\n for (let i = 0; i < depth; i += 1) {\n items.push({ key: nanoid(), kind: i === depth - 1 ? ProjectKind : FolderKind, name: this.randomString() })\n }\n return items\n }\n\n /**\n * Generates a random invitation object.\n */\n private generateInvitation(): InvitationSchema {\n const firstName = this.randomString()\n const lastName = this.randomString()\n const now = Date.now()\n return {\n kind: InvitationKind,\n key: nanoid(),\n uid: nanoid(),\n oid: nanoid(),\n email: `${firstName.toLowerCase()}.${lastName.toLowerCase()}@example.com`,\n name: `${firstName} ${lastName}`,\n token: nanoid(),\n expiresAt: now + 7 * 24 * 60 * 60 * 1000,\n status: 'pending',\n grantType: this.randomChoice(['owner', 'manager', 'editor', 'viewer'] as const),\n createdAt: now - Math.random() * 1000 * 60 * 60 * 24,\n updatedAt: now - Math.random() * 1000 * 60 * 60,\n resent: 0,\n lastSentAt: now - Math.random() * 1000 * 60 * 60,\n }\n }\n\n /**\n * Generates a random trash entry.\n */\n private generateTrashEntry(): TrashEntry {\n return {\n key: nanoid(),\n refKey: nanoid(),\n kind: this.randomChoice([ProjectKind, DomainFileKind, CertificateFileKind, FolderKind] as const),\n name: `Deleted ${this.randomString()}`,\n info: { byMe: false, time: Date.now() - Math.floor(Math.random() * 1000000), user: nanoid(), name: 'User' },\n capabilities: { canDelete: true, canRestore: true },\n }\n }\n\n /**\n * Generates a random string.\n */\n private randomString(): string {\n const words = [\n 'Alpha',\n 'Beta',\n 'Gamma',\n 'Delta',\n 'Epsilon',\n 'Zeta',\n 'Theta',\n 'Lambda',\n 'Sigma',\n 'Omega',\n 'Phoenix',\n 'Dragon',\n 'Tiger',\n 'Eagle',\n 'Falcon',\n ]\n return words[Math.floor(Math.random() * words.length)]\n }\n\n /**\n * Returns a random choice from an array.\n */\n private randomChoice<T>(choices: readonly T[]): T {\n return choices[Math.floor(Math.random() * choices.length)]\n }\n\n /**\n * Generates a random hex color.\n */\n private randomColor(): string {\n return `#${Math.floor(Math.random() * 16777215)\n .toString(16)\n .padStart(6, '0')}`\n }\n}\n"]}