Iván Ovejero
dff8456382
refactor(core): Reorganize error hierarchy in core
and workflow
packages (no-changelog) ( #7820 )
...
Ensure all errors in `core` and `workflow` inherit from
`ApplicationError` so that we start normalizing all the errors we report
to Sentry
Follow-up to:
https://github.com/n8n-io/n8n/pull/7757#discussion_r1404338844
### `core` package
`ApplicationError`
- `FileSystemError` (abstract)
- `FileNotFoundError`
- `DisallowedFilepathError`
- `BinaryDataError` (abstract)
- `InvalidModeError`
- `InvalidManagerError`
- `InvalidExecutionMetadataError`
### `workflow` package
`ApplicationError`
- `ExecutionBaseError` (abstract)
- `WorkflowActivationError`
- `WorkflowDeactivationError`
- `WebhookTakenError`
- `WorkflowOperationError`
- `SubworkflowOperationError`
- `CliWorkflowOperationError`
- `ExpressionError`
- `ExpressionExtensionError`
- `NodeError` (abstract)
- `NodeOperationError`
- `NodeApiError`
- `NodeSSLError`
Up next:
- Reorganize errors in `cli`
- Flatten the hierarchy in `workflow` (do we really need
`ExecutionBaseError`?)
- Remove `ExecutionError` type
- Stop throwing plain `Error`s
- Replace `severity` with `level`
- Add node and credential types as `tags`
- Add workflow IDs and execution IDs as `extras`
2023-11-27 15:33:21 +01:00
Elias Meire
a9ab73896e
fix(HubSpot Node): Fetching available parameters fails when using expressions ( #7672 )
...
This fix affects all nodes, will fix this issue in all nodes
Github issue / Community forum post (link here to close automatically):
Co-authored-by: Michael Kret <michael.k@radency.com>
2023-11-13 12:28:55 +01:00
Michael Kret
1c7225ebdb
feat(core): Expression function $ifEmpty ( #7660 )
...
Github issue / Community forum post (link here to close automatically):
---------
Co-authored-by: Elias Meire <elias@meire.dev>
2023-11-13 13:28:41 +02:00
कारतोफ्फेलस्क्रिप्ट™
35bb42c1b9
refactor(core): Avoid passing around static state like default timezone (no-changelog) ( #7221 )
2023-10-27 14:17:52 +02:00
कारतोफ्फेलस्क्रिप्ट™
05586a900d
refactor(core): Make Logger a service (no-changelog) ( #7494 )
2023-10-25 16:35:22 +02:00
कारतोफ्फेलस्क्रिप्ट™
b6de910cbe
refactor(core): Abstract away InstanceSettings and encryptionKey
into injectable services (no-changelog) ( #7471 )
...
This change ensures that things like `encryptionKey` and `instanceId`
are always available directly where they are needed, instead of passing
them around throughout the code.
2023-10-23 13:39:35 +02:00
कारतोफ्फेलस्क्रिप्ट™
2b075bfc2d
fix(editor): Sanitize HTML binary-data before rendering in the UI ( #7400 )
2023-10-11 12:09:19 +02:00
कारतोफ्फेलस्क्रिप्ट™
8187be1b7d
feat(editor): Make PDF and Audio binary-data viewable in the UI ( #7367 )
...
fixes #7361
2023-10-09 17:43:57 +02:00
Val
bf74f09d69
feat(core): Add Tournament as the new default expression evaluator ( #6964 )
...
Github issue / Community forum post (link here to close automatically):
---------
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-21 13:57:45 +01:00
Alex Grozav
ed927d34b2
feat: External Secrets storage for credentials ( #6477 )
...
Github issue / Community forum post (link here to close automatically):
---------
Co-authored-by: Romain Minaud <romain.minaud@gmail.com>
Co-authored-by: Valya Bullions <valya@n8n.io>
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
2023-08-25 10:33:46 +02:00
Iván Ovejero
7ce5d8fd90
refactor: Upgrade to Prettier 3 (no-changelog) ( #6947 )
...
Supersedes https://github.com/n8n-io/n8n/pull/6937
Excluding fixtures and test workflow JSONs to avoid having to update
tests.
2023-08-16 17:13:57 +02:00
Michael Kret
3adb0b66ea
feat(core): Descriptive message for common nodeJS errors ( #6841 )
2023-08-14 22:12:35 +03:00
कारतोफ्फेलस्क्रिप्ट™
732416f52f
fix(core): Fix property existence checks on AugmentObject ( #6842 )
...
Fixes https://community.n8n.io/t/code-node-returns-full-item-object-on-node-all/28823
2023-08-03 12:19:30 +02:00
Iván Ovejero
72523462ea
refactor: Clear unused ESLint directives from BE packages (no-changelog) ( #6798 )
2023-07-31 11:00:48 +02:00
कारतोफ्फेलस्क्रिप्ट™
bf351243df
fix(Code Node): Install python modules always in a user-writable folder ( #6568 )
...
* upgrade pyodide
* install pyodide modules to a custom user-writable path
* in `augmentObject` `newData` is never undefined
2023-07-07 16:43:45 +02:00
Ricardo Espinoza
3db2707b8e
fix: Show error when referencing node that exist but has not been executed ( #6496 )
...
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-06-23 01:45:54 +02:00
Iván Ovejero
85372aabdf
fix(core)!: Make date extensions outputs match inputs ( #6435 )
2023-06-22 21:05:04 +02:00
Iván Ovejero
1197811a1e
fix(core)!: Allow syntax errors and expression errors to fail executions ( #6352 )
...
* fix: Unify expression error behavior for v1
* fix: Add `package.json` to `tsconfig.build.json`
* fix: Make `isFrontend` a constant
* fix: Use CommonJS require to read version
* fix: Use `JSON.parse()` and `fs.readFileSync()`
* feat(editor): Make WF name a link on /executions (#6354 )
* make wf name a link in exec view
* link color
* make wf name a link in exec view
* link color
---------
Co-authored-by: Alex Grozav <alex@grozav.com>
* fix: Try restoring inclusions in tsconfig files
* fix: Try with copy
* refactor: Switch base branch and remove global toggle
* chore: Remove unrelated changes
* chore: Restore lockfile
* fix: Ensure all expression errors fail executions
* uncaught ExpressionErrors should not fail e2e tests
---------
Co-authored-by: romainminaud <romain.minaud@gmail.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-06-22 21:04:59 +02:00
Chris Wu
1111c915f2
refactor(core): Replace lodash's "soft-deprecated" individual packages with lodash
to resolve CVE (no-changelog) ( #6450 )
...
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-06-16 16:26:35 +02:00
कारतोफ्फेलस्क्रिप्ट™
da7ae2beef
fix(core): Prevent arbitrary code execution via expressions ( #6420 )
2023-06-14 13:15:27 +02:00
Milorad FIlipović
04cfa548af
feat(editor): Implement Resource Mapper component ( #6207 )
...
* ⚡ scaffolding
* ⚡ finished scaffolding
* ⚡ renamed types
* ⚡ updated subtitle
* ⚡ renamed functions file, UI updates
* ⚡ query parameters fixes, ui updates, refactoring
* ⚡ fixes for credentials test, setup for error parsing
* ⚡ rlc for schema and table, error handling tweaks
* ⚡ delete operation, new options
* ⚡ columns loader
* ⚡ linter fixes
* ⚡ where clauses setup
* ⚡ logic for processing where clauses
* ⚡ select operation
* ⚡ refactoring
* ⚡ data mode for insert and update, wip
* ⚡ data mapping, insert update, skip on conflict option
* ⚡ select columns with spaces fix
* ⚡ update operation update, wip
* ⚡ finished update operation
* ⚡ upsert operation
* ⚡ ui fixes
* Copy updates.
* Copy updates.
* ⚡ option to convert empty strings to nulls, schema checks
* ⚡ UI requested updates
* ⚡ ssh setup WIP
* ⚡ fixes, ssh WIP
* ⚡ ssh fixes, credentials
* ⚡ credentials testing update
* ⚡ uncaught error fix
* ⚡ clean up
* ⚡ address in use fix
* ⚡ improved error message
* ⚡ tests setup
* ⚡ unit tests wip
* ⚡ config files clean up
* ⚡ utils unit tests
* ⚡ refactoring
* ⚡ setup for testing operations, tests for deleteTable operation
* ⚡ executeQuery and insert operations tests
* ⚡ select, update, upsert operations tests
* ⚡ runQueries tests setup
* ⚡ hint to query
* Copy updates.
* ⚡ ui fixes
* ⚡ clean up
* ⚡ error message update
* ⚡ ui update
* Minor tweaks to query params decription.
* feat(Google Sheets Node): Implement Resource mapper in Google Sheets node (#5752 )
* ✨ Added initial resource mapping support in google sheets node
* ✨ Wired mapping API endpoint with node-specific logic for fetching mapping fields
* ✨ Implementing mapping fields logic for google sheets
* ✨ Updating Google Sheets execute methods to support resource mapper fields
* 🚧 Added initial version of `ResourceLocator` component
* 👌 Added `update` mode to resource mapper modes
* 👌 Addressing PR feedback
* 👌 Removing leftover const reference
* 👕 Fixing lint errors
* ⚡ singlton for conections
* ⚡ credentials test fix, clean up
* feat(Postgres Node): Add resource mapper to new version of Postgres node (#5814 )
* ⚡ scaffolding
* ⚡ finished scaffolding
* ⚡ renamed types
* ⚡ updated subtitle
* ⚡ renamed functions file, UI updates
* ⚡ query parameters fixes, ui updates, refactoring
* ⚡ fixes for credentials test, setup for error parsing
* ⚡ rlc for schema and table, error handling tweaks
* ⚡ delete operation, new options
* ⚡ columns loader
* ⚡ linter fixes
* ⚡ where clauses setup
* ⚡ logic for processing where clauses
* ⚡ select operation
* ⚡ refactoring
* ⚡ data mode for insert and update, wip
* ⚡ data mapping, insert update, skip on conflict option
* ⚡ select columns with spaces fix
* ⚡ update operation update, wip
* ⚡ finished update operation
* ⚡ upsert operation
* ⚡ ui fixes
* Copy updates.
* Copy updates.
* ⚡ option to convert empty strings to nulls, schema checks
* ⚡ UI requested updates
* ⚡ ssh setup WIP
* ⚡ fixes, ssh WIP
* ⚡ ssh fixes, credentials
* ⚡ credentials testing update
* ⚡ uncaught error fix
* ⚡ clean up
* ⚡ address in use fix
* ⚡ improved error message
* ⚡ tests setup
* ⚡ unit tests wip
* ⚡ config files clean up
* ⚡ utils unit tests
* ⚡ refactoring
* ⚡ setup for testing operations, tests for deleteTable operation
* ⚡ executeQuery and insert operations tests
* ⚡ select, update, upsert operations tests
* ⚡ runQueries tests setup
* ⚡ hint to query
* Copy updates.
* ⚡ ui fixes
* ⚡ clean up
* ⚡ error message update
* ⚡ ui update
* Minor tweaks to query params decription.
* ✨ Updated Postgres node to use resource mapper component
* ✨ Implemented postgres <-> resource mapper type mapping
* ✨ Updated Postgres node execution to use resource mapper fields in v3
* 🔥 Removing unused import
---------
Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
* feat(core): Resource editor componend P0 (#5970 )
* ✨ Added inital value of mapping mode dropdown
* ✨ Finished mapping mode selector
* ✨ Finished implementing mapping mode selector
* ✨ Implemented 'Columns to match on' dropdown
* ✨ Implemented `loadOptionsDependOn` support in resource mapper
* ✨ Implemented initial version of mapping fields
* ✨ Implementing dependant fields watcher in new component setup
* ✨ Generating correct resource mapper field types. Added `supportAutoMap` to node specification and UI. Not showing fields with `display=false`. Pre-selecting matching columns if it's the only one
* ✨ Handling matching columns correctly in UI
* ✨ Saving and loading resourceMapper values in component
* ✨ Implemented proper data saving and loading
* ✨ ResourceMapper component refactor, fixing value save/load
* ✨ Refactoring MatchingColumnSelect component. Updating Sheets node to use single key match and Postgres to use multi key
* ✨ Updated Google Sheets node to work with the new UI
* ✨ Updating Postgres Node to work with new UI
* ✨ Additional loading indicator that shown if there is no mapping mode selector
* ✨ Removing hard-coded values, fixing matching columns ordering, refactoring
* ✨ Updating field names in nodes
* ✨ Fixing minor UI issues
* ✨ Implemented matching fields filter logic
* ✨ Moving loading label outside of fields list
* ✅ Added initial unit tests for resource mapper
* ✅ Finished default rendering test
* ✅ Test refactoring
* ✅ Finished unit tests
* 🔨 Updating the way i18n is used in resource mapper components
* ✔️ Fixing value to match on logic for postgres node
* ✨ Hiding mapping fields when auto-map mode is selected
* ✨ Syncing selected mapping mode between components
* ✨ Fixing dateTime input rendering and adding update check to Postgres node
* ✨ Properly handling database connections. Sending null for empty string values.
* 💄 Updated wording in the error message for non-existing rows
* ✨ Fixing issues with selected matching values
* ✔️ Updating unit tests after matching logic update
* ✨ Updating matching columns when new fields are loaded
* ✨ Defaulting to null for empty parameter values
* ✨ Allowing zero as valid value for number imputs
* ✨ Updated list of types that use datepicker as widger
* ✨ Using text inputs for time types
* ✨ Initial mapping field rework
* ✨ Added new component for mapping fields, moved bit of logic from root component to matching selector, fixing some lint errors
* ✨ Added tooltip for columns that cannot be deleted
* ✨ Saving deleted values in parameter value
* ✨ Implemented control to add/remove mapping fields
* ✨ Syncing field list with add field dropdown when changing dependent values
* ✨ Not showing removed fields in matching columns selector. Updating wording in matching columns selector description
* ✨ Implementing disabled states for add/remove all fields options
* ✨ Saving removed columns separately, updating copy
* ✨ Implemented resource mapper values validation
* ✨ Updated validation logic and error input styling
* ✨ Validating resource mapper fields when new nodes are added
* ✨ Using node field words in validation, refactoring resource mapper component
* ✨ Implemented schema syncing and add/remove all fields
* ✨ Implemented custom parameter actions
* ✨ Implemented loading indicator in parameter options
* 🔨 Removing unnecessary constants and vue props
* ✨ Handling default values properly
* ✨ Fixing validation logic
* 👕 Fixing lint errors
* ⚡ Fixing type issues
* ⚡ Not showing fields by default if `addAllFields` is set to `false`
* ✨ Implemented field type validation in resource mapper
* ✨ Updated casing in copy, removed all/remove all option from bottom menu
* ✨ Added auto mapping mode notice
* ✨ Added support for more types in validation
* ✨ Added support for enumerated values
* ✨ Fixing imports after merging
* ✨ Not showing removed fields in matching columns selector. Refactoring validation logic.
* 👕 Fixing imports
* ✔️ Updating unit tests
* ✅ Added resource mapper schema tests
* ⚡ Removing `match` from resource mapper field definition, fixing matching columns loading
* ⚡ Fixed schema merging
* ⚡ update operation return data fix
* ⚡ review
* 🐛 Added missing import
* 💄 Updating parameter actions icon based on the ui review
* 💄 Updating word capitalisation in tooltips
* 💄 Added empty state to mapping fields list
* 💄 Removing asterisk from fields, updating tooltips for matching fields
* ⚡ Preventing matching fields from being removed by 'Remove All option'
* ⚡ Not showing hidden fields in the `Add field` dropdown
* ⚡ Added support for custom matching columns labels
* ⚡ query optimization
* ⚡ fix
* ⚡ Optimizing Postgres node enumeration logic
* ⚡ Added empty state for matching columns
* ⚡ Only fully loading fields if there is no schema fetched
* ⚡ Hiding mapping fields if there is no matching columns available in the schema
* ✔️ Fixing minor issues
* ✨ Implemented runtime type validation
* 🔨 Refactoring validation logic
* ✨ Implemented required check, added more custom messages
* ✨ Skipping boolean type in required check
* Type check improvements
* ✨ Only reloading fields if dependent values actually change
* ✨ Adding item index to validation error title
* ✨ Updating Postgres fetching logic, using resource mapper mode to determine if a field can be deleted
* ✨ Resetting field values when adding them via the addAll option
* ⚡ Using minor version (2.2) for new Postgres node
* ⚡ Implemented proper date validation and type casting
* 👕 Consolidating typing
* ✅ Added unit tests for type validations
* 👌 Addressing front-end review comments
* ⚡ More refactoring to address review changes
* ⚡ Updating leftover props
* ⚡ Added fallback for ISO dates with invalid timezones
* Added timestamp to datetime test cases
* ⚡ Reseting matching columns if operation changes
* ⚡ Not forcing auto-increment fields to be filled in in Postgres node. Handling null values
* 💄 Added a custom message for invalid dates
* ⚡ Better handling of JSON values
* ⚡ Updating codemirror readonly stauts based on component property, handling objects in json validation
* Deleting leftover console.log
* ⚡ Better time validation
* ⚡ Fixing build error after merging
* 👕 Fixing lint error
* ⚡ Updating node configuration values
* ⚡ Handling postgres arrays better
* ⚡ Handling SQL array syntax
* ⚡ Updating time validation rules to include timezone
* ⚡ Sending expressions that resolve to `null` or `undefined` by the resource mapper to delete cell content in Google Sheets
* ⚡ Allowing removed fields to be selected for match
* ⚡ Updated the query for fetching unique columns and primary keys
* ⚡ Optimizing the unique query
* ⚡ Setting timezone to all parsed dates
* ⚡ Addressing PR review feedback
* ⚡ Configuring Sheets node for production, minor vue component update
* New cases added to the TypeValidation test.
* ✅ Tweaking validation rules for arrays/objects and updating test cases
---------
Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
2023-05-31 11:56:09 +02:00
Michael Kret
700cc39cbc
fix(core): Better errors for common status codes fix
2023-05-03 12:45:44 +03:00
Michael Kret
8aedc03dda
fix(core): Assign Unknown Error only if message or description not present in error
2023-05-03 10:15:33 +03:00
Iván Ovejero
06fa6f1fb3
ci: Expand ESLint to tests in BE packages (no-changelog) ( #6147 )
...
* 🔧 Adjust base ESLint config
* 🔧 Adjust `lint` and `lintfix` in `nodes-base`
* 🔧 Include `test` and `utils` in `nodes-base`
* 📘 Convert JS tests to TS
* 👕 Apply lintfixes
2023-05-02 10:37:19 +02:00
Iván Ovejero
c99f158120
fix(core): Account for nodes with renamable content ( #6109 )
...
🐛 Account for nodes with renamable content
2023-05-02 09:37:49 +02:00
कारतोफ्फेलस्क्रिप्ट™
a3aba835a1
fix(core): Avoid using Object.keys
on Buffer and other non-plain objects ( #6131 )
...
* create a unified way to check if an object is empty
* avoid running `Object.keys` on Buffer objects, to avoid unnecessary memory usage
2023-04-28 13:05:48 +02:00
कारतोफ्फेलस्क्रिप्ट™
206b6b90b8
fix(core): Fix hasOwnProperty
on augmented objects ( #6124 )
...
N8N-6333
Fixes
- https://community.n8n.io/t/bug-faulty-javascript-being-implemented-in-the-code-node-after-update-to-v0-222-3/25346
- https://community.n8n.io/t/checking-for-value-in-webhook-body-with-hasownproperty/25068/11
2023-04-28 11:49:53 +02:00
कारतोफ्फेलस्क्रिप्ट™
a4eb46acc1
fix(core): Serialize dates and regexps when reading from augmented objects ( #6086 )
...
https://community.n8n.io/t/workflows-fail-when-triggered-but-succeed-when-run-manually/25575
2023-04-26 11:11:13 +02:00
OlegIvaniv
33fb73217d
fix(core): Improve domain and url matching for extractDomain and extractUrl ( #6010 )
...
* fix(core): Fix domain and url matching for isDomain/isUrl/extractDomain/extractUrl
* Document regex and include www in the domain
* Lint fix
2023-04-20 09:01:27 +02:00
कारतोफ्फेलस्क्रिप्ट™
6a1b7c306b
fix(core): augmentObject
should use existing property descriptors whenever possible ( #5872 )
...
* fix(core): Augmented objects should use existing property descriptors whenever possible
* add a test for non-enumerable keys
2023-04-03 17:19:12 +02:00
कारतोफ्फेलस्क्रिप्ट™
6c35ffa82c
fix(core): Handle Date and RegExp objects in AugmentObject ( #5809 )
2023-03-29 21:36:56 +02:00
कारतोफ्फेलस्क्रिप्ट™
4f91525022
fix(core): Handle Date and RegExp correctly in jsonStringify ( #5812 )
2023-03-29 21:10:19 +02:00
कारतोफ्फेलस्क्रिप्ट™
18efaf397a
fix(core): Do not mark duplicates as circular references in jsonStringify
( #5789 )
...
* fix(core): jsonStringify should not mark duplicates as circular references
* not mark duplicates as circular references in the code node as well
2023-03-27 16:22:59 +02:00
Michael Auerswald
b6d8a0f985
fix(core): Remove circular refs from Code and push msg ( #5741 )
...
* remove circular refs from code items (and lint fixes)
* cleanup
---------
* add some tests
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-03-21 15:34:30 +01:00
Jan Oberhauser
0876c38aae
feat(core): Augment data instead of copying it ( #5487 )
2023-03-16 15:14:34 +01:00
Val
39c871d514
test: Add expression transform tests ( #5497 ) (no-changelog)
...
test: add expression transform tests
2023-03-14 15:22:52 +00:00
Milorad FIlipović
0cf45bc4c8
fix(core): Fix data transformation function that are reported not to work properly ( #5338 )
...
* 🔥 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 472a77df5c
.
* 🧪 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`
* ✨ Using UTC to handle-dates on back-end
* ✅ Added more unit tests for date extensions
* ⚡ Not using `JSON.stringify` to render dates
* ⚡ Using `deep-equal` library instead of our `deepCompare` function
* ✅ Adding more tests to array extensions
* ⚡ Fixing `inBetween` extension function
* ✅ Added tests for `.inBetween()`
* ⚡ Updating `isEven` and `isOdd` to throw for floats
* ⚡ Updating `Array.merge()` so it works without arguments
* 🔀 Fixing leftover merge confilct
* ⚡ Updating `removeFieldsContaining` and `keepFieldsContaining` to throw on empty strings
* ⚡ Fixing `pluck()` so it returns only plucked values
* ⬆️ Updating pnpm lockfile
* 👕 Fixing lint errors
* ⚡ Using workflow timezone to display dates
* ✔️ Updating tests with workflow timezone
* ⚡ Not using system timezone when creating Luxon dates
* ⚡ Updating `merge()` and `pluck()` array functions
* 🔀 Sync with `master`: Removing code that was preserved during merge
* ⚡ Updating `.pluck()` to return full array if no arguments are passed
* ⚡ Updating `keepFieldsContaining` and `merge` object functions
* ⚡ Using week as default for `date.extract()`
* ✅ Adding more test cases for DT functions
* ⚡ Removing `Object.merge` extension function. Adding missing `deep-equal` dependency
* ⚡ Handling `toDate` case when time component is not specified
* ⚡ Using workflow's timezone to render dates in output panel, updated unit tests after removing `Object.merge` function
* ⚡ Not parsing numbers as dates
* 👕 Fixing lint errors
* ⚡ Fixing a typo
* ⚡ Making date detection more strict so only stringified dates are getting converted
* 👌 Addressing PR feedback
* 🔥 Removing leftover comment
---------
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2023-02-15 10:50:16 +01:00
Valya
287fa9cd06
test(core): Add basic expression tests (no-changelog) ( #5439 )
...
* test(core): add basic expression tests
* test: fix $if test not working properly
2023-02-10 10:05:34 +01:00
Valya
c7b58e0ed1
fix(core): Expression extension failing with optional chaining ( #5370 )
...
* wip
* fix: working optional chaining polyfill
* fix: polyfill optional chaining on extended functions
* test: add optional chaining tests
2023-02-09 13:57:45 +00: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 472a77df5c
.
* 🧪 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
Jan Oberhauser
b27a60b665
fix(core): Fix value resolution in declarative node design ( #5217 )
2023-02-01 08:25:43 -06:00
Valya
09bdd96d29
fix: Extension being too eager and making calls when it shouldn't ( #5232 )
...
fix: extension being too eager and making calls when it shouldn't
2023-01-24 12:04:50 +00:00
Valya
683492155e
fix: IsWeekend not checking if DateTime ( #5221 ) (no-changelog)
2023-01-23 14:28:17 +01:00
Valya
94be3b61cb
fix: Test failing for toDate from string extension test (no-changelog) ( #5142 )
2023-01-12 16:06:34 +01:00
Valya
3d05acf313
feat: Expression extension framework ( #4372 )
...
* ⚡ Introduce a framework for expression extension
* 💡 Add some inline comments
* ⚡ Introduce hash alias for encrypt
* ⚡ Introduce a manual granular level approach to shadowing/overrideing extensions
* 🔥 Cleanup comments
* ⚡ Introduce a basic method of extension for native functions
* ⚡ Add length to StringExtension
* ⚡ Add number type to extension return types
* ⚡ Temporarily introduce DateTime with extension
* ⚡ Cleanup comments
* ⚡ Organize imports
* ♻️ Fix up some typings
* ⚡ Fix typings
* ♻️ Remove unnecessary resolve of expression
* ⚡ Extensions Improvement
* ♻️ Refactor EXPRESSION_EXTENSION_METHODS
* ♻️ Refactor EXPRESSION_EXTENSION_METHODS
* ♻️ Update extraArgs types
* ♻️ Fix tests
* ♻️ Fix bind type issue
* ♻️ Fixing duration type issue
* ♻️ Refactor to allow overrides on native methods
* ♻️ Temporarily remove Date Extensions to pass tests
* feat(dt-functions): introduce date expression extensions (#4045 )
* 🎉 Add Date Extensions into the mix
* ✨ Introduce additional date extension methods
* ✅ Add Date Expression Extension tests
* 🔧 Add ability to debug tests
* ♻️ Refactor extension for native types
* 🔥 Move sayHi method to String Extension class
* ♻️ Update scope when binding member methods
* ✅ Add String Extension tests
* feat(dt-functions): introduce array expression extensions (#4044 )
* ✨ Introduce Array Extensions
* ✅ Add Array Expression tests
* feat(dt-functions): introduce number expression extensions (#4046 )
* 🎉 Introduce Number Extensions
* ⚡ Support more shared extensions
* ⚡ Improve handling of name collision
* ✅ Update tests
* Fixed up tests
* 🔥 Remove remove markdown
* :recylce: Replace remove-markdown dependencies with implementation
* ♻️ Replace remove-markdown dependencies with implementation
* ✅ Update tests
* ♻️ Fix scoping and cleanup
* ♻️ Update comments and errors
* ♻️ Fix linting errors
* ➖ Remove unused dependencies
* fix: expression extension not working with multiple extensions
* refactor: change extension transform to be more efficient
* test: update most test to work with new extend function
* fix: update and fix type error in config
* refactor: replace babel with recast
* feat: add hashing functions to string extension
* fix: removed export
* test: add extension parser and transform tests
* fix: vite tests breaking
* refactor: remove commented out code
* fix: parse dates passed from $json in extend function
* refactor: review feedback changes for date extensions
* refactor: review feedback changes for number extensions
* fix: date extension beginningOf test
* fix: broken build from merge
* fix: another merge issue
* refactor: address review feedback (remove ignores)
* feat: new extension functions and tests
* feat: non-dot notation functions
* test: most of the other tests
* fix: toSentenceCase for node versions below 16.6
* feat: add $if and $not expression extensions
* Fix test to work on every timezone
* lint: fix remaining lint issues
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
2023-01-10 14:06:12 +01:00
Iván Ovejero
0bd13c7173
fix(core): Make expression resolution improvements ( #4829 )
...
⚡ Make expression resolution improvements
2022-12-07 12:07:32 +01:00
कारतोफ्फेलस्क्रिप्ट™
0a7a2f3e41
fix: Lazy load nodes for credentials testing ( #4760 )
2022-11-30 10:28:18 +01:00
कारतोफ्फेलस्क्रिप्ट™
b6c57e19fc
feat(core): Lazy-load nodes and credentials to reduce baseline memory usage ( #4577 )
2022-11-23 16:20:28 +01:00
कारतोफ्फेलस्क्रिप्ट™
698d96a617
refactor: Setup typescript project references across workflow, core, and cli ( #4519 )
...
* refactor: use consistent folder structure across workflow, core, and cli
* setup typescript project references across workflow, core, and cli
2022-11-09 15:25:00 +01:00
कारतोफ्फेलस्क्रिप्ट™
b282c7e5d9
fix(core): make deepCopy
backward compatible ( #4505 )
...
* fix(core): make `deepCopy` backward compatible
`JSON.parse(JSON.stringify())` uses `.toJSON` when available. so should `deepCopy`
* fix(core): prevent double quotes on luxon datetimes (#4508 )
* 🐛 Prevent double quotes on luxon datetimes
* ⚡ Generalize solution
* update the types in packages/workflow/src/utils.ts
* add `toJSON` check to NodeErrors.isTraversableObject as well
* move the toJSON check before the cyclic dependency check
* fix(core): keep backward compatibility in deepCopy by calling `toJSON` on objects that have it
* fix(core): updating deepCopy typings
* Revert "fix(core): updating deepCopy typings"
This reverts commit 100a0f1f3d
.
* fix(core): temporarily removing Date cloning from deepCopy
* fix(core): updating deepCopy types
* fix(core): updating deepCopy
* fix(core): updating deepCopy get prototype of object
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
2022-11-02 17:44:12 +01:00