otomato-sdk 2.0.327 → 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.
|
@@ -241,7 +241,7 @@ export const TRIGGERS = {
|
|
|
241
241
|
"image": "https://otomato-sdk-images.s3.eu-west-1.amazonaws.com/every_hour_trigger.png",
|
|
242
242
|
"EVERY_PERIOD": {
|
|
243
243
|
"name": "Every period",
|
|
244
|
-
"dynamicName": "async (env, { otomatoSDK }) => {\n const {
|
|
244
|
+
"dynamicName": "async (env, { otomatoSDK }) => {\n const { formatMilliSecondsToHumanReadable } = otomatoSDK;\n return `Every ${formatMilliSecondsToHumanReadable(env.parameters.period)}`\n }",
|
|
245
245
|
"type": 4,
|
|
246
246
|
"description": "Triggers the workflow every period (e.g every hour)",
|
|
247
247
|
"parameters": [
|
|
@@ -297,7 +297,7 @@ export const TRIGGERS = {
|
|
|
297
297
|
"image": "https://otomato-sdk-images.s3.eu-west-1.amazonaws.com/every_hour_trigger.png",
|
|
298
298
|
"EVERY_PERIOD": {
|
|
299
299
|
"name": "Every period",
|
|
300
|
-
"dynamicName": "async (env, { otomatoSDK }) => {\n const {
|
|
300
|
+
"dynamicName": "async (env, { otomatoSDK }) => {\n const { formatMilliSecondsToHumanReadable } = otomatoSDK;\n return `Every ${formatMilliSecondsToHumanReadable(env.parameters.period)}`\n }",
|
|
301
301
|
"type": 4,
|
|
302
302
|
"description": "Triggers the workflow every period (e.g every hour)",
|
|
303
303
|
"parameters": [
|
|
@@ -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/
|
|
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",
|
|
@@ -7476,7 +7476,7 @@ export const ACTIONS = {
|
|
|
7476
7476
|
"image": "https://otomato-sdk-images.s3.eu-west-1.amazonaws.com/delay.png",
|
|
7477
7477
|
"WAIT_FOR": {
|
|
7478
7478
|
"name": "Wait for",
|
|
7479
|
-
"dynamicName": "async (env, { otomatoSDK }) => {\n const {
|
|
7479
|
+
"dynamicName": "async (env, { otomatoSDK }) => {\n const { formatMilliSecondsToHumanReadable } = otomatoSDK;\n return `<div>Wait for ${formatMilliSecondsToHumanReadable(env.parameters.time)}</div>`;\n }",
|
|
7480
7480
|
"type": 2,
|
|
7481
7481
|
"description": "Wait before executing the following blocks",
|
|
7482
7482
|
"output": {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "2.0.
|
|
1
|
+
export declare const SDK_VERSION = "2.0.329";
|
|
2
2
|
export declare function compareVersions(v1: string, v2: string): number;
|