{"_id":"@boostmoveo/monday-kit","_rev":"4-e641cd6674d5f278a3e056e02db82649","name":"@boostmoveo/monday-kit","dist-tags":{"latest":"0.1.7"},"versions":{"0.1.4":{"name":"@boostmoveo/monday-kit","version":"0.1.4","author":{"name":"idan_dover"},"license":"ISC","_id":"@boostmoveo/monday-kit@0.1.4","maintainers":[{"name":"idand-boost","email":"idand@moveoboost.com"}],"dist":{"shasum":"49067b04b504971d3d729acb7c427160a687215f","tarball":"https://registry.npmjs.org/@boostmoveo/monday-kit/-/monday-kit-0.1.4.tgz","fileCount":324,"integrity":"sha512-UIDh4izqCoFwZ6vAVQ5nDvI4/RLd/eu7a3rQpEkmtBurUMU+ODJmnbb3qF16Kh9yBcsv2RTMhqfcMsov3a4v4g==","signatures":[{"sig":"MEUCIFhMUwkzvpYRwBOK1P3vAXyCii0rkuXQsUeydDdgAVCOAiEA+4B8AwOJtMTMs3VyUAOsFcjOka8xtZIkYXsBsrpTU8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1448646},"main":"dist/lib/index.js","type":"commonjs","types":"dist/lib/index.d.ts","gitHead":"56c3f4c06aedb32a2aeee8368becb277f1ca7090","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","codegen":"graphql-codegen"},"_npmUser":{"name":"idand-boost","email":"idand@moveoboost.com"},"_npmVersion":"11.6.2","description":"The one toolkit to handle all things monday related with ease","directories":{},"_nodeVersion":"22.17.0","dependencies":{"form-data":"^4.0.5","@mondaydotcomorg/api":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.10.0","@biomejs/biome":"^2.3.2","@graphql-codegen/cli":"^6.1.0","@graphql-codegen/typescript":"^5.0.7","@graphql-codegen/typescript-operations":"^5.0.7"},"_npmOperationalInternal":{"tmp":"tmp/monday-kit_0.1.4_1767512008391_0.4283381869329692","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@boostmoveo/monday-kit","version":"0.1.5","author":{"name":"idan_dover"},"license":"ISC","_id":"@boostmoveo/monday-kit@0.1.5","maintainers":[{"name":"idand-boost","email":"idand@moveoboost.com"}],"dist":{"shasum":"60bcf1c49c882c33ebcbe60594902cde89836469","tarball":"https://registry.npmjs.org/@boostmoveo/monday-kit/-/monday-kit-0.1.5.tgz","fileCount":324,"integrity":"sha512-dq8HLq6EbydaVhp3BvxHYvf/QfcXsO2A77uk7+dlzRVGIe2PoRQxiJwvAzyDZO+pWFpUlufNpM2rs0TcQsEHfQ==","signatures":[{"sig":"MEUCIG1QveL8nduUVeybYaNycDH4W571gL/ETqQCHthQ2r5AAiEA3xdM19YcIdNEGl1hqsfz7Pdgreu/ZcGZGE6PQo9B9ZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1448612},"main":"dist/lib/index.js","type":"commonjs","types":"dist/lib/index.d.ts","gitHead":"56c3f4c06aedb32a2aeee8368becb277f1ca7090","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","codegen":"graphql-codegen"},"_npmUser":{"name":"idand-boost","email":"idand@moveoboost.com"},"_npmVersion":"11.6.2","description":"The one toolkit to handle all things monday related with ease","directories":{},"_nodeVersion":"22.17.0","dependencies":{"form-data":"^4.0.5","@mondaydotcomorg/api":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.10.0","@biomejs/biome":"^2.3.2","@graphql-codegen/cli":"^6.1.0","@graphql-codegen/typescript":"^5.0.7","@graphql-codegen/typescript-operations":"^5.0.7"},"_npmOperationalInternal":{"tmp":"tmp/monday-kit_0.1.5_1767512131181_0.1655228299123772","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@boostmoveo/monday-kit","version":"0.1.6","author":{"name":"idan_dover"},"license":"ISC","_id":"@boostmoveo/monday-kit@0.1.6","maintainers":[{"name":"idand-boost","email":"idand@moveoboost.com"}],"dist":{"shasum":"83b4afa4247c45e53441115599fa39763a034c3a","tarball":"https://registry.npmjs.org/@boostmoveo/monday-kit/-/monday-kit-0.1.6.tgz","fileCount":326,"integrity":"sha512-Yh9Ox1FsBIxqwKorgKhaT7TG91VwdQnY0acF3iXUOgp1+MVp6RPhfgKNnMBwBX8iwVXoAbQt/7MLDQt2a4KsTQ==","signatures":[{"sig":"MEQCIGRgnJAm00Pqr+YkjcixR3VjDkdXiBm/x5dnFJ8GpGRHAiBRlCOlfr5TFUpudM4clL7K3kRxGdm7W2cG0kWnEelMVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1455366},"main":"dist/lib/index.js","type":"commonjs","types":"dist/lib/index.d.ts","gitHead":"fe50025af84b0a6acb53414836bf7e3ff080d26c","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","codegen":"graphql-codegen","fetch:schema":"bash fetch-schema.sh","fetch:generate":"npm run fetch:schema && npm run codegen"},"_npmUser":{"name":"idand-boost","email":"idand@moveoboost.com"},"_npmVersion":"11.6.2","description":"The one toolkit to handle all things monday related with ease","directories":{},"_nodeVersion":"22.17.0","dependencies":{"graphql":"^16.8.2","form-data":"^4.0.5","graphql-request":"^6.1.0","@mondaydotcomorg/api":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.10.0","@biomejs/biome":"^2.3.2","@graphql-codegen/cli":"^6.1.1","@graphql-codegen/typescript":"^5.0.7","@graphql-codegen/typescript-operations":"^5.0.7"},"_npmOperationalInternal":{"tmp":"tmp/monday-kit_0.1.6_1768250095315_0.8913585050007351","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@boostmoveo/monday-kit","version":"0.1.7","description":"The one toolkit to handle all things monday related with ease","license":"ISC","author":{"name":"idan_dover"},"type":"commonjs","main":"dist/lib/index.js","types":"dist/lib/index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","codegen":"graphql-codegen","fetch:schema":"bash fetch-schema.sh","fetch:generate":"npm run fetch:schema && npm run codegen"},"dependencies":{"@mondaydotcomorg/api":"^12.0.1","form-data":"^4.0.5","graphql":"^16.8.2","graphql-request":"^6.1.0"},"devDependencies":{"@biomejs/biome":"^2.3.2","@graphql-codegen/cli":"^6.1.1","@graphql-codegen/typescript":"^5.0.7","@graphql-codegen/typescript-operations":"^5.0.7","@types/node":"^24.10.0"},"gitHead":"acd05b21a480e486be2d00b9c189bcb0b7e798e7","_id":"@boostmoveo/monday-kit@0.1.7","_nodeVersion":"22.17.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-iiDbfyWnzbMjhwPsdrMvZ0CE9lRK3K32Z6ATXBy9qLzIqsUO6yHdpl6a3MboDIAljlNDl9vOWEaH4ohdQ3ZENg==","shasum":"22542f574131882f639cf522a47f8b786a75d495","tarball":"https://registry.npmjs.org/@boostmoveo/monday-kit/-/monday-kit-0.1.7.tgz","fileCount":326,"unpackedSize":1455919,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB1P/ppj92Y8TjqrrIlF9KadUQp0gRAU9sUSiWv6n7e9AiEA9SVQe+rldTupo0/Gu96xG1bo9b/dU5mXXbbBT5atru8="}]},"_npmUser":{"name":"idand-boost","email":"idand@moveoboost.com"},"directories":{},"maintainers":[{"name":"idand-boost","email":"idand@moveoboost.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/monday-kit_0.1.7_1768545432871_0.5649254717136349"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-04T07:33:28.300Z","modified":"2026-01-16T06:37:13.199Z","0.1.4":"2026-01-04T07:33:28.576Z","0.1.5":"2026-01-04T07:35:31.370Z","0.1.6":"2026-01-12T20:34:55.470Z","0.1.7":"2026-01-16T06:37:13.066Z"},"author":{"name":"idan_dover"},"license":"ISC","description":"The one toolkit to handle all things monday related with ease","maintainers":[{"name":"idand-boost","email":"idand@moveoboost.com"}],"readme":"# @boostmoveo/monday-kit\n\n**The one toolkit to handle all things monday.com related with ease.**\n\n---\n\n## Quick Start\n\n### Installation\n\nInstall via npm:\n\n#### using npm\n\n```bash\nnpm install @boostmoveo/monday-kit\n```\n\n#### using yarn\n\n```bash\nyarn add @boostmoveo/monday-kit\n```\n\n### Import & Initialization\n\n```ts\nimport { MondayApi, SeamlessMondayApi } from '@boostmoveo/monday-kit';\n\n// Server-side\nconst monday = new MondayApi({ token: '<YOUR_MONDAY_API_TOKEN>' });\n\n// Client-side (monday.com apps)\nconst monday = new SeamlessMondayApi();\n```\n\n> **Note:** `MondayApi` requires an API token and is intended for backend/server use. `SeamlessMondayApi` is for use inside monday.com apps and does not require a token.\n\n### Peer Dependencies\n\n- `@mondaydotcomorg/api` (installed automatically)\n\n## Mutations\n\n### Create an Item\n\n```ts\nconst result = await monday.mutate.items.createItem({\n  boardId: 12345,\n  groupId: 'topics',\n  itemName: 'New Task',\n});\nconsole.log(result.create_item.id);\n```\n\n### Send a Notification\n\n```ts\nawait monday.notify({\n  userId: 12345,\n  targetId: 67890,\n  targetType: NotificationTargetType.Project, // or 'Post'\n  text: 'You have a new task!',\n});\n```\n\n### Upload a File\n\n```ts\nconst fileBuffer = await readFile('/path/to/file');\nawait monday.files.addFileToColumn({\n  itemId: 12345,\n  columnId: 'files',\n  file: fileBuffer,\n  filename: 'example.pdf',\n});\n```\n\n---\n\n## Queries\n\n### Pagination with Reader Interface\n\nSee the API docs and code comments for more advanced configuration and extension options.\n\n```ts\nconst itemsReader = monday.query.boards.getBoardItems({ boardId: 12345 });\nfor await (const page of itemsReader) {\n  console.log(page.items);\n}\n```\n\n### Automatic Retry Logic\n\nWhen enabled (`retryIfNeeded: true`), the client will automatically retry requests that fail due to rate limits or complexity errors, using the recommended delay from the API. You can also use the static `shouldRetry` method to analyze errors:\n\n```ts\ntry {\n  await monday.query.boards.getBoards({ limit: 1 });\n} catch (err) {\n  const { retry, delayMs } = MondayApi.shouldRetry(err);\n  if (retry) {\n    setTimeout(() => {\n      /* retry logic */\n    }, delayMs);\n  }\n}\n```\n\n### Override options\n\nIf you need to use a different api version or if you want to override the query you send, you may pass the wanted values into the options\n\n```ts\nconst query = `\n  query {\n    me {\n      id\n      name\n    }\n  }\n`;\n\nconst customQueryResult = await monday.query.me.getMe<{\n  me: { id: number; name: string };\n}>({ queryOverride: query, versionOverride: '2025-04' });\n```\n\n> **Note on type safety:** To maintain full IntelliSense and type safety, pass your custom response type as a generic to the function. If your query includes variables, ensure you also define the variable types, especially for pagination-related queries, to ensure the library handles the underlying request correctly.\n\n---\n\n## API Structure\n\n- **MondayApi**: For server-side (Node.js) integrations. Requires an API token.\n- **SeamlessMondayApi**: For client-side (monday.com apps) integrations. No token required.\n\n## Advanced Usage & Customization\n\n### Custom GraphQL Queries\n\nYou can send any custom query or mutation using the `request` or `rawRequest` method:\n\n```ts\nconst query = `\n  query ($boardId: ID!) {\n    boards(ids: [$boardId]) { id name }\n  }\n`;\nconst result = await monday.rawRequest(query, { boardId: 12345 });\nconsole.log(result.data.boards);\n```\n\n### Access queries from the library\n\nOn each resource you can access the queries that are used for each method by using the `queries` field on it\n\n## Supported Resources & Types\n\nBoth `MondayApi` and `SeamlessMondayApi` expose the following main interfaces:\n\n- `query`: Read/query operations (boards, items, users, etc.)\n- `mutate`: Write/mutation operations (create/update boards, items, etc.)\n- `files`: File upload and management\n- `notify`: Send notifications to users\n\nThis library provides full, type-safe access to all major monday.com API resources, including:\n\n- Boards\n- Items\n- Users\n- Groups\n- Columns & Column Values\n- Files\n- Notifications\n- Tags\n- Teams\n- Updates\n- Workspaces\n- Account & Roles\n- Activity Logs\n- Audit Logs\n- Folders & Docs\n- Webhooks\n\n> **Note:** All types are based on the official monday.com API schema and are kept up-to-date with the upstream SDK. If you need a type that is missing, you can extend or override types using TypeScript's utility types.\n\n---\n\n## Tooling to work with the monday api\n\nTo make working with the monday GraphQL API easier and fully type-safe, there is a simple setup command that prepares your project with all the required tooling.\n\nYou can run:\n\n```bash\nnpx @mondaydotcomorg/setup-api@latest\n```\n\nOr, if you already have the **mapps CLI** installed:\n\n```bash\nmapps api:generate\n```\n\n### Generating the schema and types\n\nAfter running one of the commands above, make sure to run:\n\n```bash\nnpm run fetch:generate\n```\n\nThis will:\n\n- Fetch the latest monday GraphQL schema\n- Generate TypeScript types for all your GraphQL queries\n\n> **Important:**\n> Your GraphQL queries must be placed in files whose names end with .graphql.ts (for example: me.graphql.ts).\n> Only queries in files with this suffix are picked up by the code generator and included in the generated types.\n\nOnce you add or update a query, run:\n\n```bash\nnpm run codegen\n```\n\nto generate (or update) the corresponding TypeScript types.\n\n### Example: a type-safe query\n\n```typescript\nimport { gql } from 'graphql-request';\nimport { MondayApi } from '@boostmoveo/monday-kit';\n\nconst meQuery = gql`\n  query getMe {\n    me {\n      id\n      name\n    }\n  }\n`;\n\nconst mondayApi = new MondayApi({ token: '<API_TOKEN>' });\nconst getMeResponse = await mondayApi.request<GetMeQuery>(meQuery);\n```\n\nTo read more you can go to the official tooling [here](https://www.npmjs.com/package/@mondaydotcomorg/setup-api)\n\n---\n\n## Troubleshooting & FAQ\n\n### Type Errors\n\n- For custom types, use the utility types provided (`Maybe`, `DeeplyPartial`, etc.).\n\n### API Errors\n\n- If you receive rate limit or complexity errors, enable `retryIfNeeded` or handle retries manually using `shouldRetry`.\n- Ensure your API token has the correct scopes for the operations you are performing.\n\n### General\n\n- For issues with file uploads, ensure you are passing a valid file stream or buffer.\n- If you encounter a bug, please open an issue with a minimal reproduction.\n\n---\n\n## Contributing, License & Contact\n\n### Contributing\n\nContributions, bug reports, and feature requests are welcome! Please open an issue or submit a pull request on GitHub.\n\n### Contact\n\nMaintained by [Idan Dover](mailto:idand@moveoboost.com).\n","readmeFilename":"README.md"}