@jaypie/testkit 1.1.25 → 1.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as jestExtendedMatchers from 'jest-extended';
2
2
  import { matchers as matchers$1 } from 'jest-json-schema';
3
- import isEqual from 'lodash.isequal';
3
+ import { isDeepStrictEqual } from 'node:util';
4
4
  import { isJaypieError, UnauthorizedError, NotFoundError, InternalError, GatewayTimeoutError, ForbiddenError, ConfigurationError, BadRequestError, BadGatewayError, UnavailableError } from '@jaypie/core';
5
5
  import { vi } from 'vitest';
6
6
 
@@ -106,7 +106,7 @@ const toBeCalledWithInitialParams = (received, ...passed) => {
106
106
  if (call.length >= passed.length) {
107
107
  let matching = true;
108
108
  for (let i = 0; i < passed.length && matching; i += 1) {
109
- if (!isEqual(passed[i], call[i]))
109
+ if (!isDeepStrictEqual(passed[i], call[i]))
110
110
  matching = false;
111
111
  }
112
112
  pass = pass || matching;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/jsonApiSchema.module.ts","../src/matchers/toBeCalledAboveTrace.matcher.ts","../src/matchers/toBeCalledWithInitialParams.matcher.ts","../src/matchers/toBeClass.matcher.ts","../src/matchers/toBeJaypieError.matcher.ts","../src/matchers/toMatch.matcher.ts","../src/matchers/toThrowError.matcher.ts","../src/matchers/toThrowJaypieError.matcher.ts","../src/matchers.module.ts","../src/mockLog.module.ts","../src/sqsTestRecords.function.ts"],"sourcesContent":["export const LOG = {\n LEVEL: {\n ALL: \"all\",\n DEBUG: \"debug\",\n ERROR: \"error\",\n FATAL: \"fatal\",\n INFO: \"info\",\n SILENT: \"silent\",\n TRACE: \"trace\",\n WARN: \"warn\",\n },\n} as const;\n\nexport const RE_BASE64_PATTERN = /^[a-zA-Z0-9\\\\+\\\\/]+$/;\nexport const RE_JWT_PATTERN = /^([^.]+)\\.([^.]+)\\.([^.]+)$/;\nexport const RE_MONGO_ID_PATTERN = /^[a-f0-9]{24}$/i;\nexport const RE_SIGNED_COOKIE_PATTERN = /^s:([^.]+)\\.([^.]+)$/;\nexport const RE_UUID_4_PATTERN =\n /^[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;\nexport const RE_UUID_5_PATTERN =\n /^[a-f0-9]{8}-?[a-f0-9]{4}-?5[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;\nexport const RE_UUID_PATTERN =\n /^[a-f0-9]{8}-?[a-f0-9]{4}-?[a-f0-9]{4}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;\n","import { JsonApiData, JsonApiError } from \"./types/jaypie-testkit\";\n\nexport const jsonApiErrorSchema = {\n type: \"object\",\n properties: {\n errors: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n status: { type: \"number\" },\n title: { type: \"string\" },\n detail: { type: \"string\" },\n },\n required: [\"status\", \"title\"],\n },\n minItems: 1,\n },\n },\n required: [\"errors\"],\n} as const;\n\nexport const jsonApiSchema = {\n type: \"object\",\n properties: {\n data: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n type: { type: \"string\" },\n attributes: { type: \"object\" },\n links: { type: \"object\" },\n meta: { type: \"object\" },\n relationships: { type: \"object\" },\n },\n required: [\"id\", \"type\"],\n },\n meta: { type: \"object\" },\n },\n required: [\"data\"],\n} as const;\n\n// Type guards\nexport const isJsonApiError = (obj: unknown): obj is JsonApiError => {\n if (!obj || typeof obj !== \"object\") return false;\n return \"errors\" in obj && Array.isArray((obj as JsonApiError).errors);\n};\n\nexport const isJsonApiData = (obj: unknown): obj is JsonApiData => {\n if (!obj || typeof obj !== \"object\") return false;\n return \"data\" in obj && typeof (obj as JsonApiData).data === \"object\";\n};\n","import { LogMock, MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\nconst calledAboveTrace = (log: LogMock): MatcherResult => {\n try {\n if (\n log.debug.mock.calls.length > 0 ||\n log.info.mock.calls.length > 0 ||\n log.warn.mock.calls.length > 0 ||\n log.error.mock.calls.length > 0 ||\n log.fatal.mock.calls.length > 0\n ) {\n return {\n message: () => `expected log not to have been called above trace`,\n pass: true,\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n throw Error(`[calledAboveTrace] log is not a mock object`);\n }\n\n return {\n message: () => `expected log not to have been called above trace`,\n pass: false,\n };\n};\n\n//\n//\n// Export\n//\n\nexport default calledAboveTrace;\n","import isEqual from \"lodash.isequal\";\nimport { Mock } from \"vitest\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\nconst toBeCalledWithInitialParams = (\n received: Mock,\n ...passed: unknown[]\n): MatcherResult => {\n let pass: boolean | undefined;\n\n if (!received || typeof received !== \"function\" || !received.mock) {\n return {\n message: () =>\n `Expectation \\`toBeCalledWithInitialParams\\` expected a mock function`,\n pass: false,\n };\n }\n\n received.mock.calls.forEach((call: unknown[]) => {\n if (call.length >= passed.length) {\n let matching = true;\n for (let i = 0; i < passed.length && matching; i += 1) {\n if (!isEqual(passed[i], call[i])) matching = false;\n }\n pass = pass || matching;\n }\n });\n\n if (pass === undefined) pass = false;\n\n if (pass) {\n return {\n message: () =>\n `Expectation \\`toBeCalledWithInitialParams\\` expected call beginning with [${passed},...]`,\n pass: true,\n };\n } else {\n return {\n message: () =>\n `Expectation \\`not.toBeCalledWithInitialParams\\` did not expect call beginning with [${passed},...]`,\n pass: false,\n };\n }\n};\n\n//\n//\n// Export\n//\n\nexport default toBeCalledWithInitialParams;\n","import { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\nconst toBeClass = (received: unknown): MatcherResult => {\n let pass = false;\n if (typeof received === \"function\") {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (received as any)();\n pass = true;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n pass = false;\n }\n }\n if (pass) {\n return {\n message: () => `expected ${received} not to be a class`,\n pass: true,\n };\n }\n return {\n message: () => `expected ${received} to be a class`,\n pass: false,\n };\n};\n\n//\n//\n// Export\n//\n\nexport default toBeClass;\n","import { matchers as jsonSchemaMatchers } from \"jest-json-schema\";\nimport { jsonApiErrorSchema } from \"../jsonApiSchema.module\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Helper Functions\n//\n\nfunction isErrorObjectJaypieError(error: Error): MatcherResult {\n if (\"isProjectError\" in error) {\n return {\n message: () => `expected \"${error}\" not to be a Jaypie error`,\n pass: true,\n };\n }\n return {\n message: () => `expected \"${error}\" to be a Jaypie error`,\n pass: false,\n };\n}\n\n//\n//\n// Main\n//\n\nconst toBeJaypieError = (received: unknown): MatcherResult => {\n // See if it is an instance of error:\n if (received instanceof Error) {\n return isErrorObjectJaypieError(received);\n }\n\n const result = jsonSchemaMatchers.toMatchSchema(received, jsonApiErrorSchema);\n if (result.pass) {\n return {\n message: () => `expected ${received} not to be a Jaypie error`,\n pass: true,\n };\n } else {\n return {\n message: () => `expected ${received} to be a Jaypie error`,\n pass: false,\n };\n }\n};\n\n//\n//\n// Export\n//\n\nexport default toBeJaypieError;\n","import {\n RE_BASE64_PATTERN,\n RE_JWT_PATTERN,\n RE_MONGO_ID_PATTERN,\n RE_SIGNED_COOKIE_PATTERN,\n RE_UUID_4_PATTERN,\n RE_UUID_5_PATTERN,\n RE_UUID_PATTERN,\n} from \"../constants.js\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Helper\n//\n\ninterface ForSubjectToMatchPatternOptions {\n patternName?: string;\n}\n\nfunction forSubjectToMatchPattern(\n subject: string,\n pattern: RegExp,\n { patternName = \"pattern\" }: ForSubjectToMatchPatternOptions = {},\n): MatcherResult {\n if (pattern.test(subject)) {\n return {\n message: () => `expected \"${subject}\" not to match ${patternName}`,\n pass: true,\n };\n }\n return {\n message: () => `expected \"${subject}\" to match ${patternName}`,\n pass: false,\n };\n}\n\n//\n//\n// Main\n//\n\nexport const toMatchBase64 = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_BASE64_PATTERN, {\n patternName: \"Base64\",\n });\n\nexport const toMatchJwt = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_JWT_PATTERN, {\n patternName: \"JWT\",\n });\n\nexport const toMatchMongoId = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_MONGO_ID_PATTERN, {\n patternName: \"MongoDbId\",\n });\n\nexport const toMatchSignedCookie = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_SIGNED_COOKIE_PATTERN, {\n patternName: \"Signed-Cookie\",\n });\n\nexport const toMatchUuid4 = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_UUID_4_PATTERN, {\n patternName: \"UUIDv4\",\n });\n\nexport const toMatchUuid5 = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_UUID_5_PATTERN, {\n patternName: \"UUIDv5\",\n });\n\n/**\n * Determines if subject matches a UUID pattern.\n * Does _NOT_ check if the UUID is valid.\n */\nexport const toMatchUuid = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_UUID_PATTERN, {\n patternName: \"UUID\",\n });\n","import { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\ntype ReceivedFunction = () => unknown | Promise<unknown>;\n\nconst toThrowError = async (\n received: ReceivedFunction,\n): Promise<MatcherResult> => {\n const isAsync =\n received.constructor.name === \"AsyncFunction\" ||\n received.constructor.name === \"Promise\";\n\n try {\n const result = received();\n\n if (isAsync) {\n await result;\n }\n\n return {\n pass: false,\n message: () =>\n \"Expected function to throw an error, but it did not throw.\",\n };\n } catch (error) {\n return {\n pass: true,\n message: () =>\n `Expected function not to throw an error, but it threw ${error}`,\n };\n }\n};\n\n//\n//\n// Export\n//\n\nexport default toThrowError;\n","import {\n BadGatewayError,\n BadRequestError,\n ConfigurationError,\n ForbiddenError,\n GatewayTimeoutError,\n InternalError,\n isJaypieError,\n NotFoundError,\n ProjectError,\n UnauthorizedError,\n UnavailableError,\n} from \"@jaypie/core\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\ntype ReceivedFunction = () => unknown | Promise<unknown>;\ntype ErrorConstructor = new () => ProjectError;\n\nfunction isErrorConstructor(value: unknown): value is ErrorConstructor {\n return typeof value === \"function\" && \"prototype\" in value;\n}\n\nconst toThrowJaypieError = async (\n received: ReceivedFunction,\n expected?: ProjectError | (() => ProjectError) | ErrorConstructor,\n): Promise<MatcherResult> => {\n const isAsync =\n received.constructor.name === \"AsyncFunction\" ||\n received.constructor.name === \"Promise\";\n\n let expectedError: ProjectError | undefined = undefined;\n\n // Handle constructor, function, or instance\n if (typeof expected === \"function\") {\n if (isErrorConstructor(expected)) {\n // It's a constructor\n expectedError = new expected();\n } else {\n // It's a regular function\n expectedError = expected();\n }\n } else if (expected) {\n // It's an instance\n expectedError = expected;\n }\n\n try {\n const result = received();\n\n if (isAsync) {\n await result;\n }\n\n // If no error is thrown, fail the test\n return {\n pass: false,\n message: () =>\n \"Expected function to throw a JaypieError, but it did not throw.\",\n };\n } catch (error) {\n if (isJaypieError(error)) {\n // If expected is also a JaypieError, check if the error matches\n if (expectedError && isJaypieError(expectedError)) {\n // If the error does not match, fail the test\n if (error._type !== expectedError._type) {\n return {\n pass: false,\n message: () =>\n `Expected function to throw \"${expectedError._type}\", but it threw \"${error._type}\"`,\n };\n }\n }\n return {\n pass: true,\n message: () =>\n `Expected function not to throw a JaypieError, but it threw ${error}`,\n };\n }\n\n return {\n pass: false,\n message: () =>\n `Expected function to throw a JaypieError, but it threw ${error}`,\n };\n }\n};\n\n//\n//\n// Convenience Methods\n//\n\nconst toThrowBadGatewayError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, BadGatewayError);\nconst toThrowBadRequestError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, BadRequestError);\nconst toThrowConfigurationError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, ConfigurationError);\nconst toThrowForbiddenError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, ForbiddenError);\nconst toThrowGatewayTimeoutError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, GatewayTimeoutError);\nconst toThrowInternalError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, InternalError);\nconst toThrowNotFoundError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, NotFoundError);\nconst toThrowUnauthorizedError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, UnauthorizedError);\nconst toThrowUnavailableError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, UnavailableError);\n\n//\n//\n// Export\n//\n\nexport default toThrowJaypieError;\n\nexport {\n toThrowBadGatewayError,\n toThrowBadRequestError,\n toThrowConfigurationError,\n toThrowForbiddenError,\n toThrowGatewayTimeoutError,\n toThrowInternalError,\n toThrowNotFoundError,\n toThrowUnauthorizedError,\n toThrowUnavailableError,\n};\n","import * as jestExtendedMatchers from \"jest-extended\";\nimport { matchers as jestJsonSchemaMatchers } from \"jest-json-schema\";\nimport toBeCalledAboveTrace from \"./matchers/toBeCalledAboveTrace.matcher.js\";\nimport toBeCalledWithInitialParams from \"./matchers/toBeCalledWithInitialParams.matcher.js\";\nimport toBeClass from \"./matchers/toBeClass.matcher.js\";\nimport toBeJaypieError from \"./matchers/toBeJaypieError.matcher.js\";\nimport {\n toMatchBase64,\n toMatchJwt,\n toMatchMongoId,\n toMatchSignedCookie,\n toMatchUuid,\n toMatchUuid4,\n toMatchUuid5,\n} from \"./matchers/toMatch.matcher.js\";\nimport toThrowError from \"./matchers/toThrowError.matcher.js\";\nimport toThrowJaypieError, {\n toThrowBadGatewayError,\n toThrowBadRequestError,\n toThrowConfigurationError,\n toThrowForbiddenError,\n toThrowGatewayTimeoutError,\n toThrowInternalError,\n toThrowNotFoundError,\n toThrowUnauthorizedError,\n toThrowUnavailableError,\n} from \"./matchers/toThrowJaypieError.matcher.js\";\n\n// Combine all matchers\nconst matchers = {\n // Custom Jaypie matchers\n toBeCalledAboveTrace,\n toBeCalledWithInitialParams,\n toBeClass,\n toBeJaypieError,\n toMatchBase64,\n toMatchJwt,\n toMatchMongoId,\n toMatchSignedCookie,\n toMatchSchema: jestJsonSchemaMatchers.toMatchSchema,\n toMatchUuid,\n toMatchUuid4,\n toMatchUuid5,\n toThrowBadGatewayError,\n toThrowBadRequestError,\n toThrowConfigurationError,\n toThrowError,\n toThrowForbiddenError,\n toThrowGatewayTimeoutError,\n toThrowInternalError,\n toThrowJaypieError,\n toThrowNotFoundError,\n toThrowUnauthorizedError,\n toThrowUnavailableError,\n\n // Include all jest-extended matchers\n ...jestExtendedMatchers,\n};\n\nexport default matchers;\n","/* 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","interface SQSEvent {\n Records: Array<{\n body: string;\n messageId?: string | number;\n [key: string]: unknown;\n }>;\n}\n\n/**\n * Creates a mock SQS event with the given records\n * @param records - Array of records or individual records to include in the event\n * @returns SQS event object with Records array\n */\nconst sqsTestRecords = (...records: Array<unknown>): SQSEvent => {\n // If first argument is an array, use that as records\n const recordsArray = Array.isArray(records[0]) ? records[0] : records;\n\n // Map records to SQS record format\n const formattedRecords = recordsArray.map((record) => {\n if (typeof record === \"object\" && record !== null) {\n return {\n ...record,\n body:\n typeof (record as { body?: unknown }).body === \"string\"\n ? (record as { body: string }).body\n : JSON.stringify((record as { body?: unknown }).body ?? record),\n };\n }\n return {\n body: String(record),\n };\n });\n\n return {\n Records: formattedRecords,\n };\n};\n\nexport default sqsTestRecords;\n"],"names":["jsonSchemaMatchers","toBeCalledAboveTrace","jestJsonSchemaMatchers"],"mappings":";;;;;;AAAa,MAAA,GAAG,GAAG;AACjB,IAAA,KAAK,EAAE;AACL,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACb,KAAA;;AAGI,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,cAAc,GAAG,6BAA6B;AACpD,MAAM,mBAAmB,GAAG,iBAAiB;AAC7C,MAAM,wBAAwB,GAAG,sBAAsB;AACvD,MAAM,iBAAiB,GAC5B,4EAA4E;AACvE,MAAM,iBAAiB,GAC5B,4EAA4E;AACvE,MAAM,eAAe,GAC1B,2EAA2E;;ACpBhE,MAAA,kBAAkB,GAAG;AAChC,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,UAAU,EAAE;AACV,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,UAAU,EAAE;AACV,oBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC1B,oBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACzB,oBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3B,iBAAA;AACD,gBAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC9B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC;AACZ,SAAA;AACF,KAAA;IACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;;AAGT,MAAA,aAAa,GAAG;AAC3B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,UAAU,EAAE;AACV,gBAAA,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACtB,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxB,gBAAA,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9B,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACzB,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxB,gBAAA,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACzB,KAAA;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;;;ACrCpB;AACA;AACA;AACA;AAEA,MAAM,gBAAgB,GAAG,CAAC,GAAY,KAAmB;AACvD,IAAA,IAAI;QACF,IACE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC/B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAC/B;YACA,OAAO;AACL,gBAAA,OAAO,EAAE,MAAM,CAAkD,gDAAA,CAAA;AACjE,gBAAA,IAAI,EAAE,IAAI;aACX;;;;IAGH,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,KAAK,CAAC,CAA6C,2CAAA,CAAA,CAAC;;IAG5D,OAAO;AACL,QAAA,OAAO,EAAE,MAAM,CAAkD,gDAAA,CAAA;AACjE,QAAA,IAAI,EAAE,KAAK;KACZ;AACH,CAAC;;AC1BD;AACA;AACA;AACA;AAEA,MAAM,2BAA2B,GAAG,CAClC,QAAc,EACd,GAAG,MAAiB,KACH;AACjB,IAAA,IAAI,IAAyB;AAE7B,IAAA,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACjE,OAAO;AACL,YAAA,OAAO,EAAE,MACP,CAAsE,oEAAA,CAAA;AACxE,YAAA,IAAI,EAAE,KAAK;SACZ;;IAGH,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAe,KAAI;QAC9C,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;YAChC,IAAI,QAAQ,GAAG,IAAI;AACnB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;oBAAE,QAAQ,GAAG,KAAK;;AAEpD,YAAA,IAAI,GAAG,IAAI,IAAI,QAAQ;;AAE3B,KAAC,CAAC;IAEF,IAAI,IAAI,KAAK,SAAS;QAAE,IAAI,GAAG,KAAK;IAEpC,IAAI,IAAI,EAAE;QACR,OAAO;AACL,YAAA,OAAO,EAAE,MACP,CAAA,0EAAA,EAA6E,MAAM,CAAO,KAAA,CAAA;AAC5F,YAAA,IAAI,EAAE,IAAI;SACX;;SACI;QACL,OAAO;AACL,YAAA,OAAO,EAAE,MACP,CAAA,oFAAA,EAAuF,MAAM,CAAO,KAAA,CAAA;AACtG,YAAA,IAAI,EAAE,KAAK;SACZ;;AAEL,CAAC;;AC9CD;AACA;AACA;AACA;AAEA,MAAM,SAAS,GAAG,CAAC,QAAiB,KAAmB;IACrD,IAAI,IAAI,GAAG,KAAK;AAChB,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,QAAA,IAAI;;YAEF,IAAK,QAAgB,EAAE;YACvB,IAAI,GAAG,IAAI;;;QAEX,OAAO,KAAK,EAAE;YACd,IAAI,GAAG,KAAK;;;IAGhB,IAAI,IAAI,EAAE;QACR,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAA,SAAA,EAAY,QAAQ,CAAoB,kBAAA,CAAA;AACvD,YAAA,IAAI,EAAE,IAAI;SACX;;IAEH,OAAO;AACL,QAAA,OAAO,EAAE,MAAM,CAAA,SAAA,EAAY,QAAQ,CAAgB,cAAA,CAAA;AACnD,QAAA,IAAI,EAAE,KAAK;KACZ;AACH,CAAC;;ACzBD;AACA;AACA;AACA;AAEA,SAAS,wBAAwB,CAAC,KAAY,EAAA;AAC5C,IAAA,IAAI,gBAAgB,IAAI,KAAK,EAAE;QAC7B,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAA,UAAA,EAAa,KAAK,CAA4B,0BAAA,CAAA;AAC7D,YAAA,IAAI,EAAE,IAAI;SACX;;IAEH,OAAO;AACL,QAAA,OAAO,EAAE,MAAM,CAAA,UAAA,EAAa,KAAK,CAAwB,sBAAA,CAAA;AACzD,QAAA,IAAI,EAAE,KAAK;KACZ;AACH;AAEA;AACA;AACA;AACA;AAEA,MAAM,eAAe,GAAG,CAAC,QAAiB,KAAmB;;AAE3D,IAAA,IAAI,QAAQ,YAAY,KAAK,EAAE;AAC7B,QAAA,OAAO,wBAAwB,CAAC,QAAQ,CAAC;;IAG3C,MAAM,MAAM,GAAGA,UAAkB,CAAC,aAAa,CAAC,QAAQ,EAAE,kBAAkB,CAAC;AAC7E,IAAA,IAAI,MAAM,CAAC,IAAI,EAAE;QACf,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAA,SAAA,EAAY,QAAQ,CAA2B,yBAAA,CAAA;AAC9D,YAAA,IAAI,EAAE,IAAI;SACX;;SACI;QACL,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAA,SAAA,EAAY,QAAQ,CAAuB,qBAAA,CAAA;AAC1D,YAAA,IAAI,EAAE,KAAK;SACZ;;AAEL,CAAC;;ACzBD,SAAS,wBAAwB,CAC/B,OAAe,EACf,OAAe,EACf,EAAE,WAAW,GAAG,SAAS,EAAA,GAAsC,EAAE,EAAA;AAEjE,IAAA,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACzB,OAAO;YACL,OAAO,EAAE,MAAM,aAAa,OAAO,CAAA,eAAA,EAAkB,WAAW,CAAE,CAAA;AAClE,YAAA,IAAI,EAAE,IAAI;SACX;;IAEH,OAAO;QACL,OAAO,EAAE,MAAM,aAAa,OAAO,CAAA,WAAA,EAAc,WAAW,CAAE,CAAA;AAC9D,QAAA,IAAI,EAAE,KAAK;KACZ;AACH;AAEA;AACA;AACA;AACA;AAEO,MAAM,aAAa,GAAG,CAAC,OAAe,KAC3C,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,EAAE;AACnD,IAAA,WAAW,EAAE,QAAQ;AACtB,CAAA,CAAC;AAEG,MAAM,UAAU,GAAG,CAAC,OAAe,KACxC,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE;AAChD,IAAA,WAAW,EAAE,KAAK;AACnB,CAAA,CAAC;AAEG,MAAM,cAAc,GAAG,CAAC,OAAe,KAC5C,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,EAAE;AACrD,IAAA,WAAW,EAAE,WAAW;AACzB,CAAA,CAAC;AAEG,MAAM,mBAAmB,GAAG,CAAC,OAAe,KACjD,wBAAwB,CAAC,OAAO,EAAE,wBAAwB,EAAE;AAC1D,IAAA,WAAW,EAAE,eAAe;AAC7B,CAAA,CAAC;AAEG,MAAM,YAAY,GAAG,CAAC,OAAe,KAC1C,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,EAAE;AACnD,IAAA,WAAW,EAAE,QAAQ;AACtB,CAAA,CAAC;AAEG,MAAM,YAAY,GAAG,CAAC,OAAe,KAC1C,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,EAAE;AACnD,IAAA,WAAW,EAAE,QAAQ;AACtB,CAAA,CAAC;AAEJ;;;AAGG;AACI,MAAM,WAAW,GAAG,CAAC,OAAe,KACzC,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE;AACjD,IAAA,WAAW,EAAE,MAAM;AACpB,CAAA,CAAC;;ACtEJ,MAAM,YAAY,GAAG,OACnB,QAA0B,KACA;IAC1B,MAAM,OAAO,GACX,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe;AAC7C,QAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS;AAEzC,IAAA,IAAI;AACF,QAAA,MAAM,MAAM,GAAG,QAAQ,EAAE;QAEzB,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,MAAM;;QAGd,OAAO;AACL,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,OAAO,EAAE,MACP,4DAA4D;SAC/D;;IACD,OAAO,KAAK,EAAE;QACd,OAAO;AACL,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,OAAO,EAAE,MACP,CAAA,sDAAA,EAAyD,KAAK,CAAE,CAAA;SACnE;;AAEL,CAAC;;ACZD,SAAS,kBAAkB,CAAC,KAAc,EAAA;IACxC,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,WAAW,IAAI,KAAK;AAC5D;AAEA,MAAM,kBAAkB,GAAG,OACzB,QAA0B,EAC1B,QAAiE,KACvC;IAC1B,MAAM,OAAO,GACX,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe;AAC7C,QAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS;IAEzC,IAAI,aAAa,GAA6B,SAAS;;AAGvD,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,QAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;;AAEhC,YAAA,aAAa,GAAG,IAAI,QAAQ,EAAE;;aACzB;;YAEL,aAAa,GAAG,QAAQ,EAAE;;;SAEvB,IAAI,QAAQ,EAAE;;QAEnB,aAAa,GAAG,QAAQ;;AAG1B,IAAA,IAAI;AACF,QAAA,MAAM,MAAM,GAAG,QAAQ,EAAE;QAEzB,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,MAAM;;;QAId,OAAO;AACL,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,OAAO,EAAE,MACP,iEAAiE;SACpE;;IACD,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;;AAExB,YAAA,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,CAAC,EAAE;;gBAEjD,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE;oBACvC,OAAO;AACL,wBAAA,IAAI,EAAE,KAAK;AACX,wBAAA,OAAO,EAAE,MACP,CAA+B,4BAAA,EAAA,aAAa,CAAC,KAAK,CAAoB,iBAAA,EAAA,KAAK,CAAC,KAAK,CAAG,CAAA,CAAA;qBACvF;;;YAGL,OAAO;AACL,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,OAAO,EAAE,MACP,CAAA,2DAAA,EAA8D,KAAK,CAAE,CAAA;aACxE;;QAGH,OAAO;AACL,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,OAAO,EAAE,MACP,CAAA,uDAAA,EAA0D,KAAK,CAAE,CAAA;SACpE;;AAEL,CAAC;AAED;AACA;AACA;AACA;AAEA,MAAM,sBAAsB,GAAG,CAAC,QAA0B,KACxD,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC;AAC/C,MAAM,sBAAsB,GAAG,CAAC,QAA0B,KACxD,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC;AAC/C,MAAM,yBAAyB,GAAG,CAAC,QAA0B,KAC3D,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC;AAClD,MAAM,qBAAqB,GAAG,CAAC,QAA0B,KACvD,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC;AAC9C,MAAM,0BAA0B,GAAG,CAAC,QAA0B,KAC5D,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACnD,MAAM,oBAAoB,GAAG,CAAC,QAA0B,KACtD,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;AAC7C,MAAM,oBAAoB,GAAG,CAAC,QAA0B,KACtD,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;AAC7C,MAAM,wBAAwB,GAAG,CAAC,QAA0B,KAC1D,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AACjD,MAAM,uBAAuB,GAAG,CAAC,QAA0B,KACzD,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;;ACtFhD;AACA,MAAM,QAAQ,GAAG;;0BAEfC,gBAAoB;IACpB,2BAA2B;IAC3B,SAAS;IACT,eAAe;IACf,aAAa;IACb,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,aAAa,EAAEC,UAAsB,CAAC,aAAa;IACnD,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,sBAAsB;IACtB,sBAAsB;IACtB,yBAAyB;IACzB,YAAY;IACZ,qBAAqB;IACrB,0BAA0B;IAC1B,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,wBAAwB;IACxB,uBAAuB;;AAGvB,IAAA,GAAG,oBAAoB;;;SCnDT,cAAc,GAAA;;AAE5B,IAAA,MAAM,IAAI,GAAG;AACX,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AACb,QAAA,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AACb,QAAA,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACZ,QAAA,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACZ,QAAA,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AACb,QAAA,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;KACH;;IAGZ,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACxB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;;AAGxB,IAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC/B,IAAA,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAC9B,IAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;IAG/B,IAAI,CAAC,IAAI,GAAG;QACV,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB;AAED,IAAA,OAAO,IAAI;AACb;AAEA,MAAM,gBAAgB,GAAG;IACvB,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;CACE;AAEV,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAqB;AAErD,SAAU,MAAM,CAAC,GAAQ,EAAA;IAC7B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,cAAc,EAAE;QAChC,MAAM,eAAe,GAAiB,EAAE;AAExC,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YAClC,eAAe,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAQ;YAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAQ;AACtC,SAAC,CAAC;AAEF,QAAA,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC;;AAEhD;AAEM,SAAU,UAAU,CAAC,GAAQ,EAAA;IACjC,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;IACnD,IAAI,eAAe,EAAE;AACnB,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAClC,YAAA,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;gBAC3B,GAAG,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAQ;;AAEhD,SAAC,CAAC;AACF,QAAA,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC;;AAElC;;ACvFA;;;;AAIG;AACH,MAAM,cAAc,GAAG,CAAC,GAAG,OAAuB,KAAc;;IAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO;;IAGrE,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;QACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;YACjD,OAAO;AACL,gBAAA,GAAG,MAAM;AACT,gBAAA,IAAI,EACF,OAAQ,MAA6B,CAAC,IAAI,KAAK;sBAC1C,MAA2B,CAAC;sBAC7B,IAAI,CAAC,SAAS,CAAE,MAA6B,CAAC,IAAI,IAAI,MAAM,CAAC;aACpE;;QAEH,OAAO;AACL,YAAA,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;SACrB;AACH,KAAC,CAAC;IAEF,OAAO;AACL,QAAA,OAAO,EAAE,gBAAgB;KAC1B;AACH;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/jsonApiSchema.module.ts","../src/matchers/toBeCalledAboveTrace.matcher.ts","../src/matchers/toBeCalledWithInitialParams.matcher.ts","../src/matchers/toBeClass.matcher.ts","../src/matchers/toBeJaypieError.matcher.ts","../src/matchers/toMatch.matcher.ts","../src/matchers/toThrowError.matcher.ts","../src/matchers/toThrowJaypieError.matcher.ts","../src/matchers.module.ts","../src/mockLog.module.ts","../src/sqsTestRecords.function.ts"],"sourcesContent":["export const LOG = {\n LEVEL: {\n ALL: \"all\",\n DEBUG: \"debug\",\n ERROR: \"error\",\n FATAL: \"fatal\",\n INFO: \"info\",\n SILENT: \"silent\",\n TRACE: \"trace\",\n WARN: \"warn\",\n },\n} as const;\n\nexport const RE_BASE64_PATTERN = /^[a-zA-Z0-9\\\\+\\\\/]+$/;\nexport const RE_JWT_PATTERN = /^([^.]+)\\.([^.]+)\\.([^.]+)$/;\nexport const RE_MONGO_ID_PATTERN = /^[a-f0-9]{24}$/i;\nexport const RE_SIGNED_COOKIE_PATTERN = /^s:([^.]+)\\.([^.]+)$/;\nexport const RE_UUID_4_PATTERN =\n /^[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;\nexport const RE_UUID_5_PATTERN =\n /^[a-f0-9]{8}-?[a-f0-9]{4}-?5[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;\nexport const RE_UUID_PATTERN =\n /^[a-f0-9]{8}-?[a-f0-9]{4}-?[a-f0-9]{4}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;\n","import { JsonApiData, JsonApiError } from \"./types/jaypie-testkit\";\n\nexport const jsonApiErrorSchema = {\n type: \"object\",\n properties: {\n errors: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n status: { type: \"number\" },\n title: { type: \"string\" },\n detail: { type: \"string\" },\n },\n required: [\"status\", \"title\"],\n },\n minItems: 1,\n },\n },\n required: [\"errors\"],\n} as const;\n\nexport const jsonApiSchema = {\n type: \"object\",\n properties: {\n data: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n type: { type: \"string\" },\n attributes: { type: \"object\" },\n links: { type: \"object\" },\n meta: { type: \"object\" },\n relationships: { type: \"object\" },\n },\n required: [\"id\", \"type\"],\n },\n meta: { type: \"object\" },\n },\n required: [\"data\"],\n} as const;\n\n// Type guards\nexport const isJsonApiError = (obj: unknown): obj is JsonApiError => {\n if (!obj || typeof obj !== \"object\") return false;\n return \"errors\" in obj && Array.isArray((obj as JsonApiError).errors);\n};\n\nexport const isJsonApiData = (obj: unknown): obj is JsonApiData => {\n if (!obj || typeof obj !== \"object\") return false;\n return \"data\" in obj && typeof (obj as JsonApiData).data === \"object\";\n};\n","import { LogMock, MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\nconst calledAboveTrace = (log: LogMock): MatcherResult => {\n try {\n if (\n log.debug.mock.calls.length > 0 ||\n log.info.mock.calls.length > 0 ||\n log.warn.mock.calls.length > 0 ||\n log.error.mock.calls.length > 0 ||\n log.fatal.mock.calls.length > 0\n ) {\n return {\n message: () => `expected log not to have been called above trace`,\n pass: true,\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n throw Error(`[calledAboveTrace] log is not a mock object`);\n }\n\n return {\n message: () => `expected log not to have been called above trace`,\n pass: false,\n };\n};\n\n//\n//\n// Export\n//\n\nexport default calledAboveTrace;\n","import { isDeepStrictEqual as isEqual } from \"node:util\";\nimport { Mock } from \"vitest\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\nconst toBeCalledWithInitialParams = (\n received: Mock,\n ...passed: unknown[]\n): MatcherResult => {\n let pass: boolean | undefined;\n\n if (!received || typeof received !== \"function\" || !received.mock) {\n return {\n message: () =>\n `Expectation \\`toBeCalledWithInitialParams\\` expected a mock function`,\n pass: false,\n };\n }\n\n received.mock.calls.forEach((call: unknown[]) => {\n if (call.length >= passed.length) {\n let matching = true;\n for (let i = 0; i < passed.length && matching; i += 1) {\n if (!isEqual(passed[i], call[i])) matching = false;\n }\n pass = pass || matching;\n }\n });\n\n if (pass === undefined) pass = false;\n\n if (pass) {\n return {\n message: () =>\n `Expectation \\`toBeCalledWithInitialParams\\` expected call beginning with [${passed},...]`,\n pass: true,\n };\n } else {\n return {\n message: () =>\n `Expectation \\`not.toBeCalledWithInitialParams\\` did not expect call beginning with [${passed},...]`,\n pass: false,\n };\n }\n};\n\n//\n//\n// Export\n//\n\nexport default toBeCalledWithInitialParams;\n","import { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\nconst toBeClass = (received: unknown): MatcherResult => {\n let pass = false;\n if (typeof received === \"function\") {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (received as any)();\n pass = true;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n pass = false;\n }\n }\n if (pass) {\n return {\n message: () => `expected ${received} not to be a class`,\n pass: true,\n };\n }\n return {\n message: () => `expected ${received} to be a class`,\n pass: false,\n };\n};\n\n//\n//\n// Export\n//\n\nexport default toBeClass;\n","import { matchers as jsonSchemaMatchers } from \"jest-json-schema\";\nimport { jsonApiErrorSchema } from \"../jsonApiSchema.module\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Helper Functions\n//\n\nfunction isErrorObjectJaypieError(error: Error): MatcherResult {\n if (\"isProjectError\" in error) {\n return {\n message: () => `expected \"${error}\" not to be a Jaypie error`,\n pass: true,\n };\n }\n return {\n message: () => `expected \"${error}\" to be a Jaypie error`,\n pass: false,\n };\n}\n\n//\n//\n// Main\n//\n\nconst toBeJaypieError = (received: unknown): MatcherResult => {\n // See if it is an instance of error:\n if (received instanceof Error) {\n return isErrorObjectJaypieError(received);\n }\n\n const result = jsonSchemaMatchers.toMatchSchema(received, jsonApiErrorSchema);\n if (result.pass) {\n return {\n message: () => `expected ${received} not to be a Jaypie error`,\n pass: true,\n };\n } else {\n return {\n message: () => `expected ${received} to be a Jaypie error`,\n pass: false,\n };\n }\n};\n\n//\n//\n// Export\n//\n\nexport default toBeJaypieError;\n","import {\n RE_BASE64_PATTERN,\n RE_JWT_PATTERN,\n RE_MONGO_ID_PATTERN,\n RE_SIGNED_COOKIE_PATTERN,\n RE_UUID_4_PATTERN,\n RE_UUID_5_PATTERN,\n RE_UUID_PATTERN,\n} from \"../constants.js\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Helper\n//\n\ninterface ForSubjectToMatchPatternOptions {\n patternName?: string;\n}\n\nfunction forSubjectToMatchPattern(\n subject: string,\n pattern: RegExp,\n { patternName = \"pattern\" }: ForSubjectToMatchPatternOptions = {},\n): MatcherResult {\n if (pattern.test(subject)) {\n return {\n message: () => `expected \"${subject}\" not to match ${patternName}`,\n pass: true,\n };\n }\n return {\n message: () => `expected \"${subject}\" to match ${patternName}`,\n pass: false,\n };\n}\n\n//\n//\n// Main\n//\n\nexport const toMatchBase64 = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_BASE64_PATTERN, {\n patternName: \"Base64\",\n });\n\nexport const toMatchJwt = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_JWT_PATTERN, {\n patternName: \"JWT\",\n });\n\nexport const toMatchMongoId = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_MONGO_ID_PATTERN, {\n patternName: \"MongoDbId\",\n });\n\nexport const toMatchSignedCookie = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_SIGNED_COOKIE_PATTERN, {\n patternName: \"Signed-Cookie\",\n });\n\nexport const toMatchUuid4 = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_UUID_4_PATTERN, {\n patternName: \"UUIDv4\",\n });\n\nexport const toMatchUuid5 = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_UUID_5_PATTERN, {\n patternName: \"UUIDv5\",\n });\n\n/**\n * Determines if subject matches a UUID pattern.\n * Does _NOT_ check if the UUID is valid.\n */\nexport const toMatchUuid = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_UUID_PATTERN, {\n patternName: \"UUID\",\n });\n","import { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\ntype ReceivedFunction = () => unknown | Promise<unknown>;\n\nconst toThrowError = async (\n received: ReceivedFunction,\n): Promise<MatcherResult> => {\n const isAsync =\n received.constructor.name === \"AsyncFunction\" ||\n received.constructor.name === \"Promise\";\n\n try {\n const result = received();\n\n if (isAsync) {\n await result;\n }\n\n return {\n pass: false,\n message: () =>\n \"Expected function to throw an error, but it did not throw.\",\n };\n } catch (error) {\n return {\n pass: true,\n message: () =>\n `Expected function not to throw an error, but it threw ${error}`,\n };\n }\n};\n\n//\n//\n// Export\n//\n\nexport default toThrowError;\n","import {\n BadGatewayError,\n BadRequestError,\n ConfigurationError,\n ForbiddenError,\n GatewayTimeoutError,\n InternalError,\n isJaypieError,\n NotFoundError,\n ProjectError,\n UnauthorizedError,\n UnavailableError,\n} from \"@jaypie/core\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\ntype ReceivedFunction = () => unknown | Promise<unknown>;\ntype ErrorConstructor = new () => ProjectError;\n\nfunction isErrorConstructor(value: unknown): value is ErrorConstructor {\n return typeof value === \"function\" && \"prototype\" in value;\n}\n\nconst toThrowJaypieError = async (\n received: ReceivedFunction,\n expected?: ProjectError | (() => ProjectError) | ErrorConstructor,\n): Promise<MatcherResult> => {\n const isAsync =\n received.constructor.name === \"AsyncFunction\" ||\n received.constructor.name === \"Promise\";\n\n let expectedError: ProjectError | undefined = undefined;\n\n // Handle constructor, function, or instance\n if (typeof expected === \"function\") {\n if (isErrorConstructor(expected)) {\n // It's a constructor\n expectedError = new expected();\n } else {\n // It's a regular function\n expectedError = expected();\n }\n } else if (expected) {\n // It's an instance\n expectedError = expected;\n }\n\n try {\n const result = received();\n\n if (isAsync) {\n await result;\n }\n\n // If no error is thrown, fail the test\n return {\n pass: false,\n message: () =>\n \"Expected function to throw a JaypieError, but it did not throw.\",\n };\n } catch (error) {\n if (isJaypieError(error)) {\n // If expected is also a JaypieError, check if the error matches\n if (expectedError && isJaypieError(expectedError)) {\n // If the error does not match, fail the test\n if (error._type !== expectedError._type) {\n return {\n pass: false,\n message: () =>\n `Expected function to throw \"${expectedError._type}\", but it threw \"${error._type}\"`,\n };\n }\n }\n return {\n pass: true,\n message: () =>\n `Expected function not to throw a JaypieError, but it threw ${error}`,\n };\n }\n\n return {\n pass: false,\n message: () =>\n `Expected function to throw a JaypieError, but it threw ${error}`,\n };\n }\n};\n\n//\n//\n// Convenience Methods\n//\n\nconst toThrowBadGatewayError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, BadGatewayError);\nconst toThrowBadRequestError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, BadRequestError);\nconst toThrowConfigurationError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, ConfigurationError);\nconst toThrowForbiddenError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, ForbiddenError);\nconst toThrowGatewayTimeoutError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, GatewayTimeoutError);\nconst toThrowInternalError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, InternalError);\nconst toThrowNotFoundError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, NotFoundError);\nconst toThrowUnauthorizedError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, UnauthorizedError);\nconst toThrowUnavailableError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, UnavailableError);\n\n//\n//\n// Export\n//\n\nexport default toThrowJaypieError;\n\nexport {\n toThrowBadGatewayError,\n toThrowBadRequestError,\n toThrowConfigurationError,\n toThrowForbiddenError,\n toThrowGatewayTimeoutError,\n toThrowInternalError,\n toThrowNotFoundError,\n toThrowUnauthorizedError,\n toThrowUnavailableError,\n};\n","import * as jestExtendedMatchers from \"jest-extended\";\nimport { matchers as jestJsonSchemaMatchers } from \"jest-json-schema\";\nimport toBeCalledAboveTrace from \"./matchers/toBeCalledAboveTrace.matcher.js\";\nimport toBeCalledWithInitialParams from \"./matchers/toBeCalledWithInitialParams.matcher.js\";\nimport toBeClass from \"./matchers/toBeClass.matcher.js\";\nimport toBeJaypieError from \"./matchers/toBeJaypieError.matcher.js\";\nimport {\n toMatchBase64,\n toMatchJwt,\n toMatchMongoId,\n toMatchSignedCookie,\n toMatchUuid,\n toMatchUuid4,\n toMatchUuid5,\n} from \"./matchers/toMatch.matcher.js\";\nimport toThrowError from \"./matchers/toThrowError.matcher.js\";\nimport toThrowJaypieError, {\n toThrowBadGatewayError,\n toThrowBadRequestError,\n toThrowConfigurationError,\n toThrowForbiddenError,\n toThrowGatewayTimeoutError,\n toThrowInternalError,\n toThrowNotFoundError,\n toThrowUnauthorizedError,\n toThrowUnavailableError,\n} from \"./matchers/toThrowJaypieError.matcher.js\";\n\n// Combine all matchers\nconst matchers = {\n // Custom Jaypie matchers\n toBeCalledAboveTrace,\n toBeCalledWithInitialParams,\n toBeClass,\n toBeJaypieError,\n toMatchBase64,\n toMatchJwt,\n toMatchMongoId,\n toMatchSignedCookie,\n toMatchSchema: jestJsonSchemaMatchers.toMatchSchema,\n toMatchUuid,\n toMatchUuid4,\n toMatchUuid5,\n toThrowBadGatewayError,\n toThrowBadRequestError,\n toThrowConfigurationError,\n toThrowError,\n toThrowForbiddenError,\n toThrowGatewayTimeoutError,\n toThrowInternalError,\n toThrowJaypieError,\n toThrowNotFoundError,\n toThrowUnauthorizedError,\n toThrowUnavailableError,\n\n // Include all jest-extended matchers\n ...jestExtendedMatchers,\n};\n\nexport default matchers;\n","/* 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","interface SQSEvent {\n Records: Array<{\n body: string;\n messageId?: string | number;\n [key: string]: unknown;\n }>;\n}\n\n/**\n * Creates a mock SQS event with the given records\n * @param records - Array of records or individual records to include in the event\n * @returns SQS event object with Records array\n */\nconst sqsTestRecords = (...records: Array<unknown>): SQSEvent => {\n // If first argument is an array, use that as records\n const recordsArray = Array.isArray(records[0]) ? records[0] : records;\n\n // Map records to SQS record format\n const formattedRecords = recordsArray.map((record) => {\n if (typeof record === \"object\" && record !== null) {\n return {\n ...record,\n body:\n typeof (record as { body?: unknown }).body === \"string\"\n ? (record as { body: string }).body\n : JSON.stringify((record as { body?: unknown }).body ?? record),\n };\n }\n return {\n body: String(record),\n };\n });\n\n return {\n Records: formattedRecords,\n };\n};\n\nexport default sqsTestRecords;\n"],"names":["isEqual","jsonSchemaMatchers","toBeCalledAboveTrace","jestJsonSchemaMatchers"],"mappings":";;;;;;AAAa,MAAA,GAAG,GAAG;AACjB,IAAA,KAAK,EAAE;AACL,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACb,KAAA;;AAGI,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,cAAc,GAAG,6BAA6B;AACpD,MAAM,mBAAmB,GAAG,iBAAiB;AAC7C,MAAM,wBAAwB,GAAG,sBAAsB;AACvD,MAAM,iBAAiB,GAC5B,4EAA4E;AACvE,MAAM,iBAAiB,GAC5B,4EAA4E;AACvE,MAAM,eAAe,GAC1B,2EAA2E;;ACpBhE,MAAA,kBAAkB,GAAG;AAChC,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,UAAU,EAAE;AACV,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,UAAU,EAAE;AACV,oBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC1B,oBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACzB,oBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3B,iBAAA;AACD,gBAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC9B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC;AACZ,SAAA;AACF,KAAA;IACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;;AAGT,MAAA,aAAa,GAAG;AAC3B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,UAAU,EAAE;AACV,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,UAAU,EAAE;AACV,gBAAA,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACtB,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxB,gBAAA,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9B,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACzB,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxB,gBAAA,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACzB,KAAA;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;;;ACrCpB;AACA;AACA;AACA;AAEA,MAAM,gBAAgB,GAAG,CAAC,GAAY,KAAmB;AACvD,IAAA,IAAI;QACF,IACE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC/B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAC/B;YACA,OAAO;AACL,gBAAA,OAAO,EAAE,MAAM,CAAkD,gDAAA,CAAA;AACjE,gBAAA,IAAI,EAAE,IAAI;aACX;;;;IAGH,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,KAAK,CAAC,CAA6C,2CAAA,CAAA,CAAC;;IAG5D,OAAO;AACL,QAAA,OAAO,EAAE,MAAM,CAAkD,gDAAA,CAAA;AACjE,QAAA,IAAI,EAAE,KAAK;KACZ;AACH,CAAC;;AC1BD;AACA;AACA;AACA;AAEA,MAAM,2BAA2B,GAAG,CAClC,QAAc,EACd,GAAG,MAAiB,KACH;AACjB,IAAA,IAAI,IAAyB;AAE7B,IAAA,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACjE,OAAO;AACL,YAAA,OAAO,EAAE,MACP,CAAsE,oEAAA,CAAA;AACxE,YAAA,IAAI,EAAE,KAAK;SACZ;;IAGH,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAe,KAAI;QAC9C,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;YAChC,IAAI,QAAQ,GAAG,IAAI;AACnB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE;AACrD,gBAAA,IAAI,CAACA,iBAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;oBAAE,QAAQ,GAAG,KAAK;;AAEpD,YAAA,IAAI,GAAG,IAAI,IAAI,QAAQ;;AAE3B,KAAC,CAAC;IAEF,IAAI,IAAI,KAAK,SAAS;QAAE,IAAI,GAAG,KAAK;IAEpC,IAAI,IAAI,EAAE;QACR,OAAO;AACL,YAAA,OAAO,EAAE,MACP,CAAA,0EAAA,EAA6E,MAAM,CAAO,KAAA,CAAA;AAC5F,YAAA,IAAI,EAAE,IAAI;SACX;;SACI;QACL,OAAO;AACL,YAAA,OAAO,EAAE,MACP,CAAA,oFAAA,EAAuF,MAAM,CAAO,KAAA,CAAA;AACtG,YAAA,IAAI,EAAE,KAAK;SACZ;;AAEL,CAAC;;AC9CD;AACA;AACA;AACA;AAEA,MAAM,SAAS,GAAG,CAAC,QAAiB,KAAmB;IACrD,IAAI,IAAI,GAAG,KAAK;AAChB,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,QAAA,IAAI;;YAEF,IAAK,QAAgB,EAAE;YACvB,IAAI,GAAG,IAAI;;;QAEX,OAAO,KAAK,EAAE;YACd,IAAI,GAAG,KAAK;;;IAGhB,IAAI,IAAI,EAAE;QACR,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAA,SAAA,EAAY,QAAQ,CAAoB,kBAAA,CAAA;AACvD,YAAA,IAAI,EAAE,IAAI;SACX;;IAEH,OAAO;AACL,QAAA,OAAO,EAAE,MAAM,CAAA,SAAA,EAAY,QAAQ,CAAgB,cAAA,CAAA;AACnD,QAAA,IAAI,EAAE,KAAK;KACZ;AACH,CAAC;;ACzBD;AACA;AACA;AACA;AAEA,SAAS,wBAAwB,CAAC,KAAY,EAAA;AAC5C,IAAA,IAAI,gBAAgB,IAAI,KAAK,EAAE;QAC7B,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAA,UAAA,EAAa,KAAK,CAA4B,0BAAA,CAAA;AAC7D,YAAA,IAAI,EAAE,IAAI;SACX;;IAEH,OAAO;AACL,QAAA,OAAO,EAAE,MAAM,CAAA,UAAA,EAAa,KAAK,CAAwB,sBAAA,CAAA;AACzD,QAAA,IAAI,EAAE,KAAK;KACZ;AACH;AAEA;AACA;AACA;AACA;AAEA,MAAM,eAAe,GAAG,CAAC,QAAiB,KAAmB;;AAE3D,IAAA,IAAI,QAAQ,YAAY,KAAK,EAAE;AAC7B,QAAA,OAAO,wBAAwB,CAAC,QAAQ,CAAC;;IAG3C,MAAM,MAAM,GAAGC,UAAkB,CAAC,aAAa,CAAC,QAAQ,EAAE,kBAAkB,CAAC;AAC7E,IAAA,IAAI,MAAM,CAAC,IAAI,EAAE;QACf,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAA,SAAA,EAAY,QAAQ,CAA2B,yBAAA,CAAA;AAC9D,YAAA,IAAI,EAAE,IAAI;SACX;;SACI;QACL,OAAO;AACL,YAAA,OAAO,EAAE,MAAM,CAAA,SAAA,EAAY,QAAQ,CAAuB,qBAAA,CAAA;AAC1D,YAAA,IAAI,EAAE,KAAK;SACZ;;AAEL,CAAC;;ACzBD,SAAS,wBAAwB,CAC/B,OAAe,EACf,OAAe,EACf,EAAE,WAAW,GAAG,SAAS,EAAA,GAAsC,EAAE,EAAA;AAEjE,IAAA,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACzB,OAAO;YACL,OAAO,EAAE,MAAM,aAAa,OAAO,CAAA,eAAA,EAAkB,WAAW,CAAE,CAAA;AAClE,YAAA,IAAI,EAAE,IAAI;SACX;;IAEH,OAAO;QACL,OAAO,EAAE,MAAM,aAAa,OAAO,CAAA,WAAA,EAAc,WAAW,CAAE,CAAA;AAC9D,QAAA,IAAI,EAAE,KAAK;KACZ;AACH;AAEA;AACA;AACA;AACA;AAEO,MAAM,aAAa,GAAG,CAAC,OAAe,KAC3C,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,EAAE;AACnD,IAAA,WAAW,EAAE,QAAQ;AACtB,CAAA,CAAC;AAEG,MAAM,UAAU,GAAG,CAAC,OAAe,KACxC,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE;AAChD,IAAA,WAAW,EAAE,KAAK;AACnB,CAAA,CAAC;AAEG,MAAM,cAAc,GAAG,CAAC,OAAe,KAC5C,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,EAAE;AACrD,IAAA,WAAW,EAAE,WAAW;AACzB,CAAA,CAAC;AAEG,MAAM,mBAAmB,GAAG,CAAC,OAAe,KACjD,wBAAwB,CAAC,OAAO,EAAE,wBAAwB,EAAE;AAC1D,IAAA,WAAW,EAAE,eAAe;AAC7B,CAAA,CAAC;AAEG,MAAM,YAAY,GAAG,CAAC,OAAe,KAC1C,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,EAAE;AACnD,IAAA,WAAW,EAAE,QAAQ;AACtB,CAAA,CAAC;AAEG,MAAM,YAAY,GAAG,CAAC,OAAe,KAC1C,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,EAAE;AACnD,IAAA,WAAW,EAAE,QAAQ;AACtB,CAAA,CAAC;AAEJ;;;AAGG;AACI,MAAM,WAAW,GAAG,CAAC,OAAe,KACzC,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE;AACjD,IAAA,WAAW,EAAE,MAAM;AACpB,CAAA,CAAC;;ACtEJ,MAAM,YAAY,GAAG,OACnB,QAA0B,KACA;IAC1B,MAAM,OAAO,GACX,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe;AAC7C,QAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS;AAEzC,IAAA,IAAI;AACF,QAAA,MAAM,MAAM,GAAG,QAAQ,EAAE;QAEzB,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,MAAM;;QAGd,OAAO;AACL,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,OAAO,EAAE,MACP,4DAA4D;SAC/D;;IACD,OAAO,KAAK,EAAE;QACd,OAAO;AACL,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,OAAO,EAAE,MACP,CAAA,sDAAA,EAAyD,KAAK,CAAE,CAAA;SACnE;;AAEL,CAAC;;ACZD,SAAS,kBAAkB,CAAC,KAAc,EAAA;IACxC,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,WAAW,IAAI,KAAK;AAC5D;AAEA,MAAM,kBAAkB,GAAG,OACzB,QAA0B,EAC1B,QAAiE,KACvC;IAC1B,MAAM,OAAO,GACX,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe;AAC7C,QAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS;IAEzC,IAAI,aAAa,GAA6B,SAAS;;AAGvD,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,QAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;;AAEhC,YAAA,aAAa,GAAG,IAAI,QAAQ,EAAE;;aACzB;;YAEL,aAAa,GAAG,QAAQ,EAAE;;;SAEvB,IAAI,QAAQ,EAAE;;QAEnB,aAAa,GAAG,QAAQ;;AAG1B,IAAA,IAAI;AACF,QAAA,MAAM,MAAM,GAAG,QAAQ,EAAE;QAEzB,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,MAAM;;;QAId,OAAO;AACL,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,OAAO,EAAE,MACP,iEAAiE;SACpE;;IACD,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;;AAExB,YAAA,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,CAAC,EAAE;;gBAEjD,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE;oBACvC,OAAO;AACL,wBAAA,IAAI,EAAE,KAAK;AACX,wBAAA,OAAO,EAAE,MACP,CAA+B,4BAAA,EAAA,aAAa,CAAC,KAAK,CAAoB,iBAAA,EAAA,KAAK,CAAC,KAAK,CAAG,CAAA,CAAA;qBACvF;;;YAGL,OAAO;AACL,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,OAAO,EAAE,MACP,CAAA,2DAAA,EAA8D,KAAK,CAAE,CAAA;aACxE;;QAGH,OAAO;AACL,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,OAAO,EAAE,MACP,CAAA,uDAAA,EAA0D,KAAK,CAAE,CAAA;SACpE;;AAEL,CAAC;AAED;AACA;AACA;AACA;AAEA,MAAM,sBAAsB,GAAG,CAAC,QAA0B,KACxD,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC;AAC/C,MAAM,sBAAsB,GAAG,CAAC,QAA0B,KACxD,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC;AAC/C,MAAM,yBAAyB,GAAG,CAAC,QAA0B,KAC3D,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC;AAClD,MAAM,qBAAqB,GAAG,CAAC,QAA0B,KACvD,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC;AAC9C,MAAM,0BAA0B,GAAG,CAAC,QAA0B,KAC5D,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACnD,MAAM,oBAAoB,GAAG,CAAC,QAA0B,KACtD,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;AAC7C,MAAM,oBAAoB,GAAG,CAAC,QAA0B,KACtD,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;AAC7C,MAAM,wBAAwB,GAAG,CAAC,QAA0B,KAC1D,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AACjD,MAAM,uBAAuB,GAAG,CAAC,QAA0B,KACzD,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;;ACtFhD;AACA,MAAM,QAAQ,GAAG;;0BAEfC,gBAAoB;IACpB,2BAA2B;IAC3B,SAAS;IACT,eAAe;IACf,aAAa;IACb,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,aAAa,EAAEC,UAAsB,CAAC,aAAa;IACnD,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,sBAAsB;IACtB,sBAAsB;IACtB,yBAAyB;IACzB,YAAY;IACZ,qBAAqB;IACrB,0BAA0B;IAC1B,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,wBAAwB;IACxB,uBAAuB;;AAGvB,IAAA,GAAG,oBAAoB;;;SCnDT,cAAc,GAAA;;AAE5B,IAAA,MAAM,IAAI,GAAG;AACX,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AACb,QAAA,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AACb,QAAA,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACZ,QAAA,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACZ,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;AACd,QAAA,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACZ,QAAA,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AACb,QAAA,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;KACH;;IAGZ,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACxB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;IACzB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;;AAGxB,IAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC/B,IAAA,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAC9B,IAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;IAG/B,IAAI,CAAC,IAAI,GAAG;QACV,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB;AAED,IAAA,OAAO,IAAI;AACb;AAEA,MAAM,gBAAgB,GAAG;IACvB,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;CACE;AAEV,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAqB;AAErD,SAAU,MAAM,CAAC,GAAQ,EAAA;IAC7B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,cAAc,EAAE;QAChC,MAAM,eAAe,GAAiB,EAAE;AAExC,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YAClC,eAAe,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAQ;YAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAQ;AACtC,SAAC,CAAC;AAEF,QAAA,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC;;AAEhD;AAEM,SAAU,UAAU,CAAC,GAAQ,EAAA;IACjC,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;IACnD,IAAI,eAAe,EAAE;AACnB,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAClC,YAAA,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;gBAC3B,GAAG,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAQ;;AAEhD,SAAC,CAAC;AACF,QAAA,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC;;AAElC;;ACvFA;;;;AAIG;AACH,MAAM,cAAc,GAAG,CAAC,GAAG,OAAuB,KAAc;;IAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO;;IAGrE,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;QACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;YACjD,OAAO;AACL,gBAAA,GAAG,MAAM;AACT,gBAAA,IAAI,EACF,OAAQ,MAA6B,CAAC,IAAI,KAAK;sBAC1C,MAA2B,CAAC;sBAC7B,IAAI,CAAC,SAAS,CAAE,MAA6B,CAAC,IAAI,IAAI,MAAM,CAAC;aACpE;;QAEH,OAAO;AACL,YAAA,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;SACrB;AACH,KAAC,CAAC;IAEF,OAAO;AACL,QAAA,OAAO,EAAE,gBAAgB;KAC1B;AACH;;;;"}
@@ -1,4 +1,4 @@
1
- import { Log, 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";
1
+ import { Log, uuid as originalUuid, validate as originalValidate, 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
2
  import type { JsonReturn } from "@jaypie/types";
3
3
  import { ExpressHandlerParameter, GenericArgs, JaypieHandlerFunction, JaypieHandlerOptions, JaypieHandlerParameter } from "./types/jaypie-testkit";
4
4
  import type { SQSMessageResponse } from "@jaypie/aws";
@@ -51,6 +51,7 @@ declare const _default: {
51
51
  UnhandledError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnhandledErrorOriginal>) => InstanceType<typeof UnhandledErrorOriginal>>;
52
52
  UnreachableCodeError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnreachableCodeErrorOriginal>) => InstanceType<typeof UnreachableCodeErrorOriginal>>;
53
53
  uuid: import("vitest").Mock<typeof originalUuid>;
54
+ validate: import("vitest").Mock<(...params: Parameters<typeof originalValidate>) => ReturnType<typeof originalValidate>>;
54
55
  submitMetric: import("vitest").Mock<() => boolean>;
55
56
  submitMetricSet: import("vitest").Mock<() => boolean>;
56
57
  expressHandler: import("vitest").Mock<(handlerOrProps: ExpressHandlerParameter, propsOrHandler?: ExpressHandlerParameter) => (req?: {}, res?: {}, ...extra: unknown[]) => Promise<unknown>>;
@@ -1,5 +1,5 @@
1
1
  import { getMessages as getMessages$1 } from '@jaypie/aws';
2
- 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';
2
+ 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, validate as validate$1, HTTP, log } from '@jaypie/core';
3
3
  import { mongoose } from '@jaypie/mongoose';
4
4
  import { vi, beforeAll } from 'vitest';
5
5
  import { readFile } from 'fs/promises';
@@ -327,6 +327,65 @@ const sleep = vi.fn(() => {
327
327
  return true;
328
328
  });
329
329
  const uuid = vi.fn(uuid$1);
330
+ // @jaypie/core validate
331
+ const validate = vi.fn((...params) => {
332
+ return validate$1(...params);
333
+ });
334
+ // Set up convenience functions to match original validate
335
+ validate.array = vi.fn((...params) => {
336
+ return validate$1.array(...params);
337
+ });
338
+ validate.boolean = vi.fn((...params) => {
339
+ return validate$1.boolean(...params);
340
+ });
341
+ validate.class = vi.fn((...params) => {
342
+ return validate$1.class(...params);
343
+ });
344
+ validate.function = vi.fn((...params) => {
345
+ return validate$1.function(...params);
346
+ });
347
+ validate.null = vi.fn((...params) => {
348
+ return validate$1.null(...params);
349
+ });
350
+ validate.number = vi.fn((...params) => {
351
+ return validate$1.number(...params);
352
+ });
353
+ validate.object = vi.fn((...params) => {
354
+ return validate$1.object(...params);
355
+ });
356
+ validate.string = vi.fn((...params) => {
357
+ return validate$1.string(...params);
358
+ });
359
+ validate.undefined = vi.fn((...params) => {
360
+ return validate$1.undefined(...params);
361
+ });
362
+ // Set up optional functions
363
+ validate.optional = {
364
+ array: vi.fn((...params) => {
365
+ return validate$1.optional.array(...params);
366
+ }),
367
+ boolean: vi.fn((...params) => {
368
+ return validate$1.optional.boolean(...params);
369
+ }),
370
+ class: vi.fn((...params) => {
371
+ return validate$1.optional.class(...params);
372
+ }),
373
+ function: vi.fn((...params) => {
374
+ return validate$1.optional.function(...params);
375
+ }),
376
+ null: vi.fn((...params) => {
377
+ return validate$1.optional.null(...params);
378
+ }),
379
+ number: vi.fn((...params) => {
380
+ return validate$1.optional.number(...params);
381
+ }),
382
+ object: vi.fn((...params) => {
383
+ return validate$1.optional.object(...params);
384
+ }),
385
+ string: vi.fn((...params) => {
386
+ return validate$1.optional.string(...params);
387
+ }),
388
+ };
330
389
  // @jaypie/datadog
331
390
  const submitMetric = vi.fn(() => {
332
391
  return true;
@@ -610,6 +669,7 @@ var jaypie_mock = {
610
669
  UnhandledError,
611
670
  UnreachableCodeError,
612
671
  uuid,
672
+ validate,
613
673
  // Datadog
614
674
  submitMetric,
615
675
  submitMetricSet,
@@ -1 +1 @@
1
- {"version":3,"file":"jaypie.mock.js","sources":["../src/mockLog.module.ts","../src/placeholders.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 no-shadow */\n\n//\n//\n// Helper Functions\n//\n\n/*!\n * Get an object value from a specific path\n * (c) 2018 Chris Ferdinandi, MIT License, https://gomakethings.com\n * @param {Object} obj The object\n * @param {String|Array} path The path\n * @param {*} def A default value to return [optional]\n * @return {*} The value\n */\nfunction get(\n obj: Record<string, unknown>,\n path: string | string[],\n def?: unknown,\n): unknown {\n /**\n * If the path is a string, convert it to an array\n * @param {String|Array} path The path\n * @return {Array} The path array\n */\n const stringToPath = (path: string | string[]): string[] => {\n // If the path isn't a string, return it\n if (typeof path !== \"string\") return path as string[];\n\n // Create new array\n const output: string[] = [];\n\n // Split to an array with dot notation\n path.split(\".\").forEach((item) => {\n // Split to an array with bracket notation\n item.split(/\\[([^}]+)\\]/g).forEach((key) => {\n // Push to the new array\n if (key.length > 0) {\n output.push(key);\n }\n });\n });\n\n return output;\n };\n\n // Get the path as an array\n path = stringToPath(path);\n\n // Cache the current object\n let current: unknown = obj;\n\n // For each item in the path, dig into the object\n for (let i = 0; i < path.length; i++) {\n // If the item isn't found, return the default (or null)\n if (\n !current ||\n typeof current !== \"object\" ||\n !(path[i] in (current as object))\n )\n return def;\n\n // Otherwise, update the current value\n current = (current as Record<string, unknown>)[path[i]];\n }\n\n return current;\n}\n\n//\n//\n// Main\n//\n\n/*!\n * Replaces placeholders with real content\n * Requires get() - https://vanillajstoolkit.com/helpers/get/\n * (c) 2019 Chris Ferdinandi, MIT License, https://gomakethings.com\n * @param {String} template The template string\n * @param {String} local A local placeholder to use, if any\n */\nfunction placeholders(\n template: string | (() => string),\n data?: Record<string, unknown>,\n): string {\n // Check if the template is a string or a function\n template = typeof template === \"function\" ? template() : template;\n if ([\"string\", \"number\"].indexOf(typeof template) === -1)\n throw Error(\"PlaceholdersJS: please provide a valid template\");\n\n // If no data, return template as-is\n if (!data) return template;\n\n // Replace our curly braces with data\n template = template.replace(/\\{\\{([^}]+)\\}\\}/g, (match: string) => {\n // Remove the wrapping curly braces\n match = match.slice(2, -2);\n\n // Get the value\n const val = get(data, match.trim(), undefined);\n\n // Replace\n if (!val) return `{{${match}}}`;\n return String(val);\n });\n\n return template;\n}\n\n//\n//\n// Export\n//\n\nexport default placeholders;\n","import { 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 { mongoose } from \"@jaypie/mongoose\";\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\";\nimport { dirname, join } from \"path\";\nimport { fileURLToPath } from \"url\";\nimport originalPlaceholders from \"./placeholders.js\";\n\n//\n//\n// Setup\n//\n\nconst TAG = JAYPIE.LIB.TESTKIT;\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst MOCK_TEXTRACT_DOCUMENT_PATH = join(__dirname, \"mockTextract.json\");\n\nlet textractJsonToMarkdownOriginal = vi.fn<typeof textractJsonToMarkdown>();\nlet MarkdownPageOriginal: typeof OriginalMarkdownPage;\nlet mockTextractContents: string;\n\n// Spy on log:\nbeforeAll(async () => {\n const textract =\n await vi.importActual<typeof import(\"@jaypie/textract\")>(\n \"@jaypie/textract\",\n );\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\nconst getEnvSecret = vi.fn((): string => {\n return `_MOCK_ENV_SECRET_[${TAG}]`;\n});\n\nconst getMessages = vi.fn((...params: Parameters<typeof originalGetMessages>) =>\n originalGetMessages(...params),\n);\n\nconst getSecret = vi.fn((): string => {\n return `_MOCK_SECRET_[${TAG}]`;\n});\n\nconst getTextractJob = vi.fn((job: string): SQSMessageResponse => {\n return { value: `_MOCK_TEXTRACT_JOB_[${job}]` };\n});\n\nconst sendBatchMessages = vi.fn((): SQSMessageResponse => {\n return { value: `_MOCK_BATCH_MESSAGES_[${TAG}]` };\n});\n\nconst sendMessage = vi.fn((): SQSMessageResponse => {\n return { value: `_MOCK_MESSAGE_[${TAG}]` };\n});\n\nconst 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\nconst BadGatewayError = vi.fn(\n (\n ...params: ConstructorParameters<typeof BadGatewayErrorOriginal>\n ): InstanceType<typeof BadGatewayErrorOriginal> => {\n return new BadGatewayErrorOriginal(...params);\n },\n);\n\nconst BadRequestError = vi.fn(\n (\n ...params: ConstructorParameters<typeof BadRequestErrorOriginal>\n ): InstanceType<typeof BadRequestErrorOriginal> => {\n return new BadRequestErrorOriginal(...params);\n },\n);\n\nconst 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\nconst ForbiddenError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ForbiddenErrorOriginal>\n ): InstanceType<typeof ForbiddenErrorOriginal> => {\n return new ForbiddenErrorOriginal(...params);\n },\n);\n\nconst GatewayTimeoutError = vi.fn(\n (\n ...params: ConstructorParameters<typeof GatewayTimeoutErrorOriginal>\n ): InstanceType<typeof GatewayTimeoutErrorOriginal> => {\n return new GatewayTimeoutErrorOriginal(...params);\n },\n);\n\nconst GoneError = vi.fn(\n (\n ...params: ConstructorParameters<typeof GoneErrorOriginal>\n ): InstanceType<typeof GoneErrorOriginal> => {\n return new GoneErrorOriginal(...params);\n },\n);\n\nconst IllogicalError = vi.fn(\n (\n ...params: ConstructorParameters<typeof IllogicalErrorOriginal>\n ): InstanceType<typeof IllogicalErrorOriginal> => {\n return new IllogicalErrorOriginal(...params);\n },\n);\n\nconst InternalError = vi.fn(\n (\n ...params: ConstructorParameters<typeof InternalErrorOriginal>\n ): InstanceType<typeof InternalErrorOriginal> => {\n return new InternalErrorOriginal(...params);\n },\n);\n\nconst MethodNotAllowedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof MethodNotAllowedErrorOriginal>\n ): InstanceType<typeof MethodNotAllowedErrorOriginal> => {\n return new MethodNotAllowedErrorOriginal(...params);\n },\n);\n\nconst MultiError = vi.fn(\n (\n ...params: ConstructorParameters<typeof MultiErrorOriginal>\n ): InstanceType<typeof MultiErrorOriginal> => {\n return new MultiErrorOriginal(...params);\n },\n);\n\nconst NotFoundError = vi.fn(\n (\n ...params: ConstructorParameters<typeof NotFoundErrorOriginal>\n ): InstanceType<typeof NotFoundErrorOriginal> => {\n return new NotFoundErrorOriginal(...params);\n },\n);\n\nconst NotImplementedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof NotImplementedErrorOriginal>\n ): InstanceType<typeof NotImplementedErrorOriginal> => {\n return new NotImplementedErrorOriginal(...params);\n },\n);\n\nconst ProjectError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ProjectErrorOriginal>\n ): InstanceType<typeof ProjectErrorOriginal> => {\n return new ProjectErrorOriginal(...params);\n },\n);\n\nconst ProjectMultiError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ProjectMultiErrorOriginal>\n ): InstanceType<typeof ProjectMultiErrorOriginal> => {\n return new ProjectMultiErrorOriginal(...params);\n },\n);\n\nconst RejectedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof RejectedErrorOriginal>\n ): InstanceType<typeof RejectedErrorOriginal> => {\n return new RejectedErrorOriginal(...params);\n },\n);\n\nconst TeapotError = vi.fn(\n (\n ...params: ConstructorParameters<typeof TeapotErrorOriginal>\n ): InstanceType<typeof TeapotErrorOriginal> => {\n return new TeapotErrorOriginal(...params);\n },\n);\n\nconst UnauthorizedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnauthorizedErrorOriginal>\n ): InstanceType<typeof UnauthorizedErrorOriginal> => {\n return new UnauthorizedErrorOriginal(...params);\n },\n);\n\nconst UnavailableError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnavailableErrorOriginal>\n ): InstanceType<typeof UnavailableErrorOriginal> => {\n return new UnavailableErrorOriginal(...params);\n },\n);\n\nconst UnhandledError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnhandledErrorOriginal>\n ): InstanceType<typeof UnhandledErrorOriginal> => {\n return new UnhandledErrorOriginal(...params);\n },\n);\n\nconst 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\nconst envBoolean = vi.fn((): boolean => {\n return true;\n});\n\nconst placeholders = vi.fn(\n (...params: Parameters<typeof originalPlaceholders>) =>\n originalPlaceholders(...params),\n);\n\nconst 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\nconst sleep = vi.fn((): boolean => {\n return true;\n});\n\nconst uuid = vi.fn(originalUuid);\n\n// @jaypie/datadog\nconst submitMetric = vi.fn((): boolean => {\n return true;\n});\n\nconst submitMetricSet = vi.fn((): boolean => {\n return true;\n});\n\n// @jaypie/express\nconst 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\nconst 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 mockOperate = vi.fn().mockResolvedValue({\n history: [\n {\n content: \"_MOCK_USER_INPUT\",\n role: \"user\",\n type: \"message\",\n },\n {\n id: \"_MOCK_MESSAGE_ID\",\n type: \"message\",\n status: \"completed\",\n content: \"_MOCK_CONTENT\",\n role: \"assistant\",\n },\n ],\n output: [\n {\n id: \"_MOCK_MESSAGE_ID\",\n type: \"message\",\n status: \"completed\",\n content: \"_MOCK_CONTENT\",\n role: \"assistant\",\n },\n ],\n responses: [\n {\n id: \"_MOCK_RESPONSE_ID\",\n object: \"response\",\n created_at: Date.now() / 1000,\n status: \"completed\",\n error: null,\n output_text: \"_MOCK_OUTPUT_TEXT\",\n },\n ],\n status: \"completed\",\n usage: { input: 100, output: 20, reasoning: 0, total: 120 },\n content: \"_MOCK_OUTPUT_TEXT\",\n});\nconst mockSend = vi.fn().mockResolvedValue(\"_MOCK_LLM_RESPONSE\");\nconst Llm = Object.assign(\n vi.fn().mockImplementation((providerName = \"_MOCK_LLM_PROVIDER\") => ({\n _provider: providerName,\n _llm: {\n operate: mockOperate,\n send: mockSend,\n },\n operate: mockOperate,\n send: mockSend,\n })),\n {\n operate: mockOperate,\n send: mockSend,\n },\n);\n\n// @jaypie/mongoose\nconst connect = vi.fn((): boolean => {\n return true;\n});\n\nconst connectFromSecretEnv = vi.fn((): boolean => {\n return true;\n});\n\nconst disconnect = vi.fn((): boolean => {\n return true;\n});\n\n// @jaypie/textract\nconst 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\nconst textractJsonToMarkdown = vi.fn((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// Export default for convenience\nexport default {\n // AWS\n getEnvSecret,\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 log,\n MethodNotAllowedError,\n MultiError,\n NotFoundError,\n NotImplementedError,\n placeholders,\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 mongoose,\n // Textract\n MarkdownPage,\n textractJsonToMarkdown,\n};\n"],"names":["placeholders","originalGetMessages","BadGatewayErrorOriginal","BadRequestErrorOriginal","ConfigurationErrorOriginal","ForbiddenErrorOriginal","GatewayTimeoutErrorOriginal","GoneErrorOriginal","IllogicalErrorOriginal","InternalErrorOriginal","MethodNotAllowedErrorOriginal","MultiErrorOriginal","NotFoundErrorOriginal","NotImplementedErrorOriginal","ProjectErrorOriginal","ProjectMultiErrorOriginal","RejectedErrorOriginal","TeapotErrorOriginal","UnauthorizedErrorOriginal","UnavailableErrorOriginal","UnhandledErrorOriginal","UnreachableCodeErrorOriginal","originalPlaceholders","originalUuid"],"mappings":"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"}
1
+ {"version":3,"file":"jaypie.mock.js","sources":["../src/mockLog.module.ts","../src/placeholders.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 no-shadow */\n\n//\n//\n// Helper Functions\n//\n\n/*!\n * Get an object value from a specific path\n * (c) 2018 Chris Ferdinandi, MIT License, https://gomakethings.com\n * @param {Object} obj The object\n * @param {String|Array} path The path\n * @param {*} def A default value to return [optional]\n * @return {*} The value\n */\nfunction get(\n obj: Record<string, unknown>,\n path: string | string[],\n def?: unknown,\n): unknown {\n /**\n * If the path is a string, convert it to an array\n * @param {String|Array} path The path\n * @return {Array} The path array\n */\n const stringToPath = (path: string | string[]): string[] => {\n // If the path isn't a string, return it\n if (typeof path !== \"string\") return path as string[];\n\n // Create new array\n const output: string[] = [];\n\n // Split to an array with dot notation\n path.split(\".\").forEach((item) => {\n // Split to an array with bracket notation\n item.split(/\\[([^}]+)\\]/g).forEach((key) => {\n // Push to the new array\n if (key.length > 0) {\n output.push(key);\n }\n });\n });\n\n return output;\n };\n\n // Get the path as an array\n path = stringToPath(path);\n\n // Cache the current object\n let current: unknown = obj;\n\n // For each item in the path, dig into the object\n for (let i = 0; i < path.length; i++) {\n // If the item isn't found, return the default (or null)\n if (\n !current ||\n typeof current !== \"object\" ||\n !(path[i] in (current as object))\n )\n return def;\n\n // Otherwise, update the current value\n current = (current as Record<string, unknown>)[path[i]];\n }\n\n return current;\n}\n\n//\n//\n// Main\n//\n\n/*!\n * Replaces placeholders with real content\n * Requires get() - https://vanillajstoolkit.com/helpers/get/\n * (c) 2019 Chris Ferdinandi, MIT License, https://gomakethings.com\n * @param {String} template The template string\n * @param {String} local A local placeholder to use, if any\n */\nfunction placeholders(\n template: string | (() => string),\n data?: Record<string, unknown>,\n): string {\n // Check if the template is a string or a function\n template = typeof template === \"function\" ? template() : template;\n if ([\"string\", \"number\"].indexOf(typeof template) === -1)\n throw Error(\"PlaceholdersJS: please provide a valid template\");\n\n // If no data, return template as-is\n if (!data) return template;\n\n // Replace our curly braces with data\n template = template.replace(/\\{\\{([^}]+)\\}\\}/g, (match: string) => {\n // Remove the wrapping curly braces\n match = match.slice(2, -2);\n\n // Get the value\n const val = get(data, match.trim(), undefined);\n\n // Replace\n if (!val) return `{{${match}}}`;\n return String(val);\n });\n\n return template;\n}\n\n//\n//\n// Export\n//\n\nexport default placeholders;\n","import { getMessages as originalGetMessages } from \"@jaypie/aws\";\nimport {\n force,\n Log,\n uuid as originalUuid,\n validate as originalValidate,\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 { mongoose } from \"@jaypie/mongoose\";\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\";\nimport { dirname, join } from \"path\";\nimport { fileURLToPath } from \"url\";\nimport originalPlaceholders from \"./placeholders.js\";\n\n//\n//\n// Setup\n//\n\nconst TAG = JAYPIE.LIB.TESTKIT;\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst MOCK_TEXTRACT_DOCUMENT_PATH = join(__dirname, \"mockTextract.json\");\n\nlet textractJsonToMarkdownOriginal = vi.fn<typeof textractJsonToMarkdown>();\nlet MarkdownPageOriginal: typeof OriginalMarkdownPage;\nlet mockTextractContents: string;\n\n// Spy on log:\nbeforeAll(async () => {\n const textract =\n await vi.importActual<typeof import(\"@jaypie/textract\")>(\n \"@jaypie/textract\",\n );\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\nconst getEnvSecret = vi.fn((): string => {\n return `_MOCK_ENV_SECRET_[${TAG}]`;\n});\n\nconst getMessages = vi.fn((...params: Parameters<typeof originalGetMessages>) =>\n originalGetMessages(...params),\n);\n\nconst getSecret = vi.fn((): string => {\n return `_MOCK_SECRET_[${TAG}]`;\n});\n\nconst getTextractJob = vi.fn((job: string): SQSMessageResponse => {\n return { value: `_MOCK_TEXTRACT_JOB_[${job}]` };\n});\n\nconst sendBatchMessages = vi.fn((): SQSMessageResponse => {\n return { value: `_MOCK_BATCH_MESSAGES_[${TAG}]` };\n});\n\nconst sendMessage = vi.fn((): SQSMessageResponse => {\n return { value: `_MOCK_MESSAGE_[${TAG}]` };\n});\n\nconst 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\nconst BadGatewayError = vi.fn(\n (\n ...params: ConstructorParameters<typeof BadGatewayErrorOriginal>\n ): InstanceType<typeof BadGatewayErrorOriginal> => {\n return new BadGatewayErrorOriginal(...params);\n },\n);\n\nconst BadRequestError = vi.fn(\n (\n ...params: ConstructorParameters<typeof BadRequestErrorOriginal>\n ): InstanceType<typeof BadRequestErrorOriginal> => {\n return new BadRequestErrorOriginal(...params);\n },\n);\n\nconst 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\nconst ForbiddenError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ForbiddenErrorOriginal>\n ): InstanceType<typeof ForbiddenErrorOriginal> => {\n return new ForbiddenErrorOriginal(...params);\n },\n);\n\nconst GatewayTimeoutError = vi.fn(\n (\n ...params: ConstructorParameters<typeof GatewayTimeoutErrorOriginal>\n ): InstanceType<typeof GatewayTimeoutErrorOriginal> => {\n return new GatewayTimeoutErrorOriginal(...params);\n },\n);\n\nconst GoneError = vi.fn(\n (\n ...params: ConstructorParameters<typeof GoneErrorOriginal>\n ): InstanceType<typeof GoneErrorOriginal> => {\n return new GoneErrorOriginal(...params);\n },\n);\n\nconst IllogicalError = vi.fn(\n (\n ...params: ConstructorParameters<typeof IllogicalErrorOriginal>\n ): InstanceType<typeof IllogicalErrorOriginal> => {\n return new IllogicalErrorOriginal(...params);\n },\n);\n\nconst InternalError = vi.fn(\n (\n ...params: ConstructorParameters<typeof InternalErrorOriginal>\n ): InstanceType<typeof InternalErrorOriginal> => {\n return new InternalErrorOriginal(...params);\n },\n);\n\nconst MethodNotAllowedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof MethodNotAllowedErrorOriginal>\n ): InstanceType<typeof MethodNotAllowedErrorOriginal> => {\n return new MethodNotAllowedErrorOriginal(...params);\n },\n);\n\nconst MultiError = vi.fn(\n (\n ...params: ConstructorParameters<typeof MultiErrorOriginal>\n ): InstanceType<typeof MultiErrorOriginal> => {\n return new MultiErrorOriginal(...params);\n },\n);\n\nconst NotFoundError = vi.fn(\n (\n ...params: ConstructorParameters<typeof NotFoundErrorOriginal>\n ): InstanceType<typeof NotFoundErrorOriginal> => {\n return new NotFoundErrorOriginal(...params);\n },\n);\n\nconst NotImplementedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof NotImplementedErrorOriginal>\n ): InstanceType<typeof NotImplementedErrorOriginal> => {\n return new NotImplementedErrorOriginal(...params);\n },\n);\n\nconst ProjectError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ProjectErrorOriginal>\n ): InstanceType<typeof ProjectErrorOriginal> => {\n return new ProjectErrorOriginal(...params);\n },\n);\n\nconst ProjectMultiError = vi.fn(\n (\n ...params: ConstructorParameters<typeof ProjectMultiErrorOriginal>\n ): InstanceType<typeof ProjectMultiErrorOriginal> => {\n return new ProjectMultiErrorOriginal(...params);\n },\n);\n\nconst RejectedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof RejectedErrorOriginal>\n ): InstanceType<typeof RejectedErrorOriginal> => {\n return new RejectedErrorOriginal(...params);\n },\n);\n\nconst TeapotError = vi.fn(\n (\n ...params: ConstructorParameters<typeof TeapotErrorOriginal>\n ): InstanceType<typeof TeapotErrorOriginal> => {\n return new TeapotErrorOriginal(...params);\n },\n);\n\nconst UnauthorizedError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnauthorizedErrorOriginal>\n ): InstanceType<typeof UnauthorizedErrorOriginal> => {\n return new UnauthorizedErrorOriginal(...params);\n },\n);\n\nconst UnavailableError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnavailableErrorOriginal>\n ): InstanceType<typeof UnavailableErrorOriginal> => {\n return new UnavailableErrorOriginal(...params);\n },\n);\n\nconst UnhandledError = vi.fn(\n (\n ...params: ConstructorParameters<typeof UnhandledErrorOriginal>\n ): InstanceType<typeof UnhandledErrorOriginal> => {\n return new UnhandledErrorOriginal(...params);\n },\n);\n\nconst 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\nconst envBoolean = vi.fn((): boolean => {\n return true;\n});\n\nconst placeholders = vi.fn(\n (...params: Parameters<typeof originalPlaceholders>) =>\n originalPlaceholders(...params),\n);\n\nconst 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\nconst sleep = vi.fn((): boolean => {\n return true;\n});\n\nconst uuid = vi.fn(originalUuid);\n\n// @jaypie/core validate\nconst validate = vi.fn(\n (\n ...params: Parameters<typeof originalValidate>\n ): ReturnType<typeof originalValidate> => {\n return originalValidate(...params);\n }\n);\n\n// Set up convenience functions to match original validate\nvalidate.array = vi.fn(\n (\n ...params: Parameters<typeof originalValidate.array>\n ): ReturnType<typeof originalValidate.array> => {\n return originalValidate.array(...params);\n }\n);\nvalidate.boolean = vi.fn(\n (\n ...params: Parameters<typeof originalValidate.boolean>\n ): ReturnType<typeof originalValidate.boolean> => {\n return originalValidate.boolean(...params);\n }\n);\nvalidate.class = vi.fn(\n (\n ...params: Parameters<typeof originalValidate.class>\n ): ReturnType<typeof originalValidate.class> => {\n return originalValidate.class(...params);\n }\n);\nvalidate.function = vi.fn(\n (\n ...params: Parameters<typeof originalValidate.function>\n ): ReturnType<typeof originalValidate.function> => {\n return originalValidate.function(...params);\n }\n);\nvalidate.null = vi.fn(\n (\n ...params: Parameters<typeof originalValidate.null>\n ): ReturnType<typeof originalValidate.null> => {\n return originalValidate.null(...params);\n }\n);\nvalidate.number = vi.fn(\n (\n ...params: Parameters<typeof originalValidate.number>\n ): ReturnType<typeof originalValidate.number> => {\n return originalValidate.number(...params);\n }\n);\nvalidate.object = vi.fn(\n (\n ...params: Parameters<typeof originalValidate.object>\n ): ReturnType<typeof originalValidate.object> => {\n return originalValidate.object(...params);\n }\n);\nvalidate.string = vi.fn(\n (\n ...params: Parameters<typeof originalValidate.string>\n ): ReturnType<typeof originalValidate.string> => {\n return originalValidate.string(...params);\n }\n);\nvalidate.undefined = vi.fn(\n (\n ...params: Parameters<typeof originalValidate.undefined>\n ): ReturnType<typeof originalValidate.undefined> => {\n return originalValidate.undefined(...params);\n }\n);\n\n// Set up optional functions\nvalidate.optional = {\n array: vi.fn(\n (\n ...params: Parameters<typeof originalValidate.optional.array>\n ): ReturnType<typeof originalValidate.optional.array> => {\n return originalValidate.optional.array(...params);\n }\n ),\n boolean: vi.fn(\n (\n ...params: Parameters<typeof originalValidate.optional.boolean>\n ): ReturnType<typeof originalValidate.optional.boolean> => {\n return originalValidate.optional.boolean(...params);\n }\n ),\n class: vi.fn(\n (\n ...params: Parameters<typeof originalValidate.optional.class>\n ): ReturnType<typeof originalValidate.optional.class> => {\n return originalValidate.optional.class(...params);\n }\n ),\n function: vi.fn(\n (\n ...params: Parameters<typeof originalValidate.optional.function>\n ): ReturnType<typeof originalValidate.optional.function> => {\n return originalValidate.optional.function(...params);\n }\n ),\n null: vi.fn(\n (\n ...params: Parameters<typeof originalValidate.optional.null>\n ): ReturnType<typeof originalValidate.optional.null> => {\n return originalValidate.optional.null(...params);\n }\n ),\n number: vi.fn(\n (\n ...params: Parameters<typeof originalValidate.optional.number>\n ): ReturnType<typeof originalValidate.optional.number> => {\n return originalValidate.optional.number(...params);\n }\n ),\n object: vi.fn(\n (\n ...params: Parameters<typeof originalValidate.optional.object>\n ): ReturnType<typeof originalValidate.optional.object> => {\n return originalValidate.optional.object(...params);\n }\n ),\n string: vi.fn(\n (\n ...params: Parameters<typeof originalValidate.optional.string>\n ): ReturnType<typeof originalValidate.optional.string> => {\n return originalValidate.optional.string(...params);\n }\n ),\n};\n\n// @jaypie/datadog\nconst submitMetric = vi.fn((): boolean => {\n return true;\n});\n\nconst submitMetricSet = vi.fn((): boolean => {\n return true;\n});\n\n// @jaypie/express\nconst 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\nconst 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 mockOperate = vi.fn().mockResolvedValue({\n history: [\n {\n content: \"_MOCK_USER_INPUT\",\n role: \"user\",\n type: \"message\",\n },\n {\n id: \"_MOCK_MESSAGE_ID\",\n type: \"message\",\n status: \"completed\",\n content: \"_MOCK_CONTENT\",\n role: \"assistant\",\n },\n ],\n output: [\n {\n id: \"_MOCK_MESSAGE_ID\",\n type: \"message\",\n status: \"completed\",\n content: \"_MOCK_CONTENT\",\n role: \"assistant\",\n },\n ],\n responses: [\n {\n id: \"_MOCK_RESPONSE_ID\",\n object: \"response\",\n created_at: Date.now() / 1000,\n status: \"completed\",\n error: null,\n output_text: \"_MOCK_OUTPUT_TEXT\",\n },\n ],\n status: \"completed\",\n usage: { input: 100, output: 20, reasoning: 0, total: 120 },\n content: \"_MOCK_OUTPUT_TEXT\",\n});\nconst mockSend = vi.fn().mockResolvedValue(\"_MOCK_LLM_RESPONSE\");\nconst Llm = Object.assign(\n vi.fn().mockImplementation((providerName = \"_MOCK_LLM_PROVIDER\") => ({\n _provider: providerName,\n _llm: {\n operate: mockOperate,\n send: mockSend,\n },\n operate: mockOperate,\n send: mockSend,\n })),\n {\n operate: mockOperate,\n send: mockSend,\n },\n);\n\n// @jaypie/mongoose\nconst connect = vi.fn((): boolean => {\n return true;\n});\n\nconst connectFromSecretEnv = vi.fn((): boolean => {\n return true;\n});\n\nconst disconnect = vi.fn((): boolean => {\n return true;\n});\n\n// @jaypie/textract\nconst 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\nconst textractJsonToMarkdown = vi.fn((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// Export default for convenience\nexport default {\n // AWS\n getEnvSecret,\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 log,\n MethodNotAllowedError,\n MultiError,\n NotFoundError,\n NotImplementedError,\n placeholders,\n ProjectError,\n ProjectMultiError,\n RejectedError,\n sleep,\n TeapotError,\n UnauthorizedError,\n UnavailableError,\n UnhandledError,\n UnreachableCodeError,\n uuid,\n validate,\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 mongoose,\n // Textract\n MarkdownPage,\n textractJsonToMarkdown,\n};\n"],"names":["placeholders","originalGetMessages","BadGatewayErrorOriginal","BadRequestErrorOriginal","ConfigurationErrorOriginal","ForbiddenErrorOriginal","GatewayTimeoutErrorOriginal","GoneErrorOriginal","IllogicalErrorOriginal","InternalErrorOriginal","MethodNotAllowedErrorOriginal","MultiErrorOriginal","NotFoundErrorOriginal","NotImplementedErrorOriginal","ProjectErrorOriginal","ProjectMultiErrorOriginal","RejectedErrorOriginal","TeapotErrorOriginal","UnauthorizedErrorOriginal","UnavailableErrorOriginal","UnhandledErrorOriginal","UnreachableCodeErrorOriginal","originalPlaceholders","originalUuid","originalValidate"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaypie/testkit",
3
- "version": "1.1.25",
3
+ "version": "1.1.26",
4
4
  "license": "MIT",
5
5
  "author": "Finlayson Studio",
6
6
  "type": "module",
@@ -35,17 +35,15 @@
35
35
  "jaypie": "^1.0.44",
36
36
  "jest-extended": "^4.0.2",
37
37
  "jest-json-schema": "^6.1.0",
38
- "lodash.isequal": "^4.5.0",
39
38
  "uuid": "^11.0.5"
40
39
  },
41
40
  "devDependencies": {
42
41
  "@jaypie/mongoose": "^1.1.1",
43
42
  "@rollup/plugin-json": "^6.1.0",
44
43
  "@types/express": "^5.0.0",
45
- "@types/lodash.isequal": "^4.5.8",
46
44
  "@types/node": "^22.13.1",
47
45
  "@types/supertest": "^6.0.2",
48
- "express": "^4.21.1",
46
+ "express": "^4.21.2",
49
47
  "rollup": "^4.29.1",
50
48
  "rollup-plugin-copy": "^3.5.0",
51
49
  "rollup-plugin-dts": "^6.1.1",
@@ -55,5 +53,5 @@
55
53
  "publishConfig": {
56
54
  "access": "public"
57
55
  },
58
- "gitHead": "c9a990f384f3f54486d6ef97c5c588c2b4a6ed02"
56
+ "gitHead": "45ffc2f677af8b1816db9136474d2d07cb691855"
59
57
  }