diff --git a/samples/coded-action-apps/action-app-with-data-fabric-entity/.gitignore b/samples/coded-action-apps/action-app-with-data-fabric-entity/.gitignore new file mode 100644 index 000000000..e627eec15 --- /dev/null +++ b/samples/coded-action-apps/action-app-with-data-fabric-entity/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* + +# Build outputs +node_modules +dist +dist-ssr +.uipath + +# OS / editor +.DS_Store +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/samples/coded-action-apps/action-app-with-data-fabric-entity/index.html b/samples/coded-action-apps/action-app-with-data-fabric-entity/index.html index 15b758267..df95a6f1e 100644 --- a/samples/coded-action-apps/action-app-with-data-fabric-entity/index.html +++ b/samples/coded-action-apps/action-app-with-data-fabric-entity/index.html @@ -3,6 +3,7 @@ + UiPath Action Center Form diff --git a/samples/coded-action-apps/action-app-with-data-fabric-entity/package-lock.json b/samples/coded-action-apps/action-app-with-data-fabric-entity/package-lock.json index 15f1a20f1..a424b49a7 100644 --- a/samples/coded-action-apps/action-app-with-data-fabric-entity/package-lock.json +++ b/samples/coded-action-apps/action-app-with-data-fabric-entity/package-lock.json @@ -798,9 +798,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -818,9 +815,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -838,9 +832,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -858,9 +849,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -878,9 +866,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -898,9 +883,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2302,9 +2284,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2326,9 +2305,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2350,9 +2326,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2374,9 +2347,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ diff --git a/samples/coded-action-apps/action-app-with-data-fabric-entity/src/assets/favicon.png b/samples/coded-action-apps/action-app-with-data-fabric-entity/src/assets/favicon.png new file mode 100644 index 000000000..e6ed2a94b Binary files /dev/null and b/samples/coded-action-apps/action-app-with-data-fabric-entity/src/assets/favicon.png differ diff --git a/samples/coded-action-apps/action-app-with-data-fabric-entity/uipath.json.example b/samples/coded-action-apps/action-app-with-data-fabric-entity/uipath.json.example new file mode 100644 index 000000000..ead5c36ac --- /dev/null +++ b/samples/coded-action-apps/action-app-with-data-fabric-entity/uipath.json.example @@ -0,0 +1,8 @@ +{ + "clientId": "", + "scope": "DataFabric.Schema.Read DataFabric.Data.Read DataFabric.Data.Write", + "orgName": "", + "tenantName": "", + "baseUrl": "https://api.uipath.com", + "redirectUri": "http://localhost:5173" +} diff --git a/samples/coded-action-apps/action-app-with-document/.gitignore b/samples/coded-action-apps/action-app-with-document/.gitignore new file mode 100644 index 000000000..e627eec15 --- /dev/null +++ b/samples/coded-action-apps/action-app-with-document/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* + +# Build outputs +node_modules +dist +dist-ssr +.uipath + +# OS / editor +.DS_Store +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/samples/coded-action-apps/action-app-with-document/index.html b/samples/coded-action-apps/action-app-with-document/index.html index 15b758267..df95a6f1e 100644 --- a/samples/coded-action-apps/action-app-with-document/index.html +++ b/samples/coded-action-apps/action-app-with-document/index.html @@ -3,6 +3,7 @@ + UiPath Action Center Form diff --git a/samples/coded-action-apps/action-app-with-document/package-lock.json b/samples/coded-action-apps/action-app-with-document/package-lock.json index 0e8ec030c..93d093c34 100644 --- a/samples/coded-action-apps/action-app-with-document/package-lock.json +++ b/samples/coded-action-apps/action-app-with-document/package-lock.json @@ -798,9 +798,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -818,9 +815,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -838,9 +832,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -858,9 +849,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -878,9 +866,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -898,9 +883,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2302,9 +2284,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2326,9 +2305,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2350,9 +2326,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2374,9 +2347,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ diff --git a/samples/coded-action-apps/action-app-with-document/src/assets/favicon.png b/samples/coded-action-apps/action-app-with-document/src/assets/favicon.png new file mode 100644 index 000000000..e6ed2a94b Binary files /dev/null and b/samples/coded-action-apps/action-app-with-document/src/assets/favicon.png differ diff --git a/samples/coded-action-apps/action-app-with-document/uipath.json.example b/samples/coded-action-apps/action-app-with-document/uipath.json.example new file mode 100644 index 000000000..ef047e920 --- /dev/null +++ b/samples/coded-action-apps/action-app-with-document/uipath.json.example @@ -0,0 +1,8 @@ +{ + "clientId": "", + "scope": "OR.Execution OR.Tasks OR.Folders", + "orgName": "", + "tenantName": "", + "baseUrl": "https://api.uipath.com", + "redirectUri": "http://localhost:5173" +} diff --git a/samples/coded-action-apps/action-app-with-file-attachment-document/.gitignore b/samples/coded-action-apps/action-app-with-file-attachment-document/.gitignore new file mode 100644 index 000000000..e627eec15 --- /dev/null +++ b/samples/coded-action-apps/action-app-with-file-attachment-document/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* + +# Build outputs +node_modules +dist +dist-ssr +.uipath + +# OS / editor +.DS_Store +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/samples/coded-action-apps/action-app-with-file-attachment-document/index.html b/samples/coded-action-apps/action-app-with-file-attachment-document/index.html index 15b758267..df95a6f1e 100644 --- a/samples/coded-action-apps/action-app-with-file-attachment-document/index.html +++ b/samples/coded-action-apps/action-app-with-file-attachment-document/index.html @@ -3,6 +3,7 @@ + UiPath Action Center Form diff --git a/samples/coded-action-apps/action-app-with-file-attachment-document/package-lock.json b/samples/coded-action-apps/action-app-with-file-attachment-document/package-lock.json index 7be78c44f..5b143d6d4 100644 --- a/samples/coded-action-apps/action-app-with-file-attachment-document/package-lock.json +++ b/samples/coded-action-apps/action-app-with-file-attachment-document/package-lock.json @@ -798,9 +798,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -818,9 +815,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -838,9 +832,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -858,9 +849,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -878,9 +866,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -898,9 +883,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2302,9 +2284,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2326,9 +2305,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2350,9 +2326,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2374,9 +2347,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ diff --git a/samples/coded-action-apps/action-app-with-file-attachment-document/src/assets/favicon.png b/samples/coded-action-apps/action-app-with-file-attachment-document/src/assets/favicon.png new file mode 100644 index 000000000..e6ed2a94b Binary files /dev/null and b/samples/coded-action-apps/action-app-with-file-attachment-document/src/assets/favicon.png differ diff --git a/samples/coded-action-apps/action-app-with-file-attachment-document/uipath.json.example b/samples/coded-action-apps/action-app-with-file-attachment-document/uipath.json.example new file mode 100644 index 000000000..b7ae138f0 --- /dev/null +++ b/samples/coded-action-apps/action-app-with-file-attachment-document/uipath.json.example @@ -0,0 +1,8 @@ +{ + "clientId": "", + "scope": "OR.Folders.Read", + "orgName": "", + "tenantName": "", + "baseUrl": "https://api.uipath.com", + "redirectUri": "http://localhost:5173" +} diff --git a/samples/coded-action-apps/action-app-with-image/.gitignore b/samples/coded-action-apps/action-app-with-image/.gitignore new file mode 100644 index 000000000..e627eec15 --- /dev/null +++ b/samples/coded-action-apps/action-app-with-image/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* + +# Build outputs +node_modules +dist +dist-ssr +.uipath + +# OS / editor +.DS_Store +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/samples/coded-action-apps/action-app-with-image/index.html b/samples/coded-action-apps/action-app-with-image/index.html index 15b758267..df95a6f1e 100644 --- a/samples/coded-action-apps/action-app-with-image/index.html +++ b/samples/coded-action-apps/action-app-with-image/index.html @@ -3,6 +3,7 @@ + UiPath Action Center Form diff --git a/samples/coded-action-apps/action-app-with-image/src/assets/favicon.png b/samples/coded-action-apps/action-app-with-image/src/assets/favicon.png new file mode 100644 index 000000000..e6ed2a94b Binary files /dev/null and b/samples/coded-action-apps/action-app-with-image/src/assets/favicon.png differ diff --git a/samples/coded-action-apps/action-app-with-image/uipath.json.example b/samples/coded-action-apps/action-app-with-image/uipath.json.example new file mode 100644 index 000000000..ef047e920 --- /dev/null +++ b/samples/coded-action-apps/action-app-with-image/uipath.json.example @@ -0,0 +1,8 @@ +{ + "clientId": "", + "scope": "OR.Execution OR.Tasks OR.Folders", + "orgName": "", + "tenantName": "", + "baseUrl": "https://api.uipath.com", + "redirectUri": "http://localhost:5173" +} diff --git a/samples/coded-action-apps/action-app-with-storage-bucket-document/.gitignore b/samples/coded-action-apps/action-app-with-storage-bucket-document/.gitignore new file mode 100644 index 000000000..e627eec15 --- /dev/null +++ b/samples/coded-action-apps/action-app-with-storage-bucket-document/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* + +# Build outputs +node_modules +dist +dist-ssr +.uipath + +# OS / editor +.DS_Store +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/samples/coded-action-apps/action-app-with-storage-bucket-document/index.html b/samples/coded-action-apps/action-app-with-storage-bucket-document/index.html index 15b758267..df95a6f1e 100644 --- a/samples/coded-action-apps/action-app-with-storage-bucket-document/index.html +++ b/samples/coded-action-apps/action-app-with-storage-bucket-document/index.html @@ -3,6 +3,7 @@ + UiPath Action Center Form diff --git a/samples/coded-action-apps/action-app-with-storage-bucket-document/package-lock.json b/samples/coded-action-apps/action-app-with-storage-bucket-document/package-lock.json index 4a8164844..c068414f6 100644 --- a/samples/coded-action-apps/action-app-with-storage-bucket-document/package-lock.json +++ b/samples/coded-action-apps/action-app-with-storage-bucket-document/package-lock.json @@ -798,9 +798,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -818,9 +815,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -838,9 +832,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -858,9 +849,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -878,9 +866,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -898,9 +883,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2302,9 +2284,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2326,9 +2305,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2350,9 +2326,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2374,9 +2347,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ diff --git a/samples/coded-action-apps/action-app-with-storage-bucket-document/src/assets/favicon.png b/samples/coded-action-apps/action-app-with-storage-bucket-document/src/assets/favicon.png new file mode 100644 index 000000000..e6ed2a94b Binary files /dev/null and b/samples/coded-action-apps/action-app-with-storage-bucket-document/src/assets/favicon.png differ diff --git a/samples/coded-action-apps/action-app-with-storage-bucket-document/uipath.json.example b/samples/coded-action-apps/action-app-with-storage-bucket-document/uipath.json.example new file mode 100644 index 000000000..e37474f47 --- /dev/null +++ b/samples/coded-action-apps/action-app-with-storage-bucket-document/uipath.json.example @@ -0,0 +1,8 @@ +{ + "clientId": "", + "scope": "OR.Buckets.Read", + "orgName": "", + "tenantName": "", + "baseUrl": "https://api.uipath.com", + "redirectUri": "http://localhost:5173" +} diff --git a/samples/conversational-agent-app/.env.example b/samples/conversational-agent-app/.env.example deleted file mode 100644 index d344ef3c7..000000000 --- a/samples/conversational-agent-app/.env.example +++ /dev/null @@ -1,8 +0,0 @@ -# UiPath OAuth Configuration -# Get these values from your UiPath Cloud Admin Tab - -VITE_UIPATH_CLIENT_ID=your-oauth-client-id -VITE_UIPATH_ORG_NAME=your-organization-name -VITE_UIPATH_TENANT_NAME=your-tenant-name -VITE_UIPATH_BASE_URL=https://api.uipath.com -VITE_UIPATH_SCOPE=OR.Execution OR.Folders OR.Jobs ConversationalAgents Traces.Api diff --git a/samples/conversational-agent-app/.gitignore b/samples/conversational-agent-app/.gitignore new file mode 100644 index 000000000..e627eec15 --- /dev/null +++ b/samples/conversational-agent-app/.gitignore @@ -0,0 +1,21 @@ +# Logs +logs +*.log +npm-debug.log* + +# Build outputs +node_modules +dist +dist-ssr +.uipath + +# OS / editor +.DS_Store +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/samples/conversational-agent-app/README.md b/samples/conversational-agent-app/README.md index ea75eb9d2..4494c89e8 100644 --- a/samples/conversational-agent-app/README.md +++ b/samples/conversational-agent-app/README.md @@ -2,6 +2,10 @@ A sample React TypeScript application for interacting with UiPath Conversational Agents. Features real-time streaming responses over WebSocket, conversation management, file attachments, tool call visualization, and feedback. +## Preview + +![Picking a conversational agent and viewing a chat thread](./screenshots/preview.gif) + ## Installation ```bash diff --git a/samples/conversational-agent-app/package-lock.json b/samples/conversational-agent-app/package-lock.json index a6c62aaf9..779b86ad9 100644 --- a/samples/conversational-agent-app/package-lock.json +++ b/samples/conversational-agent-app/package-lock.json @@ -8,6 +8,7 @@ "name": "conversational-agent-app", "version": "0.0.0", "dependencies": { + "@uipath/uipath-typescript": "^1.1.0", "katex": "^0.16.22", "react": "^19.0.0", "react-dom": "^19.0.0", @@ -18,6 +19,7 @@ "@eslint/js": "^9.17.0", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", + "@uipath/coded-apps-dev": "^1.0.0-beta.1", "@vitejs/plugin-react": "^4.3.4", "autoprefixer": "^10.4.20", "eslint": "^9.17.0", @@ -552,6 +554,84 @@ "node": ">= 8" } }, + "node_modules/@opentelemetry/api": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.204.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.204.0.tgz", + "integrity": "sha512-DqxY8yoAaiBPivoJD4UtgrMS8gEmzZ5lnaxzPojzLVHBGqPxgWm4zcuvcUHZiqQ6kRX2Klel2r9y8cA2HAtqpw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.1.0.tgz", + "integrity": "sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.1.0.tgz", + "integrity": "sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.1.0", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.204.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.204.0.tgz", + "integrity": "sha512-y32iNNmpMUVFWSqbNrXE8xY/6EMge+HX3PXsMnCDV4cXT4SNT+W/3NgyMDf80KJL0fUK17/a0NmfXcrBhkFWrg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.204.0", + "@opentelemetry/core": "2.1.0", + "@opentelemetry/resources": "2.1.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", + "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-beta.27", "dev": true, @@ -569,6 +649,12 @@ "darwin" ] }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.20.5", "dev": true, @@ -918,6 +1004,64 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@uipath/coded-apps-dev": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@uipath/coded-apps-dev/-/coded-apps-dev-1.0.0-beta.1.tgz", + "integrity": "sha512-vZzf5+lMToP/LS3QuXv+7wwqkQ2tuUGaNqGx7x1zWtcTe44XSo3r8q4L9xcnKyH0Zamh0g2XwE9SRmIBvv7wcA==", + "dev": true, + "dependencies": { + "unplugin": "^2.3.4" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@uipath/uipath-typescript": ">=1.0.0-0", + "esbuild": ">=0.17.0", + "rollup": ">=3.0.0", + "vite": ">=4.0.0", + "webpack": ">=5.0.0" + }, + "peerDependenciesMeta": { + "@uipath/uipath-typescript": { + "optional": false + }, + "esbuild": { + "optional": true + }, + "rollup": { + "optional": true + }, + "vite": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@uipath/core-telemetry": { + "version": "1.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@uipath/core-telemetry/-/core-telemetry-1.0.0-beta.3.tgz", + "integrity": "sha512-e/IHHJ77tygw/LvFRSEQ/bxFlmTivrk0ApeRIsPqTpwxXNEryGxLzSjWCRflAKs3EYj+jiwEYRWINpodMjmrqw==", + "license": "MIT", + "dependencies": { + "@opentelemetry/sdk-logs": "^0.204.0" + } + }, + "node_modules/@uipath/uipath-typescript": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@uipath/uipath-typescript/-/uipath-typescript-1.5.3.tgz", + "integrity": "sha512-Se/hEE2QoUtiU9HvMJWeYAy7u/x5k0D2SIHNjYa3KPGPjsLZPLKW7pZSl7dRg+nQvubfIsayGuhgsmkYzccA1g==", + "license": "MIT", + "dependencies": { + "@uipath/core-telemetry": "^1.0.0-beta.3", + "socket.io-client": "^4.8.1" + }, + "peerDependencies": { + "zod": "^4.2.1" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", "license": "ISC" @@ -1392,6 +1536,28 @@ "dev": true, "license": "ISC" }, + "node_modules/engine.io-client": { + "version": "6.6.6", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.6.tgz", + "integrity": "sha512-iY6QdftLQ9pyiPoX082bpf/u1UewnOaJrtJIF9T0++QB34lZrj0uP+Q/bj8AlUsAxqhnkTV2BS8SBZSxOmoV5Q==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.21.0", + "xmlhttprequest-ssl": "~2.1.1" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/esbuild": { "version": "0.25.12", "dev": true, @@ -3573,6 +3739,34 @@ "node": ">=8" } }, + "node_modules/socket.io-client": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.3.tgz", + "integrity": "sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1", + "engine.io-client": "~6.6.1", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.6.tgz", + "integrity": "sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "dev": true, @@ -3937,6 +4131,35 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin/node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "dev": true, @@ -4103,6 +4326,13 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, "node_modules/which": { "version": "2.0.2", "dev": true, @@ -4125,6 +4355,35 @@ "node": ">=0.10.0" } }, + "node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/yallist": { "version": "3.1.1", "dev": true, @@ -4141,6 +4400,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/zwitch": { "version": "2.0.4", "license": "MIT", diff --git a/samples/conversational-agent-app/package.json b/samples/conversational-agent-app/package.json index 3d50c1138..2bba32271 100644 --- a/samples/conversational-agent-app/package.json +++ b/samples/conversational-agent-app/package.json @@ -21,6 +21,7 @@ "@eslint/js": "^9.17.0", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", + "@uipath/coded-apps-dev": "^1.0.0-beta.1", "@vitejs/plugin-react": "^4.3.4", "autoprefixer": "^10.4.20", "eslint": "^9.17.0", diff --git a/samples/conversational-agent-app/screenshots/preview.gif b/samples/conversational-agent-app/screenshots/preview.gif new file mode 100644 index 000000000..daf6cc887 Binary files /dev/null and b/samples/conversational-agent-app/screenshots/preview.gif differ diff --git a/samples/conversational-agent-app/src/App.tsx b/samples/conversational-agent-app/src/App.tsx index bccd71c8b..d1e4f8fbf 100644 --- a/samples/conversational-agent-app/src/App.tsx +++ b/samples/conversational-agent-app/src/App.tsx @@ -3,16 +3,6 @@ import { AuthProvider, useAuth } from './context/AuthContext' import { ChatLayout } from './components/ChatLayout' import { LoginScreen } from './components/LoginScreen' import { Spinner } from './components/Spinner' -import type { UiPathSDKConfig } from '@uipath/uipath-typescript/core' - -const authConfig: UiPathSDKConfig = { - clientId: import.meta.env.VITE_UIPATH_CLIENT_ID || 'your-client-id', - orgName: import.meta.env.VITE_UIPATH_ORG_NAME || 'your-organization', - tenantName: import.meta.env.VITE_UIPATH_TENANT_NAME || 'your-tenant', - baseUrl: import.meta.env.VITE_UIPATH_BASE_URL, - redirectUri: window.location.origin + window.location.pathname, - scope: import.meta.env.VITE_UIPATH_SCOPE, -} function AppContent() { const { isAuthenticated, isLoading } = useAuth() @@ -41,7 +31,7 @@ function AppContent() { function App() { return ( - + ) diff --git a/samples/conversational-agent-app/src/assets/favicon.png b/samples/conversational-agent-app/src/assets/favicon.png index 99f7129b1..e6ed2a94b 100644 Binary files a/samples/conversational-agent-app/src/assets/favicon.png and b/samples/conversational-agent-app/src/assets/favicon.png differ diff --git a/samples/conversational-agent-app/src/context/AuthContext.tsx b/samples/conversational-agent-app/src/context/AuthContext.tsx index 589bad2cc..21592b89e 100644 --- a/samples/conversational-agent-app/src/context/AuthContext.tsx +++ b/samples/conversational-agent-app/src/context/AuthContext.tsx @@ -4,7 +4,6 @@ import { useState, useEffect, useMemo, useCallback, createContext, useContext, type ReactNode } from 'react' import { UiPath } from '@uipath/uipath-typescript/core' -import type { UiPathSDKConfig } from '@uipath/uipath-typescript/core' interface AuthContextType { isAuthenticated: boolean @@ -17,11 +16,19 @@ interface AuthContextType { const AuthContext = createContext(undefined) -export function AuthProvider({ children, config }: { children: ReactNode; config: UiPathSDKConfig }) { +/** + * Provides the authenticated UiPath SDK instance to the app. + * + * Coded App pattern: `new UiPath()` (no config) picks up `clientId`, + * `orgName`, `tenantName`, `baseUrl`, `scope`, and `redirectUri` from the + * `` tags injected by `@uipath/coded-apps-dev` + * (locally, from `uipath.json`) or by the UiPath platform (in production). + */ +export function AuthProvider({ children }: { children: ReactNode }) { const [isAuthenticated, setIsAuthenticated] = useState(false) const [isLoading, setIsLoading] = useState(true) const [error, setError] = useState(null) - const [uipathSDK, setUipathSDK] = useState(() => new UiPath(config)) + const [uipathSDK, setUipathSDK] = useState(() => new UiPath()) useEffect(() => { const initializeAuth = async () => { @@ -67,8 +74,8 @@ export function AuthProvider({ children, config }: { children: ReactNode; config setIsAuthenticated(false) setError(null) // Create new SDK instance for next login - setUipathSDK(new UiPath(config)) - }, [config]) + setUipathSDK(new UiPath()) + }, []) const contextValue = useMemo(() => ({ isAuthenticated, isLoading, uipathSDK, login, logout, error diff --git a/samples/conversational-agent-app/src/vite-env.d.ts b/samples/conversational-agent-app/src/vite-env.d.ts index 9b45313d1..11f02fe2a 100644 --- a/samples/conversational-agent-app/src/vite-env.d.ts +++ b/samples/conversational-agent-app/src/vite-env.d.ts @@ -1,14 +1 @@ /// - -interface ImportMetaEnv { - readonly VITE_UIPATH_BASE_URL: string - readonly VITE_UIPATH_CLIENT_ID: string - readonly VITE_UIPATH_REDIRECT_URI: string - readonly VITE_UIPATH_SCOPE: string - readonly VITE_UIPATH_ORG_NAME: string - readonly VITE_UIPATH_TENANT_NAME: string -} - -interface ImportMeta { - readonly env: ImportMetaEnv -} diff --git a/samples/conversational-agent-app/uipath.json.example b/samples/conversational-agent-app/uipath.json.example new file mode 100644 index 000000000..422062255 --- /dev/null +++ b/samples/conversational-agent-app/uipath.json.example @@ -0,0 +1,8 @@ +{ + "clientId": "", + "scope": "OR.Execution OR.Folders OR.Jobs ConversationalAgents Traces.Api", + "orgName": "", + "tenantName": "", + "baseUrl": "https://api.uipath.com", + "redirectUri": "http://localhost:5173" +} diff --git a/samples/conversational-agent-app/vite.config.ts b/samples/conversational-agent-app/vite.config.ts index 19861a90c..f923d11df 100644 --- a/samples/conversational-agent-app/vite.config.ts +++ b/samples/conversational-agent-app/vite.config.ts @@ -1,8 +1,15 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import { uipathCodedApps } from '@uipath/coded-apps-dev/vite' export default defineConfig({ - plugins: [react()], + plugins: [ + react(), + // Reads uipath.json and injects tags into + // index.html during local dev. At deploy time the platform injects + // production values, so the same SDK init code works in both places. + uipathCodedApps(), + ], build: { rollupOptions: { output: { diff --git a/samples/dashboards/agent-runtime-compliance/src/assets/favicon.png b/samples/dashboards/agent-runtime-compliance/src/assets/favicon.png index c8dbcf418..e6ed2a94b 100644 Binary files a/samples/dashboards/agent-runtime-compliance/src/assets/favicon.png and b/samples/dashboards/agent-runtime-compliance/src/assets/favicon.png differ diff --git a/samples/data-fabric-app-angular/.gitignore b/samples/data-fabric-app-angular/.gitignore index 4e2d4e576..04940279f 100644 --- a/samples/data-fabric-app-angular/.gitignore +++ b/samples/data-fabric-app-angular/.gitignore @@ -10,6 +10,7 @@ out-tsc/ # Tenant-specific credentials — copy uipath.json.example instead uipath.json +.uipath # Misc .DS_Store diff --git a/samples/data-fabric-app-angular/public/favicon.png b/samples/data-fabric-app-angular/public/favicon.png index 99f7129b1..e6ed2a94b 100644 Binary files a/samples/data-fabric-app-angular/public/favicon.png and b/samples/data-fabric-app-angular/public/favicon.png differ diff --git a/samples/data-fabric-app/README.md b/samples/data-fabric-app/README.md index 8a89d3b2a..39499c557 100644 --- a/samples/data-fabric-app/README.md +++ b/samples/data-fabric-app/README.md @@ -2,6 +2,10 @@ A sample React + TypeScript application for browsing and managing **UiPath Data Fabric** entities, records, and choice sets via the UiPath TypeScript SDK. Deploys as a UiPath Coded App. +## Preview + +![Data Fabric Explorer browsing entities, records, and choice sets](./screenshots/preview.gif) + ## SDK Usage ### Importing the SDK diff --git a/samples/data-fabric-app/screenshots/preview.gif b/samples/data-fabric-app/screenshots/preview.gif new file mode 100644 index 000000000..d490adffe Binary files /dev/null and b/samples/data-fabric-app/screenshots/preview.gif differ diff --git a/samples/data-fabric-app/src/assets/favicon.png b/samples/data-fabric-app/src/assets/favicon.png index 99f7129b1..e6ed2a94b 100644 Binary files a/samples/data-fabric-app/src/assets/favicon.png and b/samples/data-fabric-app/src/assets/favicon.png differ diff --git a/samples/document-validation-app/README.md b/samples/document-validation-app/README.md index 4bc4586ca..2ec9c4ec1 100644 --- a/samples/document-validation-app/README.md +++ b/samples/document-validation-app/README.md @@ -2,6 +2,10 @@ A sample React + TypeScript + Vite application that demonstrates building a human-in-the-loop document validation inbox on top of UiPath Action Center. It lists Document Validation tasks from Orchestrator, grouped into **Pending**, **Unassigned**, and **Completed** tabs, renders the document and extracted fields in UiPath's validation station web component, and lets a reviewer save, submit, or report an exception on a task back to Action Center. +## Preview + +![Reviewing a document validation task: task list, extracted fields, and the document text view](./screenshots/preview.gif) + ## What this sample demonstrates - OAuth 2.0 authorization code + PKCE login against UiPath Cloud using the `@uipath/uipath-typescript` SDK diff --git a/samples/document-validation-app/index.html b/samples/document-validation-app/index.html index 5c8e107ce..15eab1dda 100644 --- a/samples/document-validation-app/index.html +++ b/samples/document-validation-app/index.html @@ -2,7 +2,7 @@ - + document-validation-app diff --git a/samples/document-validation-app/public/favicon.png b/samples/document-validation-app/public/favicon.png new file mode 100644 index 000000000..e6ed2a94b Binary files /dev/null and b/samples/document-validation-app/public/favicon.png differ diff --git a/samples/document-validation-app/public/favicon.svg b/samples/document-validation-app/public/favicon.svg deleted file mode 100644 index 6893eb132..000000000 --- a/samples/document-validation-app/public/favicon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/samples/document-validation-app/screenshots/preview.gif b/samples/document-validation-app/screenshots/preview.gif new file mode 100644 index 000000000..6d4581dc3 Binary files /dev/null and b/samples/document-validation-app/screenshots/preview.gif differ diff --git a/samples/document-validation-app/uipath.example.json b/samples/document-validation-app/uipath.json.example similarity index 100% rename from samples/document-validation-app/uipath.example.json rename to samples/document-validation-app/uipath.json.example diff --git a/samples/process-app-v0/.env.example b/samples/process-app-v0/.env.example index 41877e05a..47dbb3255 100644 --- a/samples/process-app-v0/.env.example +++ b/samples/process-app-v0/.env.example @@ -1,11 +1,4 @@ -# UiPath OAuth Configuration -# Get these values from your UiPath Cloud Admin Tab - -VITE_UIPATH_CLIENT_ID=your-oauth-client-id -VITE_UIPATH_ORG_NAME=your-organization-name -VITE_UIPATH_TENANT_NAME=your-tenant-name -VITE_UIPATH_BASE_URL=https://api.uipath.com -VITE_UIPATH_SCOPE=PIMS DataFabric.Schema.Read DataFabric.Data.Read DataFabric.Data.Write OR.Execution.Read -# Entity ID for attachments and data retrieval -# Replace with your specific entity ID from Data Service to fetch any relevant data -VITE_UIPATH_ENTITY_ID=your-entity-id-here \ No newline at end of file +# OAuth config (client, org, tenant, base URL) lives in uipath.json. +# The only app-specific value is the Data Fabric entity used for attachments: +# replace with your entity ID from Data Service to fetch related records. +VITE_UIPATH_ENTITY_ID=your-entity-id-here diff --git a/samples/process-app-v0/README.md b/samples/process-app-v0/README.md index 11caec460..918748ef5 100644 --- a/samples/process-app-v0/README.md +++ b/samples/process-app-v0/README.md @@ -2,6 +2,10 @@ A sample React TypeScript application for managing UiPath Maestro processes with OAuth authentication. +## Preview + +![Browsing Maestro processes and process instances](./screenshots/preview.gif) + ## Installation To install the sdk do diff --git a/samples/process-app-v0/package-lock.json b/samples/process-app-v0/package-lock.json index f0bd3b74c..b29ef50ca 100644 --- a/samples/process-app-v0/package-lock.json +++ b/samples/process-app-v0/package-lock.json @@ -8,15 +8,17 @@ "name": "process-app-task", "version": "0.0.0", "dependencies": { - "@uipath/uipath-typescript": "^1.1.1", + "@uipath/uipath-typescript": "^1.3.1", "path-browserify": "^1.0.1", "react": "^19.1.1", "react-dom": "^19.1.1" }, "devDependencies": { "@eslint/js": "^9.36.0", + "@tailwindcss/postcss": "^4.3.2", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", + "@uipath/coded-apps-dev": "^1.0.0-beta.1", "@vitejs/plugin-react": "^5.2.0", "autoprefixer": "^10.4.21", "eslint": "^9.36.0", @@ -30,6 +32,19 @@ "vite": "^8.1.0" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -579,9 +594,9 @@ } }, "node_modules/@opentelemetry/api": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", "license": "Apache-2.0", "engines": { "node": ">=8.0.0" @@ -648,9 +663,9 @@ } }, "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.39.0.tgz", - "integrity": "sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==", + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", + "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==", "license": "Apache-2.0", "engines": { "node": ">=14" @@ -759,9 +774,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -779,9 +791,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -799,9 +808,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -819,9 +825,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -839,9 +842,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -859,9 +859,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -954,6 +951,277 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "license": "MIT" }, + "node_modules/@tailwindcss/node": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.2.tgz", + "integrity": "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "5.21.6", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.2" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.2.tgz", + "integrity": "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.2", + "@tailwindcss/oxide-darwin-arm64": "4.3.2", + "@tailwindcss/oxide-darwin-x64": "4.3.2", + "@tailwindcss/oxide-freebsd-x64": "4.3.2", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.2", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.2", + "@tailwindcss/oxide-linux-x64-musl": "4.3.2", + "@tailwindcss/oxide-wasm32-wasi": "4.3.2", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.2" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.2.tgz", + "integrity": "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.2.tgz", + "integrity": "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.2.tgz", + "integrity": "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.2.tgz", + "integrity": "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.2.tgz", + "integrity": "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.2.tgz", + "integrity": "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.2.tgz", + "integrity": "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.2.tgz", + "integrity": "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.2.tgz", + "integrity": "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.2.tgz", + "integrity": "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.2.tgz", + "integrity": "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.2.tgz", + "integrity": "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.2.tgz", + "integrity": "sha512-rjVWYCa7Ngbi5AarT6k8TkxUG3Wl1QKzHdIZVsjZSzf36Jmo2IKZt/NHRAwly8oDkbBOH0YTu+CHuf9jPxMc+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.3.2", + "@tailwindcss/oxide": "4.3.2", + "postcss": "^8.5.15", + "tailwindcss": "4.3.2" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", @@ -1273,13 +1541,58 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@uipath/coded-apps-dev": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@uipath/coded-apps-dev/-/coded-apps-dev-1.0.0-beta.1.tgz", + "integrity": "sha512-vZzf5+lMToP/LS3QuXv+7wwqkQ2tuUGaNqGx7x1zWtcTe44XSo3r8q4L9xcnKyH0Zamh0g2XwE9SRmIBvv7wcA==", + "dev": true, + "dependencies": { + "unplugin": "^2.3.4" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@uipath/uipath-typescript": ">=1.0.0-0", + "esbuild": ">=0.17.0", + "rollup": ">=3.0.0", + "vite": ">=4.0.0", + "webpack": ">=5.0.0" + }, + "peerDependenciesMeta": { + "@uipath/uipath-typescript": { + "optional": false + }, + "esbuild": { + "optional": true + }, + "rollup": { + "optional": true + }, + "vite": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@uipath/core-telemetry": { + "version": "1.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@uipath/core-telemetry/-/core-telemetry-1.0.0-beta.3.tgz", + "integrity": "sha512-e/IHHJ77tygw/LvFRSEQ/bxFlmTivrk0ApeRIsPqTpwxXNEryGxLzSjWCRflAKs3EYj+jiwEYRWINpodMjmrqw==", + "license": "MIT", + "dependencies": { + "@opentelemetry/sdk-logs": "^0.204.0" + } + }, "node_modules/@uipath/uipath-typescript": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@uipath/uipath-typescript/-/uipath-typescript-1.1.1.tgz", - "integrity": "sha512-b758LoVwqGX2+7MNrDYscj0P5mEWNtNMcxmUkCiCVT3G7JkT5ehWU+Nyt0uuVPTIbzcoGUZc7lIZkXjSsRk8zg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@uipath/uipath-typescript/-/uipath-typescript-1.5.3.tgz", + "integrity": "sha512-Se/hEE2QoUtiU9HvMJWeYAy7u/x5k0D2SIHNjYa3KPGPjsLZPLKW7pZSl7dRg+nQvubfIsayGuhgsmkYzccA1g==", "license": "MIT", "dependencies": { - "@opentelemetry/sdk-logs": "^0.204.0", + "@uipath/core-telemetry": "^1.0.0-beta.3", "socket.io-client": "^4.8.1" }, "peerDependencies": { @@ -1596,6 +1909,20 @@ "node": ">=10.0.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.21.6", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", + "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/escalade": { "version": "3.2.0", "dev": true, @@ -1886,6 +2213,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, "node_modules/has-flag": { "version": "4.0.0", "dev": true, @@ -1949,6 +2283,16 @@ "dev": true, "license": "ISC" }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2328,6 +2672,16 @@ "yallist": "^3.0.2" } }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", @@ -2454,6 +2808,19 @@ "dev": true, "license": "ISC" }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/postcss": { "version": "8.5.15", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", @@ -2670,12 +3037,26 @@ } }, "node_modules/tailwindcss": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.1.tgz", - "integrity": "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.2.tgz", + "integrity": "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==", "dev": true, "license": "MIT" }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/tinyglobby": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", @@ -2709,19 +3090,6 @@ } } }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/ts-api-utils": { "version": "2.4.0", "dev": true, @@ -2786,6 +3154,22 @@ "typescript": ">=4.8.4 <6.0.0" } }, + "node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "dev": true, @@ -2901,18 +3285,12 @@ } } }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "license": "MIT" }, "node_modules/which": { "version": "2.0.2", diff --git a/samples/process-app-v0/package.json b/samples/process-app-v0/package.json index c92d0c56b..e632008bf 100644 --- a/samples/process-app-v0/package.json +++ b/samples/process-app-v0/package.json @@ -10,15 +10,17 @@ "preview": "vite preview" }, "dependencies": { - "@uipath/uipath-typescript": "^1.1.1", + "@uipath/uipath-typescript": "^1.3.1", "path-browserify": "^1.0.1", "react": "^19.1.1", "react-dom": "^19.1.1" }, "devDependencies": { "@eslint/js": "^9.36.0", + "@tailwindcss/postcss": "^4.3.2", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", + "@uipath/coded-apps-dev": "^1.0.0-beta.1", "@vitejs/plugin-react": "^5.2.0", "autoprefixer": "^10.4.21", "eslint": "^9.36.0", diff --git a/samples/process-app-v0/postcss.config.js b/samples/process-app-v0/postcss.config.js index e99ebc2c0..af9d8dc35 100644 --- a/samples/process-app-v0/postcss.config.js +++ b/samples/process-app-v0/postcss.config.js @@ -1,6 +1,6 @@ export default { plugins: { - tailwindcss: {}, + '@tailwindcss/postcss': {}, autoprefixer: {}, }, } \ No newline at end of file diff --git a/samples/process-app-v0/screenshots/preview.gif b/samples/process-app-v0/screenshots/preview.gif new file mode 100644 index 000000000..fddbaea2d Binary files /dev/null and b/samples/process-app-v0/screenshots/preview.gif differ diff --git a/samples/process-app-v0/src/App.tsx b/samples/process-app-v0/src/App.tsx index 4198f7700..140597c00 100644 --- a/samples/process-app-v0/src/App.tsx +++ b/samples/process-app-v0/src/App.tsx @@ -6,16 +6,6 @@ import { Navigation } from './components/Navigation'; import { LoginScreen } from './components/LoginScreen'; import { ProcessList } from './components/ProcessList'; import { ProcessInstances } from './components/ProcessInstances'; -import type { UiPathSDKConfig } from '@uipath/uipath-typescript'; - -const authConfig: UiPathSDKConfig = { - clientId: import.meta.env.VITE_UIPATH_CLIENT_ID || 'your-client-id', - orgName: import.meta.env.VITE_UIPATH_ORG_NAME || 'your-organization', - tenantName: import.meta.env.VITE_UIPATH_TENANT_NAME || 'your-tenant', - baseUrl: import.meta.env.VITE_UIPATH_BASE_URL, - redirectUri: window.location.origin + window.location.pathname, - scope: import.meta.env.VITE_UIPATH_SCOPE -}; function AppContent() { const { isAuthenticated, isLoading } = useAuth(); @@ -59,7 +49,7 @@ function AppContent() { function App() { return ( - + ); diff --git a/samples/process-app-v0/src/assets/favicon.png b/samples/process-app-v0/src/assets/favicon.png index 99f7129b1..e6ed2a94b 100644 Binary files a/samples/process-app-v0/src/assets/favicon.png and b/samples/process-app-v0/src/assets/favicon.png differ diff --git a/samples/process-app-v0/src/components/InstanceDetails.tsx b/samples/process-app-v0/src/components/InstanceDetails.tsx index ef5e6de6b..d50987f69 100644 --- a/samples/process-app-v0/src/components/InstanceDetails.tsx +++ b/samples/process-app-v0/src/components/InstanceDetails.tsx @@ -1,6 +1,7 @@ import { useState } from 'react'; import type { ProcessInstanceGetResponse } from '@uipath/uipath-typescript'; import { getStatusColor, formatDuration, formatProcessName, getEmbedTaskUrl } from '../utils/formatters'; +import { useAuth } from '../hooks/useAuth'; interface InstanceDetailsProps { selectedInstance: ProcessInstanceGetResponse | null; @@ -19,6 +20,8 @@ interface InstanceDetailsProps { export const InstanceDetails = ({ selectedInstance, instanceDetails, onRefreshData }: InstanceDetailsProps) => { const [isTaskPopupOpen, setIsTaskPopupOpen] = useState(false); + // orgName/tenantName/baseUrl come from the SDK config (uipath.json), not env + const { sdk } = useAuth(); if (!selectedInstance) { return ( @@ -387,7 +390,7 @@ export const InstanceDetails = ({ selectedInstance, instanceDetails, onRefreshDa { } try { - executionHistory = await sdk.maestro.processes.instances.getExecutionHistory(instance.instanceId); + executionHistory = await sdk.maestro.processes.instances.getExecutionHistory(instance.instanceId, instance.folderKey); } catch (err) { console.error('Error fetching execution history:', err); // Continue without execution history diff --git a/samples/process-app-v0/src/hooks/useAuth.tsx b/samples/process-app-v0/src/hooks/useAuth.tsx index a5c3c3cff..20e5ccce8 100644 --- a/samples/process-app-v0/src/hooks/useAuth.tsx +++ b/samples/process-app-v0/src/hooks/useAuth.tsx @@ -1,10 +1,9 @@ import React, { useState, useEffect, createContext, useContext } from 'react'; import type { ReactNode } from 'react'; -import { +import { UiPath, UiPathError } from '@uipath/uipath-typescript'; -import type { UiPathSDKConfig } from '@uipath/uipath-typescript'; interface AuthContextType { isAuthenticated: boolean; isLoading: boolean; @@ -16,11 +15,15 @@ interface AuthContextType { const AuthContext = createContext(undefined); -export const AuthProvider: React.FC<{ children: ReactNode; config: UiPathSDKConfig }> = ({ children, config }) => { +// Coded App pattern: `new UiPath()` (no config) picks up `clientId`, +// `orgName`, `tenantName`, `baseUrl`, `scope`, and `redirectUri` from the +// `` tags injected by `@uipath/coded-apps-dev` +// (locally, from `uipath.json`) or by the UiPath platform (in production). +export const AuthProvider: React.FC<{ children: ReactNode }> = ({ children }) => { const [isAuthenticated, setIsAuthenticated] = useState(false); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(null); - const [sdk] = useState(() => new UiPath(config)); + const [sdk] = useState(() => new UiPath()); useEffect(() => { const initializeAuth = async () => { diff --git a/samples/process-app-v0/src/index.css b/samples/process-app-v0/src/index.css index 46e294cd6..8fb5f7d46 100644 --- a/samples/process-app-v0/src/index.css +++ b/samples/process-app-v0/src/index.css @@ -1,6 +1,4 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; body { margin: 0; diff --git a/samples/process-app-v0/uipath.json.example b/samples/process-app-v0/uipath.json.example new file mode 100644 index 000000000..794d7c3ab --- /dev/null +++ b/samples/process-app-v0/uipath.json.example @@ -0,0 +1,8 @@ +{ + "clientId": "", + "scope": "PIMS DataFabric.Schema.Read DataFabric.Data.Read DataFabric.Data.Write OR.Execution.Read", + "orgName": "", + "tenantName": "", + "baseUrl": "https://api.uipath.com", + "redirectUri": "http://localhost:5173" +} diff --git a/samples/process-app-v0/vite.config.ts b/samples/process-app-v0/vite.config.ts index 657258f32..c2b70aad5 100644 --- a/samples/process-app-v0/vite.config.ts +++ b/samples/process-app-v0/vite.config.ts @@ -1,9 +1,20 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import { uipathCodedApps } from '@uipath/coded-apps-dev/vite' // https://vite.dev/config/ export default defineConfig({ - plugins: [react()], + // Coded App requirement: assets must use relative paths so they resolve + // correctly under the the platform injects + // at deploy time. + base: './', + plugins: [ + react(), + // Reads uipath.json and injects tags into + // index.html during local dev. At deploy time the platform injects + // production values, so the same SDK init code works in both places. + uipathCodedApps(), + ], define: { global: 'globalThis', }, @@ -15,5 +26,4 @@ export default defineConfig({ optimizeDeps: { include: ['@uipath/uipath-typescript'], }, - base: './', }) diff --git a/samples/process-app-v1/.env.example b/samples/process-app-v1/.env.example index 41877e05a..47dbb3255 100644 --- a/samples/process-app-v1/.env.example +++ b/samples/process-app-v1/.env.example @@ -1,11 +1,4 @@ -# UiPath OAuth Configuration -# Get these values from your UiPath Cloud Admin Tab - -VITE_UIPATH_CLIENT_ID=your-oauth-client-id -VITE_UIPATH_ORG_NAME=your-organization-name -VITE_UIPATH_TENANT_NAME=your-tenant-name -VITE_UIPATH_BASE_URL=https://api.uipath.com -VITE_UIPATH_SCOPE=PIMS DataFabric.Schema.Read DataFabric.Data.Read DataFabric.Data.Write OR.Execution.Read -# Entity ID for attachments and data retrieval -# Replace with your specific entity ID from Data Service to fetch any relevant data -VITE_UIPATH_ENTITY_ID=your-entity-id-here \ No newline at end of file +# OAuth config (client, org, tenant, base URL) lives in uipath.json. +# The only app-specific value is the Data Fabric entity used for attachments: +# replace with your entity ID from Data Service to fetch related records. +VITE_UIPATH_ENTITY_ID=your-entity-id-here diff --git a/samples/process-app-v1/README.md b/samples/process-app-v1/README.md index 1d25b1cd1..34591156c 100644 --- a/samples/process-app-v1/README.md +++ b/samples/process-app-v1/README.md @@ -4,6 +4,10 @@ A sample React TypeScript application for managing UiPath Maestro processes with > This app uses the recommended modular import pattern for better performance and smaller bundle sizes. For the single-package import pattern, see [process-app-v0](../process-app-v0). +## Preview + +![Browsing Maestro processes and drilling into a process instance's execution detail](./screenshots/preview.gif) + ## SDK Usage ### Importing the SDK diff --git a/samples/process-app-v1/package-lock.json b/samples/process-app-v1/package-lock.json index dad0adfd8..a63c92ba8 100644 --- a/samples/process-app-v1/package-lock.json +++ b/samples/process-app-v1/package-lock.json @@ -8,15 +8,17 @@ "name": "process-app-modular", "version": "0.0.0", "dependencies": { - "@uipath/uipath-typescript": "^1.1.1", + "@uipath/uipath-typescript": "^1.3.1", "path-browserify": "^1.0.1", "react": "^19.1.1", "react-dom": "^19.1.1" }, "devDependencies": { "@eslint/js": "^9.36.0", + "@tailwindcss/postcss": "^4.3.2", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", + "@uipath/coded-apps-dev": "^1.0.0-beta.1", "@vitejs/plugin-react": "^5.2.0", "autoprefixer": "^10.4.21", "eslint": "^9.36.0", @@ -30,6 +32,19 @@ "vite": "^8.1.0" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -579,9 +594,9 @@ } }, "node_modules/@opentelemetry/api": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", "license": "Apache-2.0", "engines": { "node": ">=8.0.0" @@ -648,9 +663,9 @@ } }, "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.39.0.tgz", - "integrity": "sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==", + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", + "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==", "license": "Apache-2.0", "engines": { "node": ">=14" @@ -759,9 +774,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -779,9 +791,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -799,9 +808,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -819,9 +825,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -839,9 +842,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -859,9 +859,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -954,6 +951,277 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "license": "MIT" }, + "node_modules/@tailwindcss/node": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.2.tgz", + "integrity": "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "5.21.6", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.2" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.2.tgz", + "integrity": "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.2", + "@tailwindcss/oxide-darwin-arm64": "4.3.2", + "@tailwindcss/oxide-darwin-x64": "4.3.2", + "@tailwindcss/oxide-freebsd-x64": "4.3.2", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.2", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.2", + "@tailwindcss/oxide-linux-x64-musl": "4.3.2", + "@tailwindcss/oxide-wasm32-wasi": "4.3.2", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.2" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.2.tgz", + "integrity": "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.2.tgz", + "integrity": "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.2.tgz", + "integrity": "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.2.tgz", + "integrity": "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.2.tgz", + "integrity": "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.2.tgz", + "integrity": "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.2.tgz", + "integrity": "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.2.tgz", + "integrity": "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.2.tgz", + "integrity": "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.2.tgz", + "integrity": "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.2.tgz", + "integrity": "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.2.tgz", + "integrity": "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.2.tgz", + "integrity": "sha512-rjVWYCa7Ngbi5AarT6k8TkxUG3Wl1QKzHdIZVsjZSzf36Jmo2IKZt/NHRAwly8oDkbBOH0YTu+CHuf9jPxMc+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.3.2", + "@tailwindcss/oxide": "4.3.2", + "postcss": "^8.5.15", + "tailwindcss": "4.3.2" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", @@ -1273,13 +1541,58 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@uipath/coded-apps-dev": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@uipath/coded-apps-dev/-/coded-apps-dev-1.0.0-beta.1.tgz", + "integrity": "sha512-vZzf5+lMToP/LS3QuXv+7wwqkQ2tuUGaNqGx7x1zWtcTe44XSo3r8q4L9xcnKyH0Zamh0g2XwE9SRmIBvv7wcA==", + "dev": true, + "dependencies": { + "unplugin": "^2.3.4" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@uipath/uipath-typescript": ">=1.0.0-0", + "esbuild": ">=0.17.0", + "rollup": ">=3.0.0", + "vite": ">=4.0.0", + "webpack": ">=5.0.0" + }, + "peerDependenciesMeta": { + "@uipath/uipath-typescript": { + "optional": false + }, + "esbuild": { + "optional": true + }, + "rollup": { + "optional": true + }, + "vite": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@uipath/core-telemetry": { + "version": "1.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@uipath/core-telemetry/-/core-telemetry-1.0.0-beta.3.tgz", + "integrity": "sha512-e/IHHJ77tygw/LvFRSEQ/bxFlmTivrk0ApeRIsPqTpwxXNEryGxLzSjWCRflAKs3EYj+jiwEYRWINpodMjmrqw==", + "license": "MIT", + "dependencies": { + "@opentelemetry/sdk-logs": "^0.204.0" + } + }, "node_modules/@uipath/uipath-typescript": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@uipath/uipath-typescript/-/uipath-typescript-1.1.1.tgz", - "integrity": "sha512-b758LoVwqGX2+7MNrDYscj0P5mEWNtNMcxmUkCiCVT3G7JkT5ehWU+Nyt0uuVPTIbzcoGUZc7lIZkXjSsRk8zg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@uipath/uipath-typescript/-/uipath-typescript-1.5.3.tgz", + "integrity": "sha512-Se/hEE2QoUtiU9HvMJWeYAy7u/x5k0D2SIHNjYa3KPGPjsLZPLKW7pZSl7dRg+nQvubfIsayGuhgsmkYzccA1g==", "license": "MIT", "dependencies": { - "@opentelemetry/sdk-logs": "^0.204.0", + "@uipath/core-telemetry": "^1.0.0-beta.3", "socket.io-client": "^4.8.1" }, "peerDependencies": { @@ -1596,6 +1909,20 @@ "node": ">=10.0.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.21.6", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", + "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/escalade": { "version": "3.2.0", "dev": true, @@ -1886,6 +2213,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, "node_modules/has-flag": { "version": "4.0.0", "dev": true, @@ -1949,6 +2283,16 @@ "dev": true, "license": "ISC" }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2328,6 +2672,16 @@ "yallist": "^3.0.2" } }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", @@ -2454,6 +2808,19 @@ "dev": true, "license": "ISC" }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/postcss": { "version": "8.5.15", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", @@ -2670,12 +3037,26 @@ } }, "node_modules/tailwindcss": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.1.tgz", - "integrity": "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.2.tgz", + "integrity": "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==", "dev": true, "license": "MIT" }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/tinyglobby": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", @@ -2709,19 +3090,6 @@ } } }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/ts-api-utils": { "version": "2.4.0", "dev": true, @@ -2786,6 +3154,22 @@ "typescript": ">=4.8.4 <6.0.0" } }, + "node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "dev": true, @@ -2901,18 +3285,12 @@ } } }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "license": "MIT" }, "node_modules/which": { "version": "2.0.2", diff --git a/samples/process-app-v1/package.json b/samples/process-app-v1/package.json index 04848e42c..fe0e4b010 100644 --- a/samples/process-app-v1/package.json +++ b/samples/process-app-v1/package.json @@ -11,15 +11,17 @@ "preview": "vite preview" }, "dependencies": { - "@uipath/uipath-typescript": "^1.1.1", + "@uipath/uipath-typescript": "^1.3.1", "path-browserify": "^1.0.1", "react": "^19.1.1", "react-dom": "^19.1.1" }, "devDependencies": { "@eslint/js": "^9.36.0", + "@tailwindcss/postcss": "^4.3.2", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", + "@uipath/coded-apps-dev": "^1.0.0-beta.1", "@vitejs/plugin-react": "^5.2.0", "autoprefixer": "^10.4.21", "eslint": "^9.36.0", diff --git a/samples/process-app-v1/postcss.config.js b/samples/process-app-v1/postcss.config.js index e99ebc2c0..af9d8dc35 100644 --- a/samples/process-app-v1/postcss.config.js +++ b/samples/process-app-v1/postcss.config.js @@ -1,6 +1,6 @@ export default { plugins: { - tailwindcss: {}, + '@tailwindcss/postcss': {}, autoprefixer: {}, }, } \ No newline at end of file diff --git a/samples/process-app-v1/screenshots/preview.gif b/samples/process-app-v1/screenshots/preview.gif new file mode 100644 index 000000000..ab326f6e6 Binary files /dev/null and b/samples/process-app-v1/screenshots/preview.gif differ diff --git a/samples/process-app-v1/src/App.tsx b/samples/process-app-v1/src/App.tsx index ec37ee179..140597c00 100644 --- a/samples/process-app-v1/src/App.tsx +++ b/samples/process-app-v1/src/App.tsx @@ -6,16 +6,6 @@ import { Navigation } from './components/Navigation'; import { LoginScreen } from './components/LoginScreen'; import { ProcessList } from './components/ProcessList'; import { ProcessInstances } from './components/ProcessInstances'; -import type { UiPathSDKConfig } from '@uipath/uipath-typescript/core'; - -const authConfig: UiPathSDKConfig = { - clientId: import.meta.env.VITE_UIPATH_CLIENT_ID || 'your-client-id', - orgName: import.meta.env.VITE_UIPATH_ORG_NAME || 'your-organization', - tenantName: import.meta.env.VITE_UIPATH_TENANT_NAME || 'your-tenant', - baseUrl: import.meta.env.VITE_UIPATH_BASE_URL, - redirectUri: window.location.origin + window.location.pathname, - scope: import.meta.env.VITE_UIPATH_SCOPE -}; function AppContent() { const { isAuthenticated, isLoading } = useAuth(); @@ -59,7 +49,7 @@ function AppContent() { function App() { return ( - + ); diff --git a/samples/process-app-v1/src/assets/favicon.png b/samples/process-app-v1/src/assets/favicon.png index 99f7129b1..e6ed2a94b 100644 Binary files a/samples/process-app-v1/src/assets/favicon.png and b/samples/process-app-v1/src/assets/favicon.png differ diff --git a/samples/process-app-v1/src/components/InstanceDetails.tsx b/samples/process-app-v1/src/components/InstanceDetails.tsx index 8aed454be..75bc6c6c8 100644 --- a/samples/process-app-v1/src/components/InstanceDetails.tsx +++ b/samples/process-app-v1/src/components/InstanceDetails.tsx @@ -2,6 +2,7 @@ import { useState } from 'react'; // Modular import - import types from maestro-processes module import type { ProcessInstanceGetResponse } from '@uipath/uipath-typescript/maestro-processes'; import { getStatusColor, formatDuration, formatProcessName, getEmbedTaskUrl } from '../utils/formatters'; +import { useAuth } from '../hooks/useAuth'; interface InstanceDetailsProps { selectedInstance: ProcessInstanceGetResponse | null; @@ -20,6 +21,8 @@ interface InstanceDetailsProps { export const InstanceDetails = ({ selectedInstance, instanceDetails, onRefreshData }: InstanceDetailsProps) => { const [isTaskPopupOpen, setIsTaskPopupOpen] = useState(false); + // orgName/tenantName/baseUrl come from the SDK config (uipath.json), not env + const { sdk } = useAuth(); if (!selectedInstance) { return ( @@ -388,7 +391,7 @@ export const InstanceDetails = ({ selectedInstance, instanceDetails, onRefreshDa { try { // Use modular ProcessInstances service directly - executionHistory = await processInstances.getExecutionHistory(instance.instanceId); + executionHistory = await processInstances.getExecutionHistory(instance.instanceId, instance.folderKey); } catch (err) { console.error('Error fetching execution history:', err); // Continue without execution history diff --git a/samples/process-app-v1/src/hooks/useAuth.tsx b/samples/process-app-v1/src/hooks/useAuth.tsx index bbb2cf0c3..b1620f6b7 100644 --- a/samples/process-app-v1/src/hooks/useAuth.tsx +++ b/samples/process-app-v1/src/hooks/useAuth.tsx @@ -1,7 +1,6 @@ import React, { useState, useEffect, createContext, useContext } from 'react'; import type { ReactNode } from 'react'; import { UiPath, UiPathError } from '@uipath/uipath-typescript/core'; -import type { UiPathSDKConfig } from '@uipath/uipath-typescript/core'; interface AuthContextType { isAuthenticated: boolean; isLoading: boolean; @@ -13,11 +12,19 @@ interface AuthContextType { const AuthContext = createContext(undefined); -export const AuthProvider: React.FC<{ children: ReactNode; config: UiPathSDKConfig }> = ({ children, config }) => { +/** + * Provides the authenticated UiPath SDK instance to the app. + * + * Coded App pattern: `new UiPath()` (no config) picks up `clientId`, + * `orgName`, `tenantName`, `baseUrl`, `scope`, and `redirectUri` from the + * `` tags injected by `@uipath/coded-apps-dev` + * (locally, from `uipath.json`) or by the UiPath platform (in production). + */ +export const AuthProvider: React.FC<{ children: ReactNode }> = ({ children }) => { const [isAuthenticated, setIsAuthenticated] = useState(false); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(null); - const [sdk] = useState(() => new UiPath(config)); + const [sdk] = useState(() => new UiPath()); useEffect(() => { const initializeAuth = async () => { diff --git a/samples/process-app-v1/src/index.css b/samples/process-app-v1/src/index.css index 46e294cd6..8fb5f7d46 100644 --- a/samples/process-app-v1/src/index.css +++ b/samples/process-app-v1/src/index.css @@ -1,6 +1,4 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; body { margin: 0; diff --git a/samples/process-app-v1/uipath.json.example b/samples/process-app-v1/uipath.json.example new file mode 100644 index 000000000..794d7c3ab --- /dev/null +++ b/samples/process-app-v1/uipath.json.example @@ -0,0 +1,8 @@ +{ + "clientId": "", + "scope": "PIMS DataFabric.Schema.Read DataFabric.Data.Read DataFabric.Data.Write OR.Execution.Read", + "orgName": "", + "tenantName": "", + "baseUrl": "https://api.uipath.com", + "redirectUri": "http://localhost:5173" +} diff --git a/samples/process-app-v1/vite.config.ts b/samples/process-app-v1/vite.config.ts index 657258f32..c2b70aad5 100644 --- a/samples/process-app-v1/vite.config.ts +++ b/samples/process-app-v1/vite.config.ts @@ -1,9 +1,20 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import { uipathCodedApps } from '@uipath/coded-apps-dev/vite' // https://vite.dev/config/ export default defineConfig({ - plugins: [react()], + // Coded App requirement: assets must use relative paths so they resolve + // correctly under the the platform injects + // at deploy time. + base: './', + plugins: [ + react(), + // Reads uipath.json and injects tags into + // index.html during local dev. At deploy time the platform injects + // production values, so the same SDK init code works in both places. + uipathCodedApps(), + ], define: { global: 'globalThis', }, @@ -15,5 +26,4 @@ export default defineConfig({ optimizeDeps: { include: ['@uipath/uipath-typescript'], }, - base: './', })