attio-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -0
- package/LICENSE +236 -0
- package/README.md +105 -0
- package/dist/api/attio-client.d.ts +25 -0
- package/dist/api/attio-client.d.ts.map +1 -0
- package/dist/api/attio-client.js +64 -0
- package/dist/api/attio-client.js.map +1 -0
- package/dist/api/attribute-types.d.ts +119 -0
- package/dist/api/attribute-types.d.ts.map +1 -0
- package/dist/api/attribute-types.js +320 -0
- package/dist/api/attribute-types.js.map +1 -0
- package/dist/api/client.d.ts +3 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +61 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/operations/batch.d.ts +55 -0
- package/dist/api/operations/batch.d.ts.map +1 -0
- package/dist/api/operations/batch.js +176 -0
- package/dist/api/operations/batch.js.map +1 -0
- package/dist/api/operations/crud.d.ts +61 -0
- package/dist/api/operations/crud.d.ts.map +1 -0
- package/dist/api/operations/crud.js +192 -0
- package/dist/api/operations/crud.js.map +1 -0
- package/dist/api/operations/index.d.ts +14 -0
- package/dist/api/operations/index.d.ts.map +1 -0
- package/dist/api/operations/index.js +18 -0
- package/dist/api/operations/index.js.map +1 -0
- package/dist/api/operations/lists.d.ts +66 -0
- package/dist/api/operations/lists.d.ts.map +1 -0
- package/dist/api/operations/lists.js +300 -0
- package/dist/api/operations/lists.js.map +1 -0
- package/dist/api/operations/notes.d.ts +29 -0
- package/dist/api/operations/notes.d.ts.map +1 -0
- package/dist/api/operations/notes.js +63 -0
- package/dist/api/operations/notes.js.map +1 -0
- package/dist/api/operations/retry.d.ts +48 -0
- package/dist/api/operations/retry.d.ts.map +1 -0
- package/dist/api/operations/retry.js +98 -0
- package/dist/api/operations/retry.js.map +1 -0
- package/dist/api/operations/search.d.ts +37 -0
- package/dist/api/operations/search.d.ts.map +1 -0
- package/dist/api/operations/search.js +186 -0
- package/dist/api/operations/search.js.map +1 -0
- package/dist/api/operations/tasks.d.ts +20 -0
- package/dist/api/operations/tasks.d.ts.map +1 -0
- package/dist/api/operations/tasks.js +87 -0
- package/dist/api/operations/tasks.js.map +1 -0
- package/dist/api/operations/types.d.ts +61 -0
- package/dist/api/operations/types.d.ts.map +1 -0
- package/dist/api/operations/types.js +10 -0
- package/dist/api/operations/types.js.map +1 -0
- package/dist/cli/commands/attributes.d.ts +34 -0
- package/dist/cli/commands/attributes.d.ts.map +1 -0
- package/dist/cli/commands/attributes.js +171 -0
- package/dist/cli/commands/attributes.js.map +1 -0
- package/dist/cli/discover.d.ts +3 -0
- package/dist/cli/discover.d.ts.map +1 -0
- package/dist/cli/discover.js +72 -0
- package/dist/cli/discover.js.map +1 -0
- package/dist/errors/api-errors.d.ts +191 -0
- package/dist/errors/api-errors.d.ts.map +1 -0
- package/dist/errors/api-errors.js +305 -0
- package/dist/errors/api-errors.js.map +1 -0
- package/dist/errors/company-errors.d.ts +40 -0
- package/dist/errors/company-errors.d.ts.map +1 -0
- package/dist/errors/company-errors.js +62 -0
- package/dist/errors/company-errors.js.map +1 -0
- package/dist/errors/value-match-error.d.ts +15 -0
- package/dist/errors/value-match-error.d.ts.map +1 -0
- package/dist/errors/value-match-error.js +40 -0
- package/dist/errors/value-match-error.js.map +1 -0
- package/dist/handlers/error-interceptor.d.ts +6 -0
- package/dist/handlers/error-interceptor.d.ts.map +1 -0
- package/dist/handlers/error-interceptor.js +17 -0
- package/dist/handlers/error-interceptor.js.map +1 -0
- package/dist/handlers/rate-limited-handler.d.ts +17 -0
- package/dist/handlers/rate-limited-handler.d.ts.map +1 -0
- package/dist/handlers/rate-limited-handler.js +126 -0
- package/dist/handlers/rate-limited-handler.js.map +1 -0
- package/dist/handlers/resources.d.ts +11 -0
- package/dist/handlers/resources.d.ts.map +1 -0
- package/dist/handlers/resources.js +109 -0
- package/dist/handlers/resources.js.map +1 -0
- package/dist/handlers/tool-configs/companies/attributes.d.ts +85 -0
- package/dist/handlers/tool-configs/companies/attributes.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/attributes.js +203 -0
- package/dist/handlers/tool-configs/companies/attributes.js.map +1 -0
- package/dist/handlers/tool-configs/companies/batch.d.ts +145 -0
- package/dist/handlers/tool-configs/companies/batch.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/batch.js +249 -0
- package/dist/handlers/tool-configs/companies/batch.js.map +1 -0
- package/dist/handlers/tool-configs/companies/crud.d.ts +103 -0
- package/dist/handlers/tool-configs/companies/crud.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/crud.js +157 -0
- package/dist/handlers/tool-configs/companies/crud.js.map +1 -0
- package/dist/handlers/tool-configs/companies/definitions.d.ts +5 -0
- package/dist/handlers/tool-configs/companies/definitions.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/definitions.js +9 -0
- package/dist/handlers/tool-configs/companies/definitions.js.map +1 -0
- package/dist/handlers/tool-configs/companies/formatters.d.ts +42 -0
- package/dist/handlers/tool-configs/companies/formatters.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/formatters.js +324 -0
- package/dist/handlers/tool-configs/companies/formatters.js.map +1 -0
- package/dist/handlers/tool-configs/companies/index.d.ts +642 -0
- package/dist/handlers/tool-configs/companies/index.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/index.js +86 -0
- package/dist/handlers/tool-configs/companies/index.js.map +1 -0
- package/dist/handlers/tool-configs/companies/notes.d.ts +61 -0
- package/dist/handlers/tool-configs/companies/notes.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/notes.js +109 -0
- package/dist/handlers/tool-configs/companies/notes.js.map +1 -0
- package/dist/handlers/tool-configs/companies/relationships.d.ts +137 -0
- package/dist/handlers/tool-configs/companies/relationships.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/relationships.js +163 -0
- package/dist/handlers/tool-configs/companies/relationships.js.map +1 -0
- package/dist/handlers/tool-configs/companies/search.d.ts +101 -0
- package/dist/handlers/tool-configs/companies/search.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/search.js +163 -0
- package/dist/handlers/tool-configs/companies/search.js.map +1 -0
- package/dist/handlers/tool-configs/companies/types.d.ts +6 -0
- package/dist/handlers/tool-configs/companies/types.d.ts.map +1 -0
- package/dist/handlers/tool-configs/companies/types.js +2 -0
- package/dist/handlers/tool-configs/companies/types.js.map +1 -0
- package/dist/handlers/tool-configs/index.d.ts +12 -0
- package/dist/handlers/tool-configs/index.d.ts.map +1 -0
- package/dist/handlers/tool-configs/index.js +12 -0
- package/dist/handlers/tool-configs/index.js.map +1 -0
- package/dist/handlers/tool-configs/lists.d.ts +459 -0
- package/dist/handlers/tool-configs/lists.d.ts.map +1 -0
- package/dist/handlers/tool-configs/lists.js +597 -0
- package/dist/handlers/tool-configs/lists.js.map +1 -0
- package/dist/handlers/tool-configs/paginated-people.d.ts +197 -0
- package/dist/handlers/tool-configs/paginated-people.d.ts.map +1 -0
- package/dist/handlers/tool-configs/paginated-people.js +256 -0
- package/dist/handlers/tool-configs/paginated-people.js.map +1 -0
- package/dist/handlers/tool-configs/people/activity-search.d.ts +98 -0
- package/dist/handlers/tool-configs/people/activity-search.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people/activity-search.js +113 -0
- package/dist/handlers/tool-configs/people/activity-search.js.map +1 -0
- package/dist/handlers/tool-configs/people/advanced-search.d.ts +62 -0
- package/dist/handlers/tool-configs/people/advanced-search.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people/advanced-search.js +74 -0
- package/dist/handlers/tool-configs/people/advanced-search.js.map +1 -0
- package/dist/handlers/tool-configs/people/crud.d.ts +63 -0
- package/dist/handlers/tool-configs/people/crud.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people/crud.js +71 -0
- package/dist/handlers/tool-configs/people/crud.js.map +1 -0
- package/dist/handlers/tool-configs/people/date-search.d.ts +42 -0
- package/dist/handlers/tool-configs/people/date-search.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people/date-search.js +93 -0
- package/dist/handlers/tool-configs/people/date-search.js.map +1 -0
- package/dist/handlers/tool-configs/people/formatters.d.ts +19 -0
- package/dist/handlers/tool-configs/people/formatters.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people/formatters.js +98 -0
- package/dist/handlers/tool-configs/people/formatters.js.map +1 -0
- package/dist/handlers/tool-configs/people/index.d.ts +407 -0
- package/dist/handlers/tool-configs/people/index.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people/index.js +30 -0
- package/dist/handlers/tool-configs/people/index.js.map +1 -0
- package/dist/handlers/tool-configs/people/notes.d.ts +38 -0
- package/dist/handlers/tool-configs/people/notes.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people/notes.js +57 -0
- package/dist/handlers/tool-configs/people/notes.js.map +1 -0
- package/dist/handlers/tool-configs/people/relationships.d.ts +112 -0
- package/dist/handlers/tool-configs/people/relationships.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people/relationships.js +173 -0
- package/dist/handlers/tool-configs/people/relationships.js.map +1 -0
- package/dist/handlers/tool-configs/people/search.d.ts +53 -0
- package/dist/handlers/tool-configs/people/search.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people/search.js +61 -0
- package/dist/handlers/tool-configs/people/search.js.map +1 -0
- package/dist/handlers/tool-configs/people-fix-complete.d.ts +6 -0
- package/dist/handlers/tool-configs/people-fix-complete.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people-fix-complete.js +76 -0
- package/dist/handlers/tool-configs/people-fix-complete.js.map +1 -0
- package/dist/handlers/tool-configs/people-fixed.d.ts +12 -0
- package/dist/handlers/tool-configs/people-fixed.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people-fixed.js +58 -0
- package/dist/handlers/tool-configs/people-fixed.js.map +1 -0
- package/dist/handlers/tool-configs/people-types.d.ts +32 -0
- package/dist/handlers/tool-configs/people-types.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people-types.js +5 -0
- package/dist/handlers/tool-configs/people-types.js.map +1 -0
- package/dist/handlers/tool-configs/people.d.ts +599 -0
- package/dist/handlers/tool-configs/people.d.ts.map +1 -0
- package/dist/handlers/tool-configs/people.js +817 -0
- package/dist/handlers/tool-configs/people.js.map +1 -0
- package/dist/handlers/tool-configs/prompts.d.ts +69 -0
- package/dist/handlers/tool-configs/prompts.d.ts.map +1 -0
- package/dist/handlers/tool-configs/prompts.js +90 -0
- package/dist/handlers/tool-configs/prompts.js.map +1 -0
- package/dist/handlers/tool-configs/rate-limited-people.d.ts +203 -0
- package/dist/handlers/tool-configs/rate-limited-people.d.ts.map +1 -0
- package/dist/handlers/tool-configs/rate-limited-people.js +44 -0
- package/dist/handlers/tool-configs/rate-limited-people.js.map +1 -0
- package/dist/handlers/tool-configs/records/index.d.ts +282 -0
- package/dist/handlers/tool-configs/records/index.d.ts.map +1 -0
- package/dist/handlers/tool-configs/records/index.js +277 -0
- package/dist/handlers/tool-configs/records/index.js.map +1 -0
- package/dist/handlers/tool-configs/records.d.ts +282 -0
- package/dist/handlers/tool-configs/records.d.ts.map +1 -0
- package/dist/handlers/tool-configs/records.js +277 -0
- package/dist/handlers/tool-configs/records.js.map +1 -0
- package/dist/handlers/tool-configs/resource-specific-tools.d.ts +15 -0
- package/dist/handlers/tool-configs/resource-specific-tools.d.ts.map +1 -0
- package/dist/handlers/tool-configs/resource-specific-tools.js +33 -0
- package/dist/handlers/tool-configs/resource-specific-tools.js.map +1 -0
- package/dist/handlers/tool-configs/tasks.d.ts +127 -0
- package/dist/handlers/tool-configs/tasks.d.ts.map +1 -0
- package/dist/handlers/tool-configs/tasks.js +95 -0
- package/dist/handlers/tool-configs/tasks.js.map +1 -0
- package/dist/handlers/tool-types.d.ts +47 -0
- package/dist/handlers/tool-types.d.ts.map +1 -0
- package/dist/handlers/tool-types.js +2 -0
- package/dist/handlers/tool-types.js.map +1 -0
- package/dist/handlers/tools/config-verifier.d.ts +27 -0
- package/dist/handlers/tools/config-verifier.d.ts.map +1 -0
- package/dist/handlers/tools/config-verifier.js +108 -0
- package/dist/handlers/tools/config-verifier.js.map +1 -0
- package/dist/handlers/tools/dispatcher/core.d.ts +12 -0
- package/dist/handlers/tools/dispatcher/core.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/core.js +276 -0
- package/dist/handlers/tools/dispatcher/core.js.map +1 -0
- package/dist/handlers/tools/dispatcher/formatting.d.ts +17 -0
- package/dist/handlers/tools/dispatcher/formatting.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/formatting.js +25 -0
- package/dist/handlers/tools/dispatcher/formatting.js.map +1 -0
- package/dist/handlers/tools/dispatcher/logging.d.ts +63 -0
- package/dist/handlers/tools/dispatcher/logging.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/logging.js +108 -0
- package/dist/handlers/tools/dispatcher/logging.js.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/batch.d.ts +29 -0
- package/dist/handlers/tools/dispatcher/operations/batch.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/batch.js +137 -0
- package/dist/handlers/tools/dispatcher/operations/batch.js.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/crud.d.ts +25 -0
- package/dist/handlers/tools/dispatcher/operations/crud.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/crud.js +110 -0
- package/dist/handlers/tools/dispatcher/operations/crud.js.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/details.d.ts +13 -0
- package/dist/handlers/tools/dispatcher/operations/details.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/details.js +52 -0
- package/dist/handlers/tools/dispatcher/operations/details.js.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/info.d.ts +25 -0
- package/dist/handlers/tools/dispatcher/operations/info.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/info.js +82 -0
- package/dist/handlers/tools/dispatcher/operations/info.js.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/lists.d.ts +62 -0
- package/dist/handlers/tools/dispatcher/operations/lists.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/lists.js +283 -0
- package/dist/handlers/tools/dispatcher/operations/lists.js.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/notes.d.ts +17 -0
- package/dist/handlers/tools/dispatcher/operations/notes.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/notes.js +102 -0
- package/dist/handlers/tools/dispatcher/operations/notes.js.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/search.d.ts +43 -0
- package/dist/handlers/tools/dispatcher/operations/search.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/operations/search.js +190 -0
- package/dist/handlers/tools/dispatcher/operations/search.js.map +1 -0
- package/dist/handlers/tools/dispatcher/validation.d.ts +27 -0
- package/dist/handlers/tools/dispatcher/validation.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher/validation.js +47 -0
- package/dist/handlers/tools/dispatcher/validation.js.map +1 -0
- package/dist/handlers/tools/dispatcher.d.ts +11 -0
- package/dist/handlers/tools/dispatcher.d.ts.map +1 -0
- package/dist/handlers/tools/dispatcher.js +15 -0
- package/dist/handlers/tools/dispatcher.js.map +1 -0
- package/dist/handlers/tools/error-types.d.ts +33 -0
- package/dist/handlers/tools/error-types.d.ts.map +1 -0
- package/dist/handlers/tools/error-types.js +21 -0
- package/dist/handlers/tools/error-types.js.map +1 -0
- package/dist/handlers/tools/formatters.d.ts +43 -0
- package/dist/handlers/tools/formatters.d.ts.map +1 -0
- package/dist/handlers/tools/formatters.js +170 -0
- package/dist/handlers/tools/formatters.js.map +1 -0
- package/dist/handlers/tools/index.d.ts +15 -0
- package/dist/handlers/tools/index.d.ts.map +1 -0
- package/dist/handlers/tools/index.js +34 -0
- package/dist/handlers/tools/index.js.map +1 -0
- package/dist/handlers/tools/registry.d.ts +1874 -0
- package/dist/handlers/tools/registry.d.ts.map +1 -0
- package/dist/handlers/tools/registry.js +103 -0
- package/dist/handlers/tools/registry.js.map +1 -0
- package/dist/health/http-server.d.ts +24 -0
- package/dist/health/http-server.d.ts.map +1 -0
- package/dist/health/http-server.js +106 -0
- package/dist/health/http-server.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +238 -0
- package/dist/index.js.map +1 -0
- package/dist/objects/base-operations.d.ts +41 -0
- package/dist/objects/base-operations.d.ts.map +1 -0
- package/dist/objects/base-operations.js +116 -0
- package/dist/objects/base-operations.js.map +1 -0
- package/dist/objects/batch-companies.d.ts +112 -0
- package/dist/objects/batch-companies.d.ts.map +1 -0
- package/dist/objects/batch-companies.js +347 -0
- package/dist/objects/batch-companies.js.map +1 -0
- package/dist/objects/companies/attributes.d.ts +83 -0
- package/dist/objects/companies/attributes.d.ts.map +1 -0
- package/dist/objects/companies/attributes.js +426 -0
- package/dist/objects/companies/attributes.js.map +1 -0
- package/dist/objects/companies/basic.d.ts +117 -0
- package/dist/objects/companies/basic.d.ts.map +1 -0
- package/dist/objects/companies/basic.js +367 -0
- package/dist/objects/companies/basic.js.map +1 -0
- package/dist/objects/companies/batch.d.ts +6 -0
- package/dist/objects/companies/batch.d.ts.map +1 -0
- package/dist/objects/companies/batch.js +6 -0
- package/dist/objects/companies/batch.js.map +1 -0
- package/dist/objects/companies/index.d.ts +13 -0
- package/dist/objects/companies/index.d.ts.map +1 -0
- package/dist/objects/companies/index.js +17 -0
- package/dist/objects/companies/index.js.map +1 -0
- package/dist/objects/companies/notes.d.ts +26 -0
- package/dist/objects/companies/notes.d.ts.map +1 -0
- package/dist/objects/companies/notes.js +199 -0
- package/dist/objects/companies/notes.js.map +1 -0
- package/dist/objects/companies/relationships.d.ts +41 -0
- package/dist/objects/companies/relationships.d.ts.map +1 -0
- package/dist/objects/companies/relationships.js +142 -0
- package/dist/objects/companies/relationships.js.map +1 -0
- package/dist/objects/companies/search.d.ts +158 -0
- package/dist/objects/companies/search.d.ts.map +1 -0
- package/dist/objects/companies/search.js +463 -0
- package/dist/objects/companies/search.js.map +1 -0
- package/dist/objects/companies/types.d.ts +27 -0
- package/dist/objects/companies/types.d.ts.map +1 -0
- package/dist/objects/companies/types.js +3 -0
- package/dist/objects/companies/types.js.map +1 -0
- package/dist/objects/lists.d.ts +148 -0
- package/dist/objects/lists.d.ts.map +1 -0
- package/dist/objects/lists.js +586 -0
- package/dist/objects/lists.js.map +1 -0
- package/dist/objects/paginated-people.d.ts +50 -0
- package/dist/objects/paginated-people.d.ts.map +1 -0
- package/dist/objects/paginated-people.js +171 -0
- package/dist/objects/paginated-people.js.map +1 -0
- package/dist/objects/people/basic.d.ts +90 -0
- package/dist/objects/people/basic.d.ts.map +1 -0
- package/dist/objects/people/basic.js +157 -0
- package/dist/objects/people/basic.js.map +1 -0
- package/dist/objects/people/batch.d.ts +24 -0
- package/dist/objects/people/batch.d.ts.map +1 -0
- package/dist/objects/people/batch.js +145 -0
- package/dist/objects/people/batch.js.map +1 -0
- package/dist/objects/people/index.d.ts +11 -0
- package/dist/objects/people/index.d.ts.map +1 -0
- package/dist/objects/people/index.js +17 -0
- package/dist/objects/people/index.js.map +1 -0
- package/dist/objects/people/notes.d.ts +20 -0
- package/dist/objects/people/notes.d.ts.map +1 -0
- package/dist/objects/people/notes.js +60 -0
- package/dist/objects/people/notes.js.map +1 -0
- package/dist/objects/people/relationships.d.ts +23 -0
- package/dist/objects/people/relationships.d.ts.map +1 -0
- package/dist/objects/people/relationships.js +116 -0
- package/dist/objects/people/relationships.js.map +1 -0
- package/dist/objects/people/search.d.ts +83 -0
- package/dist/objects/people/search.d.ts.map +1 -0
- package/dist/objects/people/search.js +286 -0
- package/dist/objects/people/search.js.map +1 -0
- package/dist/objects/people/types.d.ts +37 -0
- package/dist/objects/people/types.d.ts.map +1 -0
- package/dist/objects/people/types.js +71 -0
- package/dist/objects/people/types.js.map +1 -0
- package/dist/objects/people-write.d.ts +71 -0
- package/dist/objects/people-write.d.ts.map +1 -0
- package/dist/objects/people-write.js +261 -0
- package/dist/objects/people-write.js.map +1 -0
- package/dist/objects/records/formatters.d.ts +20 -0
- package/dist/objects/records/formatters.d.ts.map +1 -0
- package/dist/objects/records/formatters.js +47 -0
- package/dist/objects/records/formatters.js.map +1 -0
- package/dist/objects/records/index.d.ts +74 -0
- package/dist/objects/records/index.d.ts.map +1 -0
- package/dist/objects/records/index.js +374 -0
- package/dist/objects/records/index.js.map +1 -0
- package/dist/objects/records.d.ts +88 -0
- package/dist/objects/records.d.ts.map +1 -0
- package/dist/objects/records.js +432 -0
- package/dist/objects/records.js.map +1 -0
- package/dist/objects/tasks.d.ts +19 -0
- package/dist/objects/tasks.d.ts.map +1 -0
- package/dist/objects/tasks.js +23 -0
- package/dist/objects/tasks.js.map +1 -0
- package/dist/prompts/error-handler.d.ts +28 -0
- package/dist/prompts/error-handler.d.ts.map +1 -0
- package/dist/prompts/error-handler.js +47 -0
- package/dist/prompts/error-handler.js.map +1 -0
- package/dist/prompts/handlers.d.ts +49 -0
- package/dist/prompts/handlers.d.ts.map +1 -0
- package/dist/prompts/handlers.js +353 -0
- package/dist/prompts/handlers.js.map +1 -0
- package/dist/prompts/index.d.ts +11 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +15 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/templates/companies.d.ts +10 -0
- package/dist/prompts/templates/companies.d.ts.map +1 -0
- package/dist/prompts/templates/companies.js +128 -0
- package/dist/prompts/templates/companies.js.map +1 -0
- package/dist/prompts/templates/index.d.ts +42 -0
- package/dist/prompts/templates/index.d.ts.map +1 -0
- package/dist/prompts/templates/index.js +58 -0
- package/dist/prompts/templates/index.js.map +1 -0
- package/dist/prompts/templates/lists.d.ts +10 -0
- package/dist/prompts/templates/lists.d.ts.map +1 -0
- package/dist/prompts/templates/lists.js +127 -0
- package/dist/prompts/templates/lists.js.map +1 -0
- package/dist/prompts/templates/notes.d.ts +10 -0
- package/dist/prompts/templates/notes.d.ts.map +1 -0
- package/dist/prompts/templates/notes.js +119 -0
- package/dist/prompts/templates/notes.js.map +1 -0
- package/dist/prompts/templates/people.d.ts +10 -0
- package/dist/prompts/templates/people.d.ts.map +1 -0
- package/dist/prompts/templates/people.js +127 -0
- package/dist/prompts/templates/people.js.map +1 -0
- package/dist/prompts/types.d.ts +52 -0
- package/dist/prompts/types.d.ts.map +1 -0
- package/dist/prompts/types.js +5 -0
- package/dist/prompts/types.js.map +1 -0
- package/dist/types/attio.d.ts +424 -0
- package/dist/types/attio.d.ts.map +1 -0
- package/dist/types/attio.js +116 -0
- package/dist/types/attio.js.map +1 -0
- package/dist/types/company-types.d.ts +52 -0
- package/dist/types/company-types.d.ts.map +1 -0
- package/dist/types/company-types.js +5 -0
- package/dist/types/company-types.js.map +1 -0
- package/dist/types/tool-types.d.ts +262 -0
- package/dist/types/tool-types.d.ts.map +1 -0
- package/dist/types/tool-types.js +6 -0
- package/dist/types/tool-types.js.map +1 -0
- package/dist/utils/api-fallback.d.ts +39 -0
- package/dist/utils/api-fallback.d.ts.map +1 -0
- package/dist/utils/api-fallback.js +94 -0
- package/dist/utils/api-fallback.js.map +1 -0
- package/dist/utils/attribute-mapping/attribute-mappers.d.ts +39 -0
- package/dist/utils/attribute-mapping/attribute-mappers.d.ts.map +1 -0
- package/dist/utils/attribute-mapping/attribute-mappers.js +394 -0
- package/dist/utils/attribute-mapping/attribute-mappers.js.map +1 -0
- package/dist/utils/attribute-mapping/filter-translator.d.ts +9 -0
- package/dist/utils/attribute-mapping/filter-translator.d.ts.map +1 -0
- package/dist/utils/attribute-mapping/filter-translator.js +104 -0
- package/dist/utils/attribute-mapping/filter-translator.js.map +1 -0
- package/dist/utils/attribute-mapping/index.d.ts +10 -0
- package/dist/utils/attribute-mapping/index.d.ts.map +1 -0
- package/dist/utils/attribute-mapping/index.js +12 -0
- package/dist/utils/attribute-mapping/index.js.map +1 -0
- package/dist/utils/attribute-mapping/legacy-maps.d.ts +11 -0
- package/dist/utils/attribute-mapping/legacy-maps.d.ts.map +1 -0
- package/dist/utils/attribute-mapping/legacy-maps.js +54 -0
- package/dist/utils/attribute-mapping/legacy-maps.js.map +1 -0
- package/dist/utils/attribute-mapping/mapping-utils.d.ts +90 -0
- package/dist/utils/attribute-mapping/mapping-utils.d.ts.map +1 -0
- package/dist/utils/attribute-mapping/mapping-utils.js +145 -0
- package/dist/utils/attribute-mapping/mapping-utils.js.map +1 -0
- package/dist/utils/auto-discovery.d.ts +22 -0
- package/dist/utils/auto-discovery.d.ts.map +1 -0
- package/dist/utils/auto-discovery.js +143 -0
- package/dist/utils/auto-discovery.js.map +1 -0
- package/dist/utils/cli-colors.d.ts +36 -0
- package/dist/utils/cli-colors.d.ts.map +1 -0
- package/dist/utils/cli-colors.js +35 -0
- package/dist/utils/cli-colors.js.map +1 -0
- package/dist/utils/config-loader.d.ts +41 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +167 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/config-migration.d.ts +140 -0
- package/dist/utils/config-migration.d.ts.map +1 -0
- package/dist/utils/config-migration.js +310 -0
- package/dist/utils/config-migration.js.map +1 -0
- package/dist/utils/date-utils.d.ts +63 -0
- package/dist/utils/date-utils.d.ts.map +1 -0
- package/dist/utils/date-utils.js +329 -0
- package/dist/utils/date-utils.js.map +1 -0
- package/dist/utils/debug-b2b-segment.d.ts +2 -0
- package/dist/utils/debug-b2b-segment.d.ts.map +1 -0
- package/dist/utils/debug-b2b-segment.js +67 -0
- package/dist/utils/debug-b2b-segment.js.map +1 -0
- package/dist/utils/domain-utils.d.ts +46 -0
- package/dist/utils/domain-utils.d.ts.map +1 -0
- package/dist/utils/domain-utils.js +143 -0
- package/dist/utils/domain-utils.js.map +1 -0
- package/dist/utils/dynamic-import.d.ts +33 -0
- package/dist/utils/dynamic-import.d.ts.map +1 -0
- package/dist/utils/dynamic-import.js +41 -0
- package/dist/utils/dynamic-import.js.map +1 -0
- package/dist/utils/error-enhancer.d.ts +23 -0
- package/dist/utils/error-enhancer.d.ts.map +1 -0
- package/dist/utils/error-enhancer.js +188 -0
- package/dist/utils/error-enhancer.js.map +1 -0
- package/dist/utils/error-handler.d.ts +89 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +336 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/filters/builders/activity.d.ts +13 -0
- package/dist/utils/filters/builders/activity.d.ts.map +1 -0
- package/dist/utils/filters/builders/activity.js +65 -0
- package/dist/utils/filters/builders/activity.js.map +1 -0
- package/dist/utils/filters/builders/basic.d.ts +13 -0
- package/dist/utils/filters/builders/basic.d.ts.map +1 -0
- package/dist/utils/filters/builders/basic.js +36 -0
- package/dist/utils/filters/builders/basic.js.map +1 -0
- package/dist/utils/filters/builders/complex.d.ts +31 -0
- package/dist/utils/filters/builders/complex.d.ts.map +1 -0
- package/dist/utils/filters/builders/complex.js +92 -0
- package/dist/utils/filters/builders/complex.js.map +1 -0
- package/dist/utils/filters/builders/date.d.ts +17 -0
- package/dist/utils/filters/builders/date.d.ts.map +1 -0
- package/dist/utils/filters/builders/date.js +51 -0
- package/dist/utils/filters/builders/date.js.map +1 -0
- package/dist/utils/filters/builders/index.d.ts +8 -0
- package/dist/utils/filters/builders/index.d.ts.map +1 -0
- package/dist/utils/filters/builders/index.js +8 -0
- package/dist/utils/filters/builders/index.js.map +1 -0
- package/dist/utils/filters/builders/numeric.d.ts +17 -0
- package/dist/utils/filters/builders/numeric.d.ts.map +1 -0
- package/dist/utils/filters/builders/numeric.js +61 -0
- package/dist/utils/filters/builders/numeric.js.map +1 -0
- package/dist/utils/filters/builders/text.d.ts +17 -0
- package/dist/utils/filters/builders/text.d.ts.map +1 -0
- package/dist/utils/filters/builders/text.js +47 -0
- package/dist/utils/filters/builders/text.js.map +1 -0
- package/dist/utils/filters/builders/types.d.ts +2 -0
- package/dist/utils/filters/builders/types.d.ts.map +1 -0
- package/dist/utils/filters/builders/types.js +2 -0
- package/dist/utils/filters/builders/types.js.map +1 -0
- package/dist/utils/filters/builders.d.ts +2 -0
- package/dist/utils/filters/builders.d.ts.map +1 -0
- package/dist/utils/filters/builders.js +2 -0
- package/dist/utils/filters/builders.js.map +1 -0
- package/dist/utils/filters/cache.d.ts +80 -0
- package/dist/utils/filters/cache.d.ts.map +1 -0
- package/dist/utils/filters/cache.js +212 -0
- package/dist/utils/filters/cache.js.map +1 -0
- package/dist/utils/filters/index.d.ts +51 -0
- package/dist/utils/filters/index.d.ts.map +1 -0
- package/dist/utils/filters/index.js +67 -0
- package/dist/utils/filters/index.js.map +1 -0
- package/dist/utils/filters/operators.d.ts +65 -0
- package/dist/utils/filters/operators.d.ts.map +1 -0
- package/dist/utils/filters/operators.js +214 -0
- package/dist/utils/filters/operators.js.map +1 -0
- package/dist/utils/filters/relationship.d.ts +81 -0
- package/dist/utils/filters/relationship.d.ts.map +1 -0
- package/dist/utils/filters/relationship.js +393 -0
- package/dist/utils/filters/relationship.js.map +1 -0
- package/dist/utils/filters/translators.d.ts +120 -0
- package/dist/utils/filters/translators.d.ts.map +1 -0
- package/dist/utils/filters/translators.js +397 -0
- package/dist/utils/filters/translators.js.map +1 -0
- package/dist/utils/filters/types.d.ts +77 -0
- package/dist/utils/filters/types.d.ts.map +1 -0
- package/dist/utils/filters/types.js +85 -0
- package/dist/utils/filters/types.js.map +1 -0
- package/dist/utils/filters/utils.d.ts +86 -0
- package/dist/utils/filters/utils.d.ts.map +1 -0
- package/dist/utils/filters/utils.js +142 -0
- package/dist/utils/filters/utils.js.map +1 -0
- package/dist/utils/filters/validation-utils.d.ts +123 -0
- package/dist/utils/filters/validation-utils.d.ts.map +1 -0
- package/dist/utils/filters/validation-utils.js +282 -0
- package/dist/utils/filters/validation-utils.js.map +1 -0
- package/dist/utils/filters/validators.d.ts +73 -0
- package/dist/utils/filters/validators.d.ts.map +1 -0
- package/dist/utils/filters/validators.js +311 -0
- package/dist/utils/filters/validators.js.map +1 -0
- package/dist/utils/json-serializer.d.ts +68 -0
- package/dist/utils/json-serializer.d.ts.map +1 -0
- package/dist/utils/json-serializer.js +235 -0
- package/dist/utils/json-serializer.js.map +1 -0
- package/dist/utils/logger.d.ts +226 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +323 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/numeric-utils.d.ts +27 -0
- package/dist/utils/numeric-utils.d.ts.map +1 -0
- package/dist/utils/numeric-utils.js +83 -0
- package/dist/utils/numeric-utils.js.map +1 -0
- package/dist/utils/pagination.d.ts +85 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +169 -0
- package/dist/utils/pagination.js.map +1 -0
- package/dist/utils/person-lookup.d.ts +35 -0
- package/dist/utils/person-lookup.d.ts.map +1 -0
- package/dist/utils/person-lookup.js +67 -0
- package/dist/utils/person-lookup.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +82 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +159 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/record-utils.d.ts +74 -0
- package/dist/utils/record-utils.d.ts.map +1 -0
- package/dist/utils/record-utils.js +312 -0
- package/dist/utils/record-utils.js.map +1 -0
- package/dist/utils/relationship-utils.d.ts +61 -0
- package/dist/utils/relationship-utils.d.ts.map +1 -0
- package/dist/utils/relationship-utils.js +242 -0
- package/dist/utils/relationship-utils.js.map +1 -0
- package/dist/utils/response-formatter.d.ts +121 -0
- package/dist/utils/response-formatter.d.ts.map +1 -0
- package/dist/utils/response-formatter.js +188 -0
- package/dist/utils/response-formatter.js.map +1 -0
- package/dist/utils/uri-parser.d.ts +18 -0
- package/dist/utils/uri-parser.d.ts.map +1 -0
- package/dist/utils/uri-parser.js +31 -0
- package/dist/utils/uri-parser.js.map +1 -0
- package/dist/utils/validation.d.ts +59 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +264 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/utils/value-matcher.d.ts +58 -0
- package/dist/utils/value-matcher.d.ts.map +1 -0
- package/dist/utils/value-matcher.js +131 -0
- package/dist/utils/value-matcher.js.map +1 -0
- package/dist/validators/attribute-validator.d.ts +59 -0
- package/dist/validators/attribute-validator.d.ts.map +1 -0
- package/dist/validators/attribute-validator.js +531 -0
- package/dist/validators/attribute-validator.js.map +1 -0
- package/dist/validators/company/field_detector.d.ts +5 -0
- package/dist/validators/company/field_detector.d.ts.map +1 -0
- package/dist/validators/company/field_detector.js +95 -0
- package/dist/validators/company/field_detector.js.map +1 -0
- package/dist/validators/company/index.d.ts +26 -0
- package/dist/validators/company/index.d.ts.map +1 -0
- package/dist/validators/company/index.js +433 -0
- package/dist/validators/company/index.js.map +1 -0
- package/dist/validators/company/type_cache.d.ts +14 -0
- package/dist/validators/company/type_cache.d.ts.map +1 -0
- package/dist/validators/company/type_cache.js +28 -0
- package/dist/validators/company/type_cache.js.map +1 -0
- package/dist/validators/company/types.d.ts +8 -0
- package/dist/validators/company/types.d.ts.map +1 -0
- package/dist/validators/company/types.js +2 -0
- package/dist/validators/company/types.js.map +1 -0
- package/dist/validators/company-validator.d.ts +2 -0
- package/dist/validators/company-validator.d.ts.map +1 -0
- package/dist/validators/company-validator.js +2 -0
- package/dist/validators/company-validator.js.map +1 -0
- package/package.json +167 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Note operations for companies
|
|
3
|
+
*/
|
|
4
|
+
import { getAttioClient } from '../../api/attio-client.js';
|
|
5
|
+
import { getObjectNotes, createObjectNote, } from '../../api/operations/index.js';
|
|
6
|
+
import { ResourceType } from '../../types/attio.js';
|
|
7
|
+
/**
|
|
8
|
+
* Gets notes for a specific company
|
|
9
|
+
*
|
|
10
|
+
* @param companyIdOrUri - The ID of the company or its URI (attio://companies/{id})
|
|
11
|
+
* @param limit - Maximum number of notes to fetch (default: 10)
|
|
12
|
+
* @param offset - Number of notes to skip (default: 0)
|
|
13
|
+
* @returns Array of notes
|
|
14
|
+
*/
|
|
15
|
+
export async function getCompanyNotes(companyIdOrUri, limit = 10, offset = 0) {
|
|
16
|
+
let companyId;
|
|
17
|
+
try {
|
|
18
|
+
// Determine if the input is a URI or a direct ID
|
|
19
|
+
const isUri = companyIdOrUri.startsWith('attio://');
|
|
20
|
+
if (isUri) {
|
|
21
|
+
try {
|
|
22
|
+
// Try to parse the URI formally
|
|
23
|
+
const [resourceType, id] = companyIdOrUri.match(/^attio:\/\/([^\/]+)\/(.+)$/)?.slice(1) || [];
|
|
24
|
+
if (resourceType !== ResourceType.COMPANIES) {
|
|
25
|
+
throw new Error(`Invalid resource type in URI: Expected 'companies', got '${resourceType}'`);
|
|
26
|
+
}
|
|
27
|
+
companyId = id;
|
|
28
|
+
}
|
|
29
|
+
catch (parseError) {
|
|
30
|
+
// Fallback to simple string splitting if formal parsing fails
|
|
31
|
+
const parts = companyIdOrUri.split('/');
|
|
32
|
+
companyId = parts[parts.length - 1];
|
|
33
|
+
}
|
|
34
|
+
if (process.env.NODE_ENV === 'development') {
|
|
35
|
+
console.log(`[getCompanyNotes] Extracted company ID ${companyId} from URI ${companyIdOrUri}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
// Direct ID was provided
|
|
40
|
+
companyId = companyIdOrUri;
|
|
41
|
+
if (process.env.NODE_ENV === 'development') {
|
|
42
|
+
console.log(`[getCompanyNotes] Using direct company ID: ${companyId}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Validate that we have a non-empty ID
|
|
46
|
+
if (!companyId || companyId.trim() === '') {
|
|
47
|
+
throw new Error(`Invalid company ID: ${companyIdOrUri}`);
|
|
48
|
+
}
|
|
49
|
+
// Use the unified operation if available, with fallback to direct implementation
|
|
50
|
+
try {
|
|
51
|
+
return await getObjectNotes(ResourceType.COMPANIES, companyId, limit, offset);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (process.env.NODE_ENV === 'development') {
|
|
55
|
+
console.log(`[getCompanyNotes] Unified operation failed: ${error.message || 'Unknown error'}`, {
|
|
56
|
+
method: 'getObjectNotes',
|
|
57
|
+
companyId,
|
|
58
|
+
limit,
|
|
59
|
+
offset,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
// Fallback implementation with better error handling
|
|
63
|
+
try {
|
|
64
|
+
const api = getAttioClient();
|
|
65
|
+
const path = `/notes?limit=${limit}&offset=${offset}&parent_object=companies&parent_record_id=${companyId}`;
|
|
66
|
+
if (process.env.NODE_ENV === 'development') {
|
|
67
|
+
console.log(`[getCompanyNotes] Trying direct API call: ${path}`);
|
|
68
|
+
}
|
|
69
|
+
const response = await api.get(path);
|
|
70
|
+
return response.data.data || [];
|
|
71
|
+
}
|
|
72
|
+
catch (directError) {
|
|
73
|
+
if (process.env.NODE_ENV === 'development') {
|
|
74
|
+
console.error(`[getCompanyNotes] All attempts failed:`, {
|
|
75
|
+
companyId,
|
|
76
|
+
originalUri: companyIdOrUri,
|
|
77
|
+
errors: {
|
|
78
|
+
unified: error.message || 'Unknown error',
|
|
79
|
+
direct: directError.message || 'Unknown error',
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// Return empty array instead of throwing error when no notes are found
|
|
84
|
+
if (directError.response?.status === 404) {
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
throw new Error(`Could not retrieve notes for company ${companyIdOrUri}: ${directError.message || 'Unknown error'}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
// Catch any errors in the URI parsing logic
|
|
93
|
+
if (error instanceof Error && error.message.includes('match')) {
|
|
94
|
+
throw new Error(`Cannot parse company identifier: ${companyIdOrUri}. Use either a direct ID or URI format 'attio://companies/{id}'`);
|
|
95
|
+
}
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Creates a note for a specific company
|
|
101
|
+
*
|
|
102
|
+
* @param companyIdOrUri - The ID of the company or its URI (attio://companies/{id})
|
|
103
|
+
* @param title - The title of the note (will be prefixed with "[AI]")
|
|
104
|
+
* @param content - The text content of the note
|
|
105
|
+
* @returns The created note object
|
|
106
|
+
* @throws Error if company ID cannot be parsed or note creation fails
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const note = await createCompanyNote("comp_123", "Meeting Notes",
|
|
110
|
+
* "Discussed Q4 strategy with the team...");
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export async function createCompanyNote(companyIdOrUri, title, content) {
|
|
114
|
+
let companyId;
|
|
115
|
+
try {
|
|
116
|
+
// Determine if the input is a URI or a direct ID
|
|
117
|
+
const isUri = companyIdOrUri.startsWith('attio://');
|
|
118
|
+
if (isUri) {
|
|
119
|
+
try {
|
|
120
|
+
// Try to parse the URI formally
|
|
121
|
+
const [resourceType, id] = companyIdOrUri.match(/^attio:\/\/([^\/]+)\/(.+)$/)?.slice(1) || [];
|
|
122
|
+
if (resourceType !== ResourceType.COMPANIES) {
|
|
123
|
+
throw new Error(`Invalid resource type in URI: Expected 'companies', got '${resourceType}'`);
|
|
124
|
+
}
|
|
125
|
+
companyId = id;
|
|
126
|
+
}
|
|
127
|
+
catch (parseError) {
|
|
128
|
+
// Fallback to simple string splitting if formal parsing fails
|
|
129
|
+
const parts = companyIdOrUri.split('/');
|
|
130
|
+
companyId = parts[parts.length - 1];
|
|
131
|
+
}
|
|
132
|
+
if (process.env.NODE_ENV === 'development') {
|
|
133
|
+
console.log(`[createCompanyNote] Extracted company ID ${companyId} from URI ${companyIdOrUri}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
// Direct ID was provided
|
|
138
|
+
companyId = companyIdOrUri;
|
|
139
|
+
if (process.env.NODE_ENV === 'development') {
|
|
140
|
+
console.log(`[createCompanyNote] Using direct company ID: ${companyId}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Validate that we have a non-empty ID
|
|
144
|
+
if (!companyId || companyId.trim() === '') {
|
|
145
|
+
throw new Error(`Invalid company ID: ${companyIdOrUri}`);
|
|
146
|
+
}
|
|
147
|
+
// Use the unified operation if available, with fallback to direct implementation
|
|
148
|
+
try {
|
|
149
|
+
return await createObjectNote(ResourceType.COMPANIES, companyId, title, content);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
if (process.env.NODE_ENV === 'development') {
|
|
153
|
+
console.log(`[createCompanyNote] Unified operation failed: ${error.message || 'Unknown error'}`, {
|
|
154
|
+
method: 'createObjectNote',
|
|
155
|
+
companyId,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
// Fallback implementation with better error handling
|
|
159
|
+
try {
|
|
160
|
+
const api = getAttioClient();
|
|
161
|
+
const path = 'notes';
|
|
162
|
+
if (process.env.NODE_ENV === 'development') {
|
|
163
|
+
console.log(`[createCompanyNote] Trying direct API call: ${path}`);
|
|
164
|
+
}
|
|
165
|
+
const response = await api.post(path, {
|
|
166
|
+
data: {
|
|
167
|
+
format: 'plaintext',
|
|
168
|
+
parent_object: 'companies',
|
|
169
|
+
parent_record_id: companyId,
|
|
170
|
+
title: `[AI] ${title}`,
|
|
171
|
+
content,
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
return response.data;
|
|
175
|
+
}
|
|
176
|
+
catch (directError) {
|
|
177
|
+
if (process.env.NODE_ENV === 'development') {
|
|
178
|
+
console.error(`[createCompanyNote] All attempts failed:`, {
|
|
179
|
+
companyId,
|
|
180
|
+
originalUri: companyIdOrUri,
|
|
181
|
+
errors: {
|
|
182
|
+
unified: error.message || 'Unknown error',
|
|
183
|
+
direct: directError.message || 'Unknown error',
|
|
184
|
+
},
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
throw new Error(`Could not create note for company ${companyIdOrUri}: ${directError.message || 'Unknown error'}`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
// Catch any errors in the URI parsing logic
|
|
193
|
+
if (error instanceof Error && error.message.includes('match')) {
|
|
194
|
+
throw new Error(`Cannot parse company identifier: ${companyIdOrUri}. Use either a direct ID or URI format 'attio://companies/{id}'`);
|
|
195
|
+
}
|
|
196
|
+
throw error;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=notes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../src/objects/companies/notes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relationship-based queries for companies
|
|
3
|
+
*/
|
|
4
|
+
import { Company, AttioList } from '../../types/attio.js';
|
|
5
|
+
import { ListEntryFilters } from '../../api/operations/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Search for companies based on attributes of their associated people
|
|
8
|
+
*
|
|
9
|
+
* @param peopleFilter - Filter to apply to people
|
|
10
|
+
* @param limit - Maximum number of results to return (default: 20)
|
|
11
|
+
* @param offset - Number of results to skip (default: 0)
|
|
12
|
+
* @returns Array of matching companies
|
|
13
|
+
*/
|
|
14
|
+
export declare function searchCompaniesByPeople(peopleFilter: ListEntryFilters | string | any, limit?: number | string, offset?: number | string): Promise<Company[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Search for companies that have employees in a specific list
|
|
17
|
+
*
|
|
18
|
+
* @param listId - ID of the list containing people
|
|
19
|
+
* @param limit - Maximum number of results to return (default: 20)
|
|
20
|
+
* @param offset - Number of results to skip (default: 0)
|
|
21
|
+
* @returns Array of matching companies
|
|
22
|
+
*/
|
|
23
|
+
export declare function searchCompaniesByPeopleList(listId: string, limit?: number | string, offset?: number | string): Promise<Company[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Search for companies that have notes containing specific text
|
|
26
|
+
*
|
|
27
|
+
* @param searchText - Text to search for in notes
|
|
28
|
+
* @param limit - Maximum number of results to return (default: 20)
|
|
29
|
+
* @param offset - Number of results to skip (default: 0)
|
|
30
|
+
* @returns Array of matching companies
|
|
31
|
+
*/
|
|
32
|
+
export declare function searchCompaniesByNotes(searchText: string, limit?: number | string, offset?: number | string): Promise<Company[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Gets lists that a company belongs to
|
|
35
|
+
*
|
|
36
|
+
* @param companyId - ID of the company
|
|
37
|
+
* @param limit - Maximum number of list entries to check (default: 50)
|
|
38
|
+
* @returns Array of unique lists containing the company
|
|
39
|
+
*/
|
|
40
|
+
export declare function getCompanyLists(companyId: string, limit?: number): Promise<AttioList[]>;
|
|
41
|
+
//# sourceMappingURL=relationships.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../../src/objects/companies/relationships.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAEL,OAAO,EACP,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAYjE;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,gBAAgB,GAAG,MAAM,GAAG,GAAG,EAC7C,KAAK,GAAE,MAAM,GAAG,MAAW,EAC3B,MAAM,GAAE,MAAM,GAAG,MAAU,GAC1B,OAAO,CAAC,OAAO,EAAE,CAAC,CAoCpB;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAM,GAAG,MAAW,EAC3B,MAAM,GAAE,MAAM,GAAG,MAAU,GAC1B,OAAO,CAAC,OAAO,EAAE,CAAC,CA8BpB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAM,GAAG,MAAW,EAC3B,MAAM,GAAE,MAAM,GAAG,MAAU,GAC1B,OAAO,CAAC,OAAO,EAAE,CAAC,CAqCpB;AACD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAkCtB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relationship-based queries for companies
|
|
3
|
+
*/
|
|
4
|
+
import { ResourceType, } from '../../types/attio.js';
|
|
5
|
+
import { FilterValidationError } from '../../errors/api-errors.js';
|
|
6
|
+
import { validateNumericParam } from '../../utils/filters/index.js';
|
|
7
|
+
import { getAttioClient } from '../../api/attio-client.js';
|
|
8
|
+
import { getListDetails } from '../lists.js';
|
|
9
|
+
import { createCompaniesByPeopleFilter, createCompaniesByPeopleListFilter, createRecordsByNotesFilter, } from '../../utils/relationship-utils.js';
|
|
10
|
+
import { advancedSearchCompanies } from './search.js';
|
|
11
|
+
/**
|
|
12
|
+
* Search for companies based on attributes of their associated people
|
|
13
|
+
*
|
|
14
|
+
* @param peopleFilter - Filter to apply to people
|
|
15
|
+
* @param limit - Maximum number of results to return (default: 20)
|
|
16
|
+
* @param offset - Number of results to skip (default: 0)
|
|
17
|
+
* @returns Array of matching companies
|
|
18
|
+
*/
|
|
19
|
+
export async function searchCompaniesByPeople(peopleFilter, limit = 20, offset = 0) {
|
|
20
|
+
try {
|
|
21
|
+
// Ensure peopleFilter is a properly structured filter object
|
|
22
|
+
if (typeof peopleFilter !== 'object' ||
|
|
23
|
+
!peopleFilter ||
|
|
24
|
+
!peopleFilter.filters) {
|
|
25
|
+
throw new FilterValidationError('People filter must be a valid ListEntryFilters object with at least one filter');
|
|
26
|
+
}
|
|
27
|
+
// Validate and normalize limit and offset parameters
|
|
28
|
+
const validatedLimit = validateNumericParam(limit, 'limit', 20);
|
|
29
|
+
const validatedOffset = validateNumericParam(offset, 'offset', 0);
|
|
30
|
+
// Create the relationship-based filter and perform the search
|
|
31
|
+
const filters = createCompaniesByPeopleFilter(peopleFilter);
|
|
32
|
+
const results = await advancedSearchCompanies(filters, validatedLimit, validatedOffset);
|
|
33
|
+
return Array.isArray(results) ? results : [];
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
// Convert all errors to FilterValidationErrors for consistent handling
|
|
37
|
+
if (error instanceof FilterValidationError) {
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
throw new FilterValidationError(`Failed to search companies by people: ${error instanceof Error ? error.message : String(error)}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Search for companies that have employees in a specific list
|
|
45
|
+
*
|
|
46
|
+
* @param listId - ID of the list containing people
|
|
47
|
+
* @param limit - Maximum number of results to return (default: 20)
|
|
48
|
+
* @param offset - Number of results to skip (default: 0)
|
|
49
|
+
* @returns Array of matching companies
|
|
50
|
+
*/
|
|
51
|
+
export async function searchCompaniesByPeopleList(listId, limit = 20, offset = 0) {
|
|
52
|
+
try {
|
|
53
|
+
// Validate listId
|
|
54
|
+
if (!listId || typeof listId !== 'string' || listId.trim() === '') {
|
|
55
|
+
throw new FilterValidationError('List ID must be a non-empty string');
|
|
56
|
+
}
|
|
57
|
+
// Validate and normalize limit and offset parameters
|
|
58
|
+
const validatedLimit = validateNumericParam(limit, 'limit', 20);
|
|
59
|
+
const validatedOffset = validateNumericParam(offset, 'offset', 0);
|
|
60
|
+
// Create the relationship-based filter and perform the search
|
|
61
|
+
const filters = createCompaniesByPeopleListFilter(listId);
|
|
62
|
+
const results = await advancedSearchCompanies(filters, validatedLimit, validatedOffset);
|
|
63
|
+
return Array.isArray(results) ? results : [];
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
// Convert all errors to FilterValidationErrors for consistent handling
|
|
67
|
+
if (error instanceof FilterValidationError) {
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
throw new FilterValidationError(`Failed to search companies by people list: ${error instanceof Error ? error.message : String(error)}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Search for companies that have notes containing specific text
|
|
75
|
+
*
|
|
76
|
+
* @param searchText - Text to search for in notes
|
|
77
|
+
* @param limit - Maximum number of results to return (default: 20)
|
|
78
|
+
* @param offset - Number of results to skip (default: 0)
|
|
79
|
+
* @returns Array of matching companies
|
|
80
|
+
*/
|
|
81
|
+
export async function searchCompaniesByNotes(searchText, limit = 20, offset = 0) {
|
|
82
|
+
try {
|
|
83
|
+
// Validate searchText
|
|
84
|
+
if (!searchText ||
|
|
85
|
+
typeof searchText !== 'string' ||
|
|
86
|
+
searchText.trim() === '') {
|
|
87
|
+
throw new FilterValidationError('Search text must be a non-empty string');
|
|
88
|
+
}
|
|
89
|
+
// Validate and normalize limit and offset parameters
|
|
90
|
+
const validatedLimit = validateNumericParam(limit, 'limit', 20);
|
|
91
|
+
const validatedOffset = validateNumericParam(offset, 'offset', 0);
|
|
92
|
+
// Create the relationship-based filter and perform the search
|
|
93
|
+
const filters = createRecordsByNotesFilter(ResourceType.COMPANIES, searchText);
|
|
94
|
+
const results = await advancedSearchCompanies(filters, validatedLimit, validatedOffset);
|
|
95
|
+
return Array.isArray(results) ? results : [];
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
// Convert all errors to FilterValidationErrors for consistent handling
|
|
99
|
+
if (error instanceof FilterValidationError) {
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
throw new FilterValidationError(`Failed to search companies by notes: ${error instanceof Error ? error.message : String(error)}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Gets lists that a company belongs to
|
|
107
|
+
*
|
|
108
|
+
* @param companyId - ID of the company
|
|
109
|
+
* @param limit - Maximum number of list entries to check (default: 50)
|
|
110
|
+
* @returns Array of unique lists containing the company
|
|
111
|
+
*/
|
|
112
|
+
export async function getCompanyLists(companyId, limit = 50) {
|
|
113
|
+
const api = getAttioClient();
|
|
114
|
+
const response = await api.post('/lists-entries/query', {
|
|
115
|
+
filter: { record_id: { $equals: companyId } },
|
|
116
|
+
expand: ['list'],
|
|
117
|
+
limit,
|
|
118
|
+
});
|
|
119
|
+
const entries = response.data.data || [];
|
|
120
|
+
const lists = [];
|
|
121
|
+
const seen = new Set();
|
|
122
|
+
for (const entry of entries) {
|
|
123
|
+
const listId = entry.list?.id?.list_id || entry.list_id;
|
|
124
|
+
if (!listId || seen.has(listId))
|
|
125
|
+
continue;
|
|
126
|
+
seen.add(listId);
|
|
127
|
+
if (entry.list) {
|
|
128
|
+
lists.push(entry.list);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
try {
|
|
132
|
+
const detail = await getListDetails(listId);
|
|
133
|
+
lists.push(detail);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// ignore retrieval errors
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return lists;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=relationships.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../../src/objects/companies/relationships.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { ListEntryFilters } from '../../api/operations/index.js';
|
|
2
|
+
import { Company, FilterConditionType } from '../../types/attio.js';
|
|
3
|
+
/**
|
|
4
|
+
* Cache management functions for testing and administration
|
|
5
|
+
*/
|
|
6
|
+
export declare const companyCache: {
|
|
7
|
+
clear: () => void;
|
|
8
|
+
size: () => number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Configuration options for company search
|
|
12
|
+
*/
|
|
13
|
+
export interface CompanySearchOptions {
|
|
14
|
+
/** Whether to prioritize domain matches over name matches (default: true) */
|
|
15
|
+
prioritizeDomains?: boolean;
|
|
16
|
+
/** Maximum number of results to return */
|
|
17
|
+
maxResults?: number;
|
|
18
|
+
/** Whether to include debug logging */
|
|
19
|
+
debug?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Searches for companies with domain prioritization when available
|
|
23
|
+
*
|
|
24
|
+
* @param query - Search query string to match against company names or domains
|
|
25
|
+
* @param options - Optional search configuration
|
|
26
|
+
* @returns Array of matching company objects, prioritized by domain matches
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const companies = await searchCompanies("acme.com");
|
|
30
|
+
* // Returns companies with domain "acme.com" first, then name matches
|
|
31
|
+
*
|
|
32
|
+
* const companies = await searchCompanies("acme");
|
|
33
|
+
* // Returns companies with names containing "acme"
|
|
34
|
+
*
|
|
35
|
+
* const companies = await searchCompanies("acme.com", { prioritizeDomains: false });
|
|
36
|
+
* // Disables domain prioritization, uses name-based search only
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function searchCompanies(query: string, options?: CompanySearchOptions): Promise<Company[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Searches for companies by domain/website
|
|
42
|
+
*
|
|
43
|
+
* @param domain - Domain to search for
|
|
44
|
+
* @returns Array of matching company objects
|
|
45
|
+
*/
|
|
46
|
+
export declare function searchCompaniesByDomain(domain: string): Promise<Company[]>;
|
|
47
|
+
/**
|
|
48
|
+
* Searches for companies by name only
|
|
49
|
+
*
|
|
50
|
+
* @param query - Search query string to match against company names
|
|
51
|
+
* @returns Array of matching company objects
|
|
52
|
+
*/
|
|
53
|
+
export declare function searchCompaniesByName(query: string): Promise<Company[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Performs advanced search with custom filters
|
|
56
|
+
*
|
|
57
|
+
* @param filters - List of filters to apply
|
|
58
|
+
* @param limit - Maximum number of results to return (default: 20)
|
|
59
|
+
* @param offset - Number of results to skip (default: 0)
|
|
60
|
+
* @returns Array of company results
|
|
61
|
+
* @throws Error if the search encounters any issues
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* // Search for companies with names containing "Tech"
|
|
65
|
+
* const filters = {
|
|
66
|
+
* filters: [
|
|
67
|
+
* {
|
|
68
|
+
* attribute: { slug: 'name' },
|
|
69
|
+
* condition: 'contains',
|
|
70
|
+
* value: 'Tech'
|
|
71
|
+
* }
|
|
72
|
+
* ]
|
|
73
|
+
* };
|
|
74
|
+
* const companies = await advancedSearchCompanies(filters);
|
|
75
|
+
*
|
|
76
|
+
* // Search with multiple conditions using OR logic
|
|
77
|
+
* const orFilters = {
|
|
78
|
+
* filters: [
|
|
79
|
+
* {
|
|
80
|
+
* attribute: { slug: 'name' },
|
|
81
|
+
* condition: 'contains',
|
|
82
|
+
* value: 'Tech'
|
|
83
|
+
* },
|
|
84
|
+
* {
|
|
85
|
+
* attribute: { slug: 'industry' },
|
|
86
|
+
* condition: 'equals',
|
|
87
|
+
* value: 'Software'
|
|
88
|
+
* }
|
|
89
|
+
* ],
|
|
90
|
+
* matchAny: true // Use OR logic between conditions
|
|
91
|
+
* };
|
|
92
|
+
*
|
|
93
|
+
* // Complex search with nested conditions
|
|
94
|
+
* const complexFilters = {
|
|
95
|
+
* filters: [
|
|
96
|
+
* // Company name condition
|
|
97
|
+
* {
|
|
98
|
+
* attribute: { slug: 'name' },
|
|
99
|
+
* condition: 'contains',
|
|
100
|
+
* value: 'Tech'
|
|
101
|
+
* },
|
|
102
|
+
* // Revenue condition - find companies with annual revenue > $10M
|
|
103
|
+
* {
|
|
104
|
+
* attribute: { slug: 'annual_revenue' },
|
|
105
|
+
* condition: 'greater_than',
|
|
106
|
+
* value: 10000000
|
|
107
|
+
* },
|
|
108
|
+
* // Industry condition
|
|
109
|
+
* {
|
|
110
|
+
* attribute: { slug: 'industry' },
|
|
111
|
+
* condition: 'equals',
|
|
112
|
+
* value: 'Software'
|
|
113
|
+
* }
|
|
114
|
+
* ]
|
|
115
|
+
* };
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export declare function advancedSearchCompanies(filters: ListEntryFilters, limit?: number, offset?: number): Promise<Company[]>;
|
|
119
|
+
/**
|
|
120
|
+
* Helper function to create filters for searching companies by name
|
|
121
|
+
*
|
|
122
|
+
* @param name - Name to search for
|
|
123
|
+
* @param condition - Condition type (default: CONTAINS)
|
|
124
|
+
* @returns ListEntryFilters object configured for name search
|
|
125
|
+
*/
|
|
126
|
+
export declare function createNameFilter(name: string, condition?: FilterConditionType): ListEntryFilters;
|
|
127
|
+
/**
|
|
128
|
+
* Helper function to create filters for searching companies by website
|
|
129
|
+
*
|
|
130
|
+
* @param website - Website to search for
|
|
131
|
+
* @param condition - Condition type (default: CONTAINS)
|
|
132
|
+
* @returns ListEntryFilters object configured for website search
|
|
133
|
+
*/
|
|
134
|
+
export declare function createWebsiteFilter(website: string, condition?: FilterConditionType): ListEntryFilters;
|
|
135
|
+
/**
|
|
136
|
+
* Helper function to create filters for searching companies by industry
|
|
137
|
+
*
|
|
138
|
+
* @param industry - Industry to search for
|
|
139
|
+
* @param condition - Condition type (default: CONTAINS)
|
|
140
|
+
* @returns ListEntryFilters object configured for industry search
|
|
141
|
+
*/
|
|
142
|
+
export declare function createIndustryFilter(industry: string, condition?: FilterConditionType): ListEntryFilters;
|
|
143
|
+
/**
|
|
144
|
+
* Helper function to create filters for searching companies by domain
|
|
145
|
+
*
|
|
146
|
+
* @param domain - Domain to search for
|
|
147
|
+
* @param condition - Condition type (default: CONTAINS)
|
|
148
|
+
* @returns ListEntryFilters object configured for domain search
|
|
149
|
+
*/
|
|
150
|
+
export declare function createDomainFilter(domain: string, condition?: FilterConditionType): ListEntryFilters;
|
|
151
|
+
/**
|
|
152
|
+
* Smart search that automatically determines search strategy based on query content
|
|
153
|
+
*
|
|
154
|
+
* @param query - Search query that may contain domain, email, URL, or company name
|
|
155
|
+
* @returns Array of matching company objects with domain matches prioritized
|
|
156
|
+
*/
|
|
157
|
+
export declare function smartSearchCompanies(query: string): Promise<Company[]>;
|
|
158
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/objects/companies/search.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,OAAO,EACP,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAkF9B;;GAEG;AACH,eAAO,MAAM,YAAY;;;CAGxB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,OAAO,EAAE,CAAC,CA6EpB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,EAAE,CAAC,CAwCpB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAoD7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,gBAAgB,EACzB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,EAAE,CAAC,CA+CpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,mBAAkD,GAC5D,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,mBAAkD,GAC5D,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,mBAAkD,GAC5D,gBAAgB,CAUlB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,mBAAkD,GAC5D,gBAAgB,CAWlB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAyD5E"}
|