n8n/packages/nodes-base/nodes/MongoDb/MongoDb.node.ts
Luiz Eduardo de Oliveira Fonseca 83998a15b0
feat(MongoDB Node): Allow parsing dates using dot notation (#2487)
* Parse Dates using Dot Notation

*  fixed types issues that prevent brunch from building, fixed nodelinter issues

* 🔨 hint for date fields

* 🔨 fixed bug with only one field converted to date

* 🔨 added toggle for access date fields with dot notation

*  Add Odoo and RedisTrigger node codex (#3005)

* .168.2fixed: Auto stash before rebase of "refs/heads/codex/0.168.2fixed"

Odoo and Redis Trigger codex files update

* Update RedisTrigger.node.json

Co-authored-by: Niv <nivbelleli@gmail.com>

*  Add KoBoToolbox and Linear codex files (#3040)

KoBoToolbox
KoBoToolbox Trigger
Linear

Co-authored-by: Niv <nivbelleli@gmail.com>

* 📚 Add missing full stop to license text

* (fix): Added missing full stop to license


GitHub does not render the single line breaks in the *Limitations* section. The added full stop makes it easier to read our license.

* 📚 Add also to other files

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* fix(AWS Lambda Node): Fix "Invocation Type" > "Continue Workflow" (#3010)

* 🔨 fix for running in continue workflow

*  Minor simplification

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* 📚 Add one more missing full stop to license text

* fix(core): Add logs and error catches for possible failures in queue mode (#3032)

* fix(Supabase Node): Fix Row > Get operation (#3045)

* fix(Supabase Node): Send token also via Authorization Bearer (#2814)

Send Authorization Bearer in headers
Fix typo in validateCredentials function

* fix(Wise Node): Fix issue when executing a transfer (#3039)

*  Fix credentials import success message (#3038)

* 📚 Add missing full stop to license text (#3028)

Adding "." L15. 

In addition, the markdown display don't show line break as in the editor.

* 📚 Add note to changelog linking to historic log (#3031)

* feat(HTTP Request Node): Add support for OPTIONS method (#3030)

* fix(Xero Node): Fix some operations and add support for setting address and phone number (#3048)

* 🐛 Fix issue when sending Organization ID - Xero node

* 👕 Fix linting issue

* feat(Crypto Node): Add Generate operation to generate random values (#2541)

*  Add generate action to crypto node

*  small fixes, nodelinter issues fixes

*  Improvements

*  Fix order

Co-authored-by: michael-radency <michael.k@radency.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* feat(Reddit Node): Add possibility to query saved posts (#3034)

* chore: add nvmrc with required node version

* feat: added saved posts to reddit node with credentials on User resource

* Changed Details order

* Fixed lint issue

* Moved saved posts to profile as it only works for the logged in user, This avoids the breaking change

* Removed .nvmrc

*  Improvements

Co-authored-by: Yassine Fathi <hi@m4tt72.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Jira Node): Add Simplify Output option to Issue > Get (#2408)

*  Add option to use Jira field display names

* 🚸 Make mapped fields more deterministic

* ♻️ Refactor Jira user loadOptions

* Moved and renamed the option as well as only returning the fields to

* Tweaked Friendly Fields to make it "Simplify Output" following similar patterns to other nodes

*  Improvements

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Zendesk Node): Add ticket status "On-hold"

* 🔖 Release n8n-workflow@0.93.0

* ⬆️ Set n8n-workflow@0.93.0 on n8n-core

* 🔖 Release n8n-core@0.111.0

* ⬆️ Set n8n-core@0.111.0 and n8n-workflow@0.93.0 on n8n-node-dev

* 🔖 Release n8n-node-dev@0.50.0

* ⬆️ Set n8n-core@0.111.0 and n8n-workflow@0.93.0 on n8n-nodes-base

* 🔖 Release n8n-nodes-base@0.168.0

* 🔖 Release n8n-design-system@0.16.0

* ⬆️ Set n8n-design-system@0.16.0 and n8n-workflow@0.93.0 on n8n-editor-ui

* 🔖 Release n8n-editor-ui@0.137.0

* ⬆️ Set n8n-core@0.111.0, n8n-editor-ui@0.137.0, n8n-nodes-base@0.168.0 and n8n-workflow@0.93.0 on n8n

* 🔖 Release n8n@0.170.0

* ⬆️ Update package-lock.json file

* 📚 Update CHANGELOG.md with version 0.170.0

* feat(editor): Add download button for binary data (#2992)

*  Make it possible to download binary data

*  Fix lint issues and add support for filesystem mode

*  Design adjustment

*  Updated wording for Number operations on IF-Node (#3065)

* fix(Google Tasks Node): Fix "Show Completed" option and hide title field where not needed (#2741)

* 🐛 Google Tasks: Fix showCompleted

*  Improvements

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Mocean Node): Add "Delivery Report URL" option and credential tests (#3075)

* add dlr url column

add dlr url(delivery report URl) column. Allow user set the
endpoint
to receive the report

* update

update delivery report url description

*  fixed nodelinter issues, added credential test, replaced icon

*  Improvements

Co-authored-by: d3no <d3no520@gmail.com>
Co-authored-by: Michael Kret <michael.k@radency.com>

* feat(Emelia Node): Add Campaign > Duplicate functionality (#3000)

* feat(Emelia Node): Add campaign duplication feature

*  small ui fixes, added credential test, fixed nodelinter issues

*  Improvements

*  Updated wording for Number operations on IF-Node (#3065)

* fix(Google Tasks Node): Fix "Show Completed" option and hide title field where not needed (#2741)

* 🐛 Google Tasks: Fix showCompleted

*  Improvements

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Mocean Node): Add "Delivery Report URL" option and credential tests (#3075)

* add dlr url column

add dlr url(delivery report URl) column. Allow user set the
endpoint
to receive the report

* update

update delivery report url description

*  fixed nodelinter issues, added credential test, replaced icon

*  Improvements

Co-authored-by: d3no <d3no520@gmail.com>
Co-authored-by: Michael Kret <michael.k@radency.com>

*  Normalize name

Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: Tom <19203795+that-one-tom@users.noreply.github.com>
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: d3no <d3no520@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* fix(GraphQL Node)!: Correctly report errors returned by the API (#3071)

* upstream merge

*  graphql node will throw error when response has errors property

* 🔨 updated changelog

*  Improvements

*  Improvements

*  Add package-lock.json back

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(FTP Node): Add option to recursively create directories on rename (#3001)

* Recursively Make Directories on SFTP Rename

* Linting

*  Improvement

*  Rename "Move" to "Create Directories"

* Change "Create Directories" description

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Microsoft Teams Node): Add chat message support (#2635)

*  Add chat messages to MS Teams node

* Updated credentials to include missing scope

*  Small improvements

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Mautic Node): Add credential test and allow trailing slash in host (#3080)

* Updated Mautic to stop trailing slashes from causing an issue

* Fixed oauth failing when there is a trailing slash in the mautic host

* Added credential test

* test: Fix randomly failing UM tests (#3061)

*  Declutter test logs

* 🐛 Fix random passwords length

* 🐛 Fix password hashing in test user creation

* 🐛 Hash leftover password

*  Improve error message for `compare`

*  Restore `randomInvalidPassword` contant

*  Mock Telemetry module to prevent `--forceExit`

*  Silence logger

*  Simplify condition

*  Unhash password in payload

* fix(NocoDB Node): Fix pagination (#3081)

* feat(Strava Node): Add "Get Streams" operation (#2582)

* Strava node: adding getStreams operation

* Changed the keys to use multiOptions

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>

* fix(core): Fix crash on webhook when last node did not return data

* fix(Salesforce Node): Fix issue that "status" did not get used for Case => Create & Update (#2212)

* bugfix for salesforce case create and update case not picking status

* 🐛 Fix issue with package-lock.json

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(ServiceNow Node): Add basicAuth support and fix getColumns loadOptions (#2712)

*  Support basic auth for ServiceNow

* 🐛 Support ServiceNow sysparm_fields as string

*  credential test for basic auth

* fix(Google Tasks Node): Fix "Show Completed" option and hide title field where not needed (#2741)

* 🐛 Google Tasks: Fix showCompleted

*  Improvements

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Mocean Node): Add "Delivery Report URL" option and credential tests (#3075)

* add dlr url column

add dlr url(delivery report URl) column. Allow user set the
endpoint
to receive the report

* update

update delivery report url description

*  fixed nodelinter issues, added credential test, replaced icon

*  Improvements

Co-authored-by: d3no <d3no520@gmail.com>
Co-authored-by: Michael Kret <michael.k@radency.com>

* feat(Emelia Node): Add Campaign > Duplicate functionality (#3000)

* feat(Emelia Node): Add campaign duplication feature

*  small ui fixes, added credential test, fixed nodelinter issues

*  Improvements

*  Updated wording for Number operations on IF-Node (#3065)

* fix(Google Tasks Node): Fix "Show Completed" option and hide title field where not needed (#2741)

* 🐛 Google Tasks: Fix showCompleted

*  Improvements

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Mocean Node): Add "Delivery Report URL" option and credential tests (#3075)

* add dlr url column

add dlr url(delivery report URl) column. Allow user set the
endpoint
to receive the report

* update

update delivery report url description

*  fixed nodelinter issues, added credential test, replaced icon

*  Improvements

Co-authored-by: d3no <d3no520@gmail.com>
Co-authored-by: Michael Kret <michael.k@radency.com>

*  Normalize name

Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: Tom <19203795+that-one-tom@users.noreply.github.com>
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: d3no <d3no520@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

*  fix nodelinter issues, added hint to field option

* fix(GraphQL Node)!: Correctly report errors returned by the API (#3071)

* upstream merge

*  graphql node will throw error when response has errors property

* 🔨 updated changelog

*  Improvements

*  Improvements

*  Add package-lock.json back

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(FTP Node): Add option to recursively create directories on rename (#3001)

* Recursively Make Directories on SFTP Rename

* Linting

*  Improvement

*  Rename "Move" to "Create Directories"

* Change "Create Directories" description

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Microsoft Teams Node): Add chat message support (#2635)

*  Add chat messages to MS Teams node

* Updated credentials to include missing scope

*  Small improvements

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(Mautic Node): Add credential test and allow trailing slash in host (#3080)

* Updated Mautic to stop trailing slashes from causing an issue

* Fixed oauth failing when there is a trailing slash in the mautic host

* Added credential test

* test: Fix randomly failing UM tests (#3061)

*  Declutter test logs

* 🐛 Fix random passwords length

* 🐛 Fix password hashing in test user creation

* 🐛 Hash leftover password

*  Improve error message for `compare`

*  Restore `randomInvalidPassword` contant

*  Mock Telemetry module to prevent `--forceExit`

*  Silence logger

*  Simplify condition

*  Unhash password in payload

* fix(NocoDB Node): Fix pagination (#3081)

* feat(Strava Node): Add "Get Streams" operation (#2582)

* Strava node: adding getStreams operation

* Changed the keys to use multiOptions

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>

*  Improvements

* fix(core): Fix crash on webhook when last node did not return data

* fix(Salesforce Node): Fix issue that "status" did not get used for Case => Create & Update (#2212)

* bugfix for salesforce case create and update case not picking status

* 🐛 Fix issue with package-lock.json

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* 🐛 Fix issue with credentials

*  Fix basicAuth

*  Reset default

Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: Tom <19203795+that-one-tom@users.noreply.github.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: d3no <d3no520@gmail.com>
Co-authored-by: Charles Lecalier <charles.lecalier@gmail.com>
Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Rhys Williams <me@rhyswilliams.co.za>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Luis Cipriani <37157+lfcipriani@users.noreply.github.com>
Co-authored-by: Ketan Somvanshi <ketan.somvanshi@plivo.com>

* fix(EmailReadImap Node): Fix issue that crashed process if node was configured wrong (#3079)

* 🐛 Fix issue that IMAP node can crash n8n

* 👕 Fix lint issue

* ⬆️ Set simple-git@3.5.0 on n8n-nodes-base

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-SIMPLEGIT-2434306

* 👕 Fix lint issue

* ⬆️ Update package-lock.json file

* 🔖 Release n8n-workflow@0.94.0

* ⬆️ Set n8n-workflow@0.94.0 on n8n-core

* 🔖 Release n8n-core@0.112.0

* ⬆️ Set n8n-core@0.112.0 and n8n-workflow@0.94.0 on n8n-node-dev

* 🔖 Release n8n-node-dev@0.51.0

* ⬆️ Set n8n-core@0.112.0 and n8n-workflow@0.94.0 on n8n-nodes-base

* 🔖 Release n8n-nodes-base@0.169.0

* ⬆️ Set n8n-workflow@0.94.0 on n8n-editor-ui

* 🔖 Release n8n-editor-ui@0.138.0

* ⬆️ Set n8n-core@0.112.0, n8n-editor-ui@0.138.0, n8n-nodes-base@0.169.0 and n8n-workflow@0.94.0 on n8n

* 🔖 Release n8n@0.171.0

* 📚 Update CHANGELOG.md with version 0.171.0

* fix(core): Fix issue with current executions not getting displayed (#3093)

* fix(core): Fix issue with falsely skip authorizing (#3087)

* fix(WooCommerce Node): Fix pagination issue with "Get All" operation (#2529)

* zap(core): Fix issues with n8n version updates that skip multiple versions (#3099)

* 🔖 Release n8n-nodes-base@0.169.1

* ⬆️ Set n8n-nodes-base@0.169.1 on n8n

* 🔖 Release n8n@0.171.1

* fix(Action Network Node): Fix pagination issue and add credential test (#3011)

* fix(Action Network Node): Pagination

* Fixed lint issue

* Added credential test

*  Move credentials verification and injection to the credentials file

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(PayPal Node): Add auth test, fix typo and update API URL (#3084)

* Implements PayPal Auth API Test

* Deletes unit tests

* 🚨 Fixed lint issues

* Added changes from PR#2568

* Moved methods to above execute

Co-authored-by: paolo-rechia <paolo@e-bot7.com>

* feat(Magento 2 Node): Add credential tests (#3086)

* Implements Magento Auth API Test

* Deletes unit tests

* Fixed lint issues and changed the URI for the credential test

*  Move credential verification to the credential file

*  Simplify code

Co-authored-by: paolo-rechia <paolo@e-bot7.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* 🔥 Clear legacy tslint config files (#3103)

* 🚨 Optimize UM tests (#3066)

*  Declutter test logs

* 🐛 Fix random passwords length

* 🐛 Fix password hashing in test user creation

* 🐛 Hash leftover password

*  Improve error message for `compare`

*  Restore `randomInvalidPassword` contant

*  Mock Telemetry module to prevent `--forceExit`

* 🔥 Remove unused imports

* 🔥 Remove unused import

*  Add util for configuring test SMTP

*  Isolate user creation

* 🔥 De-duplicate `createFullUser`

*  Centralize hashing

* 🔥 Remove superfluous arg

* 🔥 Remove outdated comment

*  Prioritize shared tables during trucation

* 🧪 Add login tests

*  Use token helper

* ✏️ Improve naming

*  Make `createMemberShell` consistent

* 🔥 Remove unneeded helper

* 🔥 De-duplicate `beforeEach`

* ✏️ Improve naming

* 🚚 Move `categorize` to utils

* ✏️ Update comment

* 🧪 Simplify test

* 📘 Improve `User.password` type

*  Silence logger

*  Simplify condition

*  Unhash password in payload

* 🐛 Fix comparison against unhashed password

*  Increase timeout for fake SMTP service

* 🔥 Remove unneeded import

*  Use `isNull()`

* 🧪 Use `Promise.all()` in creds tests

* 🧪 Use `Promise.all()` in me tests

* 🧪 Use `Promise.all()` in owner tests

* 🧪 Use `Promise.all()` in password tests

* 🧪 Use `Promise.all()` in users tests

*  Re-set cookie if UM disabled

* 🔥 Remove repeated line

*  Refactor out shared owner data

* 🔥 Remove unneeded import

* 🔥 Remove repeated lines

*  Organize imports

*  Reuse helper

* 🚚 Rename tests to match routers

* 🚚 Rename `createFullUser()` to `createUser()`

*  Consolidate user shell creation

*  Make hashing async

*  Add email to user shell

*  Optimize array building

* 🛠 refactor user shell factory

* 🐛 Fix MySQL tests

*  Silence logger in other DBs

Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com>

* 🧪 Add Node 14 tests to CI (#2779)

Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com>

* 🔨 Infer typings for config schema (#2656)

* 🚚 Move schema to standalone file

*  Add assertions to string literal arrays

*  Infer typings for convict schema

* 🔥 Remove unneeded assertions

* 🔨 Fix errors surfaced by typings

*  Type nodes.include/exclude per docs

*  Account for types for exception paths

*  Set method alias to flag incorrect paths

*  Replace original with alias

*  Make allowance for nodes.include

*  Adjust leftover calls

* 🔀 Fix conflicts

* 🔥 Remove unneeded castings

* 📘 Simplify exception path type

* 📦 Update package-lock.json

* 🔥 Remove unneeded imports

* 🔥 Remove unrelated file

*  Update schema

*  Update interface

* 📦 Update package-lock.json

* 📦 Update package-lock.json

* 🔥 Remove leftover assertions

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

*  Enable `esModuleInterop` compiler option and upgrade to TypeScript 4.6 (#3106)

*  Enable `esModuleInterop` for /core

*  Adjust imports in /core

*  Enable `esModuleInterop` for /cli

*  Adjust imports in /cli

*  Enable `esModuleInterop` for /nodes-base

*  Adjust imports in /nodes-base

*  Make imports consistent

* ⬆️ Upgrade TypeScript to 4.6 (#3109)

* ⬆️ Upgrade TypeScript to 4.6

* 📦 Update package-lock.json

* 🔧 Avoid erroring on untyped errors

* 📘 Fix type error

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* fix(core): Set correct timezone in luxon (#3115)

* ⬆️ Set moment@2.29.2 on n8n-nodes-base

* fix(editor): Fix i18n issues (#3072)

* 🐛 Fix `defaultLocale` watcher

*  Improve error handling for headers

* ✏️ Improve naming

* 🐛 Fix hiring banner check

*  Flatten base text keys

*  Fix miscorrected key

*  Implement pluralization

* ✏️ Update docs

* 🚚 Move headers fetching to `App.vue`

* fix hiring banner

*  Fix missing import

* ✏️ Alphabetize translations

*  Switch to async check

* feat(editor): Refactor Output Panel + fix i18n issues (#3097)

* update main panel

* finish up tabs

* fix docs link

* add icon

* update node settings

* clean up settings

* add rename modal

* fix component styles

* fix spacing

* truncate name

* remove mixin

* fix spacing

* fix spacing

* hide docs url

* fix bug

* fix renaming

* refactor tabs out

* refactor execute button

* refactor header

* add more views

* fix error view

* fix workflow rename bug

* rename component

* fix small screen bug

* move items, fix positions

* add hover state

* show selector on empty state

* add empty run state

* fix binary view

* 1 item

* add vjs styles

* show empty row for every item

* refactor tabs

* add branch names

* fix spacing

* fix up spacing

* add run selector

* fix positioning

* clean up

* increase width of selector

* fix up spacing

* fix copy button

* fix branch naming; type issues

* fix docs in custom nodes

* add type

* hide items when run selector is shown

* increase selector size

* add select prepend

* clean up a bit

* Add pagination

* add stale icon

* enable stale data in execution run

* Revert "enable stale data in execution run"

8edb68dbff

* move metadata to its own state

* fix smaller size

* add scroll buttons

* update tabs on resize

* update stale data on rename

* remove metadata on delete

* hide x

* change title colors

* binary data classes

* remove duplicate css

* add colors

* delete unused keys

* use event bus

* update styles of pagination

* fix ts issues

* fix ts issues

* use chevron icons

* fix design with download button

* add back to canvas button

* add trigger warning disabled

* show trigger warning tooltip

* update button labels for triggers

* update node output message

* fix add-option bug

* add page selector

* fix pagination selector bug

* fix executions bug

* remove hint

* add json colors

* add colors for json

* add color json keys

* fix select options bug

* update keys

* address comments

* update name limit

* align pencil

* update icon size

* update radio buttons height

* address comments

* fix pencil bug

* change buttons alignment

* fully center

* change order of buttons

* add no output message in branch

* scroll to top

* change active state

* fix page size

* all items

* update expression background

* update naming

* align pencil

* update modal background

* add schedule group

* update schedule nodes messages

* use ellpises for last chars

* fix spacing

* fix tabs issue

* fix too far data bug

* fix executions bug

* fix table wrapping

* fix rename bug

* add padding

* handle unkown errors

* add sticky header

* ignore empty input, trim node name

* nudge lightness of color

* center buttons

* update pagination

* set colors of title

* increase table font, fix alignment

* fix pencil bug

* fix spacing

* use date now

* address pagination issues

* delete unused keys

* update keys sort

* fix prepend

* fix radio button position

* Revert "fix radio button position"

ae42781786

Co-authored-by: Mutasem <mutdmour@gmail.com>
Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>

* ⬆️ Update package-lock.json file

* 🔖 Release n8n-workflow@0.95.0

* ⬆️ Set n8n-workflow@0.95.0 on n8n-core

* 🔖 Release n8n-core@0.113.0

* ⬆️ Set n8n-core@0.113.0 and n8n-workflow@0.95.0 on n8n-node-dev

* 🔖 Release n8n-node-dev@0.52.0

* ⬆️ Set n8n-core@0.113.0 and n8n-workflow@0.95.0 on n8n-nodes-base

* 🔖 Release n8n-nodes-base@0.170.0

* 🔖 Release n8n-design-system@0.17.0

* ⬆️ Set n8n-design-system@0.17.0 and n8n-workflow@0.95.0 on n8n-editor-ui

* 🔖 Release n8n-editor-ui@0.139.0

* ⬆️ Set n8n-core@0.113.0, n8n-editor-ui@0.139.0, n8n-nodes-base@0.170.0 and n8n-workflow@0.95.0 on n8n

* 🔖 Release n8n@0.172.0

* 📚 Update CHANGELOG.md with version 0.171.1 and 0.172.0

*  Fix n8n-node-dev publish issue

*  Fix credential formatting issues (#3134)

* 👕 Autofix creds lint issues

* 👕 Manually fix creds lint issues

* 👕 Fix indentation

* ✏️ Fix typo

* 👕 Fix indentation

* ✏️ Fix typo

*  Add executeWorkflow input-output notice. (#3095)

*  Remove non-null assertions for `Db` collections (#3111)

* 📘 Remove unions to `null`

*  Track `Db` initialization state

* 🔥 Remove non-null assertions

* 👕 Remove lint exceptions

* 🔥 Remove leftover assertion

* feat(Google Cloud Realtime Database Node): Make it possible to select region (#3096)

* upstream merge

* 🔨 fixed bug, replaced icon with svg, added ability to get whole db object

* 🔨 optimization

* 🔨 option for region in credentials

* 🐛 Fix region default

*  Remove dot

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* fix(ui): Reset text-edit input value when pressing esc key to have matching input values (#3098)

*  Make event on Eventbrite Trigger Node optional (#2829)

* Set `event` property as optional

* Add some parameter descriptions

To please nodelinter, mostly.

* Fix UI complaining about missing parameter.

* 🚨 Fixed lint isssues

*  Improvements

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* fix(Zoho Node): Fix pagination issue (#3129)

* fix(editor): Fix breaking Drop-downs after removing expressions (#3094)

* 🐛 Fixed multiOption parameter input dropdown values after removing expression.

* ♻️ Moved array value normalization to removeExpression action.

* 🐛 Handled scenario where expression contained invalid value.

* 🎨 Centralize error throwing for encryption keys and credentials  (#3105)

* Centralized error throwing for encryption key

* Unifying the error message used by cli and core packages

* Improvements to error messages to make it more DRY

* Removed unnecessary throw

* Throwing error when credential does not exist to simplify node behavior (#3112)

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* fix(core): Make email for UM case insensitive (#3078)

* 🚧 lowercasing email

*  add tests for case insensitive email

* 🐘 add migration to lowercase email

* 🚚 rename migration

* 🐛 fix package.lock

* 🐛 fix double import

* 📋 add todo

*  Add autocompletion for i18n keys in script sections of Vue files (#3133)

* 📘 Type `baseText()` to i18n keys

* 📘 Adjust `baseText()` signature

* 👕 Except JSON files from Vue ESLint

* 🐛 Fix errors surfaced by `baseText()` typing

*  Pluralize keys

* 📘 Add typing for category names

*  Mark internal keys

* ✏️ Update docs references

* 🎨 Prettify syntax

* 🐛 Fix leftover internal key references

* feat(Discord Node): Add additional options (#2918)

* 🔖 Discord Node v2.0

* Updated image from png to svg

* Added correct versioning

* Added old for versioning purposes

* Added other parameter for the url

* Fixed subtitle added multipart option for payload

* Removed unused imports

* Changed data type for binary file

* Removed console.log

* Moved the additional fields to an option field + fixed some bugs

* Refactored node into one version

* Removed any type

* Fixed some broken behaviour

* Minor fixes for discord node

*  Fix parameter name

Co-authored-by: Timeraa <me@timeraa.dev>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* feat(PagerDuty Node): Add support for additional details in incidents (#3140)

* feat(PagerDuty node): add support for additional details for the incident

* fix(editor): Fix breaking Drop-downs after removing expressions (#3094)

* 🐛 Fixed multiOption parameter input dropdown values after removing expression.

* ♻️ Moved array value normalization to removeExpression action.

* 🐛 Handled scenario where expression contained invalid value.

* 🎨 Centralize error throwing for encryption keys and credentials  (#3105)

* Centralized error throwing for encryption key

* Unifying the error message used by cli and core packages

* Improvements to error messages to make it more DRY

* Removed unnecessary throw

* Throwing error when credential does not exist to simplify node behavior (#3112)

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* fix(core): Make email for UM case insensitive (#3078)

* 🚧 lowercasing email

*  add tests for case insensitive email

* 🐘 add migration to lowercase email

* 🚚 rename migration

* 🐛 fix package.lock

* 🐛 fix double import

* 📋 add todo

*  Add autocompletion for i18n keys in script sections of Vue files (#3133)

* 📘 Type `baseText()` to i18n keys

* 📘 Adjust `baseText()` signature

* 👕 Except JSON files from Vue ESLint

* 🐛 Fix errors surfaced by `baseText()` typing

*  Pluralize keys

* 📘 Add typing for category names

*  Mark internal keys

* ✏️ Update docs references

* 🎨 Prettify syntax

* 🐛 Fix leftover internal key references

* feat(Discord Node): Add additional options (#2918)

* 🔖 Discord Node v2.0

* Updated image from png to svg

* Added correct versioning

* Added old for versioning purposes

* Added other parameter for the url

* Fixed subtitle added multipart option for payload

* Removed unused imports

* Changed data type for binary file

* Removed console.log

* Moved the additional fields to an option field + fixed some bugs

* Refactored node into one version

* Removed any type

* Fixed some broken behaviour

* Minor fixes for discord node

*  Fix parameter name

Co-authored-by: Timeraa <me@timeraa.dev>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

*  Move order and fix displayName and description

Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com>
Co-authored-by: agobrech <45268029+agobrech@users.noreply.github.com>
Co-authored-by: Timeraa <me@timeraa.dev>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* 👕 Fix lint issue

* fix(ZendeskTrigger Node): Fix deprecated targets, replaced with webhooks (#3025)

* 🔨 fix for deprecated targets

*  Move crendentials injection to the credential file

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* feat(GoogleBigQuery Node): Add support for service account authentication (#3128)

*  Enable service account authentication with the BigQuery node

* 🔨 fixed auth issue with key, fixed nodelinter issues

*  added continue on fail

*  Improvements

Co-authored-by: Mark Steve Samson <marksteve@thinkingmachin.es>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>

* fix(core): Add "rawBody" also for xml requests (#3143)

* 👕 Fix lint issue

* fix(Discourse Node): Fix issue with not all posts getting returned and add credential test (#3007)

* 🔨 fix for not all posts returning

*  added credential test

*  Improvements

*  Improvements

*  Define test the new way

*  Remove not needed imports

*  Fix auth test problem

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* ⬆️ Update package-lock.json file

* feat(Markdown Node): Add new node to covert between Markdown <> HTML (#1728)

*  Markdown Node

* Tweaked wording

* ⬆️ Bump showdown to latest version

*  Small improvement

* 👕 Fix linting issue

*  Small improvements

* 🔨 added options, added continue on fail, some clean up

*  removed test code

*  added missing semicolumn

* 🔨 wip

* 🔨 replaced library for converting html to markdown, added options

*  lock file fix

* 🔨 clean up

Co-authored-by: sirdavidoff <1670123+sirdavidoff@users.noreply.github.com>
Co-authored-by: Michael Kret <michael.k@radency.com>

* fix(Postgres Node): Fix issue with columns containing spaces (#2989)

* 🔨 fixed error when column name containes spaces

*  added lock fille to commit

* 🔨 fix for column names wraped in square braces

* 🔨 added lock file

* 🔨 fix for update key not included in update columns

*  Revert imports

Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* 🐛 Update initialization checks (#3147)

* feat(editor): Add drag and drop from nodes panel (#3123)

*  Added support for drag and drop from nodes main panel.

 Added node draggable placeholder.

*  Added snapping to grid. Changed how draggable ghost follows the cursor.

* 💄 Changed node drag anchor position to be centered.

*  Added drag and drop animation. Added event cancellation when dropping node on main panel.

* ♻️ Simplified drag and drop code and cleaned up prop-drilling.

* 🐛 Added check for nodeTypeName in dataTransfer when draging and dropping nodes.

* 🐛 Ensured MS Edge compatibility. MS edge does not send datatransfer in ondragover event.

Co-authored-by: Mutasem <mutdmour@gmail.com>

* feat(Slack Node): Add blocks to slack message update (#2182)

* Adding blocks to slack message update

* Fixing lint

* Adding blocks to slack message update

* Fixing lint

*  added toggle to display json inputs in update operation

*  Improvements

* feat(Markdown Node): Add new node to covert between Markdown <> HTML (#1728)

*  Markdown Node

* Tweaked wording

* ⬆️ Bump showdown to latest version

*  Small improvement

* 👕 Fix linting issue

*  Small improvements

* 🔨 added options, added continue on fail, some clean up

*  removed test code

*  added missing semicolumn

* 🔨 wip

* 🔨 replaced library for converting html to markdown, added options

*  lock file fix

* 🔨 clean up

Co-authored-by: sirdavidoff <1670123+sirdavidoff@users.noreply.github.com>
Co-authored-by: Michael Kret <michael.k@radency.com>

Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: sirdavidoff <1670123+sirdavidoff@users.noreply.github.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>

* ⬆️ Update package-lock.json file

* 🔖 Release n8n-workflow@0.96.0

* ⬆️ Set n8n-workflow@0.96.0 on n8n-core

* 🔖 Release n8n-core@0.114.0

* ⬆️ Set n8n-core@0.114.0 and n8n-workflow@0.96.0 on n8n-node-dev

* 🔖 Release n8n-node-dev@0.53.0

* ⬆️ Set n8n-core@0.114.0 and n8n-workflow@0.96.0 on n8n-nodes-base

* 🔖 Release n8n-nodes-base@0.171.0

* ⬆️ Set n8n-workflow@0.96.0 on n8n-editor-ui

* 🔖 Release n8n-editor-ui@0.140.0

* ⬆️ Set n8n-core@0.114.0, n8n-editor-ui@0.140.0, n8n-nodes-base@0.171.0 and n8n-workflow@0.96.0 on n8n

* 🔖 Release n8n@0.173.0

* 📚 Update CHANGELOG.md with version 0.173.0

*  Fix discord icon name

* 🔖 Release n8n-nodes-base@0.171.1

* ⬆️ Set n8n-nodes-base@0.171.1 on n8n

* 🔖 Release n8n@0.173.1

* 📚 Update CHANGELOG.md with version 0.173.1

*  Update Calendly Logo (#2528)

Calendly has a new logo, updated the logo from the media kit: https://calendly.com/newsroom

* test(core): Implement timeout in SMTP tests (#3152)

*  Implement timeout in SMTP tests

* 🚚 Move timeout to constants

* fix(QuickBooks Node) Fix pagination (#3169)

* Fixed pagination issue

* Removed unused import

* fix(Slack Node): Fix credential  test (#3151)

* feat(All AWS Nodes): Enable support for AWS temporary credentials (#2587)

* Enable support for AWS temporary credentials

* 🔨 removed toggle from ui added sessionToken to other aws services that using sign function from aws4 module

* Update sign method for other AWS nodes

* Remove the unneeded additional `temporaryCredentials` checkbox

* Update description for session token

*  added missing session token to credentials test

* Update sign method for DynamoDB

* 🔨 added back toggle for hiding session token, fixed linter errors

*  wording fix

Co-authored-by: Michael Kret <michael.k@radency.com>

*  Removed unnecessary import and fixed option order

Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: nivb06 <99671629+nivb06@users.noreply.github.com>
Co-authored-by: Niv <nivbelleli@gmail.com>
Co-authored-by: Tom <19203795+that-one-tom@users.noreply.github.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Jan Oberhauser <janober@users.noreply.github.com>
Co-authored-by: Sergio <sergio@sergioguzman.com>
Co-authored-by: Valentin Mocanu <mrvali97@gmail.com>
Co-authored-by: Jasper Zonneveld <JaZo@users.noreply.github.com>
Co-authored-by: Fred <f.choudat@gmail.com>
Co-authored-by: Deborah <deborah@starfallprojects.co.uk>
Co-authored-by: TheFSilver <40010470+TheFSilver@users.noreply.github.com>
Co-authored-by: Ricardo Espinoza <ricardoespinoza105@gmail.com>
Co-authored-by: pemontto <939704+pemontto@users.noreply.github.com>
Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
Co-authored-by: Yassine Fathi <hi@m4tt72.com>
Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: d3no <d3no520@gmail.com>
Co-authored-by: Charles Lecalier <charles.lecalier@gmail.com>
Co-authored-by: Rhys Williams <me@rhyswilliams.co.za>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Luis Cipriani <37157+lfcipriani@users.noreply.github.com>
Co-authored-by: Ketan Somvanshi <ketan.somvanshi@plivo.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com>
Co-authored-by: paolo-rechia <paolo@e-bot7.com>
Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com>
Co-authored-by: Mutasem <mutdmour@gmail.com>
Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: Francesco Pongiluppi <pongi@pongi.it>
Co-authored-by: agobrech <45268029+agobrech@users.noreply.github.com>
Co-authored-by: Timeraa <me@timeraa.dev>
Co-authored-by: Andrey Sinitsyn <andrey.sin98@gmail.com>
Co-authored-by: Mark Steve Samson <marksteve@thinkingmachin.es>
Co-authored-by: sirdavidoff <1670123+sirdavidoff@users.noreply.github.com>
Co-authored-by: Mike Quinlan <mquinlan@gigsmart.com>
Co-authored-by: Cody Stamps <cody.stamps@hey.com>
Co-authored-by: Basit Ali <basitalimundia@gmail.com>
2022-04-22 16:44:23 +02:00

242 lines
7 KiB
TypeScript

import {
IExecuteFunctions,
} from 'n8n-core';
import {
IDataObject,
INodeExecutionData,
INodeType,
INodeTypeDescription,
JsonObject,
NodeOperationError
} from 'n8n-workflow';
import {
nodeDescription,
} from './mongo.node.options';
import {
MongoClient,
ObjectID,
} from 'mongodb';
import {
getItemCopy,
handleDateFields,
handleDateFieldsWithDotNotation,
validateAndResolveMongoCredentials
} from './mongo.node.utils';
export class MongoDb implements INodeType {
description: INodeTypeDescription = nodeDescription;
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
const { database, connectionString } = validateAndResolveMongoCredentials(
this,
await this.getCredentials('mongoDb'),
);
const client: MongoClient = await MongoClient.connect(connectionString, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const mdb = client.db(database as string);
let returnItems = [];
const items = this.getInputData();
const operation = this.getNodeParameter('operation', 0) as string;
if (operation === 'aggregate') {
// ----------------------------------
// aggregate
// ----------------------------------
try {
const queryParameter = JSON.parse(this.getNodeParameter('query', 0) as string);
if (queryParameter._id && typeof queryParameter._id === 'string') {
queryParameter._id = new ObjectID(queryParameter._id);
}
const query = mdb
.collection(this.getNodeParameter('collection', 0) as string)
.aggregate(queryParameter);
const queryResult = await query.toArray();
returnItems = this.helpers.returnJsonArray(queryResult as IDataObject[]);
} catch (error) {
if (this.continueOnFail()) {
returnItems = this.helpers.returnJsonArray({ error: (error as JsonObject).message } );
} else {
throw error;
}
}
} else if (operation === 'delete') {
// ----------------------------------
// delete
// ----------------------------------
try {
const { deletedCount } = await mdb
.collection(this.getNodeParameter('collection', 0) as string)
.deleteMany(JSON.parse(this.getNodeParameter('query', 0) as string));
returnItems = this.helpers.returnJsonArray([{ deletedCount }]);
} catch (error) {
if (this.continueOnFail()) {
returnItems = this.helpers.returnJsonArray({ error: (error as JsonObject).message });
} else {
throw error;
}
}
} else if (operation === 'find') {
// ----------------------------------
// find
// ----------------------------------
try {
const queryParameter = JSON.parse(this.getNodeParameter('query', 0) as string);
if (queryParameter._id && typeof queryParameter._id === 'string') {
queryParameter._id = new ObjectID(queryParameter._id);
}
let query = mdb
.collection(this.getNodeParameter('collection', 0) as string)
.find(queryParameter);
const options = this.getNodeParameter('options', 0) as IDataObject;
const limit = options.limit as number;
const skip = options.skip as number;
const sort = options.sort && JSON.parse(options.sort as string);
if (skip > 0) {
query = query.skip(skip);
}
if (limit > 0) {
query = query.limit(limit);
}
if (sort && Object.keys(sort).length !== 0 && sort.constructor === Object) {
query = query.sort(sort);
}
const queryResult = await query.toArray();
returnItems = this.helpers.returnJsonArray(queryResult as IDataObject[]);
} catch (error) {
if (this.continueOnFail()) {
returnItems = this.helpers.returnJsonArray({ error: (error as JsonObject).message } );
} else {
throw error;
}
}
} else if (operation === 'insert') {
// ----------------------------------
// insert
// ----------------------------------
try {
// Prepare the data to insert and copy it to be returned
const fields = (this.getNodeParameter('fields', 0) as string)
.split(',')
.map(f => f.trim())
.filter(f => !!f);
const options = this.getNodeParameter('options', 0) as IDataObject;
const insertItems = getItemCopy(items, fields);
if (options.dateFields && !options.useDotNotation) {
handleDateFields(insertItems, options.dateFields as string);
} else if (options.dateFields && options.useDotNotation) {
handleDateFieldsWithDotNotation(insertItems, options.dateFields as string);
}
const { insertedIds } = await mdb
.collection(this.getNodeParameter('collection', 0) as string)
.insertMany(insertItems);
// Add the id to the data
for (const i of Object.keys(insertedIds)) {
returnItems.push({
json: {
...insertItems[parseInt(i, 10)],
id: insertedIds[parseInt(i, 10)] as string,
},
});
}
} catch (error) {
if (this.continueOnFail()) {
returnItems = this.helpers.returnJsonArray({ error: (error as JsonObject).message });
} else {
throw error;
}
}
} else if (operation === 'update') {
// ----------------------------------
// update
// ----------------------------------
const fields = (this.getNodeParameter('fields', 0) as string)
.split(',')
.map(f => f.trim())
.filter(f => !!f);
const options = this.getNodeParameter('options', 0) as IDataObject;
let updateKey = this.getNodeParameter('updateKey', 0) as string;
updateKey = updateKey.trim();
const updateOptions = (this.getNodeParameter('upsert', 0) as boolean)
? { upsert: true } : undefined;
if (!fields.includes(updateKey)) {
fields.push(updateKey);
}
// Prepare the data to update and copy it to be returned
const updateItems = getItemCopy(items, fields);
if (options.dateFields && !options.useDotNotation) {
handleDateFields(updateItems, options.dateFields as string);
} else if (options.dateFields && options.useDotNotation) {
handleDateFieldsWithDotNotation(updateItems, options.dateFields as string);
}
for (const item of updateItems) {
try {
if (item[updateKey] === undefined) {
continue;
}
const filter: { [key: string]: string | ObjectID } = {};
filter[updateKey] = item[updateKey] as string;
if (updateKey === '_id') {
filter[updateKey] = new ObjectID(filter[updateKey]);
delete item['_id'];
}
await mdb
.collection(this.getNodeParameter('collection', 0) as string)
.updateOne(filter, { $set: item }, updateOptions);
} catch (error) {
if (this.continueOnFail()) {
item.json = { error: (error as JsonObject).message };
continue;
}
throw error;
}
}
returnItems = this.helpers.returnJsonArray(updateItems as IDataObject[]);
} else {
if (this.continueOnFail()) {
returnItems = this.helpers.returnJsonArray({ json: { error: `The operation "${operation}" is not supported!` } });
} else {
throw new NodeOperationError(this.getNode(), `The operation "${operation}" is not supported!`);
}
}
client.close();
return this.prepareOutputData(returnItems);
}
}