diff --git a/components/mailerlite/actions/create-subscriber/create-subscriber.mjs b/components/mailerlite/actions/create-subscriber/create-subscriber.mjs index dc5496055e11f..116141dce46c7 100644 --- a/components/mailerlite/actions/create-subscriber/create-subscriber.mjs +++ b/components/mailerlite/actions/create-subscriber/create-subscriber.mjs @@ -4,8 +4,8 @@ import mailerlite from "../../mailerlite.app.mjs"; export default { key: "mailerlite-create-subscriber", name: "Create Subscriber", - description: "Create a new subscriber. [See docs](https://developers.mailerlite.com/docs/subscribers.html#create-update-subscriber)", - version: "0.0.3", + description: "Create a new subscriber. [See the documentation](https://developers.mailerlite.com/docs/subscribers.html#create-update-subscriber)", + version: "0.0.4", type: "action", props: { mailerlite, @@ -34,11 +34,16 @@ export default { async run({ $ }) { const data = { email: this.email, - name: this.name, - type: this.type, + fields: { + name: this.name, + }, + status: this.type, }; - const resp = await this.mailerlite.createSubscriber(utils.removeUndefined(data)); + const resp = await this.mailerlite.createSubscriber({ + $, + data: utils.removeUndefined(data), + }); $.export("$summary", "Successfully created subscriber"); return resp; }, diff --git a/components/mailerlite/actions/list-subscribers/list-subscribers.mjs b/components/mailerlite/actions/list-subscribers/list-subscribers.mjs index ce3438e6ab8a1..53b95450f0895 100644 --- a/components/mailerlite/actions/list-subscribers/list-subscribers.mjs +++ b/components/mailerlite/actions/list-subscribers/list-subscribers.mjs @@ -4,8 +4,8 @@ import mailerlite from "../../mailerlite.app.mjs"; export default { key: "mailerlite-list-subscribers", name: "List Subscribers", - description: "Lists all subscribers in a group. [See the docs here](https://developers.mailerlite.com/docs/subscribers.html#list-all-subscribers)", - version: "0.0.3", + description: "Lists all subscribers in a group. [See the documentation](https://developers.mailerlite.com/docs/subscribers.html#list-all-subscribers)", + version: "0.0.4", type: "action", props: { mailerlite, @@ -42,7 +42,11 @@ export default { let resp; do { - resp = await this.mailerlite.listSubscribers(this.group, params); + resp = await this.mailerlite.listSubscribers({ + $, + group: this.group, + params, + }); subscribers.push(...resp); params.offset += params.limit; } while (resp?.length === params.limit); diff --git a/components/mailerlite/actions/remove-subscriber-from-group/remove-subscriber-from-group.mjs b/components/mailerlite/actions/remove-subscriber-from-group/remove-subscriber-from-group.mjs index 8d258e860201c..c0616f5fceb27 100644 --- a/components/mailerlite/actions/remove-subscriber-from-group/remove-subscriber-from-group.mjs +++ b/components/mailerlite/actions/remove-subscriber-from-group/remove-subscriber-from-group.mjs @@ -3,8 +3,8 @@ import mailerlite from "../../mailerlite.app.mjs"; export default { key: "mailerlite-remove-subscriber-from-group", name: "Remove Subscriber From Group", - description: "Removes single subscriber from specified group. [See the docs here](https://developers.mailerlite.com/docs/groups.html#unassign-subscriber-from-a-group)", - version: "0.0.4", + description: "Removes single subscriber from specified group. [See the documentation](https://developers.mailerlite.com/docs/groups.html#unassign-subscriber-from-a-group)", + version: "0.0.5", type: "action", props: { mailerlite, @@ -37,10 +37,11 @@ export default { }, }, async run({ $ }) { - const response = await this.mailerlite.removeSubscriberFromGroup( - this.group, - encodeURIComponent(this.subscriber), - ); + const response = await this.mailerlite.removeSubscriberFromGroup({ + $, + subscriber: this.subscriber, + group: this.group, + }); $.export("$summary", "Removed subscriber from group"); diff --git a/components/mailerlite/actions/subscribe-to-group/subscribe-to-group.mjs b/components/mailerlite/actions/subscribe-to-group/subscribe-to-group.mjs index 384cd9611dfe4..a1917d7bb125d 100644 --- a/components/mailerlite/actions/subscribe-to-group/subscribe-to-group.mjs +++ b/components/mailerlite/actions/subscribe-to-group/subscribe-to-group.mjs @@ -3,8 +3,8 @@ import mailerlite from "../../mailerlite.app.mjs"; export default { key: "mailerlite-subscribe-to-group", name: "Subscribe to MailerLite Group", - description: "Add a subscriber to a group. [See the docs here](https://developers.mailerlite.com/docs/groups.html#assign-subscriber-to-a-group)", - version: "0.3.2", + description: "Add a subscriber to a group. [See the documentation](https://developers.mailerlite.com/docs/groups.html#assign-subscriber-to-a-group)", + version: "0.3.3", type: "action", props: { mailerlite, @@ -14,19 +14,20 @@ export default { "group", ], }, - email: { + subscriber: { propDefinition: [ mailerlite, "subscriber", ], - description: "Email of the active subscriber to add to group", + description: "ID of the active subscriber to add to group", }, }, async run({ $ }) { - const data = { - email: this.email, - }; - const resp = await this.mailerlite.addSubscriberToGroup(data, this.group); + const resp = await this.mailerlite.addSubscriberToGroup({ + $, + subscriber: this.subscriber, + group: this.group, + }); $.export("$summary", "Added subscriber to group"); return resp; }, diff --git a/components/mailerlite/actions/update-subscriber/update-subscriber.mjs b/components/mailerlite/actions/update-subscriber/update-subscriber.mjs index 8fa32ad2ecf28..9adc73d286ed3 100644 --- a/components/mailerlite/actions/update-subscriber/update-subscriber.mjs +++ b/components/mailerlite/actions/update-subscriber/update-subscriber.mjs @@ -3,8 +3,8 @@ import mailerlite from "../../mailerlite.app.mjs"; export default { key: "mailerlite-update-subscriber", name: "Update Subscriber", - description: "Updates single active subscriber. [See docs](https://developers.mailerlite.com/docs/subscribers.html#create-update-subscriber)", - version: "0.0.3", + description: "Updates single active subscriber. [See the documentation](https://developers.mailerlite.com/docs/subscribers.html#create-update-subscriber)", + version: "0.0.4", type: "action", props: { mailerlite, @@ -34,6 +34,9 @@ export default { }, async additionalProps() { const props = {}; + if (!this.fields?.length) { + return props; + } for (const field of this.fields) { props[field.value] = { type: "string", @@ -45,14 +48,20 @@ export default { }, async run({ $ }) { const fields = {}; - for (const field of this.fields) { - fields[field.value] = this[field.value]; + if (this.fields?.length) { + for (const field of this.fields) { + fields[field.value] = this[field.value]; + } } const data = { - type: this.type, + status: this.type, fields, }; - const resp = await this.mailerlite.updateSubscriber(data, this.subscriber); + const resp = await this.mailerlite.updateSubscriber({ + $, + subscriber: this.subscriber, + data, + }); $.export("$summary", "Successfully updated subscriber"); return resp; }, diff --git a/components/mailerlite/mailerlite.app.mjs b/components/mailerlite/mailerlite.app.mjs index 5ef43d639dfac..2aaed0ff56d2d 100644 --- a/components/mailerlite/mailerlite.app.mjs +++ b/components/mailerlite/mailerlite.app.mjs @@ -1,4 +1,4 @@ -import MailerLite from "mailerlite-api-v2-node"; +import { axios } from "@pipedream/platform"; import constants from "./common/constants.mjs"; export default { @@ -54,11 +54,14 @@ export default { limit, offset, }; - const subscribers = await this.listSubscribers(group, params); + const subscribers = await this.listSubscribers({ + group, + params, + }); return { options: subscribers.map((subscriber) => ({ - label: subscriber.name, - value: subscriber.email, + label: subscriber.email, + value: subscriber.id, })), context: { offset: offset + limit, @@ -77,7 +80,9 @@ export default { limit, offset, }; - const groups = await this.listGroups(params); + const groups = await this.listGroups({ + params, + }); return { options: groups.map((group) => ({ label: group.name, @@ -106,67 +111,100 @@ export default { }, }, methods: { - _getApiKey() { - return this.$auth.api_key; - }, - async _getClient(baseAPI) { - let options; - if (baseAPI === "connect") { - options = { - baseURL: "https://connect.mailerlite.com/api", - headers: { - Authorization: `Bearer ${this._getApiKey()}`, - }, - }; - } - const client = MailerLite.default; - return client(this._getApiKey(), options); - }, - async listGroups(params) { - const client = await this._getClient(); - return client.getGroups(params); - }, - async listSubscribers(group, params = {}) { - const client = await this._getClient(); - if (group) { - const { type = "active" } = params; - delete params.type; - return client.getGroupSubscribersByType(group, type, params); - } - // getSubscribers returns active subscribers only - return client.getSubscribers(params); - }, - async listFields() { - const client = await this._getClient(); - return client.getFields(); - }, - async listCampaigns(status = "sent") { - const client = await this._getClient(); - return client.getCampaigns(status); - }, - async createSubscriber(data) { - const client = await this._getClient(); - return client.addSubscriber(data); - }, - async createHook(data) { - const client = await this._getClient("connect"); - return client.createWebhook(data); - }, - async updateSubscriber(data, subscriber) { - const client = await this._getClient(); - return client.updateSubscriber(subscriber, data); - }, - async addSubscriberToGroup(data, group) { - const client = await this._getClient(); - return client.addSubscriberToGroup(group, data); - }, - async removeHook(hookId) { - const client = await this._getClient("connect"); - return client.removeWebhook(hookId); - }, - async removeSubscriberFromGroup(group, subscriber) { - const client = await this._getClient(); - return client.removeGroupSubscriber(group, subscriber); + _baseUrl() { + return "https://connect.mailerlite.com/api"; + }, + _makeRequest({ + $ = this, + path, + ...args + }) { + return axios($, { + url: `${this._baseUrl()}${path}`, + headers: { + Authorization: `Bearer ${this.$auth.api_key}`, + }, + ...args, + }); + }, + async listGroups(opts = {}) { + const { data } = await this._makeRequest({ + path: "/groups", + ...opts, + }); + return data; + }, + async listSubscribers({ + group, params = {}, ...opts + }) { + const { type = "active" } = params; + delete params.type; + params["filter[status]"] = type; + const { data } = await this._makeRequest({ + path: group + ? `/groups/${group}/subscribers` + : "/subscribers", + params, + ...opts, + }); + return data; + }, + async listFields(opts = {}) { + const { data } = await this._makeRequest({ + path: "/fields", + ...opts, + }); + return data; + }, + createSubscriber(opts = {}) { + return this._makeRequest({ + method: "POST", + path: "/subscribers", + ...opts, + }); + }, + createHook(opts = {}) { + return this._makeRequest({ + method: "POST", + path: "/webhooks", + ...opts, + }); + }, + updateSubscriber({ + subscriber, ...opts + }) { + return this._makeRequest({ + method: "PUT", + path: `/subscribers/${subscriber}`, + ...opts, + }); + }, + addSubscriberToGroup({ + subscriber, group, ...opts + }) { + return this._makeRequest({ + method: "POST", + path: `/subscribers/${subscriber}/groups/${group}`, + ...opts, + }); + }, + removeHook({ + hookId, ...opts + }) { + return this._makeRequest({ + method: "DELETE", + path: `/webhooks/${hookId}`, + ...opts, + }); + }, + removeSubscriberFromGroup({ + subscriber, group, ...opts + }) { + return this._makeRequest({ + method: "DELETE", + path: `/subscribers/${subscriber}/groups/${group}`, + ...opts, + }); }, }, }; diff --git a/components/mailerlite/package.json b/components/mailerlite/package.json index 2981e97495f38..f57022594468f 100644 --- a/components/mailerlite/package.json +++ b/components/mailerlite/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/mailerlite", - "version": "1.1.0", + "version": "1.1.1", "description": "Pipedream Mailerlite Components", "main": "mailerlite.app.mjs", "keywords": [ @@ -14,7 +14,7 @@ "access": "public" }, "dependencies": { - "lodash.pickby": "^4.6.0", - "mailerlite-api-v2-node": "^1.2.0" + "@pipedream/platform": "^3.0.3", + "lodash.pickby": "^4.6.0" } } diff --git a/components/mailerlite/sources/common/base.mjs b/components/mailerlite/sources/common/base.mjs index 631ac092a7ce4..0e001bdf3ec99 100644 --- a/components/mailerlite/sources/common/base.mjs +++ b/components/mailerlite/sources/common/base.mjs @@ -10,15 +10,19 @@ export default { hooks: { async activate() { const { data } = await this.mailerlite.createHook({ - url: this.http.endpoint, - events: this.getEvents(), + data: { + url: this.http.endpoint, + events: this.getEvents(), + }, }); this._setHookId(data.id); }, async deactivate() { - const id = this._getHookId("hookId"); - await this.mailerlite.removeHook(id); + const hookId = this._getHookId("hookId"); + await this.mailerlite.removeHook({ + hookId, + }); }, }, methods: { diff --git a/components/mailerlite/sources/subscriber-added-from-form/subscriber-added-from-form.mjs b/components/mailerlite/sources/subscriber-added-from-form/subscriber-added-from-form.mjs deleted file mode 100644 index 93dcc98fdc2fd..0000000000000 --- a/components/mailerlite/sources/subscriber-added-from-form/subscriber-added-from-form.mjs +++ /dev/null @@ -1,35 +0,0 @@ -import common from "../common/base.mjs"; -import sampleEmit from "./test-event.mjs"; - -export default { - ...common, - key: "mailerlite-subscriber-added-from-form", - name: "New Subscriber Added From Form (Instant)", - description: "Emit new event when a new subscriber is added though a form.", - version: "0.0.1", - type: "source", - props: { - ...common.props, - http: "$.interface.http", - db: "$.service.db", - }, - methods: { - ...common.methods, - getEvents() { - return [ - "subscriber.added_through_form", - ]; - }, - getDataToEmit({ - id, - created_at: createdAt, - }) { - return { - id: id, - summary: `A new subscriber with Id: ${id} has been added though a form!`, - ts: new Date(createdAt), - }; - }, - }, - sampleEmit, -}; diff --git a/components/mailerlite/sources/subscriber-added-from-form/test-event.mjs b/components/mailerlite/sources/subscriber-added-from-form/test-event.mjs deleted file mode 100644 index 7f9bf31e2db25..0000000000000 --- a/components/mailerlite/sources/subscriber-added-from-form/test-event.mjs +++ /dev/null @@ -1,30 +0,0 @@ -export default { - id: '123456789012345678', - email: 'email@test.com', - status: 'active', - source: 'api', - sent: null, - opens_count: null, - clicks_count: null, - open_rate: 0, - click_rate: 0, - ip_address: null, - subscribed_at: '2023-10-25T17:02:54.000000Z', - unsubscribed_at: null, - created_at: '2023-10-25T17:02:54.000000Z', - updated_at: '2023-10-25T17:02:54.000000Z', - deleted_at: null, - forget_at: null, - fields: { - name: null, - last_name: null, - company: null, - country: null, - city: null, - phone: null, - state: null, - z_i_p: null - }, - opted_in_at: null, - optin_ip: null -} \ No newline at end of file diff --git a/components/mailerlite/sources/subscriber-added-to-group/subscriber-added-to-group.mjs b/components/mailerlite/sources/subscriber-added-to-group/subscriber-added-to-group.mjs new file mode 100644 index 0000000000000..67475f65e5b3a --- /dev/null +++ b/components/mailerlite/sources/subscriber-added-to-group/subscriber-added-to-group.mjs @@ -0,0 +1,35 @@ +import common from "../common/base.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "mailerlite-subscriber-added-to-group", + name: "New Subscriber Added To Group (Instant)", + description: "Emit new event when a new subscriber is added to a group.", + version: "0.0.2", + type: "source", + props: { + ...common.props, + http: "$.interface.http", + db: "$.service.db", + }, + methods: { + ...common.methods, + getEvents() { + return [ + "subscriber.added_to_group", + ]; + }, + getDataToEmit({ + subscriber, + group, + }) { + return { + id: `${subscriber.id}-${group.id}`, + summary: `A new subscriber with Id: ${subscriber.id} has been added to a group`, + ts: Date.now(), + }; + }, + }, + sampleEmit, +}; diff --git a/components/mailerlite/sources/subscriber-added-to-group/test-event.mjs b/components/mailerlite/sources/subscriber-added-to-group/test-event.mjs new file mode 100644 index 0000000000000..e7aba07a49be3 --- /dev/null +++ b/components/mailerlite/sources/subscriber-added-to-group/test-event.mjs @@ -0,0 +1,37 @@ +export default { + "type": "subscriber.added_to_group", + "subscriber": { + "id": "1234567890", + "email": "test@example.com", + "status": "active", + "source": "api", + "sent": 0, + "opens_count": 0, + "clicks_count": 0, + "open_rate": 0, + "click_rate": 0, + "ip_address": null, + "subscribed_at": "2022-05-03T21:07:02.000000Z", + "unsubscribed_at": null, + "created_at": "2022-05-03T21:07:02.000000Z", + "updated_at": "2022-05-03T21:07:02.000000Z", + "deleted_at": null, + "forget_at": null, + "fields": { + "name": null, + "last_name": null, + "company": null, + "country": null, + "city": null, + "phone": null, + "state": null, + "z_i_p": null + }, + "opted_in_at": null, + "optin_ip": null + }, + "group": { + "id": "54201175883383850", + "name": "group" + } +} \ No newline at end of file diff --git a/components/mailerlite/sources/subscriber-created/subscriber-created.mjs b/components/mailerlite/sources/subscriber-created/subscriber-created.mjs index 421bbb64f6333..06804fe3bb93b 100644 --- a/components/mailerlite/sources/subscriber-created/subscriber-created.mjs +++ b/components/mailerlite/sources/subscriber-created/subscriber-created.mjs @@ -6,7 +6,7 @@ export default { key: "mailerlite-subscriber-created", name: "New Subscriber Created (Instant)", description: "Emit new event when a new subscriber is created.", - version: "0.0.1", + version: "0.0.2", type: "source", props: { ...common.props, @@ -25,7 +25,7 @@ export default { created_at: createdAt, }) { return { - id: id, + id, summary: `A new subscriber with Id: ${id} has been created!`, ts: new Date(createdAt), }; diff --git a/components/mailerlite/sources/subscriber-unsubscribed/subscriber-unsubscribed.mjs b/components/mailerlite/sources/subscriber-unsubscribed/subscriber-unsubscribed.mjs index a243d58761db2..58a3f9946d894 100644 --- a/components/mailerlite/sources/subscriber-unsubscribed/subscriber-unsubscribed.mjs +++ b/components/mailerlite/sources/subscriber-unsubscribed/subscriber-unsubscribed.mjs @@ -6,7 +6,7 @@ export default { key: "mailerlite-subscriber-unsubscribed", name: "New Subscriber Unsubscribed (Instant)", description: "Emit new event when a subscriber is unsubscribed.", - version: "0.0.1", + version: "0.0.2", type: "source", props: { ...common.props, @@ -25,7 +25,7 @@ export default { created_at: createdAt, }) { return { - id: id, + id, summary: `The subscriber with Id: ${id} has been unsubscribed!`, ts: new Date(createdAt), }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 778218aaea291..69d354cb5a473 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5610,11 +5610,11 @@ importers: components/mailerlite: specifiers: + '@pipedream/platform': ^3.0.3 lodash.pickby: ^4.6.0 - mailerlite-api-v2-node: ^1.2.0 dependencies: + '@pipedream/platform': 3.0.3 lodash.pickby: 4.6.0 - mailerlite-api-v2-node: 1.2.0 components/mailersend: specifiers: @@ -22615,6 +22615,7 @@ packages: map-obj: 4.3.0 quick-lru: 5.1.1 type-fest: 1.4.0 + dev: true /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} @@ -24060,13 +24061,6 @@ packages: domhandler: 5.0.3 dev: false - /dot-case/3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dependencies: - no-case: 3.0.4 - tslib: 2.6.3 - dev: false - /dot-prop/5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -28824,12 +28818,6 @@ packages: js-tokens: 4.0.0 dev: false - /lower-case/2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - dependencies: - tslib: 2.6.3 - dev: false - /lowercase-keys/1.0.1: resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} engines: {node: '>=0.10.0'} @@ -28899,16 +28887,6 @@ packages: engines: {node: '>=12'} dev: false - /mailerlite-api-v2-node/1.2.0: - resolution: {integrity: sha512-dgRVU4QKZ8xeBYZkfGv5RlMB8W8J7UBBm9AVBu7LNimNi5zcNlN33sWnBpUQyitneuaXaPUfMjglEN2Hhv4a7w==} - dependencies: - axios: 0.21.4 - camelcase-keys: 7.0.2 - snakecase-keys: 5.4.7 - transitivePeerDependencies: - - debug - dev: false - /mailersend/2.2.0: resolution: {integrity: sha512-U5d2RseMDm7oQIXqvMo1Xfvimh2k4O+nC27TA2tR4cwMDoAiZ9e0JpnbQ8mbT7gJoNdUittLs3n/kfRapu5tZg==} dependencies: @@ -29020,6 +28998,7 @@ packages: /map-obj/4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} + dev: true /map-stream/0.1.0: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} @@ -30212,13 +30191,6 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /no-case/3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - dependencies: - lower-case: 2.0.2 - tslib: 2.6.3 - dev: false - /node-abort-controller/3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} dev: false @@ -33097,22 +33069,6 @@ packages: engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} dev: false - /snake-case/3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - dependencies: - dot-case: 3.0.4 - tslib: 2.6.3 - dev: false - - /snakecase-keys/5.4.7: - resolution: {integrity: sha512-li/JvhIBDTbualWBSlUJoHws/kVqMYN9GSw//NyatvoAWBppiGRJVOOniMcRa/PNN5FCwOTYMoZT/SJ2IuBUBw==} - engines: {node: '>=12'} - dependencies: - map-obj: 4.3.0 - snake-case: 3.0.4 - type-fest: 2.19.0 - dev: false - /snowflake-sdk/1.9.0_asn1.js@5.4.1: resolution: {integrity: sha512-RtFRV2KC+ebQk/kOUg8WV42LnAu9puoan2wMXykgrAj1u4sGP/GgQyQhsAfLGwXWzn+J9JAwij07h3+6HYBmFw==} dependencies: @@ -34460,11 +34416,7 @@ packages: /type-fest/1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} - - /type-fest/2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: false + dev: true /type-fest/4.15.0: resolution: {integrity: sha512-tB9lu0pQpX5KJq54g+oHOLumOx+pMep4RaM6liXh2PKmVRFF+/vAtUP0ZaJ0kOySfVNjF6doBWPHhBhISKdlIA==}