@enricai/barnacle 1.0.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/LICENSE +21 -0
- package/README.md +958 -0
- package/dist/api/errors.d.ts +88 -0
- package/dist/api/errors.d.ts.map +1 -0
- package/dist/api/errors.js +164 -0
- package/dist/api/errors.js.map +1 -0
- package/dist/api/helpers/envelope.d.ts +13 -0
- package/dist/api/helpers/envelope.d.ts.map +1 -0
- package/dist/api/helpers/envelope.js +20 -0
- package/dist/api/helpers/envelope.js.map +1 -0
- package/dist/api/helpers/reply.d.ts +9 -0
- package/dist/api/helpers/reply.d.ts.map +1 -0
- package/dist/api/helpers/reply.js +14 -0
- package/dist/api/helpers/reply.js.map +1 -0
- package/dist/api/plugins/auth.d.ts +27 -0
- package/dist/api/plugins/auth.d.ts.map +1 -0
- package/dist/api/plugins/auth.js +111 -0
- package/dist/api/plugins/auth.js.map +1 -0
- package/dist/api/plugins/error-handler.d.ts +12 -0
- package/dist/api/plugins/error-handler.d.ts.map +1 -0
- package/dist/api/plugins/error-handler.js +72 -0
- package/dist/api/plugins/error-handler.js.map +1 -0
- package/dist/api/plugins/request-context.d.ts +17 -0
- package/dist/api/plugins/request-context.d.ts.map +1 -0
- package/dist/api/plugins/request-context.js +61 -0
- package/dist/api/plugins/request-context.js.map +1 -0
- package/dist/api/routes/health.d.ts +55 -0
- package/dist/api/routes/health.d.ts.map +1 -0
- package/dist/api/routes/health.js +137 -0
- package/dist/api/routes/health.js.map +1 -0
- package/dist/api/routes/plugins-introspection.d.ts +17 -0
- package/dist/api/routes/plugins-introspection.d.ts.map +1 -0
- package/dist/api/routes/plugins-introspection.js +13 -0
- package/dist/api/routes/plugins-introspection.js.map +1 -0
- package/dist/api/schemas/common.d.ts +114 -0
- package/dist/api/schemas/common.d.ts.map +1 -0
- package/dist/api/schemas/common.js +109 -0
- package/dist/api/schemas/common.js.map +1 -0
- package/dist/api/schemas/telemetry.d.ts +66 -0
- package/dist/api/schemas/telemetry.d.ts.map +1 -0
- package/dist/api/schemas/telemetry.js +52 -0
- package/dist/api/schemas/telemetry.js.map +1 -0
- package/dist/cache/keyed-ttl-cache.d.ts +45 -0
- package/dist/cache/keyed-ttl-cache.d.ts.map +1 -0
- package/dist/cache/keyed-ttl-cache.js +69 -0
- package/dist/cache/keyed-ttl-cache.js.map +1 -0
- package/dist/cache/response-cache.d.ts +37 -0
- package/dist/cache/response-cache.d.ts.map +1 -0
- package/dist/cache/response-cache.js +114 -0
- package/dist/cache/response-cache.js.map +1 -0
- package/dist/config.d.ts +258 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +138 -0
- package/dist/config.js.map +1 -0
- package/dist/lib/applicant-payload.d.ts +28 -0
- package/dist/lib/applicant-payload.d.ts.map +1 -0
- package/dist/lib/applicant-payload.js +20 -0
- package/dist/lib/applicant-payload.js.map +1 -0
- package/dist/lib/application-address.d.ts +16 -0
- package/dist/lib/application-address.d.ts.map +1 -0
- package/dist/lib/application-address.js +20 -0
- package/dist/lib/application-address.js.map +1 -0
- package/dist/lib/application-answers.d.ts +151 -0
- package/dist/lib/application-answers.d.ts.map +1 -0
- package/dist/lib/application-answers.js +95 -0
- package/dist/lib/application-answers.js.map +1 -0
- package/dist/lib/application-identity.d.ts +18 -0
- package/dist/lib/application-identity.d.ts.map +1 -0
- package/dist/lib/application-identity.js +20 -0
- package/dist/lib/application-identity.js.map +1 -0
- package/dist/lib/application-resume.d.ts +21 -0
- package/dist/lib/application-resume.d.ts.map +1 -0
- package/dist/lib/application-resume.js +23 -0
- package/dist/lib/application-resume.js.map +1 -0
- package/dist/lib/bedrock.d.ts +22 -0
- package/dist/lib/bedrock.d.ts.map +1 -0
- package/dist/lib/bedrock.js +35 -0
- package/dist/lib/bedrock.js.map +1 -0
- package/dist/lib/case-insensitive-headers.d.ts +15 -0
- package/dist/lib/case-insensitive-headers.d.ts.map +1 -0
- package/dist/lib/case-insensitive-headers.js +29 -0
- package/dist/lib/case-insensitive-headers.js.map +1 -0
- package/dist/lib/chromium-client-hints.d.ts +11 -0
- package/dist/lib/chromium-client-hints.d.ts.map +1 -0
- package/dist/lib/chromium-client-hints.js +17 -0
- package/dist/lib/chromium-client-hints.js.map +1 -0
- package/dist/lib/cookie-value.d.ts +8 -0
- package/dist/lib/cookie-value.d.ts.map +1 -0
- package/dist/lib/cookie-value.js +14 -0
- package/dist/lib/cookie-value.js.map +1 -0
- package/dist/lib/datadog.d.ts +8 -0
- package/dist/lib/datadog.d.ts.map +1 -0
- package/dist/lib/datadog.js +27 -0
- package/dist/lib/datadog.js.map +1 -0
- package/dist/lib/dd-metrics.d.ts +28 -0
- package/dist/lib/dd-metrics.d.ts.map +1 -0
- package/dist/lib/dd-metrics.js +62 -0
- package/dist/lib/dd-metrics.js.map +1 -0
- package/dist/lib/dispatch-metrics.d.ts +19 -0
- package/dist/lib/dispatch-metrics.d.ts.map +1 -0
- package/dist/lib/dispatch-metrics.js +65 -0
- package/dist/lib/dispatch-metrics.js.map +1 -0
- package/dist/lib/env.d.ts +37 -0
- package/dist/lib/env.d.ts.map +1 -0
- package/dist/lib/env.js +70 -0
- package/dist/lib/env.js.map +1 -0
- package/dist/lib/errors.d.ts +15 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +20 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/http.d.ts +7 -0
- package/dist/lib/http.d.ts.map +1 -0
- package/dist/lib/http.js +14 -0
- package/dist/lib/http.js.map +1 -0
- package/dist/lib/job-tracking.d.ts +17 -0
- package/dist/lib/job-tracking.d.ts.map +1 -0
- package/dist/lib/job-tracking.js +19 -0
- package/dist/lib/job-tracking.js.map +1 -0
- package/dist/lib/llm/anthropic-client.d.ts +12 -0
- package/dist/lib/llm/anthropic-client.d.ts.map +1 -0
- package/dist/lib/llm/anthropic-client.js +23 -0
- package/dist/lib/llm/anthropic-client.js.map +1 -0
- package/dist/lib/llm/judge.d.ts +57 -0
- package/dist/lib/llm/judge.d.ts.map +1 -0
- package/dist/lib/llm/judge.js +123 -0
- package/dist/lib/llm/judge.js.map +1 -0
- package/dist/lib/llm/judges/error-messages.d.ts +38 -0
- package/dist/lib/llm/judges/error-messages.d.ts.map +1 -0
- package/dist/lib/llm/judges/error-messages.js +72 -0
- package/dist/lib/llm/judges/error-messages.js.map +1 -0
- package/dist/lib/llm/judges/invalid-fields.d.ts +43 -0
- package/dist/lib/llm/judges/invalid-fields.d.ts.map +1 -0
- package/dist/lib/llm/judges/invalid-fields.js +80 -0
- package/dist/lib/llm/judges/invalid-fields.js.map +1 -0
- package/dist/lib/llm/judges/modal-priority.d.ts +41 -0
- package/dist/lib/llm/judges/modal-priority.d.ts.map +1 -0
- package/dist/lib/llm/judges/modal-priority.js +74 -0
- package/dist/lib/llm/judges/modal-priority.js.map +1 -0
- package/dist/lib/llm/judges/select-option.d.ts +49 -0
- package/dist/lib/llm/judges/select-option.d.ts.map +1 -0
- package/dist/lib/llm/judges/select-option.js +90 -0
- package/dist/lib/llm/judges/select-option.js.map +1 -0
- package/dist/lib/llm/judges/verify-submit.d.ts +68 -0
- package/dist/lib/llm/judges/verify-submit.d.ts.map +1 -0
- package/dist/lib/llm/judges/verify-submit.js +89 -0
- package/dist/lib/llm/judges/verify-submit.js.map +1 -0
- package/dist/lib/llm/schemas.d.ts +220 -0
- package/dist/lib/llm/schemas.d.ts.map +1 -0
- package/dist/lib/llm/schemas.js +239 -0
- package/dist/lib/llm/schemas.js.map +1 -0
- package/dist/lib/logging.d.ts +39 -0
- package/dist/lib/logging.d.ts.map +1 -0
- package/dist/lib/logging.js +219 -0
- package/dist/lib/logging.js.map +1 -0
- package/dist/lib/multipart.d.ts +34 -0
- package/dist/lib/multipart.d.ts.map +1 -0
- package/dist/lib/multipart.js +55 -0
- package/dist/lib/multipart.js.map +1 -0
- package/dist/lib/option-matcher.d.ts +15 -0
- package/dist/lib/option-matcher.d.ts.map +1 -0
- package/dist/lib/option-matcher.js +69 -0
- package/dist/lib/option-matcher.js.map +1 -0
- package/dist/lib/phone.d.ts +11 -0
- package/dist/lib/phone.d.ts.map +1 -0
- package/dist/lib/phone.js +17 -0
- package/dist/lib/phone.js.map +1 -0
- package/dist/lib/random.d.ts +22 -0
- package/dist/lib/random.d.ts.map +1 -0
- package/dist/lib/random.js +33 -0
- package/dist/lib/random.js.map +1 -0
- package/dist/lib/statsd.d.ts +11 -0
- package/dist/lib/statsd.d.ts.map +1 -0
- package/dist/lib/statsd.js +68 -0
- package/dist/lib/statsd.js.map +1 -0
- package/dist/lib/telemetry/call-capture.d.ts +89 -0
- package/dist/lib/telemetry/call-capture.d.ts.map +1 -0
- package/dist/lib/telemetry/call-capture.js +190 -0
- package/dist/lib/telemetry/call-capture.js.map +1 -0
- package/dist/lib/telemetry/call-types.d.ts +65 -0
- package/dist/lib/telemetry/call-types.d.ts.map +1 -0
- package/dist/lib/telemetry/call-types.js +68 -0
- package/dist/lib/telemetry/call-types.js.map +1 -0
- package/dist/lib/telemetry/run-state.d.ts +15 -0
- package/dist/lib/telemetry/run-state.d.ts.map +1 -0
- package/dist/lib/telemetry/run-state.js +23 -0
- package/dist/lib/telemetry/run-state.js.map +1 -0
- package/dist/lib/telemetry/s3-sink.d.ts +48 -0
- package/dist/lib/telemetry/s3-sink.d.ts.map +1 -0
- package/dist/lib/telemetry/s3-sink.js +229 -0
- package/dist/lib/telemetry/s3-sink.js.map +1 -0
- package/dist/lib/telemetry/submission-capture.d.ts +45 -0
- package/dist/lib/telemetry/submission-capture.d.ts.map +1 -0
- package/dist/lib/telemetry/submission-capture.js +57 -0
- package/dist/lib/telemetry/submission-capture.js.map +1 -0
- package/dist/lib/telemetry/telemetry-paths.d.ts +59 -0
- package/dist/lib/telemetry/telemetry-paths.d.ts.map +1 -0
- package/dist/lib/telemetry/telemetry-paths.js +103 -0
- package/dist/lib/telemetry/telemetry-paths.js.map +1 -0
- package/dist/lib/tracking-click.d.ts +20 -0
- package/dist/lib/tracking-click.d.ts.map +1 -0
- package/dist/lib/tracking-click.js +75 -0
- package/dist/lib/tracking-click.js.map +1 -0
- package/dist/lib/url-capture.d.ts +8 -0
- package/dist/lib/url-capture.d.ts.map +1 -0
- package/dist/lib/url-capture.js +17 -0
- package/dist/lib/url-capture.js.map +1 -0
- package/dist/lib/us-states.d.ts +20 -0
- package/dist/lib/us-states.d.ts.map +1 -0
- package/dist/lib/us-states.js +86 -0
- package/dist/lib/us-states.js.map +1 -0
- package/dist/lib/zod-multipart.d.ts +18 -0
- package/dist/lib/zod-multipart.d.ts.map +1 -0
- package/dist/lib/zod-multipart.js +35 -0
- package/dist/lib/zod-multipart.js.map +1 -0
- package/dist/plugins/config-plugin.d.ts +77 -0
- package/dist/plugins/config-plugin.d.ts.map +1 -0
- package/dist/plugins/config-plugin.js +216 -0
- package/dist/plugins/config-plugin.js.map +1 -0
- package/dist/plugins/discover.d.ts +72 -0
- package/dist/plugins/discover.d.ts.map +1 -0
- package/dist/plugins/discover.js +265 -0
- package/dist/plugins/discover.js.map +1 -0
- package/dist/plugins/json-schema-to-zod.d.ts +47 -0
- package/dist/plugins/json-schema-to-zod.d.ts.map +1 -0
- package/dist/plugins/json-schema-to-zod.js +85 -0
- package/dist/plugins/json-schema-to-zod.js.map +1 -0
- package/dist/plugins/loader.d.ts +34 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +348 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/plugin-api-version.d.ts +8 -0
- package/dist/plugins/plugin-api-version.d.ts.map +1 -0
- package/dist/plugins/plugin-api-version.js +11 -0
- package/dist/plugins/plugin-api-version.js.map +1 -0
- package/dist/plugins/plugin-manifest-envelope.d.ts +16 -0
- package/dist/plugins/plugin-manifest-envelope.d.ts.map +1 -0
- package/dist/plugins/plugin-manifest-envelope.js +19 -0
- package/dist/plugins/plugin-manifest-envelope.js.map +1 -0
- package/dist/scraper/behavioral-signals.d.ts +16 -0
- package/dist/scraper/behavioral-signals.d.ts.map +1 -0
- package/dist/scraper/behavioral-signals.js +30 -0
- package/dist/scraper/behavioral-signals.js.map +1 -0
- package/dist/scraper/errors.d.ts +193 -0
- package/dist/scraper/errors.d.ts.map +1 -0
- package/dist/scraper/errors.js +226 -0
- package/dist/scraper/errors.js.map +1 -0
- package/dist/scraper/fixtures.d.ts +23 -0
- package/dist/scraper/fixtures.d.ts.map +1 -0
- package/dist/scraper/fixtures.js +48 -0
- package/dist/scraper/fixtures.js.map +1 -0
- package/dist/scraper/flow-runner.d.ts +1319 -0
- package/dist/scraper/flow-runner.d.ts.map +1 -0
- package/dist/scraper/flow-runner.js +5637 -0
- package/dist/scraper/flow-runner.js.map +1 -0
- package/dist/scraper/graphql-client.d.ts +30 -0
- package/dist/scraper/graphql-client.d.ts.map +1 -0
- package/dist/scraper/graphql-client.js +14 -0
- package/dist/scraper/graphql-client.js.map +1 -0
- package/dist/scraper/http-client.d.ts +75 -0
- package/dist/scraper/http-client.d.ts.map +1 -0
- package/dist/scraper/http-client.js +189 -0
- package/dist/scraper/http-client.js.map +1 -0
- package/dist/scraper/http-status-classifier.d.ts +12 -0
- package/dist/scraper/http-status-classifier.d.ts.map +1 -0
- package/dist/scraper/http-status-classifier.js +29 -0
- package/dist/scraper/http-status-classifier.js.map +1 -0
- package/dist/scraper/metrics.d.ts +50 -0
- package/dist/scraper/metrics.d.ts.map +1 -0
- package/dist/scraper/metrics.js +85 -0
- package/dist/scraper/metrics.js.map +1 -0
- package/dist/scraper/navigate.d.ts +20 -0
- package/dist/scraper/navigate.d.ts.map +1 -0
- package/dist/scraper/navigate.js +30 -0
- package/dist/scraper/navigate.js.map +1 -0
- package/dist/scraper/oracle-sentinels.d.ts +22 -0
- package/dist/scraper/oracle-sentinels.d.ts.map +1 -0
- package/dist/scraper/oracle-sentinels.js +40 -0
- package/dist/scraper/oracle-sentinels.js.map +1 -0
- package/dist/scraper/parse-json-response.d.ts +16 -0
- package/dist/scraper/parse-json-response.d.ts.map +1 -0
- package/dist/scraper/parse-json-response.js +37 -0
- package/dist/scraper/parse-json-response.js.map +1 -0
- package/dist/scraper/pool.d.ts +37 -0
- package/dist/scraper/pool.d.ts.map +1 -0
- package/dist/scraper/pool.js +105 -0
- package/dist/scraper/pool.js.map +1 -0
- package/dist/scraper/rate-limited-json-client.d.ts +35 -0
- package/dist/scraper/rate-limited-json-client.d.ts.map +1 -0
- package/dist/scraper/rate-limited-json-client.js +29 -0
- package/dist/scraper/rate-limited-json-client.js.map +1 -0
- package/dist/scraper/raw-fetch.d.ts +49 -0
- package/dist/scraper/raw-fetch.d.ts.map +1 -0
- package/dist/scraper/raw-fetch.js +40 -0
- package/dist/scraper/raw-fetch.js.map +1 -0
- package/dist/scraper/require-response-field.d.ts +23 -0
- package/dist/scraper/require-response-field.d.ts.map +1 -0
- package/dist/scraper/require-response-field.js +42 -0
- package/dist/scraper/require-response-field.js.map +1 -0
- package/dist/scraper/retry.d.ts +33 -0
- package/dist/scraper/retry.d.ts.map +1 -0
- package/dist/scraper/retry.js +122 -0
- package/dist/scraper/retry.js.map +1 -0
- package/dist/scraper/session-browserbase.d.ts +35 -0
- package/dist/scraper/session-browserbase.d.ts.map +1 -0
- package/dist/scraper/session-browserbase.js +198 -0
- package/dist/scraper/session-browserbase.js.map +1 -0
- package/dist/scraper/session-shared.d.ts +29 -0
- package/dist/scraper/session-shared.d.ts.map +1 -0
- package/dist/scraper/session-shared.js +35 -0
- package/dist/scraper/session-shared.js.map +1 -0
- package/dist/scraper/session-steel.d.ts +31 -0
- package/dist/scraper/session-steel.d.ts.map +1 -0
- package/dist/scraper/session-steel.js +140 -0
- package/dist/scraper/session-steel.js.map +1 -0
- package/dist/scraper/session-warmup.d.ts +31 -0
- package/dist/scraper/session-warmup.d.ts.map +1 -0
- package/dist/scraper/session-warmup.js +46 -0
- package/dist/scraper/session-warmup.js.map +1 -0
- package/dist/scraper/session.d.ts +21 -0
- package/dist/scraper/session.d.ts.map +1 -0
- package/dist/scraper/session.js +28 -0
- package/dist/scraper/session.js.map +1 -0
- package/dist/scraper/stagehand-guard.d.ts +128 -0
- package/dist/scraper/stagehand-guard.d.ts.map +1 -0
- package/dist/scraper/stagehand-guard.js +337 -0
- package/dist/scraper/stagehand-guard.js.map +1 -0
- package/dist/scraper/throttle.d.ts +21 -0
- package/dist/scraper/throttle.d.ts.map +1 -0
- package/dist/scraper/throttle.js +45 -0
- package/dist/scraper/throttle.js.map +1 -0
- package/dist/scripts/hca-inbox-poll.d.ts +19 -0
- package/dist/scripts/hca-inbox-poll.d.ts.map +1 -0
- package/dist/scripts/hca-inbox-poll.js +151 -0
- package/dist/scripts/hca-inbox-poll.js.map +1 -0
- package/dist/scripts/judge-llm-batch.d.ts +98 -0
- package/dist/scripts/judge-llm-batch.d.ts.map +1 -0
- package/dist/scripts/judge-llm-batch.js +350 -0
- package/dist/scripts/judge-llm-batch.js.map +1 -0
- package/dist/scripts/llm-heal.d.ts +165 -0
- package/dist/scripts/llm-heal.d.ts.map +1 -0
- package/dist/scripts/llm-heal.js +595 -0
- package/dist/scripts/llm-heal.js.map +1 -0
- package/dist/scripts/migrate-telemetry-dir-names.d.ts +57 -0
- package/dist/scripts/migrate-telemetry-dir-names.d.ts.map +1 -0
- package/dist/scripts/migrate-telemetry-dir-names.js +156 -0
- package/dist/scripts/migrate-telemetry-dir-names.js.map +1 -0
- package/dist/scripts/probe-setinputfiles.d.ts +28 -0
- package/dist/scripts/probe-setinputfiles.d.ts.map +1 -0
- package/dist/scripts/probe-setinputfiles.js +95 -0
- package/dist/scripts/probe-setinputfiles.js.map +1 -0
- package/dist/scripts/recon-browser.d.ts +304 -0
- package/dist/scripts/recon-browser.d.ts.map +1 -0
- package/dist/scripts/recon-browser.js +1833 -0
- package/dist/scripts/recon-browser.js.map +1 -0
- package/dist/scripts/recon-generate.d.ts +182 -0
- package/dist/scripts/recon-generate.d.ts.map +1 -0
- package/dist/scripts/recon-generate.js +2572 -0
- package/dist/scripts/recon-generate.js.map +1 -0
- package/dist/scripts/recon-heal.d.ts +176 -0
- package/dist/scripts/recon-heal.d.ts.map +1 -0
- package/dist/scripts/recon-heal.js +584 -0
- package/dist/scripts/recon-heal.js.map +1 -0
- package/dist/scripts/recon-http.d.ts +19 -0
- package/dist/scripts/recon-http.d.ts.map +1 -0
- package/dist/scripts/recon-http.js +377 -0
- package/dist/scripts/recon-http.js.map +1 -0
- package/dist/scripts/recon-replay-jobs.d.ts +21 -0
- package/dist/scripts/recon-replay-jobs.d.ts.map +1 -0
- package/dist/scripts/recon-replay-jobs.js +221 -0
- package/dist/scripts/recon-replay-jobs.js.map +1 -0
- package/dist/scripts/recon-shared.d.ts +52 -0
- package/dist/scripts/recon-shared.d.ts.map +1 -0
- package/dist/scripts/recon-shared.js +68 -0
- package/dist/scripts/recon-shared.js.map +1 -0
- package/dist/scripts/recon-summarize.d.ts +15 -0
- package/dist/scripts/recon-summarize.d.ts.map +1 -0
- package/dist/scripts/recon-summarize.js +233 -0
- package/dist/scripts/recon-summarize.js.map +1 -0
- package/dist/scripts/smoke-test.d.ts +22 -0
- package/dist/scripts/smoke-test.d.ts.map +1 -0
- package/dist/scripts/smoke-test.js +236 -0
- package/dist/scripts/smoke-test.js.map +1 -0
- package/dist/server.d.ts +10 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +189 -0
- package/dist/server.js.map +1 -0
- package/dist/site-plugin.d.ts +226 -0
- package/dist/site-plugin.d.ts.map +1 -0
- package/dist/site-plugin.js +13 -0
- package/dist/site-plugin.js.map +1 -0
- package/dist/testing/answers-fixture.d.ts +13 -0
- package/dist/testing/answers-fixture.d.ts.map +1 -0
- package/dist/testing/answers-fixture.js +37 -0
- package/dist/testing/answers-fixture.js.map +1 -0
- package/dist/testing/batch-email-confirmation.d.ts +58 -0
- package/dist/testing/batch-email-confirmation.d.ts.map +1 -0
- package/dist/testing/batch-email-confirmation.js +62 -0
- package/dist/testing/batch-email-confirmation.js.map +1 -0
- package/dist/testing/batch-report.d.ts +33 -0
- package/dist/testing/batch-report.d.ts.map +1 -0
- package/dist/testing/batch-report.js +30 -0
- package/dist/testing/batch-report.js.map +1 -0
- package/dist/testing/contract-parity-suite.d.ts +55 -0
- package/dist/testing/contract-parity-suite.d.ts.map +1 -0
- package/dist/testing/contract-parity-suite.js +39 -0
- package/dist/testing/contract-parity-suite.js.map +1 -0
- package/dist/testing/coverage-guard-suite.d.ts +46 -0
- package/dist/testing/coverage-guard-suite.d.ts.map +1 -0
- package/dist/testing/coverage-guard-suite.js +39 -0
- package/dist/testing/coverage-guard-suite.js.map +1 -0
- package/dist/testing/fixtures/resume.pdf +54 -0
- package/dist/testing/integration-runner.d.ts +62 -0
- package/dist/testing/integration-runner.d.ts.map +1 -0
- package/dist/testing/integration-runner.js +46 -0
- package/dist/testing/integration-runner.js.map +1 -0
- package/dist/testing/mock-fetch-response.d.ts +7 -0
- package/dist/testing/mock-fetch-response.d.ts.map +1 -0
- package/dist/testing/mock-fetch-response.js +16 -0
- package/dist/testing/mock-fetch-response.js.map +1 -0
- package/dist/testing/persona-fixture.d.ts +77 -0
- package/dist/testing/persona-fixture.d.ts.map +1 -0
- package/dist/testing/persona-fixture.js +83 -0
- package/dist/testing/persona-fixture.js.map +1 -0
- package/dist/testing/replay-integration-suite.d.ts +50 -0
- package/dist/testing/replay-integration-suite.d.ts.map +1 -0
- package/dist/testing/replay-integration-suite.js +45 -0
- package/dist/testing/replay-integration-suite.js.map +1 -0
- package/dist/testing/resume-fixture.d.ts +39 -0
- package/dist/testing/resume-fixture.d.ts.map +1 -0
- package/dist/testing/resume-fixture.js +38 -0
- package/dist/testing/resume-fixture.js.map +1 -0
- package/dist/testmail/client.d.ts +61 -0
- package/dist/testmail/client.d.ts.map +1 -0
- package/dist/testmail/client.js +190 -0
- package/dist/testmail/client.js.map +1 -0
- package/dist/testmail/errors.d.ts +18 -0
- package/dist/testmail/errors.d.ts.map +1 -0
- package/dist/testmail/errors.js +29 -0
- package/dist/testmail/errors.js.map +1 -0
- package/dist/types/dispatch-metrics.d.ts +46 -0
- package/dist/types/dispatch-metrics.d.ts.map +1 -0
- package/dist/types/dispatch-metrics.js +25 -0
- package/dist/types/dispatch-metrics.js.map +1 -0
- package/dist/types/logging.d.ts +11 -0
- package/dist/types/logging.d.ts.map +1 -0
- package/dist/types/logging.js +3 -0
- package/dist/types/logging.js.map +1 -0
- package/package.json +283 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBedrockModel = createBedrockModel;
|
|
4
|
+
const amazon_bedrock_1 = require("@ai-sdk/amazon-bedrock");
|
|
5
|
+
/**
|
|
6
|
+
* Builds an AI SDK language model backed by AWS Bedrock for injection into
|
|
7
|
+
* Stagehand's `llmClient`. Centralises all @ai-sdk/amazon-bedrock imports here
|
|
8
|
+
* so no other module touches the AWS SDK.
|
|
9
|
+
*
|
|
10
|
+
* Bedrock v4 emits a `LanguageModelV3` (provider spec v3) but Stagehand's
|
|
11
|
+
* `AISdkClient` still types its `model` as `LanguageModelV2`. The two specs
|
|
12
|
+
* are runtime-compatible for Stagehand's use, so we cast at this single
|
|
13
|
+
* boundary rather than letting the version mismatch leak into call sites.
|
|
14
|
+
* Remove the cast once Stagehand accepts `LanguageModelV3`.
|
|
15
|
+
*
|
|
16
|
+
* When accessKeyId/secretAccessKey are set, uses explicit static credentials.
|
|
17
|
+
* When omitted, region-only config lets the SDK fall through to its default
|
|
18
|
+
* credential chain (env vars → ~/.aws/credentials → ECS task role → EC2
|
|
19
|
+
* instance profile) — correct for IAM-role deployments.
|
|
20
|
+
*/
|
|
21
|
+
function createBedrockModel(bedrockConfig) {
|
|
22
|
+
const hasExplicitCredentials = bedrockConfig.accessKeyId !== undefined && bedrockConfig.secretAccessKey !== undefined;
|
|
23
|
+
const provider = (0, amazon_bedrock_1.createAmazonBedrock)({
|
|
24
|
+
region: bedrockConfig.region,
|
|
25
|
+
...(hasExplicitCredentials
|
|
26
|
+
? {
|
|
27
|
+
accessKeyId: bedrockConfig.accessKeyId,
|
|
28
|
+
secretAccessKey: bedrockConfig.secretAccessKey,
|
|
29
|
+
...(bedrockConfig.sessionToken ? { sessionToken: bedrockConfig.sessionToken } : {}),
|
|
30
|
+
}
|
|
31
|
+
: {}),
|
|
32
|
+
});
|
|
33
|
+
return provider(bedrockConfig.model);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=bedrock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/lib/bedrock.ts"],"names":[],"mappings":";;AAuBA,gDAgBC;AAvCD,2DAA6D;AAO7D;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,kBAAkB,CAAC,aAAmC;IACpE,MAAM,sBAAsB,GAC1B,aAAa,CAAC,WAAW,KAAK,SAAS,IAAI,aAAa,CAAC,eAAe,KAAK,SAAS,CAAC;IAEzF,MAAM,QAAQ,GAAG,IAAA,oCAAmB,EAAC;QACnC,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,GAAG,CAAC,sBAAsB;YACxB,CAAC,CAAC;gBACE,WAAW,EAAE,aAAa,CAAC,WAAqB;gBAChD,eAAe,EAAE,aAAa,CAAC,eAAyB;gBACxD,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,aAAa,CAAC,KAAK,CAA8B,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Case-insensitive lookup for HTTP header records whose keys may arrive in
|
|
3
|
+
* any capitalisation (e.g. CDP `requestWillBeSent` headers from Chromium vs.
|
|
4
|
+
* Node `http.IncomingMessage` lower-cased headers). HTTP/1.1 §4.2 specifies
|
|
5
|
+
* header names are case-insensitive, but JS objects are not — this bridges
|
|
6
|
+
* the gap without requiring callers to normalise keys up front.
|
|
7
|
+
*/
|
|
8
|
+
export declare function lookupHeaderCaseInsensitive(headers: Record<string, string>, name: string): string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Returns a copy of the header record with the named key removed, matching
|
|
11
|
+
* case-insensitively. Needed when passing FormData to fetch — the caller must
|
|
12
|
+
* drop Content-Type so fetch can set the multipart boundary itself.
|
|
13
|
+
*/
|
|
14
|
+
export declare function omitHeaderCaseInsensitive(headers: Record<string, string>, name: string): Record<string, string>;
|
|
15
|
+
//# sourceMappingURL=case-insensitive-headers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"case-insensitive-headers.d.ts","sourceRoot":"","sources":["../../src/lib/case-insensitive-headers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAMpB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lookupHeaderCaseInsensitive = lookupHeaderCaseInsensitive;
|
|
4
|
+
exports.omitHeaderCaseInsensitive = omitHeaderCaseInsensitive;
|
|
5
|
+
/**
|
|
6
|
+
* Case-insensitive lookup for HTTP header records whose keys may arrive in
|
|
7
|
+
* any capitalisation (e.g. CDP `requestWillBeSent` headers from Chromium vs.
|
|
8
|
+
* Node `http.IncomingMessage` lower-cased headers). HTTP/1.1 §4.2 specifies
|
|
9
|
+
* header names are case-insensitive, but JS objects are not — this bridges
|
|
10
|
+
* the gap without requiring callers to normalise keys up front.
|
|
11
|
+
*/
|
|
12
|
+
function lookupHeaderCaseInsensitive(headers, name) {
|
|
13
|
+
const lower = name.toLowerCase();
|
|
14
|
+
for (const k of Object.keys(headers)) {
|
|
15
|
+
if (k.toLowerCase() === lower)
|
|
16
|
+
return headers[k];
|
|
17
|
+
}
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Returns a copy of the header record with the named key removed, matching
|
|
22
|
+
* case-insensitively. Needed when passing FormData to fetch — the caller must
|
|
23
|
+
* drop Content-Type so fetch can set the multipart boundary itself.
|
|
24
|
+
*/
|
|
25
|
+
function omitHeaderCaseInsensitive(headers, name) {
|
|
26
|
+
const lower = name.toLowerCase();
|
|
27
|
+
return Object.fromEntries(Object.entries(headers).filter(([k]) => k.toLowerCase() !== lower));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=case-insensitive-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"case-insensitive-headers.js","sourceRoot":"","sources":["../../src/lib/case-insensitive-headers.ts"],"names":[],"mappings":";;AAOA,kEASC;AAOD,8DAMC;AA7BD;;;;;;GAMG;AACH,SAAgB,2BAA2B,CACzC,OAA+B,EAC/B,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CACvC,OAA+B,EAC/B,IAAY;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds the Chromium client-hint header quartet from explicit inputs.
|
|
3
|
+
* Single source of truth for the four-header idiom so plugins never
|
|
4
|
+
* hand-roll User-Agent / sec-ch-ua / sec-ch-ua-mobile / sec-ch-ua-platform.
|
|
5
|
+
*/
|
|
6
|
+
export declare function chromiumClientHints(opts: {
|
|
7
|
+
userAgent: string;
|
|
8
|
+
secChUa: string;
|
|
9
|
+
platform: string;
|
|
10
|
+
}): Record<string, string>;
|
|
11
|
+
//# sourceMappingURL=chromium-client-hints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromium-client-hints.d.ts","sourceRoot":"","sources":["../../src/lib/chromium-client-hints.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOzB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chromiumClientHints = chromiumClientHints;
|
|
4
|
+
/**
|
|
5
|
+
* Builds the Chromium client-hint header quartet from explicit inputs.
|
|
6
|
+
* Single source of truth for the four-header idiom so plugins never
|
|
7
|
+
* hand-roll User-Agent / sec-ch-ua / sec-ch-ua-mobile / sec-ch-ua-platform.
|
|
8
|
+
*/
|
|
9
|
+
function chromiumClientHints(opts) {
|
|
10
|
+
return {
|
|
11
|
+
"User-Agent": opts.userAgent,
|
|
12
|
+
"sec-ch-ua": opts.secChUa,
|
|
13
|
+
"sec-ch-ua-mobile": "?0",
|
|
14
|
+
"sec-ch-ua-platform": `"${opts.platform}"`,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=chromium-client-hints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromium-client-hints.js","sourceRoot":"","sources":["../../src/lib/chromium-client-hints.ts"],"names":[],"mappings":";;AAKA,kDAWC;AAhBD;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,IAInC;IACC,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,SAAS;QAC5B,WAAW,EAAE,IAAI,CAAC,OAAO;QACzB,kBAAkB,EAAE,IAAI;QACxB,oBAAoB,EAAE,IAAI,IAAI,CAAC,QAAQ,GAAG;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic cookie-string parser. Extracts a named cookie's value from a
|
|
3
|
+
* `document.cookie` string (the semicolon-separated `name=value` format the
|
|
4
|
+
* browser exposes). Site-specific callers keep the cookie name at their call
|
|
5
|
+
* sites so this helper stays domain-agnostic.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getCookieValue(cookieStr: string, name: string): string | undefined;
|
|
8
|
+
//# sourceMappingURL=cookie-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-value.d.ts","sourceRoot":"","sources":["../../src/lib/cookie-value.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGlF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCookieValue = getCookieValue;
|
|
4
|
+
/**
|
|
5
|
+
* Generic cookie-string parser. Extracts a named cookie's value from a
|
|
6
|
+
* `document.cookie` string (the semicolon-separated `name=value` format the
|
|
7
|
+
* browser exposes). Site-specific callers keep the cookie name at their call
|
|
8
|
+
* sites so this helper stays domain-agnostic.
|
|
9
|
+
*/
|
|
10
|
+
function getCookieValue(cookieStr, name) {
|
|
11
|
+
const match = cookieStr.match(new RegExp(`${name}=([^;]+)`));
|
|
12
|
+
return match?.[1];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=cookie-value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-value.js","sourceRoot":"","sources":["../../src/lib/cookie-value.ts"],"names":[],"mappings":";;AAMA,wCAGC;AATD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,SAAiB,EAAE,IAAY;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;IAC7D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initializes dd-trace APM when DD_TRACE_ENABLED=true. Loaded via the
|
|
3
|
+
* --import flag before any application module so dd-trace can monkey-patch
|
|
4
|
+
* http/net/dns for auto-instrumentation of Fastify routes and outbound calls.
|
|
5
|
+
*/
|
|
6
|
+
import tracer from "dd-trace";
|
|
7
|
+
export { tracer };
|
|
8
|
+
//# sourceMappingURL=datadog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datadog.d.ts","sourceRoot":"","sources":["../../src/lib/datadog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,MAAM,MAAM,UAAU,CAAC;AAkB9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.tracer = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Initializes dd-trace APM when DD_TRACE_ENABLED=true. Loaded via the
|
|
9
|
+
* --import flag before any application module so dd-trace can monkey-patch
|
|
10
|
+
* http/net/dns for auto-instrumentation of Fastify routes and outbound calls.
|
|
11
|
+
*/
|
|
12
|
+
const dd_trace_1 = __importDefault(require("dd-trace"));
|
|
13
|
+
exports.tracer = dd_trace_1.default;
|
|
14
|
+
const env_1 = require("../lib/env");
|
|
15
|
+
const traceEnabled = (0, env_1.getBoolEnv)("DD_TRACE_ENABLED", false);
|
|
16
|
+
if (traceEnabled) {
|
|
17
|
+
dd_trace_1.default.init({
|
|
18
|
+
service: (0, env_1.getEnv)("DD_SERVICE", "barnacle"),
|
|
19
|
+
env: (0, env_1.getEnv)("DD_ENV", (0, env_1.getNodeEnv)()),
|
|
20
|
+
version: (0, env_1.getEnv)("DD_VERSION", "0.1.0"),
|
|
21
|
+
hostname: (0, env_1.getEnv)("DD_AGENT_HOST", "localhost"),
|
|
22
|
+
port: (0, env_1.getNumericEnv)("DD_DOGSTATSD_PORT", 8125),
|
|
23
|
+
logInjection: true,
|
|
24
|
+
runtimeMetrics: true,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=datadog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/lib/datadog.ts"],"names":[],"mappings":";;;;;;AAAA;;;;GAIG;AACH,wDAA8B;AAkBrB,iBAlBF,kBAAM,CAkBE;AAhBf,mCAA0E;AAE1E,MAAM,YAAY,GAAG,IAAA,gBAAU,EAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAE3D,IAAI,YAAY,EAAE,CAAC;IACjB,kBAAM,CAAC,IAAI,CAAC;QACV,OAAO,EAAE,IAAA,YAAM,EAAC,YAAY,EAAE,UAAU,CAAC;QACzC,GAAG,EAAE,IAAA,YAAM,EAAC,QAAQ,EAAE,IAAA,gBAAU,GAAE,CAAC;QACnC,OAAO,EAAE,IAAA,YAAM,EAAC,YAAY,EAAE,OAAO,CAAC;QACtC,QAAQ,EAAE,IAAA,YAAM,EAAC,eAAe,EAAE,WAAW,CAAC;QAC9C,IAAI,EAAE,IAAA,mBAAa,EAAC,mBAAmB,EAAE,IAAI,CAAC;QAC9C,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface DispatchTags {
|
|
2
|
+
site: string;
|
|
3
|
+
path: "http" | "browser";
|
|
4
|
+
}
|
|
5
|
+
export interface FailureDispatchTags extends DispatchTags {
|
|
6
|
+
error_type: string;
|
|
7
|
+
}
|
|
8
|
+
/** Increments `dispatch.attempt` — one per plugin invocation. */
|
|
9
|
+
export declare function recordDdAttempt(tags: DispatchTags): void;
|
|
10
|
+
/** Increments `dispatch.success`. */
|
|
11
|
+
export declare function recordDdSuccess(tags: DispatchTags): void;
|
|
12
|
+
/** Increments `dispatch.failure` with error classification. */
|
|
13
|
+
export declare function recordDdFailure(tags: FailureDispatchTags): void;
|
|
14
|
+
/** Records end-to-end dispatch latency as a timing distribution. */
|
|
15
|
+
export declare function recordDdDuration(tags: DispatchTags, durationMs: number): void;
|
|
16
|
+
/** Increments `dispatch.fallback` — hot-path failed, browser engaged. */
|
|
17
|
+
export declare function recordDdFallback(site: string): void;
|
|
18
|
+
/** Increments `dispatch.rate_limit` — target site returned 429. */
|
|
19
|
+
export declare function recordDdRateLimit(site: string): void;
|
|
20
|
+
/** Increments `tracking_click.attempt` — background click fired. */
|
|
21
|
+
export declare function recordTrackingClickAttempt(site: string): void;
|
|
22
|
+
/** Increments `tracking_click.success`. */
|
|
23
|
+
export declare function recordTrackingClickSuccess(site: string): void;
|
|
24
|
+
/** Increments `tracking_click.failure` with error classification. */
|
|
25
|
+
export declare function recordTrackingClickFailure(site: string, errorType: string): void;
|
|
26
|
+
/** Records tracking click latency as a timing distribution. */
|
|
27
|
+
export declare function recordTrackingClickDuration(site: string, durationMs: number): void;
|
|
28
|
+
//# sourceMappingURL=dd-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dd-metrics.d.ts","sourceRoot":"","sources":["../../src/lib/dd-metrics.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAExD;AAED,qCAAqC;AACrC,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAExD;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAE/D;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAE7E;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,oEAAoE;AACpE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE7D;AAED,2CAA2C;AAC3C,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE7D;AAED,qEAAqE;AACrE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAEhF;AAED,+DAA+D;AAC/D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAElF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordDdAttempt = recordDdAttempt;
|
|
4
|
+
exports.recordDdSuccess = recordDdSuccess;
|
|
5
|
+
exports.recordDdFailure = recordDdFailure;
|
|
6
|
+
exports.recordDdDuration = recordDdDuration;
|
|
7
|
+
exports.recordDdFallback = recordDdFallback;
|
|
8
|
+
exports.recordDdRateLimit = recordDdRateLimit;
|
|
9
|
+
exports.recordTrackingClickAttempt = recordTrackingClickAttempt;
|
|
10
|
+
exports.recordTrackingClickSuccess = recordTrackingClickSuccess;
|
|
11
|
+
exports.recordTrackingClickFailure = recordTrackingClickFailure;
|
|
12
|
+
exports.recordTrackingClickDuration = recordTrackingClickDuration;
|
|
13
|
+
/**
|
|
14
|
+
* Typed DogStatsD wrappers for operational dispatch metrics. These supplement
|
|
15
|
+
* the in-memory counters in src/scraper/metrics.ts (which power /readyz) with
|
|
16
|
+
* durable Datadog-side aggregation for alerting and dashboards.
|
|
17
|
+
*/
|
|
18
|
+
const statsd_1 = require("../lib/statsd");
|
|
19
|
+
function toTagArray(tags) {
|
|
20
|
+
return Object.entries(tags).map(([k, v]) => `${k}:${v}`);
|
|
21
|
+
}
|
|
22
|
+
/** Increments `dispatch.attempt` — one per plugin invocation. */
|
|
23
|
+
function recordDdAttempt(tags) {
|
|
24
|
+
(0, statsd_1.getStatsD)().increment("dispatch.attempt", 1, toTagArray(tags));
|
|
25
|
+
}
|
|
26
|
+
/** Increments `dispatch.success`. */
|
|
27
|
+
function recordDdSuccess(tags) {
|
|
28
|
+
(0, statsd_1.getStatsD)().increment("dispatch.success", 1, toTagArray(tags));
|
|
29
|
+
}
|
|
30
|
+
/** Increments `dispatch.failure` with error classification. */
|
|
31
|
+
function recordDdFailure(tags) {
|
|
32
|
+
(0, statsd_1.getStatsD)().increment("dispatch.failure", 1, toTagArray(tags));
|
|
33
|
+
}
|
|
34
|
+
/** Records end-to-end dispatch latency as a timing distribution. */
|
|
35
|
+
function recordDdDuration(tags, durationMs) {
|
|
36
|
+
(0, statsd_1.getStatsD)().timing("dispatch.duration_ms", durationMs, toTagArray(tags));
|
|
37
|
+
}
|
|
38
|
+
/** Increments `dispatch.fallback` — hot-path failed, browser engaged. */
|
|
39
|
+
function recordDdFallback(site) {
|
|
40
|
+
(0, statsd_1.getStatsD)().increment("dispatch.fallback", 1, [`site:${site}`]);
|
|
41
|
+
}
|
|
42
|
+
/** Increments `dispatch.rate_limit` — target site returned 429. */
|
|
43
|
+
function recordDdRateLimit(site) {
|
|
44
|
+
(0, statsd_1.getStatsD)().increment("dispatch.rate_limit", 1, [`site:${site}`]);
|
|
45
|
+
}
|
|
46
|
+
/** Increments `tracking_click.attempt` — background click fired. */
|
|
47
|
+
function recordTrackingClickAttempt(site) {
|
|
48
|
+
(0, statsd_1.getStatsD)().increment("tracking_click.attempt", 1, [`site:${site}`]);
|
|
49
|
+
}
|
|
50
|
+
/** Increments `tracking_click.success`. */
|
|
51
|
+
function recordTrackingClickSuccess(site) {
|
|
52
|
+
(0, statsd_1.getStatsD)().increment("tracking_click.success", 1, [`site:${site}`]);
|
|
53
|
+
}
|
|
54
|
+
/** Increments `tracking_click.failure` with error classification. */
|
|
55
|
+
function recordTrackingClickFailure(site, errorType) {
|
|
56
|
+
(0, statsd_1.getStatsD)().increment("tracking_click.failure", 1, [`site:${site}`, `error_type:${errorType}`]);
|
|
57
|
+
}
|
|
58
|
+
/** Records tracking click latency as a timing distribution. */
|
|
59
|
+
function recordTrackingClickDuration(site, durationMs) {
|
|
60
|
+
(0, statsd_1.getStatsD)().timing("tracking_click.duration_ms", durationMs, [`site:${site}`]);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=dd-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dd-metrics.js","sourceRoot":"","sources":["../../src/lib/dd-metrics.ts"],"names":[],"mappings":";;AAqBA,0CAEC;AAGD,0CAEC;AAGD,0CAEC;AAGD,4CAEC;AAGD,4CAEC;AAGD,8CAEC;AAGD,gEAEC;AAGD,gEAEC;AAGD,gEAEC;AAGD,kEAEC;AApED;;;;GAIG;AACH,yCAAyC;AAWzC,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,iEAAiE;AACjE,SAAgB,eAAe,CAAC,IAAkB;IAChD,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,qCAAqC;AACrC,SAAgB,eAAe,CAAC,IAAkB;IAChD,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,+DAA+D;AAC/D,SAAgB,eAAe,CAAC,IAAyB;IACvD,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,oEAAoE;AACpE,SAAgB,gBAAgB,CAAC,IAAkB,EAAE,UAAkB;IACrE,IAAA,kBAAS,GAAE,CAAC,MAAM,CAAC,sBAAsB,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,yEAAyE;AACzE,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,mEAAmE;AACnE,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,oEAAoE;AACpE,SAAgB,0BAA0B,CAAC,IAAY;IACrD,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,wBAAwB,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,2CAA2C;AAC3C,SAAgB,0BAA0B,CAAC,IAAY;IACrD,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,wBAAwB,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,qEAAqE;AACrE,SAAgB,0BAA0B,CAAC,IAAY,EAAE,SAAiB;IACxE,IAAA,kBAAS,GAAE,CAAC,SAAS,CAAC,wBAAwB,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,EAAE,cAAc,SAAS,EAAE,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,+DAA+D;AAC/D,SAAgB,2BAA2B,CAAC,IAAY,EAAE,UAAkB;IAC1E,IAAA,kBAAS,GAAE,CAAC,MAAM,CAAC,4BAA4B,EAAE,UAAU,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DispatchMetrics } from "../types/dispatch-metrics";
|
|
2
|
+
/** Accumulates step-level timing for a single dispatch, producing a DispatchMetrics payload for the response. */
|
|
3
|
+
export declare class MetricsCollector {
|
|
4
|
+
private steps;
|
|
5
|
+
private currentStep;
|
|
6
|
+
private stepStart;
|
|
7
|
+
private attempts;
|
|
8
|
+
private started;
|
|
9
|
+
constructor();
|
|
10
|
+
/** Marks the beginning of a named step. Ends any in-progress step as failed. */
|
|
11
|
+
startStep(name: string): void;
|
|
12
|
+
/** Marks the current step as complete with the given status. */
|
|
13
|
+
endStep(status: "success" | "failed" | "skipped", error?: string): void;
|
|
14
|
+
/** Increments the attempt counter on retry. Keeps all recorded steps. */
|
|
15
|
+
markRetry(): void;
|
|
16
|
+
/** Produces the final DispatchMetrics payload. Safe to call multiple times. */
|
|
17
|
+
finalize(path: "http" | "browser"): DispatchMetrics;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=dispatch-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-metrics.d.ts","sourceRoot":"","sources":["../../src/lib/dispatch-metrics.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,0BAA0B,CAAC;AAEpF,iHAAiH;AACjH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAAS;;IAMxB,gFAAgF;IAChF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ7B,gEAAgE;IAChE,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAWvE,yEAAyE;IACzE,SAAS,IAAI,IAAI;IAIjB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe;CAiBpD"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetricsCollector = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Lightweight step-timing accumulator for a single dispatch invocation.
|
|
6
|
+
* Instantiated per-request in the dispatch layer, threaded through
|
|
7
|
+
* SitePluginContext, and finalized into a DispatchMetrics payload that
|
|
8
|
+
* ships in the response body for Vivian → Segment forwarding.
|
|
9
|
+
*/
|
|
10
|
+
const date_fns_1 = require("date-fns");
|
|
11
|
+
/** Accumulates step-level timing for a single dispatch, producing a DispatchMetrics payload for the response. */
|
|
12
|
+
class MetricsCollector {
|
|
13
|
+
steps = [];
|
|
14
|
+
currentStep;
|
|
15
|
+
stepStart = 0;
|
|
16
|
+
attempts = 1;
|
|
17
|
+
started;
|
|
18
|
+
constructor() {
|
|
19
|
+
this.started = Date.now();
|
|
20
|
+
}
|
|
21
|
+
/** Marks the beginning of a named step. Ends any in-progress step as failed. */
|
|
22
|
+
startStep(name) {
|
|
23
|
+
if (this.currentStep) {
|
|
24
|
+
this.endStep("failed", "interrupted by next step");
|
|
25
|
+
}
|
|
26
|
+
this.currentStep = name;
|
|
27
|
+
this.stepStart = Date.now();
|
|
28
|
+
}
|
|
29
|
+
/** Marks the current step as complete with the given status. */
|
|
30
|
+
endStep(status, error) {
|
|
31
|
+
if (!this.currentStep)
|
|
32
|
+
return;
|
|
33
|
+
this.steps.push({
|
|
34
|
+
step: this.currentStep,
|
|
35
|
+
durationMs: Date.now() - this.stepStart,
|
|
36
|
+
status,
|
|
37
|
+
...(error && { error }),
|
|
38
|
+
});
|
|
39
|
+
this.currentStep = undefined;
|
|
40
|
+
}
|
|
41
|
+
/** Increments the attempt counter on retry. Keeps all recorded steps. */
|
|
42
|
+
markRetry() {
|
|
43
|
+
this.attempts++;
|
|
44
|
+
}
|
|
45
|
+
/** Produces the final DispatchMetrics payload. Safe to call multiple times. */
|
|
46
|
+
finalize(path) {
|
|
47
|
+
if (this.currentStep) {
|
|
48
|
+
this.endStep("failed", "dispatch ended before step completed");
|
|
49
|
+
}
|
|
50
|
+
const failedStep = this.steps.find((s) => s.status === "failed");
|
|
51
|
+
return {
|
|
52
|
+
totalDurationMs: Date.now() - this.started,
|
|
53
|
+
path,
|
|
54
|
+
steps: this.steps,
|
|
55
|
+
...(failedStep?.error && { errorType: failedStep.error }),
|
|
56
|
+
...(failedStep && { errorStep: failedStep.step }),
|
|
57
|
+
attemptCount: this.attempts,
|
|
58
|
+
startedAt: (0, date_fns_1.formatISO)(new Date(this.started)),
|
|
59
|
+
endedAt: (0, date_fns_1.formatISO)(new Date()),
|
|
60
|
+
recordedAt: (0, date_fns_1.formatISO)(new Date()),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.MetricsCollector = MetricsCollector;
|
|
65
|
+
//# sourceMappingURL=dispatch-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-metrics.js","sourceRoot":"","sources":["../../src/lib/dispatch-metrics.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,uCAAqC;AAIrC,iHAAiH;AACjH,MAAa,gBAAgB;IACnB,KAAK,GAAyB,EAAE,CAAC;IACjC,WAAW,CAAqB;IAChC,SAAS,GAAG,CAAC,CAAC;IACd,QAAQ,GAAG,CAAC,CAAC;IACb,OAAO,CAAS;IAExB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,gFAAgF;IAChF,SAAS,CAAC,IAAY;QACpB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,gEAAgE;IAChE,OAAO,CAAC,MAAwC,EAAE,KAAc;QAC9D,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;YACvC,MAAM;YACN,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,yEAAyE;IACzE,SAAS;QACP,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,+EAA+E;IAC/E,QAAQ,CAAC,IAAwB;QAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACjE,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO;YAC1C,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;YACzD,GAAG,CAAC,UAAU,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YACjD,YAAY,EAAE,IAAI,CAAC,QAAQ;YAC3B,SAAS,EAAE,IAAA,oBAAS,EAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,EAAE,IAAA,oBAAS,EAAC,IAAI,IAAI,EAAE,CAAC;YAC9B,UAAU,EAAE,IAAA,oBAAS,EAAC,IAAI,IAAI,EAAE,CAAC;SAClC,CAAC;IACJ,CAAC;CACF;AAvDD,4CAuDC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment variable readers for the config singleton. Kept deliberately
|
|
3
|
+
* small — only the parsers config.ts actually calls. Richer env helpers
|
|
4
|
+
* live in `@/config` where they can be typed against AppConfig.
|
|
5
|
+
*/
|
|
6
|
+
type NodeEnv = "development" | "production" | "test";
|
|
7
|
+
/**
|
|
8
|
+
* Returns the current NODE_ENV constrained to our three supported values,
|
|
9
|
+
* defaulting to "development" for anything unrecognized.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getNodeEnv(): NodeEnv;
|
|
12
|
+
/**
|
|
13
|
+
* Reads a string env var with a default. We DON'T trim / lowercase here —
|
|
14
|
+
* callers decide the semantics so shapes like comma-separated lists can be
|
|
15
|
+
* split before whitespace matters.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getEnv(key: string, defaultValue: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Parses boolean env vars permissively: "true", "1", "yes" (case-insensitive)
|
|
20
|
+
* are truthy. Anything else (including "false", "0", "no") falls back to
|
|
21
|
+
* the default — unset string → defaultValue.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getBoolEnv(key: string, defaultValue?: boolean): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Parses numeric env vars. Non-numeric input falls back to `defaultValue`
|
|
26
|
+
* instead of throwing — configuration should degrade gracefully, not crash
|
|
27
|
+
* the process, on typos.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getNumericEnv(key: string, defaultValue: number): number;
|
|
30
|
+
/**
|
|
31
|
+
* Parses fractional env vars (e.g. LLM sampling temperature, confidence
|
|
32
|
+
* thresholds). Non-numeric input falls back to `defaultValue` so a typo
|
|
33
|
+
* never crashes the process.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getFloatEnv(key: string, defaultValue: number): number;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,KAAK,OAAO,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAErD;;;GAGG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAMpC;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAMrE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAOvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAOrE"}
|
package/dist/lib/env.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Environment variable readers for the config singleton. Kept deliberately
|
|
4
|
+
* small — only the parsers config.ts actually calls. Richer env helpers
|
|
5
|
+
* live in `@/config` where they can be typed against AppConfig.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.getNodeEnv = getNodeEnv;
|
|
9
|
+
exports.getEnv = getEnv;
|
|
10
|
+
exports.getBoolEnv = getBoolEnv;
|
|
11
|
+
exports.getNumericEnv = getNumericEnv;
|
|
12
|
+
exports.getFloatEnv = getFloatEnv;
|
|
13
|
+
/**
|
|
14
|
+
* Returns the current NODE_ENV constrained to our three supported values,
|
|
15
|
+
* defaulting to "development" for anything unrecognized.
|
|
16
|
+
*/
|
|
17
|
+
function getNodeEnv() {
|
|
18
|
+
const env = process.env.NODE_ENV;
|
|
19
|
+
if (env === "production" || env === "test") {
|
|
20
|
+
return env;
|
|
21
|
+
}
|
|
22
|
+
return "development";
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Reads a string env var with a default. We DON'T trim / lowercase here —
|
|
26
|
+
* callers decide the semantics so shapes like comma-separated lists can be
|
|
27
|
+
* split before whitespace matters.
|
|
28
|
+
*/
|
|
29
|
+
function getEnv(key, defaultValue) {
|
|
30
|
+
return process.env[key] || defaultValue;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parses boolean env vars permissively: "true", "1", "yes" (case-insensitive)
|
|
34
|
+
* are truthy. Anything else (including "false", "0", "no") falls back to
|
|
35
|
+
* the default — unset string → defaultValue.
|
|
36
|
+
*/
|
|
37
|
+
function getBoolEnv(key, defaultValue = false) {
|
|
38
|
+
const value = process.env[key];
|
|
39
|
+
if (!value) {
|
|
40
|
+
return defaultValue;
|
|
41
|
+
}
|
|
42
|
+
return ["true", "1", "yes"].includes(value.toLowerCase());
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Parses numeric env vars. Non-numeric input falls back to `defaultValue`
|
|
46
|
+
* instead of throwing — configuration should degrade gracefully, not crash
|
|
47
|
+
* the process, on typos.
|
|
48
|
+
*/
|
|
49
|
+
function getNumericEnv(key, defaultValue) {
|
|
50
|
+
const value = process.env[key];
|
|
51
|
+
if (!value) {
|
|
52
|
+
return defaultValue;
|
|
53
|
+
}
|
|
54
|
+
const parsed = Number.parseInt(value, 10);
|
|
55
|
+
return Number.isNaN(parsed) ? defaultValue : parsed;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Parses fractional env vars (e.g. LLM sampling temperature, confidence
|
|
59
|
+
* thresholds). Non-numeric input falls back to `defaultValue` so a typo
|
|
60
|
+
* never crashes the process.
|
|
61
|
+
*/
|
|
62
|
+
function getFloatEnv(key, defaultValue) {
|
|
63
|
+
const value = process.env[key];
|
|
64
|
+
if (!value) {
|
|
65
|
+
return defaultValue;
|
|
66
|
+
}
|
|
67
|
+
const parsed = Number.parseFloat(value);
|
|
68
|
+
return Number.isNaN(parsed) ? defaultValue : parsed;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAQH,gCAMC;AAOD,wBAEC;AAOD,gCAMC;AAOD,sCAOC;AAOD,kCAOC;AA5DD;;;GAGG;AACH,SAAgB,UAAU;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjC,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,GAAW,EAAE,YAAoB;IACtD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,GAAW,EAAE,YAAY,GAAG,KAAK;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,GAAW,EAAE,YAAoB;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,GAAW,EAAE,YAAoB;IAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared error-coercion helpers.
|
|
3
|
+
*
|
|
4
|
+
* Exists to consolidate the `err instanceof Error ? err.message : String(err)`
|
|
5
|
+
* ternary that was duplicated across the loader, session, server shutdown,
|
|
6
|
+
* health route, and several scripts. Keeping it in one place means every
|
|
7
|
+
* call site renders unknown thrown values the same way in logs and envelopes.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Normalises an `unknown` thrown value to a string suitable for logging or
|
|
11
|
+
* error messages. Real `Error` instances surface their `.message`; everything
|
|
12
|
+
* else falls back to `String(value)`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function toErrorMessage(err: unknown): string;
|
|
15
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEnD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared error-coercion helpers.
|
|
4
|
+
*
|
|
5
|
+
* Exists to consolidate the `err instanceof Error ? err.message : String(err)`
|
|
6
|
+
* ternary that was duplicated across the loader, session, server shutdown,
|
|
7
|
+
* health route, and several scripts. Keeping it in one place means every
|
|
8
|
+
* call site renders unknown thrown values the same way in logs and envelopes.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.toErrorMessage = toErrorMessage;
|
|
12
|
+
/**
|
|
13
|
+
* Normalises an `unknown` thrown value to a string suitable for logging or
|
|
14
|
+
* error messages. Real `Error` instances surface their `.message`; everything
|
|
15
|
+
* else falls back to `String(value)`.
|
|
16
|
+
*/
|
|
17
|
+
function toErrorMessage(err) {
|
|
18
|
+
return err instanceof Error ? err.message : String(err);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAOH,wCAEC;AAPD;;;;GAIG;AACH,SAAgB,cAAc,CAAC,GAAY;IACzC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raises undici's TCP connect timeout from its 10 s hardcoded default.
|
|
3
|
+
* Must be called once at process startup in every entry point that makes
|
|
4
|
+
* outbound fetch calls (server.ts, scripts, etc.).
|
|
5
|
+
*/
|
|
6
|
+
export declare function configureHttpDispatcher(): void;
|
|
7
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
|
package/dist/lib/http.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.configureHttpDispatcher = configureHttpDispatcher;
|
|
4
|
+
const undici_1 = require("undici");
|
|
5
|
+
const config_1 = require("../config");
|
|
6
|
+
/**
|
|
7
|
+
* Raises undici's TCP connect timeout from its 10 s hardcoded default.
|
|
8
|
+
* Must be called once at process startup in every entry point that makes
|
|
9
|
+
* outbound fetch calls (server.ts, scripts, etc.).
|
|
10
|
+
*/
|
|
11
|
+
function configureHttpDispatcher() {
|
|
12
|
+
(0, undici_1.setGlobalDispatcher)(new undici_1.Agent({ connect: { timeout: config_1.config.scraper.connectTimeoutMs } }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":";;AASA,0DAEC;AAXD,mCAAoD;AAEpD,qCAAkC;AAElC;;;;GAIG;AACH,SAAgB,uBAAuB;IACrC,IAAA,4BAAmB,EAAC,IAAI,cAAK,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,eAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Zod schema fragment for the optional post-submission tracking-click
|
|
3
|
+
* URL that every plugin may receive. The engine reads `TrackingUrl`
|
|
4
|
+
* site-agnostically in loader.ts (fireTrackingClick) — this fragment is the
|
|
5
|
+
* single source of truth so a type change propagates to every plugin from one
|
|
6
|
+
* place.
|
|
7
|
+
*
|
|
8
|
+
* Compose into a plugin contract via `.extend(JobTrackingSchema.shape)` or
|
|
9
|
+
* `.merge(JobTrackingSchema)` depending on which Zod combinator the plugin
|
|
10
|
+
* already uses.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from "zod/v4";
|
|
13
|
+
export declare const JobTrackingSchema: z.ZodObject<{
|
|
14
|
+
TrackingUrl: z.ZodOptional<z.ZodURL>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type JobTracking = z.infer<typeof JobTrackingSchema>;
|
|
17
|
+
//# sourceMappingURL=job-tracking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-tracking.d.ts","sourceRoot":"","sources":["../../src/lib/job-tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|