From 041a33a4da178cb2a6f2326b79ddf08e41b4bea1 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Fri, 7 Nov 2025 14:25:43 -0500 Subject: [PATCH 1/5] new components --- .../get-time-entry-report.mjs | 143 +++++++++++++ .../actions/list-projects/list-projects.mjs | 190 ++++++++++++++++++ .../actions/list-tasks/list-tasks.mjs | 98 +++++++++ .../list-time-entries/list-time-entries.mjs | 145 +++++++++++++ components/clockify/clockify.app.mjs | 118 ++++++++++- components/clockify/package.json | 4 +- 6 files changed, 695 insertions(+), 3 deletions(-) create mode 100644 components/clockify/actions/get-time-entry-report/get-time-entry-report.mjs create mode 100644 components/clockify/actions/list-projects/list-projects.mjs create mode 100644 components/clockify/actions/list-tasks/list-tasks.mjs create mode 100644 components/clockify/actions/list-time-entries/list-time-entries.mjs diff --git a/components/clockify/actions/get-time-entry-report/get-time-entry-report.mjs b/components/clockify/actions/get-time-entry-report/get-time-entry-report.mjs new file mode 100644 index 0000000000000..df75c21e0e095 --- /dev/null +++ b/components/clockify/actions/get-time-entry-report/get-time-entry-report.mjs @@ -0,0 +1,143 @@ +import clockify from "../../clockify.app.mjs"; + +export default { + name: "Get Time Entry Report", + description: "Get a time entry report. [See the documentation](https://docs.clockify.me/#tag/Time-Entry-Report/operation/generateDetailedReport)", + key: "clockify-get-time-entry-report", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + props: { + clockify, + workspaceId: { + propDefinition: [ + clockify, + "workspaceId", + ], + }, + dateRangeStart: { + type: "string", + label: "Date Range Start", + description: "The start date of the date range. Format: YYYY-MM-DDTHH:MM:SS.ssssssZ", + }, + dateRangeEnd: { + type: "string", + label: "Date Range End", + description: "The end date of the date range. Format: YYYY-MM-DDTHH:MM:SS.ssssssZ", + }, + clientIds: { + propDefinition: [ + clockify, + "clientId", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + type: "string[]", + label: "Client IDs", + description: "Array of client identifiers", + }, + projectId: { + propDefinition: [ + clockify, + "projectId", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + optional: true, + }, + taskIds: { + propDefinition: [ + clockify, + "taskId", + (c) => ({ + workspaceId: c.workspaceId, + projectId: c.projectId, + }), + ], + type: "string[]", + label: "Task IDs", + description: "Array of task identifiers", + optional: true, + }, + tagIds: { + propDefinition: [ + clockify, + "tagIds", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + optional: true, + }, + userIds: { + propDefinition: [ + clockify, + "memberIds", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + optional: true, + }, + }, + async run({ $ }) { + const response = await this.clockify.getTimeEntryReport({ + $, + workspaceId: this.workspaceId, + data: { + dateRangeStart: this.dateRangeStart, + dateRangeEnd: this.dateRangeEnd, + detailedFilter: { + options: { + totals: "CALCULATE", + }, + }, + clients: this.clientIds + ? { + contains: "CONTAINS", + ids: this.clientIds, + status: "ALL", + } + : undefined, + projects: this.projectIds + ? { + contains: "CONTAINS", + ids: this.projectIds, + status: "ALL", + } + : undefined, + tasks: this.taskIds + ? { + contains: "CONTAINS", + ids: this.taskIds, + status: "ALL", + } + : undefined, + tags: this.tagIds + ? { + contains: "CONTAINS", + ids: this.tagIds, + status: "ALL", + } + : undefined, + users: this.userIds + ? { + contains: "CONTAINS", + ids: this.userIds, + status: "ALL", + } + : undefined, + }, + }); + + $.export("$summary", "Successfully retrieved time entry report"); + + return response; + }, +}; diff --git a/components/clockify/actions/list-projects/list-projects.mjs b/components/clockify/actions/list-projects/list-projects.mjs new file mode 100644 index 0000000000000..7d74433c03507 --- /dev/null +++ b/components/clockify/actions/list-projects/list-projects.mjs @@ -0,0 +1,190 @@ +import clockify from "../../clockify.app.mjs"; + +export default { + key: "clockify-list-projects", + name: "List Projects", + description: "List all projects in a Clockify workspace. [See the documentation](https://docs.clockify.me/#tag/Project/operation/getProjects)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + props: { + clockify, + workspaceId: { + propDefinition: [ + clockify, + "workspaceId", + ], + }, + name: { + type: "string", + label: "Name", + description: "If provided, you'll get a filtered list of projects that contains the provided string in the project name", + optional: true, + }, + strictNameSearch: { + propDefinition: [ + clockify, + "strictNameSearch", + ], + }, + archived: { + type: "boolean", + label: "Archived", + description: "If set to `true`, you'll only get archived projects", + optional: true, + }, + billable: { + type: "boolean", + label: "Billable", + description: "If set to `true`, you'll only get billable projects", + optional: true, + }, + clients: { + propDefinition: [ + clockify, + "clientId", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + type: "string[]", + label: "Clients", + description: "Array of client identifiers", + }, + containsClient: { + type: "boolean", + label: "Contains Client", + description: "If set to `true`, you'll get a filtered list of projects that contain clients which match the provided id(s) in 'clients' field. If set to `false`, you'll get a filtered list of projects which do NOT contain clients that match the provided id(s) in 'clients' field.", + optional: true, + }, + clientStatus: { + type: "string", + label: "Client Status", + description: "Filters projects based on client status provided", + optional: true, + options: [ + "ACTIVE", + "ARCHIVED", + "ALL", + ], + }, + users: { + propDefinition: [ + clockify, + "memberIds", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + label: "Users", + description: "Array of member/user identifiers", + optional: true, + }, + containsUser: { + type: "boolean", + label: "Contains User", + description: "If set to `true`, you'll get a filtered list of projects that contain users which match the provided id(s) in 'users' field. If set to `false`, you'll get a filtered list of projects which do NOT contain users that match the provided id(s) in 'users' field.", + optional: true, + }, + userStatus: { + type: "string", + label: "User Status", + description: "Filters projects based on user status provided", + optional: true, + options: [ + "PENDING", + "ACTIVE", + "DECLINED", + "INACTIVE", + "ALL", + ], + }, + isTemplate: { + type: "boolean", + label: "Is Template", + description: "Filters projects based on whether they are used as a template or not", + optional: true, + }, + sortColumn: { + type: "string", + label: "Sort Column", + description: "The column to sort the projects by", + optional: true, + options: [ + "ID", + "NAME", + "CLIENT_NAME", + "DURATION", + "BUDGET", + "PROGRESS", + ], + }, + sortOrder: { + propDefinition: [ + clockify, + "sortOrder", + ], + }, + hydrated: { + propDefinition: [ + clockify, + "hydrated", + ], + }, + access: { + type: "string", + label: "Access", + description: "If provided, you'll get a filtered list of projects that matches the provided access", + optional: true, + options: [ + "PUBLIC", + "PRIVATE", + ], + }, + page: { + propDefinition: [ + clockify, + "page", + ], + }, + pageSize: { + propDefinition: [ + clockify, + "pageSize", + ], + }, + }, + async run({ $ }) { + const response = await this.clockify.listProjects({ + $, + workspaceId: this.workspaceId, + params: { + "name": this.name, + "strict-name-search": this.strictNameSearch, + "archived": this.archived, + "billable": this.billable, + "clients": this.clients, + "contains-client": this.containsClient, + "client-status": this.clientStatus, + "users": this.users, + "contains-user": this.containsUser, + "user-status": this.userStatus, + "is-template": this.isTemplate, + "sort-column": this.sortColumn, + "sort-order": this.sortOrder, + "hydrated": this.hydrated, + "access": this.access, + "page": this.page, + "page-size": this.pageSize, + }, + }); + + $.export("$summary", `Successfully listed ${response.length} projects in the workspace`); + + return response; + }, +}; diff --git a/components/clockify/actions/list-tasks/list-tasks.mjs b/components/clockify/actions/list-tasks/list-tasks.mjs new file mode 100644 index 0000000000000..c5dc85efc2437 --- /dev/null +++ b/components/clockify/actions/list-tasks/list-tasks.mjs @@ -0,0 +1,98 @@ +import clockify from "../../clockify.app.mjs"; + +export default { + key: "clockify-list-tasks", + name: "List Tasks", + description: "List all tasks in a Clockify project. [See the documentation](https://docs.clockify.me/#tag/Task/operation/getTasks)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + props: { + clockify, + workspaceId: { + propDefinition: [ + clockify, + "workspaceId", + ], + }, + projectId: { + propDefinition: [ + clockify, + "projectId", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + }, + name: { + type: "string", + label: "Name", + description: "If provided, you'll get a filtered list of tasks that contains the provided string in the task name", + optional: true, + }, + strictNameSearch: { + propDefinition: [ + clockify, + "strictNameSearch", + ], + }, + isActive: { + type: "boolean", + label: "Is Active", + description: "Filters search results whether task is active or not", + optional: true, + }, + sortColumn: { + type: "string", + label: "Sort Column", + description: "The column to sort the tasks by", + optional: true, + options: [ + "ID", + "NAME", + ], + }, + sortOrder: { + propDefinition: [ + clockify, + "sortOrder", + ], + }, + page: { + propDefinition: [ + clockify, + "page", + ], + }, + pageSize: { + propDefinition: [ + clockify, + "pageSize", + ], + }, + }, + async run({ $ }) { + const response = await this.clockify.listTasks({ + $, + workspaceId: this.workspaceId, + projectId: this.projectId, + params: { + "name": this.name, + "strict-name-search": this.strictNameSearch, + "is-active": this.isActive, + "sort-column": this.sortColumn, + "sort-order": this.sortOrder, + "page": this.page, + "page-size": this.pageSize, + }, + }); + + $.export("$summary", `Successfully listed ${response.length} tasks in the project`); + + return response; + }, +}; diff --git a/components/clockify/actions/list-time-entries/list-time-entries.mjs b/components/clockify/actions/list-time-entries/list-time-entries.mjs new file mode 100644 index 0000000000000..a3a0871bd5235 --- /dev/null +++ b/components/clockify/actions/list-time-entries/list-time-entries.mjs @@ -0,0 +1,145 @@ +import clockify from "../../clockify.app.mjs"; + +export default { + key: "clockify-list-time-entries", + name: "List Time Entries", + description: "List all time entries in a Clockify workspace. [See the documentation](https://docs.clockify.me/#tag/Time-entry/operation/getTimeEntries)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + props: { + clockify, + workspaceId: { + propDefinition: [ + clockify, + "workspaceId", + ], + }, + userId: { + propDefinition: [ + clockify, + "memberIds", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + type: "string", + label: "User", + description: "Identifier of a user", + }, + description: { + type: "string", + label: "Description", + description: "Represents term for searching time entries by description", + optional: true, + }, + start: { + type: "string", + label: "Start", + description: "Represents start date in yyyy-MM-ddThh:mm:ssZ format. Example: `2020-01-01T00:00:00Z`", + optional: true, + }, + end: { + type: "string", + label: "End", + description: "Represents end date in yyyy-MM-ddThh:mm:ssZ format. Example: `2020-01-01T00:00:00Z`", + optional: true, + }, + projectId: { + propDefinition: [ + clockify, + "projectId", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + optional: true, + }, + taskId: { + propDefinition: [ + clockify, + "taskId", + (c) => ({ + workspaceId: c.workspaceId, + projectId: c.projectId, + }), + ], + optional: true, + }, + tagIds: { + propDefinition: [ + clockify, + "tagIds", + (c) => ({ + workspaceId: c.workspaceId, + }), + ], + optional: true, + }, + projectRequired: { + type: "boolean", + label: "Project Required", + description: "Flag to set whether to only get time entries which have a project", + optional: true, + }, + taskRequired: { + type: "boolean", + label: "Task Required", + description: "Flag to set whether to only get time entries which have a task", + optional: true, + }, + hydrated: { + propDefinition: [ + clockify, + "hydrated", + ], + }, + inProgress: { + type: "boolean", + label: "In Progress", + description: "Flag to set whether to filter only in progress time entries", + optional: true, + }, + page: { + propDefinition: [ + clockify, + "page", + ], + }, + pageSize: { + propDefinition: [ + clockify, + "pageSize", + ], + }, + }, + async run({ $ }) { + const response = await this.clockify.listTimeEntries({ + $, + workspaceId: this.workspaceId, + userId: this.userId, + params: { + "description": this.description, + "start": this.start, + "end": this.end, + "project": this.projectId, + "task": this.taskId, + "tags": this.tagIds, + "project-required": this.projectRequired, + "task-required": this.taskRequired, + "hydrated": this.hydrated, + "in-progress": this.inProgress, + "page": this.page, + "page-size": this.pageSize, + }, + }); + + $.export("$summary", `Successfully listed ${response.length} time entries`); + + return response; + }, +}; diff --git a/components/clockify/clockify.app.mjs b/components/clockify/clockify.app.mjs index a3d98a6d5f9ce..c54675740a1ad 100644 --- a/components/clockify/clockify.app.mjs +++ b/components/clockify/clockify.app.mjs @@ -82,6 +82,88 @@ export default { })) || []; }, }, + taskId: { + type: "string", + label: "Task", + description: "Identifier of a task", + async options({ + workspaceId, projectId, page, + }) { + if (!workspaceId || !projectId) { + return []; + } + const tasks = await this.listTasks({ + workspaceId, + projectId, + params: { + page: page + 1, + }, + }); + return tasks?.map(({ + id: value, name: label, + }) => ({ + value, + label, + })) || []; + }, + }, + tagIds: { + type: "string[]", + label: "Tags", + description: "Array of tag identifiers", + async options({ + workspaceId, page, + }) { + const tags = await this.listTags({ + workspaceId, + params: { + page: page + 1, + }, + }); + return tags?.map(({ + id: value, name: label, + }) => ({ + value, + label, + })) || []; + }, + }, + hydrated: { + type: "boolean", + label: "Hydrated", + description: "If set to `true`, you'll get a hydrated response with additional information", + optional: true, + }, + strictNameSearch: { + type: "boolean", + label: "Strict Name Search", + description: "Flag to toggle on/off strict search mode", + optional: true, + }, + sortOrder: { + type: "string", + label: "Sort Order", + description: "The order to sort the results by", + optional: true, + options: [ + "ASCENDING", + "DESCENDING", + ], + }, + page: { + type: "integer", + label: "Page", + description: "The page number to return. Default is `1`", + optional: true, + default: 1, + }, + pageSize: { + type: "integer", + label: "Page Size", + description: "The number of results to return. Default is `100`", + optional: true, + default: 100, + }, }, methods: { _baseUrl() { @@ -97,11 +179,12 @@ export default { }, _makeRequest({ $ = this, + url, path, ...args }) { return axios($, { - url: `${this._baseUrl()}${path}`, + url: url || `${this._baseUrl()}${path}`, headers: this._headers(), ...args, }); @@ -136,6 +219,39 @@ export default { ...args, }); }, + listTasks({ + workspaceId, projectId, ...args + }) { + return this._makeRequest({ + path: `/workspaces/${workspaceId}/projects/${projectId}/tasks`, + ...args, + }); + }, + listTimeEntries({ + workspaceId, userId, ...args + }) { + return this._makeRequest({ + path: `/workspaces/${workspaceId}/user/${userId}/time-entries`, + ...args, + }); + }, + listTags({ + workspaceId, ...args + }) { + return this._makeRequest({ + path: `/workspaces/${workspaceId}/tags`, + ...args, + }); + }, + getTimeEntryReport({ + workspaceId, ...args + }) { + return this._makeRequest({ + method: "POST", + url: `https://reports.api.clockify.me/v1/workspaces/${workspaceId}/reports/detailed`, + ...args, + }); + }, createProject({ workspaceId, ...args }) { diff --git a/components/clockify/package.json b/components/clockify/package.json index bef29fb5753b2..86238e6bf9a9f 100644 --- a/components/clockify/package.json +++ b/components/clockify/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/clockify", - "version": "0.0.1", + "version": "0.1.0", "description": "Pipedream Clockify Components", "main": "clockify.app.mjs", "keywords": [ @@ -13,6 +13,6 @@ "access": "public" }, "dependencies": { - "@pipedream/platform": "^1.5.1" + "@pipedream/platform": "^3.1.0" } } From 3fda8e2bd1b49f34c5623704b6cc614b50be79f0 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Fri, 7 Nov 2025 14:26:18 -0500 Subject: [PATCH 2/5] pnpm-lock.yaml --- pnpm-lock.yaml | 247 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 178 insertions(+), 69 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 745727ed787e5..a78084ad8917e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -113,7 +113,7 @@ importers: version: 4.0.0 ts-jest: specifier: ^29.1.1 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3) + version: 29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3) tsc-esm-fix: specifier: ^2.18.0 version: 2.20.27 @@ -145,8 +145,7 @@ importers: specifier: ^3.0.0 version: 3.0.3 - components/_1shop_api: - specifiers: {} + components/_1shop_api: {} components/_21risk: dependencies: @@ -1449,8 +1448,7 @@ importers: specifier: ^2.1.35 version: 2.1.35 - components/babelfy: - specifiers: {} + components/babelfy: {} components/backblaze: {} @@ -1779,8 +1777,7 @@ importers: components/bitquery: {} - components/bitrated: - specifiers: {} + components/bitrated: {} components/bitrix24: {} @@ -2897,8 +2894,8 @@ importers: components/clockify: dependencies: '@pipedream/platform': - specifier: ^1.5.1 - version: 1.6.6 + specifier: ^3.1.0 + version: 3.1.0 components/clockwork_recruiting: dependencies: @@ -3473,8 +3470,7 @@ importers: specifier: ^3.0.1 version: 3.0.3 - components/crypto_apis_by_alternative: - specifiers: {} + components/crypto_apis_by_alternative: {} components/cryptowatch: dependencies: @@ -3874,8 +3870,7 @@ importers: specifier: ^1.2.0 version: 1.6.6 - components/devcycle: - specifiers: {} + components/devcycle: {} components/device_magic: {} @@ -5125,8 +5120,7 @@ importers: components/financial_data: {} - components/financial_modeling_prep: - specifiers: {} + components/financial_modeling_prep: {} components/findymail: dependencies: @@ -5418,8 +5412,7 @@ importers: specifier: ^3.0.0 version: 3.0.3 - components/fortnox: - specifiers: {} + components/fortnox: {} components/foursquare: dependencies: @@ -7068,8 +7061,7 @@ importers: specifier: ^2.0.0 version: 2.0.0 - components/ideta: - specifiers: {} + components/ideta: {} components/idx_broker: {} @@ -7318,8 +7310,7 @@ importers: components/instasent: {} - components/intelitruth: - specifiers: {} + components/intelitruth: {} components/intellexer_api: dependencies: @@ -7556,8 +7547,7 @@ importers: components/join: {} - components/jooble: - specifiers: {} + components/jooble: {} components/joomla: dependencies: @@ -7703,8 +7693,7 @@ importers: specifier: ^1.6.5 version: 1.6.6 - components/keygen: - specifiers: {} + components/keygen: {} components/keysender: dependencies: @@ -7712,8 +7701,7 @@ importers: specifier: ^1.6.0 version: 1.6.6 - components/keyzy: - specifiers: {} + components/keyzy: {} components/kickbox: dependencies: @@ -8332,8 +8320,7 @@ importers: specifier: ^1.5.1 version: 1.6.6 - components/live_score_api: - specifiers: {} + components/live_score_api: {} components/liveagent: dependencies: @@ -8443,8 +8430,7 @@ importers: specifier: ^3.0.0 version: 3.0.3 - components/loginradius: - specifiers: {} + components/loginradius: {} components/logistia_route_planner: {} @@ -8555,8 +8541,7 @@ importers: specifier: ^1.4.1 version: 1.6.6 - components/magnetite: - specifiers: {} + components/magnetite: {} components/mailblaze: dependencies: @@ -8762,8 +8747,7 @@ importers: specifier: ^1.5.1 version: 1.6.6 - components/marcom_robot: - specifiers: {} + components/marcom_robot: {} components/marketing_master_io: {} @@ -9366,8 +9350,7 @@ importers: specifier: ^1.1.1 version: 1.6.6 - components/monta: - specifiers: {} + components/monta: {} components/moonclerk: dependencies: @@ -9470,8 +9453,7 @@ importers: components/mx_toolbox: {} - components/mymemory: - specifiers: {} + components/mymemory: {} components/myotp_app: dependencies: @@ -9631,8 +9613,7 @@ importers: specifier: ^2.0.0 version: 2.0.0 - components/netsuite: - specifiers: {} + components/netsuite: {} components/neuronwriter: dependencies: @@ -14146,11 +14127,9 @@ importers: specifier: ^3.1.0 version: 3.1.0 - components/stock_news_api: - specifiers: {} + components/stock_news_api: {} - components/stocknewsapi: - specifiers: {} + components/stocknewsapi: {} components/storeganise: dependencies: @@ -16069,8 +16048,7 @@ importers: specifier: ^3.0.3 version: 3.0.3 - components/webspellchecker: - specifiers: {} + components/webspellchecker: {} components/webvizio: dependencies: @@ -16524,8 +16502,7 @@ importers: components/yext: {} - components/yext_sandbox: - specifiers: {} + components/yext_sandbox: {} components/yoast_seo: {} @@ -17240,7 +17217,7 @@ importers: version: 3.1.7 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)))(typescript@5.7.2) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)))(typescript@5.7.2) tsup: specifier: ^8.3.6 version: 8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.30))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.19.4)(typescript@5.7.2)(yaml@2.8.0) @@ -31672,22 +31649,22 @@ packages: superagent@3.8.1: resolution: {integrity: sha512-VMBFLYgFuRdfeNQSMLbxGSLfmXL/xc+OO+BZp41Za/NRDBet/BNbkRJrYzCUu0u4GU0i/ml2dtT8b9qgkw9z6Q==} engines: {node: '>= 4.0'} - deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net + deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net superagent@4.1.0: resolution: {integrity: sha512-FT3QLMasz0YyCd4uIi5HNe+3t/onxMyEho7C3PSqmti3Twgy2rXT4fmkTz6wRL6bTF4uzPcfkUCa8u4JWHw8Ag==} engines: {node: '>= 6.0'} - deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net + deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net superagent@5.3.1: resolution: {integrity: sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==} engines: {node: '>= 7.0.0'} - deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net + deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net superagent@7.1.6: resolution: {integrity: sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==} engines: {node: '>=6.4.0 <13 || >=14'} - deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net + deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net supports-color@10.0.0: resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==} @@ -36109,7 +36086,7 @@ snapshots: '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -36380,21 +36357,45 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -36405,16 +36406,34 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -36425,41 +36444,89 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@8.0.0-alpha.13)': + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -37522,7 +37589,7 @@ snapshots: '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -40045,6 +40112,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: @@ -42605,7 +42674,7 @@ snapshots: '@typescript-eslint/types': 8.15.0 '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.15.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) eslint: 8.57.1 optionalDependencies: typescript: 5.6.3 @@ -43503,6 +43572,20 @@ snapshots: transitivePeerDependencies: - supports-color + babel-jest@29.7.0(@babel/core@8.0.0-alpha.13): + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@8.0.0-alpha.13) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.25.9 @@ -43569,12 +43652,39 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) + babel-preset-current-node-syntax@1.1.0(@babel/core@8.0.0-alpha.13): + dependencies: + '@babel/core': 8.0.0-alpha.13 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@8.0.0-alpha.13) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@8.0.0-alpha.13) + optional: true + babel-preset-jest@29.6.3(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) + babel-preset-jest@29.6.3(@babel/core@8.0.0-alpha.13): + dependencies: + '@babel/core': 8.0.0-alpha.13 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@8.0.0-alpha.13) + optional: true + backoff@2.5.0: dependencies: precond: 0.2.3 @@ -45790,7 +45900,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -47627,7 +47737,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -50214,7 +50324,7 @@ snapshots: dependencies: '@tediousjs/connection-string': 0.5.0 commander: 11.1.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) rfdc: 1.4.1 tarn: 3.0.2 tedious: 16.7.1 @@ -51965,7 +52075,7 @@ snapshots: ajv: 8.17.1 chalk: 5.3.0 ci-info: 4.1.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) deepmerge: 4.3.1 escalade: 3.2.0 fast-glob: 3.3.2 @@ -54108,7 +54218,7 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)))(typescript@5.7.2): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2)))(typescript@5.7.2): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 @@ -54126,9 +54236,8 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - esbuild: 0.24.2 - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 @@ -54142,10 +54251,10 @@ snapshots: typescript: 5.6.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 8.0.0-alpha.13 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.0) + babel-jest: 29.7.0(@babel/core@8.0.0-alpha.13) ts-node@10.9.2(@types/node@20.17.30)(typescript@5.7.2): dependencies: @@ -54317,7 +54426,7 @@ snapshots: cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) esbuild: 0.24.2 joycon: 3.1.1 picocolors: 1.1.1 @@ -54345,7 +54454,7 @@ snapshots: cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) esbuild: 0.24.2 joycon: 3.1.1 picocolors: 1.1.1 @@ -54975,7 +55084,7 @@ snapshots: '@volar/typescript': 2.4.10 '@vue/language-core': 2.1.6(typescript@5.9.2) compare-versions: 6.1.1 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) kolorist: 1.8.0 local-pkg: 0.5.1 magic-string: 0.30.13 From 6d02d41487fdc29e3b6f6de74befd0071d8651f1 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Fri, 7 Nov 2025 14:29:11 -0500 Subject: [PATCH 3/5] versions --- .../actions/add-members-to-project/add-members-to-project.mjs | 2 +- .../actions/add-task-to-project/add-task-to-project.mjs | 2 +- components/clockify/actions/create-project/create-project.mjs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/components/clockify/actions/add-members-to-project/add-members-to-project.mjs b/components/clockify/actions/add-members-to-project/add-members-to-project.mjs index 183911b421cb9..e512d03e06d4f 100644 --- a/components/clockify/actions/add-members-to-project/add-members-to-project.mjs +++ b/components/clockify/actions/add-members-to-project/add-members-to-project.mjs @@ -4,7 +4,7 @@ export default { key: "clockify-add-members-to-project", name: "Add Members To Project", description: "Adds member(s) to a project in Clockify. [See the documentation](https://docs.clockify.me/#tag/Project/operation/updateMemberships)", - version: "0.0.2", + version: "0.0.3", annotations: { destructiveHint: true, openWorldHint: true, diff --git a/components/clockify/actions/add-task-to-project/add-task-to-project.mjs b/components/clockify/actions/add-task-to-project/add-task-to-project.mjs index eb6e3f0a43458..cbf24110f0657 100644 --- a/components/clockify/actions/add-task-to-project/add-task-to-project.mjs +++ b/components/clockify/actions/add-task-to-project/add-task-to-project.mjs @@ -4,7 +4,7 @@ export default { key: "clockify-add-task-to-project", name: "Add Task To Project", description: "Adds a task to a project in Clockify. [See the documentation](https://docs.clockify.me/#tag/Task/operation/create_7)", - version: "0.0.2", + version: "0.0.3", annotations: { destructiveHint: false, openWorldHint: true, diff --git a/components/clockify/actions/create-project/create-project.mjs b/components/clockify/actions/create-project/create-project.mjs index ff6fa18a08eca..b296b4940b9f9 100644 --- a/components/clockify/actions/create-project/create-project.mjs +++ b/components/clockify/actions/create-project/create-project.mjs @@ -4,7 +4,7 @@ export default { key: "clockify-create-project", name: "Create Project", description: "Creates a new project in Clockify. [See the documentation](https://docs.clockify.me/#tag/Project/operation/create_6)", - version: "0.0.2", + version: "0.0.3", annotations: { destructiveHint: false, openWorldHint: true, From 37806b6fb3de79002219b39eb52d75d12b2c635e Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Fri, 7 Nov 2025 14:37:46 -0500 Subject: [PATCH 4/5] update --- .../actions/get-time-entry-report/get-time-entry-report.mjs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/components/clockify/actions/get-time-entry-report/get-time-entry-report.mjs b/components/clockify/actions/get-time-entry-report/get-time-entry-report.mjs index df75c21e0e095..9caf7cc4cb2ab 100644 --- a/components/clockify/actions/get-time-entry-report/get-time-entry-report.mjs +++ b/components/clockify/actions/get-time-entry-report/get-time-entry-report.mjs @@ -105,10 +105,12 @@ export default { status: "ALL", } : undefined, - projects: this.projectIds + projects: this.projectId ? { contains: "CONTAINS", - ids: this.projectIds, + ids: [ + this.projectId, + ], status: "ALL", } : undefined, From 8b0f3e651fbc018b09ce91a7ed429ba3cfdf06e9 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Sun, 9 Nov 2025 10:28:21 -0500 Subject: [PATCH 5/5] pnpm-lock.yaml --- pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4197e22a709f6..2c1d6f2035759 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2899,7 +2899,7 @@ importers: dependencies: '@pipedream/platform': specifier: ^3.1.0 - version: 3.1.0 + version: 3.1.1 components/clockwork_recruiting: dependencies: