diff --git a/package-lock.json b/package-lock.json index 82745100..489382f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "tsx": "4.19.3" }, "devDependencies": { - "@mintlify/scraping": "4.0.907", + "@mintlify/scraping": "4.0.1010", "@types/node": "^20.14.10", "axios": "^1.18.1", "fs": "0.0.1-security", @@ -21,9 +21,9 @@ } }, "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==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.3.0.tgz", + "integrity": "sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA==", "dev": true, "license": "MIT", "engines": { @@ -104,12 +104,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -118,18 +119,94 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } }, + "node_modules/@base-ui/react": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@base-ui/react/-/react-1.8.0.tgz", + "integrity": "sha512-P0/1sxo6SBVZOklKMIedvTWqw2s2IQzi9x5bIVsXu980cuSOD4NeuRSs+/L7LZQfDkZP/uRZyGPyfFl/B1oH+Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.29.7", + "@base-ui/utils": "0.4.0", + "@floating-ui/react-dom": "^2.1.9", + "@floating-ui/utils": "^0.2.12", + "use-sync-external-store": "^1.6.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@date-fns/tz": "^1.2.0", + "@types/react": "^17 || ^18 || ^19", + "date-fns": "^4.0.0", + "react": "^17 || ^18 || ^19", + "react-dom": "^17 || ^18 || ^19" + }, + "peerDependenciesMeta": { + "@date-fns/tz": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "date-fns": { + "optional": true + } + } + }, + "node_modules/@base-ui/utils": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@base-ui/utils/-/utils-0.4.0.tgz", + "integrity": "sha512-bO9fz25kKtPf+aZVyfQrC0PDmJdmVni31W2hCS5/Owb+inwdIL3XU26pCPRPlt4LSxZrBgLwubXQXQlKaFEZzw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.29.7", + "@floating-ui/utils": "^0.2.12", + "reselect": "^5.2.0", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "@types/react": "^17 || ^18 || ^19", + "react": "^17 || ^18 || ^19", + "react-dom": "^17 || ^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@emnapi/runtime": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.2.tgz", - "integrity": "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", "dev": true, "license": "MIT", "optional": true, @@ -582,32 +659,43 @@ "license": "MIT", "peer": true }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", - "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz", + "integrity": "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0", "optional": true, "os": [ "darwin" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.0.4" + "@img/sharp-libvips-darwin-arm64": "1.3.3" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", - "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz", + "integrity": "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==", "cpu": [ "x64" ], @@ -618,23 +706,44 @@ "darwin" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.4" + "@img/sharp-libvips-darwin-x64": "1.3.3" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz", + "integrity": "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.4" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", - "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz", + "integrity": "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==", "cpu": [ "arm64" ], "dev": true, + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" @@ -644,9 +753,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", - "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz", + "integrity": "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==", "cpu": [ "x64" ], @@ -661,9 +770,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", - "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz", + "integrity": "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==", "cpu": [ "arm" ], @@ -681,9 +790,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", - "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz", + "integrity": "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==", "cpu": [ "arm64" ], @@ -700,10 +809,50 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz", + "integrity": "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz", + "integrity": "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", - "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz", + "integrity": "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==", "cpu": [ "s390x" ], @@ -721,9 +870,9 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", - "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz", + "integrity": "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==", "cpu": [ "x64" ], @@ -741,9 +890,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", - "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz", + "integrity": "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==", "cpu": [ "arm64" ], @@ -761,9 +910,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", - "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz", + "integrity": "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==", "cpu": [ "x64" ], @@ -781,9 +930,9 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", - "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz", + "integrity": "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==", "cpu": [ "arm" ], @@ -797,19 +946,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.5" + "@img/sharp-libvips-linux-arm": "1.3.3" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", - "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz", + "integrity": "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==", "cpu": [ "arm64" ], @@ -823,19 +972,71 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.3.3" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz", + "integrity": "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.3.3" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz", + "integrity": "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.4" + "@img/sharp-libvips-linux-riscv64": "1.3.3" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", - "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz", + "integrity": "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==", "cpu": [ "s390x" ], @@ -849,19 +1050,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.4" + "@img/sharp-libvips-linux-s390x": "1.3.3" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", - "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz", + "integrity": "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==", "cpu": [ "x64" ], @@ -875,19 +1076,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.4" + "@img/sharp-libvips-linux-x64": "1.3.3" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", - "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz", + "integrity": "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==", "cpu": [ "arm64" ], @@ -901,19 +1102,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + "@img/sharp-libvips-linuxmusl-arm64": "1.3.3" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", - "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz", + "integrity": "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==", "cpu": [ "x64" ], @@ -927,39 +1128,76 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + "@img/sharp-libvips-linuxmusl-x64": "1.3.3" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", - "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz", + "integrity": "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==", + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz", + "integrity": "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==", "cpu": [ "wasm32" ], "dev": true, - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "license": "Apache-2.0", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.2.0" + "@img/sharp-wasm32": "0.35.4" + }, + "engines": { + "node": ">=20.9.0" }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz", + "integrity": "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", - "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz", + "integrity": "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==", "cpu": [ "ia32" ], @@ -970,16 +1208,16 @@ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": "^20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", - "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz", + "integrity": "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==", "cpu": [ "x64" ], @@ -990,7 +1228,7 @@ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" @@ -1375,9 +1613,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", "dev": true, "license": "MIT" }, @@ -1434,45 +1672,146 @@ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", "dev": true }, - "node_modules/@mintlify/cli": { - "version": "4.0.547", - "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.547.tgz", - "integrity": "sha512-Xp8tHyc21gY4eQ5I+wdKui5NMFrxxVMbbihcUhouqM1dYVD8YDghHuC+PmsnohgFqjdD0sxHVdiawd2s6Qm03A==", + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", "dev": true, + "license": "MIT", "dependencies": { - "@mintlify/common": "1.0.388", - "@mintlify/link-rot": "3.0.502", - "@mintlify/models": "0.0.193", - "@mintlify/prebuild": "1.0.499", - "@mintlify/previewing": "4.0.538", - "@mintlify/validation": "0.1.372", - "chalk": "^5.2.0", - "detect-port": "^1.5.1", - "fs-extra": "^11.2.0", - "inquirer": "^12.3.0", - "js-yaml": "^4.1.0", - "ora": "^6.1.2", - "yargs": "^17.6.0" - }, - "bin": { - "mint": "bin/index.js", - "mintlify": "bin/index.js" + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, - "engines": { - "node": ">=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/cli/node_modules/@mintlify/common": { - "version": "1.0.388", - "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.388.tgz", - "integrity": "sha512-g1Lr/6OquocSJpO/eSed6fK1yYOjt3e85u6StFFf8ZehwCU+7NzqEKtUJzFLd80VfoZ+hRGBndc8qhJMCNaRqg==", + "node_modules/@mdx-js/mdx/node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", "dev": true, + "license": "MIT", "dependencies": { - "@asyncapi/parser": "^3.4.0", - "@mintlify/mdx": "^1.0.1", - "@mintlify/models": "0.0.193", - "@mintlify/openapi-parser": "^0.0.7", - "@mintlify/validation": "0.1.372", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", + "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@mintlify/cli": { + "version": "4.0.547", + "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.547.tgz", + "integrity": "sha512-Xp8tHyc21gY4eQ5I+wdKui5NMFrxxVMbbihcUhouqM1dYVD8YDghHuC+PmsnohgFqjdD0sxHVdiawd2s6Qm03A==", + "dev": true, + "dependencies": { + "@mintlify/common": "1.0.388", + "@mintlify/link-rot": "3.0.502", + "@mintlify/models": "0.0.193", + "@mintlify/prebuild": "1.0.499", + "@mintlify/previewing": "4.0.538", + "@mintlify/validation": "0.1.372", + "chalk": "^5.2.0", + "detect-port": "^1.5.1", + "fs-extra": "^11.2.0", + "inquirer": "^12.3.0", + "js-yaml": "^4.1.0", + "ora": "^6.1.2", + "yargs": "^17.6.0" + }, + "bin": { + "mint": "bin/index.js", + "mintlify": "bin/index.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@mintlify/cli/node_modules/@mintlify/common": { + "version": "1.0.388", + "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.388.tgz", + "integrity": "sha512-g1Lr/6OquocSJpO/eSed6fK1yYOjt3e85u6StFFf8ZehwCU+7NzqEKtUJzFLd80VfoZ+hRGBndc8qhJMCNaRqg==", + "dev": true, + "dependencies": { + "@asyncapi/parser": "^3.4.0", + "@mintlify/mdx": "^1.0.1", + "@mintlify/models": "0.0.193", + "@mintlify/openapi-parser": "^0.0.7", + "@mintlify/validation": "0.1.372", "@sindresorhus/slugify": "^2.1.1", "acorn": "^8.11.2", "estree-util-to-js": "^2.0.0", @@ -1716,42 +2055,42 @@ } }, "node_modules/@mintlify/common": { - "version": "1.0.1042", - "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.1042.tgz", - "integrity": "sha512-45eWJLtU66LEDhGiOr5LrZ4hNXCl7DIXjcKgGOfkHHwhayEraoKFzPxnqZUTWSnN6JFbbo4ObVWk164aKGBhqA==", + "version": "1.0.1142", + "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.1142.tgz", + "integrity": "sha512-rAnxwgdCInWyhveyBkecepPtRNeDRK/OZqisZosK/3yBDNd3fiDEDWWrzcUxsXeZPNZf3sS4DXhkIlkidjCxdA==", "dev": true, "license": "ISC", "dependencies": { "@asyncapi/parser": "3.4.0", - "@asyncapi/specs": "6.8.1", - "@mintlify/mdx": "3.0.4", - "@mintlify/models": "0.0.343", + "@mintlify/mdx": "4.0.2", + "@mintlify/models": "0.0.355", "@mintlify/openapi-parser": "0.0.8", - "@mintlify/validation": "0.1.798", + "@mintlify/validation": "0.1.852", "@sindresorhus/slugify": "2.2.0", "@types/mdast": "4.0.4", "acorn": "8.11.2", "acorn-jsx": "5.3.2", - "color-blend": "4.0.0", "estree-util-to-js": "2.0.0", "estree-walker": "3.0.3", "front-matter": "4.0.2", "hast-util-from-html": "2.0.3", + "hast-util-to-estree": "3.1.0", "hast-util-to-html": "9.0.4", - "hast-util-to-text": "4.0.2", - "hex-rgb": "5.0.0", "ignore": "7.0.5", - "js-yaml": "4.1.1", + "iregexp-check": "^0.1.2", + "js-yaml": "4.3.1", + "json-p3": "2.2.2", "lodash": "4.18.1", "mdast-util-from-markdown": "2.0.2", "mdast-util-gfm": "3.0.0", "mdast-util-mdx": "3.0.0", "mdast-util-mdx-jsx": "3.1.3", "micromark-extension-gfm": "3.0.0", - "micromark-extension-mdx-jsx": "3.0.1", "micromark-extension-mdxjs": "3.0.0", "openapi-types": "12.1.3", - "postcss": "8.5.14", + "postcss": "8.5.23", + "re2js": "^2.8.6", + "rehype-katex": "7.0.1", "rehype-stringify": "10.0.1", "remark": "15.0.1", "remark-frontmatter": "5.0.0", @@ -1760,6 +2099,7 @@ "remark-mdx": "3.1.0", "remark-parse": "11.0.0", "remark-rehype": "11.1.1", + "remark-smartypants": "3.0.2", "remark-stringify": "11.0.0", "sucrase": "3.34.0", "tailwindcss-v3": "npm:tailwindcss@3.4.17", @@ -1774,6 +2114,82 @@ "xss": "1.0.15" } }, + "node_modules/@mintlify/common/node_modules/@mintlify/mdx": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@mintlify/mdx/-/mdx-4.0.2.tgz", + "integrity": "sha512-LrAE0fRxZSvB4POZ50Uy5LO0bKvWbPMciE/TKUyzRk4zbexQYYRhnzz9tdQ7zis//91oikrPnKbJxCco1UlawA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/transformers": "^3.23.0", + "@shikijs/twoslash": "^3.23.0", + "arktype": "^2.1.26", + "hast-util-to-string": "^3.0.1", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-gfm": "^3.1.0", + "mdast-util-mdx-jsx": "^3.2.0", + "mdast-util-to-hast": "^13.2.0", + "next-mdx-remote-client": "^2.1.11", + "rehype-katex": "^7.0.1", + "remark-gfm": "^4.0.0", + "remark-math": "^6.0.0", + "remark-smartypants": "^3.0.2", + "shiki": "^3.23.0", + "twoslash": "^0.3.4", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "peerDependencies": { + "@base-ui/react": "^1.6.0", + "react": "^19.2.1", + "react-dom": "^19.2.1" + } + }, + "node_modules/@mintlify/common/node_modules/@mintlify/mdx/node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mintlify/common/node_modules/@mintlify/mdx/node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/@mintlify/common/node_modules/@mintlify/openapi-parser": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@mintlify/openapi-parser/-/openapi-parser-0.0.8.tgz", @@ -1822,6 +2238,55 @@ "node": ">=0.4.0" } }, + "node_modules/@mintlify/common/node_modules/next-mdx-remote-client": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-2.1.12.tgz", + "integrity": "sha512-KDfhIk5aEM0kkZ0xQ8XBkmo4O5xmJeGWUomm40Ac/xhkt5sIDOTmTU/QFfmJGLJUJipD5o0BAHqVSIZKuXgNEw==", + "dev": true, + "license": "MPL 2.0", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@mdx-js/mdx": "^3.1.1", + "@mdx-js/react": "^3.1.1", + "@types/mdx": "^2.0.14", + "remark-mdx-remove-esm": "^1.3.2", + "serialize-error": "^13.0.1", + "vfile": "^6.0.3", + "vfile-matter": "^5.0.1" + }, + "engines": { + "node": ">=20.9.0" + }, + "peerDependencies": { + "react": ">= 19.1.0", + "react-dom": ">= 19.1.0" + } + }, + "node_modules/@mintlify/common/node_modules/react": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", + "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@mintlify/common/node_modules/react-dom": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", + "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "^0.28.0" + }, + "peerDependencies": { + "react": "^19.3.0" + } + }, "node_modules/@mintlify/common/node_modules/remark-mdx": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", @@ -1837,6 +2302,47 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/@mintlify/common/node_modules/scheduler": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.28.0.tgz", + "integrity": "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@mintlify/common/node_modules/serialize-error": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-13.0.1.tgz", + "integrity": "sha512-bBZaRwLH9PN5HbLCjPId4dP5bNGEtumcErgOX952IsvOhVPrm3/AeK1y0UHA/QaPG701eg0yEnOKsCOC6X/kaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "non-error": "^0.1.0", + "type-fest": "^5.4.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mintlify/common/node_modules/type-fest": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.9.0.tgz", + "integrity": "sha512-yANm3Jr3GiJ1qgJlxGAVxTOIcEOk1rhQHamlXtnrCK7EHP4HeM9OGxtMg/W7HFdrVzw/ZWJKGVIJusVH85sLtw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@mintlify/common/node_modules/unist-util-is": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", @@ -2165,157 +2671,37 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/mdx": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@mintlify/mdx/-/mdx-3.0.4.tgz", - "integrity": "sha512-tJhdpnM5ReJLNJ2fuDRIEr0zgVd6id7/oAIfs26V46QlygiLsc8qx4Rz3LWIX51rUXW/cfakjj0EATxIciIw+g==", + "node_modules/@mintlify/models": { + "version": "0.0.355", + "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.355.tgz", + "integrity": "sha512-dUcic8uxm/i31nHCzKJ7mY6v8jzBMxp9MnGVvn2cOthNh9xycZZEkGbsrHdYLWa7oqiLTrHoXh+v4tyV0DY0Tw==", "dev": true, - "license": "MIT", + "license": "Elastic-2.0", "dependencies": { - "@shikijs/transformers": "^3.11.0", - "@shikijs/twoslash": "^3.12.2", - "arktype": "^2.1.26", - "hast-util-to-string": "^3.0.1", - "mdast-util-from-markdown": "^2.0.2", - "mdast-util-gfm": "^3.1.0", - "mdast-util-mdx-jsx": "^3.2.0", - "mdast-util-to-hast": "^13.2.0", - "next-mdx-remote-client": "^1.0.3", - "rehype-katex": "^7.0.1", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "remark-smartypants": "^3.0.2", - "shiki": "^3.11.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0" + "axios": "1.18.0", + "openapi-types": "12.1.3" }, - "peerDependencies": { - "@radix-ui/react-popover": "^1.1.15", - "react": "^18.3.1", - "react-dom": "^18.3.1" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@mintlify/mdx/node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "node_modules/@mintlify/models/node_modules/axios": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.0.tgz", + "integrity": "sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw==", "dev": true, "license": "MIT", "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" } }, - "node_modules/@mintlify/mdx/node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/mdx/node_modules/unist-util-is": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", - "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/mdx/node_modules/unist-util-visit": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", - "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/mdx/node_modules/unist-util-visit-parents": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", - "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/models": { - "version": "0.0.343", - "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.343.tgz", - "integrity": "sha512-OWGJqJmYSPKRBe+e82+zhSnClbDkR0cVkqLFKxo4ZCQXNmtERLqfRsDNxSoItoRwfxc1pxOh6upUn/AOR6+m7g==", - "dev": true, - "license": "Elastic-2.0", - "dependencies": { - "axios": "1.16.1", - "openapi-types": "12.1.3" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@mintlify/models/node_modules/axios": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.1.tgz", - "integrity": "sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.16.0", - "form-data": "^4.0.5", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^2.1.0" - } - }, - "node_modules/@mintlify/models/node_modules/proxy-from-env": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", - "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "node_modules/@mintlify/models/node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", "dev": true, "license": "MIT", "engines": { @@ -3071,18 +3457,18 @@ } }, "node_modules/@mintlify/scraping": { - "version": "4.0.907", - "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.907.tgz", - "integrity": "sha512-IdVV/8nzwRyfQrP62MWZfRBCGNtJKM/qmtbfzmjue1Wrc81vI8VfT3r2bIMo7GYGM5WkmF3Abx3aoRFlDAdzCg==", + "version": "4.0.1010", + "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.1010.tgz", + "integrity": "sha512-fbNYFR1mgxq2kvUnYE8p16+fRXTCcTRJVLClV0OupB7j6sHEpGVEgUA/hACBzspC2v8i+GhTKvOWRMxvUGPmig==", "dev": true, "license": "Elastic-2.0", "dependencies": { - "@mintlify/common": "1.0.1042", - "@mintlify/openapi-parser": "0.0.8", + "@mintlify/common": "1.0.1142", + "fast-xml-parser": "5.7.3", "fs-extra": "11.1.1", "graphql": "16.11.0", "hast-util-to-mdast": "10.1.0", - "js-yaml": "4.1.1", + "js-yaml": "4.3.1", "mdast-util-mdx-jsx": "3.1.3", "neotraverse": "0.6.18", "puppeteer": "24.3.1", @@ -3103,24 +3489,6 @@ "node": ">=18.0.0" } }, - "node_modules/@mintlify/scraping/node_modules/@mintlify/openapi-parser": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@mintlify/openapi-parser/-/openapi-parser-0.0.8.tgz", - "integrity": "sha512-9MBRq9lS4l4HITYCrqCL7T61MOb20q9IdU7HWhqYMNMM1jGO1nHjXasFy61yZ8V6gMZyyKQARGVoZ0ZrYN48Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.17.1", - "ajv-draft-04": "^1.0.0", - "ajv-formats": "^3.0.1", - "jsonpointer": "^5.0.1", - "leven": "^4.0.0", - "yaml": "^2.4.5" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@mintlify/scraping/node_modules/fs-extra": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", @@ -3238,17 +3606,16 @@ } }, "node_modules/@mintlify/validation": { - "version": "0.1.798", - "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.798.tgz", - "integrity": "sha512-BsF1s99MnrTyhbmm/T6gu6MH19a8w16AP4C35JPo35fjSYOMD8byO2HWGd7ZGC0i8wdy/uJ2BiIpe2Eg/jDR6Q==", + "version": "0.1.852", + "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.852.tgz", + "integrity": "sha512-/xp9CtYGRoI9BwGuT8PLMTaklQkBvOyuqZYYT4xU6Kq2LsKmi0BW5tabYhezNZCebaeq+Q93b3bRCOgYSOun7w==", "dev": true, "license": "Elastic-2.0", "dependencies": { - "@mintlify/mdx": "3.0.4", - "@mintlify/models": "0.0.343", - "arktype": "2.1.27", + "@mintlify/mdx": "4.0.2", + "@mintlify/models": "0.0.355", "fractional-indexing": "3.2.0", - "js-yaml": "4.1.1", + "js-yaml": "4.3.1", "lcm": "0.0.3", "lodash": "4.18.1", "neotraverse": "0.6.18", @@ -3259,43 +3626,215 @@ "zod-to-json-schema": "3.20.4" } }, - "node_modules/@mintlify/validation/node_modules/@ark/schema": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@ark/schema/-/schema-0.55.0.tgz", - "integrity": "sha512-IlSIc0FmLKTDGr4I/FzNHauMn0MADA6bCjT1wauu4k6MyxhC1R9gz0olNpIRvK7lGGDwtc/VO0RUDNvVQW5WFg==", + "node_modules/@mintlify/validation/node_modules/@mintlify/mdx": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@mintlify/mdx/-/mdx-4.0.2.tgz", + "integrity": "sha512-LrAE0fRxZSvB4POZ50Uy5LO0bKvWbPMciE/TKUyzRk4zbexQYYRhnzz9tdQ7zis//91oikrPnKbJxCco1UlawA==", "dev": true, "license": "MIT", "dependencies": { - "@ark/util": "0.55.0" + "@shikijs/transformers": "^3.23.0", + "@shikijs/twoslash": "^3.23.0", + "arktype": "^2.1.26", + "hast-util-to-string": "^3.0.1", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-gfm": "^3.1.0", + "mdast-util-mdx-jsx": "^3.2.0", + "mdast-util-to-hast": "^13.2.0", + "next-mdx-remote-client": "^2.1.11", + "rehype-katex": "^7.0.1", + "remark-gfm": "^4.0.0", + "remark-math": "^6.0.0", + "remark-smartypants": "^3.0.2", + "shiki": "^3.23.0", + "twoslash": "^0.3.4", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "peerDependencies": { + "@base-ui/react": "^1.6.0", + "react": "^19.2.1", + "react-dom": "^19.2.1" } }, - "node_modules/@mintlify/validation/node_modules/@ark/util": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@ark/util/-/util-0.55.0.tgz", - "integrity": "sha512-aWFNK7aqSvqFtVsl1xmbTjGbg91uqtJV7Za76YGNEwIO4qLjMfyY8flmmbhooYMuqPCO2jyxu8hve943D+w3bA==", + "node_modules/@mintlify/validation/node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/@mintlify/validation/node_modules/arkregex": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/arkregex/-/arkregex-0.0.3.tgz", - "integrity": "sha512-bU21QJOJEFJK+BPNgv+5bVXkvRxyAvgnon75D92newgHxkBJTgiFwQxusyViYyJkETsddPlHyspshDQcCzmkNg==", + "node_modules/@mintlify/validation/node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mintlify/validation/node_modules/next-mdx-remote-client": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-2.1.12.tgz", + "integrity": "sha512-KDfhIk5aEM0kkZ0xQ8XBkmo4O5xmJeGWUomm40Ac/xhkt5sIDOTmTU/QFfmJGLJUJipD5o0BAHqVSIZKuXgNEw==", + "dev": true, + "license": "MPL 2.0", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@mdx-js/mdx": "^3.1.1", + "@mdx-js/react": "^3.1.1", + "@types/mdx": "^2.0.14", + "remark-mdx-remove-esm": "^1.3.2", + "serialize-error": "^13.0.1", + "vfile": "^6.0.3", + "vfile-matter": "^5.0.1" + }, + "engines": { + "node": ">=20.9.0" + }, + "peerDependencies": { + "react": ">= 19.1.0", + "react-dom": ">= 19.1.0" + } + }, + "node_modules/@mintlify/validation/node_modules/react": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", + "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@mintlify/validation/node_modules/react-dom": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", + "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "^0.28.0" + }, + "peerDependencies": { + "react": "^19.3.0" + } + }, + "node_modules/@mintlify/validation/node_modules/scheduler": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.28.0.tgz", + "integrity": "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@mintlify/validation/node_modules/serialize-error": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-13.0.1.tgz", + "integrity": "sha512-bBZaRwLH9PN5HbLCjPId4dP5bNGEtumcErgOX952IsvOhVPrm3/AeK1y0UHA/QaPG701eg0yEnOKsCOC6X/kaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "non-error": "^0.1.0", + "type-fest": "^5.4.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mintlify/validation/node_modules/type-fest": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.9.0.tgz", + "integrity": "sha512-yANm3Jr3GiJ1qgJlxGAVxTOIcEOk1rhQHamlXtnrCK7EHP4HeM9OGxtMg/W7HFdrVzw/ZWJKGVIJusVH85sLtw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mintlify/validation/node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mintlify/validation/node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", "dev": true, "license": "MIT", "dependencies": { - "@ark/util": "0.55.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@mintlify/validation/node_modules/arktype": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/arktype/-/arktype-2.1.27.tgz", - "integrity": "sha512-enctOHxI4SULBv/TDtCVi5M8oLd4J5SVlPUblXDzSsOYQNMzmVbUosGBnJuZDKmFlN5Ie0/QVEuTE+Z5X1UhsQ==", + "node_modules/@mintlify/validation/node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", "dev": true, "license": "MIT", "dependencies": { - "@ark/schema": "0.55.0", - "@ark/util": "0.55.0", - "arkregex": "0.0.3" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/@mintlify/validation/node_modules/zod": { @@ -3318,6 +3857,19 @@ "zod": "^3.20.0" } }, + "node_modules/@nodable/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-9uGyhaQavEUMC8AIddIjau4NsnsXhou+j5sBAGojCM1oxmQpVKTWR/9JxABD6UAv12vpIms55fPZKFQEhG6uBg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/nodable" + } + ], + "license": "MIT" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3415,569 +3967,114 @@ "integrity": "sha512-Nfbvqi+o5wU/ZPOYUpM+QMzT6Or8Mog89IUsKRJBBmIPUvcwQhyCKp8B4CZswNJyXisJ3gZ3kdCaaKgnsLln4Q==", "cpu": [ "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@oxlint/linux-x64-gnu": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-gnu/-/linux-x64-gnu-1.4.0.tgz", - "integrity": "sha512-z/71xdZpvudjZsaEDk+EJxEzDIcyCaKbvUtGjAfKv60jLuP83bDHD0VD8GI8FSPjhlLpDPmrbcXWbT690Q7NAA==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@oxlint/linux-x64-musl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-musl/-/linux-x64-musl-1.4.0.tgz", - "integrity": "sha512-D6C165X6/hjZ1yi2mNttzeihjL3IoW0s612VNyfW6KrV/lesSaIFTXqII3ThOOQezGTDhpz4xudemcv0g7iFlg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@oxlint/win32-arm64": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@oxlint/win32-arm64/-/win32-arm64-1.4.0.tgz", - "integrity": "sha512-wFa7ywGt0jnuukynANm5k/D189YwrQKHIdNgBjBsTvvJZNxGzVy8Q5dwsG0qwWS6RkVh9CMUpOTccPsKBdGHkQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@oxlint/win32-x64": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-1.4.0.tgz", - "integrity": "sha512-B3ezHSEzQL6Enszl9i9wLwIhWt3lkJ5x2xmgvJ77RrzoaF46QciGvs4TeGU++kPRe5DKpRGlgsruig7GLNUaSg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@puppeteer/browsers": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.7.1.tgz", - "integrity": "sha512-MK7rtm8JjaxPN7Mf1JdZIZKPD2Z+W7osvrC1vjpvfOX1K0awDIHYbNi89f7eotp7eMUn2shWnt03HwVbriXtKQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.0", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.0", - "tar-fs": "^3.0.8", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", - "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.13.tgz", - "integrity": "sha512-0Q310knIY0K+mkmncU9FxLggfW7V49Ok2oY+iu27KkERTsQXxYCIC8XW5QoK4w7Jp1z00vT5xj3oxTcn7QlcTg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-primitive": "2.1.8" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.4.tgz", - "integrity": "sha512-pWJo6lQAfR6uy1n7ii7PaCc9dLPwTXDYbQpORZU5B548Aqvl2pP1SM1vJGKyxIFqZMHRopRO4CQYX2iXAIB5jA==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.1.tgz", - "integrity": "sha512-EraVbFjiIjibpLr6EjvEDmSCYJU2SlKDMiO+qEK/D9GOWnQoAQlpQo2occGYC1UM9MBeEx5Bek3UtW/Qi57vAg==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.17.tgz", - "integrity": "sha512-QAXwa38pG0xNAYh1pjdSaf86NrkqsMoDNmget/Y7X8O8E/C3Iqlj9GAPE4DfX9BPLXc7WH2TWSzMRnIoCdcjzQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/primitive": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.4", - "@radix-ui/react-primitive": "2.1.8", - "@radix-ui/react-use-callback-ref": "1.1.3", - "@radix-ui/react-use-effect-event": "0.0.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.5.tgz", - "integrity": "sha512-UQvlB7L/BYh3P8MLvwZnQkH521EDos40Rwnbt5+Qpg4Vbk0z3xJjRUmR6+aka4aT1IQQXFdO5bNPoE7cvFl5xQ==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.14.tgz", - "integrity": "sha512-/x4htnJfmW53MplkrePaDpf1o/rN1C++g88WpVobULXbSyC19NtLkXmewuJ/HCaceSmfKDNL5gOXcBGnuAvnvQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.4", - "@radix-ui/react-primitive": "2.1.8", - "@radix-ui/react-use-callback-ref": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.3.tgz", - "integrity": "sha512-f/Wxm0ctyMymUJK0fqTSQlm85rbzdAkoNbPXJQ5+6caowVO8Yx+NWGjGz/oGhs/D+WIbbQpOrU0hU2Li2/42xQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popover": { - "version": "1.1.21", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.21.tgz", - "integrity": "sha512-+AJ7P5oRcFqFtv7MaCD8fOuK3l5qQBAMdWEOnUOYd3JfHOeIUe7TnHHSSP15CtWwH4KrotyDCTzodOIoONh8vw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/primitive": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.4", - "@radix-ui/react-context": "1.2.1", - "@radix-ui/react-dismissable-layer": "1.1.17", - "@radix-ui/react-focus-guards": "1.1.5", - "@radix-ui/react-focus-scope": "1.1.14", - "@radix-ui/react-id": "1.1.3", - "@radix-ui/react-popper": "1.3.5", - "@radix-ui/react-portal": "1.1.15", - "@radix-ui/react-presence": "1.1.9", - "@radix-ui/react-primitive": "2.1.8", - "@radix-ui/react-slot": "1.3.1", - "@radix-ui/react-use-controllable-state": "1.2.5", - "@radix-ui/react-use-layout-effect": "1.1.3", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.7.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.5.tgz", - "integrity": "sha512-6hLng2Rs45IZcvZ31BNvMeaFEMMEbtsog4xPcb8LZrGfyoV9fdAXqB9UKhLpTHtL0+E2DhSr6VW54Tehd6ksAQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.13", - "@radix-ui/react-compose-refs": "1.1.4", - "@radix-ui/react-context": "1.2.1", - "@radix-ui/react-primitive": "2.1.8", - "@radix-ui/react-use-callback-ref": "1.1.3", - "@radix-ui/react-use-layout-effect": "1.1.3", - "@radix-ui/react-use-rect": "1.1.3", - "@radix-ui/react-use-size": "1.1.3", - "@radix-ui/rect": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.15.tgz", - "integrity": "sha512-kAfBVJUKNNKZuyGQXXG6rKolAV2KAmxxVkPXJgoq9dEFTl39286RufHQFNTL8rzha4vP8159BJ6hMGpB+bqv7A==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-primitive": "2.1.8", - "@radix-ui/react-use-layout-effect": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.9.tgz", - "integrity": "sha512-LTi1v05bprIb8/GSY/GWusI0jfsYjQ3CD3Nin8o7jVxnpHzVQfzjOQJoJTQkE9bdmOnsS7SFdhkXiBv8PrYnxw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.8.tgz", - "integrity": "sha512-DOlK1BdcIeYYUcFkSYFka4v1h95XTov93b0jCgW1EEiZuIhdwHY2NlE1teLIh+p0uBsuZI5A+voay+iVWpprfA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-slot": "1.3.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.1.tgz", - "integrity": "sha512-Bu/aAQHFFh6/QAvXAeUMurJ9fbW0JUIqlojU/yBXZ7cAVqy75Y7JYYyuCr9zLNF0p4WWoJYV54CTUIf4l7FzTw==", + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/primitive": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.4" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.3.tgz", - "integrity": "sha512-AUS7HoBBAncIsGMLNG+CcpLuJ+JIBbZzmyM8Qdb1eIThX0AlhSSC6wn40xfBlPE+ypx/vSSiRWnklUAjy3U3UA==", + "node_modules/@oxlint/linux-x64-gnu": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-gnu/-/linux-x64-gnu-1.4.0.tgz", + "integrity": "sha512-z/71xdZpvudjZsaEDk+EJxEzDIcyCaKbvUtGjAfKv60jLuP83bDHD0VD8GI8FSPjhlLpDPmrbcXWbT690Q7NAA==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "peer": true, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.5.tgz", - "integrity": "sha512-UB1dXpxvHjR48poyKdKdTm7jT0kp3elkUKdKQiOkirlbYumqXinSJtrjDsr9maXNPvL12bKI4CDSmydms/9Aeg==", + "node_modules/@oxlint/linux-x64-musl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-musl/-/linux-x64-musl-1.4.0.tgz", + "integrity": "sha512-D6C165X6/hjZ1yi2mNttzeihjL3IoW0s612VNyfW6KrV/lesSaIFTXqII3ThOOQezGTDhpz4xudemcv0g7iFlg==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/primitive": "1.1.7", - "@radix-ui/react-use-effect-event": "0.0.4", - "@radix-ui/react-use-layout-effect": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.4.tgz", - "integrity": "sha512-XYcfa6wlXDCwQtePuEiPmXLSAhGL4DWtedSyRgGbG3y10mw+OnrLp6SyeY1gJFMiYF0Dx0nMAX9InylKbLEFQQ==", + "node_modules/@oxlint/win32-arm64": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@oxlint/win32-arm64/-/win32-arm64-1.4.0.tgz", + "integrity": "sha512-wFa7ywGt0jnuukynANm5k/D189YwrQKHIdNgBjBsTvvJZNxGzVy8Q5dwsG0qwWS6RkVh9CMUpOTccPsKBdGHkQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.3.tgz", - "integrity": "sha512-rDiah9wvtqihWtWz02XreeRKIxt2EJF8y5D9rtY9l5A2zxePAtcPiOMpDugNRw5bFHz+1/8viVoc7ZVKiJknCw==", + "node_modules/@oxlint/win32-x64": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-1.4.0.tgz", + "integrity": "sha512-B3ezHSEzQL6Enszl9i9wLwIhWt3lkJ5x2xmgvJ77RrzoaF46QciGvs4TeGU++kPRe5DKpRGlgsruig7GLNUaSg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "peer": true, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.3.tgz", - "integrity": "sha512-W0GSYZFKEfi6raMiMEfJSngvVbFDIyxtW5JuVg5NoQBY59l0dVQVGLbhog/tOdwq0qtZ+TXuX1ikSNan4/IZXA==", + "node_modules/@puppeteer/browsers": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.7.1.tgz", + "integrity": "sha512-MK7rtm8JjaxPN7Mf1JdZIZKPD2Z+W7osvrC1vjpvfOX1K0awDIHYbNi89f7eotp7eMUn2shWnt03HwVbriXtKQ==", "dev": true, - "license": "MIT", - "peer": true, + "license": "Apache-2.0", "dependencies": { - "@radix-ui/rect": "1.1.3" + "debug": "^4.4.0", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.0", + "tar-fs": "^3.0.8", + "yargs": "^17.7.2" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "bin": { + "browsers": "lib/cjs/main-cli.js" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=18" } }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.3.tgz", - "integrity": "sha512-jJq6tQQLvO/z4uWbztjwPV+1a/+H4rCaWypasLB/ac8DEdd6+p7dIm7o3F6P2KZPGkPMqD4s5424EdAdoU+GLA==", + "node_modules/@puppeteer/browsers/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=10" } }, - "node_modules/@radix-ui/rect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.3.tgz", - "integrity": "sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/@scarf/scarf": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz", @@ -4619,10 +4716,11 @@ } }, "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "dev": true + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.14.tgz", + "integrity": "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", @@ -4910,6 +5008,19 @@ "node": ">= 8" } }, + "node_modules/anynum": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/anynum/-/anynum-1.0.1.tgz", + "integrity": "sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -4923,20 +5034,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/aria-hidden": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", - "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/arkregex": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/arkregex/-/arkregex-0.0.8.tgz", @@ -5775,29 +5872,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-blend": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/color-blend/-/color-blend-4.0.0.tgz", - "integrity": "sha512-fYODTHhI/NG+B5GnzvuL3kiFrK/UnkUezWFTgEPBTY5V+kpyfAn95Vn9sJeeCX6omrCOdxnqCL3CvH+6sXtIbw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -5813,34 +5887,6 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -6243,22 +6289,15 @@ } }, "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8" } }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/detect-port": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", @@ -6739,6 +6778,20 @@ "node": ">=4.0" } }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/estree-util-is-identifier-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", @@ -6990,9 +7043,9 @@ "dev": true }, "node_modules/fast-uri": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", - "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz", + "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==", "dev": true, "funding": [ { @@ -7006,10 +7059,49 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fast-xml-builder": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.3.1.tgz", + "integrity": "sha512-pIM/1n3ntFXKYrUZwW7QCK0gAW7XY+wzj1YMIV3tLDvPj/V+zTGJK5e3/4WJfwj0qWw2ElNXiTixda/R+3YSug==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "path-expression-matcher": "^1.6.2", + "xml-naming": "^0.3.0" + } + }, + "node_modules/fast-xml-parser": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.7.3.tgz", + "integrity": "sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "@nodable/entities": "^2.1.0", + "fast-xml-builder": "^1.1.7", + "path-expression-matcher": "^1.5.0", + "strnum": "^2.2.3" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", + "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", "dev": true, "license": "ISC", "dependencies": { @@ -7031,17 +7123,18 @@ } }, "node_modules/favicons": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/favicons/-/favicons-7.2.0.tgz", - "integrity": "sha512-k/2rVBRIRzOeom3wI9jBPaSEvoTSQEW4iM0EveBmBBKFxO8mSyyRWtDlfC3VnEfu0avmjrMzy8/ZFPSe6F71Hw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/favicons/-/favicons-7.3.1.tgz", + "integrity": "sha512-P3PO0Ca2dI0vDyFkpnBv50PEDXyVPSw9TkYoosjrohv8QBDYmY5HGML4gIjFHQNnbQki8tR4w0J7xee5WxwElQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-html": "^1.0.3", - "sharp": "^0.33.1", + "sharp": "^0.35.3", "xml2js": "^0.6.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" } }, "node_modules/fd-slicer": { @@ -7218,9 +7311,9 @@ } }, "node_modules/front-matter/node_modules/js-yaml": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz", - "integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.2.tgz", + "integrity": "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==", "dev": true, "license": "MIT", "dependencies": { @@ -7231,13 +7324,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/front-matter/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/fs": { "version": "0.0.1-security", "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", @@ -7379,17 +7465,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -7597,12 +7672,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/gray-matter/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, "node_modules/handlebars": { "version": "4.7.9", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.9.tgz", @@ -7904,6 +7973,46 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-estree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", + "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree/node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/hast-util-to-html": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.4.tgz", @@ -8142,19 +8251,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hex-rgb": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hex-rgb/-/hex-rgb-5.0.0.tgz", - "integrity": "sha512-NQO+lgVUCtHxZ792FodgW0zflK+ozS9X9dwGp9XvvmPlH7pyxd588cn24TD3rmPm/N0AIRXF10Otah8yKqGw4w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -8340,6 +8436,13 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "dev": true, + "license": "MIT" + }, "node_modules/inquirer": { "version": "12.7.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.7.0.tgz", @@ -8381,9 +8484,9 @@ } }, "node_modules/ip-address": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", - "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz", + "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==", "dev": true, "license": "MIT", "engines": { @@ -8408,6 +8511,13 @@ "node": ">= 0.10" } }, + "node_modules/iregexp-check": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/iregexp-check/-/iregexp-check-0.1.2.tgz", + "integrity": "sha512-RCcV2SFO5JKh+DdmWiY7yVyiZzzk6XZiHEJvTKbzVs8Z0u404gnoSqDtFqg6C5qJBEG4QseWBQz9zhI68zskEQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", @@ -9001,10 +9111,20 @@ "dev": true }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -9028,6 +9148,13 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, + "node_modules/json-p3": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/json-p3/-/json-p3-2.2.2.tgz", + "integrity": "sha512-TmTgkx+C1ne8Wdm9dFQ4/jCeYYbSoeYJAkRpvTz6O+zWN1Dc3cKW8Mt52sa8mSRXy/+JykA5I6rmM+k8h+JRRg==", + "dev": true, + "license": "MIT" + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -9266,6 +9393,19 @@ "node": ">=12" } }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/markdown-table": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", @@ -10790,9 +10930,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", "dev": true, "funding": [ { @@ -10833,199 +10973,33 @@ }, "node_modules/netmask": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/next-mdx-remote-client": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.1.tgz", - "integrity": "sha512-cJnJGaRiHc1gn4aCzDmY9zmcCjEw+zMCpCYIy45Kjs8HzeQpdGcaO5GrgIcX/DFkuCVrrzc69wi2gGnExXbv/A==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@mdx-js/mdx": "^3.1.0", - "@mdx-js/react": "^3.1.0", - "remark-mdx-remove-esm": "^1.1.0", - "serialize-error": "^12.0.0", - "vfile": "^6.0.3", - "vfile-matter": "^5.0.1" - }, - "engines": { - "node": ">=18.18.0" - }, - "peerDependencies": { - "react": ">= 18.3.0 < 19.0.0", - "react-dom": ">= 18.3.0 < 19.0.0" - } - }, - "node_modules/next-mdx-remote-client/node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/next-mdx-remote-client/node_modules/@mdx-js/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", - "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", - "dev": true, - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/next-mdx-remote-client/node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", - "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/next-mdx-remote-client/node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", - "dev": true, - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/next-mdx-remote-client/node_modules/remark-mdx-remove-esm": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remark-mdx-remove-esm/-/remark-mdx-remove-esm-1.2.0.tgz", - "integrity": "sha512-BOZDeA9EuHDxQsvX7y4ovdlP8dk2/ToDGjOTrT5gs57OqTZuH4J1Tn8XjUFa221xvfXxiKaWrKT04waQ+tYydg==", - "dev": true, - "dependencies": { - "@types/mdast": "^4.0.4", - "mdast-util-mdxjs-esm": "^2.0.1", - "unist-util-remove": "^4.0.0" - }, - "peerDependencies": { - "unified": "^11" - } - }, - "node_modules/next-mdx-remote-client/node_modules/remark-rehype": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", - "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", - "dev": true, - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/next-mdx-remote-client/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/next-mdx-remote-client/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/next-mdx-remote-client/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/next-mdx-remote-client/node_modules/vfile-matter": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/vfile-matter/-/vfile-matter-5.0.1.tgz", - "integrity": "sha512-o6roP82AiX0XfkyTHyRCMXgHfltUNlXSEqCIS80f+mbAyiQBE2fxtDVMtseyytGx75sihiJFo/zR6r/4LTs2Cw==", + "node_modules/next-mdx-remote-client": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.1.tgz", + "integrity": "sha512-cJnJGaRiHc1gn4aCzDmY9zmcCjEw+zMCpCYIy45Kjs8HzeQpdGcaO5GrgIcX/DFkuCVrrzc69wi2gGnExXbv/A==", "dev": true, "dependencies": { - "vfile": "^6.0.0", - "yaml": "^2.0.0" + "@babel/code-frame": "^7.27.1", + "@mdx-js/mdx": "^3.1.0", + "@mdx-js/react": "^3.1.0", + "remark-mdx-remove-esm": "^1.1.0", + "serialize-error": "^12.0.0", + "vfile": "^6.0.3", + "vfile-matter": "^5.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=18.18.0" + }, + "peerDependencies": { + "react": ">= 18.3.0 < 19.0.0", + "react-dom": ">= 18.3.0 < 19.0.0" } }, "node_modules/nice-try": { @@ -11087,6 +11061,19 @@ } } }, + "node_modules/non-error": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/non-error/-/non-error-0.1.0.tgz", + "integrity": "sha512-TMB1uHiGsHRGv1uYclfhivcnf0/PdFp2pNqRxXjncaAsjYMoisaQJI+SSZCqRq+VliwRTC8tsMQfmrWjDMhkPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -11596,6 +11583,22 @@ "util": "^0.10.3" } }, + "node_modules/path-expression-matcher": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.6.2.tgz", + "integrity": "sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -11701,9 +11704,9 @@ } }, "node_modules/postcss": { - "version": "8.5.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", - "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", "dev": true, "funding": [ { @@ -11721,7 +11724,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -12159,6 +12162,16 @@ "node": ">= 0.8" } }, + "node_modules/re2js": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/re2js/-/re2js-2.8.6.tgz", + "integrity": "sha512-xLgQil4kIUCrAzVk9fRSkxkFNwmygLFjVxXrLc65aE1F0+Zsb8rxumFBy4XKyvgMCTL6kilDq3EZ0piE2dP/Dg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -12186,100 +12199,12 @@ "react": "^18.3.1" } }, - "node_modules/react-remove-scroll": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", - "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.2.tgz", + "integrity": "sha512-/peqiBB/n07gQGLsWaHho3WfvUyRscw0gYTsEFMhrIe/nWLkYaf5SbKYjGYqtRV3aPwykJgF2VEMo1ac4bnsGA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/read-pkg": { "version": "3.0.0", @@ -12575,19 +12500,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-recma/node_modules/estree-util-attach-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", - "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/rehype-recma/node_modules/hast-util-to-estree": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", @@ -12741,6 +12653,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-mdx-remove-esm": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/remark-mdx-remove-esm/-/remark-mdx-remove-esm-1.3.3.tgz", + "integrity": "sha512-KgGfD4JV3lKse0n/m8UxW4jK6H/9ffkCVxVAJ60aGY4uiPX/+SQCT5/lQcRGcjyQuRLDq2Df2krv6pD/qWJRVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.4", + "unist-util-remove": "^4.0.0" + }, + "peerDependencies": { + "unified": "^11" + } + }, "node_modules/remark-parse": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", @@ -12871,6 +12797,14 @@ "node": ">=0.10.0" } }, + "node_modules/reselect": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.3.0.tgz", + "integrity": "sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -13383,49 +13317,61 @@ "dev": true }, "node_modules/sharp": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", - "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz", + "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==", "dev": true, - "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.6.3" + "@img/colour": "^1.1.0", + "detect-libc": "^2.1.2", + "semver": "^7.8.5" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.33.5", - "@img/sharp-darwin-x64": "0.33.5", - "@img/sharp-libvips-darwin-arm64": "1.0.4", - "@img/sharp-libvips-darwin-x64": "1.0.4", - "@img/sharp-libvips-linux-arm": "1.0.5", - "@img/sharp-libvips-linux-arm64": "1.0.4", - "@img/sharp-libvips-linux-s390x": "1.0.4", - "@img/sharp-libvips-linux-x64": "1.0.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", - "@img/sharp-libvips-linuxmusl-x64": "1.0.4", - "@img/sharp-linux-arm": "0.33.5", - "@img/sharp-linux-arm64": "0.33.5", - "@img/sharp-linux-s390x": "0.33.5", - "@img/sharp-linux-x64": "0.33.5", - "@img/sharp-linuxmusl-arm64": "0.33.5", - "@img/sharp-linuxmusl-x64": "0.33.5", - "@img/sharp-wasm32": "0.33.5", - "@img/sharp-win32-ia32": "0.33.5", - "@img/sharp-win32-x64": "0.33.5" + "@img/sharp-darwin-arm64": "0.35.4", + "@img/sharp-darwin-x64": "0.35.4", + "@img/sharp-freebsd-wasm32": "0.35.4", + "@img/sharp-libvips-darwin-arm64": "1.3.3", + "@img/sharp-libvips-darwin-x64": "1.3.3", + "@img/sharp-libvips-linux-arm": "1.3.3", + "@img/sharp-libvips-linux-arm64": "1.3.3", + "@img/sharp-libvips-linux-ppc64": "1.3.3", + "@img/sharp-libvips-linux-riscv64": "1.3.3", + "@img/sharp-libvips-linux-s390x": "1.3.3", + "@img/sharp-libvips-linux-x64": "1.3.3", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.3", + "@img/sharp-libvips-linuxmusl-x64": "1.3.3", + "@img/sharp-linux-arm": "0.35.4", + "@img/sharp-linux-arm64": "0.35.4", + "@img/sharp-linux-ppc64": "0.35.4", + "@img/sharp-linux-riscv64": "0.35.4", + "@img/sharp-linux-s390x": "0.35.4", + "@img/sharp-linux-x64": "0.35.4", + "@img/sharp-linuxmusl-arm64": "0.35.4", + "@img/sharp-linuxmusl-x64": "0.35.4", + "@img/sharp-webcontainers-wasm32": "0.35.4", + "@img/sharp-win32-arm64": "0.35.4", + "@img/sharp-win32-ia32": "0.35.4", + "@img/sharp-win32-x64": "0.35.4" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/sharp/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -13570,21 +13516,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -13791,6 +13722,13 @@ "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", "dev": true }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -14006,6 +13944,22 @@ "node": ">=0.10.0" } }, + "node_modules/strnum": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.4.2.tgz", + "integrity": "sha512-rDG3Ah4TV0k1hWvLSzkZtMmLN9+eS+h3knq4MP6A42Y3Yh5qGNnOUs1jJkoSr8FG5dsL28c7KgkIBzSEykqtuw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "anynum": "^1.0.1" + } + }, "node_modules/style-to-js": { "version": "1.1.17", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz", @@ -14030,6 +13984,16 @@ "inline-style-parser": "0.2.4" } }, + "node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, "node_modules/sucrase": { "version": "3.34.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", @@ -14087,6 +14051,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tailwindcss-v3": { "name": "tailwindcss", "version": "3.4.17", @@ -14291,9 +14268,9 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "dev": true, "license": "MIT", "engines": { @@ -14944,51 +14921,15 @@ "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", "dev": true }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "node_modules/use-sync-external-store": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz", + "integrity": "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==", "dev": true, "license": "MIT", "peer": true, - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/util": { @@ -15093,6 +15034,21 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vfile-matter": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vfile-matter/-/vfile-matter-5.0.1.tgz", + "integrity": "sha512-o6roP82AiX0XfkyTHyRCMXgHfltUNlXSEqCIS80f+mbAyiQBE2fxtDVMtseyytGx75sihiJFo/zR6r/4LTs2Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "vfile": "^6.0.0", + "yaml": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vfile-message": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", @@ -15340,6 +15296,22 @@ } } }, + "node_modules/xml-naming": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/xml-naming/-/xml-naming-0.3.0.tgz", + "integrity": "sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/xml2js": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", diff --git a/package.json b/package.json index 62a389dc..bfec1b04 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "drift-check": "tsx scripts/drift-check/index.ts" }, "devDependencies": { - "@mintlify/scraping": "4.0.907", + "@mintlify/scraping": "4.0.1010", "@types/node": "^20.14.10", "axios": "^1.18.1", "fs": "0.0.1-security", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2298e660..be8b8bb7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,14 +16,14 @@ importers: version: 4.19.3 devDependencies: '@mintlify/scraping': - specifier: 4.0.907 - version: 4.0.907(@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) + specifier: 4.0.1010 + version: 4.0.1010(@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) '@types/node': specifier: ^20.14.10 version: 20.14.11 axios: specifier: ^1.18.1 - version: 1.18.1 + version: 1.18.1(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) fs: specifier: 0.0.1-security version: 0.0.1-security @@ -32,7 +32,7 @@ importers: version: 4.0.3 mintlify: specifier: 4.0.549 - version: 4.0.549(@types/node@20.14.11)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) + version: 4.0.549(@types/node@20.14.11)(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) npm-run-all: specifier: ^4.1.5 version: 4.1.5 @@ -42,19 +42,13 @@ importers: packages: - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + '@alloc/quick-lru@5.3.0': + resolution: {integrity: sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA==} engines: {node: '>=10'} - '@ark/schema@0.55.0': - resolution: {integrity: sha512-IlSIc0FmLKTDGr4I/FzNHauMn0MADA6bCjT1wauu4k6MyxhC1R9gz0olNpIRvK7lGGDwtc/VO0RUDNvVQW5WFg==} - '@ark/schema@0.56.2': resolution: {integrity: sha512-Qx4D2JFbBWpntiHZaTv7bGG4H/M2rigiknezKg/WVyDSaLdE4YCcWAOoFB7pjjDqHbbV2OqRfntm1nnXvwMexg==} - '@ark/util@0.55.0': - resolution: {integrity: sha512-aWFNK7aqSvqFtVsl1xmbTjGbg91uqtJV7Za76YGNEwIO4qLjMfyY8flmmbhooYMuqPCO2jyxu8hve943D+w3bA==} - '@ark/util@0.56.2': resolution: {integrity: sha512-9kU2sUE38FZEGG7l3hamYMBieLYEJh2L1mrYD2eXpT+78EnQSV1bhjxJhnxGBMSTbtwpBSDNSK+K60WvaI/DTQ==} @@ -67,9 +61,6 @@ packages: '@asyncapi/specs@6.11.1': resolution: {integrity: sha512-A3WBLqAKGoJ2+6FWFtpjBlCQ1oFCcs4GxF7zsIGvNqp/klGUHjlA3aAcZ9XMMpLGE8zPeYDz2x9FmO6DSuKraQ==} - '@asyncapi/specs@6.8.1': - resolution: {integrity: sha512-czHoAk3PeXTLR+X8IUaD+IpT+g+zUvkcgMDJVothBsan+oHN3jfcFcFUNdOPAAFoUCQN1hXF1dWuphWy05THlA==} - '@babel/code-frame@7.29.7': resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} @@ -78,6 +69,37 @@ packages: resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} + engines: {node: '>=6.9.0'} + + '@base-ui/react@1.8.0': + resolution: {integrity: sha512-P0/1sxo6SBVZOklKMIedvTWqw2s2IQzi9x5bIVsXu980cuSOD4NeuRSs+/L7LZQfDkZP/uRZyGPyfFl/B1oH+Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@date-fns/tz': ^1.2.0 + '@types/react': ^17 || ^18 || ^19 + date-fns: ^4.0.0 + react: ^17 || ^18 || ^19 + react-dom: ^17 || ^18 || ^19 + peerDependenciesMeta: + '@date-fns/tz': + optional: true + '@types/react': + optional: true + date-fns: + optional: true + + '@base-ui/utils@0.4.0': + resolution: {integrity: sha512-bO9fz25kKtPf+aZVyfQrC0PDmJdmVni31W2hCS5/Owb+inwdIL3XU26pCPRPlt4LSxZrBgLwubXQXQlKaFEZzw==} + peerDependencies: + '@types/react': ^17 || ^18 || ^19 + react: ^17 || ^18 || ^19 + react-dom: ^17 || ^18 || ^19 + peerDependenciesMeta: + '@types/react': + optional: true + '@emnapi/runtime@1.2.0': resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} @@ -499,8 +521,8 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/sourcemap-codec@1.6.0': + resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==} '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} @@ -541,8 +563,8 @@ packages: deprecated: This version is deprecated. Please upgrade to version 4.0.423 or later. hasBin: true - '@mintlify/common@1.0.1042': - resolution: {integrity: sha512-45eWJLtU66LEDhGiOr5LrZ4hNXCl7DIXjcKgGOfkHHwhayEraoKFzPxnqZUTWSnN6JFbbo4ObVWk164aKGBhqA==} + '@mintlify/common@1.0.1142': + resolution: {integrity: sha512-rAnxwgdCInWyhveyBkecepPtRNeDRK/OZqisZosK/3yBDNd3fiDEDWWrzcUxsXeZPNZf3sS4DXhkIlkidjCxdA==} '@mintlify/common@1.0.388': resolution: {integrity: sha512-g1Lr/6OquocSJpO/eSed6fK1yYOjt3e85u6StFFf8ZehwCU+7NzqEKtUJzFLd80VfoZ+hRGBndc8qhJMCNaRqg==} @@ -557,19 +579,19 @@ packages: react: ^18.3.1 react-dom: ^18.3.1 - '@mintlify/mdx@3.0.4': - resolution: {integrity: sha512-tJhdpnM5ReJLNJ2fuDRIEr0zgVd6id7/oAIfs26V46QlygiLsc8qx4Rz3LWIX51rUXW/cfakjj0EATxIciIw+g==} + '@mintlify/mdx@4.0.2': + resolution: {integrity: sha512-LrAE0fRxZSvB4POZ50Uy5LO0bKvWbPMciE/TKUyzRk4zbexQYYRhnzz9tdQ7zis//91oikrPnKbJxCco1UlawA==} peerDependencies: - '@radix-ui/react-popover': ^1.1.15 - react: ^18.3.1 - react-dom: ^18.3.1 + '@base-ui/react': ^1.6.0 + react: ^19.2.1 + react-dom: ^19.2.1 '@mintlify/models@0.0.193': resolution: {integrity: sha512-Y1FjNGSTttZu7y7EUUVsBBIrMEWhRkMNsUxOAc88gLeDy3fQkONyCgFQus0FNdG/G9DzKxZDPurFLUul0VPmCQ==} engines: {node: '>=18.0.0'} - '@mintlify/models@0.0.343': - resolution: {integrity: sha512-OWGJqJmYSPKRBe+e82+zhSnClbDkR0cVkqLFKxo4ZCQXNmtERLqfRsDNxSoItoRwfxc1pxOh6upUn/AOR6+m7g==} + '@mintlify/models@0.0.355': + resolution: {integrity: sha512-dUcic8uxm/i31nHCzKJ7mY6v8jzBMxp9MnGVvn2cOthNh9xycZZEkGbsrHdYLWa7oqiLTrHoXh+v4tyV0DY0Tw==} engines: {node: '>=18.0.0'} '@mintlify/openapi-parser@0.0.7': @@ -587,21 +609,24 @@ packages: resolution: {integrity: sha512-hRAWSd0bdpctJfNbdZvSgHC6mD6KtMCF6pw9BoXYWxg2I4MetnrRLsHPxXA1762TdV6i8vHH8JqGHWUPqI0RLQ==} engines: {node: '>=18.0.0'} - '@mintlify/scraping@4.0.244': - resolution: {integrity: sha512-npxWkK1Ybb4TfD/fZ81ztgjyhZfOnghvHPxEcIoi6bHlxxhLph+bb5g7sSA1X/Xa31xOnUFkb5qToizWRvonAA==} + '@mintlify/scraping@4.0.1010': + resolution: {integrity: sha512-fbNYFR1mgxq2kvUnYE8p16+fRXTCcTRJVLClV0OupB7j6sHEpGVEgUA/hACBzspC2v8i+GhTKvOWRMxvUGPmig==} engines: {node: '>=18.0.0'} hasBin: true - '@mintlify/scraping@4.0.907': - resolution: {integrity: sha512-IdVV/8nzwRyfQrP62MWZfRBCGNtJKM/qmtbfzmjue1Wrc81vI8VfT3r2bIMo7GYGM5WkmF3Abx3aoRFlDAdzCg==} + '@mintlify/scraping@4.0.244': + resolution: {integrity: sha512-npxWkK1Ybb4TfD/fZ81ztgjyhZfOnghvHPxEcIoi6bHlxxhLph+bb5g7sSA1X/Xa31xOnUFkb5qToizWRvonAA==} engines: {node: '>=18.0.0'} hasBin: true '@mintlify/validation@0.1.372': resolution: {integrity: sha512-aqHdVRb6ERAFHFXy2VKRW8ru7KUS39dCdPm2yqXxVaKD4BZcn/pJhDBElXoN082tYyslxTjCz1dBKp769Jq6qA==} - '@mintlify/validation@0.1.798': - resolution: {integrity: sha512-BsF1s99MnrTyhbmm/T6gu6MH19a8w16AP4C35JPo35fjSYOMD8byO2HWGd7ZGC0i8wdy/uJ2BiIpe2Eg/jDR6Q==} + '@mintlify/validation@0.1.852': + resolution: {integrity: sha512-/xp9CtYGRoI9BwGuT8PLMTaklQkBvOyuqZYYT4xU6Kq2LsKmi0BW5tabYhezNZCebaeq+Q93b3bRCOgYSOun7w==} + + '@nodable/entities@2.2.0': + resolution: {integrity: sha512-9uGyhaQavEUMC8AIddIjau4NsnsXhou+j5sBAGojCM1oxmQpVKTWR/9JxABD6UAv12vpIms55fPZKFQEhG6uBg==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -628,215 +653,6 @@ packages: engines: {node: '>=18'} hasBin: true - '@radix-ui/primitive@1.1.7': - resolution: {integrity: sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==} - - '@radix-ui/react-arrow@1.1.13': - resolution: {integrity: sha512-0Q310knIY0K+mkmncU9FxLggfW7V49Ok2oY+iu27KkERTsQXxYCIC8XW5QoK4w7Jp1z00vT5xj3oxTcn7QlcTg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-compose-refs@1.1.4': - resolution: {integrity: sha512-pWJo6lQAfR6uy1n7ii7PaCc9dLPwTXDYbQpORZU5B548Aqvl2pP1SM1vJGKyxIFqZMHRopRO4CQYX2iXAIB5jA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-context@1.2.1': - resolution: {integrity: sha512-EraVbFjiIjibpLr6EjvEDmSCYJU2SlKDMiO+qEK/D9GOWnQoAQlpQo2occGYC1UM9MBeEx5Bek3UtW/Qi57vAg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dismissable-layer@1.1.17': - resolution: {integrity: sha512-QAXwa38pG0xNAYh1pjdSaf86NrkqsMoDNmget/Y7X8O8E/C3Iqlj9GAPE4DfX9BPLXc7WH2TWSzMRnIoCdcjzQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-focus-guards@1.1.5': - resolution: {integrity: sha512-UQvlB7L/BYh3P8MLvwZnQkH521EDos40Rwnbt5+Qpg4Vbk0z3xJjRUmR6+aka4aT1IQQXFdO5bNPoE7cvFl5xQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-focus-scope@1.1.14': - resolution: {integrity: sha512-/x4htnJfmW53MplkrePaDpf1o/rN1C++g88WpVobULXbSyC19NtLkXmewuJ/HCaceSmfKDNL5gOXcBGnuAvnvQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-id@1.1.3': - resolution: {integrity: sha512-f/Wxm0ctyMymUJK0fqTSQlm85rbzdAkoNbPXJQ5+6caowVO8Yx+NWGjGz/oGhs/D+WIbbQpOrU0hU2Li2/42xQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-popover@1.1.21': - resolution: {integrity: sha512-+AJ7P5oRcFqFtv7MaCD8fOuK3l5qQBAMdWEOnUOYd3JfHOeIUe7TnHHSSP15CtWwH4KrotyDCTzodOIoONh8vw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-popper@1.3.5': - resolution: {integrity: sha512-6hLng2Rs45IZcvZ31BNvMeaFEMMEbtsog4xPcb8LZrGfyoV9fdAXqB9UKhLpTHtL0+E2DhSr6VW54Tehd6ksAQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-portal@1.1.15': - resolution: {integrity: sha512-kAfBVJUKNNKZuyGQXXG6rKolAV2KAmxxVkPXJgoq9dEFTl39286RufHQFNTL8rzha4vP8159BJ6hMGpB+bqv7A==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-presence@1.1.9': - resolution: {integrity: sha512-LTi1v05bprIb8/GSY/GWusI0jfsYjQ3CD3Nin8o7jVxnpHzVQfzjOQJoJTQkE9bdmOnsS7SFdhkXiBv8PrYnxw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-primitive@2.1.8': - resolution: {integrity: sha512-DOlK1BdcIeYYUcFkSYFka4v1h95XTov93b0jCgW1EEiZuIhdwHY2NlE1teLIh+p0uBsuZI5A+voay+iVWpprfA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-slot@1.3.1': - resolution: {integrity: sha512-Bu/aAQHFFh6/QAvXAeUMurJ9fbW0JUIqlojU/yBXZ7cAVqy75Y7JYYyuCr9zLNF0p4WWoJYV54CTUIf4l7FzTw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-callback-ref@1.1.3': - resolution: {integrity: sha512-AUS7HoBBAncIsGMLNG+CcpLuJ+JIBbZzmyM8Qdb1eIThX0AlhSSC6wn40xfBlPE+ypx/vSSiRWnklUAjy3U3UA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-controllable-state@1.2.5': - resolution: {integrity: sha512-UB1dXpxvHjR48poyKdKdTm7jT0kp3elkUKdKQiOkirlbYumqXinSJtrjDsr9maXNPvL12bKI4CDSmydms/9Aeg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-effect-event@0.0.4': - resolution: {integrity: sha512-XYcfa6wlXDCwQtePuEiPmXLSAhGL4DWtedSyRgGbG3y10mw+OnrLp6SyeY1gJFMiYF0Dx0nMAX9InylKbLEFQQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-layout-effect@1.1.3': - resolution: {integrity: sha512-rDiah9wvtqihWtWz02XreeRKIxt2EJF8y5D9rtY9l5A2zxePAtcPiOMpDugNRw5bFHz+1/8viVoc7ZVKiJknCw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-rect@1.1.3': - resolution: {integrity: sha512-W0GSYZFKEfi6raMiMEfJSngvVbFDIyxtW5JuVg5NoQBY59l0dVQVGLbhog/tOdwq0qtZ+TXuX1ikSNan4/IZXA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-size@1.1.3': - resolution: {integrity: sha512-jJq6tQQLvO/z4uWbztjwPV+1a/+H4rCaWypasLB/ac8DEdd6+p7dIm7o3F6P2KZPGkPMqD4s5424EdAdoU+GLA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/rect@1.1.3': - resolution: {integrity: sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==} - '@scarf/scarf@1.4.0': resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} @@ -906,6 +722,10 @@ packages: resolution: {integrity: sha512-5O0apqJ/t4sIevXCO3SBN9AHCEKKR/Zb4gaj7wYe5863jme9g02Q0n/GhM7ZCALkL+vGPTe4ZzTETP8TFtsw3g==} engines: {node: '>=8.3.0'} + '@stoplight/json@3.21.7': + resolution: {integrity: sha512-xcJXgKFqv/uCEgtGlPxy3tPA+4I+ZI4vAuMJ885+ThkTHFVkC+0Fm58lA9NlsyjnkpxFh4YiQWpH+KefHdbA0A==} + engines: {node: '>=8.3.0'} + '@stoplight/ordered-object-literal@1.0.5': resolution: {integrity: sha512-COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==} engines: {node: '>=8'} @@ -964,9 +784,6 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - '@types/cookie@0.4.1': resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} @@ -1012,6 +829,9 @@ packages: '@types/node@20.14.11': resolution: {integrity: sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==} + '@types/node@20.19.43': + resolution: {integrity: sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==} + '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} @@ -1035,8 +855,8 @@ packages: peerDependencies: typescript: '*' - '@ungap/structured-clone@1.3.3': - resolution: {integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==} + '@ungap/structured-clone@1.4.0': + resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==} accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} @@ -1057,6 +877,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.18.0: + resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==} + engines: {node: '>=0.4.0'} + hasBin: true + address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} @@ -1132,6 +957,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + anynum@1.0.1: + resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -1141,19 +969,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} - engines: {node: '>=10'} - - arkregex@0.0.3: - resolution: {integrity: sha512-bU21QJOJEFJK+BPNgv+5bVXkvRxyAvgnon75D92newgHxkBJTgiFwQxusyViYyJkETsddPlHyspshDQcCzmkNg==} - arkregex@0.0.8: resolution: {integrity: sha512-PJcx6G1kQTgLKPUbeYlYecDRaKq15AMSGVajlKFYWlPeJRQL+j3dKE6tyMs40HZ99djS1l9Vhl3ezAHy9JBIqQ==} - arktype@2.1.27: - resolution: {integrity: sha512-enctOHxI4SULBv/TDtCVi5M8oLd4J5SVlPUblXDzSsOYQNMzmVbUosGBnJuZDKmFlN5Ie0/QVEuTE+Z5X1UhsQ==} - arktype@2.2.3: resolution: {integrity: sha512-7W+0RLTUNJiBFIIZXwOQxSR8Z273IAd6IvqBeG9+gHnQKFsIx2C0iOtGTmMrPnlX4qLXyc5+ll7A0BIj9WrbTg==} @@ -1202,8 +1020,8 @@ packages: resolution: {integrity: sha512-yOA4wFeI7ET3v32Di/sUybQ+ttP20JHSW3mxLuNGeO0uD6PPcvLrIQXSvy/rhJOWU5JrYh7U4OHplWMmtAtjMg==} engines: {node: '>=0.11'} - axios@1.16.1: - resolution: {integrity: sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==} + axios@1.18.0: + resolution: {integrity: sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw==} axios@1.18.1: resolution: {integrity: sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==} @@ -1222,28 +1040,28 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.9.1: - resolution: {integrity: sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==} + bare-events@2.9.2: + resolution: {integrity: sha512-AIPKioV7/Y/8KfZ3AAhjPJxLLbY49S64Ym5DakZlUg75qQiTgUq9hEJoEwa4eUezPUlXRy/i5NpsKvo9jgKmoA==} peerDependencies: bare-abort-controller: '*' peerDependenciesMeta: bare-abort-controller: optional: true - bare-fs@4.7.4: - resolution: {integrity: sha512-y1kC+ffIx/tPLdTE693uNjHfzTfr+ravR5tvWlMXe25nELbkqV400S71qHDwbkAQ1FVEZobB1NFRzFbCCcyBCQ==} - engines: {bare: '>=1.16.0'} + bare-fs@4.8.1: + resolution: {integrity: sha512-N1nnXdHZAOSstz0XiHikGS4HGMH4CnSwhqWdGQQMqqdvp4Jybm9sE3R1WVnpWVd4SFkc8ryPDBLViNLwiEqECg==} + engines: {bare: '>=1.28.0'} peerDependencies: bare-buffer: '*' peerDependenciesMeta: bare-buffer: optional: true - bare-path@3.1.1: - resolution: {integrity: sha512-JprUlveX3QjApC1cTpsUOiscADftCGVWkzitbHsRqv84hzYwYHw2mbluddsq5TvI8mH/8Ov1f4BiMAdcB0oYnQ==} + bare-path@3.1.2: + resolution: {integrity: sha512-ZyKbsuuqK6Ag0K8pX6V5Txq6XeJRvY+wXucnFGRjiyVYP9YWDpIQugk/b+enRYrEYBJaqLzghRQpXPMR7341Nw==} - bare-stream@2.13.3: - resolution: {integrity: sha512-Kc+brLqvEqGkjyfiwJmImAOqLZL7OsoLKuavx+hJjgVV3nLTOjloJyPMFxjUPerGGHrNH0fLU06jjykMLWrERQ==} + bare-stream@2.13.4: + resolution: {integrity: sha512-PcrQ8lVLbiJscNm1Kez+Yp4Gy4AHGcN1lzwjvf5NybWen7VvEgUfyfnXYJ2zNqWnzOfCb1Abq6lH8ti0syQszA==} peerDependencies: bare-abort-controller: '*' bare-buffer: '*' @@ -1256,8 +1074,8 @@ packages: bare-events: optional: true - bare-url@2.4.6: - resolution: {integrity: sha512-iQxPClE07hETVpbRoX7JXX3v/ZQViCxe/SYCxylRLzdEx1xJAufPptfiOqR8tqiCtmbtMDANKWszzjLu1PMAZQ==} + bare-url@2.5.4: + resolution: {integrity: sha512-Gxa7UVWBr0/edU1b+TJhn/AZvMQUj9OGspvYsaTYQrAbZA4BOTZGL3LiZxvD+CeMlDH4juwD84+eTAp/bLYW5g==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -1288,8 +1106,8 @@ packages: brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - brace-expansion@1.1.16: - resolution: {integrity: sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==} + brace-expansion@1.1.18: + resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -1411,10 +1229,6 @@ packages: collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - color-blend@4.0.0: - resolution: {integrity: sha512-fYODTHhI/NG+B5GnzvuL3kiFrK/UnkUezWFTgEPBTY5V+kpyfAn95Vn9sJeeCX6omrCOdxnqCL3CvH+6sXtIbw==} - engines: {node: '>=10.0.0'} - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -1620,9 +1434,6 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - detect-port@1.6.1: resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} engines: {node: '>= 4.0.0'} @@ -1791,8 +1602,8 @@ packages: estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - estree-util-scope@1.0.0: - resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + estree-util-scope@1.0.1: + resolution: {integrity: sha512-B0np3dcdxqILX5e9nEi5/Fr4K7gL4oYFVPV1zRa2e9wRCbQoZZNWOZFYyoInvXUPJXBXjss+QXlWLJChDEHDkA==} estree-util-to-js@2.0.0: resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} @@ -1851,11 +1662,18 @@ packages: fast-memoize@2.5.2: resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} - fast-uri@3.1.4: - resolution: {integrity: sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==} + fast-uri@3.1.7: + resolution: {integrity: sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==} + + fast-xml-builder@1.3.1: + resolution: {integrity: sha512-pIM/1n3ntFXKYrUZwW7QCK0gAW7XY+wzj1YMIV3tLDvPj/V+zTGJK5e3/4WJfwj0qWw2ElNXiTixda/R+3YSug==} + + fast-xml-parser@5.7.3: + resolution: {integrity: sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==} + hasBin: true - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + fastq@1.20.3: + resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} @@ -1983,10 +1801,6 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -2136,8 +1950,8 @@ packages: hast-util-phrasing@3.0.1: resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} - hast-util-to-estree@3.1.3: - resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} hast-util-to-html@9.0.4: resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} @@ -2166,10 +1980,6 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - hex-rgb@5.0.0: - resolution: {integrity: sha512-NQO+lgVUCtHxZ792FodgW0zflK+ozS9X9dwGp9XvvmPlH7pyxd588cn24TD3rmPm/N0AIRXF10Otah8yKqGw4w==} - engines: {node: '>=12'} - hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -2231,6 +2041,9 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.2.7: resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} @@ -2251,8 +2064,8 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + ip-address@10.7.0: + resolution: {integrity: sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==} engines: {node: '>= 12'} ip-regex@4.3.0: @@ -2263,6 +2076,9 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + iregexp-check@0.1.2: + resolution: {integrity: sha512-RCcV2SFO5JKh+DdmWiY7yVyiZzzk6XZiHEJvTKbzVs8Z0u404gnoSqDtFqg6C5qJBEG4QseWBQz9zhI68zskEQ==} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -2493,18 +2309,18 @@ packages: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true - js-yaml@3.15.0: - resolution: {integrity: sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==} - hasBin: true - - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + js-yaml@3.15.2: + resolution: {integrity: sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==} hasBin: true js-yaml@4.3.0: resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} hasBin: true + js-yaml@4.3.1: + resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==} + hasBin: true + jsep@1.4.0: resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} engines: {node: '>= 10.16.0'} @@ -2512,6 +2328,9 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-p3@2.2.2: + resolution: {integrity: sha512-TmTgkx+C1ne8Wdm9dFQ4/jCeYYbSoeYJAkRpvTz6O+zWN1Dc3cKW8Mt52sa8mSRXy/+JykA5I6rmM+k8h+JRRg==} + json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -2706,8 +2525,8 @@ packages: micromark-extension-gfm-strikethrough@2.1.0: resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + micromark-extension-gfm-table@2.1.2: + resolution: {integrity: sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA==} micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} @@ -2724,9 +2543,6 @@ packages: micromark-extension-mdx-expression@3.0.1: resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} - micromark-extension-mdx-jsx@3.0.1: - resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} - micromark-extension-mdx-jsx@3.0.2: resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} @@ -2882,8 +2698,8 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.16: - resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} + nanoid@3.3.19: + resolution: {integrity: sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -2909,6 +2725,13 @@ packages: react: '>= 18.3.0 < 19.0.0' react-dom: '>= 18.3.0 < 19.0.0' + next-mdx-remote-client@2.1.12: + resolution: {integrity: sha512-KDfhIk5aEM0kkZ0xQ8XBkmo4O5xmJeGWUomm40Ac/xhkt5sIDOTmTU/QFfmJGLJUJipD5o0BAHqVSIZKuXgNEw==} + engines: {node: '>=20.9.0'} + peerDependencies: + react: '>= 19.1.0' + react-dom: '>= 19.1.0' + nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} @@ -3070,6 +2893,10 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + path-expression-matcher@1.6.2: + resolution: {integrity: sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ==} + engines: {node: '>=14.0.0'} + path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -3101,8 +2928,8 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.5: - resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} engines: {node: '>=12'} pidtree@0.3.1: @@ -3110,10 +2937,6 @@ packages: engines: {node: '>=0.10'} hasBin: true - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} @@ -3171,8 +2994,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.14: - resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} engines: {node: ^10 || ^12 || >=14} process@0.11.10: @@ -3250,47 +3073,21 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + re2js@2.8.6: + resolution: {integrity: sha512-xLgQil4kIUCrAzVk9fRSkxkFNwmygLFjVxXrLc65aE1F0+Zsb8rxumFBy4XKyvgMCTL6kilDq3EZ0piE2dP/Dg==} + engines: {node: '>=18.0.0'} + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: react: ^18.3.1 - react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - react-remove-scroll@2.7.2: - resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-cache@1.0.2: + resolution: {integrity: sha512-/peqiBB/n07gQGLsWaHho3WfvUyRscw0gYTsEFMhrIe/nWLkYaf5SbKYjGYqtRV3aPwykJgF2VEMo1ac4bnsGA==} read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} @@ -3371,6 +3168,11 @@ packages: peerDependencies: unified: ^11 + remark-mdx-remove-esm@1.3.3: + resolution: {integrity: sha512-KgGfD4JV3lKse0n/m8UxW4jK6H/9ffkCVxVAJ60aGY4uiPX/+SQCT5/lQcRGcjyQuRLDq2Df2krv6pD/qWJRVw==} + peerDependencies: + unified: ^11 + remark-mdx@3.0.1: resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} @@ -3386,10 +3188,17 @@ packages: remark-rehype@11.1.1: resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + remark-smartypants@3.0.2: resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} engines: {node: '>=16.0.0'} + remark-smartypants@3.0.3: + resolution: {integrity: sha512-gCaK+ndZ0hYezlqFegHFCVh2CQemsi0Npdh1qVM9bxlUFknjkbP6VmojWhddOCrbK0PbbacmYLWfTULRiT1eWA==} + engines: {node: '>=16.0.0'} + remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} @@ -3404,6 +3213,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + reselect@5.3.0: + resolution: {integrity: sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg==} + resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -3599,8 +3411,8 @@ packages: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} - socks@2.8.9: - resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} + socks@2.8.10: + resolution: {integrity: sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} source-map-js@1.2.1: @@ -3645,8 +3457,8 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - streamx@2.28.0: - resolution: {integrity: sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw==} + streamx@2.28.1: + resolution: {integrity: sha512-zEzXb0s5Cds7tqMH6rhZ05lcJydCWiQPEwiNngVqzsxCc962vLY4Uw+mW7od8kDH258k2Uz/JrOkdIAAhSh9VA==} string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -3697,9 +3509,15 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strnum@2.4.2: + resolution: {integrity: sha512-rDG3Ah4TV0k1hWvLSzkZtMmLN9+eS+h3knq4MP6A42Y3Yh5qGNnOUs1jJkoSr8FG5dsL28c7KgkIBzSEykqtuw==} + style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + style-to-object@1.0.14: resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} @@ -3733,8 +3551,8 @@ packages: tar-fs@3.1.3: resolution: {integrity: sha512-/hU4AXnIdZu+Gvl1pk0oI5f5HxWsCJRtY2aFaJdk9VvyL48DWU6iU5WAIPG+wIi1YvWA6eTJvIviP/tMAZZNwQ==} - tar-stream@3.2.0: - resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} + tar-stream@3.2.1: + resolution: {integrity: sha512-nqsEO8zLZJvrOMdEwkA0QdCLFbetHMn95Zqu4fKwX+hkaTWJPZZOrxx/PwtxoK0MMGQmBQNRW3CPs8IFYQz4cQ==} tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} @@ -3811,8 +3629,8 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@5.8.0: - resolution: {integrity: sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA==} + type-fest@5.9.0: + resolution: {integrity: sha512-yANm3Jr3GiJ1qgJlxGAVxTOIcEOk1rhQHamlXtnrCK7EHP4HeM9OGxtMg/W7HFdrVzw/ZWJKGVIJusVH85sLtw==} engines: {node: '>=20'} type-is@1.6.18: @@ -3877,6 +3695,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -3948,25 +3769,10 @@ packages: urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} + use-sync-external-store@1.7.0: + resolution: {integrity: sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==} peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -4070,8 +3876,8 @@ packages: utf-8-validate: optional: true - ws@8.21.1: - resolution: {integrity: sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==} + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -4082,6 +3888,10 @@ packages: utf-8-validate: optional: true + xml-naming@0.3.0: + resolution: {integrity: sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==} + engines: {node: '>=16.0.0'} + xml2js@0.6.2: resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} engines: {node: '>=4.0.0'} @@ -4102,8 +3912,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.9.0: - resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + yaml@2.9.1: + resolution: {integrity: sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==} engines: {node: '>= 14.6'} hasBin: true @@ -4150,18 +3960,12 @@ packages: snapshots: - '@alloc/quick-lru@5.2.0': {} - - '@ark/schema@0.55.0': - dependencies: - '@ark/util': 0.55.0 + '@alloc/quick-lru@5.3.0': {} '@ark/schema@0.56.2': dependencies: '@ark/util': 0.56.2 - '@ark/util@0.55.0': {} - '@ark/util@0.56.2': {} '@asyncapi/parser@3.4.0': @@ -4182,7 +3986,7 @@ snapshots: ajv-errors: 3.0.0(ajv@8.20.0) ajv-formats: 2.1.1(ajv@8.20.0) avsc: 5.7.9 - js-yaml: 4.3.0 + js-yaml: 4.3.1 jsonpath-plus: 10.4.0 node-fetch: 2.6.7 transitivePeerDependencies: @@ -4206,7 +4010,7 @@ snapshots: ajv-errors: 3.0.0(ajv@8.20.0) ajv-formats: 2.1.1(ajv@8.20.0) avsc: 5.7.9 - js-yaml: 4.3.0 + js-yaml: 4.3.1 jsonpath-plus: 10.4.0 node-fetch: 2.6.7 transitivePeerDependencies: @@ -4216,10 +4020,6 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@asyncapi/specs@6.8.1': - dependencies: - '@types/json-schema': 7.0.15 - '@babel/code-frame@7.29.7': dependencies: '@babel/helper-validator-identifier': 7.29.7 @@ -4228,6 +4028,31 @@ snapshots: '@babel/helper-validator-identifier@7.29.7': {} + '@babel/runtime@7.29.7': {} + + '@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.7 + '@base-ui/utils': 0.4.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/react-dom': 2.1.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.12 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + use-sync-external-store: 1.7.0(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + + '@base-ui/utils@0.4.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.7 + '@floating-ui/utils': 0.2.12 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reselect: 5.3.0 + use-sync-external-store: 1.7.0(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@emnapi/runtime@1.2.0': dependencies: tslib: 2.8.1 @@ -4518,17 +4343,17 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/sourcemap-codec@1.6.0': {} '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': dependencies: @@ -4544,27 +4369,27 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@mdx-js/mdx@3.1.1': + '@mdx-js/mdx@3.1.1(supports-color@5.5.0)': dependencies: '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 '@types/mdx': 2.0.14 - acorn: 8.17.0 + acorn: 8.18.0 collapse-white-space: 2.1.0 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 - estree-util-scope: 1.0.0 + estree-util-scope: 1.0.1 estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.6 + hast-util-to-jsx-runtime: 2.3.6(supports-color@5.5.0) markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 - recma-jsx: 1.0.1(acorn@8.17.0) + recma-jsx: 1.0.1(acorn@8.18.0) recma-stringify: 1.0.0 - rehype-recma: 1.0.0 - remark-mdx: 3.1.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.1 + rehype-recma: 1.0.0(supports-color@5.5.0) + remark-mdx: 3.1.1(supports-color@5.5.0) + remark-parse: 11.0.0(supports-color@5.5.0) + remark-rehype: 11.1.2 source-map: 0.7.6 unified: 11.0.5 unist-util-position-from-estree: 2.0.0 @@ -4580,16 +4405,16 @@ snapshots: '@types/react': 18.3.3 react: 18.3.1 - '@mintlify/cli@4.0.547(@types/node@20.14.11)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': + '@mintlify/cli@4.0.547(@types/node@20.14.11)(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3)': dependencies: - '@mintlify/common': 1.0.388(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mintlify/link-rot': 3.0.502(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) - '@mintlify/models': 0.0.193 - '@mintlify/prebuild': 1.0.499(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) - '@mintlify/previewing': 4.0.538(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) - '@mintlify/validation': 0.1.372 + '@mintlify/common': 1.0.388(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0) + '@mintlify/link-rot': 3.0.502(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) + '@mintlify/models': 0.0.193(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) + '@mintlify/prebuild': 1.0.499(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) + '@mintlify/previewing': 4.0.538(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) + '@mintlify/validation': 0.1.372(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) chalk: 5.3.0 - detect-port: 1.6.1 + detect-port: 1.6.1(supports-color@5.5.0) fs-extra: 11.4.0 inquirer: 12.6.0(@types/node@20.14.11) js-yaml: 4.3.0 @@ -4610,46 +4435,47 @@ snapshots: - typescript - utf-8-validate - '@mintlify/common@1.0.1042(@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': + '@mintlify/common@1.0.1142(@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3)': dependencies: '@asyncapi/parser': 3.4.0 - '@asyncapi/specs': 6.8.1 - '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) - '@mintlify/models': 0.0.343 + '@mintlify/mdx': 4.0.2(@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) + '@mintlify/models': 0.0.355(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) '@mintlify/openapi-parser': 0.0.8 - '@mintlify/validation': 0.1.798(@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) + '@mintlify/validation': 0.1.852(@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) '@sindresorhus/slugify': 2.2.0 '@types/mdast': 4.0.4 acorn: 8.11.2 acorn-jsx: 5.3.2(acorn@8.11.2) - color-blend: 4.0.0 estree-util-to-js: 2.0.0 estree-walker: 3.0.3 front-matter: 4.0.2 hast-util-from-html: 2.0.3 + hast-util-to-estree: 3.1.0(supports-color@5.5.0) hast-util-to-html: 9.0.4 - hast-util-to-text: 4.0.2 - hex-rgb: 5.0.0 ignore: 7.0.5 - js-yaml: 4.1.1 + iregexp-check: 0.1.2 + js-yaml: 4.3.1 + json-p3: 2.2.2 lodash: 4.18.1 - mdast-util-from-markdown: 2.0.2 - mdast-util-gfm: 3.0.0 - mdast-util-mdx: 3.0.0 - mdast-util-mdx-jsx: 3.1.3 + mdast-util-from-markdown: 2.0.2(supports-color@5.5.0) + mdast-util-gfm: 3.0.0(supports-color@5.5.0) + mdast-util-mdx: 3.0.0(supports-color@5.5.0) + mdast-util-mdx-jsx: 3.1.3(supports-color@5.5.0) micromark-extension-gfm: 3.0.0 - micromark-extension-mdx-jsx: 3.0.1 micromark-extension-mdxjs: 3.0.0 openapi-types: 12.1.3 - postcss: 8.5.14 + postcss: 8.5.23 + re2js: 2.8.6 + rehype-katex: 7.0.1 rehype-stringify: 10.0.1 - remark: 15.0.1 - remark-frontmatter: 5.0.0 - remark-gfm: 4.0.0 - remark-math: 6.0.0 - remark-mdx: 3.1.0 - remark-parse: 11.0.0 + remark: 15.0.1(supports-color@5.5.0) + remark-frontmatter: 5.0.0(supports-color@5.5.0) + remark-gfm: 4.0.0(supports-color@5.5.0) + remark-math: 6.0.0(supports-color@5.5.0) + remark-mdx: 3.1.0(supports-color@5.5.0) + remark-parse: 11.0.0(supports-color@5.5.0) remark-rehype: 11.1.1 + remark-smartypants: 3.0.2 remark-stringify: 11.0.0 sucrase: 3.34.0 tailwindcss-v3: tailwindcss@3.4.17 @@ -4663,7 +4489,7 @@ snapshots: vfile: 6.0.3 xss: 1.0.15 transitivePeerDependencies: - - '@radix-ui/react-popover' + - '@base-ui/react' - '@types/react' - debug - encoding @@ -4673,13 +4499,13 @@ snapshots: - ts-node - typescript - '@mintlify/common@1.0.388(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mintlify/common@1.0.388(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)': dependencies: '@asyncapi/parser': 3.6.0 - '@mintlify/mdx': 1.1.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mintlify/models': 0.0.193 + '@mintlify/mdx': 1.1.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0) + '@mintlify/models': 0.0.193(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) '@mintlify/openapi-parser': 0.0.7 - '@mintlify/validation': 0.1.372 + '@mintlify/validation': 0.1.372(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) '@sindresorhus/slugify': 2.2.1 acorn: 8.17.0 estree-util-to-js: 2.0.0 @@ -4688,19 +4514,19 @@ snapshots: hast-util-from-html: 2.0.3 hast-util-to-html: 9.0.5 hast-util-to-text: 4.0.2 - js-yaml: 4.3.0 + js-yaml: 4.3.1 lodash: 4.18.1 mdast: 3.0.0 - mdast-util-from-markdown: 2.0.3 - mdast-util-mdx: 3.0.0 - mdast-util-mdx-jsx: 3.2.0 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) + mdast-util-mdx: 3.0.0(supports-color@5.5.0) + mdast-util-mdx-jsx: 3.2.0(supports-color@5.5.0) micromark-extension-mdx-jsx: 3.0.2 openapi-types: 12.1.3 - remark: 15.0.1 - remark-frontmatter: 5.0.0 - remark-gfm: 4.0.1 - remark-math: 6.0.0 - remark-mdx: 3.1.1 + remark: 15.0.1(supports-color@5.5.0) + remark-frontmatter: 5.0.0(supports-color@5.5.0) + remark-gfm: 4.0.1(supports-color@5.5.0) + remark-math: 6.0.0(supports-color@5.5.0) + remark-mdx: 3.1.1(supports-color@5.5.0) remark-stringify: 11.0.0 unified: 11.0.5 unist-builder: 4.0.0 @@ -4718,10 +4544,10 @@ snapshots: - react-dom - supports-color - '@mintlify/link-rot@3.0.502(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': + '@mintlify/link-rot@3.0.502(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3)': dependencies: - '@mintlify/common': 1.0.388(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mintlify/prebuild': 1.0.499(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) + '@mintlify/common': 1.0.388(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0) + '@mintlify/prebuild': 1.0.499(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) fs-extra: 11.4.0 unist-util-visit: 4.1.2 transitivePeerDependencies: @@ -4738,16 +4564,16 @@ snapshots: - typescript - utf-8-validate - '@mintlify/mdx@1.1.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mintlify/mdx@1.1.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)': dependencies: hast-util-to-string: 3.0.1 - next-mdx-remote-client: 1.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(unified@11.0.5) + next-mdx-remote-client: 1.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(unified@11.0.5) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) rehype-katex: 7.0.1 - remark-gfm: 4.0.1 - remark-math: 6.0.0 - remark-smartypants: 3.0.2 + remark-gfm: 4.0.1(supports-color@5.5.0) + remark-math: 6.0.0(supports-color@5.5.0) + remark-smartypants: 3.0.3 shiki: 3.23.0 unified: 11.0.5 unist-util-visit: 5.1.0 @@ -4755,25 +4581,26 @@ snapshots: - '@types/react' - supports-color - '@mintlify/mdx@3.0.4(@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': + '@mintlify/mdx@4.0.2(@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3)': dependencies: - '@radix-ui/react-popover': 1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@base-ui/react': 1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@shikijs/transformers': 3.23.0 - '@shikijs/twoslash': 3.23.0(typescript@6.0.3) + '@shikijs/twoslash': 3.23.0(supports-color@5.5.0)(typescript@6.0.3) arktype: 2.2.3 hast-util-to-string: 3.0.1 - mdast-util-from-markdown: 2.0.3 - mdast-util-gfm: 3.1.0 - mdast-util-mdx-jsx: 3.2.0 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) + mdast-util-gfm: 3.1.0(supports-color@5.5.0) + mdast-util-mdx-jsx: 3.2.0(supports-color@5.5.0) mdast-util-to-hast: 13.2.1 - next-mdx-remote-client: 1.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(unified@11.0.5) + next-mdx-remote-client: 2.1.12(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(unified@11.0.5) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) rehype-katex: 7.0.1 - remark-gfm: 4.0.1 - remark-math: 6.0.0 - remark-smartypants: 3.0.2 + remark-gfm: 4.0.1(supports-color@5.5.0) + remark-math: 6.0.0(supports-color@5.5.0) + remark-smartypants: 3.0.3 shiki: 3.23.0 + twoslash: 0.3.9(supports-color@5.5.0)(typescript@6.0.3) unified: 11.0.5 unist-util-visit: 5.1.0 transitivePeerDependencies: @@ -4781,17 +4608,17 @@ snapshots: - supports-color - typescript - '@mintlify/models@0.0.193': + '@mintlify/models@0.0.193(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0)': dependencies: - axios: 1.18.1 + axios: 1.18.1(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) openapi-types: 12.1.3 transitivePeerDependencies: - debug - supports-color - '@mintlify/models@0.0.343': + '@mintlify/models@0.0.355(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0)': dependencies: - axios: 1.16.1 + axios: 1.18.0(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) openapi-types: 12.1.3 transitivePeerDependencies: - debug @@ -4804,7 +4631,7 @@ snapshots: ajv-formats: 3.0.1(ajv@8.20.0) jsonpointer: 5.0.1 leven: 4.1.0 - yaml: 2.9.0 + yaml: 2.9.1 '@mintlify/openapi-parser@0.0.8': dependencies: @@ -4813,20 +4640,20 @@ snapshots: ajv-formats: 3.0.1(ajv@8.20.0) jsonpointer: 5.0.1 leven: 4.1.0 - yaml: 2.9.0 + yaml: 2.9.1 - '@mintlify/prebuild@1.0.499(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': + '@mintlify/prebuild@1.0.499(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3)': dependencies: - '@mintlify/common': 1.0.388(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mintlify/common': 1.0.388(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0) '@mintlify/openapi-parser': 0.0.7 - '@mintlify/scraping': 4.0.244(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) - '@mintlify/validation': 0.1.372 - axios: 1.18.1 + '@mintlify/scraping': 4.0.244(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) + '@mintlify/validation': 0.1.372(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) + axios: 1.18.1(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) chalk: 5.3.0 favicons: 7.2.0 fs-extra: 11.4.0 gray-matter: 4.0.3 - js-yaml: 4.3.0 + js-yaml: 4.3.1 mdast: 3.0.0 openapi-types: 12.1.3 unist-util-visit: 4.1.2 @@ -4844,24 +4671,24 @@ snapshots: - typescript - utf-8-validate - '@mintlify/previewing@4.0.538(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': + '@mintlify/previewing@4.0.538(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3)': dependencies: - '@mintlify/common': 1.0.388(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mintlify/prebuild': 1.0.499(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) - '@mintlify/validation': 0.1.372 + '@mintlify/common': 1.0.388(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0) + '@mintlify/prebuild': 1.0.499(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) + '@mintlify/validation': 0.1.372(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) better-opn: 3.0.2 chalk: 5.3.0 chokidar: 3.6.0 - express: 4.19.2 + express: 4.19.2(supports-color@5.5.0) fs-extra: 11.4.0 got: 13.0.0 gray-matter: 4.0.3 is-online: 10.0.0 - js-yaml: 4.3.0 + js-yaml: 4.3.1 mdast: 3.0.0 openapi-types: 12.1.3 ora: 6.3.1 - socket.io: 4.7.5 + socket.io: 4.7.5(supports-color@5.5.0) tar: 6.2.1 unist-util-visit: 4.1.2 yargs: 17.7.3 @@ -4879,26 +4706,28 @@ snapshots: - typescript - utf-8-validate - '@mintlify/scraping@4.0.244(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': + '@mintlify/scraping@4.0.1010(@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3)': dependencies: - '@mintlify/common': 1.0.388(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mintlify/openapi-parser': 0.0.7 - fs-extra: 11.4.0 - hast-util-to-mdast: 10.1.2 - js-yaml: 4.3.0 - mdast-util-mdx-jsx: 3.2.0 + '@mintlify/common': 1.0.1142(@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) + fast-xml-parser: 5.7.3 + fs-extra: 11.1.1 + graphql: 16.11.0 + hast-util-to-mdast: 10.1.0 + js-yaml: 4.3.1 + mdast-util-mdx-jsx: 3.1.3(supports-color@5.5.0) neotraverse: 0.6.18 - puppeteer: 22.15.0(typescript@6.0.3) + puppeteer: 24.3.1(supports-color@5.5.0)(typescript@6.0.3) rehype-parse: 9.0.1 - remark-gfm: 4.0.1 - remark-mdx: 3.1.1 - remark-parse: 11.0.0 + remark-gfm: 4.0.0(supports-color@5.5.0) + remark-mdx: 3.0.1(supports-color@5.5.0) + remark-parse: 11.0.0(supports-color@5.5.0) remark-stringify: 11.0.0 unified: 11.0.5 - unist-util-visit: 5.1.0 - yargs: 17.7.3 - zod: 3.25.76 + unist-util-visit: 5.0.0 + yargs: 17.7.1 + zod: 3.24.0 transitivePeerDependencies: + - '@base-ui/react' - '@types/react' - bare-abort-controller - bare-buffer @@ -4909,31 +4738,30 @@ snapshots: - react-dom - react-native-b4a - supports-color + - ts-node - typescript - utf-8-validate - '@mintlify/scraping@4.0.907(@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': + '@mintlify/scraping@4.0.244(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3)': dependencies: - '@mintlify/common': 1.0.1042(@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) - '@mintlify/openapi-parser': 0.0.8 - fs-extra: 11.1.1 - graphql: 16.11.0 - hast-util-to-mdast: 10.1.0 - js-yaml: 4.1.1 - mdast-util-mdx-jsx: 3.1.3 + '@mintlify/common': 1.0.388(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0) + '@mintlify/openapi-parser': 0.0.7 + fs-extra: 11.4.0 + hast-util-to-mdast: 10.1.2 + js-yaml: 4.3.1 + mdast-util-mdx-jsx: 3.2.0(supports-color@5.5.0) neotraverse: 0.6.18 - puppeteer: 24.3.1(typescript@6.0.3) + puppeteer: 22.15.0(supports-color@5.5.0)(typescript@6.0.3) rehype-parse: 9.0.1 - remark-gfm: 4.0.0 - remark-mdx: 3.0.1 - remark-parse: 11.0.0 + remark-gfm: 4.0.1(supports-color@5.5.0) + remark-mdx: 3.1.1(supports-color@5.5.0) + remark-parse: 11.0.0(supports-color@5.5.0) remark-stringify: 11.0.0 unified: 11.0.5 - unist-util-visit: 5.0.0 - yargs: 17.7.1 - zod: 3.24.0 + unist-util-visit: 5.1.0 + yargs: 17.7.3 + zod: 3.25.76 transitivePeerDependencies: - - '@radix-ui/react-popover' - '@types/react' - bare-abort-controller - bare-buffer @@ -4944,13 +4772,12 @@ snapshots: - react-dom - react-native-b4a - supports-color - - ts-node - typescript - utf-8-validate - '@mintlify/validation@0.1.372': + '@mintlify/validation@0.1.372(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0)': dependencies: - '@mintlify/models': 0.0.193 + '@mintlify/models': 0.0.193(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) lcm: 0.0.3 lodash: 4.18.1 openapi-types: 12.1.3 @@ -4960,13 +4787,12 @@ snapshots: - debug - supports-color - '@mintlify/validation@0.1.798(@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': + '@mintlify/validation@0.1.852(@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3)': dependencies: - '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) - '@mintlify/models': 0.0.343 - arktype: 2.1.27 + '@mintlify/mdx': 4.0.2(@base-ui/react@1.8.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) + '@mintlify/models': 0.0.355(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0) fractional-indexing: 3.2.0 - js-yaml: 4.1.1 + js-yaml: 4.3.1 lcm: 0.0.3 lodash: 4.18.1 neotraverse: 0.6.18 @@ -4976,7 +4802,7 @@ snapshots: zod: 3.24.0 zod-to-json-schema: 3.20.4(zod@3.24.0) transitivePeerDependencies: - - '@radix-ui/react-popover' + - '@base-ui/react' - '@types/react' - debug - react @@ -4984,6 +4810,8 @@ snapshots: - supports-color - typescript + '@nodable/entities@2.2.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4994,18 +4822,18 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 + fastq: 1.20.3 '@openapi-contrib/openapi-schema-to-json-schema@3.2.0': dependencies: fast-deep-equal: 3.1.3 - '@puppeteer/browsers@2.3.0': + '@puppeteer/browsers@2.3.0(supports-color@5.5.0)': dependencies: - debug: 4.4.3 - extract-zip: 2.0.1 + debug: 4.4.3(supports-color@5.5.0) + extract-zip: 2.0.1(supports-color@5.5.0) progress: 2.0.3 - proxy-agent: 6.5.0 + proxy-agent: 6.5.0(supports-color@5.5.0) semver: 7.8.5 tar-fs: 3.1.3 unbzip2-stream: 1.4.3 @@ -5016,12 +4844,12 @@ snapshots: - react-native-b4a - supports-color - '@puppeteer/browsers@2.7.1': + '@puppeteer/browsers@2.7.1(supports-color@5.5.0)': dependencies: - debug: 4.4.3 - extract-zip: 2.0.1 + debug: 4.4.3(supports-color@5.5.0) + extract-zip: 2.0.1(supports-color@5.5.0) progress: 2.0.3 - proxy-agent: 6.5.0 + proxy-agent: 6.5.0(supports-color@5.5.0) semver: 7.8.5 tar-fs: 3.1.3 yargs: 17.7.3 @@ -5031,180 +4859,6 @@ snapshots: - react-native-b4a - supports-color - '@radix-ui/primitive@1.1.7': {} - - '@radix-ui/react-arrow@1.1.13(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-compose-refs@1.1.4(@types/react@18.3.3)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-context@1.2.1(@types/react@18.3.3)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-dismissable-layer@1.1.17(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-compose-refs': 1.1.4(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.3(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-effect-event': 0.0.4(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-focus-guards@1.1.5(@types/react@18.3.3)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-focus-scope@1.1.14(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.4(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.3(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-id@1.1.3(@types/react@18.3.3)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.3(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-popover@1.1.21(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-compose-refs': 1.1.4(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.2.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.17(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.5(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.14(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.3(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-popper': 1.3.5(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.15(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.9(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.3.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.5(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.3(@types/react@18.3.3)(react@18.3.1) - aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.2(@types/react@18.3.3)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-popper@1.3.5(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.13(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.4(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.2.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.3(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.3(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.3(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.3(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/rect': 1.1.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-portal@1.1.15(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.3(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-presence@1.1.9(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.3(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-primitive@2.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.3.1(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-slot@1.3.1(@types/react@18.3.3)(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-compose-refs': 1.1.4(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-use-callback-ref@1.1.3(@types/react@18.3.3)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-use-controllable-state@1.2.5(@types/react@18.3.3)(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-use-effect-event': 0.0.4(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.3(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-use-effect-event@0.0.4(@types/react@18.3.3)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.3(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-use-layout-effect@1.1.3(@types/react@18.3.3)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-use-rect@1.1.3(@types/react@18.3.3)(react@18.3.1)': - dependencies: - '@radix-ui/rect': 1.1.3 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-use-size@1.1.3(@types/react@18.3.3)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.3(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/rect@1.1.3': {} - '@scarf/scarf@1.4.0': {} '@shikijs/core@3.23.0': @@ -5238,11 +4892,11 @@ snapshots: '@shikijs/core': 3.23.0 '@shikijs/types': 3.23.0 - '@shikijs/twoslash@3.23.0(typescript@6.0.3)': + '@shikijs/twoslash@3.23.0(supports-color@5.5.0)(typescript@6.0.3)': dependencies: '@shikijs/core': 3.23.0 '@shikijs/types': 3.23.0 - twoslash: 0.3.9(typescript@6.0.3) + twoslash: 0.3.9(supports-color@5.5.0)(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -5287,7 +4941,7 @@ snapshots: '@stoplight/json-ref-resolver@3.1.6': dependencies: - '@stoplight/json': 3.21.0 + '@stoplight/json': 3.21.7 '@stoplight/path': 1.3.2 '@stoplight/types': 13.20.0 '@types/urijs': 1.19.26 @@ -5307,6 +4961,15 @@ snapshots: lodash: 4.18.1 safe-stable-stringify: 1.1.1 + '@stoplight/json@3.21.7': + dependencies: + '@stoplight/ordered-object-literal': 1.0.5 + '@stoplight/path': 1.3.2 + '@stoplight/types': 13.20.0 + jsonc-parser: 2.2.1 + lodash: 4.18.1 + safe-stable-stringify: 1.1.1 + '@stoplight/ordered-object-literal@1.0.5': {} '@stoplight/path@1.3.2': {} @@ -5315,7 +4978,7 @@ snapshots: dependencies: '@scarf/scarf': 1.4.0 '@stoplight/better-ajv-errors': 1.0.3(ajv@8.20.0) - '@stoplight/json': 3.21.0 + '@stoplight/json': 3.21.7 '@stoplight/path': 1.3.2 '@stoplight/spectral-parsers': 1.0.5 '@stoplight/spectral-ref-resolver': 1.0.5 @@ -5341,7 +5004,7 @@ snapshots: '@stoplight/spectral-formats@1.8.5': dependencies: '@scarf/scarf': 1.4.0 - '@stoplight/json': 3.21.0 + '@stoplight/json': 3.21.7 '@stoplight/spectral-core': 1.23.1 '@types/json-schema': 7.0.15 tslib: 2.8.1 @@ -5352,7 +5015,7 @@ snapshots: dependencies: '@scarf/scarf': 1.4.0 '@stoplight/better-ajv-errors': 1.0.3(ajv@8.20.0) - '@stoplight/json': 3.21.0 + '@stoplight/json': 3.21.7 '@stoplight/spectral-core': 1.23.1 '@stoplight/spectral-formats': 1.8.5 '@stoplight/spectral-runtime': 1.1.6 @@ -5367,7 +5030,7 @@ snapshots: '@stoplight/spectral-parsers@1.0.5': dependencies: - '@stoplight/json': 3.21.0 + '@stoplight/json': 3.21.7 '@stoplight/types': 14.1.1 '@stoplight/yaml': 4.3.0 tslib: 2.8.1 @@ -5384,7 +5047,7 @@ snapshots: '@stoplight/spectral-runtime@1.1.6': dependencies: - '@stoplight/json': 3.21.0 + '@stoplight/json': 3.21.7 '@stoplight/path': 1.3.2 '@stoplight/types': 13.20.0 lodash: 4.18.1 @@ -5423,15 +5086,11 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@types/acorn@4.0.6': - dependencies: - '@types/estree': 1.0.9 - '@types/cookie@0.4.1': {} '@types/cors@2.8.17': dependencies: - '@types/node': 20.14.11 + '@types/node': 20.19.43 '@types/debug@4.1.13': dependencies: @@ -5439,7 +5098,7 @@ snapshots: '@types/es-aggregate-error@1.0.6': dependencies: - '@types/node': 20.14.11 + '@types/node': 20.19.43 '@types/estree-jsx@1.0.5': dependencies: @@ -5473,6 +5132,10 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/node@20.19.43': + dependencies: + undici-types: 6.21.0 + '@types/prop-types@15.7.15': {} '@types/react@18.3.3': @@ -5488,17 +5151,17 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.14.11 + '@types/node': 20.19.43 optional: true - '@typescript/vfs@1.6.4(typescript@6.0.3)': + '@typescript/vfs@1.6.4(supports-color@5.5.0)(typescript@6.0.3)': dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@ungap/structured-clone@1.3.3': {} + '@ungap/structured-clone@1.4.0': {} accepts@1.3.8: dependencies: @@ -5509,19 +5172,21 @@ snapshots: dependencies: acorn: 8.11.2 - acorn-jsx@5.3.2(acorn@8.17.0): + acorn-jsx@5.3.2(acorn@8.18.0): dependencies: - acorn: 8.17.0 + acorn: 8.18.0 acorn@8.11.2: {} acorn@8.17.0: {} + acorn@8.18.0: {} + address@1.2.2: {} - agent-base@6.0.2: + agent-base@6.0.2(supports-color@5.5.0): dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -5551,7 +5216,7 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.4 + fast-uri: 3.1.7 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -5578,6 +5243,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 + anynum@1.0.1: {} + arg@5.0.2: {} argparse@1.0.10: @@ -5586,24 +5253,10 @@ snapshots: argparse@2.0.1: {} - aria-hidden@1.2.6: - dependencies: - tslib: 2.8.1 - - arkregex@0.0.3: - dependencies: - '@ark/util': 0.55.0 - arkregex@0.0.8: dependencies: '@ark/util': 0.56.2 - arktype@2.1.27: - dependencies: - '@ark/schema': 0.55.0 - '@ark/util': 0.55.0 - arkregex: 0.0.3 - arktype@2.2.3: dependencies: '@ark/schema': 0.56.2 @@ -5661,21 +5314,21 @@ snapshots: avsc@5.7.9: {} - axios@1.16.1: + axios@1.18.0(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0): dependencies: - follow-redirects: 1.16.0 + follow-redirects: 1.16.0(debug@4.4.3(supports-color@5.5.0)) form-data: 4.0.6 - https-proxy-agent: 5.0.1 + https-proxy-agent: 5.0.1(supports-color@5.5.0) proxy-from-env: 2.1.0 transitivePeerDependencies: - debug - supports-color - axios@1.18.1: + axios@1.18.1(debug@4.4.3(supports-color@5.5.0))(supports-color@5.5.0): dependencies: - follow-redirects: 1.16.0 + follow-redirects: 1.16.0(debug@4.4.3(supports-color@5.5.0)) form-data: 4.0.6 - https-proxy-agent: 5.0.1 + https-proxy-agent: 5.0.1(supports-color@5.5.0) proxy-from-env: 2.1.0 transitivePeerDependencies: - debug @@ -5687,34 +5340,34 @@ snapshots: balanced-match@1.0.2: {} - bare-events@2.9.1: {} + bare-events@2.9.2: {} - bare-fs@4.7.4: + bare-fs@4.8.1: dependencies: - bare-events: 2.9.1 - bare-path: 3.1.1 - bare-stream: 2.13.3(bare-events@2.9.1) - bare-url: 2.4.6 + bare-events: 2.9.2 + bare-path: 3.1.2 + bare-stream: 2.13.4(bare-events@2.9.2) + bare-url: 2.5.4 fast-fifo: 1.3.2 transitivePeerDependencies: - bare-abort-controller - react-native-b4a - bare-path@3.1.1: {} + bare-path@3.1.2: {} - bare-stream@2.13.3(bare-events@2.9.1): + bare-stream@2.13.4(bare-events@2.9.2): dependencies: b4a: 1.8.1 - streamx: 2.28.0 + streamx: 2.28.1 teex: 1.0.1 optionalDependencies: - bare-events: 2.9.1 + bare-events: 2.9.2 transitivePeerDependencies: - react-native-b4a - bare-url@2.4.6: + bare-url@2.5.4: dependencies: - bare-path: 3.1.1 + bare-path: 3.1.2 base64-js@1.5.1: {} @@ -5734,11 +5387,11 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - body-parser@1.20.2: + body-parser@1.20.2(supports-color@5.5.0): dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 2.6.9 + debug: 2.6.9(supports-color@5.5.0) depd: 2.0.0 destroy: 1.2.0 http-errors: 2.0.0 @@ -5756,7 +5409,7 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@1.1.16: + brace-expansion@1.1.18: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 @@ -5889,8 +5542,6 @@ snapshots: collapse-white-space@2.1.0: {} - color-blend@4.0.0: {} - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -5948,7 +5599,7 @@ snapshots: dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.3.0 + js-yaml: 4.3.1 parse-json: 5.2.0 optionalDependencies: typescript: 6.0.3 @@ -6005,21 +5656,29 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 - debug@2.6.9: + debug@2.6.9(supports-color@5.5.0): dependencies: ms: 2.0.0 + optionalDependencies: + supports-color: 5.5.0 - debug@4.3.7: + debug@4.3.7(supports-color@5.5.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 - debug@4.4.0: + debug@4.4.0(supports-color@5.5.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 - debug@4.4.3: + debug@4.4.3(supports-color@5.5.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 decode-named-character-reference@1.3.0: dependencies: @@ -6067,12 +5726,10 @@ snapshots: detect-libc@2.0.3: {} - detect-node-es@1.1.0: {} - - detect-port@1.6.1: + detect-port@1.6.1(supports-color@5.5.0): dependencies: address: 1.2.2 - debug: 4.4.0 + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -6114,7 +5771,7 @@ snapshots: engine.io-parser@5.2.3: {} - engine.io@6.5.5: + engine.io@6.5.5(supports-color@5.5.0): dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 @@ -6123,7 +5780,7 @@ snapshots: base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.7 + debug: 4.3.7(supports-color@5.5.0) engine.io-parser: 5.2.3 ws: 8.17.1 transitivePeerDependencies: @@ -6321,7 +5978,7 @@ snapshots: esast-util-from-js@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - acorn: 8.17.0 + acorn: 8.18.0 esast-util-from-estree: 2.0.0 vfile-message: 4.0.3 @@ -6386,7 +6043,7 @@ snapshots: estree-util-is-identifier-name@3.0.0: {} - estree-util-scope@1.0.0: + estree-util-scope@1.0.1: dependencies: '@types/estree': 1.0.9 devlop: 1.1.0 @@ -6412,27 +6069,27 @@ snapshots: events-universal@1.0.1: dependencies: - bare-events: 2.9.1 + bare-events: 2.9.2 transitivePeerDependencies: - bare-abort-controller expr-eval-fork@3.0.3: {} - express@4.19.2: + express@4.19.2(supports-color@5.5.0): dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.2 + body-parser: 1.20.2(supports-color@5.5.0) content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.6.0 cookie-signature: 1.0.6 - debug: 2.6.9 + debug: 2.6.9(supports-color@5.5.0) depd: 2.0.0 encodeurl: 1.0.2 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.2.0(supports-color@5.5.0) fresh: 0.5.2 http-errors: 2.0.0 merge-descriptors: 1.0.1 @@ -6444,8 +6101,8 @@ snapshots: qs: 6.11.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.18.0(supports-color@5.5.0) + serve-static: 1.15.0(supports-color@5.5.0) setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -6466,9 +6123,9 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - extract-zip@2.0.1: + extract-zip@2.0.1(supports-color@5.5.0): dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -6490,9 +6147,21 @@ snapshots: fast-memoize@2.5.2: {} - fast-uri@3.1.4: {} + fast-uri@3.1.7: {} - fastq@1.20.1: + fast-xml-builder@1.3.1: + dependencies: + path-expression-matcher: 1.6.2 + xml-naming: 0.3.0 + + fast-xml-parser@5.7.3: + dependencies: + '@nodable/entities': 2.2.0 + fast-xml-builder: 1.3.1 + path-expression-matcher: 1.6.2 + strnum: 2.4.2 + + fastq@1.20.3: dependencies: reusify: 1.1.0 @@ -6510,17 +6179,17 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.5.0(picomatch@4.0.5): + fdir@6.5.0(picomatch@4.0.7): optionalDependencies: - picomatch: 4.0.5 + picomatch: 4.0.7 fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + finalhandler@1.2.0(supports-color@5.5.0): dependencies: - debug: 2.6.9 + debug: 2.6.9(supports-color@5.5.0) encodeurl: 1.0.2 escape-html: 1.0.3 on-finished: 2.4.1 @@ -6530,7 +6199,9 @@ snapshots: transitivePeerDependencies: - supports-color - follow-redirects@1.16.0: {} + follow-redirects@1.16.0(debug@4.4.3(supports-color@5.5.0)): + optionalDependencies: + debug: 4.4.3(supports-color@5.5.0) for-each@0.3.3: dependencies: @@ -6560,7 +6231,7 @@ snapshots: front-matter@4.0.2: dependencies: - js-yaml: 3.15.0 + js-yaml: 3.15.2 fs-extra@11.1.1: dependencies: @@ -6635,8 +6306,6 @@ snapshots: hasown: 2.0.4 math-intrinsics: 1.1.0 - get-nonce@1.0.1: {} - get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -6664,11 +6333,11 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-uri@6.0.5: + get-uri@6.0.5(supports-color@5.5.0): dependencies: basic-ftp: 5.3.1 data-uri-to-buffer: 6.0.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -6850,7 +6519,7 @@ snapshots: hast-util-is-body-ok-link: 3.0.1 hast-util-is-element: 3.0.0 - hast-util-to-estree@3.1.3: + hast-util-to-estree@3.1.0(supports-color@5.5.0): dependencies: '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 @@ -6860,12 +6529,12 @@ snapshots: estree-util-attach-comments: 3.0.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.2.0 + mdast-util-mdx-expression: 2.0.1(supports-color@5.5.0) + mdast-util-mdx-jsx: 3.2.0(supports-color@5.5.0) + mdast-util-mdxjs-esm: 2.0.1(supports-color@5.5.0) + property-information: 6.5.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.21 + style-to-object: 0.4.4 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: @@ -6899,7 +6568,7 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.6: + hast-util-to-jsx-runtime@2.3.6(supports-color@5.5.0): dependencies: '@types/estree': 1.0.9 '@types/hast': 3.0.5 @@ -6908,9 +6577,9 @@ snapshots: devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 + mdast-util-mdx-expression: 2.0.1(supports-color@5.5.0) + mdast-util-mdx-jsx: 3.2.0(supports-color@5.5.0) + mdast-util-mdxjs-esm: 2.0.1(supports-color@5.5.0) property-information: 7.2.0 space-separated-tokens: 2.0.2 style-to-js: 1.1.21 @@ -6923,7 +6592,7 @@ snapshots: dependencies: '@types/hast': 3.0.5 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.3 + '@ungap/structured-clone': 1.4.0 hast-util-phrasing: 3.0.1 hast-util-to-html: 9.0.5 hast-util-to-text: 4.0.2 @@ -6940,7 +6609,7 @@ snapshots: dependencies: '@types/hast': 3.0.5 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.3 + '@ungap/structured-clone': 1.4.0 hast-util-phrasing: 3.0.1 hast-util-to-html: 9.0.5 hast-util-to-text: 4.0.2 @@ -6976,8 +6645,6 @@ snapshots: property-information: 7.2.0 space-separated-tokens: 2.0.2 - hex-rgb@5.0.0: {} - hosted-git-info@2.8.9: {} html-void-elements@3.0.0: {} @@ -6992,10 +6659,10 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-proxy-agent@7.0.2: + http-proxy-agent@7.0.2(supports-color@5.5.0): dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -7004,17 +6671,17 @@ snapshots: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - https-proxy-agent@5.0.1: + https-proxy-agent@5.0.1(supports-color@5.5.0): dependencies: - agent-base: 6.0.2 - debug: 4.4.3 + agent-base: 6.0.2(supports-color@5.5.0) + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6: + https-proxy-agent@7.0.6(supports-color@5.5.0): dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -7044,6 +6711,8 @@ snapshots: inherits@2.0.4: {} + inline-style-parser@0.1.1: {} + inline-style-parser@0.2.7: {} inquirer@12.6.0(@types/node@20.14.11): @@ -7070,12 +6739,14 @@ snapshots: hasown: 2.0.4 side-channel: 1.1.1 - ip-address@10.2.0: {} + ip-address@10.7.0: {} ip-regex@4.3.0: {} ipaddr.js@1.9.1: {} + iregexp-check@0.1.2: {} + is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -7302,16 +6973,16 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@3.15.0: + js-yaml@3.15.2: dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.1: + js-yaml@4.3.0: dependencies: argparse: 2.0.1 - js-yaml@4.3.0: + js-yaml@4.3.1: dependencies: argparse: 2.0.1 @@ -7319,6 +6990,8 @@ snapshots: json-buffer@3.0.1: {} + json-p3@2.2.2: {} + json-parse-better-errors@1.0.2: {} json-parse-even-better-errors@2.3.1: {} @@ -7402,14 +7075,14 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - mdast-util-from-markdown@2.0.2: + mdast-util-from-markdown@2.0.2(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.2 + micromark: 4.0.2(supports-color@5.5.0) micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-decode-string: 2.0.1 micromark-util-normalize-identifier: 2.0.1 @@ -7419,14 +7092,14 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-from-markdown@2.0.3: + mdast-util-from-markdown@2.0.3(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.2 + micromark: 4.0.2(supports-color@5.5.0) micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-decode-string: 2.0.1 micromark-util-normalize-identifier: 2.0.1 @@ -7436,12 +7109,12 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@2.0.1: + mdast-util-frontmatter@2.0.1(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: @@ -7455,91 +7128,91 @@ snapshots: mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@2.1.0: + mdast-util-gfm-footnote@2.1.0(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: - supports-color - mdast-util-gfm-strikethrough@2.0.0: + mdast-util-gfm-strikethrough@2.0.0(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm-table@2.0.0: + mdast-util-gfm-table@2.0.0(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm-task-list-item@2.0.0: + mdast-util-gfm-task-list-item@2.0.0(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm@3.0.0: + mdast-util-gfm@3.0.0(supports-color@5.5.0): dependencies: - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-gfm-footnote: 2.1.0(supports-color@5.5.0) + mdast-util-gfm-strikethrough: 2.0.0(supports-color@5.5.0) + mdast-util-gfm-table: 2.0.0(supports-color@5.5.0) + mdast-util-gfm-task-list-item: 2.0.0(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm@3.1.0: + mdast-util-gfm@3.1.0(supports-color@5.5.0): dependencies: - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-gfm-footnote: 2.1.0(supports-color@5.5.0) + mdast-util-gfm-strikethrough: 2.0.0(supports-color@5.5.0) + mdast-util-gfm-table: 2.0.0(supports-color@5.5.0) + mdast-util-gfm-task-list-item: 2.0.0(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-math@3.0.0: + mdast-util-math@3.0.0(supports-color@5.5.0): dependencies: '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 longest-streak: 3.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 unist-util-remove-position: 5.0.0 transitivePeerDependencies: - supports-color - mdast-util-mdx-expression@2.0.1: + mdast-util-mdx-expression@2.0.1(supports-color@5.5.0): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.1.3: + mdast-util-mdx-jsx@3.1.3(supports-color@5.5.0): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 @@ -7547,7 +7220,7 @@ snapshots: '@types/unist': 3.0.3 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 stringify-entities: 4.0.4 @@ -7556,7 +7229,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.2.0: + mdast-util-mdx-jsx@3.2.0(supports-color@5.5.0): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 @@ -7564,7 +7237,7 @@ snapshots: '@types/unist': 3.0.3 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 stringify-entities: 4.0.4 @@ -7573,23 +7246,23 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx@3.0.0: + mdast-util-mdx@3.0.0(supports-color@5.5.0): dependencies: - mdast-util-from-markdown: 2.0.3 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) + mdast-util-mdx-expression: 2.0.1(supports-color@5.5.0) + mdast-util-mdx-jsx: 3.2.0(supports-color@5.5.0) + mdast-util-mdxjs-esm: 2.0.1(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-mdxjs-esm@2.0.1: + mdast-util-mdxjs-esm@2.0.1(supports-color@5.5.0): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -7603,7 +7276,7 @@ snapshots: dependencies: '@types/hast': 3.0.5 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.3 + '@ungap/structured-clone': 1.4.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -7692,7 +7365,7 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-extension-gfm-table@2.1.1: + micromark-extension-gfm-table@2.1.2: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.1 @@ -7717,7 +7390,7 @@ snapshots: micromark-extension-gfm-autolink-literal: 2.1.0 micromark-extension-gfm-footnote: 2.1.0 micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-table: 2.1.2 micromark-extension-gfm-tagfilter: 2.0.0 micromark-extension-gfm-task-list-item: 2.1.0 micromark-util-combine-extensions: 2.0.1 @@ -7744,20 +7417,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-extension-mdx-jsx@3.0.1: - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.9 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - vfile-message: 4.0.3 - micromark-extension-mdx-jsx@3.0.2: dependencies: '@types/estree': 1.0.9 @@ -7789,8 +7448,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.17.0 - acorn-jsx: 5.3.2(acorn@8.17.0) + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) micromark-extension-mdx-expression: 3.0.1 micromark-extension-mdx-jsx: 3.0.2 micromark-extension-mdx-md: 2.0.0 @@ -7912,10 +7571,10 @@ snapshots: micromark-util-types@2.0.2: {} - micromark@4.0.2: + micromark@4.0.2(supports-color@5.5.0): dependencies: '@types/debug': 4.1.13 - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -7959,7 +7618,7 @@ snapshots: minimatch@3.1.5: dependencies: - brace-expansion: 1.1.16 + brace-expansion: 1.1.18 minimist@1.2.8: {} @@ -7974,9 +7633,9 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 - mintlify@4.0.549(@types/node@20.14.11)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3): + mintlify@4.0.549(@types/node@20.14.11)(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3): dependencies: - '@mintlify/cli': 4.0.547(@types/node@20.14.11)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) + '@mintlify/cli': 4.0.547(@types/node@20.14.11)(@types/react@18.3.3)(debug@4.4.3(supports-color@5.5.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(typescript@6.0.3) transitivePeerDependencies: - '@types/node' - '@types/react' @@ -8008,7 +7667,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.16: {} + nanoid@3.3.19: {} negotiator@0.6.3: {} @@ -8018,10 +7677,10 @@ snapshots: netmask@2.1.1: {} - next-mdx-remote-client@1.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(unified@11.0.5): + next-mdx-remote-client@1.1.8(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(unified@11.0.5): dependencies: '@babel/code-frame': 7.29.7 - '@mdx-js/mdx': 3.1.1 + '@mdx-js/mdx': 3.1.1(supports-color@5.5.0) '@mdx-js/react': 3.1.1(@types/react@18.3.3)(react@18.3.1) '@types/mdx': 2.0.14 react: 18.3.1 @@ -8035,6 +7694,23 @@ snapshots: - supports-color - unified + next-mdx-remote-client@2.1.12(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@5.5.0)(unified@11.0.5): + dependencies: + '@babel/code-frame': 7.29.7 + '@mdx-js/mdx': 3.1.1(supports-color@5.5.0) + '@mdx-js/react': 3.1.1(@types/react@18.3.3)(react@18.3.1) + '@types/mdx': 2.0.14 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remark-mdx-remove-esm: 1.3.3(unified@11.0.5) + serialize-error: 13.0.1 + vfile: 6.0.3 + vfile-matter: 5.0.1 + transitivePeerDependencies: + - '@types/react' + - supports-color + - unified + nice-try@1.0.5: {} nimma@0.2.3: @@ -8173,16 +7849,16 @@ snapshots: p-timeout@5.1.0: {} - pac-proxy-agent@7.2.0: + pac-proxy-agent@7.2.0(supports-color@5.5.0): dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.3 - get-uri: 6.0.5 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 + debug: 4.4.3(supports-color@5.5.0) + get-uri: 6.0.5(supports-color@5.5.0) + http-proxy-agent: 7.0.2(supports-color@5.5.0) + https-proxy-agent: 7.0.6(supports-color@5.5.0) pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.5 + socks-proxy-agent: 8.0.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -8232,6 +7908,8 @@ snapshots: parseurl@1.3.3: {} + path-expression-matcher@1.6.2: {} + path-is-absolute@1.0.1: {} path-key@2.0.1: {} @@ -8255,12 +7933,10 @@ snapshots: picomatch@2.3.2: {} - picomatch@4.0.5: {} + picomatch@4.0.7: {} pidtree@0.3.1: {} - pify@2.3.0: {} - pify@3.0.0: {} pirates@4.0.7: {} @@ -8271,28 +7947,28 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-import@15.1.0(postcss@8.5.14): + postcss-import@15.1.0(postcss@8.5.23): dependencies: - postcss: 8.5.14 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - read-cache: 1.0.0 + read-cache: 1.0.2 resolve: 1.22.12 - postcss-js@4.1.0(postcss@8.5.14): + postcss-js@4.1.0(postcss@8.5.23): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.14 + postcss: 8.5.23 - postcss-load-config@4.0.2(postcss@8.5.14): + postcss-load-config@4.0.2(postcss@8.5.23): dependencies: lilconfig: 3.1.3 - yaml: 2.9.0 + yaml: 2.9.1 optionalDependencies: - postcss: 8.5.14 + postcss: 8.5.23 - postcss-nested@6.2.0(postcss@8.5.14): + postcss-nested@6.2.0(postcss@8.5.23): dependencies: - postcss: 8.5.14 + postcss: 8.5.23 postcss-selector-parser: 6.1.4 postcss-selector-parser@6.1.4: @@ -8302,9 +7978,9 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.5.14: + postcss@8.5.23: dependencies: - nanoid: 3.3.16 + nanoid: 3.3.19 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -8321,16 +7997,16 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-agent@6.5.0: + proxy-agent@6.5.0(supports-color@5.5.0): dependencies: agent-base: 7.1.4 - debug: 4.4.3 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 + debug: 4.4.3(supports-color@5.5.0) + http-proxy-agent: 7.0.2(supports-color@5.5.0) + https-proxy-agent: 7.0.6(supports-color@5.5.0) lru-cache: 7.18.3 - pac-proxy-agent: 7.2.0 + pac-proxy-agent: 7.2.0(supports-color@5.5.0) proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.5 + socks-proxy-agent: 8.0.5(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -8349,13 +8025,13 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 - puppeteer-core@22.15.0: + puppeteer-core@22.15.0(supports-color@5.5.0): dependencies: - '@puppeteer/browsers': 2.3.0 + '@puppeteer/browsers': 2.3.0(supports-color@5.5.0) chromium-bidi: 0.6.3(devtools-protocol@0.0.1312386) - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) devtools-protocol: 0.0.1312386 - ws: 8.21.1 + ws: 8.21.3 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -8364,14 +8040,14 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.3.1: + puppeteer-core@24.3.1(supports-color@5.5.0): dependencies: - '@puppeteer/browsers': 2.7.1 + '@puppeteer/browsers': 2.7.1(supports-color@5.5.0) chromium-bidi: 2.1.2(devtools-protocol@0.0.1402036) - debug: 4.4.3 + debug: 4.4.3(supports-color@5.5.0) devtools-protocol: 0.0.1402036 typed-query-selector: 2.12.2 - ws: 8.21.1 + ws: 8.21.3 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -8380,12 +8056,12 @@ snapshots: - supports-color - utf-8-validate - puppeteer@22.15.0(typescript@6.0.3): + puppeteer@22.15.0(supports-color@5.5.0)(typescript@6.0.3): dependencies: - '@puppeteer/browsers': 2.3.0 + '@puppeteer/browsers': 2.3.0(supports-color@5.5.0) cosmiconfig: 9.0.2(typescript@6.0.3) devtools-protocol: 0.0.1312386 - puppeteer-core: 22.15.0 + puppeteer-core: 22.15.0(supports-color@5.5.0) transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -8395,13 +8071,13 @@ snapshots: - typescript - utf-8-validate - puppeteer@24.3.1(typescript@6.0.3): + puppeteer@24.3.1(supports-color@5.5.0)(typescript@6.0.3): dependencies: - '@puppeteer/browsers': 2.7.1 + '@puppeteer/browsers': 2.7.1(supports-color@5.5.0) chromium-bidi: 2.1.2(devtools-protocol@0.0.1402036) cosmiconfig: 9.0.2(typescript@6.0.3) devtools-protocol: 0.0.1402036 - puppeteer-core: 24.3.1 + puppeteer-core: 24.3.1(supports-color@5.5.0) typed-query-selector: 2.12.2 transitivePeerDependencies: - bare-abort-controller @@ -8429,46 +8105,19 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + re2js@2.8.6: {} + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 react: 18.3.1 scheduler: 0.23.2 - react-remove-scroll-bar@2.3.8(@types/react@18.3.3)(react@18.3.1): - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.3)(react@18.3.1) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.3 - - react-remove-scroll@2.7.2(@types/react@18.3.3)(react@18.3.1): - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.3)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.3)(react@18.3.1) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.3)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.3)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - - react-style-singleton@2.2.3(@types/react@18.3.3)(react@18.3.1): - dependencies: - get-nonce: 1.0.1 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.3 - react@18.3.1: dependencies: loose-envify: 1.4.0 - read-cache@1.0.0: - dependencies: - pify: 2.3.0 + read-cache@1.0.2: {} read-pkg@3.0.0: dependencies: @@ -8492,10 +8141,10 @@ snapshots: estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - recma-jsx@1.0.1(acorn@8.17.0): + recma-jsx@1.0.1(acorn@8.18.0): dependencies: - acorn: 8.17.0 - acorn-jsx: 5.3.2(acorn@8.17.0) + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) estree-util-to-js: 2.0.0 recma-parse: 1.0.0 recma-stringify: 1.0.0 @@ -8573,11 +8222,11 @@ snapshots: hast-util-from-html: 2.0.3 unified: 11.0.5 - rehype-recma@1.0.0: + rehype-recma@1.0.0(supports-color@5.5.0): dependencies: '@types/estree': 1.0.9 '@types/hast': 3.0.5 - hast-util-to-estree: 3.1.3 + hast-util-to-estree: 3.1.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -8587,41 +8236,41 @@ snapshots: hast-util-to-html: 9.0.5 unified: 11.0.5 - remark-frontmatter@5.0.0: + remark-frontmatter@5.0.0(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 - mdast-util-frontmatter: 2.0.1 + mdast-util-frontmatter: 2.0.1(supports-color@5.5.0) micromark-extension-frontmatter: 2.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-gfm@4.0.0: + remark-gfm@4.0.0(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 + mdast-util-gfm: 3.1.0(supports-color@5.5.0) micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 + remark-parse: 11.0.0(supports-color@5.5.0) remark-stringify: 11.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-gfm@4.0.1: + remark-gfm@4.0.1(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 + mdast-util-gfm: 3.1.0(supports-color@5.5.0) micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 + remark-parse: 11.0.0(supports-color@5.5.0) remark-stringify: 11.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-math@6.0.0: + remark-math@6.0.0(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 - mdast-util-math: 3.0.0 + mdast-util-math: 3.0.0(supports-color@5.5.0) micromark-extension-math: 3.1.0 unified: 11.0.5 transitivePeerDependencies: @@ -8633,31 +8282,37 @@ snapshots: unified: 11.0.5 unist-util-remove: 4.0.0 - remark-mdx@3.0.1: + remark-mdx-remove-esm@1.3.3(unified@11.0.5): dependencies: - mdast-util-mdx: 3.0.0 + '@types/mdast': 4.0.4 + unified: 11.0.5 + unist-util-remove: 4.0.0 + + remark-mdx@3.0.1(supports-color@5.5.0): + dependencies: + mdast-util-mdx: 3.0.0(supports-color@5.5.0) micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - remark-mdx@3.1.0: + remark-mdx@3.1.0(supports-color@5.5.0): dependencies: - mdast-util-mdx: 3.0.0 + mdast-util-mdx: 3.0.0(supports-color@5.5.0) micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - remark-mdx@3.1.1: + remark-mdx@3.1.1(supports-color@5.5.0): dependencies: - mdast-util-mdx: 3.0.0 + mdast-util-mdx: 3.0.0(supports-color@5.5.0) micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - remark-parse@11.0.0: + remark-parse@11.0.0(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@5.5.0) micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: @@ -8671,6 +8326,14 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + vfile: 6.0.3 + remark-smartypants@3.0.2: dependencies: retext: 9.0.0 @@ -8678,16 +8341,23 @@ snapshots: unified: 11.0.5 unist-util-visit: 5.1.0 + remark-smartypants@3.0.3: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.1.0 + remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.4 mdast-util-to-markdown: 2.1.2 unified: 11.0.5 - remark@15.0.1: + remark@15.0.1(supports-color@5.5.0): dependencies: '@types/mdast': 4.0.4 - remark-parse: 11.0.0 + remark-parse: 11.0.0(supports-color@5.5.0) remark-stringify: 11.0.0 unified: 11.0.5 transitivePeerDependencies: @@ -8697,6 +8367,8 @@ snapshots: require-from-string@2.0.2: {} + reselect@5.3.0: {} + resolve-alpn@1.2.1: {} resolve-from@4.0.0: {} @@ -8815,9 +8487,9 @@ snapshots: semver@7.8.5: {} - send@0.18.0: + send@0.18.0(supports-color@5.5.0): dependencies: - debug: 2.6.9 + debug: 2.6.9(supports-color@5.5.0) depd: 2.0.0 destroy: 1.2.0 encodeurl: 1.0.2 @@ -8836,14 +8508,14 @@ snapshots: serialize-error@13.0.1: dependencies: non-error: 0.1.0 - type-fest: 5.8.0 + type-fest: 5.9.0 - serve-static@1.15.0: + serve-static@1.15.0(supports-color@5.5.0): dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.18.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -8961,47 +8633,47 @@ snapshots: smart-buffer@4.2.0: {} - socket.io-adapter@2.5.5: + socket.io-adapter@2.5.5(supports-color@5.5.0): dependencies: - debug: 4.3.7 + debug: 4.3.7(supports-color@5.5.0) ws: 8.17.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - socket.io-parser@4.2.4: + socket.io-parser@4.2.4(supports-color@5.5.0): dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 + debug: 4.3.7(supports-color@5.5.0) transitivePeerDependencies: - supports-color - socket.io@4.7.5: + socket.io@4.7.5(supports-color@5.5.0): dependencies: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.7 - engine.io: 6.5.5 - socket.io-adapter: 2.5.5 - socket.io-parser: 4.2.4 + debug: 4.3.7(supports-color@5.5.0) + engine.io: 6.5.5(supports-color@5.5.0) + socket.io-adapter: 2.5.5(supports-color@5.5.0) + socket.io-parser: 4.2.4(supports-color@5.5.0) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - socks-proxy-agent@8.0.5: + socks-proxy-agent@8.0.5(supports-color@5.5.0): dependencies: agent-base: 7.1.4 - debug: 4.4.3 - socks: 2.8.9 + debug: 4.4.3(supports-color@5.5.0) + socks: 2.8.10 transitivePeerDependencies: - supports-color - socks@2.8.9: + socks@2.8.10: dependencies: - ip-address: 10.2.0 + ip-address: 10.7.0 smart-buffer: 4.2.0 source-map-js@1.2.1: {} @@ -9039,7 +8711,7 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - streamx@2.28.0: + streamx@2.28.1: dependencies: events-universal: 1.0.1 fast-fifo: 1.3.2 @@ -9119,10 +8791,18 @@ snapshots: strip-bom@3.0.0: {} + strnum@2.4.2: + dependencies: + anynum: 1.0.1 + style-to-js@1.1.21: dependencies: style-to-object: 1.0.14 + style-to-object@0.4.4: + dependencies: + inline-style-parser: 0.1.1 + style-to-object@1.0.14: dependencies: inline-style-parser: 0.2.7 @@ -9157,7 +8837,7 @@ snapshots: tailwindcss@3.4.17: dependencies: - '@alloc/quick-lru': 5.2.0 + '@alloc/quick-lru': 5.3.0 arg: 5.0.2 chokidar: 3.6.0 didyoumean: 1.2.2 @@ -9171,11 +8851,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.14 - postcss-import: 15.1.0(postcss@8.5.14) - postcss-js: 4.1.0(postcss@8.5.14) - postcss-load-config: 4.0.2(postcss@8.5.14) - postcss-nested: 6.2.0(postcss@8.5.14) + postcss: 8.5.23 + postcss-import: 15.1.0(postcss@8.5.23) + postcss-js: 4.1.0(postcss@8.5.23) + postcss-load-config: 4.0.2(postcss@8.5.23) + postcss-nested: 6.2.0(postcss@8.5.23) postcss-selector-parser: 6.1.4 resolve: 1.22.12 sucrase: 3.35.1 @@ -9185,21 +8865,21 @@ snapshots: tar-fs@3.1.3: dependencies: pump: 3.0.4 - tar-stream: 3.2.0 + tar-stream: 3.2.1 optionalDependencies: - bare-fs: 4.7.4 - bare-path: 3.1.1 + bare-fs: 4.8.1 + bare-path: 3.1.2 transitivePeerDependencies: - bare-abort-controller - bare-buffer - react-native-b4a - tar-stream@3.2.0: + tar-stream@3.2.1: dependencies: b4a: 1.8.1 - bare-fs: 4.7.4 + bare-fs: 4.8.1 fast-fifo: 1.3.2 - streamx: 2.28.0 + streamx: 2.28.1 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -9216,7 +8896,7 @@ snapshots: teex@1.0.1: dependencies: - streamx: 2.28.0 + streamx: 2.28.1 transitivePeerDependencies: - bare-abort-controller - react-native-b4a @@ -9239,8 +8919,8 @@ snapshots: tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.5) - picomatch: 4.0.5 + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 tmp@0.0.33: dependencies: @@ -9275,9 +8955,9 @@ snapshots: twoslash-protocol@0.3.9: {} - twoslash@0.3.9(typescript@6.0.3): + twoslash@0.3.9(supports-color@5.5.0)(typescript@6.0.3): dependencies: - '@typescript/vfs': 1.6.4(typescript@6.0.3) + '@typescript/vfs': 1.6.4(supports-color@5.5.0)(typescript@6.0.3) twoslash-protocol: 0.3.9 typescript: 6.0.3 transitivePeerDependencies: @@ -9285,7 +8965,7 @@ snapshots: type-fest@0.21.3: {} - type-fest@5.8.0: + type-fest@5.9.0: dependencies: tagged-tag: 1.0.0 @@ -9387,6 +9067,8 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.21.0: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -9491,20 +9173,9 @@ snapshots: urlpattern-polyfill@10.0.0: {} - use-callback-ref@1.3.3(@types/react@18.3.3)(react@18.3.1): + use-sync-external-store@1.7.0(react@18.3.1): dependencies: react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.3 - - use-sidecar@1.1.3(@types/react@18.3.3)(react@18.3.1): - dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.3 util-deprecate@1.0.2: {} @@ -9533,7 +9204,7 @@ snapshots: vfile-matter@5.0.1: dependencies: vfile: 6.0.3 - yaml: 2.9.0 + yaml: 2.9.1 vfile-message@4.0.3: dependencies: @@ -9637,7 +9308,9 @@ snapshots: ws@8.17.1: {} - ws@8.21.1: {} + ws@8.21.3: {} + + xml-naming@0.3.0: {} xml2js@0.6.2: dependencies: @@ -9655,7 +9328,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.9.0: {} + yaml@2.9.1: {} yargs-parser@21.1.1: {} diff --git a/src/api/jwt-auth.mdx b/src/api/jwt-auth.mdx index b0bde54e..e37eeaea 100644 --- a/src/api/jwt-auth.mdx +++ b/src/api/jwt-auth.mdx @@ -1,5 +1,6 @@ --- title: "Access via JWT" +description: "Authenticate Ampersand API and UI library calls with RS256 JWTs signed by your server, using an RSA key pair registered with the Ampersand dashboard." --- This guide explains how to generate and use JWTs for authentication, so that you can securely interact with Ampersand APIs from your frontend and your customers will only have access to their own Ampersand installations. @@ -128,7 +129,7 @@ app.post('/api/generate-jwt', async (req, res) => { This functionality is only available in `@amp-labs/react` version `2.8.7` and above. -In [AmpersandProvider](/embeddable-ui-components#credentials), instead of using the `apiKey` property, provide a `getToken` method that calls your backend to fetch a JWT token. The UI library will call it whenever it needs to generate a new token, or when the existing token expires. +In [AmpersandProvider](/embeddable-ui-components#ampersandprovider), instead of using the `apiKey` property, provide a `getToken` method that calls your backend to fetch a JWT token. The UI library will call it whenever it needs to generate a new token, or when the existing token expires. The `getToken` method must have the following type signature: diff --git a/src/cli/reference.mdx b/src/cli/reference.mdx index 0ce119a5..e12093f0 100644 --- a/src/cli/reference.mdx +++ b/src/cli/reference.mdx @@ -1,3 +1,8 @@ +--- +title: "CLI command reference" +description: "Ampersand CLI command reference covering global flags, authentication, project, integration, connection, and installation commands with usage examples." +--- + This section provides a detailed overview of the Ampersand CLI, including the available commands, their usage, and options. ## Usage @@ -34,7 +39,7 @@ This command would list integrations for the project "my-project" with debug log ## Authentication commands -These commands allow you to manage your session with the Ampersand CLI. Use these to log in to your Ampersand account before running other commands. As an alternative to logging in, you can also run commands using an API key. See [Running in CI/CD environments](/cli/overview#running-in-ci-cd-environments) for details. +These commands allow you to manage your session with the Ampersand CLI. Use these to log in to your Ampersand account before running other commands. As an alternative to logging in, you can also run commands using an API key. See [Running in CI/CD environments](/cli/overview#running-in-cicd-environments) for details. ### login diff --git a/src/customer-guides/gong.mdx b/src/customer-guides/gong.mdx index 60e44a25..7aec380b 100644 --- a/src/customer-guides/gong.mdx +++ b/src/customer-guides/gong.mdx @@ -1,5 +1,6 @@ --- title: Gong +description: "Set up Gong outbound webhooks to send call.created events to your Ampersand integration by creating an automation rule in Gong Admin Settings." --- ## Checklist before you start diff --git a/src/customer-guides/salesforce.mdx b/src/customer-guides/salesforce.mdx index 82790a35..e87c5809 100644 --- a/src/customer-guides/salesforce.mdx +++ b/src/customer-guides/salesforce.mdx @@ -1,5 +1,6 @@ --- title: "Salesforce" +description: "Set up a Salesforce org for an Ampersand integration: check API access, choose External Client App or Connected App, and grant user permissions." --- This guide helps you set up your Salesforce org to work with an Ampersand-powered integration. The steps differ depending on whether the integration uses an **External Client App** or a **Connected App**. If you're not sure which one you're using, ask the developer who built the integration. @@ -82,11 +83,13 @@ Ask the developer whether this integration uses an **External Client App** or a Pick one way to connect, then grant the permissions below. -**Required system permissions** (enable these on the profile or permission set you configure): +### Required system permissions + +The following system permissions need to be enabled the profile or permission set you configure, the sections below provides instructions on how to enable them. - **API Enabled** - If the integration includes real-time Subscribe Actions, also enable the [Subscribe Action permissions](#subscribe-action-permissions) -- If you want to enable quota optimization for this installation, also enable the [Quota optimization permissions](#quota-optimization-permissions) +- If the integration creates or updates custom fields, also enable the [custom field management permissions](#custom-field-management-permissions) - For Connected Apps only, also enable one of: - **Use Any API Client** (shown if your org has [API Access Control](https://help.salesforce.com/s/articleView?id=xcloud.security_api_access_control_about.htm&type=5) enabled) - **Approve Uninstalled Connected Apps** (if you do not see **Use Any API Client**) @@ -107,7 +110,7 @@ In **Setup**, search for **Profiles** in the **Quick Find** box and open it. The ![Edit profile](/images/customer-guides/SalesforceEditProfileRole.png) -3. Ensure the checkboxes for the required system permissions (listed above) are checked. +3. Ensure the checkboxes for the [required system permissions](#required-system-permissions) are checked. 4. Click **Save**. #### 2a. Field permissions for a standard profile @@ -199,7 +202,7 @@ Use a **Salesforce Integration** user when you want an API-only identity with no -2. Ensure the required system permissions (listed at the start of this section) are selected, then click **Save**. +2. Ensure the [required system permissions](#required-system-permissions) are selected, then click **Save**. @@ -271,6 +274,7 @@ If the integration includes Subscribe Actions, enable these permissions. Explicitly enable: +- **API Enabled** - allows the integration to make API calls - **Modify Metadata Through Metadata API Functions** — configure event channels and memberships through Metadata API - **Customize Application** — configure artifacts like Named Credentials so Ampersand can connect to event channels securely @@ -282,11 +286,14 @@ Salesforce auto-enables these dependent permissions when you enable the ones abo Enable these on the profile (Option A, step 1) or permission set (Option B, step 4) you configured above. -## Quota optimization permissions +## Custom field management permissions -Quota optimization also requires these additional permissions in addition to [Subscribe Action permissions](#subscribe-action-permissions). +If the integration creates or updates custom fields in your Salesforce instance, you will need to enable the following permissions: -- **Author Apex** — required to write and deploy an Apex trigger used by the optimization -- **Manage Profiles and Permission Sets** and **Assign Permission Sets** — required so the integration can create a dedicated permission set to manage field access and field-level security for a custom checkbox field +- **API Enabled** - allows the integration to make API calls +- **Modify Metadata Through Metadata API Functions** — allows the integration to call the Metadata API in order to modify custom fields +- **Customize Application** — allow the creation and update of custom fields +- **Manage Profiles and Permission Sets** - allows a new permission set to be created to give the current user permission to read from and write to the field +- **Assign Permission Sets** - allows the integration to assign the new permission set to the current user Enable these on the profile (Option A, step 1) or permission set (Option B, step 4) you configured above. diff --git a/src/customer-guides/zoho.mdx b/src/customer-guides/zoho.mdx index 8620b9d0..fff2adca 100644 --- a/src/customer-guides/zoho.mdx +++ b/src/customer-guides/zoho.mdx @@ -1,5 +1,6 @@ --- title: "Zoho" +description: "Prepare a Zoho account to install an Ampersand integration: activate Zoho CRM, pick the right user type, and set up Zoho Mail outgoing webhooks." --- ## Checklist before installing a Zoho integration diff --git a/src/destinations/azureservicebus.mdx b/src/destinations/azureservicebus.mdx new file mode 100644 index 00000000..ae7101b4 --- /dev/null +++ b/src/destinations/azureservicebus.mdx @@ -0,0 +1,48 @@ +--- +title: Azure Service Bus destinations +description: "Publish Read Actions and Subscribe Actions events from Ampersand to an Azure Service Bus queue or topic as JSON messages using a connection string." +--- + +For more information on destinations, see the [Destinations](/destinations) page. + +When new data is read from a SaaS instance via a [Read Action](/read-actions) or [Subscribe Action](/subscribe-actions), Ampersand publishes the payload as messages to your Azure Service Bus queue or topic. + +## Prerequisites + +Before setting up an Azure Service Bus destination, ensure that you have: +- An Azure Service Bus namespace with a queue or topic +- A connection string with `Send` permission on that queue or topic + +## Data format + +Ampersand publishes each read or subscribe message to your queue or topic as JSON. The full payload schema is defined in [webhook.yaml](https://github.com/amp-labs/openapi/blob/main/webhook/webhook.yaml). + +## Create an Azure Service Bus destination + +Go to the [Destinations page](https://dashboard.withampersand.com/projects/_/destinations) in the Ampersand Dashboard and create a new Azure Service Bus destination. + +You'll need to provide: + +| Field | Type | Required | Example | Description | +|-------|------|----------|---------|-------------| +| **Destination name** | string | Yes | `ampersandServiceBus` | Alias to reference in your `amp.yaml` file | +| **Name** | string | Yes | `ampersand-events` | Name of the queue or topic to publish to | +| **Connection string** | string | Yes | | Connection string with `Send` permission | + +## Refer to the destination in your integration + +After creating your Azure Service Bus destination, reference it in your `amp.yaml` file: + +```yaml +specVersion: 1.0.0 +integrations: + - name: salesforceToServiceBus + displayName: Salesforce to Azure Service Bus + provider: salesforce + read: + objects: + - objectName: account + destination: ampersandServiceBus + - objectName: contact + destination: ampersandServiceBus +``` diff --git a/src/destinations/bigquery.mdx b/src/destinations/bigquery.mdx index 198312e2..1502ad4d 100644 --- a/src/destinations/bigquery.mdx +++ b/src/destinations/bigquery.mdx @@ -1,5 +1,6 @@ --- title: BigQuery destinations +description: "Stream Read Actions and Subscribe Actions data from Ampersand to a BigQuery table using a service account and a fixed id/payload schema." --- For more information on destinations, see the [Destinations](/destinations) page. diff --git a/src/destinations/clickhouse.mdx b/src/destinations/clickhouse.mdx index 954b3bca..6262a1b5 100644 --- a/src/destinations/clickhouse.mdx +++ b/src/destinations/clickhouse.mdx @@ -1,5 +1,6 @@ --- title: ClickHouse destinations +description: "Stream Read Actions and Subscribe Actions data from Ampersand to a ClickHouse table where each top-level JSON field maps to its own column." --- For more information on destinations, see the [Destinations](/destinations) page. @@ -46,7 +47,7 @@ You'll need to provide: | **Username** | string | Yes | `default` | ClickHouse username | | **Password** | string | Yes | | ClickHouse password | | **Table name** | string | Yes | `ampersand_events` | Table to insert rows into | -| **Database** | string | No | `default` | Database containing the table | +| **Database** | string | Yes | `analytics` | Database containing the table | | **Batch size** | integer | No | `1000` | Rows to buffer before flushing a batch (defaults to 1000) | | **Max wait (seconds)** | integer | No | `30` | Max seconds to wait before flushing a batch (defaults to 30) | diff --git a/src/destinations/eventbridge.mdx b/src/destinations/eventbridge.mdx deleted file mode 100644 index 29212d2f..00000000 --- a/src/destinations/eventbridge.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Amazon EventBridge destinations ---- - -For more information on destinations, see the [Destinations](/destinations) page. - -When new data is read from a SaaS instance via a [Read Action](/read-actions) or [Subscribe Action](/subscribe-actions), Ampersand publishes the payload as events to your Amazon EventBridge event bus. - -## Prerequisites - -Before setting up an EventBridge destination, ensure that you have: -- An AWS account with an EventBridge event bus -- AWS credentials with `events:PutEvents` permission on that event bus - -## Data format - -Ampersand publishes each read or subscribe message to your event bus. The message payload is carried in the event's `detail` field, and its schema is defined in [webhook.yaml](https://github.com/amp-labs/openapi/blob/main/webhook/webhook.yaml). - -## Create an EventBridge destination - -Go to the [Destinations page](https://dashboard.withampersand.com/projects/_/destinations) in the Ampersand Dashboard and create a new EventBridge destination. - -You'll need to provide: - -| Field | Type | Required | Example | Description | -|-------|------|----------|---------|-------------| -| **Destination name** | string | Yes | `ampersandEventBridge` | Alias to reference in your `amp.yaml` file | -| **Event bus name** | string | Yes | `default` | Name of your EventBridge event bus | -| **Region** | string | Yes | `us-west-2` | AWS region where your event bus is located | -| **AWS Access Key ID** | string | Yes | `AKIAIOSFODNN7EXAMPLE` | AWS access key with `events:PutEvents` permission | -| **AWS Secret Access Key** | string | Yes | | AWS secret access key | -| **Detail type** | string | No | `ampersand.record` | Value to set as the EventBridge `detail-type` on published events | - -## Refer to the destination in your integration - -After creating your EventBridge destination, reference it in your `amp.yaml` file: - -```yaml -specVersion: 1.0.0 -integrations: - - name: salesforceToEventBridge - displayName: Salesforce to EventBridge - provider: salesforce - read: - objects: - - objectName: account - destination: ampersandEventBridge - - objectName: contact - destination: ampersandEventBridge -``` diff --git a/src/destinations/kinesis.mdx b/src/destinations/kinesis.mdx index 09280a74..935287ff 100644 --- a/src/destinations/kinesis.mdx +++ b/src/destinations/kinesis.mdx @@ -1,5 +1,6 @@ --- title: Kinesis destinations +description: "Stream Read Actions and Subscribe Actions events from Ampersand to an Amazon Kinesis data stream using AWS access keys with PutRecord permission." --- For more information on destinations, see the [Destinations](/destinations) page. diff --git a/src/destinations/overview.mdx b/src/destinations/overview.mdx index 208f472d..35d25067 100644 --- a/src/destinations/overview.mdx +++ b/src/destinations/overview.mdx @@ -1,8 +1,9 @@ --- title: Overview +description: "Route data from Read and Subscribe Actions or notifications to Slack, webhooks, warehouses, blob storage, and message queue destinations in Ampersand." --- -Ampersand supports webhook, Slack, Kinesis, and S3 destinations, along with a range of data warehouse and message queue destinations (ClickHouse, Snowflake, BigQuery, Redshift, Amazon SQS, Amazon SNS, Amazon EventBridge, Google Cloud Pub/Sub, and RabbitMQ). Destinations allow you to route data synced from SaaS instances via [Read Actions](/read-actions) or [Subscribe Actions](/subscribe-actions), and to receive real-time [Notifications](/notifications) about important lifecycle events in your projects. +Ampersand supports webhook and Slack destinations, S3, a range of data warehouse destinations (ClickHouse, Snowflake, BigQuery, and Redshift), and a range of stream and queue destinations (Kinesis, Amazon SQS, Google Cloud Pub/Sub, RabbitMQ, and Azure Service Bus). Destinations allow you to route data synced from SaaS instances via [Read Actions](/read-actions) or [Subscribe Actions](/subscribe-actions), and to receive real-time [Notifications](/notifications) about important lifecycle events in your projects. ## Add a destination to the Ampersand Dashboard @@ -48,14 +49,13 @@ Destinations can also be used to receive [notifications](/notifications) about i * [BigQuery destinations](/destinations/bigquery) * [Amazon Redshift destinations](/destinations/redshift) -### Message queues and event buses +### Streams and queues +* [Azure Service Bus destinations](/destinations/azureservicebus) * [Amazon Kinesis destinations](/destinations/kinesis) -* [Amazon SQS destinations](/destinations/sqs) -* [Amazon SNS destinations](/destinations/sns) -* [Amazon EventBridge destinations](/destinations/eventbridge) * [Google Cloud Pub/Sub destinations](/destinations/pubsub) * [RabbitMQ destinations](/destinations/rabbitmq) +* [Amazon SQS destinations](/destinations/sqs) ## Other Destinations @@ -63,4 +63,3 @@ We have more destination types on the roadmap, including: * Postgres * Ampersand-hosted Postgres -* Azure Service Bus diff --git a/src/destinations/pubsub.mdx b/src/destinations/pubsub.mdx index b79003dc..95d19024 100644 --- a/src/destinations/pubsub.mdx +++ b/src/destinations/pubsub.mdx @@ -1,5 +1,6 @@ --- title: Google Cloud Pub/Sub destinations +description: "Publish Read Actions and Subscribe Actions events from Ampersand to a Google Cloud Pub/Sub topic using a service account with publisher permissions." --- For more information on destinations, see the [Destinations](/destinations) page. diff --git a/src/destinations/rabbitmq.mdx b/src/destinations/rabbitmq.mdx index 9c873bb4..7fc6dcdf 100644 --- a/src/destinations/rabbitmq.mdx +++ b/src/destinations/rabbitmq.mdx @@ -1,5 +1,6 @@ --- title: RabbitMQ destinations +description: "Publish Read Actions and Subscribe Actions events from Ampersand to a RabbitMQ instance as JSON messages using a connection URI and a routing key." --- For more information on destinations, see the [Destinations](/destinations) page. @@ -10,12 +11,12 @@ When new data is read from a SaaS instance via a [Read Action](/read-actions) or Before setting up a RabbitMQ destination, ensure that you have: - A RabbitMQ instance reachable from the internet -- A connection URI with permission to publish -- A routing key that reaches a queue you can consume from +- An exchange that already exists on that instance +- A username and password with permission to publish to that exchange ## Data format -Ampersand publishes each read or subscribe message to your RabbitMQ instance as JSON, using the routing key you configure. The full payload schema is defined in [webhook.yaml](https://github.com/amp-labs/openapi/blob/main/webhook/webhook.yaml). +Ampersand publishes each read or subscribe message to your RabbitMQ exchange as JSON. The full payload schema is defined in [webhook.yaml](https://github.com/amp-labs/openapi/blob/main/webhook/webhook.yaml). ## Create a RabbitMQ destination @@ -26,8 +27,11 @@ You'll need to provide: | Field | Type | Required | Example | Description | |-------|------|----------|---------|-------------| | **Destination name** | string | Yes | `ampersandRabbitMQ` | Alias to reference in your `amp.yaml` file | -| **Connection URI** | string | Yes | `amqp://user:pass@host:5672` | AMQP connection URI (it embeds your credentials) | -| **Routing key** | string | Yes | `ampersand-events` | Routing key to publish messages with | +| **Server URL** | string | Yes | `rabbitmq.example.com:5672` | Host and port of your RabbitMQ instance | +| **Exchange** | string | Yes | `ampersand-events` | Name of an exchange that already exists | +| **TLS** | boolean | No | `false` | Whether to connect over TLS. Defaults to false (plain AMQP); set to true for managed brokers that require TLS, e.g. CloudAMQP | +| **Username** | string | Yes | `ampersand` | Username with permission to publish | +| **Password** | string | Yes | | Password for the username | ## Refer to the destination in your integration diff --git a/src/destinations/redshift.mdx b/src/destinations/redshift.mdx index 095a1e02..a90c3d7f 100644 --- a/src/destinations/redshift.mdx +++ b/src/destinations/redshift.mdx @@ -1,15 +1,16 @@ --- title: Amazon Redshift destinations +description: "Stream Read Actions and Subscribe Actions data from Ampersand to an Amazon Redshift table using a Workgroup or Cluster and AWS access keys." --- For more information on destinations, see the [Destinations](/destinations) page. -When new data is read from a SaaS instance via a [Read Action](/read-actions) or [Subscribe Action](/subscribe-actions), Ampersand inserts the payload as rows into your Amazon Redshift table. Both Redshift Serverless (via a workgroup) and provisioned clusters (via a cluster identifier) are supported. +When new data is read from a SaaS instance via a [Read Action](/read-actions) or [Subscribe Action](/subscribe-actions), Ampersand inserts the payload as rows into your Amazon Redshift table, delivered to a Redshift Serverless workgroup. ## Prerequisites Before setting up a Redshift destination, ensure that you have: -- An Amazon Redshift Serverless workgroup or a provisioned cluster +- An Amazon Redshift Serverless workgroup - A target database, and a table to insert into (see [Data format and table setup](#data-format-and-table-setup)) - AWS credentials with permission to run the Redshift Data API and insert into the target table @@ -38,19 +39,13 @@ You'll need to provide: | **Region** | string | Yes | `us-west-2` | AWS region where your Redshift resource lives | | **AWS Access Key ID** | string | Yes | `AKIAIOSFODNN7EXAMPLE` | AWS access key with Redshift Data API permissions | | **AWS Secret Access Key** | string | Yes | | AWS secret access key | -| **Database** | string | No | `dev` | Target database name | -| **Schema** | string | No | `public` | Target schema | -| **Table name** | string | No | `events` | Target table | -| **Workgroup name** | string | No* | `my-workgroup` | Redshift Serverless workgroup name | -| **Cluster identifier** | string | No* | `my-cluster` | Provisioned cluster identifier | -| **DB user** | string | No | `ampersand` | Database user (for provisioned clusters) | +| **Database** | string | Yes | `dev` | Target database name | +| **Schema** | string | Yes | `public` | Target schema | +| **Table name** | string | Yes | `events` | Target table | +| **Workgroup name** | string | Yes | `my-workgroup` | Redshift Serverless workgroup name | | **Batch size** | integer | No | `1000` | Rows to buffer before flushing a batch (defaults to 1000) | | **Max wait (seconds)** | integer | No | `30` | Max seconds to wait before flushing a batch (defaults to 30) | - -*Either **Workgroup name** or **Cluster identifier** is required. Provide a **workgroup name** for Redshift Serverless, or a **cluster identifier** (and **DB user**) for a provisioned cluster. - - ## Refer to the destination in your integration After creating your Redshift destination, reference it in your `amp.yaml` file: diff --git a/src/destinations/s3.mdx b/src/destinations/s3.mdx index c1d8f40c..7fff8fcd 100644 --- a/src/destinations/s3.mdx +++ b/src/destinations/s3.mdx @@ -1,5 +1,6 @@ --- title: Amazon S3 destinations +description: "Deliver Read Actions and Subscribe Actions payloads from Ampersand to an Amazon S3 bucket using an IAM user with s3:PutObject permissions." --- For more information on destinations, see the [Destinations](/destinations) page. diff --git a/src/destinations/slack.mdx b/src/destinations/slack.mdx index b09bee1d..b5cb3bb2 100644 --- a/src/destinations/slack.mdx +++ b/src/destinations/slack.mdx @@ -1,5 +1,6 @@ --- title: Slack destinations +description: "Send Ampersand notifications and read or subscribe payloads to a Slack channel with an incoming webhook, including size limits and setup steps." --- For more information on destinations, see the [Destinations](/destinations) page. diff --git a/src/destinations/snowflake.mdx b/src/destinations/snowflake.mdx index 9f62aef7..9b0a7017 100644 --- a/src/destinations/snowflake.mdx +++ b/src/destinations/snowflake.mdx @@ -1,5 +1,6 @@ --- title: Snowflake destinations +description: "Stream Read Actions and Subscribe Actions data from Ampersand to a Snowflake table using a user, private key, warehouse, and database credentials." --- For more information on destinations, see the [Destinations](/destinations) page. @@ -38,10 +39,10 @@ You'll need to provide: | **Destination name** | string | Yes | `ampersandSnowflake` | Alias to reference in your `amp.yaml` file | | **Account identifier** | string | Yes | `myorg-myaccount` | Your Snowflake account identifier | | **User ID** | string | Yes | `SVC_AMPERSAND` | Snowflake user configured for key-pair auth | -| **Private key** | string | Yes | | PEM-encoded RSA private key for that user | -| **Database** | string | No | `ANALYTICS` | Target database | -| **Schema** | string | No | `PUBLIC` | Target schema | -| **Table name** | string | No | `ampersand_events` | Target table | +| **Private key** | string | Yes | | Unencrypted **PKCS#8** PEM-encoded RSA private key for that user (headers `-----BEGIN PRIVATE KEY-----`). Convert a PKCS#1 key with `openssl pkcs8 -topk8 -nocrypt` | +| **Database** | string | Yes | `ANALYTICS` | Target database | +| **Schema** | string | Yes | `PUBLIC` | Target schema | +| **Table name** | string | Yes | `ampersand_events` | Target table | | **Batch size** | integer | No | `1000` | Rows to buffer before flushing a batch (defaults to 1000) | | **Max wait (seconds)** | integer | No | `30` | Max seconds to wait before flushing a batch (defaults to 30) | diff --git a/src/destinations/sns.mdx b/src/destinations/sns.mdx deleted file mode 100644 index e1f19851..00000000 --- a/src/destinations/sns.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Amazon SNS destinations ---- - -For more information on destinations, see the [Destinations](/destinations) page. - -When new data is read from a SaaS instance via a [Read Action](/read-actions) or [Subscribe Action](/subscribe-actions), Ampersand publishes the payload as messages to your Amazon SNS topic. - -## Prerequisites - -Before setting up an SNS destination, ensure that you have: -- An AWS account with an SNS topic -- AWS credentials with `sns:Publish` permission on that topic - -## Data format - -Ampersand publishes each read or subscribe message to your topic as JSON. The full payload schema is defined in [webhook.yaml](https://github.com/amp-labs/openapi/blob/main/webhook/webhook.yaml). - -## Create an SNS destination - -Go to the [Destinations page](https://dashboard.withampersand.com/projects/_/destinations) in the Ampersand Dashboard and create a new SNS destination. - -You'll need to provide: - -| Field | Type | Required | Example | Description | -|-------|------|----------|---------|-------------| -| **Destination name** | string | Yes | `ampersandSNS` | Alias to reference in your `amp.yaml` file | -| **Topic ARN** | string | Yes | `arn:aws:sns:us-east-1:123456789012:my-topic` | ARN of your SNS topic | -| **Region** | string | Yes | `us-west-2` | AWS region where your topic is located | -| **AWS Access Key ID** | string | Yes | `AKIAIOSFODNN7EXAMPLE` | AWS access key with `sns:Publish` permission | -| **AWS Secret Access Key** | string | Yes | | AWS secret access key | -| **Endpoint URL** | string | No | `https://sns.us-east-1.amazonaws.com` | Custom SNS endpoint if applicable | - -## Refer to the destination in your integration - -After creating your SNS destination, reference it in your `amp.yaml` file: - -```yaml -specVersion: 1.0.0 -integrations: - - name: salesforceToSNS - displayName: Salesforce to SNS - provider: salesforce - read: - objects: - - objectName: account - destination: ampersandSNS - - objectName: contact - destination: ampersandSNS -``` diff --git a/src/destinations/sqs.mdx b/src/destinations/sqs.mdx index bf7598d0..3d2650d6 100644 --- a/src/destinations/sqs.mdx +++ b/src/destinations/sqs.mdx @@ -1,5 +1,6 @@ --- title: Amazon SQS destinations +description: "Deliver Read Actions and Subscribe Actions events from Ampersand to an Amazon SQS queue using AWS access keys with SendMessage permission." --- For more information on destinations, see the [Destinations](/destinations) page. @@ -26,10 +27,8 @@ You'll need to provide: |-------|------|----------|---------|-------------| | **Destination name** | string | Yes | `ampersandSQS` | Alias to reference in your `amp.yaml` file | | **Queue URL** | string | Yes | `https://sqs.us-east-1.amazonaws.com/123456789012/my-queue` | URL of your SQS queue | -| **Region** | string | Yes | `us-west-2` | AWS region where your queue is located | | **AWS Access Key ID** | string | Yes | `AKIAIOSFODNN7EXAMPLE` | AWS access key with `sqs:SendMessage` permission | | **AWS Secret Access Key** | string | Yes | | AWS secret access key | -| **Endpoint URL** | string | No | `https://sqs.us-east-1.amazonaws.com` | Custom SQS endpoint if applicable | ## Refer to the destination in your integration diff --git a/src/destinations/webhooks.mdx b/src/destinations/webhooks.mdx index 879c63dc..a9aa4897 100644 --- a/src/destinations/webhooks.mdx +++ b/src/destinations/webhooks.mdx @@ -1,5 +1,6 @@ --- title: Webhook destinations +description: "Deliver Ampersand Read and Subscribe Actions to your webhook endpoint, including inline results, signed download URLs for large payloads, and retries." --- For more information on destinations, see the [Destinations](/destinations) page. @@ -255,7 +256,7 @@ If you are using the Node.js framework [Express](https://expressjs.com) in your ### Handling the message frequency -By default, Ampersand will send you at most 1000 webhook messages per second across all your destinations. If you wish the change this limit, please contact `support@withampersand.com`. Alternatively, you can set the delivery mode to [on request](/read-actions#on-request) to only get webhook messages when you request for them via an API call. +By default, Ampersand will send you at most 1000 webhook messages per second across all your destinations. If you wish the change this limit, please contact `support@withampersand.com`. Alternatively, you can set the delivery mode to [on request](/read-actions#on-request-deprecated) to only get webhook messages when you request for them via an API call. ## Webhook signature verification diff --git a/src/docs.json b/src/docs.json index 6e5af677..cfda2da1 100644 --- a/src/docs.json +++ b/src/docs.json @@ -75,13 +75,12 @@ ] }, { - "group": "Queues", + "group": "Streams and queues", "pages": [ - "destinations/eventbridge", + "destinations/azureservicebus", "destinations/kinesis", "destinations/pubsub", "destinations/rabbitmq", - "destinations/sns", "destinations/sqs" ] } @@ -114,6 +113,7 @@ "provider-guides/avoma", "provider-guides/aweber", "provider-guides/aws", + "provider-guides/basecamp", "provider-guides/bentley", "provider-guides/bigquery", "provider-guides/bird", @@ -125,9 +125,11 @@ "provider-guides/braintree", "provider-guides/braze", "provider-guides/breakcold", + "provider-guides/breezy", "provider-guides/brevo", "provider-guides/bynder", "provider-guides/calendly", + "provider-guides/callRail", "provider-guides/campaignMonitor", "provider-guides/capsule", "provider-guides/chargeOver", @@ -214,6 +216,7 @@ "provider-guides/linear", "provider-guides/linkedin", "provider-guides/livestorm", + "provider-guides/lob", "provider-guides/loxo", "provider-guides/mailgun", "provider-guides/marketo", @@ -223,6 +226,7 @@ "provider-guides/miro", "provider-guides/mixmax", "provider-guides/mixpanel", + "provider-guides/monaco", "provider-guides/monday", "provider-guides/mural", "provider-guides/netsuite", @@ -248,6 +252,7 @@ "provider-guides/ramp", "provider-guides/rebilly", "provider-guides/recurly", + "provider-guides/reply", "provider-guides/revenuecat", "provider-guides/ringCentral", "provider-guides/sageIntacct", @@ -316,6 +321,12 @@ "troubleshooting-guides/salesforce" ] }, + { + "group": "Security", + "pages": [ + "security/outgoing-ip-addresses" + ] + }, "dev-and-prod-environments", "terminology", "unified-api" diff --git a/src/embeddable-ui-components.mdx b/src/embeddable-ui-components.mdx index 2f55463e..1d3d71f7 100644 --- a/src/embeddable-ui-components.mdx +++ b/src/embeddable-ui-components.mdx @@ -1,5 +1,6 @@ --- title: "Prebuilt UI components" +description: "Embed Ampersand's React components with AmpersandProvider to let customers install integrations, connect providers, and manage installations in your app." --- ## Project setup @@ -182,7 +183,7 @@ When no installation exists, the wizard renders. If an installation already exis | [Field mappings](/object-and-field-mapping#field-mapping) | Yes | | [Object mappings](/object-and-field-mapping#object-mapping) | Yes | | [Value mappings](/object-and-field-mapping#mapping-values) | No | -| [Field mapping `default`](/object-and-field-mapping#field-mapping-2) | No | +| [Field mapping `default`](/object-and-field-mapping#field-mapping-1) | No | | [Dynamic field mappings](/object-and-field-mapping#dynamic-field-mappings) (`fieldMapping` prop) | No | ### Connect provider diff --git a/src/generate-docs.ts b/src/generate-docs.ts index 40a53080..28801093 100644 --- a/src/generate-docs.ts +++ b/src/generate-docs.ts @@ -306,13 +306,12 @@ const baseConfig = { ] }, { - group: "Queues", + group: "Streams and queues", pages: [ - "destinations/eventbridge", + "destinations/azureservicebus", "destinations/kinesis", "destinations/pubsub", "destinations/rabbitmq", - "destinations/sns", "destinations/sqs", ] } @@ -345,6 +344,7 @@ const baseConfig = { "provider-guides/avoma", "provider-guides/aweber", "provider-guides/aws", + "provider-guides/basecamp", "provider-guides/bentley", "provider-guides/bigquery", "provider-guides/bird", @@ -356,9 +356,11 @@ const baseConfig = { "provider-guides/braintree", "provider-guides/braze", "provider-guides/breakcold", + "provider-guides/breezy", "provider-guides/brevo", "provider-guides/bynder", "provider-guides/calendly", + "provider-guides/callRail", "provider-guides/campaignMonitor", "provider-guides/capsule", "provider-guides/chargeOver", @@ -446,6 +448,7 @@ const baseConfig = { "provider-guides/linear", "provider-guides/linkedin", "provider-guides/livestorm", + "provider-guides/lob", "provider-guides/loxo", "provider-guides/mailgun", "provider-guides/marketo", @@ -455,6 +458,7 @@ const baseConfig = { "provider-guides/miro", "provider-guides/mixmax", "provider-guides/mixpanel", + "provider-guides/monaco", "provider-guides/monday", "provider-guides/mural", "provider-guides/netsuite", @@ -480,6 +484,7 @@ const baseConfig = { "provider-guides/ramp", "provider-guides/rebilly", "provider-guides/recurly", + "provider-guides/reply", "provider-guides/revenuecat", "provider-guides/ringCentral", "provider-guides/sageIntacct", @@ -548,6 +553,12 @@ const baseConfig = { "troubleshooting-guides/salesforce" ] }, + { + group: "Security", + pages: [ + "security/outgoing-ip-addresses" + ] + }, "dev-and-prod-environments", "terminology", "unified-api", diff --git a/src/headless.mdx b/src/headless.mdx index d2f83c26..fe719915 100644 --- a/src/headless.mdx +++ b/src/headless.mdx @@ -1,5 +1,6 @@ --- title: Headless UI library +description: "Build custom integration UIs with @amp-labs/react headless hooks that manage connections, installations, and configuration inside AmpersandProvider." --- The Headless UI library is part of `@amp-labs/react` and provides a powerful foundation for managing connections and installations while giving you complete control over your UI implementation. This library is designed for developers who want to build custom user interfaces while leveraging robust connection, integration, and installation management capabilities. @@ -198,7 +199,7 @@ function ConfigDisplayComponent() { ``` -For more advanced config management: including getting/setting read/write objects in the config and managing a local draft copy, use the [`useLocalConfig()`](#config-management) hook. +For more advanced config management: including getting/setting read/write objects in the config and managing a local draft copy, use the [`useLocalConfig()`](#local-config-management) hook. ### Create, update, and delete installations @@ -728,7 +729,7 @@ The [headless demo app](https://github.com/amp-labs/demo-headless) uses a Salesf It uses the following headless hooks: - [useConnection](#connection-management): manage when to show [ConnectProvider](/embeddable-ui-components#connect-provider) - [useManifest](#get-manifest-and-field-metadata): manage objects and metadata -- [useConfig](#config-management): manage installation configuration state +- [useConfig](#local-config-management): manage installation configuration state - [useCreateInstallation, useUpdateInstallation, and useDeleteInstallation](#installation-management): manage installation lifecycle ### Demo app with write config diff --git a/src/images/provider-guides/88f33d5-slack2.gif b/src/images/provider-guides/88f33d5-slack2.gif index 0c92afb9..3b907e0f 100644 Binary files a/src/images/provider-guides/88f33d5-slack2.gif and b/src/images/provider-guides/88f33d5-slack2.gif differ diff --git a/src/images/provider-guides/reply-api-key.gif b/src/images/provider-guides/reply-api-key.gif new file mode 100644 index 00000000..39754c0d Binary files /dev/null and b/src/images/provider-guides/reply-api-key.gif differ diff --git a/src/manage-customer-schemas.mdx b/src/manage-customer-schemas.mdx index 9a6080ff..7fd40996 100644 --- a/src/manage-customer-schemas.mdx +++ b/src/manage-customer-schemas.mdx @@ -1,5 +1,6 @@ --- title: "Manage customer schemas" +description: "List, create, and update standard and custom fields in customer SaaS instances via the Ampersand headless useManifest hook or API endpoints." --- Ampersand helps you manage the schema of objects in your customer's SaaS instances by giving you the ability to: @@ -22,7 +23,7 @@ const { getCustomerFieldsForObject } = useManifest(); const fields = getCustomerFieldsForObject("account"); ``` -See the [headless UI library page](/headless#get-fields-from-customer’s-saas) for more details. +See the [headless UI library page](/headless#get-fields-from-customers-saas) for more details. ### Using API @@ -35,8 +36,6 @@ Both endpoints return field metadata such as field names, types, display names, ## Create or update custom fields - - You can programmatically create or update custom fields in your customer's SaaS instance using Ampersand's API. This is useful when you need to ensure specific custom fields exist before writing data to them. **Please note that only Salesforce and HubSpot support this feature at the moment.** Ampersand provides two endpoints for managing custom fields: @@ -50,6 +49,8 @@ Both endpoints accept field definitions that specify the field name, type, displ #### Salesforce +Please instruct your customers to provide the integration with adequate permissions, see [Salesforce customer guide](/customer-guides/salesforce#custom-field-management-permissions) for more details. + When creating custom fields in Salesforce, Ampersand automatically handles field permissions to ensure your integration can access the newly created fields: 1. **Permission Set**: Ampersand creates a managed Permission Set named `IntegrationCustomFieldVisibility` that grants read and edit access to custom fields diff --git a/src/manifest-reference.mdx b/src/manifest-reference.mdx index 5e18d4e3..b093cff9 100644 --- a/src/manifest-reference.mdx +++ b/src/manifest-reference.mdx @@ -1,6 +1,7 @@ --- title: "Manifest schema reference" sidebarTitle: "Manifest schema" +description: "Reference for the Ampersand amp.yaml manifest schema, including specVersion, integration definitions, and read, write, proxy, and subscribe fields." --- ## Introduction @@ -44,7 +45,7 @@ integrations: | Field | Type | Required | Description | |-------|------|----------|-------------| | `specVersion` | String | Yes | The version of the manifest specification. Format: `MAJOR.MINOR.PATCH`. Currently only `1.0.0` is supported. | -| `integrations` | Array | Yes | An array of [integration configurations](#integration-configuration). Each element defines a complete integration with a specific provider. | +| `integrations` | Array | Yes | An array of [integration configurations](#integration-definition). Each element defines a complete integration with a specific provider. | Notes @@ -209,6 +210,9 @@ Each object in the `objects` array defines a specific data type to read from the | `mapToName` | String | No | An optional name mapping for this object. Used to standardize object names across different providers. See [Object and Field Mapping](/object-and-field-mapping) for details. | | `mapToDisplayName` | String | No | An optional display name mapping for this object. Used for UI display. | +These fields control **which fields** are read. To control **which records** are read, use `fieldFilters`, which is set per-installation in the installation config rather than in `amp.yaml`. +> Learn more in [Field filters](#field-filters). + When configuring fields for a read object, keep these points in mind: @@ -312,12 +316,19 @@ Backfill Considerations - Setting `fullHistory: true` may result in longer initial sync times, especially for large datasets. - Some providers may have API rate limits that affect backfill performance. +- In the installation config, the `backfill` object accepts one additional key, `fieldFilters`, which restricts the records read during backfill. It is not available in `amp.yaml`. See [Field filters](#field-filters). - See [Read Actions backfill behavior](/read-actions#backfill-behavior) for detailed implementation guidance. +### Field filters + +Field filters restrict **which records** a read action returns, by matching against field values. Only matching records are read and delivered to your destination. + +Unlike every other field on this page, `fieldFilters` is **not part of the manifest schema** — it cannot be set in `amp.yaml`. It is set per-installation in the installation config, when creating or updating an installation via the [REST API](/reference/installation/create-a-new-installation) or Headless UI's [createInstallation method](/headless#create-update-and-delete-installations). See the linked documentation for more information. + ### Field -In [Read Actions](#read-actions), fields can be configured in two main ways - either using a simple `fieldName` reference or using a mapped field approach (`mapToName`, `mapToDisplayName`, `prompt`, `default`). This flexibility allows for both direct field references and more sophisticated field mapping options. +In [Read Actions](#read-definition), fields can be configured in two main ways - either using a simple `fieldName` reference or using a mapped field approach (`mapToName`, `mapToDisplayName`, `prompt`, `default`). This flexibility allows for both direct field references and more sophisticated field mapping options. > Learn more about [Object and Field Mapping](/object-and-field-mapping) and [Dynamic Field Mappings](/object-and-field-mapping#dynamic-field-mappings). **Simple Field Reference** @@ -338,7 +349,7 @@ This approach is best when: **Field Mapping** For more complex scenarios, you can use field mapping to standardize field names or prompt users for configuration. -> Learn more about [field mapping strategies](/object-and-field-mapping#field-mapping-strategies). +> Learn more about [field mapping strategies](/object-and-field-mapping). ```yaml # Predefined mapping (no user input required) diff --git a/src/notifications/notification-payloads.mdx b/src/notifications/notification-payloads.mdx index 898b7d70..f2ae07f0 100644 --- a/src/notifications/notification-payloads.mdx +++ b/src/notifications/notification-payloads.mdx @@ -1,5 +1,6 @@ --- title: Notification payloads +description: "Payload structure for Ampersand notifications delivered to webhook, Kinesis, and Amazon S3 destinations, including notificationType, data, and config fields." --- The payload structure depends on your destination type: @@ -373,6 +374,120 @@ Note: `error` describes what went wrong during the triggered read. Note: For partial failures, `success` is `false` with both `successfulRecordIds` and `errors` populated. + +**Webhook destination payload:** +```json +{ + "notificationType": "subscribe.create.success", + "data": { + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe" + } +} +``` + +**Kinesis destination payload:** +```json +{ + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe" +} +``` + + + + +**Webhook destination payload:** +```json +{ + "notificationType": "subscribe.update.success", + "data": { + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe" + } +} +``` + +**Kinesis destination payload:** +```json +{ + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe" +} +``` + + + + +**Webhook destination payload:** +```json +{ + "notificationType": "subscribe.delete.success", + "data": { + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe" + } +} +``` + +**Kinesis destination payload:** +```json +{ + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe" +} +``` + + + **Webhook destination payload:** ```json @@ -413,6 +528,86 @@ Note: For partial failures, `success` is `false` with both `successfulRecordIds` + +**Webhook destination payload:** +```json +{ + "notificationType": "subscribe.update.error", + "data": { + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe", + "error": "provider returned 403: insufficient access to EventChannelMember" + } +} +``` + +**Kinesis destination payload:** +```json +{ + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe", + "error": "provider returned 403: insufficient access to EventChannelMember" +} +``` + + + + +**Webhook destination payload:** +```json +{ + "notificationType": "subscribe.delete.error", + "data": { + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe", + "error": "provider unsubscribe failed after retries; the provider subscription may still be active" + } +} +``` + +**Kinesis destination payload:** +```json +{ + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe", + "error": "provider unsubscribe failed after retries; the provider subscription may still be active" +} +``` + + + `connection.created`, `connection.refreshed`, `connection.updated`, and `connection.deleted` share the same payload shape. `notificationType` reflects the specific event. @@ -505,5 +700,54 @@ Note: For partial failures, `success` is `false` with both `successfulRecordIds` } ``` + + +**Webhook destination payload:** +```json +{ + "notificationType": "destination.delivery.error", + "data": { + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe", + "destinationId": "2e8f4c1a-9b3d-4e7f-8a2c-0d1e2f3a4b5c", + "destinationName": "production-kinesis", + "objectName": "account", + "action": "subscribe", + "error": "Delivery to aws_kinesis destination exhausted retries after 3 attempts. ResourceNotFoundException: Stream not found." + } +} +``` + +**Kinesis and S3 destination payload:** +```json +{ + "projectId": "8f4a2b1c-3d5e-4f6a-9b0c-1d2e3f4a5b6c", + "provider": "salesforce", + "integrationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", + "integrationName": "Salesforce Integration", + "installationId": "a3bb189e-8bf9-3888-9912-ace4e6543002", + "connectionId": "c4e7f2a1-8b3d-4f6e-9a2c-5d1e3f4b6a7c", + "groupRef": "customer-group-ref", + "groupName": "Customer Name", + "consumerRef": "user-123", + "consumerName": "John Doe", + "destinationId": "2e8f4c1a-9b3d-4e7f-8a2c-0d1e2f3a4b5c", + "destinationName": "production-kinesis", + "objectName": "account", + "action": "subscribe", + "error": "Delivery to aws_kinesis destination exhausted retries after 3 attempts. ResourceNotFoundException: Stream not found." +} +``` + +Note: `action` is `read` or `subscribe`, and `error` describes why the final delivery attempt failed. When the destination is a webhook, the payload also includes its `url`. This notification is sent to the destinations configured for `destination.delivery.error`, which may or may not include the destination that failed. + diff --git a/src/notifications/overview.mdx b/src/notifications/overview.mdx index ed28fc94..a112e7af 100644 --- a/src/notifications/overview.mdx +++ b/src/notifications/overview.mdx @@ -1,5 +1,6 @@ --- title: Overview +description: "Subscribe to Ampersand lifecycle events such as installation, read, write, connection, and error notifications, and route them to your destinations." --- Ampersand notifications deliver real-time messages about important lifecycle changes in your project. They allow you to track when customers install, update, or delete integrations; when backfills complete; and when sync issues occur. @@ -31,7 +32,12 @@ Ampersand supports the following notification event types: - **`write.async.done`**: Fires when an asynchronous write operation completes, indicating success or failure and which records were written or had errors **Subscribe** +- **`subscribe.create.success`**: Fires when a subscription becomes active. For providers that Ampersand subscribes to programmatically, this is when the subscribe action is set up successfully; for providers whose webhooks are configured manually in the provider's UI, this is when the first event is delivered +- **`subscribe.update.success`**: Fires when an update to an existing subscribe action completes successfully +- **`subscribe.delete.success`**: Fires when a subscribe action is removed successfully, including tearing down the subscription on the provider's side - **`subscribe.create.error`**: Fires when Ampersand fails to set up a subscribe action for an installation +- **`subscribe.update.error`**: Fires when Ampersand fails to update an existing subscribe action for an installation +- **`subscribe.delete.error`**: Fires when a subscribe action is removed but Ampersand could not tear down the subscription on the provider's side, so it may still be active and continue to consume provider resources (for example, event or subscription quota). You may need to remove it manually in the provider **Connection** - **`connection.created`**: Fires when a new OAuth connection is established with a SaaS provider @@ -42,6 +48,7 @@ Ampersand supports the following notification event types: **Destination** - **`destination.webhook.disabled`**: Fires when a webhook destination endpoint is disabled. This can happen automatically after repeated failed delivery attempts. +- **`destination.delivery.error`**: Fires when Ampersand could not deliver read or subscribe results to a destination after all retry attempts were exhausted. This applies to every destination type (webhooks, Kinesis, S3, and other sinks). The payload identifies the destination, the installation and object whose data could not be delivered, and the error. ## Setting up notifications diff --git a/src/object-and-field-mapping.mdx b/src/object-and-field-mapping.mdx index cb50b952..160ce4c7 100644 --- a/src/object-and-field-mapping.mdx +++ b/src/object-and-field-mapping.mdx @@ -1,5 +1,6 @@ --- title: "Object and field mapping" +description: "Map provider objects and fields to unified labels in Ampersand, or let customers define their own mappings through the prebuilt UI components." --- Ampersand supports object mapping and field mapping. This allows you to either pre-define a set of mappings, or prompt your users to define their own mappings via Ampersand's UI components. @@ -12,7 +13,7 @@ You can map an object from a provider API to a label of your choice. This can he For example, if you map the `account` object from **Salesforce** and the `companies` object from **HubSpot** to a unified label like `company`, your read action results will be delivered under the object name of `company`. The original object name will still be available in the response's `rawObjectName` key. -If you wish to write data to `company`, you can [inherit the mapping](/write-actions#sharing-mappings-with-read-actions) from the read action. +If you wish to write data to `company`, you can [inherit the mapping](/write-actions#share-mappings-with-read-actions) from the read action. Here's an example of a Salesforce integration that maps the `account` object to `company`: diff --git a/src/platform.json b/src/platform.json index af2336a5..4df7bdf0 100644 --- a/src/platform.json +++ b/src/platform.json @@ -951,13 +951,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -990,13 +990,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -1014,13 +1014,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -13250,13 +13250,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -13431,13 +13431,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -13470,13 +13470,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -13494,13 +13494,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -15091,7 +15091,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -15113,6 +15113,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } }, @@ -15248,7 +15270,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -15892,6 +15914,7 @@ "default": "api:create-installation" }, "content": { + "description": "The content of the config.", "title": "Config Content", "allOf": [ { @@ -17312,7 +17335,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -17334,6 +17357,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } }, @@ -17469,7 +17514,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -17508,8 +17553,7 @@ } } } - ], - "description": "The content of the config." + ] } }, "description": "The config of the installation." @@ -17646,13 +17690,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -17827,13 +17871,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -17866,13 +17910,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -17890,13 +17934,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -19487,7 +19531,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -19509,6 +19553,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } }, @@ -19644,7 +19710,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -20580,13 +20646,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -20761,13 +20827,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -20800,13 +20866,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -20824,13 +20890,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -22421,7 +22487,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -22443,6 +22509,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } }, @@ -22578,7 +22666,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -23976,7 +24064,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -23998,6 +24086,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } } @@ -24102,13 +24212,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -24283,13 +24393,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -24322,13 +24432,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -24346,13 +24456,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -25943,7 +26053,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -25965,6 +26075,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } }, @@ -26100,7 +26232,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -27202,13 +27334,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -27383,13 +27515,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -27422,13 +27554,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -27446,13 +27578,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -29043,7 +29175,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -29065,6 +29197,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } }, @@ -29200,7 +29354,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -30499,13 +30653,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -30680,13 +30834,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -30719,13 +30873,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -30743,13 +30897,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -32340,7 +32494,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -32362,6 +32516,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } }, @@ -32497,7 +32673,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -35412,7 +35588,7 @@ "type": "string", "description": "The time the operation was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } } @@ -37093,7 +37269,7 @@ "type": "string", "description": "The time the operation was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -37365,7 +37541,7 @@ "timestamp": { "type": "string", "description": "The time the log was created.", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "message": { "type": "object", @@ -38450,6 +38626,12 @@ "description": "How many hours between proactive token keep-alive refreshes for this provider.\nToken-manager adds a random stagger offset on top. If absent, defaults to 24.\n", "example": 120, "x-go-type-skip-optional-pointer": true + }, + "scopeQueryParam": { + "type": "string", + "description": "The query parameter name used to pass OAuth scopes in the authorization URL.\nDefaults to \"scope\" when not specified. Some providers use a different\nparameter name, such as \"user_scope\" for Slack user scopes.\n", + "example": "user_scope", + "x-go-type-skip-optional-pointer": true } } }, @@ -40001,6 +40183,12 @@ "description": "How many hours between proactive token keep-alive refreshes for this provider.\nToken-manager adds a random stagger offset on top. If absent, defaults to 24.\n", "example": 120, "x-go-type-skip-optional-pointer": true + }, + "scopeQueryParam": { + "type": "string", + "description": "The query parameter name used to pass OAuth scopes in the authorization URL.\nDefaults to \"scope\" when not specified. Some providers use a different\nparameter name, such as \"user_scope\" for Slack user scopes.\n", + "example": "user_scope", + "x-go-type-skip-optional-pointer": true } } }, @@ -44694,13 +44882,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -44733,13 +44921,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -44757,13 +44945,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -45758,13 +45946,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -45797,13 +45985,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -45821,13 +46009,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -46953,13 +47141,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -46992,13 +47180,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -47016,13 +47204,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -48079,13 +48267,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -48118,13 +48306,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -48142,13 +48330,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -48971,7 +49159,7 @@ }, "type": { "type": "string", - "description": "The type of the destination. For `slack`, set `metadata.url` to a Slack incoming webhook URL. The warehouse and message-queue types (`clickhouse`, `snowflake`, `bigquery`, `redshift`, `sqs`, `sns`, `eventbridge`, `pubsub`, `rabbitmq`) are configured via the `metadata` and `secrets` fields documented below.", + "description": "The type of the destination. For `slack`, set `metadata.url` to a Slack incoming webhook URL. The warehouse and message-queue types (`clickhouse`, `snowflake`, `bigquery`, `redshift`, `sqs`, `pubsub`, `rabbitmq`, `azureservicebus`) are configured via the `metadata` and `secrets` fields documented below.", "example": "webhook", "enum": [ "webhook", @@ -48983,10 +49171,9 @@ "bigquery", "redshift", "sqs", - "sns", - "eventbridge", "pubsub", - "rabbitmq" + "rabbitmq", + "azureservicebus" ] }, "secrets": { @@ -48995,25 +49182,25 @@ "properties": { "awsKeyId": { "type": "string", - "description": "The AWS access key ID for the Kinesis or S3 destination.", + "description": "The AWS access key ID for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "AKIAIOSFODNN7EXAMPLE", "x-go-type-skip-optional-pointer": true }, "awsSecretKey": { "type": "string", - "description": "The AWS secret access key for the Kinesis or S3 destination.", + "description": "The AWS secret access key for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "x-go-type-skip-optional-pointer": true }, "awsSessionToken": { "type": "string", - "description": "The AWS session token for the Kinesis or S3 destination.", + "description": "The optional AWS session token for the `kinesis`, `s3`, and `sqs` destinations.", "example": "AQoEXAMPLEH4aoAH0gNCAPy...", "x-go-type-skip-optional-pointer": true }, "password": { "type": "string", - "description": "The password for the `clickhouse` destination.", + "description": "The password for the `clickhouse` and `rabbitmq` destinations. Required for `rabbitmq`.", "example": "my-clickhouse-password", "x-go-type-skip-optional-pointer": true }, @@ -49025,19 +49212,19 @@ }, "credentials": { "type": "string", - "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations.", + "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. Required for `pubsub`.", "example": "{\"type\":\"service_account\", ...}", "x-go-type-skip-optional-pointer": true }, "accessKeyId": { "type": "string", - "description": "The AWS access key ID for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS access key ID for the `redshift` destination.", "example": "AKIAIOSFODNN7EXAMPLE", "x-go-type-skip-optional-pointer": true }, "secretAccessKey": { "type": "string", - "description": "The AWS secret access key for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS secret access key for the `redshift` destination.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "x-go-type-skip-optional-pointer": true }, @@ -49047,10 +49234,16 @@ "example": "my-azure-access-key", "x-go-type-skip-optional-pointer": true }, - "uri": { + "username": { + "type": "string", + "description": "The username for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "ampersand", + "x-go-type-skip-optional-pointer": true + }, + "connectionString": { "type": "string", - "description": "The connection URI (embeds credentials) for the `rabbitmq` destination.", - "example": "amqp://user:pass@rabbit.example.com:5672", + "description": "The connection string for the `azureservicebus` destination. Required for `azureservicebus`.", + "example": "Endpoint=sb://my-namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=...", "x-go-type-skip-optional-pointer": true } } @@ -49090,13 +49283,13 @@ }, "endpointUrl": { "type": "string", - "description": "The endpoint URL for the Kinesis stream.", + "description": "The endpoint URL for the `kinesis` stream, or the optional custom endpoint URL for the `sqs` destination.", "example": "https://kinesis.us-east-1.amazonaws.com", "x-go-type-skip-optional-pointer": true }, "partitionKeyTemplate": { "type": "string", - "description": "The template for the partition key to use when sending events to Kinesis (a JMESPath template)", + "description": "The template for the partition key (a JMESPath template). Used by `kinesis`.", "example": "data.user_id", "x-go-type-skip-optional-pointer": true }, @@ -49162,7 +49355,7 @@ }, "projectId": { "type": "string", - "description": "The Google Cloud project ID (`bigquery`, `pubsub`).", + "description": "The Google Cloud project ID (`bigquery`, `pubsub`). Required for `pubsub`.", "example": "my-gcp-project", "x-go-type-skip-optional-pointer": true }, @@ -49210,38 +49403,38 @@ }, "queueUrl": { "type": "string", - "description": "The SQS queue URL for the `sqs` destination.", + "description": "The SQS queue URL for the `sqs` destination. Required for `sqs`.", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue", "x-go-type-skip-optional-pointer": true }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the `sns` destination.", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic", + "description": "The Pub/Sub topic ID for the `pubsub` destination. Required for `pubsub`.", + "example": "ampersand-events", "x-go-type-skip-optional-pointer": true }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the `eventbridge` destination.", - "example": "default", + "description": "The AMQP server URL for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "amqp://rabbit.example.com:5672", "x-go-type-skip-optional-pointer": true }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (`eventbridge`).", - "example": "ampersand.record", + "description": "The exchange to publish to for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "ampersand.events", "x-go-type-skip-optional-pointer": true }, - "topicId": { - "type": "string", - "description": "The Pub/Sub topic ID for the `pubsub` destination.", - "example": "ampersand-events", + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS. Optional for the `rabbitmq` destination.", + "example": true, "x-go-type-skip-optional-pointer": true }, - "routingKey": { + "name": { "type": "string", - "description": "The routing key for the `rabbitmq` destination.", - "example": "ampersand.events", + "description": "The queue or topic name for the `azureservicebus` destination. Required for `azureservicebus`.", + "example": "ampersand-events", "x-go-type-skip-optional-pointer": true }, "batchSize": { @@ -49424,30 +49617,30 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { - "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", - "example": "ampersand-events" + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq)", + "example": true }, - "routingKey": { + "name": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The queue or topic name for the azureservicebus destination", + "example": "ampersand-events" }, "batchSize": { "type": "integer", @@ -50443,30 +50636,30 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { - "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", - "example": "ampersand-events" + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq)", + "example": true }, - "routingKey": { + "name": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The queue or topic name for the azureservicebus destination", + "example": "ampersand-events" }, "batchSize": { "type": "integer", @@ -50845,30 +51038,30 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { - "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", - "example": "ampersand-events" + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq)", + "example": true }, - "routingKey": { + "name": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The queue or topic name for the azureservicebus destination", + "example": "ampersand-events" }, "batchSize": { "type": "integer", @@ -51411,7 +51604,7 @@ "items": { "type": "string" }, - "description": "Array of field paths specifying which fields to update. Allowed values include:\n- name\n- metadata.url\n- metadata.headers\n- metadata.region\n- metadata.streamName\n- metadata.endpointUrl\n- metadata.partitionKeyTemplate\n- metadata.bucket\n- metadata.keyTemplate\n- metadata.storageClass\n- metadata.username\n- metadata.tableName\n- metadata.database\n- metadata.accountIdentifier\n- metadata.userId\n- metadata.dbName\n- metadata.schemaName\n- metadata.projectId\n- metadata.datasetId\n- metadata.tableId\n- metadata.workgroupName\n- metadata.clusterIdentifier\n- metadata.dbUser\n- metadata.account\n- metadata.container\n- metadata.queueUrl\n- metadata.topicArn\n- metadata.eventBusName\n- metadata.detailType\n- metadata.topicId\n- metadata.routingKey\n- metadata.batchSize\n- metadata.maxWaitSecs\n- secrets.awsKeyId\n- secrets.awsSecretKey\n- secrets.awsSessionToken\n- secrets.password\n- secrets.privateKey\n- secrets.credentials\n- secrets.accessKeyId\n- secrets.secretAccessKey\n- secrets.accessKey\n- secrets.uri\n", + "description": "Array of field paths specifying which fields to update. Allowed values include:\n- name\n- metadata.url\n- metadata.headers\n- metadata.region\n- metadata.streamName\n- metadata.endpointUrl\n- metadata.partitionKeyTemplate\n- metadata.bucket\n- metadata.keyTemplate\n- metadata.storageClass\n- metadata.username\n- metadata.tableName\n- metadata.database\n- metadata.accountIdentifier\n- metadata.userId\n- metadata.dbName\n- metadata.schemaName\n- metadata.projectId\n- metadata.datasetId\n- metadata.tableId\n- metadata.workgroupName\n- metadata.clusterIdentifier\n- metadata.dbUser\n- metadata.account\n- metadata.container\n- metadata.queueUrl\n- metadata.topicId\n- metadata.serverUrl\n- metadata.exchange\n- metadata.tls\n- metadata.name\n- metadata.batchSize\n- metadata.maxWaitSecs\n- secrets.awsKeyId\n- secrets.awsSecretKey\n- secrets.awsSessionToken\n- secrets.password\n- secrets.privateKey\n- secrets.credentials\n- secrets.accessKeyId\n- secrets.secretAccessKey\n- secrets.accessKey\n- secrets.username\n- secrets.connectionString\n", "example": [ "name", "metadata.url", @@ -51460,12 +51653,12 @@ }, "endpointUrl": { "type": "string", - "description": "The endpoint URL for the Kinesis stream.", + "description": "The endpoint URL for the `kinesis` stream, or the optional custom endpoint URL for the `sqs` destination.", "example": "https://kinesis.us-east-1.amazonaws.com" }, "partitionKeyTemplate": { "type": "string", - "description": "The template for the partition key to use when sending events to Kinesis (a JMESPath template)", + "description": "The template for the partition key (a JMESPath template). Used by `kinesis`.", "example": "data.user_id" }, "bucket": { @@ -51520,7 +51713,7 @@ }, "projectId": { "type": "string", - "description": "The Google Cloud project ID (`bigquery`, `pubsub`).", + "description": "The Google Cloud project ID (`bigquery`, `pubsub`). Required for `pubsub`.", "example": "my-gcp-project" }, "datasetId": { @@ -51560,33 +51753,33 @@ }, "queueUrl": { "type": "string", - "description": "The SQS queue URL for the `sqs` destination.", + "description": "The SQS queue URL for the `sqs` destination. Required for `sqs`.", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the `sns` destination.", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the `pubsub` destination. Required for `pubsub`.", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the `eventbridge` destination.", - "example": "default" + "description": "The AMQP server URL for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (`eventbridge`).", - "example": "ampersand.record" + "description": "The exchange to publish to for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "ampersand.events" }, - "topicId": { - "type": "string", - "description": "The Pub/Sub topic ID for the `pubsub` destination.", - "example": "ampersand-events" + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS. Optional for the `rabbitmq` destination.", + "example": true }, - "routingKey": { + "name": { "type": "string", - "description": "The routing key for the `rabbitmq` destination.", - "example": "ampersand.events" + "description": "The queue or topic name for the `azureservicebus` destination. Required for `azureservicebus`.", + "example": "ampersand-events" }, "batchSize": { "type": "integer", @@ -51606,22 +51799,22 @@ "properties": { "awsKeyId": { "type": "string", - "description": "The AWS access key ID for the Kinesis or S3 destination.", + "description": "The AWS access key ID for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "AKIAIOSFODNN7EXAMPLE" }, "awsSecretKey": { "type": "string", - "description": "The AWS secret access key for the Kinesis or S3 destination.", + "description": "The AWS secret access key for the `kinesis`, `s3`, and `sqs` destinations. Required for `sqs`.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }, "awsSessionToken": { "type": "string", - "description": "The AWS session token for the Kinesis or S3 destination.", + "description": "The optional AWS session token for the `kinesis`, `s3`, and `sqs` destinations.", "example": "AQoEXAMPLEH4aoAH0gNCAPy..." }, "password": { "type": "string", - "description": "The password for the `clickhouse` destination.", + "description": "The password for the `clickhouse` and `rabbitmq` destinations. Required for `rabbitmq`.", "example": "my-clickhouse-password" }, "privateKey": { @@ -51631,17 +51824,17 @@ }, "credentials": { "type": "string", - "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations.", + "description": "The service-account credentials JSON for the `bigquery`, `gcs`, and `pubsub` destinations. Required for `pubsub`.", "example": "{\"type\":\"service_account\", ...}" }, "accessKeyId": { "type": "string", - "description": "The AWS access key ID for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS access key ID for the `redshift` destination.", "example": "AKIAIOSFODNN7EXAMPLE" }, "secretAccessKey": { "type": "string", - "description": "The AWS secret access key for the `redshift`, `sqs`, `sns`, and `eventbridge` destinations.", + "description": "The AWS secret access key for the `redshift` destination.", "example": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }, "accessKey": { @@ -51649,10 +51842,15 @@ "description": "The account access key for the `azureblob` destination.", "example": "my-azure-access-key" }, - "uri": { + "username": { + "type": "string", + "description": "The username for the `rabbitmq` destination. Required for `rabbitmq`.", + "example": "ampersand" + }, + "connectionString": { "type": "string", - "description": "The connection URI (embeds credentials) for the `rabbitmq` destination.", - "example": "amqp://user:pass@rabbit.example.com:5672" + "description": "The connection string for the `azureservicebus` destination. Required for `azureservicebus`.", + "example": "Endpoint=sb://my-namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=..." } } } @@ -51824,30 +52022,30 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { - "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", - "example": "ampersand-events" + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq)", + "example": true }, - "routingKey": { + "name": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The queue or topic name for the azureservicebus destination", + "example": "ampersand-events" }, "batchSize": { "type": "integer", @@ -61911,7 +62109,13 @@ "read.triggered.error", "write.async.done", "subscribe.create.error", - "destination.webhook.disabled" + "subscribe.update.error", + "subscribe.delete.error", + "subscribe.create.success", + "subscribe.update.success", + "subscribe.delete.success", + "destination.webhook.disabled", + "destination.delivery.error" ] }, "topicId": { @@ -61970,7 +62174,13 @@ "read.triggered.error", "write.async.done", "subscribe.create.error", - "destination.webhook.disabled" + "subscribe.update.error", + "subscribe.delete.error", + "subscribe.create.success", + "subscribe.update.success", + "subscribe.delete.success", + "destination.webhook.disabled", + "destination.delivery.error" ] }, "topicId": { @@ -62641,7 +62851,13 @@ "read.triggered.error", "write.async.done", "subscribe.create.error", - "destination.webhook.disabled" + "subscribe.update.error", + "subscribe.delete.error", + "subscribe.create.success", + "subscribe.update.success", + "subscribe.delete.success", + "destination.webhook.disabled", + "destination.delivery.error" ] } } @@ -62686,7 +62902,13 @@ "read.triggered.error", "write.async.done", "subscribe.create.error", - "destination.webhook.disabled" + "subscribe.update.error", + "subscribe.delete.error", + "subscribe.create.success", + "subscribe.update.success", + "subscribe.delete.success", + "destination.webhook.disabled", + "destination.delivery.error" ] }, "topicId": { @@ -69086,13 +69308,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -69125,13 +69347,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -69149,13 +69371,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -69496,30 +69718,30 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { - "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", - "example": "ampersand-events" + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq)", + "example": true }, - "routingKey": { + "name": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The queue or topic name for the azureservicebus destination", + "example": "ampersand-events" }, "batchSize": { "type": "integer", @@ -69702,30 +69924,30 @@ "description": "The SQS queue URL for the sqs destination", "example": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" }, - "topicArn": { + "topicId": { "type": "string", - "description": "The SNS topic ARN for the sns destination", - "example": "arn:aws:sns:us-east-1:123456789012:my-topic" + "description": "The Pub/Sub topic ID for the pubsub destination", + "example": "ampersand-events" }, - "eventBusName": { + "serverUrl": { "type": "string", - "description": "The EventBridge event bus name for the eventbridge destination", - "example": "default" + "description": "The AMQP server URL for the rabbitmq destination", + "example": "amqp://rabbit.example.com:5672" }, - "detailType": { + "exchange": { "type": "string", - "description": "The EventBridge detail-type for published events (eventbridge)", - "example": "ampersand.record" + "description": "The exchange to publish to for the rabbitmq destination", + "example": "ampersand.events" }, - "topicId": { - "type": "string", - "description": "The Pub/Sub topic ID for the pubsub destination", - "example": "ampersand-events" + "tls": { + "type": "boolean", + "description": "Whether to connect over TLS (rabbitmq)", + "example": true }, - "routingKey": { + "name": { "type": "string", - "description": "The routing key for the rabbitmq destination", - "example": "ampersand.events" + "description": "The queue or topic name for the azureservicebus destination", + "example": "ampersand-events" }, "batchSize": { "type": "integer", @@ -71596,13 +71818,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -71777,13 +71999,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -71816,13 +72038,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -71840,13 +72062,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -73437,7 +73659,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -73459,6 +73681,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } }, @@ -73594,7 +73838,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -75121,7 +75365,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -75143,6 +75387,28 @@ } } } + }, + "providerOptions": { + "title": "Subscribe Installation Provider Options", + "description": "Subscribe options that apply to the whole installation and only to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. For options that are set per object, see `subscribe.objects..providerOptions`.\n", + "type": "object", + "properties": { + "useSalesforceFlows": { + "title": "Use Salesforce Flows Config", + "description": "Opt this installation's Salesforce subscription into record-triggered flows and outbound messages instead of Change Data Capture. Delete events are not supported on this path. Defaults to false (CDC).\n", + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether this installation uses Salesforce record-triggered flows for subscribe.", + "example": true + } + } + } + } } } }, @@ -75278,7 +75544,7 @@ }, "providerOptions": { "title": "Subscribe Provider Options", - "description": "Subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected.\n", + "description": "Per-object subscribe options that only apply to certain providers. Each option documents which providers support it; setting one for a provider that does not support it is rejected. Options that apply to the whole subscription live on `subscribe.providerOptions` instead.\n", "type": "object", "properties": { "quotaOptimization": { @@ -75473,13 +75739,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -75512,13 +75778,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -75536,13 +75802,13 @@ "type": "string", "description": "The time the connection was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the connection was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "authScheme": { "type": "string", @@ -76474,13 +76740,13 @@ "type": "string", "description": "The time the group was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the group was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -76513,13 +76779,13 @@ "type": "string", "description": "The time the consumer was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "updateTime": { "type": "string", "description": "The time the consumer was last updated.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -76646,7 +76912,7 @@ "type": "string", "description": "The time the operation was created.", "format": "date-time", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" } } }, @@ -76706,7 +76972,7 @@ "timestamp": { "type": "string", "description": "The time the log was created.", - "example": "2023-07-13T21:34:44.816354Z" + "example": "2023-07-13T21:34:44.816Z" }, "message": { "type": "object", @@ -78285,7 +78551,13 @@ "read.triggered.error", "write.async.done", "subscribe.create.error", - "destination.webhook.disabled" + "subscribe.update.error", + "subscribe.delete.error", + "subscribe.create.success", + "subscribe.update.success", + "subscribe.delete.success", + "destination.webhook.disabled", + "destination.delivery.error" ] }, "topicId": { @@ -78326,7 +78598,13 @@ "read.triggered.error", "write.async.done", "subscribe.create.error", - "destination.webhook.disabled" + "subscribe.update.error", + "subscribe.delete.error", + "subscribe.create.success", + "subscribe.update.success", + "subscribe.delete.success", + "destination.webhook.disabled", + "destination.delivery.error" ] }, "TopicDestinationRoute": { diff --git a/src/provider-guides/accuLynx.mdx b/src/provider-guides/accuLynx.mdx index 0ba270d8..81557ebb 100644 --- a/src/provider-guides/accuLynx.mdx +++ b/src/provider-guides/accuLynx.mdx @@ -1,5 +1,6 @@ --- title: AccuLynx +description: "Connect AccuLynx to Ampersand using OAuth, then use read, write, subscribe, and proxy actions across jobs, contacts, estimates, and company settings." --- ## What's supported @@ -19,9 +20,9 @@ The AccuLynx connector supports the following objects: export const rows = [ { label: "acculynx/countries", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getacculynxcountries" }, - { label: "acculynx/units-of-measure", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getacculynxunitsofmeasure" }, + { label: "acculynx/units-of-measure", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getacculynxunitsofmeasure-1" }, { label: "calendars", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getcalendars" }, - { label: "calendars/appointments", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getcalendars" }, + { label: "calendars/appointments", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getappointments" }, { label: "company-settings/custom-fields", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getcompanysettingscustomfields" }, { label: "company-settings/job-file-settings/document-folders", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getcompanydocumentfolders" }, { label: "company-settings/job-file-settings/insurance-companies", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getinsurancecompanies" }, @@ -32,37 +33,38 @@ export const rows = [ { label: "company-settings/job-file-settings/workflow-milestones", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getmilestones" }, { label: "company-settings/leads/lead-sources", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getactiveleadsources" }, { label: "company-settings/location-settings/account-types", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getactiveaccounttypes" }, - { label: "contacts", read: true, write: true, subscribe: true, href: "https://apidocs.acculynx.com/reference/contacts" }, - { label: "contacts/contact-types", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/contacts" }, + { label: "contacts", read: true, write: true, subscribe: true, href: "https://apidocs.acculynx.com/reference/getcontacts" }, + { label: "contacts/contact-types", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getcontacttypes" }, { label: "contacts/custom-fields", read: true, write: true, subscribe: true, href: "https://apidocs.acculynx.com/reference/getcontactcustomfields" }, { label: "contacts/email-addresses", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getcontactemailaddresses" }, { label: "contacts/logs", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postcontactlog" }, - { label: "contacts/phone-numbers", read: true, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/contacts" }, - { label: "estimates", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/estimates" }, - { label: "estimates/sections", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/estimates" }, - { label: "jobs", read: true, write: true, subscribe: true, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/contacts", read: true, write: false, subscribe: true, href: "https://apidocs.acculynx.com/reference/getjobcontacts" }, - { label: "jobs/custom-fields", read: true, write: true, subscribe: true, href: "https://apidocs.acculynx.com/reference/getjobcustomfields" }, - { label: "jobs/estimates", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/external-references", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/history", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/initial-appointment", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/insurance/insurance-company", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/invoices", read: true, write: false, subscribe: true, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/messages", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/messages/replies", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/milestone-history", read: true, write: false, subscribe: true, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/payments/expense", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/payments/paid", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/payments/received", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/representatives", read: true, write: false, subscribe: true, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/representatives/ar-owner", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/representatives/company", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "jobs/representatives/sales-owner", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/jobs" }, - { label: "supplements", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/supplements" }, - { label: "supplements/items", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/supplements" }, - { label: "supplements/notations", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/supplements" }, - { label: "users", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/users" }, + { label: "contacts/phone-numbers", read: true, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/getcontactphonenumber" }, + { label: "estimates", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getestimates" }, + { label: "estimates/sections", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getestimatesections" }, + { label: "jobs*", read: true, write: true, subscribe: true, href: "https://apidocs.acculynx.com/reference/getjobs" }, + { label: "jobs/contacts**", read: true, write: false, subscribe: true, href: "https://apidocs.acculynx.com/reference/getjobcontacts" }, + { label: "jobs/custom-fields**", read: true, write: true, subscribe: true, href: "https://apidocs.acculynx.com/reference/getjobcustomfields" }, + { label: "jobs/estimates**", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getestimatesforjob" }, + { label: "jobs/external-references", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postcreatejobexternalreference" }, + { label: "jobs/financials**", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getfinancialsforjob" }, + { label: "jobs/history**", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getjobhistory" }, + { label: "jobs/initial-appointment", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/putinitialappointmentforjob" }, + { label: "jobs/insurance/insurance-company", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/putinsurancecompanyforjob" }, + { label: "jobs/invoices**", read: true, write: false, subscribe: true, href: "https://apidocs.acculynx.com/reference/getinvoicesforjob" }, + { label: "jobs/messages", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postcreatejobmessage" }, + { label: "jobs/messages/replies", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postreplyjobmessage" }, + { label: "jobs/milestone-history**", read: true, write: false, subscribe: true, href: "https://apidocs.acculynx.com/reference/getmilestonesforjob" }, + { label: "jobs/payments/expense", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postcreatepaymentadditionalexpense" }, + { label: "jobs/payments/paid", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postcreatepaymentpaid" }, + { label: "jobs/payments/received", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postcreatepaymentreceived" }, + { label: "jobs/representatives**", read: true, write: false, subscribe: true, href: "https://apidocs.acculynx.com/reference/getrepresentativesforjob" }, + { label: "jobs/representatives/ar-owner", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postarownerforjob" }, + { label: "jobs/representatives/company", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postcompanyrepresentativeforjob" }, + { label: "jobs/representatives/sales-owner", read: false, write: true, subscribe: false, href: "https://apidocs.acculynx.com/reference/postsalesownerforjob" }, + { label: "supplements", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getfinancialssupplementsforcompany" }, + { label: "supplements/items", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getfinancialssupplementitemcollection" }, + { label: "supplements/notations", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getfinancialssupplementnotationcollection" }, + { label: "users", read: true, write: false, subscribe: false, href: "https://apidocs.acculynx.com/reference/getusers" }, ] export const Check = () => @@ -114,6 +116,10 @@ export function renderCellValue(value) { +\* The connector will read all jobs - assigned and unassigned. + +\*\* For these objects, the connector will first enumerate all the jobs, and then list their children records. (e.g. For `jobs/financials`, the connector will first list all jobs, and then read the financials for all jobs.) + **Writes are limited by AccuLynx's API:** diff --git a/src/provider-guides/basecamp.mdx b/src/provider-guides/basecamp.mdx new file mode 100644 index 00000000..118a4278 --- /dev/null +++ b/src/provider-guides/basecamp.mdx @@ -0,0 +1,81 @@ +--- +title: "Basecamp" +description: "Connect Basecamp to Ampersand using OAuth via a 37signals Launchpad app, then call any Basecamp API endpoint through proxy actions with an account ID." +--- + +## What's supported + +### Supported actions + +This connector supports: + +- [Proxy Actions](/proxy-actions), using the base URL `https://3.basecampapi.com/{{.workspace}}`. + +### Supported objects + +Basecamp is supported through Proxy Actions only. Use the proxy to call any [Basecamp API](https://github.com/basecamp/bc3-api) endpoint, for example `GET /projects.json`. + +### Example integration + +To define an integration for Basecamp, create a manifest file that looks like this: + +```YAML +# amp.yaml +specVersion: 1.0.0 +integrations: + - name: basecampIntegration + displayName: My Basecamp Integration + provider: basecamp + proxy: + enabled: true +``` + +## Before you get started + +To integrate Basecamp with Ampersand, you will need a [Basecamp account](https://basecamp.com/). + +Once your account is created, you'll need to create a Basecamp app and obtain the following credentials from it: + +- Client ID +- Client Secret + +You will then use these credentials to connect your application to Ampersand. + +Every Basecamp API endpoint is prefixed with an account ID, which is the `{{.workspace}}` token in the base URL. Your customers find their account ID in their Basecamp URL: for example, if the URL is `https://app.basecamp.com/6258233/projects`, the account ID is `6258233`. Ampersand prompts your customers for this value when they install the integration. + +### Creating a Basecamp app + +1. Log in to the [37signals Launchpad integrations page](https://launchpad.37signals.com/integrations). +2. Click **Register another application**. +3. Enter a **Name**, **Company**, and **Website URL** for your app. +4. Set the **Redirect URI** to: `https://api.withampersand.com/callbacks/v1/oauth` +5. Under **Products**, select **Basecamp** (the current version, not Basecamp 2 or Basecamp Classic). +6. Click **Register this app**. +7. Open the app you registered and copy the **Client ID** and **Client Secret**. + +Learn more about Basecamp OAuth apps in the [Basecamp API authentication guide](https://github.com/basecamp/api/blob/master/sections/authentication.md). + +### Add your Basecamp app info to Ampersand + +1. Log in to your [Ampersand Dashboard](https://dashboard.withampersand.com). + +2. Select the project where you want to create a Basecamp integration. + + ![Ampersand Project Selection](/images/provider-guides/dd47b7a-Ampersand.png) + +3. Select **Provider Apps**. + +4. Select **Basecamp** from the **Provider** list. + +5. Enter the **Client ID** and **Client Secret** obtained from your Basecamp app. + +6. Click **Save Changes**. + +## Using the connector + +To start integrating with Basecamp: + +- Create a manifest file like the [example above](#example-integration). +- Deploy it using the [amp CLI](/cli/overview). +- Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for OAuth authorization and their Basecamp account ID. +- Start making [Proxy Calls](/proxy-actions), and Ampersand will automatically handle the authentication with Basecamp. diff --git a/src/provider-guides/breezy.mdx b/src/provider-guides/breezy.mdx new file mode 100644 index 00000000..28c64cdd --- /dev/null +++ b/src/provider-guides/breezy.mdx @@ -0,0 +1,144 @@ +--- +title: "Breezy" +description: "Connect Breezy HR to Ampersand using OAuth, read positions, candidates, companies, departments, and pipelines, and write to positions via the API." +--- + +## What's supported + +### Supported actions + +This connector supports: +- [Read Actions](/read-actions), including full historic backfill. Incremental read is supported for `positions` only. For all other objects, a full read will be done on each scheduled read. +- [Write Actions](/write-actions) (create/update) for `positions` only. +- [Proxy Actions](/proxy-actions), using the base URL `https://api.breezy.hr`. +- Subscribe Actions are not currently supported. + +### Supported objects + +export const rows = [ + { + label: "categories", read: true, write: false, subscribe: false, + href: "https://developer.breezy.hr/reference/company-pipelines-1-1", + }, { + label: "companies", read: true, write: false, subscribe: false, + href: "https://developer.breezy.hr/reference/companies", + }, { + label: "departments", read: true, write: false, subscribe: false, + href: "https://developer.breezy.hr/reference/company-pipelines-1", + }, { + label: "pipelines", read: true, write: false, subscribe: false, + href: "https://developer.breezy.hr/reference/company-pipelines", + }, { + label: "positions", read: true, write: true, subscribe: false, + href: "https://developer.breezy.hr/reference/company-positions", + }, { + label: "questionnaires", read: true, write: false, subscribe: false, + href: "https://developer.breezy.hr/reference/company-questionnaires", + }, { + label: "templates", read: true, write: false, subscribe: false, + href: "https://developer.breezy.hr/reference/company-templates", + }, +] + +export const Check = () => +export const Cross = () => 🚫 + +export function renderCellValue(value) { + if (typeof value === "boolean") { + return value ? : ; + } + + return value; +} + +
+ + + + + + + + + + + {[...rows] + .sort((a, b) => a.label.localeCompare(b.label)) + .map((row) => ( + + + + + + + ))} + +
ObjectReadWriteSubscribe
+ {row.label} + {renderCellValue(row.read)}{renderCellValue(row.write)}{renderCellValue(row.subscribe)}
+
+ +For objects and fields, you can also use Ampersand’s [Object Metadata APIs](/reference/objects-&-fields/get-object-metadata-via-connection) to inspect what’s available for a specific connection. + +### Notes and limitations + +- **Published vs draft positions**: Write **create** leaves new positions in **draft**. The `positions` Read object returns **published** job postings only. The connector does **not** auto-publish on create. When the customer is ready to go live, publish via [Proxy Actions](/proxy-actions): `PUT /v3/company/{company_id}/position/{position_id}/state` with `{"state":"published"}`. Until published, the job will not appear in Read webhooks. Publish is intentional — Breezy does not support unpublishing. +- **Incremental read**: Incremental read is supported for `positions` only (filtered by `updated_date`). Scheduled reads emit only positions updated since the last sync. `companies`, `pipelines`, `categories`, `departments`, `questionnaires`, and `templates` are read in full on each scheduled read. +- **Pipelines**: Breezy returns a map of pipeline id → pipeline object (e.g. `default`, `default_pool`). +- **API key expiry**: Breezy access tokens from `/v3/signin` expire after approximately 30 days. + +### Example integration + +To define an integration for Breezy, use a manifest file (`amp.yaml`). For a complete example, visit our [samples repo on Github](https://github.com/amp-labs/samples/blob/main/breezy/amp.yaml). + +## Before you get started + +To connect _Breezy_ with _Ampersand_, you will need [a Breezy account](https://breezy.hr/). + +Once your account is created, you'll need to obtain an **API Key** — a Breezy access token used as the `Authorization` header on API requests. + +Your customers enter this when they install the integration via the InstallIntegration UI. + +### Create a Breezy account + +Here's how you can sign up for a Breezy account: + +- Sign up at [Breezy](https://breezy.hr/). + +### Obtain API credentials + +Follow the steps below to obtain your API key from Breezy: + +1. Call Breezy's [sign-in endpoint](https://developer.breezy.hr/reference/signin) with a user that has API access. See [Authorization](https://developer.breezy.hr/reference/authorization). + + ```bash + curl -H "Content-Type: application/json" \ + -X POST \ + -d '{"email":"user@example.com","password":"YOUR_PASSWORD"}' \ + https://api.breezy.hr/v3/signin + ``` + + Use the `access_token` value from the response as the API key. + +## Using the connector + +This connector uses API Key auth, which means that you do not need to set up a Provider App before getting started. (Provider apps are only required for providers that use OAuth2 Authorization Code grant type.) + +The API key is sent in the `Authorization` header with no prefix, per [Breezy’s documentation](https://developer.breezy.hr/reference/authorization). + +To start integrating with Breezy: +- Create a manifest file; see [Example integration](#example-integration). +- Deploy it using the [amp CLI](/cli/overview). +- If you are using Read Actions, create a [destination](/destinations). +- Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for their API key. +- Start using the connector! + - If your integration has [Read Actions](/read-actions), you'll start getting webhook messages. + - If your integration has [Write Actions](/write-actions), you can start making API calls to our Write API. + - If your integration has [Proxy Actions](/proxy-actions), you can start making Proxy API calls. Ampersand will automatically attach the API key for the connected account. diff --git a/src/provider-guides/callRail.mdx b/src/provider-guides/callRail.mdx new file mode 100644 index 00000000..5def0fb4 --- /dev/null +++ b/src/provider-guides/callRail.mdx @@ -0,0 +1,143 @@ +--- +title: "CallRail" +description: "Connect CallRail to Ampersand with an API key, then use read, write, and proxy actions across calls, companies, form submissions, leads, and notifications." +--- + +## What's supported + +### Supported actions + +This connector supports: +- [Read Actions](/read-actions), including full historic backfill. Please note that incremental read is not supported, a full read of the CallRail instance will be done for each scheduled read. +- [Write Actions](/write-actions). +- [Proxy Actions](/proxy-actions), using the base URL `https://api.callrail.com`. +- Subscribe Actions are not currently supported. + +### Supported objects + +export const rows = [ + { + label: "caller_ids", read: "no", write: true, + href: "https://apidocs.callrail.com/#outbound-caller-ids", + }, { + label: "calls", read: true, write: true, + href: "https://apidocs.callrail.com/#calls", + },{ + label: "companies", read: true, write: true, + href: "https://apidocs.callrail.com/#companies", + }, { + label: "form_submissions", read: true, write: true, + href: "https://apidocs.callrail.com/#form-submissions", + }, { + label: "integration_triggers", read: "no", write: true, + href: "https://apidocs.callrail.com/#integration-filters", + }, { + label: "integrations", read: "no", write: true, + href: "https://apidocs.callrail.com/#integrations", + }, { + label: "leads", read: true, write: "no", + href: "https://apidocs.callrail.com/#leads", + }, { + label: "message-flows", read: true, write: true, + href: "https://apidocs.callrail.com/#message-flows", + }, { + label: "notifications", read: true, write: true, + href: "https://apidocs.callrail.com/#notifications", + }, { + label: "sms-threads", read: true, write: true, + href: "https://apidocs.callrail.com/#sms-threads", + }, { + label: "summary_emails", read: true, write: true, + href: "https://apidocs.callrail.com/#summary-emails", + }, { + label: "tags", read: true, write: true, + href: "https://apidocs.callrail.com/#tags", + }, { + label: "text-messages", read: true, write: true, + href: "https://apidocs.callrail.com/#text-messages", + }, { + label: "trackers", read: true, write: true, + href: "https://apidocs.callrail.com/#trackers", + }, { + label: "users", read: true, write: true, + href: "https://apidocs.callrail.com/#users", + }, +] + +export const Check = () => +export const Cross = () => 🚫 + +export function renderCellValue(value) { + if (value === true) { + return ; + } + + return ; +} + +
+ + + + + + + + + + {[...rows] + .sort((a, b) => a.label.localeCompare(b.label)) + .map((row) => ( + + + + + + ))} + +
ObjectReadWrite
+ {row.label} + {renderCellValue(row.read)}{renderCellValue(row.write)}
+
+ + +### Example integration + +For an example manifest file of a CallRail integration, visit our [samples repo on GitHub](https://github.com/amp-labs/samples/blob/main/callrail/amp.yaml). + +## Before you get started + +To connect CallRail with Ampersand, you will need a [CallRail account](https://www.callrail.com/). + +### Creating an API key for CallRail + +1. Log in to your [CallRail account](https://app.callrail.com/). +2. Go to **Account Settings**, then select **API Keys** under **Data Access**. +3. Select **Create New API v3 Key** and give the key a name. +4. Copy the key and store it somewhere secure — CallRail displays it only once. See [CallRail's API](https://support.callrail.com/hc/en-us/articles/5711821845389-CallRail-s-API) for more detail. + +Your customers enter this API key when they install the integration. Ampersand sends it as `Authorization: Token token=`, as described in [CallRail's Getting Started guide](https://apidocs.callrail.com/#getting-started). + +You do not need to collect an account ID from your customer. After the connection is created, Ampersand calls `GET /v3/a.json` and stores the account's numeric ID, then uses it in every request path. + +## Using the connector + +This connector uses API Key auth, which means that you do not need to set up a Provider App before getting started. (Provider apps are only required for providers that use OAuth2 Authorization Code grant type.) + +To start integrating with CallRail: + +- Create a manifest file like the [example above](#example-integration). +- Deploy it using the [amp CLI](/cli/overview). +- If you are using Read Actions, create a [destination](/destinations). +- Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for their API key. +- Start using the connector! + - If your integration has [Read Actions](/read-actions), you'll start getting webhook messages. + - If your integration has [Write Actions](/write-actions), you can start making API calls to our Write API. + - If your integration has [Proxy Actions](/proxy-actions), you can start making Proxy API calls. Note that CallRail paths include the account ID, for example `GET /v3/a/{account_id}/calls.json`. diff --git a/src/provider-guides/close.mdx b/src/provider-guides/close.mdx index d770e0db..1a44a19f 100644 --- a/src/provider-guides/close.mdx +++ b/src/provider-guides/close.mdx @@ -1,5 +1,6 @@ --- title: "Close" +description: "Connect Close CRM to Ampersand using OAuth, then use read, write, and proxy actions across leads, contacts, opportunities, activities, and pipelines." --- ## What's Supported @@ -72,7 +73,7 @@ For an example manifest file of a CloseCRM integration, visit our [samples repo ## Before You Get Started -To integrate Close with Ampersand, you need to [Create a Close Account](#create-a-close-crm-account) and obtain the following credentials from your Close App: +To integrate Close with Ampersand, you need to [Create a Close Account](#create-a-close-account) and obtain the following credentials from your Close App: - Client ID - Client Secret diff --git a/src/provider-guides/goTo.mdx b/src/provider-guides/goTo.mdx index 13b3785c..11594491 100644 --- a/src/provider-guides/goTo.mdx +++ b/src/provider-guides/goTo.mdx @@ -1,5 +1,6 @@ --- title: GoTo +description: "Connect GoTo to Ampersand using OAuth, then use read, write, and proxy actions across meetings, webinars, sessions, users, groups, and webhooks." --- ## What's supported diff --git a/src/provider-guides/gong.mdx b/src/provider-guides/gong.mdx index 9eaf1af8..98c2da39 100644 --- a/src/provider-guides/gong.mdx +++ b/src/provider-guides/gong.mdx @@ -1,5 +1,6 @@ --- title: "Gong" +description: "Connect Gong to Ampersand using OAuth, read calls and transcripts, and subscribe to call.created webhooks with special partner-app setup." slug: "gong" excerpt: "" hidden: false @@ -37,7 +38,7 @@ This connector supports: For an example manifest file of a Gong integration, visit our [samples repo on Github](https://github.com/amp-labs/samples/blob/main/gong/amp.yaml). -## Before You Get Started +## Before you get started To connect Gong with Ampersand, you must complete the [Gong partnership process](https://www.gong.io/partners/) and obtain a _Gong Sandbox_ environment. @@ -57,6 +58,12 @@ You will then use these credentials to connect your application to Ampersand. Learn more about the Gong Partnership process [here](https://help.gong.io/docs/how-to-use-the-gong-developers-hub). +### Allowlist Ampersand's IP addresses + +Gong is now requesting that the IP addresses making API calls on behalf of your app are added to an allowlist. Add [Ampersand's outgoing IP addresses](/security/outgoing-ip-addresses) to your Gong app's allowlist so that API requests made by Ampersand on behalf of your integration are not blocked: + +Learn more about how Gong restricts API access to trusted IP addresses in [Gong's API key documentation](https://help.gong.io/docs/receive-access-to-the-api). + ## Add Gong App Details in Ampersand 1. Log in to your [Ampersand Dashboard](https://dashboard.withampersand.com). diff --git a/src/provider-guides/housecallPro.mdx b/src/provider-guides/housecallPro.mdx index 93436696..38579d4a 100644 --- a/src/provider-guides/housecallPro.mdx +++ b/src/provider-guides/housecallPro.mdx @@ -1,5 +1,6 @@ --- title: Housecall Pro +description: "Connect Housecall Pro to Ampersand for read, write, proxy, and subscribe actions across customers, jobs, estimates, invoices, and webhook events." --- ## What's Supported diff --git a/src/provider-guides/lob.mdx b/src/provider-guides/lob.mdx new file mode 100644 index 00000000..2a6435db --- /dev/null +++ b/src/provider-guides/lob.mdx @@ -0,0 +1,146 @@ +--- +title: Lob +description: "Connect Lob to Ampersand with a Basic Auth API key, then use read, write, and proxy actions across addresses, letters, checks, campaigns, and cards." +--- +## What's supported + +### Supported actions + +This connector supports: +- [Read Actions](/read-actions), including full historic backfill and incremental read. +- [Write Actions](/write-actions). +- [Proxy Actions](/proxy-actions), using the base URL `https://api.lob.com`. + +The Lob connector supports reading from all standard objects and writing to most standard objects, including the following: + +export const rows = [ + { + label: "addresses", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Addresses/operation/addresses_list" + }, { + label: "bank_accounts", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Bank-Accounts/operation/bank_accounts_list" + }, { + label: "billing_groups", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Billing-Groups/operation/billing_groups_list" + }, { + label: "booklets", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Booklets/operation/booklets_list" + }, { + label: "buckslips", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Buckslips/operation/buckslips_list" + }, { + label: "campaigns", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Campaigns/operation/campaigns_list" + }, { + label: "cards", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Cards/operation/cards_list" + }, { + label: "checks", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Checks/operation/checks_list" + }, { + label: "domains", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/URL-Shortener/operation/domain_list" + }, { + label: "informed_delivery_campaigns", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Informed-Delivery-Campaign/operation/informed_delivery_campaign_list" + }, { + label: "letters", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Letters/operation/letters_list" + }, { + label: "links", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/URL-Shortener/operation/links_list" + }, { + label: "postcards", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Postcards/operation/postcards_list" + }, { + label: "self_mailers", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Self-Mailers/operation/self_mailers_list" + }, { + label: "snap_packs", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Snap-Packs/operation/snap_packs_list" + }, { + label: "templates", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Templates/operation/templates_list" + }, { + label: "uploads", read: true, write: true, subscribe: false, + href: "https://docs.lob.com/#tag/Uploads/operation/uploads_list" + } +] + +export const Check = () => +export const Cross = () => 🚫 + +export function renderCellValue(value) { + if (typeof value === "boolean") { + return value ? : ; + } + + if (typeof value === "string" && value.startsWith("<")) { + return ; + } + + return value; +} + +
+ + + + + + + + + + + {[...rows] + .sort((a, b) => a.label.localeCompare(b.label)) + .map((row) => ( + + + + + + + ))} + +
ObjectReadWriteSubscribe
+ {row.label} + {renderCellValue(row.read)}{renderCellValue(row.write)}{renderCellValue(row.subscribe)}
+
+ +### Example integration + +For an example manifest file of a Lob integration, visit our [samples repo on Github](https://github.com/amp-labs/samples/blob/main/lob/amp.yaml). + +## Using the connector + +This connector uses Basic Auth, which means that you do not need to set up a Provider App before getting started. (Provider apps are only required for providers that use OAuth2 Authorization Code grant type.) + +To start integrating with Lob: +- Create a manifest file like the example above. +- Deploy it using the [amp CLI](/cli/overview). +- Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for their username and password. +- Start making [Proxy Calls](/proxy-actions), and Ampersand will automatically attach the correct header required by Basic Auth. Please note that this connector's base URL is `https://api.lob.com`. + +## Credential format for Lob + +Lob uses HTTP Basic Authentication with a non-standard credential format. +The fields in the installation UI do not correspond to a Lob account email address and password. Instead: +- **Username**: Enter the Lob API key from the [Lob Dashboard API key settings](https://dashboard.lob.com/settings/api-keys). +- **Password**: Leave this field empty. + +When making proxy calls, Ampersand encodes these values as a Basic Auth header and attaches it automatically. +Choose the API key appropriate for the environment you are integrating with. For example, choose +a **test key** for Lob’s test environment and a **live key** for production use. + +For more detail, see [Lob's authentication documentation](https://docs.lob.com/#tag/Authentication) +and [API key documentation](https://docs.lob.com/#tag/Authentication/API-Keys). diff --git a/src/provider-guides/monaco.mdx b/src/provider-guides/monaco.mdx new file mode 100644 index 00000000..e8fbcda0 --- /dev/null +++ b/src/provider-guides/monaco.mdx @@ -0,0 +1,43 @@ +--- +title: Monaco +description: "Connect Monaco to Ampersand with an API key and call any Monaco API endpoint through proxy actions, with the API key attached automatically to every request." +--- +## What's supported + +### Supported actions + +This connector supports: +- [Proxy Actions](/proxy-actions), using the base URL `https://api.monaco.com`. + +### Example integration + +To define an integration for Monaco, create a manifest file that looks like this: + +```YAML +# amp.yaml +specVersion: 1.0.0 +integrations: + - name: monaco-integration + displayName: My Monaco Integration + provider: monaco + proxy: + enabled: true +``` + +## Using the connector + +This connector uses API Key auth, which means that you do not need to set up a Provider App before getting started. (Provider apps are only required for providers that use OAuth2 Authorization Code grant type.) + +To start integrating with Monaco: +- Create a manifest file like the example above. +- Deploy it using the [amp CLI](/cli/overview). +- Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for an API key. +- Start making [Proxy Calls](/proxy-actions), and Ampersand will automatically attach the API key supplied by the customer. Please note that this connector's base URL is `https://api.monaco.com`. + +## Creating an API key for Monaco + +1. Log in to your Monaco account. +2. Navigate to **Settings** and select **API Keys**. +3. Create a new key and copy its value. Monaco API keys are prefixed with `mks_`. + +[Click here](https://docs.monaco.com/auth) for more information about generating an API key for Monaco. The UI components will display this link, so that your users can successfully create API keys. diff --git a/src/provider-guides/pipedrive.mdx b/src/provider-guides/pipedrive.mdx index 4c887af9..a1a6bca7 100644 --- a/src/provider-guides/pipedrive.mdx +++ b/src/provider-guides/pipedrive.mdx @@ -1,5 +1,6 @@ --- title: "Pipedrive" +description: "Connect Pipedrive to Ampersand using OAuth, choose the CRM v2 or legacy v1 API module, and use read, write, and proxy actions across deals and persons." slug: "pipedrive" excerpt: "" hidden: false @@ -13,11 +14,11 @@ updatedAt: "Mon Jul 15 2024 15:56:36 GMT+0000 (Coordinated Universal Time)" This connector supports: -- [Read Actions](/read-actions) including full historic backfill. Incremental read is supported for select objects using the v2 API (see [v2 API Objects](#v2-api-objects) below). For all other objects, a full read of the Pipedrive instance will be done for each scheduled read. +- [Read Actions](/read-actions) including full historic backfill. Incremental read is supported for select objects using the v2 API (see [v2 API Objects](#supported-objects-for-v2-api) below). For all other objects, a full read of the Pipedrive instance will be done for each scheduled read. - [Write Actions](/write-actions) - [Proxy Actions](/proxy-actions), using the base URL `https://api.pipedrive.com`. -Pipedrive has a v1 and v2 API, if you would like to opt into the v2 API, then add `module: crm` to your amp.yaml file. Otherwise, v1 API is used. You can learn more about the difference between v1 and v2 API in [Pipedrive documentation](https://pipedrive.readme.io/docs/pipedrive-api-v2-migration-guide). +Pipedrive has a v1 and v2 API, if you would like to opt into the v2 API, then add `module: crm` to your amp.yaml file. If you would like to use v1 API, add `module: legacy` to your amp.yaml file. If you do not specify a module, v1 API is used. You can learn more about the difference between v1 and v2 API in [Pipedrive documentation](https://pipedrive.readme.io/docs/pipedrive-api-v2-migration-guide). ```yaml specVersion: 1.0.0 @@ -83,6 +84,7 @@ The Pipedrive connector supports reading from the following objects using the v1 - [Lead Labels](https://developers.pipedrive.com/docs/api/v1/LeadLabels#getLeadLabels) - [Lead Sources](https://developers.pipedrive.com/docs/api/v1/LeadSources#getLeadSources) - [LegacyTeams](https://developers.pipedrive.com/docs/api/v1/LegacyTeams#getTeams) +- [Mail Threads](https://developers.pipedrive.com/docs/api/v1/Mailbox#getMailThreads) (use `mailThreads` in amp.yaml, no incremental read) - [Notes](https://developers.pipedrive.com/docs/api/v1/Notes#getNotes) - [Note Fields](https://developers.pipedrive.com/docs/api/v1/NoteFields#getNoteFields) - [Organizations](https://developers.pipedrive.com/docs/api/v1/Organizations#getOrganizations) diff --git a/src/provider-guides/reply.mdx b/src/provider-guides/reply.mdx new file mode 100644 index 00000000..b60c943a --- /dev/null +++ b/src/provider-guides/reply.mdx @@ -0,0 +1,55 @@ +--- +title: "Reply" +description: "Connect Reply.io to Ampersand with an API key, then call any Reply API endpoint through proxy actions with your permissioned key attached to each request." +--- + +## What's supported + +### Supported actions + +This connector supports: + +- [Proxy Actions](/proxy-actions), using the base URL `https://api.reply.io`. + +### Example integration + +To define an integration for Reply, create a manifest file that looks like this: + +```YAML +# amp.yaml +specVersion: 1.0.0 +integrations: + - name: replyIntegration + displayName: My Reply Integration + provider: reply + proxy: + enabled: true +``` + +## Before you get started + +To connect Reply with Ampersand, you will need a [Reply account](https://reply.io/). Reply offers a free trial that includes API access. + +### Creating an API key for Reply + +1. Sign in to your [Reply account](https://run.reply.io). +2. Go to **Settings**, then select **API keys**. +3. Click **Create My API key** and enter a descriptive name for the key. +4. Leave the expiration date empty for a key that never expires, or set a date to make the key expire. +5. Set the permission sliders to cover the scopes that your integration needs. The sliders default to **None**, and a key created without permissions returns `401 Unauthorized` on every request. +6. Click **Create key**, then copy the key. + +![Creating a Reply API key](/images/provider-guides/reply-api-key.gif) + +[Click here](https://docs.reply.io/api-reference/authentication) for more information about generating an API key for Reply. The UI components will display this link, so that your users can successfully create API keys. + +## Using the connector + +This connector uses API Key auth, which means that you do not need to set up a Provider App before getting started. (Provider apps are only required for providers that use OAuth2 Authorization Code grant type.) + +To start integrating with Reply: + +- Create a manifest file like the [example above](#example-integration). +- Deploy it using the [amp CLI](/cli/overview). +- Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for their API key. +- Start making [Proxy Calls](/proxy-actions), and Ampersand will automatically attach the correct header required by API Key auth. Please note that this connector's base URL is `https://api.reply.io`. diff --git a/src/provider-guides/salesforce.mdx b/src/provider-guides/salesforce.mdx index 1c3b883e..18cd081a 100644 --- a/src/provider-guides/salesforce.mdx +++ b/src/provider-guides/salesforce.mdx @@ -1,5 +1,6 @@ --- title: "Salesforce" +description: "Connect Salesforce CRM and Account Engagement to Ampersand using OAuth, then use read, write, proxy, and subscribe actions across CRM objects." --- The Salesforce connector supports: @@ -15,7 +16,7 @@ This connector has two modules, with CRM as the default. The **CRM** module supports: - [Proxy Actions](/proxy-actions), using the base URL `https://{{.workspace}}.my.salesforce.com`. - [Read Actions](/read-actions), including full historic backfill, incremental read, and filters. -- [Subscribe Actions](/subscribe-actions). See [Quota optimization for Subscribe Actions](#quota-optimization-for-subscribe-actions) to reduce CDC / platform event quota usage. +- [Subscribe Actions](/subscribe-actions). - [Write Actions](/write-actions), including Bulk Write and Delete. The **Account Engagement** module supports: @@ -375,7 +376,7 @@ The UI library will not prompt your users to install the package, you must indep ## Migrating Connected App to External Client App -Salesforce no longer supports the creation of new Connected Apps. If you had previously created a Connected App to be used for Ampersand integrations, it will continue to work for your existing and new customers as long as their user profile has the `Approve Uninstalled Connected Apps` or `Use Any API Client` permissions. See [Salesforce customer guide](/customer-guides/salesforce#1-view-and-edit-permissions-for-profile) for details. +Salesforce no longer supports the creation of new Connected Apps. If you had previously created a Connected App to be used for Ampersand integrations, it will continue to work for your existing and new customers as long as their user profile has the `Approve Uninstalled Connected Apps` or `Use Any API Client` permissions. See [Salesforce customer guide](/customer-guides/salesforce#required-system-permissions) for details. Whenever you would like to, you can follow these steps to migrate a Connected App to an External Client App: @@ -431,92 +432,6 @@ To start integrating with Salesforce: - If your integration has [Write Actions](/write-actions), you can start making API calls to our Write API. - If your integration has [Proxy Actions](/proxy-actions), you can start making Proxy API calls. -## Quota optimization for Subscribe Actions - -Quota optimization is an opt-in feature for [Subscribe actions](/subscribe-actions). It limits update events to the fields you care about, so irrelevant changes are filtered out at the source and do not count against Salesforce's shared [daily delivery allocation for Change Data Capture (CDC) and platform events](https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_allocations.htm) (`DailyDeliveredPlatformEvents`) — a rolling 24-hour limit on how many events can be delivered to API subscribers. - -### How it works - -Salesforce CDC does not natively support fine-grained field-level filtering in a way that avoids using that allocation. Ampersand adds an optimization layer on each opted-in object: - -1. A custom checkbox field is created on the object. -2. An Apex trigger is created that sets this field when a watched field changes. -3. CDC is configured to emit events only when this checkbox field is `true`. - -As a result, update events are delivered only when meaningful changes occur. - -### What is created in Salesforce - -When quota optimization is enabled for an object, Ampersand creates the following artifacts in the customer's Salesforce org: - -**Custom checkbox field** - -- API name: `_cdc_event_flag__c` -- `` is your Ampersand [project](/terminology#project) `appName`, sanitized for Salesforce: lowercased, special characters removed, spaces and hyphens replaced with underscores. - -![Custom checkbox field in Salesforce Object Manager Fields & Relationships](/images/account_checkbox.png) - -**Apex trigger** - -- Name format: `CDC_` (for example, `CDC_Account`) - -![Apex triggers in Salesforce Setup](/images/apex_triggers.png) - -You can verify these artifacts in Salesforce Setup after the installation (or installation update) completes. Subscription setup usually takes 1–2 minutes, and sometimes up to 10 minutes. - -### Permissions - -The installing user needs these permissions beyond the usual [Subscribe Action permissions](/customer-guides/salesforce#subscribe-action-permissions): - -- **Author Apex** — so Ampersand can write and deploy the Apex trigger -- **Manage Profiles and Permission Sets** and **Assign Permission Sets** — so Ampersand can create a dedicated permission set for checkbox field access and field-level security - -Share the [Quota optimization permissions](/customer-guides/salesforce#quota-optimization-permissions) section of the Salesforce customer guide so they can grant these before installing or updating. - -### Configuration - -Enable quota optimization per object in the installation config when you [create](/reference/installation/create-a-new-installation) or [update](/reference/installation/update-an-installation) an installation. Set `providerOptions.quotaOptimization.enabled` to `true` on the subscribe object. - -Requirements: - -- A [Read action](/read-actions) must be defined for the same object, with `inheritFieldsAndMapping: true` (required for Salesforce subscribe) -- `updateEvent.enabled` must be `always` -- `updateEvent.requiredWatchFields` must be non-empty and include every field you want to watch. With quota optimization enabled, only changes to these fields produce Subscribe update events; changes to other fields are filtered out at the source and are not delivered. -- Do not use `updateEvent.watchFieldsAuto: all` with quota optimization - -Here is a sample request body for the [Create Installation API](/reference/installation/create-a-new-installation): - -```Javascript -{ - "groupRef": "customer-group-ref", - "connectionId": "connection-id", - "config": { - "revisionId": "revision-id", - "content": { - "provider": "salesforce", - "subscribe": { - "objects": { - "account": { - "objectName": "account", - "destination": "accountWebhook", - "inheritFieldsAndMappings": true, - "updateEvent": { - "enabled": "always", - "requiredWatchFields": ["name", "billingcity", "phone"] - }, - "providerOptions": { - "quotaOptimization": { - "enabled": true - } - } - } - } - } - } - } -} -``` - ## Customer guide The [Salesforce customer guide](/customer-guides/salesforce) is a guide that can be shared with your customers to help them be successful in using your integration. diff --git a/src/provider-guides/sendGrid.mdx b/src/provider-guides/sendGrid.mdx index 8a9a496b..2371ab5f 100644 --- a/src/provider-guides/sendGrid.mdx +++ b/src/provider-guides/sendGrid.mdx @@ -1,5 +1,6 @@ --- title: "SendGrid" +description: "Connect SendGrid to Ampersand with an API key, then use read, write, and proxy actions across contacts, lists, templates, senders, and suppressions." --- ## What's supported diff --git a/src/provider-guides/slack.mdx b/src/provider-guides/slack.mdx index ac306ea2..b19d6df3 100644 --- a/src/provider-guides/slack.mdx +++ b/src/provider-guides/slack.mdx @@ -1,50 +1,291 @@ --- title: "Slack" +description: "Connect Slack to Ampersand via the bot or user token connector using OAuth, then use read, write, subscribe, and proxy actions across channels and messages." --- ## What's supported ### Supported actions -This connector supports: -- [Read Actions](/read-actions), including full historic backfill. Please note that incremental reading is only supported for `conversations`, `files`, `usergroups`, `users.conversations`, and `users`. For all other objects, a full read of the Slack instance will be done per scheduled read. +The Slack integration is available through two connectors: + +- **Bot connector** — provider name: `slack`. This connector uses Slack bot token scopes. +- **User connector** — provider name: `slackUserScope`. This connector uses Slack user token scopes. + +Both connectors support: +- [Read Actions](/read-actions), including full historic backfill and incremental read. - [Write Actions](/write-actions). +- [Subscribe Actions](/subscribe-actions). - [Proxy Actions](/proxy-actions), using the base URL `https://slack.com/api`. -### Supported objects +Both connectors use the same Slack app, OAuth configuration, client ID, client secret, and Ampersand redirect URI. +The difference between them is the Slack token type and the scopes configured for that token. -The Slack connector supports reading from the following objects: - -- [auth.teams](https://docs.slack.dev/reference/methods/auth.teams.list) (full read each time) -- [conversations](https://docs.slack.dev/reference/methods/conversations.list) (supports incremental read, use this object to read all the channels in the workspace) -- [conversations.listConnectInvites](https://docs.slack.dev/reference/methods/conversations.listConnectInvites) (full read each time) -- [conversations.requestSharedInvite](https://docs.slack.dev/reference/methods/conversations.requestSharedInvite.list) (full read each time) -- [files](https://docs.slack.dev/reference/methods/files.list) (supports incremental read) -- [files.remote](https://docs.slack.dev/reference/methods/files.remote.list) (full read each time) -- [reactions](https://docs.slack.dev/reference/methods/reactions.list) (full read each time) -- [team.externalTeams](https://docs.slack.dev/reference/methods/team.externalTeams.list) (full read each time) -- [usergroups](https://docs.slack.dev/reference/methods/usergroups.list) (supports incremental read) -- [users.conversations](https://docs.slack.dev/reference/methods/users.conversations) (full read each time, use this object to only read channels that the user has access to) -- [users](https://docs.slack.dev/reference/methods/users.list) (supports incremental read) - -The Slack connector supports writing to the following objects: - -- [bookmarks](https://docs.slack.dev/reference/methods/bookmarks.add) -- [calls](https://docs.slack.dev/reference/methods/calls.add) -- [canvases](https://docs.slack.dev/reference/methods/canvases.create) -- [conversations](https://docs.slack.dev/reference/methods/conversations.create) -- [conversations.canvases](https://docs.slack.dev/reference/methods/conversations.canvases.create) -- [files.remote](https://docs.slack.dev/reference/methods/files.remote.add) -- [slackLists](https://docs.slack.dev/reference/methods/slackLists.create) -- [slackLists.items](https://docs.slack.dev/reference/methods/slackLists.items.create) -- [usergroups](https://docs.slack.dev/reference/methods/usergroups.create) +Choose the connector whose supported objects and operations match your use case. +The required Slack scopes depend on the connector and the Slack API methods used. + +### Supported objects +The following matrix shows object and operation support for each Slack connector: +- **✅** — supported. +- **🚫** — the connector supports the object, but not that operation. Write may mean both or one of create/update. +- **empty** — the object is not available through that connector. + +Write indicates support for one or both of the following operations: create and update. +Object access also depends on the Slack scopes granted to the installed app and, where applicable, the authorizing user's Slack permissions. + +export const rows = [ + { + label: "admin.apps.activities", + bot: {read: null, write: null, subscribe: null}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/admin.apps.activities.list" + }, { + label: "admin.apps.approved", + bot: {read: null, write: null, subscribe: null}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/admin.apps.approved.list" + }, { + label: "admin.apps.requests", + bot: {read: null, write: null, subscribe: null}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/admin.apps.requests.list" + }, { + label: "admin.apps.restricted", + bot: {read: null, write: null, subscribe: null}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/admin.apps.restricted.list" + }, { + label: "admin.barriers", + bot: {read: null, write: null, subscribe: null}, + user: {read: true, write: true, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/admin.barriers.list" + }, { + label: "admin.conversations", + bot: {read: null, write: null, subscribe: null}, + user: {read: false, write: true, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/admin.conversations.create" + }, { + label: "admin.teams", + bot: {read: null, write: null, subscribe: null}, + user: {read: true, write: true, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/admin.teams.list" + }, { + label: "admin.users", + bot: {read: null, write: null, subscribe: null}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/admin.users.list" + }, { + label: "admin.users.session", + bot: {read: null, write: null, subscribe: null}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/admin.users.session.list" + }, { + label: "auth.teams", + bot: {read: true, write: false, subscribe: false}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/auth.teams.list/" + }, { + label: "bookmarks", + bot: {read: false, write: true, subscribe: false}, + user: {read: false, write: true, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/bookmarks.add" + }, { + label: "bots", + bot: {read: false, write: false, subscribe: true}, + user: {read: false, write: false, subscribe: true}, + href: "https://docs.slack.dev/reference/methods/bots.info" + }, { + label: "calls", + bot: {read: false, write: true, subscribe: true}, + user: {read: false, write: true, subscribe: true}, + href: "https://docs.slack.dev/reference/methods/calls.add" + }, { + label: "canvases", + bot: {read: false, write: true, subscribe: false}, + user: {read: false, write: true, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/canvases.create" + }, { + label: "chat.scheduledMessages", + bot: {read: true, write: false, subscribe: false}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/chat.scheduledMessages.list" + }, { + label: "conversations", + bot: {read: true, write: true, subscribe: true}, + user: {read: true, write: true, subscribe: true}, + href: "https://docs.slack.dev/reference/methods/conversations.list" + }, { + label: "conversations.canvases", + bot: {read: false, write: true, subscribe: false}, + user: {read: false, write: true, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/conversations.canvases.create" + }, { + label: "conversations.listConnectInvites", + bot: {read: true, write: false, subscribe: false}, + user: {read: null, write: null, subscribe: null}, + href: "https://docs.slack.dev/reference/methods/conversations.listconnectinvites" + }, { + label: "conversations.requestSharedInvite", + bot: {read: true, write: false, subscribe: false}, + user: {read: null, write: null, subscribe: null}, + href: "https://docs.slack.dev/reference/methods/conversations.requestsharedinvite.list" + }, { + label: "files", + bot: {read: true, write: false, subscribe: true}, + user: {read: true, write: false, subscribe: true}, + href: "https://docs.slack.dev/reference/methods/files.list" + }, { + label: "files.remote", + bot: {read: true, write: true, subscribe: false}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/files.remote.list" + }, { + label: "slackLists", + bot: {read: false, write: true, subscribe: false}, + user: {read: false, write: true, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/slacklists.create" + }, { + label: "slackLists.items", + bot: {read: false, write: true, subscribe: false}, + user: {read: false, write: true, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/slacklists.items.create" + }, { + label: "team.externalTeams", + bot: {read: true, write: false, subscribe: false}, + user: {read: null, write: null, subscribe: null}, + href: "https://docs.slack.dev/reference/methods/team.externalteams.list" + }, { + label: "usergroups", + bot: {read: true, write: true, subscribe: false}, + user: {read: true, write: true, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/usergroups.list" + }, { + label: "users", + bot: {read: true, write: false, subscribe: true}, + user: {read: true, write: false, subscribe: true}, + href: "https://docs.slack.dev/reference/methods/users.list" + }, { + label: "users.conversations", + bot: {read: true, write: false, subscribe: false}, + user: {read: true, write: false, subscribe: false}, + href: "https://docs.slack.dev/reference/methods/users.conversations" + }, +] + +export const Check = () => +export const Cross = () => 🚫 + +export function renderCellValue(value) { + if (typeof value === "boolean") { + return value ? : ; + } + + if (typeof value === "string" && value.startsWith("<")) { + return ; + } + + return value; +} + +export const groupSeparator = { + borderLeft: "1px solid var(--ifm-table-border-color, #444)", + paddingLeft: "12px", +}; + +
+ + + + + + + + + + + + + + + + + + + + + {[...rows] + .sort((a, b) => a.label.localeCompare(b.label)) + .map((row) => ( + + + + + + + + + + + + ))} + +
+ Object + + Bot connector + + User connector +
ReadWriteSubscribeReadWriteSubscribe
+ + {row.label} + + {renderCellValue(row.bot.read)}{renderCellValue(row.bot.write)}{renderCellValue(row.bot.subscribe)} + {renderCellValue(row.user.read)} + {renderCellValue(row.user.write)}{renderCellValue(row.user.subscribe)}
+
+ +### Choose a connector + +Use the **Bot connector** (`slack`) when your integration needs to operate with Slack bot token scopes. +This is the typical choice for integrations that act as an installed Slack app or bot. + +Use the **User connector** (`slackUserScope`) when your integration needs to use Slack user token scopes +and perform actions on behalf of the authorizing Slack user. ### Example integration -For an example manifest file of a Slack integration, visit our [samples repo on Github](https://github.com/amp-labs/samples/blob/main/slack/amp.yaml). +For an example manifest file of a Slack integration, visit our [samples repo on Github](https://github.com/amp-labs/samples). +Use the sample corresponding to the connector you want to install: +| Connector | Provider name | Example manifest | +|----------------|------------------|--------------------------------------------------------------------------------------------| +| Bot connector | `slack` | [Bot connector sample](https://github.com/amp-labs/samples/blob/main/slack/amp.yaml) | +| User connector | `slackUserScope` | [User connector sample](https://github.com/amp-labs/samples/blob/main/slack-user/amp.yaml) | +The two manifests use different provider names. ## Before you get started @@ -54,7 +295,7 @@ Once your account is created, you'll need to create an app in Slack, configure t - Client ID - Client Secret -- Bot scopes (user scopes are currently not supported) +- **Bot scopes** and/or **User scopes** You will then use these credentials to connect your application to Ampersand. @@ -83,7 +324,7 @@ Follow the steps below to create a Slack app and add the Ampersand redirect URL. 7. Click **Add** and then **Save URLs**. -8. In the **Scopes** section, add the necessary **Bot Token Scopes** for your app by clicking on **Add an OAuth Scope** and selecting the required scopes. **User Token Scopes are currently not supported.** +8. In the **Scopes** section, add the necessary **Bot Token Scopes**/**User Token Scopes** for your app by clicking on **Add an OAuth Scope** and selecting the required scopes. ![Slack App Creation](/images/provider-guides/23f128f-slack1.gif) @@ -99,11 +340,11 @@ Follow the steps below to create a Slack app and add the Ampersand redirect URL. 3. Select **Provider Apps**. -4. Select **Slack** from the **Provider** list. +4. Select **Slack Bot Scope** or **Slack User Scope** from the **Provider** list. 5. Enter the previously obtained **Client ID** in the **Client ID** field and the **Client Secret** in the **Client Secret** field. -6. Enter the **bot scopes** set for your application in _Slack_. +6. Enter the **bot scopes** or **user scopes** set for your application in _Slack_. ![Ampersand Integration](/images/provider-guides/88f33d5-slack2.gif) diff --git a/src/provider-guides/square.mdx b/src/provider-guides/square.mdx index 320eea4d..1dc788b5 100644 --- a/src/provider-guides/square.mdx +++ b/src/provider-guides/square.mdx @@ -1,5 +1,6 @@ --- title: "Square" +description: "Connect Square to Ampersand using OAuth, then use read, write, and proxy actions across customers, orders, payments, catalog, and bookings." --- ## What's supported diff --git a/src/provider-guides/stripe.mdx b/src/provider-guides/stripe.mdx index 8d583a41..8e5df242 100644 --- a/src/provider-guides/stripe.mdx +++ b/src/provider-guides/stripe.mdx @@ -1,5 +1,6 @@ --- title: Stripe +description: "Connect Stripe to Ampersand with an API key, then use read, write, subscribe, and proxy actions across charges, customers, invoices, and subscriptions." --- ## What's supported @@ -12,113 +13,436 @@ The Stripe connector supports: ### Supported Objects -The Stripe connector supports reading from and writing to the following objects: -* [accounts](https://docs.stripe.com/api/accounts/object) (incremental read supported) -* apple_pay/domains (Apple Pay Domains) -* [billing/alerts](https://docs.stripe.com/api/billing/alert/object) -* [billing/credit_grants](https://docs.stripe.com/api/billing/credit-grant/object) -* [billing/meters](https://docs.stripe.com/api/billing/meter/object) -* [billing_portal/configurations](https://docs.stripe.com/api/customer_portal/configurations/object) -* [charges](https://docs.stripe.com/api/charges/object) (incremental read supported) -* [checkout/sessions](https://docs.stripe.com/api/checkout/sessions/object) (incremental read supported) -* [climate/orders](https://docs.stripe.com/api/climate/order/object) -* [coupons](https://docs.stripe.com/api/coupons/object) (incremental read supported) -* [credit_notes](https://docs.stripe.com/api/credit_notes/object) (incremental read supported) -* [customers](https://docs.stripe.com/api/customers/object) (incremental read supported) -* [disputes](https://docs.stripe.com/api/disputes/object) (incremental read supported) -* [entitlements/features](https://docs.stripe.com/api/entitlements/feature/object) -* [file_links](https://docs.stripe.com/api/file_links/object) (incremental read supported) -* [files](https://docs.stripe.com/api/files/object) (incremental read supported) -* [forwarding/requests](https://docs.stripe.com/api/forwarding/request/object) (incremental read supported) -* [identity/verification_sessions](https://docs.stripe.com/api/identity/verification_sessions/object) (incremental read supported) -* [invoiceitems](https://docs.stripe.com/api/invoiceitems/object) (incremental read supported) -* [invoices](https://docs.stripe.com/api/invoices/object) (incremental read supported) -* [issuing/authorizations](https://docs.stripe.com/api/issuing/authorizations/object) (incremental read supported) -* [issuing/cardholders](https://docs.stripe.com/api/issuing/cardholders/object) (incremental read supported) -* [issuing/cards](https://docs.stripe.com/api/issuing/cards/object) (incremental read supported) -* [issuing/disputes](https://docs.stripe.com/api/issuing/disputes/object) (incremental read supported) -* [issuing/personalization_designs](https://docs.stripe.com/api/issuing/personalization_designs/object) -* [issuing/transactions](https://docs.stripe.com/api/issuing/transactions/object) (incremental read supported) -* [payment_intents](https://docs.stripe.com/api/payment_intents/object) (incremental read supported) -* [payment_links](https://docs.stripe.com/api/payment-link/object) -* [payment_method_configurations](https://docs.stripe.com/api/payment_method_configurations/object) -* [payment_method_domains](https://docs.stripe.com/api/payment_method_domains/object) -* [payment_methods](https://docs.stripe.com/api/payment_methods/object) -* [payouts](https://docs.stripe.com/api/payouts/object) (incremental read supported) -* [plans](https://docs.stripe.com/api/plans/object) (incremental read supported) -* [prices](https://docs.stripe.com/api/prices/object) (incremental read supported) -* [products](https://docs.stripe.com/api/product-feature/object) (incremental read supported) -* [promotion_codes](https://docs.stripe.com/api/promotion_codes/object) (incremental read supported) -* [quotes](https://docs.stripe.com/api/quotes/object) -* [radar/value_lists](https://docs.stripe.com/api/radar/value_lists/object) (incremental read supported) -* [refunds](https://docs.stripe.com/api/refunds/object) (incremental read supported) -* [reporting/report_runs](https://docs.stripe.com/api/reporting/report_run/object) (incremental read supported) -* [setup_intents](https://docs.stripe.com/api/setup_intents/object) (incremental read supported) -* [shipping_rates](https://docs.stripe.com/api/shipping_rates/object) (incremental read supported) -* [subscription_schedules](https://docs.stripe.com/api/subscription_schedules/object) (incremental read supported) -* [subscriptions](https://docs.stripe.com/api/subscriptions/object) (incremental read supported) -* [tax/registrations](https://docs.stripe.com/api/tax/registrations/object) -* [tax_ids](https://docs.stripe.com/api/tax_ids/object) -* [tax_rates](https://docs.stripe.com/api/tax_rates/object) (incremental read supported) -* [terminal/configurations](https://docs.stripe.com/api/terminal/configuration/object) -* [terminal/locations](https://docs.stripe.com/api/terminal/locations/object) -* [terminal/readers](https://docs.stripe.com/api/terminal/readers/object) -* [test_helpers/test_clocks](https://docs.stripe.com/api/test_clocks/object) -* [topups](https://docs.stripe.com/api/topups/object) (incremental read supported) -* [transfers](https://docs.stripe.com/api/transfers/object) (incremental read supported) -* [treasury/financial_accounts](https://docs.stripe.com/api/treasury/financial_accounts/object) (incremental read supported) -* [webhook_endpoints](https://docs.stripe.com/api/webhook_endpoints/object) - -The Stripe connector supports only read actions on the following objects: -* [application_fees](https://docs.stripe.com/api/application_fees/object) (incremental read supported) -* [balance_transactions](https://docs.stripe.com/api/balance_transactions/object) (incremental read supported) -* [climate/products](https://docs.stripe.com/api/climate/product/object) -* [climate/suppliers](https://docs.stripe.com/api/climate/supplier/object) -* [country_specs](https://docs.stripe.com/api/country_specs/object) -* [events](https://docs.stripe.com/api/events/object) (incremental read supported) -* [financial_connections/accounts](https://docs.stripe.com/api/financial_connections/accounts/object) -* balance/history (Transaction history for balance changes) (incremental read supported) -* [identity/verification_reports](https://docs.stripe.com/api/identity/verification_reports/object) (incremental read supported) -* [invoice_rendering_templates](https://docs.stripe.com/api/invoice-rendering-template/object) -* [issuing/physical_bundles](https://docs.stripe.com/api/issuing/physical_bundles/object) -* [radar/early_fraud_warnings](https://docs.stripe.com/api/radar/early_fraud_warnings/object) (incremental read supported) -* [reporting/report_types](https://docs.stripe.com/api/reporting/report_type/object) -* [reviews](https://docs.stripe.com/api/radar/reviews/object) (incremental read supported) -* [sigma/scheduled_query_runs](https://docs.stripe.com/api/sigma/scheduled_queries/object) -* [tax_codes](https://docs.stripe.com/api/tax_codes/object) - -The Stripe connector supports only write actions on the following objects: -* [account_links](https://docs.stripe.com/api/account_links/object) -* [account_sessions](https://docs.stripe.com/api/account_sessions/object) -* [apps/secrets](https://docs.stripe.com/api/apps/secret_store/secret_resource) -* [billing/meter_event_adjustments](https://docs.stripe.com/api/billing/meter-event-adjustment/object) -* [billing/meter_events](https://docs.stripe.com/api/billing/meter-event/object) -* [billing_portal/sessions](https://docs.stripe.com/api/customer_portal/sessions/object) -* [customer_sessions](https://docs.stripe.com/api/customer_sessions/object) -* ephemeral_keys (Creates a short-lived API key for a given resource) -* [financial_connections/sessions](https://docs.stripe.com/api/financial_connections/sessions/object) -* [invoices/create_preview](https://docs.stripe.com/api/invoices/create_preview) -* issuing/settlements (Updates the specified Issuing Settlement object) -* [issuing/tokens](https://docs.stripe.com/api/issuing/tokens/object) -* [issuing/tokens](https://docs.stripe.com/api/issuing/tokens/object) -* [radar/value_list_items](https://docs.stripe.com/api/radar/value_list_items/object) -* [sources](https://docs.stripe.com/api/sources/object) -* [subscription_items](https://docs.stripe.com/api/subscription_items/object) -* [tax/calculations](https://docs.stripe.com/api/tax/calculations/object) -* [tax/settings](https://docs.stripe.com/api/tax/settings/object) -* [terminal/connection_tokens](https://docs.stripe.com/api/terminal/connection_tokens/object) -* [test_helpers/confirmation_tokens](https://docs.stripe.com/api/confirmation_tokens/object) -* [test_helpers/issuing/authorizations](https://docs.stripe.com/api/issuing/authorizations/test_mode_create) -* test_helpers/issuing/settlements (Create an Issuing settlement) -* [test_helpers/treasury/outbound_payments](https://docs.stripe.com/api/treasury/outbound_payments/test_mode_update) -* [test_helpers/treasury/outbound_transfers](https://docs.stripe.com/api/treasury/outbound_transfers/test_mode_update) -* [test_helpers/treasury/received_credits](https://docs.stripe.com/api/treasury/received_credits/object) -* [test_helpers/treasury/received_debits](https://docs.stripe.com/api/treasury/received_debits/object) -* [treasury/credit_reversals](https://docs.stripe.com/api/treasury/credit_reversals/object) -* [treasury/debit_reversals](https://docs.stripe.com/api/treasury/debit_reversals/object) -* [treasury/inbound_transfers](https://docs.stripe.com/api/treasury/inbound_transfers/object) -* [treasury/outbound_payments](https://docs.stripe.com/api/treasury/outbound_payments/object) -* [treasury/outbound_transfers](https://docs.stripe.com/api/treasury/outbound_transfers/object) +> Note: In theory, nested fields can be used with all Stripe objects. +However, the objects marked as supporting nested fields in the tables also enable automatic expansion of related data +via Stripe's [expand feature](https://docs.stripe.com/api/expanding_objects). For those objects, +the connector can fetch extra fields that are not returned by default, and surface them. Field example for object `balance_transactions`: `"$['source']['payment_intent']['currency']"`. + +The Stripe connector supports reading and writing to and from the following objects: + +export const rows = [ + { + label: "accounts", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/accounts/object" + }, { + label: "charges", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/charges/object" + }, { + label: "checkout/sessions", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/checkout/sessions/object" + }, { + label: "coupons", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/coupons/object" + }, { + label: "credit_notes", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/credit_notes/object" + }, { + label: "customers", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/customers/object" + }, { + label: "disputes", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/disputes/object" + }, { + label: "file_links", read: true, write: true, incr: true, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/file_links/object" + }, { + label: "files", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/files/object" + }, { + label: "forwarding/requests", read: true, write: true, incr: true, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/forwarding/request/object" + }, { + label: "identity/verification_sessions", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/identity/verification_sessions/object" + }, { + label: "invoiceitems", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/invoiceitems/object" + }, { + label: "invoices", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/invoices/object" + }, { + label: "issuing/authorizations", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/issuing/authorizations/object" + }, { + label: "issuing/cardholders", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/issuing/cardholders/object" + }, { + label: "issuing/cards", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/issuing/cards/object" + }, { + label: "issuing/disputes", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/issuing/disputes/object" + }, { + label: "issuing/transactions", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/issuing/transactions/object" + }, { + label: "payment_intents", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/payment_intents/object" + }, { + label: "payouts", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/payouts/object" + }, { + label: "plans", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/plans/object" + }, { + label: "prices", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/prices/object" + }, { + label: "products", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/products/object" + }, { + label: "promotion_codes", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/promotion_codes/object" + }, { + label: "radar/value_lists", read: true, write: true, incr: true, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/radar/value_lists/object" + }, { + label: "refunds", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/refunds/object" + }, { + label: "reporting/report_runs", read: true, write: true, incr: true, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/reporting/report_run/object" + }, { + label: "setup_intents", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/setup_intents/object" + }, { + label: "shipping_rates", read: true, write: true, incr: true, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/shipping_rates/object" + }, { + label: "subscription_schedules", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/subscription_schedules/object" + }, { + label: "subscriptions", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/subscriptions/object" + }, { + label: "tax_rates", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/tax_rates/object" + }, { + label: "topups", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/topups/object" + }, { + label: "transfers", read: true, write: true, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/transfers/object" + }, { + label: "billing/alerts", read: true, write: true, incr: false, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/billing/alert/object" + }, { + label: "billing/credit_grants", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/billing/credit-grant/object" + }, { + label: "billing/meters", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/billing/meter/object" + }, { + label: "billing_portal/configurations", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/customer_portal/configurations/object" + }, { + label: "climate/orders", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/climate/order/object" + }, { + label: "entitlements/features", read: true, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/entitlements/feature/object" + }, { + label: "issuing/personalization_designs", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/issuing/personalization_designs/object" + }, { + label: "payment_links", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/payment-link/object" + }, { + label: "payment_method_configurations", read: true, write: true, incr: false, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/payment_method_configurations/object" + }, { + label: "payment_method_domains", read: true, write: true, incr: false, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/payment_method_domains/object" + }, { + label: "payment_methods", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/payment_methods/object" + }, { + label: "quotes", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/quotes/object" + }, { + label: "tax/registrations", read: true, write: true, incr: false, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/tax/registrations/object" + }, { + label: "tax_ids", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/tax_ids/object" + }, { + label: "terminal/configurations", read: true, write: true, incr: false, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/terminal/configuration/object" + }, { + label: "terminal/locations", read: true, write: true, incr: false, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/terminal/locations/object" + }, { + label: "terminal/readers", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/terminal/readers/object" + }, { + label: "test_helpers/test_clocks", read: true, write: true, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/test_clocks/object" + }, { + label: "webhook_endpoints", read: true, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/webhook_endpoints/object" + }, { + label: "apple_pay/domains", read: true, write: true, incr: false, nested: false, subscribe: false, + display: "Apple Pay Domains" + }, { + label: "application_fees", read: true, write: false, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/application_fees/object" + }, { + label: "balance_transactions", read: true, write: false, incr: true, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/balance_transactions/object" + }, { + label: "events", read: true, write: false, incr: true, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/events/object" + }, { + label: "identity/verification_reports", read: true, write: false, incr: true, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/identity/verification_reports/object" + }, { + label: "radar/early_fraud_warnings", read: true, write: false, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/radar/early_fraud_warnings/object" + }, { + label: "reviews", read: true, write: false, incr: true, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/radar/reviews/object" + }, { + label: "balance/history", read: true, write: false, incr: true, nested: true, subscribe: false, + display: "Transaction history for balance changes" + }, { + label: "climate/products", read: true, write: false, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/climate/product/object" + }, { + label: "climate/suppliers", read: true, write: false, incr: false, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/climate/supplier/object" + }, { + label: "billing/credit_balance_transactions", read: true, write: false, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/billing/credit-balance-transaction/object" + }, { + label: "invoice_payments", read: true, write: false, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/invoice-payment/object" + }, { + label: "country_specs", read: true, write: false, incr: false, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/country_specs/object" + }, { + label: "financial_connections/accounts", read: true, write: false, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/financial_connections/accounts/object" + }, { + label: "invoice_rendering_templates", read: true, write: false, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/invoice-rendering-template/object" + }, { + label: "issuing/physical_bundles", read: true, write: false, incr: false, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/issuing/physical_bundles/object" + }, { + label: "reporting/report_types", read: true, write: false, incr: false, nested: false, subscribe: true, + href: "https://docs.stripe.com/api/reporting/report_type/object" + }, { + label: "sigma/scheduled_query_runs", read: true, write: false, incr: false, nested: true, subscribe: true, + href: "https://docs.stripe.com/api/sigma/scheduled_queries/object" + }, { + label: "tax_codes", read: true, write: false, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/tax_codes/object" + }, { + label: "account_links", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/account_links/object" + }, { + label: "account_sessions", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/account_sessions/object" + }, { + label: "apps/secrets", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/apps/secret_store/secret_resource" + }, { + label: "billing/meter_event_adjustments", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/billing/meter-event-adjustment/object" + }, { + label: "billing/meter_events", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/billing/meter-event/object" + }, { + label: "billing_portal/sessions", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/customer_portal/sessions/object" + }, { + label: "customer_sessions", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/customer_sessions/object" + }, { + label: "financial_connections/sessions", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/financial_connections/sessions/object" + }, { + label: "invoices/create_preview", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/invoices/create_preview" + }, { + label: "issuing/tokens", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/issuing/tokens/object" + }, { + label: "radar/value_list_items", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/radar/value_list_items/object" + }, { + label: "sources", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/sources/object" + }, { + label: "subscription_items", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/subscription_items/object" + }, { + label: "tax/calculations", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/tax/calculations/object" + }, { + label: "tax/settings", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/tax/settings/object" + }, { + label: "terminal/connection_tokens", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/terminal/connection_tokens/object" + }, { + label: "test_helpers/confirmation_tokens", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/confirmation_tokens/object" + }, { + label: "test_helpers/issuing/authorizations", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/issuing/authorizations/test_mode_create" + }, { + label: "issuing/settlements", read: false, write: true, incr: false, nested: false, subscribe: false, + display: "Updates the specified Issuing Settlement object" + }, { + label: "test_helpers/issuing/settlements", read: false, write: true, incr: false, nested: false, subscribe: false, + display: "Create an Issuing settlement" + }, { + label: "ephemeral_keys", read: false, write: true, incr: false, nested: false, subscribe: false, + display: "Creates a short-lived API key for a given resource" + }, +] + +export const Check = () => +export const Cross = () => 🚫 +export const NA = () => N/A +export const Incremental = () => ✅ incremental + +export function renderCellValue(value) { + if (value === null) { + return + } + + if (typeof value === "boolean") { + return value ? : + } + + return value +} + +
+ + + + + + + + + + + + {[...rows] + .sort((a, b) => a.label.localeCompare(b.label)) + .map((row) => ( + + + + + + + + ))} + +
ObjectReadWriteNested FieldSubscribe
+ {row.href ? {row.label} : row.label} + {row.display ?
{row.display}
: null} +
{row.incr ? : renderCellValue(row.read)}{renderCellValue(row.write)}{row.nested ? : null}{renderCellValue(row.subscribe)}
+
+ +#### Treasury API + +The Stripe connector supports reading and writing to and from the following Treasury API objects: + +export const treasuryApiRows = [ + { + label: "treasury/financial_accounts", read: true, write: true, incr: true, nested: true, subscribe: false, + href: "https://docs.stripe.com/api/treasury/financial_accounts/object" + }, { + label: "treasury/credit_reversals", read: true, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/credit_reversals/object" + }, { + label: "treasury/debit_reversals", read: true, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/debit_reversals/object" + }, { + label: "treasury/inbound_transfers", read: true, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/inbound_transfers/object" + }, { + label: "treasury/outbound_payments", read: true, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/outbound_payments/object" + }, { + label: "treasury/outbound_transfers", read: true, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/outbound_transfers/object" + }, { + label: "treasury/received_credits", read: true, write: null, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/received_credits/object" + }, { + label: "treasury/received_debits", read: true, write: null, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/received_debits/object" + }, { + label: "treasury/transaction_entries", read: true, write: null, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/transaction_entries/object" + }, { + label: "treasury/transactions", read: true, write: null, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/transactions/object" + }, { + label: "test_helpers/treasury/outbound_payments", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/outbound_payments/test_mode_update" + }, { + label: "test_helpers/treasury/outbound_transfers", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/outbound_transfers/test_mode_update" + }, { + label: "test_helpers/treasury/received_credits", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/received_credits/test_mode_create" + }, { + label: "test_helpers/treasury/received_debits", read: false, write: true, incr: false, nested: false, subscribe: false, + href: "https://docs.stripe.com/api/treasury/received_debits/test_mode_create" + }, +] + +
+ + + + + + + + + + + + {[...treasuryApiRows] + .sort((a, b) => a.label.localeCompare(b.label)) + .map((row) => ( + + + + + + + + ))} + +
ObjectReadWriteNested FieldSubscribe
+ {row.href ? {row.label} : row.label} + {row.display ?
{row.display}
: null} +
{row.incr ? : renderCellValue(row.read)}{renderCellValue(row.write)}{row.nested ? : null}{renderCellValue(row.subscribe)}
+
### Example integration diff --git a/src/provider-guides/surveyMonkey.mdx b/src/provider-guides/surveyMonkey.mdx index f416e3df..be40cc7c 100644 --- a/src/provider-guides/surveyMonkey.mdx +++ b/src/provider-guides/surveyMonkey.mdx @@ -1,30 +1,84 @@ --- -title: "Survey Monkey" +title: "SurveyMonkey" +description: "Connect SurveyMonkey to Ampersand using OAuth, then use read, write, and proxy actions across surveys, contacts, contact lists, groups, and response counts." --- -## What's Supported -### Supported Actions +## What's supported -This connector supports: -- [Proxy Actions](/proxy-actions), using the base URL `https://api.surveymonkey.com`. +### Supported actions -## Before You Get Started +This connector supports: -To connect SurveyMonkey with Ampersand, you need to [Create a SurveyMonkey Account](#create-a-surveymonkey-account) and obtain the following credentials from your SurveyMonkey App: +- [Read Actions](/read-actions), including full historic backfill. +- [Write Actions](/write-actions) (create, update, and delete — depending on the object). +- [Proxy Actions](/proxy-actions), using the base URL `https://api.surveymonkey.com`. +- Subscribe Actions are not currently supported. + +### Supported objects + +export const Check = () => +export const Cross = () => 🚫 + + + +### Notes and limitations + +- **Write support** + - `contacts`, `contact_lists`, `surveys`: create, update, and delete + - `survey_folders`: create only + - `contact_fields`: update only (label) +- **Not available as objects:** survey responses, collectors, survey pages, survey questions, and webhooks. Use [Proxy Actions](/proxy-actions) if you need access to other SurveyMonkey API endpoints. + +### Example integration + +For an example manifest file of a SurveyMonkey integration, visit our [samples repo on Github](https://github.com/amp-labs/samples/blob/main/surveyMonkey/amp.yaml). + +## Before you get started + +To connect SurveyMonkey with Ampersand, you need to [create a SurveyMonkey account](#create-a-surveymonkey-account) and obtain the following credentials from your SurveyMonkey app: - Client ID - Client Secret -You will then use these credentials to connect your application to Ampersand. +You will use these credentials to connect your application to Ampersand. -### Create a SurveyMonkey Account +### Create a SurveyMonkey account You need a **SurveyMonkey** account to connect with Ampersand. If you do not have a SurveyMonkey account, here's how you can sign up: -- Go to the [SurveyMonkey site](https://www.surveymonkey.com/). +- Go to the [SurveyMonkey site](https://www.surveymonkey.com/). - Sign up for a free account using your preferred method. -### Creating a SurveyMonkey App +### Creating a SurveyMonkey app 1. Log in to the [SurveyMonkey Developer Portal](https://developer.surveymonkey.com/). @@ -32,8 +86,8 @@ You need a **SurveyMonkey** account to connect with Ampersand. If you do not hav 3. On the _Create a New App_ form, enter the following details: 1. **App Name**: The name of the app. - 2. **App Creator**: Email address of the app owner. - 3. **Select an app type.**: Specify whether the application should be private or public. + 2. **App Creator**: Email address of the app owner. + 3. **Select an app type**: Specify whether the application should be private or public. 4. Click **Create App**. @@ -47,7 +101,9 @@ You need a **SurveyMonkey** account to connect with Ampersand. If you do not hav 7. Click **Submit changes**. -8. From the **Scopes** section, select the scopes required for your application. +8. From the **Scopes** section, select the scopes required for your application. Common scopes include: + - **View Surveys** / **Create/Modify Surveys** — for reading and writing surveys + - **View Contacts** / **Create/Modify Contacts** — for reading and writing contacts and contact lists 9. Click **Update Scopes**. @@ -57,20 +113,39 @@ You need a **SurveyMonkey** account to connect with Ampersand. If you do not hav You can find the **Client ID** and **Client Secret** keys on the **Overview** page of your application. Note these keys, as they are essential for connecting your app to Ampersand. -## Add SurveyMonkey App Details in Ampersand +Some scopes require a paid SurveyMonkey plan or additional approval for public apps. Configure only the scopes your integration uses. + +## Add your SurveyMonkey app info to Ampersand 1. Log in to your [Ampersand Dashboard](https://dashboard.withampersand.com). -2. Select the project where you want to add the SurveyMonkey App. +2. Select the project where you want to add the SurveyMonkey app. ![Ampersand Project Selection](/images/provider-guides/2fd1283-Ampersand.png) 3. Navigate to the **Provider Apps** section. -4. Select **SurveyMonkey** from the Provider list. +4. Select **SurveyMonkey** from the **Provider** list. 5. Enter the previously obtained **Client ID** in the **Client ID** field and the **Client Secret** in the **Client Secret** field. - ![Ampersand Project Selection](/images/provider-guides/67af4d6-surveymonkey3.gif) + ![SurveyMonkey Integration in Ampersand](/images/provider-guides/67af4d6-surveymonkey3.gif) 6. Click **Save Changes**. + +## Using the connector + +To start integrating with SurveyMonkey: + +- Create a manifest file like the [example](https://github.com/amp-labs/samples/blob/main/surveyMonkey/amp.yaml). +- Deploy it using the [amp CLI](/cli/overview). +- If using Read or Write actions: create a [destination](/destinations). +- Embed the [InstallIntegration](/embeddable-ui-components#install-integration) UI component. The UI component will prompt the customer for OAuth authorization. +- Start using the connector! + - If your integration has [Read Actions](/read-actions), you'll start getting webhook messages. + - If your integration has [Write Actions](/write-actions), you can start making API calls to our Write API. + - If your integration has [Proxy Actions](/proxy-actions), you can start making Proxy API calls. + +## API documentation + +- [SurveyMonkey API v3](https://api.surveymonkey.com/v3/docs) diff --git a/src/provider-guides/zoho.mdx b/src/provider-guides/zoho.mdx index 4c89da3d..9074acb5 100644 --- a/src/provider-guides/zoho.mdx +++ b/src/provider-guides/zoho.mdx @@ -1,5 +1,6 @@ --- title: "Zoho" +description: "Connect Zoho CRM, Zoho Desk, and Zoho Mail to Ampersand using OAuth, and set up read, write, and subscribe actions across the supported objects." --- The Zoho connector supports the following Zoho products: diff --git a/src/provider-guides/zoominfo.mdx b/src/provider-guides/zoominfo.mdx index 827b923f..04201759 100644 --- a/src/provider-guides/zoominfo.mdx +++ b/src/provider-guides/zoominfo.mdx @@ -1,5 +1,6 @@ --- -title: ZoomInfo +title: "ZoomInfo" +description: "Connect ZoomInfo to Ampersand using OAuth 2.0. Register a Developer Portal app, configure the redirect URI, and use proxy actions to call the API." --- ## What's supported diff --git a/src/read-actions.mdx b/src/read-actions.mdx index 41574d84..7812ee60 100644 --- a/src/read-actions.mdx +++ b/src/read-actions.mdx @@ -1,5 +1,6 @@ --- title: "Read actions" +description: "Define read actions in amp.yaml to schedule or trigger reads of standard and custom objects from a customer's SaaS, with backfill, filters, and mapping." --- A read action reads data from your customer's SaaS and send them to Destinations that you define. @@ -202,6 +203,34 @@ If you want different filter behavior for backfill vs. incremental reads, you ca In this example, the backfill will only return contacts whose `firstname` equals "Brian", while subsequent incremental reads will only return contacts whose `status` equals "active". +### Filter field names + +The `fieldName` of a filter must be the field's name in the provider's API, and it is case-sensitive. + + +Read filters do **not** resolve [object and field mappings](/object-and-field-mapping). A `mapToName` from your `amp.yaml`, or a mapping your customer selected during installation, is not translated to the underlying provider field. This differs from [search actions](/search-actions#execute-a-search), which do accept mapped field names. + + +For example, if your manifest maps the provider field `mobilephone` to `phone`: + +```yaml +requiredFields: + - fieldName: mobilephone + mapToName: phone +``` + +then a filter on that field must still reference `mobilephone`: + +```json +// Correct — the provider's field name +{ "fieldName": "mobilephone", "operator": "eq", "value": "1234567890" } + +// Incorrect — mapToName is not resolved, so the read will fail or return no records +{ "fieldName": "phone", "operator": "eq", "value": "1234567890" } +``` + +The field you filter on does not have to be one of the object's `selectedFields`. You can filter on a field that you don't read. + ### Valid filter values The `value` field of the filter accepts strings, booleans, and numbers: diff --git a/src/security/outgoing-ip-addresses.mdx b/src/security/outgoing-ip-addresses.mdx new file mode 100644 index 00000000..14b5b32b --- /dev/null +++ b/src/security/outgoing-ip-addresses.mdx @@ -0,0 +1,21 @@ +--- +title: "Outgoing IP addresses" +description: "Fixed Ampersand outgoing IP addresses to add to a SaaS provider's allowlist so read, write, proxy, and subscribe API traffic is not blocked." +--- + +All outgoing API requests from Ampersand to SaaS providers originate from a fixed set of IP addresses. If a provider app or API you are integrating with supports IP allowlisting (sometimes called whitelisting), add the following IP addresses to its allowlist so that requests from Ampersand are not blocked. + +## IP addresses to allowlist + +``` +34.53.82.136 +34.53.32.186 +34.182.109.175 +``` + +These IP addresses apply to all outgoing traffic from Ampersand, including: + +- [Read actions](/read-actions): API calls to read data from providers. +- [Write actions](/write-actions): API calls to write data to providers. +- [Proxy actions](/proxy-actions): API calls proxied through Ampersand. +- [Subscribe actions](/subscribe-actions): API calls to create and manage webhook subscriptions. diff --git a/src/snippets/salesforce-integration-user.mdx b/src/snippets/salesforce-integration-user.mdx index a94916ae..026a4cc7 100644 --- a/src/snippets/salesforce-integration-user.mdx +++ b/src/snippets/salesforce-integration-user.mdx @@ -47,7 +47,7 @@ -2. Ensure that the checkboxes for the necessary [system permissions](/customer-guides/salesforce#system-permissions-needed) are selected, and then click **Save**. +2. Ensure that the checkboxes for the necessary [system permissions](/customer-guides/salesforce#required-system-permissions) are selected, and then click **Save**. diff --git a/src/subscribe-actions.mdx b/src/subscribe-actions.mdx index e72fded6..dd545064 100644 --- a/src/subscribe-actions.mdx +++ b/src/subscribe-actions.mdx @@ -1,5 +1,6 @@ --- title: "Subscribe actions" +description: "Receive near-instant webhooks from customer SaaS apps with Ampersand subscribe actions on create, update, delete, and association change events." --- With subscribe actions, you'll receive near-instant webhooks as events occur in your customers' SaaS applications. This enables your application to quickly react to events such as record creation, deletion, and field updates. @@ -78,12 +79,6 @@ integrations: For an example of a webhook message delivered according to the above `amp.yaml`, please see [Subscribe action webhooks](/destinations/webhooks#subscribe-action-webhooks). -### Quota optimization - -Quota optimization reduces API quota consumption for Subscribe update events by filtering irrelevant change events at the source, so only updates that affect watched fields are delivered. It is opt-in and is not enabled by default. - -Currently supported for Salesforce. See [Quota optimization for Subscribe Actions](/provider-guides/salesforce#quota-optimization-for-subscribe-actions) in the Salesforce provider guide for more information. - ### Association changes In HubSpot, association changes do not trigger update events, you must subscribe to them specifically using `associationChangeEvent`. On the other hand, in Salesforce, you can subscribe to fields that refer to associations (e.g. You can subscribe to update events on the `accountid` field of contacts). diff --git a/src/troubleshooting-guides/salesforce.mdx b/src/troubleshooting-guides/salesforce.mdx index 9e616f40..88335f27 100644 --- a/src/troubleshooting-guides/salesforce.mdx +++ b/src/troubleshooting-guides/salesforce.mdx @@ -25,7 +25,7 @@ for the appropriate names. ### Resolve a field-level visibility issue -Share the [field visibility instructions in the Salesforce customer guide](/customer-guides/salesforce#ensure-sufficient-permissions) with your customer. That user must be granted **Visible** field-level visibility for the field, either through their profile or via a permission set. +Share the [field visibility instructions in the Salesforce customer guide](/customer-guides/salesforce#choose-credentials-and-grant-access) with your customer. That user must be granted **Visible** field-level visibility for the field, either through their profile or via a permission set. Ampersand pauses reads automatically after repeated failures to avoid overloading Salesforce APIs, so once the field is visible you'll need to explicitly resume. Call the [Unpause Reads endpoint](/reference/read/unpause-reads-for-an-installation), or reach out to Ampersand support and we can unpause it for you. diff --git a/src/write-actions.mdx b/src/write-actions.mdx index abda51f6..142d7dd9 100644 --- a/src/write-actions.mdx +++ b/src/write-actions.mdx @@ -1,5 +1,6 @@ --- title: "Write actions" +description: "Define write actions in amp.yaml so your app can create or update records in your customer's SaaS via Ampersand's Write API, including shared field mappings." --- A write action writes data to your customer's SaaS whenever you make an API request to us. This page focuses on writing data to existing fields. If you are looking to create new custom fields prior to writing data, please see [Create or update custom fields](/manage-customer-schemas#create-or-update-custom-fields). @@ -23,7 +24,7 @@ integrations: ### Share mappings with read actions -If you are using Read Actions and have already defined [field mappings](/read-actions#field-mappings), your Write Actions can automatically use the same mappings if you add `inheritMapping` to your manifest file. When you call our Write API, we will ensure that we are writing back to the appropriate field that the customer has mapped. +If you are using Read Actions and have already defined [field mappings](/read-actions#object-and-field-mappings), your Write Actions can automatically use the same mappings if you add `inheritMapping` to your manifest file. When you call our Write API, we will ensure that we are writing back to the appropriate field that the customer has mapped. ```YAML specVersion: 1.0.0