otomato-sdk 2.0.328 → 2.0.329

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.
@@ -6378,7 +6378,7 @@ export const TRIGGERS = {
6378
6378
  "dynamicName": "async (env, { otomatoSDK }) => {\n const { getDynamicNameWrapperHTML, getComparisonString } = otomatoSDK;\n return getDynamicNameWrapperHTML(\n env.context.name,\n `${getComparisonString(env.parameters.condition, env.parameters.comparisonValue)}`\n );\n }",
6379
6379
  "description": "Monitor the price of a specific outcome in a Polymarket prediction market",
6380
6380
  "type": 3,
6381
- "blockData": "\n async (env) => {\n const {\n parameters,\n page = 1,\n limit = 10,\n fieldFunctionName,\n id,\n query\n } = env;\n const offset = env.offset ?? (page - 1) * limit;\n\n let renderEnumData = [];\n\n // Helper function to safely parse outcomes/prices\n const safeParseArray = (value) => {\n if (!value) return [];\n if (Array.isArray(value)) return value;\n if (typeof value === 'string') {\n try {\n return JSON.parse(value);\n } catch (e) {\n // If JSON.parse fails, try to split by comma\n return value.split(',').map(s => s.trim());\n }\n }\n return [];\n };\n\n const safeParseNumericArray = (value) => {\n if (!value) return [];\n if (Array.isArray(value)) return value.map(v => parseFloat(v));\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.map(v => parseFloat(v)) : [];\n } catch (e) {\n // If JSON.parse fails, try to split by comma\n return value.split(',').map(s => parseFloat(s.trim()));\n }\n }\n return [];\n };\n\n if (fieldFunctionName === 'renderEnumData') {\n\n let queryId = id;\n let conditionId = null;\n\n if (id && id.includes('-')) {\n queryId = id.split('-')[0];\n conditionId = id.split('-')[1];\n }\n\n const url = query\n ? `https://polymarket.com/api/events/search?_q=${query}&_p=${page}`\n : `https://gamma-api.polymarket.com/events?offset=${offset}&limit=${limit}&active=true&ascending=false&order=startDate&closed=false${queryId ? `&id=${queryId}` : ''}`;\n const response = await fetch(url, {\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n });\n\n if (!response.ok) {\n console.error('Failed to fetch Polymarket markets');\n return [];\n }\n\n const result = await response.json();\n\n const markets = query ? result.events : result;\n\n const availableMarkets = markets\n .filter(market => !market.closed && market.active)\n .map(market => (\n {\n id: market.id,\n title: market.title, \n image: market.image || '',\n markets: market.markets\n .filter(mkt => !mkt.closed && mkt.active && (conditionId ? mkt.conditionId === conditionId : true))\n .map(mkt => ({\n id: mkt.id,\n question: mkt.groupItemTitle,\n condition_id: mkt.conditionId,\n question_id: mkt.questionID,\n outcomes: safeParseArray(mkt.outcomes),\n outcome_prices: safeParseNumericArray(mkt.outcomePrices),\n clobTokenIds: safeParseArray(mkt.clobTokenIds)\n }))\n }\n ));\n renderEnumData = availableMarkets;\n }\n\n return {\n renderEnumData\n };\n }",
6381
+ "blockData": "\n async (env) => {\n const {\n parameters,\n page = 1,\n limit = 10,\n fieldFunctionName,\n id,\n query\n } = env;\n const offset = env.offset ?? (page - 1) * limit;\n\n let renderEnumData = [];\n\n // Helper function to safely parse outcomes/prices\n const safeParseArray = (value) => {\n if (!value) return [];\n if (Array.isArray(value)) return value;\n if (typeof value === 'string') {\n try {\n return JSON.parse(value);\n } catch (e) {\n // If JSON.parse fails, try to split by comma\n return value.split(',').map(s => s.trim());\n }\n }\n return [];\n };\n\n const safeParseNumericArray = (value) => {\n if (!value) return [];\n if (Array.isArray(value)) return value.map(v => parseFloat(v));\n if (typeof value === 'string') {\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.map(v => parseFloat(v)) : [];\n } catch (e) {\n // If JSON.parse fails, try to split by comma\n return value.split(',').map(s => parseFloat(s.trim()));\n }\n }\n return [];\n };\n\n if (fieldFunctionName === 'renderEnumData') {\n\n let queryId = id;\n let conditionId = null;\n\n if (id && id.includes('-')) {\n queryId = id.split('-')[0];\n conditionId = id.split('-')[1];\n }\n\n const url = query\n ? `https://gamma-api.polymarket.com/public-search?q=${query}&page=${page}`\n : `https://gamma-api.polymarket.com/events?offset=${offset}&limit=${limit}&active=true&ascending=false&order=startDate&closed=false${queryId ? `&id=${queryId}` : ''}`;\n const response = await fetch(url, {\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n });\n\n if (!response.ok) {\n console.error('Failed to fetch Polymarket markets');\n return [];\n }\n\n const result = await response.json();\n\n // Handle both old and new API response formats\n let markets;\n if (query) {\n // Search API response - could be events or direct markets\n markets = result.events || result;\n } else {\n // Direct API response - could be array of events or markets\n markets = Array.isArray(result) ? result : [result];\n }\n\n const availableMarkets = markets\n .filter(market => {\n // Handle both event-level and market-level filtering\n if (market.markets) {\n // This is an event with nested markets\n return !market.closed && market.active;\n } else {\n // This is a direct market\n return !market.closed && market.active;\n }\n })\n .map(market => {\n // Handle event with nested markets\n if (market.markets && Array.isArray(market.markets)) {\n return {\n id: market.id,\n title: market.title, \n image: market.image || market.icon || '',\n slug: market.slug,\n description: market.description,\n volume: market.volume,\n markets: market.markets\n .filter(mkt => !mkt.closed && mkt.active && (conditionId ? mkt.conditionId === conditionId : true))\n .map(mkt => ({\n id: mkt.id,\n question: mkt.question || mkt.groupItemTitle,\n condition_id: mkt.conditionId,\n question_id: mkt.questionID,\n outcomes: safeParseArray(mkt.outcomes),\n outcome_prices: safeParseNumericArray(mkt.outcomePrices),\n clobTokenIds: safeParseArray(mkt.clobTokenIds),\n volume: mkt.volume || mkt.volumeNum,\n slug: mkt.slug,\n end_date: mkt.endDate,\n start_date: mkt.startDate,\n last_trade_price: mkt.lastTradePrice,\n group_item_title: mkt.groupItemTitle\n }))\n };\n } else {\n // Handle direct market format (fallback for old API)\n return {\n id: market.id,\n title: market.question || market.title,\n image: market.image || market.icon || '',\n slug: market.slug,\n description: market.description,\n volume: market.volume || market.volumeNum,\n markets: [{\n id: market.id,\n question: market.question || market.groupItemTitle,\n condition_id: market.conditionId,\n question_id: market.questionID,\n outcomes: safeParseArray(market.outcomes),\n outcome_prices: safeParseNumericArray(market.outcomePrices),\n clobTokenIds: safeParseArray(market.clobTokenIds),\n volume: market.volume || market.volumeNum,\n slug: market.slug,\n end_date: market.endDate,\n start_date: market.startDate,\n last_trade_price: market.lastTradePrice,\n group_item_title: market.groupItemTitle\n }]\n };\n }\n })\n .filter(market => market.markets && market.markets.length > 0); // Only include events that have active markets\n renderEnumData = availableMarkets;\n }\n\n return {\n renderEnumData\n };\n }",
6382
6382
  "output": {
6383
6383
  "price": "float",
6384
6384
  "outcome": "string",
@@ -1,4 +1,4 @@
1
- export const SDK_VERSION = '2.0.328';
1
+ export const SDK_VERSION = '2.0.329';
2
2
  export function compareVersions(v1, v2) {
3
3
  // Split the version strings into parts
4
4
  const v1Parts = v1.split('.').map(Number);
@@ -1,2 +1,2 @@
1
- export declare const SDK_VERSION = "2.0.328";
1
+ export declare const SDK_VERSION = "2.0.329";
2
2
  export declare function compareVersions(v1: string, v2: string): number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "otomato-sdk",
3
- "version": "2.0.328",
3
+ "version": "2.0.329",
4
4
  "description": "An SDK for building and managing automations on Otomato",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/types/src/index.d.ts",