first commit
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import { readFileSync } from 'fs';
|
||||
import type { n8n } from 'n8n-core';
|
||||
import { jsonParse } from 'n8n-workflow';
|
||||
import { join, resolve } from 'path';
|
||||
|
||||
// Helper function to get n8n version that can be mocked in tests
|
||||
export const getN8NVersion = (): string => {
|
||||
if (process.env.N8N_VERSION) {
|
||||
return process.env.N8N_VERSION;
|
||||
}
|
||||
|
||||
try {
|
||||
const PACKAGE_DIR = resolve(__dirname, '../../../');
|
||||
const packageJsonPath = join(PACKAGE_DIR, 'package.json');
|
||||
const n8nPackageJson = jsonParse<n8n.PackageJson>(readFileSync(packageJsonPath, 'utf8'));
|
||||
return n8nPackageJson.version;
|
||||
} catch (error) {
|
||||
// Fallback version
|
||||
return '0.0.0';
|
||||
}
|
||||
};
|
||||
|
||||
export const N8N_VERSION = getN8NVersion();
|
||||
|
||||
export const BASE_URL = process.env.AIRTOP_BASE_URL ?? 'https://api.airtop.ai/api/v1';
|
||||
export const BASE_URL_V2 = process.env.AIRTOP_BASE_URL_V2 ?? 'https://api.airtop.ai/api/v2';
|
||||
export const AIRTOP_HOOKS_BASE_URL =
|
||||
process.env.AIRTOP_HOOKS_BASE_URL ?? 'https://api.airtop.ai/api/hooks';
|
||||
|
||||
// Session operations
|
||||
export const DEFAULT_TIMEOUT_MINUTES = 10;
|
||||
export const MIN_TIMEOUT_MINUTES = 1;
|
||||
export const MAX_TIMEOUT_MINUTES = 10080;
|
||||
export const DEFAULT_DOWNLOAD_TIMEOUT_SECONDS = 30;
|
||||
export const SESSION_STATUS = {
|
||||
INITIALIZING: 'initializing',
|
||||
RUNNING: 'running',
|
||||
} as const;
|
||||
|
||||
// Operations
|
||||
export const OPERATION_TIMEOUT = 5 * 60 * 1000; // 5 mins
|
||||
export const AGENT_MIN_TIMEOUT_SECONDS = 10;
|
||||
|
||||
// Scroll operation
|
||||
export type TScrollingMode = 'manual' | 'automatic';
|
||||
|
||||
// Error messages
|
||||
export const ERROR_MESSAGES = {
|
||||
SESSION_ID_REQUIRED: "Please fill the 'Session ID' parameter",
|
||||
WINDOW_ID_REQUIRED: "Please fill the 'Window ID' parameter",
|
||||
URL_REQUIRED: "Please fill the 'URL' parameter",
|
||||
PROFILE_NAME_INVALID: "'Profile Name' should only contain letters, numbers and dashes",
|
||||
TIMEOUT_MINUTES_INVALID: `Timeout must be between ${MIN_TIMEOUT_MINUTES} and ${MAX_TIMEOUT_MINUTES} minutes`,
|
||||
TIMEOUT_REACHED: 'Timeout reached while waiting for the operation to complete',
|
||||
AGENT_TIMEOUT_INVALID: `Timeout must be at least ${AGENT_MIN_TIMEOUT_SECONDS} seconds`,
|
||||
URL_INVALID: "'URL' must start with 'http' or 'https'",
|
||||
PROFILE_NAME_REQUIRED: "'Profile Name' is required when 'Save Profile' is enabled",
|
||||
REQUIRED_PARAMETER: "Please fill the '{{field}}' parameter",
|
||||
PROXY_URL_REQUIRED: "Please fill the 'Proxy URL' parameter",
|
||||
PROXY_URL_INVALID: "'Proxy URL' must start with 'http' or 'https'",
|
||||
SCREEN_RESOLUTION_INVALID:
|
||||
"'Screen Resolution' must be in the format 'width x height' (e.g. '1280x720')",
|
||||
SCROLL_BY_AMOUNT_INVALID:
|
||||
"'Scroll By' amount must be a number and either a percentage or pixels (e.g. '100px' or '100%')",
|
||||
SCROLL_MODE_INVALID: "Please fill any of the 'Scroll To Edge' or 'Scroll By' parameters",
|
||||
} as const;
|
||||
Reference in New Issue
Block a user