@jaypie/testkit 1.1.31 → 1.1.33
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.map +1 -1
- package/dist/mock/datadog.d.ts +1 -0
- package/dist/mock/index.d.ts +4 -2
- package/dist/mock/index.js +13 -2
- package/dist/mock/index.js.map +1 -1
- package/dist/mock/llm.d.ts +2 -1
- package/dist/mock/mock/datadog.d.ts +1 -0
- package/dist/mock/mock/llm.d.ts +2 -1
- package/package.json +2 -2
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/toBeMockFunction.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 } 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 new (received as any)();\n pass = true;\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 { vi } from \"vitest\";\nimport type { Assertion } from \"vitest\";\n\ndeclare module \"vitest\" {\n interface Assertion<T = any> {\n toBeMockFunction(): T;\n }\n}\n\nexport function toBeMockFunction(this: Assertion, received: unknown) {\n const { equals, utils } = this;\n const pass = typeof received === \"function\" && vi.isMockFunction(received);\n\n return {\n message: () =>\n `expected ${utils.printReceived(received)} ${\n pass ? \"not \" : \"\"\n }to be a mock function`,\n pass,\n };\n}\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// Define a more specific type for ProjectError with _type field\ntype JaypieErrorWithType = ProjectError & { _type: string };\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 // Cast to the specific type with _type property\n const jaypieError = error as JaypieErrorWithType;\n\n // If expected is also a JaypieError, check if the error matches\n if (expectedError && isJaypieError(expectedError)) {\n const expectedJaypieError = expectedError as JaypieErrorWithType;\n // If the error does not match, fail the test\n if (jaypieError._type !== expectedJaypieError._type) {\n return {\n pass: false,\n message: () =>\n `Expected function to throw \"${expectedJaypieError._type}\", but it threw \"${jaypieError._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 { toBeMockFunction } from \"./matchers/toBeMockFunction.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 toBeMockFunction,\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","import { 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\n// Use Record type for more flexible access pattern\nconst originalLogMethods = new WeakMap<typeof log, Record<string, unknown>>();\n\nexport function spyLog(logInstance: typeof log): void {\n if (!originalLogMethods.has(logInstance)) {\n const mockLog = mockLogFactory();\n const originalMethods: Record<string, unknown> = {};\n\n // Save only methods that actually exist on the log instance\n LOG_METHOD_NAMES.forEach((method) => {\n if (method in logInstance) {\n originalMethods[method] =\n logInstance[method as keyof typeof logInstance];\n // Use type assertion after checking existence\n (logInstance as Record<string, unknown>)[method] = mockLog[method];\n }\n });\n\n originalLogMethods.set(logInstance, originalMethods);\n }\n}\n\nexport function restoreLog(logInstance: typeof log): void {\n const originalMethods = originalLogMethods.get(logInstance);\n if (originalMethods) {\n LOG_METHOD_NAMES.forEach((method) => {\n if (method in originalMethods && method in logInstance) {\n // Use type assertion after checking existence\n (logInstance as Record<string, unknown>)[method] =\n originalMethods[method];\n }\n });\n originalLogMethods.delete(logInstance);\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":"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"}
|
|
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/toBeMockFunction.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 } 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 new (received as any)();\n pass = true;\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 { vi } from \"vitest\";\nimport type { Assertion } from \"vitest\";\n\ndeclare module \"vitest\" {\n interface Assertion<T = any> {\n toBeMockFunction(): T;\n }\n}\n\nexport function toBeMockFunction(this: Assertion, received: unknown) {\n const { equals, utils } = this;\n const pass = typeof received === \"function\" && vi.isMockFunction(received);\n\n return {\n message: () =>\n `expected ${utils.printReceived(received)} ${\n pass ? \"not \" : \"\"\n }to be a mock function`,\n pass,\n };\n}\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// Define a more specific type for ProjectError with _type field\ntype JaypieErrorWithType = ProjectError & { _type: string };\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 // Cast to the specific type with _type property\n const jaypieError = error as JaypieErrorWithType;\n\n // If expected is also a JaypieError, check if the error matches\n if (expectedError && isJaypieError(expectedError)) {\n const expectedJaypieError = expectedError as JaypieErrorWithType;\n // If the error does not match, fail the test\n if (jaypieError._type !== expectedJaypieError._type) {\n return {\n pass: false,\n message: () =>\n `Expected function to throw \"${expectedJaypieError._type}\", but it threw \"${jaypieError._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 { toBeMockFunction } from \"./matchers/toBeMockFunction.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 toBeMockFunction,\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","import { 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\n// Use Record type for more flexible access pattern\nconst originalLogMethods = new WeakMap<typeof log, Record<string, unknown>>();\n\nexport function spyLog(logInstance: typeof log): void {\n if (!originalLogMethods.has(logInstance)) {\n const mockLog = mockLogFactory();\n const originalMethods: Record<string, unknown> = {};\n\n // Save only methods that actually exist on the log instance\n LOG_METHOD_NAMES.forEach((method) => {\n if (method in logInstance) {\n originalMethods[method] =\n logInstance[method as keyof typeof logInstance];\n // Use type assertion after checking existence\n (logInstance as Record<string, unknown>)[method] = mockLog[method];\n }\n });\n\n originalLogMethods.set(logInstance, originalMethods);\n }\n}\n\nexport function restoreLog(logInstance: typeof log): void {\n const originalMethods = originalLogMethods.get(logInstance);\n if (originalMethods) {\n LOG_METHOD_NAMES.forEach((method) => {\n if (method in originalMethods && method in logInstance) {\n // Use type assertion after checking existence\n (logInstance as Record<string, unknown>)[method] =\n originalMethods[method];\n }\n });\n originalLogMethods.delete(logInstance);\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":"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"}
|
package/dist/mock/datadog.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as original from "@jaypie/datadog";
|
|
2
2
|
export declare const DATADOG: original.DatadogConstants;
|
|
3
|
+
export declare const hasDatadogEnv: (...args: unknown[]) => unknown;
|
|
3
4
|
export declare const submitDistribution: (...args: unknown[]) => Promise<boolean>;
|
|
4
5
|
export declare const submitMetric: (...args: unknown[]) => Promise<boolean>;
|
|
5
6
|
export declare const submitMetricSet: (...args: unknown[]) => Promise<boolean>;
|
package/dist/mock/index.d.ts
CHANGED
|
@@ -336,6 +336,7 @@ declare const VALIDATE: {
|
|
|
336
336
|
};
|
|
337
337
|
|
|
338
338
|
declare const DATADOG: original$1.DatadogConstants;
|
|
339
|
+
declare const hasDatadogEnv: (...args: unknown[]) => unknown;
|
|
339
340
|
declare const submitDistribution: (...args: unknown[]) => Promise<boolean>;
|
|
340
341
|
declare const submitMetric: (...args: unknown[]) => Promise<boolean>;
|
|
341
342
|
declare const submitMetricSet: (...args: unknown[]) => Promise<boolean>;
|
|
@@ -434,7 +435,8 @@ declare const Llm: vitest.Mock<(...args: any[]) => any> & {
|
|
|
434
435
|
send: (...args: unknown[]) => Promise<string>;
|
|
435
436
|
};
|
|
436
437
|
declare const Toolkit: typeof original$2.Toolkit;
|
|
437
|
-
declare const
|
|
438
|
+
declare const JaypieToolkit: typeof original$2.JaypieToolkit;
|
|
439
|
+
declare const toolkit: original$2.JaypieToolkit;
|
|
438
440
|
declare const tools: Omit<original$2.LlmTool, "call">[];
|
|
439
441
|
|
|
440
442
|
declare const connect: (...args: unknown[]) => boolean;
|
|
@@ -452,5 +454,5 @@ declare const textractJsonToMarkdown: (...args: unknown[]) => string;
|
|
|
452
454
|
|
|
453
455
|
declare const _default: Record<string, unknown>;
|
|
454
456
|
|
|
455
|
-
export { BadGatewayError, BadRequestError, ConfigurationError, DATADOG, ERROR, EXPRESS, ForbiddenError, GatewayTimeoutError, GoneError, HTTP, IllogicalError, InternalError, JAYPIE, LLM, Llm, MarkdownPage, MethodNotAllowedError, MultiError, NotFoundError, NotImplementedError, PROJECT, ProjectError, ProjectMultiError, RejectedError, TeapotError, Toolkit, UnauthorizedError, UnavailableError, UnhandledError, UnreachableCodeError, VALIDATE, badRequestRoute, cloneDeep, connect, connectFromSecretEnv, cors, _default as default, disconnect, echoRoute, envBoolean, envsKey, errorFromStatusCode, expressHandler, expressHttpCodeHandler, forbiddenRoute, force, formatError, getEnvSecret, getHeaderFrom, getMessages, getObjectKeyCaseInsensitive, getSecret, getSingletonMessage, getTextractJob, goneRoute, isClass, isJaypieError, jaypieHandler, lambdaHandler, methodNotAllowedRoute, noContentRoute, notFoundRoute, notImplementedRoute, optional, placeholders, required, resolveValue, safeParseFloat, sendBatchMessages, sendMessage, sendTextractJob, sleep, submitDistribution, submitMetric, submitMetricSet, textractJsonToMarkdown, toolkit, tools, uuid, validate };
|
|
457
|
+
export { BadGatewayError, BadRequestError, ConfigurationError, DATADOG, ERROR, EXPRESS, ForbiddenError, GatewayTimeoutError, GoneError, HTTP, IllogicalError, InternalError, JAYPIE, JaypieToolkit, LLM, Llm, MarkdownPage, MethodNotAllowedError, MultiError, NotFoundError, NotImplementedError, PROJECT, ProjectError, ProjectMultiError, RejectedError, TeapotError, Toolkit, UnauthorizedError, UnavailableError, UnhandledError, UnreachableCodeError, VALIDATE, badRequestRoute, cloneDeep, connect, connectFromSecretEnv, cors, _default as default, disconnect, echoRoute, envBoolean, envsKey, errorFromStatusCode, expressHandler, expressHttpCodeHandler, forbiddenRoute, force, formatError, getEnvSecret, getHeaderFrom, getMessages, getObjectKeyCaseInsensitive, getSecret, getSingletonMessage, getTextractJob, goneRoute, hasDatadogEnv, isClass, isJaypieError, jaypieHandler, lambdaHandler, methodNotAllowedRoute, noContentRoute, notFoundRoute, notImplementedRoute, optional, placeholders, required, resolveValue, safeParseFloat, sendBatchMessages, sendMessage, sendTextractJob, sleep, submitDistribution, submitMetric, submitMetricSet, textractJsonToMarkdown, toolkit, tools, uuid, validate };
|
|
456
458
|
export type { ExpressHandlerFunction, ExpressHandlerOptions, LambdaOptions };
|
package/dist/mock/index.js
CHANGED
|
@@ -518,6 +518,7 @@ var core = /*#__PURE__*/Object.freeze({
|
|
|
518
518
|
});
|
|
519
519
|
|
|
520
520
|
const DATADOG = original$2.DATADOG;
|
|
521
|
+
const hasDatadogEnv = createMockWrappedFunction(original$2.hasDatadogEnv, false);
|
|
521
522
|
const submitDistribution = createMockResolvedFunction(true);
|
|
522
523
|
const submitMetric = createMockResolvedFunction(true);
|
|
523
524
|
const submitMetricSet = createMockResolvedFunction(true);
|
|
@@ -525,6 +526,7 @@ const submitMetricSet = createMockResolvedFunction(true);
|
|
|
525
526
|
var datadog = /*#__PURE__*/Object.freeze({
|
|
526
527
|
__proto__: null,
|
|
527
528
|
DATADOG: DATADOG,
|
|
529
|
+
hasDatadogEnv: hasDatadogEnv,
|
|
528
530
|
submitDistribution: submitDistribution,
|
|
529
531
|
submitMetric: submitMetric,
|
|
530
532
|
submitMetricSet: submitMetricSet
|
|
@@ -793,12 +795,21 @@ const weather = createMockTool("weather", createMockResolvedFunction({
|
|
|
793
795
|
const Toolkit = createMockWrappedObject(original$4.Toolkit, {
|
|
794
796
|
isClass: true,
|
|
795
797
|
});
|
|
798
|
+
const JaypieToolkit = createMockWrappedObject(original$4.JaypieToolkit, {
|
|
799
|
+
isClass: true,
|
|
800
|
+
});
|
|
796
801
|
// Tool collections
|
|
797
|
-
const toolkit = new original$4.
|
|
802
|
+
const toolkit = new original$4.JaypieToolkit([
|
|
803
|
+
random,
|
|
804
|
+
roll,
|
|
805
|
+
time,
|
|
806
|
+
weather,
|
|
807
|
+
]);
|
|
798
808
|
const tools = toolkit.tools;
|
|
799
809
|
|
|
800
810
|
var llm = /*#__PURE__*/Object.freeze({
|
|
801
811
|
__proto__: null,
|
|
812
|
+
JaypieToolkit: JaypieToolkit,
|
|
802
813
|
LLM: LLM,
|
|
803
814
|
Llm: Llm,
|
|
804
815
|
Toolkit: Toolkit,
|
|
@@ -878,5 +889,5 @@ var index = {
|
|
|
878
889
|
...textract$1,
|
|
879
890
|
};
|
|
880
891
|
|
|
881
|
-
export { BadGatewayError, BadRequestError, ConfigurationError, DATADOG, ERROR, EXPRESS, ForbiddenError, GatewayTimeoutError, GoneError, HTTP$1 as HTTP, IllogicalError, InternalError, JAYPIE, LLM, Llm, MarkdownPage, MethodNotAllowedError, MultiError, NotFoundError, NotImplementedError, PROJECT, ProjectError, ProjectMultiError, RejectedError, TeapotError, Toolkit, UnauthorizedError, UnavailableError, UnhandledError, UnreachableCodeError, VALIDATE, badRequestRoute, cloneDeep, connect, connectFromSecretEnv, cors, index as default, disconnect, echoRoute, envBoolean, envsKey, errorFromStatusCode, expressHandler, expressHttpCodeHandler, forbiddenRoute, force, formatError, getEnvSecret, getHeaderFrom, getMessages, getObjectKeyCaseInsensitive, getSecret, getSingletonMessage, getTextractJob, goneRoute, isClass, isJaypieError, jaypieHandler, lambdaHandler, methodNotAllowedRoute, noContentRoute, notFoundRoute, notImplementedRoute, optional, placeholders, required, resolveValue, safeParseFloat, sendBatchMessages, sendMessage, sendTextractJob, sleep, submitDistribution, submitMetric, submitMetricSet, textractJsonToMarkdown, toolkit, tools, uuid, validate };
|
|
892
|
+
export { BadGatewayError, BadRequestError, ConfigurationError, DATADOG, ERROR, EXPRESS, ForbiddenError, GatewayTimeoutError, GoneError, HTTP$1 as HTTP, IllogicalError, InternalError, JAYPIE, JaypieToolkit, LLM, Llm, MarkdownPage, MethodNotAllowedError, MultiError, NotFoundError, NotImplementedError, PROJECT, ProjectError, ProjectMultiError, RejectedError, TeapotError, Toolkit, UnauthorizedError, UnavailableError, UnhandledError, UnreachableCodeError, VALIDATE, badRequestRoute, cloneDeep, connect, connectFromSecretEnv, cors, index as default, disconnect, echoRoute, envBoolean, envsKey, errorFromStatusCode, expressHandler, expressHttpCodeHandler, forbiddenRoute, force, formatError, getEnvSecret, getHeaderFrom, getMessages, getObjectKeyCaseInsensitive, getSecret, getSingletonMessage, getTextractJob, goneRoute, hasDatadogEnv, isClass, isJaypieError, jaypieHandler, lambdaHandler, methodNotAllowedRoute, noContentRoute, notFoundRoute, notImplementedRoute, optional, placeholders, required, resolveValue, safeParseFloat, sendBatchMessages, sendMessage, sendTextractJob, sleep, submitDistribution, submitMetric, submitMetricSet, textractJsonToMarkdown, toolkit, tools, uuid, validate };
|
|
882
893
|
//# sourceMappingURL=index.js.map
|
package/dist/mock/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/mock/utils.ts","../../../src/mock/aws.ts","../../../src/mockLog.module.ts","../../../src/mock/core.ts","../../../src/mock/datadog.ts","../../../src/mock/express.ts","../../../src/mock/lambda.ts","../../../src/mock/llm.ts","../../../src/mock/mongoose.ts","../../../src/mock/textract.ts","../../../src/mock/index.ts"],"sourcesContent":["import { vi } from \"vitest\";\n\nimport { LlmTool } from \"@jaypie/llm\";\n\n/**\n * Internal wrapper for vi.fn() that adds _jaypie: true to all mocks\n */\nfunction _createJaypieMock<T extends (...args: any[]) => any>(\n implementation?: T,\n): ReturnType<typeof vi.fn> {\n const mock = vi.fn(implementation);\n Object.defineProperty(mock, \"_jaypie\", { value: true });\n return mock;\n}\n\n/**\n * Creates function mocks with proper typing\n * Internal utility to create properly typed mocks\n */\nfunction createMockFunction<T extends (...args: any[]) => any>(\n implementation?: (...args: Parameters<T>) => ReturnType<T>,\n): T & { mock: any } {\n // Use a more specific type conversion to avoid TypeScript error\n return _createJaypieMock(implementation) as unknown as T & { mock: any };\n}\n\n/**\n * Creates a mock function that resolves to a value when awaited\n * Internal utility to create async mock functions\n */\nfunction createMockResolvedFunction<T>(\n value: T,\n): (...args: unknown[]) => Promise<T> {\n return _createJaypieMock().mockResolvedValue(value);\n}\n\n/**\n * Creates a mock function that returns a value\n * Internal utility to create mock functions that return a value\n */\nfunction createMockReturnedFunction<T>(value: T): (...args: unknown[]) => T {\n return _createJaypieMock().mockReturnValue(value);\n}\n\n/**\n * Creates a mock function that wraps another function\n * Internal utility to create mock functions that wrap another function\n */\nfunction createMockWrappedFunction<T>(\n fn: (...args: unknown[]) => unknown,\n fallbackOrOptions:\n | any\n | {\n fallback?: any;\n throws?: boolean;\n class?: boolean;\n } = \"_MOCK_WRAPPED_RESULT\",\n): (...args: unknown[]) => T {\n // Determine if we have a direct fallback or options object\n const options =\n typeof fallbackOrOptions === \"object\" &&\n fallbackOrOptions !== null &&\n (\"fallback\" in fallbackOrOptions ||\n \"throws\" in fallbackOrOptions ||\n \"class\" in fallbackOrOptions)\n ? fallbackOrOptions\n : { fallback: fallbackOrOptions };\n\n // Extract values with defaults\n const fallback = options.fallback ?? \"_MOCK_WRAPPED_RESULT\";\n const throws = options.throws ?? false;\n const isClass = options.class ?? false;\n\n return _createJaypieMock().mockImplementation((...args: unknown[]) => {\n try {\n return isClass ? new (fn as any)(...args) : fn(...args);\n } catch (error) {\n if (throws) {\n throw error;\n }\n\n console.warn(\n `[@jaypie/testkit] Actual implementation failed. To suppress this warning, manually mock the response with mockReturnValue`,\n );\n if (error instanceof Error) {\n console.warn(`[@jaypie/testkit] ${error.message}`);\n }\n\n // If fallback is a function, call it\n if (typeof fallback === \"function\") {\n try {\n return fallback(...args);\n } catch (fallbackError) {\n console.warn(\n `[@jaypie/testkit] Fallback function failed: ${fallbackError instanceof Error ? fallbackError.message : fallbackError}`,\n );\n return \"_MOCK_WRAPPED_RESULT\";\n }\n }\n\n return fallback;\n }\n });\n}\n\nfunction createMockWrappedObject<T extends Record<string, any>>(\n object: T,\n fallbackOrOptions:\n | any\n | {\n fallback?: any;\n throws?: boolean;\n class?: boolean;\n } = \"_MOCK_WRAPPED_RESULT\",\n): T {\n let returnMock: Record<string, any> = {};\n\n // Extract values with defaults for the top-level call\n const options =\n typeof fallbackOrOptions === \"object\" &&\n fallbackOrOptions !== null &&\n (\"fallback\" in fallbackOrOptions ||\n \"throws\" in fallbackOrOptions ||\n \"class\" in fallbackOrOptions)\n ? fallbackOrOptions\n : { fallback: fallbackOrOptions };\n\n const fallback = options.fallback ?? \"_MOCK_WRAPPED_RESULT\";\n const throws = options.throws ?? false;\n const isClass = options.class ?? false;\n\n // Create options for recursive calls\n // Do not pass down class=true to nested objects\n const recursiveOptions = {\n fallback,\n throws,\n class: false, // Always pass class=false to nested objects\n };\n\n if (typeof object === \"function\") {\n returnMock = createMockWrappedFunction(object, {\n fallback,\n throws,\n class: isClass,\n });\n }\n for (const key of Object.keys(object)) {\n const value = object[key];\n if (typeof value === \"function\") {\n returnMock[key] = createMockWrappedFunction(value, {\n fallback,\n throws,\n class: isClass,\n });\n } else if (typeof value === \"object\" && value !== null) {\n returnMock[key] = createMockWrappedObject(value, recursiveOptions);\n } else {\n returnMock[key] = value;\n }\n }\n return returnMock as T;\n}\n\n/**\n * Utility to create a mock error constructor from an error class\n */\nfunction createMockError<T extends new (...args: any[]) => Error>(\n ErrorClass: T,\n): T {\n // Create a mock constructor that returns a new instance of ErrorClass\n const mockConstructor = _createJaypieMock(function (\n this: any,\n ...args: any[]\n ) {\n return new ErrorClass(...args);\n });\n return mockConstructor as unknown as T;\n}\n\n// Mock core errors - All error classes extend JaypieError\nclass MockValidationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"ValidationError\";\n }\n}\n\nclass MockNotFoundError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"NotFoundError\";\n }\n}\n\n/**\n * Creates a mock LlmTool for testing purposes\n * @param nameOrCallOrOptions - Name (string), call function, or full options object\n * @param callOrOptions - Call function or options object (when first param is string)\n * @returns Mock LlmTool object\n */\nfunction createMockTool(\n nameOrCallOrOptions: string | ((...args: any[]) => any) | Partial<LlmTool>,\n callOrOptions?: ((...args: any[]) => any) | Partial<LlmTool>,\n): LlmTool {\n // Default options\n const defaults: LlmTool = {\n name: \"mockTool\",\n description: \"Mock tool for testing\",\n parameters: {},\n type: \"function\",\n call: createMockResolvedFunction({ result: \"MOCK_TOOL\" }),\n message: \"MOCK_TOOL_MESSAGE\",\n };\n\n // Handle different parameter combinations\n if (typeof nameOrCallOrOptions === \"string\") {\n // First parameter is name\n const name = nameOrCallOrOptions;\n\n if (typeof callOrOptions === \"function\") {\n // Second parameter is call function\n return {\n ...defaults,\n name,\n call: callOrOptions,\n };\n } else if (callOrOptions && typeof callOrOptions === \"object\") {\n // Second parameter is options object\n return {\n ...defaults,\n name,\n ...callOrOptions,\n };\n } else {\n // Only name provided\n return {\n ...defaults,\n name,\n };\n }\n } else if (typeof nameOrCallOrOptions === \"function\") {\n // First parameter is call function\n return {\n ...defaults,\n call: nameOrCallOrOptions,\n };\n } else if (nameOrCallOrOptions && typeof nameOrCallOrOptions === \"object\") {\n // First parameter is options object\n return {\n ...defaults,\n ...nameOrCallOrOptions,\n };\n } else {\n // No parameters or invalid parameters\n return defaults;\n }\n}\n\n// Export functions for internal use\nexport {\n createMockFunction,\n createMockResolvedFunction,\n createMockReturnedFunction,\n createMockWrappedFunction,\n createMockWrappedObject,\n MockValidationError,\n MockNotFoundError,\n createMockError,\n createMockTool,\n};\n","import * as original from \"@jaypie/aws\";\nimport {\n createMockFunction,\n createMockResolvedFunction,\n createMockWrappedFunction,\n} from \"./utils\";\n\n// Constants for mock values\nconst TAG = \"AWS\";\n\nexport const getMessages = createMockWrappedFunction(original.getMessages, []);\n\nexport const getSecret = createMockResolvedFunction(\"mock-secret-value\");\n\nexport const sendMessage = createMockResolvedFunction({\n MessageId: \"mock-message-id\",\n});\n\n// Add missing functions from original implementation\nexport const getEnvSecret = createMockFunction<\n (key: string) => Promise<string>\n>(async (key) => `_MOCK_ENV_SECRET_[${TAG}][${key}]`);\n\nexport const getSingletonMessage = createMockWrappedFunction(\n original.getSingletonMessage,\n { value: \"_MOCK_SINGLETON_MESSAGE_\" },\n);\n\nexport const getTextractJob = createMockFunction<\n (jobId: string) => Promise<any>\n>(async (job) => ({ value: `_MOCK_TEXTRACT_JOB_[${job}]` }));\n\nexport const sendBatchMessages = createMockResolvedFunction(true);\n\nexport const sendTextractJob = createMockFunction<\n ({\n bucket,\n key,\n featureTypes,\n }: {\n bucket: string;\n key: string;\n featureTypes?: string[];\n snsRoleArn?: string;\n snsTopicArn?: string;\n }) => Promise<any[]>\n>(async ({ bucket, key, featureTypes = [] }) => {\n // Basic validation to mimic original behavior\n if (!bucket || !key) {\n throw new Error(\"Bucket and key are required\");\n }\n return [`_MOCK_TEXTRACT_JOB_ID_[${TAG}]_${bucket}_${key}`];\n});\n","import { 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\n// Use Record type for more flexible access pattern\nconst originalLogMethods = new WeakMap<typeof log, Record<string, unknown>>();\n\nexport function spyLog(logInstance: typeof log): void {\n if (!originalLogMethods.has(logInstance)) {\n const mockLog = mockLogFactory();\n const originalMethods: Record<string, unknown> = {};\n\n // Save only methods that actually exist on the log instance\n LOG_METHOD_NAMES.forEach((method) => {\n if (method in logInstance) {\n originalMethods[method] =\n logInstance[method as keyof typeof logInstance];\n // Use type assertion after checking existence\n (logInstance as Record<string, unknown>)[method] = mockLog[method];\n }\n });\n\n originalLogMethods.set(logInstance, originalMethods);\n }\n}\n\nexport function restoreLog(logInstance: typeof log): void {\n const originalMethods = originalLogMethods.get(logInstance);\n if (originalMethods) {\n LOG_METHOD_NAMES.forEach((method) => {\n if (method in originalMethods && method in logInstance) {\n // Use type assertion after checking existence\n (logInstance as Record<string, unknown>)[method] =\n originalMethods[method];\n }\n });\n originalLogMethods.delete(logInstance);\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n\nimport {\n createMockError,\n createMockFunction,\n createMockResolvedFunction,\n createMockReturnedFunction,\n createMockWrappedFunction,\n createMockWrappedObject,\n} from \"./utils\";\nimport { beforeAll } from \"vitest\";\nimport { spyLog } from \"../mockLog.module.js\";\nimport { log } from \"@jaypie/core\";\nimport * as original from \"@jaypie/core\";\n\n// Constants for mock values\nconst TAG = \"CORE\";\n\nexport const BadGatewayError = createMockError(original.BadGatewayError);\nexport const BadRequestError = createMockError(original.BadRequestError);\nexport const ConfigurationError = createMockError(original.ConfigurationError);\nexport const ForbiddenError = createMockError(original.ForbiddenError);\nexport const GatewayTimeoutError = createMockError(\n original.GatewayTimeoutError,\n);\nexport const GoneError = createMockError(original.GoneError);\nexport const IllogicalError = createMockError(original.IllogicalError);\nexport const InternalError = createMockError(original.InternalError);\nexport const MethodNotAllowedError = createMockError(\n original.MethodNotAllowedError,\n);\nexport const MultiError = createMockError(original.MultiError);\nexport const NotFoundError = createMockError(original.NotFoundError);\nexport const NotImplementedError = createMockError(\n original.NotImplementedError,\n);\nexport const ProjectError = createMockError(original.ProjectError);\nexport const ProjectMultiError = createMockError(original.ProjectMultiError);\nexport const RejectedError = createMockError(original.RejectedError);\nexport const TeapotError = createMockError(original.TeapotError);\nexport const UnauthorizedError = createMockError(original.UnauthorizedError);\nexport const UnavailableError = createMockError(original.UnavailableError);\nexport const UnhandledError = createMockError(original.UnhandledError);\nexport const UnreachableCodeError = createMockError(\n original.UnreachableCodeError,\n);\n\n// Mock core functions\nexport const validate = createMockWrappedObject(original.validate, {\n fallback: false,\n throws: true,\n});\n\nbeforeAll(async () => {\n spyLog(log);\n});\nexport { log };\n\n// Add missing core functions\nexport const cloneDeep = createMockWrappedFunction(original.cloneDeep, {\n throws: true,\n});\n\nexport const envBoolean = createMockReturnedFunction(true);\n\nexport const envsKey = createMockWrappedFunction(\n original.envsKey,\n `_MOCK_ENVS_KEY_[${TAG}]`,\n);\n\nexport const errorFromStatusCode = createMockFunction<\n (statusCode: number, message?: string) => Error\n>((statusCode, message = `Mock error for status code ${statusCode}`) => {\n try {\n // Try to mimic original implementation\n switch (statusCode) {\n case 400:\n return new BadRequestError(message);\n case 401:\n return new UnauthorizedError(message);\n case 403:\n return new ForbiddenError(message);\n case 404:\n return new NotFoundError(message);\n case 405:\n return new MethodNotAllowedError(message);\n case 410:\n return new GoneError(message);\n case 418:\n return new TeapotError(message);\n case 500:\n return new InternalError(message);\n case 501:\n return new NotImplementedError(message);\n case 502:\n return new BadGatewayError(message);\n case 503:\n return new UnavailableError(message);\n case 504:\n return new GatewayTimeoutError(message);\n default:\n return new Error(message);\n }\n } catch (error) {\n return new Error(`_MOCK_ERROR_FROM_STATUS_CODE_[${TAG}][${statusCode}]`);\n }\n});\n\nexport const formatError = createMockWrappedFunction(\n original.formatError,\n `_MOCK_FORMAT_ERROR_[${TAG}]`,\n);\n\nexport const getHeaderFrom = createMockWrappedFunction(\n original.getHeaderFrom,\n `_MOCK_GET_HEADER_FROM_[${TAG}]`,\n);\n\nexport const getObjectKeyCaseInsensitive = createMockWrappedFunction(\n original.getObjectKeyCaseInsensitive,\n `_MOCK_GET_OBJECT_KEY_CASE_INSENSITIVE_[${TAG}]`,\n);\n\nexport const isClass = createMockWrappedFunction(\n original.isClass,\n `_MOCK_IS_CLASS_[${TAG}]`,\n);\n\nexport const isJaypieError = createMockWrappedFunction(\n original.isJaypieError,\n false,\n);\n\n// Optional/Required validation functions\nexport const optional = createMockWrappedObject(original.optional, {\n fallback: true,\n throws: true,\n});\n\nexport const required = createMockWrappedObject(original.required, {\n fallback: true,\n throws: true,\n});\n\nexport const resolveValue = createMockWrappedFunction(\n original.resolveValue,\n `_MOCK_RESOLVE_VALUE_[${TAG}]`,\n);\n\nexport const safeParseFloat = createMockWrappedFunction(\n original.safeParseFloat,\n `_MOCK_SAFE_PARSE_FLOAT_[${TAG}]`,\n);\n\nexport const placeholders = createMockWrappedFunction(\n original.placeholders,\n `_MOCK_PLACEHOLDERS_[${TAG}]`,\n);\n\n// Add force utilities to help with jaypieHandler implementation\nexport const force = createMockWrappedObject(original.force);\n\nexport const jaypieHandler = createMockFunction<\n (\n handler: Function,\n options?: {\n setup?: Function | Function[];\n teardown?: Function | Function[];\n unavailable?: boolean;\n validate?: Function | Function[];\n },\n ) => Function\n>((handler, options = {}) => {\n return async (...args: any[]) => {\n let result;\n let thrownError;\n\n // Destructure options with defaults\n const {\n setup = [],\n teardown = [],\n unavailable = original.force.boolean(process.env.PROJECT_UNAVAILABLE),\n validate = [],\n } = options;\n\n // Check if service is unavailable\n if (unavailable) throw new UnavailableError(\"Service unavailable\");\n\n // Run validation functions\n const validateFunctions = original.force.array(validate);\n for (const validator of validateFunctions) {\n if (typeof validator === \"function\") {\n const valid = await validator(...args);\n if (valid === false) {\n throw new BadRequestError(\"Validation failed\");\n }\n }\n }\n\n try {\n // Run setup functions\n const setupFunctions = original.force.array(setup);\n for (const setupFunction of setupFunctions) {\n if (typeof setupFunction === \"function\") {\n await setupFunction(...args);\n }\n }\n\n // Execute the handler\n result = await handler(...args);\n } catch (error) {\n thrownError = error;\n }\n\n // Run teardown functions (always run even if there was an error)\n const teardownFunctions = original.force.array(teardown);\n for (const teardownFunction of teardownFunctions) {\n if (typeof teardownFunction === \"function\") {\n try {\n await teardownFunction(...args);\n } catch (error) {\n // Swallow teardown errors, but log them\n console.error(error);\n }\n }\n }\n\n // If there was an error in the handler, throw it after teardown\n if (thrownError) {\n throw thrownError;\n }\n\n return result;\n };\n});\n\nexport const sleep = createMockResolvedFunction(true);\n\nexport const uuid = createMockWrappedFunction(\n original.uuid,\n `00000000-0000-0000-0000-000000000000`,\n);\n\nexport const ERROR = original.ERROR;\nexport const HTTP = original.HTTP;\nexport const JAYPIE = original.JAYPIE;\nexport const PROJECT = original.PROJECT;\nexport const VALIDATE = original.VALIDATE;\n","import { createMockResolvedFunction } from \"./utils\";\n\nimport * as original from \"@jaypie/datadog\";\n\nexport const DATADOG = original.DATADOG;\nexport const submitDistribution = createMockResolvedFunction(true);\nexport const submitMetric = createMockResolvedFunction(true);\n\nexport const submitMetricSet = createMockResolvedFunction(true);\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n\nimport {\n createMockFunction,\n createMockReturnedFunction,\n createMockResolvedFunction,\n createMockWrappedFunction,\n} from \"./utils\";\nimport { BadRequestError, UnhandledError } from \"@jaypie/core\";\nimport { force, jaypieHandler } from \"./core\";\nimport * as original from \"@jaypie/express\";\n\n// Constants for mock values\nconst TAG = \"EXPRESS\";\nconst HTTP = {\n CODE: { OK: 200, CREATED: 201, NO_CONTENT: 204, INTERNAL_ERROR: 500 },\n};\n\nexport const EXPRESS = original.EXPRESS;\n\n// Add Express route functions\nexport const badRequestRoute = createMockWrappedFunction(\n original.badRequestRoute,\n { error: `_MOCK_BAD_REQUEST_ROUTE_[${TAG}]` },\n);\n\nexport const echoRoute = createMockWrappedFunction(\n original.echoRoute,\n (req) => req,\n);\n\nexport const forbiddenRoute = createMockWrappedFunction(\n original.forbiddenRoute,\n { error: `_MOCK_FORBIDDEN_ROUTE_[${TAG}]` },\n);\n\nexport const goneRoute = createMockWrappedFunction(original.goneRoute, {\n error: `_MOCK_GONE_ROUTE_[${TAG}]`,\n});\n\nexport const methodNotAllowedRoute = createMockWrappedFunction(\n original.methodNotAllowedRoute,\n { error: `_MOCK_METHOD_NOT_ALLOWED_ROUTE_[${TAG}]` },\n);\n\nexport const noContentRoute = createMockWrappedFunction(\n original.noContentRoute,\n { status: 204 },\n);\n\nexport const notFoundRoute = createMockWrappedFunction(original.notFoundRoute, {\n error: `_MOCK_NOT_FOUND_ROUTE_[${TAG}]`,\n});\n\nexport const notImplementedRoute = createMockWrappedFunction(\n original.notImplementedRoute,\n { error: `_MOCK_NOT_IMPLEMENTED_ROUTE_[${TAG}]` },\n);\n\nexport const expressHttpCodeHandler = createMockWrappedFunction(\n original.expressHttpCodeHandler,\n (...args) => {\n const [req, res, next] = args;\n return res.status(200).send();\n },\n);\n\nexport const cors = createMockWrappedFunction(original.cors);\n\n// Type definitions needed for the expressHandler\ninterface WithJsonFunction {\n json: () => any;\n}\n\nexport interface ExpressHandlerFunction {\n (req: any, res: any, ...extra: any[]): Promise<any> | any;\n}\n\nexport interface ExpressHandlerOptions {\n locals?: Record<string, any>;\n setup?: any[] | Function;\n teardown?: any[] | Function;\n unavailable?: boolean;\n validate?: any[] | Function;\n}\n\ntype ExpressHandlerParameter = ExpressHandlerFunction | ExpressHandlerOptions;\n\nexport const expressHandler = createMockFunction<\n (\n handlerOrProps: ExpressHandlerParameter,\n propsOrHandler?: ExpressHandlerParameter,\n ) => (req: any, res: any, ...extra: any[]) => Promise<any>\n>((handlerOrProps, propsOrHandler) => {\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 new 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;\n } else {\n localsReq.locals[key] = props.locals![key];\n }\n }\n };\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 (supertestMode && typeof res.status === \"function\") {\n // In theory jaypieFunction has handled all errors\n const errorStatus = error.status || HTTP.CODE.INTERNAL_ERROR;\n let errorResponse;\n if (typeof error.json === \"function\") {\n errorResponse = error.json();\n } else {\n // This should never happen\n errorResponse = new UnhandledError().json();\n }\n res.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 (supertestMode && typeof res.status === \"function\") {\n if (response) {\n if (typeof response === \"object\") {\n if (typeof (response as WithJsonFunction).json === \"function\") {\n res.json((response as WithJsonFunction).json());\n } else {\n res.status(status).json(response);\n }\n } else if (typeof response === \"string\") {\n try {\n res.status(status).json(JSON.parse(response));\n } catch (error) {\n res.status(status).send(response);\n }\n } else if (response === true) {\n res.status(HTTP.CODE.CREATED).send();\n } else {\n res.status(status).send(response);\n }\n } else {\n res.status(HTTP.CODE.NO_CONTENT).send();\n }\n } else {\n return response;\n }\n };\n});\n","import { createMockFunction } from \"./utils\";\nimport { jaypieHandler } from \"./core\";\n\n// We'll use more specific types instead of Function\ntype HandlerFunction = (...args: unknown[]) => unknown;\ntype LifecycleFunction = (...args: unknown[]) => unknown | Promise<unknown>;\n\nexport interface LambdaOptions {\n name?: string;\n setup?: LifecycleFunction | LifecycleFunction[];\n teardown?: LifecycleFunction | LifecycleFunction[];\n throw?: boolean;\n unavailable?: boolean;\n validate?: LifecycleFunction | LifecycleFunction[];\n [key: string]: unknown;\n}\n\n// Mock implementation of lambdaHandler that follows the original implementation pattern\nexport const lambdaHandler = createMockFunction<\n (handler: HandlerFunction, props?: LambdaOptions) => HandlerFunction\n>((handler, props = {}) => {\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(handler, props)(event, context, ...extra);\n };\n});\n","import { vi } from \"vitest\";\nimport {\n createMockResolvedFunction,\n createMockReturnedFunction,\n createMockTool,\n createMockWrappedObject,\n} from \"./utils\";\n\nimport * as original from \"@jaypie/llm\";\n\n// Constants for mock values\nconst TAG = \"LLM\";\n\nexport const LLM = original.LLM;\n\nconst mockOperate = createMockResolvedFunction({\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 model: \"_MOCK_MODEL\",\n output: [\n {\n id: \"_MOCK_MESSAGE_ID\",\n type: \"message\",\n status: \"completed\",\n content: \"_MOCK_CONTENT\",\n role: \"assistant\",\n },\n ],\n provider: \"_MOCK_PROVIDER\",\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: [\n {\n input: 100,\n output: 20,\n reasoning: 0,\n total: 120,\n provider: \"_MOCK_PROVIDER\",\n model: \"_MOCK_MODEL\",\n },\n ],\n content: \"_MOCK_OUTPUT_TEXT\",\n});\nconst mockSend = createMockResolvedFunction(\"_MOCK_LLM_RESPONSE\");\nexport const 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// Tool implementations - always return mock values\nconst random = createMockTool(\"random\", createMockReturnedFunction(0.5));\n\nconst roll = createMockTool(\"roll\", createMockReturnedFunction(6));\n\nconst time = createMockTool(\"time\", createMockReturnedFunction(`_MOCK_TIME`));\n\nconst weather = createMockTool(\n \"weather\",\n createMockResolvedFunction({\n location: `_MOCK_WEATHER_LOCATION`,\n forecast: [{ conditions: \"good\" }],\n }),\n);\n\nexport const Toolkit = createMockWrappedObject(original.Toolkit, {\n isClass: true,\n});\n\n// Tool collections\nexport const toolkit = new original.Toolkit([random, roll, time, weather]);\n\nexport const tools = toolkit.tools;\n","import { createMockReturnedFunction } from \"./utils\";\n\n// Mongoose mock functions\nexport const connect = createMockReturnedFunction(true);\n\nexport const connectFromSecretEnv = createMockReturnedFunction(true);\n\nexport const disconnect = createMockReturnedFunction(true);\n\nexport { mongoose } from \"@jaypie/mongoose\";\n","import { readFile } from \"fs/promises\";\nimport { dirname, join } from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { beforeAll, vi } from \"vitest\";\nimport { TextractDocument } from \"amazon-textract-response-parser\";\nimport type { TextractPageAdaptable } from \"@jaypie/textract\";\nimport type { JsonReturn } from \"@jaypie/types\";\nimport {\n createMockWrappedFunction,\n createMockFunction,\n createMockWrappedObject,\n} from \"./utils\";\nimport * as original from \"@jaypie/textract\";\n\n// Constants for mock values\nconst TAG = \"TEXTRACT\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst MOCK_TEXTRACT_DOCUMENT_PATH = join(__dirname, \"..\", \"mockTextract.json\");\n\n// Setup\nlet mockTextractContents: string;\nbeforeAll(async () => {\n mockTextractContents = await readFile(MOCK_TEXTRACT_DOCUMENT_PATH, \"utf-8\");\n});\n\n/**\n * Mock for MarkdownPage class from @jaypie/textract\n */\nexport const MarkdownPage = createMockWrappedObject(original.MarkdownPage, {\n class: true,\n fallback: () => {\n const mockDocument = new TextractDocument(JSON.parse(mockTextractContents));\n // Double type assertion needed to bridge incompatible types\n return new original.MarkdownPage(\n mockDocument.pageNumber(1) as unknown as TextractPageAdaptable,\n );\n },\n});\n\n/**\n * Mock for textractJsonToMarkdown function from @jaypie/textract\n */\nexport const textractJsonToMarkdown = createMockWrappedFunction<string>(\n original.textractJsonToMarkdown,\n `_MOCK_TEXTRACT_JSON_TO_MARKDOWN_[${TAG}]`,\n);\n\n// Export default for convenience\nexport default {\n MarkdownPage,\n textractJsonToMarkdown,\n};\n","// Import all mocks\nimport * as aws from \"./aws\";\nimport * as core from \"./core\";\nimport * as datadog from \"./datadog\";\nimport * as express from \"./express\";\nimport * as lambda from \"./lambda\";\nimport * as llm from \"./llm\";\nimport * as mongoose from \"./mongoose\";\nimport * as textract from \"./textract\";\n\n// Re-export all mocks\nexport * from \"./aws\";\nexport * from \"./core\";\nexport * from \"./datadog\";\nexport * from \"./express\";\nexport * from \"./lambda\";\nexport * from \"./llm\";\nexport * from \"./mongoose\";\nexport * from \"./textract\";\n\n// Export default object with all mocks\nexport default {\n // AWS module\n ...aws,\n\n // Core module\n ...core,\n\n // Datadog module\n ...datadog,\n\n // Express module\n ...express,\n\n // Lambda module\n ...lambda,\n\n // LLM module\n ...llm,\n\n // Mongoose module (now empty)\n ...mongoose,\n\n // Textract module\n ...textract,\n} as Record<string, unknown>;\n"],"names":["TAG","original","HTTP","BadRequestError","UnhandledError","textract"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/mock/utils.ts","../../../src/mock/aws.ts","../../../src/mockLog.module.ts","../../../src/mock/core.ts","../../../src/mock/datadog.ts","../../../src/mock/express.ts","../../../src/mock/lambda.ts","../../../src/mock/llm.ts","../../../src/mock/mongoose.ts","../../../src/mock/textract.ts","../../../src/mock/index.ts"],"sourcesContent":["import { vi } from \"vitest\";\n\nimport { LlmTool } from \"@jaypie/llm\";\n\n/**\n * Internal wrapper for vi.fn() that adds _jaypie: true to all mocks\n */\nfunction _createJaypieMock<T extends (...args: any[]) => any>(\n implementation?: T,\n): ReturnType<typeof vi.fn> {\n const mock = vi.fn(implementation);\n Object.defineProperty(mock, \"_jaypie\", { value: true });\n return mock;\n}\n\n/**\n * Creates function mocks with proper typing\n * Internal utility to create properly typed mocks\n */\nfunction createMockFunction<T extends (...args: any[]) => any>(\n implementation?: (...args: Parameters<T>) => ReturnType<T>,\n): T & { mock: any } {\n // Use a more specific type conversion to avoid TypeScript error\n return _createJaypieMock(implementation) as unknown as T & { mock: any };\n}\n\n/**\n * Creates a mock function that resolves to a value when awaited\n * Internal utility to create async mock functions\n */\nfunction createMockResolvedFunction<T>(\n value: T,\n): (...args: unknown[]) => Promise<T> {\n return _createJaypieMock().mockResolvedValue(value);\n}\n\n/**\n * Creates a mock function that returns a value\n * Internal utility to create mock functions that return a value\n */\nfunction createMockReturnedFunction<T>(value: T): (...args: unknown[]) => T {\n return _createJaypieMock().mockReturnValue(value);\n}\n\n/**\n * Creates a mock function that wraps another function\n * Internal utility to create mock functions that wrap another function\n */\nfunction createMockWrappedFunction<T>(\n fn: (...args: unknown[]) => unknown,\n fallbackOrOptions:\n | any\n | {\n fallback?: any;\n throws?: boolean;\n class?: boolean;\n } = \"_MOCK_WRAPPED_RESULT\",\n): (...args: unknown[]) => T {\n // Determine if we have a direct fallback or options object\n const options =\n typeof fallbackOrOptions === \"object\" &&\n fallbackOrOptions !== null &&\n (\"fallback\" in fallbackOrOptions ||\n \"throws\" in fallbackOrOptions ||\n \"class\" in fallbackOrOptions)\n ? fallbackOrOptions\n : { fallback: fallbackOrOptions };\n\n // Extract values with defaults\n const fallback = options.fallback ?? \"_MOCK_WRAPPED_RESULT\";\n const throws = options.throws ?? false;\n const isClass = options.class ?? false;\n\n return _createJaypieMock().mockImplementation((...args: unknown[]) => {\n try {\n return isClass ? new (fn as any)(...args) : fn(...args);\n } catch (error) {\n if (throws) {\n throw error;\n }\n\n console.warn(\n `[@jaypie/testkit] Actual implementation failed. To suppress this warning, manually mock the response with mockReturnValue`,\n );\n if (error instanceof Error) {\n console.warn(`[@jaypie/testkit] ${error.message}`);\n }\n\n // If fallback is a function, call it\n if (typeof fallback === \"function\") {\n try {\n return fallback(...args);\n } catch (fallbackError) {\n console.warn(\n `[@jaypie/testkit] Fallback function failed: ${fallbackError instanceof Error ? fallbackError.message : fallbackError}`,\n );\n return \"_MOCK_WRAPPED_RESULT\";\n }\n }\n\n return fallback;\n }\n });\n}\n\nfunction createMockWrappedObject<T extends Record<string, any>>(\n object: T,\n fallbackOrOptions:\n | any\n | {\n fallback?: any;\n throws?: boolean;\n class?: boolean;\n } = \"_MOCK_WRAPPED_RESULT\",\n): T {\n let returnMock: Record<string, any> = {};\n\n // Extract values with defaults for the top-level call\n const options =\n typeof fallbackOrOptions === \"object\" &&\n fallbackOrOptions !== null &&\n (\"fallback\" in fallbackOrOptions ||\n \"throws\" in fallbackOrOptions ||\n \"class\" in fallbackOrOptions)\n ? fallbackOrOptions\n : { fallback: fallbackOrOptions };\n\n const fallback = options.fallback ?? \"_MOCK_WRAPPED_RESULT\";\n const throws = options.throws ?? false;\n const isClass = options.class ?? false;\n\n // Create options for recursive calls\n // Do not pass down class=true to nested objects\n const recursiveOptions = {\n fallback,\n throws,\n class: false, // Always pass class=false to nested objects\n };\n\n if (typeof object === \"function\") {\n returnMock = createMockWrappedFunction(object, {\n fallback,\n throws,\n class: isClass,\n });\n }\n for (const key of Object.keys(object)) {\n const value = object[key];\n if (typeof value === \"function\") {\n returnMock[key] = createMockWrappedFunction(value, {\n fallback,\n throws,\n class: isClass,\n });\n } else if (typeof value === \"object\" && value !== null) {\n returnMock[key] = createMockWrappedObject(value, recursiveOptions);\n } else {\n returnMock[key] = value;\n }\n }\n return returnMock as T;\n}\n\n/**\n * Utility to create a mock error constructor from an error class\n */\nfunction createMockError<T extends new (...args: any[]) => Error>(\n ErrorClass: T,\n): T {\n // Create a mock constructor that returns a new instance of ErrorClass\n const mockConstructor = _createJaypieMock(function (\n this: any,\n ...args: any[]\n ) {\n return new ErrorClass(...args);\n });\n return mockConstructor as unknown as T;\n}\n\n// Mock core errors - All error classes extend JaypieError\nclass MockValidationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"ValidationError\";\n }\n}\n\nclass MockNotFoundError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"NotFoundError\";\n }\n}\n\n/**\n * Creates a mock LlmTool for testing purposes\n * @param nameOrCallOrOptions - Name (string), call function, or full options object\n * @param callOrOptions - Call function or options object (when first param is string)\n * @returns Mock LlmTool object\n */\nfunction createMockTool(\n nameOrCallOrOptions: string | ((...args: any[]) => any) | Partial<LlmTool>,\n callOrOptions?: ((...args: any[]) => any) | Partial<LlmTool>,\n): LlmTool {\n // Default options\n const defaults: LlmTool = {\n name: \"mockTool\",\n description: \"Mock tool for testing\",\n parameters: {},\n type: \"function\",\n call: createMockResolvedFunction({ result: \"MOCK_TOOL\" }),\n message: \"MOCK_TOOL_MESSAGE\",\n };\n\n // Handle different parameter combinations\n if (typeof nameOrCallOrOptions === \"string\") {\n // First parameter is name\n const name = nameOrCallOrOptions;\n\n if (typeof callOrOptions === \"function\") {\n // Second parameter is call function\n return {\n ...defaults,\n name,\n call: callOrOptions,\n };\n } else if (callOrOptions && typeof callOrOptions === \"object\") {\n // Second parameter is options object\n return {\n ...defaults,\n name,\n ...callOrOptions,\n };\n } else {\n // Only name provided\n return {\n ...defaults,\n name,\n };\n }\n } else if (typeof nameOrCallOrOptions === \"function\") {\n // First parameter is call function\n return {\n ...defaults,\n call: nameOrCallOrOptions,\n };\n } else if (nameOrCallOrOptions && typeof nameOrCallOrOptions === \"object\") {\n // First parameter is options object\n return {\n ...defaults,\n ...nameOrCallOrOptions,\n };\n } else {\n // No parameters or invalid parameters\n return defaults;\n }\n}\n\n// Export functions for internal use\nexport {\n createMockFunction,\n createMockResolvedFunction,\n createMockReturnedFunction,\n createMockWrappedFunction,\n createMockWrappedObject,\n MockValidationError,\n MockNotFoundError,\n createMockError,\n createMockTool,\n};\n","import * as original from \"@jaypie/aws\";\nimport {\n createMockFunction,\n createMockResolvedFunction,\n createMockWrappedFunction,\n} from \"./utils\";\n\n// Constants for mock values\nconst TAG = \"AWS\";\n\nexport const getMessages = createMockWrappedFunction(original.getMessages, []);\n\nexport const getSecret = createMockResolvedFunction(\"mock-secret-value\");\n\nexport const sendMessage = createMockResolvedFunction({\n MessageId: \"mock-message-id\",\n});\n\n// Add missing functions from original implementation\nexport const getEnvSecret = createMockFunction<\n (key: string) => Promise<string>\n>(async (key) => `_MOCK_ENV_SECRET_[${TAG}][${key}]`);\n\nexport const getSingletonMessage = createMockWrappedFunction(\n original.getSingletonMessage,\n { value: \"_MOCK_SINGLETON_MESSAGE_\" },\n);\n\nexport const getTextractJob = createMockFunction<\n (jobId: string) => Promise<any>\n>(async (job) => ({ value: `_MOCK_TEXTRACT_JOB_[${job}]` }));\n\nexport const sendBatchMessages = createMockResolvedFunction(true);\n\nexport const sendTextractJob = createMockFunction<\n ({\n bucket,\n key,\n featureTypes,\n }: {\n bucket: string;\n key: string;\n featureTypes?: string[];\n snsRoleArn?: string;\n snsTopicArn?: string;\n }) => Promise<any[]>\n>(async ({ bucket, key, featureTypes = [] }) => {\n // Basic validation to mimic original behavior\n if (!bucket || !key) {\n throw new Error(\"Bucket and key are required\");\n }\n return [`_MOCK_TEXTRACT_JOB_ID_[${TAG}]_${bucket}_${key}`];\n});\n","import { 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\n// Use Record type for more flexible access pattern\nconst originalLogMethods = new WeakMap<typeof log, Record<string, unknown>>();\n\nexport function spyLog(logInstance: typeof log): void {\n if (!originalLogMethods.has(logInstance)) {\n const mockLog = mockLogFactory();\n const originalMethods: Record<string, unknown> = {};\n\n // Save only methods that actually exist on the log instance\n LOG_METHOD_NAMES.forEach((method) => {\n if (method in logInstance) {\n originalMethods[method] =\n logInstance[method as keyof typeof logInstance];\n // Use type assertion after checking existence\n (logInstance as Record<string, unknown>)[method] = mockLog[method];\n }\n });\n\n originalLogMethods.set(logInstance, originalMethods);\n }\n}\n\nexport function restoreLog(logInstance: typeof log): void {\n const originalMethods = originalLogMethods.get(logInstance);\n if (originalMethods) {\n LOG_METHOD_NAMES.forEach((method) => {\n if (method in originalMethods && method in logInstance) {\n // Use type assertion after checking existence\n (logInstance as Record<string, unknown>)[method] =\n originalMethods[method];\n }\n });\n originalLogMethods.delete(logInstance);\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n\nimport {\n createMockError,\n createMockFunction,\n createMockResolvedFunction,\n createMockReturnedFunction,\n createMockWrappedFunction,\n createMockWrappedObject,\n} from \"./utils\";\nimport { beforeAll } from \"vitest\";\nimport { spyLog } from \"../mockLog.module.js\";\nimport { log } from \"@jaypie/core\";\nimport * as original from \"@jaypie/core\";\n\n// Constants for mock values\nconst TAG = \"CORE\";\n\nexport const BadGatewayError = createMockError(original.BadGatewayError);\nexport const BadRequestError = createMockError(original.BadRequestError);\nexport const ConfigurationError = createMockError(original.ConfigurationError);\nexport const ForbiddenError = createMockError(original.ForbiddenError);\nexport const GatewayTimeoutError = createMockError(\n original.GatewayTimeoutError,\n);\nexport const GoneError = createMockError(original.GoneError);\nexport const IllogicalError = createMockError(original.IllogicalError);\nexport const InternalError = createMockError(original.InternalError);\nexport const MethodNotAllowedError = createMockError(\n original.MethodNotAllowedError,\n);\nexport const MultiError = createMockError(original.MultiError);\nexport const NotFoundError = createMockError(original.NotFoundError);\nexport const NotImplementedError = createMockError(\n original.NotImplementedError,\n);\nexport const ProjectError = createMockError(original.ProjectError);\nexport const ProjectMultiError = createMockError(original.ProjectMultiError);\nexport const RejectedError = createMockError(original.RejectedError);\nexport const TeapotError = createMockError(original.TeapotError);\nexport const UnauthorizedError = createMockError(original.UnauthorizedError);\nexport const UnavailableError = createMockError(original.UnavailableError);\nexport const UnhandledError = createMockError(original.UnhandledError);\nexport const UnreachableCodeError = createMockError(\n original.UnreachableCodeError,\n);\n\n// Mock core functions\nexport const validate = createMockWrappedObject(original.validate, {\n fallback: false,\n throws: true,\n});\n\nbeforeAll(async () => {\n spyLog(log);\n});\nexport { log };\n\n// Add missing core functions\nexport const cloneDeep = createMockWrappedFunction(original.cloneDeep, {\n throws: true,\n});\n\nexport const envBoolean = createMockReturnedFunction(true);\n\nexport const envsKey = createMockWrappedFunction(\n original.envsKey,\n `_MOCK_ENVS_KEY_[${TAG}]`,\n);\n\nexport const errorFromStatusCode = createMockFunction<\n (statusCode: number, message?: string) => Error\n>((statusCode, message = `Mock error for status code ${statusCode}`) => {\n try {\n // Try to mimic original implementation\n switch (statusCode) {\n case 400:\n return new BadRequestError(message);\n case 401:\n return new UnauthorizedError(message);\n case 403:\n return new ForbiddenError(message);\n case 404:\n return new NotFoundError(message);\n case 405:\n return new MethodNotAllowedError(message);\n case 410:\n return new GoneError(message);\n case 418:\n return new TeapotError(message);\n case 500:\n return new InternalError(message);\n case 501:\n return new NotImplementedError(message);\n case 502:\n return new BadGatewayError(message);\n case 503:\n return new UnavailableError(message);\n case 504:\n return new GatewayTimeoutError(message);\n default:\n return new Error(message);\n }\n } catch (error) {\n return new Error(`_MOCK_ERROR_FROM_STATUS_CODE_[${TAG}][${statusCode}]`);\n }\n});\n\nexport const formatError = createMockWrappedFunction(\n original.formatError,\n `_MOCK_FORMAT_ERROR_[${TAG}]`,\n);\n\nexport const getHeaderFrom = createMockWrappedFunction(\n original.getHeaderFrom,\n `_MOCK_GET_HEADER_FROM_[${TAG}]`,\n);\n\nexport const getObjectKeyCaseInsensitive = createMockWrappedFunction(\n original.getObjectKeyCaseInsensitive,\n `_MOCK_GET_OBJECT_KEY_CASE_INSENSITIVE_[${TAG}]`,\n);\n\nexport const isClass = createMockWrappedFunction(\n original.isClass,\n `_MOCK_IS_CLASS_[${TAG}]`,\n);\n\nexport const isJaypieError = createMockWrappedFunction(\n original.isJaypieError,\n false,\n);\n\n// Optional/Required validation functions\nexport const optional = createMockWrappedObject(original.optional, {\n fallback: true,\n throws: true,\n});\n\nexport const required = createMockWrappedObject(original.required, {\n fallback: true,\n throws: true,\n});\n\nexport const resolveValue = createMockWrappedFunction(\n original.resolveValue,\n `_MOCK_RESOLVE_VALUE_[${TAG}]`,\n);\n\nexport const safeParseFloat = createMockWrappedFunction(\n original.safeParseFloat,\n `_MOCK_SAFE_PARSE_FLOAT_[${TAG}]`,\n);\n\nexport const placeholders = createMockWrappedFunction(\n original.placeholders,\n `_MOCK_PLACEHOLDERS_[${TAG}]`,\n);\n\n// Add force utilities to help with jaypieHandler implementation\nexport const force = createMockWrappedObject(original.force);\n\nexport const jaypieHandler = createMockFunction<\n (\n handler: Function,\n options?: {\n setup?: Function | Function[];\n teardown?: Function | Function[];\n unavailable?: boolean;\n validate?: Function | Function[];\n },\n ) => Function\n>((handler, options = {}) => {\n return async (...args: any[]) => {\n let result;\n let thrownError;\n\n // Destructure options with defaults\n const {\n setup = [],\n teardown = [],\n unavailable = original.force.boolean(process.env.PROJECT_UNAVAILABLE),\n validate = [],\n } = options;\n\n // Check if service is unavailable\n if (unavailable) throw new UnavailableError(\"Service unavailable\");\n\n // Run validation functions\n const validateFunctions = original.force.array(validate);\n for (const validator of validateFunctions) {\n if (typeof validator === \"function\") {\n const valid = await validator(...args);\n if (valid === false) {\n throw new BadRequestError(\"Validation failed\");\n }\n }\n }\n\n try {\n // Run setup functions\n const setupFunctions = original.force.array(setup);\n for (const setupFunction of setupFunctions) {\n if (typeof setupFunction === \"function\") {\n await setupFunction(...args);\n }\n }\n\n // Execute the handler\n result = await handler(...args);\n } catch (error) {\n thrownError = error;\n }\n\n // Run teardown functions (always run even if there was an error)\n const teardownFunctions = original.force.array(teardown);\n for (const teardownFunction of teardownFunctions) {\n if (typeof teardownFunction === \"function\") {\n try {\n await teardownFunction(...args);\n } catch (error) {\n // Swallow teardown errors, but log them\n console.error(error);\n }\n }\n }\n\n // If there was an error in the handler, throw it after teardown\n if (thrownError) {\n throw thrownError;\n }\n\n return result;\n };\n});\n\nexport const sleep = createMockResolvedFunction(true);\n\nexport const uuid = createMockWrappedFunction(\n original.uuid,\n `00000000-0000-0000-0000-000000000000`,\n);\n\nexport const ERROR = original.ERROR;\nexport const HTTP = original.HTTP;\nexport const JAYPIE = original.JAYPIE;\nexport const PROJECT = original.PROJECT;\nexport const VALIDATE = original.VALIDATE;\n","import { createMockResolvedFunction, createMockWrappedFunction } from \"./utils\";\n\nimport * as original from \"@jaypie/datadog\";\n\nexport const DATADOG = original.DATADOG;\nexport const hasDatadogEnv = createMockWrappedFunction(\n original.hasDatadogEnv,\n false,\n);\nexport const submitDistribution = createMockResolvedFunction(true);\nexport const submitMetric = createMockResolvedFunction(true);\nexport const submitMetricSet = createMockResolvedFunction(true);\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n\nimport {\n createMockFunction,\n createMockReturnedFunction,\n createMockResolvedFunction,\n createMockWrappedFunction,\n} from \"./utils\";\nimport { BadRequestError, UnhandledError } from \"@jaypie/core\";\nimport { force, jaypieHandler } from \"./core\";\nimport * as original from \"@jaypie/express\";\n\n// Constants for mock values\nconst TAG = \"EXPRESS\";\nconst HTTP = {\n CODE: { OK: 200, CREATED: 201, NO_CONTENT: 204, INTERNAL_ERROR: 500 },\n};\n\nexport const EXPRESS = original.EXPRESS;\n\n// Add Express route functions\nexport const badRequestRoute = createMockWrappedFunction(\n original.badRequestRoute,\n { error: `_MOCK_BAD_REQUEST_ROUTE_[${TAG}]` },\n);\n\nexport const echoRoute = createMockWrappedFunction(\n original.echoRoute,\n (req) => req,\n);\n\nexport const forbiddenRoute = createMockWrappedFunction(\n original.forbiddenRoute,\n { error: `_MOCK_FORBIDDEN_ROUTE_[${TAG}]` },\n);\n\nexport const goneRoute = createMockWrappedFunction(original.goneRoute, {\n error: `_MOCK_GONE_ROUTE_[${TAG}]`,\n});\n\nexport const methodNotAllowedRoute = createMockWrappedFunction(\n original.methodNotAllowedRoute,\n { error: `_MOCK_METHOD_NOT_ALLOWED_ROUTE_[${TAG}]` },\n);\n\nexport const noContentRoute = createMockWrappedFunction(\n original.noContentRoute,\n { status: 204 },\n);\n\nexport const notFoundRoute = createMockWrappedFunction(original.notFoundRoute, {\n error: `_MOCK_NOT_FOUND_ROUTE_[${TAG}]`,\n});\n\nexport const notImplementedRoute = createMockWrappedFunction(\n original.notImplementedRoute,\n { error: `_MOCK_NOT_IMPLEMENTED_ROUTE_[${TAG}]` },\n);\n\nexport const expressHttpCodeHandler = createMockWrappedFunction(\n original.expressHttpCodeHandler,\n (...args) => {\n const [req, res, next] = args;\n return res.status(200).send();\n },\n);\n\nexport const cors = createMockWrappedFunction(original.cors);\n\n// Type definitions needed for the expressHandler\ninterface WithJsonFunction {\n json: () => any;\n}\n\nexport interface ExpressHandlerFunction {\n (req: any, res: any, ...extra: any[]): Promise<any> | any;\n}\n\nexport interface ExpressHandlerOptions {\n locals?: Record<string, any>;\n setup?: any[] | Function;\n teardown?: any[] | Function;\n unavailable?: boolean;\n validate?: any[] | Function;\n}\n\ntype ExpressHandlerParameter = ExpressHandlerFunction | ExpressHandlerOptions;\n\nexport const expressHandler = createMockFunction<\n (\n handlerOrProps: ExpressHandlerParameter,\n propsOrHandler?: ExpressHandlerParameter,\n ) => (req: any, res: any, ...extra: any[]) => Promise<any>\n>((handlerOrProps, propsOrHandler) => {\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 new 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;\n } else {\n localsReq.locals[key] = props.locals![key];\n }\n }\n };\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 (supertestMode && typeof res.status === \"function\") {\n // In theory jaypieFunction has handled all errors\n const errorStatus = error.status || HTTP.CODE.INTERNAL_ERROR;\n let errorResponse;\n if (typeof error.json === \"function\") {\n errorResponse = error.json();\n } else {\n // This should never happen\n errorResponse = new UnhandledError().json();\n }\n res.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 (supertestMode && typeof res.status === \"function\") {\n if (response) {\n if (typeof response === \"object\") {\n if (typeof (response as WithJsonFunction).json === \"function\") {\n res.json((response as WithJsonFunction).json());\n } else {\n res.status(status).json(response);\n }\n } else if (typeof response === \"string\") {\n try {\n res.status(status).json(JSON.parse(response));\n } catch (error) {\n res.status(status).send(response);\n }\n } else if (response === true) {\n res.status(HTTP.CODE.CREATED).send();\n } else {\n res.status(status).send(response);\n }\n } else {\n res.status(HTTP.CODE.NO_CONTENT).send();\n }\n } else {\n return response;\n }\n };\n});\n","import { createMockFunction } from \"./utils\";\nimport { jaypieHandler } from \"./core\";\n\n// We'll use more specific types instead of Function\ntype HandlerFunction = (...args: unknown[]) => unknown;\ntype LifecycleFunction = (...args: unknown[]) => unknown | Promise<unknown>;\n\nexport interface LambdaOptions {\n name?: string;\n setup?: LifecycleFunction | LifecycleFunction[];\n teardown?: LifecycleFunction | LifecycleFunction[];\n throw?: boolean;\n unavailable?: boolean;\n validate?: LifecycleFunction | LifecycleFunction[];\n [key: string]: unknown;\n}\n\n// Mock implementation of lambdaHandler that follows the original implementation pattern\nexport const lambdaHandler = createMockFunction<\n (handler: HandlerFunction, props?: LambdaOptions) => HandlerFunction\n>((handler, props = {}) => {\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(handler, props)(event, context, ...extra);\n };\n});\n","import { vi } from \"vitest\";\nimport {\n createMockResolvedFunction,\n createMockReturnedFunction,\n createMockTool,\n createMockWrappedObject,\n} from \"./utils\";\n\nimport * as original from \"@jaypie/llm\";\n\n// Constants for mock values\nconst TAG = \"LLM\";\n\nexport const LLM = original.LLM;\n\nconst mockOperate = createMockResolvedFunction({\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 model: \"_MOCK_MODEL\",\n output: [\n {\n id: \"_MOCK_MESSAGE_ID\",\n type: \"message\",\n status: \"completed\",\n content: \"_MOCK_CONTENT\",\n role: \"assistant\",\n },\n ],\n provider: \"_MOCK_PROVIDER\",\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: [\n {\n input: 100,\n output: 20,\n reasoning: 0,\n total: 120,\n provider: \"_MOCK_PROVIDER\",\n model: \"_MOCK_MODEL\",\n },\n ],\n content: \"_MOCK_OUTPUT_TEXT\",\n});\nconst mockSend = createMockResolvedFunction(\"_MOCK_LLM_RESPONSE\");\nexport const 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// Tool implementations - always return mock values\nconst random = createMockTool(\"random\", createMockReturnedFunction(0.5));\n\nconst roll = createMockTool(\"roll\", createMockReturnedFunction(6));\n\nconst time = createMockTool(\"time\", createMockReturnedFunction(`_MOCK_TIME`));\n\nconst weather = createMockTool(\n \"weather\",\n createMockResolvedFunction({\n location: `_MOCK_WEATHER_LOCATION`,\n forecast: [{ conditions: \"good\" }],\n }),\n);\n\nexport const Toolkit = createMockWrappedObject(original.Toolkit, {\n isClass: true,\n});\n\nexport const JaypieToolkit = createMockWrappedObject(original.JaypieToolkit, {\n isClass: true,\n});\n\n// Tool collections\nexport const toolkit = new original.JaypieToolkit([\n random,\n roll,\n time,\n weather,\n]);\n\nexport const tools = toolkit.tools;\n","import { createMockReturnedFunction } from \"./utils\";\n\n// Mongoose mock functions\nexport const connect = createMockReturnedFunction(true);\n\nexport const connectFromSecretEnv = createMockReturnedFunction(true);\n\nexport const disconnect = createMockReturnedFunction(true);\n\nexport { mongoose } from \"@jaypie/mongoose\";\n","import { readFile } from \"fs/promises\";\nimport { dirname, join } from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { beforeAll, vi } from \"vitest\";\nimport { TextractDocument } from \"amazon-textract-response-parser\";\nimport type { TextractPageAdaptable } from \"@jaypie/textract\";\nimport type { JsonReturn } from \"@jaypie/types\";\nimport {\n createMockWrappedFunction,\n createMockFunction,\n createMockWrappedObject,\n} from \"./utils\";\nimport * as original from \"@jaypie/textract\";\n\n// Constants for mock values\nconst TAG = \"TEXTRACT\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst MOCK_TEXTRACT_DOCUMENT_PATH = join(__dirname, \"..\", \"mockTextract.json\");\n\n// Setup\nlet mockTextractContents: string;\nbeforeAll(async () => {\n mockTextractContents = await readFile(MOCK_TEXTRACT_DOCUMENT_PATH, \"utf-8\");\n});\n\n/**\n * Mock for MarkdownPage class from @jaypie/textract\n */\nexport const MarkdownPage = createMockWrappedObject(original.MarkdownPage, {\n class: true,\n fallback: () => {\n const mockDocument = new TextractDocument(JSON.parse(mockTextractContents));\n // Double type assertion needed to bridge incompatible types\n return new original.MarkdownPage(\n mockDocument.pageNumber(1) as unknown as TextractPageAdaptable,\n );\n },\n});\n\n/**\n * Mock for textractJsonToMarkdown function from @jaypie/textract\n */\nexport const textractJsonToMarkdown = createMockWrappedFunction<string>(\n original.textractJsonToMarkdown,\n `_MOCK_TEXTRACT_JSON_TO_MARKDOWN_[${TAG}]`,\n);\n\n// Export default for convenience\nexport default {\n MarkdownPage,\n textractJsonToMarkdown,\n};\n","// Import all mocks\nimport * as aws from \"./aws\";\nimport * as core from \"./core\";\nimport * as datadog from \"./datadog\";\nimport * as express from \"./express\";\nimport * as lambda from \"./lambda\";\nimport * as llm from \"./llm\";\nimport * as mongoose from \"./mongoose\";\nimport * as textract from \"./textract\";\n\n// Re-export all mocks\nexport * from \"./aws\";\nexport * from \"./core\";\nexport * from \"./datadog\";\nexport * from \"./express\";\nexport * from \"./lambda\";\nexport * from \"./llm\";\nexport * from \"./mongoose\";\nexport * from \"./textract\";\n\n// Export default object with all mocks\nexport default {\n // AWS module\n ...aws,\n\n // Core module\n ...core,\n\n // Datadog module\n ...datadog,\n\n // Express module\n ...express,\n\n // Lambda module\n ...lambda,\n\n // LLM module\n ...llm,\n\n // Mongoose module (now empty)\n ...mongoose,\n\n // Textract module\n ...textract,\n} as Record<string, unknown>;\n"],"names":["TAG","original","HTTP","BadRequestError","UnhandledError","textract"],"mappings":"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"}
|
package/dist/mock/llm.d.ts
CHANGED
|
@@ -46,5 +46,6 @@ export declare const Llm: import("vitest").Mock<(...args: any[]) => any> & {
|
|
|
46
46
|
send: (...args: unknown[]) => Promise<string>;
|
|
47
47
|
};
|
|
48
48
|
export declare const Toolkit: typeof original.Toolkit;
|
|
49
|
-
export declare const
|
|
49
|
+
export declare const JaypieToolkit: typeof original.JaypieToolkit;
|
|
50
|
+
export declare const toolkit: original.JaypieToolkit;
|
|
50
51
|
export declare const tools: Omit<original.LlmTool, "call">[];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as original from "@jaypie/datadog";
|
|
2
2
|
export declare const DATADOG: original.DatadogConstants;
|
|
3
|
+
export declare const hasDatadogEnv: (...args: unknown[]) => unknown;
|
|
3
4
|
export declare const submitDistribution: (...args: unknown[]) => Promise<boolean>;
|
|
4
5
|
export declare const submitMetric: (...args: unknown[]) => Promise<boolean>;
|
|
5
6
|
export declare const submitMetricSet: (...args: unknown[]) => Promise<boolean>;
|
package/dist/mock/mock/llm.d.ts
CHANGED
|
@@ -46,5 +46,6 @@ export declare const Llm: import("vitest").Mock<(...args: any[]) => any> & {
|
|
|
46
46
|
send: (...args: unknown[]) => Promise<string>;
|
|
47
47
|
};
|
|
48
48
|
export declare const Toolkit: typeof original.Toolkit;
|
|
49
|
-
export declare const
|
|
49
|
+
export declare const JaypieToolkit: typeof original.JaypieToolkit;
|
|
50
|
+
export declare const toolkit: original.JaypieToolkit;
|
|
50
51
|
export declare const tools: Omit<original.LlmTool, "call">[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jaypie/testkit",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.33",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Finlayson Studio",
|
|
6
6
|
"type": "module",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"publishConfig": {
|
|
62
62
|
"access": "public"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "ff4cd0b0f127b7922f4a6532c895b1fb448f56e0"
|
|
65
65
|
}
|