Unified · Split
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "executor", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "bin": { |
| 6 | 6 | "executor": "./bin/executor.ts" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/cloud", |
| 3 | − "version": "1.4.16", | |
| 3 | + "version": "1.4.17", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "scripts": { |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/desktop", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "homepage": "https://github.com/RhysSullivan/executor", |
| 6 | 6 | "license": "MIT", |
| @@ -129,6 +129,7 @@ export type LocalExecutor = LocalExecutorBundle["executor"]; · 128 unmodified lines | ||
| 129 | 129 | |
| 130 | 130 | class LocalExecutorCreateError extends Data.TaggedError("LocalExecutorCreateError")<{ |
| 131 | 131 | readonly operation: "createSqlite" | "importSqlite"; |
| 132 | + readonly message: string; | |
| 132 | 133 | readonly cause: unknown; |
| 133 | 134 | }> {} |
| 134 | 135 | |
| @@ -137,6 +138,19 @@ class LocalExecutorDisposeError extends Data.TaggedError("LocalExecutorDisposeEr · 2 unmodified lines | ||
| 137 | 138 | readonly cause: unknown; |
| 138 | 139 | }> {} |
| 139 | 140 | |
| 141 | +const localExecutorCreateError = ( | |
| 142 | + operation: LocalExecutorCreateError["operation"], | |
| 143 | + cause: unknown, | |
| 144 | +) => | |
| 145 | + new LocalExecutorCreateError({ | |
| 146 | + operation, | |
| 147 | + cause, | |
| 148 | + message: | |
| 149 | + operation === "importSqlite" | |
| 150 | + ? "Failed to prepare local SQLite data. Close other Executor processes and retry, or run with --log-level debug for details." | |
| 151 | + : "Failed to open local SQLite data. Close other Executor processes and retry, or run with --log-level debug for details.", | |
| 152 | + }); | |
| 153 | + | |
| 140 | 154 | const ignorePromiseFailure = ( |
| 141 | 155 | operation: LocalExecutorDisposeError["operation"], |
| 142 | 156 | try_: () => Promise<unknown>, |
| @@ -460,19 +474,17 @@ const importMissingMarkedTables = async (input: { · 317 unmodified lines | ||
| 460 | 474 | await target.close(); |
| 461 | 475 | removeSqliteSidecars(input.storage.sqlitePath); |
| 462 | 476 | |
| 463 | − if (result.imported) { | |
| 464 | − const importedTables = [ | |
| 465 | − ...new Set([...input.marker.importedTables, ...result.importedTables]), | |
| 466 | − ]; | |
| 467 | − writeSqliteImportMarker(input.storage.importMarkerPath, { | |
| 468 | − importedRows: input.marker.importedRows + result.importedRows, | |
| 469 | − importedTables, | |
| 470 | − backupPath: input.marker.backupPath, | |
| 471 | − recovered: input.marker.recovered, | |
| 472 | − }); | |
| 473 | − } | |
| 477 | + const importedTables = [...new Set([...input.marker.importedTables, ...missingTables])]; | |
| 478 | + writeSqliteImportMarker(input.storage.importMarkerPath, { | |
| 479 | + importedRows: input.marker.importedRows + result.importedRows, | |
| 480 | + importedTables, | |
| 481 | + backupPath: input.marker.backupPath, | |
| 482 | + recovered: input.marker.recovered, | |
| 483 | + }); | |
| 474 | 484 | |
| 475 | − return result; | |
| 485 | + return result.importedRows > 0 || result.importedTables.length > 0 | |
| 486 | + ? result | |
| 487 | + : { imported: false, importedRows: 0, importedTables: [] }; | |
| 476 | 488 | } catch (cause) { |
| 477 | 489 | await target.close(); |
| 478 | 490 | // oxlint-disable-next-line executor/no-try-catch-or-throw -- boundary: preserve late plugin-table import failure after closing SQLite |
| @@ -633,7 +645,7 @@ const createLocalExecutorLayer = () => { · 154 unmodified lines | ||
| 633 | 645 | tables, |
| 634 | 646 | scopeId, |
| 635 | 647 | }), |
| 636 | − catch: (cause) => new LocalExecutorCreateError({ operation: "importSqlite", cause }), | |
| 648 | + catch: (cause) => localExecutorCreateError("importSqlite", cause), | |
| 637 | 649 | }); |
| 638 | 650 | |
| 639 | 651 | const sqlite = yield* Effect.acquireRelease( |
| @@ -644,7 +656,7 @@ const createLocalExecutorLayer = () => { · 4 unmodified lines | ||
| 644 | 656 | namespace: localNamespace, |
| 645 | 657 | path: storage.sqlitePath, |
| 646 | 658 | }), |
| 647 | − catch: (cause) => new LocalExecutorCreateError({ operation: "createSqlite", cause }), | |
| 659 | + catch: (cause) => localExecutorCreateError("createSqlite", cause), | |
| 648 | 660 | }), |
| 649 | 661 | (db) => Effect.promise(() => db.close()).pipe(Effect.ignore), |
| 650 | 662 | ); |
| @@ -1,6 +1,7 @@ | ||
| 1 | 1 | import { afterEach, beforeEach, describe, expect, it } from "@effect/vitest"; |
| 2 | 2 | import { Database } from "bun:sqlite"; |
| 3 | −import { existsSync, mkdtempSync, rmSync } from "node:fs"; | |
| 3 | +import { Schema } from "effect"; | |
| 4 | +import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs"; | |
| 4 | 5 | import { tmpdir } from "node:os"; |
| 5 | 6 | import { join } from "node:path"; |
| 6 | 7 | |
| @@ -166,6 +167,13 @@ const latePlugin = definePlugin(() => ({ · 159 unmodified lines | ||
| 166 | 167 | storage: () => ({}), |
| 167 | 168 | }))(); |
| 168 | 169 | |
| 170 | +const ImportMarkerForTest = Schema.Struct({ | |
| 171 | + importedTables: Schema.Array(Schema.String), | |
| 172 | +}); | |
| 173 | +const decodeImportMarkerForTest = Schema.decodeUnknownSync( | |
| 174 | + Schema.fromJsonString(ImportMarkerForTest), | |
| 175 | +); | |
| 176 | + | |
| 169 | 177 | const legacyShapeSchema = { |
| 170 | 178 | legacy_shape: scopedExecutorTable("legacy_shape", { |
| 171 | 179 | payload: jsonColumn("payload"), |
| @@ -497,4 +505,49 @@ describe("importSqliteDataToFuma", () => { · 325 unmodified lines | ||
| 497 | 505 | }), |
| 498 | 506 | ).resolves.toEqual([{ id: "late_1", value: "from-backup" }]); |
| 499 | 507 | }); |
| 508 | + | |
| 509 | + it("marks newly-loaded empty plugin tables so startup does not retry backup imports", async () => { | |
| 510 | + const sqlitePath = join(workDir, "data.db"); | |
| 511 | + const markerPath = join(workDir, "fumadb-sqlite-imported"); | |
| 512 | + seedMigratedSqlite(sqlitePath); | |
| 513 | + | |
| 514 | + const firstResult = await importLegacySqliteIfNeeded({ | |
| 515 | + storage: { | |
| 516 | + dataDir: workDir, | |
| 517 | + sqlitePath, | |
| 518 | + importMarkerPath: markerPath, | |
| 519 | + }, | |
| 520 | + tables: collectTables([]), | |
| 521 | + scopeId: "scope_a", | |
| 522 | + }); | |
| 523 | + expect(firstResult.importedTables).not.toContain("late_item"); | |
| 524 | + | |
| 525 | + const allTables = collectTables([latePlugin]); | |
| 526 | + const secondResult = await importLegacySqliteIfNeeded({ | |
| 527 | + storage: { | |
| 528 | + dataDir: workDir, | |
| 529 | + sqlitePath, | |
| 530 | + importMarkerPath: markerPath, | |
| 531 | + }, | |
| 532 | + tables: allTables, | |
| 533 | + scopeId: "scope_a", | |
| 534 | + }); | |
| 535 | + | |
| 536 | + expect(secondResult.imported).toBe(false); | |
| 537 | + expect(secondResult.importedRows).toBe(0); | |
| 538 | + expect(decodeImportMarkerForTest(readFileSync(markerPath, "utf8")).importedTables).toContain( | |
| 539 | + "late_item", | |
| 540 | + ); | |
| 541 | + | |
| 542 | + const thirdResult = await importLegacySqliteIfNeeded({ | |
| 543 | + storage: { | |
| 544 | + dataDir: workDir, | |
| 545 | + sqlitePath, | |
| 546 | + importMarkerPath: markerPath, | |
| 547 | + }, | |
| 548 | + tables: allTables, | |
| 549 | + scopeId: "scope_a", | |
| 550 | + }); | |
| 551 | + expect(thirdResult.imported).toBe(false); | |
| 552 | + }); | |
| 500 | 553 | }); |
| @@ -29,7 +29,7 @@ · 28 unmodified lines | ||
| 29 | 29 | }, |
| 30 | 30 | "apps/cli": { |
| 31 | 31 | "name": "executor", |
| 32 | − "version": "1.4.30", | |
| 32 | + "version": "1.4.31", | |
| 33 | 33 | "bin": { |
| 34 | 34 | "executor": "./bin/executor.ts", |
| 35 | 35 | }, |
| @@ -50,7 +50,7 @@ · 14 unmodified lines | ||
| 50 | 50 | }, |
| 51 | 51 | "apps/cloud": { |
| 52 | 52 | "name": "@executor-js/cloud", |
| 53 | − "version": "1.4.16", | |
| 53 | + "version": "1.4.17", | |
| 54 | 54 | "dependencies": { |
| 55 | 55 | "@cloudflare/vite-plugin": "^1.31.1", |
| 56 | 56 | "@effect/atom-react": "catalog:", |
| @@ -117,7 +117,7 @@ · 60 unmodified lines | ||
| 117 | 117 | }, |
| 118 | 118 | "apps/desktop": { |
| 119 | 119 | "name": "@executor-js/desktop", |
| 120 | − "version": "1.4.30", | |
| 120 | + "version": "1.4.31", | |
| 121 | 121 | "dependencies": { |
| 122 | 122 | "electron-log": "^5", |
| 123 | 123 | "electron-store": "^10", |
| @@ -231,7 +231,7 @@ · 107 unmodified lines | ||
| 231 | 231 | }, |
| 232 | 232 | "examples/all-plugins": { |
| 233 | 233 | "name": "@executor-js/example-all-plugins", |
| 234 | − "version": "0.0.16", | |
| 234 | + "version": "0.0.17", | |
| 235 | 235 | "dependencies": { |
| 236 | 236 | "@executor-js/plugin-file-secrets": "workspace:*", |
| 237 | 237 | "@executor-js/plugin-google-discovery": "workspace:*", |
| @@ -251,7 +251,7 @@ · 13 unmodified lines | ||
| 251 | 251 | }, |
| 252 | 252 | "examples/docs-sdk-quickstart": { |
| 253 | 253 | "name": "@executor-js/example-docs-sdk-quickstart", |
| 254 | − "version": "0.0.1", | |
| 254 | + "version": "0.0.2", | |
| 255 | 255 | "dependencies": { |
| 256 | 256 | "@executor-js/plugin-openapi": "workspace:*", |
| 257 | 257 | "@executor-js/sdk": "workspace:*", |
| @@ -301,7 +301,7 @@ · 43 unmodified lines | ||
| 301 | 301 | }, |
| 302 | 302 | "packages/core/api": { |
| 303 | 303 | "name": "@executor-js/api", |
| 304 | − "version": "1.4.18", | |
| 304 | + "version": "1.4.19", | |
| 305 | 305 | "dependencies": { |
| 306 | 306 | "@executor-js/execution": "workspace:*", |
| 307 | 307 | "@executor-js/sdk": "workspace:*", |
| @@ -317,7 +317,7 @@ · 9 unmodified lines | ||
| 317 | 317 | }, |
| 318 | 318 | "packages/core/cli": { |
| 319 | 319 | "name": "@executor-js/cli", |
| 320 | − "version": "0.2.2", | |
| 320 | + "version": "0.2.3", | |
| 321 | 321 | "bin": { |
| 322 | 322 | "executor-sdk": "./dist/index.js", |
| 323 | 323 | }, |
| @@ -338,7 +338,7 @@ · 14 unmodified lines | ||
| 338 | 338 | }, |
| 339 | 339 | "packages/core/config": { |
| 340 | 340 | "name": "@executor-js/config", |
| 341 | − "version": "1.4.30", | |
| 341 | + "version": "1.4.31", | |
| 342 | 342 | "dependencies": { |
| 343 | 343 | "@executor-js/sdk": "workspace:*", |
| 344 | 344 | "effect": "catalog:", |
| @@ -356,7 +356,7 @@ · 11 unmodified lines | ||
| 356 | 356 | }, |
| 357 | 357 | "packages/core/execution": { |
| 358 | 358 | "name": "@executor-js/execution", |
| 359 | − "version": "1.4.30", | |
| 359 | + "version": "1.4.31", | |
| 360 | 360 | "dependencies": { |
| 361 | 361 | "@executor-js/codemode-core": "workspace:*", |
| 362 | 362 | "@executor-js/sdk": "workspace:*", |
| @@ -418,7 +418,7 @@ · 55 unmodified lines | ||
| 418 | 418 | }, |
| 419 | 419 | "packages/core/sdk": { |
| 420 | 420 | "name": "@executor-js/sdk", |
| 421 | − "version": "1.4.30", | |
| 421 | + "version": "1.4.31", | |
| 422 | 422 | "dependencies": { |
| 423 | 423 | "@standard-schema/spec": "^1.1.0", |
| 424 | 424 | "effect": "catalog:", |
| @@ -470,7 +470,7 @@ · 45 unmodified lines | ||
| 470 | 470 | }, |
| 471 | 471 | "packages/core/vite-plugin": { |
| 472 | 472 | "name": "@executor-js/vite-plugin", |
| 473 | − "version": "0.0.15", | |
| 473 | + "version": "0.0.16", | |
| 474 | 474 | "dependencies": { |
| 475 | 475 | "@executor-js/sdk": "workspace:*", |
| 476 | 476 | "jiti": "^2.6.1", |
| @@ -508,7 +508,7 @@ · 31 unmodified lines | ||
| 508 | 508 | }, |
| 509 | 509 | "packages/kernel/core": { |
| 510 | 510 | "name": "@executor-js/codemode-core", |
| 511 | − "version": "1.4.30", | |
| 511 | + "version": "1.4.31", | |
| 512 | 512 | "dependencies": { |
| 513 | 513 | "@babel/parser": "^7.29.2", |
| 514 | 514 | "@standard-schema/spec": "^1.0.0", |
| @@ -578,7 +578,7 @@ · 63 unmodified lines | ||
| 578 | 578 | }, |
| 579 | 579 | "packages/kernel/runtime-quickjs": { |
| 580 | 580 | "name": "@executor-js/runtime-quickjs", |
| 581 | − "version": "1.4.30", | |
| 581 | + "version": "1.4.31", | |
| 582 | 582 | "dependencies": { |
| 583 | 583 | "@executor-js/codemode-core": "workspace:*", |
| 584 | 584 | "effect": "catalog:", |
| @@ -595,7 +595,7 @@ · 10 unmodified lines | ||
| 595 | 595 | }, |
| 596 | 596 | "packages/plugins/desktop-settings": { |
| 597 | 597 | "name": "@executor-js/plugin-desktop-settings", |
| 598 | − "version": "1.4.30", | |
| 598 | + "version": "1.4.31", | |
| 599 | 599 | "dependencies": { |
| 600 | 600 | "@executor-js/sdk": "workspace:*", |
| 601 | 601 | "react": "catalog:", |
| @@ -608,7 +608,7 @@ · 6 unmodified lines | ||
| 608 | 608 | }, |
| 609 | 609 | "packages/plugins/example": { |
| 610 | 610 | "name": "@executor-js/plugin-example", |
| 611 | − "version": "1.4.30", | |
| 611 | + "version": "1.4.31", | |
| 612 | 612 | "dependencies": { |
| 613 | 613 | "@executor-js/sdk": "workspace:*", |
| 614 | 614 | }, |
| @@ -631,7 +631,7 @@ · 16 unmodified lines | ||
| 631 | 631 | }, |
| 632 | 632 | "packages/plugins/file-secrets": { |
| 633 | 633 | "name": "@executor-js/plugin-file-secrets", |
| 634 | − "version": "1.4.30", | |
| 634 | + "version": "1.4.31", | |
| 635 | 635 | "dependencies": { |
| 636 | 636 | "@executor-js/sdk": "workspace:*", |
| 637 | 637 | "effect": "catalog:", |
| @@ -645,7 +645,7 @@ · 7 unmodified lines | ||
| 645 | 645 | }, |
| 646 | 646 | "packages/plugins/google-discovery": { |
| 647 | 647 | "name": "@executor-js/plugin-google-discovery", |
| 648 | − "version": "1.4.30", | |
| 648 | + "version": "1.4.31", | |
| 649 | 649 | "dependencies": { |
| 650 | 650 | "@executor-js/sdk": "workspace:*", |
| 651 | 651 | "effect": "catalog:", |
| @@ -680,7 +680,7 @@ · 28 unmodified lines | ||
| 680 | 680 | }, |
| 681 | 681 | "packages/plugins/graphql": { |
| 682 | 682 | "name": "@executor-js/plugin-graphql", |
| 683 | − "version": "1.4.30", | |
| 683 | + "version": "1.4.31", | |
| 684 | 684 | "dependencies": { |
| 685 | 685 | "@effect/platform-node": "catalog:", |
| 686 | 686 | "@executor-js/config": "workspace:*", |
| @@ -718,7 +718,7 @@ · 31 unmodified lines | ||
| 718 | 718 | }, |
| 719 | 719 | "packages/plugins/keychain": { |
| 720 | 720 | "name": "@executor-js/plugin-keychain", |
| 721 | − "version": "1.4.30", | |
| 721 | + "version": "1.4.31", | |
| 722 | 722 | "dependencies": { |
| 723 | 723 | "@executor-js/sdk": "workspace:*", |
| 724 | 724 | "@napi-rs/keyring": "^1.2.0", |
| @@ -734,7 +734,7 @@ · 9 unmodified lines | ||
| 734 | 734 | }, |
| 735 | 735 | "packages/plugins/mcp": { |
| 736 | 736 | "name": "@executor-js/plugin-mcp", |
| 737 | − "version": "1.4.30", | |
| 737 | + "version": "1.4.31", | |
| 738 | 738 | "dependencies": { |
| 739 | 739 | "@cfworker/json-schema": "^4.1.1", |
| 740 | 740 | "@effect/platform-node": "catalog:", |
| @@ -773,7 +773,7 @@ · 32 unmodified lines | ||
| 773 | 773 | }, |
| 774 | 774 | "packages/plugins/onepassword": { |
| 775 | 775 | "name": "@executor-js/plugin-onepassword", |
| 776 | − "version": "1.4.30", | |
| 776 | + "version": "1.4.31", | |
| 777 | 777 | "dependencies": { |
| 778 | 778 | "@1password/op-js": "^0.1.13", |
| 779 | 779 | "@1password/sdk": "^0.4.1-beta.1", |
| @@ -806,7 +806,7 @@ · 26 unmodified lines | ||
| 806 | 806 | }, |
| 807 | 807 | "packages/plugins/openapi": { |
| 808 | 808 | "name": "@executor-js/plugin-openapi", |
| 809 | − "version": "1.4.30", | |
| 809 | + "version": "1.4.31", | |
| 810 | 810 | "dependencies": { |
| 811 | 811 | "@effect/platform-node": "catalog:", |
| 812 | 812 | "@executor-js/config": "workspace:*", |
| @@ -869,7 +869,7 @@ · 56 unmodified lines | ||
| 869 | 869 | }, |
| 870 | 870 | "packages/react": { |
| 871 | 871 | "name": "@executor-js/react", |
| 872 | − "version": "1.4.18", | |
| 872 | + "version": "1.4.19", | |
| 873 | 873 | "dependencies": { |
| 874 | 874 | "@base-ui/react": "^1.3.0", |
| 875 | 875 | "@effect/atom-react": "catalog:", |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/example-all-plugins", |
| 3 | − "version": "0.0.16", | |
| 3 | + "version": "0.0.17", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "scripts": { |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/example-docs-sdk-quickstart", |
| 3 | − "version": "0.0.1", | |
| 3 | + "version": "0.0.2", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "scripts": { |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/api", |
| 3 | − "version": "1.4.18", | |
| 3 | + "version": "1.4.19", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/cli", |
| 3 | − "version": "0.2.2", | |
| 3 | + "version": "0.2.3", | |
| 4 | 4 | "description": "CLI for the executor SDK — schema generation, migrations", |
| 5 | 5 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/core/cli", |
| 6 | 6 | "bugs": { |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/config", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/core/config", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/execution", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/core/execution", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/sdk", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/core/sdk", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/vite-plugin", |
| 3 | − "version": "0.0.15", | |
| 3 | + "version": "0.0.16", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/core/vite-plugin", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/codemode-core", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/kernel/core", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/runtime-quickjs", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/kernel/runtime-quickjs", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-desktop-settings", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/desktop-settings", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-example", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/example", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-file-secrets", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/file-secrets", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-google-discovery", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/google-discovery", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-graphql", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/graphql", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-keychain", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/keychain", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-mcp", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/mcp", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-onepassword", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 4 | 4 | "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/onepassword", |
| 5 | 5 | "bugs": { |
| 6 | 6 | "url": "https://github.com/RhysSullivan/executor/issues" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/plugin-openapi", |
| 3 | − "version": "1.4.30", | |
| 3 | + "version": "1.4.31", | |
| 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" |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@executor-js/react", |
| 3 | − "version": "1.4.18", | |
| 3 | + "version": "1.4.19", | |
| 4 | 4 | "private": true, |
| 5 | 5 | "type": "module", |
| 6 | 6 | "exports": { |