Compare commits
	
		
			13 Commits
		
	
	
		
			js-in-ts
			...
			add-loadin
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | d3bc3a796b | ||
|   | 9e64af4793 | ||
|   | b581f539e2 | ||
|   | aac1295c10 | ||
|   | e8f2802ee0 | ||
|   | 75b3730a70 | ||
|   | af29dc9c3f | ||
|   | 181cb5f335 | ||
|   | 94e560c262 | ||
|   | f802061722 | ||
|   | 58a7f6eec6 | ||
|   | 5e11d3cc4d | ||
|   | 399fb8312a | 
| @@ -29,6 +29,7 @@ rm -rf .env | |||||||
| echo " | echo " | ||||||
| PORT=$WEB_PORT | PORT=$WEB_PORT | ||||||
| REACT_APP_GRAPHQL_URL=http://localhost:$BACKEND_PORT/graphql | REACT_APP_GRAPHQL_URL=http://localhost:$BACKEND_PORT/graphql | ||||||
|  | REACT_APP_NOTIFICATIONS_URL=https://notifications.automatisch.io | ||||||
| " >> .env | " >> .env | ||||||
| cd $CURRENT_DIR | cd $CURRENT_DIR | ||||||
|  |  | ||||||
|   | |||||||
| @@ -7,12 +7,4 @@ module.exports = { | |||||||
|     'plugin:@typescript-eslint/recommended', |     'plugin:@typescript-eslint/recommended', | ||||||
|     'prettier', |     'prettier', | ||||||
|   ], |   ], | ||||||
|   overrides: [ |  | ||||||
|     { |  | ||||||
|       files: ['**/*.test.ts', '**/test/**/*.ts'], |  | ||||||
|       rules: { |  | ||||||
|         '@typescript-eslint/ban-ts-comment': ['off'], |  | ||||||
|       }, |  | ||||||
|     }, |  | ||||||
|   ], |  | ||||||
| }; | }; | ||||||
|   | |||||||
							
								
								
									
										48
									
								
								.github/workflows/backend.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								.github/workflows/backend.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,48 +0,0 @@ | |||||||
| name: Automatisch Backend Tests |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - main |  | ||||||
|   pull_request: |  | ||||||
|   workflow_dispatch: |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   test: |  | ||||||
|     timeout-minutes: 60 |  | ||||||
|     runs-on: |  | ||||||
|       - ubuntu-latest |  | ||||||
|     services: |  | ||||||
|       postgres: |  | ||||||
|         image: postgres:14.5-alpine |  | ||||||
|         env: |  | ||||||
|           POSTGRES_DB: automatisch_test |  | ||||||
|           POSTGRES_USER: automatisch_test_user |  | ||||||
|           POSTGRES_PASSWORD: automatisch_test_user_password |  | ||||||
|         options: >- |  | ||||||
|           --health-cmd "pg_isready -U automatisch_test_user -d automatisch_test" |  | ||||||
|           --health-interval 10s |  | ||||||
|           --health-timeout 5s |  | ||||||
|           --health-retries 5 |  | ||||||
|         ports: |  | ||||||
|           - 5432:5432 |  | ||||||
|       redis: |  | ||||||
|         image: redis:7.0.4-alpine |  | ||||||
|         options: >- |  | ||||||
|           --health-cmd "redis-cli ping" |  | ||||||
|           --health-interval 10s |  | ||||||
|           --health-timeout 5s |  | ||||||
|           --health-retries 5 |  | ||||||
|         ports: |  | ||||||
|           - 6379:6379 |  | ||||||
|  |  | ||||||
|     steps: |  | ||||||
|       - uses: actions/checkout@v3 |  | ||||||
|       - uses: actions/setup-node@v3 |  | ||||||
|         with: |  | ||||||
|           node-version: 18 |  | ||||||
|       - name: Install dependencies |  | ||||||
|         run: cd packages/backend && yarn |  | ||||||
|       - name: Copy .env-example.test file to .env.test |  | ||||||
|         run: cd packages/backend && cp .env-example.test .env.test |  | ||||||
|       - name: Run tests |  | ||||||
|         run: cd packages/backend && yarn test |  | ||||||
							
								
								
									
										8
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,11 +1,5 @@ | |||||||
| name: Automatisch CI | name: Automatisch CI | ||||||
| on: | on: [push] | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - main |  | ||||||
|   pull_request: |  | ||||||
|   workflow_dispatch: |  | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   linter: |   linter: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|   | |||||||
							
								
								
									
										121
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										121
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,121 +0,0 @@ | |||||||
| name: Automatisch UI Tests |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - main |  | ||||||
|   pull_request: |  | ||||||
|     paths: |  | ||||||
|       - 'packages/backend/**' |  | ||||||
|       - 'packages/e2e-tests/**' |  | ||||||
|       - 'packages/web/**' |  | ||||||
|       - '!packages/backend/src/apps/**' |  | ||||||
|   workflow_dispatch: |  | ||||||
|  |  | ||||||
| env: |  | ||||||
|   ENCRYPTION_KEY: sample_encryption_key |  | ||||||
|   WEBHOOK_SECRET_KEY: sample_webhook_secret_key |  | ||||||
|   APP_SECRET_KEY: sample_app_secret_key |  | ||||||
|   POSTGRES_HOST: localhost |  | ||||||
|   POSTGRES_DATABASE: automatisch |  | ||||||
|   POSTGRES_PORT: 5432 |  | ||||||
|   POSTGRES_USERNAME: automatisch_user |  | ||||||
|   POSTGRES_PASSWORD: automatisch_password |  | ||||||
|   REDIS_HOST: localhost |  | ||||||
|   APP_ENV: production |  | ||||||
|   LICENSE_KEY: dummy_license_key |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   test: |  | ||||||
|     timeout-minutes: 60 |  | ||||||
|     runs-on: |  | ||||||
|       - ubuntu-latest |  | ||||||
|     services: |  | ||||||
|       postgres: |  | ||||||
|         image: postgres:14.5-alpine |  | ||||||
|         env: |  | ||||||
|           POSTGRES_DB: automatisch |  | ||||||
|           POSTGRES_USER: automatisch_user |  | ||||||
|           POSTGRES_PASSWORD: automatisch_password |  | ||||||
|         options: >- |  | ||||||
|           --health-cmd "pg_isready -U automatisch_user -d automatisch" |  | ||||||
|           --health-interval 10s |  | ||||||
|           --health-timeout 5s |  | ||||||
|           --health-retries 5 |  | ||||||
|         ports: |  | ||||||
|           - 5432:5432 |  | ||||||
|       redis: |  | ||||||
|         image: redis:7.0.4-alpine |  | ||||||
|         options: >- |  | ||||||
|           --health-cmd "redis-cli ping" |  | ||||||
|           --health-interval 10s |  | ||||||
|           --health-timeout 5s |  | ||||||
|           --health-retries 5 |  | ||||||
|         ports: |  | ||||||
|           - 6379:6379 |  | ||||||
|  |  | ||||||
|     steps: |  | ||||||
|       - uses: actions/checkout@v3 |  | ||||||
|       - uses: actions/setup-node@v3 |  | ||||||
|         with: |  | ||||||
|           node-version: 18 |  | ||||||
|       - name: Install dependencies |  | ||||||
|         run: yarn && yarn lerna bootstrap |  | ||||||
|       - name: Install Playwright Browsers |  | ||||||
|         run: yarn playwright install --with-deps |  | ||||||
|       - name: Build Automatisch |  | ||||||
|         run: yarn lerna run --scope=@*/{web,backend,cli} build |  | ||||||
|         env: |  | ||||||
|           # Keep this until we clean up warnings in build processes |  | ||||||
|           CI: false |  | ||||||
|       - name: Migrate database |  | ||||||
|         working-directory: ./packages/backend |  | ||||||
|         run: yarn db:migrate --migrations-directory ./dist/src/db/migrations |  | ||||||
|       - name: Seed user |  | ||||||
|         working-directory: ./packages/backend |  | ||||||
|         run: yarn db:seed:user & |  | ||||||
|       - name: Install certutils |  | ||||||
|         run: sudo apt install -y libnss3-tools |  | ||||||
|       - name: Install mkcert |  | ||||||
|         run: | |  | ||||||
|           curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" \ |  | ||||||
|           && chmod +x mkcert-v*-linux-amd64 \ |  | ||||||
|           && sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert |  | ||||||
|       - name: Install root certificate via mkcert |  | ||||||
|         run: mkcert -install |  | ||||||
|       - name: Create certificate |  | ||||||
|         run: mkcert automatisch.io "*.automatisch.io" localhost 127.0.0.1 ::1 |  | ||||||
|         working-directory: ./packages/e2e-tests |  | ||||||
|       - name: Set CAROOT environment variable |  | ||||||
|         run: echo "NODE_EXTRA_CA_CERTS=$(mkcert -CAROOT)/rootCA.pem" >> "$GITHUB_ENV" |  | ||||||
|       - name: Override license server with local server |  | ||||||
|         run: sudo echo "127.0.0.1 license.automatisch.io" | sudo tee -a /etc/hosts |  | ||||||
|       - name: Run local license server |  | ||||||
|         working-directory: ./packages/e2e-tests |  | ||||||
|         run: sudo yarn start-mock-license-server & |  | ||||||
|       - name: Run Automatisch |  | ||||||
|         run: yarn start & |  | ||||||
|         working-directory: ./packages/backend |  | ||||||
|       - name: Run Automatisch worker |  | ||||||
|         run: node dist/src/worker.js & |  | ||||||
|         working-directory: ./packages/backend |  | ||||||
|       - name: Setup upterm session |  | ||||||
|         if: false |  | ||||||
|         uses: lhotari/action-upterm@v1 |  | ||||||
|         with: |  | ||||||
|           limit-access-to-actor: true |  | ||||||
|           limit-access-to-users: barinali |  | ||||||
|       - name: Run Playwright tests |  | ||||||
|         working-directory: ./packages/e2e-tests |  | ||||||
|         env: |  | ||||||
|           LOGIN_EMAIL: user@automatisch.io |  | ||||||
|           LOGIN_PASSWORD: sample |  | ||||||
|           BASE_URL: http://localhost:3000 |  | ||||||
|           GITHUB_CLIENT_ID: 1c0417daf898adfbd99a |  | ||||||
|           GITHUB_CLIENT_SECRET: 3328fa814dd582ccd03dbe785cfd683fb8da92b3 |  | ||||||
|         run: yarn test |  | ||||||
|       - uses: actions/upload-artifact@v3 |  | ||||||
|         if: always() |  | ||||||
|         with: |  | ||||||
|           name: playwright-report |  | ||||||
|           path: packages/e2e-tests/test-results |  | ||||||
|           retention-days: 30 |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| 16.15.0 |  | ||||||
							
								
								
									
										5
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,4 @@ | |||||||
| { | { | ||||||
|   "editor.formatOnSave": true, |   "editor.formatOnSave": true, | ||||||
|   "editor.defaultFormatter": "esbenp.prettier-vscode", |   "editor.defaultFormatter": "esbenp.prettier-vscode" | ||||||
|   "[javascript]": { |  | ||||||
|     "editor.defaultFormatter": "esbenp.prettier-vscode" |  | ||||||
|   } |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ WORKDIR /automatisch | |||||||
|  |  | ||||||
| RUN \ | RUN \ | ||||||
|   apk --no-cache add --virtual build-dependencies python3 build-base && \ |   apk --no-cache add --virtual build-dependencies python3 build-base && \ | ||||||
|   yarn global add @automatisch/cli@0.10.0 --network-timeout 1000000 && \ |   yarn global add @automatisch/cli@0.7.1 --network-timeout 1000000 && \ | ||||||
|   rm -rf /usr/local/share/.cache/ && \ |   rm -rf /usr/local/share/.cache/ && \ | ||||||
|   apk del build-dependencies |   apk del build-dependencies | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| # syntax=docker/dockerfile:1 | # syntax=docker/dockerfile:1 | ||||||
| FROM automatischio/automatisch:0.10.0 | FROM automatischio/automatisch:0.7.1 | ||||||
| WORKDIR /automatisch | WORKDIR /automatisch | ||||||
|  |  | ||||||
| RUN apk add --no-cache openssl dos2unix | RUN apk add --no-cache openssl dos2unix | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|   "packages": [ |   "packages": [ | ||||||
|     "packages/*" |     "packages/*" | ||||||
|   ], |   ], | ||||||
|   "version": "0.10.0", |   "version": "0.7.1", | ||||||
|   "npmClient": "yarn", |   "npmClient": "yarn", | ||||||
|   "useWorkspaces": true, |   "useWorkspaces": true, | ||||||
|   "command": { |   "command": { | ||||||
|   | |||||||
| @@ -1,15 +0,0 @@ | |||||||
| APP_ENV=test |  | ||||||
| HOST=localhost |  | ||||||
| PROTOCOL=http |  | ||||||
| PORT=3000 |  | ||||||
| LOG_LEVEL=debug |  | ||||||
| ENCRYPTION_KEY=sample_encryption_key |  | ||||||
| WEBHOOK_SECRET_KEY=sample_webhook_secret_key |  | ||||||
| APP_SECRET_KEY=sample_app_secret_key |  | ||||||
| POSTGRES_HOST=localhost |  | ||||||
| POSTGRES_DATABASE=automatisch_test |  | ||||||
| POSTGRES_PORT=5432 |  | ||||||
| POSTGRES_USERNAME=automatisch_test_user |  | ||||||
| POSTGRES_PASSWORD=automatisch_test_user_password |  | ||||||
| REDIS_HOST=localhost |  | ||||||
| AUTOMATISCH_CLOUD=true |  | ||||||
| @@ -3,16 +3,36 @@ import logger from '../../src/helpers/logger'; | |||||||
| import client from './client'; | import client from './client'; | ||||||
| import User from '../../src/models/user'; | import User from '../../src/models/user'; | ||||||
| import Role from '../../src/models/role'; | import Role from '../../src/models/role'; | ||||||
|  | import Permission from '../../src/models/permission'; | ||||||
| import '../../src/config/orm'; | import '../../src/config/orm'; | ||||||
|  |  | ||||||
| async function fetchAdminRole() { | async function seedPermissionsIfNeeded() { | ||||||
|   const role = await Role |   const existingPermissions = await Permission.query().limit(1).first(); | ||||||
|     .query() |  | ||||||
|     .where({ |   if (!existingPermissions) return; | ||||||
|       key: 'admin' |  | ||||||
|     }) |   const getPermission = (subject: string, actions: string[]) => actions.map(action => ({ subject, action })); | ||||||
|     .limit(1) |  | ||||||
|     .first(); |   await Permission.query().insert([ | ||||||
|  |     ...getPermission('Connection', ['create', 'read', 'delete', 'update']), | ||||||
|  |     ...getPermission('Execution', ['read']), | ||||||
|  |     ...getPermission('Flow', ['create', 'delete', 'publish', 'read', 'update']), | ||||||
|  |     ...getPermission('Role', ['create', 'delete', 'read', 'update']), | ||||||
|  |     ...getPermission('User', ['create', 'delete', 'read', 'update']), | ||||||
|  |   ]) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | async function createOrFetchRole() { | ||||||
|  |   const role = await Role.query().limit(1).first(); | ||||||
|  |  | ||||||
|  |   if (!role) { | ||||||
|  |     const createdRole = await Role.query().insertAndFetch({ | ||||||
|  |       name: 'Admin', | ||||||
|  |       key: 'admin', | ||||||
|  |     }); | ||||||
|  |  | ||||||
|  |     return createdRole; | ||||||
|  |   } | ||||||
|  |  | ||||||
|   return role; |   return role; | ||||||
| } | } | ||||||
| @@ -23,7 +43,9 @@ export async function createUser( | |||||||
| ) { | ) { | ||||||
|   const UNIQUE_VIOLATION_CODE = '23505'; |   const UNIQUE_VIOLATION_CODE = '23505'; | ||||||
|  |  | ||||||
|   const role = await fetchAdminRole(); |   await seedPermissionsIfNeeded(); | ||||||
|  |  | ||||||
|  |   const role = await createOrFetchRole(); | ||||||
|   const userParams = { |   const userParams = { | ||||||
|     email, |     email, | ||||||
|     password, |     password, | ||||||
|   | |||||||
| @@ -1,9 +0,0 @@ | |||||||
| /** @type {import('ts-jest').JestConfigWithTsJest} */ |  | ||||||
| module.exports = { |  | ||||||
|   preset: 'ts-jest', |  | ||||||
|   testEnvironment: 'node', |  | ||||||
|   setupFilesAfterEnv: ['./test/setup/global-hooks.ts'], |  | ||||||
|   globalTeardown: './test/setup/global-teardown.ts', |  | ||||||
|   collectCoverage: true, |  | ||||||
|   collectCoverageFrom: ['src/graphql/queries/*.ts'], |  | ||||||
| }; |  | ||||||
| @@ -1,7 +1,6 @@ | |||||||
| import { knexSnakeCaseMappers } from 'objection'; |  | ||||||
| import appConfig from './src/config/app'; | import appConfig from './src/config/app'; | ||||||
|  |  | ||||||
| const fileExtension = appConfig.isDev || appConfig.isTest ? 'ts' : 'js'; | const fileExtension = appConfig.isDev ? 'ts' : 'js'; | ||||||
|  |  | ||||||
| const knexConfig = { | const knexConfig = { | ||||||
|   client: 'pg', |   client: 'pg', | ||||||
| @@ -24,7 +23,6 @@ const knexConfig = { | |||||||
|   seeds: { |   seeds: { | ||||||
|     directory: __dirname + '/src/db/seeds', |     directory: __dirname + '/src/db/seeds', | ||||||
|   }, |   }, | ||||||
|   ...(appConfig.isTest ? knexSnakeCaseMappers() : {}), |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
| export default knexConfig; | export default knexConfig; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@automatisch/backend", |   "name": "@automatisch/backend", | ||||||
|   "version": "0.10.0", |   "version": "0.7.1", | ||||||
|   "license": "See LICENSE file", |   "license": "See LICENSE file", | ||||||
|   "description": "The open source Zapier alternative. Build workflow automation without spending time and money.", |   "description": "The open source Zapier alternative. Build workflow automation without spending time and money.", | ||||||
|   "scripts": { |   "scripts": { | ||||||
| @@ -9,8 +9,7 @@ | |||||||
|     "build": "tsc && yarn copy-statics", |     "build": "tsc && yarn copy-statics", | ||||||
|     "build:watch": "nodemon --watch 'src/**/*.ts' --watch 'bin/**/*.ts' --exec yarn build --ext ts", |     "build:watch": "nodemon --watch 'src/**/*.ts' --watch 'bin/**/*.ts' --exec yarn build --ext ts", | ||||||
|     "start": "node dist/src/server.js", |     "start": "node dist/src/server.js", | ||||||
|     "pretest": "APP_ENV=test ts-node ./test/setup/prepare-test-env.ts", |     "test": "ava", | ||||||
|     "test": "APP_ENV=test jest --verbose", |  | ||||||
|     "lint": "eslint . --ignore-path ../../.eslintignore", |     "lint": "eslint . --ignore-path ../../.eslintignore", | ||||||
|     "db:create": "ts-node ./bin/database/create.ts", |     "db:create": "ts-node ./bin/database/create.ts", | ||||||
|     "db:seed:user": "ts-node ./bin/database/seed-user.ts", |     "db:seed:user": "ts-node ./bin/database/seed-user.ts", | ||||||
| @@ -23,7 +22,7 @@ | |||||||
|     "prebuild": "rm -rf ./dist" |     "prebuild": "rm -rf ./dist" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@automatisch/web": "^0.10.0", |     "@automatisch/web": "^0.7.1", | ||||||
|     "@bull-board/express": "^3.10.1", |     "@bull-board/express": "^3.10.1", | ||||||
|     "@casl/ability": "^6.5.0", |     "@casl/ability": "^6.5.0", | ||||||
|     "@graphql-tools/graphql-file-loader": "^7.3.4", |     "@graphql-tools/graphql-file-loader": "^7.3.4", | ||||||
| @@ -32,13 +31,11 @@ | |||||||
|     "@rudderstack/rudder-sdk-node": "^1.1.2", |     "@rudderstack/rudder-sdk-node": "^1.1.2", | ||||||
|     "@sentry/node": "^7.42.0", |     "@sentry/node": "^7.42.0", | ||||||
|     "@sentry/tracing": "^7.42.0", |     "@sentry/tracing": "^7.42.0", | ||||||
|     "@types/accounting": "^0.4.2", |  | ||||||
|     "@types/luxon": "^2.3.1", |     "@types/luxon": "^2.3.1", | ||||||
|     "@types/passport": "^1.0.12", |     "@types/passport": "^1.0.12", | ||||||
|     "@types/xmlrpc": "^1.3.7", |     "@types/xmlrpc": "^1.3.7", | ||||||
|     "accounting": "^0.4.1", |  | ||||||
|     "ajv-formats": "^2.1.1", |     "ajv-formats": "^2.1.1", | ||||||
|     "axios": "1.6.0", |     "axios": "0.24.0", | ||||||
|     "bcrypt": "^5.0.1", |     "bcrypt": "^5.0.1", | ||||||
|     "bullmq": "^3.0.0", |     "bullmq": "^3.0.0", | ||||||
|     "copyfiles": "^2.4.1", |     "copyfiles": "^2.4.1", | ||||||
| @@ -56,26 +53,19 @@ | |||||||
|     "graphql-type-json": "^0.3.2", |     "graphql-type-json": "^0.3.2", | ||||||
|     "handlebars": "^4.7.7", |     "handlebars": "^4.7.7", | ||||||
|     "http-errors": "~1.6.3", |     "http-errors": "~1.6.3", | ||||||
|     "http-proxy-agent": "^7.0.0", |  | ||||||
|     "https-proxy-agent": "^7.0.1", |  | ||||||
|     "jsonwebtoken": "^9.0.0", |     "jsonwebtoken": "^9.0.0", | ||||||
|     "knex": "^2.4.0", |     "knex": "^2.4.0", | ||||||
|     "libphonenumber-js": "^1.10.48", |  | ||||||
|     "lodash.get": "^4.4.2", |     "lodash.get": "^4.4.2", | ||||||
|     "luxon": "2.5.2", |     "luxon": "2.5.2", | ||||||
|     "memory-cache": "^0.2.0", |     "memory-cache": "^0.2.0", | ||||||
|     "morgan": "^1.10.0", |     "morgan": "^1.10.0", | ||||||
|     "multer": "1.4.5-lts.1", |     "multer": "1.4.5-lts.1", | ||||||
|     "node-html-markdown": "^1.3.0", |  | ||||||
|     "nodemailer": "6.7.0", |     "nodemailer": "6.7.0", | ||||||
|     "oauth-1.0a": "^2.2.6", |     "oauth-1.0a": "^2.2.6", | ||||||
|     "objection": "^3.0.0", |     "objection": "^3.0.0", | ||||||
|     "passport": "^0.6.0", |     "passport": "^0.6.0", | ||||||
|     "pg": "^8.7.1", |     "pg": "^8.7.1", | ||||||
|     "php-serialize": "^4.0.2", |     "php-serialize": "^4.0.2", | ||||||
|     "pluralize": "^8.0.0", |  | ||||||
|     "raw-body": "^2.5.2", |  | ||||||
|     "showdown": "^2.1.0", |  | ||||||
|     "stripe": "^11.13.0", |     "stripe": "^11.13.0", | ||||||
|     "winston": "^3.7.1", |     "winston": "^3.7.1", | ||||||
|     "xmlrpc": "^1.3.2" |     "xmlrpc": "^1.3.2" | ||||||
| @@ -116,15 +106,13 @@ | |||||||
|     "url": "https://github.com/automatisch/automatisch/issues" |     "url": "https://github.com/automatisch/automatisch/issues" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@automatisch/types": "^0.10.0", |     "@automatisch/types": "^0.7.1", | ||||||
|     "@faker-js/faker": "^8.1.0", |  | ||||||
|     "@types/bcrypt": "^5.0.0", |     "@types/bcrypt": "^5.0.0", | ||||||
|     "@types/bull": "^3.15.8", |     "@types/bull": "^3.15.8", | ||||||
|     "@types/cors": "^2.8.12", |     "@types/cors": "^2.8.12", | ||||||
|     "@types/crypto-js": "^4.0.2", |     "@types/crypto-js": "^4.0.2", | ||||||
|     "@types/express": "^4.17.15", |     "@types/express": "^4.17.15", | ||||||
|     "@types/http-errors": "^1.8.1", |     "@types/http-errors": "^1.8.1", | ||||||
|     "@types/jest": "^29.5.5", |  | ||||||
|     "@types/jsonwebtoken": "^8.5.8", |     "@types/jsonwebtoken": "^8.5.8", | ||||||
|     "@types/lodash.get": "^4.4.6", |     "@types/lodash.get": "^4.4.6", | ||||||
|     "@types/memory-cache": "^0.2.2", |     "@types/memory-cache": "^0.2.2", | ||||||
| @@ -134,17 +122,23 @@ | |||||||
|     "@types/nodemailer": "^6.4.4", |     "@types/nodemailer": "^6.4.4", | ||||||
|     "@types/pg": "^8.6.1", |     "@types/pg": "^8.6.1", | ||||||
|     "@types/pino": "^7.0.5", |     "@types/pino": "^7.0.5", | ||||||
|     "@types/pluralize": "^0.0.30", |     "ava": "^3.15.0", | ||||||
|     "@types/showdown": "^2.0.1", |  | ||||||
|     "@types/supertest": "^2.0.14", |  | ||||||
|     "jest": "^29.7.0", |  | ||||||
|     "nodemon": "^2.0.13", |     "nodemon": "^2.0.13", | ||||||
|     "sinon": "^11.1.2", |     "sinon": "^11.1.2", | ||||||
|     "supertest": "^6.3.3", |  | ||||||
|     "ts-jest": "^29.1.1", |  | ||||||
|     "ts-node": "^10.2.1", |     "ts-node": "^10.2.1", | ||||||
|     "ts-node-dev": "^1.1.8" |     "ts-node-dev": "^1.1.8" | ||||||
|   }, |   }, | ||||||
|  |   "ava": { | ||||||
|  |     "files": [ | ||||||
|  |       "test/**/*" | ||||||
|  |     ], | ||||||
|  |     "extensions": [ | ||||||
|  |       "ts" | ||||||
|  |     ], | ||||||
|  |     "require": [ | ||||||
|  |       "ts-node/register" | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|   "publishConfig": { |   "publishConfig": { | ||||||
|     "access": "public" |     "access": "public" | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -33,7 +33,6 @@ injectBullBoardHandler(app, serverAdapter); | |||||||
| appAssetsHandler(app); | appAssetsHandler(app); | ||||||
|  |  | ||||||
| app.use(morgan); | app.use(morgan); | ||||||
|  |  | ||||||
| app.use( | app.use( | ||||||
|   express.json({ |   express.json({ | ||||||
|     limit: appConfig.requestBodySizeLimit, |     limit: appConfig.requestBodySizeLimit, | ||||||
|   | |||||||
| @@ -1,35 +0,0 @@ | |||||||
| import defineAction from '../../../../helpers/define-action'; |  | ||||||
|  |  | ||||||
| export default defineAction({ |  | ||||||
|   name: 'Add Template', |  | ||||||
|   key: 'addTemplate', |  | ||||||
|   description: |  | ||||||
|     'Creates an attachment of a specified object by given parent ID.', |  | ||||||
|   arguments: [ |  | ||||||
|     { |  | ||||||
|       label: 'Templete Data', |  | ||||||
|       key: 'templateData', |  | ||||||
|       type: 'string' as const, |  | ||||||
|       required: true, |  | ||||||
|       variables: true, |  | ||||||
|       description: 'The content of your new Template in XML/HTML format.', |  | ||||||
|     }, |  | ||||||
|   ], |  | ||||||
|  |  | ||||||
|   async run($) { |  | ||||||
|     const templateData = $.step.parameters.templateData as string; |  | ||||||
|  |  | ||||||
|     const base64Data = Buffer.from(templateData).toString('base64'); |  | ||||||
|     const dataURI = `data:application/xml;base64,${base64Data}`; |  | ||||||
|  |  | ||||||
|     const body = JSON.stringify({ template: dataURI }); |  | ||||||
|  |  | ||||||
|     const response = await $.http.post('/template', body, { |  | ||||||
|       headers: { |  | ||||||
|         'Content-Type': 'application/json', |  | ||||||
|       }, |  | ||||||
|     }); |  | ||||||
|  |  | ||||||
|     $.setActionItem({ raw: response.data }); |  | ||||||
|   }, |  | ||||||
| }); |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| import addTemplate from './add-template'; |  | ||||||
|  |  | ||||||
| export default [addTemplate]; |  | ||||||
| @@ -1,444 +0,0 @@ | |||||||
| <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" |  | ||||||
| 	 width="100%" viewBox="0 0 1173 1173" enable-background="new 0 0 1173 1173" xml:space="preserve"> |  | ||||||
| <path fill="#73348B" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M1174.000000,208.000000  |  | ||||||
| 	C1174.000000,529.969421 1174.000000,851.938782 1174.000000,1173.954102  |  | ||||||
| 	C783.067810,1173.954102 392.135559,1173.954102 1.101677,1173.954102  |  | ||||||
| 	C1.101677,783.104980 1.101677,392.209930 1.101677,1.000000  |  | ||||||
| 	C322.697510,1.000000 644.395142,1.000000 966.516235,1.467920  |  | ||||||
| 	C966.918274,68.235474 966.895691,134.535110 966.877258,200.834747  |  | ||||||
| 	C966.875183,208.314804 966.885986,208.322311 974.623108,208.322571  |  | ||||||
| 	C1038.924072,208.324631 1103.225098,208.326889 1167.526123,208.310104  |  | ||||||
| 	C1169.684082,208.309540 1171.842041,208.107910 1174.000000,208.000000  |  | ||||||
| M824.469116,403.972260  |  | ||||||
| 	C830.640320,396.844513 836.811584,389.716736 843.084839,382.471130  |  | ||||||
| 	C813.026611,353.649353 780.256958,329.661011 741.486328,314.979523  |  | ||||||
| 	C680.713013,291.966217 618.102173,287.454407 554.867737,301.133331  |  | ||||||
| 	C463.817413,320.829376 397.312988,373.276550 356.951416,457.320282  |  | ||||||
| 	C326.804779,520.093689 319.957764,586.465027 335.155365,654.111511  |  | ||||||
| 	C358.404633,757.597168 419.946594,829.052856 520.224731,865.190979  |  | ||||||
| 	C575.706055,885.185242 632.887451,885.395691 690.185303,873.820862  |  | ||||||
| 	C753.158081,861.099548 803.501465,826.733521 847.328979,780.124756  |  | ||||||
| 	C825.522522,758.991638 803.799194,737.939087 781.866882,716.683960  |  | ||||||
| 	C775.039185,722.581055 767.314697,729.376404 759.459290,736.016846  |  | ||||||
| 	C716.790833,772.086792 668.088501,791.050049 611.649048,788.182129  |  | ||||||
| 	C555.974548,785.353088 510.796692,761.934998 476.366638,718.347046  |  | ||||||
| 	C450.585236,685.708313 437.160706,648.031494 433.752258,606.690613  |  | ||||||
| 	C430.193268,563.523926 437.309692,522.406311 457.904602,484.052490  |  | ||||||
| 	C496.945190,411.347198 573.378845,374.580780 654.712402,388.765686  |  | ||||||
| 	C691.388062,395.162079 723.361389,411.383057 752.404175,434.001740  |  | ||||||
| 	C761.432556,441.033173 770.043213,448.601013 779.130859,456.160980  |  | ||||||
| 	C794.123657,438.910675 809.069336,421.714569 824.469116,403.972260  |  | ||||||
| M401.126434,1003.500000  |  | ||||||
| 	C401.122375,996.333740 401.039398,989.166199 401.152191,982.001770  |  | ||||||
| 	C401.198700,979.046997 400.149170,977.760315 397.091583,977.847290  |  | ||||||
| 	C392.096008,977.989441 387.061035,978.231079 382.102264,977.778320  |  | ||||||
| 	C376.825531,977.296387 375.754608,979.441406 375.775360,984.315125  |  | ||||||
| 	C375.949005,1025.145630 375.873474,1065.977417 375.874237,1106.808716  |  | ||||||
| 	C375.874329,1113.141724 375.994049,1119.477539 375.836487,1125.806519  |  | ||||||
| 	C375.755646,1129.053101 376.993805,1130.258667 380.217560,1130.162231  |  | ||||||
| 	C385.712311,1129.997559 391.222198,1129.953491 396.712982,1130.175049  |  | ||||||
| 	C400.378265,1130.322998 401.327179,1128.650757 401.160339,1125.375610  |  | ||||||
| 	C400.987305,1121.979004 401.121826,1118.566772 401.121826,1114.051758  |  | ||||||
| 	C403.029083,1115.849609 404.038116,1116.655273 404.875366,1117.611572  |  | ||||||
| 	C423.297913,1138.649780 456.085083,1135.565308 472.987305,1118.665161  |  | ||||||
| 	C494.109619,1097.545654 495.745544,1057.582886 476.289124,1034.845947  |  | ||||||
| 	C458.642456,1014.223816 423.619873,1010.312439 404.695007,1033.663574  |  | ||||||
| 	C403.933044,1034.603882 402.896790,1035.321899 401.126709,1036.922485  |  | ||||||
| 	C401.126709,1025.377563 401.126709,1014.938782 401.126434,1003.500000  |  | ||||||
| M1021.364685,1102.039429  |  | ||||||
| 	C1034.668091,1125.202515 1054.950562,1134.733032 1081.114746,1132.114380  |  | ||||||
| 	C1116.971191,1128.525757 1140.394165,1093.509888 1130.352783,1058.871704  |  | ||||||
| 	C1120.842163,1026.064697 1084.911865,1009.039368 1051.827393,1021.662964  |  | ||||||
| 	C1020.072083,1033.779419 1006.094421,1069.964478 1021.364685,1102.039429  |  | ||||||
| M513.859009,1053.461792  |  | ||||||
| 	C508.981232,1065.614258 508.319275,1078.089722 511.612946,1090.667114  |  | ||||||
| 	C518.928467,1118.602539 545.601379,1135.665771 576.077942,1132.138428  |  | ||||||
| 	C615.868713,1127.533081 639.243103,1085.250000 621.290771,1049.613525  |  | ||||||
| 	C609.925598,1027.053101 590.627502,1017.015625 565.767517,1017.961548  |  | ||||||
| 	C541.582703,1018.881775 524.357849,1030.779541 513.859009,1053.461792  |  | ||||||
| M853.945312,1105.526489  |  | ||||||
| 	C844.979370,1111.390137 835.234131,1113.082764 824.789001,1110.928833  |  | ||||||
| 	C812.187134,1108.330078 801.815186,1096.424561 801.983032,1084.128296  |  | ||||||
| 	C803.915649,1084.128296 805.872803,1084.128418 807.829956,1084.128296  |  | ||||||
| 	C827.828918,1084.128174 847.827942,1084.128174 867.826904,1084.128052  |  | ||||||
| 	C883.022278,1084.128052 883.416565,1084.089355 881.911011,1068.743774  |  | ||||||
| 	C877.873352,1027.588623 845.873840,1010.303040 812.589294,1020.461792  |  | ||||||
| 	C788.140564,1027.923828 771.315674,1053.597778 776.625183,1086.417480  |  | ||||||
| 	C782.995667,1125.795166 822.767029,1141.211426 855.517578,1128.350586  |  | ||||||
| 	C864.166870,1124.953979 871.321899,1119.494873 877.282959,1111.812744  |  | ||||||
| 	C872.197815,1107.281738 867.508911,1103.103882 862.714783,1098.832153  |  | ||||||
| 	C859.777344,1101.088501 857.158447,1103.100098 853.945312,1105.526489  |  | ||||||
| M183.035294,1022.439941  |  | ||||||
| 	C178.726364,1024.044678 174.417435,1025.649414 169.759094,1027.384277  |  | ||||||
| 	C172.080597,1034.339355 174.168320,1040.594116 176.396927,1047.270874  |  | ||||||
| 	C178.710007,1046.498047 180.428452,1045.982422 182.104675,1045.354126  |  | ||||||
| 	C192.414581,1041.489502 203.049866,1039.981567 214.012650,1041.017212  |  | ||||||
| 	C228.197418,1042.357178 237.230057,1053.265137 234.370621,1065.622192  |  | ||||||
| 	C233.945877,1065.733521 233.456528,1066.014160 233.019272,1065.948486  |  | ||||||
| 	C231.544067,1065.726807 230.081848,1065.406616 228.624466,1065.080322  |  | ||||||
| 	C213.432663,1061.679199 198.251007,1060.834473 183.260117,1065.925537  |  | ||||||
| 	C168.246078,1071.024536 160.203674,1082.376099 160.159256,1097.991577  |  | ||||||
| 	C160.116211,1113.124634 168.617416,1125.277100 183.512024,1129.868774  |  | ||||||
| 	C201.272339,1135.343872 217.762161,1132.975952 231.922165,1119.980591  |  | ||||||
| 	C232.681229,1119.283936 233.598526,1118.759888 234.998825,1117.756470  |  | ||||||
| 	C234.998825,1120.660034 235.167923,1122.828491 234.961670,1124.960815  |  | ||||||
| 	C234.595810,1128.743408 235.836517,1130.435547 239.938004,1130.198853  |  | ||||||
| 	C245.253296,1129.892090 250.601852,1130.021362 255.931290,1130.154541  |  | ||||||
| 	C258.904449,1130.228760 260.057526,1129.146118 260.038300,1126.091797  |  | ||||||
| 	C259.899628,1104.095337 260.293976,1082.087280 259.708466,1060.104492  |  | ||||||
| 	C259.149353,1039.110596 247.823425,1025.003418 228.752792,1020.447083  |  | ||||||
| 	C213.662979,1016.841919 198.651810,1018.154236 183.035294,1022.439941  |  | ||||||
| M652.674988,1084.500000  |  | ||||||
| 	C652.676819,1097.990356 652.774353,1111.481812 652.619568,1124.970337  |  | ||||||
| 	C652.575684,1128.797485 653.756165,1130.430420 657.763428,1130.184448  |  | ||||||
| 	C662.243225,1129.909424 666.753052,1130.130493 671.249817,1130.123413  |  | ||||||
| 	C677.988098,1130.112915 677.994995,1130.108398 677.998840,1123.280029  |  | ||||||
| 	C678.009644,1104.127197 677.813293,1084.971313 678.088196,1065.822388  |  | ||||||
| 	C678.289795,1051.782104 687.650574,1041.728882 700.475464,1040.969238  |  | ||||||
| 	C714.725037,1040.125244 723.562256,1047.280884 725.706665,1061.495361  |  | ||||||
| 	C726.002808,1063.458374 725.985596,1065.479614 725.987732,1067.474121  |  | ||||||
| 	C726.007690,1086.627075 726.075562,1105.780396 725.937012,1124.932373  |  | ||||||
| 	C725.910034,1128.659790 726.763428,1130.436401 730.909912,1130.197876  |  | ||||||
| 	C736.388123,1129.882690 741.898499,1130.048462 747.393127,1130.132080  |  | ||||||
| 	C750.111389,1130.173340 751.333618,1129.085205 751.318970,1126.315796  |  | ||||||
| 	C751.187561,1101.504028 751.651367,1076.672607 750.778564,1051.887817  |  | ||||||
| 	C750.329590,1039.136963 743.986084,1028.674927 732.321106,1022.254761  |  | ||||||
| 	C716.863159,1013.746887 695.690918,1017.041931 683.479919,1029.807129  |  | ||||||
| 	C681.911743,1031.446533 680.418274,1033.157227 677.994934,1035.817871  |  | ||||||
| 	C677.994934,1031.179810 677.847046,1027.753906 678.037964,1024.347046  |  | ||||||
| 	C678.215881,1021.172424 677.140076,1019.820496 673.800659,1019.952393  |  | ||||||
| 	C668.645813,1020.156006 663.460022,1020.260315 658.319153,1019.922363  |  | ||||||
| 	C653.942261,1019.634521 652.544373,1021.128174 652.590515,1025.542358  |  | ||||||
| 	C652.792175,1044.859741 652.675354,1064.180542 652.674988,1084.500000  |  | ||||||
| M119.317238,1046.101074  |  | ||||||
| 	C122.268578,1048.446411 125.219917,1050.791626 127.387344,1052.514038  |  | ||||||
| 	C132.109711,1048.247925 136.374313,1044.289062 140.759842,1040.468872  |  | ||||||
| 	C144.010681,1037.637085 143.275986,1035.555298 140.351669,1032.810791  |  | ||||||
| 	C125.930077,1019.275879 108.562424,1015.442383 89.835030,1018.619995  |  | ||||||
| 	C58.671745,1023.907654 39.333969,1050.496826 43.188984,1083.193359  |  | ||||||
| 	C45.926426,1106.411377 59.195229,1122.338257 81.478561,1129.875244  |  | ||||||
| 	C103.477272,1137.315918 128.440613,1130.652588 142.387802,1114.456543  |  | ||||||
| 	C144.090958,1112.478760 144.008331,1111.254517 142.279175,1109.447876  |  | ||||||
| 	C138.256943,1105.245117 134.418365,1100.866577 130.299011,1096.332031  |  | ||||||
| 	C121.771889,1103.853394 113.867172,1109.740845 103.144859,1110.191895  |  | ||||||
| 	C92.244728,1110.650269 83.239876,1107.153076 76.138634,1098.826416  |  | ||||||
| 	C65.223991,1086.028564 65.297775,1064.157593 76.319031,1051.184937  |  | ||||||
| 	C87.046638,1038.557983 103.476791,1036.430054 119.317238,1046.101074  |  | ||||||
| M353.950317,1043.008423  |  | ||||||
| 	C354.006683,1036.186401 353.906464,1029.358154 354.180176,1022.544922  |  | ||||||
| 	C354.335571,1018.677124 352.771240,1017.653687 349.151764,1017.919495  |  | ||||||
| 	C335.330078,1018.934265 325.588013,1026.116211 318.604279,1037.643921  |  | ||||||
| 	C317.750885,1039.052734 316.890594,1040.457275 316.033447,1041.863770  |  | ||||||
| 	C315.121674,1035.918945 314.900055,1030.423950 315.194824,1024.956665  |  | ||||||
| 	C315.413696,1020.897034 313.799438,1019.733093 309.981384,1019.938782  |  | ||||||
| 	C305.168030,1020.198242 300.312347,1020.256714 295.507935,1019.924500  |  | ||||||
| 	C291.198883,1019.626587 289.697205,1020.959900 289.777374,1025.465820  |  | ||||||
| 	C290.040833,1040.276245 289.874969,1055.094116 289.875153,1069.909180  |  | ||||||
| 	C289.875397,1088.219849 289.984222,1106.531616 289.796387,1124.840332  |  | ||||||
| 	C289.753448,1129.024658 291.144775,1130.494019 295.243988,1130.181030  |  | ||||||
| 	C298.884857,1129.903076 302.564056,1130.154053 306.225861,1130.119141  |  | ||||||
| 	C316.127838,1130.024902 314.970276,1131.203003 315.137146,1121.384644  |  | ||||||
| 	C315.383026,1106.919067 314.932556,1092.386353 316.201233,1078.007690  |  | ||||||
| 	C317.784821,1060.059814 328.779388,1048.418091 344.942749,1045.376465  |  | ||||||
| 	C347.832062,1044.832642 350.733795,1044.354858 353.950317,1043.008423  |  | ||||||
| M970.561462,1130.149170  |  | ||||||
| 	C976.347717,1130.149170 982.133972,1130.149170 988.190430,1130.149170  |  | ||||||
| 	C988.190430,1093.234131 988.190430,1056.859741 988.190430,1020.333618  |  | ||||||
| 	C979.702515,1020.333618 971.488037,1020.333618 963.325317,1020.333618  |  | ||||||
| 	C963.325317,1057.058838 963.325317,1093.449585 963.325317,1130.149170  |  | ||||||
| 	C965.622131,1130.149170 967.600586,1130.149170 970.561462,1130.149170  |  | ||||||
| M931.087708,1129.856323  |  | ||||||
| 	C931.087708,1120.373291 931.087708,1110.890259 931.087708,1101.511963  |  | ||||||
| 	C922.010315,1101.511963 913.093201,1101.511963 904.095581,1101.511963  |  | ||||||
| 	C904.095581,1111.126099 904.095581,1120.382812 904.095581,1130.103516  |  | ||||||
| 	C912.953064,1130.103516 921.562012,1130.103516 931.087708,1129.856323  |  | ||||||
| M989.143494,1000.348511  |  | ||||||
| 	C989.143494,993.401855 989.143494,986.455139 989.143494,979.396606  |  | ||||||
| 	C979.834900,979.396606 970.989380,979.396606 962.400879,979.396606  |  | ||||||
| 	C962.400879,987.527710 962.400879,995.258179 962.400879,1003.146362  |  | ||||||
| 	C970.452820,1003.146362 978.106445,1003.221008 985.755371,1003.064941  |  | ||||||
| 	C986.887451,1003.041870 987.997314,1001.928955 989.143494,1000.348511  |  | ||||||
| z"/> |  | ||||||
| <path fill="#B497C6" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M1174.000000,207.750000  |  | ||||||
| 	C1171.842041,208.107910 1169.684082,208.309540 1167.526123,208.310104  |  | ||||||
| 	C1103.225098,208.326889 1038.924072,208.324631 974.623108,208.322571  |  | ||||||
| 	C966.885986,208.322311 966.875183,208.314804 966.877258,200.834747  |  | ||||||
| 	C966.895691,134.535110 966.918274,68.235474 966.969849,1.467920  |  | ||||||
| 	C967.000000,1.000000 967.500000,1.000000 967.892212,1.300326  |  | ||||||
| 	C968.620972,1.969603 968.943176,2.352815 969.295898,2.705561  |  | ||||||
| 	C1036.645020,70.060425 1103.995605,137.413895 1171.356201,204.757263  |  | ||||||
| 	C1172.170776,205.571564 1173.115845,206.255310 1174.000000,207.000000  |  | ||||||
| 	C1174.000000,207.000000 1174.000000,207.500000 1174.000000,207.750000  |  | ||||||
| z"/> |  | ||||||
| <path fill="#FFFFFF" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M1174.000000,206.533020  |  | ||||||
| 	C1173.115845,206.255310 1172.170776,205.571564 1171.356201,204.757263  |  | ||||||
| 	C1103.995605,137.413895 1036.645020,70.060425 969.295898,2.705561  |  | ||||||
| 	C968.943176,2.352815 968.620972,1.969603 968.142212,1.300326  |  | ||||||
| 	C1036.594238,1.000000 1105.188599,1.000000 1174.000000,1.000000  |  | ||||||
| 	C1174.000000,69.355194 1174.000000,137.710617 1174.000000,206.533020  |  | ||||||
| z"/> |  | ||||||
| <path fill="#FFFFFF" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M824.242065,404.245361  |  | ||||||
| 	C809.069336,421.714569 794.123657,438.910675 779.130859,456.160980  |  | ||||||
| 	C770.043213,448.601013 761.432556,441.033173 752.404175,434.001740  |  | ||||||
| 	C723.361389,411.383057 691.388062,395.162079 654.712402,388.765686  |  | ||||||
| 	C573.378845,374.580780 496.945190,411.347198 457.904602,484.052490  |  | ||||||
| 	C437.309692,522.406311 430.193268,563.523926 433.752258,606.690613  |  | ||||||
| 	C437.160706,648.031494 450.585236,685.708313 476.366638,718.347046  |  | ||||||
| 	C510.796692,761.934998 555.974548,785.353088 611.649048,788.182129  |  | ||||||
| 	C668.088501,791.050049 716.790833,772.086792 759.459290,736.016846  |  | ||||||
| 	C767.314697,729.376404 775.039185,722.581055 781.866882,716.683960  |  | ||||||
| 	C803.799194,737.939087 825.522522,758.991638 847.328979,780.124756  |  | ||||||
| 	C803.501465,826.733521 753.158081,861.099548 690.185303,873.820862  |  | ||||||
| 	C632.887451,885.395691 575.706055,885.185242 520.224731,865.190979  |  | ||||||
| 	C419.946594,829.052856 358.404633,757.597168 335.155365,654.111511  |  | ||||||
| 	C319.957764,586.465027 326.804779,520.093689 356.951416,457.320282  |  | ||||||
| 	C397.312988,373.276550 463.817413,320.829376 554.867737,301.133331  |  | ||||||
| 	C618.102173,287.454407 680.713013,291.966217 741.486328,314.979523  |  | ||||||
| 	C780.256958,329.661011 813.026611,353.649353 843.084839,382.471130  |  | ||||||
| 	C836.811584,389.716736 830.640320,396.844513 824.242065,404.245361  |  | ||||||
| z"/> |  | ||||||
| <path fill="#B496C6" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M401.126587,1004.000000  |  | ||||||
| 	C401.126709,1014.938782 401.126709,1025.377563 401.126709,1036.922485  |  | ||||||
| 	C402.896790,1035.321899 403.933044,1034.603882 404.695007,1033.663574  |  | ||||||
| 	C423.619873,1010.312439 458.642456,1014.223816 476.289124,1034.845947  |  | ||||||
| 	C495.745544,1057.582886 494.109619,1097.545654 472.987305,1118.665161  |  | ||||||
| 	C456.085083,1135.565308 423.297913,1138.649780 404.875366,1117.611572  |  | ||||||
| 	C404.038116,1116.655273 403.029083,1115.849609 401.121826,1114.051758  |  | ||||||
| 	C401.121826,1118.566772 400.987305,1121.979004 401.160339,1125.375610  |  | ||||||
| 	C401.327179,1128.650757 400.378265,1130.322998 396.712982,1130.175049  |  | ||||||
| 	C391.222198,1129.953491 385.712311,1129.997559 380.217560,1130.162231  |  | ||||||
| 	C376.993805,1130.258667 375.755646,1129.053101 375.836487,1125.806519  |  | ||||||
| 	C375.994049,1119.477539 375.874329,1113.141724 375.874237,1106.808716  |  | ||||||
| 	C375.873474,1065.977417 375.949005,1025.145630 375.775360,984.315125  |  | ||||||
| 	C375.754608,979.441406 376.825531,977.296387 382.102264,977.778320  |  | ||||||
| 	C387.061035,978.231079 392.096008,977.989441 397.091583,977.847290  |  | ||||||
| 	C400.149170,977.760315 401.198700,979.046997 401.152191,982.001770  |  | ||||||
| 	C401.039398,989.166199 401.122375,996.333740 401.126587,1004.000000  |  | ||||||
| M401.102875,1069.011719  |  | ||||||
| 	C400.098053,1078.886963 401.329559,1088.256470 407.101685,1096.684570  |  | ||||||
| 	C420.591766,1116.381714 449.957458,1114.592529 459.843262,1092.900513  |  | ||||||
| 	C462.811829,1086.386719 463.929352,1078.394409 463.659058,1071.163086  |  | ||||||
| 	C462.954895,1052.325073 448.612427,1039.179199 431.024689,1039.892334  |  | ||||||
| 	C416.229248,1040.492432 405.168213,1050.977661 401.102875,1069.011719  |  | ||||||
| z"/> |  | ||||||
| <path fill="#FEFDFE" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M1021.202576,1101.701294  |  | ||||||
| 	C1006.094421,1069.964478 1020.072083,1033.779419 1051.827393,1021.662964  |  | ||||||
| 	C1084.911865,1009.039368 1120.842163,1026.064697 1130.352783,1058.871704  |  | ||||||
| 	C1140.394165,1093.509888 1116.971191,1128.525757 1081.114746,1132.114380  |  | ||||||
| 	C1054.950562,1134.733032 1034.668091,1125.202515 1021.202576,1101.701294  |  | ||||||
| M1063.986572,1041.223145  |  | ||||||
| 	C1048.638306,1046.359863 1041.596069,1057.693604 1040.531982,1073.203491  |  | ||||||
| 	C1038.714111,1099.699341 1064.766113,1118.165283 1088.315552,1107.193970  |  | ||||||
| 	C1103.746460,1100.005005 1111.074951,1080.915771 1105.178711,1063.268677  |  | ||||||
| 	C1099.385498,1045.930298 1083.597778,1037.239746 1063.986572,1041.223145  |  | ||||||
| z"/> |  | ||||||
| <path fill="#B396C5" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M513.996948,1053.104736  |  | ||||||
| 	C524.357849,1030.779541 541.582703,1018.881775 565.767517,1017.961548  |  | ||||||
| 	C590.627502,1017.015625 609.925598,1027.053101 621.290771,1049.613525  |  | ||||||
| 	C639.243103,1085.250000 615.868713,1127.533081 576.077942,1132.138428  |  | ||||||
| 	C545.601379,1135.665771 518.928467,1118.602539 511.612946,1090.667114  |  | ||||||
| 	C508.319275,1078.089722 508.981232,1065.614258 513.996948,1053.104736  |  | ||||||
| M562.260620,1040.444092  |  | ||||||
| 	C546.615784,1043.979858 537.547485,1054.070801 535.297913,1070.447632  |  | ||||||
| 	C533.121765,1086.289917 541.953796,1102.308838 555.941284,1107.888672  |  | ||||||
| 	C570.341492,1113.633301 586.898376,1109.268066 595.135681,1096.926514  |  | ||||||
| 	C603.733704,1084.044556 604.355286,1070.265991 596.774170,1056.799438  |  | ||||||
| 	C589.497620,1043.873901 577.771179,1038.791748 562.260620,1040.444092  |  | ||||||
| z"/> |  | ||||||
| <path fill="#B396C5" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M854.242432,1105.319092  |  | ||||||
| 	C857.158447,1103.100098 859.777344,1101.088501 862.714783,1098.832153  |  | ||||||
| 	C867.508911,1103.103882 872.197815,1107.281738 877.282959,1111.812744  |  | ||||||
| 	C871.321899,1119.494873 864.166870,1124.953979 855.517578,1128.350586  |  | ||||||
| 	C822.767029,1141.211426 782.995667,1125.795166 776.625183,1086.417480  |  | ||||||
| 	C771.315674,1053.597778 788.140564,1027.923828 812.589294,1020.461792  |  | ||||||
| 	C845.873840,1010.303040 877.873352,1027.588623 881.911011,1068.743774  |  | ||||||
| 	C883.416565,1084.089355 883.022278,1084.128052 867.826904,1084.128052  |  | ||||||
| 	C847.827942,1084.128174 827.828918,1084.128174 807.829956,1084.128296  |  | ||||||
| 	C805.872803,1084.128418 803.915649,1084.128296 801.983032,1084.128296  |  | ||||||
| 	C801.815186,1096.424561 812.187134,1108.330078 824.789001,1110.928833  |  | ||||||
| 	C835.234131,1113.082764 844.979370,1111.390137 854.242432,1105.319092  |  | ||||||
| M807.682800,1067.153442  |  | ||||||
| 	C823.922729,1067.153442 840.162659,1067.153442 856.360352,1067.153442  |  | ||||||
| 	C857.024231,1051.490723 843.821167,1038.060181 828.868347,1038.415405  |  | ||||||
| 	C814.209839,1038.763672 800.809204,1052.746582 801.885498,1066.903320  |  | ||||||
| 	C803.478333,1066.985229 805.112427,1067.069336 807.682800,1067.153442  |  | ||||||
| z"/> |  | ||||||
| <path fill="#B396C6" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M183.418549,1022.317383  |  | ||||||
| 	C198.651810,1018.154236 213.662979,1016.841919 228.752792,1020.447083  |  | ||||||
| 	C247.823425,1025.003418 259.149353,1039.110596 259.708466,1060.104492  |  | ||||||
| 	C260.293976,1082.087280 259.899628,1104.095337 260.038300,1126.091797  |  | ||||||
| 	C260.057526,1129.146118 258.904449,1130.228760 255.931290,1130.154541  |  | ||||||
| 	C250.601852,1130.021362 245.253296,1129.892090 239.938004,1130.198853  |  | ||||||
| 	C235.836517,1130.435547 234.595810,1128.743408 234.961670,1124.960815  |  | ||||||
| 	C235.167923,1122.828491 234.998825,1120.660034 234.998825,1117.756470  |  | ||||||
| 	C233.598526,1118.759888 232.681229,1119.283936 231.922165,1119.980591  |  | ||||||
| 	C217.762161,1132.975952 201.272339,1135.343872 183.512024,1129.868774  |  | ||||||
| 	C168.617416,1125.277100 160.116211,1113.124634 160.159256,1097.991577  |  | ||||||
| 	C160.203674,1082.376099 168.246078,1071.024536 183.260117,1065.925537  |  | ||||||
| 	C198.251007,1060.834473 213.432663,1061.679199 228.624466,1065.080322  |  | ||||||
| 	C230.081848,1065.406616 231.544067,1065.726807 233.019272,1065.948486  |  | ||||||
| 	C233.456528,1066.014160 233.945877,1065.733521 234.370621,1065.622192  |  | ||||||
| 	C237.230057,1053.265137 228.197418,1042.357178 214.012650,1041.017212  |  | ||||||
| 	C203.049866,1039.981567 192.414581,1041.489502 182.104675,1045.354126  |  | ||||||
| 	C180.428452,1045.982422 178.710007,1046.498047 176.396927,1047.270874  |  | ||||||
| 	C174.168320,1040.594116 172.080597,1034.339355 169.759094,1027.384277  |  | ||||||
| 	C174.417435,1025.649414 178.726364,1024.044678 183.418549,1022.317383  |  | ||||||
| M222.614487,1110.282959  |  | ||||||
| 	C232.280441,1105.292969 236.480362,1097.197876 235.760620,1086.535889  |  | ||||||
| 	C235.661087,1085.061401 234.448975,1082.775879 233.263031,1082.397217  |  | ||||||
| 	C220.997086,1078.481323 208.516418,1076.766968 196.064621,1081.398193  |  | ||||||
| 	C188.557663,1084.190308 184.559586,1090.745972 185.061066,1098.121948  |  | ||||||
| 	C185.541321,1105.185791 190.386749,1110.687134 198.052612,1112.792114  |  | ||||||
| 	C206.277649,1115.050659 214.217789,1113.966431 222.614487,1110.282959  |  | ||||||
| z"/> |  | ||||||
| <path fill="#B497C6" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M652.674561,1084.000000  |  | ||||||
| 	C652.675354,1064.180542 652.792175,1044.859741 652.590515,1025.542358  |  | ||||||
| 	C652.544373,1021.128174 653.942261,1019.634521 658.319153,1019.922363  |  | ||||||
| 	C663.460022,1020.260315 668.645813,1020.156006 673.800659,1019.952393  |  | ||||||
| 	C677.140076,1019.820496 678.215881,1021.172424 678.037964,1024.347046  |  | ||||||
| 	C677.847046,1027.753906 677.994934,1031.179810 677.994934,1035.817871  |  | ||||||
| 	C680.418274,1033.157227 681.911743,1031.446533 683.479919,1029.807129  |  | ||||||
| 	C695.690918,1017.041931 716.863159,1013.746887 732.321106,1022.254761  |  | ||||||
| 	C743.986084,1028.674927 750.329590,1039.136963 750.778564,1051.887817  |  | ||||||
| 	C751.651367,1076.672607 751.187561,1101.504028 751.318970,1126.315796  |  | ||||||
| 	C751.333618,1129.085205 750.111389,1130.173340 747.393127,1130.132080  |  | ||||||
| 	C741.898499,1130.048462 736.388123,1129.882690 730.909912,1130.197876  |  | ||||||
| 	C726.763428,1130.436401 725.910034,1128.659790 725.937012,1124.932373  |  | ||||||
| 	C726.075562,1105.780396 726.007690,1086.627075 725.987732,1067.474121  |  | ||||||
| 	C725.985596,1065.479614 726.002808,1063.458374 725.706665,1061.495361  |  | ||||||
| 	C723.562256,1047.280884 714.725037,1040.125244 700.475464,1040.969238  |  | ||||||
| 	C687.650574,1041.728882 678.289795,1051.782104 678.088196,1065.822388  |  | ||||||
| 	C677.813293,1084.971313 678.009644,1104.127197 677.998840,1123.280029  |  | ||||||
| 	C677.994995,1130.108398 677.988098,1130.112915 671.249817,1130.123413  |  | ||||||
| 	C666.753052,1130.130493 662.243225,1129.909424 657.763428,1130.184448  |  | ||||||
| 	C653.756165,1130.430420 652.575684,1128.797485 652.619568,1124.970337  |  | ||||||
| 	C652.774353,1111.481812 652.676819,1097.990356 652.674561,1084.000000  |  | ||||||
| z"/> |  | ||||||
| <path fill="#B396C5" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M119.017403,1045.897461  |  | ||||||
| 	C103.476791,1036.430054 87.046638,1038.557983 76.319031,1051.184937  |  | ||||||
| 	C65.297775,1064.157593 65.223991,1086.028564 76.138634,1098.826416  |  | ||||||
| 	C83.239876,1107.153076 92.244728,1110.650269 103.144859,1110.191895  |  | ||||||
| 	C113.867172,1109.740845 121.771889,1103.853394 130.299011,1096.332031  |  | ||||||
| 	C134.418365,1100.866577 138.256943,1105.245117 142.279175,1109.447876  |  | ||||||
| 	C144.008331,1111.254517 144.090958,1112.478760 142.387802,1114.456543  |  | ||||||
| 	C128.440613,1130.652588 103.477272,1137.315918 81.478561,1129.875244  |  | ||||||
| 	C59.195229,1122.338257 45.926426,1106.411377 43.188984,1083.193359  |  | ||||||
| 	C39.333969,1050.496826 58.671745,1023.907654 89.835030,1018.619995  |  | ||||||
| 	C108.562424,1015.442383 125.930077,1019.275879 140.351669,1032.810791  |  | ||||||
| 	C143.275986,1035.555298 144.010681,1037.637085 140.759842,1040.468872  |  | ||||||
| 	C136.374313,1044.289062 132.109711,1048.247925 127.387344,1052.514038  |  | ||||||
| 	C125.219917,1050.791626 122.268578,1048.446411 119.017403,1045.897461  |  | ||||||
| z"/> |  | ||||||
| <path fill="#B497C6" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M353.790070,1043.427490  |  | ||||||
| 	C350.733795,1044.354858 347.832062,1044.832642 344.942749,1045.376465  |  | ||||||
| 	C328.779388,1048.418091 317.784821,1060.059814 316.201233,1078.007690  |  | ||||||
| 	C314.932556,1092.386353 315.383026,1106.919067 315.137146,1121.384644  |  | ||||||
| 	C314.970276,1131.203003 316.127838,1130.024902 306.225861,1130.119141  |  | ||||||
| 	C302.564056,1130.154053 298.884857,1129.903076 295.243988,1130.181030  |  | ||||||
| 	C291.144775,1130.494019 289.753448,1129.024658 289.796387,1124.840332  |  | ||||||
| 	C289.984222,1106.531616 289.875397,1088.219849 289.875153,1069.909180  |  | ||||||
| 	C289.874969,1055.094116 290.040833,1040.276245 289.777374,1025.465820  |  | ||||||
| 	C289.697205,1020.959900 291.198883,1019.626587 295.507935,1019.924500  |  | ||||||
| 	C300.312347,1020.256714 305.168030,1020.198242 309.981384,1019.938782  |  | ||||||
| 	C313.799438,1019.733093 315.413696,1020.897034 315.194824,1024.956665  |  | ||||||
| 	C314.900055,1030.423950 315.121674,1035.918945 316.033447,1041.863770  |  | ||||||
| 	C316.890594,1040.457275 317.750885,1039.052734 318.604279,1037.643921  |  | ||||||
| 	C325.588013,1026.116211 335.330078,1018.934265 349.151764,1017.919495  |  | ||||||
| 	C352.771240,1017.653687 354.335571,1018.677124 354.180176,1022.544922  |  | ||||||
| 	C353.906464,1029.358154 354.006683,1036.186401 353.790070,1043.427490  |  | ||||||
| z"/> |  | ||||||
| <path fill="#FFFFFF" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M970.070190,1130.149170  |  | ||||||
| 	C967.600586,1130.149170 965.622131,1130.149170 963.325317,1130.149170  |  | ||||||
| 	C963.325317,1093.449585 963.325317,1057.058838 963.325317,1020.333618  |  | ||||||
| 	C971.488037,1020.333618 979.702515,1020.333618 988.190430,1020.333618  |  | ||||||
| 	C988.190430,1056.859741 988.190430,1093.234131 988.190430,1130.149170  |  | ||||||
| 	C982.133972,1130.149170 976.347717,1130.149170 970.070190,1130.149170  |  | ||||||
| z"/> |  | ||||||
| <path fill="#FCFBFD" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M930.629333,1129.979980  |  | ||||||
| 	C921.562012,1130.103516 912.953064,1130.103516 904.095581,1130.103516  |  | ||||||
| 	C904.095581,1120.382812 904.095581,1111.126099 904.095581,1101.511963  |  | ||||||
| 	C913.093201,1101.511963 922.010315,1101.511963 931.087708,1101.511963  |  | ||||||
| 	C931.087708,1110.890259 931.087708,1120.373291 930.629333,1129.979980  |  | ||||||
| z"/> |  | ||||||
| <path fill="#FFFFFF" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M989.130493,1000.834351  |  | ||||||
| 	C987.997314,1001.928955 986.887451,1003.041870 985.755371,1003.064941  |  | ||||||
| 	C978.106445,1003.221008 970.452820,1003.146362 962.400879,1003.146362  |  | ||||||
| 	C962.400879,995.258179 962.400879,987.527710 962.400879,979.396606  |  | ||||||
| 	C970.989380,979.396606 979.834900,979.396606 989.143494,979.396606  |  | ||||||
| 	C989.143494,986.455139 989.143494,993.401855 989.130493,1000.834351  |  | ||||||
| z"/> |  | ||||||
| <path fill="#73358B" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M401.167480,1068.572754  |  | ||||||
| 	C405.168213,1050.977661 416.229248,1040.492432 431.024689,1039.892334  |  | ||||||
| 	C448.612427,1039.179199 462.954895,1052.325073 463.659058,1071.163086  |  | ||||||
| 	C463.929352,1078.394409 462.811829,1086.386719 459.843262,1092.900513  |  | ||||||
| 	C449.957458,1114.592529 420.591766,1116.381714 407.101685,1096.684570  |  | ||||||
| 	C401.329559,1088.256470 400.098053,1078.886963 401.167480,1068.572754  |  | ||||||
| z"/> |  | ||||||
| <path fill="#74368C" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M1064.389893,1041.130493  |  | ||||||
| 	C1083.597778,1037.239746 1099.385498,1045.930298 1105.178711,1063.268677  |  | ||||||
| 	C1111.074951,1080.915771 1103.746460,1100.005005 1088.315552,1107.193970  |  | ||||||
| 	C1064.766113,1118.165283 1038.714111,1099.699341 1040.531982,1073.203491  |  | ||||||
| 	C1041.596069,1057.693604 1048.638306,1046.359863 1064.389893,1041.130493  |  | ||||||
| z"/> |  | ||||||
| <path fill="#73358B" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M562.688843,1040.359863  |  | ||||||
| 	C577.771179,1038.791748 589.497620,1043.873901 596.774170,1056.799438  |  | ||||||
| 	C604.355286,1070.265991 603.733704,1084.044556 595.135681,1096.926514  |  | ||||||
| 	C586.898376,1109.268066 570.341492,1113.633301 555.941284,1107.888672  |  | ||||||
| 	C541.953796,1102.308838 533.121765,1086.289917 535.297913,1070.447632  |  | ||||||
| 	C537.547485,1054.070801 546.615784,1043.979858 562.688843,1040.359863  |  | ||||||
| z"/> |  | ||||||
| <path fill="#74358C" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M807.214600,1067.153320  |  | ||||||
| 	C805.112427,1067.069336 803.478333,1066.985229 801.885498,1066.903320  |  | ||||||
| 	C800.809204,1052.746582 814.209839,1038.763672 828.868347,1038.415405  |  | ||||||
| 	C843.821167,1038.060181 857.024231,1051.490723 856.360352,1067.153442  |  | ||||||
| 	C840.162659,1067.153442 823.922729,1067.153442 807.214600,1067.153320  |  | ||||||
| z"/> |  | ||||||
| <path fill="#74358C" opacity="1.000000" stroke="none"  |  | ||||||
| 	d=" |  | ||||||
| M222.282150,1110.464844  |  | ||||||
| 	C214.217789,1113.966431 206.277649,1115.050659 198.052612,1112.792114  |  | ||||||
| 	C190.386749,1110.687134 185.541321,1105.185791 185.061066,1098.121948  |  | ||||||
| 	C184.559586,1090.745972 188.557663,1084.190308 196.064621,1081.398193  |  | ||||||
| 	C208.516418,1076.766968 220.997086,1078.481323 233.263031,1082.397217  |  | ||||||
| 	C234.448975,1082.775879 235.661087,1085.061401 235.760620,1086.535889  |  | ||||||
| 	C236.480362,1097.197876 232.280441,1105.292969 222.282150,1110.464844  |  | ||||||
| z"/> |  | ||||||
| </svg> |  | ||||||
| Before Width: | Height: | Size: 26 KiB | 
| @@ -1,33 +0,0 @@ | |||||||
| import verifyCredentials from './verify-credentials'; |  | ||||||
| import isStillVerified from './is-still-verified'; |  | ||||||
|  |  | ||||||
| export default { |  | ||||||
|   fields: [ |  | ||||||
|     { |  | ||||||
|       key: 'screenName', |  | ||||||
|       label: 'Screen Name', |  | ||||||
|       type: 'string' as const, |  | ||||||
|       required: true, |  | ||||||
|       readOnly: false, |  | ||||||
|       value: null, |  | ||||||
|       placeholder: null, |  | ||||||
|       description: |  | ||||||
|         'Screen name of your connection to be used on Automatisch UI.', |  | ||||||
|       clickToCopy: false, |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       key: 'apiKey', |  | ||||||
|       label: 'API Key', |  | ||||||
|       type: 'string' as const, |  | ||||||
|       required: true, |  | ||||||
|       readOnly: false, |  | ||||||
|       value: null, |  | ||||||
|       placeholder: null, |  | ||||||
|       description: 'Carbone API key of your account.', |  | ||||||
|       clickToCopy: false, |  | ||||||
|     }, |  | ||||||
|   ], |  | ||||||
|  |  | ||||||
|   verifyCredentials, |  | ||||||
|   isStillVerified, |  | ||||||
| }; |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| import verifyCredentials from './verify-credentials'; |  | ||||||
|  |  | ||||||
| const isStillVerified = async ($: IGlobalVariable) => { |  | ||||||
|   await verifyCredentials($); |  | ||||||
|   return true; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default isStillVerified; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const verifyCredentials = async ($: IGlobalVariable) => { |  | ||||||
|   await $.http.get('/templates'); |  | ||||||
|  |  | ||||||
|   await $.auth.set({ |  | ||||||
|     screenName: $.auth.data.screenName, |  | ||||||
|     apiKey: $.auth.data.apiKey, |  | ||||||
|   }); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default verifyCredentials; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| import { TBeforeRequest } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const addAuthHeader: TBeforeRequest = ($, requestConfig) => { |  | ||||||
|   if ($.auth.data?.apiKey) { |  | ||||||
|     requestConfig.headers.Authorization = `Bearer ${$.auth.data.apiKey}`; |  | ||||||
|     requestConfig.headers['carbone-version'] = '4'; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return requestConfig; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default addAuthHeader; |  | ||||||
| @@ -1,18 +0,0 @@ | |||||||
| import defineApp from '../../helpers/define-app'; |  | ||||||
| import addAuthHeader from './common/add-auth-header'; |  | ||||||
| import auth from './auth'; |  | ||||||
| import actions from './actions'; |  | ||||||
|  |  | ||||||
| export default defineApp({ |  | ||||||
|   name: 'Carbone', |  | ||||||
|   key: 'carbone', |  | ||||||
|   iconUrl: '{BASE_URL}/apps/carbone/assets/favicon.svg', |  | ||||||
|   authDocUrl: 'https://automatisch.io/docs/apps/carbone/connection', |  | ||||||
|   supportsConnections: true, |  | ||||||
|   baseUrl: 'https://carbone.io', |  | ||||||
|   apiBaseUrl: 'https://api.carbone.io', |  | ||||||
|   primaryColor: '6f42c1', |  | ||||||
|   beforeRequest: [addAuthHeader], |  | ||||||
|   auth, |  | ||||||
|   actions, |  | ||||||
| }); |  | ||||||
| @@ -1,102 +0,0 @@ | |||||||
| import defineAction from '../../../../helpers/define-action'; |  | ||||||
|  |  | ||||||
| export default defineAction({ |  | ||||||
|   name: 'Create a scheduled event', |  | ||||||
|   key: 'createScheduledEvent', |  | ||||||
|   description: 'Creates a scheduled event', |  | ||||||
|   arguments: [ |  | ||||||
|     { |  | ||||||
|       label: 'Type', |  | ||||||
|       key: 'entityType', |  | ||||||
|       type: 'dropdown' as const, |  | ||||||
|       required: true, |  | ||||||
|       variables: true, |  | ||||||
|       options: [ |  | ||||||
|         { label: 'Stage channel', value: 1 }, |  | ||||||
|         { label: 'Voice channel', value: 2 }, |  | ||||||
|         { label: 'External', value: 3 } |  | ||||||
|       ], |  | ||||||
|       additionalFields: { |  | ||||||
|         type: 'query', |  | ||||||
|         name: 'getDynamicFields', |  | ||||||
|         arguments: [ |  | ||||||
|           { |  | ||||||
|             name: 'key', |  | ||||||
|             value: 'listExternalScheduledEventFields', |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             name: 'parameters.entityType', |  | ||||||
|             value: '{parameters.entityType}', |  | ||||||
|           }, |  | ||||||
|         ], |  | ||||||
|       }, |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       label: 'Name', |  | ||||||
|       key: 'name', |  | ||||||
|       type: 'string' as const, |  | ||||||
|       required: true, |  | ||||||
|       variables: true, |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       label: 'Description', |  | ||||||
|       key: 'description', |  | ||||||
|       type: 'string' as const, |  | ||||||
|       required: false, |  | ||||||
|       variables: true, |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       label: 'Image', |  | ||||||
|       key: 'image', |  | ||||||
|       type: 'string' as const, |  | ||||||
|       required: false, |  | ||||||
|       description: 'Image as DataURI scheme [data:image/<jpeg/png/gif>;base64,BASE64_ENCODED_<JPEG/PNG/GIF>_IMAGE_DATA]', |  | ||||||
|       variables: true, |  | ||||||
|     }, |  | ||||||
|   ], |  | ||||||
|  |  | ||||||
|   async run($) { |  | ||||||
|     type entity_metadata = { |  | ||||||
|       location: string |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     type guild_event = { |  | ||||||
|       channel_id: number, |  | ||||||
|       name: string, |  | ||||||
|       privacy_level: number, |  | ||||||
|       scheduled_start_time: string, |  | ||||||
|       scheduled_end_time?: string, |  | ||||||
|       description?: string, |  | ||||||
|       entity_type?: number, |  | ||||||
|       entity_metadata?: entity_metadata, |  | ||||||
|       image?: string, //data:image/jpeg;base64,BASE64_ENCODED_JPEG_IMAGE_DATA |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     const data: guild_event = { |  | ||||||
|       channel_id: $.step.parameters.channel_id as number, |  | ||||||
|       name: $.step.parameters.name as string, |  | ||||||
|       privacy_level: 2, |  | ||||||
|       scheduled_start_time: $.step.parameters.scheduledStartTime as string, |  | ||||||
|       scheduled_end_time: $.step.parameters.scheduledEndTime as string, |  | ||||||
|       description: $.step.parameters.description as string, |  | ||||||
|       entity_type: $.step.parameters.entityType as number, |  | ||||||
|       image: $.step.parameters.image as string, |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     const isExternal = $.step.parameters.entityType === 3; |  | ||||||
|     if (isExternal) { |  | ||||||
|       data.entity_metadata = { |  | ||||||
|         location: $.step.parameters.location as string, |  | ||||||
|       }; |  | ||||||
|       data.channel_id = null; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     const response = await $.http?.post( |  | ||||||
|       `/guilds/${$.auth.data.guildId}/scheduled-events`, |  | ||||||
|       data |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|     $.setActionItem({ raw: response.data }); |  | ||||||
|   }, |  | ||||||
| }); |  | ||||||
| @@ -1,4 +1,3 @@ | |||||||
| import sendMessageToChannel from './send-message-to-channel'; | import sendMessageToChannel from './send-message-to-channel'; | ||||||
| import createScheduledEvent from './create-scheduled-event'; |  | ||||||
|  |  | ||||||
| export default [sendMessageToChannel, createScheduledEvent]; | export default [sendMessageToChannel]; | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
| import listChannels from './list-channels'; | import listChannels from './list-channels'; | ||||||
| import listVoiceChannels from './list-voice-channels'; |  | ||||||
|  |  | ||||||
| export default [listChannels, listVoiceChannels]; | export default [listChannels]; | ||||||
|   | |||||||
| @@ -1,34 +0,0 @@ | |||||||
| import { IGlobalVariable, IJSONObject } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| export default { |  | ||||||
|   name: 'List voice channels', |  | ||||||
|   key: 'listVoiceChannels', |  | ||||||
|  |  | ||||||
|   async run($: IGlobalVariable) { |  | ||||||
|     const channels: { |  | ||||||
|       data: IJSONObject[]; |  | ||||||
|       error: IJSONObject | null; |  | ||||||
|     } = { |  | ||||||
|       data: [], |  | ||||||
|       error: null, |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     const response = await $.http.get( |  | ||||||
|       `/guilds/${$.auth.data.guildId}/channels` |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|     channels.data = response.data |  | ||||||
|       .filter((channel: IJSONObject) => { |  | ||||||
|         // filter in voice and stage channels only |  | ||||||
|         return channel.type === 2 || channel.type === 13; |  | ||||||
|       }) |  | ||||||
|       .map((channel: IJSONObject) => { |  | ||||||
|         return { |  | ||||||
|           value: channel.id, |  | ||||||
|           name: channel.name, |  | ||||||
|         }; |  | ||||||
|       }); |  | ||||||
|  |  | ||||||
|     return channels; |  | ||||||
|   }, |  | ||||||
| }; |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| import listExternalScheduledEventFields from './list-external-scheduled-event-fields'; |  | ||||||
|  |  | ||||||
| export default [listExternalScheduledEventFields]; |  | ||||||
| @@ -1,83 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| export default { |  | ||||||
|   name: 'List external scheduled event fields', |  | ||||||
|   key: 'listExternalScheduledEventFields', |  | ||||||
|  |  | ||||||
|   async run($: IGlobalVariable) { |  | ||||||
|     const isExternal = $.step.parameters.entityType === 3; |  | ||||||
|  |  | ||||||
|     if (isExternal) { |  | ||||||
|       return [ |  | ||||||
|         { |  | ||||||
|           label: 'Location', |  | ||||||
|           key: 'location', |  | ||||||
|           type: 'string' as const, |  | ||||||
|           required: true, |  | ||||||
|           description: 'The location of the event (1-100 characters). This will be omitted if type is NOT EXTERNAL', |  | ||||||
|           variables: true, |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           label: 'Start-Time', |  | ||||||
|           key: 'scheduledStartTime', |  | ||||||
|           type: 'string' as const, |  | ||||||
|           required: true, |  | ||||||
|           description: 'The time the event will start [ISO8601]', |  | ||||||
|           variables: true, |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           label: 'End-Time', |  | ||||||
|           key: 'scheduledEndTime', |  | ||||||
|           type: 'string' as const, |  | ||||||
|           required: true, |  | ||||||
|           description: 'The time the event will end [ISO8601]. This will be omitted if type is NOT EXTERNAL', |  | ||||||
|           variables: true, |  | ||||||
|         }, |  | ||||||
|       ]; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     return [ |  | ||||||
|       { |  | ||||||
|         label: 'Channel', |  | ||||||
|         key: 'channel_id', |  | ||||||
|         type: 'dropdown' as const, |  | ||||||
|         required: true, |  | ||||||
|         description: 'Pick a voice or stage channel to link the event to. This will be omitted if type is EXTERNAL', |  | ||||||
|         variables: true, |  | ||||||
|         source: { |  | ||||||
|           type: 'query', |  | ||||||
|           name: 'getDynamicData', |  | ||||||
|           arguments: [ |  | ||||||
|             { |  | ||||||
|               name: 'key', |  | ||||||
|               value: 'listVoiceChannels', |  | ||||||
|             }, |  | ||||||
|           ], |  | ||||||
|         }, |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         label: 'Location', |  | ||||||
|         key: 'location', |  | ||||||
|         type: 'string' as const, |  | ||||||
|         required: false, |  | ||||||
|         description: 'The location of the event (1-100 characters). This will be omitted if type is NOT EXTERNAL', |  | ||||||
|         variables: true, |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         label: 'Start-Time', |  | ||||||
|         key: 'scheduledStartTime', |  | ||||||
|         type: 'string' as const, |  | ||||||
|         required: true, |  | ||||||
|         description: 'The time the event will start [ISO8601]', |  | ||||||
|         variables: true, |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         label: 'End-Time', |  | ||||||
|         key: 'scheduledEndTime', |  | ||||||
|         type: 'string' as const, |  | ||||||
|         required: false, |  | ||||||
|         description: 'The time the event will end [ISO8601]. This will be omitted if type is NOT EXTERNAL', |  | ||||||
|         variables: true, |  | ||||||
|       }, |  | ||||||
|     ]; |  | ||||||
|   }, |  | ||||||
| }; |  | ||||||
| @@ -4,7 +4,6 @@ import auth from './auth'; | |||||||
| import dynamicData from './dynamic-data'; | import dynamicData from './dynamic-data'; | ||||||
| import actions from './actions'; | import actions from './actions'; | ||||||
| import triggers from './triggers'; | import triggers from './triggers'; | ||||||
| import dynamicFields from './dynamic-fields'; |  | ||||||
|  |  | ||||||
| export default defineApp({ | export default defineApp({ | ||||||
|   name: 'Discord', |   name: 'Discord', | ||||||
| @@ -18,7 +17,6 @@ export default defineApp({ | |||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   dynamicData, |   dynamicData, | ||||||
|   dynamicFields, |  | ||||||
|   triggers, |   triggers, | ||||||
|   actions, |   actions, | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
| import Crypto from 'crypto'; |  | ||||||
| import isEmpty from 'lodash/isEmpty'; | import isEmpty from 'lodash/isEmpty'; | ||||||
| import defineTrigger from '../../../../helpers/define-trigger'; | import defineTrigger from '../../../../helpers/define-trigger'; | ||||||
| import webhookFilters from '../../common/webhook-filters'; | import webhookFilters from '../../common/webhook-filters'; | ||||||
| @@ -20,17 +19,6 @@ export default defineTrigger({ | |||||||
|     }, |     }, | ||||||
|   ], |   ], | ||||||
|  |  | ||||||
|   async run($) { |  | ||||||
|     const dataItem = { |  | ||||||
|       raw: $.request.body, |  | ||||||
|       meta: { |  | ||||||
|         internalId: Crypto.randomUUID(), |  | ||||||
|       }, |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     $.pushTriggerItem(dataItem); |  | ||||||
|   }, |  | ||||||
|  |  | ||||||
|   async testRun($) { |   async testRun($) { | ||||||
|     const lastExecutionStep = await $.getLastExecutionStep(); |     const lastExecutionStep = await $.getLastExecutionStep(); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,49 +0,0 @@ | |||||||
| import defineAction from '../../../../helpers/define-action'; |  | ||||||
|  |  | ||||||
| import formatDateTime from './transformers/format-date-time'; |  | ||||||
|  |  | ||||||
| const transformers = { |  | ||||||
|   formatDateTime, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default defineAction({ |  | ||||||
|   name: 'Date / Time', |  | ||||||
|   key: 'date-time', |  | ||||||
|   description: 'Perform date and time related transformations on your data.', |  | ||||||
|   arguments: [ |  | ||||||
|     { |  | ||||||
|       label: 'Transform', |  | ||||||
|       key: 'transform', |  | ||||||
|       type: 'dropdown' as const, |  | ||||||
|       required: true, |  | ||||||
|       variables: true, |  | ||||||
|       options: [{ label: 'Format Date / Time', value: 'formatDateTime' }], |  | ||||||
|       additionalFields: { |  | ||||||
|         type: 'query', |  | ||||||
|         name: 'getDynamicFields', |  | ||||||
|         arguments: [ |  | ||||||
|           { |  | ||||||
|             name: 'key', |  | ||||||
|             value: 'listTransformOptions', |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             name: 'parameters.transform', |  | ||||||
|             value: '{parameters.transform}', |  | ||||||
|           }, |  | ||||||
|         ], |  | ||||||
|       }, |  | ||||||
|     }, |  | ||||||
|   ], |  | ||||||
|  |  | ||||||
|   async run($) { |  | ||||||
|     const transformerName = $.step.parameters |  | ||||||
|       .transform as keyof typeof transformers; |  | ||||||
|     const output = transformers[transformerName]($); |  | ||||||
|  |  | ||||||
|     $.setActionItem({ |  | ||||||
|       raw: { |  | ||||||
|         output, |  | ||||||
|       }, |  | ||||||
|     }); |  | ||||||
|   }, |  | ||||||
| }); |  | ||||||
| @@ -1,23 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| import { DateTime } from 'luxon'; |  | ||||||
|  |  | ||||||
| const formatDateTime = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|  |  | ||||||
|   const fromFormat = $.step.parameters.fromFormat as string; |  | ||||||
|   const fromTimezone = $.step.parameters.fromTimezone as string; |  | ||||||
|  |  | ||||||
|   const inputDateTime = DateTime.fromFormat(input, fromFormat, { |  | ||||||
|     zone: fromTimezone, |  | ||||||
|     setZone: true, |  | ||||||
|   }); |  | ||||||
|  |  | ||||||
|   const toFormat = $.step.parameters.toFormat as string; |  | ||||||
|   const toTimezone = $.step.parameters.toTimezone as string; |  | ||||||
|  |  | ||||||
|   const outputDateTime = inputDateTime.setZone(toTimezone).toFormat(toFormat); |  | ||||||
|  |  | ||||||
|   return outputDateTime; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default formatDateTime; |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| import text from './text'; |  | ||||||
| import numbers from './numbers'; |  | ||||||
| import dateTime from './date-time'; |  | ||||||
|  |  | ||||||
| export default [text, numbers, dateTime]; |  | ||||||
| @@ -1,61 +0,0 @@ | |||||||
| import defineAction from '../../../../helpers/define-action'; |  | ||||||
|  |  | ||||||
| import performMathOperation from './transformers/perform-math-operation'; |  | ||||||
| import randomNumber from './transformers/random-number'; |  | ||||||
| import formatNumber from './transformers/format-number'; |  | ||||||
| import formatPhoneNumber from './transformers/format-phone-number'; |  | ||||||
|  |  | ||||||
| const transformers = { |  | ||||||
|   performMathOperation, |  | ||||||
|   randomNumber, |  | ||||||
|   formatNumber, |  | ||||||
|   formatPhoneNumber, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default defineAction({ |  | ||||||
|   name: 'Numbers', |  | ||||||
|   key: 'numbers', |  | ||||||
|   description: |  | ||||||
|     'Transform numbers to perform math operations, generate random numbers, format numbers, and much more.', |  | ||||||
|   arguments: [ |  | ||||||
|     { |  | ||||||
|       label: 'Transform', |  | ||||||
|       key: 'transform', |  | ||||||
|       type: 'dropdown' as const, |  | ||||||
|       required: true, |  | ||||||
|       variables: true, |  | ||||||
|       options: [ |  | ||||||
|         { label: 'Perform Math Operation', value: 'performMathOperation' }, |  | ||||||
|         { label: 'Random Number', value: 'randomNumber' }, |  | ||||||
|         { label: 'Format Number', value: 'formatNumber' }, |  | ||||||
|         { label: 'Format Phone Number', value: 'formatPhoneNumber' }, |  | ||||||
|       ], |  | ||||||
|       additionalFields: { |  | ||||||
|         type: 'query', |  | ||||||
|         name: 'getDynamicFields', |  | ||||||
|         arguments: [ |  | ||||||
|           { |  | ||||||
|             name: 'key', |  | ||||||
|             value: 'listTransformOptions', |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             name: 'parameters.transform', |  | ||||||
|             value: '{parameters.transform}', |  | ||||||
|           }, |  | ||||||
|         ], |  | ||||||
|       }, |  | ||||||
|     }, |  | ||||||
|   ], |  | ||||||
|  |  | ||||||
|   async run($) { |  | ||||||
|     const transformerName = $.step.parameters |  | ||||||
|       .transform as keyof typeof transformers; |  | ||||||
|     const output = transformers[transformerName]($); |  | ||||||
|  |  | ||||||
|     $.setActionItem({ |  | ||||||
|       raw: { |  | ||||||
|         output, |  | ||||||
|       }, |  | ||||||
|     }); |  | ||||||
|   }, |  | ||||||
| }); |  | ||||||
| @@ -1,28 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| import accounting from 'accounting'; |  | ||||||
|  |  | ||||||
| const formatNumber = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|   const inputDecimalMark = $.step.parameters.inputDecimalMark as string; |  | ||||||
|   const toFormat = $.step.parameters.toFormat as string; |  | ||||||
|  |  | ||||||
|   const normalizedNumber = accounting.unformat(input, inputDecimalMark); |  | ||||||
|   const decimalPart = normalizedNumber.toString().split('.')[1]; |  | ||||||
|   const precision = decimalPart ? decimalPart.length : 0; |  | ||||||
|  |  | ||||||
|   if (toFormat === '0') { |  | ||||||
|     // Comma for grouping & period for decimal |  | ||||||
|     return accounting.formatNumber(normalizedNumber, precision, ',', '.'); |  | ||||||
|   } else if (toFormat === '1') { |  | ||||||
|     // Period for grouping & comma for decimal |  | ||||||
|     return accounting.formatNumber(normalizedNumber, precision, '.', ','); |  | ||||||
|   } else if (toFormat === '2') { |  | ||||||
|     // Space for grouping & period for decimal |  | ||||||
|     return accounting.formatNumber(normalizedNumber, precision, ' ', '.'); |  | ||||||
|   } else if (toFormat === '3') { |  | ||||||
|     // Space for grouping & comma for decimal |  | ||||||
|     return accounting.formatNumber(normalizedNumber, precision, ' ', ','); |  | ||||||
|   } |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default formatNumber; |  | ||||||
| @@ -1,24 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| import parsePhoneNumber, { CountryCode } from 'libphonenumber-js'; |  | ||||||
|  |  | ||||||
| const formatPhoneNumber = ($: IGlobalVariable) => { |  | ||||||
|   const phoneNumber = $.step.parameters.phoneNumber as string; |  | ||||||
|   const toFormat = $.step.parameters.toFormat as string; |  | ||||||
|   const phoneNumberCountryCode = ($.step.parameters.phoneNumberCountryCode || |  | ||||||
|     'US') as CountryCode; |  | ||||||
|  |  | ||||||
|   const parsedPhoneNumber = parsePhoneNumber( |  | ||||||
|     phoneNumber, |  | ||||||
|     phoneNumberCountryCode |  | ||||||
|   ); |  | ||||||
|  |  | ||||||
|   if (toFormat === 'e164') { |  | ||||||
|     return parsedPhoneNumber.format('E.164'); |  | ||||||
|   } else if (toFormat === 'international') { |  | ||||||
|     return parsedPhoneNumber.formatInternational(); |  | ||||||
|   } else if (toFormat === 'national') { |  | ||||||
|     return parsedPhoneNumber.formatNational(); |  | ||||||
|   } |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default formatPhoneNumber; |  | ||||||
| @@ -1,23 +0,0 @@ | |||||||
| import { IGlobalVariable, IJSONObject } from '@automatisch/types'; |  | ||||||
| import { add, divide, multiply, subtract } from 'lodash'; |  | ||||||
|  |  | ||||||
| const mathOperation = ($: IGlobalVariable) => { |  | ||||||
|   const mathOperation = $.step.parameters.mathOperation as string; |  | ||||||
|   const values = ($.step.parameters.values as IJSONObject[]).map((value) => |  | ||||||
|     Number(value.input) |  | ||||||
|   ) as number[]; |  | ||||||
|  |  | ||||||
|   if (mathOperation === 'add') { |  | ||||||
|     return values.reduce((acc, curr) => add(acc, curr), 0); |  | ||||||
|   } else if (mathOperation === 'divide') { |  | ||||||
|     return values.reduce((acc, curr) => divide(acc, curr)); |  | ||||||
|   } else if (mathOperation === 'makeNegative') { |  | ||||||
|     return values.map((value) => -value); |  | ||||||
|   } else if (mathOperation === 'multiply') { |  | ||||||
|     return values.reduce((acc, curr) => multiply(acc, curr), 1); |  | ||||||
|   } else if (mathOperation === 'subtract') { |  | ||||||
|     return values.reduce((acc, curr) => subtract(acc, curr)); |  | ||||||
|   } |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default mathOperation; |  | ||||||
| @@ -1,15 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const randomNumber = ($: IGlobalVariable) => { |  | ||||||
|   const lowerRange = Number($.step.parameters.lowerRange); |  | ||||||
|   const upperRange = Number($.step.parameters.upperRange); |  | ||||||
|   const decimalPoints = Number($.step.parameters.decimalPoints) || 0; |  | ||||||
|  |  | ||||||
|   return Number( |  | ||||||
|     (Math.random() * (upperRange - lowerRange) + lowerRange).toFixed( |  | ||||||
|       decimalPoints |  | ||||||
|     ) |  | ||||||
|   ); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default randomNumber; |  | ||||||
| @@ -1,79 +0,0 @@ | |||||||
| import defineAction from '../../../../helpers/define-action'; |  | ||||||
|  |  | ||||||
| import capitalize from './transformers/capitalize'; |  | ||||||
| import extractEmailAddress from './transformers/extract-email-address'; |  | ||||||
| import extractNumber from './transformers/extract-number'; |  | ||||||
| import htmlToMarkdown from './transformers/html-to-markdown'; |  | ||||||
| import lowercase from './transformers/lowercase'; |  | ||||||
| import markdownToHtml from './transformers/markdown-to-html'; |  | ||||||
| import pluralize from './transformers/pluralize'; |  | ||||||
| import replace from './transformers/replace'; |  | ||||||
| import trimWhitespace from './transformers/trim-whitespace'; |  | ||||||
| import useDefaultValue from './transformers/use-default-value'; |  | ||||||
|  |  | ||||||
| const transformers = { |  | ||||||
|   capitalize, |  | ||||||
|   extractEmailAddress, |  | ||||||
|   extractNumber, |  | ||||||
|   htmlToMarkdown, |  | ||||||
|   lowercase, |  | ||||||
|   markdownToHtml, |  | ||||||
|   pluralize, |  | ||||||
|   replace, |  | ||||||
|   trimWhitespace, |  | ||||||
|   useDefaultValue, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default defineAction({ |  | ||||||
|   name: 'Text', |  | ||||||
|   key: 'text', |  | ||||||
|   description: |  | ||||||
|     'Transform text data to capitalize, extract emails, apply default value, and much more.', |  | ||||||
|   arguments: [ |  | ||||||
|     { |  | ||||||
|       label: 'Transform', |  | ||||||
|       key: 'transform', |  | ||||||
|       type: 'dropdown' as const, |  | ||||||
|       required: true, |  | ||||||
|       variables: true, |  | ||||||
|       options: [ |  | ||||||
|         { label: 'Capitalize', value: 'capitalize' }, |  | ||||||
|         { label: 'Convert HTML to Markdown', value: 'htmlToMarkdown' }, |  | ||||||
|         { label: 'Convert Markdown to HTML', value: 'markdownToHtml' }, |  | ||||||
|         { label: 'Extract Email Address', value: 'extractEmailAddress' }, |  | ||||||
|         { label: 'Extract Number', value: 'extractNumber' }, |  | ||||||
|         { label: 'Lowercase', value: 'lowercase' }, |  | ||||||
|         { label: 'Pluralize', value: 'pluralize' }, |  | ||||||
|         { label: 'Replace', value: 'replace' }, |  | ||||||
|         { label: 'Trim Whitespace', value: 'trimWhitespace' }, |  | ||||||
|         { label: 'Use Default Value', value: 'useDefaultValue' }, |  | ||||||
|       ], |  | ||||||
|       additionalFields: { |  | ||||||
|         type: 'query', |  | ||||||
|         name: 'getDynamicFields', |  | ||||||
|         arguments: [ |  | ||||||
|           { |  | ||||||
|             name: 'key', |  | ||||||
|             value: 'listTransformOptions', |  | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             name: 'parameters.transform', |  | ||||||
|             value: '{parameters.transform}', |  | ||||||
|           }, |  | ||||||
|         ], |  | ||||||
|       }, |  | ||||||
|     }, |  | ||||||
|   ], |  | ||||||
|  |  | ||||||
|   async run($) { |  | ||||||
|     const transformerName = $.step.parameters |  | ||||||
|       .transform as keyof typeof transformers; |  | ||||||
|     const output = transformers[transformerName]($); |  | ||||||
|  |  | ||||||
|     $.setActionItem({ |  | ||||||
|       raw: { |  | ||||||
|         output, |  | ||||||
|       }, |  | ||||||
|     }); |  | ||||||
|   }, |  | ||||||
| }); |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| import { capitalize as lodashCapitalize } from 'lodash'; |  | ||||||
|  |  | ||||||
| const capitalize = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|   const capitalizedInput = input.replace(/\w+/g, lodashCapitalize); |  | ||||||
|  |  | ||||||
|   return capitalizedInput; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default capitalize; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const extractEmailAddress = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|   const emailRegexp = |  | ||||||
|     /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/; |  | ||||||
|  |  | ||||||
|   const email = input.match(emailRegexp); |  | ||||||
|   return email ? email[0] : ''; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default extractEmailAddress; |  | ||||||
| @@ -1,26 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const extractNumber = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|  |  | ||||||
|   //  Example numbers that's supported: |  | ||||||
|   //  123 |  | ||||||
|   //  -123 |  | ||||||
|   //  123456 |  | ||||||
|   //  -123456 |  | ||||||
|   //  121,234 |  | ||||||
|   //  -121,234 |  | ||||||
|   //  121.234 |  | ||||||
|   //  -121.234 |  | ||||||
|   //  1,234,567.89 |  | ||||||
|   //  -1,234,567.89 |  | ||||||
|   //  1.234.567,89 |  | ||||||
|   //  -1.234.567,89 |  | ||||||
|  |  | ||||||
|   const numberRegexp = /-?((\d{1,3})+\.?,?)+/g; |  | ||||||
|  |  | ||||||
|   const numbers = input.match(numberRegexp); |  | ||||||
|   return numbers ? numbers[0] : ''; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default extractNumber; |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| import { NodeHtmlMarkdown } from 'node-html-markdown'; |  | ||||||
|  |  | ||||||
| const htmlToMarkdown = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|  |  | ||||||
|   const markdown = NodeHtmlMarkdown.translate(input); |  | ||||||
|   return markdown; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default htmlToMarkdown; |  | ||||||
| @@ -1,8 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const lowercase = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|   return input.toLowerCase(); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default lowercase; |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| import showdown from 'showdown'; |  | ||||||
|  |  | ||||||
| const converter = new showdown.Converter(); |  | ||||||
|  |  | ||||||
| const markdownToHtml = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|  |  | ||||||
|   const html = converter.makeHtml(input); |  | ||||||
|   return html; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default markdownToHtml; |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| import pluralizeLibrary from 'pluralize'; |  | ||||||
|  |  | ||||||
| const pluralize = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|   return pluralizeLibrary(input); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default pluralize; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const replace = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|  |  | ||||||
|   const find = $.step.parameters.find as string; |  | ||||||
|   const replace = $.step.parameters.replace as string; |  | ||||||
|  |  | ||||||
|   return input.replaceAll(find, replace); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default replace; |  | ||||||
| @@ -1,8 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const trimWhitespace = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|   return input.trim(); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default trimWhitespace; |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const useDefaultValue = ($: IGlobalVariable) => { |  | ||||||
|   const input = $.step.parameters.input as string; |  | ||||||
|  |  | ||||||
|   if (input && input.trim().length > 0) { |  | ||||||
|     return input; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return $.step.parameters.defaultValue as string; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default useDefaultValue; |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| <svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> |  | ||||||
|   <path d="M4 4H20M4 12H20M4 20H20M4 8H14M4 16H14" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> |  | ||||||
| </svg> |  | ||||||
| Before Width: | Height: | Size: 243 B | 
| @@ -1,249 +0,0 @@ | |||||||
| const phoneNumberCountryCodes = [ |  | ||||||
|   { label: 'Ascension Island', value: 'AC' }, |  | ||||||
|   { label: 'Andorra', value: 'AD' }, |  | ||||||
|   { label: 'United Arab Emirates', value: 'AE' }, |  | ||||||
|   { label: 'Afghanistan', value: 'AF' }, |  | ||||||
|   { label: 'Antigua & Barbuda', value: 'AG' }, |  | ||||||
|   { label: 'Anguilla', value: 'AI' }, |  | ||||||
|   { label: 'Albania', value: 'AL' }, |  | ||||||
|   { label: 'Armenia', value: 'AM' }, |  | ||||||
|   { label: 'Angola', value: 'AO' }, |  | ||||||
|   { label: 'Argentina', value: 'AR' }, |  | ||||||
|   { label: 'American Samoa', value: 'AS' }, |  | ||||||
|   { label: 'Austria', value: 'AT' }, |  | ||||||
|   { label: 'Australia', value: 'AU' }, |  | ||||||
|   { label: 'Aruba', value: 'AW' }, |  | ||||||
|   { label: 'Åland Islands', value: 'AX' }, |  | ||||||
|   { label: 'Azerbaijan', value: 'AZ' }, |  | ||||||
|   { label: 'Bosnia & Herzegovina', value: 'BA' }, |  | ||||||
|   { label: 'Barbados', value: 'BB' }, |  | ||||||
|   { label: 'Bangladesh', value: 'BD' }, |  | ||||||
|   { label: 'Belgium', value: 'BE' }, |  | ||||||
|   { label: 'Burkina Faso', value: 'BF' }, |  | ||||||
|   { label: 'Bulgaria', value: 'BG' }, |  | ||||||
|   { label: 'Bahrain', value: 'BH' }, |  | ||||||
|   { label: 'Burundi', value: 'BI' }, |  | ||||||
|   { label: 'Benin', value: 'BJ' }, |  | ||||||
|   { label: 'St. Barthélemy', value: 'BL' }, |  | ||||||
|   { label: 'Bermuda', value: 'BM' }, |  | ||||||
|   { label: 'Brunei', value: 'BN' }, |  | ||||||
|   { label: 'Bolivia', value: 'BO' }, |  | ||||||
|   { label: 'Caribbean Netherlands', value: 'BQ' }, |  | ||||||
|   { label: 'Brazil', value: 'BR' }, |  | ||||||
|   { label: 'Bahamas', value: 'BS' }, |  | ||||||
|   { label: 'Bhutan', value: 'BT' }, |  | ||||||
|   { label: 'Botswana', value: 'BW' }, |  | ||||||
|   { label: 'Belarus', value: 'BY' }, |  | ||||||
|   { label: 'Belize', value: 'BZ' }, |  | ||||||
|   { label: 'Canada', value: 'CA' }, |  | ||||||
|   { label: 'Cocos (Keeling) Islands', value: 'CC' }, |  | ||||||
|   { label: 'Congo - Kinshasa', value: 'CD' }, |  | ||||||
|   { label: 'Central African Republic', value: 'CF' }, |  | ||||||
|   { label: 'Congo - Brazzaville', value: 'CG' }, |  | ||||||
|   { label: 'Switzerland', value: 'CH' }, |  | ||||||
|   { label: 'Côte d’Ivoire', value: 'CI' }, |  | ||||||
|   { label: 'Cook Islands', value: 'CK' }, |  | ||||||
|   { label: 'Chile', value: 'CL' }, |  | ||||||
|   { label: 'Cameroon', value: 'CM' }, |  | ||||||
|   { label: 'China', value: 'CN' }, |  | ||||||
|   { label: 'Colombia', value: 'CO' }, |  | ||||||
|   { label: 'Costa Rica', value: 'CR' }, |  | ||||||
|   { label: 'Cuba', value: 'CU' }, |  | ||||||
|   { label: 'Cape Verde', value: 'CV' }, |  | ||||||
|   { label: 'Curaçao', value: 'CW' }, |  | ||||||
|   { label: 'Christmas Island', value: 'CX' }, |  | ||||||
|   { label: 'Cyprus', value: 'CY' }, |  | ||||||
|   { label: 'Czechia', value: 'CZ' }, |  | ||||||
|   { label: 'Germany', value: 'DE' }, |  | ||||||
|   { label: 'Djibouti', value: 'DJ' }, |  | ||||||
|   { label: 'Denmark', value: 'DK' }, |  | ||||||
|   { label: 'Dominica', value: 'DM' }, |  | ||||||
|   { label: 'Dominican Republic', value: 'DO' }, |  | ||||||
|   { label: 'Algeria', value: 'DZ' }, |  | ||||||
|   { label: 'Ecuador', value: 'EC' }, |  | ||||||
|   { label: 'Estonia', value: 'EE' }, |  | ||||||
|   { label: 'Egypt', value: 'EG' }, |  | ||||||
|   { label: 'Western Sahara', value: 'EH' }, |  | ||||||
|   { label: 'Eritrea', value: 'ER' }, |  | ||||||
|   { label: 'Spain', value: 'ES' }, |  | ||||||
|   { label: 'Ethiopia', value: 'ET' }, |  | ||||||
|   { label: 'Finland', value: 'FI' }, |  | ||||||
|   { label: 'Fiji', value: 'FJ' }, |  | ||||||
|   { label: 'Falkland Islands (Islas Malvinas)', value: 'FK' }, |  | ||||||
|   { label: 'Micronesia', value: 'FM' }, |  | ||||||
|   { label: 'Faroe Islands', value: 'FO' }, |  | ||||||
|   { label: 'France', value: 'FR' }, |  | ||||||
|   { label: 'Gabon', value: 'GA' }, |  | ||||||
|   { label: 'United Kingdom', value: 'GB' }, |  | ||||||
|   { label: 'Grenada', value: 'GD' }, |  | ||||||
|   { label: 'Georgia', value: 'GE' }, |  | ||||||
|   { label: 'French Guiana', value: 'GF' }, |  | ||||||
|   { label: 'Guernsey', value: 'GG' }, |  | ||||||
|   { label: 'Ghana', value: 'GH' }, |  | ||||||
|   { label: 'Gibraltar', value: 'GI' }, |  | ||||||
|   { label: 'Greenland', value: 'GL' }, |  | ||||||
|   { label: 'Gambia', value: 'GM' }, |  | ||||||
|   { label: 'Guinea', value: 'GN' }, |  | ||||||
|   { label: 'Guadeloupe', value: 'GP' }, |  | ||||||
|   { label: 'Equatorial Guinea', value: 'GQ' }, |  | ||||||
|   { label: 'Greece', value: 'GR' }, |  | ||||||
|   { label: 'Guatemala', value: 'GT' }, |  | ||||||
|   { label: 'Guam', value: 'GU' }, |  | ||||||
|   { label: 'Guinea-Bissau', value: 'GW' }, |  | ||||||
|   { label: 'Guyana', value: 'GY' }, |  | ||||||
|   { label: 'Hong Kong', value: 'HK' }, |  | ||||||
|   { label: 'Honduras', value: 'HN' }, |  | ||||||
|   { label: 'Croatia', value: 'HR' }, |  | ||||||
|   { label: 'Haiti', value: 'HT' }, |  | ||||||
|   { label: 'Hungary', value: 'HU' }, |  | ||||||
|   { label: 'Indonesia', value: 'ID' }, |  | ||||||
|   { label: 'Ireland', value: 'IE' }, |  | ||||||
|   { label: 'Israel', value: 'IL' }, |  | ||||||
|   { label: 'Isle of Man', value: 'IM' }, |  | ||||||
|   { label: 'India', value: 'IN' }, |  | ||||||
|   { label: 'British Indian Ocean Territory', value: 'IO' }, |  | ||||||
|   { label: 'Iraq', value: 'IQ' }, |  | ||||||
|   { label: 'Iran', value: 'IR' }, |  | ||||||
|   { label: 'Iceland', value: 'IS' }, |  | ||||||
|   { label: 'Italy', value: 'IT' }, |  | ||||||
|   { label: 'Jersey', value: 'JE' }, |  | ||||||
|   { label: 'Jamaica', value: 'JM' }, |  | ||||||
|   { label: 'Jordan', value: 'JO' }, |  | ||||||
|   { label: 'Japan', value: 'JP' }, |  | ||||||
|   { label: 'Kenya', value: 'KE' }, |  | ||||||
|   { label: 'Kyrgyzstan', value: 'KG' }, |  | ||||||
|   { label: 'Cambodia', value: 'KH' }, |  | ||||||
|   { label: 'Kiribati', value: 'KI' }, |  | ||||||
|   { label: 'Comoros', value: 'KM' }, |  | ||||||
|   { label: 'St. Kitts & Nevis', value: 'KN' }, |  | ||||||
|   { label: 'North Korea', value: 'KP' }, |  | ||||||
|   { label: 'South Korea', value: 'KR' }, |  | ||||||
|   { label: 'Kuwait', value: 'KW' }, |  | ||||||
|   { label: 'Cayman Islands', value: 'KY' }, |  | ||||||
|   { label: 'Kazakhstan', value: 'KZ' }, |  | ||||||
|   { label: 'Laos', value: 'LA' }, |  | ||||||
|   { label: 'Lebanon', value: 'LB' }, |  | ||||||
|   { label: 'St. Lucia', value: 'LC' }, |  | ||||||
|   { label: 'Liechtenstein', value: 'LI' }, |  | ||||||
|   { label: 'Sri Lanka', value: 'LK' }, |  | ||||||
|   { label: 'Liberia', value: 'LR' }, |  | ||||||
|   { label: 'Lesotho', value: 'LS' }, |  | ||||||
|   { label: 'Lithuania', value: 'LT' }, |  | ||||||
|   { label: 'Luxembourg', value: 'LU' }, |  | ||||||
|   { label: 'Latvia', value: 'LV' }, |  | ||||||
|   { label: 'Libya', value: 'LY' }, |  | ||||||
|   { label: 'Morocco', value: 'MA' }, |  | ||||||
|   { label: 'Monaco', value: 'MC' }, |  | ||||||
|   { label: 'Moldova', value: 'MD' }, |  | ||||||
|   { label: 'Montenegro', value: 'ME' }, |  | ||||||
|   { label: 'St. Martin', value: 'MF' }, |  | ||||||
|   { label: 'Madagascar', value: 'MG' }, |  | ||||||
|   { label: 'Marshall Islands', value: 'MH' }, |  | ||||||
|   { label: 'North Macedonia', value: 'MK' }, |  | ||||||
|   { label: 'Mali', value: 'ML' }, |  | ||||||
|   { label: 'Myanmar (Burma)', value: 'MM' }, |  | ||||||
|   { label: 'Mongolia', value: 'MN' }, |  | ||||||
|   { label: 'Macao', value: 'MO' }, |  | ||||||
|   { label: 'Northern Mariana Islands', value: 'MP' }, |  | ||||||
|   { label: 'Martinique', value: 'MQ' }, |  | ||||||
|   { label: 'Mauritania', value: 'MR' }, |  | ||||||
|   { label: 'Montserrat', value: 'MS' }, |  | ||||||
|   { label: 'Malta', value: 'MT' }, |  | ||||||
|   { label: 'Mauritius', value: 'MU' }, |  | ||||||
|   { label: 'Maldives', value: 'MV' }, |  | ||||||
|   { label: 'Malawi', value: 'MW' }, |  | ||||||
|   { label: 'Mexico', value: 'MX' }, |  | ||||||
|   { label: 'Malaysia', value: 'MY' }, |  | ||||||
|   { label: 'Mozambique', value: 'MZ' }, |  | ||||||
|   { label: 'Namibia', value: 'NA' }, |  | ||||||
|   { label: 'New Caledonia', value: 'NC' }, |  | ||||||
|   { label: 'Niger', value: 'NE' }, |  | ||||||
|   { label: 'Norfolk Island', value: 'NF' }, |  | ||||||
|   { label: 'Nigeria', value: 'NG' }, |  | ||||||
|   { label: 'Nicaragua', value: 'NI' }, |  | ||||||
|   { label: 'Netherlands', value: 'NL' }, |  | ||||||
|   { label: 'Norway', value: 'NO' }, |  | ||||||
|   { label: 'Nepal', value: 'NP' }, |  | ||||||
|   { label: 'Nauru', value: 'NR' }, |  | ||||||
|   { label: 'Niue', value: 'NU' }, |  | ||||||
|   { label: 'New Zealand', value: 'NZ' }, |  | ||||||
|   { label: 'Oman', value: 'OM' }, |  | ||||||
|   { label: 'Panama', value: 'PA' }, |  | ||||||
|   { label: 'Peru', value: 'PE' }, |  | ||||||
|   { label: 'French Polynesia', value: 'PF' }, |  | ||||||
|   { label: 'Papua New Guinea', value: 'PG' }, |  | ||||||
|   { label: 'Philippines', value: 'PH' }, |  | ||||||
|   { label: 'Pakistan', value: 'PK' }, |  | ||||||
|   { label: 'Poland', value: 'PL' }, |  | ||||||
|   { label: 'St. Pierre & Miquelon', value: 'PM' }, |  | ||||||
|   { label: 'Puerto Rico', value: 'PR' }, |  | ||||||
|   { label: 'Palestine', value: 'PS' }, |  | ||||||
|   { label: 'Portugal', value: 'PT' }, |  | ||||||
|   { label: 'Palau', value: 'PW' }, |  | ||||||
|   { label: 'Paraguay', value: 'PY' }, |  | ||||||
|   { label: 'Qatar', value: 'QA' }, |  | ||||||
|   { label: 'Réunion', value: 'RE' }, |  | ||||||
|   { label: 'Romania', value: 'RO' }, |  | ||||||
|   { label: 'Serbia', value: 'RS' }, |  | ||||||
|   { label: 'Russia', value: 'RU' }, |  | ||||||
|   { label: 'Rwanda', value: 'RW' }, |  | ||||||
|   { label: 'Saudi Arabia', value: 'SA' }, |  | ||||||
|   { label: 'Solomon Islands', value: 'SB' }, |  | ||||||
|   { label: 'Seychelles', value: 'SC' }, |  | ||||||
|   { label: 'Sudan', value: 'SD' }, |  | ||||||
|   { label: 'Sweden', value: 'SE' }, |  | ||||||
|   { label: 'Singapore', value: 'SG' }, |  | ||||||
|   { label: 'St. Helena', value: 'SH' }, |  | ||||||
|   { label: 'Slovenia', value: 'SI' }, |  | ||||||
|   { label: 'Svalbard & Jan Mayen', value: 'SJ' }, |  | ||||||
|   { label: 'Slovakia', value: 'SK' }, |  | ||||||
|   { label: 'Sierra Leone', value: 'SL' }, |  | ||||||
|   { label: 'San Marino', value: 'SM' }, |  | ||||||
|   { label: 'Senegal', value: 'SN' }, |  | ||||||
|   { label: 'Somalia', value: 'SO' }, |  | ||||||
|   { label: 'Suriname', value: 'SR' }, |  | ||||||
|   { label: 'South Sudan', value: 'SS' }, |  | ||||||
|   { label: 'São Tomé & Príncipe', value: 'ST' }, |  | ||||||
|   { label: 'El Salvador', value: 'SV' }, |  | ||||||
|   { label: 'Sint Maarten', value: 'SX' }, |  | ||||||
|   { label: 'Syria', value: 'SY' }, |  | ||||||
|   { label: 'Eswatini', value: 'SZ' }, |  | ||||||
|   { label: 'Tristan da Cunha', value: 'TA' }, |  | ||||||
|   { label: 'Turks & Caicos Islands', value: 'TC' }, |  | ||||||
|   { label: 'Chad', value: 'TD' }, |  | ||||||
|   { label: 'Togo', value: 'TG' }, |  | ||||||
|   { label: 'Thailand', value: 'TH' }, |  | ||||||
|   { label: 'Tajikistan', value: 'TJ' }, |  | ||||||
|   { label: 'Tokelau', value: 'TK' }, |  | ||||||
|   { label: 'Timor-Leste', value: 'TL' }, |  | ||||||
|   { label: 'Turkmenistan', value: 'TM' }, |  | ||||||
|   { label: 'Tunisia', value: 'TN' }, |  | ||||||
|   { label: 'Tonga', value: 'TO' }, |  | ||||||
|   { label: 'Türkiye', value: 'TR' }, |  | ||||||
|   { label: 'Trinidad & Tobago', value: 'TT' }, |  | ||||||
|   { label: 'Tuvalu', value: 'TV' }, |  | ||||||
|   { label: 'Taiwan', value: 'TW' }, |  | ||||||
|   { label: 'Tanzania', value: 'TZ' }, |  | ||||||
|   { label: 'Ukraine', value: 'UA' }, |  | ||||||
|   { label: 'Uganda', value: 'UG' }, |  | ||||||
|   { label: 'United States', value: 'US' }, |  | ||||||
|   { label: 'Uruguay', value: 'UY' }, |  | ||||||
|   { label: 'Uzbekistan', value: 'UZ' }, |  | ||||||
|   { label: 'Vatican City', value: 'VA' }, |  | ||||||
|   { label: 'St. Vincent & Grenadines', value: 'VC' }, |  | ||||||
|   { label: 'Venezuela', value: 'VE' }, |  | ||||||
|   { label: 'British Virgin Islands', value: 'VG' }, |  | ||||||
|   { label: 'U.S. Virgin Islands', value: 'VI' }, |  | ||||||
|   { label: 'Vietnam', value: 'VN' }, |  | ||||||
|   { label: 'Vanuatu', value: 'VU' }, |  | ||||||
|   { label: 'Wallis & Futuna', value: 'WF' }, |  | ||||||
|   { label: 'Samoa', value: 'WS' }, |  | ||||||
|   { label: 'Kosovo', value: 'XK' }, |  | ||||||
|   { label: 'Yemen', value: 'YE' }, |  | ||||||
|   { label: 'Mayotte', value: 'YT' }, |  | ||||||
|   { label: 'South Africa', value: 'ZA' }, |  | ||||||
|   { label: 'Zambia', value: 'ZM' }, |  | ||||||
|   { label: 'Zimbabwe', value: 'ZW' }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default phoneNumberCountryCodes; |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| import listTransformOptions from './list-transform-options'; |  | ||||||
|  |  | ||||||
| export default [listTransformOptions]; |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| import formatOptions from './options/format'; |  | ||||||
| import timezoneOptions from './options/timezone'; |  | ||||||
|  |  | ||||||
| const formatDateTime = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The datetime you want to format.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'From Format', |  | ||||||
|     key: 'fromFormat', |  | ||||||
|     type: 'dropdown' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The format of the input.', |  | ||||||
|     variables: true, |  | ||||||
|     options: formatOptions, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'From Timezone', |  | ||||||
|     key: 'fromTimezone', |  | ||||||
|     type: 'dropdown' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The timezone of the input.', |  | ||||||
|     variables: true, |  | ||||||
|     options: timezoneOptions, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'To Format', |  | ||||||
|     key: 'toFormat', |  | ||||||
|     type: 'dropdown' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The format of the output.', |  | ||||||
|     variables: true, |  | ||||||
|     options: formatOptions, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'To Timezone', |  | ||||||
|     key: 'toTimezone', |  | ||||||
|     type: 'dropdown' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The timezone of the output.', |  | ||||||
|     variables: true, |  | ||||||
|     options: timezoneOptions, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default formatDateTime; |  | ||||||
| @@ -1,64 +0,0 @@ | |||||||
| const formatOptions = [ |  | ||||||
|   { |  | ||||||
|     label: 'ccc MMM dd HH:mm:ssZZZ yyyy (Wed Aug 23 12:25:36-0000 2023)', |  | ||||||
|     value: 'ccc MMM dd HH:mm:ssZZZ yyyy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'MMMM dd yyyy HH:mm:ss (August 23 2023 12:25:36)', |  | ||||||
|     value: 'MMMM dd yyyy HH:mm:ss', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'MMMM dd yyyy (August 23 2023)', |  | ||||||
|     value: 'MMMM dd yyyy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'MMM dd yyyy (Aug 23 2023)', |  | ||||||
|     value: 'MMM dd yyyy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'yyyy-MM-dd HH:mm:ss ZZZ (2023-08-23 12:25:36 -0000)', |  | ||||||
|     value: 'yyyy-MM-dd HH:mm:ss ZZZ', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'yyyy-MM-dd (2023-08-23)', |  | ||||||
|     value: 'yyyy-MM-dd', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'MM-dd-yyyy (08-23-2023)', |  | ||||||
|     value: 'MM-dd-yyyy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'MM/dd/yyyy (08/23/2023)', |  | ||||||
|     value: 'MM/dd/yyyy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'MM/dd/yy (08/23/23)', |  | ||||||
|     value: 'MM/dd/yy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'dd-MM-yyyy (23-08-2023)', |  | ||||||
|     value: 'dd-MM-yyyy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'dd/MM/yyyy (23/08/2023)', |  | ||||||
|     value: 'dd/MM/yyyy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'dd/MM/yy (23/08/23)', |  | ||||||
|     value: 'dd/MM/yy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'MM-yyyy (08-2023)', |  | ||||||
|     value: 'MM-yyyy', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Unix timestamp in seconds (1694008283)', |  | ||||||
|     value: 'X', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Unix timestamp in milliseconds (1694008306315)', |  | ||||||
|     value: 'x', |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default formatOptions; |  | ||||||
| @@ -1,449 +0,0 @@ | |||||||
| // The list from Intl.supportedValuesOf('timeZone') which is used by Luxon. |  | ||||||
|  |  | ||||||
| const timezoneOptions = [ |  | ||||||
|   { label: 'Africa/Abidjan', value: 'Africa/Abidjan' }, |  | ||||||
|   { label: 'Africa/Accra', value: 'Africa/Accra' }, |  | ||||||
|   { label: 'Africa/Addis_Ababa', value: 'Africa/Addis_Ababa' }, |  | ||||||
|   { label: 'Africa/Algiers', value: 'Africa/Algiers' }, |  | ||||||
|   { label: 'Africa/Asmera', value: 'Africa/Asmera' }, |  | ||||||
|   { label: 'Africa/Bamako', value: 'Africa/Bamako' }, |  | ||||||
|   { label: 'Africa/Bangui', value: 'Africa/Bangui' }, |  | ||||||
|   { label: 'Africa/Banjul', value: 'Africa/Banjul' }, |  | ||||||
|   { label: 'Africa/Bissau', value: 'Africa/Bissau' }, |  | ||||||
|   { label: 'Africa/Blantyre', value: 'Africa/Blantyre' }, |  | ||||||
|   { label: 'Africa/Brazzaville', value: 'Africa/Brazzaville' }, |  | ||||||
|   { label: 'Africa/Bujumbura', value: 'Africa/Bujumbura' }, |  | ||||||
|   { label: 'Africa/Cairo', value: 'Africa/Cairo' }, |  | ||||||
|   { label: 'Africa/Casablanca', value: 'Africa/Casablanca' }, |  | ||||||
|   { label: 'Africa/Ceuta', value: 'Africa/Ceuta' }, |  | ||||||
|   { label: 'Africa/Conakry', value: 'Africa/Conakry' }, |  | ||||||
|   { label: 'Africa/Dakar', value: 'Africa/Dakar' }, |  | ||||||
|   { label: 'Africa/Dar_es_Salaam', value: 'Africa/Dar_es_Salaam' }, |  | ||||||
|   { label: 'Africa/Djibouti', value: 'Africa/Djibouti' }, |  | ||||||
|   { label: 'Africa/Douala', value: 'Africa/Douala' }, |  | ||||||
|   { label: 'Africa/El_Aaiun', value: 'Africa/El_Aaiun' }, |  | ||||||
|   { label: 'Africa/Freetown', value: 'Africa/Freetown' }, |  | ||||||
|   { label: 'Africa/Gaborone', value: 'Africa/Gaborone' }, |  | ||||||
|   { label: 'Africa/Harare', value: 'Africa/Harare' }, |  | ||||||
|   { label: 'Africa/Johannesburg', value: 'Africa/Johannesburg' }, |  | ||||||
|   { label: 'Africa/Juba', value: 'Africa/Juba' }, |  | ||||||
|   { label: 'Africa/Kampala', value: 'Africa/Kampala' }, |  | ||||||
|   { label: 'Africa/Khartoum', value: 'Africa/Khartoum' }, |  | ||||||
|   { label: 'Africa/Kigali', value: 'Africa/Kigali' }, |  | ||||||
|   { label: 'Africa/Kinshasa', value: 'Africa/Kinshasa' }, |  | ||||||
|   { label: 'Africa/Lagos', value: 'Africa/Lagos' }, |  | ||||||
|   { label: 'Africa/Libreville', value: 'Africa/Libreville' }, |  | ||||||
|   { label: 'Africa/Lome', value: 'Africa/Lome' }, |  | ||||||
|   { label: 'Africa/Luanda', value: 'Africa/Luanda' }, |  | ||||||
|   { label: 'Africa/Lubumbashi', value: 'Africa/Lubumbashi' }, |  | ||||||
|   { label: 'Africa/Lusaka', value: 'Africa/Lusaka' }, |  | ||||||
|   { label: 'Africa/Malabo', value: 'Africa/Malabo' }, |  | ||||||
|   { label: 'Africa/Maputo', value: 'Africa/Maputo' }, |  | ||||||
|   { label: 'Africa/Maseru', value: 'Africa/Maseru' }, |  | ||||||
|   { label: 'Africa/Mbabane', value: 'Africa/Mbabane' }, |  | ||||||
|   { label: 'Africa/Mogadishu', value: 'Africa/Mogadishu' }, |  | ||||||
|   { label: 'Africa/Monrovia', value: 'Africa/Monrovia' }, |  | ||||||
|   { label: 'Africa/Nairobi', value: 'Africa/Nairobi' }, |  | ||||||
|   { label: 'Africa/Ndjamena', value: 'Africa/Ndjamena' }, |  | ||||||
|   { label: 'Africa/Niamey', value: 'Africa/Niamey' }, |  | ||||||
|   { label: 'Africa/Nouakchott', value: 'Africa/Nouakchott' }, |  | ||||||
|   { label: 'Africa/Ouagadougou', value: 'Africa/Ouagadougou' }, |  | ||||||
|   { label: 'Africa/Porto-Novo', value: 'Africa/Porto-Novo' }, |  | ||||||
|   { label: 'Africa/Sao_Tome', value: 'Africa/Sao_Tome' }, |  | ||||||
|   { label: 'Africa/Tripoli', value: 'Africa/Tripoli' }, |  | ||||||
|   { label: 'Africa/Tunis', value: 'Africa/Tunis' }, |  | ||||||
|   { label: 'Africa/Windhoek', value: 'Africa/Windhoek' }, |  | ||||||
|   { label: 'America/Adak', value: 'America/Adak' }, |  | ||||||
|   { label: 'America/Anchorage', value: 'America/Anchorage' }, |  | ||||||
|   { label: 'America/Anguilla', value: 'America/Anguilla' }, |  | ||||||
|   { label: 'America/Antigua', value: 'America/Antigua' }, |  | ||||||
|   { label: 'America/Araguaina', value: 'America/Araguaina' }, |  | ||||||
|   { label: 'America/Argentina/La_Rioja', value: 'America/Argentina/La_Rioja' }, |  | ||||||
|   { |  | ||||||
|     label: 'America/Argentina/Rio_Gallegos', |  | ||||||
|     value: 'America/Argentina/Rio_Gallegos', |  | ||||||
|   }, |  | ||||||
|   { label: 'America/Argentina/Salta', value: 'America/Argentina/Salta' }, |  | ||||||
|   { label: 'America/Argentina/San_Juan', value: 'America/Argentina/San_Juan' }, |  | ||||||
|   { label: 'America/Argentina/San_Luis', value: 'America/Argentina/San_Luis' }, |  | ||||||
|   { label: 'America/Argentina/Tucuman', value: 'America/Argentina/Tucuman' }, |  | ||||||
|   { label: 'America/Argentina/Ushuaia', value: 'America/Argentina/Ushuaia' }, |  | ||||||
|   { label: 'America/Aruba', value: 'America/Aruba' }, |  | ||||||
|   { label: 'America/Asuncion', value: 'America/Asuncion' }, |  | ||||||
|   { label: 'America/Bahia', value: 'America/Bahia' }, |  | ||||||
|   { label: 'America/Bahia_Banderas', value: 'America/Bahia_Banderas' }, |  | ||||||
|   { label: 'America/Barbados', value: 'America/Barbados' }, |  | ||||||
|   { label: 'America/Belem', value: 'America/Belem' }, |  | ||||||
|   { label: 'America/Belize', value: 'America/Belize' }, |  | ||||||
|   { label: 'America/Blanc-Sablon', value: 'America/Blanc-Sablon' }, |  | ||||||
|   { label: 'America/Boa_Vista', value: 'America/Boa_Vista' }, |  | ||||||
|   { label: 'America/Bogota', value: 'America/Bogota' }, |  | ||||||
|   { label: 'America/Boise', value: 'America/Boise' }, |  | ||||||
|   { label: 'America/Buenos_Aires', value: 'America/Buenos_Aires' }, |  | ||||||
|   { label: 'America/Cambridge_Bay', value: 'America/Cambridge_Bay' }, |  | ||||||
|   { label: 'America/Campo_Grande', value: 'America/Campo_Grande' }, |  | ||||||
|   { label: 'America/Cancun', value: 'America/Cancun' }, |  | ||||||
|   { label: 'America/Caracas', value: 'America/Caracas' }, |  | ||||||
|   { label: 'America/Catamarca', value: 'America/Catamarca' }, |  | ||||||
|   { label: 'America/Cayenne', value: 'America/Cayenne' }, |  | ||||||
|   { label: 'America/Cayman', value: 'America/Cayman' }, |  | ||||||
|   { label: 'America/Chicago', value: 'America/Chicago' }, |  | ||||||
|   { label: 'America/Chihuahua', value: 'America/Chihuahua' }, |  | ||||||
|   { label: 'America/Ciudad_Juarez', value: 'America/Ciudad_Juarez' }, |  | ||||||
|   { label: 'America/Coral_Harbour', value: 'America/Coral_Harbour' }, |  | ||||||
|   { label: 'America/Cordoba', value: 'America/Cordoba' }, |  | ||||||
|   { label: 'America/Costa_Rica', value: 'America/Costa_Rica' }, |  | ||||||
|   { label: 'America/Creston', value: 'America/Creston' }, |  | ||||||
|   { label: 'America/Cuiaba', value: 'America/Cuiaba' }, |  | ||||||
|   { label: 'America/Curacao', value: 'America/Curacao' }, |  | ||||||
|   { label: 'America/Danmarkshavn', value: 'America/Danmarkshavn' }, |  | ||||||
|   { label: 'America/Dawson', value: 'America/Dawson' }, |  | ||||||
|   { label: 'America/Dawson_Creek', value: 'America/Dawson_Creek' }, |  | ||||||
|   { label: 'America/Denver', value: 'America/Denver' }, |  | ||||||
|   { label: 'America/Detroit', value: 'America/Detroit' }, |  | ||||||
|   { label: 'America/Dominica', value: 'America/Dominica' }, |  | ||||||
|   { label: 'America/Edmonton', value: 'America/Edmonton' }, |  | ||||||
|   { label: 'America/Eirunepe', value: 'America/Eirunepe' }, |  | ||||||
|   { label: 'America/El_Salvador', value: 'America/El_Salvador' }, |  | ||||||
|   { label: 'America/Fort_Nelson', value: 'America/Fort_Nelson' }, |  | ||||||
|   { label: 'America/Fortaleza', value: 'America/Fortaleza' }, |  | ||||||
|   { label: 'America/Glace_Bay', value: 'America/Glace_Bay' }, |  | ||||||
|   { label: 'America/Godthab', value: 'America/Godthab' }, |  | ||||||
|   { label: 'America/Goose_Bay', value: 'America/Goose_Bay' }, |  | ||||||
|   { label: 'America/Grand_Turk', value: 'America/Grand_Turk' }, |  | ||||||
|   { label: 'America/Grenada', value: 'America/Grenada' }, |  | ||||||
|   { label: 'America/Guadeloupe', value: 'America/Guadeloupe' }, |  | ||||||
|   { label: 'America/Guatemala', value: 'America/Guatemala' }, |  | ||||||
|   { label: 'America/Guayaquil', value: 'America/Guayaquil' }, |  | ||||||
|   { label: 'America/Guyana', value: 'America/Guyana' }, |  | ||||||
|   { label: 'America/Halifax', value: 'America/Halifax' }, |  | ||||||
|   { label: 'America/Havana', value: 'America/Havana' }, |  | ||||||
|   { label: 'America/Hermosillo', value: 'America/Hermosillo' }, |  | ||||||
|   { label: 'America/Indiana/Knox', value: 'America/Indiana/Knox' }, |  | ||||||
|   { label: 'America/Indiana/Marengo', value: 'America/Indiana/Marengo' }, |  | ||||||
|   { label: 'America/Indiana/Petersburg', value: 'America/Indiana/Petersburg' }, |  | ||||||
|   { label: 'America/Indiana/Tell_City', value: 'America/Indiana/Tell_City' }, |  | ||||||
|   { label: 'America/Indiana/Vevay', value: 'America/Indiana/Vevay' }, |  | ||||||
|   { label: 'America/Indiana/Vincennes', value: 'America/Indiana/Vincennes' }, |  | ||||||
|   { label: 'America/Indiana/Winamac', value: 'America/Indiana/Winamac' }, |  | ||||||
|   { label: 'America/Indianapolis', value: 'America/Indianapolis' }, |  | ||||||
|   { label: 'America/Inuvik', value: 'America/Inuvik' }, |  | ||||||
|   { label: 'America/Iqaluit', value: 'America/Iqaluit' }, |  | ||||||
|   { label: 'America/Jamaica', value: 'America/Jamaica' }, |  | ||||||
|   { label: 'America/Jujuy', value: 'America/Jujuy' }, |  | ||||||
|   { label: 'America/Juneau', value: 'America/Juneau' }, |  | ||||||
|   { |  | ||||||
|     label: 'America/Kentucky/Monticello', |  | ||||||
|     value: 'America/Kentucky/Monticello', |  | ||||||
|   }, |  | ||||||
|   { label: 'America/Kralendijk', value: 'America/Kralendijk' }, |  | ||||||
|   { label: 'America/La_Paz', value: 'America/La_Paz' }, |  | ||||||
|   { label: 'America/Lima', value: 'America/Lima' }, |  | ||||||
|   { label: 'America/Los_Angeles', value: 'America/Los_Angeles' }, |  | ||||||
|   { label: 'America/Louisville', value: 'America/Louisville' }, |  | ||||||
|   { label: 'America/Lower_Princes', value: 'America/Lower_Princes' }, |  | ||||||
|   { label: 'America/Maceio', value: 'America/Maceio' }, |  | ||||||
|   { label: 'America/Managua', value: 'America/Managua' }, |  | ||||||
|   { label: 'America/Manaus', value: 'America/Manaus' }, |  | ||||||
|   { label: 'America/Marigot', value: 'America/Marigot' }, |  | ||||||
|   { label: 'America/Martinique', value: 'America/Martinique' }, |  | ||||||
|   { label: 'America/Matamoros', value: 'America/Matamoros' }, |  | ||||||
|   { label: 'America/Mazatlan', value: 'America/Mazatlan' }, |  | ||||||
|   { label: 'America/Mendoza', value: 'America/Mendoza' }, |  | ||||||
|   { label: 'America/Menominee', value: 'America/Menominee' }, |  | ||||||
|   { label: 'America/Merida', value: 'America/Merida' }, |  | ||||||
|   { label: 'America/Metlakatla', value: 'America/Metlakatla' }, |  | ||||||
|   { label: 'America/Mexico_City', value: 'America/Mexico_City' }, |  | ||||||
|   { label: 'America/Miquelon', value: 'America/Miquelon' }, |  | ||||||
|   { label: 'America/Moncton', value: 'America/Moncton' }, |  | ||||||
|   { label: 'America/Monterrey', value: 'America/Monterrey' }, |  | ||||||
|   { label: 'America/Montevideo', value: 'America/Montevideo' }, |  | ||||||
|   { label: 'America/Montserrat', value: 'America/Montserrat' }, |  | ||||||
|   { label: 'America/Nassau', value: 'America/Nassau' }, |  | ||||||
|   { label: 'America/New_York', value: 'America/New_York' }, |  | ||||||
|   { label: 'America/Nipigon', value: 'America/Nipigon' }, |  | ||||||
|   { label: 'America/Nome', value: 'America/Nome' }, |  | ||||||
|   { label: 'America/Noronha', value: 'America/Noronha' }, |  | ||||||
|   { |  | ||||||
|     label: 'America/North_Dakota/Beulah', |  | ||||||
|     value: 'America/North_Dakota/Beulah', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'America/North_Dakota/Center', |  | ||||||
|     value: 'America/North_Dakota/Center', |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'America/North_Dakota/New_Salem', |  | ||||||
|     value: 'America/North_Dakota/New_Salem', |  | ||||||
|   }, |  | ||||||
|   { label: 'America/Ojinaga', value: 'America/Ojinaga' }, |  | ||||||
|   { label: 'America/Panama', value: 'America/Panama' }, |  | ||||||
|   { label: 'America/Pangnirtung', value: 'America/Pangnirtung' }, |  | ||||||
|   { label: 'America/Paramaribo', value: 'America/Paramaribo' }, |  | ||||||
|   { label: 'America/Phoenix', value: 'America/Phoenix' }, |  | ||||||
|   { label: 'America/Port-au-Prince', value: 'America/Port-au-Prince' }, |  | ||||||
|   { label: 'America/Port_of_Spain', value: 'America/Port_of_Spain' }, |  | ||||||
|   { label: 'America/Porto_Velho', value: 'America/Porto_Velho' }, |  | ||||||
|   { label: 'America/Puerto_Rico', value: 'America/Puerto_Rico' }, |  | ||||||
|   { label: 'America/Punta_Arenas', value: 'America/Punta_Arenas' }, |  | ||||||
|   { label: 'America/Rainy_River', value: 'America/Rainy_River' }, |  | ||||||
|   { label: 'America/Rankin_Inlet', value: 'America/Rankin_Inlet' }, |  | ||||||
|   { label: 'America/Recife', value: 'America/Recife' }, |  | ||||||
|   { label: 'America/Regina', value: 'America/Regina' }, |  | ||||||
|   { label: 'America/Resolute', value: 'America/Resolute' }, |  | ||||||
|   { label: 'America/Rio_Branco', value: 'America/Rio_Branco' }, |  | ||||||
|   { label: 'America/Santa_Isabel', value: 'America/Santa_Isabel' }, |  | ||||||
|   { label: 'America/Santarem', value: 'America/Santarem' }, |  | ||||||
|   { label: 'America/Santiago', value: 'America/Santiago' }, |  | ||||||
|   { label: 'America/Santo_Domingo', value: 'America/Santo_Domingo' }, |  | ||||||
|   { label: 'America/Sao_Paulo', value: 'America/Sao_Paulo' }, |  | ||||||
|   { label: 'America/Scoresbysund', value: 'America/Scoresbysund' }, |  | ||||||
|   { label: 'America/Sitka', value: 'America/Sitka' }, |  | ||||||
|   { label: 'America/St_Barthelemy', value: 'America/St_Barthelemy' }, |  | ||||||
|   { label: 'America/St_Johns', value: 'America/St_Johns' }, |  | ||||||
|   { label: 'America/St_Kitts', value: 'America/St_Kitts' }, |  | ||||||
|   { label: 'America/St_Lucia', value: 'America/St_Lucia' }, |  | ||||||
|   { label: 'America/St_Thomas', value: 'America/St_Thomas' }, |  | ||||||
|   { label: 'America/St_Vincent', value: 'America/St_Vincent' }, |  | ||||||
|   { label: 'America/Swift_Current', value: 'America/Swift_Current' }, |  | ||||||
|   { label: 'America/Tegucigalpa', value: 'America/Tegucigalpa' }, |  | ||||||
|   { label: 'America/Thule', value: 'America/Thule' }, |  | ||||||
|   { label: 'America/Thunder_Bay', value: 'America/Thunder_Bay' }, |  | ||||||
|   { label: 'America/Tijuana', value: 'America/Tijuana' }, |  | ||||||
|   { label: 'America/Toronto', value: 'America/Toronto' }, |  | ||||||
|   { label: 'America/Tortola', value: 'America/Tortola' }, |  | ||||||
|   { label: 'America/Vancouver', value: 'America/Vancouver' }, |  | ||||||
|   { label: 'America/Whitehorse', value: 'America/Whitehorse' }, |  | ||||||
|   { label: 'America/Winnipeg', value: 'America/Winnipeg' }, |  | ||||||
|   { label: 'America/Yakutat', value: 'America/Yakutat' }, |  | ||||||
|   { label: 'America/Yellowknife', value: 'America/Yellowknife' }, |  | ||||||
|   { label: 'Antarctica/Casey', value: 'Antarctica/Casey' }, |  | ||||||
|   { label: 'Antarctica/Davis', value: 'Antarctica/Davis' }, |  | ||||||
|   { label: 'Antarctica/DumontDUrville', value: 'Antarctica/DumontDUrville' }, |  | ||||||
|   { label: 'Antarctica/Macquarie', value: 'Antarctica/Macquarie' }, |  | ||||||
|   { label: 'Antarctica/Mawson', value: 'Antarctica/Mawson' }, |  | ||||||
|   { label: 'Antarctica/McMurdo', value: 'Antarctica/McMurdo' }, |  | ||||||
|   { label: 'Antarctica/Palmer', value: 'Antarctica/Palmer' }, |  | ||||||
|   { label: 'Antarctica/Rothera', value: 'Antarctica/Rothera' }, |  | ||||||
|   { label: 'Antarctica/Syowa', value: 'Antarctica/Syowa' }, |  | ||||||
|   { label: 'Antarctica/Troll', value: 'Antarctica/Troll' }, |  | ||||||
|   { label: 'Antarctica/Vostok', value: 'Antarctica/Vostok' }, |  | ||||||
|   { label: 'Arctic/Longyearbyen', value: 'Arctic/Longyearbyen' }, |  | ||||||
|   { label: 'Asia/Aden', value: 'Asia/Aden' }, |  | ||||||
|   { label: 'Asia/Almaty', value: 'Asia/Almaty' }, |  | ||||||
|   { label: 'Asia/Amman', value: 'Asia/Amman' }, |  | ||||||
|   { label: 'Asia/Anadyr', value: 'Asia/Anadyr' }, |  | ||||||
|   { label: 'Asia/Aqtau', value: 'Asia/Aqtau' }, |  | ||||||
|   { label: 'Asia/Aqtobe', value: 'Asia/Aqtobe' }, |  | ||||||
|   { label: 'Asia/Ashgabat', value: 'Asia/Ashgabat' }, |  | ||||||
|   { label: 'Asia/Atyrau', value: 'Asia/Atyrau' }, |  | ||||||
|   { label: 'Asia/Baghdad', value: 'Asia/Baghdad' }, |  | ||||||
|   { label: 'Asia/Bahrain', value: 'Asia/Bahrain' }, |  | ||||||
|   { label: 'Asia/Baku', value: 'Asia/Baku' }, |  | ||||||
|   { label: 'Asia/Bangkok', value: 'Asia/Bangkok' }, |  | ||||||
|   { label: 'Asia/Barnaul', value: 'Asia/Barnaul' }, |  | ||||||
|   { label: 'Asia/Beirut', value: 'Asia/Beirut' }, |  | ||||||
|   { label: 'Asia/Bishkek', value: 'Asia/Bishkek' }, |  | ||||||
|   { label: 'Asia/Brunei', value: 'Asia/Brunei' }, |  | ||||||
|   { label: 'Asia/Calcutta', value: 'Asia/Calcutta' }, |  | ||||||
|   { label: 'Asia/Chita', value: 'Asia/Chita' }, |  | ||||||
|   { label: 'Asia/Choibalsan', value: 'Asia/Choibalsan' }, |  | ||||||
|   { label: 'Asia/Colombo', value: 'Asia/Colombo' }, |  | ||||||
|   { label: 'Asia/Damascus', value: 'Asia/Damascus' }, |  | ||||||
|   { label: 'Asia/Dhaka', value: 'Asia/Dhaka' }, |  | ||||||
|   { label: 'Asia/Dili', value: 'Asia/Dili' }, |  | ||||||
|   { label: 'Asia/Dubai', value: 'Asia/Dubai' }, |  | ||||||
|   { label: 'Asia/Dushanbe', value: 'Asia/Dushanbe' }, |  | ||||||
|   { label: 'Asia/Famagusta', value: 'Asia/Famagusta' }, |  | ||||||
|   { label: 'Asia/Gaza', value: 'Asia/Gaza' }, |  | ||||||
|   { label: 'Asia/Hebron', value: 'Asia/Hebron' }, |  | ||||||
|   { label: 'Asia/Hong_Kong', value: 'Asia/Hong_Kong' }, |  | ||||||
|   { label: 'Asia/Hovd', value: 'Asia/Hovd' }, |  | ||||||
|   { label: 'Asia/Irkutsk', value: 'Asia/Irkutsk' }, |  | ||||||
|   { label: 'Asia/Jakarta', value: 'Asia/Jakarta' }, |  | ||||||
|   { label: 'Asia/Jayapura', value: 'Asia/Jayapura' }, |  | ||||||
|   { label: 'Asia/Jerusalem', value: 'Asia/Jerusalem' }, |  | ||||||
|   { label: 'Asia/Kabul', value: 'Asia/Kabul' }, |  | ||||||
|   { label: 'Asia/Kamchatka', value: 'Asia/Kamchatka' }, |  | ||||||
|   { label: 'Asia/Karachi', value: 'Asia/Karachi' }, |  | ||||||
|   { label: 'Asia/Katmandu', value: 'Asia/Katmandu' }, |  | ||||||
|   { label: 'Asia/Khandyga', value: 'Asia/Khandyga' }, |  | ||||||
|   { label: 'Asia/Krasnoyarsk', value: 'Asia/Krasnoyarsk' }, |  | ||||||
|   { label: 'Asia/Kuala_Lumpur', value: 'Asia/Kuala_Lumpur' }, |  | ||||||
|   { label: 'Asia/Kuching', value: 'Asia/Kuching' }, |  | ||||||
|   { label: 'Asia/Kuwait', value: 'Asia/Kuwait' }, |  | ||||||
|   { label: 'Asia/Macau', value: 'Asia/Macau' }, |  | ||||||
|   { label: 'Asia/Magadan', value: 'Asia/Magadan' }, |  | ||||||
|   { label: 'Asia/Makassar', value: 'Asia/Makassar' }, |  | ||||||
|   { label: 'Asia/Manila', value: 'Asia/Manila' }, |  | ||||||
|   { label: 'Asia/Muscat', value: 'Asia/Muscat' }, |  | ||||||
|   { label: 'Asia/Nicosia', value: 'Asia/Nicosia' }, |  | ||||||
|   { label: 'Asia/Novokuznetsk', value: 'Asia/Novokuznetsk' }, |  | ||||||
|   { label: 'Asia/Novosibirsk', value: 'Asia/Novosibirsk' }, |  | ||||||
|   { label: 'Asia/Omsk', value: 'Asia/Omsk' }, |  | ||||||
|   { label: 'Asia/Oral', value: 'Asia/Oral' }, |  | ||||||
|   { label: 'Asia/Phnom_Penh', value: 'Asia/Phnom_Penh' }, |  | ||||||
|   { label: 'Asia/Pontianak', value: 'Asia/Pontianak' }, |  | ||||||
|   { label: 'Asia/Pyongyang', value: 'Asia/Pyongyang' }, |  | ||||||
|   { label: 'Asia/Qatar', value: 'Asia/Qatar' }, |  | ||||||
|   { label: 'Asia/Qostanay', value: 'Asia/Qostanay' }, |  | ||||||
|   { label: 'Asia/Qyzylorda', value: 'Asia/Qyzylorda' }, |  | ||||||
|   { label: 'Asia/Rangoon', value: 'Asia/Rangoon' }, |  | ||||||
|   { label: 'Asia/Riyadh', value: 'Asia/Riyadh' }, |  | ||||||
|   { label: 'Asia/Saigon', value: 'Asia/Saigon' }, |  | ||||||
|   { label: 'Asia/Sakhalin', value: 'Asia/Sakhalin' }, |  | ||||||
|   { label: 'Asia/Samarkand', value: 'Asia/Samarkand' }, |  | ||||||
|   { label: 'Asia/Seoul', value: 'Asia/Seoul' }, |  | ||||||
|   { label: 'Asia/Shanghai', value: 'Asia/Shanghai' }, |  | ||||||
|   { label: 'Asia/Singapore', value: 'Asia/Singapore' }, |  | ||||||
|   { label: 'Asia/Srednekolymsk', value: 'Asia/Srednekolymsk' }, |  | ||||||
|   { label: 'Asia/Taipei', value: 'Asia/Taipei' }, |  | ||||||
|   { label: 'Asia/Tashkent', value: 'Asia/Tashkent' }, |  | ||||||
|   { label: 'Asia/Tbilisi', value: 'Asia/Tbilisi' }, |  | ||||||
|   { label: 'Asia/Tehran', value: 'Asia/Tehran' }, |  | ||||||
|   { label: 'Asia/Thimphu', value: 'Asia/Thimphu' }, |  | ||||||
|   { label: 'Asia/Tokyo', value: 'Asia/Tokyo' }, |  | ||||||
|   { label: 'Asia/Tomsk', value: 'Asia/Tomsk' }, |  | ||||||
|   { label: 'Asia/Ulaanbaatar', value: 'Asia/Ulaanbaatar' }, |  | ||||||
|   { label: 'Asia/Urumqi', value: 'Asia/Urumqi' }, |  | ||||||
|   { label: 'Asia/Ust-Nera', value: 'Asia/Ust-Nera' }, |  | ||||||
|   { label: 'Asia/Vientiane', value: 'Asia/Vientiane' }, |  | ||||||
|   { label: 'Asia/Vladivostok', value: 'Asia/Vladivostok' }, |  | ||||||
|   { label: 'Asia/Yakutsk', value: 'Asia/Yakutsk' }, |  | ||||||
|   { label: 'Asia/Yekaterinburg', value: 'Asia/Yekaterinburg' }, |  | ||||||
|   { label: 'Asia/Yerevan', value: 'Asia/Yerevan' }, |  | ||||||
|   { label: 'Atlantic/Azores', value: 'Atlantic/Azores' }, |  | ||||||
|   { label: 'Atlantic/Bermuda', value: 'Atlantic/Bermuda' }, |  | ||||||
|   { label: 'Atlantic/Canary', value: 'Atlantic/Canary' }, |  | ||||||
|   { label: 'Atlantic/Cape_Verde', value: 'Atlantic/Cape_Verde' }, |  | ||||||
|   { label: 'Atlantic/Faeroe', value: 'Atlantic/Faeroe' }, |  | ||||||
|   { label: 'Atlantic/Madeira', value: 'Atlantic/Madeira' }, |  | ||||||
|   { label: 'Atlantic/Reykjavik', value: 'Atlantic/Reykjavik' }, |  | ||||||
|   { label: 'Atlantic/South_Georgia', value: 'Atlantic/South_Georgia' }, |  | ||||||
|   { label: 'Atlantic/St_Helena', value: 'Atlantic/St_Helena' }, |  | ||||||
|   { label: 'Atlantic/Stanley', value: 'Atlantic/Stanley' }, |  | ||||||
|   { label: 'Australia/Adelaide', value: 'Australia/Adelaide' }, |  | ||||||
|   { label: 'Australia/Brisbane', value: 'Australia/Brisbane' }, |  | ||||||
|   { label: 'Australia/Broken_Hill', value: 'Australia/Broken_Hill' }, |  | ||||||
|   { label: 'Australia/Currie', value: 'Australia/Currie' }, |  | ||||||
|   { label: 'Australia/Darwin', value: 'Australia/Darwin' }, |  | ||||||
|   { label: 'Australia/Eucla', value: 'Australia/Eucla' }, |  | ||||||
|   { label: 'Australia/Hobart', value: 'Australia/Hobart' }, |  | ||||||
|   { label: 'Australia/Lindeman', value: 'Australia/Lindeman' }, |  | ||||||
|   { label: 'Australia/Lord_Howe', value: 'Australia/Lord_Howe' }, |  | ||||||
|   { label: 'Australia/Melbourne', value: 'Australia/Melbourne' }, |  | ||||||
|   { label: 'Australia/Perth', value: 'Australia/Perth' }, |  | ||||||
|   { label: 'Australia/Sydney', value: 'Australia/Sydney' }, |  | ||||||
|   { label: 'Europe/Amsterdam', value: 'Europe/Amsterdam' }, |  | ||||||
|   { label: 'Europe/Andorra', value: 'Europe/Andorra' }, |  | ||||||
|   { label: 'Europe/Astrakhan', value: 'Europe/Astrakhan' }, |  | ||||||
|   { label: 'Europe/Athens', value: 'Europe/Athens' }, |  | ||||||
|   { label: 'Europe/Belgrade', value: 'Europe/Belgrade' }, |  | ||||||
|   { label: 'Europe/Berlin', value: 'Europe/Berlin' }, |  | ||||||
|   { label: 'Europe/Bratislava', value: 'Europe/Bratislava' }, |  | ||||||
|   { label: 'Europe/Brussels', value: 'Europe/Brussels' }, |  | ||||||
|   { label: 'Europe/Bucharest', value: 'Europe/Bucharest' }, |  | ||||||
|   { label: 'Europe/Budapest', value: 'Europe/Budapest' }, |  | ||||||
|   { label: 'Europe/Busingen', value: 'Europe/Busingen' }, |  | ||||||
|   { label: 'Europe/Chisinau', value: 'Europe/Chisinau' }, |  | ||||||
|   { label: 'Europe/Copenhagen', value: 'Europe/Copenhagen' }, |  | ||||||
|   { label: 'Europe/Dublin', value: 'Europe/Dublin' }, |  | ||||||
|   { label: 'Europe/Gibraltar', value: 'Europe/Gibraltar' }, |  | ||||||
|   { label: 'Europe/Guernsey', value: 'Europe/Guernsey' }, |  | ||||||
|   { label: 'Europe/Helsinki', value: 'Europe/Helsinki' }, |  | ||||||
|   { label: 'Europe/Isle_of_Man', value: 'Europe/Isle_of_Man' }, |  | ||||||
|   { label: 'Europe/Istanbul', value: 'Europe/Istanbul' }, |  | ||||||
|   { label: 'Europe/Jersey', value: 'Europe/Jersey' }, |  | ||||||
|   { label: 'Europe/Kaliningrad', value: 'Europe/Kaliningrad' }, |  | ||||||
|   { label: 'Europe/Kiev', value: 'Europe/Kiev' }, |  | ||||||
|   { label: 'Europe/Kirov', value: 'Europe/Kirov' }, |  | ||||||
|   { label: 'Europe/Lisbon', value: 'Europe/Lisbon' }, |  | ||||||
|   { label: 'Europe/Ljubljana', value: 'Europe/Ljubljana' }, |  | ||||||
|   { label: 'Europe/London', value: 'Europe/London' }, |  | ||||||
|   { label: 'Europe/Luxembourg', value: 'Europe/Luxembourg' }, |  | ||||||
|   { label: 'Europe/Madrid', value: 'Europe/Madrid' }, |  | ||||||
|   { label: 'Europe/Malta', value: 'Europe/Malta' }, |  | ||||||
|   { label: 'Europe/Mariehamn', value: 'Europe/Mariehamn' }, |  | ||||||
|   { label: 'Europe/Minsk', value: 'Europe/Minsk' }, |  | ||||||
|   { label: 'Europe/Monaco', value: 'Europe/Monaco' }, |  | ||||||
|   { label: 'Europe/Moscow', value: 'Europe/Moscow' }, |  | ||||||
|   { label: 'Europe/Oslo', value: 'Europe/Oslo' }, |  | ||||||
|   { label: 'Europe/Paris', value: 'Europe/Paris' }, |  | ||||||
|   { label: 'Europe/Podgorica', value: 'Europe/Podgorica' }, |  | ||||||
|   { label: 'Europe/Prague', value: 'Europe/Prague' }, |  | ||||||
|   { label: 'Europe/Riga', value: 'Europe/Riga' }, |  | ||||||
|   { label: 'Europe/Rome', value: 'Europe/Rome' }, |  | ||||||
|   { label: 'Europe/Samara', value: 'Europe/Samara' }, |  | ||||||
|   { label: 'Europe/San_Marino', value: 'Europe/San_Marino' }, |  | ||||||
|   { label: 'Europe/Sarajevo', value: 'Europe/Sarajevo' }, |  | ||||||
|   { label: 'Europe/Saratov', value: 'Europe/Saratov' }, |  | ||||||
|   { label: 'Europe/Simferopol', value: 'Europe/Simferopol' }, |  | ||||||
|   { label: 'Europe/Skopje', value: 'Europe/Skopje' }, |  | ||||||
|   { label: 'Europe/Sofia', value: 'Europe/Sofia' }, |  | ||||||
|   { label: 'Europe/Stockholm', value: 'Europe/Stockholm' }, |  | ||||||
|   { label: 'Europe/Tallinn', value: 'Europe/Tallinn' }, |  | ||||||
|   { label: 'Europe/Tirane', value: 'Europe/Tirane' }, |  | ||||||
|   { label: 'Europe/Ulyanovsk', value: 'Europe/Ulyanovsk' }, |  | ||||||
|   { label: 'Europe/Uzhgorod', value: 'Europe/Uzhgorod' }, |  | ||||||
|   { label: 'Europe/Vaduz', value: 'Europe/Vaduz' }, |  | ||||||
|   { label: 'Europe/Vatican', value: 'Europe/Vatican' }, |  | ||||||
|   { label: 'Europe/Vienna', value: 'Europe/Vienna' }, |  | ||||||
|   { label: 'Europe/Vilnius', value: 'Europe/Vilnius' }, |  | ||||||
|   { label: 'Europe/Volgograd', value: 'Europe/Volgograd' }, |  | ||||||
|   { label: 'Europe/Warsaw', value: 'Europe/Warsaw' }, |  | ||||||
|   { label: 'Europe/Zagreb', value: 'Europe/Zagreb' }, |  | ||||||
|   { label: 'Europe/Zaporozhye', value: 'Europe/Zaporozhye' }, |  | ||||||
|   { label: 'Europe/Zurich', value: 'Europe/Zurich' }, |  | ||||||
|   { label: 'Indian/Antananarivo', value: 'Indian/Antananarivo' }, |  | ||||||
|   { label: 'Indian/Chagos', value: 'Indian/Chagos' }, |  | ||||||
|   { label: 'Indian/Christmas', value: 'Indian/Christmas' }, |  | ||||||
|   { label: 'Indian/Cocos', value: 'Indian/Cocos' }, |  | ||||||
|   { label: 'Indian/Comoro', value: 'Indian/Comoro' }, |  | ||||||
|   { label: 'Indian/Kerguelen', value: 'Indian/Kerguelen' }, |  | ||||||
|   { label: 'Indian/Mahe', value: 'Indian/Mahe' }, |  | ||||||
|   { label: 'Indian/Maldives', value: 'Indian/Maldives' }, |  | ||||||
|   { label: 'Indian/Mauritius', value: 'Indian/Mauritius' }, |  | ||||||
|   { label: 'Indian/Mayotte', value: 'Indian/Mayotte' }, |  | ||||||
|   { label: 'Indian/Reunion', value: 'Indian/Reunion' }, |  | ||||||
|   { label: 'Pacific/Apia', value: 'Pacific/Apia' }, |  | ||||||
|   { label: 'Pacific/Auckland', value: 'Pacific/Auckland' }, |  | ||||||
|   { label: 'Pacific/Bougainville', value: 'Pacific/Bougainville' }, |  | ||||||
|   { label: 'Pacific/Chatham', value: 'Pacific/Chatham' }, |  | ||||||
|   { label: 'Pacific/Easter', value: 'Pacific/Easter' }, |  | ||||||
|   { label: 'Pacific/Efate', value: 'Pacific/Efate' }, |  | ||||||
|   { label: 'Pacific/Enderbury', value: 'Pacific/Enderbury' }, |  | ||||||
|   { label: 'Pacific/Fakaofo', value: 'Pacific/Fakaofo' }, |  | ||||||
|   { label: 'Pacific/Fiji', value: 'Pacific/Fiji' }, |  | ||||||
|   { label: 'Pacific/Funafuti', value: 'Pacific/Funafuti' }, |  | ||||||
|   { label: 'Pacific/Galapagos', value: 'Pacific/Galapagos' }, |  | ||||||
|   { label: 'Pacific/Gambier', value: 'Pacific/Gambier' }, |  | ||||||
|   { label: 'Pacific/Guadalcanal', value: 'Pacific/Guadalcanal' }, |  | ||||||
|   { label: 'Pacific/Guam', value: 'Pacific/Guam' }, |  | ||||||
|   { label: 'Pacific/Honolulu', value: 'Pacific/Honolulu' }, |  | ||||||
|   { label: 'Pacific/Johnston', value: 'Pacific/Johnston' }, |  | ||||||
|   { label: 'Pacific/Kiritimati', value: 'Pacific/Kiritimati' }, |  | ||||||
|   { label: 'Pacific/Kosrae', value: 'Pacific/Kosrae' }, |  | ||||||
|   { label: 'Pacific/Kwajalein', value: 'Pacific/Kwajalein' }, |  | ||||||
|   { label: 'Pacific/Majuro', value: 'Pacific/Majuro' }, |  | ||||||
|   { label: 'Pacific/Marquesas', value: 'Pacific/Marquesas' }, |  | ||||||
|   { label: 'Pacific/Midway', value: 'Pacific/Midway' }, |  | ||||||
|   { label: 'Pacific/Nauru', value: 'Pacific/Nauru' }, |  | ||||||
|   { label: 'Pacific/Niue', value: 'Pacific/Niue' }, |  | ||||||
|   { label: 'Pacific/Norfolk', value: 'Pacific/Norfolk' }, |  | ||||||
|   { label: 'Pacific/Noumea', value: 'Pacific/Noumea' }, |  | ||||||
|   { label: 'Pacific/Pago_Pago', value: 'Pacific/Pago_Pago' }, |  | ||||||
|   { label: 'Pacific/Palau', value: 'Pacific/Palau' }, |  | ||||||
|   { label: 'Pacific/Pitcairn', value: 'Pacific/Pitcairn' }, |  | ||||||
|   { label: 'Pacific/Ponape', value: 'Pacific/Ponape' }, |  | ||||||
|   { label: 'Pacific/Port_Moresby', value: 'Pacific/Port_Moresby' }, |  | ||||||
|   { label: 'Pacific/Rarotonga', value: 'Pacific/Rarotonga' }, |  | ||||||
|   { label: 'Pacific/Saipan', value: 'Pacific/Saipan' }, |  | ||||||
|   { label: 'Pacific/Tahiti', value: 'Pacific/Tahiti' }, |  | ||||||
|   { label: 'Pacific/Tarawa', value: 'Pacific/Tarawa' }, |  | ||||||
|   { label: 'Pacific/Tongatapu', value: 'Pacific/Tongatapu' }, |  | ||||||
|   { label: 'Pacific/Truk', value: 'Pacific/Truk' }, |  | ||||||
|   { label: 'Pacific/Wake', value: 'Pacific/Wake' }, |  | ||||||
|   { label: 'Pacific/Wallis', value: 'Pacific/Wallis' }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default timezoneOptions; |  | ||||||
| @@ -1,43 +0,0 @@ | |||||||
| import { IGlobalVariable, IJSONObject } from '@automatisch/types'; |  | ||||||
| import capitalize from './text/capitalize'; |  | ||||||
| import extractEmailAddress from './text/extract-email-address'; |  | ||||||
| import extractNumber from './text/extract-number'; |  | ||||||
| import htmlToMarkdown from './text/html-to-markdown'; |  | ||||||
| import lowercase from './text/lowercase'; |  | ||||||
| import markdownToHtml from './text/markdown-to-html'; |  | ||||||
| import pluralize from './text/pluralize'; |  | ||||||
| import replace from './text/replace'; |  | ||||||
| import trimWhitespace from './text/trim-whitespace'; |  | ||||||
| import useDefaultValue from './text/use-default-value'; |  | ||||||
| import performMathOperation from './numbers/perform-math-operation'; |  | ||||||
| import randomNumber from './numbers/random-number'; |  | ||||||
| import formatNumber from './numbers/format-number'; |  | ||||||
| import formatPhoneNumber from './numbers/format-phone-number'; |  | ||||||
| import formatDateTime from './date-time/format-date-time'; |  | ||||||
|  |  | ||||||
| const options: IJSONObject = { |  | ||||||
|   capitalize, |  | ||||||
|   extractEmailAddress, |  | ||||||
|   extractNumber, |  | ||||||
|   htmlToMarkdown, |  | ||||||
|   lowercase, |  | ||||||
|   markdownToHtml, |  | ||||||
|   pluralize, |  | ||||||
|   replace, |  | ||||||
|   trimWhitespace, |  | ||||||
|   useDefaultValue, |  | ||||||
|   performMathOperation, |  | ||||||
|   randomNumber, |  | ||||||
|   formatNumber, |  | ||||||
|   formatPhoneNumber, |  | ||||||
|   formatDateTime, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default { |  | ||||||
|   name: 'List fields after transform', |  | ||||||
|   key: 'listTransformOptions', |  | ||||||
|  |  | ||||||
|   async run($: IGlobalVariable) { |  | ||||||
|     return options[$.step.parameters.transform as string]; |  | ||||||
|   }, |  | ||||||
| }; |  | ||||||
| @@ -1,38 +0,0 @@ | |||||||
| const formatNumber = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The number you want to format.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Input Decimal Mark', |  | ||||||
|     key: 'inputDecimalMark', |  | ||||||
|     type: 'dropdown' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The decimal mark of the input number.', |  | ||||||
|     variables: true, |  | ||||||
|     options: [ |  | ||||||
|       { label: 'Comma', value: ',' }, |  | ||||||
|       { label: 'Period', value: '.' }, |  | ||||||
|     ], |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'To Format', |  | ||||||
|     key: 'toFormat', |  | ||||||
|     type: 'dropdown' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The format you want to convert the number to.', |  | ||||||
|     variables: true, |  | ||||||
|     options: [ |  | ||||||
|       { label: 'Comma for grouping & period for decimal', value: '0' }, |  | ||||||
|       { label: 'Period for grouping & comma for decimal', value: '1' }, |  | ||||||
|       { label: 'Space for grouping & period for decimal', value: '2' }, |  | ||||||
|       { label: 'Space for grouping & comma for decimal', value: '3' }, |  | ||||||
|     ], |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default formatNumber; |  | ||||||
| @@ -1,36 +0,0 @@ | |||||||
| import phoneNumberCountryCodes from '../../../common/phone-number-country-codes'; |  | ||||||
|  |  | ||||||
| const formatPhoneNumber = [ |  | ||||||
|   { |  | ||||||
|     label: 'Phone Number', |  | ||||||
|     key: 'phoneNumber', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The phone number you want to format.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'To Format', |  | ||||||
|     key: 'toFormat', |  | ||||||
|     type: 'dropdown' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The format you want to convert the number to.', |  | ||||||
|     variables: true, |  | ||||||
|     options: [ |  | ||||||
|       { label: '+491632223344 (E164)', value: 'e164' }, |  | ||||||
|       { label: '+49 163 2223344 (International)', value: 'international' }, |  | ||||||
|       { label: '0163 2223344 (National)', value: 'national' }, |  | ||||||
|     ], |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Phone Number Country Code', |  | ||||||
|     key: 'phoneNumberCountryCode', |  | ||||||
|     type: 'dropdown' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The country code of the phone number. The default is US.', |  | ||||||
|     variables: true, |  | ||||||
|     options: phoneNumberCountryCodes, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default formatPhoneNumber; |  | ||||||
| @@ -1,36 +0,0 @@ | |||||||
| const performMathOperation = [ |  | ||||||
|   { |  | ||||||
|     label: 'Math Operation', |  | ||||||
|     key: 'mathOperation', |  | ||||||
|     type: 'dropdown' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The math operation to perform.', |  | ||||||
|     variables: true, |  | ||||||
|     options: [ |  | ||||||
|       { label: 'Add', value: 'add' }, |  | ||||||
|       { label: 'Divide', value: 'divide' }, |  | ||||||
|       { label: 'Make Negative', value: 'makeNegative' }, |  | ||||||
|       { label: 'Multiply', value: 'multiply' }, |  | ||||||
|       { label: 'Subtract', value: 'subtract' }, |  | ||||||
|     ], |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Values', |  | ||||||
|     key: 'values', |  | ||||||
|     type: 'dynamic' as const, |  | ||||||
|     required: false, |  | ||||||
|     description: 'Add or remove numbers as needed.', |  | ||||||
|     fields: [ |  | ||||||
|       { |  | ||||||
|         label: 'Input', |  | ||||||
|         key: 'input', |  | ||||||
|         type: 'string' as const, |  | ||||||
|         required: true, |  | ||||||
|         description: 'The number to perform the math operation on.', |  | ||||||
|         variables: true, |  | ||||||
|       }, |  | ||||||
|     ], |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default performMathOperation; |  | ||||||
| @@ -1,29 +0,0 @@ | |||||||
| const randomNumber = [ |  | ||||||
|   { |  | ||||||
|     label: 'Lower range', |  | ||||||
|     key: 'lowerRange', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The lowest number to generate.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Upper range', |  | ||||||
|     key: 'upperRange', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'The highest number to generate.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Decimal points', |  | ||||||
|     key: 'decimalPoints', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: false, |  | ||||||
|     description: |  | ||||||
|       'The number of digits after the decimal point. It can be an integer between 0 and 15.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default randomNumber; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| const capitalize = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Text that will be capitalized.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default capitalize; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| const extractEmailAddress = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Text that will be searched for an email address.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default extractEmailAddress; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| const extractNumber = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Text that will be searched for a number.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default extractNumber; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| const htmlToMarkdown = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'HTML that will be converted to Markdown.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default htmlToMarkdown; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| const lowercase = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Text that will be lowercased.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default lowercase; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| const markdownToHtml = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Markdown text that will be converted to HTML.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default markdownToHtml; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| const pluralize = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Text that will be pluralized.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default pluralize; |  | ||||||
| @@ -1,28 +0,0 @@ | |||||||
| const replace = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Text that you want to search for and replace values.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Find', |  | ||||||
|     key: 'find', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Text that will be searched for.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Replace', |  | ||||||
|     key: 'replace', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: false, |  | ||||||
|     description: 'Text that will replace the found text.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default replace; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| const trimWhitespace = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Text you want to remove leading and trailing spaces.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default trimWhitespace; |  | ||||||
| @@ -1,21 +0,0 @@ | |||||||
| const useDefaultValue = [ |  | ||||||
|   { |  | ||||||
|     label: 'Input', |  | ||||||
|     key: 'input', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: 'Text you want to check whether it is empty or not.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     label: 'Default Value', |  | ||||||
|     key: 'defaultValue', |  | ||||||
|     type: 'string' as const, |  | ||||||
|     required: true, |  | ||||||
|     description: |  | ||||||
|       'Text that will be used as a default value if the input is empty.', |  | ||||||
|     variables: true, |  | ||||||
|   }, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default useDefaultValue; |  | ||||||
| @@ -1,16 +0,0 @@ | |||||||
| import defineApp from '../../helpers/define-app'; |  | ||||||
| import actions from './actions'; |  | ||||||
| import dynamicFields from './dynamic-fields'; |  | ||||||
|  |  | ||||||
| export default defineApp({ |  | ||||||
|   name: 'Formatter', |  | ||||||
|   key: 'formatter', |  | ||||||
|   iconUrl: '{BASE_URL}/apps/formatter/assets/favicon.svg', |  | ||||||
|   authDocUrl: 'https://automatisch.io/docs/apps/formatter/connection', |  | ||||||
|   supportsConnections: false, |  | ||||||
|   baseUrl: '', |  | ||||||
|   apiBaseUrl: '', |  | ||||||
|   primaryColor: '001F52', |  | ||||||
|   actions, |  | ||||||
|   dynamicFields, |  | ||||||
| }); |  | ||||||
| @@ -1,60 +0,0 @@ | |||||||
| <?xml version="1.0" standalone="no"?> |  | ||||||
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" |  | ||||||
|  "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> |  | ||||||
| <svg version="1.0" xmlns="http://www.w3.org/2000/svg" |  | ||||||
|  width="400.000000pt" height="400.000000pt" viewBox="0 0 400.000000 400.000000" |  | ||||||
|  preserveAspectRatio="xMidYMid meet"> |  | ||||||
|  |  | ||||||
| <g transform="translate(0.000000,400.000000) scale(0.100000,-0.100000)" |  | ||||||
| fill="#000000" stroke="none"> |  | ||||||
| <path d="M1829 3850 c-287 -26 -616 -144 -862 -308 -135 -89 -408 -322 -475 |  | ||||||
| -405 -165 -201 -294 -475 -339 -717 -21 -117 -24 -472 -5 -630 36 -288 104 |  | ||||||
| -524 220 -753 106 -210 196 -343 306 -452 106 -105 195 -159 348 -213 57 -19 |  | ||||||
| 135 -56 173 -80 217 -139 452 -205 725 -205 150 0 238 15 378 65 214 75 380 |  | ||||||
| 175 522 314 89 87 101 95 175 120 161 54 277 127 419 263 217 210 362 458 437 |  | ||||||
| 749 67 261 49 465 -78 862 -100 313 -183 445 -468 739 -202 208 -366 324 -650 |  | ||||||
| 462 -328 159 -565 213 -826 189z m206 -29 c12 -5 -13 -10 -70 -14 -203 -13 |  | ||||||
| -587 -89 -701 -137 -26 -11 -49 -19 -51 -16 -5 5 128 61 217 91 81 28 235 64 |  | ||||||
| 315 75 78 10 265 11 290 1z m-62 -142 c233 -14 324 -28 142 -22 -258 10 -585 |  | ||||||
| -22 -805 -77 -63 -16 -116 -28 -117 -26 -6 6 167 85 217 100 120 35 289 42 |  | ||||||
| 563 25z m-773 -34 c0 -2 -13 -11 -30 -20 -38 -19 -40 -11 -2 9 31 17 32 18 32 |  | ||||||
| 11z m1120 -68 c217 -49 376 -104 575 -203 199 -99 255 -141 363 -274 253 -311 |  | ||||||
| 380 -563 411 -815 19 -158 15 -239 -23 -389 -42 -164 -94 -275 -208 -436 -44 |  | ||||||
| -63 -121 -173 -171 -245 -108 -156 -188 -258 -269 -344 -47 -49 -80 -72 -143 |  | ||||||
| -102 -98 -46 -457 -169 -494 -169 -14 0 -86 31 -161 69 -144 74 -183 88 -355 |  | ||||||
| 127 -78 17 -138 39 -210 75 -439 223 -697 460 -867 798 -56 112 -64 114 -13 4 |  | ||||||
| 68 -147 187 -314 301 -424 136 -130 382 -300 565 -390 46 -23 131 -69 189 |  | ||||||
| -103 127 -75 183 -99 297 -130 60 -15 89 -28 91 -39 6 -31 -34 -54 -144 -81 |  | ||||||
| -60 -14 -115 -33 -123 -41 -23 -23 -8 -20 212 34 l198 50 110 -12 c60 -6 109 |  | ||||||
| -14 109 -18 0 -6 -116 -62 -191 -92 -133 -54 -382 -104 -564 -113 -104 -5 |  | ||||||
| -108 -4 -82 11 15 9 27 17 27 19 0 2 -42 -6 -92 -16 -89 -19 -97 -19 -178 -3 |  | ||||||
| -203 39 -488 226 -664 435 -172 204 -336 516 -409 780 -49 176 -61 269 -62 |  | ||||||
| 485 0 195 1 203 33 330 78 301 191 585 277 690 l24 30 -20 -63 c-29 -96 -22 |  | ||||||
| -109 9 -17 52 155 125 242 300 356 59 39 116 62 300 123 394 130 430 136 717 |  | ||||||
| 132 191 -3 235 -7 335 -29z m-1941 -729 c-88 -175 -129 -307 -164 -523 -21 |  | ||||||
| -135 -22 -138 -30 -91 -10 64 1 226 20 297 21 81 70 194 115 271 37 62 86 128 |  | ||||||
| 96 128 2 0 -14 -37 -37 -82z m100 -28 c-43 -99 -99 -284 -123 -400 -28 -138 |  | ||||||
| -46 -386 -36 -495 13 -146 38 -303 65 -413 29 -119 185 -437 300 -612 75 -116 |  | ||||||
| 86 -140 62 -140 -40 0 -208 164 -283 276 -71 106 -93 173 -98 293 -4 83 -10 |  | ||||||
| 110 -45 201 -46 116 -56 166 -70 348 -16 194 13 437 74 617 44 132 174 415 |  | ||||||
| 190 415 1 0 -15 -41 -36 -90z m3340 -622 c83 -383 16 -750 -195 -1076 -98 |  | ||||||
| -150 -283 -323 -435 -406 -60 -33 -169 -76 -191 -76 -19 0 86 111 228 241 172 |  | ||||||
| 157 253 254 313 376 24 48 67 125 96 169 69 105 108 184 141 281 35 103 43 |  | ||||||
| 263 20 412 -18 115 -21 216 -7 191 5 -8 18 -59 30 -112z m-152 -310 c-3 -8 -6 |  | ||||||
| -5 -6 6 -1 11 2 17 5 13 3 -3 4 -12 1 -19z m-22 -167 c-42 -233 -142 -442 |  | ||||||
| -285 -594 -60 -65 -204 -180 -285 -228 l-40 -24 31 40 c18 22 94 130 171 240 |  | ||||||
| 77 110 173 248 214 306 89 126 148 237 180 339 20 61 25 69 27 45 2 -16 -4 |  | ||||||
| -72 -13 -124z m-2954 -986 c77 -64 259 -248 259 -262 0 -26 -70 5 -166 73 -88 |  | ||||||
| 62 -174 176 -174 231 0 18 22 7 81 -42z m1310 -11 c26 -8 55 -24 64 -34 18 |  | ||||||
| -19 17 -20 -8 -20 -25 0 -118 31 -146 49 -7 5 -11 13 -7 19 7 11 25 8 97 -14z |  | ||||||
| m805 -33 c-3 -4 -30 -27 -60 -50 -52 -40 -57 -42 -117 -39 l-62 3 119 47 c138 |  | ||||||
| 54 127 50 120 39z m-1515 -324 c49 -23 89 -45 89 -49 0 -21 -187 27 -235 61 |  | ||||||
| -37 26 -135 136 -135 152 0 4 43 -22 97 -58 53 -35 136 -83 184 -106z m1501 |  | ||||||
| 125 c-147 -175 -408 -321 -672 -377 -92 -19 -292 -19 -403 0 -190 33 -394 119 |  | ||||||
| -371 156 4 6 41 8 97 4 98 -7 299 6 487 31 274 37 429 79 600 162 92 45 127 |  | ||||||
| 54 288 71 8 0 -4 -21 -26 -47z"/> |  | ||||||
| <path d="M632 2890 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z"/> |  | ||||||
| <path d="M622 2825 c0 -16 2 -22 5 -12 2 9 2 23 0 30 -3 6 -5 -1 -5 -18z"/> |  | ||||||
| <path d="M691 1840 c0 -8 4 -22 9 -30 12 -18 12 -2 0 25 -6 13 -9 15 -9 5z"/> |  | ||||||
| </g> |  | ||||||
| </svg> |  | ||||||
| Before Width: | Height: | Size: 3.9 KiB | 
| @@ -1,32 +0,0 @@ | |||||||
| import verifyCredentials from './verify-credentials'; |  | ||||||
| import isStillVerified from './is-still-verified'; |  | ||||||
|  |  | ||||||
| export default { |  | ||||||
|   fields: [ |  | ||||||
|     { |  | ||||||
|       key: 'instanceUrl', |  | ||||||
|       label: 'Instance URL', |  | ||||||
|       type: 'string' as const, |  | ||||||
|       required: true, |  | ||||||
|       readOnly: false, |  | ||||||
|       value: null, |  | ||||||
|       placeholder: null, |  | ||||||
|       description: null, |  | ||||||
|       clickToCopy: false, |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       key: 'apiKey', |  | ||||||
|       label: 'Admin API Key', |  | ||||||
|       type: 'string' as const, |  | ||||||
|       required: true, |  | ||||||
|       readOnly: false, |  | ||||||
|       value: null, |  | ||||||
|       placeholder: null, |  | ||||||
|       description: null, |  | ||||||
|       clickToCopy: false, |  | ||||||
|     }, |  | ||||||
|   ], |  | ||||||
|  |  | ||||||
|   verifyCredentials, |  | ||||||
|   isStillVerified, |  | ||||||
| }; |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
| import verifyCredentials from './verify-credentials'; |  | ||||||
|  |  | ||||||
| const isStillVerified = async ($: IGlobalVariable) => { |  | ||||||
|   await verifyCredentials($); |  | ||||||
|   return true; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default isStillVerified; |  | ||||||
| @@ -1,16 +0,0 @@ | |||||||
| import { IGlobalVariable } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const verifyCredentials = async ($: IGlobalVariable) => { |  | ||||||
|   const site = await $.http.get('/admin/site/'); |  | ||||||
|   const screenName = [site.data.site.title, site.data.site.url] |  | ||||||
|     .filter(Boolean) |  | ||||||
|     .join(' @ '); |  | ||||||
|  |  | ||||||
|   await $.auth.set({ |  | ||||||
|     screenName, |  | ||||||
|   }); |  | ||||||
|  |  | ||||||
|   await $.http.get('/admin/pages/'); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default verifyCredentials; |  | ||||||
| @@ -1,23 +0,0 @@ | |||||||
| import { TBeforeRequest } from '@automatisch/types'; |  | ||||||
| import jwt from 'jsonwebtoken'; |  | ||||||
|  |  | ||||||
| const addAuthHeader: TBeforeRequest = ($, requestConfig) => { |  | ||||||
|   const key = $.auth.data?.apiKey as string; |  | ||||||
|  |  | ||||||
|   if (key) { |  | ||||||
|     const [id, secret] = key.split(':'); |  | ||||||
|  |  | ||||||
|     const token = jwt.sign({}, Buffer.from(secret, 'hex'), { |  | ||||||
|       keyid: id, |  | ||||||
|       algorithm: 'HS256', |  | ||||||
|       expiresIn: '1h', |  | ||||||
|       audience: `/admin/`, |  | ||||||
|     }); |  | ||||||
|  |  | ||||||
|     requestConfig.headers.Authorization = `Ghost ${token}`; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return requestConfig; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default addAuthHeader; |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| import { TBeforeRequest } from '@automatisch/types'; |  | ||||||
|  |  | ||||||
| const setBaseUrl: TBeforeRequest = ($, requestConfig) => { |  | ||||||
|   const instanceUrl = $.auth.data.instanceUrl as string; |  | ||||||
|   if (instanceUrl) { |  | ||||||
|     requestConfig.baseURL = `${instanceUrl}/ghost/api`; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return requestConfig; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export default setBaseUrl; |  | ||||||
| @@ -1,19 +0,0 @@ | |||||||
| import defineApp from '../../helpers/define-app'; |  | ||||||
| import addAuthHeader from './common/add-auth-header'; |  | ||||||
| import setBaseUrl from './common/set-base-url'; |  | ||||||
| import auth from './auth'; |  | ||||||
| import triggers from './triggers'; |  | ||||||
|  |  | ||||||
| export default defineApp({ |  | ||||||
|   name: 'Ghost', |  | ||||||
|   key: 'ghost', |  | ||||||
|   baseUrl: 'https://ghost.org', |  | ||||||
|   apiBaseUrl: '', |  | ||||||
|   iconUrl: '{BASE_URL}/apps/ghost/assets/favicon.svg', |  | ||||||
|   authDocUrl: 'https://automatisch.io/docs/apps/ghost/connection', |  | ||||||
|   primaryColor: '15171A', |  | ||||||
|   supportsConnections: true, |  | ||||||
|   beforeRequest: [setBaseUrl, addAuthHeader], |  | ||||||
|   auth, |  | ||||||
|   triggers, |  | ||||||
| }); |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| import newPostPublished from './new-post-published'; |  | ||||||
|  |  | ||||||
| export default [newPostPublished]; |  | ||||||
| @@ -1,55 +0,0 @@ | |||||||
| import Crypto from 'crypto'; |  | ||||||
| import isEmpty from 'lodash/isEmpty'; |  | ||||||
| import defineTrigger from '../../../../helpers/define-trigger'; |  | ||||||
|  |  | ||||||
| export default defineTrigger({ |  | ||||||
|   name: 'New post published', |  | ||||||
|   key: 'newPostPublished', |  | ||||||
|   type: 'webhook', |  | ||||||
|   description: 'Triggers when a new post is published.', |  | ||||||
|  |  | ||||||
|   async run($) { |  | ||||||
|     const dataItem = { |  | ||||||
|       raw: $.request.body, |  | ||||||
|       meta: { |  | ||||||
|         internalId: Crypto.randomUUID(), |  | ||||||
|       }, |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     $.pushTriggerItem(dataItem); |  | ||||||
|   }, |  | ||||||
|  |  | ||||||
|   async testRun($) { |  | ||||||
|     const lastExecutionStep = await $.getLastExecutionStep(); |  | ||||||
|  |  | ||||||
|     if (!isEmpty(lastExecutionStep?.dataOut)) { |  | ||||||
|       $.pushTriggerItem({ |  | ||||||
|         raw: lastExecutionStep.dataOut, |  | ||||||
|         meta: { |  | ||||||
|           internalId: '', |  | ||||||
|         }, |  | ||||||
|       }); |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|  |  | ||||||
|   async registerHook($) { |  | ||||||
|     const payload = { |  | ||||||
|       webhooks: [ |  | ||||||
|         { |  | ||||||
|           event: 'post.published', |  | ||||||
|           target_url: $.webhookUrl, |  | ||||||
|           name: `Flow ID: ${$.flow.id}`, |  | ||||||
|         }, |  | ||||||
|       ], |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     const response = await $.http.post('/admin/webhooks/', payload); |  | ||||||
|     const id = response.data.webhooks[0].id; |  | ||||||
|  |  | ||||||
|     await $.flow.setRemoteWebhookId(id); |  | ||||||
|   }, |  | ||||||
|  |  | ||||||
|   async unregisterHook($) { |  | ||||||
|     await $.http.delete(`/admin/webhooks/${$.flow.remoteWebhookId}/`); |  | ||||||
|   }, |  | ||||||
| }); |  | ||||||
| @@ -6,7 +6,7 @@ import actions from './actions'; | |||||||
| import dynamicData from './dynamic-data'; | import dynamicData from './dynamic-data'; | ||||||
|  |  | ||||||
| export default defineApp({ | export default defineApp({ | ||||||
|   name: 'GitHub', |   name: 'Github', | ||||||
|   key: 'github', |   key: 'github', | ||||||
|   baseUrl: 'https://github.com', |   baseUrl: 'https://github.com', | ||||||
|   apiBaseUrl: 'https://api.github.com', |   apiBaseUrl: 'https://api.github.com', | ||||||
|   | |||||||
| @@ -25,12 +25,6 @@ const verifyCredentials = async ($: IGlobalVariable) => { | |||||||
|   $.auth.data.accessToken = data.access_token; |   $.auth.data.accessToken = data.access_token; | ||||||
|  |  | ||||||
|   const currentUser = await getCurrentUser($); |   const currentUser = await getCurrentUser($); | ||||||
|   const screenName = [ |  | ||||||
|     currentUser.username, |  | ||||||
|     $.auth.data.instanceUrl, |  | ||||||
|   ] |  | ||||||
|     .filter(Boolean) |  | ||||||
|     .join(' @ '); |  | ||||||
|  |  | ||||||
|   await $.auth.set({ |   await $.auth.set({ | ||||||
|     clientId: $.auth.data.clientId, |     clientId: $.auth.data.clientId, | ||||||
| @@ -40,7 +34,7 @@ const verifyCredentials = async ($: IGlobalVariable) => { | |||||||
|     scope: data.scope, |     scope: data.scope, | ||||||
|     tokenType: data.token_type, |     tokenType: data.token_type, | ||||||
|     userId: currentUser.id, |     userId: currentUser.id, | ||||||
|     screenName, |     screenName: `${currentUser.username} @ ${$.auth.data.instanceUrl}`, | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,11 +9,11 @@ export default { | |||||||
|     // ref: |     // ref: | ||||||
|     //  - https://docs.gitlab.com/ee/api/projects.html#list-all-projects |     //  - https://docs.gitlab.com/ee/api/projects.html#list-all-projects | ||||||
|     //  - https://docs.gitlab.com/ee/api/rest/index.html#keyset-based-pagination |     //  - https://docs.gitlab.com/ee/api/rest/index.html#keyset-based-pagination | ||||||
|  |  | ||||||
|     const firstPageRequest = $.http.get('/api/v4/projects', { |     const firstPageRequest = $.http.get('/api/v4/projects', { | ||||||
|       params: { |       params: { | ||||||
|         simple: true, |         simple: true, | ||||||
|         pagination: 'keyset', |         pagination: 'keyset', | ||||||
|         membership: true, |  | ||||||
|         order_by: 'id', |         order_by: 'id', | ||||||
|         sort: 'asc', |         sort: 'asc', | ||||||
|       }, |       }, | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ import triggers from './triggers'; | |||||||
| import dynamicData from './dynamic-data'; | import dynamicData from './dynamic-data'; | ||||||
|  |  | ||||||
| export default defineApp({ | export default defineApp({ | ||||||
|   name: 'GitLab', |   name: 'Gitlab', | ||||||
|   key: 'gitlab', |   key: 'gitlab', | ||||||
|   baseUrl: 'https://gitlab.com', |   baseUrl: 'https://gitlab.com', | ||||||
|   apiBaseUrl: 'https://gitlab.com', |   apiBaseUrl: 'https://gitlab.com', | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ import defineTrigger from '../../../../helpers/define-trigger'; | |||||||
| import { GITLAB_EVENT_TYPE } from '../types'; | import { GITLAB_EVENT_TYPE } from '../types'; | ||||||
| import { | import { | ||||||
|   getRegisterHookFn, |   getRegisterHookFn, | ||||||
|   getRunFn, |  | ||||||
|   getTestRunFn, |   getTestRunFn, | ||||||
|   projectArgumentDescriptor, |   projectArgumentDescriptor, | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
| @@ -20,7 +19,6 @@ export const triggerDescriptor: IRawTrigger = { | |||||||
|   key: GITLAB_EVENT_TYPE.confidential_issues_events, |   key: GITLAB_EVENT_TYPE.confidential_issues_events, | ||||||
|   type: 'webhook', |   type: 'webhook', | ||||||
|   arguments: [projectArgumentDescriptor], |   arguments: [projectArgumentDescriptor], | ||||||
|   run: ($) => getRunFn($), |  | ||||||
|   testRun: getTestRunFn(data), |   testRun: getTestRunFn(data), | ||||||
|   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.confidential_issues_events), |   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.confidential_issues_events), | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ import defineTrigger from '../../../../helpers/define-trigger'; | |||||||
| import { GITLAB_EVENT_TYPE } from '../types'; | import { GITLAB_EVENT_TYPE } from '../types'; | ||||||
| import { | import { | ||||||
|   getRegisterHookFn, |   getRegisterHookFn, | ||||||
|   getRunFn, |  | ||||||
|   getTestRunFn, |   getTestRunFn, | ||||||
|   projectArgumentDescriptor, |   projectArgumentDescriptor, | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
| @@ -20,7 +19,6 @@ export const triggerDescriptor: IRawTrigger = { | |||||||
|   key: GITLAB_EVENT_TYPE.confidential_note_events, |   key: GITLAB_EVENT_TYPE.confidential_note_events, | ||||||
|   type: 'webhook', |   type: 'webhook', | ||||||
|   arguments: [projectArgumentDescriptor], |   arguments: [projectArgumentDescriptor], | ||||||
|   run: ($) => getRunFn($), |  | ||||||
|   testRun: getTestRunFn(data), |   testRun: getTestRunFn(data), | ||||||
|   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.confidential_note_events), |   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.confidential_note_events), | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ import defineTrigger from '../../../../helpers/define-trigger'; | |||||||
| import { GITLAB_EVENT_TYPE } from '../types'; | import { GITLAB_EVENT_TYPE } from '../types'; | ||||||
| import { | import { | ||||||
|   getRegisterHookFn, |   getRegisterHookFn, | ||||||
|   getRunFn, |  | ||||||
|   getTestRunFn, |   getTestRunFn, | ||||||
|   projectArgumentDescriptor, |   projectArgumentDescriptor, | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
| @@ -19,7 +18,6 @@ export const triggerDescriptor: IRawTrigger = { | |||||||
|   key: GITLAB_EVENT_TYPE.deployment_events, |   key: GITLAB_EVENT_TYPE.deployment_events, | ||||||
|   type: 'webhook', |   type: 'webhook', | ||||||
|   arguments: [projectArgumentDescriptor], |   arguments: [projectArgumentDescriptor], | ||||||
|   run: ($) => getRunFn($), |  | ||||||
|   testRun: getTestRunFn(data), |   testRun: getTestRunFn(data), | ||||||
|   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.deployment_events), |   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.deployment_events), | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ import defineTrigger from '../../../../helpers/define-trigger'; | |||||||
| import { GITLAB_EVENT_TYPE } from '../types'; | import { GITLAB_EVENT_TYPE } from '../types'; | ||||||
| import { | import { | ||||||
|   getRegisterHookFn, |   getRegisterHookFn, | ||||||
|   getRunFn, |  | ||||||
|   getTestRunFn, |   getTestRunFn, | ||||||
|   projectArgumentDescriptor, |   projectArgumentDescriptor, | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
| @@ -19,7 +18,6 @@ export const triggerDescriptor: IRawTrigger = { | |||||||
|   key: GITLAB_EVENT_TYPE.feature_flag_events, |   key: GITLAB_EVENT_TYPE.feature_flag_events, | ||||||
|   type: 'webhook', |   type: 'webhook', | ||||||
|   arguments: [projectArgumentDescriptor], |   arguments: [projectArgumentDescriptor], | ||||||
|   run: ($) => getRunFn($), |  | ||||||
|   testRun: getTestRunFn(data), |   testRun: getTestRunFn(data), | ||||||
|   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.feature_flag_events), |   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.feature_flag_events), | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ import defineTrigger from '../../../../helpers/define-trigger'; | |||||||
| import { GITLAB_EVENT_TYPE } from '../types'; | import { GITLAB_EVENT_TYPE } from '../types'; | ||||||
| import { | import { | ||||||
|   getRegisterHookFn, |   getRegisterHookFn, | ||||||
|   getRunFn, |  | ||||||
|   getTestRunFn, |   getTestRunFn, | ||||||
|   projectArgumentDescriptor, |   projectArgumentDescriptor, | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
| @@ -19,7 +18,6 @@ export const triggerDescriptor: IRawTrigger = { | |||||||
|   key: GITLAB_EVENT_TYPE.issues_events, |   key: GITLAB_EVENT_TYPE.issues_events, | ||||||
|   type: 'webhook', |   type: 'webhook', | ||||||
|   arguments: [projectArgumentDescriptor], |   arguments: [projectArgumentDescriptor], | ||||||
|   run: ($) => getRunFn($), |  | ||||||
|   testRun: getTestRunFn(data), |   testRun: getTestRunFn(data), | ||||||
|   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.issues_events), |   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.issues_events), | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ import defineTrigger from '../../../../helpers/define-trigger'; | |||||||
| import { GITLAB_EVENT_TYPE } from '../types'; | import { GITLAB_EVENT_TYPE } from '../types'; | ||||||
| import { | import { | ||||||
|   getRegisterHookFn, |   getRegisterHookFn, | ||||||
|   getRunFn, |  | ||||||
|   getTestRunFn, |   getTestRunFn, | ||||||
|   projectArgumentDescriptor, |   projectArgumentDescriptor, | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
| @@ -18,7 +17,6 @@ export const triggerDescriptor: IRawTrigger = { | |||||||
|   key: GITLAB_EVENT_TYPE.job_events, |   key: GITLAB_EVENT_TYPE.job_events, | ||||||
|   type: 'webhook', |   type: 'webhook', | ||||||
|   arguments: [projectArgumentDescriptor], |   arguments: [projectArgumentDescriptor], | ||||||
|   run: ($) => getRunFn($), |  | ||||||
|   testRun: getTestRunFn(data), |   testRun: getTestRunFn(data), | ||||||
|   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.job_events), |   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.job_events), | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
|   | |||||||
| @@ -22,17 +22,6 @@ export const projectArgumentDescriptor = { | |||||||
|   }, |   }, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| export const getRunFn = async ($: IGlobalVariable) => { |  | ||||||
|   const dataItem = { |  | ||||||
|     raw: $.request.body, |  | ||||||
|     meta: { |  | ||||||
|       internalId: Crypto.randomUUID(), |  | ||||||
|     }, |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   $.pushTriggerItem(dataItem); |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| export const getTestRunFn = | export const getTestRunFn = | ||||||
|   (eventData: IJSONObject) => ($: IGlobalVariable) => { |   (eventData: IJSONObject) => ($: IGlobalVariable) => { | ||||||
|     /* |     /* | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ import defineTrigger from '../../../../helpers/define-trigger'; | |||||||
| import { GITLAB_EVENT_TYPE } from '../types'; | import { GITLAB_EVENT_TYPE } from '../types'; | ||||||
| import { | import { | ||||||
|   getRegisterHookFn, |   getRegisterHookFn, | ||||||
|   getRunFn, |  | ||||||
|   getTestRunFn, |   getTestRunFn, | ||||||
|   projectArgumentDescriptor, |   projectArgumentDescriptor, | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
| @@ -19,7 +18,6 @@ export const triggerDescriptor: IRawTrigger = { | |||||||
|   key: GITLAB_EVENT_TYPE.merge_requests_events, |   key: GITLAB_EVENT_TYPE.merge_requests_events, | ||||||
|   type: 'webhook', |   type: 'webhook', | ||||||
|   arguments: [projectArgumentDescriptor], |   arguments: [projectArgumentDescriptor], | ||||||
|   run: ($) => getRunFn($), |  | ||||||
|   testRun: getTestRunFn(data), |   testRun: getTestRunFn(data), | ||||||
|   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.merge_requests_events), |   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.merge_requests_events), | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ import defineTrigger from '../../../../helpers/define-trigger'; | |||||||
| import { GITLAB_EVENT_TYPE } from '../types'; | import { GITLAB_EVENT_TYPE } from '../types'; | ||||||
| import { | import { | ||||||
|   getRegisterHookFn, |   getRegisterHookFn, | ||||||
|   getRunFn, |  | ||||||
|   getTestRunFn, |   getTestRunFn, | ||||||
|   projectArgumentDescriptor, |   projectArgumentDescriptor, | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
| @@ -19,7 +18,6 @@ export const triggerDescriptor: IRawTrigger = { | |||||||
|   key: GITLAB_EVENT_TYPE.note_events, |   key: GITLAB_EVENT_TYPE.note_events, | ||||||
|   type: 'webhook', |   type: 'webhook', | ||||||
|   arguments: [projectArgumentDescriptor], |   arguments: [projectArgumentDescriptor], | ||||||
|   run: ($) => getRunFn($), |  | ||||||
|   testRun: getTestRunFn(data), |   testRun: getTestRunFn(data), | ||||||
|   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.note_events), |   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.note_events), | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ import defineTrigger from '../../../../helpers/define-trigger'; | |||||||
| import { GITLAB_EVENT_TYPE } from '../types'; | import { GITLAB_EVENT_TYPE } from '../types'; | ||||||
| import { | import { | ||||||
|   getRegisterHookFn, |   getRegisterHookFn, | ||||||
|   getRunFn, |  | ||||||
|   getTestRunFn, |   getTestRunFn, | ||||||
|   projectArgumentDescriptor, |   projectArgumentDescriptor, | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
| @@ -19,7 +18,6 @@ export const triggerDescriptor: IRawTrigger = { | |||||||
|   key: GITLAB_EVENT_TYPE.pipeline_events, |   key: GITLAB_EVENT_TYPE.pipeline_events, | ||||||
|   type: 'webhook', |   type: 'webhook', | ||||||
|   arguments: [projectArgumentDescriptor], |   arguments: [projectArgumentDescriptor], | ||||||
|   run: ($) => getRunFn($), |  | ||||||
|   testRun: getTestRunFn(data), |   testRun: getTestRunFn(data), | ||||||
|   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.pipeline_events), |   registerHook: getRegisterHookFn(GITLAB_EVENT_TYPE.pipeline_events), | ||||||
|   unregisterHook, |   unregisterHook, | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user