Commit Graph

340 Commits

Author SHA1 Message Date
Mish Ushakov 0ac4112b25 Fixes parsing http errors in connect client (#806) 2025-07-03 20:27:32 +02:00
github-actions[bot] 69eacc71bb [skip ci] Release new versions 2025-06-27 20:24:58 +00:00
Mish Ushakov 1067fc53e8 Ignore unknown fields from received messages (protobuf) (#738)
(We might actually not need this if we version the methods instead)

context:
https://github.com/e2b-dev/infra/pull/655#pullrequestreview-2851059703
reference:
https://googleapis.dev/python/protobuf/latest/google/protobuf/message.html#google.protobuf.message.Message.MergeFrom
2025-06-27 13:20:40 -07:00
github-actions[bot] 9704e2ff03 [skip ci] Release new versions 2025-06-24 17:08:34 +00:00
Mish Ushakov 89b8680c75 watchDir remove redundant "timeout" option in JS SDK (#796)
- removes redundant "timeout" option for watchDir method in the JS SDK
(we're using timeoutMs already)
2025-06-24 19:00:49 +02:00
github-actions[bot] 884e6b3917 [skip ci] Release new versions 2025-06-23 16:58:16 +00:00
Mish Ushakov 05948ed527 Use TextEncoder for crypto/signed URLs (#790)
- Replaces node:crypto with cross-runtime TextEncoder/TextDecoder API
- The uploadUrl/downloadUrl methods are now async
2025-06-23 09:51:54 -07:00
github-actions[bot] 40c73100bc [skip ci] Release new versions 2025-06-20 02:52:52 +00:00
Jiri Sveceny cb3a009ac7 Option for providing system user during upload/download url creation (#784) 2025-06-19 19:48:03 -07:00
github-actions[bot] 93134e2faa [skip ci] Release new versions 2025-06-18 12:16:44 +00:00
Mish Ushakov 4730e13656 Changed help link in the CLI on failed build (#782)
current link leads to 404
2025-06-18 14:14:03 +02:00
github-actions[bot] 995c494d4a [skip ci] Release new versions 2025-06-16 18:46:47 +00:00
Mish Ushakov 96f8c64b6f Changes timeout exception format (#778)
- this is a follow-up to #777, fixing the timeout exception format
option
2025-06-16 11:42:40 -07:00
Mish Ushakov d404a88031 Fixes incorrect error message in Python SDK (#777)
- closes #776
- changes timeout error message in Python SDK, before was same as in the
JS SDK which is incorrect.
2025-06-16 20:26:28 +02:00
github-actions[bot] 4aaeee2af4 [skip ci] Release new versions 2025-06-13 11:03:18 +00:00
Ben Fornefeld ab6140efc3 Fix(sdk): Export enums as non-const to support isolatedModules (#773)
Removes the `const` keyword from `FileType` and `FilesystemEventType`
enums.

This change prevents the enums from being inlined at compile time,
making them compatible with projects that have the `isolatedModules:
true` flag enabled in their `tsconfig.json`. This resolves the `Cannot
access ambient const enums` build error that occurs in environments like
Babel/Vite.
2025-06-13 12:58:22 +02:00
github-actions[bot] 23a9298252 [skip ci] Release new versions 2025-06-13 00:45:36 +00:00
Jakub Dobry e244ba72c0 Add option for a template ready check (#750)
## Description
Add option for a template ready check. You can specify `ready_cmd` which
will be run until it exits with code 0. Max timeout is 5 minutes. After
exit code 0, the template will be marked as ready.

If no ready command is defined, `sleep 20` is assumed when the start
command is present, and `sleep 0` when none is defined. It is also
possible to define ready command without any start command. This might
be helpful if the filesystem contains self-booted services (e.g. using
systemd).

```
ready_cmd = "echo 'Starting ready check'; sleep 40; echo 'Template is ready'"
```

This adds possibility to configure the default 20 seconds wait time for
a start command.

New documentation can be found at `/docs/sandbox-template/ready-cmd`.

## Checklist
- [x] Make sure the https://github.com/e2b-dev/infra/pull/719 is
deployed

---------

Co-authored-by: Vasek Mlejnsky <vasek@e2b.dev>
Co-authored-by: Jakub Novák <jakub@e2b.dev>
2025-06-12 17:42:37 -07:00
github-actions[bot] 27e292eedc [skip ci] Release new versions 2025-06-05 15:39:44 +00:00
Jakub Novák ca905b0639 Fix CLI regression (#762)
# Description 

Introduced in
[here](https://github.com/e2b-dev/E2B/pull/747/files#diff-69710e23d3c0765f64152a2be96bd62daf49732e11d1e46b607686ec0cf15e75)
2025-06-05 17:36:41 +02:00
github-actions[bot] 6c0927e358 [skip ci] Release new versions 2025-06-05 14:15:25 +00:00
Mish Ushakov fc182d63ef Added license sources to SDKs (#761)
- Added licenses source text to the SDKs, CLI
2025-06-05 07:10:07 -07:00
github-actions[bot] f1afba0d74 [skip ci] Release new versions 2025-06-03 10:13:57 +00:00
Ben Fornefeld 8c43806f81 Fix: TypeScript union type resolution for Commands.run() method (#753)
## Fix TypeScript union type resolution for Commands.run() method

### What's Changed
Improved TypeScript type safety for the `Commands.run()` method by
adding proper function overloads to handle the union case when the
`background` parameter type is not known at compile time.

### Key Improvements

**Better Type Safety**
- Added a third function overload to correctly handle the `background?:
boolean` union case
- TypeScript now correctly infers return types:
  - `background: true` → returns `CommandHandle`
  - `background: false | undefined` → returns `CommandResult`
- `background: boolean` (unknown at compile time) → returns
`CommandHandle | CommandResult`

**Enhanced Developer Experience**
- Added comprehensive JSDoc overloads that clearly document each usage
pattern
- IntelliSense now provides accurate type hints and autocompletion
- Eliminates ambiguous union types when the `background` value is known
at compile time

**Prevents Runtime Errors**
- When `background` is a literal value, developers get precise types and
can't accidentally call wrong methods
- When `background` is a runtime boolean, TypeScript correctly shows the
union type requiring proper type narrowing

### Why This Matters for SDK Users

Before this change, developers had to ignore ts warning & manually cast
union types when using `commands.run()`:
```typescript
// Before: typescript was complaining, because it expected `true` or `false` as literals. 
// Required manual casting:

// @ts-ignore
const result = await sbx.commands.run('ls', { background: isBackground }) as CommandHandle | CommandResult
```

After this change, TypeScript automatically infers the correct type:
```typescript
// After: TypeScript knows this is CommandHandle
const handle = await sbx.commands.run('ls', { background: true })
await handle.wait() //  TypeScript knows .wait() is available

// TypeScript knows this is CommandResult  
const result = await sbx.commands.run('ls')
console.log(result.stdout) //  TypeScript knows .stdout is available

// When background value is unknown at compile time, returns union type
const isBackground: boolean = Math.random() > 0.5
const result = await commands.run('ls', { background: isBackground })
// result is CommandHandle | CommandResult - requires type narrowing or casting
```
2025-06-03 10:09:31 +00:00
github-actions[bot] 41ef82cbd2 [skip ci] Release new versions 2025-05-15 17:22:06 +00:00
Mish Ushakov 698959dddb Added --no-cache option for building templates without cache (#735)
- Adds `--no-cache` parameter to CLI `template build` command for
building templates without cache.
2025-05-15 19:19:04 +02:00
github-actions[bot] 231e19694d [skip ci] Release new versions 2025-05-15 16:46:57 +00:00
Ben Fornefeld a1c2466841 Fix authErrorBox switch breaking (#734)
To show the correct error message in our cli, we need to break the
switch cases. Currently always the last case will be applied, no matter
the input.
2025-05-15 18:44:00 +02:00
github-actions[bot] 286e70d689 [skip ci] Release new versions 2025-05-14 15:19:57 +00:00
Jiri Sveceny 2def1305f3 Flag for securing envd access with auth token (#688)
Waiting until secure flag will be available in production cluster.

---------

Co-authored-by: Jakub Novák <jakub@e2b.dev>
2025-05-14 15:15:18 +00:00
github-actions[bot] 41f42a1490 [skip ci] Release new versions 2025-05-05 16:34:23 +00:00
0div 2703f75370 Add minor changeset to python and js SDKs (#716)
`npx changeset` for the release of
https://github.com/e2b-dev/E2B/pull/649
2025-05-05 16:29:35 +00:00
github-actions[bot] 5cb2edc0d1 [skip ci] Release new versions 2025-04-29 15:28:51 +00:00
Jakub Dobry e3021758f1 Update JS SDK target to es2017 (#708)
Updates the JS SDK target to es2017 (from es2015). This change improves
error logs that include user code. This is happening because before
es2017 (e.g. es2015) tsup adds polyfill for async (which we use in the
API) obfuscating the code execution path.

(The previously generated code)
```
var __async = (__this, __arguments, generator) => {
  return new Promise((resolve, reject) => {
    var fulfilled = (value) => {
      try {
        step(generator.next(value));
      } catch (e) {
        reject(e);
      }
    };
    var rejected = (value) => {
      try {
        step(generator.throw(value));
      } catch (e) {
        reject(e);
      }
    };
    var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
    step((generator = generator.apply(__this, __arguments)).next());
  });
};
var __await = function(promise, isYieldStar) {
  this[0] = promise;
  this[1] = isYieldStar;
};
```
2025-04-29 08:23:47 -07:00
github-actions[bot] 2c633a4ee9 [skip ci] Release new versions 2025-04-24 15:34:38 +00:00
Jakub Novák f81307c515 Allow for short sandbox id in e2b sbx connect (#702)
# Description

Allow for short sandbox ID in CLI when using `e2b sandbox connect
<sandbox-id>`
2025-04-24 08:31:04 -07:00
github-actions[bot] cde5128e96 [skip ci] Release new versions 2025-04-24 09:46:24 +00:00
Jakub Novák 64f2f71309 Respect E2B_DOMAIN for e2b auth login in CLI (#701)
# Description

- Respect `E2B_DOMAIN` for `e2b auth login` in CLI
- Keep `E2B_DOCS_BASE` to allow for running dashboard locally or towards
potentially different domain
2025-04-24 11:43:34 +02:00
github-actions[bot] 67f5230532 [skip ci] Release new versions 2025-04-18 22:43:01 +00:00
Tomas Valenta 74ff53c3bb Add option for proxying SDK requests to API and sandbox (#695)
PR that allows you to pass `proxy` (of the type ProxyTypes) when calling
methods in the SDK that send requests. Also, if you pass `proxy` when
creating a sandbox, all the sandbox requests (called on the
Sandbox/AsyncSandbox instance) will automatically use the same proxy.

The PR also contains a small bugfix—adding missing passing of limits and
passing these directly instead of through transport to be able to pass
the proxy parameter properly.

This change should also be compatible with the code interpreter—it uses
the client transport, which uses the passed proxy if there is any.
2025-04-19 01:12:25 +03:00
github-actions[bot] 5a43e39579 [skip ci] Release new versions 2025-04-11 16:11:00 +00:00
Penny Templeton a1e2274eca Fix minor issue in python filesystem SDK (#678)
One should now be able to use sb.filesystem.write(WriteEntry[]) in a
typesafe way.

---------

Co-authored-by: Mish <10400064+mishushakov@users.noreply.github.com>
2025-04-11 18:04:38 +02:00
github-actions[bot] 2822c7bec0 [skip ci] Release new versions 2025-04-10 16:09:43 +00:00
Mish Ushakov f4e0026583 Updates SandboxApiOpts type with added headers field (#677)
- Minor type fix
2025-04-10 18:04:25 +02:00
github-actions[bot] b02f93e7f4 [skip ci] Release new versions 2025-04-05 20:21:53 +00:00
Mish Ushakov e6aeb94ab8 (fix) re-release 1.2.3 version (#672) 2025-04-05 21:15:00 +01:00
github-actions[bot] ac81f95529 [skip ci] Release new versions 2025-04-05 19:43:23 +00:00
Mish Ushakov cf128195a5 (Workers) Patch connect-es fetch transport to always use redirect: follow (#671)
backports the changes from beta branch (#669)
2025-04-05 20:31:34 +01:00
github-actions[bot] e8fadf947b [skip ci] Release new versions 2025-04-03 23:12:36 +00:00
Mish Ushakov 1bdf809e8b Make possible to pass custom headers in the SDKs (#656)
This feature allows passing custom headers in the Python and JS SDK. One
use-case for it currently is passing custom authorization (Supabase)
headers with the request.
2025-04-04 00:08:12 +01:00