@enricai/barnacle 1.0.0 → 1.1.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.
Files changed (66) hide show
  1. package/README.md +51 -0
  2. package/dist/config.d.ts +10 -1
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +1 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/lib/datadog.d.ts +20 -5
  7. package/dist/lib/datadog.d.ts.map +1 -1
  8. package/dist/lib/datadog.js +65 -19
  9. package/dist/lib/datadog.js.map +1 -1
  10. package/dist/lib/errors.d.ts +8 -0
  11. package/dist/lib/errors.d.ts.map +1 -1
  12. package/dist/lib/errors.js +11 -0
  13. package/dist/lib/errors.js.map +1 -1
  14. package/dist/lib/logging.js +1 -1
  15. package/dist/lib/logging.js.map +1 -1
  16. package/dist/lib/statsd.d.ts +20 -5
  17. package/dist/lib/statsd.d.ts.map +1 -1
  18. package/dist/lib/statsd.js +56 -28
  19. package/dist/lib/statsd.js.map +1 -1
  20. package/dist/scraper/http-client.js +2 -2
  21. package/dist/scraper/http-client.js.map +1 -1
  22. package/dist/scraper/raw-fetch.d.ts +22 -0
  23. package/dist/scraper/raw-fetch.d.ts.map +1 -1
  24. package/dist/scraper/raw-fetch.js +2 -2
  25. package/dist/scraper/raw-fetch.js.map +1 -1
  26. package/dist/scraper/session-browserbase.d.ts +4 -4
  27. package/dist/scraper/session-browserbase.js +4 -4
  28. package/dist/scripts/recon-generate.d.ts.map +1 -1
  29. package/dist/scripts/recon-generate.js +42 -14
  30. package/dist/scripts/recon-generate.js.map +1 -1
  31. package/dist/testing/{contract-parity-suite.d.ts → contract-parity-suite.d.mts} +2 -2
  32. package/dist/testing/contract-parity-suite.d.mts.map +1 -0
  33. package/dist/testing/{contract-parity-suite.js → contract-parity-suite.mjs} +9 -12
  34. package/dist/testing/contract-parity-suite.mjs.map +1 -0
  35. package/dist/testing/{coverage-guard-suite.d.ts → coverage-guard-suite.d.mts} +1 -1
  36. package/dist/testing/coverage-guard-suite.d.mts.map +1 -0
  37. package/dist/testing/{coverage-guard-suite.js → coverage-guard-suite.mjs} +9 -12
  38. package/dist/testing/coverage-guard-suite.mjs.map +1 -0
  39. package/dist/testing/persona-fixture.d.ts +8 -6
  40. package/dist/testing/persona-fixture.d.ts.map +1 -1
  41. package/dist/testing/persona-fixture.js +8 -6
  42. package/dist/testing/persona-fixture.js.map +1 -1
  43. package/dist/testing/{replay-integration-suite.d.ts → replay-integration-suite.d.mts} +3 -3
  44. package/dist/testing/replay-integration-suite.d.mts.map +1 -0
  45. package/dist/testing/{replay-integration-suite.js → replay-integration-suite.mjs} +11 -14
  46. package/dist/testing/replay-integration-suite.mjs.map +1 -0
  47. package/dist/tsconfig.tsbuildinfo +1 -0
  48. package/package.json +40 -20
  49. package/dist/lib/application-answers.d.ts +0 -151
  50. package/dist/lib/application-answers.d.ts.map +0 -1
  51. package/dist/lib/application-answers.js +0 -95
  52. package/dist/lib/application-answers.js.map +0 -1
  53. package/dist/scripts/hca-inbox-poll.d.ts +0 -19
  54. package/dist/scripts/hca-inbox-poll.d.ts.map +0 -1
  55. package/dist/scripts/hca-inbox-poll.js +0 -151
  56. package/dist/scripts/hca-inbox-poll.js.map +0 -1
  57. package/dist/testing/answers-fixture.d.ts +0 -13
  58. package/dist/testing/answers-fixture.d.ts.map +0 -1
  59. package/dist/testing/answers-fixture.js +0 -37
  60. package/dist/testing/answers-fixture.js.map +0 -1
  61. package/dist/testing/contract-parity-suite.d.ts.map +0 -1
  62. package/dist/testing/contract-parity-suite.js.map +0 -1
  63. package/dist/testing/coverage-guard-suite.d.ts.map +0 -1
  64. package/dist/testing/coverage-guard-suite.js.map +0 -1
  65. package/dist/testing/replay-integration-suite.d.ts.map +0 -1
  66. package/dist/testing/replay-integration-suite.js.map +0 -1
package/README.md CHANGED
@@ -131,6 +131,25 @@ Reads every artifact from Phases 1–3 — `/tmp/recon/graphql/*.json` (captures
131
131
 
132
132
  Then review the generated files: trim UI-only fields from the GraphQL query, narrow any `z.unknown()` entries in the schema you care about, and verify the headers. If you need to regenerate after making changes to the recon flow, pass `--force`.
133
133
 
134
+ #### Mapping the site's screening questions
135
+
136
+ If the site asks screening questions, tell the generator which payload field answers each one. Barnacle ships no vocabulary of its own — it cannot know what your site asks or what your payload calls things — so this map is yours to supply:
137
+
138
+ | Env var | Default | Description |
139
+ | --- | --- | --- |
140
+ | `RECON_QUESTION_KEYWORDS` | `{}` | JSON object mapping a payload field name to the keywords that identify its question. A question must match **at least 2** keywords to map. |
141
+ | `RECON_TELEMETRY_URL_PATTERNS` | *(empty)* | Comma-separated extra URL fragments to treat as analytics noise, on top of the built-in list. Put your site's trackers here. |
142
+
143
+ ```bash
144
+ RECON_QUESTION_KEYWORDS='{
145
+ "VisaSponsorship": ["visa", "sponsor"],
146
+ "RelatedToEmployee": ["related", "employee"],
147
+ "CanPerformJobFunctions":["perform", "job functions", "duties"]
148
+ }' pnpm run recon:generate -- --site-id my-site
149
+ ```
150
+
151
+ Any question that matches no field is **logged by prompt** rather than skipped — an unmapped required question is how a generated plugin ends up submitting nothing for it. Read those warnings and either add keywords or accept that the question goes unanswered. Malformed JSON logs a warning and is treated as empty, so a typo cannot kill a recon run mid-flight.
152
+
134
153
  Optionally generate the human-readable findings doc alongside:
135
154
 
136
155
  ```bash
@@ -578,6 +597,38 @@ in each `contract.ts` for outbound rate limits to target sites.
578
597
  | `READINESS_QUEUE_THRESHOLD` | `20` | `/readyz` returns 503 when scraper queue depth exceeds this. Lets orchestrators shed load before the pool is saturated. |
579
598
  | `ENABLE_DOCS` | `false` | Serve Swagger UI at `/docs`. Disable in production. |
580
599
 
600
+ ### Datadog (opt-in)
601
+
602
+ APM tracing and DogStatsD metrics are **opt-in**: `dd-trace` and `hot-shots` are
603
+ optional peer dependencies, so a plain `npm i @enricai/barnacle` installs neither
604
+ and Barnacle runs without them. Enable either half independently — install the
605
+ package and flip its flag. If a flag is on but the package is missing, Barnacle
606
+ warns and carries on with that feature disabled; it never fails to boot.
607
+
608
+ ```bash
609
+ # APM tracing
610
+ pnpm add dd-trace
611
+ DD_TRACE_ENABLED=true node --import dd-trace/initialize dist/server.js
612
+
613
+ # DogStatsD metrics
614
+ pnpm add hot-shots
615
+ DD_METRICS_ENABLED=true node dist/server.js
616
+ ```
617
+
618
+ Tracing needs `--import dd-trace/initialize` for full auto-instrumentation:
619
+ Datadog requires the tracer to load before any other module so it can patch
620
+ http/net/dns. Metrics have no such constraint.
621
+
622
+ | Variable | Default | Purpose |
623
+ |----------|---------|---------|
624
+ | `DD_TRACE_ENABLED` | `false` | Enable APM tracing. Requires the `dd-trace` peer dependency. |
625
+ | `DD_METRICS_ENABLED` | `false` | Enable DogStatsD metrics. Requires the `hot-shots` peer dependency. Independent of `DD_TRACE_ENABLED`. |
626
+ | `DD_AGENT_HOST` | `localhost` | Datadog agent hostname (the sidecar, in ECS Fargate). |
627
+ | `DD_DOGSTATSD_PORT` | `8125` | DogStatsD UDP port on the agent host. |
628
+ | `DD_SERVICE` | `barnacle` | Service name tagged on spans and metrics. |
629
+ | `DD_ENV` | `NODE_ENV` | Deployment environment tag. |
630
+ | `DD_VERSION` | `0.1.0` | Application version tag — git SHA or package version. |
631
+
581
632
  ### Telemetry
582
633
 
583
634
  | Variable | Default | Purpose |
package/dist/config.d.ts CHANGED
@@ -203,8 +203,17 @@ export interface AppConfig {
203
203
  timeoutMs: number;
204
204
  };
205
205
  datadog: {
206
- /** Master switch — dd-trace only initializes when true. */
206
+ /**
207
+ * Enables APM tracing. Requires the optional `dd-trace` peer dependency;
208
+ * when it is absent the tracer stays off and a warning is emitted.
209
+ */
207
210
  traceEnabled: boolean;
211
+ /**
212
+ * Enables DogStatsD metrics. Independent of `traceEnabled` so a deployment
213
+ * can ship metrics without APM (or vice versa). Requires the optional
214
+ * `hot-shots` peer dependency; when it is absent metric calls are no-ops.
215
+ */
216
+ metricsEnabled: boolean;
208
217
  /** Hostname of the DD agent sidecar (localhost in ECS Fargate). */
209
218
  agentHost: string;
210
219
  /** DogStatsD UDP port on the agent host. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -120,6 +120,7 @@ function loadConfig() {
120
120
  },
121
121
  datadog: {
122
122
  traceEnabled: (0, env_1.getBoolEnv)("DD_TRACE_ENABLED", false),
123
+ metricsEnabled: (0, env_1.getBoolEnv)("DD_METRICS_ENABLED", false),
123
124
  agentHost: (0, env_1.getEnv)("DD_AGENT_HOST", "localhost"),
124
125
  statsdPort: (0, env_1.getNumericEnv)("DD_DOGSTATSD_PORT", 8125),
125
126
  service: (0, env_1.getEnv)("DD_SERVICE", "barnacle"),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAsRA,gCAuHC;AA7YD,mCAAuF;AAuQvF;;;GAGG;AACH,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,IAAA,YAAM,EAAC,UAAU,EAAE,UAAU,CAAC;QACvC,OAAO,EAAE,IAAA,gBAAU,GAAE;QACrB,IAAI,EAAE,IAAA,YAAM,EAAC,MAAM,EAAE,SAAS,CAAC;QAC/B,IAAI,EAAE,IAAA,mBAAa,EAAC,MAAM,EAAE,IAAI,CAAC;QACjC,QAAQ,EAAE,IAAA,YAAM,EAAC,WAAW,EAAE,MAAM,CAAC;QACrC,IAAI,EAAE;YACJ,UAAU,EAAE,SAAS,CAAC,IAAA,YAAM,EAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACpD,SAAS,EAAE,IAAA,gBAAU,EAAC,iBAAiB,EAAE,KAAK,CAAC;SAChD;QACD,UAAU,EAAE,IAAA,gBAAU,EAAC,aAAa,EAAE,IAAI,CAAC;QAC3C,OAAO,EAAE;YACP,QAAQ,EAAE,CAAC,GAAG,EAAE;gBACd,MAAM,GAAG,GAAG,CAAC,IAAA,YAAM,EAAC,kBAAkB,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5E,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CACb,0DAA0D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CACjF,CAAC;gBACJ,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,EAAE;YACJ,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAClD,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;YACxD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;YACtC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;YAC9C,gEAAgE;YAChE,uDAAuD;YACvD,4DAA4D;YAC5D,8DAA8D;YAC9D,wDAAwD;YACxD,KAAK,EAAE,IAAA,YAAM,EAAC,iBAAiB,EAAE,6BAA6B,CAAC;YAC/D,SAAS,EAAE,IAAA,YAAM,EAAC,oBAAoB,EAAE,aAAa,CAAC;YACtD,YAAY,EAAE,IAAA,gBAAU,EAAC,uBAAuB,EAAE,IAAI,CAAC;YACvD,QAAQ,EAAE,IAAA,mBAAa,EAAC,mBAAmB,EAAE,CAAC,CAAC;YAC/C,gBAAgB,EAAE,IAAA,mBAAa,EAAC,6BAA6B,EAAE,GAAG,CAAC;YACnE,gBAAgB,EAAE,IAAA,mBAAa,EAAC,6BAA6B,EAAE,IAAI,CAAC;YACpE,uBAAuB,EAAE,IAAA,mBAAa,EAAC,2BAA2B,EAAE,EAAE,CAAC;YACvE,YAAY,EAAE,CAAC,GAAG,EAAE;gBAClB,MAAM,GAAG,GAA2B,EAAE,CAAC;gBACvC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,MAAM,KAAK,GAAG,uCAAuC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChE,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;wBACjB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;oBAC9D,CAAC;gBACH,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,EAAE;YACJ,UAAU,EAAE,IAAA,gBAAU,EAAC,aAAa,EAAE,KAAK,CAAC;YAC5C,kBAAkB,EAAE,IAAA,mBAAa,EAAC,0BAA0B,EAAE,OAAO,CAAC;YACtE,gBAAgB,EAAE,IAAA,mBAAa,EAAC,8BAA8B,EAAE,OAAO,CAAC;YACxE,qBAAqB,EAAE,IAAA,mBAAa,EAAC,0BAA0B,EAAE,SAAS,CAAC;SAC5E;QACD,OAAO,EAAE;YACP,MAAM,EAAE,IAAA,YAAM,EAAC,YAAY,EAAE,WAAW,CAAC;YACzC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,SAAS;YACvD,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;YAC/D,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,SAAS;YACxD,KAAK,EAAE,IAAA,YAAM,EAAC,eAAe,EAAE,oCAAoC,CAAC;SACrE;QACD,KAAK,EAAE;YACL,KAAK,EAAE,IAAA,mBAAa,EAAC,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACpD,UAAU,EAAE,IAAA,mBAAa,EAAC,mBAAmB,EAAE,IAAI,CAAC;SACrD;QACD,SAAS,EAAE;YACT,GAAG,EAAE,IAAA,mBAAa,EAAC,gBAAgB,EAAE,GAAG,CAAC;YACzC,QAAQ,EAAE,IAAA,mBAAa,EAAC,sBAAsB,EAAE,MAAM,CAAC;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,IAAA,gBAAU,EAAC,aAAa,EAAE,KAAK,CAAC;SAC1C;QACD,SAAS,EAAE;YACT,OAAO,EAAE,IAAA,gBAAU,EAAC,mBAAmB,EAAE,IAAI,CAAC;YAC9C,SAAS,EAAE,IAAA,YAAM,EAAC,sBAAsB,EAAE,kBAAkB,CAAC;YAC7D,eAAe,EAAE,IAAA,YAAM,EAAC,mBAAmB,EAAE,wBAAwB,CAAC;YACtE,qBAAqB,EAAE,IAAA,YAAM,EAAC,yBAAyB,EAAE,8BAA8B,CAAC;YACxF,gBAAgB,EAAE,IAAA,mBAAa,EAAC,+BAA+B,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;YACnF,cAAc,EAAE,IAAA,mBAAa,EAAC,4BAA4B,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACrF,EAAE,EAAE;gBACF,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS;gBACpD,MAAM,EAAE,IAAA,YAAM,EAAC,qBAAqB,EAAE,WAAW,CAAC;gBAClD,eAAe,EAAE,IAAA,mBAAa,EAAC,gCAAgC,EAAE,MAAM,CAAC;gBACxE,cAAc,EAAE,IAAA,mBAAa,EAAC,+BAA+B,EAAE,GAAG,CAAC;aACpE;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,IAAA,YAAM,EAAC,aAAa,EAAE,oCAAoC,CAAC;YAClE,WAAW,EAAE,IAAA,iBAAW,EAAC,mBAAmB,EAAE,GAAG,CAAC;YAClD,SAAS,EAAE,IAAA,mBAAa,EAAC,kBAAkB,EAAE,EAAE,CAAC;YAChD,SAAS,EAAE,IAAA,mBAAa,EAAC,kBAAkB,EAAE,OAAO,CAAC;SACtD;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;YACpC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SAC1C;QACD,QAAQ,EAAE;YACR,aAAa,EAAE,IAAA,mBAAa,EAAC,yBAAyB,EAAE,CAAC,CAAC;YAC1D,QAAQ,EAAE,IAAA,mBAAa,EAAC,oBAAoB,EAAE,CAAC,CAAC;YAChD,gBAAgB,EAAE,IAAA,iBAAW,EAAC,4BAA4B,EAAE,GAAG,CAAC;YAChE,aAAa,EAAE,IAAA,mBAAa,EAAC,yBAAyB,EAAE,CAAC,CAAC;YAC1D,YAAY,EAAE,IAAA,iBAAW,EAAC,wBAAwB,EAAE,IAAI,CAAC;YACzD,SAAS,EAAE,IAAA,mBAAa,EAAC,qBAAqB,EAAE,MAAM,CAAC;SACxD;QACD,OAAO,EAAE;YACP,YAAY,EAAE,IAAA,gBAAU,EAAC,kBAAkB,EAAE,KAAK,CAAC;YACnD,cAAc,EAAE,IAAA,gBAAU,EAAC,oBAAoB,EAAE,KAAK,CAAC;YACvD,SAAS,EAAE,IAAA,YAAM,EAAC,eAAe,EAAE,WAAW,CAAC;YAC/C,UAAU,EAAE,IAAA,mBAAa,EAAC,mBAAmB,EAAE,IAAI,CAAC;YACpD,OAAO,EAAE,IAAA,YAAM,EAAC,YAAY,EAAE,UAAU,CAAC;YACzC,GAAG,EAAE,IAAA,YAAM,EAAC,QAAQ,EAAE,IAAA,gBAAU,GAAE,CAAC;YACnC,OAAO,EAAE,IAAA,YAAM,EAAC,YAAY,EAAE,OAAO,CAAC;SACvC;QACD,OAAO,EAAE;YACP,UAAU,EAAE,SAAS,CAAC,IAAA,YAAM,EAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM,EAAE,IAAA,gBAAU,EAAC,yBAAyB,EAAE,KAAK,CAAC;YACpD,OAAO,EAAE,IAAA,YAAM,EAAC,sBAAsB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;YACtD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,SAAS;SAChE;KACF,CAAC;AACJ,CAAC;AAEY,QAAA,MAAM,GAAc,UAAU,EAAE,CAAC"}
@@ -1,8 +1,23 @@
1
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.
2
+ * Structural subset of dd-trace's tracer that this module uses. Declared
3
+ * locally so the emitted `.d.ts` carries no reference to the optional package —
4
+ * a consumer who skips dd-trace would otherwise hit an unresolvable type import.
5
5
  */
6
- import tracer from "dd-trace";
7
- export { tracer };
6
+ interface TracerLike {
7
+ init(options: Record<string, unknown>): unknown;
8
+ scope(): {
9
+ active(): {
10
+ context(): {
11
+ toTraceId(): string;
12
+ toSpanId(): string;
13
+ };
14
+ } | null;
15
+ };
16
+ }
17
+ /**
18
+ * Active tracer, or null when APM is off or unavailable. Memoized so the
19
+ * require and `init` run at most once.
20
+ */
21
+ export declare function getTracer(): TracerLike | null;
22
+ export {};
8
23
  //# sourceMappingURL=datadog.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"datadog.d.ts","sourceRoot":"","sources":["../../src/lib/datadog.ts"],"names":[],"mappings":"AA4BA;;;;GAIG;AACH,UAAU,UAAU;IAClB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAChD,KAAK,IAAI;QACP,MAAM,IAAI;YACR,OAAO,IAAI;gBAAE,SAAS,IAAI,MAAM,CAAC;gBAAC,QAAQ,IAAI,MAAM,CAAA;aAAE,CAAC;SACxD,GAAG,IAAI,CAAC;KACV,CAAC;CACH;AAyCD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,UAAU,GAAG,IAAI,CAG7C"}
@@ -1,27 +1,73 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.tracer = void 0;
3
+ exports.getTracer = getTracer;
7
4
  /**
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.
5
+ * Opt-in dd-trace APM wiring. `dd-trace` is an optional peer dependency: install
6
+ * it and set `DD_TRACE_ENABLED=true` to enable APM. Otherwise Barnacle runs
7
+ * without it and this module resolves to null.
8
+ *
9
+ * The tracer is resolved lazily rather than imported at module scope. Requiring
10
+ * `dd-trace` installs a require-in-the-middle hook that rewrites every
11
+ * subsequent module load; because `lib/logging` reaches this module, a
12
+ * module-scope import pushed that hook into the module graph of anything that
13
+ * logs — including consumers of the published package, where it intercepted
14
+ * `require("vitest")` and forced its CommonJS entry, breaking their test runs.
15
+ *
16
+ * Full auto-instrumentation additionally requires the tracer to load before any
17
+ * other module, via `node --import dd-trace/initialize` (see the `start`
18
+ * script). This module only supplies the `init` configuration and exposes the
19
+ * tracer for log-trace correlation.
11
20
  */
12
- const dd_trace_1 = __importDefault(require("dd-trace"));
13
- exports.tracer = dd_trace_1.default;
21
+ const node_module_1 = require("node:module");
14
22
  const env_1 = require("../lib/env");
23
+ const errors_1 = require("../lib/errors");
24
+ // Matches `discover.ts`'s createRequire idiom for resolving packages at runtime.
25
+ // `__filename` is the same both-environments anchor `scraper/fixtures.ts` relies
26
+ // on: `src/lib/` under tsx, `dist/lib/` under node — either way the optional
27
+ // peer resolves from the installing project's node_modules.
28
+ const requirePeer = (0, node_module_1.createRequire)(__filename);
15
29
  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
- });
30
+ /**
31
+ * Resolves and initializes the tracer, or returns null when APM is off or
32
+ * `dd-trace` is absent. Enabled-but-missing warns instead of throwing: telemetry
33
+ * is opt-in, so its absence must never take the process down.
34
+ */
35
+ function loadTracer() {
36
+ if (!traceEnabled)
37
+ return null;
38
+ try {
39
+ const mod = requirePeer("dd-trace");
40
+ const tracer = mod.default ?? mod;
41
+ tracer.init({
42
+ service: (0, env_1.getEnv)("DD_SERVICE", "barnacle"),
43
+ env: (0, env_1.getEnv)("DD_ENV", (0, env_1.getNodeEnv)()),
44
+ version: (0, env_1.getEnv)("DD_VERSION", "0.1.0"),
45
+ hostname: (0, env_1.getEnv)("DD_AGENT_HOST", "localhost"),
46
+ port: (0, env_1.getNumericEnv)("DD_DOGSTATSD_PORT", 8125),
47
+ logInjection: true,
48
+ runtimeMetrics: true,
49
+ });
50
+ return tracer;
51
+ }
52
+ catch (err) {
53
+ // The project logger imports this module, so warn via process to avoid a cycle.
54
+ // Only a genuinely absent package gets the "install it" hint — any other
55
+ // failure (corrupt install, native binding error) surfaces its own message,
56
+ // matching how `discover.ts` reports optional-module load failures.
57
+ process.emitWarning((0, errors_1.isModuleNotFound)(err)
58
+ ? "APM disabled: DD_TRACE_ENABLED is set but dd-trace is not installed. Install it with `pnpm add dd-trace`."
59
+ : `APM disabled: dd-trace failed to load — ${(0, errors_1.toErrorMessage)(err)}`);
60
+ return null;
61
+ }
62
+ }
63
+ let cached;
64
+ /**
65
+ * Active tracer, or null when APM is off or unavailable. Memoized so the
66
+ * require and `init` run at most once.
67
+ */
68
+ function getTracer() {
69
+ if (cached === undefined)
70
+ cached = loadTracer();
71
+ return cached;
26
72
  }
27
73
  //# sourceMappingURL=datadog.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/lib/datadog.ts"],"names":[],"mappings":";;AAqFA,8BAGC;AAxFD;;;;;;;;;;;;;;;;GAgBG;AACH,6CAA4C;AAE5C,mCAA0E;AAC1E,yCAAgE;AAEhE,iFAAiF;AACjF,iFAAiF;AACjF,6EAA6E;AAC7E,4DAA4D;AAC5D,MAAM,WAAW,GAAG,IAAA,2BAAa,EAAC,UAAU,CAAC,CAAC;AAgB9C,MAAM,YAAY,GAAG,IAAA,gBAAU,EAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAE3D;;;;GAIG;AACH,SAAS,UAAU;IACjB,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,WAAW,CAAC,UAAU,CAA0C,CAAC;QAC7E,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,IAAA,YAAM,EAAC,YAAY,EAAE,UAAU,CAAC;YACzC,GAAG,EAAE,IAAA,YAAM,EAAC,QAAQ,EAAE,IAAA,gBAAU,GAAE,CAAC;YACnC,OAAO,EAAE,IAAA,YAAM,EAAC,YAAY,EAAE,OAAO,CAAC;YACtC,QAAQ,EAAE,IAAA,YAAM,EAAC,eAAe,EAAE,WAAW,CAAC;YAC9C,IAAI,EAAE,IAAA,mBAAa,EAAC,mBAAmB,EAAE,IAAI,CAAC;YAC9C,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,gFAAgF;QAChF,yEAAyE;QACzE,4EAA4E;QAC5E,oEAAoE;QACpE,OAAO,CAAC,WAAW,CACjB,IAAA,yBAAgB,EAAC,GAAG,CAAC;YACnB,CAAC,CAAC,2GAA2G;YAC7G,CAAC,CAAC,2CAA2C,IAAA,uBAAc,EAAC,GAAG,CAAC,EAAE,CACrE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,IAAI,MAAqC,CAAC;AAE1C;;;GAGG;AACH,SAAgB,SAAS;IACvB,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -12,4 +12,12 @@
12
12
  * else falls back to `String(value)`.
13
13
  */
14
14
  export declare function toErrorMessage(err: unknown): string;
15
+ /**
16
+ * True when `err` is Node's "module is absent" resolution failure, as opposed to
17
+ * a module that exists but threw while loading. Optional peer dependencies need
18
+ * the distinction: a missing package earns a friendly "install it" hint, while
19
+ * any other failure must surface its own message instead of being reported as
20
+ * uninstalled.
21
+ */
22
+ export declare function isModuleNotFound(err: unknown): boolean;
15
23
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +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"}
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;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEtD"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.toErrorMessage = toErrorMessage;
12
+ exports.isModuleNotFound = isModuleNotFound;
12
13
  /**
13
14
  * Normalises an `unknown` thrown value to a string suitable for logging or
14
15
  * error messages. Real `Error` instances surface their `.message`; everything
@@ -17,4 +18,14 @@ exports.toErrorMessage = toErrorMessage;
17
18
  function toErrorMessage(err) {
18
19
  return err instanceof Error ? err.message : String(err);
19
20
  }
21
+ /**
22
+ * True when `err` is Node's "module is absent" resolution failure, as opposed to
23
+ * a module that exists but threw while loading. Optional peer dependencies need
24
+ * the distinction: a missing package earns a friendly "install it" hint, while
25
+ * any other failure must surface its own message instead of being reported as
26
+ * uninstalled.
27
+ */
28
+ function isModuleNotFound(err) {
29
+ return err?.code === "MODULE_NOT_FOUND";
30
+ }
20
31
  //# sourceMappingURL=errors.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAOH,wCAEC;AASD,4CAEC;AAlBD;;;;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;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,GAAY;IAC3C,OAAQ,GAAoC,EAAE,IAAI,KAAK,kBAAkB,CAAC;AAC5E,CAAC"}
@@ -210,7 +210,7 @@ function getLogger({ name, level }) {
210
210
  return extendLogger((0, pino_1.default)(options));
211
211
  }
212
212
  function ddMixin() {
213
- const span = datadog_1.tracer.scope().active();
213
+ const span = (0, datadog_1.getTracer)()?.scope().active();
214
214
  if (!span)
215
215
  return {};
216
216
  const ctx = span.context();
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/lib/logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/lib/logging.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,26 @@
1
1
  /**
2
- * DogStatsD client singleton following Vivian's hot-shots pattern. Sends
3
- * metrics to the Datadog agent when DD_TRACE_ENABLED=true; falls back to a
4
- * mock client that logs at debug level for local dev without an agent.
2
+ * Opt-in DogStatsD client singleton. `hot-shots` is an optional peer dependency:
3
+ * install it and set `DD_METRICS_ENABLED=true` to ship metrics to the Datadog
4
+ * agent. Otherwise every metric call is a no-op, so callers never branch on
5
+ * whether telemetry is configured.
6
+ *
7
+ * `hot-shots` is resolved lazily rather than imported at module scope: this
8
+ * module is reachable from `lib/logging`, and a module-scope import of an
9
+ * optional package would make it a hard requirement for every consumer of the
10
+ * published package.
5
11
  */
6
- import type { StatsD as StatsDInstance } from "hot-shots";
12
+ /**
13
+ * Structural subset of hot-shots' StatsD that Barnacle uses. Declared locally so
14
+ * the emitted `.d.ts` carries no reference to the optional package — a consumer
15
+ * who skips hot-shots would otherwise hit an unresolvable type import.
16
+ */
17
+ export interface StatsDLike {
18
+ increment(stat: string, value?: number, tags?: string[]): void;
19
+ timing(stat: string, value: number, tags?: string[]): void;
20
+ close(callback: (err?: Error) => void): void;
21
+ }
7
22
  /** Returns the process-global DogStatsD client (lazily initialized). */
8
- export declare function getStatsD(): StatsDInstance;
23
+ export declare function getStatsD(): StatsDLike;
9
24
  /** Flushes pending packets and closes the UDP socket. Call during shutdown. */
10
25
  export declare function shutdownStatsD(): Promise<void>;
11
26
  //# sourceMappingURL=statsd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"statsd.d.ts","sourceRoot":"","sources":["../../src/lib/statsd.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAuC1D,wEAAwE;AACxE,wBAAgB,SAAS,IAAI,cAAc,CAK1C;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAc9C"}
1
+ {"version":3,"file":"statsd.d.ts","sourceRoot":"","sources":["../../src/lib/statsd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3D,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;CAC9C;AA2DD,wEAAwE;AACxE,wBAAgB,SAAS,IAAI,UAAU,CAKtC;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAc9C"}
@@ -1,45 +1,73 @@
1
1
  "use strict";
2
2
  /**
3
- * DogStatsD client singleton following Vivian's hot-shots pattern. Sends
4
- * metrics to the Datadog agent when DD_TRACE_ENABLED=true; falls back to a
5
- * mock client that logs at debug level for local dev without an agent.
3
+ * Opt-in DogStatsD client singleton. `hot-shots` is an optional peer dependency:
4
+ * install it and set `DD_METRICS_ENABLED=true` to ship metrics to the Datadog
5
+ * agent. Otherwise every metric call is a no-op, so callers never branch on
6
+ * whether telemetry is configured.
7
+ *
8
+ * `hot-shots` is resolved lazily rather than imported at module scope: this
9
+ * module is reachable from `lib/logging`, and a module-scope import of an
10
+ * optional package would make it a hard requirement for every consumer of the
11
+ * published package.
6
12
  */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
13
  Object.defineProperty(exports, "__esModule", { value: true });
11
14
  exports.getStatsD = getStatsD;
12
15
  exports.shutdownStatsD = shutdownStatsD;
13
- const hot_shots_1 = __importDefault(require("hot-shots"));
16
+ const node_module_1 = require("node:module");
14
17
  const env_1 = require("../lib/env");
18
+ const errors_1 = require("../lib/errors");
15
19
  const logging_1 = require("../lib/logging");
16
20
  const logger = (0, logging_1.getLogger)({ name: "statsd" });
21
+ // See `datadog.ts` — same createRequire idiom for resolving an optional peer.
22
+ const requirePeer = (0, node_module_1.createRequire)(__filename);
23
+ /** Discards every metric. Used when metrics are off or hot-shots is absent. */
24
+ const noopClient = {
25
+ increment: () => { },
26
+ timing: () => { },
27
+ close: (callback) => callback(),
28
+ };
17
29
  function createClient() {
18
- const traceEnabled = (0, env_1.getBoolEnv)("DD_TRACE_ENABLED", false);
19
- if (traceEnabled) {
20
- const host = (0, env_1.getEnv)("DD_AGENT_HOST", "localhost");
21
- const port = (0, env_1.getNumericEnv)("DD_DOGSTATSD_PORT", 8125);
22
- logger.info(`initializing DogStatsD client on ${host}:${port}`);
23
- return new hot_shots_1.default({
24
- host,
25
- port,
26
- prefix: "barnacle.",
27
- globalTags: {
28
- service: (0, env_1.getEnv)("DD_SERVICE", "barnacle"),
29
- env: (0, env_1.getEnv)("DD_ENV", "development"),
30
- },
31
- errorHandler: (err) => {
32
- logger.warn(`statsd send error: ${err.message}`);
33
- },
34
- });
30
+ if (!(0, env_1.getBoolEnv)("DD_METRICS_ENABLED", false)) {
31
+ logger.debug("metrics disabled (DD_METRICS_ENABLED is off) — statsd calls are no-ops");
32
+ return noopClient;
35
33
  }
36
- logger.debug("initializing mock DogStatsD client (DD_TRACE_ENABLED is off)");
37
- return new hot_shots_1.default({
38
- mock: true,
34
+ const StatsD = loadStatsD();
35
+ if (!StatsD)
36
+ return noopClient;
37
+ const host = (0, env_1.getEnv)("DD_AGENT_HOST", "localhost");
38
+ const port = (0, env_1.getNumericEnv)("DD_DOGSTATSD_PORT", 8125);
39
+ logger.info(`initializing DogStatsD client on ${host}:${port}`);
40
+ return new StatsD({
41
+ host,
42
+ port,
39
43
  prefix: "barnacle.",
40
- globalTags: { service: "barnacle", env: "development" },
44
+ globalTags: {
45
+ service: (0, env_1.getEnv)("DD_SERVICE", "barnacle"),
46
+ env: (0, env_1.getEnv)("DD_ENV", (0, env_1.getNodeEnv)()),
47
+ },
48
+ errorHandler: (err) => {
49
+ logger.warn(`statsd send error: ${err.message}`);
50
+ },
41
51
  });
42
52
  }
53
+ /**
54
+ * Resolves the hot-shots constructor, or null when it can't be loaded. Only a
55
+ * genuinely absent package earns the "install it" hint — any other failure
56
+ * (corrupt install, native binding error) surfaces its own message, matching how
57
+ * `discover.ts` reports optional-module load failures.
58
+ */
59
+ function loadStatsD() {
60
+ try {
61
+ const mod = requirePeer("hot-shots");
62
+ return mod.default ?? mod;
63
+ }
64
+ catch (err) {
65
+ logger.warn((0, errors_1.isModuleNotFound)(err)
66
+ ? "metrics disabled: DD_METRICS_ENABLED is set but hot-shots is not installed. Install it with `pnpm add hot-shots`."
67
+ : `metrics disabled: hot-shots failed to load — ${(0, errors_1.toErrorMessage)(err)}`);
68
+ return null;
69
+ }
70
+ }
43
71
  let client;
44
72
  /** Returns the process-global DogStatsD client (lazily initialized). */
45
73
  function getStatsD() {
@@ -1 +1 @@
1
- {"version":3,"file":"statsd.js","sourceRoot":"","sources":["../../src/lib/statsd.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;AA0CH,8BAKC;AAGD,wCAcC;AA7DD,0DAA+B;AAE/B,mCAA8D;AAC9D,2CAA0C;AAE1C,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE7C,SAAS,YAAY;IACnB,MAAM,YAAY,GAAG,IAAA,gBAAU,EAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAE3D,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,IAAA,YAAM,EAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAA,mBAAa,EAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,oCAAoC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,mBAAM,CAAC;YAChB,IAAI;YACJ,IAAI;YACJ,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE;gBACV,OAAO,EAAE,IAAA,YAAM,EAAC,YAAY,EAAE,UAAU,CAAC;gBACzC,GAAG,EAAE,IAAA,YAAM,EAAC,QAAQ,EAAE,aAAa,CAAC;aACrC;YACD,YAAY,EAAE,CAAC,GAAU,EAAE,EAAE;gBAC3B,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAC7E,OAAO,IAAI,mBAAM,CAAC;QAChB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE;KACxD,CAAC,CAAC;AACL,CAAC;AAED,IAAI,MAAkC,CAAC;AAEvC,wEAAwE;AACxE,SAAgB,SAAS;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,YAAY,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,SAAgB,cAAc;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC;IACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAsB,EAAE,EAAE;YACjC,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"statsd.js","sourceRoot":"","sources":["../../src/lib/statsd.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ const logger = (0, logging_1.getLogger)({ name: "scraper/http-client" });
44
44
  /**
45
45
  * One-shot diagnostic: when `CAPTURE_BASELINE_BODIES=1`, write each successful
46
46
  * (2xx) request to a numbered JSON file under the destination directory
47
- * (`BASELINE_BODIES_DIR`, default `/tmp/clearcompany-baseline-bodies`). Used to
47
+ * (`BASELINE_BODIES_DIR`, default `/tmp/baseline-bodies`). Used to
48
48
  * snapshot the current hot-path request shapes as a frozen regression baseline
49
49
  * before refactors that would alter how the JSON bodies are built. Off in
50
50
  * production unless explicitly enabled.
@@ -130,7 +130,7 @@ function createHttpClient(options) {
130
130
  }
131
131
  if (process.env.CAPTURE_BASELINE_BODIES === "1") {
132
132
  try {
133
- const dir = process.env.BASELINE_BODIES_DIR ?? "/tmp/clearcompany-baseline-bodies";
133
+ const dir = process.env.BASELINE_BODIES_DIR ?? "/tmp/baseline-bodies";
134
134
  (0, node_fs_1.mkdirSync)(dir, { recursive: true });
135
135
  const idx = String(baselineCallCounter++).padStart(2, "0");
136
136
  const slug = new URL(url).pathname
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/scraper/http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/scraper/http-client.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,34 @@ export interface RawFetchResult {
11
11
  status: number;
12
12
  rawBody: string;
13
13
  }
14
+ /**
15
+ * Fetch signature this module depends on — the subset of undici's `fetch` that
16
+ * {@link rawFetch} actually uses. Declared structurally so callers can supply a
17
+ * stand-in without importing undici's types.
18
+ */
19
+ export type FetchImpl = (url: string, init: {
20
+ method: string;
21
+ headers: Record<string, string>;
22
+ body?: Buffer | string;
23
+ }) => Promise<{
24
+ status: number;
25
+ headers: Headers;
26
+ text: () => Promise<string>;
27
+ }>;
14
28
  /** Input options for {@link rawFetch}. */
15
29
  export interface RawFetchOptions {
16
30
  method: string;
17
31
  headers: Record<string, string>;
18
32
  /** Optional request body — pass `undefined` for GET requests. */
19
33
  body?: Buffer | string;
34
+ /**
35
+ * Overrides the fetch implementation. Defaults to undici's. Exists because
36
+ * this module is consumed from a published package: `undici` is bound here at
37
+ * module load, so a downstream test cannot intercept it by mocking the
38
+ * `undici` specifier from its own module graph — the pre-built engine already
39
+ * holds the real reference. Injecting the double is the supported seam.
40
+ */
41
+ fetchImpl?: FetchImpl;
20
42
  /**
21
43
  * Called with the response `Headers` on every fetch outcome, including
22
44
  * non-2xx. Fires before `classifyHttpStatus` so the caller can harvest
@@ -1 +1 @@
1
- {"version":3,"file":"raw-fetch.d.ts","sourceRoot":"","sources":["../../src/scraper/raw-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;OAIG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAkB7F"}
1
+ {"version":3,"file":"raw-fetch.d.ts","sourceRoot":"","sources":["../../src/scraper/raw-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,KAC9E,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAAC;AAEhF,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA0B7F"}