{"_id":"@codeforge-main/front-sdk","_rev":"5-f8331ce572c046f601a050d9e5e7f2fb","name":"@codeforge-main/front-sdk","dist-tags":{"latest":"2.3.0"},"versions":{"1.0.0":{"name":"@codeforge-main/front-sdk","version":"1.0.0","author":{"name":"codeforge"},"_id":"@codeforge-main/front-sdk@1.0.0","maintainers":[{"name":"codeforge-main","email":"codeforge.info@gmail.com"}],"dist":{"shasum":"6b7615a08ca52847fa10c7808a69885dfdf02197","tarball":"https://registry.npmjs.org/@codeforge-main/front-sdk/-/front-sdk-1.0.0.tgz","fileCount":5322,"integrity":"sha512-0wJcram3SpfX78wkm1aBRBMONRmsv1nCFKdiHZMQta7kJZoxcX1ieHhp8NPXf6iTb/51TWRwWiVaJ2lq3H/auQ==","signatures":[{"sig":"MEUCIQC/Q/WbfKaIrFGJ80t1RPoFVhl4qmB9yrRQ9LvKeNcYugIgePs/AxxTVKSqfmUsH7rbLqyb5Z/11R0uiFgRRBmAD7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6778607},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"build":"tsc"},"_npmUser":{"name":"codeforge-main","email":"codeforge.info@gmail.com"},"_npmVersion":"10.9.8","description":"> **Unofficial SDK** — generated from @codeforge-main/front-sdk's public OpenAPI specification by the [CodeForge platform](https://www.code-forge.net). Not affiliated with or endorsed by @codeforge-main/front-sdk.","directories":{},"_nodeVersion":"22.23.2","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/front-sdk_1.0.0_1788290584779_0.6718003180528589","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@codeforge-main/front-sdk","version":"2.0.0","author":{"name":"codeforge"},"_id":"@codeforge-main/front-sdk@2.0.0","maintainers":[{"name":"codeforge-main","email":"codeforge.info@gmail.com"}],"dist":{"shasum":"f0ca5fa295be7e5df383761073339c05a2532f57","tarball":"https://registry.npmjs.org/@codeforge-main/front-sdk/-/front-sdk-2.0.0.tgz","fileCount":5322,"integrity":"sha512-s11rpKCbupxTfixnc++nbyDNqnf8bN80kspe/Fja+pAKWZFBweF+U8z1qCH3vMl8lnMuGCkpIig3/0DNIkClOg==","signatures":[{"sig":"MEUCIEj70u2L7kh3ZwnAdBCgTqHJQ9vvU+1dIOMYyWD2wNaiAiEAyG645QNiz3IP/TNfpieKhJsdLNuZ6OWGGtGyFjwpiU4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6778479},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"build":"tsc"},"_npmUser":{"name":"codeforge-main","email":"codeforge.info@gmail.com"},"_npmVersion":"10.9.8","description":"> **Unofficial SDK** — generated by [CodeForge platform](https://www.code-forge.net).","directories":{},"_nodeVersion":"22.23.2","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/front-sdk_2.0.0_1788290684217_0.9921707127242532","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@codeforge-main/front-sdk","version":"2.1.0","author":{"name":"codeforge"},"_id":"@codeforge-main/front-sdk@2.1.0","maintainers":[{"name":"codeforge-main","email":"codeforge.info@gmail.com"}],"dist":{"shasum":"872486d657a7845e225c7256bcd31f8bc24ae345","tarball":"https://registry.npmjs.org/@codeforge-main/front-sdk/-/front-sdk-2.1.0.tgz","fileCount":5322,"integrity":"sha512-rCXsDvMVoosBdc3l+jEL5lgukcy+XKd+XikuoBeBEvA+/CzxoAI3B4PwfaGx/sKkKLAbznYDXE6VMSMn/ZyAag==","signatures":[{"sig":"MEYCIQDD4fW0UyR4Yaji466+gPKeu9ZbFaP+V2m5km9LkIMVUQIhALvYnO0ze4RkRicA6tFClNs2OBHBNgnjoF8ko61Jjzuc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6901489},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"build":"tsc"},"_npmUser":{"name":"codeforge-main","email":"codeforge.info@gmail.com"},"_npmVersion":"10.9.8","description":"> **Unofficial SDK** — generated by [CodeForge platform](https://www.code-forge.net).","directories":{},"_nodeVersion":"22.23.2","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/front-sdk_2.1.0_1788739306022_0.4185256653878242","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@codeforge-main/front-sdk","version":"2.2.0","author":{"name":"codeforge"},"_id":"@codeforge-main/front-sdk@2.2.0","maintainers":[{"name":"codeforge-main","email":"codeforge.info@gmail.com"}],"dist":{"shasum":"09c8cd496632932a067777b181a0e638039daf1f","tarball":"https://registry.npmjs.org/@codeforge-main/front-sdk/-/front-sdk-2.2.0.tgz","fileCount":5322,"integrity":"sha512-Iz2BSs5/d7HqNRnvEFLPkdKTO/Qx2obXt8VLrgdqkijT8jxU7Z3ks6B9k0SfAKC9xUbG/pPr7Kxv6QGd0ut9zg==","signatures":[{"sig":"MEUCIQCtqCzV/sWe1A8oOVoOH4ltHSqTACDi7ZIzoCsncNI5fAIgLo1rfXJdXPlhW9Q+gb37inGoEo1ip06HAnMUWpdu/PQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6901489},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"build":"tsc"},"_npmUser":{"name":"codeforge-main","email":"codeforge.info@gmail.com"},"_npmVersion":"10.9.8","description":"> **Unofficial SDK** — generated by [CodeForge platform](https://www.code-forge.net).","directories":{},"_nodeVersion":"22.23.2","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/front-sdk_2.2.0_1788825711836_0.2610365165516113","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@codeforge-main/front-sdk","version":"2.3.0","description":"> **Unofficial SDK** — generated by [CodeForge platform](https://www.code-forge.net).","author":{"name":"codeforge"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"scripts":{"build":"tsc"},"engines":{"node":">=20"},"dependencies":{},"devDependencies":{"typescript":"^5.9.2"},"_id":"@codeforge-main/front-sdk@2.3.0","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-CuisQ7MQgTvojPFp/T4MLxbrXcBcBXPSPfRgHuhj+oXNC8vpAzGtLEP6uaGz4I9XrEZ4TiZRGzmCef+yO+RUJQ==","shasum":"b7a6654e44eaac80672be0bbcff95c693cb50d64","tarball":"https://registry.npmjs.org/@codeforge-main/front-sdk/-/front-sdk-2.3.0.tgz","fileCount":5322,"unpackedSize":6901489,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAD5Y9cLBXxbgtK4RBoKrS4molmo+XDkzq9eq8ZwjPsIAiEAzLEUiq6ohCKb31DJXqLRR5ZzxpDHte+kLDS0Bz193vQ="}]},"_npmUser":{"name":"codeforge-main","email":"codeforge.info@gmail.com"},"directories":{},"maintainers":[{"name":"codeforge-main","email":"codeforge.info@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/front-sdk_2.3.0_1788912143794_0.7826482216764807"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-01T19:23:04.564Z","modified":"2026-09-09T00:02:24.277Z","1.0.0":"2026-09-01T19:23:04.977Z","2.0.0":"2026-09-01T19:24:44.443Z","2.1.0":"2026-09-07T00:01:46.209Z","2.2.0":"2026-09-08T00:01:52.065Z","2.3.0":"2026-09-09T00:02:24.114Z"},"author":{"name":"codeforge"},"description":"> **Unofficial SDK** — generated by [CodeForge platform](https://www.code-forge.net).","maintainers":[{"name":"codeforge-main","email":"codeforge.info@gmail.com"}],"readme":"> **Unofficial SDK** — generated by [CodeForge platform](https://www.code-forge.net).\n\n---\n\n# @codeforge-main/front-sdk\n\nVersion 2.3.0\n\nFull generator behavior documentation: https://www.code-forge.net/docs\n\nRequires Node 20+ (or a modern browser) — the generated transport uses `AbortSignal.any`\nand `AbortSignal.timeout`.\n\n## Install\n\n```bash\nnpm install @codeforge-main/front-sdk\n```\n\n```bash\nyarn add @codeforge-main/front-sdk\n```\n\n```bash\npnpm add @codeforge-main/front-sdk\n```\n\n## Usage\n\nThis SDK is exposed as a single, fully typed client class. Construct it once with your\nshared configuration and call any API operation as a method — each returns the deserialized\nresponse alongside HTTP metadata.\n\n```ts\nimport { CoreClient } from '@codeforge-main/front-sdk'\n\nconst client = new CoreClient({\n\tbaseUrl: 'https://api2.frontapp.com',\n\tauth: { type: 'bearer', token: 'YOUR_API_TOKEN' },\n})\n\nconst response = await client.listAccountCustomFields()\n\nconsole.log(response.status) // HTTP status code\nconsole.log(response.data)   // typed as ListAccountCustomFieldsResponse_200\n```\n\nThe client holds the shared configuration (`baseUrl`, `auth`, `retry`, `hooks`).\nEach method accepts a per-call context extending `HttpClientContext` — supply the\noperation-specific `payload` / `parameters`, and override any shared field per call.\n\n### Available operations\n\n- `listAccounts`\n- `createAccount`\n- `listAccountCustomFields`\n- `fetchAnAccount`\n- `updateAccount`\n- `deleteAnAccount`\n- `listAccountContacts`\n- `addContactToAccount`\n- `removeContactFromAccount`\n- `createAnalyticsExport`\n- `getAnalyticsExport`\n- `createAnalyticsReport`\n- `getAnalyticsReport`\n- `triggerAppEvent`\n- `listChannels`\n- `getChannel`\n- `updateChannel`\n- `createDraft`\n- `receiveCustomMessages`\n- `createMessage`\n- `validateChannel`\n- `getComment`\n- `updateComment`\n- `downloadAttachmentForAComment`\n- `listCommentMentions`\n- `addCommentReply`\n- `listAllCompanyRules`\n- `listCompanyTicketStatuses`\n- `getTicketStatusById`\n- `listCompanyTags`\n- `createCompanyTag`\n- `listGroups`\n- `createGroup`\n- `deleteGroup`\n- `listContactsInGroup`\n- `addContactsToGroup`\n- `removeContactsFromGroup`\n- `listContactLists`\n- `createContactList`\n- `deleteContactList`\n- `listContactsInContactList`\n- `addContactsToContactList`\n- `removeContactsFromContactList`\n- `listContacts`\n- `createContact`\n- `listContactCustomFields`\n- `mergeContacts`\n- `getContact`\n- `updateAContact`\n- `deleteAContact`\n- `listContactConversations`\n- `addContactHandle`\n- `deleteContactHandle`\n- `listNotes`\n- `addNote`\n- `listConversations`\n- `createConversation`\n- `listConversationCustomFields`\n- `searchConversations`\n- `getConversationById`\n- `updateConversation`\n- `deleteConversation`\n- `updateConversationAssignee`\n- `listConversationComments`\n- `addComment`\n- `listConversationDrafts`\n- `createDraftReply`\n- `listConversationEvents`\n- `listConversationFollowers`\n- `addConversationFollowers`\n- `deleteConversationFollowers`\n- `listConversationInboxes`\n- `addConversationLink`\n- `removeConversationLinks`\n- `listConversationMessages`\n- `createMessageReply`\n- `updateConversationReminders`\n- `addConversationTag`\n- `removeConversationTag`\n- `listCustomFields`\n- `downloadAttachment`\n- `deleteDraft`\n- `editDraft`\n- `listEvents`\n- `getEvent`\n- `listInboxes`\n- `createInbox`\n- `listInboxCustomFields`\n- `getInbox`\n- `listInboxChannels`\n- `createAChannel`\n- `listInboxConversations`\n- `importInboxMessage`\n- `listInboxAccess`\n- `addInboxAccess`\n- `removesInboxAccess`\n- `getAKnowledgeBaseArticle`\n- `deleteAnArticle`\n- `getKnowledgeBaseArticleWithContentInDefaultLocale`\n- `updateArticleContentInDefaultLocale`\n- `downloadAttachmentFromAnArticle`\n- `getKnowledgeBaseArticleWithContentInSpecifiedLocale`\n- `updateArticleContentInSpecifiedLocale`\n- `getAKnowledgeBaseCategory`\n- `deleteAKnowledgeBaseCategory`\n- `listArticlesInACategory`\n- `getKnowledgeBaseCategoryContentInDefaultLocale`\n- `updateKnowledgeBaseCategoryInDefaultLocale`\n- `getKnowledgeBaseCategoryWithContentInSpecifiedLocale`\n- `updateKnowledgeBaseCategoryInSpecifiedLocale`\n- `listKnowledgeBases`\n- `createAKnowledgeBase`\n- `getAKnowledgeBase`\n- `listArticlesInAKnowledgeBase`\n- `createArticleInAKnowledgeBaseInDefaultLocale`\n- `listCategoriesInAKnowledgeBase`\n- `createKnowledgeBaseCategoryInDefaultLocale`\n- `getAKnowledgeBaseWithContentInDefaultLocale`\n- `updateKnowledgeBaseInDefaultLocale`\n- `createArticleInAKnowledgeBaseInSpecifiedLocale`\n- `createKnowledgeBaseCategoryInSpecifiedLocale`\n- `getAKnowledgeBaseWithContentInSpecifiedLocale`\n- `updateKnowledgeBaseInSpecifiedLocale`\n- `listLinks`\n- `createLink`\n- `listLinkCustomFields`\n- `getLink`\n- `updateALink`\n- `listLinkConversations`\n- `apiTokenDetails`\n- `listFolders`\n- `createFolder`\n- `getFolder`\n- `updateFolder`\n- `deleteFolder`\n- `getChildFolders`\n- `createChildFolder`\n- `getChildTemplates`\n- `createChildTemplate`\n- `listMessageTemplates`\n- `createMessageTemplate`\n- `getMessageTemplate`\n- `updateMessageTemplate`\n- `deleteMessageTemplate`\n- `downloadAttachmentForAMessageTemplate`\n- `getMessage`\n- `downloadAttachmentForAMessage`\n- `getMessageSeenStatus`\n- `markMessageSeen`\n- `listRules`\n- `getRule`\n- `listShifts`\n- `createShift`\n- `getShift`\n- `updateShift`\n- `listShiftsTeammates`\n- `addTeammatesToShift`\n- `removeTeammatesFromShift`\n- `getSignatures`\n- `updateSignature`\n- `deleteSignature`\n- `listTags`\n- `createTag`\n- `getTag`\n- `updateATag`\n- `deleteTag`\n- `listTagChildren`\n- `createChildTag`\n- `listTaggedConversations`\n- `listCompanyTeammateGroups`\n- `createCompanyTeammateGroup`\n- `getCompanyTeammateGroup`\n- `updateACompanyTeammateGroup`\n- `deleteCompanyTeammateGroup`\n- `listCompanyTeammateGroupTeamInboxes`\n- `addCompanyTeammateGroupTeamInboxes`\n- `removeCompanyTeammateGroupTeamInboxes`\n- `listCompanyTeammateGroupTeammates`\n- `addCompanyTeammateGroupTeammates`\n- `removeCompanyTeammateGroupTeammates`\n- `listCompanyTeammateGroupTeams`\n- `addCompanyTeammateGroupTeams`\n- `removeCompanyTeammateGroupTeams`\n- `listTeammates`\n- `listTeammateCustomFields`\n- `getTeammate`\n- `updateTeammate`\n- `listTeammateChannels`\n- `listTeammateGroups`\n- `createTeammateGroup`\n- `listTeammateContactLists`\n- `createTeammateContactList`\n- `listTeammateContacts`\n- `createTeammateContact`\n- `listAssignedConversations`\n- `listTeammateInboxes`\n- `listTeammateFolders`\n- `createTeammateFolder`\n- `listTeammateMessageTemplates`\n- `createTeammateMessageTemplate`\n- `listTeammatePrivateInboxes`\n- `createTeammatePrivateInbox`\n- `listTeammateRules`\n- `listTeammateShifts`\n- `listTeammateSignatures`\n- `createTeammateSignature`\n- `listTeammateTags`\n- `createTeammateTag`\n- `listTeammateTimeOffs`\n- `createTimeOff`\n- `listTeams`\n- `getTeam`\n- `listTeamChannels`\n- `listTeamGroups`\n- `createTeamGroup`\n- `listTeamContactLists`\n- `createTeamContactList`\n- `listTeamContacts`\n- `createTeamContact`\n- `listTeamInboxes`\n- `createTeamInbox`\n- `listTeamFolders`\n- `createTeamFolder`\n- `listTeamMessageTemplates`\n- `createTeamMessageTemplate`\n- `listTeamRules`\n- `listTeamShifts`\n- `createTeamShift`\n- `listTeamSignatures`\n- `createTeamSignature`\n- `listTeamTags`\n- `createTeamTag`\n- `addTeammatesToTeam`\n- `removeTeammatesFromTeam`\n- `listTeamTimeOffs`\n- `listTeamViews`\n- `createTeamView`\n- `getTimeOff`\n- `updateTimeOff`\n- `deleteTimeOff`\n- `listViews`\n- `getView`\n- `updateView`\n- `addViewTeammates`\n\n## Transport\n\nEvery request goes through the same transport: a per-attempt timeout, cancellation via\n`AbortSignal`, and an optional custom `fetch`.\n\n```ts\nconst client = new CoreClient({\n\ttimeoutMs: 10_000, // default 60000ms, applied fresh to each retry attempt\n})\n\nconst controller = new AbortController()\nsetTimeout(() => controller.abort(), 5_000)\n\nawait client.listAccountCustomFields({ signal: controller.signal })\n```\n\n`timeoutMs` is per attempt, not per call — a request that times out and then retries gets a\nfresh timer on each attempt, and throws `TimeoutError` if every attempt times out. A\ncaller-triggered `AbortSignal` is never retried; a timeout is, under the same rule as a\nnetwork error. Streaming operations ignore `timeoutMs` and support only caller\ncancellation.\n\n### Custom fetch\n\nPass a `fetch` implementation to route every request through it — a proxy included, via\n[undici](https://github.com/nodejs/undici)'s `ProxyAgent`:\n\n```ts\nimport { ProxyAgent, fetch as undiciFetch } from 'undici'\n\nconst dispatcher = new ProxyAgent('http://localhost:8080')\nconst client = new CoreClient({\n\tfetch: (url, init) => undiciFetch(url, { ...init, dispatcher }),\n})\n```\n\n`hooks.makeRequest` wins when both are set — it replaces the whole transport, and `fetch`\nis read only by the built-in one.\n\n### Raw requests\n\nAn endpoint the generated operations don’t model is still reachable, through the same\nauth, retries, timeout and hooks:\n\n```ts\nconst { data, response } = await client.get('/v1/status')\nawait client.post('/v1/events', { body: { type: 'ping' } })\n\n// the general form, for a method the verb helpers don’t cover:\nawait client.request({ method: 'OPTIONS', path: '/v1/status' })\n```\n\n`path` is joined onto `baseUrl` with the `URL` constructor — a leading `/` resolves from\nthe origin (dropping any path segment `baseUrl` itself carries); a relative segment\nappends after it. A plain-object `body` is JSON-serialized with a JSON `Content-Type`;\npass an already-encoded value (a `string`, `FormData`, ...) to send anything else.\n`data` parses by the response’s own `Content-Type`: JSON via `.json()`, a textual type\nvia `.text()`, anything else as a `Blob`.\n\n## Errors\n\nA non-OK response throws one of these `HttpError` subclasses, picked by an exact status\nmatch first, then any `>= 500` response as `InternalServerError`, then plain `HttpError`\nfor anything else. Every one of them is also an `instanceof HttpError`, so a catch-all\nkeeps working alongside a narrower check.\n\n| Class | Status |\n| --- | --- |\n| `BadRequestError` | 400 |\n| `AuthenticationError` | 401 |\n| `PermissionDeniedError` | 403 |\n| `NotFoundError` | 404 |\n| `ConflictError` | 409 |\n| `UnprocessableEntityError` | 422 |\n| `RateLimitError` | 429 |\n| `InternalServerError` | any `>= 500` |\n\n```ts\nimport { HttpError, NotFoundError } from '@codeforge-main/front-sdk'\n\ntry {\n\tawait client.listAccountCustomFields()\n} catch (error) {\n\tif (error instanceof NotFoundError) {\n\t\t// error.status is narrowed to 404\n\t} else if (error instanceof HttpError) {\n\t\t// any other non-OK response — error.status is number\n\t}\n\tthrow error\n}\n```\n\n## Validation\n\nEvery model is plain data — the shape it has on the wire. This SDK carries no schemas and\nno runtime dependency, so nothing is validated for you: `response.data` is the parsed body\ntyped as the operation declares it.\n\nRegenerate the SDK with validation schemas turned on to get a zod schema exported beside\nevery model type.\n\n> Generated by CodeForge v0.86.9.\n","readmeFilename":"README.md"}