@knowledgesdk/node 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 (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +495 -0
  3. package/dist/api/classify.d.ts +24 -0
  4. package/dist/api/classify.js +19 -0
  5. package/dist/api/classify.js.map +1 -0
  6. package/dist/api/extract.d.ts +118 -0
  7. package/dist/api/extract.js +60 -0
  8. package/dist/api/extract.js.map +1 -0
  9. package/dist/api/jobs.d.ts +35 -0
  10. package/dist/api/jobs.js +43 -0
  11. package/dist/api/jobs.js.map +1 -0
  12. package/dist/api/scrape.d.ts +18 -0
  13. package/dist/api/scrape.js +18 -0
  14. package/dist/api/scrape.js.map +1 -0
  15. package/dist/api/screenshot.d.ts +15 -0
  16. package/dist/api/screenshot.js +18 -0
  17. package/dist/api/screenshot.js.map +1 -0
  18. package/dist/api/search.d.ts +29 -0
  19. package/dist/api/search.js +22 -0
  20. package/dist/api/search.js.map +1 -0
  21. package/dist/api/sitemap.d.ts +17 -0
  22. package/dist/api/sitemap.js +19 -0
  23. package/dist/api/sitemap.js.map +1 -0
  24. package/dist/api/webhooks.d.ts +40 -0
  25. package/dist/api/webhooks.js +39 -0
  26. package/dist/api/webhooks.js.map +1 -0
  27. package/dist/constants.d.ts +5 -0
  28. package/dist/constants.js +9 -0
  29. package/dist/constants.js.map +1 -0
  30. package/dist/errors.d.ts +32 -0
  31. package/dist/errors.js +52 -0
  32. package/dist/errors.js.map +1 -0
  33. package/dist/esm/api/classify.d.ts +24 -0
  34. package/dist/esm/api/classify.js +15 -0
  35. package/dist/esm/api/classify.js.map +1 -0
  36. package/dist/esm/api/extract.d.ts +118 -0
  37. package/dist/esm/api/extract.js +56 -0
  38. package/dist/esm/api/extract.js.map +1 -0
  39. package/dist/esm/api/jobs.d.ts +35 -0
  40. package/dist/esm/api/jobs.js +39 -0
  41. package/dist/esm/api/jobs.js.map +1 -0
  42. package/dist/esm/api/scrape.d.ts +18 -0
  43. package/dist/esm/api/scrape.js +14 -0
  44. package/dist/esm/api/scrape.js.map +1 -0
  45. package/dist/esm/api/screenshot.d.ts +15 -0
  46. package/dist/esm/api/screenshot.js +14 -0
  47. package/dist/esm/api/screenshot.js.map +1 -0
  48. package/dist/esm/api/search.d.ts +29 -0
  49. package/dist/esm/api/search.js +18 -0
  50. package/dist/esm/api/search.js.map +1 -0
  51. package/dist/esm/api/sitemap.d.ts +17 -0
  52. package/dist/esm/api/sitemap.js +15 -0
  53. package/dist/esm/api/sitemap.js.map +1 -0
  54. package/dist/esm/api/webhooks.d.ts +40 -0
  55. package/dist/esm/api/webhooks.js +35 -0
  56. package/dist/esm/api/webhooks.js.map +1 -0
  57. package/dist/esm/constants.d.ts +5 -0
  58. package/dist/esm/constants.js +6 -0
  59. package/dist/esm/constants.js.map +1 -0
  60. package/dist/esm/errors.d.ts +32 -0
  61. package/dist/esm/errors.js +43 -0
  62. package/dist/esm/errors.js.map +1 -0
  63. package/dist/esm/index.d.ts +100 -0
  64. package/dist/esm/index.js +91 -0
  65. package/dist/esm/index.js.map +1 -0
  66. package/dist/esm/utils/http-client.d.ts +62 -0
  67. package/dist/esm/utils/http-client.js +354 -0
  68. package/dist/esm/utils/http-client.js.map +1 -0
  69. package/dist/index.d.ts +100 -0
  70. package/dist/index.js +102 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/index.mjs +2 -0
  73. package/dist/index.mjs.map +1 -0
  74. package/dist/utils/http-client.d.ts +62 -0
  75. package/dist/utils/http-client.js +361 -0
  76. package/dist/utils/http-client.js.map +1 -0
  77. package/package.json +93 -0
@@ -0,0 +1,100 @@
1
+ import { Extract } from './api/extract';
2
+ import { Scrape } from './api/scrape';
3
+ import { Classify } from './api/classify';
4
+ import { Screenshot } from './api/screenshot';
5
+ import { Sitemap } from './api/sitemap';
6
+ import { Search } from './api/search';
7
+ import { Webhooks } from './api/webhooks';
8
+ import { Jobs } from './api/jobs';
9
+ import { KnowledgeSDKError, APIError, AuthenticationError, NetworkError, RateLimitError, TimeoutError } from './errors';
10
+ export interface KnowledgeSDKOptions {
11
+ baseUrl?: string;
12
+ maxRetries?: number;
13
+ timeout?: number;
14
+ apiVersion?: string;
15
+ }
16
+ export declare class KnowledgeSDK {
17
+ /**
18
+ * The Extract resource — full pipeline extraction (sync and async)
19
+ */
20
+ readonly extract: Extract;
21
+ /**
22
+ * The Scrape resource — single-page scraping to Markdown
23
+ */
24
+ readonly scrape: Scrape;
25
+ /**
26
+ * The Classify resource — business classification from a URL
27
+ */
28
+ readonly classify: Classify;
29
+ /**
30
+ * The Screenshot resource — full-page screenshots as base64 PNG
31
+ */
32
+ readonly screenshot: Screenshot;
33
+ /**
34
+ * The Sitemap resource — URL discovery via sitemap crawling
35
+ */
36
+ readonly sitemap: Sitemap;
37
+ /**
38
+ * The Search resource — semantic search across indexed knowledge items
39
+ */
40
+ readonly search: Search;
41
+ /**
42
+ * The Webhooks resource — manage webhook endpoints
43
+ */
44
+ readonly webhooks: Webhooks;
45
+ /**
46
+ * The Jobs resource — retrieve and poll async job results
47
+ */
48
+ readonly jobs: Jobs;
49
+ private httpClient;
50
+ /**
51
+ * Create a new KnowledgeSDK client instance.
52
+ *
53
+ * @param apiKey Your KnowledgeSDK API key (must start with 'sk_ks_')
54
+ * @param options Optional configuration for the client
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * import { KnowledgeSDK } from '@knowledgesdk/node';
59
+ *
60
+ * const client = new KnowledgeSDK('sk_ks_your_api_key');
61
+ * ```
62
+ */
63
+ constructor(apiKey: string, options?: KnowledgeSDKOptions);
64
+ /**
65
+ * Set custom headers to be included with every request
66
+ * @param headers Record of header names and values
67
+ * @returns The KnowledgeSDK instance for chaining
68
+ */
69
+ setHeaders(headers: Record<string, string>): KnowledgeSDK;
70
+ /**
71
+ * Set a specific custom header
72
+ * @param name Header name
73
+ * @param value Header value
74
+ * @returns The KnowledgeSDK instance for chaining
75
+ */
76
+ setHeader(name: string, value: string): KnowledgeSDK;
77
+ /**
78
+ * Enable or disable debug mode.
79
+ * When enabled, all requests and responses will be logged to the console.
80
+ * @param enabled Whether debug mode should be enabled
81
+ * @returns The KnowledgeSDK instance for chaining
82
+ */
83
+ setDebugMode(enabled: boolean): KnowledgeSDK;
84
+ /**
85
+ * Set the API version to use for requests
86
+ * @param version API version string (e.g., 'v1', 'v2')
87
+ * @returns The KnowledgeSDK instance for chaining
88
+ */
89
+ setApiVersion(version: string): KnowledgeSDK;
90
+ }
91
+ export { KnowledgeSDKError, APIError, AuthenticationError, NetworkError, RateLimitError, TimeoutError, };
92
+ export { DEFAULT_BASE_URL, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT } from './constants';
93
+ export type { ExtractResult, ExtractOptions, ExtractAsyncOptions, ExtractAsyncResult, ExtractStreamOptions, ExtractStreamEvent, KnowledgeItem, BusinessProfile } from './api/extract';
94
+ export type { ScrapeResult } from './api/scrape';
95
+ export type { BusinessClassification } from './api/classify';
96
+ export type { ScreenshotResult } from './api/screenshot';
97
+ export type { SitemapResult } from './api/sitemap';
98
+ export type { SearchResult, SearchHit, SearchOptions } from './api/search';
99
+ export type { WebhookFull, WebhookCreateOptions } from './api/webhooks';
100
+ export type { JobResult, JobStatus, PollOptions } from './api/jobs';
package/dist/index.js ADDED
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_TIMEOUT = exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_BASE_URL = exports.TimeoutError = exports.RateLimitError = exports.NetworkError = exports.AuthenticationError = exports.APIError = exports.KnowledgeSDKError = exports.KnowledgeSDK = void 0;
4
+ const extract_1 = require("./api/extract");
5
+ const scrape_1 = require("./api/scrape");
6
+ const classify_1 = require("./api/classify");
7
+ const screenshot_1 = require("./api/screenshot");
8
+ const sitemap_1 = require("./api/sitemap");
9
+ const search_1 = require("./api/search");
10
+ const webhooks_1 = require("./api/webhooks");
11
+ const jobs_1 = require("./api/jobs");
12
+ const http_client_1 = require("./utils/http-client");
13
+ const errors_1 = require("./errors");
14
+ Object.defineProperty(exports, "KnowledgeSDKError", { enumerable: true, get: function () { return errors_1.KnowledgeSDKError; } });
15
+ Object.defineProperty(exports, "APIError", { enumerable: true, get: function () { return errors_1.APIError; } });
16
+ Object.defineProperty(exports, "AuthenticationError", { enumerable: true, get: function () { return errors_1.AuthenticationError; } });
17
+ Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return errors_1.NetworkError; } });
18
+ Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return errors_1.RateLimitError; } });
19
+ Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function () { return errors_1.TimeoutError; } });
20
+ const constants_1 = require("./constants");
21
+ class KnowledgeSDK {
22
+ /**
23
+ * Create a new KnowledgeSDK client instance.
24
+ *
25
+ * @param apiKey Your KnowledgeSDK API key (must start with 'sk_ks_')
26
+ * @param options Optional configuration for the client
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * import { KnowledgeSDK } from '@knowledgesdk/node';
31
+ *
32
+ * const client = new KnowledgeSDK('sk_ks_your_api_key');
33
+ * ```
34
+ */
35
+ constructor(apiKey, options = {}) {
36
+ var _a, _b;
37
+ if (!apiKey) {
38
+ throw new errors_1.AuthenticationError('API key is required', {
39
+ code: 'api_key_required',
40
+ });
41
+ }
42
+ if (!apiKey.startsWith('sk_ks_')) {
43
+ throw new errors_1.AuthenticationError('Invalid API key format. Keys must start with sk_ks_', { code: 'invalid_api_key_format' });
44
+ }
45
+ // Initialize the HTTP client
46
+ this.httpClient = new http_client_1.HttpClient(apiKey, options.baseUrl || constants_1.DEFAULT_BASE_URL, (_a = options.maxRetries) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_MAX_RETRIES, (_b = options.timeout) !== null && _b !== void 0 ? _b : constants_1.DEFAULT_TIMEOUT, options.apiVersion || constants_1.DEFAULT_API_VERSION);
47
+ // Initialize API resources
48
+ this.extract = new extract_1.Extract(this.httpClient);
49
+ this.scrape = new scrape_1.Scrape(this.httpClient);
50
+ this.classify = new classify_1.Classify(this.httpClient);
51
+ this.screenshot = new screenshot_1.Screenshot(this.httpClient);
52
+ this.sitemap = new sitemap_1.Sitemap(this.httpClient);
53
+ this.search = new search_1.Search(this.httpClient);
54
+ this.webhooks = new webhooks_1.Webhooks(this.httpClient);
55
+ this.jobs = new jobs_1.Jobs(this.httpClient);
56
+ }
57
+ /**
58
+ * Set custom headers to be included with every request
59
+ * @param headers Record of header names and values
60
+ * @returns The KnowledgeSDK instance for chaining
61
+ */
62
+ setHeaders(headers) {
63
+ this.httpClient.setHeaders(headers);
64
+ return this;
65
+ }
66
+ /**
67
+ * Set a specific custom header
68
+ * @param name Header name
69
+ * @param value Header value
70
+ * @returns The KnowledgeSDK instance for chaining
71
+ */
72
+ setHeader(name, value) {
73
+ this.httpClient.setHeader(name, value);
74
+ return this;
75
+ }
76
+ /**
77
+ * Enable or disable debug mode.
78
+ * When enabled, all requests and responses will be logged to the console.
79
+ * @param enabled Whether debug mode should be enabled
80
+ * @returns The KnowledgeSDK instance for chaining
81
+ */
82
+ setDebugMode(enabled) {
83
+ this.httpClient.setDebugMode(enabled);
84
+ return this;
85
+ }
86
+ /**
87
+ * Set the API version to use for requests
88
+ * @param version API version string (e.g., 'v1', 'v2')
89
+ * @returns The KnowledgeSDK instance for chaining
90
+ */
91
+ setApiVersion(version) {
92
+ this.httpClient.setApiVersion(version);
93
+ return this;
94
+ }
95
+ }
96
+ exports.KnowledgeSDK = KnowledgeSDK;
97
+ // Re-export constants
98
+ var constants_2 = require("./constants");
99
+ Object.defineProperty(exports, "DEFAULT_BASE_URL", { enumerable: true, get: function () { return constants_2.DEFAULT_BASE_URL; } });
100
+ Object.defineProperty(exports, "DEFAULT_MAX_RETRIES", { enumerable: true, get: function () { return constants_2.DEFAULT_MAX_RETRIES; } });
101
+ Object.defineProperty(exports, "DEFAULT_TIMEOUT", { enumerable: true, get: function () { return constants_2.DEFAULT_TIMEOUT; } });
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,yCAAsC;AACtC,6CAA0C;AAC1C,iDAA8C;AAC9C,2CAAwC;AACxC,yCAAsC;AACtC,6CAA0C;AAC1C,qCAAkC;AAClC,qDAAiD;AACjD,qCAOkB;AAiJhB,kGAvJA,0BAAiB,OAuJA;AACjB,yFAvJA,iBAAQ,OAuJA;AACR,oGAvJA,4BAAmB,OAuJA;AACnB,6FAvJA,qBAAY,OAuJA;AACZ,+FAvJA,uBAAc,OAuJA;AACd,6FAvJA,qBAAY,OAuJA;AArJd,2CAA0G;AAS1G,MAAa,YAAY;IA2CvB;;;;;;;;;;;;OAYG;IACH,YAAY,MAAc,EAAE,UAA+B,EAAE;;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,4BAAmB,CAAC,qBAAqB,EAAE;gBACnD,IAAI,EAAE,kBAAkB;aACzB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,4BAAmB,CAC3B,qDAAqD,EACrD,EAAE,IAAI,EAAE,wBAAwB,EAAE,CACnC,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAC9B,MAAM,EACN,OAAO,CAAC,OAAO,IAAI,4BAAgB,EACnC,MAAA,OAAO,CAAC,UAAU,mCAAI,+BAAmB,EACzC,MAAA,OAAO,CAAC,OAAO,mCAAI,2BAAe,EAClC,OAAO,CAAC,UAAU,IAAI,+BAAmB,CAC1C,CAAC;QAEF,2BAA2B;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,OAA+B;QACxC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAY,EAAE,KAAa;QACnC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,OAAgB;QAC3B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,OAAe;QAC3B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnID,oCAmIC;AAYD,sBAAsB;AACtB,yCAAqF;AAA5E,6GAAA,gBAAgB,OAAA;AAAE,gHAAA,mBAAmB,OAAA;AAAE,4GAAA,eAAe,OAAA"}
package/dist/index.mjs ADDED
@@ -0,0 +1,2 @@
1
+ import t from"cross-fetch";class e{constructor(t){this.httpClient=t}async run(t,e){return this.httpClient.post("/extract",{url:t,...e})}async runAsync(t,e){return this.httpClient.post("/extract/async",{url:t,...e})}async*runStream(t,e){yield*this.httpClient.streamPost("/extract/stream",{url:t,...e})}}class s{constructor(t){this.httpClient=t}async run(t){return this.httpClient.post("/scrape",{url:t})}}class r{constructor(t){this.httpClient=t}async run(t){return this.httpClient.post("/classify",{url:t})}}class n{constructor(t){this.httpClient=t}async run(t){return this.httpClient.post("/screenshot",{url:t})}}class o{constructor(t){this.httpClient=t}async run(t){return this.httpClient.post("/sitemap",{url:t})}}class a{constructor(t){this.httpClient=t}async run(t,e){return this.httpClient.post("/search",{query:t,...e})}}class i{constructor(t){this.httpClient=t}async create(t){return this.httpClient.post("/webhooks",t)}async list(){return this.httpClient.get("/webhooks")}async delete(t){return this.httpClient.delete(`/webhooks/${t}`)}async test(t){return this.httpClient.post(`/webhooks/${t}/test`)}}class c extends Error{constructor(t,e={}){super(t),this.name="KnowledgeSDKError",this.code=e.code,this.statusCode=e.statusCode,this.requestId=e.requestId,this.cause=e.cause,this.data=e.data}}class l extends c{constructor(t,e={}){super(t,e),this.name="APIError"}}class h extends c{constructor(t,e={}){super(t,e),this.name="AuthenticationError"}}class u extends c{constructor(t,e={}){super(t,e),this.name="NetworkError"}}class d extends c{constructor(t,e={}){super(t,e),this.name="RateLimitError",this.retryAfter="number"==typeof e.retryAfter?e.retryAfter:void 0}}class p extends c{constructor(t,e={}){super(t,e),this.name="TimeoutError"}}class m{constructor(t){this.httpClient=t}async get(t){return this.httpClient.get(`/jobs/${t}`)}async poll(t,e){var s,r;const n=null!==(s=null==e?void 0:e.intervalMs)&&void 0!==s?s:2e3,o=null!==(r=null==e?void 0:e.timeoutMs)&&void 0!==r?r:12e4,a=Date.now();for(;;){const e=await this.get(t);if("completed"===e.status||"failed"===e.status)return e;if(Date.now()-a+n>=o)throw new p(`Job ${t} did not complete within ${o}ms. Last status: ${e.status}`,{code:"job_timeout",data:{jobId:t,status:e.status}});await new Promise(t=>setTimeout(t,n))}}}const y="https://api.knowledgesdk.com",w=3,f=3e4;function g(t){let e,s,r,n=!1;return function(o){void 0===e?(e=o,s=0,r=-1):e=function(t,e){const s=new Uint8Array(t.length+e.length);return s.set(t),s.set(e,t.length),s}(e,o);const a=e.length;let i=0;for(;s<a;){n&&(10===e[s]&&(i=++s),n=!1);let o=-1;for(;s<a&&-1===o;++s)switch(e[s]){case 58:-1===r&&(r=s-i);break;case 13:n=!0;case 10:o=s}if(-1===o)break;t(e.subarray(i,o),r),i=s,r=-1}i===a?e=void 0:0!==i&&(e=e.subarray(i),s-=i)}}var b=function(t,e){var s={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(s[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(t);n<r.length;n++)e.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(t,r[n])&&(s[r[n]]=t[r[n]])}return s};const v="text/event-stream",C="last-event-id";function E(t,e){var{signal:s,headers:r,onopen:n,onmessage:o,onclose:a,onerror:i,openWhenHidden:c,fetch:l}=e,h=b(e,["signal","headers","onopen","onmessage","onclose","onerror","openWhenHidden","fetch"]);return new Promise((e,u)=>{const d=Object.assign({},r);let p;function m(){p.abort(),document.hidden||x()}d.accept||(d.accept=v),c||document.addEventListener("visibilitychange",m);let y=1e3,w=0;function f(){document.removeEventListener("visibilitychange",m),window.clearTimeout(w),p.abort()}null==s||s.addEventListener("abort",()=>{f(),e()});const b=null!=l?l:window.fetch,E=null!=n?n:k;async function x(){var s;p=new AbortController;try{const s=await b(t,Object.assign(Object.assign({},h),{headers:d,signal:p.signal}));await E(s),await async function(t,e){const s=t.getReader();let r;for(;!(r=await s.read()).done;)e(r.value)}(s.body,g(function(t,e,s){let r={data:"",event:"",id:"",retry:void 0};const n=new TextDecoder;return function(o,a){if(0===o.length)null==s||s(r),r={data:"",event:"",id:"",retry:void 0};else if(a>0){const s=n.decode(o.subarray(0,a)),i=a+(32===o[a+1]?2:1),c=n.decode(o.subarray(i));switch(s){case"data":r.data=r.data?r.data+"\n"+c:c;break;case"event":r.event=c;break;case"id":t(r.id=c);break;case"retry":const s=parseInt(c,10);isNaN(s)||e(r.retry=s)}}}}(t=>{t?d[C]=t:delete d[C]},t=>{y=t},o))),null==a||a(),f(),e()}catch(t){if(!p.signal.aborted)try{const e=null!==(s=null==i?void 0:i(t))&&void 0!==s?s:y;window.clearTimeout(w),w=window.setTimeout(x,e)}catch(t){f(),u(t)}}}x()})}function k(t){const e=t.headers.get("content-type");if(!(null==e?void 0:e.startsWith(v)))throw new Error(`Expected content-type to be ${v}, Actual: ${e}`)}class x{constructor(t,e="https://api.knowledgesdk.com",s=3,r=3e4,n="v1"){this.customHeaders={},this.debugMode=!1,this.apiKey=t,this.baseUrl=e,this.defaultMaxRetries=s,this.defaultTimeout=r,this.apiVersion=n}setHeaders(t){return this.customHeaders={...this.customHeaders,...t},this}setHeader(t,e){return this.customHeaders[t]=e,this}setDebugMode(t){return this.debugMode=t,this}setApiVersion(t){return this.apiVersion=t,this}createUrl(t,e){const s=t.startsWith("/")?`/${this.apiVersion}${t}`:`/${this.apiVersion}/${t}`,r=new URL(s,this.baseUrl);return e&&Object.entries(e).forEach(([t,e])=>{Array.isArray(e)?e.forEach(e=>r.searchParams.append(t,e)):null!=e&&r.searchParams.append(t,String(e))}),r.toString()}getHeaders(){return{"x-api-key":this.apiKey,"Content-Type":"application/json","User-Agent":"KnowledgeSDK Node SDK v0.1.0",Accept:"application/json",...this.customHeaders}}calculateBackoff(t,e){const s=e*Math.pow(4,t)*(.8+.4*Math.random());return Math.min(s,3e4)}async request(e,s={}){const{method:r="GET",headers:n={},params:o,data:a,maxRetries:i=this.defaultMaxRetries,retryCount:m=0,retryDelay:y=100,timeout:w=this.defaultTimeout}=s,f=this.createUrl(e,o);let g;const b=new Promise((t,e)=>{g=setTimeout(()=>{e(new p(`Request timed out after ${w}ms`,{code:"timeout"}))},w)});try{const s={...this.getHeaders(),...n},c={method:r,headers:s};"GET"!==r&&void 0!==a&&(c.body=JSON.stringify(a)),this.debugMode&&(console.log(`[KNOWLEDGESDK] Request: ${r} ${f}`),console.log("[KNOWLEDGESDK] Headers:",s),a&&console.log("[KNOWLEDGESDK] Body:",JSON.stringify(a,null,2)));const u=await Promise.race([t(f,c),b]);g&&clearTimeout(g);const p=u.headers.get("x-request-id");let v;const C=u.headers.get("content-type");if(v=C&&C.includes("application/json")?await u.json():await u.text(),this.debugMode&&(console.log(`[KNOWLEDGESDK] Response: ${u.status}`),console.log("[KNOWLEDGESDK] Response body:","string"==typeof v?v:JSON.stringify(v,null,2))),429===u.status){if(m<i){const t=this.calculateBackoff(m,y);return this.debugMode&&console.log(`[KNOWLEDGESDK] Rate limited, retrying in ${t}ms (attempt ${m+1}/${i})`),await new Promise(e=>setTimeout(e,t)),this.request(e,{method:r,headers:n,params:o,data:a,maxRetries:i,retryCount:m+1,retryDelay:y,timeout:w})}throw new d("Rate limit exceeded",{statusCode:u.status,requestId:p||void 0})}if(401===u.status)throw new h("Invalid API key",{statusCode:u.status,code:"invalid_api_key",requestId:p||void 0});if(u.status>=500){if(m<i){const t=this.calculateBackoff(m,y);return this.debugMode&&console.log(`[KNOWLEDGESDK] Server error, retrying in ${t}ms (attempt ${m+1}/${i})`),await new Promise(e=>setTimeout(e,t)),this.request(e,{method:r,headers:n,params:o,data:a,maxRetries:i,retryCount:m+1,retryDelay:y,timeout:w})}throw new l(`Server error: ${u.status}`,{statusCode:u.status,code:"server_error",requestId:p||void 0,data:v})}if(!u.ok){let t=`API error: ${u.status}`,e="api_error";throw v&&"object"==typeof v&&(t=v.message||v.error||t,e=v.code||e),new l(t,{statusCode:u.status,code:e,requestId:p||void 0,data:v})}return v}catch(t){if(g&&clearTimeout(g),t instanceof c)throw t;if(t instanceof p)throw t;if("TypeError"===t.name&&t.message.includes("fetch"))throw new u("Network error",{code:"network_error",data:t.message});throw new c("Unexpected error",{code:"unexpected_error",data:t})}}async get(t,e){return this.request(t,{method:"GET",...e})}async post(t,e,s){return this.request(t,{method:"POST",data:e,...s})}async put(t,e,s){return this.request(t,{method:"PUT",data:e,...s})}async patch(t,e,s){return this.request(t,{method:"PATCH",data:e,...s})}async delete(t,e){return this.request(t,{method:"DELETE",...e})}async*streamPost(t,e){const s=this.createUrl(t),r={...this.getHeaders(),Accept:"text/event-stream","Content-Type":"application/json"},n=[];let o=null,a=!1,i=null;const c=new AbortController,h=t=>{a=!0,i=null!=t?t:null,null==o||o(),o=null};E(s,{method:"POST",headers:r,body:JSON.stringify(e),signal:c.signal,async onopen(t){if(!t.ok){const e=await t.text().catch(()=>"");let s={};try{s=JSON.parse(e)}catch{}throw new l(s.message||`Stream failed: ${t.status}`,{statusCode:t.status,code:"stream_error",data:s})}},onmessage(t){var e;if(t.data)try{const s=JSON.parse(t.data);e={type:t.event||"message",...s},n.push(e),null==o||o(),o=null}catch{}},onclose(){h()},onerror(t){throw h(t instanceof Error?t:new Error(String(t))),t}}).catch(t=>{a||h(t instanceof Error?t:new Error(String(t)))});try{for(;!a||n.length>0;)n.length>0?yield n.shift():await new Promise(t=>{o=t})}finally{c.abort()}if(i)throw i}}class O{constructor(t,c={}){var l,u;if(!t)throw new h("API key is required",{code:"api_key_required"});if(!t.startsWith("sk_ks_"))throw new h("Invalid API key format. Keys must start with sk_ks_",{code:"invalid_api_key_format"});this.httpClient=new x(t,c.baseUrl||y,null!==(l=c.maxRetries)&&void 0!==l?l:3,null!==(u=c.timeout)&&void 0!==u?u:3e4,c.apiVersion||"v1"),this.extract=new e(this.httpClient),this.scrape=new s(this.httpClient),this.classify=new r(this.httpClient),this.screenshot=new n(this.httpClient),this.sitemap=new o(this.httpClient),this.search=new a(this.httpClient),this.webhooks=new i(this.httpClient),this.jobs=new m(this.httpClient)}setHeaders(t){return this.httpClient.setHeaders(t),this}setHeader(t,e){return this.httpClient.setHeader(t,e),this}setDebugMode(t){return this.httpClient.setDebugMode(t),this}setApiVersion(t){return this.httpClient.setApiVersion(t),this}}export{l as APIError,h as AuthenticationError,y as DEFAULT_BASE_URL,w as DEFAULT_MAX_RETRIES,f as DEFAULT_TIMEOUT,O as KnowledgeSDK,c as KnowledgeSDKError,u as NetworkError,d as RateLimitError,p as TimeoutError};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/api/extract.ts","../../src/api/scrape.ts","../../src/api/classify.ts","../../src/api/screenshot.ts","../../src/api/sitemap.ts","../../src/api/search.ts","../../src/api/webhooks.ts","../../src/errors.ts","../../src/api/jobs.ts","../../src/constants.ts","../node_modules/@microsoft/fetch-event-source/lib/esm/parse.js","../node_modules/@microsoft/fetch-event-source/lib/esm/fetch.js","../../src/utils/http-client.ts","../../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,"export async function getBytes(stream, onChunk) {\r\n const reader = stream.getReader();\r\n let result;\r\n while (!(result = await reader.read()).done) {\r\n onChunk(result.value);\r\n }\r\n}\r\nexport function getLines(onLine) {\r\n let buffer;\r\n let position;\r\n let fieldLength;\r\n let discardTrailingNewline = false;\r\n return function onChunk(arr) {\r\n if (buffer === undefined) {\r\n buffer = arr;\r\n position = 0;\r\n fieldLength = -1;\r\n }\r\n else {\r\n buffer = concat(buffer, arr);\r\n }\r\n const bufLength = buffer.length;\r\n let lineStart = 0;\r\n while (position < bufLength) {\r\n if (discardTrailingNewline) {\r\n if (buffer[position] === 10) {\r\n lineStart = ++position;\r\n }\r\n discardTrailingNewline = false;\r\n }\r\n let lineEnd = -1;\r\n for (; position < bufLength && lineEnd === -1; ++position) {\r\n switch (buffer[position]) {\r\n case 58:\r\n if (fieldLength === -1) {\r\n fieldLength = position - lineStart;\r\n }\r\n break;\r\n case 13:\r\n discardTrailingNewline = true;\r\n case 10:\r\n lineEnd = position;\r\n break;\r\n }\r\n }\r\n if (lineEnd === -1) {\r\n break;\r\n }\r\n onLine(buffer.subarray(lineStart, lineEnd), fieldLength);\r\n lineStart = position;\r\n fieldLength = -1;\r\n }\r\n if (lineStart === bufLength) {\r\n buffer = undefined;\r\n }\r\n else if (lineStart !== 0) {\r\n buffer = buffer.subarray(lineStart);\r\n position -= lineStart;\r\n }\r\n };\r\n}\r\nexport function getMessages(onId, onRetry, onMessage) {\r\n let message = newMessage();\r\n const decoder = new TextDecoder();\r\n return function onLine(line, fieldLength) {\r\n if (line.length === 0) {\r\n onMessage === null || onMessage === void 0 ? void 0 : onMessage(message);\r\n message = newMessage();\r\n }\r\n else if (fieldLength > 0) {\r\n const field = decoder.decode(line.subarray(0, fieldLength));\r\n const valueOffset = fieldLength + (line[fieldLength + 1] === 32 ? 2 : 1);\r\n const value = decoder.decode(line.subarray(valueOffset));\r\n switch (field) {\r\n case 'data':\r\n message.data = message.data\r\n ? message.data + '\\n' + value\r\n : value;\r\n break;\r\n case 'event':\r\n message.event = value;\r\n break;\r\n case 'id':\r\n onId(message.id = value);\r\n break;\r\n case 'retry':\r\n const retry = parseInt(value, 10);\r\n if (!isNaN(retry)) {\r\n onRetry(message.retry = retry);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n}\r\nfunction concat(a, b) {\r\n const res = new Uint8Array(a.length + b.length);\r\n res.set(a);\r\n res.set(b, a.length);\r\n return res;\r\n}\r\nfunction newMessage() {\r\n return {\r\n data: '',\r\n event: '',\r\n id: '',\r\n retry: undefined,\r\n };\r\n}\r\n//# sourceMappingURL=parse.js.map","var __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nimport { getBytes, getLines, getMessages } from './parse';\r\nexport const EventStreamContentType = 'text/event-stream';\r\nconst DefaultRetryInterval = 1000;\r\nconst LastEventId = 'last-event-id';\r\nexport function fetchEventSource(input, _a) {\r\n var { signal: inputSignal, headers: inputHeaders, onopen: inputOnOpen, onmessage, onclose, onerror, openWhenHidden, fetch: inputFetch } = _a, rest = __rest(_a, [\"signal\", \"headers\", \"onopen\", \"onmessage\", \"onclose\", \"onerror\", \"openWhenHidden\", \"fetch\"]);\r\n return new Promise((resolve, reject) => {\r\n const headers = Object.assign({}, inputHeaders);\r\n if (!headers.accept) {\r\n headers.accept = EventStreamContentType;\r\n }\r\n let curRequestController;\r\n function onVisibilityChange() {\r\n curRequestController.abort();\r\n if (!document.hidden) {\r\n create();\r\n }\r\n }\r\n if (!openWhenHidden) {\r\n document.addEventListener('visibilitychange', onVisibilityChange);\r\n }\r\n let retryInterval = DefaultRetryInterval;\r\n let retryTimer = 0;\r\n function dispose() {\r\n document.removeEventListener('visibilitychange', onVisibilityChange);\r\n window.clearTimeout(retryTimer);\r\n curRequestController.abort();\r\n }\r\n inputSignal === null || inputSignal === void 0 ? void 0 : inputSignal.addEventListener('abort', () => {\r\n dispose();\r\n resolve();\r\n });\r\n const fetch = inputFetch !== null && inputFetch !== void 0 ? inputFetch : window.fetch;\r\n const onopen = inputOnOpen !== null && inputOnOpen !== void 0 ? inputOnOpen : defaultOnOpen;\r\n async function create() {\r\n var _a;\r\n curRequestController = new AbortController();\r\n try {\r\n const response = await fetch(input, Object.assign(Object.assign({}, rest), { headers, signal: curRequestController.signal }));\r\n await onopen(response);\r\n await getBytes(response.body, getLines(getMessages(id => {\r\n if (id) {\r\n headers[LastEventId] = id;\r\n }\r\n else {\r\n delete headers[LastEventId];\r\n }\r\n }, retry => {\r\n retryInterval = retry;\r\n }, onmessage)));\r\n onclose === null || onclose === void 0 ? void 0 : onclose();\r\n dispose();\r\n resolve();\r\n }\r\n catch (err) {\r\n if (!curRequestController.signal.aborted) {\r\n try {\r\n const interval = (_a = onerror === null || onerror === void 0 ? void 0 : onerror(err)) !== null && _a !== void 0 ? _a : retryInterval;\r\n window.clearTimeout(retryTimer);\r\n retryTimer = window.setTimeout(create, interval);\r\n }\r\n catch (innerErr) {\r\n dispose();\r\n reject(innerErr);\r\n }\r\n }\r\n }\r\n }\r\n create();\r\n });\r\n}\r\nfunction defaultOnOpen(response) {\r\n const contentType = response.headers.get('content-type');\r\n if (!(contentType === null || contentType === void 0 ? void 0 : contentType.startsWith(EventStreamContentType))) {\r\n throw new Error(`Expected content-type to be ${EventStreamContentType}, Actual: ${contentType}`);\r\n }\r\n}\r\n//# sourceMappingURL=fetch.js.map",null,null],"names":["Extract","constructor","httpClient","this","run","url","options","post","runAsync","runStream","streamPost","Scrape","Classify","Screenshot","Sitemap","Search","query","Webhooks","create","list","get","webhookId","delete","test","KnowledgeSDKError","Error","message","super","name","code","statusCode","requestId","cause","data","APIError","AuthenticationError","NetworkError","RateLimitError","retryAfter","undefined","TimeoutError","Jobs","jobId","poll","intervalMs","_a","timeoutMs","_b","startTime","Date","now","job","status","Promise","resolve","setTimeout","DEFAULT_BASE_URL","DEFAULT_MAX_RETRIES","DEFAULT_TIMEOUT","getLines","onLine","buffer","position","fieldLength","discardTrailingNewline","arr","a","b","res","Uint8Array","length","set","concat","bufLength","lineStart","lineEnd","subarray","__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","propertyIsEnumerable","EventStreamContentType","LastEventId","fetchEventSource","input","signal","inputSignal","headers","inputHeaders","onopen","inputOnOpen","onmessage","onclose","onerror","openWhenHidden","fetch","inputFetch","rest","reject","assign","curRequestController","onVisibilityChange","abort","document","hidden","accept","addEventListener","retryInterval","retryTimer","dispose","removeEventListener","window","clearTimeout","defaultOnOpen","async","AbortController","response","stream","onChunk","reader","getReader","result","read","done","value","getBytes","body","onId","onRetry","onMessage","event","id","retry","decoder","TextDecoder","line","field","decode","valueOffset","parseInt","isNaN","getMessages","err","aborted","interval","innerErr","contentType","startsWith","HttpClient","apiKey","baseUrl","maxRetries","timeout","apiVersion","customHeaders","debugMode","defaultMaxRetries","defaultTimeout","setHeaders","setHeader","setDebugMode","enabled","setApiVersion","version","createUrl","path","params","versionedPath","URL","entries","forEach","key","Array","isArray","v","searchParams","append","String","toString","getHeaders","Accept","calculateBackoff","retryCount","retryDelay","withJitter","Math","pow","random","min","request","method","timeoutId","timeoutPromise","_","requestHeaders","requestOptions","JSON","stringify","console","log","race","responseData","includes","json","text","nextDelay","ok","errorMessage","errorCode","error","put","patch","queue","waitResolve","streamError","controller","finish","catch","parse","ev","item","parsed","type","push","shift","r","KnowledgeSDK","extract","scrape","classify","screenshot","sitemap","search","webhooks","jobs"],"mappings":"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","x_google_ignoreList":[10,11]}
@@ -0,0 +1,62 @@
1
+ type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
2
+ export interface RequestOptions {
3
+ method?: HttpMethod;
4
+ headers?: Record<string, string>;
5
+ params?: Record<string, any>;
6
+ data?: any;
7
+ maxRetries?: number;
8
+ retryCount?: number;
9
+ retryDelay?: number;
10
+ timeout?: number;
11
+ }
12
+ export declare class HttpClient {
13
+ private apiKey;
14
+ private baseUrl;
15
+ private apiVersion;
16
+ private defaultMaxRetries;
17
+ private defaultTimeout;
18
+ private customHeaders;
19
+ private debugMode;
20
+ constructor(apiKey: string, baseUrl?: string, maxRetries?: number, timeout?: number, apiVersion?: string);
21
+ /**
22
+ * Set custom headers to be included with every request
23
+ * @param headers Record of header names and values
24
+ * @returns The HttpClient instance for chaining
25
+ */
26
+ setHeaders(headers: Record<string, string>): HttpClient;
27
+ /**
28
+ * Set a specific custom header
29
+ * @param name Header name
30
+ * @param value Header value
31
+ * @returns The HttpClient instance for chaining
32
+ */
33
+ setHeader(name: string, value: string): HttpClient;
34
+ /**
35
+ * Enable or disable debug mode
36
+ * When enabled, requests and responses will be logged to console
37
+ * @param enabled Whether debug mode should be enabled
38
+ * @returns The HttpClient instance for chaining
39
+ */
40
+ setDebugMode(enabled: boolean): HttpClient;
41
+ /**
42
+ * Set the API version to use for requests
43
+ * @param version API version string (e.g., 'v1', 'v2', etc.)
44
+ * @returns The HttpClient instance for chaining
45
+ */
46
+ setApiVersion(version: string): HttpClient;
47
+ private createUrl;
48
+ private getHeaders;
49
+ private calculateBackoff;
50
+ request<T = any>(path: string, options?: RequestOptions): Promise<T>;
51
+ get<T = any>(path: string, options?: Omit<RequestOptions, 'method'>): Promise<T>;
52
+ post<T = any>(path: string, data?: any, options?: Omit<RequestOptions, 'method' | 'data'>): Promise<T>;
53
+ put<T = any>(path: string, data?: any, options?: Omit<RequestOptions, 'method' | 'data'>): Promise<T>;
54
+ patch<T = any>(path: string, data?: any, options?: Omit<RequestOptions, 'method' | 'data'>): Promise<T>;
55
+ delete<T = any>(path: string, options?: Omit<RequestOptions, 'method'>): Promise<T>;
56
+ /**
57
+ * POST to a server-sent events endpoint and yield typed events as an async generator.
58
+ * Requires Node.js 18+ (or a runtime with native fetch support).
59
+ */
60
+ streamPost<T = any>(path: string, data?: any): AsyncGenerator<T>;
61
+ }
62
+ export {};