@keystrokehq/retailed 0.1.0 → 0.1.2
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/dist/action.cjs.map +1 -1
- package/dist/action.mjs.map +1 -1
- package/dist/actions/get-goat-prices.cjs +6 -6
- package/dist/actions/get-goat-prices.cjs.map +1 -1
- package/dist/actions/get-goat-prices.d.cts +20 -3
- package/dist/actions/get-goat-prices.d.cts.map +1 -1
- package/dist/actions/get-goat-prices.d.mts +20 -3
- package/dist/actions/get-goat-prices.d.mts.map +1 -1
- package/dist/actions/get-goat-prices.mjs +6 -6
- package/dist/actions/get-goat-prices.mjs.map +1 -1
- package/dist/actions/get-stock-x-product.cjs +10 -10
- package/dist/actions/get-stock-x-product.cjs.map +1 -1
- package/dist/actions/get-stock-x-product.d.cts +23 -3
- package/dist/actions/get-stock-x-product.d.cts.map +1 -1
- package/dist/actions/get-stock-x-product.d.mts +23 -3
- package/dist/actions/get-stock-x-product.d.mts.map +1 -1
- package/dist/actions/get-stock-x-product.mjs +10 -10
- package/dist/actions/get-stock-x-product.mjs.map +1 -1
- package/dist/actions/get-stockx-search.cjs +9 -9
- package/dist/actions/get-stockx-search.cjs.map +1 -1
- package/dist/actions/get-stockx-search.d.cts +26 -3
- package/dist/actions/get-stockx-search.d.cts.map +1 -1
- package/dist/actions/get-stockx-search.d.mts +26 -3
- package/dist/actions/get-stockx-search.d.mts.map +1 -1
- package/dist/actions/get-stockx-search.mjs +9 -9
- package/dist/actions/get-stockx-search.mjs.map +1 -1
- package/dist/actions/get-stockx-trends.cjs +7 -7
- package/dist/actions/get-stockx-trends.cjs.map +1 -1
- package/dist/actions/get-stockx-trends.d.cts +29 -3
- package/dist/actions/get-stockx-trends.d.cts.map +1 -1
- package/dist/actions/get-stockx-trends.d.mts +29 -3
- package/dist/actions/get-stockx-trends.d.mts.map +1 -1
- package/dist/actions/get-stockx-trends.mjs +7 -7
- package/dist/actions/get-stockx-trends.mjs.map +1 -1
- package/dist/actions/get-usage.cjs +1 -1
- package/dist/actions/get-usage.cjs.map +1 -1
- package/dist/actions/get-usage.d.cts +6 -3
- package/dist/actions/get-usage.d.cts.map +1 -1
- package/dist/actions/get-usage.d.mts +6 -3
- package/dist/actions/get-usage.d.mts.map +1 -1
- package/dist/actions/get-usage.mjs +1 -1
- package/dist/actions/get-usage.mjs.map +1 -1
- package/dist/actions/search-products.cjs.map +1 -1
- package/dist/actions/search-products.d.cts +49 -3
- package/dist/actions/search-products.d.cts.map +1 -1
- package/dist/actions/search-products.d.mts +49 -3
- package/dist/actions/search-products.d.mts.map +1 -1
- package/dist/actions/search-products.mjs.map +1 -1
- package/dist/catalog.cjs +7 -1
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.cts +8 -0
- package/dist/catalog.d.mts +8 -0
- package/dist/catalog.mjs +7 -1
- package/dist/catalog.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
3
|
//#region src/actions/get-stockx-trends.d.ts
|
|
4
|
-
declare const RetailedGetStockxTrendsInput: z.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
declare const RetailedGetStockxTrendsInput: z.ZodObject<{
|
|
5
|
+
page: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
6
|
+
order: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
7
|
+
asc: "asc";
|
|
8
|
+
desc: "desc";
|
|
9
|
+
}>>>;
|
|
10
|
+
sort_by: z.ZodOptional<z.ZodString>;
|
|
11
|
+
per_page: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
12
|
+
product_type: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
declare const RetailedGetStockxTrendsOutput: z.ZodObject<{
|
|
15
|
+
products: z.ZodArray<z.ZodObject<{
|
|
16
|
+
id: z.ZodNullable<z.ZodString>;
|
|
17
|
+
sku: z.ZodNullable<z.ZodString>;
|
|
18
|
+
name: z.ZodNullable<z.ZodString>;
|
|
19
|
+
slug: z.ZodNullable<z.ZodString>;
|
|
20
|
+
brand: z.ZodNullable<z.ZodString>;
|
|
21
|
+
image: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
22
|
+
category: z.ZodNullable<z.ZodString>;
|
|
23
|
+
release_date: z.ZodNullable<z.ZodString>;
|
|
24
|
+
}, z.core.$strip>>;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
declare const retailedGetStockxTrends: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
27
|
+
page?: number | undefined;
|
|
28
|
+
order?: "asc" | "desc" | undefined;
|
|
29
|
+
sort_by?: string | undefined;
|
|
30
|
+
per_page?: number | undefined;
|
|
31
|
+
product_type?: string | undefined;
|
|
32
|
+
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
33
|
//#endregion
|
|
8
34
|
export { retailedGetStockxTrends };
|
|
9
35
|
//# sourceMappingURL=get-stockx-trends.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-stockx-trends.d.cts","names":[],"sources":["../../src/actions/get-stockx-trends.ts"],"mappings":";;;cAIa,4BAAA,
|
|
1
|
+
{"version":3,"file":"get-stockx-trends.d.cts","names":[],"sources":["../../src/actions/get-stockx-trends.ts"],"mappings":";;;cAIa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;cAiB5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;cAI7B,uBAAA,gCAAuB,wBAAA"}
|
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
3
|
//#region src/actions/get-stockx-trends.d.ts
|
|
4
|
-
declare const RetailedGetStockxTrendsInput: z.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
declare const RetailedGetStockxTrendsInput: z.ZodObject<{
|
|
5
|
+
page: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
6
|
+
order: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
7
|
+
asc: "asc";
|
|
8
|
+
desc: "desc";
|
|
9
|
+
}>>>;
|
|
10
|
+
sort_by: z.ZodOptional<z.ZodString>;
|
|
11
|
+
per_page: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
12
|
+
product_type: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
declare const RetailedGetStockxTrendsOutput: z.ZodObject<{
|
|
15
|
+
products: z.ZodArray<z.ZodObject<{
|
|
16
|
+
id: z.ZodNullable<z.ZodString>;
|
|
17
|
+
sku: z.ZodNullable<z.ZodString>;
|
|
18
|
+
name: z.ZodNullable<z.ZodString>;
|
|
19
|
+
slug: z.ZodNullable<z.ZodString>;
|
|
20
|
+
brand: z.ZodNullable<z.ZodString>;
|
|
21
|
+
image: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
22
|
+
category: z.ZodNullable<z.ZodString>;
|
|
23
|
+
release_date: z.ZodNullable<z.ZodString>;
|
|
24
|
+
}, z.core.$strip>>;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
declare const retailedGetStockxTrends: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
27
|
+
page?: number | undefined;
|
|
28
|
+
order?: "asc" | "desc" | undefined;
|
|
29
|
+
sort_by?: string | undefined;
|
|
30
|
+
per_page?: number | undefined;
|
|
31
|
+
product_type?: string | undefined;
|
|
32
|
+
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
33
|
//#endregion
|
|
8
34
|
export { retailedGetStockxTrends };
|
|
9
35
|
//# sourceMappingURL=get-stockx-trends.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-stockx-trends.d.mts","names":[],"sources":["../../src/actions/get-stockx-trends.ts"],"mappings":";;;cAIa,4BAAA,
|
|
1
|
+
{"version":3,"file":"get-stockx-trends.d.mts","names":[],"sources":["../../src/actions/get-stockx-trends.ts"],"mappings":";;;cAIa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;cAiB5B,6BAAA,EAA6B,CAAA,CAAA,SAAA;;;;;;;;;;;;cAI7B,uBAAA,gCAAuB,wBAAA"}
|
|
@@ -9,14 +9,14 @@ const RetailedGetStockxTrendsInput = z.object({
|
|
|
9
9
|
product_type: z.string().describe("Filter by product type (e.g., sneakers, streetwear)").optional()
|
|
10
10
|
}).describe("Request parameters for retrieving trending product data from StockX.");
|
|
11
11
|
const RetailedGetStockxTrends_TrendProductSchema = z.object({
|
|
12
|
-
id: z.string().describe("Unique StockX product ID"),
|
|
13
|
-
sku: z.string().describe("Product SKU"),
|
|
14
|
-
name: z.string().describe("Product name"),
|
|
15
|
-
slug: z.string().describe("Product slug for URL"),
|
|
16
|
-
brand: z.string().describe("Product brand"),
|
|
12
|
+
id: z.string().describe("Unique StockX product ID").nullable(),
|
|
13
|
+
sku: z.string().describe("Product SKU").nullable(),
|
|
14
|
+
name: z.string().describe("Product name").nullable(),
|
|
15
|
+
slug: z.string().describe("Product slug for URL").nullable(),
|
|
16
|
+
brand: z.string().describe("Product brand").nullable(),
|
|
17
17
|
image: z.string().describe("Product image URL (may be null)").nullable().optional(),
|
|
18
|
-
category: z.string().describe("Product category"),
|
|
19
|
-
release_date: z.string().describe("Date of product release (YYYY-MM-DD)")
|
|
18
|
+
category: z.string().describe("Product category").nullable(),
|
|
19
|
+
release_date: z.string().describe("Date of product release (YYYY-MM-DD)").nullable()
|
|
20
20
|
}).describe("Details of a trending StockX product.");
|
|
21
21
|
const retailedGetStockxTrends = action("RETAILED_GET_STOCKX_TRENDS", {
|
|
22
22
|
slug: "retailed-get-stockx-trends",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-stockx-trends.mjs","names":[],"sources":["../../src/actions/get-stockx-trends.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedGetStockxTrendsInput
|
|
1
|
+
{"version":3,"file":"get-stockx-trends.mjs","names":[],"sources":["../../src/actions/get-stockx-trends.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedGetStockxTrendsInput = z.object({\n page: z.number().int().default(1).describe(\"Page number for pagination (default: 1)\").optional(),\n order: z.enum([\"asc\", \"desc\"]).default(\"desc\").describe(\"Sort order (ascending or descending)\").optional(),\n sort_by: z.string().describe(\"Sort field (e.g., popularity, price)\").optional(),\n per_page: z.number().int().default(20).describe(\"Number of results per page (default: 20)\").optional(),\n product_type: z.string().describe(\"Filter by product type (e.g., sneakers, streetwear)\").optional(),\n}).describe(\"Request parameters for retrieving trending product data from StockX.\");\nconst RetailedGetStockxTrends_TrendProductSchema = z.object({\n id: z.string().describe(\"Unique StockX product ID\").nullable(),\n sku: z.string().describe(\"Product SKU\").nullable(),\n name: z.string().describe(\"Product name\").nullable(),\n slug: z.string().describe(\"Product slug for URL\").nullable(),\n brand: z.string().describe(\"Product brand\").nullable(),\n image: z.string().describe(\"Product image URL (may be null)\").nullable().optional(),\n category: z.string().describe(\"Product category\").nullable(),\n release_date: z.string().describe(\"Date of product release (YYYY-MM-DD)\").nullable(),\n}).describe(\"Details of a trending StockX product.\");\nexport const RetailedGetStockxTrendsOutput = z.object({\n products: z.array(RetailedGetStockxTrends_TrendProductSchema).describe(\"List of trending StockX product details\"),\n}).describe(\"Response schema for trending products from StockX.\\nThis is a list of trending products returned directly from the API.\");\n\nexport const retailedGetStockxTrends = action(\"RETAILED_GET_STOCKX_TRENDS\", {\n slug: \"retailed-get-stockx-trends\",\n name: \"StockX Trends\",\n description: \"Tool to get the latest trending products from StockX. Use when you want to discover current trending items.\",\n input: RetailedGetStockxTrendsInput,\n output: RetailedGetStockxTrendsOutput,\n});\n"],"mappings":";;;AAIA,MAAa,+BAA+B,EAAE,OAAO;CACnD,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;CAC/F,OAAO,EAAE,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CACzG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CAC9E,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS;CACrG,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;AACpG,CAAC,CAAC,CAAC,SAAS,sEAAsE;AAClF,MAAM,6CAA6C,EAAE,OAAO;CAC1D,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS;CAC7D,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,SAAS;CACjD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,SAAS;CACnD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS;CAC3D,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,SAAS;CACrD,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClF,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,SAAS;CAC3D,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;AACrF,CAAC,CAAC,CAAC,SAAS,uCAAuC;AAKnD,MAAa,0BAA0B,OAAO,8BAA8B;CAC1E,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAT2C,EAAE,OAAO,EACpD,UAAU,EAAE,MAAM,0CAA0C,CAAC,CAAC,SAAS,yCAAyC,EAClH,CAAC,CAAC,CAAC,SAAS,yHAOF;AACV,CAAC"}
|
|
@@ -3,7 +3,7 @@ let zod = require("zod");
|
|
|
3
3
|
//#region src/actions/get-usage.ts
|
|
4
4
|
const RetailedGetUsageInput = zod.z.object({}).describe("Request parameters for retrieving API usage statistics.");
|
|
5
5
|
const RetailedGetUsageOutput = zod.z.object({
|
|
6
|
-
plan: zod.z.string().describe("Plan name"),
|
|
6
|
+
plan: zod.z.string().describe("Plan name").nullable(),
|
|
7
7
|
remaining: zod.z.union([zod.z.number().int(), zod.z.string()])
|
|
8
8
|
}).describe("Response model for API usage statistics.");
|
|
9
9
|
const retailedGetUsage = require_action.action("RETAILED_GET_USAGE", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-usage.cjs","names":["z","action"],"sources":["../../src/actions/get-usage.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedGetUsageInput
|
|
1
|
+
{"version":3,"file":"get-usage.cjs","names":["z","action"],"sources":["../../src/actions/get-usage.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedGetUsageInput = z.object({}).describe(\"Request parameters for retrieving API usage statistics.\");\nexport const RetailedGetUsageOutput = z.object({\n plan: z.string().describe(\"Plan name\").nullable(),\n remaining: z.union([z.number().int(), z.string()]),\n}).describe(\"Response model for API usage statistics.\");\n\nexport const retailedGetUsage = action(\"RETAILED_GET_USAGE\", {\n slug: \"retailed-get-usage\",\n name: \"Get API Usage\",\n description: \"Tool to retrieve current API usage statistics. The only mechanism to check remaining API credits; call proactively before long-running analyses to prevent mid-run quota exhaustion.\",\n input: RetailedGetUsageInput,\n output: RetailedGetUsageOutput,\n});\n"],"mappings":";;;AAIA,MAAa,wBAAwBA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,yDAAyD;AACpH,MAAa,yBAAyBA,IAAAA,EAAE,OAAO;CAC7C,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,SAAS;CAChD,WAAWA,IAAAA,EAAE,MAAM,CAACA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,GAAGA,IAAAA,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC,SAAS,0CAA0C;AAEtD,MAAa,mBAAmBC,eAAAA,OAAO,sBAAsB;CAC3D,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
3
|
//#region src/actions/get-usage.d.ts
|
|
4
|
-
declare const RetailedGetUsageInput: z.
|
|
5
|
-
declare const RetailedGetUsageOutput: z.
|
|
6
|
-
|
|
4
|
+
declare const RetailedGetUsageInput: z.ZodObject<{}, z.core.$strip>;
|
|
5
|
+
declare const RetailedGetUsageOutput: z.ZodObject<{
|
|
6
|
+
plan: z.ZodNullable<z.ZodString>;
|
|
7
|
+
remaining: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
declare const retailedGetUsage: import("@keystrokehq/action").WorkflowActionDefinition<Record<string, never>, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
10
|
//#endregion
|
|
8
11
|
export { retailedGetUsage };
|
|
9
12
|
//# sourceMappingURL=get-usage.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-usage.d.cts","names":[],"sources":["../../src/actions/get-usage.ts"],"mappings":";;;cAIa,qBAAA,
|
|
1
|
+
{"version":3,"file":"get-usage.d.cts","names":[],"sources":["../../src/actions/get-usage.ts"],"mappings":";;;cAIa,qBAAA,EAAqB,CAAA,CAAA,SAAA,KAAA,CAAA,CAAA,IAAA,CAAA,MAAA;AAAA,cACrB,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;cAKtB,gBAAA,gCAAgB,wBAAA,CAAA,MAAA,wDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
3
|
//#region src/actions/get-usage.d.ts
|
|
4
|
-
declare const RetailedGetUsageInput: z.
|
|
5
|
-
declare const RetailedGetUsageOutput: z.
|
|
6
|
-
|
|
4
|
+
declare const RetailedGetUsageInput: z.ZodObject<{}, z.core.$strip>;
|
|
5
|
+
declare const RetailedGetUsageOutput: z.ZodObject<{
|
|
6
|
+
plan: z.ZodNullable<z.ZodString>;
|
|
7
|
+
remaining: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
declare const retailedGetUsage: import("@keystrokehq/action").WorkflowActionDefinition<Record<string, never>, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
10
|
//#endregion
|
|
8
11
|
export { retailedGetUsage };
|
|
9
12
|
//# sourceMappingURL=get-usage.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-usage.d.mts","names":[],"sources":["../../src/actions/get-usage.ts"],"mappings":";;;cAIa,qBAAA,
|
|
1
|
+
{"version":3,"file":"get-usage.d.mts","names":[],"sources":["../../src/actions/get-usage.ts"],"mappings":";;;cAIa,qBAAA,EAAqB,CAAA,CAAA,SAAA,KAAA,CAAA,CAAA,IAAA,CAAA,MAAA;AAAA,cACrB,sBAAA,EAAsB,CAAA,CAAA,SAAA;;;;cAKtB,gBAAA,gCAAgB,wBAAA,CAAA,MAAA,wDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -6,7 +6,7 @@ const retailedGetUsage = action("RETAILED_GET_USAGE", {
|
|
|
6
6
|
description: "Tool to retrieve current API usage statistics. The only mechanism to check remaining API credits; call proactively before long-running analyses to prevent mid-run quota exhaustion.",
|
|
7
7
|
input: z.object({}).describe("Request parameters for retrieving API usage statistics."),
|
|
8
8
|
output: z.object({
|
|
9
|
-
plan: z.string().describe("Plan name"),
|
|
9
|
+
plan: z.string().describe("Plan name").nullable(),
|
|
10
10
|
remaining: z.union([z.number().int(), z.string()])
|
|
11
11
|
}).describe("Response model for API usage statistics.")
|
|
12
12
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-usage.mjs","names":[],"sources":["../../src/actions/get-usage.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedGetUsageInput
|
|
1
|
+
{"version":3,"file":"get-usage.mjs","names":[],"sources":["../../src/actions/get-usage.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedGetUsageInput = z.object({}).describe(\"Request parameters for retrieving API usage statistics.\");\nexport const RetailedGetUsageOutput = z.object({\n plan: z.string().describe(\"Plan name\").nullable(),\n remaining: z.union([z.number().int(), z.string()]),\n}).describe(\"Response model for API usage statistics.\");\n\nexport const retailedGetUsage = action(\"RETAILED_GET_USAGE\", {\n slug: \"retailed-get-usage\",\n name: \"Get API Usage\",\n description: \"Tool to retrieve current API usage statistics. The only mechanism to check remaining API credits; call proactively before long-running analyses to prevent mid-run quota exhaustion.\",\n input: RetailedGetUsageInput,\n output: RetailedGetUsageOutput,\n});\n"],"mappings":";;AAUA,MAAa,mBAAmB,OAAO,sBAAsB;CAC3D,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAVmC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,yDAUlD;CACP,QAVoC,EAAE,OAAO;EAC7C,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,SAAS;EAChD,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC;CACnD,CAAC,CAAC,CAAC,SAAS,0CAOF;AACV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-products.cjs","names":["z","action"],"sources":["../../src/actions/search-products.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedSearchProductsInput
|
|
1
|
+
{"version":3,"file":"search-products.cjs","names":["z","action"],"sources":["../../src/actions/search-products.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedSearchProductsInput = z.object({\n page: z.number().int().default(1).describe(\"Page number for pagination (default: 1).\").optional(),\n sort: z.string().describe(\"Field to sort by. Prefix with '-' for descending order.\").optional(),\n limit: z.number().int().default(10).describe(\"Number of products per page (default: 10, max: 100). Queries with many matches silently return only the first page; always manage `page` and `limit` explicitly when iterating full result sets.\").optional(),\n domain: z.string().describe(\"Filter by domain (e.g., 'stockx.com', 'goat.com').\").optional(),\n source: z.string().describe(\"Filter by source/marketplace name (e.g., 'stockx-us', 'goat-us').\").optional(),\n}).describe(\"Request parameters for searching products in Retailed database.\\nUses Retailed's granular querying language for filtering.\");\nconst RetailedSearchProducts_ProductSchema = z.object({\n id: z.number().int().describe(\"Product database ID.\").nullable().optional(),\n sku: z.string().describe(\"Product SKU.\").nullable().optional(),\n url: z.string().describe(\"Product URL.\").nullable().optional(),\n name: z.string().describe(\"Source name (e.g., stockx-us).\").nullable().optional(),\n price: z.number().describe(\"Product price.\").nullable().optional(),\n title: z.string().describe(\"Product title.\").nullable().optional(),\n domain: z.string().describe(\"Source domain (e.g., stockx.com).\").nullable().optional(),\n images: z.array(z.string()).describe(\"Product image URLs.\").nullable().optional(),\n country: z.string().describe(\"Country code.\").nullable().optional(),\n urlSlug: z.string().describe(\"URL slug.\").nullable().optional(),\n currency: z.string().describe(\"Currency code.\").nullable().optional(),\n variants: z.array(z.record(z.string(), z.unknown())).describe(\"Product variants.\").nullable().optional(),\n condition: z.string().describe(\"Product condition.\").nullable().optional(),\n createdAt: z.string().describe(\"Creation timestamp.\").nullable().optional(),\n productId: z.string().describe(\"Unique product identifier.\").nullable().optional(),\n salePrice: z.number().describe(\"Sale price.\").nullable().optional(),\n updatedAt: z.string().describe(\"Last update timestamp.\").nullable().optional(),\n description: z.string().describe(\"Product description.\").nullable().optional(),\n availability: z.string().describe(\"Availability status.\").nullable().optional(),\n currencySymbol: z.string().describe(\"Currency symbol.\").nullable().optional(),\n lowestRecordedPrice: z.number().describe(\"Lowest recorded price.\").nullable().optional(),\n highestRecordedPrice: z.number().describe(\"Highest recorded price.\").nullable().optional(),\n}).passthrough().describe(\"Product data model from Retailed database.\");\nexport const RetailedSearchProductsOutput = z.object({\n docs: z.array(RetailedSearchProducts_ProductSchema).describe(\"List of matching products.\").nullable().optional(),\n page: z.number().int().describe(\"Current page number.\").nullable().optional(),\n limit: z.number().int().describe(\"Number of products per page.\").nullable().optional(),\n nextPage: z.number().int().describe(\"Next page number.\").nullable().optional(),\n prevPage: z.number().int().describe(\"Previous page number.\").nullable().optional(),\n totalDocs: z.number().int().describe(\"Total number of matched products.\").nullable().optional(),\n totalPages: z.number().int().describe(\"Total number of pages.\").nullable().optional(),\n hasNextPage: z.boolean().describe(\"Whether next page exists.\").nullable().optional(),\n hasPrevPage: z.boolean().describe(\"Whether previous page exists.\").nullable().optional(),\n pagingCounter: z.number().int().describe(\"Starting index.\").nullable().optional(),\n}).passthrough().describe(\"Response model for Retailed database products search.\");\n\nexport const retailedSearchProducts = action(\"RETAILED_SEARCH_PRODUCTS\", {\n slug: \"retailed-search-products\",\n name: \"Search Products\",\n description: \"Search for products in Retailed database matching query criteria. Uses Retailed's granular querying language with support for filtering by name, SKU, brand. SKUs and size labels are not standardized across sources; normalize product IDs and size labels before comparing results across marketplaces.\",\n input: RetailedSearchProductsInput,\n output: RetailedSearchProductsOutput,\n});\n"],"mappings":"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"}
|
|
@@ -1,9 +1,55 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
3
|
//#region src/actions/search-products.d.ts
|
|
4
|
-
declare const RetailedSearchProductsInput: z.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
declare const RetailedSearchProductsInput: z.ZodObject<{
|
|
5
|
+
page: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
6
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
7
|
+
limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
8
|
+
domain: z.ZodOptional<z.ZodString>;
|
|
9
|
+
source: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
declare const RetailedSearchProductsOutput: z.ZodObject<{
|
|
12
|
+
docs: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
13
|
+
id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
14
|
+
sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
15
|
+
url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
16
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
17
|
+
price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
18
|
+
title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
19
|
+
domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
20
|
+
images: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
21
|
+
country: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
22
|
+
urlSlug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
23
|
+
currency: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
24
|
+
variants: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
|
|
25
|
+
condition: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26
|
+
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
27
|
+
productId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
28
|
+
salePrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
29
|
+
updatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
30
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
31
|
+
availability: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
32
|
+
currencySymbol: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
33
|
+
lowestRecordedPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
34
|
+
highestRecordedPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
35
|
+
}, z.core.$loose>>>>;
|
|
36
|
+
page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
37
|
+
limit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
38
|
+
nextPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
39
|
+
prevPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
40
|
+
totalDocs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
41
|
+
totalPages: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
42
|
+
hasNextPage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
43
|
+
hasPrevPage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
44
|
+
pagingCounter: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
45
|
+
}, z.core.$loose>;
|
|
46
|
+
declare const retailedSearchProducts: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
47
|
+
page?: number | undefined;
|
|
48
|
+
sort?: string | undefined;
|
|
49
|
+
limit?: number | undefined;
|
|
50
|
+
domain?: string | undefined;
|
|
51
|
+
source?: string | undefined;
|
|
52
|
+
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
53
|
//#endregion
|
|
8
54
|
export { retailedSearchProducts };
|
|
9
55
|
//# sourceMappingURL=search-products.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-products.d.cts","names":[],"sources":["../../src/actions/search-products.ts"],"mappings":";;;cAIa,2BAAA,
|
|
1
|
+
{"version":3,"file":"search-products.d.cts","names":[],"sources":["../../src/actions/search-products.ts"],"mappings":";;;cAIa,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;cA+B3B,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAa5B,sBAAA,gCAAsB,wBAAA"}
|
|
@@ -1,9 +1,55 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
3
|
//#region src/actions/search-products.d.ts
|
|
4
|
-
declare const RetailedSearchProductsInput: z.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
declare const RetailedSearchProductsInput: z.ZodObject<{
|
|
5
|
+
page: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
6
|
+
sort: z.ZodOptional<z.ZodString>;
|
|
7
|
+
limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
8
|
+
domain: z.ZodOptional<z.ZodString>;
|
|
9
|
+
source: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
declare const RetailedSearchProductsOutput: z.ZodObject<{
|
|
12
|
+
docs: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
13
|
+
id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
14
|
+
sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
15
|
+
url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
16
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
17
|
+
price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
18
|
+
title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
19
|
+
domain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
20
|
+
images: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
21
|
+
country: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
22
|
+
urlSlug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
23
|
+
currency: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
24
|
+
variants: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
|
|
25
|
+
condition: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26
|
+
createdAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
27
|
+
productId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
28
|
+
salePrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
29
|
+
updatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
30
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
31
|
+
availability: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
32
|
+
currencySymbol: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
33
|
+
lowestRecordedPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
34
|
+
highestRecordedPrice: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
35
|
+
}, z.core.$loose>>>>;
|
|
36
|
+
page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
37
|
+
limit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
38
|
+
nextPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
39
|
+
prevPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
40
|
+
totalDocs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
41
|
+
totalPages: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
42
|
+
hasNextPage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
43
|
+
hasPrevPage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
44
|
+
pagingCounter: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
45
|
+
}, z.core.$loose>;
|
|
46
|
+
declare const retailedSearchProducts: import("@keystrokehq/action").WorkflowActionDefinition<{
|
|
47
|
+
page?: number | undefined;
|
|
48
|
+
sort?: string | undefined;
|
|
49
|
+
limit?: number | undefined;
|
|
50
|
+
domain?: string | undefined;
|
|
51
|
+
source?: string | undefined;
|
|
52
|
+
}, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
53
|
//#endregion
|
|
8
54
|
export { retailedSearchProducts };
|
|
9
55
|
//# sourceMappingURL=search-products.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-products.d.mts","names":[],"sources":["../../src/actions/search-products.ts"],"mappings":";;;cAIa,2BAAA,
|
|
1
|
+
{"version":3,"file":"search-products.d.mts","names":[],"sources":["../../src/actions/search-products.ts"],"mappings":";;;cAIa,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;cA+B3B,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAa5B,sBAAA,gCAAsB,wBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-products.mjs","names":[],"sources":["../../src/actions/search-products.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedSearchProductsInput
|
|
1
|
+
{"version":3,"file":"search-products.mjs","names":[],"sources":["../../src/actions/search-products.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const RetailedSearchProductsInput = z.object({\n page: z.number().int().default(1).describe(\"Page number for pagination (default: 1).\").optional(),\n sort: z.string().describe(\"Field to sort by. Prefix with '-' for descending order.\").optional(),\n limit: z.number().int().default(10).describe(\"Number of products per page (default: 10, max: 100). Queries with many matches silently return only the first page; always manage `page` and `limit` explicitly when iterating full result sets.\").optional(),\n domain: z.string().describe(\"Filter by domain (e.g., 'stockx.com', 'goat.com').\").optional(),\n source: z.string().describe(\"Filter by source/marketplace name (e.g., 'stockx-us', 'goat-us').\").optional(),\n}).describe(\"Request parameters for searching products in Retailed database.\\nUses Retailed's granular querying language for filtering.\");\nconst RetailedSearchProducts_ProductSchema = z.object({\n id: z.number().int().describe(\"Product database ID.\").nullable().optional(),\n sku: z.string().describe(\"Product SKU.\").nullable().optional(),\n url: z.string().describe(\"Product URL.\").nullable().optional(),\n name: z.string().describe(\"Source name (e.g., stockx-us).\").nullable().optional(),\n price: z.number().describe(\"Product price.\").nullable().optional(),\n title: z.string().describe(\"Product title.\").nullable().optional(),\n domain: z.string().describe(\"Source domain (e.g., stockx.com).\").nullable().optional(),\n images: z.array(z.string()).describe(\"Product image URLs.\").nullable().optional(),\n country: z.string().describe(\"Country code.\").nullable().optional(),\n urlSlug: z.string().describe(\"URL slug.\").nullable().optional(),\n currency: z.string().describe(\"Currency code.\").nullable().optional(),\n variants: z.array(z.record(z.string(), z.unknown())).describe(\"Product variants.\").nullable().optional(),\n condition: z.string().describe(\"Product condition.\").nullable().optional(),\n createdAt: z.string().describe(\"Creation timestamp.\").nullable().optional(),\n productId: z.string().describe(\"Unique product identifier.\").nullable().optional(),\n salePrice: z.number().describe(\"Sale price.\").nullable().optional(),\n updatedAt: z.string().describe(\"Last update timestamp.\").nullable().optional(),\n description: z.string().describe(\"Product description.\").nullable().optional(),\n availability: z.string().describe(\"Availability status.\").nullable().optional(),\n currencySymbol: z.string().describe(\"Currency symbol.\").nullable().optional(),\n lowestRecordedPrice: z.number().describe(\"Lowest recorded price.\").nullable().optional(),\n highestRecordedPrice: z.number().describe(\"Highest recorded price.\").nullable().optional(),\n}).passthrough().describe(\"Product data model from Retailed database.\");\nexport const RetailedSearchProductsOutput = z.object({\n docs: z.array(RetailedSearchProducts_ProductSchema).describe(\"List of matching products.\").nullable().optional(),\n page: z.number().int().describe(\"Current page number.\").nullable().optional(),\n limit: z.number().int().describe(\"Number of products per page.\").nullable().optional(),\n nextPage: z.number().int().describe(\"Next page number.\").nullable().optional(),\n prevPage: z.number().int().describe(\"Previous page number.\").nullable().optional(),\n totalDocs: z.number().int().describe(\"Total number of matched products.\").nullable().optional(),\n totalPages: z.number().int().describe(\"Total number of pages.\").nullable().optional(),\n hasNextPage: z.boolean().describe(\"Whether next page exists.\").nullable().optional(),\n hasPrevPage: z.boolean().describe(\"Whether previous page exists.\").nullable().optional(),\n pagingCounter: z.number().int().describe(\"Starting index.\").nullable().optional(),\n}).passthrough().describe(\"Response model for Retailed database products search.\");\n\nexport const retailedSearchProducts = action(\"RETAILED_SEARCH_PRODUCTS\", {\n slug: \"retailed-search-products\",\n name: \"Search Products\",\n description: \"Search for products in Retailed database matching query criteria. Uses Retailed's granular querying language with support for filtering by name, SKU, brand. SKUs and size labels are not standardized across sources; normalize product IDs and size labels before comparing results across marketplaces.\",\n input: RetailedSearchProductsInput,\n output: RetailedSearchProductsOutput,\n});\n"],"mappings":"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"}
|
package/dist/catalog.cjs
CHANGED
|
@@ -7,7 +7,13 @@ const retailedCatalog = {
|
|
|
7
7
|
"category": "eCommerce",
|
|
8
8
|
"logo": "https://logos.composio.dev/api/retailed",
|
|
9
9
|
"authKind": "keystroke",
|
|
10
|
-
"oauthScopes": []
|
|
10
|
+
"oauthScopes": [],
|
|
11
|
+
"credentialFields": { "api_key": {
|
|
12
|
+
"label": "Retailed API Key",
|
|
13
|
+
"secret": true,
|
|
14
|
+
"description": "The API key used for authenticating requests to the Retailed API."
|
|
15
|
+
} },
|
|
16
|
+
"credentialScheme": "API_KEY"
|
|
11
17
|
};
|
|
12
18
|
//#endregion
|
|
13
19
|
exports.retailedCatalog = retailedCatalog;
|
package/dist/catalog.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.cjs","names":[],"sources":["../src/catalog.ts"],"sourcesContent":["/** Generated — kept in sync with src/app.ts. */\nexport const retailedCatalog = {\n \"slug\": \"retailed\",\n \"name\": \"Retailed\",\n \"description\": \"Retailed is a global developer-first platform providing retail and resale marketplace APIs with access to product data, pricing information, and inventory management from major platforms like StockX, GOAT, Chrono24, and 50+ retail websites including sneakers, streetwear, watches, and luxury goods.\",\n \"category\": \"eCommerce\",\n \"logo\": \"https://logos.composio.dev/api/retailed\",\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;
|
|
1
|
+
{"version":3,"file":"catalog.cjs","names":[],"sources":["../src/catalog.ts"],"sourcesContent":["/** Generated — kept in sync with src/app.ts. */\nexport const retailedCatalog = {\n \"slug\": \"retailed\",\n \"name\": \"Retailed\",\n \"description\": \"Retailed is a global developer-first platform providing retail and resale marketplace APIs with access to product data, pricing information, and inventory management from major platforms like StockX, GOAT, Chrono24, and 50+ retail websites including sneakers, streetwear, watches, and luxury goods.\",\n \"category\": \"eCommerce\",\n \"logo\": \"https://logos.composio.dev/api/retailed\",\n \"authKind\": \"keystroke\",\n \"oauthScopes\": [],\n \"credentialFields\": {\n \"api_key\": {\n \"label\": \"Retailed API Key\",\n \"secret\": true,\n \"description\": \"The API key used for authenticating requests to the Retailed API.\"\n }\n },\n \"credentialScheme\": \"API_KEY\"\n} as const;\n"],"mappings":";;AACA,MAAa,kBAAkB;CAC7B,QAAQ;CACR,QAAQ;CACR,eAAe;CACf,YAAY;CACZ,QAAQ;CACR,YAAY;CACZ,eAAe,CAAC;CAChB,oBAAoB,EAClB,WAAW;EACT,SAAS;EACT,UAAU;EACV,eAAe;CACjB,EACF;CACA,oBAAoB;AACtB"}
|
package/dist/catalog.d.cts
CHANGED
|
@@ -8,6 +8,14 @@ declare const retailedCatalog: {
|
|
|
8
8
|
readonly logo: "https://logos.composio.dev/api/retailed";
|
|
9
9
|
readonly authKind: "keystroke";
|
|
10
10
|
readonly oauthScopes: readonly [];
|
|
11
|
+
readonly credentialFields: {
|
|
12
|
+
readonly api_key: {
|
|
13
|
+
readonly label: "Retailed API Key";
|
|
14
|
+
readonly secret: true;
|
|
15
|
+
readonly description: "The API key used for authenticating requests to the Retailed API.";
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
readonly credentialScheme: "API_KEY";
|
|
11
19
|
};
|
|
12
20
|
//#endregion
|
|
13
21
|
export { retailedCatalog };
|
package/dist/catalog.d.mts
CHANGED
|
@@ -8,6 +8,14 @@ declare const retailedCatalog: {
|
|
|
8
8
|
readonly logo: "https://logos.composio.dev/api/retailed";
|
|
9
9
|
readonly authKind: "keystroke";
|
|
10
10
|
readonly oauthScopes: readonly [];
|
|
11
|
+
readonly credentialFields: {
|
|
12
|
+
readonly api_key: {
|
|
13
|
+
readonly label: "Retailed API Key";
|
|
14
|
+
readonly secret: true;
|
|
15
|
+
readonly description: "The API key used for authenticating requests to the Retailed API.";
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
readonly credentialScheme: "API_KEY";
|
|
11
19
|
};
|
|
12
20
|
//#endregion
|
|
13
21
|
export { retailedCatalog };
|
package/dist/catalog.mjs
CHANGED
|
@@ -7,7 +7,13 @@ const retailedCatalog = {
|
|
|
7
7
|
"category": "eCommerce",
|
|
8
8
|
"logo": "https://logos.composio.dev/api/retailed",
|
|
9
9
|
"authKind": "keystroke",
|
|
10
|
-
"oauthScopes": []
|
|
10
|
+
"oauthScopes": [],
|
|
11
|
+
"credentialFields": { "api_key": {
|
|
12
|
+
"label": "Retailed API Key",
|
|
13
|
+
"secret": true,
|
|
14
|
+
"description": "The API key used for authenticating requests to the Retailed API."
|
|
15
|
+
} },
|
|
16
|
+
"credentialScheme": "API_KEY"
|
|
11
17
|
};
|
|
12
18
|
//#endregion
|
|
13
19
|
export { retailedCatalog };
|
package/dist/catalog.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.mjs","names":[],"sources":["../src/catalog.ts"],"sourcesContent":["/** Generated — kept in sync with src/app.ts. */\nexport const retailedCatalog = {\n \"slug\": \"retailed\",\n \"name\": \"Retailed\",\n \"description\": \"Retailed is a global developer-first platform providing retail and resale marketplace APIs with access to product data, pricing information, and inventory management from major platforms like StockX, GOAT, Chrono24, and 50+ retail websites including sneakers, streetwear, watches, and luxury goods.\",\n \"category\": \"eCommerce\",\n \"logo\": \"https://logos.composio.dev/api/retailed\",\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;
|
|
1
|
+
{"version":3,"file":"catalog.mjs","names":[],"sources":["../src/catalog.ts"],"sourcesContent":["/** Generated — kept in sync with src/app.ts. */\nexport const retailedCatalog = {\n \"slug\": \"retailed\",\n \"name\": \"Retailed\",\n \"description\": \"Retailed is a global developer-first platform providing retail and resale marketplace APIs with access to product data, pricing information, and inventory management from major platforms like StockX, GOAT, Chrono24, and 50+ retail websites including sneakers, streetwear, watches, and luxury goods.\",\n \"category\": \"eCommerce\",\n \"logo\": \"https://logos.composio.dev/api/retailed\",\n \"authKind\": \"keystroke\",\n \"oauthScopes\": [],\n \"credentialFields\": {\n \"api_key\": {\n \"label\": \"Retailed API Key\",\n \"secret\": true,\n \"description\": \"The API key used for authenticating requests to the Retailed API.\"\n }\n },\n \"credentialScheme\": \"API_KEY\"\n} as const;\n"],"mappings":";;AACA,MAAa,kBAAkB;CAC7B,QAAQ;CACR,QAAQ;CACR,eAAe;CACf,YAAY;CACZ,QAAQ;CACR,YAAY;CACZ,eAAe,CAAC;CAChB,oBAAoB,EAClB,WAAW;EACT,SAAS;EACT,UAAU;EACV,eAAe;CACjB,EACF;CACA,oBAAoB;AACtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keystrokehq/retailed",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@keystrokehq/keystroke": "
|
|
34
|
+
"@keystrokehq/keystroke": ">=0.1.4",
|
|
35
35
|
"zod": "^4.4.3"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|