@tabstack/sdk 1.0.4 → 2.0.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 +90 -0
- package/LICENSE +22 -11
- package/README.md +276 -377
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/client.d.mts +186 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +186 -0
- package/client.d.ts.map +1 -0
- package/client.js +467 -0
- package/client.js.map +1 -0
- package/client.mjs +463 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/streaming.d.mts +33 -0
- package/core/streaming.d.mts.map +1 -0
- package/core/streaming.d.ts +33 -0
- package/core/streaming.d.ts.map +1 -0
- package/core/streaming.js +263 -0
- package/core/streaming.js.map +1 -0
- package/core/streaming.mjs +258 -0
- package/core/streaming.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/index.d.mts +6 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +6 -0
- package/index.d.ts.map +1 -0
- package/index.js +30 -0
- package/index.js.map +1 -0
- package/index.mjs +7 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/decoders/line.d.mts +17 -0
- package/internal/decoders/line.d.mts.map +1 -0
- package/internal/decoders/line.d.ts +17 -0
- package/internal/decoders/line.d.ts.map +1 -0
- package/internal/decoders/line.js +113 -0
- package/internal/decoders/line.js.map +1 -0
- package/internal/decoders/line.mjs +108 -0
- package/internal/decoders/line.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +45 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +42 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +77 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +77 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +85 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +79 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +139 -82
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/agent.d.mts +74 -0
- package/resources/agent.d.mts.map +1 -0
- package/resources/agent.d.ts +74 -0
- package/resources/agent.d.ts.map +1 -0
- package/resources/agent.js +45 -0
- package/resources/agent.js.map +1 -0
- package/resources/agent.mjs +41 -0
- package/resources/agent.mjs.map +1 -0
- package/resources/extract.d.mts +118 -0
- package/resources/extract.d.mts.map +1 -0
- package/resources/extract.d.ts +118 -0
- package/resources/extract.d.ts.map +1 -0
- package/resources/extract.js +37 -0
- package/resources/extract.js.map +1 -0
- package/resources/extract.mjs +33 -0
- package/resources/extract.mjs.map +1 -0
- package/resources/generate.d.mts +45 -0
- package/resources/generate.d.mts.map +1 -0
- package/resources/generate.d.ts +45 -0
- package/resources/generate.d.ts.map +1 -0
- package/resources/generate.js +26 -0
- package/resources/generate.js.map +1 -0
- package/resources/generate.mjs +22 -0
- package/resources/generate.mjs.map +1 -0
- package/resources/index.d.mts +4 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +4 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +11 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +5 -0
- package/resources/index.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +756 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/resource.ts +11 -0
- package/src/core/streaming.ts +315 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/index.ts +22 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/decoders/line.ts +135 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +64 -0
- package/src/internal/request-options.ts +93 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +126 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +8 -0
- package/src/lib/.keep +4 -0
- package/src/resource.ts +2 -0
- package/src/resources/agent.ts +93 -0
- package/src/resources/extract.ts +147 -0
- package/src/resources/generate.ts +53 -0
- package/src/resources/index.ts +11 -0
- package/src/resources.ts +1 -0
- package/src/streaming.ts +2 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/streaming.d.mts +2 -0
- package/streaming.d.mts.map +1 -0
- package/streaming.d.ts +2 -0
- package/streaming.d.ts.map +1 -0
- package/streaming.js +6 -0
- package/streaming.js.map +1 -0
- package/streaming.mjs +2 -0
- package/streaming.mjs.map +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
- package/dist/cjs/automate.d.ts +0 -156
- package/dist/cjs/automate.d.ts.map +0 -1
- package/dist/cjs/automate.js +0 -211
- package/dist/cjs/automate.js.map +0 -1
- package/dist/cjs/automate.test.d.ts +0 -5
- package/dist/cjs/automate.test.d.ts.map +0 -1
- package/dist/cjs/automate.test.js +0 -441
- package/dist/cjs/automate.test.js.map +0 -1
- package/dist/cjs/client.d.ts +0 -58
- package/dist/cjs/client.d.ts.map +0 -1
- package/dist/cjs/client.js +0 -58
- package/dist/cjs/client.js.map +0 -1
- package/dist/cjs/client.test.d.ts +0 -5
- package/dist/cjs/client.test.d.ts.map +0 -1
- package/dist/cjs/client.test.js +0 -256
- package/dist/cjs/client.test.js.map +0 -1
- package/dist/cjs/exceptions.d.ts +0 -57
- package/dist/cjs/exceptions.d.ts.map +0 -1
- package/dist/cjs/exceptions.js +0 -95
- package/dist/cjs/exceptions.js.map +0 -1
- package/dist/cjs/exceptions.test.d.ts +0 -5
- package/dist/cjs/exceptions.test.d.ts.map +0 -1
- package/dist/cjs/exceptions.test.js +0 -239
- package/dist/cjs/exceptions.test.js.map +0 -1
- package/dist/cjs/extract.d.ts +0 -206
- package/dist/cjs/extract.d.ts.map +0 -1
- package/dist/cjs/extract.js +0 -223
- package/dist/cjs/extract.js.map +0 -1
- package/dist/cjs/extract.test.d.ts +0 -5
- package/dist/cjs/extract.test.d.ts.map +0 -1
- package/dist/cjs/extract.test.js +0 -364
- package/dist/cjs/extract.test.js.map +0 -1
- package/dist/cjs/generate.d.ts +0 -113
- package/dist/cjs/generate.d.ts.map +0 -1
- package/dist/cjs/generate.js +0 -124
- package/dist/cjs/generate.js.map +0 -1
- package/dist/cjs/generate.test.d.ts +0 -5
- package/dist/cjs/generate.test.d.ts.map +0 -1
- package/dist/cjs/generate.test.js +0 -314
- package/dist/cjs/generate.test.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -52
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -72
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/types.d.ts +0 -73
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js +0 -118
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/types.test.d.ts +0 -5
- package/dist/cjs/types.test.d.ts.map +0 -1
- package/dist/cjs/types.test.js +0 -370
- package/dist/cjs/types.test.js.map +0 -1
- package/dist/cjs/util/http.d.ts +0 -29
- package/dist/cjs/util/http.d.ts.map +0 -1
- package/dist/cjs/util/http.js +0 -201
- package/dist/cjs/util/http.js.map +0 -1
- package/dist/cjs/util/http.test.d.ts +0 -5
- package/dist/cjs/util/http.test.d.ts.map +0 -1
- package/dist/cjs/util/http.test.js +0 -237
- package/dist/cjs/util/http.test.js.map +0 -1
- package/dist/esm/automate.d.ts +0 -156
- package/dist/esm/automate.d.ts.map +0 -1
- package/dist/esm/automate.js +0 -207
- package/dist/esm/automate.js.map +0 -1
- package/dist/esm/automate.test.d.ts +0 -5
- package/dist/esm/automate.test.d.ts.map +0 -1
- package/dist/esm/automate.test.js +0 -439
- package/dist/esm/automate.test.js.map +0 -1
- package/dist/esm/client.d.ts +0 -58
- package/dist/esm/client.d.ts.map +0 -1
- package/dist/esm/client.js +0 -54
- package/dist/esm/client.js.map +0 -1
- package/dist/esm/client.test.d.ts +0 -5
- package/dist/esm/client.test.d.ts.map +0 -1
- package/dist/esm/client.test.js +0 -254
- package/dist/esm/client.test.js.map +0 -1
- package/dist/esm/exceptions.d.ts +0 -57
- package/dist/esm/exceptions.d.ts.map +0 -1
- package/dist/esm/exceptions.js +0 -85
- package/dist/esm/exceptions.js.map +0 -1
- package/dist/esm/exceptions.test.d.ts +0 -5
- package/dist/esm/exceptions.test.d.ts.map +0 -1
- package/dist/esm/exceptions.test.js +0 -237
- package/dist/esm/exceptions.test.js.map +0 -1
- package/dist/esm/extract.d.ts +0 -206
- package/dist/esm/extract.d.ts.map +0 -1
- package/dist/esm/extract.js +0 -219
- package/dist/esm/extract.js.map +0 -1
- package/dist/esm/extract.test.d.ts +0 -5
- package/dist/esm/extract.test.d.ts.map +0 -1
- package/dist/esm/extract.test.js +0 -362
- package/dist/esm/extract.test.js.map +0 -1
- package/dist/esm/generate.d.ts +0 -113
- package/dist/esm/generate.d.ts.map +0 -1
- package/dist/esm/generate.js +0 -120
- package/dist/esm/generate.js.map +0 -1
- package/dist/esm/generate.test.d.ts +0 -5
- package/dist/esm/generate.test.d.ts.map +0 -1
- package/dist/esm/generate.test.js +0 -312
- package/dist/esm/generate.test.js.map +0 -1
- package/dist/esm/index.d.ts +0 -52
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -53
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/package.json +0 -3
- package/dist/esm/types.d.ts +0 -73
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js +0 -110
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/types.test.d.ts +0 -5
- package/dist/esm/types.test.d.ts.map +0 -1
- package/dist/esm/types.test.js +0 -368
- package/dist/esm/types.test.js.map +0 -1
- package/dist/esm/util/http.d.ts +0 -29
- package/dist/esm/util/http.d.ts.map +0 -1
- package/dist/esm/util/http.js +0 -164
- package/dist/esm/util/http.js.map +0 -1
- package/dist/esm/util/http.test.d.ts +0 -5
- package/dist/esm/util/http.test.d.ts.map +0 -1
- package/dist/esm/util/http.test.js +0 -232
- package/dist/esm/util/http.test.js.map +0 -1
- package/dist/types/automate.d.ts +0 -156
- package/dist/types/automate.d.ts.map +0 -1
- package/dist/types/automate.test.d.ts +0 -5
- package/dist/types/automate.test.d.ts.map +0 -1
- package/dist/types/client.d.ts +0 -58
- package/dist/types/client.d.ts.map +0 -1
- package/dist/types/client.test.d.ts +0 -5
- package/dist/types/client.test.d.ts.map +0 -1
- package/dist/types/exceptions.d.ts +0 -57
- package/dist/types/exceptions.d.ts.map +0 -1
- package/dist/types/exceptions.test.d.ts +0 -5
- package/dist/types/exceptions.test.d.ts.map +0 -1
- package/dist/types/extract.d.ts +0 -206
- package/dist/types/extract.d.ts.map +0 -1
- package/dist/types/extract.test.d.ts +0 -5
- package/dist/types/extract.test.d.ts.map +0 -1
- package/dist/types/generate.d.ts +0 -113
- package/dist/types/generate.d.ts.map +0 -1
- package/dist/types/generate.test.d.ts +0 -5
- package/dist/types/generate.test.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -52
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/types.d.ts +0 -73
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/types.test.d.ts +0 -5
- package/dist/types/types.test.d.ts.map +0 -1
- package/dist/types/util/http.d.ts +0 -29
- package/dist/types/util/http.d.ts.map +0 -1
- package/dist/types/util/http.test.d.ts +0 -5
- package/dist/types/util/http.test.d.ts.map +0 -1
package/dist/esm/extract.test.js
DELETED
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for Extract operator
|
|
3
|
-
*/
|
|
4
|
-
import { Extract } from './extract.js';
|
|
5
|
-
import { HTTPClient } from './util/http.js';
|
|
6
|
-
import { MarkdownResponse, JsonResponse, Metadata } from './types.js';
|
|
7
|
-
// Mock HTTPClient
|
|
8
|
-
jest.mock('./util/http');
|
|
9
|
-
describe('Extract', () => {
|
|
10
|
-
let extract;
|
|
11
|
-
let mockHttpClient;
|
|
12
|
-
beforeEach(() => {
|
|
13
|
-
mockHttpClient = new HTTPClient({ apiKey: 'test-key' });
|
|
14
|
-
extract = new Extract(mockHttpClient);
|
|
15
|
-
});
|
|
16
|
-
afterEach(() => {
|
|
17
|
-
jest.clearAllMocks();
|
|
18
|
-
});
|
|
19
|
-
describe('markdown', () => {
|
|
20
|
-
it('should extract markdown from URL', async () => {
|
|
21
|
-
const mockResponse = {
|
|
22
|
-
url: 'https://example.com',
|
|
23
|
-
content: '# Test Page\n\nContent here',
|
|
24
|
-
};
|
|
25
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockResponse);
|
|
26
|
-
const result = await extract.markdown('https://example.com');
|
|
27
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/markdown', {
|
|
28
|
-
url: 'https://example.com',
|
|
29
|
-
});
|
|
30
|
-
expect(result).toBeInstanceOf(MarkdownResponse);
|
|
31
|
-
expect(result.url).toBe('https://example.com');
|
|
32
|
-
expect(result.content).toBe('# Test Page\n\nContent here');
|
|
33
|
-
});
|
|
34
|
-
it('should extract markdown with metadata option', async () => {
|
|
35
|
-
const mockResponse = {
|
|
36
|
-
url: 'https://example.com',
|
|
37
|
-
content: '# Test Page\n\nContent',
|
|
38
|
-
metadata: {
|
|
39
|
-
title: 'Test Page',
|
|
40
|
-
description: 'A test page',
|
|
41
|
-
site_name: 'Example Site',
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockResponse);
|
|
45
|
-
const result = await extract.markdown('https://example.com', { metadata: true });
|
|
46
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/markdown', {
|
|
47
|
-
url: 'https://example.com',
|
|
48
|
-
metadata: true,
|
|
49
|
-
});
|
|
50
|
-
expect(result.metadata).toBeInstanceOf(Metadata);
|
|
51
|
-
expect(result.metadata?.title).toBe('Test Page');
|
|
52
|
-
expect(result.metadata?.siteName).toBe('Example Site');
|
|
53
|
-
});
|
|
54
|
-
it('should extract markdown with nocache option', async () => {
|
|
55
|
-
const mockResponse = {
|
|
56
|
-
url: 'https://example.com',
|
|
57
|
-
content: 'Fresh content',
|
|
58
|
-
};
|
|
59
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockResponse);
|
|
60
|
-
await extract.markdown('https://example.com', { nocache: true });
|
|
61
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/markdown', {
|
|
62
|
-
url: 'https://example.com',
|
|
63
|
-
nocache: true,
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
it('should extract markdown with both metadata and nocache options', async () => {
|
|
67
|
-
const mockResponse = {
|
|
68
|
-
url: 'https://example.com',
|
|
69
|
-
content: 'Content',
|
|
70
|
-
metadata: { title: 'Test' },
|
|
71
|
-
};
|
|
72
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockResponse);
|
|
73
|
-
await extract.markdown('https://example.com', { metadata: true, nocache: true });
|
|
74
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/markdown', {
|
|
75
|
-
url: 'https://example.com',
|
|
76
|
-
metadata: true,
|
|
77
|
-
nocache: true,
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
it('should handle empty content', async () => {
|
|
81
|
-
const mockResponse = {
|
|
82
|
-
url: 'https://example.com',
|
|
83
|
-
content: '',
|
|
84
|
-
};
|
|
85
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockResponse);
|
|
86
|
-
const result = await extract.markdown('https://example.com');
|
|
87
|
-
expect(result.content).toBe('');
|
|
88
|
-
});
|
|
89
|
-
it('should handle markdown without metadata', async () => {
|
|
90
|
-
const mockResponse = {
|
|
91
|
-
url: 'https://example.com',
|
|
92
|
-
content: '# Title',
|
|
93
|
-
};
|
|
94
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockResponse);
|
|
95
|
-
const result = await extract.markdown('https://example.com', { metadata: false });
|
|
96
|
-
expect(result.metadata).toBeUndefined();
|
|
97
|
-
});
|
|
98
|
-
it('should propagate errors from HTTP client', async () => {
|
|
99
|
-
const error = new Error('Network error');
|
|
100
|
-
mockHttpClient.post = jest.fn().mockRejectedValue(error);
|
|
101
|
-
await expect(extract.markdown('https://example.com')).rejects.toThrow('Network error');
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
describe('schema', () => {
|
|
105
|
-
it('should generate schema from URL', async () => {
|
|
106
|
-
const mockSchema = {
|
|
107
|
-
type: 'object',
|
|
108
|
-
properties: {
|
|
109
|
-
title: { type: 'string' },
|
|
110
|
-
items: {
|
|
111
|
-
type: 'array',
|
|
112
|
-
items: { type: 'string' },
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
117
|
-
const result = await extract.schema('https://example.com');
|
|
118
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json/schema', {
|
|
119
|
-
url: 'https://example.com',
|
|
120
|
-
});
|
|
121
|
-
expect(result).toEqual(mockSchema);
|
|
122
|
-
});
|
|
123
|
-
it('should generate schema with instructions', async () => {
|
|
124
|
-
const mockSchema = {
|
|
125
|
-
type: 'object',
|
|
126
|
-
properties: {
|
|
127
|
-
stories: { type: 'array' },
|
|
128
|
-
},
|
|
129
|
-
};
|
|
130
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
131
|
-
await extract.schema('https://example.com', {
|
|
132
|
-
instructions: 'extract top stories with title and author',
|
|
133
|
-
});
|
|
134
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json/schema', {
|
|
135
|
-
url: 'https://example.com',
|
|
136
|
-
instructions: 'extract top stories with title and author',
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
it('should generate schema with nocache option', async () => {
|
|
140
|
-
const mockSchema = { type: 'object' };
|
|
141
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
142
|
-
await extract.schema('https://example.com', { nocache: true });
|
|
143
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json/schema', {
|
|
144
|
-
url: 'https://example.com',
|
|
145
|
-
nocache: true,
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
it('should generate schema with both instructions and nocache', async () => {
|
|
149
|
-
const mockSchema = { type: 'object' };
|
|
150
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
151
|
-
await extract.schema('https://example.com', {
|
|
152
|
-
instructions: 'extract products',
|
|
153
|
-
nocache: true,
|
|
154
|
-
});
|
|
155
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json/schema', {
|
|
156
|
-
url: 'https://example.com',
|
|
157
|
-
instructions: 'extract products',
|
|
158
|
-
nocache: true,
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
it('should handle complex nested schemas', async () => {
|
|
162
|
-
const mockSchema = {
|
|
163
|
-
type: 'object',
|
|
164
|
-
properties: {
|
|
165
|
-
data: {
|
|
166
|
-
type: 'object',
|
|
167
|
-
properties: {
|
|
168
|
-
items: {
|
|
169
|
-
type: 'array',
|
|
170
|
-
items: {
|
|
171
|
-
type: 'object',
|
|
172
|
-
properties: {
|
|
173
|
-
name: { type: 'string' },
|
|
174
|
-
value: { type: 'number' },
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
},
|
|
180
|
-
},
|
|
181
|
-
};
|
|
182
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
183
|
-
const result = await extract.schema('https://example.com');
|
|
184
|
-
expect(result).toEqual(mockSchema);
|
|
185
|
-
});
|
|
186
|
-
it('should propagate errors from HTTP client', async () => {
|
|
187
|
-
const error = new Error('Schema generation failed');
|
|
188
|
-
mockHttpClient.post = jest.fn().mockRejectedValue(error);
|
|
189
|
-
await expect(extract.schema('https://example.com')).rejects.toThrow('Schema generation failed');
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
describe('json', () => {
|
|
193
|
-
const testSchema = {
|
|
194
|
-
type: 'object',
|
|
195
|
-
properties: {
|
|
196
|
-
title: { type: 'string' },
|
|
197
|
-
count: { type: 'number' },
|
|
198
|
-
},
|
|
199
|
-
};
|
|
200
|
-
it('should extract JSON data from URL', async () => {
|
|
201
|
-
const mockData = {
|
|
202
|
-
title: 'Test Article',
|
|
203
|
-
count: 42,
|
|
204
|
-
};
|
|
205
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockData);
|
|
206
|
-
const result = await extract.json('https://example.com', testSchema);
|
|
207
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json', {
|
|
208
|
-
url: 'https://example.com',
|
|
209
|
-
json_schema: testSchema,
|
|
210
|
-
});
|
|
211
|
-
expect(result).toBeInstanceOf(JsonResponse);
|
|
212
|
-
expect(result.data).toEqual(mockData);
|
|
213
|
-
});
|
|
214
|
-
it('should extract JSON with nocache option', async () => {
|
|
215
|
-
const mockData = { fresh: true };
|
|
216
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockData);
|
|
217
|
-
await extract.json('https://example.com', testSchema, { nocache: true });
|
|
218
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json', {
|
|
219
|
-
url: 'https://example.com',
|
|
220
|
-
json_schema: testSchema,
|
|
221
|
-
nocache: true,
|
|
222
|
-
});
|
|
223
|
-
});
|
|
224
|
-
it('should handle array data', async () => {
|
|
225
|
-
const schema = {
|
|
226
|
-
type: 'array',
|
|
227
|
-
items: {
|
|
228
|
-
type: 'object',
|
|
229
|
-
properties: {
|
|
230
|
-
id: { type: 'number' },
|
|
231
|
-
name: { type: 'string' },
|
|
232
|
-
},
|
|
233
|
-
},
|
|
234
|
-
};
|
|
235
|
-
const mockData = [
|
|
236
|
-
{ id: 1, name: 'Item 1' },
|
|
237
|
-
{ id: 2, name: 'Item 2' },
|
|
238
|
-
];
|
|
239
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockData);
|
|
240
|
-
const result = await extract.json('https://example.com', schema);
|
|
241
|
-
expect(result.data).toEqual(mockData);
|
|
242
|
-
});
|
|
243
|
-
it('should handle nested object data', async () => {
|
|
244
|
-
const schema = {
|
|
245
|
-
type: 'object',
|
|
246
|
-
properties: {
|
|
247
|
-
user: {
|
|
248
|
-
type: 'object',
|
|
249
|
-
properties: {
|
|
250
|
-
profile: {
|
|
251
|
-
type: 'object',
|
|
252
|
-
properties: {
|
|
253
|
-
name: { type: 'string' },
|
|
254
|
-
age: { type: 'number' },
|
|
255
|
-
},
|
|
256
|
-
},
|
|
257
|
-
},
|
|
258
|
-
},
|
|
259
|
-
},
|
|
260
|
-
};
|
|
261
|
-
const mockData = {
|
|
262
|
-
user: {
|
|
263
|
-
profile: {
|
|
264
|
-
name: 'John Doe',
|
|
265
|
-
age: 30,
|
|
266
|
-
},
|
|
267
|
-
},
|
|
268
|
-
};
|
|
269
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockData);
|
|
270
|
-
const result = await extract.json('https://example.com', schema);
|
|
271
|
-
expect(result.data).toEqual(mockData);
|
|
272
|
-
});
|
|
273
|
-
it('should work with TypeScript generics', async () => {
|
|
274
|
-
const mockData = {
|
|
275
|
-
name: 'Headphones',
|
|
276
|
-
price: 299.99,
|
|
277
|
-
inStock: true,
|
|
278
|
-
};
|
|
279
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockData);
|
|
280
|
-
const result = await extract.json('https://example.com', testSchema);
|
|
281
|
-
expect(result.data.name).toBe('Headphones');
|
|
282
|
-
expect(result.data.price).toBe(299.99);
|
|
283
|
-
expect(result.data.inStock).toBe(true);
|
|
284
|
-
});
|
|
285
|
-
it('should handle empty schema', async () => {
|
|
286
|
-
const mockData = { value: 'test' };
|
|
287
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockData);
|
|
288
|
-
const result = await extract.json('https://example.com', {});
|
|
289
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json', {
|
|
290
|
-
url: 'https://example.com',
|
|
291
|
-
json_schema: {},
|
|
292
|
-
});
|
|
293
|
-
expect(result.data).toEqual(mockData);
|
|
294
|
-
});
|
|
295
|
-
it('should handle null data', async () => {
|
|
296
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(null);
|
|
297
|
-
const result = await extract.json('https://example.com', testSchema);
|
|
298
|
-
expect(result.data).toBeNull();
|
|
299
|
-
});
|
|
300
|
-
it('should propagate errors from HTTP client', async () => {
|
|
301
|
-
const error = new Error('Extraction failed');
|
|
302
|
-
mockHttpClient.post = jest.fn().mockRejectedValue(error);
|
|
303
|
-
await expect(extract.json('https://example.com', testSchema)).rejects.toThrow('Extraction failed');
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
describe('Integration scenarios', () => {
|
|
307
|
-
it('should use generated schema for extraction', async () => {
|
|
308
|
-
const mockSchema = {
|
|
309
|
-
type: 'object',
|
|
310
|
-
properties: {
|
|
311
|
-
stories: { type: 'array' },
|
|
312
|
-
},
|
|
313
|
-
};
|
|
314
|
-
const mockData = {
|
|
315
|
-
stories: [
|
|
316
|
-
{ title: 'Story 1', points: 100 },
|
|
317
|
-
{ title: 'Story 2', points: 50 },
|
|
318
|
-
],
|
|
319
|
-
};
|
|
320
|
-
mockHttpClient.post = jest
|
|
321
|
-
.fn()
|
|
322
|
-
.mockResolvedValueOnce(mockSchema)
|
|
323
|
-
.mockResolvedValueOnce(mockData);
|
|
324
|
-
// First generate schema
|
|
325
|
-
const schema = await extract.schema('https://example.com', {
|
|
326
|
-
instructions: 'extract top stories',
|
|
327
|
-
});
|
|
328
|
-
// Then use it for extraction
|
|
329
|
-
const result = await extract.json('https://example.com', schema);
|
|
330
|
-
expect(mockHttpClient.post).toHaveBeenCalledTimes(2);
|
|
331
|
-
expect(result.data).toEqual(mockData);
|
|
332
|
-
});
|
|
333
|
-
it('should handle multiple extractions with same schema', async () => {
|
|
334
|
-
const schema = { type: 'object', properties: { value: { type: 'string' } } };
|
|
335
|
-
mockHttpClient.post = jest
|
|
336
|
-
.fn()
|
|
337
|
-
.mockResolvedValueOnce({ value: 'first' })
|
|
338
|
-
.mockResolvedValueOnce({ value: 'second' });
|
|
339
|
-
const result1 = await extract.json('https://example.com/page1', schema);
|
|
340
|
-
const result2 = await extract.json('https://example.com/page2', schema);
|
|
341
|
-
expect(result1.data).toEqual({ value: 'first' });
|
|
342
|
-
expect(result2.data).toEqual({ value: 'second' });
|
|
343
|
-
});
|
|
344
|
-
it('should extract markdown and JSON from same URL', async () => {
|
|
345
|
-
mockHttpClient.post = jest
|
|
346
|
-
.fn()
|
|
347
|
-
.mockResolvedValueOnce({
|
|
348
|
-
url: 'https://example.com',
|
|
349
|
-
content: '# Title',
|
|
350
|
-
})
|
|
351
|
-
.mockResolvedValueOnce({ title: 'Title', content: 'Content' });
|
|
352
|
-
const markdownResult = await extract.markdown('https://example.com');
|
|
353
|
-
const jsonResult = await extract.json('https://example.com', {
|
|
354
|
-
type: 'object',
|
|
355
|
-
properties: { title: { type: 'string' } },
|
|
356
|
-
});
|
|
357
|
-
expect(markdownResult.content).toBe('# Title');
|
|
358
|
-
expect(jsonResult.data).toEqual({ title: 'Title', content: 'Content' });
|
|
359
|
-
});
|
|
360
|
-
});
|
|
361
|
-
});
|
|
362
|
-
//# sourceMappingURL=extract.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extract.test.js","sourceRoot":"","sources":["../../src/extract.test.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/generate.d.ts
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate operator for TABStack AI SDK
|
|
3
|
-
*/
|
|
4
|
-
import { HTTPClient } from './util/http';
|
|
5
|
-
import { JsonResponse } from './types';
|
|
6
|
-
export interface GenerateJsonOptions {
|
|
7
|
-
nocache?: boolean;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Generate operator for AI-powered content transformation
|
|
11
|
-
*
|
|
12
|
-
* This class provides methods for generating transformed content from URLs using AI,
|
|
13
|
-
* allowing you to create summaries, restructure data, and enhance content based on
|
|
14
|
-
* custom instructions.
|
|
15
|
-
*/
|
|
16
|
-
export declare class Generate {
|
|
17
|
-
private httpClient;
|
|
18
|
-
constructor(httpClient: HTTPClient);
|
|
19
|
-
/**
|
|
20
|
-
* Generate transformed JSON with AI
|
|
21
|
-
*
|
|
22
|
-
* Fetches URL content, extracts data, and transforms it using AI based on custom
|
|
23
|
-
* instructions. Use this to generate new content, summaries, categorizations, or
|
|
24
|
-
* restructured data. Unlike extract.json() which extracts existing data, this
|
|
25
|
-
* method creates new content based on your instructions.
|
|
26
|
-
*
|
|
27
|
-
* @param url - URL to fetch content from
|
|
28
|
-
* @param schema - JSON schema object defining the structure of the transformed output
|
|
29
|
-
* @param instructions - Instructions describing how to transform the data. Example: "For each story, categorize it (tech/business/science/other) and write a one-sentence summary explaining what it's about in simple terms."
|
|
30
|
-
* @param options - Optional generation options
|
|
31
|
-
* @param options.nocache - Bypass cache and force fresh data retrieval. Default: false
|
|
32
|
-
*
|
|
33
|
-
* @returns JsonResponse containing the transformed data matching the schema
|
|
34
|
-
*
|
|
35
|
-
* @throws {BadRequestError} When URL, schema, or instructions are missing, or schema format is invalid
|
|
36
|
-
* @throws {UnauthorizedError} When API key is invalid or missing
|
|
37
|
-
* @throws {InvalidURLError} When URL is invalid
|
|
38
|
-
* @throws {ServerError} When server fails to fetch URL, page is too large, or data transformation fails
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* Categorize and summarize news stories:
|
|
42
|
-
* ```typescript
|
|
43
|
-
* const schema = {
|
|
44
|
-
* type: 'object',
|
|
45
|
-
* properties: {
|
|
46
|
-
* summaries: {
|
|
47
|
-
* type: 'array',
|
|
48
|
-
* items: {
|
|
49
|
-
* type: 'object',
|
|
50
|
-
* properties: {
|
|
51
|
-
* title: { type: 'string' },
|
|
52
|
-
* category: { type: 'string' },
|
|
53
|
-
* summary: { type: 'string' }
|
|
54
|
-
* },
|
|
55
|
-
* required: ['title', 'category', 'summary']
|
|
56
|
-
* }
|
|
57
|
-
* }
|
|
58
|
-
* },
|
|
59
|
-
* required: ['summaries']
|
|
60
|
-
* };
|
|
61
|
-
*
|
|
62
|
-
* const result = await tabs.generate.json(
|
|
63
|
-
* 'https://news.ycombinator.com',
|
|
64
|
-
* schema,
|
|
65
|
-
* 'For each story, categorize it (tech/business/science/other) and write a one-sentence summary explaining what it\'s about in simple terms.'
|
|
66
|
-
* );
|
|
67
|
-
*
|
|
68
|
-
* console.log(result.data.summaries);
|
|
69
|
-
* // [
|
|
70
|
-
* // {
|
|
71
|
-
* // title: "New AI Model Released",
|
|
72
|
-
* // category: "tech",
|
|
73
|
-
* // summary: "A research lab announced a new large language model that achieves state-of-the-art performance on reasoning tasks."
|
|
74
|
-
* // },
|
|
75
|
-
* // ...
|
|
76
|
-
* // ]
|
|
77
|
-
* ```
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* Create structured analysis:
|
|
81
|
-
* ```typescript
|
|
82
|
-
* const schema = {
|
|
83
|
-
* type: 'object',
|
|
84
|
-
* properties: {
|
|
85
|
-
* sentiment: { type: 'string' },
|
|
86
|
-
* keyPoints: {
|
|
87
|
-
* type: 'array',
|
|
88
|
-
* items: { type: 'string' }
|
|
89
|
-
* },
|
|
90
|
-
* summary: { type: 'string' },
|
|
91
|
-
* tags: {
|
|
92
|
-
* type: 'array',
|
|
93
|
-
* items: { type: 'string' }
|
|
94
|
-
* }
|
|
95
|
-
* },
|
|
96
|
-
* required: ['sentiment', 'keyPoints', 'summary', 'tags']
|
|
97
|
-
* };
|
|
98
|
-
*
|
|
99
|
-
* const result = await tabs.generate.json(
|
|
100
|
-
* 'https://example.com/article',
|
|
101
|
-
* schema,
|
|
102
|
-
* 'Analyze the sentiment (positive/negative/neutral), extract key points, create a brief summary, and add relevant tags'
|
|
103
|
-
* );
|
|
104
|
-
*
|
|
105
|
-
* console.log(result.data.sentiment); // "positive"
|
|
106
|
-
* console.log(result.data.keyPoints); // ["Key point 1", "Key point 2", ...]
|
|
107
|
-
* console.log(result.data.summary); // "Brief summary of the article..."
|
|
108
|
-
* console.log(result.data.tags); // ["technology", "innovation", ...]
|
|
109
|
-
* ```
|
|
110
|
-
*/
|
|
111
|
-
json<T = unknown>(url: string, schema: Record<string, unknown>, instructions: string, options?: GenerateJsonOptions): Promise<JsonResponse<T>>;
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2FG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAW5B"}
|
package/dist/esm/generate.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate operator for TABStack AI SDK
|
|
3
|
-
*/
|
|
4
|
-
import { JsonResponse } from './types.js';
|
|
5
|
-
/**
|
|
6
|
-
* Generate operator for AI-powered content transformation
|
|
7
|
-
*
|
|
8
|
-
* This class provides methods for generating transformed content from URLs using AI,
|
|
9
|
-
* allowing you to create summaries, restructure data, and enhance content based on
|
|
10
|
-
* custom instructions.
|
|
11
|
-
*/
|
|
12
|
-
export class Generate {
|
|
13
|
-
constructor(httpClient) {
|
|
14
|
-
this.httpClient = httpClient;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Generate transformed JSON with AI
|
|
18
|
-
*
|
|
19
|
-
* Fetches URL content, extracts data, and transforms it using AI based on custom
|
|
20
|
-
* instructions. Use this to generate new content, summaries, categorizations, or
|
|
21
|
-
* restructured data. Unlike extract.json() which extracts existing data, this
|
|
22
|
-
* method creates new content based on your instructions.
|
|
23
|
-
*
|
|
24
|
-
* @param url - URL to fetch content from
|
|
25
|
-
* @param schema - JSON schema object defining the structure of the transformed output
|
|
26
|
-
* @param instructions - Instructions describing how to transform the data. Example: "For each story, categorize it (tech/business/science/other) and write a one-sentence summary explaining what it's about in simple terms."
|
|
27
|
-
* @param options - Optional generation options
|
|
28
|
-
* @param options.nocache - Bypass cache and force fresh data retrieval. Default: false
|
|
29
|
-
*
|
|
30
|
-
* @returns JsonResponse containing the transformed data matching the schema
|
|
31
|
-
*
|
|
32
|
-
* @throws {BadRequestError} When URL, schema, or instructions are missing, or schema format is invalid
|
|
33
|
-
* @throws {UnauthorizedError} When API key is invalid or missing
|
|
34
|
-
* @throws {InvalidURLError} When URL is invalid
|
|
35
|
-
* @throws {ServerError} When server fails to fetch URL, page is too large, or data transformation fails
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* Categorize and summarize news stories:
|
|
39
|
-
* ```typescript
|
|
40
|
-
* const schema = {
|
|
41
|
-
* type: 'object',
|
|
42
|
-
* properties: {
|
|
43
|
-
* summaries: {
|
|
44
|
-
* type: 'array',
|
|
45
|
-
* items: {
|
|
46
|
-
* type: 'object',
|
|
47
|
-
* properties: {
|
|
48
|
-
* title: { type: 'string' },
|
|
49
|
-
* category: { type: 'string' },
|
|
50
|
-
* summary: { type: 'string' }
|
|
51
|
-
* },
|
|
52
|
-
* required: ['title', 'category', 'summary']
|
|
53
|
-
* }
|
|
54
|
-
* }
|
|
55
|
-
* },
|
|
56
|
-
* required: ['summaries']
|
|
57
|
-
* };
|
|
58
|
-
*
|
|
59
|
-
* const result = await tabs.generate.json(
|
|
60
|
-
* 'https://news.ycombinator.com',
|
|
61
|
-
* schema,
|
|
62
|
-
* 'For each story, categorize it (tech/business/science/other) and write a one-sentence summary explaining what it\'s about in simple terms.'
|
|
63
|
-
* );
|
|
64
|
-
*
|
|
65
|
-
* console.log(result.data.summaries);
|
|
66
|
-
* // [
|
|
67
|
-
* // {
|
|
68
|
-
* // title: "New AI Model Released",
|
|
69
|
-
* // category: "tech",
|
|
70
|
-
* // summary: "A research lab announced a new large language model that achieves state-of-the-art performance on reasoning tasks."
|
|
71
|
-
* // },
|
|
72
|
-
* // ...
|
|
73
|
-
* // ]
|
|
74
|
-
* ```
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
* Create structured analysis:
|
|
78
|
-
* ```typescript
|
|
79
|
-
* const schema = {
|
|
80
|
-
* type: 'object',
|
|
81
|
-
* properties: {
|
|
82
|
-
* sentiment: { type: 'string' },
|
|
83
|
-
* keyPoints: {
|
|
84
|
-
* type: 'array',
|
|
85
|
-
* items: { type: 'string' }
|
|
86
|
-
* },
|
|
87
|
-
* summary: { type: 'string' },
|
|
88
|
-
* tags: {
|
|
89
|
-
* type: 'array',
|
|
90
|
-
* items: { type: 'string' }
|
|
91
|
-
* }
|
|
92
|
-
* },
|
|
93
|
-
* required: ['sentiment', 'keyPoints', 'summary', 'tags']
|
|
94
|
-
* };
|
|
95
|
-
*
|
|
96
|
-
* const result = await tabs.generate.json(
|
|
97
|
-
* 'https://example.com/article',
|
|
98
|
-
* schema,
|
|
99
|
-
* 'Analyze the sentiment (positive/negative/neutral), extract key points, create a brief summary, and add relevant tags'
|
|
100
|
-
* );
|
|
101
|
-
*
|
|
102
|
-
* console.log(result.data.sentiment); // "positive"
|
|
103
|
-
* console.log(result.data.keyPoints); // ["Key point 1", "Key point 2", ...]
|
|
104
|
-
* console.log(result.data.summary); // "Brief summary of the article..."
|
|
105
|
-
* console.log(result.data.tags); // ["technology", "innovation", ...]
|
|
106
|
-
* ```
|
|
107
|
-
*/
|
|
108
|
-
async json(url, schema, instructions, options) {
|
|
109
|
-
const requestData = {
|
|
110
|
-
url,
|
|
111
|
-
json_schema: schema,
|
|
112
|
-
instructions,
|
|
113
|
-
};
|
|
114
|
-
if (options?.nocache)
|
|
115
|
-
requestData.nocache = options.nocache;
|
|
116
|
-
const response = await this.httpClient.post('v1/generate/json', requestData);
|
|
117
|
-
return JsonResponse.fromJSON(response);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=generate.js.map
|
package/dist/esm/generate.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC;;;;;;GAMG;AACH,MAAM,OAAO,QAAQ;IACnB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2FG;IACH,KAAK,CAAC,IAAI,CACR,GAAW,EACX,MAA+B,EAC/B,YAAoB,EACpB,OAA6B;QAE7B,MAAM,WAAW,GAA4B;YAC3C,GAAG;YACH,WAAW,EAAE,MAAM;YACnB,YAAY;SACb,CAAC;QACF,IAAI,OAAO,EAAE,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAChF,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate.test.d.ts","sourceRoot":"","sources":["../../src/generate.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|