@hasna/connectors 1.0.5 → 1.0.6
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/bin/index.js +253 -1
- package/bin/mcp.js +253 -1
- package/bin/serve.js +252 -0
- package/connectors/connect-papyrs/.env.example +11 -0
- package/connectors/connect-papyrs/CLAUDE.md +272 -0
- package/connectors/connect-papyrs/README.md +193 -0
- package/connectors/connect-papyrs/package.json +51 -0
- package/connectors/connect-papyrs/scripts/release.ts +179 -0
- package/connectors/connect-papyrs/src/api/client.ts +213 -0
- package/connectors/connect-papyrs/src/api/example.ts +48 -0
- package/connectors/connect-papyrs/src/api/index.ts +51 -0
- package/connectors/connect-papyrs/src/cli/index.ts +254 -0
- package/connectors/connect-papyrs/src/index.ts +103 -0
- package/connectors/connect-papyrs/src/types/index.ts +237 -0
- package/connectors/connect-papyrs/src/utils/auth.ts +274 -0
- package/connectors/connect-papyrs/src/utils/bulk.ts +212 -0
- package/connectors/connect-papyrs/src/utils/config.ts +326 -0
- package/connectors/connect-papyrs/src/utils/output.ts +175 -0
- package/connectors/connect-papyrs/src/utils/settings.ts +114 -0
- package/connectors/connect-papyrs/src/utils/storage.ts +198 -0
- package/connectors/connect-papyrs/tsconfig.json +16 -0
- package/connectors/connect-parsehub/.env.example +11 -0
- package/connectors/connect-parsehub/CLAUDE.md +272 -0
- package/connectors/connect-parsehub/README.md +193 -0
- package/connectors/connect-parsehub/package.json +51 -0
- package/connectors/connect-parsehub/scripts/release.ts +179 -0
- package/connectors/connect-parsehub/src/api/client.ts +213 -0
- package/connectors/connect-parsehub/src/api/example.ts +48 -0
- package/connectors/connect-parsehub/src/api/index.ts +51 -0
- package/connectors/connect-parsehub/src/cli/index.ts +254 -0
- package/connectors/connect-parsehub/src/index.ts +103 -0
- package/connectors/connect-parsehub/src/types/index.ts +237 -0
- package/connectors/connect-parsehub/src/utils/auth.ts +274 -0
- package/connectors/connect-parsehub/src/utils/bulk.ts +212 -0
- package/connectors/connect-parsehub/src/utils/config.ts +326 -0
- package/connectors/connect-parsehub/src/utils/output.ts +175 -0
- package/connectors/connect-parsehub/src/utils/settings.ts +114 -0
- package/connectors/connect-parsehub/src/utils/storage.ts +198 -0
- package/connectors/connect-parsehub/tsconfig.json +16 -0
- package/connectors/connect-parseprompt/.env.example +11 -0
- package/connectors/connect-parseprompt/CLAUDE.md +272 -0
- package/connectors/connect-parseprompt/README.md +193 -0
- package/connectors/connect-parseprompt/package.json +51 -0
- package/connectors/connect-parseprompt/scripts/release.ts +179 -0
- package/connectors/connect-parseprompt/src/api/client.ts +213 -0
- package/connectors/connect-parseprompt/src/api/example.ts +48 -0
- package/connectors/connect-parseprompt/src/api/index.ts +51 -0
- package/connectors/connect-parseprompt/src/cli/index.ts +254 -0
- package/connectors/connect-parseprompt/src/index.ts +103 -0
- package/connectors/connect-parseprompt/src/types/index.ts +237 -0
- package/connectors/connect-parseprompt/src/utils/auth.ts +274 -0
- package/connectors/connect-parseprompt/src/utils/bulk.ts +212 -0
- package/connectors/connect-parseprompt/src/utils/config.ts +326 -0
- package/connectors/connect-parseprompt/src/utils/output.ts +175 -0
- package/connectors/connect-parseprompt/src/utils/settings.ts +114 -0
- package/connectors/connect-parseprompt/src/utils/storage.ts +198 -0
- package/connectors/connect-parseprompt/tsconfig.json +16 -0
- package/connectors/connect-passcreator/.env.example +11 -0
- package/connectors/connect-passcreator/CLAUDE.md +272 -0
- package/connectors/connect-passcreator/README.md +193 -0
- package/connectors/connect-passcreator/package.json +51 -0
- package/connectors/connect-passcreator/scripts/release.ts +179 -0
- package/connectors/connect-passcreator/src/api/client.ts +213 -0
- package/connectors/connect-passcreator/src/api/example.ts +48 -0
- package/connectors/connect-passcreator/src/api/index.ts +51 -0
- package/connectors/connect-passcreator/src/cli/index.ts +254 -0
- package/connectors/connect-passcreator/src/index.ts +103 -0
- package/connectors/connect-passcreator/src/types/index.ts +237 -0
- package/connectors/connect-passcreator/src/utils/auth.ts +274 -0
- package/connectors/connect-passcreator/src/utils/bulk.ts +212 -0
- package/connectors/connect-passcreator/src/utils/config.ts +326 -0
- package/connectors/connect-passcreator/src/utils/output.ts +175 -0
- package/connectors/connect-passcreator/src/utils/settings.ts +114 -0
- package/connectors/connect-passcreator/src/utils/storage.ts +198 -0
- package/connectors/connect-passcreator/tsconfig.json +16 -0
- package/connectors/connect-passslot/.env.example +11 -0
- package/connectors/connect-passslot/CLAUDE.md +272 -0
- package/connectors/connect-passslot/README.md +193 -0
- package/connectors/connect-passslot/package.json +51 -0
- package/connectors/connect-passslot/scripts/release.ts +179 -0
- package/connectors/connect-passslot/src/api/client.ts +213 -0
- package/connectors/connect-passslot/src/api/example.ts +48 -0
- package/connectors/connect-passslot/src/api/index.ts +51 -0
- package/connectors/connect-passslot/src/cli/index.ts +254 -0
- package/connectors/connect-passslot/src/index.ts +103 -0
- package/connectors/connect-passslot/src/types/index.ts +237 -0
- package/connectors/connect-passslot/src/utils/auth.ts +274 -0
- package/connectors/connect-passslot/src/utils/bulk.ts +212 -0
- package/connectors/connect-passslot/src/utils/config.ts +326 -0
- package/connectors/connect-passslot/src/utils/output.ts +175 -0
- package/connectors/connect-passslot/src/utils/settings.ts +114 -0
- package/connectors/connect-passslot/src/utils/storage.ts +198 -0
- package/connectors/connect-passslot/tsconfig.json +16 -0
- package/connectors/connect-patentsview/.env.example +7 -0
- package/connectors/connect-patentsview/CLAUDE.md +257 -0
- package/connectors/connect-patentsview/README.md +334 -0
- package/connectors/connect-patentsview/package.json +54 -0
- package/connectors/connect-patentsview/src/api/assignees.ts +182 -0
- package/connectors/connect-patentsview/src/api/client.ts +139 -0
- package/connectors/connect-patentsview/src/api/cpc.ts +191 -0
- package/connectors/connect-patentsview/src/api/index.ts +73 -0
- package/connectors/connect-patentsview/src/api/inventors.ts +176 -0
- package/connectors/connect-patentsview/src/api/locations.ts +200 -0
- package/connectors/connect-patentsview/src/api/patents.ts +202 -0
- package/connectors/connect-patentsview/src/cli/index.ts +649 -0
- package/connectors/connect-patentsview/src/index.ts +24 -0
- package/connectors/connect-patentsview/src/types/index.ts +333 -0
- package/connectors/connect-patentsview/src/utils/config.ts +212 -0
- package/connectors/connect-patentsview/src/utils/output.ts +119 -0
- package/connectors/connect-patentsview/tsconfig.json +16 -0
- package/connectors/connect-patreon/.env.example +11 -0
- package/connectors/connect-patreon/CLAUDE.md +272 -0
- package/connectors/connect-patreon/README.md +193 -0
- package/connectors/connect-patreon/package.json +51 -0
- package/connectors/connect-patreon/scripts/release.ts +179 -0
- package/connectors/connect-patreon/src/api/client.ts +213 -0
- package/connectors/connect-patreon/src/api/example.ts +48 -0
- package/connectors/connect-patreon/src/api/index.ts +51 -0
- package/connectors/connect-patreon/src/cli/index.ts +254 -0
- package/connectors/connect-patreon/src/index.ts +103 -0
- package/connectors/connect-patreon/src/types/index.ts +237 -0
- package/connectors/connect-patreon/src/utils/auth.ts +274 -0
- package/connectors/connect-patreon/src/utils/bulk.ts +212 -0
- package/connectors/connect-patreon/src/utils/config.ts +326 -0
- package/connectors/connect-patreon/src/utils/output.ts +175 -0
- package/connectors/connect-patreon/src/utils/settings.ts +114 -0
- package/connectors/connect-patreon/src/utils/storage.ts +198 -0
- package/connectors/connect-patreon/tsconfig.json +16 -0
- package/connectors/connect-paymo/.env.example +11 -0
- package/connectors/connect-paymo/CLAUDE.md +272 -0
- package/connectors/connect-paymo/README.md +193 -0
- package/connectors/connect-paymo/package.json +51 -0
- package/connectors/connect-paymo/scripts/release.ts +179 -0
- package/connectors/connect-paymo/src/api/client.ts +213 -0
- package/connectors/connect-paymo/src/api/example.ts +48 -0
- package/connectors/connect-paymo/src/api/index.ts +51 -0
- package/connectors/connect-paymo/src/cli/index.ts +254 -0
- package/connectors/connect-paymo/src/index.ts +103 -0
- package/connectors/connect-paymo/src/types/index.ts +237 -0
- package/connectors/connect-paymo/src/utils/auth.ts +274 -0
- package/connectors/connect-paymo/src/utils/bulk.ts +212 -0
- package/connectors/connect-paymo/src/utils/config.ts +326 -0
- package/connectors/connect-paymo/src/utils/output.ts +175 -0
- package/connectors/connect-paymo/src/utils/settings.ts +114 -0
- package/connectors/connect-paymo/src/utils/storage.ts +198 -0
- package/connectors/connect-paymo/tsconfig.json +16 -0
- package/connectors/connect-peekalink/.env.example +11 -0
- package/connectors/connect-peekalink/CLAUDE.md +272 -0
- package/connectors/connect-peekalink/README.md +193 -0
- package/connectors/connect-peekalink/package.json +51 -0
- package/connectors/connect-peekalink/scripts/release.ts +179 -0
- package/connectors/connect-peekalink/src/api/client.ts +213 -0
- package/connectors/connect-peekalink/src/api/example.ts +48 -0
- package/connectors/connect-peekalink/src/api/index.ts +51 -0
- package/connectors/connect-peekalink/src/cli/index.ts +254 -0
- package/connectors/connect-peekalink/src/index.ts +103 -0
- package/connectors/connect-peekalink/src/types/index.ts +237 -0
- package/connectors/connect-peekalink/src/utils/auth.ts +274 -0
- package/connectors/connect-peekalink/src/utils/bulk.ts +212 -0
- package/connectors/connect-peekalink/src/utils/config.ts +326 -0
- package/connectors/connect-peekalink/src/utils/output.ts +175 -0
- package/connectors/connect-peekalink/src/utils/settings.ts +114 -0
- package/connectors/connect-peekalink/src/utils/storage.ts +198 -0
- package/connectors/connect-peekalink/tsconfig.json +16 -0
- package/connectors/connect-persio/.env.example +11 -0
- package/connectors/connect-persio/CLAUDE.md +272 -0
- package/connectors/connect-persio/README.md +193 -0
- package/connectors/connect-persio/package.json +51 -0
- package/connectors/connect-persio/scripts/release.ts +179 -0
- package/connectors/connect-persio/src/api/client.ts +213 -0
- package/connectors/connect-persio/src/api/example.ts +48 -0
- package/connectors/connect-persio/src/api/index.ts +51 -0
- package/connectors/connect-persio/src/cli/index.ts +254 -0
- package/connectors/connect-persio/src/index.ts +103 -0
- package/connectors/connect-persio/src/types/index.ts +237 -0
- package/connectors/connect-persio/src/utils/auth.ts +274 -0
- package/connectors/connect-persio/src/utils/bulk.ts +212 -0
- package/connectors/connect-persio/src/utils/config.ts +326 -0
- package/connectors/connect-persio/src/utils/output.ts +175 -0
- package/connectors/connect-persio/src/utils/settings.ts +114 -0
- package/connectors/connect-persio/src/utils/storage.ts +198 -0
- package/connectors/connect-persio/tsconfig.json +16 -0
- package/connectors/connect-personalai/.env.example +11 -0
- package/connectors/connect-personalai/CLAUDE.md +272 -0
- package/connectors/connect-personalai/README.md +193 -0
- package/connectors/connect-personalai/package.json +51 -0
- package/connectors/connect-personalai/scripts/release.ts +179 -0
- package/connectors/connect-personalai/src/api/client.ts +213 -0
- package/connectors/connect-personalai/src/api/example.ts +48 -0
- package/connectors/connect-personalai/src/api/index.ts +51 -0
- package/connectors/connect-personalai/src/cli/index.ts +254 -0
- package/connectors/connect-personalai/src/index.ts +103 -0
- package/connectors/connect-personalai/src/types/index.ts +237 -0
- package/connectors/connect-personalai/src/utils/auth.ts +274 -0
- package/connectors/connect-personalai/src/utils/bulk.ts +212 -0
- package/connectors/connect-personalai/src/utils/config.ts +326 -0
- package/connectors/connect-personalai/src/utils/output.ts +175 -0
- package/connectors/connect-personalai/src/utils/settings.ts +114 -0
- package/connectors/connect-personalai/src/utils/storage.ts +198 -0
- package/connectors/connect-personalai/tsconfig.json +16 -0
- package/connectors/connect-phantombuster/.env.example +11 -0
- package/connectors/connect-phantombuster/CLAUDE.md +272 -0
- package/connectors/connect-phantombuster/README.md +193 -0
- package/connectors/connect-phantombuster/package.json +51 -0
- package/connectors/connect-phantombuster/scripts/release.ts +179 -0
- package/connectors/connect-phantombuster/src/api/client.ts +213 -0
- package/connectors/connect-phantombuster/src/api/example.ts +48 -0
- package/connectors/connect-phantombuster/src/api/index.ts +51 -0
- package/connectors/connect-phantombuster/src/cli/index.ts +254 -0
- package/connectors/connect-phantombuster/src/index.ts +103 -0
- package/connectors/connect-phantombuster/src/types/index.ts +237 -0
- package/connectors/connect-phantombuster/src/utils/auth.ts +274 -0
- package/connectors/connect-phantombuster/src/utils/bulk.ts +212 -0
- package/connectors/connect-phantombuster/src/utils/config.ts +326 -0
- package/connectors/connect-phantombuster/src/utils/output.ts +175 -0
- package/connectors/connect-phantombuster/src/utils/settings.ts +114 -0
- package/connectors/connect-phantombuster/src/utils/storage.ts +198 -0
- package/connectors/connect-phantombuster/tsconfig.json +16 -0
- package/connectors/connect-philipshue/.env.example +11 -0
- package/connectors/connect-philipshue/CLAUDE.md +272 -0
- package/connectors/connect-philipshue/README.md +193 -0
- package/connectors/connect-philipshue/package.json +51 -0
- package/connectors/connect-philipshue/scripts/release.ts +179 -0
- package/connectors/connect-philipshue/src/api/client.ts +213 -0
- package/connectors/connect-philipshue/src/api/example.ts +48 -0
- package/connectors/connect-philipshue/src/api/index.ts +51 -0
- package/connectors/connect-philipshue/src/cli/index.ts +254 -0
- package/connectors/connect-philipshue/src/index.ts +103 -0
- package/connectors/connect-philipshue/src/types/index.ts +237 -0
- package/connectors/connect-philipshue/src/utils/auth.ts +274 -0
- package/connectors/connect-philipshue/src/utils/bulk.ts +212 -0
- package/connectors/connect-philipshue/src/utils/config.ts +326 -0
- package/connectors/connect-philipshue/src/utils/output.ts +175 -0
- package/connectors/connect-philipshue/src/utils/settings.ts +114 -0
- package/connectors/connect-philipshue/src/utils/storage.ts +198 -0
- package/connectors/connect-philipshue/tsconfig.json +16 -0
- package/connectors/connect-phrase/.env.example +11 -0
- package/connectors/connect-phrase/CLAUDE.md +272 -0
- package/connectors/connect-phrase/README.md +193 -0
- package/connectors/connect-phrase/package.json +51 -0
- package/connectors/connect-phrase/scripts/release.ts +179 -0
- package/connectors/connect-phrase/src/api/client.ts +213 -0
- package/connectors/connect-phrase/src/api/example.ts +48 -0
- package/connectors/connect-phrase/src/api/index.ts +51 -0
- package/connectors/connect-phrase/src/cli/index.ts +254 -0
- package/connectors/connect-phrase/src/index.ts +103 -0
- package/connectors/connect-phrase/src/types/index.ts +237 -0
- package/connectors/connect-phrase/src/utils/auth.ts +274 -0
- package/connectors/connect-phrase/src/utils/bulk.ts +212 -0
- package/connectors/connect-phrase/src/utils/config.ts +326 -0
- package/connectors/connect-phrase/src/utils/output.ts +175 -0
- package/connectors/connect-phrase/src/utils/settings.ts +114 -0
- package/connectors/connect-phrase/src/utils/storage.ts +198 -0
- package/connectors/connect-phrase/tsconfig.json +16 -0
- package/connectors/connect-pika/.env.example +11 -0
- package/connectors/connect-pika/CLAUDE.md +128 -0
- package/connectors/connect-pika/README.md +193 -0
- package/connectors/connect-pika/package.json +51 -0
- package/connectors/connect-pika/src/api/client.ts +77 -0
- package/connectors/connect-pika/src/api/index.ts +40 -0
- package/connectors/connect-pika/src/cli/index.ts +300 -0
- package/connectors/connect-pika/src/index.ts +19 -0
- package/connectors/connect-pika/src/types/index.ts +54 -0
- package/connectors/connect-pika/src/utils/config.ts +103 -0
- package/connectors/connect-pika/src/utils/output.ts +119 -0
- package/connectors/connect-pika/tsconfig.json +16 -0
- package/connectors/connect-pinata/.env.example +11 -0
- package/connectors/connect-pinata/CLAUDE.md +272 -0
- package/connectors/connect-pinata/README.md +193 -0
- package/connectors/connect-pinata/package.json +51 -0
- package/connectors/connect-pinata/scripts/release.ts +179 -0
- package/connectors/connect-pinata/src/api/client.ts +213 -0
- package/connectors/connect-pinata/src/api/example.ts +48 -0
- package/connectors/connect-pinata/src/api/index.ts +51 -0
- package/connectors/connect-pinata/src/cli/index.ts +254 -0
- package/connectors/connect-pinata/src/index.ts +103 -0
- package/connectors/connect-pinata/src/types/index.ts +237 -0
- package/connectors/connect-pinata/src/utils/auth.ts +274 -0
- package/connectors/connect-pinata/src/utils/bulk.ts +212 -0
- package/connectors/connect-pinata/src/utils/config.ts +326 -0
- package/connectors/connect-pinata/src/utils/output.ts +175 -0
- package/connectors/connect-pinata/src/utils/settings.ts +114 -0
- package/connectors/connect-pinata/src/utils/storage.ts +198 -0
- package/connectors/connect-pinata/tsconfig.json +16 -0
- package/connectors/connect-pipefy/.env.example +11 -0
- package/connectors/connect-pipefy/CLAUDE.md +272 -0
- package/connectors/connect-pipefy/README.md +193 -0
- package/connectors/connect-pipefy/package.json +51 -0
- package/connectors/connect-pipefy/scripts/release.ts +179 -0
- package/connectors/connect-pipefy/src/api/client.ts +213 -0
- package/connectors/connect-pipefy/src/api/example.ts +48 -0
- package/connectors/connect-pipefy/src/api/index.ts +51 -0
- package/connectors/connect-pipefy/src/cli/index.ts +254 -0
- package/connectors/connect-pipefy/src/index.ts +103 -0
- package/connectors/connect-pipefy/src/types/index.ts +237 -0
- package/connectors/connect-pipefy/src/utils/auth.ts +274 -0
- package/connectors/connect-pipefy/src/utils/bulk.ts +212 -0
- package/connectors/connect-pipefy/src/utils/config.ts +326 -0
- package/connectors/connect-pipefy/src/utils/output.ts +175 -0
- package/connectors/connect-pipefy/src/utils/settings.ts +114 -0
- package/connectors/connect-pipefy/src/utils/storage.ts +198 -0
- package/connectors/connect-pipefy/tsconfig.json +16 -0
- package/connectors/connect-pirateweather/.env.example +11 -0
- package/connectors/connect-pirateweather/CLAUDE.md +272 -0
- package/connectors/connect-pirateweather/README.md +193 -0
- package/connectors/connect-pirateweather/package.json +51 -0
- package/connectors/connect-pirateweather/scripts/release.ts +179 -0
- package/connectors/connect-pirateweather/src/api/client.ts +213 -0
- package/connectors/connect-pirateweather/src/api/example.ts +48 -0
- package/connectors/connect-pirateweather/src/api/index.ts +51 -0
- package/connectors/connect-pirateweather/src/cli/index.ts +254 -0
- package/connectors/connect-pirateweather/src/index.ts +103 -0
- package/connectors/connect-pirateweather/src/types/index.ts +237 -0
- package/connectors/connect-pirateweather/src/utils/auth.ts +274 -0
- package/connectors/connect-pirateweather/src/utils/bulk.ts +212 -0
- package/connectors/connect-pirateweather/src/utils/config.ts +326 -0
- package/connectors/connect-pirateweather/src/utils/output.ts +175 -0
- package/connectors/connect-pirateweather/src/utils/settings.ts +114 -0
- package/connectors/connect-pirateweather/src/utils/storage.ts +198 -0
- package/connectors/connect-pirateweather/tsconfig.json +16 -0
- package/connectors/connect-pitchly/.env.example +11 -0
- package/connectors/connect-pitchly/CLAUDE.md +272 -0
- package/connectors/connect-pitchly/README.md +193 -0
- package/connectors/connect-pitchly/package.json +51 -0
- package/connectors/connect-pitchly/scripts/release.ts +179 -0
- package/connectors/connect-pitchly/src/api/client.ts +213 -0
- package/connectors/connect-pitchly/src/api/example.ts +48 -0
- package/connectors/connect-pitchly/src/api/index.ts +51 -0
- package/connectors/connect-pitchly/src/cli/index.ts +254 -0
- package/connectors/connect-pitchly/src/index.ts +103 -0
- package/connectors/connect-pitchly/src/types/index.ts +237 -0
- package/connectors/connect-pitchly/src/utils/auth.ts +274 -0
- package/connectors/connect-pitchly/src/utils/bulk.ts +212 -0
- package/connectors/connect-pitchly/src/utils/config.ts +326 -0
- package/connectors/connect-pitchly/src/utils/output.ts +175 -0
- package/connectors/connect-pitchly/src/utils/settings.ts +114 -0
- package/connectors/connect-pitchly/src/utils/storage.ts +198 -0
- package/connectors/connect-pitchly/tsconfig.json +16 -0
- package/connectors/connect-pivotaltracker/.env.example +11 -0
- package/connectors/connect-pivotaltracker/CLAUDE.md +272 -0
- package/connectors/connect-pivotaltracker/README.md +193 -0
- package/connectors/connect-pivotaltracker/package.json +51 -0
- package/connectors/connect-pivotaltracker/scripts/release.ts +179 -0
- package/connectors/connect-pivotaltracker/src/api/client.ts +213 -0
- package/connectors/connect-pivotaltracker/src/api/example.ts +48 -0
- package/connectors/connect-pivotaltracker/src/api/index.ts +51 -0
- package/connectors/connect-pivotaltracker/src/cli/index.ts +254 -0
- package/connectors/connect-pivotaltracker/src/index.ts +103 -0
- package/connectors/connect-pivotaltracker/src/types/index.ts +237 -0
- package/connectors/connect-pivotaltracker/src/utils/auth.ts +274 -0
- package/connectors/connect-pivotaltracker/src/utils/bulk.ts +212 -0
- package/connectors/connect-pivotaltracker/src/utils/config.ts +326 -0
- package/connectors/connect-pivotaltracker/src/utils/output.ts +175 -0
- package/connectors/connect-pivotaltracker/src/utils/settings.ts +114 -0
- package/connectors/connect-pivotaltracker/src/utils/storage.ts +198 -0
- package/connectors/connect-pivotaltracker/tsconfig.json +16 -0
- package/connectors/connect-planviewleankit/.env.example +11 -0
- package/connectors/connect-planviewleankit/CLAUDE.md +272 -0
- package/connectors/connect-planviewleankit/README.md +193 -0
- package/connectors/connect-planviewleankit/package.json +51 -0
- package/connectors/connect-planviewleankit/scripts/release.ts +179 -0
- package/connectors/connect-planviewleankit/src/api/client.ts +213 -0
- package/connectors/connect-planviewleankit/src/api/example.ts +48 -0
- package/connectors/connect-planviewleankit/src/api/index.ts +51 -0
- package/connectors/connect-planviewleankit/src/cli/index.ts +254 -0
- package/connectors/connect-planviewleankit/src/index.ts +103 -0
- package/connectors/connect-planviewleankit/src/types/index.ts +237 -0
- package/connectors/connect-planviewleankit/src/utils/auth.ts +274 -0
- package/connectors/connect-planviewleankit/src/utils/bulk.ts +212 -0
- package/connectors/connect-planviewleankit/src/utils/config.ts +326 -0
- package/connectors/connect-planviewleankit/src/utils/output.ts +175 -0
- package/connectors/connect-planviewleankit/src/utils/settings.ts +114 -0
- package/connectors/connect-planviewleankit/src/utils/storage.ts +198 -0
- package/connectors/connect-planviewleankit/tsconfig.json +16 -0
- package/connectors/connect-planyoonlinebooking/.env.example +11 -0
- package/connectors/connect-planyoonlinebooking/CLAUDE.md +272 -0
- package/connectors/connect-planyoonlinebooking/README.md +193 -0
- package/connectors/connect-planyoonlinebooking/package.json +51 -0
- package/connectors/connect-planyoonlinebooking/scripts/release.ts +179 -0
- package/connectors/connect-planyoonlinebooking/src/api/client.ts +213 -0
- package/connectors/connect-planyoonlinebooking/src/api/example.ts +48 -0
- package/connectors/connect-planyoonlinebooking/src/api/index.ts +51 -0
- package/connectors/connect-planyoonlinebooking/src/cli/index.ts +254 -0
- package/connectors/connect-planyoonlinebooking/src/index.ts +103 -0
- package/connectors/connect-planyoonlinebooking/src/types/index.ts +237 -0
- package/connectors/connect-planyoonlinebooking/src/utils/auth.ts +274 -0
- package/connectors/connect-planyoonlinebooking/src/utils/bulk.ts +212 -0
- package/connectors/connect-planyoonlinebooking/src/utils/config.ts +326 -0
- package/connectors/connect-planyoonlinebooking/src/utils/output.ts +175 -0
- package/connectors/connect-planyoonlinebooking/src/utils/settings.ts +114 -0
- package/connectors/connect-planyoonlinebooking/src/utils/storage.ts +198 -0
- package/connectors/connect-planyoonlinebooking/tsconfig.json +16 -0
- package/connectors/connect-platformly/.env.example +11 -0
- package/connectors/connect-platformly/CLAUDE.md +272 -0
- package/connectors/connect-platformly/README.md +193 -0
- package/connectors/connect-platformly/package.json +51 -0
- package/connectors/connect-platformly/scripts/release.ts +179 -0
- package/connectors/connect-platformly/src/api/client.ts +213 -0
- package/connectors/connect-platformly/src/api/example.ts +48 -0
- package/connectors/connect-platformly/src/api/index.ts +51 -0
- package/connectors/connect-platformly/src/cli/index.ts +254 -0
- package/connectors/connect-platformly/src/index.ts +103 -0
- package/connectors/connect-platformly/src/types/index.ts +237 -0
- package/connectors/connect-platformly/src/utils/auth.ts +274 -0
- package/connectors/connect-platformly/src/utils/bulk.ts +212 -0
- package/connectors/connect-platformly/src/utils/config.ts +326 -0
- package/connectors/connect-platformly/src/utils/output.ts +175 -0
- package/connectors/connect-platformly/src/utils/settings.ts +114 -0
- package/connectors/connect-platformly/src/utils/storage.ts +198 -0
- package/connectors/connect-platformly/tsconfig.json +16 -0
- package/connectors/connect-playht/.env.example +11 -0
- package/connectors/connect-playht/CLAUDE.md +128 -0
- package/connectors/connect-playht/README.md +193 -0
- package/connectors/connect-playht/package.json +53 -0
- package/connectors/connect-playht/src/api/client.ts +146 -0
- package/connectors/connect-playht/src/api/index.ts +179 -0
- package/connectors/connect-playht/src/cli/index.ts +384 -0
- package/connectors/connect-playht/src/index.ts +21 -0
- package/connectors/connect-playht/src/types/index.ts +148 -0
- package/connectors/connect-playht/src/utils/config.ts +114 -0
- package/connectors/connect-playht/src/utils/output.ts +119 -0
- package/connectors/connect-playht/tsconfig.json +16 -0
- package/connectors/connect-plecto/.env.example +11 -0
- package/connectors/connect-plecto/CLAUDE.md +272 -0
- package/connectors/connect-plecto/README.md +193 -0
- package/connectors/connect-plecto/package.json +51 -0
- package/connectors/connect-plecto/scripts/release.ts +179 -0
- package/connectors/connect-plecto/src/api/client.ts +213 -0
- package/connectors/connect-plecto/src/api/example.ts +48 -0
- package/connectors/connect-plecto/src/api/index.ts +51 -0
- package/connectors/connect-plecto/src/cli/index.ts +254 -0
- package/connectors/connect-plecto/src/index.ts +103 -0
- package/connectors/connect-plecto/src/types/index.ts +237 -0
- package/connectors/connect-plecto/src/utils/auth.ts +274 -0
- package/connectors/connect-plecto/src/utils/bulk.ts +212 -0
- package/connectors/connect-plecto/src/utils/config.ts +326 -0
- package/connectors/connect-plecto/src/utils/output.ts +175 -0
- package/connectors/connect-plecto/src/utils/settings.ts +114 -0
- package/connectors/connect-plecto/src/utils/storage.ts +198 -0
- package/connectors/connect-plecto/tsconfig.json +16 -0
- package/connectors/connect-plivo/.env.example +11 -0
- package/connectors/connect-plivo/CLAUDE.md +272 -0
- package/connectors/connect-plivo/README.md +193 -0
- package/connectors/connect-plivo/package.json +51 -0
- package/connectors/connect-plivo/scripts/release.ts +179 -0
- package/connectors/connect-plivo/src/api/client.ts +213 -0
- package/connectors/connect-plivo/src/api/example.ts +48 -0
- package/connectors/connect-plivo/src/api/index.ts +51 -0
- package/connectors/connect-plivo/src/cli/index.ts +254 -0
- package/connectors/connect-plivo/src/index.ts +103 -0
- package/connectors/connect-plivo/src/types/index.ts +237 -0
- package/connectors/connect-plivo/src/utils/auth.ts +274 -0
- package/connectors/connect-plivo/src/utils/bulk.ts +212 -0
- package/connectors/connect-plivo/src/utils/config.ts +326 -0
- package/connectors/connect-plivo/src/utils/output.ts +175 -0
- package/connectors/connect-plivo/src/utils/settings.ts +114 -0
- package/connectors/connect-plivo/src/utils/storage.ts +198 -0
- package/connectors/connect-plivo/tsconfig.json +16 -0
- package/connectors/connect-postgres/.env.example +11 -0
- package/connectors/connect-postgres/CLAUDE.md +272 -0
- package/connectors/connect-postgres/README.md +193 -0
- package/connectors/connect-postgres/package.json +51 -0
- package/connectors/connect-postgres/scripts/release.ts +179 -0
- package/connectors/connect-postgres/src/api/client.ts +213 -0
- package/connectors/connect-postgres/src/api/example.ts +48 -0
- package/connectors/connect-postgres/src/api/index.ts +51 -0
- package/connectors/connect-postgres/src/cli/index.ts +254 -0
- package/connectors/connect-postgres/src/index.ts +103 -0
- package/connectors/connect-postgres/src/types/index.ts +237 -0
- package/connectors/connect-postgres/src/utils/auth.ts +274 -0
- package/connectors/connect-postgres/src/utils/bulk.ts +212 -0
- package/connectors/connect-postgres/src/utils/config.ts +326 -0
- package/connectors/connect-postgres/src/utils/output.ts +175 -0
- package/connectors/connect-postgres/src/utils/settings.ts +114 -0
- package/connectors/connect-postgres/src/utils/storage.ts +198 -0
- package/connectors/connect-postgres/tsconfig.json +16 -0
- package/connectors/connect-practitest/.env.example +11 -0
- package/connectors/connect-practitest/CLAUDE.md +272 -0
- package/connectors/connect-practitest/README.md +193 -0
- package/connectors/connect-practitest/package.json +51 -0
- package/connectors/connect-practitest/scripts/release.ts +179 -0
- package/connectors/connect-practitest/src/api/client.ts +213 -0
- package/connectors/connect-practitest/src/api/example.ts +48 -0
- package/connectors/connect-practitest/src/api/index.ts +51 -0
- package/connectors/connect-practitest/src/cli/index.ts +254 -0
- package/connectors/connect-practitest/src/index.ts +103 -0
- package/connectors/connect-practitest/src/types/index.ts +237 -0
- package/connectors/connect-practitest/src/utils/auth.ts +274 -0
- package/connectors/connect-practitest/src/utils/bulk.ts +212 -0
- package/connectors/connect-practitest/src/utils/config.ts +326 -0
- package/connectors/connect-practitest/src/utils/output.ts +175 -0
- package/connectors/connect-practitest/src/utils/settings.ts +114 -0
- package/connectors/connect-practitest/src/utils/storage.ts +198 -0
- package/connectors/connect-practitest/tsconfig.json +16 -0
- package/connectors/connect-predisai/.env.example +11 -0
- package/connectors/connect-predisai/CLAUDE.md +272 -0
- package/connectors/connect-predisai/README.md +193 -0
- package/connectors/connect-predisai/package.json +51 -0
- package/connectors/connect-predisai/scripts/release.ts +179 -0
- package/connectors/connect-predisai/src/api/client.ts +213 -0
- package/connectors/connect-predisai/src/api/example.ts +48 -0
- package/connectors/connect-predisai/src/api/index.ts +51 -0
- package/connectors/connect-predisai/src/cli/index.ts +254 -0
- package/connectors/connect-predisai/src/index.ts +103 -0
- package/connectors/connect-predisai/src/types/index.ts +237 -0
- package/connectors/connect-predisai/src/utils/auth.ts +274 -0
- package/connectors/connect-predisai/src/utils/bulk.ts +212 -0
- package/connectors/connect-predisai/src/utils/config.ts +326 -0
- package/connectors/connect-predisai/src/utils/output.ts +175 -0
- package/connectors/connect-predisai/src/utils/settings.ts +114 -0
- package/connectors/connect-predisai/src/utils/storage.ts +198 -0
- package/connectors/connect-predisai/tsconfig.json +16 -0
- package/connectors/connect-prodia/.env.example +11 -0
- package/connectors/connect-prodia/CLAUDE.md +272 -0
- package/connectors/connect-prodia/README.md +193 -0
- package/connectors/connect-prodia/package.json +51 -0
- package/connectors/connect-prodia/scripts/release.ts +179 -0
- package/connectors/connect-prodia/src/api/client.ts +213 -0
- package/connectors/connect-prodia/src/api/example.ts +48 -0
- package/connectors/connect-prodia/src/api/index.ts +51 -0
- package/connectors/connect-prodia/src/cli/index.ts +254 -0
- package/connectors/connect-prodia/src/index.ts +103 -0
- package/connectors/connect-prodia/src/types/index.ts +237 -0
- package/connectors/connect-prodia/src/utils/auth.ts +274 -0
- package/connectors/connect-prodia/src/utils/bulk.ts +212 -0
- package/connectors/connect-prodia/src/utils/config.ts +326 -0
- package/connectors/connect-prodia/src/utils/output.ts +175 -0
- package/connectors/connect-prodia/src/utils/settings.ts +114 -0
- package/connectors/connect-prodia/src/utils/storage.ts +198 -0
- package/connectors/connect-prodia/tsconfig.json +16 -0
- package/connectors/connect-profitwell/.env.example +11 -0
- package/connectors/connect-profitwell/CLAUDE.md +272 -0
- package/connectors/connect-profitwell/README.md +193 -0
- package/connectors/connect-profitwell/package.json +51 -0
- package/connectors/connect-profitwell/scripts/release.ts +179 -0
- package/connectors/connect-profitwell/src/api/client.ts +213 -0
- package/connectors/connect-profitwell/src/api/example.ts +48 -0
- package/connectors/connect-profitwell/src/api/index.ts +51 -0
- package/connectors/connect-profitwell/src/cli/index.ts +254 -0
- package/connectors/connect-profitwell/src/index.ts +103 -0
- package/connectors/connect-profitwell/src/types/index.ts +237 -0
- package/connectors/connect-profitwell/src/utils/auth.ts +274 -0
- package/connectors/connect-profitwell/src/utils/bulk.ts +212 -0
- package/connectors/connect-profitwell/src/utils/config.ts +326 -0
- package/connectors/connect-profitwell/src/utils/output.ts +175 -0
- package/connectors/connect-profitwell/src/utils/settings.ts +114 -0
- package/connectors/connect-profitwell/src/utils/storage.ts +198 -0
- package/connectors/connect-profitwell/tsconfig.json +16 -0
- package/connectors/connect-projectbubbleproprofsproject/.env.example +11 -0
- package/connectors/connect-projectbubbleproprofsproject/CLAUDE.md +272 -0
- package/connectors/connect-projectbubbleproprofsproject/README.md +193 -0
- package/connectors/connect-projectbubbleproprofsproject/package.json +51 -0
- package/connectors/connect-projectbubbleproprofsproject/scripts/release.ts +179 -0
- package/connectors/connect-projectbubbleproprofsproject/src/api/client.ts +213 -0
- package/connectors/connect-projectbubbleproprofsproject/src/api/example.ts +48 -0
- package/connectors/connect-projectbubbleproprofsproject/src/api/index.ts +51 -0
- package/connectors/connect-projectbubbleproprofsproject/src/cli/index.ts +254 -0
- package/connectors/connect-projectbubbleproprofsproject/src/index.ts +103 -0
- package/connectors/connect-projectbubbleproprofsproject/src/types/index.ts +237 -0
- package/connectors/connect-projectbubbleproprofsproject/src/utils/auth.ts +274 -0
- package/connectors/connect-projectbubbleproprofsproject/src/utils/bulk.ts +212 -0
- package/connectors/connect-projectbubbleproprofsproject/src/utils/config.ts +326 -0
- package/connectors/connect-projectbubbleproprofsproject/src/utils/output.ts +175 -0
- package/connectors/connect-projectbubbleproprofsproject/src/utils/settings.ts +114 -0
- package/connectors/connect-projectbubbleproprofsproject/src/utils/storage.ts +198 -0
- package/connectors/connect-projectbubbleproprofsproject/tsconfig.json +16 -0
- package/connectors/connect-prompthub/.env.example +11 -0
- package/connectors/connect-prompthub/CLAUDE.md +272 -0
- package/connectors/connect-prompthub/README.md +193 -0
- package/connectors/connect-prompthub/package.json +51 -0
- package/connectors/connect-prompthub/scripts/release.ts +179 -0
- package/connectors/connect-prompthub/src/api/client.ts +213 -0
- package/connectors/connect-prompthub/src/api/example.ts +48 -0
- package/connectors/connect-prompthub/src/api/index.ts +51 -0
- package/connectors/connect-prompthub/src/cli/index.ts +254 -0
- package/connectors/connect-prompthub/src/index.ts +103 -0
- package/connectors/connect-prompthub/src/types/index.ts +237 -0
- package/connectors/connect-prompthub/src/utils/auth.ts +274 -0
- package/connectors/connect-prompthub/src/utils/bulk.ts +212 -0
- package/connectors/connect-prompthub/src/utils/config.ts +326 -0
- package/connectors/connect-prompthub/src/utils/output.ts +175 -0
- package/connectors/connect-prompthub/src/utils/settings.ts +114 -0
- package/connectors/connect-prompthub/src/utils/storage.ts +198 -0
- package/connectors/connect-prompthub/tsconfig.json +16 -0
- package/connectors/connect-prospeai/.env.example +11 -0
- package/connectors/connect-prospeai/CLAUDE.md +272 -0
- package/connectors/connect-prospeai/README.md +193 -0
- package/connectors/connect-prospeai/package.json +51 -0
- package/connectors/connect-prospeai/scripts/release.ts +179 -0
- package/connectors/connect-prospeai/src/api/client.ts +213 -0
- package/connectors/connect-prospeai/src/api/example.ts +48 -0
- package/connectors/connect-prospeai/src/api/index.ts +51 -0
- package/connectors/connect-prospeai/src/cli/index.ts +254 -0
- package/connectors/connect-prospeai/src/index.ts +103 -0
- package/connectors/connect-prospeai/src/types/index.ts +237 -0
- package/connectors/connect-prospeai/src/utils/auth.ts +274 -0
- package/connectors/connect-prospeai/src/utils/bulk.ts +212 -0
- package/connectors/connect-prospeai/src/utils/config.ts +326 -0
- package/connectors/connect-prospeai/src/utils/output.ts +175 -0
- package/connectors/connect-prospeai/src/utils/settings.ts +114 -0
- package/connectors/connect-prospeai/src/utils/storage.ts +198 -0
- package/connectors/connect-prospeai/tsconfig.json +16 -0
- package/connectors/connect-pulsetic/.env.example +11 -0
- package/connectors/connect-pulsetic/CLAUDE.md +272 -0
- package/connectors/connect-pulsetic/README.md +193 -0
- package/connectors/connect-pulsetic/package.json +51 -0
- package/connectors/connect-pulsetic/scripts/release.ts +179 -0
- package/connectors/connect-pulsetic/src/api/client.ts +213 -0
- package/connectors/connect-pulsetic/src/api/example.ts +48 -0
- package/connectors/connect-pulsetic/src/api/index.ts +51 -0
- package/connectors/connect-pulsetic/src/cli/index.ts +254 -0
- package/connectors/connect-pulsetic/src/index.ts +103 -0
- package/connectors/connect-pulsetic/src/types/index.ts +237 -0
- package/connectors/connect-pulsetic/src/utils/auth.ts +274 -0
- package/connectors/connect-pulsetic/src/utils/bulk.ts +212 -0
- package/connectors/connect-pulsetic/src/utils/config.ts +326 -0
- package/connectors/connect-pulsetic/src/utils/output.ts +175 -0
- package/connectors/connect-pulsetic/src/utils/settings.ts +114 -0
- package/connectors/connect-pulsetic/src/utils/storage.ts +198 -0
- package/connectors/connect-pulsetic/tsconfig.json +16 -0
- package/connectors/connect-pushbullet/.env.example +11 -0
- package/connectors/connect-pushbullet/CLAUDE.md +272 -0
- package/connectors/connect-pushbullet/README.md +193 -0
- package/connectors/connect-pushbullet/package.json +51 -0
- package/connectors/connect-pushbullet/scripts/release.ts +179 -0
- package/connectors/connect-pushbullet/src/api/client.ts +213 -0
- package/connectors/connect-pushbullet/src/api/example.ts +48 -0
- package/connectors/connect-pushbullet/src/api/index.ts +51 -0
- package/connectors/connect-pushbullet/src/cli/index.ts +254 -0
- package/connectors/connect-pushbullet/src/index.ts +103 -0
- package/connectors/connect-pushbullet/src/types/index.ts +237 -0
- package/connectors/connect-pushbullet/src/utils/auth.ts +274 -0
- package/connectors/connect-pushbullet/src/utils/bulk.ts +212 -0
- package/connectors/connect-pushbullet/src/utils/config.ts +326 -0
- package/connectors/connect-pushbullet/src/utils/output.ts +175 -0
- package/connectors/connect-pushbullet/src/utils/settings.ts +114 -0
- package/connectors/connect-pushbullet/src/utils/storage.ts +198 -0
- package/connectors/connect-pushbullet/tsconfig.json +16 -0
- package/dist/index.js +252 -0
- package/package.json +1 -1
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# connect-patentsview
|
|
2
|
+
|
|
3
|
+
A TypeScript connector for the USPTO PatentsView API. Search and analyze US patent data including patents, inventors, assignees, CPC classifications, and locations.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Search patents by title, abstract, assignee, inventor, CPC classification
|
|
8
|
+
- Search inventors and assignees
|
|
9
|
+
- Browse CPC (Cooperative Patent Classification) hierarchy
|
|
10
|
+
- Location-based patent analytics
|
|
11
|
+
- Multi-profile configuration support
|
|
12
|
+
- Pretty and JSON output formats
|
|
13
|
+
- TypeScript with full type definitions
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
**API Key Required:** The PatentsView API requires an API key for authentication.
|
|
18
|
+
|
|
19
|
+
Get your free API key at: https://patentsview-support.atlassian.net/servicedesk/customer/portal/1/group/1/create/18
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Install globally
|
|
25
|
+
bun install -g @hasna/connect-patentsview
|
|
26
|
+
|
|
27
|
+
# Or use directly
|
|
28
|
+
bunx @hasna/connect-patentsview
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Quick Start
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Configure your API key
|
|
35
|
+
connect-patentsview config set-key YOUR_API_KEY
|
|
36
|
+
|
|
37
|
+
# Search patents by title
|
|
38
|
+
connect-patentsview patents search --title "artificial intelligence"
|
|
39
|
+
|
|
40
|
+
# Get a specific patent
|
|
41
|
+
connect-patentsview patents get 10000000
|
|
42
|
+
|
|
43
|
+
# Search top assignees
|
|
44
|
+
connect-patentsview assignees top --limit 25
|
|
45
|
+
|
|
46
|
+
# Search inventors by name
|
|
47
|
+
connect-patentsview inventors search --name "Smith"
|
|
48
|
+
|
|
49
|
+
# Browse CPC classifications
|
|
50
|
+
connect-patentsview cpc sections
|
|
51
|
+
connect-patentsview cpc search --section G
|
|
52
|
+
|
|
53
|
+
# Get top patent locations
|
|
54
|
+
connect-patentsview locations top --us
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## CLI Commands
|
|
58
|
+
|
|
59
|
+
### Patents
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Search patents
|
|
63
|
+
connect-patentsview patents search [options]
|
|
64
|
+
--title <text> Search by title
|
|
65
|
+
--abstract <text> Search by abstract
|
|
66
|
+
--assignee <name> Search by assignee organization
|
|
67
|
+
--inventor <name> Search by inventor last name
|
|
68
|
+
--cpc <code> Search by CPC classification
|
|
69
|
+
--year <year> Filter by year
|
|
70
|
+
--from <date> Start date (YYYY-MM-DD)
|
|
71
|
+
--to <date> End date (YYYY-MM-DD)
|
|
72
|
+
--limit <n> Number of results (default: 25)
|
|
73
|
+
--page <n> Page number (default: 1)
|
|
74
|
+
|
|
75
|
+
# Get single patent
|
|
76
|
+
connect-patentsview patents get <patentId>
|
|
77
|
+
|
|
78
|
+
# Get recent patents
|
|
79
|
+
connect-patentsview patents recent --limit 50
|
|
80
|
+
|
|
81
|
+
# Get most cited patents
|
|
82
|
+
connect-patentsview patents cited --limit 25
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Assignees
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Search assignees
|
|
89
|
+
connect-patentsview assignees search [options]
|
|
90
|
+
--org <name> Search by organization name
|
|
91
|
+
--name <lastname> Search by individual last name
|
|
92
|
+
--country <code> Filter by country
|
|
93
|
+
--state <code> Filter by state (US only)
|
|
94
|
+
|
|
95
|
+
# Get single assignee
|
|
96
|
+
connect-patentsview assignees get <assigneeId>
|
|
97
|
+
|
|
98
|
+
# Get top assignees by patent count
|
|
99
|
+
connect-patentsview assignees top --limit 25
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Inventors
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Search inventors
|
|
106
|
+
connect-patentsview inventors search [options]
|
|
107
|
+
--name <lastname> Search by last name
|
|
108
|
+
--first <firstname> Filter by first name
|
|
109
|
+
--country <code> Filter by country
|
|
110
|
+
--state <code> Filter by state (US only)
|
|
111
|
+
|
|
112
|
+
# Get single inventor
|
|
113
|
+
connect-patentsview inventors get <inventorId>
|
|
114
|
+
|
|
115
|
+
# Get top inventors
|
|
116
|
+
connect-patentsview inventors top --limit 25
|
|
117
|
+
|
|
118
|
+
# Get prolific inventors (with many patents)
|
|
119
|
+
connect-patentsview inventors prolific --min 100
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### CPC Classifications
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Search CPC subgroups
|
|
126
|
+
connect-patentsview cpc search [options]
|
|
127
|
+
--title <text> Search by title
|
|
128
|
+
--section <id> Filter by section (A-H, Y)
|
|
129
|
+
--class <id> Filter by class (e.g., G06)
|
|
130
|
+
--subclass <id> Filter by subclass (e.g., G06F)
|
|
131
|
+
--group <id> Filter by group (e.g., G06F3/00)
|
|
132
|
+
--prefix <id> Search by ID prefix
|
|
133
|
+
|
|
134
|
+
# Get single CPC subgroup
|
|
135
|
+
connect-patentsview cpc get <cpcId>
|
|
136
|
+
|
|
137
|
+
# List CPC sections
|
|
138
|
+
connect-patentsview cpc sections
|
|
139
|
+
|
|
140
|
+
# Get top CPC subgroups by patent count
|
|
141
|
+
connect-patentsview cpc top --limit 25
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Locations
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Search locations
|
|
148
|
+
connect-patentsview locations search [options]
|
|
149
|
+
--country <code> Filter by country
|
|
150
|
+
--state <code> Filter by state (US only)
|
|
151
|
+
--city <name> Search by city name
|
|
152
|
+
|
|
153
|
+
# Get top locations
|
|
154
|
+
connect-patentsview locations top [options]
|
|
155
|
+
--us US locations only
|
|
156
|
+
--state <code> Top cities in a specific US state
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Configuration
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Set API key
|
|
163
|
+
connect-patentsview config set-key YOUR_API_KEY
|
|
164
|
+
|
|
165
|
+
# Show configuration
|
|
166
|
+
connect-patentsview config show
|
|
167
|
+
|
|
168
|
+
# Manage profiles
|
|
169
|
+
connect-patentsview profile list
|
|
170
|
+
connect-patentsview profile create <name> [--api-key KEY] [--use]
|
|
171
|
+
connect-patentsview profile use <name>
|
|
172
|
+
connect-patentsview profile show [name]
|
|
173
|
+
connect-patentsview profile delete <name>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Programmatic Usage
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
import { PatentsView } from '@hasna/connect-patentsview';
|
|
180
|
+
|
|
181
|
+
// Create client with API key
|
|
182
|
+
const pv = new PatentsView({ apiKey: 'your-api-key' });
|
|
183
|
+
|
|
184
|
+
// Or from environment variable (PATENTSVIEW_API_KEY)
|
|
185
|
+
const pv = PatentsView.fromEnv();
|
|
186
|
+
|
|
187
|
+
// Search patents
|
|
188
|
+
const results = await pv.patents.searchByTitle('machine learning', {
|
|
189
|
+
per_page: 25,
|
|
190
|
+
sort: [{ patent_date: 'desc' }],
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
console.log(`Found ${results.total_hits} patents`);
|
|
194
|
+
results.patents.forEach(p => {
|
|
195
|
+
console.log(`${p.patent_id}: ${p.patent_title}`);
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
// Get a specific patent
|
|
199
|
+
const patent = await pv.patents.get('10000000');
|
|
200
|
+
|
|
201
|
+
// Search assignees
|
|
202
|
+
const assignees = await pv.assignees.searchByOrganization('Microsoft');
|
|
203
|
+
|
|
204
|
+
// Get prolific inventors
|
|
205
|
+
const inventors = await pv.inventors.getProlific(200);
|
|
206
|
+
|
|
207
|
+
// Search CPC classifications
|
|
208
|
+
const cpc = await pv.cpc.searchBySection('H'); // Electricity
|
|
209
|
+
|
|
210
|
+
// Custom query with all options
|
|
211
|
+
const customSearch = await pv.patents.search(
|
|
212
|
+
// Query filters
|
|
213
|
+
{
|
|
214
|
+
_and: [
|
|
215
|
+
{ patent_year: { _gte: 2020 } },
|
|
216
|
+
{ assignees: { assignee_organization: { _contains: 'IBM' } } },
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
// Fields to return
|
|
220
|
+
['patent_id', 'patent_title', 'patent_date', 'patent_num_cited_by_us_patents'],
|
|
221
|
+
// Options
|
|
222
|
+
{
|
|
223
|
+
per_page: 100,
|
|
224
|
+
page: 1,
|
|
225
|
+
sort: [{ patent_num_cited_by_us_patents: 'desc' }],
|
|
226
|
+
}
|
|
227
|
+
);
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## API Reference
|
|
231
|
+
|
|
232
|
+
### Query Operators
|
|
233
|
+
|
|
234
|
+
| Operator | Description | Example |
|
|
235
|
+
|----------|-------------|---------|
|
|
236
|
+
| `_eq` | Equals | `{ "patent_year": { "_eq": 2024 } }` |
|
|
237
|
+
| `_neq` | Not equals | `{ "patent_type": { "_neq": "design" } }` |
|
|
238
|
+
| `_gt` | Greater than | `{ "patent_num_claims": { "_gt": 10 } }` |
|
|
239
|
+
| `_gte` | Greater than or equal | `{ "patent_year": { "_gte": 2020 } }` |
|
|
240
|
+
| `_lt` | Less than | `{ "patent_year": { "_lt": 2000 } }` |
|
|
241
|
+
| `_lte` | Less than or equal | `{ "patent_num_claims": { "_lte": 5 } }` |
|
|
242
|
+
| `_begins` | Starts with | `{ "inventor_name_last": { "_begins": "Sm" } }` |
|
|
243
|
+
| `_contains` | Contains | `{ "assignee_organization": { "_contains": "Google" } }` |
|
|
244
|
+
| `_text_any` | Full-text (any word) | `{ "patent_title": { "_text_any": "AI machine learning" } }` |
|
|
245
|
+
| `_text_all` | Full-text (all words) | `{ "patent_abstract": { "_text_all": "neural network" } }` |
|
|
246
|
+
| `_text_phrase` | Full-text (exact phrase) | `{ "patent_title": { "_text_phrase": "deep learning" } }` |
|
|
247
|
+
|
|
248
|
+
### Logical Operators
|
|
249
|
+
|
|
250
|
+
```typescript
|
|
251
|
+
// AND - all conditions must match
|
|
252
|
+
{
|
|
253
|
+
"_and": [
|
|
254
|
+
{ "patent_year": { "_gte": 2020 } },
|
|
255
|
+
{ "patent_type": { "_eq": "utility" } }
|
|
256
|
+
]
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// OR - any condition must match
|
|
260
|
+
{
|
|
261
|
+
"_or": [
|
|
262
|
+
{ "assignee_country": { "_eq": "US" } },
|
|
263
|
+
{ "assignee_country": { "_eq": "JP" } }
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// NOT - negate a condition
|
|
268
|
+
{
|
|
269
|
+
"_not": { "patent_type": { "_eq": "design" } }
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### CPC Sections
|
|
274
|
+
|
|
275
|
+
| Section | Description |
|
|
276
|
+
|---------|-------------|
|
|
277
|
+
| A | Human Necessities |
|
|
278
|
+
| B | Performing Operations; Transporting |
|
|
279
|
+
| C | Chemistry; Metallurgy |
|
|
280
|
+
| D | Textiles; Paper |
|
|
281
|
+
| E | Fixed Constructions |
|
|
282
|
+
| F | Mechanical Engineering; Lighting; Heating; Weapons; Blasting |
|
|
283
|
+
| G | Physics |
|
|
284
|
+
| H | Electricity |
|
|
285
|
+
| Y | General Tagging of New Technological Developments |
|
|
286
|
+
|
|
287
|
+
## Environment Variables
|
|
288
|
+
|
|
289
|
+
| Variable | Description | Default |
|
|
290
|
+
|----------|-------------|---------|
|
|
291
|
+
| `PATENTSVIEW_API_KEY` | API key for authentication | Required |
|
|
292
|
+
| `PATENTSVIEW_BASE_URL` | Override API base URL | `https://search.patentsview.org/api/v1` |
|
|
293
|
+
|
|
294
|
+
## Data Storage
|
|
295
|
+
|
|
296
|
+
Configuration is stored in `~/.connect/connect-patentsview/`:
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
~/.connect/connect-patentsview/
|
|
300
|
+
├── current_profile # Active profile name
|
|
301
|
+
└── profiles/
|
|
302
|
+
├── default.json # Default profile
|
|
303
|
+
└── custom.json # Custom profiles
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## Rate Limits
|
|
307
|
+
|
|
308
|
+
The PatentsView API has a rate limit of **45 requests per minute** per API key.
|
|
309
|
+
|
|
310
|
+
## Development
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# Install dependencies
|
|
314
|
+
bun install
|
|
315
|
+
|
|
316
|
+
# Run CLI in development
|
|
317
|
+
bun run dev
|
|
318
|
+
|
|
319
|
+
# Build
|
|
320
|
+
bun run build
|
|
321
|
+
|
|
322
|
+
# Type check
|
|
323
|
+
bun run typecheck
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
## API Documentation
|
|
327
|
+
|
|
328
|
+
- [PatentsView API Documentation](https://search.patentsview.org/docs)
|
|
329
|
+
- [PatentsView Data Dictionary](https://patentsview.org/download/data-download-dictionary)
|
|
330
|
+
- [Get API Key](https://patentsview-support.atlassian.net/servicedesk/customer/portal/1/group/1/create/18)
|
|
331
|
+
|
|
332
|
+
## License
|
|
333
|
+
|
|
334
|
+
MIT
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hasna/connect-patentsview",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "PatentsView USPTO patent analytics API connector - Search patents, inventors, assignees, and CPC classifications",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"connect-patentsview": "./bin/index.js"
|
|
8
|
+
},
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "bun build ./src/index.ts --outdir ./dist --target bun && bun build ./src/cli/index.ts --outdir ./bin --target bun",
|
|
19
|
+
"dev": "bun run ./src/cli/index.ts",
|
|
20
|
+
"typecheck": "tsc --noEmit",
|
|
21
|
+
"prepublishOnly": "bun run build"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"patentsview",
|
|
25
|
+
"uspto",
|
|
26
|
+
"patents",
|
|
27
|
+
"patent-search",
|
|
28
|
+
"inventors",
|
|
29
|
+
"assignees",
|
|
30
|
+
"cpc",
|
|
31
|
+
"api",
|
|
32
|
+
"connector",
|
|
33
|
+
"cli",
|
|
34
|
+
"typescript",
|
|
35
|
+
"bun"
|
|
36
|
+
],
|
|
37
|
+
"author": "Hasna",
|
|
38
|
+
"license": "Apache-2.0",
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/bun": "latest",
|
|
41
|
+
"typescript": "^5"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"commander": "^12.1.0",
|
|
45
|
+
"chalk": "^5.3.0"
|
|
46
|
+
},
|
|
47
|
+
"engines": {
|
|
48
|
+
"bun": ">=1.0.0"
|
|
49
|
+
},
|
|
50
|
+
"repository": {
|
|
51
|
+
"type": "git",
|
|
52
|
+
"url": "git+https://github.com/hasna/connect-patentsview.git"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import type { PatentsViewClient } from './client';
|
|
2
|
+
import type {
|
|
3
|
+
Assignee,
|
|
4
|
+
AssigneeSearchResponse,
|
|
5
|
+
AssigneeGetResponse,
|
|
6
|
+
QueryObject,
|
|
7
|
+
QueryOptions,
|
|
8
|
+
SearchRequest,
|
|
9
|
+
} from '../types';
|
|
10
|
+
import { DEFAULT_ASSIGNEE_FIELDS } from '../types';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Assignees API - Search and retrieve assignee data
|
|
14
|
+
*/
|
|
15
|
+
export class AssigneesApi {
|
|
16
|
+
constructor(private readonly client: PatentsViewClient) {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Search assignees with filters
|
|
20
|
+
* @param query - Query object with filters
|
|
21
|
+
* @param fields - Fields to return (defaults to common fields)
|
|
22
|
+
* @param options - Pagination and sorting options
|
|
23
|
+
*/
|
|
24
|
+
async search(
|
|
25
|
+
query?: QueryObject,
|
|
26
|
+
fields?: string[],
|
|
27
|
+
options?: QueryOptions
|
|
28
|
+
): Promise<AssigneeSearchResponse> {
|
|
29
|
+
const body: SearchRequest = {};
|
|
30
|
+
|
|
31
|
+
if (query) {
|
|
32
|
+
body.q = query;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
body.f = fields || DEFAULT_ASSIGNEE_FIELDS;
|
|
36
|
+
|
|
37
|
+
if (options) {
|
|
38
|
+
body.o = options;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return this.client.post<AssigneeSearchResponse>('/assignee/', body);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Get a single assignee by ID
|
|
46
|
+
* @param assigneeId - The assignee ID
|
|
47
|
+
* @param fields - Fields to return
|
|
48
|
+
*/
|
|
49
|
+
async get(assigneeId: string, fields?: string[]): Promise<Assignee | null> {
|
|
50
|
+
const response = await this.client.get<AssigneeGetResponse>(
|
|
51
|
+
`/assignee/${assigneeId}/`,
|
|
52
|
+
fields ? { f: fields.join(',') } : undefined
|
|
53
|
+
);
|
|
54
|
+
return response.assignees?.[0] || null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Search assignees by organization name
|
|
59
|
+
* @param organization - Organization name
|
|
60
|
+
* @param options - Pagination options
|
|
61
|
+
*/
|
|
62
|
+
async searchByOrganization(organization: string, options?: QueryOptions): Promise<AssigneeSearchResponse> {
|
|
63
|
+
return this.search(
|
|
64
|
+
{ assignee_organization: { _contains: organization } },
|
|
65
|
+
undefined,
|
|
66
|
+
options
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Search assignees by individual name
|
|
72
|
+
* @param lastName - Last name
|
|
73
|
+
* @param firstName - First name (optional)
|
|
74
|
+
* @param options - Pagination options
|
|
75
|
+
*/
|
|
76
|
+
async searchByName(
|
|
77
|
+
lastName: string,
|
|
78
|
+
firstName?: string,
|
|
79
|
+
options?: QueryOptions
|
|
80
|
+
): Promise<AssigneeSearchResponse> {
|
|
81
|
+
const query: QueryObject = {
|
|
82
|
+
assignee_individual_name_last: { _eq: lastName },
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
if (firstName) {
|
|
86
|
+
query.assignee_individual_name_first = { _eq: firstName };
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return this.search(query, undefined, options);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Search assignees by location
|
|
94
|
+
* @param country - Country code
|
|
95
|
+
* @param state - State (optional)
|
|
96
|
+
* @param city - City (optional)
|
|
97
|
+
* @param options - Pagination options
|
|
98
|
+
*/
|
|
99
|
+
async searchByLocation(
|
|
100
|
+
country: string,
|
|
101
|
+
state?: string,
|
|
102
|
+
city?: string,
|
|
103
|
+
options?: QueryOptions
|
|
104
|
+
): Promise<AssigneeSearchResponse> {
|
|
105
|
+
const conditions: QueryObject[] = [
|
|
106
|
+
{ assignee_country: { _eq: country } },
|
|
107
|
+
];
|
|
108
|
+
|
|
109
|
+
if (state) {
|
|
110
|
+
conditions.push({ assignee_state: { _eq: state } });
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (city) {
|
|
114
|
+
conditions.push({ assignee_city: { _eq: city } });
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return this.search(
|
|
118
|
+
conditions.length > 1 ? { _and: conditions } : conditions[0],
|
|
119
|
+
undefined,
|
|
120
|
+
options
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Search assignees by type
|
|
126
|
+
* @param type - Assignee type (e.g., "2" for US Company)
|
|
127
|
+
* @param options - Pagination options
|
|
128
|
+
*/
|
|
129
|
+
async searchByType(type: string, options?: QueryOptions): Promise<AssigneeSearchResponse> {
|
|
130
|
+
return this.search(
|
|
131
|
+
{ assignee_type: { _eq: type } },
|
|
132
|
+
[...DEFAULT_ASSIGNEE_FIELDS, 'assignee_type'],
|
|
133
|
+
options
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Get top assignees by patent count
|
|
139
|
+
* @param limit - Number of assignees to return
|
|
140
|
+
*/
|
|
141
|
+
async getTopByPatentCount(limit = 25): Promise<AssigneeSearchResponse> {
|
|
142
|
+
return this.search(
|
|
143
|
+
undefined,
|
|
144
|
+
[...DEFAULT_ASSIGNEE_FIELDS, 'assignee_num_patents'],
|
|
145
|
+
{
|
|
146
|
+
per_page: limit,
|
|
147
|
+
sort: [{ assignee_num_patents: 'desc' }],
|
|
148
|
+
}
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Get top assignees by inventor count
|
|
154
|
+
* @param limit - Number of assignees to return
|
|
155
|
+
*/
|
|
156
|
+
async getTopByInventorCount(limit = 25): Promise<AssigneeSearchResponse> {
|
|
157
|
+
return this.search(
|
|
158
|
+
undefined,
|
|
159
|
+
[...DEFAULT_ASSIGNEE_FIELDS, 'assignee_num_inventors'],
|
|
160
|
+
{
|
|
161
|
+
per_page: limit,
|
|
162
|
+
sort: [{ assignee_num_inventors: 'desc' }],
|
|
163
|
+
}
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Search for US companies (assignee_type = 2)
|
|
169
|
+
* @param options - Pagination options
|
|
170
|
+
*/
|
|
171
|
+
async searchUSCompanies(options?: QueryOptions): Promise<AssigneeSearchResponse> {
|
|
172
|
+
return this.searchByType('2', options);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Search for foreign companies (assignee_type = 3)
|
|
177
|
+
* @param options - Pagination options
|
|
178
|
+
*/
|
|
179
|
+
async searchForeignCompanies(options?: QueryOptions): Promise<AssigneeSearchResponse> {
|
|
180
|
+
return this.searchByType('3', options);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import type { PatentsViewConfig } from '../types';
|
|
2
|
+
import { PatentsViewApiError } from '../types';
|
|
3
|
+
|
|
4
|
+
const DEFAULT_BASE_URL = 'https://search.patentsview.org/api/v1';
|
|
5
|
+
|
|
6
|
+
export interface RequestOptions {
|
|
7
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
8
|
+
params?: Record<string, string | number | boolean | undefined>;
|
|
9
|
+
body?: Record<string, unknown> | unknown[] | string;
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export class PatentsViewClient {
|
|
14
|
+
private readonly apiKey?: string;
|
|
15
|
+
private readonly baseUrl: string;
|
|
16
|
+
|
|
17
|
+
constructor(config: PatentsViewConfig = {}) {
|
|
18
|
+
this.apiKey = config.apiKey;
|
|
19
|
+
this.baseUrl = config.baseUrl || DEFAULT_BASE_URL;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private buildUrl(path: string, params?: Record<string, string | number | boolean | undefined>): string {
|
|
23
|
+
// Ensure path starts with /
|
|
24
|
+
const normalizedPath = path.startsWith('/') ? path : `/${path}`;
|
|
25
|
+
const url = new URL(`${this.baseUrl}${normalizedPath}`);
|
|
26
|
+
|
|
27
|
+
if (params) {
|
|
28
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
29
|
+
if (value !== undefined && value !== null && value !== '') {
|
|
30
|
+
url.searchParams.append(key, String(value));
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return url.toString();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Make a request to the PatentsView API
|
|
40
|
+
* Requires API key authentication via X-Api-Key header
|
|
41
|
+
*/
|
|
42
|
+
async request<T>(path: string, options: RequestOptions = {}): Promise<T> {
|
|
43
|
+
const { method = 'GET', params, body, headers = {} } = options;
|
|
44
|
+
|
|
45
|
+
const url = this.buildUrl(path, params);
|
|
46
|
+
|
|
47
|
+
const requestHeaders: Record<string, string> = {
|
|
48
|
+
'Accept': 'application/json',
|
|
49
|
+
...headers,
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// Add API key if provided
|
|
53
|
+
if (this.apiKey) {
|
|
54
|
+
requestHeaders['X-Api-Key'] = this.apiKey;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (body && ['POST', 'PUT', 'PATCH'].includes(method)) {
|
|
58
|
+
requestHeaders['Content-Type'] = 'application/json';
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const fetchOptions: RequestInit = {
|
|
62
|
+
method,
|
|
63
|
+
headers: requestHeaders,
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
if (body && ['POST', 'PUT', 'PATCH'].includes(method)) {
|
|
67
|
+
fetchOptions.body = typeof body === 'string' ? body : JSON.stringify(body);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const response = await fetch(url, fetchOptions);
|
|
71
|
+
|
|
72
|
+
// Handle 204 No Content
|
|
73
|
+
if (response.status === 204) {
|
|
74
|
+
return {} as T;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Parse response
|
|
78
|
+
let data: unknown;
|
|
79
|
+
const contentType = response.headers.get('content-type') || '';
|
|
80
|
+
|
|
81
|
+
if (contentType.includes('application/json')) {
|
|
82
|
+
const text = await response.text();
|
|
83
|
+
if (text) {
|
|
84
|
+
try {
|
|
85
|
+
data = JSON.parse(text);
|
|
86
|
+
} catch {
|
|
87
|
+
data = text;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
} else {
|
|
91
|
+
data = await response.text();
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Handle errors
|
|
95
|
+
if (!response.ok) {
|
|
96
|
+
const errorMessage = typeof data === 'object' && data !== null
|
|
97
|
+
? JSON.stringify(data)
|
|
98
|
+
: String(data || response.statusText);
|
|
99
|
+
throw new PatentsViewApiError(errorMessage, response.status);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return data as T;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async get<T>(path: string, params?: Record<string, string | number | boolean | undefined>): Promise<T> {
|
|
106
|
+
return this.request<T>(path, { method: 'GET', params });
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async post<T>(path: string, body?: Record<string, unknown> | unknown[] | string | object, params?: Record<string, string | number | boolean | undefined>): Promise<T> {
|
|
110
|
+
return this.request<T>(path, { method: 'POST', body: body as Record<string, unknown>, params });
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Get the base URL (for display/debugging)
|
|
115
|
+
*/
|
|
116
|
+
getBaseUrl(): string {
|
|
117
|
+
return this.baseUrl;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Get a preview of the API key (for display/debugging)
|
|
122
|
+
*/
|
|
123
|
+
getApiKeyPreview(): string {
|
|
124
|
+
if (!this.apiKey) {
|
|
125
|
+
return 'not set';
|
|
126
|
+
}
|
|
127
|
+
if (this.apiKey.length > 10) {
|
|
128
|
+
return `${this.apiKey.substring(0, 6)}...${this.apiKey.substring(this.apiKey.length - 4)}`;
|
|
129
|
+
}
|
|
130
|
+
return '***';
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Check if API key is configured
|
|
135
|
+
*/
|
|
136
|
+
hasApiKey(): boolean {
|
|
137
|
+
return !!this.apiKey;
|
|
138
|
+
}
|
|
139
|
+
}
|