@x12i/content-fetcher 0.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 (90) hide show
  1. package/README.md +133 -0
  2. package/dist/adapters/default-http-client.d.ts +17 -0
  3. package/dist/adapters/default-http-client.d.ts.map +1 -0
  4. package/dist/adapters/default-http-client.js +74 -0
  5. package/dist/adapters/default-http-client.js.map +1 -0
  6. package/dist/channels.d.ts +34 -0
  7. package/dist/channels.d.ts.map +1 -0
  8. package/dist/channels.js +164 -0
  9. package/dist/channels.js.map +1 -0
  10. package/dist/classify.d.ts +13 -0
  11. package/dist/classify.d.ts.map +1 -0
  12. package/dist/classify.js +122 -0
  13. package/dist/classify.js.map +1 -0
  14. package/dist/config.d.ts +7 -0
  15. package/dist/config.d.ts.map +1 -0
  16. package/dist/config.js +197 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/create-content-fetcher.d.ts +9 -0
  19. package/dist/create-content-fetcher.d.ts.map +1 -0
  20. package/dist/create-content-fetcher.js +836 -0
  21. package/dist/create-content-fetcher.js.map +1 -0
  22. package/dist/errors.d.ts +42 -0
  23. package/dist/errors.d.ts.map +1 -0
  24. package/dist/errors.js +73 -0
  25. package/dist/errors.js.map +1 -0
  26. package/dist/handoff.d.ts +8 -0
  27. package/dist/handoff.d.ts.map +1 -0
  28. package/dist/handoff.js +20 -0
  29. package/dist/handoff.js.map +1 -0
  30. package/dist/index.d.ts +15 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +14 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/ratelimit.d.ts +27 -0
  35. package/dist/ratelimit.d.ts.map +1 -0
  36. package/dist/ratelimit.js +43 -0
  37. package/dist/ratelimit.js.map +1 -0
  38. package/dist/robots/robots-service.d.ts +40 -0
  39. package/dist/robots/robots-service.d.ts.map +1 -0
  40. package/dist/robots/robots-service.js +131 -0
  41. package/dist/robots/robots-service.js.map +1 -0
  42. package/dist/robots/robots-txt.d.ts +24 -0
  43. package/dist/robots/robots-txt.d.ts.map +1 -0
  44. package/dist/robots/robots-txt.js +91 -0
  45. package/dist/robots/robots-txt.js.map +1 -0
  46. package/dist/runtime-utils.d.ts +11 -0
  47. package/dist/runtime-utils.d.ts.map +1 -0
  48. package/dist/runtime-utils.js +32 -0
  49. package/dist/runtime-utils.js.map +1 -0
  50. package/dist/security/dns.d.ts +33 -0
  51. package/dist/security/dns.d.ts.map +1 -0
  52. package/dist/security/dns.js +60 -0
  53. package/dist/security/dns.js.map +1 -0
  54. package/dist/security/headers.d.ts +16 -0
  55. package/dist/security/headers.d.ts.map +1 -0
  56. package/dist/security/headers.js +54 -0
  57. package/dist/security/headers.js.map +1 -0
  58. package/dist/security/net-guards.d.ts +9 -0
  59. package/dist/security/net-guards.d.ts.map +1 -0
  60. package/dist/security/net-guards.js +102 -0
  61. package/dist/security/net-guards.js.map +1 -0
  62. package/dist/security/url.d.ts +32 -0
  63. package/dist/security/url.d.ts.map +1 -0
  64. package/dist/security/url.js +82 -0
  65. package/dist/security/url.js.map +1 -0
  66. package/dist/storage.d.ts +38 -0
  67. package/dist/storage.d.ts.map +1 -0
  68. package/dist/storage.js +109 -0
  69. package/dist/storage.js.map +1 -0
  70. package/dist/types.d.ts +232 -0
  71. package/dist/types.d.ts.map +1 -0
  72. package/dist/types.js +9 -0
  73. package/dist/types.js.map +1 -0
  74. package/dist/util/bytes.d.ts +21 -0
  75. package/dist/util/bytes.d.ts.map +1 -0
  76. package/dist/util/bytes.js +44 -0
  77. package/dist/util/bytes.js.map +1 -0
  78. package/dist/util/hash.d.ts +5 -0
  79. package/dist/util/hash.d.ts.map +1 -0
  80. package/dist/util/hash.js +11 -0
  81. package/dist/util/hash.js.map +1 -0
  82. package/dist/util/ids.d.ts +3 -0
  83. package/dist/util/ids.d.ts.map +1 -0
  84. package/dist/util/ids.js +8 -0
  85. package/dist/util/ids.js.map +1 -0
  86. package/dist/validate-request.d.ts +9 -0
  87. package/dist/validate-request.d.ts.map +1 -0
  88. package/dist/validate-request.js +137 -0
  89. package/dist/validate-request.js.map +1 -0
  90. package/package.json +34 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-content-fetcher.js","sourceRoot":"","sources":["../src/create-content-fetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Typed errors for invalid usage and configuration.
3
+ *
4
+ * Expected retrieval outcomes (robots denial, rate limit, paywall, ...) are
5
+ * returned as AcquisitionResult statuses and never thrown.
6
+ */
7
+ /** The fetch request object is malformed or violates the request contract. */
8
+ export declare class InvalidFetchRequestError extends Error {
9
+ readonly code: string;
10
+ constructor(message: string, code: string);
11
+ }
12
+ /** No source policy is registered for the request's sourceId. */
13
+ export declare class UnknownSourcePolicyError extends Error {
14
+ readonly sourceId: string;
15
+ constructor(message: string, sourceId: string);
16
+ }
17
+ /** A source policy is internally inconsistent or conflicts with the configuration. */
18
+ export declare class SourcePolicyViolationError extends Error {
19
+ readonly policyId: string;
20
+ constructor(message: string, policyId: string);
21
+ }
22
+ /** The URL targets (or resolves to) an address the package must never contact. */
23
+ export declare class UnsafeUrlError extends Error {
24
+ readonly code: string;
25
+ constructor(message: string, code: string);
26
+ }
27
+ /** The acquisition channel needed for this request has no usable adapter in this deployment. */
28
+ export declare class UnsupportedChannelError extends Error {
29
+ readonly channel: string;
30
+ constructor(message: string, channel: string);
31
+ }
32
+ /** The injected artifact storage adapter failed. */
33
+ export declare class ArtifactStoreError extends Error {
34
+ readonly operation: string;
35
+ constructor(message: string, operation: string);
36
+ }
37
+ /** The fetcher configuration itself is invalid. */
38
+ export declare class ConfigurationError extends Error {
39
+ readonly code: string;
40
+ constructor(message: string, code: string);
41
+ }
42
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,8EAA8E;AAC9E,qBAAa,wBAAyB,SAAQ,KAAK;IAG/C,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADrB,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,MAAM;CAKxB;AAED,iEAAiE;AACjE,qBAAa,wBAAyB,SAAQ,KAAK;IAG/C,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBADzB,OAAO,EAAE,MAAM,EACN,QAAQ,EAAE,MAAM;CAK5B;AAED,sFAAsF;AACtF,qBAAa,0BAA2B,SAAQ,KAAK;IAGjD,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBADzB,OAAO,EAAE,MAAM,EACN,QAAQ,EAAE,MAAM;CAK5B;AAED,kFAAkF;AAClF,qBAAa,cAAe,SAAQ,KAAK;IAGrC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADrB,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,MAAM;CAKxB;AAED,gGAAgG;AAChG,qBAAa,uBAAwB,SAAQ,KAAK;IAG9C,QAAQ,CAAC,OAAO,EAAE,MAAM;gBADxB,OAAO,EAAE,MAAM,EACN,OAAO,EAAE,MAAM;CAK3B;AAED,oDAAoD;AACpD,qBAAa,kBAAmB,SAAQ,KAAK;IAGzC,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAD1B,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,MAAM;CAK7B;AAED,mDAAmD;AACnD,qBAAa,kBAAmB,SAAQ,KAAK;IAGzC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADrB,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,MAAM;CAKxB"}
package/dist/errors.js ADDED
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Typed errors for invalid usage and configuration.
3
+ *
4
+ * Expected retrieval outcomes (robots denial, rate limit, paywall, ...) are
5
+ * returned as AcquisitionResult statuses and never thrown.
6
+ */
7
+ function setMessageName(error, name) {
8
+ error.name = name;
9
+ }
10
+ /** The fetch request object is malformed or violates the request contract. */
11
+ export class InvalidFetchRequestError extends Error {
12
+ code;
13
+ constructor(message, code) {
14
+ super(message);
15
+ this.code = code;
16
+ setMessageName(this, "InvalidFetchRequestError");
17
+ }
18
+ }
19
+ /** No source policy is registered for the request's sourceId. */
20
+ export class UnknownSourcePolicyError extends Error {
21
+ sourceId;
22
+ constructor(message, sourceId) {
23
+ super(message);
24
+ this.sourceId = sourceId;
25
+ setMessageName(this, "UnknownSourcePolicyError");
26
+ }
27
+ }
28
+ /** A source policy is internally inconsistent or conflicts with the configuration. */
29
+ export class SourcePolicyViolationError extends Error {
30
+ policyId;
31
+ constructor(message, policyId) {
32
+ super(message);
33
+ this.policyId = policyId;
34
+ setMessageName(this, "SourcePolicyViolationError");
35
+ }
36
+ }
37
+ /** The URL targets (or resolves to) an address the package must never contact. */
38
+ export class UnsafeUrlError extends Error {
39
+ code;
40
+ constructor(message, code) {
41
+ super(message);
42
+ this.code = code;
43
+ setMessageName(this, "UnsafeUrlError");
44
+ }
45
+ }
46
+ /** The acquisition channel needed for this request has no usable adapter in this deployment. */
47
+ export class UnsupportedChannelError extends Error {
48
+ channel;
49
+ constructor(message, channel) {
50
+ super(message);
51
+ this.channel = channel;
52
+ setMessageName(this, "UnsupportedChannelError");
53
+ }
54
+ }
55
+ /** The injected artifact storage adapter failed. */
56
+ export class ArtifactStoreError extends Error {
57
+ operation;
58
+ constructor(message, operation) {
59
+ super(message);
60
+ this.operation = operation;
61
+ setMessageName(this, "ArtifactStoreError");
62
+ }
63
+ }
64
+ /** The fetcher configuration itself is invalid. */
65
+ export class ConfigurationError extends Error {
66
+ code;
67
+ constructor(message, code) {
68
+ super(message);
69
+ this.code = code;
70
+ setMessageName(this, "ConfigurationError");
71
+ }
72
+ }
73
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS,cAAc,CAAC,KAAY,EAAE,IAAY;IAChD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,8EAA8E;AAC9E,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAGtC;IAFX,YACE,OAAe,EACN,IAAY;QAErB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,SAAI,GAAJ,IAAI,CAAQ;QAGrB,cAAc,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IACnD,CAAC;CACF;AAED,iEAAiE;AACjE,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAGtC;IAFX,YACE,OAAe,EACN,QAAgB;QAEzB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,aAAQ,GAAR,QAAQ,CAAQ;QAGzB,cAAc,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IACnD,CAAC;CACF;AAED,sFAAsF;AACtF,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAGxC;IAFX,YACE,OAAe,EACN,QAAgB;QAEzB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,aAAQ,GAAR,QAAQ,CAAQ;QAGzB,cAAc,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IACrD,CAAC;CACF;AAED,kFAAkF;AAClF,MAAM,OAAO,cAAe,SAAQ,KAAK;IAG5B;IAFX,YACE,OAAe,EACN,IAAY;QAErB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,SAAI,GAAJ,IAAI,CAAQ;QAGrB,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACzC,CAAC;CACF;AAED,gGAAgG;AAChG,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAGrC;IAFX,YACE,OAAe,EACN,OAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,YAAO,GAAP,OAAO,CAAQ;QAGxB,cAAc,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;IAClD,CAAC;CACF;AAED,oDAAoD;AACpD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGhC;IAFX,YACE,OAAe,EACN,SAAiB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,cAAS,GAAT,SAAS,CAAQ;QAG1B,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGhC;IAFX,YACE,OAAe,EACN,IAAY;QAErB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,SAAI,GAAJ,IAAI,CAAQ;QAGrB,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { AcquisitionResult, FetchedArtifactReference } from "./types.js";
2
+ /**
3
+ * Build the downstream handoff reference from a successful acquisition.
4
+ * Returns null when the result carries no retained artifact (for example a
5
+ * metadata_only outcome) — the extractor must not be invoked in that case.
6
+ */
7
+ export declare function toFetchedArtifactReference(result: AcquisitionResult): FetchedArtifactReference | null;
8
+ //# sourceMappingURL=handoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,iBAAiB,GACxB,wBAAwB,GAAG,IAAI,CAYjC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Build the downstream handoff reference from a successful acquisition.
3
+ * Returns null when the result carries no retained artifact (for example a
4
+ * metadata_only outcome) — the extractor must not be invoked in that case.
5
+ */
6
+ export function toFetchedArtifactReference(result) {
7
+ if (result.artifact === undefined)
8
+ return null;
9
+ return {
10
+ acquisitionId: result.acquisitionId,
11
+ artifactId: result.artifact.artifactId,
12
+ sourceId: result.sourceId,
13
+ fileName: result.artifact.fileName,
14
+ contentType: result.artifact.contentType,
15
+ contentHash: result.artifact.contentHash,
16
+ provenance: result.provenance,
17
+ rights: result.rights,
18
+ };
19
+ }
20
+ //# sourceMappingURL=handoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAyB;IAEzB,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;QACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAClC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;QACxC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;QACxC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Policy-aware content acquisition for known, approved sources.
3
+ *
4
+ * The fetcher validates every request against a source-policy registry,
5
+ * retrieves permitted content through approved channels, and preserves the
6
+ * original bytes plus provenance, rights, and acquisition outcomes. It never
7
+ * discovers URLs, crawls, extracts text, or bypasses access restrictions.
8
+ */
9
+ export { createContentFetcher, } from "./create-content-fetcher.js";
10
+ export { DefaultHttpClient } from "./adapters/default-http-client.js";
11
+ export { SystemDnsResolver } from "./security/dns.js";
12
+ export { toFetchedArtifactReference } from "./handoff.js";
13
+ export { ArtifactStoreError, ConfigurationError, InvalidFetchRequestError, SourcePolicyViolationError, UnknownSourcePolicyError, UnsafeUrlError, UnsupportedChannelError, } from "./errors.js";
14
+ export type { AcquisitionChannel, AcquisitionArtifact, AcquisitionStatus, AcquisitionVersion, AcquisitionProvenance, AcquisitionDiagnostics, AcquisitionResult, ArtifactStore, AuthCredentials, AuthProvider, BrowserAdapter, BrowserFetchOutput, ContentFetcher, ContentFetcherOptions, DnsResolver, FetchRequest, FetchRequestResource, FetchedArtifactReference, HttpClient, HttpClientRequestInit, HttpClientResponse, ManualFileInput, PreviousVersion, RightsProfile, Sha256ContentHash, SourcePolicy, } from "./types.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,cAAc,EACd,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Policy-aware content acquisition for known, approved sources.
3
+ *
4
+ * The fetcher validates every request against a source-policy registry,
5
+ * retrieves permitted content through approved channels, and preserves the
6
+ * original bytes plus provenance, rights, and acquisition outcomes. It never
7
+ * discovers URLs, crawls, extracts text, or bypasses access restrictions.
8
+ */
9
+ export { createContentFetcher, } from "./create-content-fetcher.js";
10
+ export { DefaultHttpClient } from "./adapters/default-http-client.js";
11
+ export { SystemDnsResolver } from "./security/dns.js";
12
+ export { toFetchedArtifactReference } from "./handoff.js";
13
+ export { ArtifactStoreError, ConfigurationError, InvalidFetchRequestError, SourcePolicyViolationError, UnknownSourcePolicyError, UnsafeUrlError, UnsupportedChannelError, } from "./errors.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,cAAc,EACd,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { SourcePolicy } from "./types.js";
2
+ export interface RateLimitSlot {
3
+ ok: true;
4
+ release(): void;
5
+ }
6
+ export type RateLimitRefusal = {
7
+ ok: false;
8
+ reason: "window_exhausted";
9
+ retryAfterSeconds: number;
10
+ } | {
11
+ ok: false;
12
+ reason: "concurrency_exhausted";
13
+ retryAfterSeconds: number;
14
+ };
15
+ /**
16
+ * Per-source limiter honouring policy.rateLimit: a sliding one-minute window
17
+ * for request count plus an in-flight cap for concurrency. Refusals are
18
+ * deterministic (never queued) so callers get an explicit rate_limited result.
19
+ */
20
+ export declare class RateLimiterRegistry {
21
+ private readonly now;
22
+ private readonly windows;
23
+ private readonly inflight;
24
+ constructor(now: () => number);
25
+ tryAcquire(sourceId: string, policy: SourcePolicy): RateLimitSlot | RateLimitRefusal;
26
+ }
27
+ //# sourceMappingURL=ratelimit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratelimit.d.ts","sourceRoot":"","sources":["../src/ratelimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9E;;;;GAIG;AACH,qBAAa,mBAAmB;IAIlB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;gBAEzB,GAAG,EAAE,MAAM,MAAM;IAE9C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,gBAAgB;CA+BrF"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Per-source limiter honouring policy.rateLimit: a sliding one-minute window
3
+ * for request count plus an in-flight cap for concurrency. Refusals are
4
+ * deterministic (never queued) so callers get an explicit rate_limited result.
5
+ */
6
+ export class RateLimiterRegistry {
7
+ now;
8
+ windows = new Map();
9
+ inflight = new Map();
10
+ constructor(now) {
11
+ this.now = now;
12
+ }
13
+ tryAcquire(sourceId, policy) {
14
+ const { maxRequestsPerMinute, maxConcurrentRequests } = policy.rateLimit;
15
+ const t = this.now();
16
+ const window = (this.windows.get(sourceId) ?? []).filter((ts) => t - ts < 60_000);
17
+ if (window.length >= maxRequestsPerMinute) {
18
+ const oldest = window[0] ?? t;
19
+ const retryAfterSeconds = Math.max(1, Math.ceil((oldest + 60_000 - t) / 1000));
20
+ this.windows.set(sourceId, window);
21
+ return { ok: false, reason: "window_exhausted", retryAfterSeconds };
22
+ }
23
+ const inflight = this.inflight.get(sourceId) ?? 0;
24
+ if (inflight >= maxConcurrentRequests) {
25
+ return { ok: false, reason: "concurrency_exhausted", retryAfterSeconds: 1 };
26
+ }
27
+ window.push(t);
28
+ this.windows.set(sourceId, window);
29
+ this.inflight.set(sourceId, inflight + 1);
30
+ let released = false;
31
+ return {
32
+ ok: true,
33
+ release: () => {
34
+ if (released)
35
+ return;
36
+ released = true;
37
+ const current = this.inflight.get(sourceId) ?? 1;
38
+ this.inflight.set(sourceId, Math.max(0, current - 1));
39
+ },
40
+ };
41
+ }
42
+ }
43
+ //# sourceMappingURL=ratelimit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratelimit.js","sourceRoot":"","sources":["../src/ratelimit.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAID;IAHZ,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IACtC,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtD,YAA6B,GAAiB;QAAjB,QAAG,GAAH,GAAG,CAAc;IAAG,CAAC;IAElD,UAAU,CAAC,QAAgB,EAAE,MAAoB;QAC/C,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;QACzE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAErB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QAClF,IAAI,MAAM,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;QACtE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;QAC9E,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,OAAO;YACL,EAAE,EAAE,IAAa;YACjB,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YACxD,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ import type { HttpClient } from "../types.js";
2
+ import type { AddressValidator } from "../security/dns.js";
3
+ export type RobotsDecision = {
4
+ outcome: "allowed";
5
+ } | {
6
+ outcome: "disallowed";
7
+ matchedPath: string | null;
8
+ } | {
9
+ outcome: "unavailable";
10
+ reason: string;
11
+ };
12
+ /**
13
+ * Fetches (with per-origin TTL caching and request coalescing), parses, and
14
+ * evaluates robots.txt for web channels. robots.txt fetches do not consume
15
+ * source rate-limit slots; they are shared control requests.
16
+ *
17
+ * Outcome mapping (conservative):
18
+ * - 2xx -> parsed rules
19
+ * - 404 / other 4xx -> allow-all
20
+ * - 401 / 403 / 5xx / network failure / cross-origin redirect -> unavailable
21
+ * (the caller returns manual_review_required rather than guessing)
22
+ */
23
+ export declare class RobotsService {
24
+ private readonly httpClient;
25
+ private readonly addressValidator;
26
+ private readonly userAgent;
27
+ private readonly ttlMs;
28
+ private readonly timeoutMs;
29
+ private readonly now;
30
+ private readonly cache;
31
+ private readonly inflight;
32
+ private static readonly MAX_REDIRECTS;
33
+ private static readonly MAX_BYTES;
34
+ private static readonly UNAVAILABLE_TTL_MS;
35
+ constructor(httpClient: HttpClient, addressValidator: AddressValidator, userAgent: string, ttlMs: number, timeoutMs: number, now: () => number);
36
+ decide(target: URL): Promise<RobotsDecision>;
37
+ private load;
38
+ private fetchEntry;
39
+ }
40
+ //# sourceMappingURL=robots-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robots-service.d.ts","sourceRoot":"","sources":["../../src/robots/robots-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAS3D,MAAM,MAAM,cAAc,GACtB;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,GACtB;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrD;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IAQtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAZtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAK;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAc;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAU;gBAGjC,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,MAAM;IAG9B,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;YAqBpC,IAAI;YA2BJ,UAAU;CAwDzB"}
@@ -0,0 +1,131 @@
1
+ import { parseRobotsTxt, robotsAllows } from "./robots-txt.js";
2
+ /**
3
+ * Fetches (with per-origin TTL caching and request coalescing), parses, and
4
+ * evaluates robots.txt for web channels. robots.txt fetches do not consume
5
+ * source rate-limit slots; they are shared control requests.
6
+ *
7
+ * Outcome mapping (conservative):
8
+ * - 2xx -> parsed rules
9
+ * - 404 / other 4xx -> allow-all
10
+ * - 401 / 403 / 5xx / network failure / cross-origin redirect -> unavailable
11
+ * (the caller returns manual_review_required rather than guessing)
12
+ */
13
+ export class RobotsService {
14
+ httpClient;
15
+ addressValidator;
16
+ userAgent;
17
+ ttlMs;
18
+ timeoutMs;
19
+ now;
20
+ cache = new Map();
21
+ inflight = new Map();
22
+ static MAX_REDIRECTS = 3;
23
+ static MAX_BYTES = 512 * 1024;
24
+ static UNAVAILABLE_TTL_MS = 30_000;
25
+ constructor(httpClient, addressValidator, userAgent, ttlMs, timeoutMs, now) {
26
+ this.httpClient = httpClient;
27
+ this.addressValidator = addressValidator;
28
+ this.userAgent = userAgent;
29
+ this.ttlMs = ttlMs;
30
+ this.timeoutMs = timeoutMs;
31
+ this.now = now;
32
+ }
33
+ async decide(target) {
34
+ const entry = await this.load(target);
35
+ switch (entry.state) {
36
+ case "allow_all":
37
+ return { outcome: "allowed" };
38
+ case "unavailable":
39
+ return { outcome: "unavailable", reason: "robots_txt_unavailable" };
40
+ case "parsed": {
41
+ const pathWithQuery = target.pathname + target.search;
42
+ const { allowed, matchedPath } = robotsAllows(entry.groups, this.userAgent, pathWithQuery);
43
+ return allowed
44
+ ? { outcome: "allowed" }
45
+ : { outcome: "disallowed", matchedPath };
46
+ }
47
+ }
48
+ }
49
+ async load(target) {
50
+ const origin = target.origin;
51
+ const cached = this.cache.get(origin);
52
+ if (cached) {
53
+ const ttl = cached.state === "unavailable"
54
+ ? RobotsService.UNAVAILABLE_TTL_MS
55
+ : this.ttlMs;
56
+ if (this.now() - cached.fetchedAt < ttl)
57
+ return cached;
58
+ }
59
+ const pending = this.inflight.get(origin);
60
+ if (pending)
61
+ return pending;
62
+ const promise = this.fetchEntry(origin)
63
+ .catch(() => ({ state: "unavailable", groups: [], fetchedAt: this.now() }))
64
+ .then((entry) => {
65
+ this.cache.set(origin, entry);
66
+ return entry;
67
+ })
68
+ .finally(() => {
69
+ this.inflight.delete(origin);
70
+ });
71
+ this.inflight.set(origin, promise);
72
+ return promise;
73
+ }
74
+ async fetchEntry(origin) {
75
+ let current = new URL("/robots.txt", origin);
76
+ for (let hop = 0; hop <= RobotsService.MAX_REDIRECTS; hop++) {
77
+ const validation = await this.addressValidator.validate(current.hostname);
78
+ if (!validation.ok)
79
+ throw new Error("dns resolution failed");
80
+ const controller = new AbortController();
81
+ const timer = setTimeout(() => controller.abort(), this.timeoutMs);
82
+ let status;
83
+ let headers;
84
+ let body;
85
+ try {
86
+ const response = await this.httpClient.request(current.toString(), {
87
+ method: "GET",
88
+ headers: { "user-agent": this.userAgent },
89
+ signal: controller.signal,
90
+ });
91
+ status = response.status;
92
+ headers = response.headers;
93
+ body = response.body;
94
+ }
95
+ finally {
96
+ clearTimeout(timer);
97
+ }
98
+ if (status >= 300 && status < 400) {
99
+ const location = headers["location"];
100
+ if (location === undefined || hop === RobotsService.MAX_REDIRECTS) {
101
+ throw new Error("robots redirect not followable");
102
+ }
103
+ const next = new URL(location, current);
104
+ if (next.origin !== origin)
105
+ throw new Error("cross-origin robots redirect");
106
+ current = next;
107
+ continue;
108
+ }
109
+ if (status >= 200 && status < 300) {
110
+ const chunks = [];
111
+ let total = 0;
112
+ if (body) {
113
+ for await (const chunk of body) {
114
+ total += chunk.length;
115
+ if (total > RobotsService.MAX_BYTES)
116
+ break;
117
+ chunks.push(chunk);
118
+ }
119
+ }
120
+ const text = Buffer.concat(chunks.map((c) => Buffer.from(c))).toString("utf8");
121
+ return { state: "parsed", groups: parseRobotsTxt(text), fetchedAt: this.now() };
122
+ }
123
+ if (status === 401 || status === 403 || status >= 500) {
124
+ throw new Error(`robots.txt status ${status}`);
125
+ }
126
+ return { state: "allow_all", groups: [], fetchedAt: this.now() };
127
+ }
128
+ throw new Error("too many robots redirects");
129
+ }
130
+ }
131
+ //# sourceMappingURL=robots-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robots-service.js","sourceRoot":"","sources":["../../src/robots/robots-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * robots.txt parsing and evaluation (practical subset of RFC 9309):
3
+ * agent groups, allow/disallow rules, `*` wildcards, and `$` anchors.
4
+ * Longest matching pattern wins; ties favour "allow".
5
+ */
6
+ export interface RobotsRule {
7
+ allow: boolean;
8
+ path: string;
9
+ }
10
+ export interface RobotsGroup {
11
+ agents: Set<string>;
12
+ rules: RobotsRule[];
13
+ }
14
+ export declare function parseRobotsTxt(text: string): RobotsGroup[];
15
+ /**
16
+ * Evaluate `target` (path + query) for the given user agent.
17
+ * Agent groups are matched against the full user-agent token, its product
18
+ * name (the part before "/"), and finally the `*` group.
19
+ */
20
+ export declare function robotsAllows(groups: RobotsGroup[], userAgent: string, target: string): {
21
+ allowed: boolean;
22
+ matchedPath: string | null;
23
+ };
24
+ //# sourceMappingURL=robots-txt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robots-txt.d.ts","sourceRoot":"","sources":["../../src/robots/robots-txt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAgC1D;AAqBD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CA2BlD"}