@lobu/connector-sdk 6.0.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/browser/acquire.d.ts +7 -0
  2. package/dist/browser/acquire.d.ts.map +1 -1
  3. package/dist/browser/acquire.js +68 -16
  4. package/dist/browser/acquire.js.map +1 -1
  5. package/dist/browser/cdp-page.d.ts.map +1 -1
  6. package/dist/browser/cdp-page.js +40 -12
  7. package/dist/browser/cdp-page.js.map +1 -1
  8. package/dist/browser/launcher.d.ts +1 -2
  9. package/dist/browser/launcher.d.ts.map +1 -1
  10. package/dist/browser/launcher.js +1 -1
  11. package/dist/browser/launcher.js.map +1 -1
  12. package/dist/browser-network.d.ts +6 -0
  13. package/dist/browser-network.d.ts.map +1 -1
  14. package/dist/browser-network.js +78 -31
  15. package/dist/browser-network.js.map +1 -1
  16. package/dist/connector-types.d.ts +35 -0
  17. package/dist/connector-types.d.ts.map +1 -1
  18. package/dist/connector-types.js +3 -0
  19. package/dist/connector-types.js.map +1 -1
  20. package/dist/identity-normalize.d.ts +2 -0
  21. package/dist/identity-normalize.d.ts.map +1 -1
  22. package/dist/identity-normalize.js +28 -0
  23. package/dist/identity-normalize.js.map +1 -1
  24. package/dist/index.d.ts +3 -11
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +1 -7
  27. package/dist/index.js.map +1 -1
  28. package/dist/logger.d.ts +5 -4
  29. package/dist/logger.d.ts.map +1 -1
  30. package/dist/logger.js +5 -7
  31. package/dist/logger.js.map +1 -1
  32. package/dist/retry.d.ts +6 -3
  33. package/dist/retry.d.ts.map +1 -1
  34. package/dist/retry.js +29 -33
  35. package/dist/retry.js.map +1 -1
  36. package/dist/types.d.ts +0 -164
  37. package/dist/types.d.ts.map +1 -1
  38. package/package.json +3 -4
  39. package/dist/api-paginated.d.ts +0 -79
  40. package/dist/api-paginated.d.ts.map +0 -1
  41. package/dist/api-paginated.js +0 -120
  42. package/dist/api-paginated.js.map +0 -1
  43. package/dist/base.d.ts +0 -66
  44. package/dist/base.d.ts.map +0 -1
  45. package/dist/base.js +0 -122
  46. package/dist/base.js.map +0 -1
  47. package/dist/browser-paginated.d.ts +0 -141
  48. package/dist/browser-paginated.d.ts.map +0 -1
  49. package/dist/browser-paginated.js +0 -269
  50. package/dist/browser-paginated.js.map +0 -1
  51. package/dist/http.d.ts +0 -18
  52. package/dist/http.d.ts.map +0 -1
  53. package/dist/http.js +0 -74
  54. package/dist/http.js.map +0 -1
  55. package/dist/paginated.d.ts +0 -93
  56. package/dist/paginated.d.ts.map +0 -1
  57. package/dist/paginated.js +0 -167
  58. package/dist/paginated.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAU;IAEzB,cAAc,CAAC,EAAE,IAAI,CAAC;IAGtB,UAAU,EAAE,IAAI,CAAC;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAGhC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,wBAAwB,CAAC,EAAE,IAAI,CAAC;QAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,IAAI,CAAC;IAGlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,KAAK,EAAE,MAAM,CAAC;IAGd,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAKjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG;IAElB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAGzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAGhC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobu/connector-sdk",
3
- "version": "6.0.1",
3
+ "version": "7.0.0",
4
4
  "description": "Lobu memory SDK — build pluggable connectors for Lobu memory",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -26,10 +26,9 @@
26
26
  "clean": "rm -rf dist"
27
27
  },
28
28
  "dependencies": {
29
+ "@lobu/core": "7.0.0",
29
30
  "@sinclair/typebox": "^0.34.41",
30
- "ky": "^1.14.0",
31
- "p-retry": "^7.1.0",
32
- "pino": "^10.1.0"
31
+ "ky": "^1.14.0"
33
32
  },
34
33
  "peerDependencies": {
35
34
  "playwright": "npm:patchright@^1.57.0"
@@ -1,79 +0,0 @@
1
- /**
2
- * API Paginated Feed Base Class
3
- *
4
- * Extends PaginatedFeed for HTTP/REST API-based feeds.
5
- * Provides HTTP client setup and common API patterns.
6
- */
7
- import type { KyInstance } from 'ky';
8
- import { HTTPError } from 'ky';
9
- import type { PageFetchResult, PaginatedCheckpoint } from './paginated.js';
10
- import { PaginatedFeed } from './paginated.js';
11
- import type { Env, FeedOptions, SessionState } from './types.js';
12
- /**
13
- * API session state for OAuth/token-based feeds
14
- */
15
- export interface ApiSessionState extends SessionState {
16
- /** OAuth/API access token */
17
- access_token?: string;
18
- /** OAuth refresh token (for token refresh flows) */
19
- refresh_token?: string;
20
- /** Token type (e.g., 'Bearer') */
21
- token_type?: string;
22
- /** Token expiration time (ISO string) */
23
- expires_at?: string;
24
- /** Additional headers to include in requests */
25
- headers?: Record<string, string>;
26
- /** API key (alternative to OAuth tokens) */
27
- api_key?: string;
28
- }
29
- /**
30
- * Base class for API-based feeds with HTTP pagination
31
- */
32
- export declare abstract class ApiPaginatedFeed<TItem, TResponse = unknown, TCheckpoint extends PaginatedCheckpoint = PaginatedCheckpoint> extends PaginatedFeed<TItem, TCheckpoint> {
33
- readonly apiType: "api";
34
- /**
35
- * Session state for this sync session
36
- */
37
- protected _sessionState: ApiSessionState | null;
38
- /**
39
- * Set session state for this sync session
40
- */
41
- protected setSessionState(sessionState: SessionState | null | undefined): void;
42
- /**
43
- * Get current session state
44
- */
45
- protected getSessionState(): ApiSessionState | null;
46
- /**
47
- * ABSTRACT: Build URL for fetching a specific page
48
- */
49
- protected abstract buildPageUrl(cursor: string | null, options: FeedOptions): string;
50
- /**
51
- * ABSTRACT: Parse API response into items and next token
52
- */
53
- protected abstract parseResponse(response: TResponse, options: FeedOptions): PageFetchResult<TItem>;
54
- /**
55
- * Get configured HTTP client for this feed
56
- */
57
- protected getHttpClient(_env: Env): KyInstance;
58
- /**
59
- * Create HTTP client with Bearer token authentication
60
- */
61
- protected createBearerClient(token: string, additionalHeaders?: Record<string, string>): KyInstance;
62
- /**
63
- * Create HTTP client with custom headers
64
- */
65
- protected createClientWithHeaders(headers: Record<string, string>): KyInstance;
66
- /**
67
- * Create HTTP client from session state
68
- */
69
- protected createClientFromSessionState(additionalHeaders?: Record<string, string>): KyInstance;
70
- /**
71
- * Handle HTTP errors with platform-specific messages
72
- */
73
- protected handleHttpError(error: HTTPError, url: string): never;
74
- /**
75
- * Default fetchPage implementation using HTTP client with retry
76
- */
77
- protected fetchPage(cursor: string | null, options: FeedOptions, env: Env): Promise<PageFetchResult<TItem>>;
78
- }
79
- //# sourceMappingURL=api-paginated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-paginated.d.ts","sourceRoot":"","sources":["../src/api-paginated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,8BAAsB,gBAAgB,CACpC,KAAK,EACL,SAAS,GAAG,OAAO,EACnB,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,CAC7D,SAAQ,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAG,KAAK,CAAU;IAElC;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEvD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAU9E;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,eAAe,GAAG,IAAI;IAInD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM;IAEpF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAC9B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,WAAW,GACnB,eAAe,CAAC,KAAK,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,UAAU;IAI9C;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAC1B,KAAK,EAAE,MAAM,EACb,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,UAAU;IAIb;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU;IAI9E;;OAEG;IACH,SAAS,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU;IAsB9F;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK;IAI/D;;OAEG;cACa,SAAS,CACvB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,GAAG,GACP,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;CAsCnC"}
@@ -1,120 +0,0 @@
1
- /**
2
- * API Paginated Feed Base Class
3
- *
4
- * Extends PaginatedFeed for HTTP/REST API-based feeds.
5
- * Provides HTTP client setup and common API patterns.
6
- */
7
- import { HTTPError } from 'ky';
8
- import { RateLimitError } from './base.js';
9
- import { createAuthenticatedClient, createHttpClient, httpClient } from './http.js';
10
- import { sdkLogger } from './logger.js';
11
- import { PaginatedFeed } from './paginated.js';
12
- import { withHttpRetry } from './retry.js';
13
- /**
14
- * Base class for API-based feeds with HTTP pagination
15
- */
16
- export class ApiPaginatedFeed extends PaginatedFeed {
17
- apiType = 'api';
18
- /**
19
- * Session state for this sync session
20
- */
21
- _sessionState = null;
22
- /**
23
- * Set session state for this sync session
24
- */
25
- setSessionState(sessionState) {
26
- this._sessionState = sessionState || null;
27
- if (this._sessionState) {
28
- sdkLogger.debug({ hasToken: !!this._sessionState.access_token, hasApiKey: !!this._sessionState.api_key }, `[${this.type}] Session state set`);
29
- }
30
- }
31
- /**
32
- * Get current session state
33
- */
34
- getSessionState() {
35
- return this._sessionState;
36
- }
37
- /**
38
- * Get configured HTTP client for this feed
39
- */
40
- getHttpClient(_env) {
41
- return httpClient;
42
- }
43
- /**
44
- * Create HTTP client with Bearer token authentication
45
- */
46
- createBearerClient(token, additionalHeaders) {
47
- return createAuthenticatedClient(`Bearer ${token}`, additionalHeaders);
48
- }
49
- /**
50
- * Create HTTP client with custom headers
51
- */
52
- createClientWithHeaders(headers) {
53
- return createHttpClient({ headers });
54
- }
55
- /**
56
- * Create HTTP client from session state
57
- */
58
- createClientFromSessionState(additionalHeaders) {
59
- if (!this._sessionState) {
60
- return additionalHeaders ? createHttpClient({ headers: additionalHeaders }) : httpClient;
61
- }
62
- const headers = {
63
- ...this._sessionState.headers,
64
- ...additionalHeaders,
65
- };
66
- if (this._sessionState.access_token) {
67
- const tokenType = this._sessionState.token_type || 'Bearer';
68
- return createAuthenticatedClient(`${tokenType} ${this._sessionState.access_token}`, headers);
69
- }
70
- if (this._sessionState.api_key) {
71
- return createAuthenticatedClient(this._sessionState.api_key, headers);
72
- }
73
- return Object.keys(headers).length > 0 ? createHttpClient({ headers }) : httpClient;
74
- }
75
- /**
76
- * Handle HTTP errors with platform-specific messages
77
- */
78
- handleHttpError(error, url) {
79
- this.handleHTTPError(error.response.status, url);
80
- }
81
- /**
82
- * Default fetchPage implementation using HTTP client with retry
83
- */
84
- async fetchPage(cursor, options, env) {
85
- const client = this.getHttpClient(env);
86
- const url = this.buildPageUrl(cursor, options);
87
- try {
88
- const response = await withHttpRetry(async () => client.get(url).json(), {
89
- operation: `${this.type} API fetch`,
90
- context: { url, cursor },
91
- });
92
- return this.parseResponse(response, options);
93
- }
94
- catch (error) {
95
- if (error instanceof HTTPError) {
96
- if (error.response.status === 429) {
97
- const retryAfter = error.response.headers.get('retry-after');
98
- let retryAfterMs;
99
- if (retryAfter) {
100
- const numericRetry = Number(retryAfter);
101
- if (!Number.isNaN(numericRetry)) {
102
- retryAfterMs = numericRetry * 1000;
103
- }
104
- else {
105
- const retryDate = Date.parse(retryAfter);
106
- if (!Number.isNaN(retryDate)) {
107
- retryAfterMs = retryDate - Date.now();
108
- }
109
- }
110
- }
111
- throw new RateLimitError(`${this.displayName} rate limit exceeded. Please wait before retrying.`, retryAfterMs && retryAfterMs > 0 ? retryAfterMs : undefined);
112
- }
113
- this.handleHttpError(error, url);
114
- }
115
- sdkLogger.error({ error, url }, `[${this.type}] API fetch failed`);
116
- throw error;
117
- }
118
- }
119
- }
120
- //# sourceMappingURL=api-paginated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-paginated.js","sourceRoot":"","sources":["../src/api-paginated.ts"],"names":[],"mappings":"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"}
package/dist/base.d.ts DELETED
@@ -1,66 +0,0 @@
1
- import type { TObject } from '@sinclair/typebox';
2
- import type { Checkpoint, Content, Env, FeedAuthSchema, FeedOptions, FeedSyncResult, IFeed, ParentFeedDefinition, ScoringConfig, SessionState } from './types.js';
3
- export declare class RateLimitError extends Error {
4
- readonly retryAfterMs?: number;
5
- constructor(message: string, retryAfterMs?: number);
6
- }
7
- /**
8
- * Base feed implementation with common functionality
9
- * All platform-specific feeds should extend this class
10
- */
11
- export declare abstract class BaseFeed implements IFeed {
12
- abstract readonly type: string;
13
- abstract readonly displayName: string;
14
- abstract readonly apiType: 'api' | 'browser';
15
- abstract readonly feedMode: 'entity' | 'search';
16
- abstract readonly optionsSchema: TObject;
17
- abstract readonly defaultScoringConfig: ScoringConfig;
18
- abstract readonly defaultScoringFormula: string;
19
- readonly authSchema: FeedAuthSchema;
20
- abstract pull(options: FeedOptions, checkpoint: Checkpoint | null, env: Env, sessionState?: SessionState | null, updateCheckpointFn?: (checkpoint: Checkpoint) => Promise<void>): Promise<FeedSyncResult>;
21
- abstract urlFromOptions(options: FeedOptions): string;
22
- abstract displayLabelFromOptions(options: FeedOptions): string;
23
- abstract validateOptions(options: FeedOptions): string | null;
24
- getParentFeedDefinitions(_options: FeedOptions): ParentFeedDefinition[];
25
- /**
26
- * Validate options using TypeBox schema
27
- * Subclasses can call this for schema validation before adding custom business logic
28
- */
29
- protected validateWithSchema(options: FeedOptions): string | null;
30
- /**
31
- * Get rate limit information for this platform
32
- * Override this method in platform-specific feeds
33
- * Default is conservative: 10 requests per minute
34
- */
35
- getRateLimit(): {
36
- requests_per_minute: number;
37
- recommended_interval_ms: number;
38
- };
39
- /**
40
- * Helper to check if content is newer than checkpoint
41
- */
42
- protected isNewerThan(contentDate: Date, checkpoint: Checkpoint | null): boolean;
43
- /**
44
- * Calculate lookback date from options
45
- * @param options - Feed options with optional lookback_days
46
- * @param defaultDays - Default lookback period (default: 365)
47
- */
48
- protected getLookbackDate(options: FeedOptions, defaultDays?: number): Date;
49
- /**
50
- * Sleep for specified milliseconds (for rate limiting)
51
- */
52
- protected sleep(ms: number): Promise<void>;
53
- /**
54
- * Check if feed is in incremental mode
55
- */
56
- protected isIncrementalMode(checkpoint: Checkpoint | null, paginationToken?: string | null): boolean;
57
- /**
58
- * Helper to deduplicate content by origin_id
59
- */
60
- protected deduplicate(contents: Content[], seenIds: Set<string>): Content[];
61
- /**
62
- * Handle HTTP errors with structured logging and platform-specific messages
63
- */
64
- protected handleHTTPError(status: number, context: string, platformName?: string): never;
65
- }
66
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,GAAG,EACH,cAAc,EACd,WAAW,EACX,cAAc,EACd,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAKnD;AAED;;;GAGG;AACH,8BAAsB,QAAS,YAAW,KAAK;IAC7C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEhD,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAmC;IAEtE,QAAQ,CAAC,IAAI,CACX,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,UAAU,GAAG,IAAI,EAC7B,GAAG,EAAE,GAAG,EACR,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAClC,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAC7D,OAAO,CAAC,cAAc,CAAC;IAE1B,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAErD,QAAQ,CAAC,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAE9D,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAE7D,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,oBAAoB,EAAE;IAIvE;;;OAGG;IACH,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAgBjE;;;;OAIG;IACH,YAAY;;;;IAOZ;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO;IAKhF;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,GAAE,MAAY,GAAG,IAAI;IAKhF;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACzB,UAAU,EAAE,UAAU,GAAG,IAAI,EAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO;IAIV;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,EAAE;IAS3E;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK;CA+BzF"}
package/dist/base.js DELETED
@@ -1,122 +0,0 @@
1
- import { Value } from '@sinclair/typebox/value';
2
- import { sdkLogger } from './logger.js';
3
- export class RateLimitError extends Error {
4
- retryAfterMs;
5
- constructor(message, retryAfterMs) {
6
- super(message);
7
- this.name = 'RateLimitError';
8
- this.retryAfterMs = retryAfterMs;
9
- }
10
- }
11
- /**
12
- * Base feed implementation with common functionality
13
- * All platform-specific feeds should extend this class
14
- */
15
- export class BaseFeed {
16
- authSchema = { methods: [{ type: 'none' }] };
17
- getParentFeedDefinitions(_options) {
18
- return [];
19
- }
20
- /**
21
- * Validate options using TypeBox schema
22
- * Subclasses can call this for schema validation before adding custom business logic
23
- */
24
- validateWithSchema(options) {
25
- try {
26
- const errors = [...Value.Errors(this.optionsSchema, options)];
27
- if (errors.length > 0) {
28
- // Format first error for user-friendly message
29
- const firstError = errors[0];
30
- const field = firstError.path.replace(/^\//, '');
31
- return `Invalid option ${field ? `"${field}"` : ''}: ${firstError.message}`;
32
- }
33
- return null;
34
- }
35
- catch (error) {
36
- sdkLogger.error({ error }, '[BaseFeed] Schema validation error:');
37
- return 'Invalid feed options format';
38
- }
39
- }
40
- /**
41
- * Get rate limit information for this platform
42
- * Override this method in platform-specific feeds
43
- * Default is conservative: 10 requests per minute
44
- */
45
- getRateLimit() {
46
- return {
47
- requests_per_minute: 10,
48
- recommended_interval_ms: 6000, // 6 seconds
49
- };
50
- }
51
- /**
52
- * Helper to check if content is newer than checkpoint
53
- */
54
- isNewerThan(contentDate, checkpoint) {
55
- if (!checkpoint || !checkpoint.last_timestamp)
56
- return true;
57
- return contentDate > checkpoint.last_timestamp;
58
- }
59
- /**
60
- * Calculate lookback date from options
61
- * @param options - Feed options with optional lookback_days
62
- * @param defaultDays - Default lookback period (default: 365)
63
- */
64
- getLookbackDate(options, defaultDays = 365) {
65
- const lookbackDays = options.lookback_days || defaultDays;
66
- return new Date(Date.now() - lookbackDays * 24 * 60 * 60 * 1000);
67
- }
68
- /**
69
- * Sleep for specified milliseconds (for rate limiting)
70
- */
71
- sleep(ms) {
72
- return new Promise((resolve) => setTimeout(resolve, ms));
73
- }
74
- /**
75
- * Check if feed is in incremental mode
76
- */
77
- isIncrementalMode(checkpoint, paginationToken) {
78
- return !!checkpoint?.last_timestamp && !paginationToken;
79
- }
80
- /**
81
- * Helper to deduplicate content by origin_id
82
- */
83
- deduplicate(contents, seenIds) {
84
- return contents.filter((c) => {
85
- if (!c.origin_id)
86
- return false;
87
- if (seenIds.has(c.origin_id))
88
- return false;
89
- seenIds.add(c.origin_id);
90
- return true;
91
- });
92
- }
93
- /**
94
- * Handle HTTP errors with structured logging and platform-specific messages
95
- */
96
- handleHTTPError(status, context, platformName) {
97
- const platform = platformName || this.displayName;
98
- sdkLogger.error({
99
- status,
100
- context,
101
- platform: this.type,
102
- timestamp: new Date().toISOString(),
103
- }, `[${platform}Feed] HTTP ${status} error:`);
104
- const errorMessages = {
105
- 400: `Bad request to ${platform}: ${context}. Check your feed options.`,
106
- 401: `Authentication failed for ${platform}. Check your API credentials.`,
107
- 403: `Access forbidden to ${platform} resource: ${context}. The resource may be private or require authentication.`,
108
- 404: `Resource not found on ${platform}: ${context}. Verify the resource exists.`,
109
- 422: `Invalid request to ${platform}: ${context}. Check your parameters.`,
110
- 429: `${platform} rate limit exceeded. Please wait before retrying.`,
111
- 500: `${platform} server error (${status}). This is temporary, please retry later.`,
112
- 502: `${platform} bad gateway (${status}). This is temporary, please retry later.`,
113
- 503: `${platform} service unavailable (${status}). This is temporary, please retry later.`,
114
- };
115
- const message = errorMessages[status] || `${platform} API error: ${status}`;
116
- if (status === 429) {
117
- throw new RateLimitError(message);
118
- }
119
- throw new Error(message);
120
- }
121
- }
122
- //# sourceMappingURL=base.js.map
package/dist/base.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
@@ -1,141 +0,0 @@
1
- /**
2
- * Browser Paginated Feed Base Class
3
- *
4
- * Extends PaginatedFeed for browser-based feeds (Playwright).
5
- */
6
- import type { Cookie, Page } from 'playwright';
7
- import type { PageFetchResult, PaginatedCheckpoint, PaginationConfig } from './paginated.js';
8
- import { PaginatedFeed } from './paginated.js';
9
- import type { Checkpoint, Env, FeedOptions, FeedSyncResult, SessionState } from './types.js';
10
- /**
11
- * Browser session state - Playwright-compatible format
12
- */
13
- export interface BrowserSessionState extends SessionState {
14
- /** Playwright-compatible cookies */
15
- cookies?: Cookie[];
16
- /** localStorage key-value pairs (applied via page.evaluate) */
17
- localStorage?: Record<string, string>;
18
- /** Extra HTTP headers to set */
19
- headers?: Record<string, string>;
20
- }
21
- /**
22
- * Cookie consent configuration for handling cookie banners
23
- */
24
- export interface CookieConsentConfig {
25
- /** CSS selectors to detect cookie consent banner */
26
- bannerSelectors: string[];
27
- /** CSS selectors for accept button */
28
- acceptSelectors: string[];
29
- /** Timeout in ms to wait for banner (default: 2000) */
30
- timeout?: number;
31
- }
32
- /**
33
- * CAPTCHA detection configuration
34
- */
35
- export interface CaptchaConfig {
36
- /** Enable CAPTCHA detection (default: false) */
37
- enabled: boolean;
38
- /** CSS selectors that indicate CAPTCHA presence */
39
- selectors?: string[];
40
- /** Text patterns in page content that indicate CAPTCHA */
41
- textPatterns?: string[];
42
- }
43
- /**
44
- * Browser configuration for the feed
45
- */
46
- export interface BrowserFeedConfig {
47
- /** Enable stealth mode to avoid bot detection (default: true) */
48
- stealth: boolean;
49
- /** Custom viewport dimensions (default: browser default) */
50
- viewport?: {
51
- width: number;
52
- height: number;
53
- };
54
- /** Custom user agent (default: browser default) */
55
- userAgent?: string;
56
- /** Navigation waitUntil option */
57
- waitUntil: 'load' | 'domcontentloaded' | 'networkidle';
58
- /** Navigation timeout in ms (default: 60000) */
59
- navigationTimeout: number;
60
- /** Cookie consent handling configuration */
61
- cookieConsent?: CookieConsentConfig;
62
- /** CAPTCHA detection configuration */
63
- captcha?: CaptchaConfig;
64
- }
65
- /**
66
- * Browser-specific pagination configuration
67
- */
68
- export interface BrowserPaginationConfig extends PaginationConfig {
69
- /** Number of pages to fetch per sync run (default: 1, G2 uses 5) */
70
- pagesPerRun: number;
71
- /** Delay between page navigations in ms (default: 2000) */
72
- pageDelayMs: number;
73
- }
74
- /**
75
- * Base class for browser-based feeds with pagination
76
- */
77
- export declare abstract class BrowserPaginatedFeed<TItem, TCheckpoint extends PaginatedCheckpoint = PaginatedCheckpoint> extends PaginatedFeed<TItem, TCheckpoint> {
78
- readonly apiType: "browser";
79
- private _browser;
80
- private _page;
81
- private _screenshotDir;
82
- private _isFirstPage;
83
- private _currentPageNumber;
84
- /**
85
- * ABSTRACT: Get browser configuration for this feed
86
- */
87
- protected abstract getBrowserConfig(): BrowserFeedConfig;
88
- /**
89
- * ABSTRACT: Get base URL from feed options
90
- */
91
- protected abstract getBaseUrl(options: FeedOptions): string;
92
- /**
93
- * ABSTRACT: Build URL for a specific page number
94
- */
95
- protected abstract buildPageUrl(baseUrl: string, pageNumber: number): string;
96
- /**
97
- * ABSTRACT: Wait for page content to be ready after navigation
98
- */
99
- protected abstract waitForContent(page: Page): Promise<void>;
100
- /**
101
- * ABSTRACT: Extract items from the current page DOM
102
- */
103
- protected abstract extractItems(page: Page): Promise<TItem[]>;
104
- /**
105
- * Browser-specific pagination configuration
106
- */
107
- protected getBrowserPaginationConfig(): BrowserPaginationConfig;
108
- /**
109
- * Override pull() to manage browser lifecycle
110
- */
111
- pull(options: FeedOptions, checkpoint: TCheckpoint | null, env: Env, sessionState?: SessionState | null, updateCheckpointFn?: (checkpoint: Checkpoint) => Promise<void>): Promise<FeedSyncResult>;
112
- /**
113
- * Apply session state to browser page before navigation
114
- */
115
- protected applySessionState(page: Page, sessionState: BrowserSessionState): Promise<void>;
116
- /**
117
- * Capture browser session state after sync for persistence
118
- */
119
- protected captureSessionState(page: Page): Promise<BrowserSessionState>;
120
- /**
121
- * fetchPage() implementation for browser-based pagination
122
- */
123
- protected fetchPage(cursor: string | null, options: FeedOptions, _env: Env): Promise<PageFetchResult<TItem>>;
124
- /**
125
- * Handle cookie consent banner
126
- */
127
- protected handleCookieConsent(page: Page, config: CookieConsentConfig): Promise<void>;
128
- /**
129
- * Check for CAPTCHA and throw if detected
130
- */
131
- protected checkForCaptcha(page: Page, config: CaptchaConfig): Promise<void>;
132
- /**
133
- * Get current page number
134
- */
135
- protected getCurrentPageNumber(): number;
136
- /**
137
- * Get the Playwright page instance
138
- */
139
- protected getPage(): Page | null;
140
- }
141
- //# sourceMappingURL=browser-paginated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-paginated.d.ts","sourceRoot":"","sources":["../src/browser-paginated.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAW,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sCAAsC;IACtC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAAC;IACvD,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,sCAAsC;IACtC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,8BAAsB,oBAAoB,CACxC,KAAK,EACL,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,CAC7D,SAAQ,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAG,SAAS,CAAU;IAEtC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,kBAAkB,CAAa;IAEvC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,iBAAiB;IAExD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAE3D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAE5E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAE7D;;OAEG;IACH,SAAS,CAAC,0BAA0B,IAAI,uBAAuB;IAQ/D;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,WAAW,GAAG,IAAI,EAC9B,GAAG,EAAE,GAAG,EACR,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAClC,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAC7D,OAAO,CAAC,cAAc,CAAC;IA2D1B;;OAEG;cACa,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/F;;OAEG;cACa,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsC7E;;OAEG;cACa,SAAS,CACvB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAsDlC;;OAEG;cACa,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C3F;;OAEG;cACa,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BjF;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI;CAGjC"}