Iván Ovejero
62c096710f
refactor: Run lintfix
(no-changelog) ( #7537 )
...
- Fix autofixable violations
- Remove unused directives
- Allow for PascalCased variables - needed for dynamically imported or
assigned classes, decorators, routers, etc.
2023-10-27 14:15:02 +02:00
Iván Ovejero
6d6e2488c6
refactor(core): Generalize binary data manager interface (no-changelog) ( #7164 )
...
Depends on: #7092 | Story:
[PAY-768](https://linear.app/n8n/issue/PAY-768 )
This PR:
- Generalizes the `IBinaryDataManager` interface.
- Adjusts `Filesystem.ts` to satisfy the interface.
- Sets up an S3 client stub to be filled in in the next PR.
- Turns `BinaryDataManager` into an injectable service.
- Adjusts the config schema and adds new validators.
Note that the PR looks large but all the main changes are in
`packages/core/src/binaryData`.
Out of scope:
- `BinaryDataManager` (now `BinaryDataService`) and `Filesystem.ts` (now
`fs.client.ts`) were slightly refactored for maintainability, but fully
overhauling them is **not** the focus of this PR, which is meant to
clear the way for the S3 implementation. Future improvements for these
two should include setting up a backwards-compatible dir structure that
makes it easier to locate binary data files to delete, removing
duplication, simplifying cloning methods, using integers for binary data
size instead of `prettyBytes()`, writing tests for existing binary data
logic, etc.
---------
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-22 17:22:12 +02:00
Michael Kret
3a474552b2
feat(Set Node): Overhaul ( #6348 )
...
Github issue / Community forum post (link here to close automatically):
https://github.com/n8n-io/n8n/pull/6348
---------
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
Co-authored-by: Marcus <marcus@n8n.io>
2023-09-19 13:16:35 +03:00
कारतोफ्फेलस्क्रिप्ट™
36a8e911e6
fix(Code Node): Disable WASM to address CVE-2023-37903 ( #7122 )
...
[GH Advisory](https://github.com/advisories/GHSA-g644-9gfx-q4q4 )
2023-09-06 16:11:39 +02:00
कारतोफ्फेलस्क्रिप्ट™
6aa7b93473
refactor(core): Deprecate prepareOutputData
(no-changelog) ( #7091 )
2023-09-05 12:59:02 +02:00
कारतोफ्फेलस्क्रिप्ट™
dfe0fa65f8
fix(Code Node): Switch over to vm2 fork ( #7018 )
...
[Fork is here](https://github.com/n8n-io/vm2 ). Currently there are no
modifications in it.
2023-08-30 11:17:04 +02:00
कारतोफ्फेलस्क्रिप्ट™
0356419c1a
feat(Code Node)!: Add a flag to disable forwarding of code logging to stdout ( #6966 )
2023-08-25 14:23:23 +02:00
Ian Gallagher
258e0ebb0f
docs(Code Node): Update description to include Python (no-changelog) ( #6904 )
2023-08-10 11:23:58 +01:00
कारतोफ्फेलस्क्रिप्ट™
f718c2291f
fix(Code Node): Consistent redirection of stdout for JS and Python sandboxes ( #6818 )
...
Co-authored-by: Marcus <marcus@n8n.io>
2023-08-01 17:47:43 +02:00
Iván Ovejero
24ce141815
refactor: Clear unused ESLint directives from nodes-base (no-changelog) ( #6812 )
...
* refactor: Clear unused ESLint directives from nodes-base (no-changelog)
* removed unused disable directives
---------
Co-authored-by: Marcus <marcus@n8n.io>
2023-08-01 15:32:33 +02:00
कारतोफ्फेलस्क्रिप्ट™
e57e85edf7
refactor: Delete unnecessary interface re-exports from core, and delete unused code in nodes-base (no-changelog) ( #6631 )
2023-07-12 11:15:38 +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
कारतोफ्फेलस्क्रिप्ट™
f6366160a4
feat(core): Remove conditional defaults in V1 release ( #6363 )
2023-06-22 19:54:32 +02:00
कारतोफ्फेलस्क्रिप्ट™
54e3838dae
fix(Code Node): Fix item
and items
alias regression ( #6331 )
2023-05-30 12:56:55 +02:00
कारतोफ्फेलस्क्रिप्ट™
bcbec52552
fix(Code Node): Update vm2 to address CVE-2023-32313 ( #6318 )
...
GH advisory: https://github.com/advisories/GHSA-p5gc-c584-jj6v
2023-05-25 12:55:53 +02:00
Jon
e72d564bf8
fix(Code Node): Restore help text ( #6231 )
2023-05-11 15:44:43 +01:00
कारतोफ्फेलस्क्रिप्ट™
18b60c4170
feat(Code Node): Set defaultVersion
to 2 for V1 RC builds (no-changelog) ( #6209 )
...
This will enable python in the Code node.
2023-05-09 17:28:30 +02:00
कारतोफ्फेलस्क्रिप्ट™
394c9a2731
ci: Fix linting issues on master (no-changelog) ( #6186 )
2023-05-05 10:22:49 +02:00
Jan Oberhauser
35c8510ab6
feat(Code Node): Add Python support ( #4295 )
2023-05-04 20:00:00 +02:00
कारतोफ्फेलस्क्रिप्ट™
308a94311f
refactor: Async functions don't need to explicitly return promises (no-changelog) ( #6041 )
2023-04-24 13:17:08 +02:00
कारतोफ्फेलस्क्रिप्ट™
f9b3aeac44
refactor(Code Node): Constently handle various kinds of data returned by user code ( #6002 )
2023-04-19 13:09:46 +02:00
कारतोफ्फेलस्क्रिप्ट™
a3664de355
fix(Code Node): Handle user code returning null
and undefined
( #5989 )
...
fixes https://community.n8n.io/t/cannot-convert-undefined-or-null-to-object/25240
2023-04-17 16:43:39 +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
कारतोफ्फेलस्क्रिप्ट™
7a4e9ef5fa
refactor: Remove n8n-core dependency in nodes-base (no-changelog) ( #5649 )
2023-03-09 18:13:15 +01:00
Michael Kret
bb4db58819
fix(core): Remove linting exceptions in nodes-base, @typescript-eslint/no-unsafe-argument (no-changelog)
2023-02-28 05:39:43 +02:00
Marcus
3e2d76ec79
test(Code Node): Unit tests (no-changelog) ( #5373 )
...
* ⚡ test setup
* ⚡ ️basic test with run once for all and each items
* 🎨 fix linting error
* ⚡ ️update to new Helper.setup(tests)
* ⚡ migrate tests to pin data approach
2023-02-09 13:56:39 +01:00
Iván Ovejero
0f228a60ba
refactor(Code Node): Remove disallowed syntax checks ( #5332 )
...
🔥 Remove disallowed syntax checks in Code node
2023-02-02 10:11:36 +01:00
Iván Ovejero
b03e358a12
refactor: Integrate consistent-type-imports
in nodes-base (no-changelog) ( #5267 )
...
* 👕 Enable `consistent-type-imports` for nodes-base
* 👕 Apply to nodes-base
* ⏪ Undo unrelated changes
* 🚚 Move to `.eslintrc.js` in nodes-base
* ⏪ Revert "Enable `consistent-type-imports` for nodes-base"
This reverts commit 529ad72b05
.
* 👕 Fix severity
2023-01-27 12:22:44 +01:00
Michael Kret
6608e69457
refactor(core): Remove linting exceptions in nodes-base (no-changelog) ( #4944 )
2023-01-13 18:11:56 +01:00
Iván Ovejero
915f1445c2
fix(Code Node): Restore pairedItem
to required n8n item keys ( #4821 )
...
🐛 Restore `pairedItem`
2022-12-05 17:53:16 +01:00
Iván Ovejero
46d4c4d329
refactor(Code Node): Limit n8n item key check ( #4737 )
...
⚡ Limit n8n item key check
2022-12-05 10:59:26 +01:00
Michael Kret
61e26804ba
refactor(core): Remove linting exceptions in nodes-base ( #4794 )
...
* ⚡ enabled array-type
* ⚡ await-thenable on
* ⚡ ban-types on
* ⚡ default-param-last on
* ⚡ dot-notation on
* ⚡ member-delimiter-style on
* ⚡ no-duplicate-imports on
* ⚡ no-empty-interface on
* ⚡ no-floating-promises on
* ⚡ no-for-in-array on
* ⚡ no-invalid-void-type on
* ⚡ no-loop-func on
* ⚡ no-shadow on
* ⚡ ban-ts-comment re enabled
* ⚡ @typescript-eslint/lines-between-class-members on
* address my own comment
* @typescript-eslint/return-await on
* @typescript-eslint/promise-function-async on
* @typescript-eslint/no-unnecessary-boolean-literal-compare on
* @typescript-eslint/no-unnecessary-type-assertion on
* prefer-const on
* @typescript-eslint/prefer-optional-chain on
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2022-12-02 21:54:28 +01:00
Iván Ovejero
cfd32d2642
refactor: Phase out TSLint in nodes-base
(no-changelog) ( #4798 )
...
* 🔥 Remove TSLint scripts
* 🔥 Remove TSLint config
* 🔥 Remove TSLint exceptions
* 👕 Adjust lint config
* ✏️ Add story numbers
2022-12-02 15:25:21 +01:00
Iván Ovejero
740513b424
perf(Code Node): Improve n8n item key validation performance ( #4669 )
...
⚡ Improve validator performance
2022-11-22 14:49:13 +01:00
Iván Ovejero
9582a0f1c0
refactor(editor): Reintroduce item
and items
to CodeNodeEditor
( #4553 )
...
* ⚡ Alias legacy refs to new syntax
* 📘 Adjust types
* 👕 Switch `item` lint error to warning
* ⚡ Add completions for legacy vars
* ✏️ Add descriptions to completions
* ⚡ Add lintings
* 📘 Skip `any` for now
* ⚡ Expand regex
2022-11-10 16:29:41 +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
Deborah
c74fdc7815
docs(Code Node): fix the docs link in the code node ( #4366 )
2022-10-18 11:21:28 +02:00
Iván Ovejero
1db4fa2bf8
feat(Code Node): create Code node ( #3965 )
...
* Introduce node deprecation (#3930 )
✨ Introduce node deprecation
* 🚧 Scaffold out Code node
* 👕 Fix lint
* 📘 Create types file
* 🚚 Rename theme
* 🔥 Remove unneeded prop
* ⚡ Override keybindings
* ⚡ Expand lintings
* ⚡ Create editor content getter
* 🚚 Ensure all helpers use `$`
* ✨ Add autocompletion
* ⚡ Filter out welcome note node
* ⚡ Convey error line number
* ⚡ Highlight error line
* ⚡ Restore logging from node
* ✨ More autocompletions
* ⚡ Streamline completions
* ✏️ Update placeholders
* ⚡ Update linter to new methods
* 🔥 Remove `$nodeItem` completions
* ⚡ Re-update placeholders
* 🎨 Fix formatting
* 📦 Update `package-lock.json`
* ⚡ Refresh with multi-line empty string
* ⚡ Account for syntax errors
* 🔥 Remove unneeded variant
* ⚡ Minor improvements
* ⚡ Add more autocompletions
* 🚚 Rename extension
* 🔥 Remove outdated comments
* 🚚 Rename field
* ✨ More autocompletions
* ⚡ Fix up error display when empty text
* 🔥 Remove logging
* ✨ More error validation
* 🐛 Fix `pairedItem` to `pairedItem()`
* ⚡ Add item to validation info
* 📦 Update `package-lock.json`
* ⚡ Leftover fixes
* ⚡ Set `insertNewlineAndIndent`
* 📦 Update `package-lock.json`
* 📦 Re-update `package-lock.json`
* 👕 Add lint exception
* 📘 Add type to mixin type
* Clean up comment
* ⚡ Refactor completion per new requirements
* ⚡ Adjust placeholders
* ⚡ Add `json` autocompletions for `$input`
* 🎨 Set border
* ⚡ Restore local completion source
* ⚡ Implement autocompletion for imports
* ⚡ Add `.*` to follow user typing on autocompletion
* 📘 Fix typings in autocompletions
* 👕 Add linting for use of `item()`
* 📦 Update `package-lock.json`
* 🐛 Fix for `$items(nodeName)[0]`
* ⚡ Filter down built-in modules list
* ⚡ Refactor error handling
* ⚡ Linter and validation improvements
* ⚡ Apply review feedback
* ♻️ More general refactorings
* ⚡ Add dot notation utility
* Customize input handler
* ⚡ Support `.json.` completions
* ⚡ Adjust placeholder
* ⚡ Sort imports
* 🔥 Remove blank rows addition
* ⚡ Add more error validation
* 📦 Update `package-lock.json`
* ⚡ Make date logging consistent
* 🔧 Adjust linting highlight range
* ⚡ Add line numbers to each item mode errors
* ⚡ Allow for links in error descriptions
* ⚡ More input validation
* ⚡ Expand linting to loops
* ⚡ Deprecate Function and Function Item nodes
* 🐛 Fix placeholder syntax
* 📘 Narrow down type
* 🚚 Rename using kebab-case
* 🔥 Remove `mapGetters`
* ✏️ Fix casing
* ⚡ Adjust import for type
* ✏️ Fix quotes
* 🐛 Fix `activeNode` reference
* ⚡ Use constant
* 🔥 Remove logging
* ✏️ Fix typo
* ⚡ Add missing `notice`
* ✏️ Add tags
* ✏️ Fix alias
* ✏️ Update copy
* 🔥 Remove wrong linting
* ✏️ Update copy
* ⚡ Add validation for `null`
* ⚡ Add validation for non-object and non-array
* ⚡ Add validation for non-array with json
* ✏️ Intentionally use wrong spelling
* ⚡ More validation
* ✏️ More copy updates
* ✏️ Placeholder updates
* ⏪ Restore spelling
* ⚡ Fix var name
* ✏️ More copy updates
* ⚡ Add luxon autocompletions
* ⚡ Make scrollable
* ⚡ Fix comma from merge conflict resolution
* 📦 Update `package-lock.json`
* 👕 Fix lint detail
* 🎨 Set font family
* ⚡ Bring in expressions fix
* ♻️ Address feedback
* ⚡ Exclude codemirror packages from render chunks
* 🐛 Fix placeholder not showing on first load
* feat(editor-ui): Replace `lezer` with `esprima` in client linter (#4192 )
* 🔥 Remove addition from misresolved conflict
* ⚡ Replace `lezer` with `esprima` in client linter
* ⚡ Add missing key
* 📦 Update `package-lock.json`
* ⚡ Match dependencies
* 📦 Update `package-lock.json`
* 📦 Re-update `package-lock.json`
* ⚡ Match whitespace
* 🐛 Fix selection
* ⚡ Expand validation
* 🔥 Remove validation
* ✏️ Update copy
* 🚚 Move to constants
* ⚡ More `null` validation
* ⚡ Support `all()` with index to access item
* ⚡ Gloss over n8n syntax error
* 🎨 Re-style diagnostic button
* 🔥 Remove `item` as `itemAlias`
* ⚡ Add linting for `item.json` in single item mode
* ⚡ Refactor to add label info descriptions
* ⚡ More autocompletions
* 👕 Fix lint
* ⚡ Simplify typings
* feat(nodes-base): Multiline autocompletion for `code-node-editor` (#4220 )
* ⚡ Simplify typings
* ⚡ Consolidate helpers in utils
* ⚡ Multiline autocompletion for standalone vars
* 🔥 Remove unneeded mixins
* ✏️ Update copy
* ✏️ Prep TODOs
* ⚡ Multiline completion for `$input.method` + `$input.item`
* 🔥 Remove unused method
* 🔥 Remove another unused method
* 🚚 Move luxon strings to helpers
* ⚡ Multiline autocompletion for methods output
* ⚡ Refactor to use optional chaining
* 👕 Fix lint
* ✏️ Update TODOs
* ⚡ Multiline autocompletion for `json` fields
* 📘 Add typings
* ⚡ De-duplicate callback to forEach
* 🐛 Fix autocompletions not working with leading whitespace
* 🌐 Apply i18n
* 👕 Fix lint
* :constructor: Second-period var usage completions
* 👕 Fix lint
* 👕 Add exception
* ⚡ Add completion telemetry
* 📘 Add typing
* ⚡ Major refactoring to organize
* 🐛 Fix multiline `.all()[index]`
* 🐛 Do not autoclose square brackets prior to `.json`
* 🐛 Fix accessor for multiline `jsonField` completions
* ⚡ Add completions for half-assignments
* 🐛 Fix `jsonField` completions for `x.json`
* ✏️ Improve comments
* 🐛 Fix `.json[field]` for multiline matches
* ⚡ Cleanup
* 📦 Update `package-lock.json`
* 👕 Fix lint
* 🐛 Rely on original value for custom matcher
* ⚡ Create `customMatcherJsonFieldCompletions` to simplify setup
* 🐛 Include selector in `customMatcherJsonField` completions
* ✏️ Make naming consistent
* ✏️ Add docline
* ⚡ Finish self-review cleanup
* 🔥 Remove outdated comment
* 📌 Pin luxon to major-minor
* ✏️ Fix typo
* 📦 Update `package-lock.json`
* 📦 Update `package-lock.json`
* 📦 Re-update `package-lock.json`
* ➕ Add `luxon` for Gmail node
* 📦 Update `package-lock.json`
* ⚡ Replace Function with Code in suggested nodes
* 🐛 Fix `$prevNode` completions
* ✏️ Update `$execution.mode` copy
* ⚡ Separate luxon getters from methods
* ⚡ Adjusting linter to tolerate `.binary`
* ⚡ Adjust top-level item keys check
* ⚡ Anticipate user expecting `item` to pre-exist
* ⚡ Add linting for legacy item access
* ⚡ Add hint for attempted `items` access
* ⚡ Add keybinding for toggling comments
* ✏️ Update copy of `all`, `first`, `last` and `itemMatching`
* 🐛 Make `input.all()` etc act on copies
* 📦 Update `package-lock.json`
* 🐛 Fix guard in `$input.last()`
* ♻️ Address Jan's feedback
* ⬆️ Upgrade `eslint-plugin-n8n-nodes-base`
* 📦 Update `package-lock.json`
* 🔥 Remove unneeded exceptions
* ⚡ Restore placeholder logic
* ⚡ Add placeholders to client
* ⚡ Account for shadow item
* ✏️ More completion info labels
* 👕 Fix lint
* ✏️ Update copy
* ✏️ Update copy
* ✏️ More copy updates
* 📦 Update `package-lock.json`
* ⚡ Add more validation
* ⚡ Add placheolder on first load
* Replace `Cmd` with `Mod`
* 📦 Update `package-lock.json`
2022-10-13 14:28:02 +02:00