@copilotkit/aimock 1.42.1 → 1.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +65 -0
- package/README.md +108 -16
- package/dist/agui-handler.d.ts.map +1 -1
- package/dist/agui-mock.cjs +1 -1
- package/dist/agui-mock.cjs.map +1 -1
- package/dist/agui-mock.d.cts.map +1 -1
- package/dist/agui-mock.d.ts.map +1 -1
- package/dist/agui-mock.js +1 -1
- package/dist/agui-mock.js.map +1 -1
- package/dist/agui-recorder.cjs +33 -11
- package/dist/agui-recorder.cjs.map +1 -1
- package/dist/agui-recorder.d.cts +10 -1
- package/dist/agui-recorder.d.cts.map +1 -1
- package/dist/agui-recorder.d.ts +10 -1
- package/dist/agui-recorder.d.ts.map +1 -1
- package/dist/agui-recorder.js +33 -11
- package/dist/agui-recorder.js.map +1 -1
- package/dist/agui-types.d.cts +1 -0
- package/dist/agui-types.d.cts.map +1 -1
- package/dist/agui-types.d.ts +1 -0
- package/dist/agui-types.d.ts.map +1 -1
- package/dist/aimock-cli.cjs +38 -10
- package/dist/aimock-cli.cjs.map +1 -1
- package/dist/aimock-cli.d.cts +5 -0
- package/dist/aimock-cli.d.cts.map +1 -1
- package/dist/aimock-cli.d.ts +5 -0
- package/dist/aimock-cli.d.ts.map +1 -1
- package/dist/aimock-cli.js +38 -10
- package/dist/aimock-cli.js.map +1 -1
- package/dist/batches.cjs +458 -0
- package/dist/batches.cjs.map +1 -0
- package/dist/batches.d.cts +57 -0
- package/dist/batches.d.cts.map +1 -0
- package/dist/batches.d.ts +57 -0
- package/dist/batches.d.ts.map +1 -0
- package/dist/batches.js +453 -0
- package/dist/batches.js.map +1 -0
- package/dist/bedrock-converse.cjs +44 -12
- package/dist/bedrock-converse.cjs.map +1 -1
- package/dist/bedrock-converse.d.cts.map +1 -1
- package/dist/bedrock-converse.d.ts.map +1 -1
- package/dist/bedrock-converse.js +46 -14
- package/dist/bedrock-converse.js.map +1 -1
- package/dist/bedrock.cjs +10 -8
- package/dist/bedrock.cjs.map +1 -1
- package/dist/bedrock.d.cts.map +1 -1
- package/dist/bedrock.d.ts.map +1 -1
- package/dist/bedrock.js +12 -10
- package/dist/bedrock.js.map +1 -1
- package/dist/byteplus-video.cjs +3 -3
- package/dist/byteplus-video.cjs.map +1 -1
- package/dist/byteplus-video.js +4 -4
- package/dist/byteplus-video.js.map +1 -1
- package/dist/chaos.cjs +625 -72
- package/dist/chaos.cjs.map +1 -1
- package/dist/chaos.d.cts +164 -7
- package/dist/chaos.d.cts.map +1 -1
- package/dist/chaos.d.ts +164 -7
- package/dist/chaos.d.ts.map +1 -1
- package/dist/chaos.js +616 -74
- package/dist/chaos.js.map +1 -1
- package/dist/cli.cjs +131 -30
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +132 -31
- package/dist/cli.js.map +1 -1
- package/dist/cohere.cjs +37 -9
- package/dist/cohere.cjs.map +1 -1
- package/dist/cohere.d.cts.map +1 -1
- package/dist/cohere.d.ts.map +1 -1
- package/dist/cohere.js +39 -11
- package/dist/cohere.js.map +1 -1
- package/dist/config-loader.cjs +1 -1
- package/dist/config-loader.js +1 -1
- package/dist/constants.cjs +8 -0
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +6 -2
- package/dist/constants.d.ts +6 -2
- package/dist/constants.js +8 -1
- package/dist/constants.js.map +1 -1
- package/dist/convert.cjs +1 -1
- package/dist/convert.cjs.map +1 -1
- package/dist/convert.js +1 -1
- package/dist/convert.js.map +1 -1
- package/dist/echo-text.cjs +65 -0
- package/dist/echo-text.cjs.map +1 -0
- package/dist/echo-text.d.cts +22 -0
- package/dist/echo-text.d.cts.map +1 -0
- package/dist/echo-text.d.ts +22 -0
- package/dist/echo-text.d.ts.map +1 -0
- package/dist/echo-text.js +65 -0
- package/dist/echo-text.js.map +1 -0
- package/dist/elevenlabs-audio.cjs +3 -3
- package/dist/elevenlabs-audio.cjs.map +1 -1
- package/dist/elevenlabs-audio.js +4 -4
- package/dist/elevenlabs-audio.js.map +1 -1
- package/dist/elevenlabs-voice.cjs +1053 -0
- package/dist/elevenlabs-voice.cjs.map +1 -0
- package/dist/elevenlabs-voice.d.cts +72 -0
- package/dist/elevenlabs-voice.d.cts.map +1 -0
- package/dist/elevenlabs-voice.d.ts +72 -0
- package/dist/elevenlabs-voice.d.ts.map +1 -0
- package/dist/elevenlabs-voice.js +1048 -0
- package/dist/elevenlabs-voice.js.map +1 -0
- package/dist/embeddings.cjs +26 -5
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.d.cts +1 -1
- package/dist/embeddings.d.cts.map +1 -1
- package/dist/embeddings.d.ts +1 -1
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +27 -6
- package/dist/embeddings.js.map +1 -1
- package/dist/fal-audio.cjs +3 -3
- package/dist/fal-audio.cjs.map +1 -1
- package/dist/fal-audio.js +4 -4
- package/dist/fal-audio.js.map +1 -1
- package/dist/fal.cjs +28 -4
- package/dist/fal.cjs.map +1 -1
- package/dist/fal.d.cts +16 -1
- package/dist/fal.d.cts.map +1 -1
- package/dist/fal.d.ts +16 -1
- package/dist/fal.d.ts.map +1 -1
- package/dist/fal.js +28 -5
- package/dist/fal.js.map +1 -1
- package/dist/files.cjs +1069 -0
- package/dist/files.cjs.map +1 -0
- package/dist/files.d.cts +68 -0
- package/dist/files.d.cts.map +1 -0
- package/dist/files.d.ts +68 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +1056 -0
- package/dist/files.js.map +1 -0
- package/dist/fine-tuning.cjs +1033 -0
- package/dist/fine-tuning.cjs.map +1 -0
- package/dist/fine-tuning.d.cts +96 -0
- package/dist/fine-tuning.d.cts.map +1 -0
- package/dist/fine-tuning.d.ts +96 -0
- package/dist/fine-tuning.d.ts.map +1 -0
- package/dist/fine-tuning.js +1026 -0
- package/dist/fine-tuning.js.map +1 -0
- package/dist/fixture-loader-services.cjs +116 -0
- package/dist/fixture-loader-services.cjs.map +1 -0
- package/dist/fixture-loader-services.d.cts +48 -0
- package/dist/fixture-loader-services.d.cts.map +1 -0
- package/dist/fixture-loader-services.d.ts +48 -0
- package/dist/fixture-loader-services.d.ts.map +1 -0
- package/dist/fixture-loader-services.js +114 -0
- package/dist/fixture-loader-services.js.map +1 -0
- package/dist/fixture-loader.cjs +0 -0
- package/dist/fixture-loader.cjs.map +1 -1
- package/dist/fixture-loader.d.cts +131 -5
- package/dist/fixture-loader.d.cts.map +1 -1
- package/dist/fixture-loader.d.ts +131 -5
- package/dist/fixture-loader.d.ts.map +1 -1
- package/dist/fixture-loader.js +0 -0
- package/dist/fixture-loader.js.map +1 -1
- package/dist/gemini-embeddings.cjs +44 -4
- package/dist/gemini-embeddings.cjs.map +1 -1
- package/dist/gemini-embeddings.js +46 -6
- package/dist/gemini-embeddings.js.map +1 -1
- package/dist/gemini-interactions.cjs +51 -7
- package/dist/gemini-interactions.cjs.map +1 -1
- package/dist/gemini-interactions.d.cts.map +1 -1
- package/dist/gemini-interactions.d.ts.map +1 -1
- package/dist/gemini-interactions.js +53 -9
- package/dist/gemini-interactions.js.map +1 -1
- package/dist/gemini.cjs +19 -8
- package/dist/gemini.cjs.map +1 -1
- package/dist/gemini.d.cts.map +1 -1
- package/dist/gemini.d.ts.map +1 -1
- package/dist/gemini.js +21 -10
- package/dist/gemini.js.map +1 -1
- package/dist/grok-video.cjs +14 -14
- package/dist/grok-video.cjs.map +1 -1
- package/dist/grok-video.js +15 -15
- package/dist/grok-video.js.map +1 -1
- package/dist/helpers.cjs +497 -10
- package/dist/helpers.cjs.map +1 -1
- package/dist/helpers.d.cts +38 -2
- package/dist/helpers.d.cts.map +1 -1
- package/dist/helpers.d.ts +38 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +487 -12
- package/dist/helpers.js.map +1 -1
- package/dist/images.cjs +57 -125
- package/dist/images.cjs.map +1 -1
- package/dist/images.d.cts.map +1 -1
- package/dist/images.d.ts.map +1 -1
- package/dist/images.js +58 -126
- package/dist/images.js.map +1 -1
- package/dist/index.cjs +71 -9
- package/dist/index.d.cts +17 -7
- package/dist/index.d.ts +17 -7
- package/dist/index.js +21 -11
- package/dist/jest.cjs +24 -12
- package/dist/jest.cjs.map +1 -1
- package/dist/jest.d.cts +6 -3
- package/dist/jest.d.cts.map +1 -1
- package/dist/jest.d.ts +6 -3
- package/dist/jest.d.ts.map +1 -1
- package/dist/jest.js +25 -13
- package/dist/jest.js.map +1 -1
- package/dist/journal.cjs +61 -4
- package/dist/journal.cjs.map +1 -1
- package/dist/journal.d.cts +60 -3
- package/dist/journal.d.cts.map +1 -1
- package/dist/journal.d.ts +60 -3
- package/dist/journal.d.ts.map +1 -1
- package/dist/journal.js +61 -5
- package/dist/journal.js.map +1 -1
- package/dist/live-fixture.cjs +1192 -0
- package/dist/live-fixture.cjs.map +1 -0
- package/dist/live-fixture.js +1187 -0
- package/dist/live-fixture.js.map +1 -0
- package/dist/live-recorder.cjs +256 -0
- package/dist/live-recorder.cjs.map +1 -0
- package/dist/live-recorder.js +254 -0
- package/dist/live-recorder.js.map +1 -0
- package/dist/live-replay.cjs +286 -0
- package/dist/live-replay.cjs.map +1 -0
- package/dist/live-replay.js +285 -0
- package/dist/live-replay.js.map +1 -0
- package/dist/live-sanitize.cjs +196 -0
- package/dist/live-sanitize.cjs.map +1 -0
- package/dist/live-sanitize.js +196 -0
- package/dist/live-sanitize.js.map +1 -0
- package/dist/live-types.d.cts +71 -0
- package/dist/live-types.d.cts.map +1 -0
- package/dist/live-types.d.ts +71 -0
- package/dist/live-types.d.ts.map +1 -0
- package/dist/llmock.cjs +132 -49
- package/dist/llmock.cjs.map +1 -1
- package/dist/llmock.d.cts +51 -5
- package/dist/llmock.d.cts.map +1 -1
- package/dist/llmock.d.ts +51 -5
- package/dist/llmock.d.ts.map +1 -1
- package/dist/llmock.js +133 -50
- package/dist/llmock.js.map +1 -1
- package/dist/mcp-fakes-mount.cjs +216 -0
- package/dist/mcp-fakes-mount.cjs.map +1 -0
- package/dist/mcp-fakes-mount.js +210 -0
- package/dist/mcp-fakes-mount.js.map +1 -0
- package/dist/mcp-fakes.cjs +1619 -0
- package/dist/mcp-fakes.cjs.map +1 -0
- package/dist/mcp-fakes.d.cts +101 -0
- package/dist/mcp-fakes.d.cts.map +1 -0
- package/dist/mcp-fakes.d.ts +101 -0
- package/dist/mcp-fakes.d.ts.map +1 -0
- package/dist/mcp-fakes.js +1614 -0
- package/dist/mcp-fakes.js.map +1 -0
- package/dist/mcp-handler.cjs +331 -17
- package/dist/mcp-handler.cjs.map +1 -1
- package/dist/mcp-handler.js +330 -18
- package/dist/mcp-handler.js.map +1 -1
- package/dist/mcp-mock.cjs +217 -49
- package/dist/mcp-mock.cjs.map +1 -1
- package/dist/mcp-mock.d.cts +66 -1
- package/dist/mcp-mock.d.cts.map +1 -1
- package/dist/mcp-mock.d.ts +66 -1
- package/dist/mcp-mock.d.ts.map +1 -1
- package/dist/mcp-mock.js +218 -50
- package/dist/mcp-mock.js.map +1 -1
- package/dist/mcp-stub.cjs +5 -1
- package/dist/mcp-stub.d.cts +3 -1
- package/dist/mcp-stub.d.ts +3 -1
- package/dist/mcp-stub.js +3 -1
- package/dist/mcp-types.d.cts +6 -0
- package/dist/mcp-types.d.ts +6 -0
- package/dist/message-text.cjs +192 -0
- package/dist/message-text.cjs.map +1 -0
- package/dist/message-text.d.cts +31 -0
- package/dist/message-text.d.cts.map +1 -0
- package/dist/message-text.d.ts +31 -0
- package/dist/message-text.d.ts.map +1 -0
- package/dist/message-text.js +184 -0
- package/dist/message-text.js.map +1 -0
- package/dist/messages.cjs +49 -7
- package/dist/messages.cjs.map +1 -1
- package/dist/messages.d.cts.map +1 -1
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +51 -9
- package/dist/messages.js.map +1 -1
- package/dist/metrics.cjs +278 -45
- package/dist/metrics.cjs.map +1 -1
- package/dist/metrics.d.cts +17 -7
- package/dist/metrics.d.cts.map +1 -1
- package/dist/metrics.d.ts +17 -7
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +270 -29
- package/dist/metrics.js.map +1 -1
- package/dist/moderation.cjs +10 -1
- package/dist/moderation.cjs.map +1 -1
- package/dist/moderation.d.cts.map +1 -1
- package/dist/moderation.d.ts.map +1 -1
- package/dist/moderation.js +10 -1
- package/dist/moderation.js.map +1 -1
- package/dist/ollama.cjs +10 -6
- package/dist/ollama.cjs.map +1 -1
- package/dist/ollama.d.cts.map +1 -1
- package/dist/ollama.d.ts.map +1 -1
- package/dist/ollama.js +11 -7
- package/dist/ollama.js.map +1 -1
- package/dist/openapi.cjs +3405 -0
- package/dist/openapi.cjs.map +1 -0
- package/dist/openapi.d.cts +30 -0
- package/dist/openapi.d.cts.map +1 -0
- package/dist/openapi.d.ts +30 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +3404 -0
- package/dist/openapi.js.map +1 -0
- package/dist/openrouter-video.cjs +9 -9
- package/dist/openrouter-video.cjs.map +1 -1
- package/dist/openrouter-video.d.cts.map +1 -1
- package/dist/openrouter-video.d.ts.map +1 -1
- package/dist/openrouter-video.js +10 -10
- package/dist/openrouter-video.js.map +1 -1
- package/dist/recorder.cjs +54 -10
- package/dist/recorder.cjs.map +1 -1
- package/dist/recorder.d.cts.map +1 -1
- package/dist/recorder.d.ts.map +1 -1
- package/dist/recorder.js +52 -12
- package/dist/recorder.js.map +1 -1
- package/dist/responses.cjs +47 -7
- package/dist/responses.cjs.map +1 -1
- package/dist/responses.d.cts.map +1 -1
- package/dist/responses.d.ts.map +1 -1
- package/dist/responses.js +48 -9
- package/dist/responses.js.map +1 -1
- package/dist/route-registry.cjs +951 -0
- package/dist/route-registry.cjs.map +1 -0
- package/dist/route-registry.d.cts +33 -0
- package/dist/route-registry.d.cts.map +1 -0
- package/dist/route-registry.d.ts +33 -0
- package/dist/route-registry.d.ts.map +1 -0
- package/dist/route-registry.js +866 -0
- package/dist/route-registry.js.map +1 -0
- package/dist/router.cjs +21 -34
- package/dist/router.cjs.map +1 -1
- package/dist/router.d.cts +4 -1
- package/dist/router.d.cts.map +1 -1
- package/dist/router.d.ts +4 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +21 -35
- package/dist/router.js.map +1 -1
- package/dist/server.cjs +1252 -777
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +5 -1
- package/dist/server.d.cts.map +1 -1
- package/dist/server.d.ts +5 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1185 -710
- package/dist/server.js.map +1 -1
- package/dist/speech.cjs +6 -4
- package/dist/speech.cjs.map +1 -1
- package/dist/speech.js +7 -5
- package/dist/speech.js.map +1 -1
- package/dist/suite.cjs +1 -1
- package/dist/suite.js +1 -1
- package/dist/transcription.cjs +6 -6
- package/dist/transcription.cjs.map +1 -1
- package/dist/transcription.d.cts.map +1 -1
- package/dist/transcription.d.ts.map +1 -1
- package/dist/transcription.js +7 -7
- package/dist/transcription.js.map +1 -1
- package/dist/types.cjs +18 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +320 -17
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +320 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -0
- package/dist/validate-cli.cjs +983 -0
- package/dist/validate-cli.cjs.map +1 -0
- package/dist/validate-cli.js +982 -0
- package/dist/validate-cli.js.map +1 -0
- package/dist/vector-stores.cjs +1180 -0
- package/dist/vector-stores.cjs.map +1 -0
- package/dist/vector-stores.d.cts +106 -0
- package/dist/vector-stores.d.cts.map +1 -0
- package/dist/vector-stores.d.ts +106 -0
- package/dist/vector-stores.d.ts.map +1 -0
- package/dist/vector-stores.js +1164 -0
- package/dist/vector-stores.js.map +1 -0
- package/dist/vector-types.d.cts.map +1 -1
- package/dist/vector-types.d.ts.map +1 -1
- package/dist/veo-video.cjs +13 -13
- package/dist/veo-video.cjs.map +1 -1
- package/dist/veo-video.js +14 -14
- package/dist/veo-video.js.map +1 -1
- package/dist/video.cjs +23 -4
- package/dist/video.cjs.map +1 -1
- package/dist/video.d.cts +1 -1
- package/dist/video.d.cts.map +1 -1
- package/dist/video.d.ts +1 -1
- package/dist/video.d.ts.map +1 -1
- package/dist/video.js +24 -5
- package/dist/video.js.map +1 -1
- package/dist/vitest.cjs +23 -11
- package/dist/vitest.cjs.map +1 -1
- package/dist/vitest.d.cts +5 -2
- package/dist/vitest.d.cts.map +1 -1
- package/dist/vitest.d.ts +5 -2
- package/dist/vitest.d.ts.map +1 -1
- package/dist/vitest.js +25 -13
- package/dist/vitest.js.map +1 -1
- package/dist/watcher.cjs +2 -1
- package/dist/watcher.cjs.map +1 -1
- package/dist/watcher.js +2 -1
- package/dist/watcher.js.map +1 -1
- package/dist/ws-framing.cjs +150 -35
- package/dist/ws-framing.cjs.map +1 -1
- package/dist/ws-framing.d.cts +18 -3
- package/dist/ws-framing.d.cts.map +1 -1
- package/dist/ws-framing.d.ts +18 -3
- package/dist/ws-framing.d.ts.map +1 -1
- package/dist/ws-framing.js +151 -36
- package/dist/ws-framing.js.map +1 -1
- package/dist/ws-gemini-live.cjs +2 -2
- package/dist/ws-gemini-live.js +2 -2
- package/dist/ws-live.cjs +401 -0
- package/dist/ws-live.cjs.map +1 -0
- package/dist/ws-live.js +400 -0
- package/dist/ws-live.js.map +1 -0
- package/dist/ws-realtime.cjs +46 -2
- package/dist/ws-realtime.cjs.map +1 -1
- package/dist/ws-realtime.d.cts.map +1 -1
- package/dist/ws-realtime.d.ts.map +1 -1
- package/dist/ws-realtime.js +46 -2
- package/dist/ws-realtime.js.map +1 -1
- package/dist/ws-responses.cjs +16 -4
- package/dist/ws-responses.cjs.map +1 -1
- package/dist/ws-responses.js +16 -4
- package/dist/ws-responses.js.map +1 -1
- package/dist/ws-upstream.cjs +118 -0
- package/dist/ws-upstream.cjs.map +1 -0
- package/dist/ws-upstream.js +115 -0
- package/dist/ws-upstream.js.map +1 -0
- package/fixtures/openai-live-client.json +390 -0
- package/fixtures/openai-live-managed.json +709 -0
- package/package.json +4 -1
package/dist/recorder.cjs
CHANGED
|
@@ -3,8 +3,8 @@ const require_constants = require('./constants.cjs');
|
|
|
3
3
|
const require_model_utils = require('./model-utils.cjs');
|
|
4
4
|
const require_api_key_auth = require('./api-key-auth.cjs');
|
|
5
5
|
const require_helpers = require('./helpers.cjs');
|
|
6
|
-
const require_router = require('./router.cjs');
|
|
7
6
|
const require_sse_writer = require('./sse-writer.cjs');
|
|
7
|
+
const require_router = require('./router.cjs');
|
|
8
8
|
const require_stream_collapse = require('./stream-collapse.cjs');
|
|
9
9
|
const require_url = require('./url.cjs');
|
|
10
10
|
const require_provider_auth = require('./provider-auth.cjs');
|
|
@@ -104,9 +104,17 @@ const STRIP_HEADERS = new Set([
|
|
|
104
104
|
"x-aimock-context"
|
|
105
105
|
]);
|
|
106
106
|
/**
|
|
107
|
+
* Headers stripped on egress ONLY when aimock minted the value. A
|
|
108
|
+
* caller-supplied `x-request-id` is the caller's own trace key and forwards
|
|
109
|
+
* verbatim; the id aimock invents for its access log and journal is
|
|
110
|
+
* meaningless on a real provider's wire and must not be transmitted.
|
|
111
|
+
*/
|
|
112
|
+
const MINTED_ONLY_STRIP_HEADERS = new Set(["x-request-id"]);
|
|
113
|
+
/**
|
|
107
114
|
* Build the header set forwarded to an upstream provider from an incoming
|
|
108
115
|
* request: everything except hop-by-hop, client-set, and mock-internal
|
|
109
|
-
* headers (STRIP_HEADERS, plus the x-aimock-chaos-* prefix family
|
|
116
|
+
* headers (STRIP_HEADERS, plus the x-aimock-chaos-* prefix family, plus
|
|
117
|
+
* MINTED_ONLY_STRIP_HEADERS when aimock minted the value). Shared
|
|
110
118
|
* by the generic recorder proxy and the OpenRouter-video live lifecycle
|
|
111
119
|
* proxy.
|
|
112
120
|
*/
|
|
@@ -114,7 +122,7 @@ function buildForwardHeaders(req) {
|
|
|
114
122
|
const out = {};
|
|
115
123
|
for (const [name, val] of Object.entries(req.headers)) {
|
|
116
124
|
const lower = name.toLowerCase();
|
|
117
|
-
if (val === void 0 || STRIP_HEADERS.has(lower) || lower.startsWith("x-aimock-chaos-") || require_api_key_auth.isAuthenticatedRequest(req) && require_api_key_auth.isRecognizedApiKeyHeader(lower)) continue;
|
|
125
|
+
if (val === void 0 || STRIP_HEADERS.has(lower) || MINTED_ONLY_STRIP_HEADERS.has(lower) && require_helpers.hasMintedRequestId(req) || lower.startsWith("x-aimock-chaos-") || require_api_key_auth.isAuthenticatedRequest(req) && require_api_key_auth.isRecognizedApiKeyHeader(lower)) continue;
|
|
118
126
|
out[name] = Array.isArray(val) ? val.join(", ") : val;
|
|
119
127
|
}
|
|
120
128
|
return out;
|
|
@@ -125,6 +133,19 @@ function removeForwardHeader(headers, name) {
|
|
|
125
133
|
for (const key of Object.keys(headers)) if (key.toLowerCase() === lowerName) delete headers[key];
|
|
126
134
|
}
|
|
127
135
|
/**
|
|
136
|
+
* Set a header on an egress map ONLY if the inbound request did not already
|
|
137
|
+
* supply it (in any casing). Used for content-negotiation defaults the mock
|
|
138
|
+
* wants when the caller was not explicit. Never overwrites: a caller-sent
|
|
139
|
+
* header may be covered by a request signature (AWS SigV4 and friends sign a
|
|
140
|
+
* named subset of headers), so replacing one silently invalidates the request
|
|
141
|
+
* upstream.
|
|
142
|
+
*/
|
|
143
|
+
function setForwardHeaderDefault(headers, name, value) {
|
|
144
|
+
const lowerName = name.toLowerCase();
|
|
145
|
+
for (const key of Object.keys(headers)) if (key.toLowerCase() === lowerName) return;
|
|
146
|
+
headers[name] = value;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
128
149
|
* Construct the only safe egress map when inbound access control is enabled.
|
|
129
150
|
* Test credentials are always removed; a static configured provider credential
|
|
130
151
|
* is mandatory so an accepted test credential can never become an upstream one.
|
|
@@ -172,6 +193,7 @@ function pickContentType(contentType) {
|
|
|
172
193
|
*/
|
|
173
194
|
function persistFixture(opts) {
|
|
174
195
|
const { record, providerKey, testId, fixture, fixtures, warnings = [], logger } = opts;
|
|
196
|
+
const fileKey = opts.filePrefix ?? providerKey;
|
|
175
197
|
const m = fixture.match;
|
|
176
198
|
const isEmptyMatch = m.userMessage === void 0 && m.inputText === void 0 && m.endpoint === void 0;
|
|
177
199
|
if (record.proxyOnly) {
|
|
@@ -188,17 +210,18 @@ function persistFixture(opts) {
|
|
|
188
210
|
if (!slug) {
|
|
189
211
|
isSnapshotMode = false;
|
|
190
212
|
const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
191
|
-
filepath = node_path.join(fixturePath, `${
|
|
213
|
+
filepath = node_path.join(fixturePath, `${fileKey}-${timestamp}-${node_crypto.randomUUID().slice(0, 8)}.json`);
|
|
192
214
|
} else {
|
|
193
|
-
filepath = node_path.join(fixturePath, slug, `${
|
|
215
|
+
filepath = node_path.join(fixturePath, slug, `${fileKey}.json`);
|
|
194
216
|
mergeExisting = true;
|
|
195
217
|
}
|
|
196
218
|
} else {
|
|
197
|
-
const timestampFile = `${
|
|
219
|
+
const timestampFile = `${fileKey}-${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}-${node_crypto.randomUUID().slice(0, 8)}.json`;
|
|
198
220
|
const contextSegment = fixture.match.context ? require_helpers.slugifyContext(fixture.match.context) : void 0;
|
|
199
221
|
filepath = contextSegment ? node_path.join(fixturePath, contextSegment, timestampFile) : node_path.join(fixturePath, timestampFile);
|
|
200
222
|
}
|
|
201
223
|
const fileWarnings = [...isEmptyMatch ? ["Empty match criteria — this fixture will not match any request"] : [], ...warnings];
|
|
224
|
+
let tmpPath;
|
|
202
225
|
try {
|
|
203
226
|
node_fs.mkdirSync(node_path.dirname(filepath), { recursive: true });
|
|
204
227
|
let fileContent;
|
|
@@ -206,7 +229,15 @@ function persistFixture(opts) {
|
|
|
206
229
|
const existing = JSON.parse(node_fs.readFileSync(filepath, "utf-8"));
|
|
207
230
|
const existingFixtures = Array.isArray(existing.fixtures) ? existing.fixtures : void 0;
|
|
208
231
|
if (existingFixtures === void 0 && existing.fixtures !== void 0) logger.warn(`Existing fixture file ${filepath} has a non-array "fixtures" — discarding it and starting fresh`);
|
|
209
|
-
|
|
232
|
+
const keptKeys = {};
|
|
233
|
+
if (existing !== null && typeof existing === "object" && !Array.isArray(existing)) for (const [key, value] of Object.entries(existing)) {
|
|
234
|
+
if (key === "fixtures" || key === "_warnings" || key === "_warning") continue;
|
|
235
|
+
keptKeys[key] = value;
|
|
236
|
+
}
|
|
237
|
+
fileContent = {
|
|
238
|
+
...keptKeys,
|
|
239
|
+
fixtures: [...existingFixtures ?? [], fixture]
|
|
240
|
+
};
|
|
210
241
|
if (Array.isArray(existing._warnings)) fileWarnings.unshift(...existing._warnings.filter((w) => typeof w === "string"));
|
|
211
242
|
else if (typeof existing._warning === "string" && existing._warning) fileWarnings.unshift(...existing._warning.split("; "));
|
|
212
243
|
} catch (mergeErr) {
|
|
@@ -220,9 +251,14 @@ function persistFixture(opts) {
|
|
|
220
251
|
fileContent._warnings = dedupedWarnings;
|
|
221
252
|
fileContent._warning = dedupedWarnings.join("; ");
|
|
222
253
|
}
|
|
223
|
-
|
|
224
|
-
node_fs.writeFileSync(tmpPath, JSON.stringify(fileContent, null, 2),
|
|
254
|
+
tmpPath = filepath + ".tmp." + node_crypto.randomUUID();
|
|
255
|
+
node_fs.writeFileSync(tmpPath, JSON.stringify(fileContent, null, 2), {
|
|
256
|
+
encoding: "utf-8",
|
|
257
|
+
flag: "wx",
|
|
258
|
+
mode: 384
|
|
259
|
+
});
|
|
225
260
|
node_fs.renameSync(tmpPath, filepath);
|
|
261
|
+
tmpPath = void 0;
|
|
226
262
|
if (!isEmptyMatch) fixtures.push(fixture);
|
|
227
263
|
logger.warn(`Response recorded → ${filepath}`);
|
|
228
264
|
return {
|
|
@@ -236,6 +272,10 @@ function persistFixture(opts) {
|
|
|
236
272
|
kind: "failed",
|
|
237
273
|
error: msg
|
|
238
274
|
};
|
|
275
|
+
} finally {
|
|
276
|
+
if (tmpPath) try {
|
|
277
|
+
node_fs.unlinkSync(tmpPath);
|
|
278
|
+
} catch {}
|
|
239
279
|
}
|
|
240
280
|
}
|
|
241
281
|
/**
|
|
@@ -444,7 +484,7 @@ async function proxyAndRecord(req, res, request, providerKey, pathname, fixtures
|
|
|
444
484
|
const msg = parseErr instanceof Error ? parseErr.message : "unknown";
|
|
445
485
|
defaults.logger.warn(`Upstream response is not valid JSON (${msg}) — saving as error fixture`);
|
|
446
486
|
}
|
|
447
|
-
if (request._endpointType === "fal" && parsedResponse !== null) {
|
|
487
|
+
if ((request._endpointType === "fal" || request._endpointType === "elevenlabs-voice-design" || request._endpointType === "elevenlabs-voice" || request._endpointType === "elevenlabs-voice-get" || request._endpointType === "elevenlabs-voice-delete") && parsedResponse !== null) {
|
|
448
488
|
const obj = parsedResponse;
|
|
449
489
|
if (typeof obj.error === "object" && obj.error !== null && typeof obj.error.message === "string") {
|
|
450
490
|
const err = obj.error;
|
|
@@ -1235,6 +1275,9 @@ function buildFixtureMetadata(request) {
|
|
|
1235
1275
|
}
|
|
1236
1276
|
|
|
1237
1277
|
//#endregion
|
|
1278
|
+
exports.DEFAULT_MAX_PROXY_BUFFER_BYTES = DEFAULT_MAX_PROXY_BUFFER_BYTES;
|
|
1279
|
+
exports.DEFAULT_MAX_PROXY_BUFFER_FRAMES = DEFAULT_MAX_PROXY_BUFFER_FRAMES;
|
|
1280
|
+
exports.PROXY_BUFFER_HARD_CEILING = PROXY_BUFFER_HARD_CEILING;
|
|
1238
1281
|
exports.buildFixtureMatch = buildFixtureMatch;
|
|
1239
1282
|
exports.buildForwardHeaders = buildForwardHeaders;
|
|
1240
1283
|
exports.clampTimeout = clampTimeout;
|
|
@@ -1243,4 +1286,5 @@ exports.prepareEgressHeaders = prepareEgressHeaders;
|
|
|
1243
1286
|
exports.proxyAndRecord = proxyAndRecord;
|
|
1244
1287
|
exports.removeForwardHeader = removeForwardHeader;
|
|
1245
1288
|
exports.sanitizeHeaderValue = sanitizeHeaderValue;
|
|
1289
|
+
exports.setForwardHeaderDefault = setForwardHeaderDefault;
|
|
1246
1290
|
//# sourceMappingURL=recorder.cjs.map
|