diff --git a/components/agentql/agentql.app.mjs b/components/agentql/agentql.app.mjs index 7c6e3264d4665..8c86501dfb242 100644 --- a/components/agentql/agentql.app.mjs +++ b/components/agentql/agentql.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/airpinpoint/airpinpoint.app.mjs b/components/airpinpoint/airpinpoint.app.mjs index a203530f3f807..5a3c21fad2ac4 100644 --- a/components/airpinpoint/airpinpoint.app.mjs +++ b/components/airpinpoint/airpinpoint.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/api_labz/api_labz.app.mjs b/components/api_labz/api_labz.app.mjs index 7c8322c02ec45..57b64c29c97d9 100644 --- a/components/api_labz/api_labz.app.mjs +++ b/components/api_labz/api_labz.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/arlo/arlo.app.mjs b/components/arlo/arlo.app.mjs index b3ce0a9599ab0..fa0745716a6e1 100644 --- a/components/arlo/arlo.app.mjs +++ b/components/arlo/arlo.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/autotask_psa/autotask_psa.app.mjs b/components/autotask_psa/autotask_psa.app.mjs index a872d4fb84ce7..26c640e1f5e03 100644 --- a/components/autotask_psa/autotask_psa.app.mjs +++ b/components/autotask_psa/autotask_psa.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/botx/botx.app.mjs b/components/botx/botx.app.mjs index f6150a3a07623..7e155e23ffe12 100644 --- a/components/botx/botx.app.mjs +++ b/components/botx/botx.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/classmarker/classmarker.app.mjs b/components/classmarker/classmarker.app.mjs index f14662a598545..c937bd6d563e1 100644 --- a/components/classmarker/classmarker.app.mjs +++ b/components/classmarker/classmarker.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/consulta_unica/consulta_unica.app.mjs b/components/consulta_unica/consulta_unica.app.mjs index bf2801c0c5369..262e6cbd9f334 100644 --- a/components/consulta_unica/consulta_unica.app.mjs +++ b/components/consulta_unica/consulta_unica.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/currents_api/currents_api.app.mjs b/components/currents_api/currents_api.app.mjs index 8edebfef1e28e..068b060bc6089 100644 --- a/components/currents_api/currents_api.app.mjs +++ b/components/currents_api/currents_api.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/dappier/dappier.app.mjs b/components/dappier/dappier.app.mjs index 8e801c8d9d868..ceff9fe576e0d 100644 --- a/components/dappier/dappier.app.mjs +++ b/components/dappier/dappier.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/docker_engine/docker_engine.app.mjs b/components/docker_engine/docker_engine.app.mjs index d7b1b1d979f14..a19a7ef9ddc5d 100644 --- a/components/docker_engine/docker_engine.app.mjs +++ b/components/docker_engine/docker_engine.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/dungeon_fighter_online/dungeon_fighter_online.app.mjs b/components/dungeon_fighter_online/dungeon_fighter_online.app.mjs index be8dd600aa1b4..d6c592a71a57d 100644 --- a/components/dungeon_fighter_online/dungeon_fighter_online.app.mjs +++ b/components/dungeon_fighter_online/dungeon_fighter_online.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/emailverify_io/emailverify_io.app.mjs b/components/emailverify_io/emailverify_io.app.mjs index d8911c5423712..3e153ff12636b 100644 --- a/components/emailverify_io/emailverify_io.app.mjs +++ b/components/emailverify_io/emailverify_io.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/enginemailer/enginemailer.app.mjs b/components/enginemailer/enginemailer.app.mjs index ae7f9461ea35e..62e2ea5f1fb89 100644 --- a/components/enginemailer/enginemailer.app.mjs +++ b/components/enginemailer/enginemailer.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/extracta_ai/extracta_ai.app.mjs b/components/extracta_ai/extracta_ai.app.mjs index a8f13ab79a3b8..fc44a53aef2c7 100644 --- a/components/extracta_ai/extracta_ai.app.mjs +++ b/components/extracta_ai/extracta_ai.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/formatting/formatting.app.mjs b/components/formatting/formatting.app.mjs index 2686dd33b36cc..5f8369d97d73f 100644 --- a/components/formatting/formatting.app.mjs +++ b/components/formatting/formatting.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/getty_images/getty_images.app.mjs b/components/getty_images/getty_images.app.mjs index 8d21342140951..f67cb63ae9e0c 100644 --- a/components/getty_images/getty_images.app.mjs +++ b/components/getty_images/getty_images.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/google_identity/google_identity.app.mjs b/components/google_identity/google_identity.app.mjs index b84e80554d561..a863abbb310f9 100644 --- a/components/google_identity/google_identity.app.mjs +++ b/components/google_identity/google_identity.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/google_marketplace/google_marketplace.app.mjs b/components/google_marketplace/google_marketplace.app.mjs index 15b4c1cb6536d..fcf6c22775482 100644 --- a/components/google_marketplace/google_marketplace.app.mjs +++ b/components/google_marketplace/google_marketplace.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/goqr_me/goqr_me.app.mjs b/components/goqr_me/goqr_me.app.mjs index 41ad8de7fd42d..8818cbf1af8e8 100644 --- a/components/goqr_me/goqr_me.app.mjs +++ b/components/goqr_me/goqr_me.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/greenhouse_job_board_api/greenhouse_job_board_api.app.mjs b/components/greenhouse_job_board_api/greenhouse_job_board_api.app.mjs index c5fed482a2148..3f63eba80c5a5 100644 --- a/components/greenhouse_job_board_api/greenhouse_job_board_api.app.mjs +++ b/components/greenhouse_job_board_api/greenhouse_job_board_api.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/helpdesk/helpdesk.app.mjs b/components/helpdesk/helpdesk.app.mjs index b59f90da55868..e05a00fb174f1 100644 --- a/components/helpdesk/helpdesk.app.mjs +++ b/components/helpdesk/helpdesk.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/kraken_io/kraken_io.app.mjs b/components/kraken_io/kraken_io.app.mjs index cf89340420b82..98bfa910d850a 100644 --- a/components/kraken_io/kraken_io.app.mjs +++ b/components/kraken_io/kraken_io.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/leverly/leverly.app.mjs b/components/leverly/leverly.app.mjs index 3844ecdb13f72..0fc5a2cd73720 100644 --- a/components/leverly/leverly.app.mjs +++ b/components/leverly/leverly.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/livespace/livespace.app.mjs b/components/livespace/livespace.app.mjs index 63947067be26b..f2de3faf2b37e 100644 --- a/components/livespace/livespace.app.mjs +++ b/components/livespace/livespace.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/mailrelay/mailrelay.app.mjs b/components/mailrelay/mailrelay.app.mjs index f78b00f94354c..65026e4274606 100644 --- a/components/mailrelay/mailrelay.app.mjs +++ b/components/mailrelay/mailrelay.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/mailsoftly/mailsoftly.app.mjs b/components/mailsoftly/mailsoftly.app.mjs index 4a46b0375b988..113647612616f 100644 --- a/components/mailsoftly/mailsoftly.app.mjs +++ b/components/mailsoftly/mailsoftly.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/microsoft_dataverse/microsoft_dataverse.app.mjs b/components/microsoft_dataverse/microsoft_dataverse.app.mjs index 1866058d2a900..4919d2db2a745 100644 --- a/components/microsoft_dataverse/microsoft_dataverse.app.mjs +++ b/components/microsoft_dataverse/microsoft_dataverse.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/microsoft_teams_events/microsoft_teams_events.app.mjs b/components/microsoft_teams_events/microsoft_teams_events.app.mjs index 127120d06835f..ef875fe5740b1 100644 --- a/components/microsoft_teams_events/microsoft_teams_events.app.mjs +++ b/components/microsoft_teams_events/microsoft_teams_events.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/microsoft_word/microsoft_word.app.mjs b/components/microsoft_word/microsoft_word.app.mjs index e3a73e555167e..fb92939bb0526 100644 --- a/components/microsoft_word/microsoft_word.app.mjs +++ b/components/microsoft_word/microsoft_word.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/mindstudio/mindstudio.app.mjs b/components/mindstudio/mindstudio.app.mjs index 6b53a172d4805..756feb2798e13 100644 --- a/components/mindstudio/mindstudio.app.mjs +++ b/components/mindstudio/mindstudio.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/minerstat/minerstat.app.mjs b/components/minerstat/minerstat.app.mjs index b6e5cfd6f50e4..80d5962c3213f 100644 --- a/components/minerstat/minerstat.app.mjs +++ b/components/minerstat/minerstat.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/miyn/miyn.app.mjs b/components/miyn/miyn.app.mjs index 9be2da977d89b..672136a542d53 100644 --- a/components/miyn/miyn.app.mjs +++ b/components/miyn/miyn.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/mollie/mollie.app.mjs b/components/mollie/mollie.app.mjs index 1360aa48c77d4..7c15b42fb0cec 100644 --- a/components/mollie/mollie.app.mjs +++ b/components/mollie/mollie.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/netcore/netcore.app.mjs b/components/netcore/netcore.app.mjs index 27c59418168bd..9be9aed387163 100644 --- a/components/netcore/netcore.app.mjs +++ b/components/netcore/netcore.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/nutrient_document_web_services_api/nutrient_document_web_services_api.app.mjs b/components/nutrient_document_web_services_api/nutrient_document_web_services_api.app.mjs index 464201bc6638a..994ac5c9f412e 100644 --- a/components/nutrient_document_web_services_api/nutrient_document_web_services_api.app.mjs +++ b/components/nutrient_document_web_services_api/nutrient_document_web_services_api.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/onelogin/actions/create-user/create-user.mjs b/components/onelogin/actions/create-user/create-user.mjs new file mode 100644 index 0000000000000..7d6acd63cabec --- /dev/null +++ b/components/onelogin/actions/create-user/create-user.mjs @@ -0,0 +1,280 @@ +import { ConfigurationError } from "@pipedream/platform"; +import { parseObject } from "../../common/utils.mjs"; +import onelogin from "../../onelogin.app.mjs"; + +export default { + key: "onelogin-create-user", + name: "Create User", + description: "Create a new user in OneLogin with details. [See the documentation](https://developers.onelogin.com/api-docs/2/users/create-user)", + version: "0.0.1", + type: "action", + props: { + onelogin, + username: { + propDefinition: [ + onelogin, + "username", + ], + optional: true, + }, + email: { + propDefinition: [ + onelogin, + "email", + ], + optional: true, + }, + firstname: { + propDefinition: [ + onelogin, + "firstname", + ], + optional: true, + }, + lastname: { + propDefinition: [ + onelogin, + "lastname", + ], + optional: true, + }, + password: { + propDefinition: [ + onelogin, + "password", + ], + optional: true, + }, + passwordConfirmation: { + propDefinition: [ + onelogin, + "passwordConfirmation", + ], + optional: true, + }, + passwordAlgorithm: { + propDefinition: [ + onelogin, + "passwordAlgorithm", + ], + optional: true, + }, + salt: { + propDefinition: [ + onelogin, + "salt", + ], + optional: true, + }, + title: { + propDefinition: [ + onelogin, + "title", + ], + optional: true, + }, + department: { + propDefinition: [ + onelogin, + "department", + ], + optional: true, + }, + company: { + propDefinition: [ + onelogin, + "company", + ], + optional: true, + }, + comment: { + propDefinition: [ + onelogin, + "comment", + ], + optional: true, + }, + groupId: { + propDefinition: [ + onelogin, + "groupId", + ], + optional: true, + }, + roleIds: { + propDefinition: [ + onelogin, + "roleIds", + ], + optional: true, + }, + phone: { + propDefinition: [ + onelogin, + "phone", + ], + optional: true, + }, + state: { + propDefinition: [ + onelogin, + "state", + ], + optional: true, + }, + status: { + propDefinition: [ + onelogin, + "status", + ], + optional: true, + }, + directoryId: { + propDefinition: [ + onelogin, + "directoryId", + ], + optional: true, + }, + trustedIdpId: { + propDefinition: [ + onelogin, + "trustedIdpId", + ], + optional: true, + }, + managerUserId: { + propDefinition: [ + onelogin, + "userId", + ], + label: "Manager User ID", + description: "The OneLogin User ID for the user's manager", + optional: true, + }, + samaccountname: { + propDefinition: [ + onelogin, + "samaccountname", + ], + optional: true, + }, + memberOf: { + propDefinition: [ + onelogin, + "memberOf", + ], + optional: true, + }, + userPrincipalName: { + propDefinition: [ + onelogin, + "userPrincipalName", + ], + optional: true, + }, + distinguishedName: { + propDefinition: [ + onelogin, + "distinguishedName", + ], + optional: true, + }, + externalId: { + propDefinition: [ + onelogin, + "externalId", + ], + optional: true, + }, + openidName: { + propDefinition: [ + onelogin, + "openidName", + ], + optional: true, + }, + invalidLoginAttempts: { + propDefinition: [ + onelogin, + "invalidLoginAttempts", + ], + optional: true, + }, + preferredLocaleCode: { + propDefinition: [ + onelogin, + "preferredLocaleCode", + ], + optional: true, + }, + customAttributes: { + propDefinition: [ + onelogin, + "customAttributes", + ], + optional: true, + }, + mappings: { + propDefinition: [ + onelogin, + "mappings", + ], + optional: true, + }, + validatePolicy: { + propDefinition: [ + onelogin, + "validatePolicy", + ], + optional: true, + }, + }, + async run({ $ }) { + if (!this.email && !this.username) { + throw new ConfigurationError("You must provide at least `Email` or `Username` property."); + } + + const response = await this.onelogin.createUser({ + $, + data: { + email: this.email, + username: this.username, + firstname: this.firstname, + lastname: this.lastname, + password: this.password, + password_confirmation: this.passwordConfirmation, + password_algorithm: this.passwordAlgorithm, + salt: this.salt, + title: this.title, + department: this.department, + company: this.company, + comment: this.comment, + group_id: this.groupId, + role_ids: parseObject(this.roleIds), + phone: this.phone, + state: this.state && parseInt(this.state), + status: this.status && parseInt(this.status), + directory_id: this.directoryId, + trusted_idp_id: this.trustedIdpId, + manager_user_id: this.managerUserId, + samaccountname: this.samaccountname, + member_of: this.memberOf, + userprincipalname: this.userPrincipalName, + distinguished_name: this.distinguishedName, + external_id: this.externalId, + openid_name: this.openidName, + invalid_login_attempts: this.invalidLoginAttempts, + preferred_locale_code: this.preferredLocaleCode, + custom_attributes: this.customAttributes, + }, + params: { + mappings: this.mappings, + validate_policy: this.validatePolicy, + }, + }); + + $.export("$summary", `Successfully created user with ID: ${response.id}`); + return response; + }, +}; diff --git a/components/onelogin/actions/revoke-user-sessions/revoke-user-sessions.mjs b/components/onelogin/actions/revoke-user-sessions/revoke-user-sessions.mjs new file mode 100644 index 0000000000000..d05e2503eabee --- /dev/null +++ b/components/onelogin/actions/revoke-user-sessions/revoke-user-sessions.mjs @@ -0,0 +1,30 @@ +import onelogin from "../../onelogin.app.mjs"; + +export default { + key: "onelogin-revoke-user-sessions", + name: "Revoke User Sessions", + description: "Revoke all active sessions for a specified user in OneLogin. [See the documentation](https://developers.onelogin.com/api-docs/2/users/update-user)", + version: "0.0.1", + type: "action", + props: { + onelogin, + userId: { + propDefinition: [ + onelogin, + "userId", + ], + }, + }, + async run({ $ }) { + const response = await this.onelogin.updateUser({ + $, + userId: this.userId, + data: { + status: 0, + }, + }); + + $.export("$summary", `Successfully revoked all sessions for user with ID: ${this.userId}`); + return response; + }, +}; diff --git a/components/onelogin/actions/update-user/update-user.mjs b/components/onelogin/actions/update-user/update-user.mjs new file mode 100644 index 0000000000000..41e6be016d6f8 --- /dev/null +++ b/components/onelogin/actions/update-user/update-user.mjs @@ -0,0 +1,284 @@ +import { parseObject } from "../../common/utils.mjs"; +import onelogin from "../../onelogin.app.mjs"; + +export default { + key: "onelogin-update-user", + name: "Update User", + description: "Update an existing user's details in OneLogin. [See the documentation](https://developers.onelogin.com/api-docs/2/users/update-user)", + version: "0.0.1", + type: "action", + props: { + onelogin, + userId: { + propDefinition: [ + onelogin, + "userId", + ], + }, + username: { + propDefinition: [ + onelogin, + "username", + ], + description: "The user's username", + optional: true, + }, + email: { + propDefinition: [ + onelogin, + "email", + ], + description: "The user's email address", + optional: true, + }, + firstname: { + propDefinition: [ + onelogin, + "firstname", + ], + optional: true, + }, + lastname: { + propDefinition: [ + onelogin, + "lastname", + ], + optional: true, + }, + password: { + propDefinition: [ + onelogin, + "password", + ], + optional: true, + }, + passwordConfirmation: { + propDefinition: [ + onelogin, + "passwordConfirmation", + ], + optional: true, + }, + passwordAlgorithm: { + propDefinition: [ + onelogin, + "passwordAlgorithm", + ], + optional: true, + }, + salt: { + propDefinition: [ + onelogin, + "salt", + ], + optional: true, + }, + title: { + propDefinition: [ + onelogin, + "title", + ], + optional: true, + }, + department: { + propDefinition: [ + onelogin, + "department", + ], + optional: true, + }, + company: { + propDefinition: [ + onelogin, + "company", + ], + optional: true, + }, + comment: { + propDefinition: [ + onelogin, + "comment", + ], + optional: true, + }, + groupId: { + propDefinition: [ + onelogin, + "groupId", + ], + optional: true, + }, + roleIds: { + propDefinition: [ + onelogin, + "roleIds", + ], + optional: true, + }, + phone: { + propDefinition: [ + onelogin, + "phone", + ], + optional: true, + }, + state: { + propDefinition: [ + onelogin, + "state", + ], + optional: true, + }, + status: { + propDefinition: [ + onelogin, + "status", + ], + optional: true, + }, + directoryId: { + propDefinition: [ + onelogin, + "directoryId", + ], + optional: true, + }, + trustedIdpId: { + propDefinition: [ + onelogin, + "trustedIdpId", + ], + optional: true, + }, + managerUserId: { + propDefinition: [ + onelogin, + "userId", + ], + label: "Manager User ID", + description: "The OneLogin User ID for the user's manager", + optional: true, + }, + samaccountname: { + propDefinition: [ + onelogin, + "samaccountname", + ], + optional: true, + }, + memberOf: { + propDefinition: [ + onelogin, + "memberOf", + ], + optional: true, + }, + userPrincipalName: { + propDefinition: [ + onelogin, + "userPrincipalName", + ], + optional: true, + }, + distinguishedName: { + propDefinition: [ + onelogin, + "distinguishedName", + ], + optional: true, + }, + externalId: { + propDefinition: [ + onelogin, + "externalId", + ], + optional: true, + }, + openidName: { + propDefinition: [ + onelogin, + "openidName", + ], + optional: true, + }, + invalidLoginAttempts: { + propDefinition: [ + onelogin, + "invalidLoginAttempts", + ], + optional: true, + }, + preferredLocaleCode: { + propDefinition: [ + onelogin, + "preferredLocaleCode", + ], + optional: true, + }, + customAttributes: { + propDefinition: [ + onelogin, + "customAttributes", + ], + optional: true, + }, + mappings: { + propDefinition: [ + onelogin, + "mappings", + ], + optional: true, + }, + validatePolicy: { + propDefinition: [ + onelogin, + "validatePolicy", + ], + optional: true, + }, + }, + async run({ $ }) { + const response = await this.onelogin.updateUser({ + $, + userId: this.userId, + data: { + email: this.email, + username: this.username, + firstname: this.firstname, + lastname: this.lastname, + password: this.password, + password_confirmation: this.passwordConfirmation, + password_algorithm: this.passwordAlgorithm, + salt: this.salt, + title: this.title, + department: this.department, + company: this.company, + comment: this.comment, + group_id: this.groupId, + role_ids: parseObject(this.roleIds), + phone: this.phone, + state: this.state && parseInt(this.state), + status: this.status && parseInt(this.status), + directory_id: this.directoryId, + trusted_idp_id: this.trustedIdpId, + manager_user_id: this.managerUserId, + samaccountname: this.samaccountname, + member_of: this.memberOf, + userprincipalname: this.userPrincipalName, + distinguished_name: this.distinguishedName, + external_id: this.externalId, + openid_name: this.openidName, + invalid_login_attempts: this.invalidLoginAttempts, + preferred_locale_code: this.preferredLocaleCode, + custom_attributes: this.customAttributes, + }, + params: { + mappings: this.mappings, + validate_policy: this.validatePolicy, + }, + }); + + $.export("$summary", `Successfully updated user with ID: ${this.userId}`); + return response; + }, +}; diff --git a/components/onelogin/common/constants.mjs b/components/onelogin/common/constants.mjs new file mode 100644 index 0000000000000..619c41bb003b8 --- /dev/null +++ b/components/onelogin/common/constants.mjs @@ -0,0 +1,114 @@ +export const MAPPINGS_OPTIONS = [ + { + label: "Async - Mappings run after the API returns a response", + value: "async", + }, + { + label: "Sync - Mappings run before the API returns a response", + value: "sync", + }, + { + label: "Disabled - Mappings don't run for this user", + value: "disabled", + }, +]; + +export const PASSWORD_ALGORITHM_OPTIONS = [ + "salt+sha256", + "sha256+salt", + "bcrypt", +]; + +export const STATE_OPTIONS = [ + { + label: "Unapproved", + value: "0", + }, + { + label: "Approved", + value: "1", + }, + { + label: "Rejected", + value: "2", + }, + { + label: "Unlicensed", + value: "3", + }, +]; + +export const STATUS_OPTIONS = [ + { + label: "Unactivated", + value: "0", + }, + { + label: "Active", + value: "1", + }, + { + label: "Suspended", + value: "2", + }, + { + label: "Locked", + value: "3", + }, + { + label: "Password Expired", + value: "4", + }, + { + label: "Awaiting Password Reset", + value: "5", + }, + { + label: "Password Pending", + value: "7", + }, + { + label: "Security Questions Required", + value: "8", + }, +]; + +export const EVENT_TYPES = { + USER_CREATED: 1, + LOGIN_ATTEMPT: 2, + DIRECTORY_SYNC: 3, +}; + +export const LOGIN_STATUS_OPTIONS = [ + { + label: "All", + value: "", + }, + { + label: "Successful", + value: "success", + }, + { + label: "Failed", + value: "failed", + }, +]; + +export const SYNC_STATUS_OPTIONS = [ + { + label: "All", + value: "", + }, + { + label: "Success", + value: "success", + }, + { + label: "Failed", + value: "failed", + }, + { + label: "In Progress", + value: "in_progress", + }, +]; diff --git a/components/onelogin/common/utils.mjs b/components/onelogin/common/utils.mjs new file mode 100644 index 0000000000000..94c2fdf11f26e --- /dev/null +++ b/components/onelogin/common/utils.mjs @@ -0,0 +1,30 @@ +export const parseObject = (obj) => { + if (!obj) return undefined; + + if (Array.isArray(obj)) { + return obj.map((item) => { + if (typeof item === "string") { + try { + return JSON.parse(item); + } catch (e) { + return item; + } + } + return item; + }); + } + if (typeof obj === "string") { + try { + return JSON.parse(obj); + } catch (e) { + return obj; + } + } + return obj; +}; + +export const snakeCaseToTitleCase = (s) => + s.toLowerCase() + .replace(/^_*(.)|_+(.)/g, (s, c, d) => c + ? c.toUpperCase() + : " " + d.toUpperCase()); diff --git a/components/onelogin/onelogin.app.mjs b/components/onelogin/onelogin.app.mjs index bc625b9d09792..009ac7d8bff1e 100644 --- a/components/onelogin/onelogin.app.mjs +++ b/components/onelogin/onelogin.app.mjs @@ -1,11 +1,342 @@ +import { axios } from "@pipedream/platform"; +import { + MAPPINGS_OPTIONS, + PASSWORD_ALGORITHM_OPTIONS, + STATE_OPTIONS, + STATUS_OPTIONS, +} from "./common/constants.mjs"; +import { snakeCaseToTitleCase } from "./common/utils.mjs"; + export default { type: "app", app: "onelogin", - propDefinitions: {}, + propDefinitions: { + groupId: { + type: "integer", + label: "Group ID", + description: "The ID of the Group in OneLogin that the user will be assigned to", + async options({ prevContext }) { + const { + data, pagination, + } = await this.listGroups({ + params: { + after_cursor: prevContext?.nextCursor, + }, + }); + + return { + options: data.map(({ + id: value, name: label, + }) => ({ + label, + value, + })), + context: { + nextCursor: pagination?.after_cursor, + }, + }; + }, + }, + roleIds: { + type: "integer[]", + label: "Role IDs", + description: "A list of OneLogin Role IDs the user will be assigned to", + async options({ prevContext }) { + const { + data, pagination, + } = await this.listRoles({ + params: { + after_cursor: prevContext?.nextCursor, + }, + }); + + return { + options: data.map(({ + id: value, name: label, + }) => ({ + label, + value, + })), + context: { + nextCursor: pagination?.after_cursor, + }, + }; + }, + }, + userId: { + type: "string", + label: "User ID", + description: "The ID of the user", + async options({ page }) { + const data = await this.listUsers({ + params: { + page: page + 1, + }, + }); + + return data.map(({ + id: value, username, email, + }) => ({ + label: `${username || email}`, + value, + })); + }, + }, + eventType: { + type: "string", + label: "Event Type", + description: "The type of event to emit", + async options({ page }) { + const { data } = await this.listEventTypes({ + params: { + page, + }, + }); + + return data.map(({ + id: value, name, description, + }) => ({ + label: `${snakeCaseToTitleCase(name)}: ${description}`, + value, + })); + }, + }, + username: { + type: "string", + label: "Username", + description: "The user's username (required if email is not provided)", + }, + email: { + type: "string", + label: "Email", + description: "The user's email address (required if username is not provided)", + }, + firstname: { + type: "string", + label: "First Name", + description: "The user's first name", + }, + lastname: { + type: "string", + label: "Last Name", + description: "The user's last name", + }, + password: { + type: "string", + label: "Password", + description: "The password to set for the user", + secret: true, + }, + passwordConfirmation: { + type: "string", + label: "Password Confirmation", + description: "Required if the password is being set", + secret: true, + }, + passwordAlgorithm: { + type: "string", + label: "Password Algorithm", + description: "Use this when importing a password that's already hashed. [See the documentation](https://developers.onelogin.com/api-docs/2/users/create-user) for further information", + options: PASSWORD_ALGORITHM_OPTIONS, + }, + salt: { + type: "string", + label: "Salt", + description: "The salt value used with the `Password Algorithm`", + }, + title: { + type: "string", + label: "Title", + description: "The user's job title", + }, + department: { + type: "string", + label: "Department", + description: "The user's department", + }, + company: { + type: "string", + label: "Company", + description: "The user's company", + }, + comment: { + type: "string", + label: "Comment", + description: "Free text related to the user", + }, + phone: { + type: "string", + label: "Phone", + description: "The [E.164](https://en.wikipedia.org/wiki/E.164) format phone number for a user", + }, + state: { + type: "string", + label: "State", + description: "The user's state", + options: STATE_OPTIONS, + }, + status: { + type: "string", + label: "Status", + description: "The user's status", + options: STATUS_OPTIONS, + }, + directoryId: { + type: "integer", + label: "Directory ID", + description: "The ID of the OneLogin Directory the user will be assigned to", + }, + trustedIdpId: { + type: "integer", + label: "Trusted IDP ID", + description: "The ID of the OneLogin Trusted IDP the user will be assigned to", + }, + samaccountname: { + type: "string", + label: "SAM Account Name", + description: "The user's Active Directory username", + }, + memberOf: { + type: "string", + label: "Member Of", + description: "The user's directory membership", + }, + userPrincipalName: { + type: "string", + label: "User Principal Name", + description: "The principle name of the user", + }, + distinguishedName: { + type: "string", + label: "Distinguished Name", + description: "The distinguished name of the user", + }, + externalId: { + type: "string", + label: "External ID", + description: "The ID of the user in an external directory", + }, + openidName: { + type: "string", + label: "OpenID Name", + description: "The name configured for use in other applications that accept OpenID for sign-in", + }, + invalidLoginAttempts: { + type: "integer", + label: "Invalid Login Attempts", + description: "The number of sequential invalid login attempts the user has made", + }, + preferredLocaleCode: { + type: "string", + label: "Preferred Locale Code", + description: "The 2-character language locale for the user, such as `en` for English or `es` for Spanish.", + }, + customAttributes: { + type: "object", + label: "Custom Attributes", + description: "An object to contain any other custom attributes you have configured", + }, + mappings: { + type: "string", + label: "Mappings", + description: "Controls how mappings will be applied to the user on creation.", + options: MAPPINGS_OPTIONS, + }, + validatePolicy: { + type: "boolean", + label: "Validate Policy", + description: "Will passwords validate against the User Policy?", + }, + }, methods: { - // this.$auth contains connected account data - authKeys() { - console.log(Object.keys(this.$auth)); + _baseUrl() { + return `https://${this.$auth.subdomain}.onelogin.com/api`; + }, + _headers() { + return { + Authorization: `Bearer ${this.$auth.oauth_access_token}`, + }; + }, + _makeRequest({ + $ = this, path, ...opts + }) { + return axios($, { + url: this._baseUrl() + path, + headers: this._headers(), + ...opts, + }); + }, + listGroups(opts = {}) { + return this._makeRequest({ + path: "/1/groups", + ...opts, + }); + }, + listRoles(opts = {}) { + return this._makeRequest({ + path: "/1/roles", + ...opts, + }); + }, + listUsers(opts = {}) { + return this._makeRequest({ + path: "/2/users", + ...opts, + }); + }, + createUser(opts = {}) { + return this._makeRequest({ + method: "POST", + path: "/2/users", + ...opts, + }); + }, + updateUser({ + userId, ...opts + }) { + return this._makeRequest({ + method: "PUT", + path: `/2/users/${userId}`, + ...opts, + }); + }, + listEvents(opts = {}) { + return this._makeRequest({ + path: "/1/events", + ...opts, + }); + }, + listEventTypes(opts = {}) { + return this._makeRequest({ + path: "/1/events/types", + ...opts, + }); + }, + async *paginate({ + fn, params = {}, maxResults = null, ...opts + }) { + let count = 0; + let nextCursor = null; + + do { + params.after_cursor = nextCursor; + const { + data, + pagination: { after_cursor }, + } = await fn({ + params, + ...opts, + }); + for (const d of data) { + yield d; + + if (maxResults && ++count === maxResults) { + return count; + } + } + + nextCursor = after_cursor; + } while (nextCursor); }, }, }; diff --git a/components/onelogin/package.json b/components/onelogin/package.json index 0945197d47fa2..e7b36a0463c9d 100644 --- a/components/onelogin/package.json +++ b/components/onelogin/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/onelogin", - "version": "0.0.1", + "version": "0.1.0", "description": "Pipedream OneLogin Components", "main": "onelogin.app.mjs", "keywords": [ @@ -11,5 +11,8 @@ "author": "Pipedream (https://pipedream.com/)", "publishConfig": { "access": "public" + }, + "dependencies": { + "@pipedream/platform": "^3.1.0" } } diff --git a/components/onelogin/sources/common/base.mjs b/components/onelogin/sources/common/base.mjs new file mode 100644 index 0000000000000..1f5d0d2c95d46 --- /dev/null +++ b/components/onelogin/sources/common/base.mjs @@ -0,0 +1,61 @@ +import { DEFAULT_POLLING_SOURCE_TIMER_INTERVAL } from "@pipedream/platform"; +import onelogin from "../../onelogin.app.mjs"; + +export default { + props: { + onelogin, + db: "$.service.db", + timer: { + type: "$.interface.timer", + default: { + intervalSeconds: DEFAULT_POLLING_SOURCE_TIMER_INTERVAL, + }, + }, + }, + methods: { + _getLastDate() { + return this.db.get("lastDate") || "1970-01-01T00:00:00Z"; + }, + _setLastDate(lastDate) { + this.db.set("lastDate", lastDate); + }, + async emitEvent(maxResults = false) { + const lastDate = this._getLastDate(); + + const response = this.onelogin.paginate({ + fn: this.onelogin.listEvents, + maxResults, + params: { + since: lastDate, + sort: "-created_at", + event_type_id: this.getEventType(), + }, + }); + + let responseArray = []; + for await (const item of response) { + responseArray.push(item); + } + + if (responseArray.length) { + this._setLastDate(responseArray[0].created_at); + } + + for (const item of responseArray.reverse()) { + this.$emit(item, { + id: item.id, + summary: this.getSummary(item), + ts: Date.parse(item.created_at), + }); + } + }, + }, + hooks: { + async deploy() { + await this.emitEvent(25); + }, + }, + async run() { + await this.emitEvent(); + }, +}; diff --git a/components/onelogin/sources/new-directory-sync-event/new-directory-sync-event.mjs b/components/onelogin/sources/new-directory-sync-event/new-directory-sync-event.mjs new file mode 100644 index 0000000000000..fc1644dc306a9 --- /dev/null +++ b/components/onelogin/sources/new-directory-sync-event/new-directory-sync-event.mjs @@ -0,0 +1,22 @@ +import common from "../common/base.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "onelogin-new-directory-sync-event", + name: "New Directory Sync Event", + description: "Emit new event when a directory sync event is triggered in OneLogin. [See the documentation](https://developers.onelogin.com/api-docs/1/events/get-events)", + version: "0.0.1", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + getEventType() { + return 117; + }, + getSummary(item) { + return `Directory sync event: ${item.directory_sync_run_id}`; + }, + }, + sampleEmit, +}; diff --git a/components/onelogin/sources/new-directory-sync-event/test-event.mjs b/components/onelogin/sources/new-directory-sync-event/test-event.mjs new file mode 100644 index 0000000000000..fdcb45e3921f3 --- /dev/null +++ b/components/onelogin/sources/new-directory-sync-event/test-event.mjs @@ -0,0 +1,37 @@ +export default { + "id": 999999999, + "created_at": "2014-12-19T02:02:39.276Z", + "account_id": 55555, + "user_id": 88888888, + "event_type_id": 117, + "notes": null, + "ipaddr": "11.111.11.111", + "actor_user_id": 7777777, + "assuming_acting_user_id": null, + "role_id": null, + "app_id": null, + "group_id": null, + "otp_device_id": null, + "policy_id": null, + "actor_system": "", + "custom_message": null, + "role_name": null, + "app_name": null, + "group_name": null, + "actor_user_name": "Xavier Wong", + "user_name": "Xavier Wong", + "policy_name": null, + "otp_device_name": null, + "operation_name": null, + "directory_sync_run_id": 123, + "directory_id": null, + "resolution": null, + "client_id": null, + "resource_type_id": null, + "error_description": null, + "proxy_ip": null, + "risk_score": null, + "risk_reasons": null, + "risk_cookie_id": null, + "browser_fingerprint": null +} \ No newline at end of file diff --git a/components/onelogin/sources/new-event/new-event.mjs b/components/onelogin/sources/new-event/new-event.mjs new file mode 100644 index 0000000000000..af68457de8409 --- /dev/null +++ b/components/onelogin/sources/new-event/new-event.mjs @@ -0,0 +1,32 @@ +import common from "../common/base.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "onelogin-new-event", + name: "New Event", + description: "Emit new event when a selected event occurs in OneLogin. [See the documentation](https://developers.onelogin.com/api-docs/1/events/get-events)", + version: "0.0.1", + type: "source", + dedupe: "unique", + props: { + ...common.props, + eventType: { + propDefinition: [ + common.props.onelogin, + "eventType", + ], + withLabel: true, + }, + }, + methods: { + ...common.methods, + getEventType() { + return this.eventType.value; + }, + getSummary() { + return `New event: ${this.eventType.label}`; + }, + }, + sampleEmit, +}; diff --git a/components/onelogin/sources/new-event/test-event.mjs b/components/onelogin/sources/new-event/test-event.mjs new file mode 100644 index 0000000000000..ac608920d5ed9 --- /dev/null +++ b/components/onelogin/sources/new-event/test-event.mjs @@ -0,0 +1,37 @@ +export default { + "id":36114558381, + "created_at":"2025-07-21T17:30:44.190Z", + "account_id":452500, + "user_id":279115532, + "event_type_id":111, + "notes":null, + "ipaddr":"98.80.221.195", + "actor_user_id":null, + "assuming_acting_user_id":null, + "role_id":null, + "app_id":null, + "group_id":null, + "otp_device_id":null, + "policy_id":null, + "actor_system":"API", + "custom_message":null, + "role_name":null, + "app_name":null, + "group_name":null, + "actor_user_name":"API", + "user_name":"Username", + "policy_name":null, + "otp_device_name":null, + "operation_name":null, + "directory_sync_run_id":null, + "directory_id":null, + "resolution":null, + "client_id":"1e87e84576a77d999e89e3ba110df9461decc2b1564bb1b9aa3e05fcbafb5918", + "resource_type_id":null, + "error_description":null, + "proxy_ip":null, + "risk_score":null, + "risk_reasons":null, + "risk_cookie_id":null, + "browser_fingerprint":null, +}; \ No newline at end of file diff --git a/components/onelogin/sources/new-user/new-user.mjs b/components/onelogin/sources/new-user/new-user.mjs new file mode 100644 index 0000000000000..c7c70fc1e9f39 --- /dev/null +++ b/components/onelogin/sources/new-user/new-user.mjs @@ -0,0 +1,22 @@ +import common from "../common/base.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "onelogin-new-user", + name: "New User Created", + description: "Emit new event when a user is created in OneLogin. [See the documentation](https://developers.onelogin.com/api-docs/1/events/get-events)", + version: "0.0.1", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + getEventType() { + return 13; + }, + getSummary(item) { + return `New user created with ID: ${item.user_id}`; + }, + }, + sampleEmit, +}; diff --git a/components/onelogin/sources/new-user/test-event.mjs b/components/onelogin/sources/new-user/test-event.mjs new file mode 100644 index 0000000000000..8be0ea41bde98 --- /dev/null +++ b/components/onelogin/sources/new-user/test-event.mjs @@ -0,0 +1,37 @@ +export default { + "id":36114558381, + "created_at":"2025-07-21T17:30:44.190Z", + "account_id":452500, + "user_id":279115532, + "event_type_id":13, + "notes":null, + "ipaddr":"98.80.221.195", + "actor_user_id":null, + "assuming_acting_user_id":null, + "role_id":null, + "app_id":null, + "group_id":null, + "otp_device_id":null, + "policy_id":null, + "actor_system":"API", + "custom_message":null, + "role_name":null, + "app_name":null, + "group_name":null, + "actor_user_name":"API", + "user_name":"Username", + "policy_name":null, + "otp_device_name":null, + "operation_name":null, + "directory_sync_run_id":null, + "directory_id":null, + "resolution":null, + "client_id":"1e87e84576a77d999e89e3ba110df9461decc2b1564bb1b9aa3e05fcbafb5918", + "resource_type_id":null, + "error_description":null, + "proxy_ip":null, + "risk_score":null, + "risk_reasons":null, + "risk_cookie_id":null, + "browser_fingerprint":null, +}; \ No newline at end of file diff --git a/components/outline/outline.app.mjs b/components/outline/outline.app.mjs index b8cfb9d189c9a..7c1fb1d0c675d 100644 --- a/components/outline/outline.app.mjs +++ b/components/outline/outline.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/persanaai/persanaai.app.mjs b/components/persanaai/persanaai.app.mjs index 86dd4c98f80da..849b6ed05e66b 100644 --- a/components/persanaai/persanaai.app.mjs +++ b/components/persanaai/persanaai.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/planday/planday.app.mjs b/components/planday/planday.app.mjs index bc4b76ce0e48e..92c6edbed899f 100644 --- a/components/planday/planday.app.mjs +++ b/components/planday/planday.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/provesource/provesource.app.mjs b/components/provesource/provesource.app.mjs index e2ad1634be81c..6a428e8dd3ea3 100644 --- a/components/provesource/provesource.app.mjs +++ b/components/provesource/provesource.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/rewiser/rewiser.app.mjs b/components/rewiser/rewiser.app.mjs index ef1fd0b3eefa4..ca620607b3660 100644 --- a/components/rewiser/rewiser.app.mjs +++ b/components/rewiser/rewiser.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/rize/rize.app.mjs b/components/rize/rize.app.mjs index 0a98323882ab3..0df6a2f21662f 100644 --- a/components/rize/rize.app.mjs +++ b/components/rize/rize.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/runsignup/runsignup.app.mjs b/components/runsignup/runsignup.app.mjs index d8fa2d880df08..43901dffae792 100644 --- a/components/runsignup/runsignup.app.mjs +++ b/components/runsignup/runsignup.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/swarmnode/swarmnode.app.mjs b/components/swarmnode/swarmnode.app.mjs index 0412f74d62051..86fb5d3e93a24 100644 --- a/components/swarmnode/swarmnode.app.mjs +++ b/components/swarmnode/swarmnode.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/systeme_io/systeme_io.app.mjs b/components/systeme_io/systeme_io.app.mjs index 8f1bc6252ac7b..85117e7da39f9 100644 --- a/components/systeme_io/systeme_io.app.mjs +++ b/components/systeme_io/systeme_io.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/tailscale/tailscale.app.mjs b/components/tailscale/tailscale.app.mjs index a96637d6f8788..6bae89a708b0c 100644 --- a/components/tailscale/tailscale.app.mjs +++ b/components/tailscale/tailscale.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/test_apps_for_switching_appslug_009/test_apps_for_switching_appslug_009.app.mjs b/components/test_apps_for_switching_appslug_009/test_apps_for_switching_appslug_009.app.mjs index 06b4262318b77..ad43c7878e2af 100644 --- a/components/test_apps_for_switching_appslug_009/test_apps_for_switching_appslug_009.app.mjs +++ b/components/test_apps_for_switching_appslug_009/test_apps_for_switching_appslug_009.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/verifiedemail/verifiedemail.app.mjs b/components/verifiedemail/verifiedemail.app.mjs index 759ae30fb15b6..f68acba2700a8 100644 --- a/components/verifiedemail/verifiedemail.app.mjs +++ b/components/verifiedemail/verifiedemail.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/vlm_run/vlm_run.app.mjs b/components/vlm_run/vlm_run.app.mjs index 9a0b7f1082eda..a59c279946218 100644 --- a/components/vlm_run/vlm_run.app.mjs +++ b/components/vlm_run/vlm_run.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/wafrow/wafrow.app.mjs b/components/wafrow/wafrow.app.mjs index 160f980b7c7df..e2047b3521f5e 100644 --- a/components/wafrow/wafrow.app.mjs +++ b/components/wafrow/wafrow.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/woodelivery/woodelivery.app.mjs b/components/woodelivery/woodelivery.app.mjs index c4d2186f020d7..633c661351002 100644 --- a/components/woodelivery/woodelivery.app.mjs +++ b/components/woodelivery/woodelivery.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/yepcode/yepcode.app.mjs b/components/yepcode/yepcode.app.mjs index 1e3bd797be975..91af1755a10a1 100644 --- a/components/yepcode/yepcode.app.mjs +++ b/components/yepcode/yepcode.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/zoho_fms/zoho_fms.app.mjs b/components/zoho_fms/zoho_fms.app.mjs index 4a7762ca62a68..72c6634d0fd61 100644 --- a/components/zoho_fms/zoho_fms.app.mjs +++ b/components/zoho_fms/zoho_fms.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b19dba778b794..606b52e255141 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9347,7 +9347,11 @@ importers: components/onehash: {} - components/onelogin: {} + components/onelogin: + dependencies: + '@pipedream/platform': + specifier: ^3.1.0 + version: 3.1.0 components/onenote: dependencies: @@ -11493,8 +11497,7 @@ importers: components/rewardful: {} - components/rewiser: - specifiers: {} + components/rewiser: {} components/rex: dependencies: @@ -37258,6 +37261,8 @@ snapshots: '@putout/operator-filesystem': 5.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3)) '@putout/operator-json': 2.2.0 putout: 36.13.1(eslint@8.57.1)(typescript@5.6.3) + transitivePeerDependencies: + - supports-color '@putout/operator-regexp@1.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3))': dependencies: