@keystrokehq/parsehub 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 (42) hide show
  1. package/README.md +17 -0
  2. package/dist/action.cjs +21 -0
  3. package/dist/action.cjs.map +1 -0
  4. package/dist/action.mjs +21 -0
  5. package/dist/action.mjs.map +1 -0
  6. package/dist/actions/get-projects.cjs +40 -0
  7. package/dist/actions/get-projects.cjs.map +1 -0
  8. package/dist/actions/get-projects.d.cts +9 -0
  9. package/dist/actions/get-projects.d.cts.map +1 -0
  10. package/dist/actions/get-projects.d.mts +9 -0
  11. package/dist/actions/get-projects.d.mts.map +1 -0
  12. package/dist/actions/get-projects.mjs +39 -0
  13. package/dist/actions/get-projects.mjs.map +1 -0
  14. package/dist/actions/index.cjs +3 -0
  15. package/dist/actions/index.d.cts +2 -0
  16. package/dist/actions/index.d.mts +2 -0
  17. package/dist/actions/index.mjs +2 -0
  18. package/dist/app.cjs +9 -0
  19. package/dist/app.cjs.map +1 -0
  20. package/dist/app.d.cts +5 -0
  21. package/dist/app.d.cts.map +1 -0
  22. package/dist/app.d.mts +5 -0
  23. package/dist/app.d.mts.map +1 -0
  24. package/dist/app.mjs +10 -0
  25. package/dist/app.mjs.map +1 -0
  26. package/dist/catalog.cjs +15 -0
  27. package/dist/catalog.cjs.map +1 -0
  28. package/dist/catalog.d.cts +14 -0
  29. package/dist/catalog.d.cts.map +1 -0
  30. package/dist/catalog.d.mts +14 -0
  31. package/dist/catalog.d.mts.map +1 -0
  32. package/dist/catalog.mjs +15 -0
  33. package/dist/catalog.mjs.map +1 -0
  34. package/dist/execute.cjs +18 -0
  35. package/dist/execute.cjs.map +1 -0
  36. package/dist/execute.mjs +18 -0
  37. package/dist/execute.mjs.map +1 -0
  38. package/dist/index.cjs +8 -0
  39. package/dist/index.d.cts +4 -0
  40. package/dist/index.d.mts +4 -0
  41. package/dist/index.mjs +5 -0
  42. package/package.json +49 -0
package/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # @keystrokehq/parsehub
2
+
3
+ Keystroke-managed integration.
4
+
5
+ **App:** `parsehub`
6
+ **Version:** `20260615_00`
7
+ **Actions:** 1
8
+
9
+ ```ts
10
+ import { defineAgent } from "@keystrokehq/keystroke/agent";
11
+ import { parsehubGetProjects } from "@keystrokehq/parsehub/actions";
12
+
13
+ export default defineAgent({
14
+ key: "parsehub-agent",
15
+ tools: [parsehubGetProjects],
16
+ });
17
+ ```
@@ -0,0 +1,21 @@
1
+ const require_app = require("./app.cjs");
2
+ const require_execute = require("./execute.cjs");
3
+ require("zod");
4
+ //#region src/action.ts
5
+ /** Bind one gateway tool to a typed app action; the call's output is parsed against `def.output`. */
6
+ function action(tool, def) {
7
+ return require_app.parsehub.action({
8
+ slug: def.slug,
9
+ name: def.name,
10
+ description: def.description,
11
+ input: def.input,
12
+ output: def.output,
13
+ async run(input) {
14
+ return def.output.parse(await require_execute.executeParsehubTool(tool, input));
15
+ }
16
+ });
17
+ }
18
+ //#endregion
19
+ exports.action = action;
20
+
21
+ //# sourceMappingURL=action.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.cjs","names":["parsehub","executeParsehubTool"],"sources":["../src/action.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { parsehub } from \"./app\";\nimport { executeParsehubTool } from \"./execute\";\n\n/** Bind one gateway tool to a typed app action; the call's output is parsed against `def.output`. */\nexport function action(\n tool: string,\n def: {\n slug: string;\n name: string;\n description: string;\n input: z.ZodTypeAny;\n output: z.ZodTypeAny;\n },\n) {\n return parsehub.action({\n slug: def.slug,\n name: def.name,\n description: def.description,\n input: def.input,\n output: def.output,\n async run(input) {\n return def.output.parse(await executeParsehubTool(tool, input as Record<string, unknown>));\n },\n });\n}\n"],"mappings":";;;;;AAMA,SAAgB,OACd,MACA,KAOA;CACA,OAAOA,YAAAA,SAAS,OAAO;EACrB,MAAM,IAAI;EACV,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,MAAM,IAAI,OAAO;GACf,OAAO,IAAI,OAAO,MAAM,MAAMC,gBAAAA,oBAAoB,MAAM,KAAgC,CAAC;EAC3F;CACF,CAAC;AACH"}
@@ -0,0 +1,21 @@
1
+ import { parsehub } from "./app.mjs";
2
+ import { executeParsehubTool } from "./execute.mjs";
3
+ import "zod";
4
+ //#region src/action.ts
5
+ /** Bind one gateway tool to a typed app action; the call's output is parsed against `def.output`. */
6
+ function action(tool, def) {
7
+ return parsehub.action({
8
+ slug: def.slug,
9
+ name: def.name,
10
+ description: def.description,
11
+ input: def.input,
12
+ output: def.output,
13
+ async run(input) {
14
+ return def.output.parse(await executeParsehubTool(tool, input));
15
+ }
16
+ });
17
+ }
18
+ //#endregion
19
+ export { action };
20
+
21
+ //# sourceMappingURL=action.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.mjs","names":[],"sources":["../src/action.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { parsehub } from \"./app\";\nimport { executeParsehubTool } from \"./execute\";\n\n/** Bind one gateway tool to a typed app action; the call's output is parsed against `def.output`. */\nexport function action(\n tool: string,\n def: {\n slug: string;\n name: string;\n description: string;\n input: z.ZodTypeAny;\n output: z.ZodTypeAny;\n },\n) {\n return parsehub.action({\n slug: def.slug,\n name: def.name,\n description: def.description,\n input: def.input,\n output: def.output,\n async run(input) {\n return def.output.parse(await executeParsehubTool(tool, input as Record<string, unknown>));\n },\n });\n}\n"],"mappings":";;;;;AAMA,SAAgB,OACd,MACA,KAOA;CACA,OAAO,SAAS,OAAO;EACrB,MAAM,IAAI;EACV,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,MAAM,IAAI,OAAO;GACf,OAAO,IAAI,OAAO,MAAM,MAAM,oBAAoB,MAAM,KAAgC,CAAC;EAC3F;CACF,CAAC;AACH"}
@@ -0,0 +1,40 @@
1
+ const require_action = require("../action.cjs");
2
+ let zod = require("zod");
3
+ //#region src/actions/get-projects.ts
4
+ const ParsehubGetProjectsInput = zod.z.object({
5
+ limit: zod.z.number().int().describe("Maximum number of projects to return").optional(),
6
+ offset: zod.z.number().int().describe("Index of the first project to return for pagination (0-based)").optional()
7
+ }).describe("Request parameters for listing projects");
8
+ const ParsehubGetProjects_LastRunSchema = zod.z.object({
9
+ data: zod.z.string().describe("URL to the JSON data of this run"),
10
+ status: zod.z.string().describe("Status of the project run"),
11
+ date_created: zod.z.string().describe("Timestamp when the run was created"),
12
+ date_updated: zod.z.string().describe("Timestamp when the run was last updated").nullable().optional()
13
+ });
14
+ const ParsehubGetProjects_TemplateModelSchema = zod.z.object({
15
+ name: zod.z.string().describe("Name of the template"),
16
+ template_token: zod.z.string().describe("Identifier of the template")
17
+ });
18
+ const ParsehubGetProjects_ProjectModelSchema = zod.z.object({
19
+ name: zod.z.string().describe("Name of the project"),
20
+ token: zod.z.string().describe("Unique identifier for the project"),
21
+ last_run: ParsehubGetProjects_LastRunSchema.nullable().optional(),
22
+ templates: zod.z.array(ParsehubGetProjects_TemplateModelSchema).describe("List of templates defined in the project").nullable().optional()
23
+ });
24
+ const ParsehubGetProjectsOutput = zod.z.object({
25
+ limit: zod.z.number().int().describe("Limit value used in the request").nullable().optional(),
26
+ offset: zod.z.number().int().describe("Offset value used in the request").nullable().optional(),
27
+ projects: zod.z.array(ParsehubGetProjects_ProjectModelSchema).describe("List of projects accessible by the user"),
28
+ total_projects: zod.z.number().int().describe("Total number of projects for this account")
29
+ }).describe("Response schema for listing projects");
30
+ const parsehubGetProjects = require_action.action("PARSEHUB_GET_PROJECTS", {
31
+ slug: "parsehub-get-projects",
32
+ name: "Get Projects",
33
+ description: "Tool to retrieve all projects for the authenticated user. Use after confirming account's API key.",
34
+ input: ParsehubGetProjectsInput,
35
+ output: ParsehubGetProjectsOutput
36
+ });
37
+ //#endregion
38
+ exports.parsehubGetProjects = parsehubGetProjects;
39
+
40
+ //# sourceMappingURL=get-projects.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-projects.cjs","names":["z","action"],"sources":["../../src/actions/get-projects.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ParsehubGetProjectsInput: z.ZodTypeAny = z.object({\n limit: z.number().int().describe(\"Maximum number of projects to return\").optional(),\n offset: z.number().int().describe(\"Index of the first project to return for pagination (0-based)\").optional(),\n}).describe(\"Request parameters for listing projects\");\nconst ParsehubGetProjects_LastRunSchema: z.ZodTypeAny = z.object({\n data: z.string().describe(\"URL to the JSON data of this run\"),\n status: z.string().describe(\"Status of the project run\"),\n date_created: z.string().describe(\"Timestamp when the run was created\"),\n date_updated: z.string().describe(\"Timestamp when the run was last updated\").nullable().optional(),\n});\nconst ParsehubGetProjects_TemplateModelSchema: z.ZodTypeAny = z.object({\n name: z.string().describe(\"Name of the template\"),\n template_token: z.string().describe(\"Identifier of the template\"),\n});\nconst ParsehubGetProjects_ProjectModelSchema: z.ZodTypeAny = z.object({\n name: z.string().describe(\"Name of the project\"),\n token: z.string().describe(\"Unique identifier for the project\"),\n last_run: ParsehubGetProjects_LastRunSchema.nullable().optional(),\n templates: z.array(ParsehubGetProjects_TemplateModelSchema).describe(\"List of templates defined in the project\").nullable().optional(),\n});\nexport const ParsehubGetProjectsOutput: z.ZodTypeAny = z.object({\n limit: z.number().int().describe(\"Limit value used in the request\").nullable().optional(),\n offset: z.number().int().describe(\"Offset value used in the request\").nullable().optional(),\n projects: z.array(ParsehubGetProjects_ProjectModelSchema).describe(\"List of projects accessible by the user\"),\n total_projects: z.number().int().describe(\"Total number of projects for this account\"),\n}).describe(\"Response schema for listing projects\");\n\nexport const parsehubGetProjects = action(\"PARSEHUB_GET_PROJECTS\", {\n slug: \"parsehub-get-projects\",\n name: \"Get Projects\",\n description: \"Tool to retrieve all projects for the authenticated user. Use after confirming account's API key.\",\n input: ParsehubGetProjectsInput,\n output: ParsehubGetProjectsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,2BAAyCA,IAAAA,EAAE,OAAO;CAC7D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CAClF,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,+DAA+D,CAAC,CAAC,SAAS;AAC9G,CAAC,CAAC,CAAC,SAAS,yCAAyC;AACrD,MAAM,oCAAkDA,IAAAA,EAAE,OAAO;CAC/D,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kCAAkC;CAC5D,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B;CACvD,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC;CACtE,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACnG,CAAC;AACD,MAAM,0CAAwDA,IAAAA,EAAE,OAAO;CACrE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB;CAChD,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;AAClE,CAAC;AACD,MAAM,yCAAuDA,IAAAA,EAAE,OAAO;CACpE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qBAAqB;CAC/C,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mCAAmC;CAC9D,UAAU,kCAAkC,SAAS,CAAC,CAAC,SAAS;CAChE,WAAWA,IAAAA,EAAE,MAAM,uCAAuC,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACvI,CAAC;AACD,MAAa,4BAA0CA,IAAAA,EAAE,OAAO;CAC9D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxF,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1F,UAAUA,IAAAA,EAAE,MAAM,sCAAsC,CAAC,CAAC,SAAS,yCAAyC;CAC5G,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,2CAA2C;AACvF,CAAC,CAAC,CAAC,SAAS,sCAAsC;AAElD,MAAa,sBAAsBC,eAAAA,OAAO,yBAAyB;CACjE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/actions/get-projects.d.ts
4
+ declare const ParsehubGetProjectsInput: z.ZodTypeAny;
5
+ declare const ParsehubGetProjectsOutput: z.ZodTypeAny;
6
+ declare const parsehubGetProjects: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
+ //#endregion
8
+ export { parsehubGetProjects };
9
+ //# sourceMappingURL=get-projects.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-projects.d.cts","names":[],"sources":["../../src/actions/get-projects.ts"],"mappings":";;;cAIa,wBAAA,EAA0B,CAAA,CAAE,UAGa;AAAA,cAiBzC,yBAAA,EAA2B,CAAA,CAAE,UAKS;AAAA,cAEtC,mBAAA,gCAAmB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/actions/get-projects.d.ts
4
+ declare const ParsehubGetProjectsInput: z.ZodTypeAny;
5
+ declare const ParsehubGetProjectsOutput: z.ZodTypeAny;
6
+ declare const parsehubGetProjects: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
+ //#endregion
8
+ export { parsehubGetProjects };
9
+ //# sourceMappingURL=get-projects.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-projects.d.mts","names":[],"sources":["../../src/actions/get-projects.ts"],"mappings":";;;cAIa,wBAAA,EAA0B,CAAA,CAAE,UAGa;AAAA,cAiBzC,yBAAA,EAA2B,CAAA,CAAE,UAKS;AAAA,cAEtC,mBAAA,gCAAmB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
@@ -0,0 +1,39 @@
1
+ import { action } from "../action.mjs";
2
+ import { z } from "zod";
3
+ //#region src/actions/get-projects.ts
4
+ const ParsehubGetProjectsInput = z.object({
5
+ limit: z.number().int().describe("Maximum number of projects to return").optional(),
6
+ offset: z.number().int().describe("Index of the first project to return for pagination (0-based)").optional()
7
+ }).describe("Request parameters for listing projects");
8
+ const ParsehubGetProjects_LastRunSchema = z.object({
9
+ data: z.string().describe("URL to the JSON data of this run"),
10
+ status: z.string().describe("Status of the project run"),
11
+ date_created: z.string().describe("Timestamp when the run was created"),
12
+ date_updated: z.string().describe("Timestamp when the run was last updated").nullable().optional()
13
+ });
14
+ const ParsehubGetProjects_TemplateModelSchema = z.object({
15
+ name: z.string().describe("Name of the template"),
16
+ template_token: z.string().describe("Identifier of the template")
17
+ });
18
+ const ParsehubGetProjects_ProjectModelSchema = z.object({
19
+ name: z.string().describe("Name of the project"),
20
+ token: z.string().describe("Unique identifier for the project"),
21
+ last_run: ParsehubGetProjects_LastRunSchema.nullable().optional(),
22
+ templates: z.array(ParsehubGetProjects_TemplateModelSchema).describe("List of templates defined in the project").nullable().optional()
23
+ });
24
+ const parsehubGetProjects = action("PARSEHUB_GET_PROJECTS", {
25
+ slug: "parsehub-get-projects",
26
+ name: "Get Projects",
27
+ description: "Tool to retrieve all projects for the authenticated user. Use after confirming account's API key.",
28
+ input: ParsehubGetProjectsInput,
29
+ output: z.object({
30
+ limit: z.number().int().describe("Limit value used in the request").nullable().optional(),
31
+ offset: z.number().int().describe("Offset value used in the request").nullable().optional(),
32
+ projects: z.array(ParsehubGetProjects_ProjectModelSchema).describe("List of projects accessible by the user"),
33
+ total_projects: z.number().int().describe("Total number of projects for this account")
34
+ }).describe("Response schema for listing projects")
35
+ });
36
+ //#endregion
37
+ export { parsehubGetProjects };
38
+
39
+ //# sourceMappingURL=get-projects.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-projects.mjs","names":[],"sources":["../../src/actions/get-projects.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ParsehubGetProjectsInput: z.ZodTypeAny = z.object({\n limit: z.number().int().describe(\"Maximum number of projects to return\").optional(),\n offset: z.number().int().describe(\"Index of the first project to return for pagination (0-based)\").optional(),\n}).describe(\"Request parameters for listing projects\");\nconst ParsehubGetProjects_LastRunSchema: z.ZodTypeAny = z.object({\n data: z.string().describe(\"URL to the JSON data of this run\"),\n status: z.string().describe(\"Status of the project run\"),\n date_created: z.string().describe(\"Timestamp when the run was created\"),\n date_updated: z.string().describe(\"Timestamp when the run was last updated\").nullable().optional(),\n});\nconst ParsehubGetProjects_TemplateModelSchema: z.ZodTypeAny = z.object({\n name: z.string().describe(\"Name of the template\"),\n template_token: z.string().describe(\"Identifier of the template\"),\n});\nconst ParsehubGetProjects_ProjectModelSchema: z.ZodTypeAny = z.object({\n name: z.string().describe(\"Name of the project\"),\n token: z.string().describe(\"Unique identifier for the project\"),\n last_run: ParsehubGetProjects_LastRunSchema.nullable().optional(),\n templates: z.array(ParsehubGetProjects_TemplateModelSchema).describe(\"List of templates defined in the project\").nullable().optional(),\n});\nexport const ParsehubGetProjectsOutput: z.ZodTypeAny = z.object({\n limit: z.number().int().describe(\"Limit value used in the request\").nullable().optional(),\n offset: z.number().int().describe(\"Offset value used in the request\").nullable().optional(),\n projects: z.array(ParsehubGetProjects_ProjectModelSchema).describe(\"List of projects accessible by the user\"),\n total_projects: z.number().int().describe(\"Total number of projects for this account\"),\n}).describe(\"Response schema for listing projects\");\n\nexport const parsehubGetProjects = action(\"PARSEHUB_GET_PROJECTS\", {\n slug: \"parsehub-get-projects\",\n name: \"Get Projects\",\n description: \"Tool to retrieve all projects for the authenticated user. Use after confirming account's API key.\",\n input: ParsehubGetProjectsInput,\n output: ParsehubGetProjectsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,2BAAyC,EAAE,OAAO;CAC7D,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CAClF,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,+DAA+D,CAAC,CAAC,SAAS;AAC9G,CAAC,CAAC,CAAC,SAAS,yCAAyC;AACrD,MAAM,oCAAkD,EAAE,OAAO;CAC/D,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,kCAAkC;CAC5D,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B;CACvD,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC;CACtE,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACnG,CAAC;AACD,MAAM,0CAAwD,EAAE,OAAO;CACrE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB;CAChD,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;AAClE,CAAC;AACD,MAAM,yCAAuD,EAAE,OAAO;CACpE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,qBAAqB;CAC/C,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,mCAAmC;CAC9D,UAAU,kCAAkC,SAAS,CAAC,CAAC,SAAS;CAChE,WAAW,EAAE,MAAM,uCAAuC,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACvI,CAAC;AAQD,MAAa,sBAAsB,OAAO,yBAAyB;CACjE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAZqD,EAAE,OAAO;EAC9D,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACxF,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1F,UAAU,EAAE,MAAM,sCAAsC,CAAC,CAAC,SAAS,yCAAyC;EAC5G,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,2CAA2C;CACvF,CAAC,CAAC,CAAC,SAAS,sCAOF;AACV,CAAC"}
@@ -0,0 +1,3 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_get_projects = require("./get-projects.cjs");
3
+ exports.parsehubGetProjects = require_get_projects.parsehubGetProjects;
@@ -0,0 +1,2 @@
1
+ import { parsehubGetProjects } from "./get-projects.cjs";
2
+ export { parsehubGetProjects };
@@ -0,0 +1,2 @@
1
+ import { parsehubGetProjects } from "./get-projects.mjs";
2
+ export { parsehubGetProjects };
@@ -0,0 +1,2 @@
1
+ import { parsehubGetProjects } from "./get-projects.mjs";
2
+ export { parsehubGetProjects };
package/dist/app.cjs ADDED
@@ -0,0 +1,9 @@
1
+ //#region src/app.ts
2
+ const parsehub = (0, require("@keystrokehq/keystroke/app").defineApp)({
3
+ slug: "parsehub",
4
+ auth: "keystroke"
5
+ });
6
+ //#endregion
7
+ exports.parsehub = parsehub;
8
+
9
+ //# sourceMappingURL=app.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.cjs","names":[],"sources":["../src/app.ts"],"sourcesContent":["import { defineApp } from \"@keystrokehq/keystroke/app\";\n\nexport const parsehub = defineApp({\n slug: \"parsehub\",\n auth: \"keystroke\",\n});\n"],"mappings":";AAEA,MAAa,YAAA,uCAAA,CAAA,CAAA,UAAA,CAAqB;CAChC,MAAM;CACN,MAAM;AACR,CAAC"}
package/dist/app.d.cts ADDED
@@ -0,0 +1,5 @@
1
+ //#region src/app.d.ts
2
+ declare const parsehub: import("@keystrokehq/app").App<import("@keystrokehq/shared").Credential>;
3
+ //#endregion
4
+ export { parsehub };
5
+ //# sourceMappingURL=app.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.cts","names":[],"sources":["../src/app.ts"],"mappings":";cAEa,QAAA,6BAAQ,GAAA,+BAAA,UAAA"}
package/dist/app.d.mts ADDED
@@ -0,0 +1,5 @@
1
+ //#region src/app.d.ts
2
+ declare const parsehub: import("@keystrokehq/app").App<import("@keystrokehq/shared").Credential>;
3
+ //#endregion
4
+ export { parsehub };
5
+ //# sourceMappingURL=app.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.mts","names":[],"sources":["../src/app.ts"],"mappings":";cAEa,QAAA,6BAAQ,GAAA,+BAAA,UAAA"}
package/dist/app.mjs ADDED
@@ -0,0 +1,10 @@
1
+ import { defineApp } from "@keystrokehq/keystroke/app";
2
+ //#region src/app.ts
3
+ const parsehub = defineApp({
4
+ slug: "parsehub",
5
+ auth: "keystroke"
6
+ });
7
+ //#endregion
8
+ export { parsehub };
9
+
10
+ //# sourceMappingURL=app.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.mjs","names":[],"sources":["../src/app.ts"],"sourcesContent":["import { defineApp } from \"@keystrokehq/keystroke/app\";\n\nexport const parsehub = defineApp({\n slug: \"parsehub\",\n auth: \"keystroke\",\n});\n"],"mappings":";;AAEA,MAAa,WAAW,UAAU;CAChC,MAAM;CACN,MAAM;AACR,CAAC"}
@@ -0,0 +1,15 @@
1
+ //#region src/catalog.ts
2
+ /** Generated — kept in sync with src/app.ts. */
3
+ const parsehubCatalog = {
4
+ "slug": "parsehub",
5
+ "name": "Parsehub",
6
+ "description": "ParseHub is a web scraping tool that allows users to extract data from websites without coding.",
7
+ "category": "AI Web Scraping",
8
+ "logo": "https://logos.composio.dev/api/parsehub",
9
+ "authKind": "keystroke",
10
+ "oauthScopes": []
11
+ };
12
+ //#endregion
13
+ exports.parsehubCatalog = parsehubCatalog;
14
+
15
+ //# sourceMappingURL=catalog.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.cjs","names":[],"sources":["../src/catalog.ts"],"sourcesContent":["/** Generated — kept in sync with src/app.ts. */\nexport const parsehubCatalog = {\n \"slug\": \"parsehub\",\n \"name\": \"Parsehub\",\n \"description\": \"ParseHub is a web scraping tool that allows users to extract data from websites without coding.\",\n \"category\": \"AI Web Scraping\",\n \"logo\": \"https://logos.composio.dev/api/parsehub\",\n \"authKind\": \"keystroke\",\n \"oauthScopes\": []\n} as const;\n"],"mappings":";;AACA,MAAa,kBAAkB;CAC7B,QAAQ;CACR,QAAQ;CACR,eAAe;CACf,YAAY;CACZ,QAAQ;CACR,YAAY;CACZ,eAAe,CAAC;AAClB"}
@@ -0,0 +1,14 @@
1
+ //#region src/catalog.d.ts
2
+ /** Generated — kept in sync with src/app.ts. */
3
+ declare const parsehubCatalog: {
4
+ readonly slug: "parsehub";
5
+ readonly name: "Parsehub";
6
+ readonly description: "ParseHub is a web scraping tool that allows users to extract data from websites without coding.";
7
+ readonly category: "AI Web Scraping";
8
+ readonly logo: "https://logos.composio.dev/api/parsehub";
9
+ readonly authKind: "keystroke";
10
+ readonly oauthScopes: readonly [];
11
+ };
12
+ //#endregion
13
+ export { parsehubCatalog };
14
+ //# sourceMappingURL=catalog.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.cts","names":[],"sources":["../src/catalog.ts"],"mappings":";;cACa,eAAA;EAAA"}
@@ -0,0 +1,14 @@
1
+ //#region src/catalog.d.ts
2
+ /** Generated — kept in sync with src/app.ts. */
3
+ declare const parsehubCatalog: {
4
+ readonly slug: "parsehub";
5
+ readonly name: "Parsehub";
6
+ readonly description: "ParseHub is a web scraping tool that allows users to extract data from websites without coding.";
7
+ readonly category: "AI Web Scraping";
8
+ readonly logo: "https://logos.composio.dev/api/parsehub";
9
+ readonly authKind: "keystroke";
10
+ readonly oauthScopes: readonly [];
11
+ };
12
+ //#endregion
13
+ export { parsehubCatalog };
14
+ //# sourceMappingURL=catalog.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.mts","names":[],"sources":["../src/catalog.ts"],"mappings":";;cACa,eAAA;EAAA"}
@@ -0,0 +1,15 @@
1
+ //#region src/catalog.ts
2
+ /** Generated — kept in sync with src/app.ts. */
3
+ const parsehubCatalog = {
4
+ "slug": "parsehub",
5
+ "name": "Parsehub",
6
+ "description": "ParseHub is a web scraping tool that allows users to extract data from websites without coding.",
7
+ "category": "AI Web Scraping",
8
+ "logo": "https://logos.composio.dev/api/parsehub",
9
+ "authKind": "keystroke",
10
+ "oauthScopes": []
11
+ };
12
+ //#endregion
13
+ export { parsehubCatalog };
14
+
15
+ //# sourceMappingURL=catalog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.mjs","names":[],"sources":["../src/catalog.ts"],"sourcesContent":["/** Generated — kept in sync with src/app.ts. */\nexport const parsehubCatalog = {\n \"slug\": \"parsehub\",\n \"name\": \"Parsehub\",\n \"description\": \"ParseHub is a web scraping tool that allows users to extract data from websites without coding.\",\n \"category\": \"AI Web Scraping\",\n \"logo\": \"https://logos.composio.dev/api/parsehub\",\n \"authKind\": \"keystroke\",\n \"oauthScopes\": []\n} as const;\n"],"mappings":";;AACA,MAAa,kBAAkB;CAC7B,QAAQ;CACR,QAAQ;CACR,eAAe;CACf,YAAY;CACZ,QAAQ;CACR,YAAY;CACZ,eAAe,CAAC;AAClB"}
@@ -0,0 +1,18 @@
1
+ let _keystrokehq_keystroke_client = require("@keystrokehq/keystroke/client");
2
+ //#region src/execute.ts
3
+ const APP_SLUG = "parsehub";
4
+ /** Pinned app version — updated on regeneration. */
5
+ const APP_VERSION = "20260615_00";
6
+ async function executeParsehubTool(tool, args) {
7
+ const { result } = await (0, _keystrokehq_keystroke_client.createKeystrokeClient)().tools.execute({
8
+ app: APP_SLUG,
9
+ tool,
10
+ arguments: args,
11
+ version: APP_VERSION
12
+ });
13
+ return result;
14
+ }
15
+ //#endregion
16
+ exports.executeParsehubTool = executeParsehubTool;
17
+
18
+ //# sourceMappingURL=execute.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.cjs","names":[],"sources":["../src/execute.ts"],"sourcesContent":["import { createKeystrokeClient } from \"@keystrokehq/keystroke/client\";\n\nconst APP_SLUG = \"parsehub\";\n/** Pinned app version — updated on regeneration. */\nconst APP_VERSION = \"20260615_00\";\n\nexport async function executeParsehubTool(\n tool: string,\n args: Record<string, unknown>,\n): Promise<unknown> {\n const { result } = await createKeystrokeClient().tools.execute({\n app: APP_SLUG,\n tool,\n arguments: args,\n version: APP_VERSION,\n });\n return result;\n}\n"],"mappings":";;AAEA,MAAM,WAAW;;AAEjB,MAAM,cAAc;AAEpB,eAAsB,oBACpB,MACA,MACkB;CAClB,MAAM,EAAE,WAAW,OAAA,GAAA,8BAAA,sBAAA,CAA4B,CAAC,CAAC,MAAM,QAAQ;EAC7D,KAAK;EACL;EACA,WAAW;EACX,SAAS;CACX,CAAC;CACD,OAAO;AACT"}
@@ -0,0 +1,18 @@
1
+ import { createKeystrokeClient } from "@keystrokehq/keystroke/client";
2
+ //#region src/execute.ts
3
+ const APP_SLUG = "parsehub";
4
+ /** Pinned app version — updated on regeneration. */
5
+ const APP_VERSION = "20260615_00";
6
+ async function executeParsehubTool(tool, args) {
7
+ const { result } = await createKeystrokeClient().tools.execute({
8
+ app: APP_SLUG,
9
+ tool,
10
+ arguments: args,
11
+ version: APP_VERSION
12
+ });
13
+ return result;
14
+ }
15
+ //#endregion
16
+ export { executeParsehubTool };
17
+
18
+ //# sourceMappingURL=execute.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.mjs","names":[],"sources":["../src/execute.ts"],"sourcesContent":["import { createKeystrokeClient } from \"@keystrokehq/keystroke/client\";\n\nconst APP_SLUG = \"parsehub\";\n/** Pinned app version — updated on regeneration. */\nconst APP_VERSION = \"20260615_00\";\n\nexport async function executeParsehubTool(\n tool: string,\n args: Record<string, unknown>,\n): Promise<unknown> {\n const { result } = await createKeystrokeClient().tools.execute({\n app: APP_SLUG,\n tool,\n arguments: args,\n version: APP_VERSION,\n });\n return result;\n}\n"],"mappings":";;AAEA,MAAM,WAAW;;AAEjB,MAAM,cAAc;AAEpB,eAAsB,oBACpB,MACA,MACkB;CAClB,MAAM,EAAE,WAAW,MAAM,sBAAsB,CAAC,CAAC,MAAM,QAAQ;EAC7D,KAAK;EACL;EACA,WAAW;EACX,SAAS;CACX,CAAC;CACD,OAAO;AACT"}
package/dist/index.cjs ADDED
@@ -0,0 +1,8 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_app = require("./app.cjs");
3
+ const require_catalog = require("./catalog.cjs");
4
+ const require_get_projects = require("./actions/get-projects.cjs");
5
+ require("./actions/index.cjs");
6
+ exports.parsehub = require_app.parsehub;
7
+ exports.parsehubCatalog = require_catalog.parsehubCatalog;
8
+ exports.parsehubGetProjects = require_get_projects.parsehubGetProjects;
@@ -0,0 +1,4 @@
1
+ import { parsehubGetProjects } from "./actions/get-projects.cjs";
2
+ import { parsehub } from "./app.cjs";
3
+ import { parsehubCatalog } from "./catalog.cjs";
4
+ export { parsehub, parsehubCatalog, parsehubGetProjects };
@@ -0,0 +1,4 @@
1
+ import { parsehubGetProjects } from "./actions/get-projects.mjs";
2
+ import { parsehub } from "./app.mjs";
3
+ import { parsehubCatalog } from "./catalog.mjs";
4
+ export { parsehub, parsehubCatalog, parsehubGetProjects };
package/dist/index.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import { parsehub } from "./app.mjs";
2
+ import { parsehubCatalog } from "./catalog.mjs";
3
+ import { parsehubGetProjects } from "./actions/get-projects.mjs";
4
+ import "./actions/index.mjs";
5
+ export { parsehub, parsehubCatalog, parsehubGetProjects };
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@keystrokehq/parsehub",
3
+ "version": "0.1.0",
4
+ "publishConfig": {
5
+ "access": "public",
6
+ "registry": "https://registry.npmjs.org"
7
+ },
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/keystrokehq/keystroke.git",
11
+ "directory": "packages/integrations/parsehub"
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "sideEffects": false,
17
+ "type": "module",
18
+ "main": "./dist/index.cjs",
19
+ "module": "./dist/index.mjs",
20
+ "types": "./dist/index.d.mts",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.mts",
24
+ "import": "./dist/index.mjs",
25
+ "require": "./dist/index.cjs"
26
+ },
27
+ "./actions": {
28
+ "types": "./dist/actions/index.d.mts",
29
+ "import": "./dist/actions/index.mjs",
30
+ "require": "./dist/actions/index.cjs"
31
+ }
32
+ },
33
+ "peerDependencies": {
34
+ "@keystrokehq/keystroke": "^0.1.4",
35
+ "zod": "^4.4.3"
36
+ },
37
+ "devDependencies": {
38
+ "@keystrokehq/keystroke": "link:../../keystroke",
39
+ "@types/node": "^25.9.1",
40
+ "tsdown": "^0.22.0",
41
+ "typescript": "^6.0.3",
42
+ "zod": "^4.4.3"
43
+ },
44
+ "scripts": {
45
+ "build": "tsdown",
46
+ "dev": "tsdown --watch --no-clean",
47
+ "typecheck": "tsc --noEmit"
48
+ }
49
+ }