@executor-js/plugin-openapi 0.0.2 → 0.2.1

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.
Files changed (41) hide show
  1. package/dist/AddOpenApiSource-EV3NJHLA.js +19 -0
  2. package/dist/AddOpenApiSource-EV3NJHLA.js.map +1 -0
  3. package/dist/EditOpenApiSource-J7NXCVT5.js +665 -0
  4. package/dist/EditOpenApiSource-J7NXCVT5.js.map +1 -0
  5. package/dist/OpenApiSourceSummary-K5WZD5NR.js +122 -0
  6. package/dist/OpenApiSourceSummary-K5WZD5NR.js.map +1 -0
  7. package/dist/api/group.d.ts +79 -10
  8. package/dist/api/index.d.ts +384 -0
  9. package/dist/chunk-2BXVRXGL.js +1345 -0
  10. package/dist/chunk-2BXVRXGL.js.map +1 -0
  11. package/dist/chunk-E4QUTDQ2.js +1120 -0
  12. package/dist/chunk-E4QUTDQ2.js.map +1 -0
  13. package/dist/chunk-LBTK5F65.js +216 -0
  14. package/dist/chunk-LBTK5F65.js.map +1 -0
  15. package/dist/chunk-TRD7KSKA.js +1444 -0
  16. package/dist/chunk-TRD7KSKA.js.map +1 -0
  17. package/dist/client.js +165 -0
  18. package/dist/client.js.map +1 -0
  19. package/dist/core.js +8 -10
  20. package/dist/index.js +2 -1
  21. package/dist/react/AddOpenApiSource.d.ts +1 -1
  22. package/dist/react/OpenApiSourceDetailsFields.d.ts +18 -0
  23. package/dist/react/atoms.d.ts +158 -13
  24. package/dist/react/client.d.ts +85 -349
  25. package/dist/react/plugin-client.d.ts +2 -0
  26. package/dist/react/source-plugin.d.ts +1 -1
  27. package/dist/sdk/index.d.ts +1 -1
  28. package/dist/sdk/openapi-utils.d.ts +4 -3
  29. package/dist/sdk/parse.d.ts +1 -1
  30. package/dist/sdk/parse.test.d.ts +1 -0
  31. package/dist/sdk/plugin.d.ts +154 -34
  32. package/dist/sdk/store.d.ts +132 -47
  33. package/dist/sdk/types.d.ts +19 -44
  34. package/dist/sdk/upstream-failures.test.d.ts +1 -0
  35. package/dist/sdk/usage-scope-isolation.test.d.ts +1 -0
  36. package/dist/testing/index.d.ts +34 -0
  37. package/dist/testing.js +56 -0
  38. package/dist/testing.js.map +1 -0
  39. package/package.json +16 -4
  40. package/dist/chunk-ZZ7TQ4JC.js +0 -2602
  41. package/dist/chunk-ZZ7TQ4JC.js.map +0 -1
@@ -119,9 +119,20 @@ export declare class ConfiguredHeaderBinding extends ConfiguredHeaderBinding_bas
119
119
  }
120
120
  export declare const ConfiguredHeaderValue: Schema.Union<readonly [Schema.String, typeof ConfiguredHeaderBinding]>;
121
121
  export type ConfiguredHeaderValue = typeof ConfiguredHeaderValue.Type;
122
+ export declare const OpenApiCredentialInput: Schema.Union<readonly [Schema.Struct<{
123
+ readonly secretId: Schema.String;
124
+ readonly prefix: Schema.optional<Schema.String>;
125
+ readonly targetScope: Schema.brand<Schema.String, "ScopeId">;
126
+ readonly secretScopeId: Schema.optional<Schema.brand<Schema.String, "ScopeId">>;
127
+ }>, Schema.Union<readonly [Schema.String, Schema.Struct<{
128
+ readonly secretId: Schema.String;
129
+ readonly prefix: Schema.optional<Schema.String>;
130
+ }>]>, Schema.Union<readonly [Schema.String, typeof ConfiguredHeaderBinding]>]>;
131
+ export type OpenApiCredentialInput = typeof OpenApiCredentialInput.Type;
122
132
  export declare const OpenApiSourceBindingValue: Schema.Union<readonly [Schema.Struct<{
123
133
  readonly kind: Schema.Literal<"secret">;
124
134
  readonly secretId: Schema.brand<Schema.String, "SecretId">;
135
+ readonly secretScopeId: Schema.optional<Schema.brand<Schema.String, "ScopeId">>;
125
136
  }>, Schema.Struct<{
126
137
  readonly kind: Schema.Literal<"connection">;
127
138
  readonly connectionId: Schema.brand<Schema.String, "ConnectionId">;
@@ -138,6 +149,7 @@ export declare const OpenApiSourceBindingInputSchema: Schema.Struct<{
138
149
  readonly value: Schema.Union<readonly [Schema.Struct<{
139
150
  readonly kind: Schema.Literal<"secret">;
140
151
  readonly secretId: Schema.brand<Schema.String, "SecretId">;
152
+ readonly secretScopeId: Schema.optional<Schema.brand<Schema.String, "ScopeId">>;
141
153
  }>, Schema.Struct<{
142
154
  readonly kind: Schema.Literal<"connection">;
143
155
  readonly connectionId: Schema.brand<Schema.String, "ConnectionId">;
@@ -154,6 +166,7 @@ declare const OpenApiSourceBindingInput_base: Schema.Class<OpenApiSourceBindingI
154
166
  readonly value: Schema.Union<readonly [Schema.Struct<{
155
167
  readonly kind: Schema.Literal<"secret">;
156
168
  readonly secretId: Schema.brand<Schema.String, "SecretId">;
169
+ readonly secretScopeId: Schema.optional<Schema.brand<Schema.String, "ScopeId">>;
157
170
  }>, Schema.Struct<{
158
171
  readonly kind: Schema.Literal<"connection">;
159
172
  readonly connectionId: Schema.brand<Schema.String, "ConnectionId">;
@@ -172,6 +185,7 @@ declare const OpenApiSourceBindingRef_base: Schema.Class<OpenApiSourceBindingRef
172
185
  readonly value: Schema.Union<readonly [Schema.Struct<{
173
186
  readonly kind: Schema.Literal<"secret">;
174
187
  readonly secretId: Schema.brand<Schema.String, "SecretId">;
188
+ readonly secretScopeId: Schema.optional<Schema.brand<Schema.String, "ScopeId">>;
175
189
  }>, Schema.Struct<{
176
190
  readonly kind: Schema.Literal<"connection">;
177
191
  readonly connectionId: Schema.brand<Schema.String, "ConnectionId">;
@@ -186,41 +200,18 @@ export declare class OpenApiSourceBindingRef extends OpenApiSourceBindingRef_bas
186
200
  }
187
201
  export declare const OAuth2Flow: Schema.Literals<readonly ["authorizationCode", "clientCredentials"]>;
188
202
  export type OAuth2Flow = typeof OAuth2Flow.Type;
189
- declare const OAuth2Auth_base: Schema.Class<OAuth2Auth, Schema.Struct<{
203
+ export declare const OAuth2SourceConfigSchema: Schema.Struct<{
190
204
  readonly kind: Schema.Literal<"oauth2">;
191
- /** Id of the Connection that owns this sign-in. Points at the core
192
- * `connection` table; resolve via `ctx.connections.get(id)` or
193
- * `ctx.connections.accessToken(id)`. Updated when the user signs in
194
- * again from the source detail UI (a fresh connection is minted and
195
- * this pointer is rewritten). */
196
- readonly connectionId: Schema.String;
197
- /** Key into `components.securitySchemes` this auth came from. Kept here
198
- * so a spec with multiple OAuth2 schemes can wire each one to its own
199
- * connection. */
200
205
  readonly securitySchemeName: Schema.String;
201
- /** OAuth2 grant type used for this source. Determines which flow the
202
- * sign-in button runs (authorizationCode opens a browser popup;
203
- * clientCredentials is server-to-server). */
204
206
  readonly flow: Schema.Literals<readonly ["authorizationCode", "clientCredentials"]>;
205
- /** Absolute token endpoint URL. */
206
207
  readonly tokenUrl: Schema.String;
207
- /** Absolute authorization endpoint URL. Only used for authorizationCode
208
- * flows; clientCredentials has no user consent step. */
209
208
  readonly authorizationUrl: Schema.NullOr<Schema.String>;
210
- /** Expected issuer for ID token validation. Defaults to authorization origin. */
211
209
  readonly issuerUrl: Schema.optional<Schema.NullOr<Schema.String>>;
212
- /** Secret id holding the OAuth client_id. */
213
- readonly clientIdSecretId: Schema.String;
214
- /** Secret id holding the OAuth client_secret. Optional for public
215
- * clients (PKCE-only authorizationCode). */
216
- readonly clientSecretSecretId: Schema.NullOr<Schema.String>;
217
- /** OAuth scopes requested on sign-in. Stored as a static list so the
218
- * sign-in button can re-request the same capabilities without having
219
- * to re-derive them from the OpenAPI spec. */
210
+ readonly clientIdSlot: Schema.String;
211
+ readonly clientSecretSlot: Schema.NullOr<Schema.String>;
212
+ readonly connectionSlot: Schema.String;
220
213
  readonly scopes: Schema.$Array<Schema.String>;
221
- }>, {}>;
222
- export declare class OAuth2Auth extends OAuth2Auth_base {
223
- }
214
+ }>;
224
215
  declare const OAuth2SourceConfig_base: Schema.Class<OAuth2SourceConfig, Schema.Struct<{
225
216
  readonly kind: Schema.Literal<"oauth2">;
226
217
  readonly securitySchemeName: Schema.String;
@@ -235,22 +226,6 @@ declare const OAuth2SourceConfig_base: Schema.Class<OAuth2SourceConfig, Schema.S
235
226
  }>, {}>;
236
227
  export declare class OAuth2SourceConfig extends OAuth2SourceConfig_base {
237
228
  }
238
- declare const InvocationConfig_base: Schema.Class<InvocationConfig, Schema.Struct<{
239
- readonly baseUrl: Schema.String;
240
- /** Headers applied to every request. Values can reference secrets. */
241
- readonly headers: Schema.optional<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Struct<{
242
- readonly secretId: Schema.String;
243
- readonly prefix: Schema.optional<Schema.String>;
244
- }>]>>>;
245
- /**
246
- * Optional OAuth2 auth — if set, the invoker resolves/refreshes the
247
- * access token and injects `Authorization: Bearer <token>` on every
248
- * request. Coexists with `headers` but wins for the Authorization header.
249
- */
250
- readonly oauth2: Schema.OptionFromOptional<typeof OAuth2Auth>;
251
- }>, {}>;
252
- export declare class InvocationConfig extends InvocationConfig_base {
253
- }
254
229
  declare const InvocationResult_base: Schema.Class<InvocationResult, Schema.Struct<{
255
230
  readonly status: Schema.Number;
256
231
  readonly headers: Schema.$Record<Schema.String, Schema.String>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,34 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { HttpClient, HttpServer } from "effect/unstable/http";
3
+ declare const OpenApiTestServerAddressError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
4
+ readonly _tag: "OpenApiTestServerAddressError";
5
+ } & Readonly<A>;
6
+ export declare class OpenApiTestServerAddressError extends OpenApiTestServerAddressError_base<{
7
+ readonly address: unknown;
8
+ }> {
9
+ }
10
+ declare const OpenApiTestServerSpecError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
11
+ readonly _tag: "OpenApiTestServerSpecError";
12
+ } & Readonly<A>;
13
+ export declare class OpenApiTestServerSpecError extends OpenApiTestServerSpecError_base<{
14
+ readonly cause: unknown;
15
+ }> {
16
+ }
17
+ export interface OpenApiTestServerOptions {
18
+ readonly spec: unknown;
19
+ }
20
+ export interface OpenApiTestServerShape {
21
+ readonly baseUrl: string;
22
+ readonly specJson: string;
23
+ readonly httpClientLayer: Layer.Layer<HttpClient.HttpClient, never, never>;
24
+ }
25
+ export declare const openApiSpecJsonWithServer: (spec: unknown, baseUrl: string) => Effect.Effect<string, OpenApiTestServerSpecError>;
26
+ export declare const makeOpenApiTestServer: (options: OpenApiTestServerOptions) => Effect.Effect<OpenApiTestServerShape, OpenApiTestServerAddressError | OpenApiTestServerSpecError, HttpClient.HttpClient | HttpServer.HttpServer>;
27
+ declare const OpenApiTestServer_base: Context.ServiceClass<OpenApiTestServer, "@executor-js/plugin-openapi/testing/OpenApiTestServer", OpenApiTestServerShape>;
28
+ export declare class OpenApiTestServer extends OpenApiTestServer_base {
29
+ static readonly layer: (options: OpenApiTestServerOptions) => Layer.Layer<OpenApiTestServer, OpenApiTestServerAddressError | OpenApiTestServerSpecError, HttpClient.HttpClient | HttpServer.HttpServer>;
30
+ }
31
+ export declare const TestLayers: {
32
+ server: (options: OpenApiTestServerOptions) => Layer.Layer<OpenApiTestServer, OpenApiTestServerAddressError | OpenApiTestServerSpecError, HttpClient.HttpClient | HttpServer.HttpServer>;
33
+ };
34
+ export {};
@@ -0,0 +1,56 @@
1
+ // src/testing/index.ts
2
+ import { Context, Data, Effect, Layer, Predicate, Schema } from "effect";
3
+ import { HttpClient, HttpServer } from "effect/unstable/http";
4
+ var OpenApiTestServerAddressError = class extends Data.TaggedError(
5
+ "OpenApiTestServerAddressError"
6
+ ) {
7
+ };
8
+ var OpenApiTestServerSpecError = class extends Data.TaggedError("OpenApiTestServerSpecError") {
9
+ };
10
+ var decodeJsonSpec = Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Unknown));
11
+ var isJsonObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
12
+ var openApiSpecJsonWithServer = (spec, baseUrl) => Effect.gen(function* () {
13
+ const parsed = typeof spec === "string" ? yield* decodeJsonSpec(spec).pipe(
14
+ Effect.mapError((cause) => new OpenApiTestServerSpecError({ cause }))
15
+ ) : spec;
16
+ const withServer = isJsonObject(parsed) ? {
17
+ ...parsed,
18
+ servers: [{ url: baseUrl }]
19
+ } : parsed;
20
+ return yield* Effect.try({
21
+ try: () => JSON.stringify(withServer),
22
+ catch: (cause) => new OpenApiTestServerSpecError({ cause })
23
+ });
24
+ });
25
+ var makeOpenApiTestServer = (options) => Effect.gen(function* () {
26
+ const server = yield* HttpServer.HttpServer;
27
+ const address = server.address;
28
+ if (!Predicate.isTagged(address, "TcpAddress")) {
29
+ return yield* new OpenApiTestServerAddressError({ address });
30
+ }
31
+ const client = yield* HttpClient.HttpClient;
32
+ const baseUrl = `http://127.0.0.1:${address.port}`;
33
+ const specJson = yield* openApiSpecJsonWithServer(options.spec, baseUrl);
34
+ return {
35
+ baseUrl,
36
+ specJson,
37
+ httpClientLayer: Layer.succeed(HttpClient.HttpClient, client)
38
+ };
39
+ });
40
+ var OpenApiTestServer = class _OpenApiTestServer extends Context.Service()(
41
+ "@executor-js/plugin-openapi/testing/OpenApiTestServer"
42
+ ) {
43
+ static layer = (options) => Layer.effect(_OpenApiTestServer, makeOpenApiTestServer(options));
44
+ };
45
+ var TestLayers = {
46
+ server: OpenApiTestServer.layer
47
+ };
48
+ export {
49
+ OpenApiTestServer,
50
+ OpenApiTestServerAddressError,
51
+ OpenApiTestServerSpecError,
52
+ TestLayers,
53
+ makeOpenApiTestServer,
54
+ openApiSpecJsonWithServer
55
+ };
56
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/testing/index.ts"],"sourcesContent":["import { Context, Data, Effect, Layer, Predicate, Schema } from \"effect\";\nimport { HttpClient, HttpServer } from \"effect/unstable/http\";\n\nexport class OpenApiTestServerAddressError extends Data.TaggedError(\n \"OpenApiTestServerAddressError\",\n)<{\n readonly address: unknown;\n}> {}\n\nexport class OpenApiTestServerSpecError extends Data.TaggedError(\"OpenApiTestServerSpecError\")<{\n readonly cause: unknown;\n}> {}\n\nexport interface OpenApiTestServerOptions {\n readonly spec: unknown;\n}\n\nexport interface OpenApiTestServerShape {\n readonly baseUrl: string;\n readonly specJson: string;\n readonly httpClientLayer: Layer.Layer<HttpClient.HttpClient, never, never>;\n}\n\nconst decodeJsonSpec = Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Unknown));\n\nconst isJsonObject = (value: unknown): value is Readonly<Record<string, unknown>> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nexport const openApiSpecJsonWithServer = (\n spec: unknown,\n baseUrl: string,\n): Effect.Effect<string, OpenApiTestServerSpecError> =>\n Effect.gen(function* () {\n const parsed =\n typeof spec === \"string\"\n ? yield* decodeJsonSpec(spec).pipe(\n Effect.mapError((cause) => new OpenApiTestServerSpecError({ cause })),\n )\n : spec;\n const withServer = isJsonObject(parsed)\n ? {\n ...parsed,\n servers: [{ url: baseUrl }],\n }\n : parsed;\n return yield* Effect.try({\n try: () => JSON.stringify(withServer),\n catch: (cause) => new OpenApiTestServerSpecError({ cause }),\n });\n });\n\nexport const makeOpenApiTestServer = (\n options: OpenApiTestServerOptions,\n): Effect.Effect<\n OpenApiTestServerShape,\n OpenApiTestServerAddressError | OpenApiTestServerSpecError,\n HttpClient.HttpClient | HttpServer.HttpServer\n> =>\n Effect.gen(function* () {\n const server = yield* HttpServer.HttpServer;\n const address = server.address;\n if (!Predicate.isTagged(address, \"TcpAddress\")) {\n return yield* new OpenApiTestServerAddressError({ address });\n }\n\n const client = yield* HttpClient.HttpClient;\n const baseUrl = `http://127.0.0.1:${address.port}`;\n const specJson = yield* openApiSpecJsonWithServer(options.spec, baseUrl);\n\n return {\n baseUrl,\n specJson,\n httpClientLayer: Layer.succeed(HttpClient.HttpClient, client),\n };\n });\n\nexport class OpenApiTestServer extends Context.Service<OpenApiTestServer, OpenApiTestServerShape>()(\n \"@executor-js/plugin-openapi/testing/OpenApiTestServer\",\n) {\n static readonly layer = (options: OpenApiTestServerOptions) =>\n Layer.effect(OpenApiTestServer, makeOpenApiTestServer(options));\n}\n\nexport const TestLayers = {\n server: OpenApiTestServer.layer,\n};\n"],"mappings":";AAAA,SAAS,SAAS,MAAM,QAAQ,OAAO,WAAW,cAAc;AAChE,SAAS,YAAY,kBAAkB;AAEhC,IAAM,gCAAN,cAA4C,KAAK;AAAA,EACtD;AACF,EAEG;AAAC;AAEG,IAAM,6BAAN,cAAyC,KAAK,YAAY,4BAA4B,EAE1F;AAAC;AAYJ,IAAM,iBAAiB,OAAO,oBAAoB,OAAO,eAAe,OAAO,OAAO,CAAC;AAEvF,IAAM,eAAe,CAAC,UACpB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAE9D,IAAM,4BAA4B,CACvC,MACA,YAEA,OAAO,IAAI,aAAa;AACtB,QAAM,SACJ,OAAO,SAAS,WACZ,OAAO,eAAe,IAAI,EAAE;AAAA,IAC1B,OAAO,SAAS,CAAC,UAAU,IAAI,2BAA2B,EAAE,MAAM,CAAC,CAAC;AAAA,EACtE,IACA;AACN,QAAM,aAAa,aAAa,MAAM,IAClC;AAAA,IACE,GAAG;AAAA,IACH,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC;AAAA,EAC5B,IACA;AACJ,SAAO,OAAO,OAAO,IAAI;AAAA,IACvB,KAAK,MAAM,KAAK,UAAU,UAAU;AAAA,IACpC,OAAO,CAAC,UAAU,IAAI,2BAA2B,EAAE,MAAM,CAAC;AAAA,EAC5D,CAAC;AACH,CAAC;AAEI,IAAM,wBAAwB,CACnC,YAMA,OAAO,IAAI,aAAa;AACtB,QAAM,SAAS,OAAO,WAAW;AACjC,QAAM,UAAU,OAAO;AACvB,MAAI,CAAC,UAAU,SAAS,SAAS,YAAY,GAAG;AAC9C,WAAO,OAAO,IAAI,8BAA8B,EAAE,QAAQ,CAAC;AAAA,EAC7D;AAEA,QAAM,SAAS,OAAO,WAAW;AACjC,QAAM,UAAU,oBAAoB,QAAQ,IAAI;AAChD,QAAM,WAAW,OAAO,0BAA0B,QAAQ,MAAM,OAAO;AAEvE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,iBAAiB,MAAM,QAAQ,WAAW,YAAY,MAAM;AAAA,EAC9D;AACF,CAAC;AAEI,IAAM,oBAAN,MAAM,2BAA0B,QAAQ,QAAmD;AAAA,EAChG;AACF,EAAE;AAAA,EACA,OAAgB,QAAQ,CAAC,YACvB,MAAM,OAAO,oBAAmB,sBAAsB,OAAO,CAAC;AAClE;AAEO,IAAM,aAAa;AAAA,EACxB,QAAQ,kBAAkB;AAC5B;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@executor-js/plugin-openapi",
3
- "version": "0.0.2",
3
+ "version": "0.2.1",
4
4
  "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/openapi",
5
5
  "bugs": {
6
6
  "url": "https://github.com/RhysSullivan/executor/issues"
@@ -27,6 +27,18 @@
27
27
  "types": "./dist/sdk/index.d.ts",
28
28
  "default": "./dist/core.js"
29
29
  }
30
+ },
31
+ "./client": {
32
+ "import": {
33
+ "types": "./dist/react/plugin-client.d.ts",
34
+ "default": "./dist/client.js"
35
+ }
36
+ },
37
+ "./testing": {
38
+ "import": {
39
+ "types": "./dist/testing/index.d.ts",
40
+ "default": "./dist/testing.js"
41
+ }
30
42
  }
31
43
  },
32
44
  "publishConfig": {
@@ -41,8 +53,8 @@
41
53
  },
42
54
  "dependencies": {
43
55
  "@effect/platform-node": "4.0.0-beta.59",
44
- "@executor-js/config": "0.0.2",
45
- "@executor-js/sdk": "0.0.2",
56
+ "@executor-js/config": "0.2.1",
57
+ "@executor-js/sdk": "0.2.1",
46
58
  "effect": "4.0.0-beta.59",
47
59
  "openapi-types": "^12.1.3",
48
60
  "yaml": "^2.7.1"
@@ -50,7 +62,7 @@
50
62
  "devDependencies": {
51
63
  "@effect/atom-react": "4.0.0-beta.59",
52
64
  "@effect/vitest": "4.0.0-beta.59",
53
- "@executor-js/storage-core": "0.0.2",
65
+ "@executor-js/storage-core": "0.2.1",
54
66
  "@types/node": "^24.3.1",
55
67
  "@types/react": "^19.1.0",
56
68
  "bun-types": "^1.2.22",