@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.
- package/README.md +51 -0
- package/dist/config.d.ts +10 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/lib/datadog.d.ts +20 -5
- package/dist/lib/datadog.d.ts.map +1 -1
- package/dist/lib/datadog.js +65 -19
- package/dist/lib/datadog.js.map +1 -1
- package/dist/lib/errors.d.ts +8 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +11 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/logging.js +1 -1
- package/dist/lib/logging.js.map +1 -1
- package/dist/lib/statsd.d.ts +20 -5
- package/dist/lib/statsd.d.ts.map +1 -1
- package/dist/lib/statsd.js +56 -28
- package/dist/lib/statsd.js.map +1 -1
- package/dist/scraper/http-client.js +2 -2
- package/dist/scraper/http-client.js.map +1 -1
- package/dist/scraper/raw-fetch.d.ts +22 -0
- package/dist/scraper/raw-fetch.d.ts.map +1 -1
- package/dist/scraper/raw-fetch.js +2 -2
- package/dist/scraper/raw-fetch.js.map +1 -1
- package/dist/scraper/session-browserbase.d.ts +4 -4
- package/dist/scraper/session-browserbase.js +4 -4
- package/dist/scripts/recon-generate.d.ts.map +1 -1
- package/dist/scripts/recon-generate.js +42 -14
- package/dist/scripts/recon-generate.js.map +1 -1
- package/dist/testing/{contract-parity-suite.d.ts → contract-parity-suite.d.mts} +2 -2
- package/dist/testing/contract-parity-suite.d.mts.map +1 -0
- package/dist/testing/{contract-parity-suite.js → contract-parity-suite.mjs} +9 -12
- package/dist/testing/contract-parity-suite.mjs.map +1 -0
- package/dist/testing/{coverage-guard-suite.d.ts → coverage-guard-suite.d.mts} +1 -1
- package/dist/testing/coverage-guard-suite.d.mts.map +1 -0
- package/dist/testing/{coverage-guard-suite.js → coverage-guard-suite.mjs} +9 -12
- package/dist/testing/coverage-guard-suite.mjs.map +1 -0
- package/dist/testing/persona-fixture.d.ts +8 -6
- package/dist/testing/persona-fixture.d.ts.map +1 -1
- package/dist/testing/persona-fixture.js +8 -6
- package/dist/testing/persona-fixture.js.map +1 -1
- package/dist/testing/{replay-integration-suite.d.ts → replay-integration-suite.d.mts} +3 -3
- package/dist/testing/replay-integration-suite.d.mts.map +1 -0
- package/dist/testing/{replay-integration-suite.js → replay-integration-suite.mjs} +11 -14
- package/dist/testing/replay-integration-suite.mjs.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +40 -20
- package/dist/lib/application-answers.d.ts +0 -151
- package/dist/lib/application-answers.d.ts.map +0 -1
- package/dist/lib/application-answers.js +0 -95
- package/dist/lib/application-answers.js.map +0 -1
- package/dist/scripts/hca-inbox-poll.d.ts +0 -19
- package/dist/scripts/hca-inbox-poll.d.ts.map +0 -1
- package/dist/scripts/hca-inbox-poll.js +0 -151
- package/dist/scripts/hca-inbox-poll.js.map +0 -1
- package/dist/testing/answers-fixture.d.ts +0 -13
- package/dist/testing/answers-fixture.d.ts.map +0 -1
- package/dist/testing/answers-fixture.js +0 -37
- package/dist/testing/answers-fixture.js.map +0 -1
- package/dist/testing/contract-parity-suite.d.ts.map +0 -1
- package/dist/testing/contract-parity-suite.js.map +0 -1
- package/dist/testing/coverage-guard-suite.d.ts.map +0 -1
- package/dist/testing/coverage-guard-suite.js.map +0 -1
- package/dist/testing/replay-integration-suite.d.ts.map +0 -1
- 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
|
-
/**
|
|
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. */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACJ,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;QAC9B,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF;;;;;;;OAOG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE;QACP;;;;;;;WAOG;QACH,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC;QAClC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;QACzC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,uBAAuB,EAAE,MAAM,CAAC;QAChC;;;;;;;WAOG;QACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,+EAA+E;QAC/E,UAAU,EAAE,OAAO,CAAC;QACpB,8FAA8F;QAC9F,kBAAkB,EAAE,MAAM,CAAC;QAC3B,6HAA6H;QAC7H,gBAAgB,EAAE,MAAM,CAAC;QACzB,kIAAkI;QAClI,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,SAAS,EAAE;QACT;;;;WAIG;QACH,OAAO,EAAE,OAAO,CAAC;QACjB;;;;;WAKG;QACH,SAAS,EAAE,MAAM,CAAC;QAClB;;;;WAIG;QACH,eAAe,EAAE,MAAM,CAAC;QACxB;;;;;;;WAOG;QACH,qBAAqB,EAAE,MAAM,CAAC;QAC9B;;;;WAIG;QACH,gBAAgB,EAAE,MAAM,CAAC;QACzB;;;WAGG;QACH,cAAc,EAAE,MAAM,CAAC;QACvB;;;;WAIG;QACH,EAAE,EAAE;YACF,8EAA8E;YAC9E,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;YAC3B,sEAAsE;YACtE,MAAM,EAAE,MAAM,CAAC;YACf,kEAAkE;YAClE,eAAe,EAAE,MAAM,CAAC;YACxB,4EAA4E;YAC5E,cAAc,EAAE,MAAM,CAAC;SACxB,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP;;;;WAIG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;;WAGG;QACH,WAAW,EAAE,MAAM,CAAC;QACpB;;;WAGG;QACH,SAAS,EAAE,MAAM,CAAC;QAClB;;;WAGG;QACH,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;;;OAKG;IACH,QAAQ,EAAE;QACR,iEAAiE;QACjE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,sGAAsG;QACtG,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE;QACR;;;WAGG;QACH,aAAa,EAAE,MAAM,CAAC;QACtB;;;WAGG;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB;;;WAGG;QACH,gBAAgB,EAAE,MAAM,CAAC;QACzB;;;WAGG;QACH,aAAa,EAAE,MAAM,CAAC;QACtB;;;WAGG;QACH,YAAY,EAAE,MAAM,CAAC;QACrB;;;WAGG;QACH,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,EAAE;QACP
|
|
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"),
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/datadog.d.ts
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
-
|
|
7
|
-
|
|
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":"
|
|
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"}
|
package/dist/lib/datadog.js
CHANGED
|
@@ -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.
|
|
3
|
+
exports.getTracer = getTracer;
|
|
7
4
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
package/dist/lib/datadog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../src/lib/datadog.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/lib/errors.d.ts
CHANGED
|
@@ -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
|
package/dist/lib/errors.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/lib/errors.js
CHANGED
|
@@ -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
|
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAOH,wCAEC;
|
|
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"}
|
package/dist/lib/logging.js
CHANGED
|
@@ -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.
|
|
213
|
+
const span = (0, datadog_1.getTracer)()?.scope().active();
|
|
214
214
|
if (!span)
|
|
215
215
|
return {};
|
|
216
216
|
const ctx = span.context();
|
package/dist/lib/logging.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/lib/logging.ts"],"names":[],"mappings":";;;;;AA0EA,8CAYC;AAmED,oCAiCC;AASD,0CAQC;AAQD,8BA0BC;AA7OD,uCAAqC;AACrC,gDAAwB;AAExB,
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/lib/logging.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/statsd.d.ts
CHANGED
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DogStatsD client singleton
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
-
|
|
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():
|
|
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
|
package/dist/lib/statsd.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statsd.d.ts","sourceRoot":"","sources":["../../src/lib/statsd.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
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"}
|
package/dist/lib/statsd.js
CHANGED
|
@@ -1,45 +1,73 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* DogStatsD client singleton
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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: {
|
|
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() {
|
package/dist/lib/statsd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statsd.js","sourceRoot":"","sources":["../../src/lib/statsd.ts"],"names":[],"mappings":";AAAA
|
|
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/
|
|
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/
|
|
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,
|
|
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"}
|