Commit Graph

17 Commits

Author SHA1 Message Date
Michael Kret
ed3bc154b0 refactor(editor): Stricter linting for promises and async functions (no-changelog) (#4642) 2023-05-10 18:10:03 +03:00
Iván Ovejero
d5c44987f4 refactor(editor): Add infix to Pinia stores (no-changelog) (#6149)
* ⚡ Add infix to Pinia stores

* ⚡ Fix paths in mocks

* 🐛 Fix import
2023-05-05 10:41:54 +02:00
Iván Ovejero
51f5990559 fix(editor): Fix quote handling on dollar-sign variable completions (#6128)
🐛 Fix quote handling on dollar-sign variable completions
2023-05-02 09:36:42 +02:00
Iván Ovejero
57aab63c10 refactor: Integrate consistent-type-imports in FE packages (no-changelog) (#6060)
* 👕 Move `consistent-type-imports` to top level

* 👕 Apply lintfixes

* 👕 Apply more lintfixes

* 👕 More lintfixes

* 👕 More lintfixes
2023-04-24 12:18:24 +02:00
Val
1bb987140a feat: Add variables feature (#5602)
* feat: add variables db models and migrations

* feat: variables api endpoints

* feat: add $variables to expressions

* test: fix ActiveWorkflowRunner tests failing

* test: a different fix for the tests broken by $variables

* feat: variables licensing

* fix: could create one extra variable than licensed for

* feat: Add Variables UI page and $vars global property (#5750)

* feat: add support for row slot to datatable

* feat: add variables create, read, update, delete

* feat: add vars autocomplete

* chore: remove alert

* feat: add variables autocomplete for code and expressions

* feat: add tests for variable components

* feat: add variables search and sort

* test: update tests for variables view

* chore: fix test and linting issue

* refactor: review changes

* feat: add variable creation telemetry

* fix: Improve variables listing and disabled case, fix resource sorting (no-changelog) (#5903)

* fix: Improve variables disabled experience and fix sorting

* fix: update action box margin

* test: update tests for variables row and datatable

* fix: Add ee controller to base controller

* fix: variables.ee routes not being added

* feat: add variables validation

* fix: fix vue-fragment bug that breaks everything

* chore: Update lock

* feat: Add variables input validation and permissions (no-changelog) (#5910)

* feat: add input validation

* feat: handle variables view for non-instance-owner users

* test: update variables tests

* fix: fix data-testid pattern

* feat: improve overflow styles

* test: fix variables row snapshot

* feat: update sorting to take newly created variables into account

* fix: fix list layout overflow

* fix: fix adding variables on page other than 1. fix validation

* feat: add docs link

* fix: fix default displayName function for resource-list-layout

* feat: improve vars expressions ux, cm-tooltip

* test: fix datatable test

* feat: add MATCH_REGEX validation rule

* fix: overhaul how datatable pagination selector works

* feat: update  completer description

* fix: conditionally update usage syntax based on key validation

* test: update datatable snapshot

* fix: fix variables-row button margins

* fix: fix pagination overflow

* test: Fix broken test

* test: Update snapshot

* fix: Remove duplicate declaration

* feat: add custom variables icon

---------

Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
2023-04-18 12:41:55 +02:00
Milorad FIlipović
11bf260bf1 fix(editor): Fix autocomplete for complex expresions (#5695)
* ✨ Fixing autocomplete for expressions as function arguments

* ✅ Added more autocomplete tests

* ⚡ Improving autocomplete for complex expressions

* ⚡ Handling complex operation expressions in autocomplete
2023-03-16 12:13:02 +01:00
कारतोफ्फेलस्क्रिप्ट™
4e244937c9 refactor: catch doesn't need to have a param (no-changelog) (#5614) 2023-03-03 18:18:49 +01:00
Milorad FIlipović
ae634407a4 feat(editor): Add missing documentation to autocomplete items for inline code editor (#5560)
* ⚡ Added documentation for extension functions with arguments

* ⚡ Adding custom autocomplete item types. This enables us to show different items with same labels.

* 📚 Adding missing info for extensions autocomplete items

* ⚡ Added Luxon autocomplete docs

* 💡 Completing Luxon static methods autocomplete documentation

* ⚡ Refactoring Luxon autocomplete logic

* ⚡ Handling the case when autocomplete item doesn't have defined inline documentation

* ⚡ Added correct doc info to Luxon instance properties

* ✨ Added missing documentation and notice footer for autocomplete popup.

* 👕 Fixing lint error

* ✔️ Removing `Object.hasOwn` function, since it's not supported in node v14
2023-02-28 07:34:03 +03:00
Milorad FIlipović
6592d144d1 feat(editor): Add most important native props and methods to autocomplete (#5486)
* ⚡ Implemented support for documentation links in autocomplete tooltips
* ⚡ Added support for arguments and code stying in autocomplete documentation. Added build-in string functions docs.
* ⚡ Added support for args without types in autocomplete, Added array native functions.
* ⚡ Added native Number and Object methods to autocomplete
* ⚡ Added support for native properties in autocomplete
* 📚 Added comment for next phase
* ✔️ Updating tests to account for native autocomplete options. Fixing lint errros.
* 👌 Addressing design review comments
* 🎨 Using design-system tokens instead of colors for autocomplete
2023-02-16 12:47:19 +01:00
Iván Ovejero
a07de049a2 feat(editor): Bring completions to HTML editor (#5382)
⚡ Bring completions to HTML editor
2023-02-09 09:41:07 +01:00
Iván Ovejero
d7b3923c2f feat(editor): Add Object global completions (#5407)
* ✏️ Add i18n info

* ⚡ Mount i18n keys

* ✏️ Fix typos in tests

* ✨ Add `Object` global completion

* ✨ Add `Object` global options completions

* 🧪 Add tests
2023-02-08 12:41:33 +01:00
Iván Ovejero
6d811f0d9f feat(editor): Completions for extensions in expression editor (#5130)
* 🔥 Remove test extensions

* 🚧 Add test description

* 📘 Expand types

* ⚡ Export extensions

* ⚡ Export collection

* ⚡ Mark all proxies

* ✏️ Rename for clarity

* ⚡ Export from barrel

* ✨ Create datatype completions

* ⚡ Mount datatype completions

* 🧪 Adjust tests

* ⚡ Add `path` prop

* 🔥 Remove `()` from completion labels

* ⚡ Filter out completions for pseudo-proxies

* 🐛 Fix method error

* ⚡ Add metrics

* ✏️ Improve naming

* ✨ Start completion on empty resolvable

* ✨ Implement completion previews

* ⚡ Break out completion manager

* ⚡ Implement in expression editor modal

* ✏️ Improve naming

* ⚡ Filter out irrelevant completions

* ✨ Add preview hint

* ✏️ Improve comments

* 🎨 Style preview hint

* ⚡ Expand `hasNoParams`

* ⚡ Add spacing for readability

* ⚡ Add error codes

* ✏️ Add comment

* 🐛 Fix Esc behavior

* ⚡ Parse Unicode

* ⚡ Throw on invalid `DateTime`

* ⚡ Fix second root completion detection

* ⚡ Switch message at completable prefix position

* 🐛 Fix function names for non-dev build

* 🐛 Fix `json` handling

* 🔥 Comment out previews

* ♻️ Apply feedback

* 🔥 Remove extensions

* 🚚 Rename extensions

* ⚡ Adjust some implementations

* 🔥 Remove dummy extensions

* 🐛 Fix object regex

* ♻️ Apply feedback

* ✏️ Fix typos

* ✏️ Add `fn is not a function` message

* 🔥 Remove check

* ✨ Add `isNotEmpty` for objects

* 🚚 Rename `global` to `alpha`

* 🔥 Remove `encrypt`

* ⚡ Restore `is not a function` error

* ⚡ Support `week` on `extract()`

* 🧪 Fix tests

* ⚡ Add validation to some string extensions

* ⚡ Validate number arrays in some extensions

* 🧪 Fix tests

* ✏️ Improve error message

* ⏪ Revert extensions framework changes

* 🧹 Previews cleanup

* ⚡ Condense blank completions

* ⚡ Refactor dollar completions

* ⚡ Refactor non-dollar completions

* ⚡ Refactor Luxon completions

* ⚡ Refactor datatype completions

* ⚡ Use `DATETIMEUNIT_MAP`

* ✏️ Update test description

* ⏪ Revert "Use `DATETIMEUNIT_MAP`"

This reverts commit 472a77df5cd789905d162f3c3db02ac767b89b4e.

* 🧪 Add tests

* ♻️ Restore generic extensions

* 🔥 Remove logs

* 🧪 Expand tests

* ✨ Add `Math` completions

* ✏️ List breaking change

* ⚡ Add doc tooltips

* 🐛 Fix node selector regex

* 🐛 Fix `context` resolution

* 🐛 Allow dollar completions in args

* ⚡ Make numeric array methods context-dependent

* 📝 Adjust docs

* 🐛 Fix selector ref

* ⚡ Surface error for valid URL

* 🐛 Disallow whitespace in `isEmail` check

* 🧪 Fix test for `isUrl`

* ⚡ Add comma validator in `toFloat`

* ⚡ Add validation to `$jmespath()`

* ⏪ Revert valid URL error

* ⚡ Adjust `$jmespath()` validation

* 🧪 Adjust `isUrl` test

* ⚡ Remove `{}` and `[]` from compact

* ✏️ Update docs

* 🚚 Rename `stripTags` to `removeTags`

* ⚡ Do not inject whitespace inside resolvable

* ⚡ Make completions aware of `()`

* ✏️ Add note

* ⚡ Update sorting

* ⚡ Hide active node name from node selector

* 🔥 Remove `length()` and its aliases

* ⚡ Validate non-zero for `chunk`

* ✏️ Reword all error messages

* 🐛 Fix `$now` and `$today`

* ⚡ Simplify with `stripExcessParens`

* ⚡ Fold luxon into datatype

* 🧪 Clean up tests

* 🔥 Remove tests for removed methods

* 👕 Fix type

* ⬆️ Upgrade lang pack

* ⏪ Undo change to `vitest` command

* 🔥 Remove unused method

* ⚡ Separate `return` line

* ✏️ Improve description

* 🧪 Expand tests for initial-only completions

* 🧪 Add bracket-aware completions

* ⚡ Make check for `all()` stricter

* ✏️ Adjust explanatory comments

* 🔥 Remove unneded copy

* 🔥 Remove outdated comment

* ⚡ Make naming consistent

* ✏️ Update comments

* ⚡ Improve URL scheme check

* ✏️ Add comment

* 🚚 Move extension

* ✏️ Update `BREAKING-CHANGES.md`

* ✏️ Update upcoming version

* ✏️ Fix grammar

* ✏️ Shorten message

* 🐛 Fix `Esc` behavior

* 🐛 Fix `isNumeric`

* ✨ Support native methods

* 🧪 Skip Pinia tests

* ✏️ Shorten description

* 🔥 Remove outdated comment

* 🧪 Unskip Pinia tests

* ✏️ Add comments

* 🧪 Expand tests to natives

* ✏️ Add clarifying comments

* ⚡ Use `setTimeout` to make telemetry non-blocking

* 🐛 Account for no active node in cred modal

* ✨ Resolve without workflow

* 🔥 Remove `Esc` handling on NDV

* ⚡ Use `isDateTime`

* 🚚 Move `unique` to next phase

This array extension takes optional args.

* ⚡ Merge export

* 🧪 Fix tests

* ⏪ Restore check

* ✏️ Make breaking change description more accurate

* 🧪 Fix e2e tests
2023-02-02 12:35:38 +01:00
Iván Ovejero
74e6f5d190 feat: HTML node (#5107)
* ✨ Create HTML templating node PoC

* ♻️ Apply feedback

* 🐛 Scope CSS selectors

* ✏️ Adjust description

* ✏️ Adjust placeholder

* ⚡ Replace two custom files with package output

* ➕ Add `codemirror-lang-html-n8n`

* 👕 Appease linter

* 🧪 Skip event bus tests

* ⏪ Revert "Skip event bus tests"

This reverts commit 5702585d0de3b8465660567132e9003e78f1104c.

* ✏️ Update codex

* 🧹 Cleanup

* 🐛 Restore original for `continueOnFail`

* ⚡ Improve `getResolvables`
2023-01-26 10:03:13 +01:00
Iván Ovejero
320e646380 fix(editor): Omit pairedItem from proxy completions (#5098)
* ⚡ Omit `pairedItem` from proxy completions

* 🧪 Fix tests
2023-01-09 11:44:52 +01:00
Iván Ovejero
f4140d011f feat(editor): Introduce proxy completions to expressions (#5075)
* ⚡ Introduce proxy completions to expressions

* 🧪 Add tests

* ⚡ Replace snippet with alphabetic char completions

* ⚡ Tighten `DateTime` check

* 🧹 Clean up `n8nLang`

* 🔥 Remove duplicate

* 👕 Remove non-null assertion

* ⚡ Confirm that `overlay` is needed

* 🔥 Remove comment

* 🔥 Remove more unneeded code

* 🔥 Remove unneded Pinia setup

* ⚡ Simplify syntax
2023-01-06 10:07:36 +01:00
Iván Ovejero
52077e2c45 feat(editor): Improve UX for brace completion from selection (#5024)
⚡ Improve UX for brace completion from selection
2022-12-27 09:21:32 +01:00
Iván Ovejero
a1259898c0 feat(editor): Inline expression editor (#4814)
* WIP

* 🔥 Remove unneeded watch

* ⚡ Further setup

* ⚡ Fix import

* ⚡ Minor tweaks

* 🔥 Remove logging

* 🎨 Add some styling

* 🎨 More styling changes

* 🐛 Fix wrong marking of stale data

* 🎨 Prevent fx on dragging

* 🔥 Remove logging

* ⚡ Refine draggable target offsets

* refactor(editor): Consolidate expression management logic (#4836)

* ⚡ Extract `ExpressionFunctionIcon`

* ⚡ Simplify syntax

* ⚡ Move to mixin

* 🎨 Format

* 📘 Unify types

* ⚡ Dedup double brace handler

* ⚡ Consolidate resolvable highlighter

* 🎨 Format

* ⚡ Consolidate language pack

* ✏️ Add comment

* ⚡ Move completions to plugins

* ⚡ Partially deduplicate themes

* refactor(editor): Apply styling feedback to inline expression editor (#4846)

* 🎨 Adjust styling for expression parameter input

* 🎨 Style outputs differently

* ⚡ Set single line for RLC

* 🎨 Style both openers identically

* 🐛 Prevent defocus on resize

* ⚡ Adjust line height

* 🎨 Adjust border with for expression input

* ⚡ Fix font family for inline output

* ⚡ Set up telemetry

* ⚡ Complete telemetry

* ⚡ Simplify event source

* ⚡ Set monospaced font for inline output

* 🎨 Hide cursor on schema pill drop

* 🧪 Update snapshots

* ⚡ Consolidate editor styles

* ✏️ Add tech debt comments

* ⚡ Improve naming

* ⚡ Improve inside resolvable detection

* ⚡ Improve var naming

* 🔥 Remove outdated comment

* 🚚 Move constant to data

* ✏️ Clarify comments

* 🔥 Remove outdated comments

* 🔥 Remove unneeded try-catch

* 🔥 Remove unneeded method

* 🔥 Remove unneeded check

* 🔥 Remove `openExpression` check

* 🔥 Remove unused timeout

* 🔥 Remove commented out sections

* ⚡ Use Pinia naming convention

* ⚡ Re-evaluate on change of `ndvInputData`

* 🐛 Fix handling of `0` in number-type input

* 🐛 Surface focus and blur for mapping hints

* 🔥 Remove logging

* ✏️ Reword error

* ⚡ Change kebab-case to PascalCase

* ⚡ Refactor state fields for clarity

* ⚡ Support double bracing on selection

* 🎨 More styling

* ⚡ Miscellaneous cleanup

* ⚡ Disregard error on drop

* 🎨 Fix schema pill styling

* 🎨 More `background` to `background-color` fixes

* 🧪 Update snapshots

* 🎨 Replace non-existing var with white

* 🧪 Update snapshot

* 📦 Integrate `codemirror-lang-n8n-expression`

* 🎨 Fix formatting

* 🧪 Re-update test snapshots

* 🧪 Update selectors for inline editor

* 🔥 Remove unused test ID

* 📘 Add type for `currentNodePaneType`

* ⚡ Refactor mixin to util

* ⚡ Use `:global`

* 🔥 Remove comment

* ⚡ Add watch

* ⚡ Change import style

* 👕 Fix lint

* ⚡ Refactor preventing blur on resize

* 🔥 Remove comment

* 🧪 Re-update snapshots

* 🎨 Prettify

* 👕 Fix lint

* 🔥 Remove comment

Co-authored-by: Mutasem <mutdmour@gmail.com>
2022-12-14 14:43:02 +01:00