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,531 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation for Attio attribute types
|
|
3
|
+
* Provides validation and type conversion for attribute values
|
|
4
|
+
* to ensure they match Attio's expected types
|
|
5
|
+
*
|
|
6
|
+
* This module handles both validation and automatic type conversion
|
|
7
|
+
* for common data format mismatches, which is particularly useful for
|
|
8
|
+
* LLM-generated content where string representations of other data types
|
|
9
|
+
* are common.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Validates an attribute value against the expected type
|
|
13
|
+
*
|
|
14
|
+
* This function validates that a value matches the expected attribute type,
|
|
15
|
+
* and attempts to convert it when possible. It handles both strict validation
|
|
16
|
+
* and auto-conversion for common type mismatches.
|
|
17
|
+
*
|
|
18
|
+
* @param attributeName - The name of the attribute being validated
|
|
19
|
+
* @param value - The value to validate
|
|
20
|
+
* @param expectedType - The expected attribute type
|
|
21
|
+
* @returns Validation result with success status and optionally converted value
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* // Validate a string
|
|
25
|
+
* validateAttributeValue('company_name', 'Acme Inc', 'string')
|
|
26
|
+
* // Returns: { valid: true, convertedValue: 'Acme Inc' }
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* // Convert string to number
|
|
30
|
+
* validateAttributeValue('employee_count', '250', 'number')
|
|
31
|
+
* // Returns: { valid: true, convertedValue: 250 }
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* // Convert string to boolean
|
|
35
|
+
* validateAttributeValue('is_active', 'yes', 'boolean')
|
|
36
|
+
* // Returns: { valid: true, convertedValue: true }
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* // Handle invalid values
|
|
40
|
+
* validateAttributeValue('revenue', 'not-a-number', 'number')
|
|
41
|
+
* // Returns: { valid: false, error: 'Invalid number value...' }
|
|
42
|
+
*/
|
|
43
|
+
export function validateAttributeValue(attributeName, value, expectedType) {
|
|
44
|
+
// Handle null case first
|
|
45
|
+
if (value === null || value === undefined) {
|
|
46
|
+
return { valid: true, convertedValue: null };
|
|
47
|
+
}
|
|
48
|
+
// Validate based on expected type
|
|
49
|
+
switch (expectedType) {
|
|
50
|
+
case 'boolean':
|
|
51
|
+
return validateBooleanValue(attributeName, value);
|
|
52
|
+
case 'number':
|
|
53
|
+
return validateNumberValue(attributeName, value);
|
|
54
|
+
case 'string':
|
|
55
|
+
return validateStringValue(attributeName, value);
|
|
56
|
+
case 'date':
|
|
57
|
+
return validateDateValue(attributeName, value);
|
|
58
|
+
case 'array':
|
|
59
|
+
return validateArrayValue(attributeName, value);
|
|
60
|
+
case 'object':
|
|
61
|
+
return validateObjectValue(attributeName, value);
|
|
62
|
+
case 'select':
|
|
63
|
+
return validateSelectValue(attributeName, value);
|
|
64
|
+
case 'record-reference':
|
|
65
|
+
return validateRecordReferenceValue(attributeName, value);
|
|
66
|
+
default:
|
|
67
|
+
// If the type doesn't match any known type, pass it through
|
|
68
|
+
return { valid: true, convertedValue: value };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Validates a boolean value
|
|
73
|
+
*
|
|
74
|
+
* This function validates and converts values to boolean type.
|
|
75
|
+
* It handles various string representations ('true', 'yes', 'on', '1')
|
|
76
|
+
* and numeric values (1, 0) in addition to native boolean values.
|
|
77
|
+
*
|
|
78
|
+
* @param attributeName - The name of the attribute
|
|
79
|
+
* @param value - The value to validate
|
|
80
|
+
* @returns Validation result
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* // Native boolean
|
|
84
|
+
* validateBooleanValue('is_active', true)
|
|
85
|
+
* // Returns: { valid: true, convertedValue: true }
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* // String conversion
|
|
89
|
+
* validateBooleanValue('is_active', 'yes')
|
|
90
|
+
* // Returns: { valid: true, convertedValue: true }
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* // Numeric conversion
|
|
94
|
+
* validateBooleanValue('is_active', 1)
|
|
95
|
+
* // Returns: { valid: true, convertedValue: true }
|
|
96
|
+
*/
|
|
97
|
+
function validateBooleanValue(attributeName, value) {
|
|
98
|
+
// Already a boolean - simple case
|
|
99
|
+
if (typeof value === 'boolean') {
|
|
100
|
+
return { valid: true, convertedValue: value };
|
|
101
|
+
}
|
|
102
|
+
// Auto-conversion cases
|
|
103
|
+
if (typeof value === 'string') {
|
|
104
|
+
const stringValue = value.toLowerCase().trim();
|
|
105
|
+
// Reject empty strings explicitly
|
|
106
|
+
if (stringValue === '') {
|
|
107
|
+
return {
|
|
108
|
+
valid: false,
|
|
109
|
+
error: `Invalid boolean value for "${attributeName}". Empty strings cannot be converted to boolean.`,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
if (stringValue === 'true' ||
|
|
113
|
+
stringValue === 'yes' ||
|
|
114
|
+
stringValue === '1' ||
|
|
115
|
+
stringValue === 'on') {
|
|
116
|
+
return { valid: true, convertedValue: true };
|
|
117
|
+
}
|
|
118
|
+
if (stringValue === 'false' ||
|
|
119
|
+
stringValue === 'no' ||
|
|
120
|
+
stringValue === '0' ||
|
|
121
|
+
stringValue === 'off') {
|
|
122
|
+
return { valid: true, convertedValue: false };
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Number conversion
|
|
126
|
+
if (typeof value === 'number') {
|
|
127
|
+
if (value === 1) {
|
|
128
|
+
return { valid: true, convertedValue: true };
|
|
129
|
+
}
|
|
130
|
+
if (value === 0) {
|
|
131
|
+
return { valid: true, convertedValue: false };
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Invalid boolean value
|
|
135
|
+
return {
|
|
136
|
+
valid: false,
|
|
137
|
+
error: `Invalid boolean value for "${attributeName}". Expected a boolean or a string like "true"/"false", but got ${typeof value}.`,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Validates a numeric value
|
|
142
|
+
*
|
|
143
|
+
* This function validates and converts values to number type.
|
|
144
|
+
* It handles numeric strings and boolean values in addition to native numbers.
|
|
145
|
+
* NaN values are considered invalid numbers.
|
|
146
|
+
*
|
|
147
|
+
* @param attributeName - The name of the attribute
|
|
148
|
+
* @param value - The value to validate
|
|
149
|
+
* @returns Validation result
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* // Native number
|
|
153
|
+
* validateNumberValue('revenue', 1000000)
|
|
154
|
+
* // Returns: { valid: true, convertedValue: 1000000 }
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* // String conversion
|
|
158
|
+
* validateNumberValue('employee_count', '250')
|
|
159
|
+
* // Returns: { valid: true, convertedValue: 250 }
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* // Boolean conversion
|
|
163
|
+
* validateNumberValue('binary_value', true)
|
|
164
|
+
* // Returns: { valid: true, convertedValue: 1 }
|
|
165
|
+
*/
|
|
166
|
+
function validateNumberValue(attributeName, value) {
|
|
167
|
+
// Already a number - simple case
|
|
168
|
+
if (typeof value === 'number' && !isNaN(value)) {
|
|
169
|
+
return { valid: true, convertedValue: value };
|
|
170
|
+
}
|
|
171
|
+
// Auto-conversion from string
|
|
172
|
+
if (typeof value === 'string') {
|
|
173
|
+
const trimmed = value.trim();
|
|
174
|
+
// Reject empty strings explicitly
|
|
175
|
+
if (trimmed === '') {
|
|
176
|
+
return {
|
|
177
|
+
valid: false,
|
|
178
|
+
error: `Invalid number value for "${attributeName}". Empty strings cannot be converted to numbers.`,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
const numericValue = Number(trimmed);
|
|
182
|
+
if (!isNaN(numericValue)) {
|
|
183
|
+
return { valid: true, convertedValue: numericValue };
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Auto-conversion from boolean
|
|
187
|
+
if (typeof value === 'boolean') {
|
|
188
|
+
return { valid: true, convertedValue: value ? 1 : 0 };
|
|
189
|
+
}
|
|
190
|
+
// Invalid number value
|
|
191
|
+
return {
|
|
192
|
+
valid: false,
|
|
193
|
+
error: `Invalid number value for "${attributeName}". Expected a number or a numeric string, but got ${typeof value}.`,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Validates a string value
|
|
198
|
+
*
|
|
199
|
+
* This function validates and converts values to string type.
|
|
200
|
+
* It handles numbers, booleans, dates, and even attempts to stringify
|
|
201
|
+
* objects in addition to native strings.
|
|
202
|
+
*
|
|
203
|
+
* @param attributeName - The name of the attribute
|
|
204
|
+
* @param value - The value to validate
|
|
205
|
+
* @returns Validation result
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* // Native string
|
|
209
|
+
* validateStringValue('name', 'Acme Corporation')
|
|
210
|
+
* // Returns: { valid: true, convertedValue: 'Acme Corporation' }
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* // Number conversion
|
|
214
|
+
* validateStringValue('id_text', 12345)
|
|
215
|
+
* // Returns: { valid: true, convertedValue: '12345' }
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* // Date conversion
|
|
219
|
+
* validateStringValue('date_text', new Date('2023-01-15'))
|
|
220
|
+
* // Returns: { valid: true, convertedValue: '2023-01-15T00:00:00.000Z' }
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* // Object conversion
|
|
224
|
+
* validateStringValue('metadata_text', { id: 123, type: 'customer' })
|
|
225
|
+
* // Returns: { valid: true, convertedValue: '{"id":123,"type":"customer"}' }
|
|
226
|
+
*/
|
|
227
|
+
function validateStringValue(attributeName, value) {
|
|
228
|
+
// Already a string - simple case
|
|
229
|
+
if (typeof value === 'string') {
|
|
230
|
+
return { valid: true, convertedValue: value };
|
|
231
|
+
}
|
|
232
|
+
// Auto-conversion cases
|
|
233
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
234
|
+
return { valid: true, convertedValue: String(value) };
|
|
235
|
+
}
|
|
236
|
+
// Handle date objects
|
|
237
|
+
if (value instanceof Date) {
|
|
238
|
+
return { valid: true, convertedValue: value.toISOString() };
|
|
239
|
+
}
|
|
240
|
+
// Handle objects that can be stringified
|
|
241
|
+
if (typeof value === 'object' && value !== null) {
|
|
242
|
+
try {
|
|
243
|
+
return { valid: true, convertedValue: JSON.stringify(value) };
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
// Failed to stringify
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// Invalid string value
|
|
250
|
+
return {
|
|
251
|
+
valid: false,
|
|
252
|
+
error: `Invalid string value for "${attributeName}". Expected a string or a value that can be converted to string, but got ${typeof value}.`,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Validates a date value
|
|
257
|
+
*
|
|
258
|
+
* This function validates and converts values to date format.
|
|
259
|
+
* It handles Date objects, ISO date strings, and timestamps
|
|
260
|
+
* (both in seconds and milliseconds).
|
|
261
|
+
* The converted value is always returned as an ISO string.
|
|
262
|
+
*
|
|
263
|
+
* @param attributeName - The name of the attribute
|
|
264
|
+
* @param value - The value to validate
|
|
265
|
+
* @returns Validation result
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
* // Date object
|
|
269
|
+
* validateDateValue('created_at', new Date('2023-01-15'))
|
|
270
|
+
* // Returns: { valid: true, convertedValue: '2023-01-15T00:00:00.000Z' }
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* // ISO date string
|
|
274
|
+
* validateDateValue('created_at', '2023-01-15T12:30:00Z')
|
|
275
|
+
* // Returns: { valid: true, convertedValue: '2023-01-15T12:30:00.000Z' }
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* // Timestamp in milliseconds
|
|
279
|
+
* validateDateValue('created_at', 1673784600000) // 2023-01-15T12:30:00.000Z
|
|
280
|
+
* // Returns: { valid: true, convertedValue: '2023-01-15T12:30:00.000Z' }
|
|
281
|
+
*
|
|
282
|
+
* @example
|
|
283
|
+
* // Timestamp in seconds
|
|
284
|
+
* validateDateValue('created_at', 1673784600) // 2023-01-15T12:30:00.000Z
|
|
285
|
+
* // Returns: { valid: true, convertedValue: '2023-01-15T12:30:00.000Z' }
|
|
286
|
+
*/
|
|
287
|
+
function validateDateValue(attributeName, value) {
|
|
288
|
+
// Already a date object - simple case
|
|
289
|
+
if (value instanceof Date) {
|
|
290
|
+
if (!isNaN(value.getTime())) {
|
|
291
|
+
return { valid: true, convertedValue: value.toISOString() };
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
return {
|
|
295
|
+
valid: false,
|
|
296
|
+
error: `Invalid date value for "${attributeName}". The date is invalid.`,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// ISO date string
|
|
301
|
+
if (typeof value === 'string') {
|
|
302
|
+
// Try to create a date object from the string
|
|
303
|
+
const dateObj = new Date(value);
|
|
304
|
+
if (!isNaN(dateObj.getTime())) {
|
|
305
|
+
return { valid: true, convertedValue: dateObj.toISOString() };
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
// Unix timestamp (number)
|
|
309
|
+
if (typeof value === 'number') {
|
|
310
|
+
// Assume milliseconds if greater than 1e10 (Jan 26 1970), otherwise seconds
|
|
311
|
+
const timestamp = value > 1e10 ? value : value * 1000;
|
|
312
|
+
const dateObj = new Date(timestamp);
|
|
313
|
+
if (!isNaN(dateObj.getTime())) {
|
|
314
|
+
return { valid: true, convertedValue: dateObj.toISOString() };
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
// Invalid date value
|
|
318
|
+
return {
|
|
319
|
+
valid: false,
|
|
320
|
+
error: `Invalid date value for "${attributeName}". Expected a Date object, ISO date string, or timestamp, but got ${typeof value}.`,
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Validates an array value
|
|
325
|
+
*
|
|
326
|
+
* This function validates and converts values to array format.
|
|
327
|
+
* It handles native arrays and also converts single values to
|
|
328
|
+
* single-element arrays when appropriate.
|
|
329
|
+
*
|
|
330
|
+
* @param attributeName - The name of the attribute
|
|
331
|
+
* @param value - The value to validate
|
|
332
|
+
* @returns Validation result
|
|
333
|
+
*
|
|
334
|
+
* @example
|
|
335
|
+
* // Native array
|
|
336
|
+
* validateArrayValue('tags', ['software', 'tech'])
|
|
337
|
+
* // Returns: { valid: true, convertedValue: ['software', 'tech'] }
|
|
338
|
+
*
|
|
339
|
+
* @example
|
|
340
|
+
* // Single value conversion
|
|
341
|
+
* validateArrayValue('tags', 'software')
|
|
342
|
+
* // Returns: { valid: true, convertedValue: ['software'] }
|
|
343
|
+
*
|
|
344
|
+
* @example
|
|
345
|
+
* // Empty array
|
|
346
|
+
* validateArrayValue('tags', [])
|
|
347
|
+
* // Returns: { valid: true, convertedValue: [] }
|
|
348
|
+
*/
|
|
349
|
+
function validateArrayValue(attributeName, value) {
|
|
350
|
+
// Already an array - simple case
|
|
351
|
+
if (Array.isArray(value)) {
|
|
352
|
+
return { valid: true, convertedValue: value };
|
|
353
|
+
}
|
|
354
|
+
// Convert single value to array
|
|
355
|
+
if (value !== null && value !== undefined) {
|
|
356
|
+
return { valid: true, convertedValue: [value] };
|
|
357
|
+
}
|
|
358
|
+
// Invalid array value
|
|
359
|
+
return {
|
|
360
|
+
valid: false,
|
|
361
|
+
error: `Invalid array value for "${attributeName}". Expected an array, but got ${typeof value}.`,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Validates an object value
|
|
366
|
+
*
|
|
367
|
+
* This function validates that a value is a proper object (not null or array).
|
|
368
|
+
* Unlike other validators, it does not attempt to convert non-object values
|
|
369
|
+
* due to the ambiguity of what such a conversion should produce.
|
|
370
|
+
*
|
|
371
|
+
* @param attributeName - The name of the attribute
|
|
372
|
+
* @param value - The value to validate
|
|
373
|
+
* @returns Validation result
|
|
374
|
+
*
|
|
375
|
+
* @example
|
|
376
|
+
* // Valid object
|
|
377
|
+
* validateObjectValue('metadata', { id: 123, type: 'customer' })
|
|
378
|
+
* // Returns: { valid: true, convertedValue: { id: 123, type: 'customer' } }
|
|
379
|
+
*
|
|
380
|
+
* @example
|
|
381
|
+
* // Empty object
|
|
382
|
+
* validateObjectValue('settings', {})
|
|
383
|
+
* // Returns: { valid: true, convertedValue: {} }
|
|
384
|
+
*
|
|
385
|
+
* @example
|
|
386
|
+
* // Invalid (array)
|
|
387
|
+
* validateObjectValue('metadata', ['item1', 'item2'])
|
|
388
|
+
* // Returns: { valid: false, error: 'Invalid object value...' }
|
|
389
|
+
*/
|
|
390
|
+
function validateObjectValue(attributeName, value) {
|
|
391
|
+
// Already an object - simple case
|
|
392
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
393
|
+
return { valid: true, convertedValue: value };
|
|
394
|
+
}
|
|
395
|
+
// Invalid object value
|
|
396
|
+
return {
|
|
397
|
+
valid: false,
|
|
398
|
+
error: `Invalid object value for "${attributeName}". Expected an object, but got ${typeof value}.`,
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Validates a select value
|
|
403
|
+
*
|
|
404
|
+
* This function validates and converts values for select/option fields.
|
|
405
|
+
* It handles string values, arrays of strings, and attempts to convert
|
|
406
|
+
* other types to strings. Since we don't have access to the valid options list,
|
|
407
|
+
* we only validate that the format is correct, not that the values are valid options.
|
|
408
|
+
*
|
|
409
|
+
* @param attributeName - The name of the attribute
|
|
410
|
+
* @param value - The value to validate
|
|
411
|
+
* @returns Validation result
|
|
412
|
+
*
|
|
413
|
+
* @example
|
|
414
|
+
* // Single option
|
|
415
|
+
* validateSelectValue('status', 'active')
|
|
416
|
+
* // Returns: { valid: true, convertedValue: 'active' }
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* // Multiple options
|
|
420
|
+
* validateSelectValue('categories', ['software', 'tech'])
|
|
421
|
+
* // Returns: { valid: true, convertedValue: ['software', 'tech'] }
|
|
422
|
+
*
|
|
423
|
+
* @example
|
|
424
|
+
* // Converting non-string values in array
|
|
425
|
+
* validateSelectValue('categories', ['software', 123, true])
|
|
426
|
+
* // Returns: { valid: true, convertedValue: ['software', '123', 'true'] }
|
|
427
|
+
*/
|
|
428
|
+
function validateSelectValue(attributeName, value) {
|
|
429
|
+
// For select values, we expect strings or arrays of strings
|
|
430
|
+
// Since we don't have access to the valid options list here,
|
|
431
|
+
// we'll just validate that it's a string or array of strings
|
|
432
|
+
// Single string value
|
|
433
|
+
if (typeof value === 'string') {
|
|
434
|
+
return { valid: true, convertedValue: value };
|
|
435
|
+
}
|
|
436
|
+
// Array of strings
|
|
437
|
+
if (Array.isArray(value)) {
|
|
438
|
+
const allStrings = value.every((item) => typeof item === 'string');
|
|
439
|
+
if (allStrings) {
|
|
440
|
+
return { valid: true, convertedValue: value };
|
|
441
|
+
}
|
|
442
|
+
// Try to convert all elements to strings
|
|
443
|
+
const convertedArray = value.map((item) => String(item));
|
|
444
|
+
return { valid: true, convertedValue: convertedArray };
|
|
445
|
+
}
|
|
446
|
+
// Convert single value to string
|
|
447
|
+
if (value !== null && value !== undefined) {
|
|
448
|
+
return { valid: true, convertedValue: String(value) };
|
|
449
|
+
}
|
|
450
|
+
// Invalid select value
|
|
451
|
+
return {
|
|
452
|
+
valid: false,
|
|
453
|
+
error: `Invalid select value for "${attributeName}". Expected a string or array of strings, but got ${typeof value}.`,
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Validates a record reference value
|
|
458
|
+
*
|
|
459
|
+
* This function validates and normalizes record reference values.
|
|
460
|
+
* It handles string IDs, objects with record_id or id properties,
|
|
461
|
+
* and arrays of these types. The result is always normalized to a
|
|
462
|
+
* string ID or array of string IDs.
|
|
463
|
+
*
|
|
464
|
+
* @param attributeName - The name of the attribute
|
|
465
|
+
* @param value - The value to validate
|
|
466
|
+
* @returns Validation result
|
|
467
|
+
*
|
|
468
|
+
* @example
|
|
469
|
+
* // String ID
|
|
470
|
+
* validateRecordReferenceValue('parent_company', 'rec_123456')
|
|
471
|
+
* // Returns: { valid: true, convertedValue: 'rec_123456' }
|
|
472
|
+
*
|
|
473
|
+
* @example
|
|
474
|
+
* // Object with record_id
|
|
475
|
+
* validateRecordReferenceValue('parent_company', { record_id: 'rec_123456' })
|
|
476
|
+
* // Returns: { valid: true, convertedValue: 'rec_123456' }
|
|
477
|
+
*
|
|
478
|
+
* @example
|
|
479
|
+
* // Array of mixed references
|
|
480
|
+
* validateRecordReferenceValue('related_companies', [
|
|
481
|
+
* 'rec_123',
|
|
482
|
+
* { record_id: 'rec_456' },
|
|
483
|
+
* { id: 'rec_789' }
|
|
484
|
+
* ])
|
|
485
|
+
* // Returns: { valid: true, convertedValue: ['rec_123', 'rec_456', 'rec_789'] }
|
|
486
|
+
*/
|
|
487
|
+
function validateRecordReferenceValue(attributeName, value) {
|
|
488
|
+
// For record references, we need IDs
|
|
489
|
+
// Could be a string ID, an object with record_id, or an array of either
|
|
490
|
+
// String ID
|
|
491
|
+
if (typeof value === 'string') {
|
|
492
|
+
return { valid: true, convertedValue: value };
|
|
493
|
+
}
|
|
494
|
+
// Object with record_id
|
|
495
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
496
|
+
if ('record_id' in value && typeof value.record_id === 'string') {
|
|
497
|
+
return { valid: true, convertedValue: value.record_id };
|
|
498
|
+
}
|
|
499
|
+
if ('id' in value && typeof value.id === 'string') {
|
|
500
|
+
return { valid: true, convertedValue: value.id };
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
// Array of IDs or objects
|
|
504
|
+
if (Array.isArray(value)) {
|
|
505
|
+
const convertedIds = value
|
|
506
|
+
.map((item) => {
|
|
507
|
+
if (typeof item === 'string') {
|
|
508
|
+
return item;
|
|
509
|
+
}
|
|
510
|
+
if (typeof item === 'object' && item !== null) {
|
|
511
|
+
if ('record_id' in item && typeof item.record_id === 'string') {
|
|
512
|
+
return item.record_id;
|
|
513
|
+
}
|
|
514
|
+
if ('id' in item && typeof item.id === 'string') {
|
|
515
|
+
return item.id;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
return null;
|
|
519
|
+
})
|
|
520
|
+
.filter((id) => id !== null);
|
|
521
|
+
if (convertedIds.length > 0) {
|
|
522
|
+
return { valid: true, convertedValue: convertedIds };
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
// Invalid record reference value
|
|
526
|
+
return {
|
|
527
|
+
valid: false,
|
|
528
|
+
error: `Invalid record reference value for "${attributeName}". Expected a record ID string, object with record_id, or array of either, but got ${typeof value}.`,
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
//# sourceMappingURL=attribute-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attribute-validator.js","sourceRoot":"","sources":["../../src/validators/attribute-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CompanyFieldValue, ProcessedFieldValue } from '../../types/tool-types.js';
|
|
2
|
+
export declare const booleanFieldPatterns: string[];
|
|
3
|
+
export declare function isBooleanFieldByName(fieldName: string): boolean;
|
|
4
|
+
export declare function processFieldValue(fieldName: string, value: CompanyFieldValue): Promise<ProcessedFieldValue>;
|
|
5
|
+
//# sourceMappingURL=field_detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field_detector.d.ts","sourceRoot":"","sources":["../../../src/validators/company/field_detector.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,oBAAoB,UA0BhC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAa/D;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAkE9B"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { detectFieldType } from '../../api/attribute-types.js';
|
|
2
|
+
import { ResourceType } from '../../types/attio.js';
|
|
3
|
+
import { convertToBoolean } from '../../utils/attribute-mapping/attribute-mappers.js';
|
|
4
|
+
import { TypeCache } from './type_cache.js';
|
|
5
|
+
export const booleanFieldPatterns = [
|
|
6
|
+
'is_',
|
|
7
|
+
'has_',
|
|
8
|
+
'can_',
|
|
9
|
+
'should_',
|
|
10
|
+
'will_',
|
|
11
|
+
'was_',
|
|
12
|
+
'does_',
|
|
13
|
+
'enabled',
|
|
14
|
+
'active',
|
|
15
|
+
'verified',
|
|
16
|
+
'published',
|
|
17
|
+
'approved',
|
|
18
|
+
'confirmed',
|
|
19
|
+
'suspended',
|
|
20
|
+
'locked',
|
|
21
|
+
'flagged',
|
|
22
|
+
'premium',
|
|
23
|
+
'featured',
|
|
24
|
+
'hidden',
|
|
25
|
+
'allow',
|
|
26
|
+
'accept',
|
|
27
|
+
'available',
|
|
28
|
+
'eligible',
|
|
29
|
+
'complete',
|
|
30
|
+
'valid',
|
|
31
|
+
];
|
|
32
|
+
export function isBooleanFieldByName(fieldName) {
|
|
33
|
+
const lower = fieldName.toLowerCase();
|
|
34
|
+
for (const pattern of booleanFieldPatterns) {
|
|
35
|
+
if (lower.startsWith(pattern) ||
|
|
36
|
+
lower.includes('_' + pattern) ||
|
|
37
|
+
lower === pattern ||
|
|
38
|
+
lower.includes(pattern + '_')) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
export async function processFieldValue(fieldName, value) {
|
|
45
|
+
if (value === null || value === undefined) {
|
|
46
|
+
return value;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
let fieldType = TypeCache.getFieldType(fieldName);
|
|
50
|
+
if (!fieldType) {
|
|
51
|
+
fieldType = await detectFieldType(ResourceType.COMPANIES, fieldName);
|
|
52
|
+
TypeCache.setFieldType(fieldName, fieldType);
|
|
53
|
+
}
|
|
54
|
+
if (fieldType === 'boolean' &&
|
|
55
|
+
(typeof value === 'string' || typeof value === 'number')) {
|
|
56
|
+
return convertToBoolean(value);
|
|
57
|
+
}
|
|
58
|
+
if (fieldType === 'array' && typeof value === 'string') {
|
|
59
|
+
return [value];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
if (isBooleanFieldByName(fieldName) &&
|
|
64
|
+
(typeof value === 'string' || typeof value === 'number')) {
|
|
65
|
+
try {
|
|
66
|
+
return convertToBoolean(value);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// swallow errors and fall through to return original value
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (fieldName.toLowerCase().includes('categories') &&
|
|
73
|
+
typeof value === 'string') {
|
|
74
|
+
return [value];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Ensure we return a valid ProcessedFieldValue
|
|
78
|
+
if (typeof value === 'string' ||
|
|
79
|
+
typeof value === 'number' ||
|
|
80
|
+
typeof value === 'boolean' ||
|
|
81
|
+
value === null ||
|
|
82
|
+
value === undefined) {
|
|
83
|
+
return value;
|
|
84
|
+
}
|
|
85
|
+
// For arrays, ensure all elements are valid types
|
|
86
|
+
if (Array.isArray(value)) {
|
|
87
|
+
const processedArray = value.filter((item) => typeof item === 'string' ||
|
|
88
|
+
typeof item === 'number' ||
|
|
89
|
+
typeof item === 'boolean');
|
|
90
|
+
return processedArray.length > 0 ? processedArray : undefined;
|
|
91
|
+
}
|
|
92
|
+
// For other types, convert to string or return undefined
|
|
93
|
+
return typeof value === 'object' ? String(value) : undefined;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=field_detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field_detector.js","sourceRoot":"","sources":["../../../src/validators/company/field_detector.ts"],"names":[],"mappings":"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"}
|