@scrapyio/sdk 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.
- package/README.md +140 -0
- package/dist/client.d.ts +25 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +65 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +21 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +93 -0
- package/dist/errors.js.map +1 -0
- package/dist/execution.d.ts +15 -0
- package/dist/execution.d.ts.map +1 -0
- package/dist/execution.js +117 -0
- package/dist/execution.js.map +1 -0
- package/dist/generated/client.d.ts +15 -0
- package/dist/generated/client.d.ts.map +1 -0
- package/dist/generated/client.js +15 -0
- package/dist/generated/client.js.map +1 -0
- package/dist/generated/schema.d.ts +762 -0
- package/dist/generated/schema.d.ts.map +1 -0
- package/dist/generated/schema.js +6 -0
- package/dist/generated/schema.js.map +1 -0
- package/dist/http.d.ts +15 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +69 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/pagination.d.ts +20 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +13 -0
- package/dist/pagination.js.map +1 -0
- package/dist/platform.d.ts +9 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +28 -0
- package/dist/platform.js.map +1 -0
- package/dist/run.d.ts +32 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +73 -0
- package/dist/run.js.map +1 -0
- package/dist/runs.d.ts +19 -0
- package/dist/runs.d.ts.map +1 -0
- package/dist/runs.js +33 -0
- package/dist/runs.js.map +1 -0
- package/dist/schedules.d.ts +22 -0
- package/dist/schedules.d.ts.map +1 -0
- package/dist/schedules.js +62 -0
- package/dist/schedules.js.map +1 -0
- package/dist/tool.d.ts +28 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +49 -0
- package/dist/tool.js.map +1 -0
- package/dist/tools.d.ts +21 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +35 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/package.json +51 -0
package/dist/tool.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;;GAIG;AACH,MAAM,OAAO,UAAU;IAKF;IACA;IALV,SAAS,CAAS;IAClB,IAAI,CAAS;IAEtB,YACmB,QAAwB,EACxB,SAA2B,EAC5C,GAAW;QAFM,aAAQ,GAAR,QAAQ,CAAgB;QACxB,cAAS,GAAT,SAAS,CAAkB;QAG5C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,4EAA4E;IAC5E,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,GAAG,MAAM,eAAe,CAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,2BAA2B,EAAE;YAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;SACjE,CAAC,EACF,oBAAoB,CACrB,CAAC;QACF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,KAAiB;QAC1B,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,KAAiB;QAC3B,MAAM,GAAG,GAAG,MAAM,YAAY,CAC5B,IAAI,CAAC,SAAS,EACd,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAC7C,KAAK,CACN,CAAC;QACF,OAAO;YACL,GAAG,GAAG;YACN,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC;CACF"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { PlatformClient } from './generated/client.js';
|
|
2
|
+
import { type Page } from './pagination.js';
|
|
3
|
+
import type { Tool, ToolSummary } from './types.js';
|
|
4
|
+
export type ListToolsParams = {
|
|
5
|
+
q?: string;
|
|
6
|
+
social?: string;
|
|
7
|
+
leads?: string;
|
|
8
|
+
searchSeo?: string;
|
|
9
|
+
ecommerce?: string;
|
|
10
|
+
feature?: string;
|
|
11
|
+
sort?: string;
|
|
12
|
+
offset?: number;
|
|
13
|
+
limit?: number;
|
|
14
|
+
};
|
|
15
|
+
export declare class ToolsResource {
|
|
16
|
+
private readonly client;
|
|
17
|
+
constructor(client: PlatformClient);
|
|
18
|
+
list(params?: ListToolsParams): Promise<Page<ToolSummary>>;
|
|
19
|
+
get(publisher: string, slug: string): Promise<Tool>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAgC,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAE7C,IAAI,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAsB9D,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAW1D"}
|
package/dist/tools.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { platformRequest } from './platform.js';
|
|
2
|
+
import { unwrapCollection, unwrapData } from './pagination.js';
|
|
3
|
+
export class ToolsResource {
|
|
4
|
+
client;
|
|
5
|
+
constructor(client) {
|
|
6
|
+
this.client = client;
|
|
7
|
+
}
|
|
8
|
+
async list(params = {}) {
|
|
9
|
+
const data = await platformRequest(this.client.GET('/tools', {
|
|
10
|
+
params: {
|
|
11
|
+
query: {
|
|
12
|
+
q: params.q,
|
|
13
|
+
social: params.social,
|
|
14
|
+
leads: params.leads,
|
|
15
|
+
searchSeo: params.searchSeo,
|
|
16
|
+
ecommerce: params.ecommerce,
|
|
17
|
+
feature: params.feature,
|
|
18
|
+
sort: params.sort,
|
|
19
|
+
offset: params.offset,
|
|
20
|
+
limit: params.limit,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
}), 'Failed to list tools');
|
|
24
|
+
return unwrapCollection(data);
|
|
25
|
+
}
|
|
26
|
+
async get(publisher, slug) {
|
|
27
|
+
const data = await platformRequest(this.client.GET('/tools/{publisher}/{slug}', {
|
|
28
|
+
params: {
|
|
29
|
+
path: { publisher, slug },
|
|
30
|
+
},
|
|
31
|
+
}), 'Failed to get tool');
|
|
32
|
+
return unwrapData(data);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAe1E,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,KAAK,CAAC,IAAI,CAAC,SAA0B,EAAE;QACrC,MAAM,IAAI,GAAG,MAAM,eAAe,CAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;YACxB,MAAM,EAAE;gBACN,KAAK,EAAE;oBACL,CAAC,EAAE,MAAM,CAAC,CAAC;oBACX,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB;aACF;SACF,CAAC,EACF,sBAAsB,CACvB,CAAC;QACF,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,IAAY;QACvC,MAAM,IAAI,GAAG,MAAM,eAAe,CAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE;YAC3C,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;aAC1B;SACF,CAAC,EACF,oBAAoB,CACrB,CAAC;QACF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { components } from './generated/schema.js';
|
|
2
|
+
export type JsonObject = Record<string, unknown>;
|
|
3
|
+
export type ToolSummary = components['schemas']['ToolSummary'];
|
|
4
|
+
export type Tool = components['schemas']['Tool'];
|
|
5
|
+
export type Run = components['schemas']['Run'];
|
|
6
|
+
export type RunStatus = components['schemas']['RunStatus'];
|
|
7
|
+
export type RunKind = components['schemas']['RunKind'];
|
|
8
|
+
export type Schedule = components['schemas']['Schedule'];
|
|
9
|
+
export type CreateScheduleRequest = components['schemas']['CreateScheduleRequest'];
|
|
10
|
+
export type UpdateScheduleRequest = components['schemas']['UpdateScheduleRequest'];
|
|
11
|
+
export type DatasetItem = components['schemas']['DatasetItem'];
|
|
12
|
+
export type ToolExecution = components['schemas']['ToolExecution'];
|
|
13
|
+
/** Public statuses considered terminal for wait(). */
|
|
14
|
+
export declare const TERMINAL_RUN_STATUSES: ReadonlySet<RunStatus>;
|
|
15
|
+
export declare function isTerminalRunStatus(status: string | undefined): status is RunStatus;
|
|
16
|
+
export type ScrapyIOOptions = {
|
|
17
|
+
apiKey: string;
|
|
18
|
+
/** Platform API base including `/v1`. Default `https://api.scrapy.io/v1`. */
|
|
19
|
+
baseUrl?: string;
|
|
20
|
+
/** Override fetch (tests). */
|
|
21
|
+
fetch?: typeof globalThis.fetch;
|
|
22
|
+
/** Max GET retries for transient failures. Default 2 (3 total attempts). */
|
|
23
|
+
maxRetries?: number;
|
|
24
|
+
/** Initial retry backoff in ms. Default 250. */
|
|
25
|
+
retryBackoffMs?: number;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAC/D,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AACjD,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AACvD,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;AACzD,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AACnF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AACnF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;AAEnE,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,SAAS,CAKvD,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,IAAI,SAAS,CAEnF;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Public statuses considered terminal for wait(). */
|
|
2
|
+
export const TERMINAL_RUN_STATUSES = new Set([
|
|
3
|
+
'succeeded',
|
|
4
|
+
'partial',
|
|
5
|
+
'failed',
|
|
6
|
+
'cancelled',
|
|
7
|
+
]);
|
|
8
|
+
export function isTerminalRunStatus(status) {
|
|
9
|
+
return status === 'succeeded' || status === 'partial' || status === 'failed' || status === 'cancelled';
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAeA,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAA2B,IAAI,GAAG,CAAC;IACnE,WAAW;IACX,SAAS;IACT,QAAQ;IACR,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAAC;AACzG,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@scrapyio/sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Official TypeScript/JavaScript SDK for the Scrapy.io Platform API and publisher execution APIs",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"README.md"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"generate": "openapi-typescript ../../docsscrapyio/openapi/platform-v1.yaml -o src/generated/schema.ts && node ./scripts/write-client.mjs",
|
|
20
|
+
"lint:openapi": "npx --yes @redocly/cli@1.34.3 lint ../../docsscrapyio/openapi/platform-v1.yaml",
|
|
21
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
22
|
+
"build": "tsc -p tsconfig.json",
|
|
23
|
+
"test": "node --import tsx --test \"test/sdk.test.ts\"",
|
|
24
|
+
"test:integration": "node --import tsx --test \"test/integration.test.ts\"",
|
|
25
|
+
"check": "npm run lint:openapi && npm run generate && npm run typecheck && npm run test",
|
|
26
|
+
"bootstrap:env": "npx tsx scripts/bootstrap-integration-env.ts",
|
|
27
|
+
"pack:dry": "npm run build && npm pack --dry-run"
|
|
28
|
+
},
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=18"
|
|
31
|
+
},
|
|
32
|
+
"keywords": [
|
|
33
|
+
"scrapyio",
|
|
34
|
+
"scrapy.io",
|
|
35
|
+
"web-scraping",
|
|
36
|
+
"sdk"
|
|
37
|
+
],
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
},
|
|
41
|
+
"license": "MIT",
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"openapi-fetch": "^0.14.0"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/node": "^22.10.0",
|
|
47
|
+
"openapi-typescript": "^7.8.0",
|
|
48
|
+
"tsx": "^4.19.2",
|
|
49
|
+
"typescript": "^5.7.2"
|
|
50
|
+
}
|
|
51
|
+
}
|