diff --git a/extensions/capmo/CHANGELOG.md b/extensions/capmo/CHANGELOG.md index 010e85f3156..a773b064dc4 100644 --- a/extensions/capmo/CHANGELOG.md +++ b/extensions/capmo/CHANGELOG.md @@ -1,3 +1,3 @@ # Capmo Changelog -## [Initial Version] - {PR_MERGE_DATE} \ No newline at end of file +## [Initial Version] - {PR_MERGE_DATE} diff --git a/extensions/capmo/README.md b/extensions/capmo/README.md index 75b5271044a..17bf2714860 100644 --- a/extensions/capmo/README.md +++ b/extensions/capmo/README.md @@ -7,7 +7,7 @@ Capmo Easily manage and interact with projects and tickets from Capmo directly in Raycast. List tickets, update their status, filter projects, and more – all with quick keystrokes. -

+

-![Screenshot of the "List Projects" command](./metadata/screenshot_3.png) -![Screenshot of the "List Tickets" command](./metadata/screenshot_1.png) -![Actions in the "List Tickets" command](./metadata/screenshot_2.png) +![Screenshot of the "List Projects" command](screenshots/screenshot_3.png) +![Screenshot of the "List Tickets" command](screenshots/screenshot_1.png) +![Actions in the "List Tickets" command](screenshots/screenshot_2.png) + +This extension offers the following functionalities:

Commands @@ -59,16 +61,17 @@ Actions When starting the extension for the first time it will ask you for two IDs: The **Capmo API TOken** and the **Excluded projects**. 1. Retriving Capmo API Token + - Please open [Accountmanagement](https://app.capmo.de/account/general) - Create an API Key in the Api-Key Settings - Copy the Secret Value and store it somewhere safe 2. Excluding Projects + - If you want to exclude projects from the Application to make it faster, you can do so by including them in the settings - Retrive the project ID by opening a project in Campo and Copy the Project ID from the Url - Example: https://app.capmo.de/projects/**cdced67e-1cce-11ef-bc14-fb2698a5c2b6**/tickets - Copy the Value in the settings. Example: Project 1,Project 2 - Copy the Secret Value and store it somewhere safe - Happy ticket management! 🎉 diff --git a/extensions/capmo/package-lock.json b/extensions/capmo/package-lock.json index 0ca97d5f041..71842894088 100644 --- a/extensions/capmo/package-lock.json +++ b/extensions/capmo/package-lock.json @@ -10,6 +10,7 @@ "license": "MIT", "dependencies": { "@raycast/api": "^1.88.4", + "@raycast/utils": "^1.18.1", "axios": "^1.7.9" }, "devDependencies": { @@ -581,6 +582,23 @@ } } }, + "node_modules/@raycast/utils": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/@raycast/utils/-/utils-1.18.1.tgz", + "integrity": "sha512-fNrybWovB5WSiotqrExMNVWtODH5DATFMvqJboIjwM2X8Ddvgt7tkf2Ol0vA0UBDVaGwDV+jpX/ZBhMnjz5TzQ==", + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.1.6", + "dequal": "^2.0.3", + "object-hash": "^3.0.0", + "signal-exit": "^4.0.2", + "stream-chain": "^2.2.5", + "stream-json": "^1.8.0" + }, + "peerDependencies": { + "@raycast/api": ">=1.69.0" + } + }, "node_modules/@types/axios": { "version": "0.9.36", "resolved": "https://registry.npmjs.org/@types/axios/-/axios-0.9.36.tgz", @@ -1083,6 +1101,15 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -1137,6 +1164,15 @@ "node": ">=0.4.0" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -2142,6 +2178,35 @@ "dev": true, "license": "MIT" }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2478,6 +2543,21 @@ "node": ">=8" } }, + "node_modules/stream-chain": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz", + "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==", + "license": "BSD-3-Clause" + }, + "node_modules/stream-json": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.9.1.tgz", + "integrity": "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==", + "license": "BSD-3-Clause", + "dependencies": { + "stream-chain": "^2.2.5" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2563,6 +2643,12 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, "node_modules/ts-api-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", @@ -2631,6 +2717,22 @@ "punycode": "^2.1.0" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/extensions/capmo/package.json b/extensions/capmo/package.json index 90d476b9e57..1fcd7add699 100644 --- a/extensions/capmo/package.json +++ b/extensions/capmo/package.json @@ -45,6 +45,7 @@ ], "dependencies": { "@raycast/api": "^1.88.4", + "@raycast/utils": "^1.18.1", "axios": "^1.7.9" }, "devDependencies": { diff --git a/extensions/capmo/raycast-env.d.ts b/extensions/capmo/raycast-env.d.ts new file mode 100644 index 00000000000..edbbccc2b9f --- /dev/null +++ b/extensions/capmo/raycast-env.d.ts @@ -0,0 +1,32 @@ +/// + +/* 🚧 🚧 🚧 + * This file is auto-generated from the extension's manifest. + * Do not modify manually. Instead, update the `package.json` file. + * 🚧 🚧 🚧 */ + +/* eslint-disable @typescript-eslint/ban-types */ + +type ExtensionPreferences = { + /** Capmo API Token - Your Capmo API Token */ + capmoApiToken: string; + /** Excluded Projects - Comma-separated list of project IDs to exclude */ + excludedProjects?: string; +}; + +/** Preferences accessible in all the extension's commands */ +declare type Preferences = ExtensionPreferences; + +declare namespace Preferences { + /** Preferences accessible in the `list-tickets` command */ + export type ListTickets = ExtensionPreferences & {}; + /** Preferences accessible in the `list-projects` command */ + export type ListProjects = ExtensionPreferences & {}; +} + +declare namespace Arguments { + /** Arguments passed to the `list-tickets` command */ + export type ListTickets = {}; + /** Arguments passed to the `list-projects` command */ + export type ListProjects = {}; +} diff --git a/extensions/capmo/tsconfig.json b/extensions/capmo/tsconfig.json index 6e6d2838d6a..5cea16bd0fd 100644 --- a/extensions/capmo/tsconfig.json +++ b/extensions/capmo/tsconfig.json @@ -2,15 +2,15 @@ "$schema": "https://json.schemastore.org/tsconfig", "include": ["src/**/*", "raycast-env.d.ts"], // Ensure it covers all your source files and the Raycast environment typings "compilerOptions": { - "lib": ["ES2023", "DOM"], // Include DOM for browser-related APIs - "module": "commonjs", // CommonJS for compatibility with Node.js - "target": "ES2022", // Modern target - "strict": true, // Enable strict type checking - "isolatedModules": true, // Required for React's JSX transformations - "esModuleInterop": true, // Enable interop between CommonJS and ESModules - "skipLibCheck": true, // Skip type checking of declaration files + "lib": ["ES2023", "DOM"], // Include DOM for browser-related APIs + "module": "commonjs", // CommonJS for compatibility with Node.js + "target": "ES2022", // Modern target + "strict": true, // Enable strict type checking + "isolatedModules": true, // Required for React's JSX transformations + "esModuleInterop": true, // Enable interop between CommonJS and ESModules + "skipLibCheck": true, // Skip type checking of declaration files "forceConsistentCasingInFileNames": true, // Enforce consistent casing in imports - "jsx": "react-jsx", // Enable the new JSX transform - "resolveJsonModule": true // Allow importing JSON files as modules + "jsx": "react-jsx", // Enable the new JSX transform + "resolveJsonModule": true // Allow importing JSON files as modules } }