Skip to content

Commit 922964b

Browse files
SDK regeneration
1 parent 50c2179 commit 922964b

File tree

108 files changed

+9867
-2264
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+9867
-2264
lines changed

.fern/metadata.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"cliVersion": "3.5.0",
3+
"generatorName": "fernapi/fern-typescript-node-sdk",
4+
"generatorVersion": "3.38.0",
5+
"generatorConfig": {
6+
"includeApiReference": true,
7+
"namespaceExport": "Pipedream",
8+
"noSerdeLayer": false
9+
}
10+
}

.npmignore

Lines changed: 0 additions & 11 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# Contributing
2+
3+
Thanks for your interest in contributing to this SDK! This document provides guidelines for contributing to the project.
4+
5+
## Getting Started
6+
7+
### Prerequisites
8+
9+
- Node.js 20 or higher
10+
- pnpm package manager
11+
12+
### Installation
13+
14+
Install the project dependencies:
15+
16+
```bash
17+
pnpm install
18+
```
19+
20+
### Building
21+
22+
Build the project:
23+
24+
```bash
25+
pnpm build
26+
```
27+
28+
### Testing
29+
30+
Run the test suite:
31+
32+
```bash
33+
pnpm test
34+
```
35+
36+
Run specific test types:
37+
- `pnpm test:unit` - Run unit tests
38+
- `pnpm test:wire` - Run wire/integration tests
39+
40+
### Linting and Formatting
41+
42+
Check code style:
43+
44+
```bash
45+
pnpm run lint
46+
pnpm run format:check
47+
```
48+
49+
Fix code style issues:
50+
51+
```bash
52+
pnpm run lint:fix
53+
pnpm run format:fix
54+
```
55+
56+
Or use the combined check command:
57+
58+
```bash
59+
pnpm run check:fix
60+
```
61+
62+
## About Generated Code
63+
64+
**Important**: Most files in this SDK are automatically generated by [Fern](https://buildwithfern.com) from the API definition. Direct modifications to generated files will be overwritten the next time the SDK is generated.
65+
66+
### Generated Files
67+
68+
The following directories contain generated code:
69+
- `src/api/` - API client classes and types
70+
- `src/serialization/` - Serialization/deserialization logic
71+
- Most TypeScript files in `src/`
72+
73+
### How to Customize
74+
75+
If you need to customize the SDK, you have two options:
76+
77+
#### Option 1: Use `.fernignore`
78+
79+
For custom code that should persist across SDK regenerations:
80+
81+
1. Create a `.fernignore` file in the project root
82+
2. Add file patterns for files you want to preserve (similar to `.gitignore` syntax)
83+
3. Add your custom code to those files
84+
85+
Files listed in `.fernignore` will not be overwritten when the SDK is regenerated.
86+
87+
For more information, see the [Fern documentation on custom code](https://buildwithfern.com/learn/sdks/overview/custom-code).
88+
89+
#### Option 2: Contribute to the Generator
90+
91+
If you want to change how code is generated for all users of this SDK:
92+
93+
1. The TypeScript SDK generator lives in the [Fern repository](https://github.com/fern-api/fern)
94+
2. Generator code is located at `generators/typescript/sdk/`
95+
3. Follow the [Fern contributing guidelines](https://github.com/fern-api/fern/blob/main/CONTRIBUTING.md)
96+
4. Submit a pull request with your changes to the generator
97+
98+
This approach is best for:
99+
- Bug fixes in generated code
100+
- New features that would benefit all users
101+
- Improvements to code generation patterns
102+
103+
## Making Changes
104+
105+
### Workflow
106+
107+
1. Create a new branch for your changes
108+
2. Make your modifications
109+
3. Run tests to ensure nothing breaks: `pnpm test`
110+
4. Run linting and formatting: `pnpm run check:fix`
111+
5. Build the project: `pnpm build`
112+
6. Commit your changes with a clear commit message
113+
7. Push your branch and create a pull request
114+
115+
### Commit Messages
116+
117+
Write clear, descriptive commit messages that explain what changed and why.
118+
119+
### Code Style
120+
121+
This project uses automated code formatting and linting. Run `pnpm run check:fix` before committing to ensure your code meets the project's style guidelines.
122+
123+
## Questions or Issues?
124+
125+
If you have questions or run into issues:
126+
127+
1. Check the [Fern documentation](https://buildwithfern.com)
128+
2. Search existing [GitHub issues](https://github.com/fern-api/fern/issues)
129+
3. Open a new issue if your question hasn't been addressed
130+
131+
## License
132+
133+
By contributing to this project, you agree that your contributions will be licensed under the same license as the project.

README.md

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ The Pipedream TypeScript library provides convenient access to the Pipedream API
1111
- [Reference](#reference)
1212
- [Migration From V 1 X](#migration-from-v-1-x)
1313
- [Usage](#usage)
14+
- [Authentication](#authentication)
1415
- [Request and Response Types](#request-and-response-types)
1516
- [Exception Handling](#exception-handling)
1617
- [Binary Response](#binary-response)
@@ -22,6 +23,7 @@ The Pipedream TypeScript library provides convenient access to the Pipedream API
2223
- [Timeouts](#timeouts)
2324
- [Aborting Requests](#aborting-requests)
2425
- [Access Raw Response Data](#access-raw-response-data)
26+
- [Logging](#logging)
2527
- [Runtime Compatibility](#runtime-compatibility)
2628
- [Contributing](#contributing)
2729

@@ -54,6 +56,37 @@ await client.actions.run({
5456
});
5557
```
5658

59+
## Authentication
60+
61+
The SDK supports OAuth authentication with two options:
62+
63+
**Option 1: OAuth Client Credentials Flow**
64+
65+
Use this when you want the SDK to automatically handle OAuth token retrieval and refreshing:
66+
67+
```typescript
68+
import { PipedreamClient } from "@pipedream/sdk";
69+
70+
const client = new PipedreamClient({
71+
clientId: "YOUR_CLIENT_ID",
72+
clientSecret: "YOUR_CLIENT_SECRET",
73+
...
74+
});
75+
```
76+
77+
**Option 2: Token Override**
78+
79+
Use this when you already have a valid bearer token and want to skip the OAuth flow:
80+
81+
```typescript
82+
import { PipedreamClient } from "@pipedream/sdk";
83+
84+
const client = new PipedreamClient({
85+
token: "my-pre-generated-bearer-token",
86+
...
87+
});
88+
```
89+
5790
## Request and Response Types
5891

5992
The SDK exports all request and response types as TypeScript interfaces. Simply import them with the
@@ -484,15 +517,15 @@ List endpoints are paginated. The SDK provides an iterator so that you can simpl
484517
import { PipedreamClient } from "@pipedream/sdk";
485518

486519
const client = new PipedreamClient({ clientId: "YOUR_CLIENT_ID", clientSecret: "YOUR_CLIENT_SECRET", projectEnvironment: "YOUR_PROJECT_ENVIRONMENT", projectId: "YOUR_PROJECT_ID" });
487-
const response = await client.apps.list({
520+
const pageableResponse = await client.apps.list({
488521
after: "after",
489522
before: "before",
490523
limit: 1,
491524
q: "q",
492525
sortKey: "name",
493526
sortDirection: "asc"
494527
});
495-
for await (const item of response) {
528+
for await (const item of pageableResponse) {
496529
console.log(item);
497530
}
498531

@@ -508,6 +541,9 @@ let page = await client.apps.list({
508541
while (page.hasNextPage()) {
509542
page = page.getNextPage();
510543
}
544+
545+
// You can also access the underlying response
546+
const response = page.response;
511547
```
512548

513549
## Advanced
@@ -517,6 +553,15 @@ while (page.hasNextPage()) {
517553
If you would like to send additional headers as part of the request, use the `headers` request option.
518554

519555
```typescript
556+
import { PipedreamClient } from "@pipedream/sdk";
557+
558+
const client = new PipedreamClient({
559+
...
560+
headers: {
561+
'X-Custom-Header': 'custom value'
562+
}
563+
});
564+
520565
const response = await client.actions.run(..., {
521566
headers: {
522567
'X-Custom-Header': 'custom value'
@@ -590,6 +635,69 @@ console.log(data);
590635
console.log(rawResponse.headers['X-My-Header']);
591636
```
592637

638+
### Logging
639+
640+
The SDK supports logging. You can configure the logger by passing in a `logging` object to the client options.
641+
642+
```typescript
643+
import { PipedreamClient, logging } from "@pipedream/sdk";
644+
645+
const client = new PipedreamClient({
646+
...
647+
logging: {
648+
level: logging.LogLevel.Debug, // defaults to logging.LogLevel.Info
649+
logger: new logging.ConsoleLogger(), // defaults to ConsoleLogger
650+
silent: false, // defaults to true, set to false to enable logging
651+
}
652+
});
653+
```
654+
The `logging` object can have the following properties:
655+
- `level`: The log level to use. Defaults to `logging.LogLevel.Info`.
656+
- `logger`: The logger to use. Defaults to a `logging.ConsoleLogger`.
657+
- `silent`: Whether to silence the logger. Defaults to `true`.
658+
659+
The `level` property can be one of the following values:
660+
- `logging.LogLevel.Debug`
661+
- `logging.LogLevel.Info`
662+
- `logging.LogLevel.Warn`
663+
- `logging.LogLevel.Error`
664+
665+
To provide a custom logger, you can pass in an object that implements the `logging.ILogger` interface.
666+
667+
<details>
668+
<summary>Custom logger examples</summary>
669+
670+
Here's an example using the popular `winston` logging library.
671+
```ts
672+
import winston from 'winston';
673+
674+
const winstonLogger = winston.createLogger({...});
675+
676+
const logger: logging.ILogger = {
677+
debug: (msg, ...args) => winstonLogger.debug(msg, ...args),
678+
info: (msg, ...args) => winstonLogger.info(msg, ...args),
679+
warn: (msg, ...args) => winstonLogger.warn(msg, ...args),
680+
error: (msg, ...args) => winstonLogger.error(msg, ...args),
681+
};
682+
```
683+
684+
Here's an example using the popular `pino` logging library.
685+
686+
```ts
687+
import pino from 'pino';
688+
689+
const pinoLogger = pino({...});
690+
691+
const logger: logging.ILogger = {
692+
debug: (msg, ...args) => pinoLogger.debug(args, msg),
693+
info: (msg, ...args) => pinoLogger.info(args, msg),
694+
warn: (msg, ...args) => pinoLogger.warn(args, msg),
695+
error: (msg, ...args) => pinoLogger.error(args, msg),
696+
};
697+
```
698+
</details>
699+
700+
593701
### Runtime Compatibility
594702

595703

biome.json

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
11
{
2-
"$schema": "https://biomejs.dev/schemas/2.2.5/schema.json",
2+
"$schema": "https://biomejs.dev/schemas/2.3.1/schema.json",
33
"root": true,
44
"vcs": {
55
"enabled": false
66
},
77
"files": {
88
"ignoreUnknown": true,
99
"includes": [
10-
"./**",
11-
"!dist",
12-
"!lib",
13-
"!*.tsbuildinfo",
14-
"!_tmp_*",
15-
"!*.tmp",
16-
"!.tmp/",
17-
"!*.log",
18-
"!.DS_Store",
19-
"!Thumbs.db"
10+
"**",
11+
"!!dist",
12+
"!!**/dist",
13+
"!!lib",
14+
"!!**/lib",
15+
"!!_tmp_*",
16+
"!!**/_tmp_*",
17+
"!!*.tmp",
18+
"!!**/*.tmp",
19+
"!!.tmp/",
20+
"!!**/.tmp/",
21+
"!!*.log",
22+
"!!**/*.log",
23+
"!!**/.DS_Store",
24+
"!!**/Thumbs.db"
2025
]
2126
},
2227
"formatter": {

0 commit comments

Comments
 (0)