@keystrokehq/onepage 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 (50) 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/index.cjs +5 -0
  7. package/dist/actions/index.d.cts +3 -0
  8. package/dist/actions/index.d.mts +3 -0
  9. package/dist/actions/index.mjs +3 -0
  10. package/dist/actions/search-input-post-request.cjs +26 -0
  11. package/dist/actions/search-input-post-request.cjs.map +1 -0
  12. package/dist/actions/search-input-post-request.d.cts +9 -0
  13. package/dist/actions/search-input-post-request.d.cts.map +1 -0
  14. package/dist/actions/search-input-post-request.d.mts +9 -0
  15. package/dist/actions/search-input-post-request.d.mts.map +1 -0
  16. package/dist/actions/search-input-post-request.mjs +23 -0
  17. package/dist/actions/search-input-post-request.mjs.map +1 -0
  18. package/dist/actions/token-details-request.cjs +16 -0
  19. package/dist/actions/token-details-request.cjs.map +1 -0
  20. package/dist/actions/token-details-request.d.cts +9 -0
  21. package/dist/actions/token-details-request.d.cts.map +1 -0
  22. package/dist/actions/token-details-request.d.mts +9 -0
  23. package/dist/actions/token-details-request.d.mts.map +1 -0
  24. package/dist/actions/token-details-request.mjs +13 -0
  25. package/dist/actions/token-details-request.mjs.map +1 -0
  26. package/dist/app.cjs +9 -0
  27. package/dist/app.cjs.map +1 -0
  28. package/dist/app.d.cts +5 -0
  29. package/dist/app.d.cts.map +1 -0
  30. package/dist/app.d.mts +5 -0
  31. package/dist/app.d.mts.map +1 -0
  32. package/dist/app.mjs +10 -0
  33. package/dist/app.mjs.map +1 -0
  34. package/dist/catalog.cjs +15 -0
  35. package/dist/catalog.cjs.map +1 -0
  36. package/dist/catalog.d.cts +14 -0
  37. package/dist/catalog.d.cts.map +1 -0
  38. package/dist/catalog.d.mts +14 -0
  39. package/dist/catalog.d.mts.map +1 -0
  40. package/dist/catalog.mjs +15 -0
  41. package/dist/catalog.mjs.map +1 -0
  42. package/dist/execute.cjs +18 -0
  43. package/dist/execute.cjs.map +1 -0
  44. package/dist/execute.mjs +18 -0
  45. package/dist/execute.mjs.map +1 -0
  46. package/dist/index.cjs +10 -0
  47. package/dist/index.d.cts +5 -0
  48. package/dist/index.d.mts +5 -0
  49. package/dist/index.mjs +6 -0
  50. package/package.json +49 -0
package/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # @keystrokehq/onepage
2
+
3
+ Keystroke-managed integration.
4
+
5
+ **App:** `onepage`
6
+ **Version:** `20260615_00`
7
+ **Actions:** 2
8
+
9
+ ```ts
10
+ import { defineAgent } from "@keystrokehq/keystroke/agent";
11
+ import { onepageSearchInputPostRequest } from "@keystrokehq/onepage/actions";
12
+
13
+ export default defineAgent({
14
+ key: "onepage-agent",
15
+ tools: [onepageSearchInputPostRequest],
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.onepage.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.executeOnepageTool(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":["onepage","executeOnepageTool"],"sources":["../src/action.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { onepage } from \"./app\";\nimport { executeOnepageTool } 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 onepage.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 executeOnepageTool(tool, input as Record<string, unknown>));\n },\n });\n}\n"],"mappings":";;;;;AAMA,SAAgB,OACd,MACA,KAOA;CACA,OAAOA,YAAAA,QAAQ,OAAO;EACpB,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,mBAAmB,MAAM,KAAgC,CAAC;EAC1F;CACF,CAAC;AACH"}
@@ -0,0 +1,21 @@
1
+ import { onepage } from "./app.mjs";
2
+ import { executeOnepageTool } 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 onepage.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 executeOnepageTool(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 { onepage } from \"./app\";\nimport { executeOnepageTool } 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 onepage.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 executeOnepageTool(tool, input as Record<string, unknown>));\n },\n });\n}\n"],"mappings":";;;;;AAMA,SAAgB,OACd,MACA,KAOA;CACA,OAAO,QAAQ,OAAO;EACpB,MAAM,IAAI;EACV,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,MAAM,IAAI,OAAO;GACf,OAAO,IAAI,OAAO,MAAM,MAAM,mBAAmB,MAAM,KAAgC,CAAC;EAC1F;CACF,CAAC;AACH"}
@@ -0,0 +1,5 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_search_input_post_request = require("./search-input-post-request.cjs");
3
+ const require_token_details_request = require("./token-details-request.cjs");
4
+ exports.onepageSearchInputPostRequest = require_search_input_post_request.onepageSearchInputPostRequest;
5
+ exports.onepageTokenDetailsRequest = require_token_details_request.onepageTokenDetailsRequest;
@@ -0,0 +1,3 @@
1
+ import { onepageSearchInputPostRequest } from "./search-input-post-request.cjs";
2
+ import { onepageTokenDetailsRequest } from "./token-details-request.cjs";
3
+ export { onepageSearchInputPostRequest, onepageTokenDetailsRequest };
@@ -0,0 +1,3 @@
1
+ import { onepageSearchInputPostRequest } from "./search-input-post-request.mjs";
2
+ import { onepageTokenDetailsRequest } from "./token-details-request.mjs";
3
+ export { onepageSearchInputPostRequest, onepageTokenDetailsRequest };
@@ -0,0 +1,3 @@
1
+ import { onepageSearchInputPostRequest } from "./search-input-post-request.mjs";
2
+ import { onepageTokenDetailsRequest } from "./token-details-request.mjs";
3
+ export { onepageSearchInputPostRequest, onepageTokenDetailsRequest };
@@ -0,0 +1,26 @@
1
+ const require_action = require("../action.cjs");
2
+ let zod = require("zod");
3
+ //#region src/actions/search-input-post-request.ts
4
+ const OnepageSearchInputPostRequestInput = zod.z.object({
5
+ l: zod.z.string().describe("Language specifies the language code for the search results.").optional(),
6
+ o: zod.z.string().describe("Output specifies the format of the search results (e.g., JSON, TEXT).").optional(),
7
+ s: zod.z.string().describe("Search specifies the search query. This field is required.")
8
+ }).describe("Request schema for `SearchInputPostRequest`");
9
+ const OnepageSearchInputPostRequestOutput = zod.z.object({
10
+ error: zod.z.string().describe("Error code indicating the type of error encountered."),
11
+ fields: zod.z.array(zod.z.unknown()).describe("List of fields related to the error.").nullable().optional(),
12
+ message: zod.z.string().describe("Human-readable message describing the error."),
13
+ sources: zod.z.array(zod.z.unknown()).describe("List of sources consulted.").nullable().optional(),
14
+ recommendation: zod.z.string().describe("Recommended action to resolve the error.")
15
+ }).describe("Response schema for `SearchInputPostRequest`");
16
+ const onepageSearchInputPostRequest = require_action.action("ONEPAGE_SEARCH_INPUT_POST_REQUEST", {
17
+ slug: "onepage-search-input-post-request",
18
+ name: "Search input post request",
19
+ description: "The SearchInput endpoint allows users to perform a search query within the OnePage platform. It accepts a required search string and optional parameters for language and output format customization. This endpoint is designed for retrieving relevant information based on user-specified search terms, with the ability to filter results by language and choose between structured (JSON) or plain text output. Use this endpoint when you need to search for specific content or information within the OnePage ecosystem. It's particularly useful for integrating search functionality into applications or workflows that interact with OnePage data. Note that this endpoint focuses solely on search functionality and does not provide additional features like content creation or modification.",
20
+ input: OnepageSearchInputPostRequestInput,
21
+ output: OnepageSearchInputPostRequestOutput
22
+ });
23
+ //#endregion
24
+ exports.onepageSearchInputPostRequest = onepageSearchInputPostRequest;
25
+
26
+ //# sourceMappingURL=search-input-post-request.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-input-post-request.cjs","names":["z","action"],"sources":["../../src/actions/search-input-post-request.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OnepageSearchInputPostRequestInput: z.ZodTypeAny = z.object({\n l: z.string().describe(\"Language specifies the language code for the search results.\").optional(),\n o: z.string().describe(\"Output specifies the format of the search results (e.g., JSON, TEXT).\").optional(),\n s: z.string().describe(\"Search specifies the search query. This field is required.\"),\n}).describe(\"Request schema for `SearchInputPostRequest`\");\nexport const OnepageSearchInputPostRequestOutput: z.ZodTypeAny = z.object({\n error: z.string().describe(\"Error code indicating the type of error encountered.\"),\n fields: z.array(z.unknown()).describe(\"List of fields related to the error.\").nullable().optional(),\n message: z.string().describe(\"Human-readable message describing the error.\"),\n sources: z.array(z.unknown()).describe(\"List of sources consulted.\").nullable().optional(),\n recommendation: z.string().describe(\"Recommended action to resolve the error.\"),\n}).describe(\"Response schema for `SearchInputPostRequest`\");\n\nexport const onepageSearchInputPostRequest = action(\"ONEPAGE_SEARCH_INPUT_POST_REQUEST\", {\n slug: \"onepage-search-input-post-request\",\n name: \"Search input post request\",\n description: \"The SearchInput endpoint allows users to perform a search query within the OnePage platform. It accepts a required search string and optional parameters for language and output format customization. This endpoint is designed for retrieving relevant information based on user-specified search terms, with the ability to filter results by language and choose between structured (JSON) or plain text output. Use this endpoint when you need to search for specific content or information within the OnePage ecosystem. It's particularly useful for integrating search functionality into applications or workflows that interact with OnePage data. Note that this endpoint focuses solely on search functionality and does not provide additional features like content creation or modification.\",\n input: OnepageSearchInputPostRequestInput,\n output: OnepageSearchInputPostRequestOutput,\n});\n"],"mappings":";;;AAIA,MAAa,qCAAmDA,IAAAA,EAAE,OAAO;CACvE,GAAGA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;CAChG,GAAGA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uEAAuE,CAAC,CAAC,SAAS;CACzG,GAAGA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4DAA4D;AACrF,CAAC,CAAC,CAAC,SAAS,6CAA6C;AACzD,MAAa,sCAAoDA,IAAAA,EAAE,OAAO;CACxE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sDAAsD;CACjF,QAAQA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C;CAC3E,SAASA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzF,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0CAA0C;AAChF,CAAC,CAAC,CAAC,SAAS,8CAA8C;AAE1D,MAAa,gCAAgCC,eAAAA,OAAO,qCAAqC;CACvF,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/search-input-post-request.d.ts
4
+ declare const OnepageSearchInputPostRequestInput: z.ZodTypeAny;
5
+ declare const OnepageSearchInputPostRequestOutput: z.ZodTypeAny;
6
+ declare const onepageSearchInputPostRequest: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
+ //#endregion
8
+ export { onepageSearchInputPostRequest };
9
+ //# sourceMappingURL=search-input-post-request.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-input-post-request.d.cts","names":[],"sources":["../../src/actions/search-input-post-request.ts"],"mappings":";;;cAIa,kCAAA,EAAoC,CAAA,CAAE,UAIO;AAAA,cAC7C,mCAAA,EAAqC,CAAA,CAAE,UAMO;AAAA,cAE9C,6BAAA,gCAA6B,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/actions/search-input-post-request.d.ts
4
+ declare const OnepageSearchInputPostRequestInput: z.ZodTypeAny;
5
+ declare const OnepageSearchInputPostRequestOutput: z.ZodTypeAny;
6
+ declare const onepageSearchInputPostRequest: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
+ //#endregion
8
+ export { onepageSearchInputPostRequest };
9
+ //# sourceMappingURL=search-input-post-request.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-input-post-request.d.mts","names":[],"sources":["../../src/actions/search-input-post-request.ts"],"mappings":";;;cAIa,kCAAA,EAAoC,CAAA,CAAE,UAIO;AAAA,cAC7C,mCAAA,EAAqC,CAAA,CAAE,UAMO;AAAA,cAE9C,6BAAA,gCAA6B,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
@@ -0,0 +1,23 @@
1
+ import { action } from "../action.mjs";
2
+ import { z } from "zod";
3
+ const onepageSearchInputPostRequest = action("ONEPAGE_SEARCH_INPUT_POST_REQUEST", {
4
+ slug: "onepage-search-input-post-request",
5
+ name: "Search input post request",
6
+ description: "The SearchInput endpoint allows users to perform a search query within the OnePage platform. It accepts a required search string and optional parameters for language and output format customization. This endpoint is designed for retrieving relevant information based on user-specified search terms, with the ability to filter results by language and choose between structured (JSON) or plain text output. Use this endpoint when you need to search for specific content or information within the OnePage ecosystem. It's particularly useful for integrating search functionality into applications or workflows that interact with OnePage data. Note that this endpoint focuses solely on search functionality and does not provide additional features like content creation or modification.",
7
+ input: z.object({
8
+ l: z.string().describe("Language specifies the language code for the search results.").optional(),
9
+ o: z.string().describe("Output specifies the format of the search results (e.g., JSON, TEXT).").optional(),
10
+ s: z.string().describe("Search specifies the search query. This field is required.")
11
+ }).describe("Request schema for `SearchInputPostRequest`"),
12
+ output: z.object({
13
+ error: z.string().describe("Error code indicating the type of error encountered."),
14
+ fields: z.array(z.unknown()).describe("List of fields related to the error.").nullable().optional(),
15
+ message: z.string().describe("Human-readable message describing the error."),
16
+ sources: z.array(z.unknown()).describe("List of sources consulted.").nullable().optional(),
17
+ recommendation: z.string().describe("Recommended action to resolve the error.")
18
+ }).describe("Response schema for `SearchInputPostRequest`")
19
+ });
20
+ //#endregion
21
+ export { onepageSearchInputPostRequest };
22
+
23
+ //# sourceMappingURL=search-input-post-request.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-input-post-request.mjs","names":[],"sources":["../../src/actions/search-input-post-request.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OnepageSearchInputPostRequestInput: z.ZodTypeAny = z.object({\n l: z.string().describe(\"Language specifies the language code for the search results.\").optional(),\n o: z.string().describe(\"Output specifies the format of the search results (e.g., JSON, TEXT).\").optional(),\n s: z.string().describe(\"Search specifies the search query. This field is required.\"),\n}).describe(\"Request schema for `SearchInputPostRequest`\");\nexport const OnepageSearchInputPostRequestOutput: z.ZodTypeAny = z.object({\n error: z.string().describe(\"Error code indicating the type of error encountered.\"),\n fields: z.array(z.unknown()).describe(\"List of fields related to the error.\").nullable().optional(),\n message: z.string().describe(\"Human-readable message describing the error.\"),\n sources: z.array(z.unknown()).describe(\"List of sources consulted.\").nullable().optional(),\n recommendation: z.string().describe(\"Recommended action to resolve the error.\"),\n}).describe(\"Response schema for `SearchInputPostRequest`\");\n\nexport const onepageSearchInputPostRequest = action(\"ONEPAGE_SEARCH_INPUT_POST_REQUEST\", {\n slug: \"onepage-search-input-post-request\",\n name: \"Search input post request\",\n description: \"The SearchInput endpoint allows users to perform a search query within the OnePage platform. It accepts a required search string and optional parameters for language and output format customization. This endpoint is designed for retrieving relevant information based on user-specified search terms, with the ability to filter results by language and choose between structured (JSON) or plain text output. Use this endpoint when you need to search for specific content or information within the OnePage ecosystem. It's particularly useful for integrating search functionality into applications or workflows that interact with OnePage data. Note that this endpoint focuses solely on search functionality and does not provide additional features like content creation or modification.\",\n input: OnepageSearchInputPostRequestInput,\n output: OnepageSearchInputPostRequestOutput,\n});\n"],"mappings":";;AAiBA,MAAa,gCAAgC,OAAO,qCAAqC;CACvF,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAjB8D,EAAE,OAAO;EACvE,GAAG,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;EAChG,GAAG,EAAE,OAAO,CAAC,CAAC,SAAS,uEAAuE,CAAC,CAAC,SAAS;EACzG,GAAG,EAAE,OAAO,CAAC,CAAC,SAAS,4DAA4D;CACrF,CAAC,CAAC,CAAC,SAAS,6CAaH;CACP,QAb+D,EAAE,OAAO;EACxE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,sDAAsD;EACjF,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAClG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C;EAC3E,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACzF,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,0CAA0C;CAChF,CAAC,CAAC,CAAC,SAAS,8CAOF;AACV,CAAC"}
@@ -0,0 +1,16 @@
1
+ const require_action = require("../action.cjs");
2
+ let zod = require("zod");
3
+ //#region src/actions/token-details-request.ts
4
+ const OnepageTokenDetailsRequestInput = zod.z.object({ token: zod.z.string().describe("The OnePage authentication or API token to retrieve details for. This token is typically obtained from your OnePage account settings or during initial authentication.") }).describe("Request schema for `TokenDetailsRequest`");
5
+ const OnepageTokenDetailsRequestOutput = zod.z.object({ data: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Token details including permissions, expiration date, and other metadata. Structure may vary based on token type.").nullable().optional() }).describe("Response schema for `TokenDetailsRequest`");
6
+ const onepageTokenDetailsRequest = require_action.action("ONEPAGE_TOKEN_DETAILS_REQUEST", {
7
+ slug: "onepage-token-details-request",
8
+ name: "Token details request",
9
+ description: "Retrieves detailed information about a specific token in the OnePage system. This endpoint should be used when you need to obtain comprehensive data about a token, such as its associated permissions, expiration date, or other metadata. It's particularly useful for token management tasks, such as verifying token validity or checking token attributes. The endpoint accepts a single token and returns its corresponding details. It should not be used for token creation, deletion, or modification operations. Note that the specific details returned may vary based on the OnePage implementation and the token's type or purpose.",
10
+ input: OnepageTokenDetailsRequestInput,
11
+ output: OnepageTokenDetailsRequestOutput
12
+ });
13
+ //#endregion
14
+ exports.onepageTokenDetailsRequest = onepageTokenDetailsRequest;
15
+
16
+ //# sourceMappingURL=token-details-request.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-details-request.cjs","names":["z","action"],"sources":["../../src/actions/token-details-request.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OnepageTokenDetailsRequestInput: z.ZodTypeAny = z.object({\n token: z.string().describe(\"The OnePage authentication or API token to retrieve details for. This token is typically obtained from your OnePage account settings or during initial authentication.\"),\n}).describe(\"Request schema for `TokenDetailsRequest`\");\nexport const OnepageTokenDetailsRequestOutput: z.ZodTypeAny = z.object({\n data: z.record(z.string(), z.unknown()).describe(\"Token details including permissions, expiration date, and other metadata. Structure may vary based on token type.\").nullable().optional(),\n}).describe(\"Response schema for `TokenDetailsRequest`\");\n\nexport const onepageTokenDetailsRequest = action(\"ONEPAGE_TOKEN_DETAILS_REQUEST\", {\n slug: \"onepage-token-details-request\",\n name: \"Token details request\",\n description: \"Retrieves detailed information about a specific token in the OnePage system. This endpoint should be used when you need to obtain comprehensive data about a token, such as its associated permissions, expiration date, or other metadata. It's particularly useful for token management tasks, such as verifying token validity or checking token attributes. The endpoint accepts a single token and returns its corresponding details. It should not be used for token creation, deletion, or modification operations. Note that the specific details returned may vary based on the OnePage implementation and the token's type or purpose.\",\n input: OnepageTokenDetailsRequestInput,\n output: OnepageTokenDetailsRequestOutput,\n});\n"],"mappings":";;;AAIA,MAAa,kCAAgDA,IAAAA,EAAE,OAAO,EACpE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wKAAwK,EACrM,CAAC,CAAC,CAAC,SAAS,0CAA0C;AACtD,MAAa,mCAAiDA,IAAAA,EAAE,OAAO,EACrE,MAAMA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,mHAAmH,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAC5L,CAAC,CAAC,CAAC,SAAS,2CAA2C;AAEvD,MAAa,6BAA6BC,eAAAA,OAAO,iCAAiC;CAChF,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/token-details-request.d.ts
4
+ declare const OnepageTokenDetailsRequestInput: z.ZodTypeAny;
5
+ declare const OnepageTokenDetailsRequestOutput: z.ZodTypeAny;
6
+ declare const onepageTokenDetailsRequest: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
+ //#endregion
8
+ export { onepageTokenDetailsRequest };
9
+ //# sourceMappingURL=token-details-request.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-details-request.d.cts","names":[],"sources":["../../src/actions/token-details-request.ts"],"mappings":";;;cAIa,+BAAA,EAAiC,CAAA,CAAE,UAEO;AAAA,cAC1C,gCAAA,EAAkC,CAAA,CAAE,UAEO;AAAA,cAE3C,0BAAA,gCAA0B,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/actions/token-details-request.d.ts
4
+ declare const OnepageTokenDetailsRequestInput: z.ZodTypeAny;
5
+ declare const OnepageTokenDetailsRequestOutput: z.ZodTypeAny;
6
+ declare const onepageTokenDetailsRequest: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
+ //#endregion
8
+ export { onepageTokenDetailsRequest };
9
+ //# sourceMappingURL=token-details-request.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-details-request.d.mts","names":[],"sources":["../../src/actions/token-details-request.ts"],"mappings":";;;cAIa,+BAAA,EAAiC,CAAA,CAAE,UAEO;AAAA,cAC1C,gCAAA,EAAkC,CAAA,CAAE,UAEO;AAAA,cAE3C,0BAAA,gCAA0B,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
@@ -0,0 +1,13 @@
1
+ import { action } from "../action.mjs";
2
+ import { z } from "zod";
3
+ const onepageTokenDetailsRequest = action("ONEPAGE_TOKEN_DETAILS_REQUEST", {
4
+ slug: "onepage-token-details-request",
5
+ name: "Token details request",
6
+ description: "Retrieves detailed information about a specific token in the OnePage system. This endpoint should be used when you need to obtain comprehensive data about a token, such as its associated permissions, expiration date, or other metadata. It's particularly useful for token management tasks, such as verifying token validity or checking token attributes. The endpoint accepts a single token and returns its corresponding details. It should not be used for token creation, deletion, or modification operations. Note that the specific details returned may vary based on the OnePage implementation and the token's type or purpose.",
7
+ input: z.object({ token: z.string().describe("The OnePage authentication or API token to retrieve details for. This token is typically obtained from your OnePage account settings or during initial authentication.") }).describe("Request schema for `TokenDetailsRequest`"),
8
+ output: z.object({ data: z.record(z.string(), z.unknown()).describe("Token details including permissions, expiration date, and other metadata. Structure may vary based on token type.").nullable().optional() }).describe("Response schema for `TokenDetailsRequest`")
9
+ });
10
+ //#endregion
11
+ export { onepageTokenDetailsRequest };
12
+
13
+ //# sourceMappingURL=token-details-request.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-details-request.mjs","names":[],"sources":["../../src/actions/token-details-request.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const OnepageTokenDetailsRequestInput: z.ZodTypeAny = z.object({\n token: z.string().describe(\"The OnePage authentication or API token to retrieve details for. This token is typically obtained from your OnePage account settings or during initial authentication.\"),\n}).describe(\"Request schema for `TokenDetailsRequest`\");\nexport const OnepageTokenDetailsRequestOutput: z.ZodTypeAny = z.object({\n data: z.record(z.string(), z.unknown()).describe(\"Token details including permissions, expiration date, and other metadata. Structure may vary based on token type.\").nullable().optional(),\n}).describe(\"Response schema for `TokenDetailsRequest`\");\n\nexport const onepageTokenDetailsRequest = action(\"ONEPAGE_TOKEN_DETAILS_REQUEST\", {\n slug: \"onepage-token-details-request\",\n name: \"Token details request\",\n description: \"Retrieves detailed information about a specific token in the OnePage system. This endpoint should be used when you need to obtain comprehensive data about a token, such as its associated permissions, expiration date, or other metadata. It's particularly useful for token management tasks, such as verifying token validity or checking token attributes. The endpoint accepts a single token and returns its corresponding details. It should not be used for token creation, deletion, or modification operations. Note that the specific details returned may vary based on the OnePage implementation and the token's type or purpose.\",\n input: OnepageTokenDetailsRequestInput,\n output: OnepageTokenDetailsRequestOutput,\n});\n"],"mappings":";;AAWA,MAAa,6BAA6B,OAAO,iCAAiC;CAChF,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAX2D,EAAE,OAAO,EACpE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,wKAAwK,EACrM,CAAC,CAAC,CAAC,SAAS,0CASH;CACP,QAT4D,EAAE,OAAO,EACrE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,mHAAmH,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAC5L,CAAC,CAAC,CAAC,SAAS,2CAOF;AACV,CAAC"}
package/dist/app.cjs ADDED
@@ -0,0 +1,9 @@
1
+ //#region src/app.ts
2
+ const onepage = (0, require("@keystrokehq/keystroke/app").defineApp)({
3
+ slug: "onepage",
4
+ auth: "keystroke"
5
+ });
6
+ //#endregion
7
+ exports.onepage = onepage;
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 onepage = defineApp({\n slug: \"onepage\",\n auth: \"keystroke\",\n});\n"],"mappings":";AAEA,MAAa,WAAA,uCAAA,CAAA,CAAA,UAAA,CAAoB;CAC/B,MAAM;CACN,MAAM;AACR,CAAC"}
package/dist/app.d.cts ADDED
@@ -0,0 +1,5 @@
1
+ //#region src/app.d.ts
2
+ declare const onepage: import("@keystrokehq/app").App<import("@keystrokehq/shared").Credential>;
3
+ //#endregion
4
+ export { onepage };
5
+ //# sourceMappingURL=app.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.cts","names":[],"sources":["../src/app.ts"],"mappings":";cAEa,OAAA,6BAAO,GAAA,+BAAA,UAAA"}
package/dist/app.d.mts ADDED
@@ -0,0 +1,5 @@
1
+ //#region src/app.d.ts
2
+ declare const onepage: import("@keystrokehq/app").App<import("@keystrokehq/shared").Credential>;
3
+ //#endregion
4
+ export { onepage };
5
+ //# sourceMappingURL=app.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.mts","names":[],"sources":["../src/app.ts"],"mappings":";cAEa,OAAA,6BAAO,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 onepage = defineApp({
4
+ slug: "onepage",
5
+ auth: "keystroke"
6
+ });
7
+ //#endregion
8
+ export { onepage };
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 onepage = defineApp({\n slug: \"onepage\",\n auth: \"keystroke\",\n});\n"],"mappings":";;AAEA,MAAa,UAAU,UAAU;CAC/B,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 onepageCatalog = {
4
+ "slug": "onepage",
5
+ "name": "Onepage",
6
+ "description": "API for enriching user and company data, providing endpoints for token validation and generic search.",
7
+ "category": "Productivity",
8
+ "logo": "https://logos.composio.dev/api/onepage",
9
+ "authKind": "keystroke",
10
+ "oauthScopes": []
11
+ };
12
+ //#endregion
13
+ exports.onepageCatalog = onepageCatalog;
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 onepageCatalog = {\n \"slug\": \"onepage\",\n \"name\": \"Onepage\",\n \"description\": \"API for enriching user and company data, providing endpoints for token validation and generic search.\",\n \"category\": \"Productivity\",\n \"logo\": \"https://logos.composio.dev/api/onepage\",\n \"authKind\": \"keystroke\",\n \"oauthScopes\": []\n} as const;\n"],"mappings":";;AACA,MAAa,iBAAiB;CAC5B,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 onepageCatalog: {
4
+ readonly slug: "onepage";
5
+ readonly name: "Onepage";
6
+ readonly description: "API for enriching user and company data, providing endpoints for token validation and generic search.";
7
+ readonly category: "Productivity";
8
+ readonly logo: "https://logos.composio.dev/api/onepage";
9
+ readonly authKind: "keystroke";
10
+ readonly oauthScopes: readonly [];
11
+ };
12
+ //#endregion
13
+ export { onepageCatalog };
14
+ //# sourceMappingURL=catalog.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.cts","names":[],"sources":["../src/catalog.ts"],"mappings":";;cACa,cAAA;EAAA"}
@@ -0,0 +1,14 @@
1
+ //#region src/catalog.d.ts
2
+ /** Generated — kept in sync with src/app.ts. */
3
+ declare const onepageCatalog: {
4
+ readonly slug: "onepage";
5
+ readonly name: "Onepage";
6
+ readonly description: "API for enriching user and company data, providing endpoints for token validation and generic search.";
7
+ readonly category: "Productivity";
8
+ readonly logo: "https://logos.composio.dev/api/onepage";
9
+ readonly authKind: "keystroke";
10
+ readonly oauthScopes: readonly [];
11
+ };
12
+ //#endregion
13
+ export { onepageCatalog };
14
+ //# sourceMappingURL=catalog.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.mts","names":[],"sources":["../src/catalog.ts"],"mappings":";;cACa,cAAA;EAAA"}
@@ -0,0 +1,15 @@
1
+ //#region src/catalog.ts
2
+ /** Generated — kept in sync with src/app.ts. */
3
+ const onepageCatalog = {
4
+ "slug": "onepage",
5
+ "name": "Onepage",
6
+ "description": "API for enriching user and company data, providing endpoints for token validation and generic search.",
7
+ "category": "Productivity",
8
+ "logo": "https://logos.composio.dev/api/onepage",
9
+ "authKind": "keystroke",
10
+ "oauthScopes": []
11
+ };
12
+ //#endregion
13
+ export { onepageCatalog };
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 onepageCatalog = {\n \"slug\": \"onepage\",\n \"name\": \"Onepage\",\n \"description\": \"API for enriching user and company data, providing endpoints for token validation and generic search.\",\n \"category\": \"Productivity\",\n \"logo\": \"https://logos.composio.dev/api/onepage\",\n \"authKind\": \"keystroke\",\n \"oauthScopes\": []\n} as const;\n"],"mappings":";;AACA,MAAa,iBAAiB;CAC5B,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 = "onepage";
4
+ /** Pinned app version — updated on regeneration. */
5
+ const APP_VERSION = "20260615_00";
6
+ async function executeOnepageTool(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.executeOnepageTool = executeOnepageTool;
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 = \"onepage\";\n/** Pinned app version — updated on regeneration. */\nconst APP_VERSION = \"20260615_00\";\n\nexport async function executeOnepageTool(\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,mBACpB,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 = "onepage";
4
+ /** Pinned app version — updated on regeneration. */
5
+ const APP_VERSION = "20260615_00";
6
+ async function executeOnepageTool(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 { executeOnepageTool };
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 = \"onepage\";\n/** Pinned app version — updated on regeneration. */\nconst APP_VERSION = \"20260615_00\";\n\nexport async function executeOnepageTool(\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,mBACpB,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,10 @@
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_search_input_post_request = require("./actions/search-input-post-request.cjs");
5
+ const require_token_details_request = require("./actions/token-details-request.cjs");
6
+ require("./actions/index.cjs");
7
+ exports.onepage = require_app.onepage;
8
+ exports.onepageCatalog = require_catalog.onepageCatalog;
9
+ exports.onepageSearchInputPostRequest = require_search_input_post_request.onepageSearchInputPostRequest;
10
+ exports.onepageTokenDetailsRequest = require_token_details_request.onepageTokenDetailsRequest;
@@ -0,0 +1,5 @@
1
+ import { onepageSearchInputPostRequest } from "./actions/search-input-post-request.cjs";
2
+ import { onepageTokenDetailsRequest } from "./actions/token-details-request.cjs";
3
+ import { onepage } from "./app.cjs";
4
+ import { onepageCatalog } from "./catalog.cjs";
5
+ export { onepage, onepageCatalog, onepageSearchInputPostRequest, onepageTokenDetailsRequest };
@@ -0,0 +1,5 @@
1
+ import { onepageSearchInputPostRequest } from "./actions/search-input-post-request.mjs";
2
+ import { onepageTokenDetailsRequest } from "./actions/token-details-request.mjs";
3
+ import { onepage } from "./app.mjs";
4
+ import { onepageCatalog } from "./catalog.mjs";
5
+ export { onepage, onepageCatalog, onepageSearchInputPostRequest, onepageTokenDetailsRequest };
package/dist/index.mjs ADDED
@@ -0,0 +1,6 @@
1
+ import { onepage } from "./app.mjs";
2
+ import { onepageCatalog } from "./catalog.mjs";
3
+ import { onepageSearchInputPostRequest } from "./actions/search-input-post-request.mjs";
4
+ import { onepageTokenDetailsRequest } from "./actions/token-details-request.mjs";
5
+ import "./actions/index.mjs";
6
+ export { onepage, onepageCatalog, onepageSearchInputPostRequest, onepageTokenDetailsRequest };
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@keystrokehq/onepage",
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/onepage"
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
+ }