{"_id":"@api-engineering-digitalocean/dots","name":"@api-engineering-digitalocean/dots","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@api-engineering-digitalocean/dots","type":"module","version":"1.0.0","description":"TypeScript client generator based on DigitalOcean's OpenAPI specification.","main":"examples/index.js","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/jest","test:mock":"node --experimental-vm-modules node_modules/.bin/jest --testPathPatterns=mock","test:integration":"node --experimental-vm-modules node_modules/.bin/jest --testPathPatterns=integration","test:single":"node --experimental-vm-modules node_modules/.bin/jest","lint":"npx eslint . --ignore-pattern docs/","docs":"typedoc","build":"tsc"},"author":{"name":"DigitalOcean"},"license":"MIT","keywords":["digitalocean","typescript","dots","OpenAPI"],"repository":{"type":"git","url":"git+ssh://git@github.com/digitalocean/dots.git"},"bugs":{"url":"https://github.com/digitalocean/dots/issues"},"publishConfig":{"access":"public"},"homepage":"https://github.com/digitalocean/dots","devDependencies":{"@eslint/js":"^9.31.0","@types/jest":"^30.0.0","@types/nock":"^10.0.3","@types/node":"^22.13.13","eslint":"^9.31.0","globals":"^16.3.0","jest":"^30.0.3","nock":"^14.0.5","ts-jest":"^29.4.0","ts-node":"^10.9.2","typedoc":"^0.28.7","typescript":"^5.8.3","typescript-eslint":"^8.37.0"},"dependencies":{"@azure/core-http":"^3.0.5","@microsoft/kiota-authentication-azure":"^1.0.0-preview.61","@microsoft/kiota-bundle":"^1.0.0-preview.9","dotenv":"^17.2.0","uuid":"^11.1.0"},"_id":"@api-engineering-digitalocean/dots@1.0.0","gitHead":"934b56f9763adbf0be398104e1cd2fe663b9e20f","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-4MN168HJHw6HyWMD/junwxF46Kx+fKJgaoW+e0nT153X/VTeJHqDGnMG7aVuVEUQqbOTLJWtRS+OkeEf9SpThg==","shasum":"1a7967ba51bc7cbb55cbe3a9cb5f5e2e1de1201c","tarball":"https://registry.npmjs.org/@api-engineering-digitalocean/dots/-/dots-1.0.0.tgz","fileCount":3750,"unpackedSize":41151467,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAEGd5EQmSb8l3JqhLa0d5ZuXHtJavn3rVas/pAac7n0AiEAmQb/Q6lMrLVl6yRazJletwXJjCF9JkQN0FqASSHB858="}]},"_npmUser":{"name":"api-engineering-digitalocean","email":"api-engineering@digitalocean.com"},"directories":{},"maintainers":[{"name":"api-engineering-digitalocean","email":"api-engineering@digitalocean.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dots_1.0.0_1753166287351_0.12008916257929125"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-22T06:38:07.253Z","1.0.0":"2025-07-22T06:38:07.631Z","modified":"2025-07-22T06:38:07.940Z"},"maintainers":[{"name":"api-engineering-digitalocean","email":"api-engineering@digitalocean.com"}],"description":"TypeScript client generator based on DigitalOcean's OpenAPI specification.","homepage":"https://github.com/digitalocean/dots","keywords":["digitalocean","typescript","dots","OpenAPI"],"repository":{"type":"git","url":"git+ssh://git@github.com/digitalocean/dots.git"},"author":{"name":"DigitalOcean"},"bugs":{"url":"https://github.com/digitalocean/dots/issues"},"license":"MIT","readme":"# dots\n`dots` is the official DigitalOcean Typescript Client based on the DO OpenAPIv3 specification. \n\n# Getting Started\n## Prerequisites \n- [NodeJS 18 or above](https://nodejs.org/en/)\n- [TypeScript 5 or above](https://www.typescriptlang.org/)\n- A DigitalOcean account with an active subscription. Along with a DigitalOcean token with proper permissions to manage DigitalOcean resources.\n\n## Installation\n\nTo install the dependencies for this repository, use the following command:\n\n1. Clone this repo. The client is not published anywhere currently. \n2. Install the dependencies for this repository. Run this command at the root of the repo:\n```\nnpm install\n```\n\n## Quick Start\n### Authenticating \n`dots` must be initialized with `createDigitalOceanClient()`. A DigitalOcean token is required. This token can be passed in via `DigitalOceanApiKeyAuthenticationProvider()`, an example below:\n```\nconst authProvider = new DigitalOceanApiKeyAuthenticationProvider(token!);\n// Create request adapter using the fetch-based implementation\nconst adapter = new FetchRequestAdapter(authProvider);\n// Create the API client\nconst client = createDigitalOceanClient(adapter);\n```\n\n### Managing DigitalOcean Resources via dots\nFind below a working example of creating a DigitalOcean volume via `dots`:\n```\nimport { FetchRequestAdapter } from \"@microsoft/kiota-http-fetchlibrary\";\nimport { createDigitalOceanClient } from \"../src/dots/digitalOceanClient.js\";\nimport { DigitalOceanApiKeyAuthenticationProvider } from '../src/dots/DigitalOceanApiKeyAuthenticationProvider.js';\nimport {Volumes_ext4} from \"../src/dots/models/index.js\";\n\nconst token = process.env.DIGITALOCEAN_TOKEN;\nif (!token) {\n    throw new Error(\"DIGITALOCEAN_TOKEN not set\");\n}\n\nconst authProvider = new DigitalOceanApiKeyAuthenticationProvider(token!);\n// Create request adapter using the fetch-based implementation\nconst adapter = new FetchRequestAdapter(authProvider);\n// Create the API client\nconst client = createDigitalOceanClient(adapter);\n\nasync function main(): Promise<void> {\n    try {\n        const volumeReq: Volumes_ext4 = {\n            sizeGigabytes: 10,\n            name: `test-volume`,\n            description: \"Block storage testing\",\n            region: \"nyc3\",\n            filesystemType: \"ext4\",\n        };\n\n        const resp = await client.v2.volumes.post(volumeReq);\n        if (resp && resp.volume) {\n            const volume = resp.volume;\n            console.log(`Created volume ${volume.name} <ID: ${volume.id}>`);\n        } else {\n            throw new Error(\"Failed to create volume or volume is undefined\");\n        }\n\n        console.log(\"Done!\");\n\n    } catch (err) {\n        console.error(err);\n    }\n}\n\nmain();\n```\n\nRunning the above code snippet with `tsc && node index.js` would output the following:\n```\nCreated volume test-volume <ID: 751d0c09-1613-11f0-8aa5-0a58ac147241>\nDone!\n```\n\nMore working examples can be found in `dots/examples`. ","readmeFilename":"README.md","_rev":"1-4d28730efda6c7f2e5614b5fa92a38e4"}