@jaypie/testkit 1.1.9 → 1.1.11

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,5 @@
1
1
  import { uuid as originalUuid, BadGatewayError as BadGatewayErrorOriginal, BadRequestError as BadRequestErrorOriginal, ConfigurationError as ConfigurationErrorOriginal, ForbiddenError as ForbiddenErrorOriginal, GatewayTimeoutError as GatewayTimeoutErrorOriginal, GoneError as GoneErrorOriginal, IllogicalError as IllogicalErrorOriginal, InternalError as InternalErrorOriginal, MethodNotAllowedError as MethodNotAllowedErrorOriginal, MultiError as MultiErrorOriginal, NotFoundError as NotFoundErrorOriginal, NotImplementedError as NotImplementedErrorOriginal, ProjectError as ProjectErrorOriginal, ProjectMultiError as ProjectMultiErrorOriginal, RejectedError as RejectedErrorOriginal, TeapotError as TeapotErrorOriginal, UnauthorizedError as UnauthorizedErrorOriginal, UnavailableError as UnavailableErrorOriginal, UnhandledError as UnhandledErrorOriginal, UnreachableCodeError as UnreachableCodeErrorOriginal } from "@jaypie/core";
2
+ import type { JsonReturn } from "@jaypie/types";
2
3
  import { ExpressHandlerParameter, GenericArgs, JaypieHandlerFunction, JaypieHandlerOptions, JaypieHandlerParameter } from "./types/jaypie-testkit";
3
4
  import type { SQSMessageResponse } from "@jaypie/aws";
4
5
  export * from "@jaypie/aws";
@@ -8,6 +9,7 @@ export * from "@jaypie/datadog";
8
9
  export * from "@jaypie/lambda";
9
10
  export * from "@jaypie/llm";
10
11
  export * from "@jaypie/mongoose";
12
+ export * from "@jaypie/textract";
11
13
  export declare const getEnvSecret: import("vitest").Mock<() => string>;
12
14
  export declare const getMessages: import("vitest").Mock<(event?: {
13
15
  Records?: Array<{
@@ -24,19 +26,6 @@ export declare const sendTextractJob: import("vitest").Mock<({ key, bucket }: an
24
26
  export declare const BadGatewayError: import("vitest").Mock<(...params: ConstructorParameters<typeof BadGatewayErrorOriginal>) => InstanceType<typeof BadGatewayErrorOriginal>>;
25
27
  export declare const BadRequestError: import("vitest").Mock<(...params: ConstructorParameters<typeof BadRequestErrorOriginal>) => InstanceType<typeof BadRequestErrorOriginal>>;
26
28
  export declare const ConfigurationError: import("vitest").Mock<(...params: ConstructorParameters<typeof ConfigurationErrorOriginal>) => InstanceType<typeof ConfigurationErrorOriginal>>;
27
- export declare const envBoolean: import("vitest").Mock<() => boolean>;
28
- export declare const jaypieHandler: import("vitest").Mock<(handler: JaypieHandlerFunction, { setup, teardown, unavailable, validate, }?: JaypieHandlerOptions) => (...args: GenericArgs) => Promise<unknown>>;
29
- export declare const sleep: import("vitest").Mock<() => boolean>;
30
- export declare const uuid: import("vitest").Mock<typeof originalUuid>;
31
- export declare const submitMetric: import("vitest").Mock<() => boolean>;
32
- export declare const submitMetricSet: import("vitest").Mock<() => boolean>;
33
- export declare const expressHandler: import("vitest").Mock<(handlerOrProps: ExpressHandlerParameter, propsOrHandler?: ExpressHandlerParameter) => (req?: {}, res?: {}, ...extra: unknown[]) => Promise<unknown>>;
34
- export declare const Llm: import("vitest").Mock<(...args: any[]) => any> & {
35
- send: import("vitest").Mock<(...args: any[]) => any>;
36
- };
37
- export declare const connect: import("vitest").Mock<() => boolean>;
38
- export declare const connectFromSecretEnv: import("vitest").Mock<() => boolean>;
39
- export declare const disconnect: import("vitest").Mock<() => boolean>;
40
29
  export declare const ForbiddenError: import("vitest").Mock<(...params: ConstructorParameters<typeof ForbiddenErrorOriginal>) => InstanceType<typeof ForbiddenErrorOriginal>>;
41
30
  export declare const GatewayTimeoutError: import("vitest").Mock<(...params: ConstructorParameters<typeof GatewayTimeoutErrorOriginal>) => InstanceType<typeof GatewayTimeoutErrorOriginal>>;
42
31
  export declare const GoneError: import("vitest").Mock<(...params: ConstructorParameters<typeof GoneErrorOriginal>) => InstanceType<typeof GoneErrorOriginal>>;
@@ -54,7 +43,22 @@ export declare const UnauthorizedError: import("vitest").Mock<(...params: Constr
54
43
  export declare const UnavailableError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnavailableErrorOriginal>) => InstanceType<typeof UnavailableErrorOriginal>>;
55
44
  export declare const UnhandledError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnhandledErrorOriginal>) => InstanceType<typeof UnhandledErrorOriginal>>;
56
45
  export declare const UnreachableCodeError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnreachableCodeErrorOriginal>) => InstanceType<typeof UnreachableCodeErrorOriginal>>;
46
+ export declare const envBoolean: import("vitest").Mock<() => boolean>;
47
+ export declare const jaypieHandler: import("vitest").Mock<(handler: JaypieHandlerFunction, { setup, teardown, unavailable, validate, }?: JaypieHandlerOptions) => (...args: GenericArgs) => Promise<unknown>>;
48
+ export declare const sleep: import("vitest").Mock<() => boolean>;
49
+ export declare const uuid: import("vitest").Mock<typeof originalUuid>;
50
+ export declare const submitMetric: import("vitest").Mock<() => boolean>;
51
+ export declare const submitMetricSet: import("vitest").Mock<() => boolean>;
52
+ export declare const expressHandler: import("vitest").Mock<(handlerOrProps: ExpressHandlerParameter, propsOrHandler?: ExpressHandlerParameter) => (req?: {}, res?: {}, ...extra: unknown[]) => Promise<unknown>>;
57
53
  export declare const lambdaHandler: import("vitest").Mock<(handler: JaypieHandlerParameter, props?: JaypieHandlerParameter) => (event: unknown, context: unknown, ...extra: unknown[]) => Promise<unknown>>;
54
+ export declare const Llm: import("vitest").Mock<(...args: any[]) => any> & {
55
+ send: import("vitest").Mock<(...args: any[]) => any>;
56
+ };
57
+ export declare const connect: import("vitest").Mock<() => boolean>;
58
+ export declare const connectFromSecretEnv: import("vitest").Mock<() => boolean>;
59
+ export declare const disconnect: import("vitest").Mock<() => boolean>;
60
+ export declare const MarkdownPage: import("vitest").Mock<(...args: any[]) => any>;
61
+ export declare const textractJsonToMarkdown: import("vitest").Mock<(textractResults: JsonReturn) => string>;
58
62
  declare const _default: {
59
63
  getMessages: import("vitest").Mock<(event?: {
60
64
  Records?: Array<{
@@ -105,11 +109,13 @@ declare const _default: {
105
109
  submitMetricSet: import("vitest").Mock<() => boolean>;
106
110
  expressHandler: import("vitest").Mock<(handlerOrProps: ExpressHandlerParameter, propsOrHandler?: ExpressHandlerParameter) => (req?: {}, res?: {}, ...extra: unknown[]) => Promise<unknown>>;
107
111
  lambdaHandler: import("vitest").Mock<(handler: JaypieHandlerParameter, props?: JaypieHandlerParameter) => (event: unknown, context: unknown, ...extra: unknown[]) => Promise<unknown>>;
108
- connect: import("vitest").Mock<() => boolean>;
109
- connectFromSecretEnv: import("vitest").Mock<() => boolean>;
110
- disconnect: import("vitest").Mock<() => boolean>;
111
112
  Llm: import("vitest").Mock<(...args: any[]) => any> & {
112
113
  send: import("vitest").Mock<(...args: any[]) => any>;
113
114
  };
115
+ connect: import("vitest").Mock<() => boolean>;
116
+ connectFromSecretEnv: import("vitest").Mock<() => boolean>;
117
+ disconnect: import("vitest").Mock<() => boolean>;
118
+ MarkdownPage: import("vitest").Mock<(...args: any[]) => any>;
119
+ textractJsonToMarkdown: import("vitest").Mock<(textractResults: JsonReturn) => string>;
114
120
  };
115
121
  export default _default;
@@ -1,13 +1,16 @@
1
1
  import { getMessages as getMessages$1 } from '@jaypie/aws';
2
2
  export * from '@jaypie/aws';
3
- import { JAYPIE, BadGatewayError as BadGatewayError$1, BadRequestError as BadRequestError$1, ConfigurationError as ConfigurationError$1, force, uuid as uuid$1, HTTP, ForbiddenError as ForbiddenError$1, GatewayTimeoutError as GatewayTimeoutError$1, GoneError as GoneError$1, IllogicalError as IllogicalError$1, InternalError as InternalError$1, MethodNotAllowedError as MethodNotAllowedError$1, MultiError as MultiError$1, NotFoundError as NotFoundError$1, NotImplementedError as NotImplementedError$1, ProjectError as ProjectError$1, ProjectMultiError as ProjectMultiError$1, RejectedError as RejectedError$1, TeapotError as TeapotError$1, UnauthorizedError as UnauthorizedError$1, UnavailableError as UnavailableError$1, UnhandledError as UnhandledError$1, UnreachableCodeError as UnreachableCodeError$1, log } from '@jaypie/core';
3
+ import { JAYPIE, BadGatewayError as BadGatewayError$1, BadRequestError as BadRequestError$1, ConfigurationError as ConfigurationError$1, ForbiddenError as ForbiddenError$1, GatewayTimeoutError as GatewayTimeoutError$1, GoneError as GoneError$1, IllogicalError as IllogicalError$1, InternalError as InternalError$1, MethodNotAllowedError as MethodNotAllowedError$1, MultiError as MultiError$1, NotFoundError as NotFoundError$1, NotImplementedError as NotImplementedError$1, ProjectError as ProjectError$1, ProjectMultiError as ProjectMultiError$1, RejectedError as RejectedError$1, TeapotError as TeapotError$1, UnauthorizedError as UnauthorizedError$1, UnavailableError as UnavailableError$1, UnhandledError as UnhandledError$1, UnreachableCodeError as UnreachableCodeError$1, force, uuid as uuid$1, HTTP, log } from '@jaypie/core';
4
4
  export * from '@jaypie/core';
5
5
  import { vi, beforeAll } from 'vitest';
6
+ import { readFile } from 'fs/promises';
7
+ import { TextractDocument } from 'amazon-textract-response-parser';
6
8
  export * from '@jaypie/express';
7
9
  export * from '@jaypie/datadog';
8
10
  export * from '@jaypie/lambda';
9
11
  export * from '@jaypie/llm';
10
12
  export * from '@jaypie/mongoose';
13
+ export * from '@jaypie/textract';
11
14
 
12
15
  function mockLogFactory() {
13
16
  // Create skeleton of mock objects
@@ -86,8 +89,16 @@ function spyLog(log) {
86
89
  // Setup
87
90
  //
88
91
  const TAG = JAYPIE.LIB.TESTKIT;
92
+ const MOCK_TEXTRACT_DOCUMENT_PATH = "./packages/testkit/src/mockTextract.json";
93
+ let textractJsonToMarkdownOriginal = vi.fn();
94
+ let MarkdownPageOriginal;
95
+ let mockTextractContents;
89
96
  // Spy on log:
90
- beforeAll(() => {
97
+ beforeAll(async () => {
98
+ const textract = await import('@jaypie/textract');
99
+ textractJsonToMarkdownOriginal.mockImplementation(textract.textractJsonToMarkdown);
100
+ MarkdownPageOriginal = textract.MarkdownPage;
101
+ mockTextractContents = await readFile(MOCK_TEXTRACT_DOCUMENT_PATH, "utf-8");
91
102
  spyLog(log);
92
103
  });
93
104
  //
@@ -127,6 +138,58 @@ const BadRequestError = vi.fn((...params) => {
127
138
  const ConfigurationError = vi.fn((...params) => {
128
139
  return new ConfigurationError$1(...params);
129
140
  });
141
+ // Complete the error mocks
142
+ const ForbiddenError = vi.fn((...params) => {
143
+ return new ForbiddenError$1(...params);
144
+ });
145
+ const GatewayTimeoutError = vi.fn((...params) => {
146
+ return new GatewayTimeoutError$1(...params);
147
+ });
148
+ const GoneError = vi.fn((...params) => {
149
+ return new GoneError$1(...params);
150
+ });
151
+ const IllogicalError = vi.fn((...params) => {
152
+ return new IllogicalError$1(...params);
153
+ });
154
+ const InternalError = vi.fn((...params) => {
155
+ return new InternalError$1(...params);
156
+ });
157
+ const MethodNotAllowedError = vi.fn((...params) => {
158
+ return new MethodNotAllowedError$1(...params);
159
+ });
160
+ const MultiError = vi.fn((...params) => {
161
+ return new MultiError$1(...params);
162
+ });
163
+ const NotFoundError = vi.fn((...params) => {
164
+ return new NotFoundError$1(...params);
165
+ });
166
+ const NotImplementedError = vi.fn((...params) => {
167
+ return new NotImplementedError$1(...params);
168
+ });
169
+ const ProjectError = vi.fn((...params) => {
170
+ return new ProjectError$1(...params);
171
+ });
172
+ const ProjectMultiError = vi.fn((...params) => {
173
+ return new ProjectMultiError$1(...params);
174
+ });
175
+ const RejectedError = vi.fn((...params) => {
176
+ return new RejectedError$1(...params);
177
+ });
178
+ const TeapotError = vi.fn((...params) => {
179
+ return new TeapotError$1(...params);
180
+ });
181
+ const UnauthorizedError = vi.fn((...params) => {
182
+ return new UnauthorizedError$1(...params);
183
+ });
184
+ const UnavailableError = vi.fn((...params) => {
185
+ return new UnavailableError$1(...params);
186
+ });
187
+ const UnhandledError = vi.fn((...params) => {
188
+ return new UnhandledError$1(...params);
189
+ });
190
+ const UnreachableCodeError = vi.fn((...params) => {
191
+ return new UnreachableCodeError$1(...params);
192
+ });
130
193
  // @jaypie/core Functions
131
194
  const envBoolean = vi.fn(() => {
132
195
  return true;
@@ -325,6 +388,18 @@ const expressHandler = vi.fn((handlerOrProps, propsOrHandler) => {
325
388
  }
326
389
  };
327
390
  });
391
+ // @jaypie/lambda
392
+ const lambdaHandler = vi.fn((handler, props = {}) => {
393
+ // If handler is an object and options is a function, swap them
394
+ if (typeof handler === "object" && typeof props === "function") {
395
+ const temp = handler;
396
+ handler = props;
397
+ props = temp;
398
+ }
399
+ return async (event, context, ...extra) => {
400
+ return jaypieHandler(handler, props)(event, context, ...extra);
401
+ };
402
+ });
328
403
  // @jaypie/llm
329
404
  const mockSend = vi.fn().mockResolvedValue("_MOCK_LLM_RESPONSE");
330
405
  const Llm = Object.assign(vi.fn().mockImplementation((providerName = "_MOCK_LLM_PROVIDER") => ({
@@ -344,69 +419,32 @@ const connectFromSecretEnv = vi.fn(() => {
344
419
  const disconnect = vi.fn(() => {
345
420
  return true;
346
421
  });
347
- // Complete the error mocks
348
- const ForbiddenError = vi.fn((...params) => {
349
- return new ForbiddenError$1(...params);
350
- });
351
- const GatewayTimeoutError = vi.fn((...params) => {
352
- return new GatewayTimeoutError$1(...params);
353
- });
354
- const GoneError = vi.fn((...params) => {
355
- return new GoneError$1(...params);
356
- });
357
- const IllogicalError = vi.fn((...params) => {
358
- return new IllogicalError$1(...params);
359
- });
360
- const InternalError = vi.fn((...params) => {
361
- return new InternalError$1(...params);
362
- });
363
- const MethodNotAllowedError = vi.fn((...params) => {
364
- return new MethodNotAllowedError$1(...params);
365
- });
366
- const MultiError = vi.fn((...params) => {
367
- return new MultiError$1(...params);
368
- });
369
- const NotFoundError = vi.fn((...params) => {
370
- return new NotFoundError$1(...params);
371
- });
372
- const NotImplementedError = vi.fn((...params) => {
373
- return new NotImplementedError$1(...params);
374
- });
375
- const ProjectError = vi.fn((...params) => {
376
- return new ProjectError$1(...params);
377
- });
378
- const ProjectMultiError = vi.fn((...params) => {
379
- return new ProjectMultiError$1(...params);
380
- });
381
- const RejectedError = vi.fn((...params) => {
382
- return new RejectedError$1(...params);
383
- });
384
- const TeapotError = vi.fn((...params) => {
385
- return new TeapotError$1(...params);
386
- });
387
- const UnauthorizedError = vi.fn((...params) => {
388
- return new UnauthorizedError$1(...params);
389
- });
390
- const UnavailableError = vi.fn((...params) => {
391
- return new UnavailableError$1(...params);
392
- });
393
- const UnhandledError = vi.fn((...params) => {
394
- return new UnhandledError$1(...params);
395
- });
396
- const UnreachableCodeError = vi.fn((...params) => {
397
- return new UnreachableCodeError$1(...params);
422
+ // @jaypie/textract
423
+ const MarkdownPage = vi
424
+ .fn()
425
+ .mockImplementation((page) => {
426
+ try {
427
+ return new MarkdownPageOriginal(page);
428
+ }
429
+ catch {
430
+ // eslint-disable-next-line no-console
431
+ console.warn("[MarkdownPage] Actual implementation failed. To suppress this warning, manually mock the response with mockReturnValue");
432
+ const mockDocument = new TextractDocument(JSON.parse(mockTextractContents));
433
+ // Double type assertion needed to bridge incompatible types
434
+ return new MarkdownPageOriginal(mockDocument._pages[0]);
435
+ }
398
436
  });
399
- // @jaypie/lambda
400
- const lambdaHandler = vi.fn((handler, props = {}) => {
401
- // If handler is an object and options is a function, swap them
402
- if (typeof handler === "object" && typeof props === "function") {
403
- const temp = handler;
404
- handler = props;
405
- props = temp;
437
+ const textractJsonToMarkdown = vi.fn((textractResults) => {
438
+ try {
439
+ const result = textractJsonToMarkdownOriginal(textractResults);
440
+ return result;
441
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
442
+ }
443
+ catch (error) {
444
+ // eslint-disable-next-line no-console
445
+ console.warn("[textractJsonToMarkdown] Actual implementation failed. To suppress this warning, manually mock the response with mockReturnValue");
446
+ return `_MOCK_TEXTRACT_JSON_TO_MARKDOWN_{{${textractResults}}}`;
406
447
  }
407
- return async (event, context, ...extra) => {
408
- return jaypieHandler(handler, props)(event, context, ...extra);
409
- };
410
448
  });
411
449
  // Export default for convenience
412
450
  var jaypie_mock = {
@@ -450,13 +488,16 @@ var jaypie_mock = {
450
488
  expressHandler,
451
489
  // Lambda
452
490
  lambdaHandler,
491
+ // LLM
492
+ Llm,
453
493
  // Mongoose
454
494
  connect,
455
495
  connectFromSecretEnv,
456
496
  disconnect,
457
- // LLM
458
- Llm,
497
+ // Textract
498
+ MarkdownPage,
499
+ textractJsonToMarkdown,
459
500
  };
460
501
 
461
- export { BadGatewayError, BadRequestError, ConfigurationError, ForbiddenError, GatewayTimeoutError, GoneError, IllogicalError, InternalError, Llm, MethodNotAllowedError, MultiError, NotFoundError, NotImplementedError, ProjectError, ProjectMultiError, RejectedError, TeapotError, UnauthorizedError, UnavailableError, UnhandledError, UnreachableCodeError, connect, connectFromSecretEnv, jaypie_mock as default, disconnect, envBoolean, expressHandler, getEnvSecret, getMessages, getSecret, getTextractJob, jaypieHandler, lambdaHandler, sendBatchMessages, sendMessage, sendTextractJob, sleep, submitMetric, submitMetricSet, uuid };
502
+ export { BadGatewayError, BadRequestError, ConfigurationError, ForbiddenError, GatewayTimeoutError, GoneError, IllogicalError, InternalError, Llm, MarkdownPage, MethodNotAllowedError, MultiError, NotFoundError, NotImplementedError, ProjectError, ProjectMultiError, RejectedError, TeapotError, UnauthorizedError, UnavailableError, UnhandledError, UnreachableCodeError, connect, connectFromSecretEnv, jaypie_mock as default, disconnect, envBoolean, expressHandler, getEnvSecret, getMessages, getSecret, getTextractJob, jaypieHandler, lambdaHandler, sendBatchMessages, sendMessage, sendTextractJob, sleep, submitMetric, submitMetricSet, textractJsonToMarkdown, uuid };
462
503
  //# sourceMappingURL=jaypie.mock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jaypie.mock.js","sources":["../src/mockLog.module.ts","../src/jaypie.mock.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Log } from \"@jaypie/core\";\nimport { vi } from \"vitest\";\nimport { LogMock } from \"./types/jaypie-testkit\";\n\nexport function mockLogFactory(): LogMock {\n // Create skeleton of mock objects\n const mock = {\n debug: vi.fn(),\n error: vi.fn(),\n fatal: vi.fn(),\n info: vi.fn(),\n init: vi.fn(),\n lib: vi.fn(),\n tag: vi.fn(),\n trace: vi.fn(),\n untag: vi.fn(),\n var: vi.fn(),\n warn: vi.fn(),\n with: vi.fn(),\n } as LogMock;\n\n // Fill out nested mocks\n mock.debug.var = mock.var;\n mock.error.var = mock.var;\n mock.fatal.var = mock.var;\n mock.info.var = mock.var;\n mock.trace.var = mock.var;\n mock.warn.var = mock.var;\n\n // Have modules return correct objects\n mock.init.mockReturnValue(null);\n mock.lib.mockReturnValue(mock);\n mock.with.mockReturnValue(mock);\n\n // Pin mocks to the module\n mock.mock = {\n debug: mock.debug,\n error: mock.error,\n fatal: mock.fatal,\n info: mock.info,\n init: mock.init,\n lib: mock.lib,\n tag: mock.tag,\n trace: mock.trace,\n untag: mock.untag,\n var: mock.var,\n warn: mock.warn,\n with: mock.with,\n };\n\n return mock;\n}\n\nconst LOG_METHOD_NAMES = [\n \"debug\",\n \"error\",\n \"fatal\",\n \"info\",\n \"init\",\n \"lib\",\n \"tag\",\n \"trace\",\n \"untag\",\n \"var\",\n \"warn\",\n \"with\",\n] as const;\n\nconst originalLogMethods = new WeakMap<Log, Partial<Log>>();\n\nexport function spyLog(log: Log): void {\n if (!originalLogMethods.has(log)) {\n const mockLog = mockLogFactory();\n const originalMethods: Partial<Log> = {};\n\n LOG_METHOD_NAMES.forEach((method) => {\n originalMethods[method] = log[method] as any;\n log[method] = mockLog[method] as any;\n });\n\n originalLogMethods.set(log, originalMethods);\n }\n}\n\nexport function restoreLog(log: Log): void {\n const originalMethods = originalLogMethods.get(log);\n if (originalMethods) {\n LOG_METHOD_NAMES.forEach((method) => {\n if (originalMethods[method]) {\n log[method] = originalMethods[method] as any;\n }\n });\n originalLogMethods.delete(log);\n }\n}\n","/* eslint-disable import-x/export */\nimport { getMessages as originalGetMessages } from \"@jaypie/aws\";\nimport {\n force,\n Log,\n uuid as originalUuid,\n // Core utilities\n HTTP,\n JAYPIE,\n log,\n // Errors\n BadGatewayError as BadGatewayErrorOriginal,\n BadRequestError as BadRequestErrorOriginal,\n ConfigurationError as ConfigurationErrorOriginal,\n ForbiddenError as ForbiddenErrorOriginal,\n GatewayTimeoutError as GatewayTimeoutErrorOriginal,\n GoneError as GoneErrorOriginal,\n IllogicalError as IllogicalErrorOriginal,\n InternalError as InternalErrorOriginal,\n MethodNotAllowedError as MethodNotAllowedErrorOriginal,\n MultiError as MultiErrorOriginal,\n NotFoundError as NotFoundErrorOriginal,\n NotImplementedError as NotImplementedErrorOriginal,\n ProjectError as ProjectErrorOriginal,\n ProjectMultiError as ProjectMultiErrorOriginal,\n RejectedError as RejectedErrorOriginal,\n TeapotError as TeapotErrorOriginal,\n UnauthorizedError as UnauthorizedErrorOriginal,\n UnavailableError as UnavailableErrorOriginal,\n UnhandledError as UnhandledErrorOriginal,\n UnreachableCodeError as UnreachableCodeErrorOriginal,\n} from \"@jaypie/core\";\nimport { beforeAll, vi } from \"vitest\";\n\nimport {\n ExpressHandlerFunction,\n ExpressHandlerOptions,\n ExpressHandlerParameter,\n GenericArgs,\n JaypieHandlerFunction,\n JaypieHandlerOptions,\n JaypieHandlerParameter,\n JaypieLifecycleOption,\n WithJsonFunction,\n} from \"./types/jaypie-testkit\";\nimport type { SQSMessageResponse } from \"@jaypie/aws\";\nimport { spyLog } from \"./mockLog.module.js\";\nimport type { Response as ExpressResponse } from \"express\";\n\n//\n//\n// Setup\n//\n\nconst TAG = JAYPIE.LIB.TESTKIT;\n\n// Export all the modules from Jaypie packages:\nexport * from \"@jaypie/aws\";\nexport * from \"@jaypie/core\";\nexport * from \"@jaypie/express\";\nexport * from \"@jaypie/datadog\";\nexport * from \"@jaypie/lambda\";\nexport * from \"@jaypie/llm\";\nexport * from \"@jaypie/mongoose\";\n\n// Spy on log:\nbeforeAll(() => {\n spyLog(log as Log);\n});\n\n//\n//\n// Mock Functions\n//\n\n// @jaypie/aws\nexport const getEnvSecret = vi.fn((): string => {\n return `_MOCK_ENV_SECRET_[${TAG}]`;\n});\n\nexport const getMessages = vi.fn(\n (...params: Parameters<typeof originalGetMessages>) =>\n originalGetMessages(...params),\n);\n\nexport const getSecret = vi.fn((): string => {\n return `_MOCK_SECRET_[${TAG}]`;\n});\n\nexport const getTextractJob = vi.fn((job: string): SQSMessageResponse => {\n return { value: `_MOCK_TEXTRACT_JOB_[${job}]` };\n});\n\nexport const sendBatchMessages = vi.fn((): SQSMessageResponse => {\n return { value: `_MOCK_BATCH_MESSAGES_[${TAG}]` };\n});\n\nexport const sendMessage = vi.fn((): SQSMessageResponse => {\n return { value: `_MOCK_MESSAGE_[${TAG}]` };\n});\n\nexport const sendTextractJob = vi.fn(({ key, bucket }): Array<unknown> => {\n if (!key || !bucket) {\n throw new ConfigurationError(\"[sendTextractJob] Missing key or bucket\");\n }\n return [`_MOCK_TEXTRACT_JOB_[${bucket}/${key}]`];\n});\n\n// @jaypie/core Errors\nexport const BadGatewayError = vi.fn(\n (\n ...params: ConstructorParameters<typeof BadGatewayErrorOriginal>\n ): InstanceType<typeof BadGatewayErrorOriginal> => {\n return new BadGatewayErrorOriginal(...params);\n },\n);\n\nexport const BadRequestError = vi.fn(\n (\n ...params: ConstructorParameters<typeof BadRequestErrorOriginal>\n ): InstanceType<typeof BadRequestErrorOriginal> => {\n return new BadRequestErrorOriginal(...params);\n },\n);\n\nexport const ConfigurationError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ConfigurationErrorOriginal>\n ): InstanceType<typeof ConfigurationErrorOriginal> => {\n return new ConfigurationErrorOriginal(...params);\n },\n);\n\n// @jaypie/core Functions\nexport const envBoolean = vi.fn((): boolean => {\n return true;\n});\n\nexport const jaypieHandler = vi.fn(\n (\n handler: JaypieHandlerFunction,\n {\n setup = [] as JaypieLifecycleOption,\n teardown = [] as JaypieLifecycleOption,\n unavailable = force.boolean(process.env.PROJECT_UNAVAILABLE),\n validate = [] as JaypieLifecycleOption,\n }: JaypieHandlerOptions = {},\n ) => {\n return async (...args: GenericArgs) => {\n let result;\n let thrownError;\n if (unavailable) throw UnavailableError();\n validate = force.array(validate);\n for (const validator of validate) {\n if (typeof validator === \"function\") {\n const valid = await validator(...args);\n if (valid === false) {\n throw new BadRequestError();\n }\n }\n }\n try {\n setup = force.array(setup);\n for (const setupFunction of setup) {\n if (typeof setupFunction === \"function\") {\n await setupFunction(...args);\n }\n }\n // @ts-expect-error TODO: cannot resolve; fix when JaypieHandler moves to TypeScript\n result = handler(...args);\n } catch (error) {\n thrownError = error;\n }\n teardown = force.array(teardown);\n for (const teardownFunction of teardown) {\n if (typeof teardownFunction === \"function\") {\n try {\n await teardownFunction(...args);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n }\n }\n if (thrownError) {\n throw thrownError;\n }\n return result;\n };\n },\n);\n\nexport const sleep = vi.fn((): boolean => {\n return true;\n});\n\nexport const uuid = vi.fn(originalUuid);\n\n// @jaypie/datadog\nexport const submitMetric = vi.fn((): boolean => {\n return true;\n});\n\nexport const submitMetricSet = vi.fn((): boolean => {\n return true;\n});\n\n// @jaypie/express\nexport const expressHandler = vi.fn(\n (\n handlerOrProps: ExpressHandlerParameter,\n propsOrHandler?: ExpressHandlerParameter,\n ) => {\n let handler: ExpressHandlerFunction;\n let props: ExpressHandlerOptions;\n\n if (\n typeof handlerOrProps === \"object\" &&\n typeof propsOrHandler === \"function\"\n ) {\n handler = propsOrHandler;\n props = handlerOrProps;\n } else if (typeof handlerOrProps === \"function\") {\n handler = handlerOrProps;\n props = (propsOrHandler || {}) as ExpressHandlerOptions;\n } else {\n throw BadRequestError(\"handler must be a function\");\n }\n\n // Add locals setup if needed\n if (\n props.locals &&\n typeof props.locals === \"object\" &&\n !Array.isArray(props.locals)\n ) {\n const keys = Object.keys(props.locals);\n if (!props.setup) props.setup = [];\n props.setup = force.array(props.setup);\n // @ts-expect-error TODO: cannot resolve; fix when JaypieHandler moves to TypeScript\n props.setup.unshift((req: { locals?: Record<string, unknown> }) => {\n if (!req || typeof req !== \"object\") {\n throw new BadRequestError(\"req must be an object\");\n }\n // Set req.locals if it doesn't exist\n if (!req.locals) req.locals = {};\n if (typeof req.locals !== \"object\" || Array.isArray(req.locals)) {\n throw new BadRequestError(\"req.locals must be an object\");\n }\n if (!req.locals._jaypie) req.locals._jaypie = {};\n });\n const localsSetup = async (\n localsReq: { locals: Record<string, unknown> },\n localsRes: unknown,\n ) => {\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n if (typeof props.locals![key] === \"function\") {\n localsReq.locals[key] = await props.locals![key](\n localsReq,\n localsRes,\n );\n } else {\n localsReq.locals[key] = props.locals![key];\n }\n }\n };\n // @ts-expect-error TODO: cannot resolve; fix when JaypieHandler moves to TypeScript\n props.setup.push(localsSetup);\n }\n if (props.locals && typeof props.locals !== \"object\") {\n throw new BadRequestError(\"props.locals must be an object\");\n }\n if (props.locals && Array.isArray(props.locals)) {\n throw new BadRequestError(\"props.locals must be an object\");\n }\n if (props.locals === null) {\n throw new BadRequestError(\"props.locals must be an object\");\n }\n\n const jaypieFunction = jaypieHandler(handler, props);\n return async (req = {}, res = {}, ...extra: unknown[]) => {\n const status = HTTP.CODE.OK;\n let response;\n let supertestMode = false;\n\n if (\n res &&\n typeof res === \"object\" &&\n \"socket\" in res &&\n res.constructor.name === \"ServerResponse\"\n ) {\n // Use the response object in supertest mode\n supertestMode = true;\n }\n\n try {\n response = await jaypieFunction(req, res, ...extra);\n } catch (error) {\n // In the mock context, if status is a function we are in a \"supertest\"\n if (\n supertestMode &&\n typeof (res as ExpressResponse).status === \"function\"\n ) {\n // In theory jaypieFunction has handled all errors\n const errorStatus =\n (error as ProjectErrorOriginal).status ||\n HTTP.CODE.INTERNAL_SERVER_ERROR;\n let errorResponse;\n if (typeof (error as ProjectErrorOriginal).json === \"function\") {\n errorResponse = (error as ProjectErrorOriginal).json();\n } else {\n // This should never happen\n errorResponse = UnhandledError().json();\n }\n (res as ExpressResponse).status(errorStatus).json(errorResponse);\n return;\n } else {\n // else, res.status is not a function, throw the error\n throw error;\n }\n }\n\n if (\n supertestMode &&\n typeof (res as ExpressResponse).status === \"function\"\n ) {\n if (response) {\n if (typeof response === \"object\") {\n if (typeof (response as WithJsonFunction).json === \"function\") {\n (res as ExpressResponse).json(\n (response as WithJsonFunction).json(),\n );\n } else {\n (res as ExpressResponse).status(status).json(response);\n }\n } else if (typeof response === \"string\") {\n try {\n (res as ExpressResponse)\n .status(status)\n .json(JSON.parse(response));\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n (res as ExpressResponse).status(status).send(response);\n }\n } else if (response === true) {\n (res as ExpressResponse).status(HTTP.CODE.CREATED).send();\n } else {\n (res as ExpressResponse).status(status).send(response);\n }\n } else {\n (res as ExpressResponse).status(HTTP.CODE.NO_CONTENT).send();\n }\n } else {\n return response;\n }\n };\n },\n);\n\n// @jaypie/llm\nconst mockSend = vi.fn().mockResolvedValue(\"_MOCK_LLM_RESPONSE\");\nexport const Llm = Object.assign(\n vi.fn().mockImplementation((providerName = \"_MOCK_LLM_PROVIDER\") => ({\n _provider: providerName,\n _llm: {\n send: mockSend,\n },\n send: mockSend,\n })),\n { send: mockSend },\n);\n\n// @jaypie/mongoose\nexport const connect = vi.fn((): boolean => {\n return true;\n});\n\nexport const connectFromSecretEnv = vi.fn((): boolean => {\n return true;\n});\n\nexport const disconnect = vi.fn((): boolean => {\n return true;\n});\n\n// Complete the error mocks\nexport const ForbiddenError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ForbiddenErrorOriginal>\n ): InstanceType<typeof ForbiddenErrorOriginal> => {\n return new ForbiddenErrorOriginal(...params);\n },\n);\n\nexport const GatewayTimeoutError = vi.fn(\n (\n ...params: ConstructorParameters<typeof GatewayTimeoutErrorOriginal>\n ): InstanceType<typeof GatewayTimeoutErrorOriginal> => {\n return new GatewayTimeoutErrorOriginal(...params);\n },\n);\n\nexport const GoneError = vi.fn(\n (\n ...params: ConstructorParameters<typeof GoneErrorOriginal>\n ): InstanceType<typeof GoneErrorOriginal> => {\n return new GoneErrorOriginal(...params);\n },\n);\n\nexport const IllogicalError = vi.fn(\n (\n ...params: ConstructorParameters<typeof IllogicalErrorOriginal>\n ): InstanceType<typeof IllogicalErrorOriginal> => {\n return new IllogicalErrorOriginal(...params);\n },\n);\n\nexport const InternalError = vi.fn(\n (\n ...params: ConstructorParameters<typeof InternalErrorOriginal>\n ): InstanceType<typeof InternalErrorOriginal> => {\n return new InternalErrorOriginal(...params);\n },\n);\n\nexport const MethodNotAllowedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof MethodNotAllowedErrorOriginal>\n ): InstanceType<typeof MethodNotAllowedErrorOriginal> => {\n return new MethodNotAllowedErrorOriginal(...params);\n },\n);\n\nexport const MultiError = vi.fn(\n (\n ...params: ConstructorParameters<typeof MultiErrorOriginal>\n ): InstanceType<typeof MultiErrorOriginal> => {\n return new MultiErrorOriginal(...params);\n },\n);\n\nexport const NotFoundError = vi.fn(\n (\n ...params: ConstructorParameters<typeof NotFoundErrorOriginal>\n ): InstanceType<typeof NotFoundErrorOriginal> => {\n return new NotFoundErrorOriginal(...params);\n },\n);\n\nexport const NotImplementedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof NotImplementedErrorOriginal>\n ): InstanceType<typeof NotImplementedErrorOriginal> => {\n return new NotImplementedErrorOriginal(...params);\n },\n);\n\nexport const ProjectError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ProjectErrorOriginal>\n ): InstanceType<typeof ProjectErrorOriginal> => {\n return new ProjectErrorOriginal(...params);\n },\n);\n\nexport const ProjectMultiError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ProjectMultiErrorOriginal>\n ): InstanceType<typeof ProjectMultiErrorOriginal> => {\n return new ProjectMultiErrorOriginal(...params);\n },\n);\n\nexport const RejectedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof RejectedErrorOriginal>\n ): InstanceType<typeof RejectedErrorOriginal> => {\n return new RejectedErrorOriginal(...params);\n },\n);\n\nexport const TeapotError = vi.fn(\n (\n ...params: ConstructorParameters<typeof TeapotErrorOriginal>\n ): InstanceType<typeof TeapotErrorOriginal> => {\n return new TeapotErrorOriginal(...params);\n },\n);\n\nexport const UnauthorizedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnauthorizedErrorOriginal>\n ): InstanceType<typeof UnauthorizedErrorOriginal> => {\n return new UnauthorizedErrorOriginal(...params);\n },\n);\n\nexport const UnavailableError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnavailableErrorOriginal>\n ): InstanceType<typeof UnavailableErrorOriginal> => {\n return new UnavailableErrorOriginal(...params);\n },\n);\n\nexport const UnhandledError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnhandledErrorOriginal>\n ): InstanceType<typeof UnhandledErrorOriginal> => {\n return new UnhandledErrorOriginal(...params);\n },\n);\n\nexport const UnreachableCodeError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnreachableCodeErrorOriginal>\n ): InstanceType<typeof UnreachableCodeErrorOriginal> => {\n return new UnreachableCodeErrorOriginal(...params);\n },\n);\n\n// @jaypie/lambda\nexport const lambdaHandler = vi.fn(\n (handler: JaypieHandlerParameter, props: JaypieHandlerParameter = {}) => {\n // If handler is an object and options is a function, swap them\n if (typeof handler === \"object\" && typeof props === \"function\") {\n const temp = handler;\n handler = props;\n props = temp;\n }\n return async (event: unknown, context: unknown, ...extra: unknown[]) => {\n return jaypieHandler(\n handler as JaypieHandlerFunction,\n props as JaypieHandlerOptions,\n )(event, context, ...extra);\n };\n },\n);\n\n// Export default for convenience\nexport default {\n // AWS\n getMessages,\n getSecret,\n getTextractJob,\n sendBatchMessages,\n sendMessage,\n sendTextractJob,\n // Core\n BadGatewayError,\n BadRequestError,\n ConfigurationError,\n envBoolean,\n ForbiddenError,\n GatewayTimeoutError,\n GoneError,\n HTTP,\n IllogicalError,\n InternalError,\n jaypieHandler,\n MethodNotAllowedError,\n MultiError,\n NotFoundError,\n NotImplementedError,\n ProjectError,\n ProjectMultiError,\n RejectedError,\n sleep,\n TeapotError,\n UnauthorizedError,\n UnavailableError,\n UnhandledError,\n UnreachableCodeError,\n uuid,\n // Datadog\n submitMetric,\n submitMetricSet,\n // Express\n expressHandler,\n // Lambda\n lambdaHandler,\n // Mongoose\n connect,\n connectFromSecretEnv,\n disconnect,\n // LLM\n Llm,\n};\n"],"names":["originalGetMessages","BadGatewayErrorOriginal","BadRequestErrorOriginal","ConfigurationErrorOriginal","originalUuid","ForbiddenErrorOriginal","GatewayTimeoutErrorOriginal","GoneErrorOriginal","IllogicalErrorOriginal","InternalErrorOriginal","MethodNotAllowedErrorOriginal","MultiErrorOriginal","NotFoundErrorOriginal","NotImplementedErrorOriginal","ProjectErrorOriginal","ProjectMultiErrorOriginal","RejectedErrorOriginal","TeapotErrorOriginal","UnauthorizedErrorOriginal","UnavailableErrorOriginal","UnhandledErrorOriginal","UnreachableCodeErrorOriginal"],"mappings":"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"}
1
+ {"version":3,"file":"jaypie.mock.js","sources":["../src/mockLog.module.ts","../src/jaypie.mock.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Log } from \"@jaypie/core\";\nimport { vi } from \"vitest\";\nimport { LogMock } from \"./types/jaypie-testkit\";\n\nexport function mockLogFactory(): LogMock {\n // Create skeleton of mock objects\n const mock = {\n debug: vi.fn(),\n error: vi.fn(),\n fatal: vi.fn(),\n info: vi.fn(),\n init: vi.fn(),\n lib: vi.fn(),\n tag: vi.fn(),\n trace: vi.fn(),\n untag: vi.fn(),\n var: vi.fn(),\n warn: vi.fn(),\n with: vi.fn(),\n } as LogMock;\n\n // Fill out nested mocks\n mock.debug.var = mock.var;\n mock.error.var = mock.var;\n mock.fatal.var = mock.var;\n mock.info.var = mock.var;\n mock.trace.var = mock.var;\n mock.warn.var = mock.var;\n\n // Have modules return correct objects\n mock.init.mockReturnValue(null);\n mock.lib.mockReturnValue(mock);\n mock.with.mockReturnValue(mock);\n\n // Pin mocks to the module\n mock.mock = {\n debug: mock.debug,\n error: mock.error,\n fatal: mock.fatal,\n info: mock.info,\n init: mock.init,\n lib: mock.lib,\n tag: mock.tag,\n trace: mock.trace,\n untag: mock.untag,\n var: mock.var,\n warn: mock.warn,\n with: mock.with,\n };\n\n return mock;\n}\n\nconst LOG_METHOD_NAMES = [\n \"debug\",\n \"error\",\n \"fatal\",\n \"info\",\n \"init\",\n \"lib\",\n \"tag\",\n \"trace\",\n \"untag\",\n \"var\",\n \"warn\",\n \"with\",\n] as const;\n\nconst originalLogMethods = new WeakMap<Log, Partial<Log>>();\n\nexport function spyLog(log: Log): void {\n if (!originalLogMethods.has(log)) {\n const mockLog = mockLogFactory();\n const originalMethods: Partial<Log> = {};\n\n LOG_METHOD_NAMES.forEach((method) => {\n originalMethods[method] = log[method] as any;\n log[method] = mockLog[method] as any;\n });\n\n originalLogMethods.set(log, originalMethods);\n }\n}\n\nexport function restoreLog(log: Log): void {\n const originalMethods = originalLogMethods.get(log);\n if (originalMethods) {\n LOG_METHOD_NAMES.forEach((method) => {\n if (originalMethods[method]) {\n log[method] = originalMethods[method] as any;\n }\n });\n originalLogMethods.delete(log);\n }\n}\n","/* eslint-disable import-x/export */\nimport { getMessages as originalGetMessages } from \"@jaypie/aws\";\nimport {\n force,\n Log,\n uuid as originalUuid,\n // Core utilities\n HTTP,\n JAYPIE,\n log,\n // Errors\n BadGatewayError as BadGatewayErrorOriginal,\n BadRequestError as BadRequestErrorOriginal,\n ConfigurationError as ConfigurationErrorOriginal,\n ForbiddenError as ForbiddenErrorOriginal,\n GatewayTimeoutError as GatewayTimeoutErrorOriginal,\n GoneError as GoneErrorOriginal,\n IllogicalError as IllogicalErrorOriginal,\n InternalError as InternalErrorOriginal,\n MethodNotAllowedError as MethodNotAllowedErrorOriginal,\n MultiError as MultiErrorOriginal,\n NotFoundError as NotFoundErrorOriginal,\n NotImplementedError as NotImplementedErrorOriginal,\n ProjectError as ProjectErrorOriginal,\n ProjectMultiError as ProjectMultiErrorOriginal,\n RejectedError as RejectedErrorOriginal,\n TeapotError as TeapotErrorOriginal,\n UnauthorizedError as UnauthorizedErrorOriginal,\n UnavailableError as UnavailableErrorOriginal,\n UnhandledError as UnhandledErrorOriginal,\n UnreachableCodeError as UnreachableCodeErrorOriginal,\n} from \"@jaypie/core\";\nimport type { TextractPageAdaptable } from \"@jaypie/textract\";\nimport type { JsonReturn } from \"@jaypie/types\";\nimport { beforeAll, vi } from \"vitest\";\n\nimport {\n ExpressHandlerFunction,\n ExpressHandlerOptions,\n ExpressHandlerParameter,\n GenericArgs,\n JaypieHandlerFunction,\n JaypieHandlerOptions,\n JaypieHandlerParameter,\n JaypieLifecycleOption,\n WithJsonFunction,\n} from \"./types/jaypie-testkit\";\nimport type { SQSMessageResponse } from \"@jaypie/aws\";\nimport { spyLog } from \"./mockLog.module.js\";\nimport type { Response as ExpressResponse } from \"express\";\nimport { readFile } from \"fs/promises\";\nimport { TextractDocument } from \"amazon-textract-response-parser\";\nimport { MarkdownPage as OriginalMarkdownPage } from \"@jaypie/textract\";\n\n//\n//\n// Setup\n//\n\nconst TAG = JAYPIE.LIB.TESTKIT;\n\nconst MOCK_TEXTRACT_DOCUMENT_PATH = \"./packages/testkit/src/mockTextract.json\";\n\n// Export all the modules from Jaypie packages:\nexport * from \"@jaypie/aws\";\nexport * from \"@jaypie/core\";\nexport * from \"@jaypie/express\";\nexport * from \"@jaypie/datadog\";\nexport * from \"@jaypie/lambda\";\nexport * from \"@jaypie/llm\";\nexport * from \"@jaypie/mongoose\";\nexport * from \"@jaypie/textract\";\n\nlet textractJsonToMarkdownOriginal = vi.fn<typeof textractJsonToMarkdown>();\nlet MarkdownPageOriginal: typeof OriginalMarkdownPage;\nlet mockTextractContents: string;\n\n// Spy on log:\nbeforeAll(async () => {\n const textract = await import(\"@jaypie/textract\");\n textractJsonToMarkdownOriginal.mockImplementation(\n textract.textractJsonToMarkdown,\n );\n MarkdownPageOriginal = textract.MarkdownPage;\n mockTextractContents = await readFile(MOCK_TEXTRACT_DOCUMENT_PATH, \"utf-8\");\n spyLog(log as Log);\n});\n\n//\n//\n// Mock Functions\n//\n\n// @jaypie/aws\nexport const getEnvSecret = vi.fn((): string => {\n return `_MOCK_ENV_SECRET_[${TAG}]`;\n});\n\nexport const getMessages = vi.fn(\n (...params: Parameters<typeof originalGetMessages>) =>\n originalGetMessages(...params),\n);\n\nexport const getSecret = vi.fn((): string => {\n return `_MOCK_SECRET_[${TAG}]`;\n});\n\nexport const getTextractJob = vi.fn((job: string): SQSMessageResponse => {\n return { value: `_MOCK_TEXTRACT_JOB_[${job}]` };\n});\n\nexport const sendBatchMessages = vi.fn((): SQSMessageResponse => {\n return { value: `_MOCK_BATCH_MESSAGES_[${TAG}]` };\n});\n\nexport const sendMessage = vi.fn((): SQSMessageResponse => {\n return { value: `_MOCK_MESSAGE_[${TAG}]` };\n});\n\nexport const sendTextractJob = vi.fn(({ key, bucket }): Array<unknown> => {\n if (!key || !bucket) {\n throw new ConfigurationError(\"[sendTextractJob] Missing key or bucket\");\n }\n return [`_MOCK_TEXTRACT_JOB_[${bucket}/${key}]`];\n});\n\n// @jaypie/core Errors\nexport const BadGatewayError = vi.fn(\n (\n ...params: ConstructorParameters<typeof BadGatewayErrorOriginal>\n ): InstanceType<typeof BadGatewayErrorOriginal> => {\n return new BadGatewayErrorOriginal(...params);\n },\n);\n\nexport const BadRequestError = vi.fn(\n (\n ...params: ConstructorParameters<typeof BadRequestErrorOriginal>\n ): InstanceType<typeof BadRequestErrorOriginal> => {\n return new BadRequestErrorOriginal(...params);\n },\n);\n\nexport const ConfigurationError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ConfigurationErrorOriginal>\n ): InstanceType<typeof ConfigurationErrorOriginal> => {\n return new ConfigurationErrorOriginal(...params);\n },\n);\n\n// Complete the error mocks\nexport const ForbiddenError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ForbiddenErrorOriginal>\n ): InstanceType<typeof ForbiddenErrorOriginal> => {\n return new ForbiddenErrorOriginal(...params);\n },\n);\n\nexport const GatewayTimeoutError = vi.fn(\n (\n ...params: ConstructorParameters<typeof GatewayTimeoutErrorOriginal>\n ): InstanceType<typeof GatewayTimeoutErrorOriginal> => {\n return new GatewayTimeoutErrorOriginal(...params);\n },\n);\n\nexport const GoneError = vi.fn(\n (\n ...params: ConstructorParameters<typeof GoneErrorOriginal>\n ): InstanceType<typeof GoneErrorOriginal> => {\n return new GoneErrorOriginal(...params);\n },\n);\n\nexport const IllogicalError = vi.fn(\n (\n ...params: ConstructorParameters<typeof IllogicalErrorOriginal>\n ): InstanceType<typeof IllogicalErrorOriginal> => {\n return new IllogicalErrorOriginal(...params);\n },\n);\n\nexport const InternalError = vi.fn(\n (\n ...params: ConstructorParameters<typeof InternalErrorOriginal>\n ): InstanceType<typeof InternalErrorOriginal> => {\n return new InternalErrorOriginal(...params);\n },\n);\n\nexport const MethodNotAllowedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof MethodNotAllowedErrorOriginal>\n ): InstanceType<typeof MethodNotAllowedErrorOriginal> => {\n return new MethodNotAllowedErrorOriginal(...params);\n },\n);\n\nexport const MultiError = vi.fn(\n (\n ...params: ConstructorParameters<typeof MultiErrorOriginal>\n ): InstanceType<typeof MultiErrorOriginal> => {\n return new MultiErrorOriginal(...params);\n },\n);\n\nexport const NotFoundError = vi.fn(\n (\n ...params: ConstructorParameters<typeof NotFoundErrorOriginal>\n ): InstanceType<typeof NotFoundErrorOriginal> => {\n return new NotFoundErrorOriginal(...params);\n },\n);\n\nexport const NotImplementedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof NotImplementedErrorOriginal>\n ): InstanceType<typeof NotImplementedErrorOriginal> => {\n return new NotImplementedErrorOriginal(...params);\n },\n);\n\nexport const ProjectError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ProjectErrorOriginal>\n ): InstanceType<typeof ProjectErrorOriginal> => {\n return new ProjectErrorOriginal(...params);\n },\n);\n\nexport const ProjectMultiError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ProjectMultiErrorOriginal>\n ): InstanceType<typeof ProjectMultiErrorOriginal> => {\n return new ProjectMultiErrorOriginal(...params);\n },\n);\n\nexport const RejectedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof RejectedErrorOriginal>\n ): InstanceType<typeof RejectedErrorOriginal> => {\n return new RejectedErrorOriginal(...params);\n },\n);\n\nexport const TeapotError = vi.fn(\n (\n ...params: ConstructorParameters<typeof TeapotErrorOriginal>\n ): InstanceType<typeof TeapotErrorOriginal> => {\n return new TeapotErrorOriginal(...params);\n },\n);\n\nexport const UnauthorizedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnauthorizedErrorOriginal>\n ): InstanceType<typeof UnauthorizedErrorOriginal> => {\n return new UnauthorizedErrorOriginal(...params);\n },\n);\n\nexport const UnavailableError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnavailableErrorOriginal>\n ): InstanceType<typeof UnavailableErrorOriginal> => {\n return new UnavailableErrorOriginal(...params);\n },\n);\n\nexport const UnhandledError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnhandledErrorOriginal>\n ): InstanceType<typeof UnhandledErrorOriginal> => {\n return new UnhandledErrorOriginal(...params);\n },\n);\n\nexport const UnreachableCodeError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnreachableCodeErrorOriginal>\n ): InstanceType<typeof UnreachableCodeErrorOriginal> => {\n return new UnreachableCodeErrorOriginal(...params);\n },\n);\n\n// @jaypie/core Functions\nexport const envBoolean = vi.fn((): boolean => {\n return true;\n});\n\nexport const jaypieHandler = vi.fn(\n (\n handler: JaypieHandlerFunction,\n {\n setup = [] as JaypieLifecycleOption,\n teardown = [] as JaypieLifecycleOption,\n unavailable = force.boolean(process.env.PROJECT_UNAVAILABLE),\n validate = [] as JaypieLifecycleOption,\n }: JaypieHandlerOptions = {},\n ) => {\n return async (...args: GenericArgs) => {\n let result;\n let thrownError;\n if (unavailable) throw UnavailableError();\n validate = force.array(validate);\n for (const validator of validate) {\n if (typeof validator === \"function\") {\n const valid = await validator(...args);\n if (valid === false) {\n throw new BadRequestError();\n }\n }\n }\n try {\n setup = force.array(setup);\n for (const setupFunction of setup) {\n if (typeof setupFunction === \"function\") {\n await setupFunction(...args);\n }\n }\n // @ts-expect-error TODO: cannot resolve; fix when JaypieHandler moves to TypeScript\n result = handler(...args);\n } catch (error) {\n thrownError = error;\n }\n teardown = force.array(teardown);\n for (const teardownFunction of teardown) {\n if (typeof teardownFunction === \"function\") {\n try {\n await teardownFunction(...args);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n }\n }\n if (thrownError) {\n throw thrownError;\n }\n return result;\n };\n },\n);\n\nexport const sleep = vi.fn((): boolean => {\n return true;\n});\n\nexport const uuid = vi.fn(originalUuid);\n\n// @jaypie/datadog\nexport const submitMetric = vi.fn((): boolean => {\n return true;\n});\n\nexport const submitMetricSet = vi.fn((): boolean => {\n return true;\n});\n\n// @jaypie/express\nexport const expressHandler = vi.fn(\n (\n handlerOrProps: ExpressHandlerParameter,\n propsOrHandler?: ExpressHandlerParameter,\n ) => {\n let handler: ExpressHandlerFunction;\n let props: ExpressHandlerOptions;\n\n if (\n typeof handlerOrProps === \"object\" &&\n typeof propsOrHandler === \"function\"\n ) {\n handler = propsOrHandler;\n props = handlerOrProps;\n } else if (typeof handlerOrProps === \"function\") {\n handler = handlerOrProps;\n props = (propsOrHandler || {}) as ExpressHandlerOptions;\n } else {\n throw BadRequestError(\"handler must be a function\");\n }\n\n // Add locals setup if needed\n if (\n props.locals &&\n typeof props.locals === \"object\" &&\n !Array.isArray(props.locals)\n ) {\n const keys = Object.keys(props.locals);\n if (!props.setup) props.setup = [];\n props.setup = force.array(props.setup);\n // @ts-expect-error TODO: cannot resolve; fix when JaypieHandler moves to TypeScript\n props.setup.unshift((req: { locals?: Record<string, unknown> }) => {\n if (!req || typeof req !== \"object\") {\n throw new BadRequestError(\"req must be an object\");\n }\n // Set req.locals if it doesn't exist\n if (!req.locals) req.locals = {};\n if (typeof req.locals !== \"object\" || Array.isArray(req.locals)) {\n throw new BadRequestError(\"req.locals must be an object\");\n }\n if (!req.locals._jaypie) req.locals._jaypie = {};\n });\n const localsSetup = async (\n localsReq: { locals: Record<string, unknown> },\n localsRes: unknown,\n ) => {\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n if (typeof props.locals![key] === \"function\") {\n localsReq.locals[key] = await props.locals![key](\n localsReq,\n localsRes,\n );\n } else {\n localsReq.locals[key] = props.locals![key];\n }\n }\n };\n // @ts-expect-error TODO: cannot resolve; fix when JaypieHandler moves to TypeScript\n props.setup.push(localsSetup);\n }\n if (props.locals && typeof props.locals !== \"object\") {\n throw new BadRequestError(\"props.locals must be an object\");\n }\n if (props.locals && Array.isArray(props.locals)) {\n throw new BadRequestError(\"props.locals must be an object\");\n }\n if (props.locals === null) {\n throw new BadRequestError(\"props.locals must be an object\");\n }\n\n const jaypieFunction = jaypieHandler(handler, props);\n return async (req = {}, res = {}, ...extra: unknown[]) => {\n const status = HTTP.CODE.OK;\n let response;\n let supertestMode = false;\n\n if (\n res &&\n typeof res === \"object\" &&\n \"socket\" in res &&\n res.constructor.name === \"ServerResponse\"\n ) {\n // Use the response object in supertest mode\n supertestMode = true;\n }\n\n try {\n response = await jaypieFunction(req, res, ...extra);\n } catch (error) {\n // In the mock context, if status is a function we are in a \"supertest\"\n if (\n supertestMode &&\n typeof (res as ExpressResponse).status === \"function\"\n ) {\n // In theory jaypieFunction has handled all errors\n const errorStatus =\n (error as ProjectErrorOriginal).status ||\n HTTP.CODE.INTERNAL_SERVER_ERROR;\n let errorResponse;\n if (typeof (error as ProjectErrorOriginal).json === \"function\") {\n errorResponse = (error as ProjectErrorOriginal).json();\n } else {\n // This should never happen\n errorResponse = UnhandledError().json();\n }\n (res as ExpressResponse).status(errorStatus).json(errorResponse);\n return;\n } else {\n // else, res.status is not a function, throw the error\n throw error;\n }\n }\n\n if (\n supertestMode &&\n typeof (res as ExpressResponse).status === \"function\"\n ) {\n if (response) {\n if (typeof response === \"object\") {\n if (typeof (response as WithJsonFunction).json === \"function\") {\n (res as ExpressResponse).json(\n (response as WithJsonFunction).json(),\n );\n } else {\n (res as ExpressResponse).status(status).json(response);\n }\n } else if (typeof response === \"string\") {\n try {\n (res as ExpressResponse)\n .status(status)\n .json(JSON.parse(response));\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n (res as ExpressResponse).status(status).send(response);\n }\n } else if (response === true) {\n (res as ExpressResponse).status(HTTP.CODE.CREATED).send();\n } else {\n (res as ExpressResponse).status(status).send(response);\n }\n } else {\n (res as ExpressResponse).status(HTTP.CODE.NO_CONTENT).send();\n }\n } else {\n return response;\n }\n };\n },\n);\n\n// @jaypie/lambda\nexport const lambdaHandler = vi.fn(\n (handler: JaypieHandlerParameter, props: JaypieHandlerParameter = {}) => {\n // If handler is an object and options is a function, swap them\n if (typeof handler === \"object\" && typeof props === \"function\") {\n const temp = handler;\n handler = props;\n props = temp;\n }\n return async (event: unknown, context: unknown, ...extra: unknown[]) => {\n return jaypieHandler(\n handler as JaypieHandlerFunction,\n props as JaypieHandlerOptions,\n )(event, context, ...extra);\n };\n },\n);\n\n// @jaypie/llm\nconst mockSend = vi.fn().mockResolvedValue(\"_MOCK_LLM_RESPONSE\");\nexport const Llm = Object.assign(\n vi.fn().mockImplementation((providerName = \"_MOCK_LLM_PROVIDER\") => ({\n _provider: providerName,\n _llm: {\n send: mockSend,\n },\n send: mockSend,\n })),\n { send: mockSend },\n);\n\n// @jaypie/mongoose\nexport const connect = vi.fn((): boolean => {\n return true;\n});\n\nexport const connectFromSecretEnv = vi.fn((): boolean => {\n return true;\n});\n\nexport const disconnect = vi.fn((): boolean => {\n return true;\n});\n\n// @jaypie/textract\nexport const MarkdownPage = vi\n .fn()\n .mockImplementation((page: TextractPageAdaptable) => {\n try {\n return new MarkdownPageOriginal(page);\n } catch {\n // eslint-disable-next-line no-console\n console.warn(\n \"[MarkdownPage] Actual implementation failed. To suppress this warning, manually mock the response with mockReturnValue\",\n );\n const mockDocument = new TextractDocument(\n JSON.parse(mockTextractContents),\n );\n // Double type assertion needed to bridge incompatible types\n return new MarkdownPageOriginal(\n mockDocument._pages[0] as unknown as TextractPageAdaptable,\n );\n }\n });\n\nexport const textractJsonToMarkdown = vi.fn(\n (textractResults: JsonReturn): string => {\n try {\n const result = textractJsonToMarkdownOriginal(textractResults);\n return result;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[textractJsonToMarkdown] Actual implementation failed. To suppress this warning, manually mock the response with mockReturnValue\",\n );\n return `_MOCK_TEXTRACT_JSON_TO_MARKDOWN_{{${textractResults}}}`;\n }\n },\n);\n\n// Export default for convenience\nexport default {\n // AWS\n getMessages,\n getSecret,\n getTextractJob,\n sendBatchMessages,\n sendMessage,\n sendTextractJob,\n // Core\n BadGatewayError,\n BadRequestError,\n ConfigurationError,\n envBoolean,\n ForbiddenError,\n GatewayTimeoutError,\n GoneError,\n HTTP,\n IllogicalError,\n InternalError,\n jaypieHandler,\n MethodNotAllowedError,\n MultiError,\n NotFoundError,\n NotImplementedError,\n ProjectError,\n ProjectMultiError,\n RejectedError,\n sleep,\n TeapotError,\n UnauthorizedError,\n UnavailableError,\n UnhandledError,\n UnreachableCodeError,\n uuid,\n // Datadog\n submitMetric,\n submitMetricSet,\n // Express\n expressHandler,\n // Lambda\n lambdaHandler,\n // LLM\n Llm,\n // Mongoose\n connect,\n connectFromSecretEnv,\n disconnect,\n // Textract\n MarkdownPage,\n textractJsonToMarkdown,\n};\n"],"names":["originalGetMessages","BadGatewayErrorOriginal","BadRequestErrorOriginal","ConfigurationErrorOriginal","ForbiddenErrorOriginal","GatewayTimeoutErrorOriginal","GoneErrorOriginal","IllogicalErrorOriginal","InternalErrorOriginal","MethodNotAllowedErrorOriginal","MultiErrorOriginal","NotFoundErrorOriginal","NotImplementedErrorOriginal","ProjectErrorOriginal","ProjectMultiErrorOriginal","RejectedErrorOriginal","TeapotErrorOriginal","UnauthorizedErrorOriginal","UnavailableErrorOriginal","UnhandledErrorOriginal","UnreachableCodeErrorOriginal","originalUuid"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaypie/testkit",
3
- "version": "1.1.9",
3
+ "version": "1.1.11",
4
4
  "license": "MIT",
5
5
  "author": "Finlayson Studio",
6
6
  "type": "module",
@@ -29,6 +29,7 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@jaypie/core": "^1.1.0",
32
+ "@jaypie/textract": "^0.2.2",
32
33
  "jaypie": "^1.0.44",
33
34
  "jest-json-schema": "^6.1.0",
34
35
  "lodash.isequal": "^4.5.0",
@@ -40,12 +41,14 @@
40
41
  "@types/node": "^22.13.1",
41
42
  "@types/supertest": "^6.0.2",
42
43
  "express": "^4.21.1",
44
+ "jest-extended": "^4.0.2",
43
45
  "rollup": "^4.29.1",
46
+ "rollup-plugin-dts": "^6.1.1",
44
47
  "typescript": "^5.0.0",
45
48
  "vitest": "^3.0.5"
46
49
  },
47
50
  "publishConfig": {
48
51
  "access": "public"
49
52
  },
50
- "gitHead": "144a31b2107d2a2a7a9784b943ae137583aefaeb"
53
+ "gitHead": "8d604a4c347131fc3467fe9b2226ff0dc5df9256"
51
54
  }