diff --git a/components/seven/.gitignore b/components/seven/.gitignore deleted file mode 100644 index ec761ccab7595..0000000000000 --- a/components/seven/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.js -*.mjs -dist \ No newline at end of file diff --git a/components/seven/actions/lookup-cnam/lookup-cnam.mjs b/components/seven/actions/lookup-cnam/lookup-cnam.mjs new file mode 100644 index 0000000000000..8a0026467581b --- /dev/null +++ b/components/seven/actions/lookup-cnam/lookup-cnam.mjs @@ -0,0 +1,30 @@ +import seven from "../../seven.app.mjs"; + +export default { + key: "seven-lookup-cnam", + name: "Lookup CNAM", + description: "Look up caller name information via Seven. [See the documentation](https://docs.seven.io/en/rest-api/endpoints/lookup#cnam)", + version: "0.0.1", + type: "action", + props: { + seven, + number: { + propDefinition: [ + seven, + "number", + ], + }, + }, + async run({ $ }) { + const response = await this.seven.lookupCnam({ + $, + params: { + number: this.number, + }, + }); + if (response.success) { + $.export("$summary", `Successfully looked up caller information for number: ${this.number}`); + } + return response; + }, +}; diff --git a/components/seven/actions/lookup-format/lookup-format.mjs b/components/seven/actions/lookup-format/lookup-format.mjs new file mode 100644 index 0000000000000..d351f038a51df --- /dev/null +++ b/components/seven/actions/lookup-format/lookup-format.mjs @@ -0,0 +1,30 @@ +import seven from "../../seven.app.mjs"; + +export default { + key: "seven-lookup-format", + name: "Lookup Format", + description: "Look up phone number formatting via Seven. [See the documentation](https://docs.seven.io/en/rest-api/endpoints/lookup#format)", + version: "0.0.1", + type: "action", + props: { + seven, + number: { + propDefinition: [ + seven, + "number", + ], + }, + }, + async run({ $ }) { + const response = await this.seven.lookupFormat({ + $, + params: { + number: this.number, + }, + }); + if (response.success) { + $.export("$summary", `Successfully looked up phone number formatting for number: ${this.number}`); + } + return response; + }, +}; diff --git a/components/seven/actions/lookup-hlr/lookup-hlr.mjs b/components/seven/actions/lookup-hlr/lookup-hlr.mjs new file mode 100644 index 0000000000000..cb21cb37d99e8 --- /dev/null +++ b/components/seven/actions/lookup-hlr/lookup-hlr.mjs @@ -0,0 +1,30 @@ +import seven from "../../seven.app.mjs"; + +export default { + key: "seven-lookup-hlr", + name: "Lookup HLR", + description: "Look up home location register information via Seven. [See the documentation](https://docs.seven.io/en/rest-api/endpoints/lookup#hlr)", + version: "0.0.1", + type: "action", + props: { + seven, + number: { + propDefinition: [ + seven, + "number", + ], + }, + }, + async run({ $ }) { + const response = await this.seven.lookupHlr({ + $, + params: { + number: this.number, + }, + }); + if (response.success) { + $.export("$summary", `Successfully looked up location register information for number: ${this.number}`); + } + return response; + }, +}; diff --git a/components/seven/actions/make-tts-call/make-tts-call.mjs b/components/seven/actions/make-tts-call/make-tts-call.mjs new file mode 100644 index 0000000000000..f13c2ac9c4027 --- /dev/null +++ b/components/seven/actions/make-tts-call/make-tts-call.mjs @@ -0,0 +1,34 @@ +import seven from "../../seven.app.mjs"; + +export default { + key: "seven-make-tts-call", + name: "Make TTS Call", + description: "Make a text-to-speech call via Seven. [See the documentation](https://docs.seven.io/en/rest-api/endpoints/voice#send-voice-call)", + version: "0.0.1", + type: "action", + props: { + seven, + to: { + propDefinition: [ + seven, + "to", + ], + }, + text: { + type: "string", + label: "Text", + description: "Text message to be read out", + }, + }, + async run({ $ }) { + const response = await this.seven.sendTtsCall({ + $, + data: { + to: this.to, + text: this.text, + }, + }); + $.export("$summary", `Successfully sent TTS call to number: ${this.to}`); + return response; + }, +}; diff --git a/components/seven/actions/send-sms/send-sms.mjs b/components/seven/actions/send-sms/send-sms.mjs new file mode 100644 index 0000000000000..4edbd17529570 --- /dev/null +++ b/components/seven/actions/send-sms/send-sms.mjs @@ -0,0 +1,34 @@ +import seven from "../../seven.app.mjs"; + +export default { + key: "seven-send-sms", + name: "Send SMS", + description: "Send SMS via Seven. [See the documentation](https://docs.seven.io/en/rest-api/endpoints/sms#send-sms)", + version: "0.0.1", + type: "action", + props: { + seven, + to: { + propDefinition: [ + seven, + "to", + ], + }, + text: { + type: "string", + label: "Text", + description: "SMS message to send", + }, + }, + async run({ $ }) { + const response = await this.seven.sendSms({ + $, + data: { + to: this.to, + text: this.text, + }, + }); + $.export("$summary", `Successfully sent SMS message to number: ${this.to}`); + return response; + }, +}; diff --git a/components/seven/app/seven.app.ts b/components/seven/app/seven.app.ts deleted file mode 100644 index 973fdfdc01f07..0000000000000 --- a/components/seven/app/seven.app.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { defineApp } from "@pipedream/types"; - -export default defineApp({ - type: "app", - app: "seven", - propDefinitions: {}, - methods: { - // this.$auth contains connected account data - authKeys() { - console.log(Object.keys(this.$auth)); - }, - }, -}); \ No newline at end of file diff --git a/components/seven/package.json b/components/seven/package.json index 274b60fa603d0..93898e9636f80 100644 --- a/components/seven/package.json +++ b/components/seven/package.json @@ -1,16 +1,18 @@ { "name": "@pipedream/seven", - "version": "0.0.1", + "version": "0.1.0", "description": "Pipedream Seven Components", - "main": "dist/app/seven.app.mjs", + "main": "seven.app.mjs", "keywords": [ "pipedream", "seven" ], - "files": ["dist"], "homepage": "https://pipedream.com/apps/seven", "author": "Pipedream (https://pipedream.com/)", "publishConfig": { "access": "public" + }, + "dependencies": { + "@pipedream/platform": "^3.0.1" } -} \ No newline at end of file +} diff --git a/components/seven/seven.app.mjs b/components/seven/seven.app.mjs new file mode 100644 index 0000000000000..fde7507fc8229 --- /dev/null +++ b/components/seven/seven.app.mjs @@ -0,0 +1,71 @@ +import { axios } from "@pipedream/platform"; + +export default { + type: "app", + app: "seven", + propDefinitions: { + number: { + type: "string", + label: "Number", + description: "The phone number to look up. (e.g. `49176123456789`)", + }, + to: { + type: "string", + label: "To", + description: "The destination phone number. Accepts all common formats like `0049171123456789`, `49171123456789`, `+49171123456789`", + }, + }, + methods: { + _baseUrl() { + return "https://gateway.seven.io/api"; + }, + _headers() { + return { + Authorization: `Bearer ${this.$auth.oauth_access_token}`, + }; + }, + _makeRequest({ + $ = this, + path, + ...args + }) { + return axios($, { + url: `${this._baseUrl()}${path}`, + headers: this._headers(), + ...args, + }); + }, + lookupCnam(opts = {}) { + return this._makeRequest({ + path: "/lookup/cnam", + ...opts, + }); + }, + lookupFormat(opts = {}) { + return this._makeRequest({ + path: "/lookup/format", + ...opts, + }); + }, + lookupHlr(opts = {}) { + return this._makeRequest({ + path: "/lookup/hlr", + ...opts, + }); + }, + sendSms(opts = {}) { + return this._makeRequest({ + method: "POST", + path: "/sms", + ...opts, + }); + }, + sendTtsCall(opts = {}) { + return this._makeRequest({ + method: "POST", + path: "/voice", + ...opts, + }); + }, + }, +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c60247f5bfb99..1f42d48a506ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8598,7 +8598,10 @@ importers: '@pipedream/platform': 1.6.2 components/seven: - specifiers: {} + specifiers: + '@pipedream/platform': ^3.0.1 + dependencies: + '@pipedream/platform': 3.0.1 components/seventodos: specifiers: @@ -12662,6 +12665,55 @@ packages: - aws-crt dev: false + /@aws-sdk/client-sso-oidc/3.600.0_tdq3komn4zwyd65w7klbptsu34: + resolution: {integrity: sha512-7+I8RWURGfzvChyNQSyj5/tKrqRbzRl7H+BnTOf/4Vsw1nFOi5ROhlhD4X/Y0QCTacxnaoNcIrqnY7uGGvVRzw==} + engines: {node: '>=16.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/client-sts': 3.600.0 + '@aws-sdk/core': 3.598.0 + '@aws-sdk/credential-provider-node': 3.600.0_f7n47caigsrjd2lr2szmwfuee4 + '@aws-sdk/middleware-host-header': 3.598.0 + '@aws-sdk/middleware-logger': 3.598.0 + '@aws-sdk/middleware-recursion-detection': 3.598.0 + '@aws-sdk/middleware-user-agent': 3.598.0 + '@aws-sdk/region-config-resolver': 3.598.0 + '@aws-sdk/types': 3.598.0 + '@aws-sdk/util-endpoints': 3.598.0 + '@aws-sdk/util-user-agent-browser': 3.598.0 + '@aws-sdk/util-user-agent-node': 3.598.0 + '@smithy/config-resolver': 3.0.3 + '@smithy/core': 2.2.3 + '@smithy/fetch-http-handler': 3.2.1 + '@smithy/hash-node': 3.0.2 + '@smithy/invalid-dependency': 3.0.2 + '@smithy/middleware-content-length': 3.0.2 + '@smithy/middleware-endpoint': 3.0.4 + '@smithy/middleware-retry': 3.0.6 + '@smithy/middleware-serde': 3.0.3 + '@smithy/middleware-stack': 3.0.3 + '@smithy/node-config-provider': 3.1.3 + '@smithy/node-http-handler': 3.1.2 + '@smithy/protocol-http': 4.0.3 + '@smithy/smithy-client': 3.1.6 + '@smithy/types': 3.3.0 + '@smithy/url-parser': 3.0.3 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.6 + '@smithy/util-defaults-mode-node': 3.0.6 + '@smithy/util-endpoints': 2.0.3 + '@smithy/util-middleware': 3.0.3 + '@smithy/util-retry': 3.0.2 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.3 + transitivePeerDependencies: + - '@aws-sdk/client-sts' + - aws-crt + dev: false + /@aws-sdk/client-sso/3.423.0: resolution: {integrity: sha512-znIufHkwhCIePgaYciIs3x/+BpzR57CZzbCKHR9+oOvGyufEPPpUT5bFLvbwTgfiVkTjuk6sG/ES3U5Bc+xtrA==} engines: {node: '>=14.0.0'} @@ -12897,7 +12949,7 @@ packages: dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.600.0 + '@aws-sdk/client-sso-oidc': 3.600.0_tdq3komn4zwyd65w7klbptsu34 '@aws-sdk/core': 3.598.0 '@aws-sdk/credential-provider-node': 3.600.0_f7n47caigsrjd2lr2szmwfuee4 '@aws-sdk/middleware-host-header': 3.598.0 @@ -12939,55 +12991,6 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sts/3.600.0_dseaa2p5u2yk67qiepewcq3hkq: - resolution: {integrity: sha512-KQG97B7LvTtTiGmjlrG1LRAY8wUvCQzrmZVV5bjrJ/1oXAU7DITYwVbSJeX9NWg6hDuSk0VE3MFwIXS2SvfLIA==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.600.0 - '@aws-sdk/core': 3.598.0 - '@aws-sdk/credential-provider-node': 3.600.0_f7n47caigsrjd2lr2szmwfuee4 - '@aws-sdk/middleware-host-header': 3.598.0 - '@aws-sdk/middleware-logger': 3.598.0 - '@aws-sdk/middleware-recursion-detection': 3.598.0 - '@aws-sdk/middleware-user-agent': 3.598.0 - '@aws-sdk/region-config-resolver': 3.598.0 - '@aws-sdk/types': 3.598.0 - '@aws-sdk/util-endpoints': 3.598.0 - '@aws-sdk/util-user-agent-browser': 3.598.0 - '@aws-sdk/util-user-agent-node': 3.598.0 - '@smithy/config-resolver': 3.0.3 - '@smithy/core': 2.2.3 - '@smithy/fetch-http-handler': 3.2.1 - '@smithy/hash-node': 3.0.2 - '@smithy/invalid-dependency': 3.0.2 - '@smithy/middleware-content-length': 3.0.2 - '@smithy/middleware-endpoint': 3.0.4 - '@smithy/middleware-retry': 3.0.6 - '@smithy/middleware-serde': 3.0.3 - '@smithy/middleware-stack': 3.0.3 - '@smithy/node-config-provider': 3.1.3 - '@smithy/node-http-handler': 3.1.2 - '@smithy/protocol-http': 4.0.3 - '@smithy/smithy-client': 3.1.6 - '@smithy/types': 3.3.0 - '@smithy/url-parser': 3.0.3 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.6 - '@smithy/util-defaults-mode-node': 3.0.6 - '@smithy/util-endpoints': 2.0.3 - '@smithy/util-middleware': 3.0.3 - '@smithy/util-retry': 3.0.2 - '@smithy/util-utf8': 3.0.0 - tslib: 2.6.3 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - aws-crt - dev: false - /@aws-sdk/core/3.556.0: resolution: {integrity: sha512-vJaSaHw2kPQlo11j/Rzuz0gk1tEaKdz+2ser0f0qZ5vwFlANjt08m/frU17ctnVKC1s58bxpctO/1P894fHLrA==} engines: {node: '>=14.0.0'} @@ -17286,7 +17289,7 @@ packages: '@aws-sdk/client-sns': 3.423.0 '@aws-sdk/client-sqs': 3.423.0 '@aws-sdk/client-ssm': 3.423.0 - '@aws-sdk/client-sts': 3.600.0_dseaa2p5u2yk67qiepewcq3hkq + '@aws-sdk/client-sts': 3.600.0 '@aws-sdk/s3-request-presigner': 3.609.0 '@pipedream/helper_functions': 0.3.12 '@pipedream/platform': 1.6.6