{"_id":"@aas-studio/sdk","_rev":"2-a9db475aecc1cb2838a41cb85f63c974","name":"@aas-studio/sdk","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@aas-studio/sdk","version":"0.1.0","keywords":["aas","asset-administration-shell","iec-63278","idta","industry-4.0","digital-product-passport","battery-passport","catena-x","eclass"],"author":{"name":"AAS Studio"},"license":"MIT","_id":"@aas-studio/sdk@0.1.0","maintainers":[{"name":"aas-studio.eu","email":"miguelreis@hotmail.it"}],"homepage":"https://aas-studio.eu","bugs":{"url":"https://github.com/MiguelReisRepo/AAS-Studio/issues"},"dist":{"shasum":"7f5d8b9cb9c234c4adf663caa78c56fe13b4eeb4","tarball":"https://registry.npmjs.org/@aas-studio/sdk/-/sdk-0.1.0.tgz","fileCount":27,"integrity":"sha512-EGVF7F6aACr7TrGxG3UkJDfMksHLhbhtbXnhTnkQBSi5k4aE/yDx5Iffe1Zx9cwgbOV3uKDLwPolMhO3AMjZBw==","signatures":[{"sig":"MEQCIGaCmXeNpUIsx0lvBVGHdUJ8l820TUbLmHNz++mMEa/TAiA3bbhaRxqDhnCrSG/BxO36EO2LqrFu14HovXLGnwyOPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198615},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"aas-studio.eu","email":"miguelreis@hotmail.it"},"repository":{"url":"git+https://github.com/MiguelReisRepo/AAS-Studio.git","type":"git","directory":"sdk/typescript"},"_npmVersion":"11.7.0","description":"Official TypeScript SDK for AAS Studio — AI-powered Asset Administration Shell extraction from PDFs.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1786307029123_0.5789552893327035","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aas-studio/sdk","version":"0.1.1","description":"Official TypeScript SDK for AAS Studio. AI-powered Asset Administration Shell extraction from PDFs.","keywords":["aas","asset-administration-shell","iec-63278","idta","industry-4.0","digital-product-passport","battery-passport","catena-x","eclass"],"homepage":"https://aas-studio.eu","bugs":{"url":"https://github.com/MiguelReisRepo/AAS-Studio/issues"},"repository":{"type":"git","url":"git+https://github.com/MiguelReisRepo/AAS-Studio.git","directory":"sdk/typescript"},"license":"MIT","author":{"name":"AAS Studio"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"engines":{"node":">=18"},"devDependencies":{"typescript":"^5.4.0","@types/node":"^20.0.0"},"_id":"@aas-studio/sdk@0.1.1","gitHead":"e28ff886760930203121218311e9837a5938e925","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-4IVAGUWMNfbNE1RXxADJNnE8pkMEP6iRoSAbg+EgDb+LBC6vyPoSfI7sLt18LFgcvz6cVDX5U/j71pHEP+dRVA==","shasum":"1ba0372e88e32c2cd4494f535e82cda12a622b95","tarball":"https://registry.npmjs.org/@aas-studio/sdk/-/sdk-0.1.1.tgz","fileCount":27,"unpackedSize":198604,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD6fyEqU9I/fMum7ZdIrNS8+TclXISR1LKb5CorPID5SQIgfuFX5EXUjl5k7U8JPllSeXh+5xN+EPzTI1gGar0rbdE="}]},"_npmUser":{"name":"aas-studio.eu","email":"miguelreis@hotmail.it"},"directories":{},"maintainers":[{"name":"aas-studio.eu","email":"miguelreis@hotmail.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.1.1_1786474485451_0.7551647522382507"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-09T20:23:48.987Z","modified":"2026-08-11T18:54:45.769Z","0.1.0":"2026-08-09T20:23:49.274Z","0.1.1":"2026-08-11T18:54:45.604Z"},"bugs":{"url":"https://github.com/MiguelReisRepo/AAS-Studio/issues"},"author":{"name":"AAS Studio"},"license":"MIT","homepage":"https://aas-studio.eu","keywords":["aas","asset-administration-shell","iec-63278","idta","industry-4.0","digital-product-passport","battery-passport","catena-x","eclass"],"repository":{"type":"git","url":"git+https://github.com/MiguelReisRepo/AAS-Studio.git","directory":"sdk/typescript"},"description":"Official TypeScript SDK for AAS Studio. AI-powered Asset Administration Shell extraction from PDFs.","maintainers":[{"name":"aas-studio.eu","email":"miguelreis@hotmail.it"}],"readme":"# `@aas-studio/sdk`: TypeScript SDK for AAS Studio\n\nTyped, zero-dependency client for the [AAS Studio](https://aas-studio.eu)\npublic REST API. Drop a PDF datasheet, get a structured Asset Administration\nShell extraction back.\n\n## Install\n\n```bash\nnpm install @aas-studio/sdk\n# or\npnpm add @aas-studio/sdk\n# or\nyarn add @aas-studio/sdk\n```\n\nRequires Node.js 18+ (or any runtime with built-in `fetch`).\n\n## Auth\n\nGenerate a Bearer key at <https://aas-studio.eu/studio/settings/keys>.\nKeys start with `sk_aas_` and are shown ONCE, so store them in a secret manager.\n\n```ts\nimport { AasStudioClient } from '@aas-studio/sdk'\n\nconst aas = new AasStudioClient({\n  apiKey: process.env.AAS_STUDIO_KEY!,\n})\n```\n\n## Quickstart: extract from a PDF\n\n```ts\nimport { readFileSync } from 'node:fs'\n\nconst pdf = readFileSync('./datasheets/ur10e.pdf')\n\nconst { result, provider, warnings } = await aas.extract({\n  file: pdf,\n  fileName: 'ur10e.pdf',\n  idPrefix: 'urn:acme:aas',\n})\n\nconsole.log(`Asset: ${result.assetIdShort} (${result.submodels.length} submodels)`)\nconsole.log(`Filled fields: ${result.submodels.flatMap(sm => sm.elements).filter(e => e.value).length}`)\nconsole.log(`Provider: ${provider}`)\nif (warnings.length) console.warn(warnings)\n```\n\n## Library: list and fetch saved extractions\n\n```ts\n// List\nconst { extractions, nextCursor } = await aas.listExtractions({ limit: 50 })\nfor (const e of extractions) {\n  console.log(`${e.id}  ${e.name}  (${e.mode}, ${e.sourceCount} sources, certified: ${e.certified})`)\n}\n\n// Detail: full audit-replay payload\nconst { extraction } = await aas.getExtraction(extractions[0].id)\nconsole.log(extraction.aas)   // the AAS itself (assetAdministrationShells + submodels)\nconsole.log(extraction.meta)  // merged ExtractionResult + traces + cert + sourceHash\n```\n\n## Validate / fix existing AAS files\n\n```ts\nconst { valid, errors } = await aas.validate({ file: aasxBuffer })\nif (!valid) console.error(errors)\n\nconst { xml, changed, warnings } = await aas.fix({ file: brokenXmlBuffer })\nif (changed) console.log('Repaired XML:', xml)\n```\n\n## Error handling\n\n```ts\nimport { AuthError, QuotaError, FileTooLargeError, ProviderError } from '@aas-studio/sdk'\n\ntry {\n  await aas.extract({ file: pdf })\n} catch (err) {\n  if (err instanceof QuotaError) {\n    console.error(`Quota: ${err.used}/${err.limit} on plan ${err.plan}`)\n  } else if (err instanceof AuthError) {\n    console.error('Bad API key. Check the dashboard')\n  } else if (err instanceof FileTooLargeError) {\n    console.error('PDF over 20 MB. Split or compress before upload')\n  } else if (err instanceof ProviderError) {\n    console.error(`Provider failed (id=${err.requestId}). Retry-friendly.`)\n  } else {\n    throw err\n  }\n}\n```\n\nEvery error carries `.requestId` (when the server emitted one) for support\ncorrelation. Quote it when you contact us.\n\n## Configuration\n\n```ts\nconst aas = new AasStudioClient({\n  apiKey: process.env.AAS_STUDIO_KEY!,\n\n  // Self-hosted deployment? Point at your own URL:\n  baseUrl: 'https://aas.yourcompany.com/api/v1',\n\n  // Custom fetch (proxy, retries, telemetry, etc.):\n  fetch: customFetch,\n\n  // Default timeout per call. Per-call signal overrides this.\n  timeoutMs: 60_000,\n})\n```\n\n## Cancellation\n\n```ts\nconst ac = new AbortController()\nsetTimeout(() => ac.abort(), 5000)\nawait aas.extract({ file: pdf, signal: ac.signal })\n```\n\n## OpenAPI-generated types\n\nThe SDK also re-exports the auto-generated OpenAPI types so you can\nstrongly-type any v1 endpoint the curated surface doesn't yet cover\n(audit log, GDPR, PKI signing, bulk-instantiate, …):\n\n```ts\nimport type { paths, components, operations } from '@aas-studio/sdk'\n\ntype AuditLogResponse =\n  paths['/api/v1/audit-log']['get']['responses']['200']['content']['application/json']\n```\n\nThese are regenerated from `openapi.json` by the maintainer on every\nrelease (`pnpm sdk:gen`). Drift between wire + types is caught at\nbuild time.\n\n## License\n\nMIT. See [LICENSE](./LICENSE).\n\n## Links\n\n- API docs: <https://aas-studio.eu/docs/api>\n- OpenAPI schema: <https://aas-studio.eu/api/v1/openapi.json>\n- Issues / support: <mailto:miguel.reis@aas-studio.eu?subject=SDK%20issue>\n- Pricing: <https://aas-studio.eu/#pricing>\n","readmeFilename":"README.md"}