From ba45e13a239969d56d7378986559725845aba5bf Mon Sep 17 00:00:00 2001 From: Wojtek Majewski Date: Tue, 18 Nov 2025 10:10:47 +0100 Subject: [PATCH] chore: update deno to 2.1.4 --- .changeset/modernize-dependencies-0-8-0.md | 1 - .github/workflows/ci.yml | 4 +- .tool-versions | 1 + .../tasks/fetch-article.ts | 3 +- pkgs/cli/README.md | 2 +- pkgs/edge-worker/deno.lock | 464 ++++++------------ pkgs/edge-worker/deno.test.json | 2 +- .../FlowWorkerLifecycle.deprecation.test.ts | 6 +- .../unit/WorkerLifecycle.deprecation.test.ts | 8 +- ...endencies-pgmq-1-5-0-and-postgresql-17.mdx | 6 +- scripts/snapshot-release.sh | 22 +- 11 files changed, 175 insertions(+), 344 deletions(-) diff --git a/.changeset/modernize-dependencies-0-8-0.md b/.changeset/modernize-dependencies-0-8-0.md index 7569224f7..03ae2d015 100644 --- a/.changeset/modernize-dependencies-0-8-0.md +++ b/.changeset/modernize-dependencies-0-8-0.md @@ -2,7 +2,6 @@ '@pgflow/core': minor '@pgflow/client': minor '@pgflow/edge-worker': minor -'@pgflow/website': minor --- BREAKING CHANGE: pgflow 0.8.0 requires pgmq 1.5.0+, PostgreSQL 17, and Supabase CLI 2.34.3+ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3bb539176..f747a9a47 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: - name: Setup Deno uses: denoland/setup-deno@v2 with: - deno-version: '1.45.2' + deno-version: '2.1.4' - name: Install sqruff uses: ./.github/actions/setup-sqruff @@ -76,7 +76,7 @@ jobs: - name: Setup Deno uses: denoland/setup-deno@v2 with: - deno-version: '1.45.2' + deno-version: '2.1.4' - name: Install sqruff uses: ./.github/actions/setup-sqruff diff --git a/.tool-versions b/.tool-versions index 97d06958e..3a4182e73 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,3 @@ nodejs 24.11.0 pnpm 10.20.0 +deno 2.1.4 diff --git a/apps/demo/supabase/functions/article_flow_worker/tasks/fetch-article.ts b/apps/demo/supabase/functions/article_flow_worker/tasks/fetch-article.ts index 4d56ecf24..872427e68 100644 --- a/apps/demo/supabase/functions/article_flow_worker/tasks/fetch-article.ts +++ b/apps/demo/supabase/functions/article_flow_worker/tasks/fetch-article.ts @@ -41,6 +41,7 @@ export async function fetchArticle(url: string) { }; } catch (error) { console.error('Error fetching article:', error); - throw new Error(`Failed to fetch article from ${url}: ${error.message}`); + const message = error instanceof Error ? error.message : String(error); + throw new Error(`Failed to fetch article from ${url}: ${message}`); } } diff --git a/pkgs/cli/README.md b/pkgs/cli/README.md index 54e30f409..75e85d222 100644 --- a/pkgs/cli/README.md +++ b/pkgs/cli/README.md @@ -16,7 +16,7 @@ This package provides essential tools for setting up, managing, and deploying pg ## Prerequisites - Supabase CLI v2.34.3 or higher -- Deno v1.45.x or higher (for flow compilation) +- Deno v2.1.x or higher (for flow compilation) - Local Supabase project initialized ## Installation diff --git a/pkgs/edge-worker/deno.lock b/pkgs/edge-worker/deno.lock index 5ad3386ae..a33eaccfa 100644 --- a/pkgs/edge-worker/deno.lock +++ b/pkgs/edge-worker/deno.lock @@ -1,309 +1,147 @@ { - "version": "3", - "packages": { - "specifiers": { - "jsr:@deno-library/progress": "jsr:@deno-library/progress@1.5.1", - "jsr:@henrygd/queue@^1.0.7": "jsr:@henrygd/queue@1.0.7", - "jsr:@std/assert": "jsr:@std/assert@0.224.0", - "jsr:@std/assert@^0.224.0": "jsr:@std/assert@0.224.0", - "jsr:@std/async@^0.224.0": "jsr:@std/async@0.224.2", - "jsr:@std/crypto": "jsr:@std/crypto@1.0.5", - "jsr:@std/fmt@1.0.3": "jsr:@std/fmt@1.0.3", - "jsr:@std/fmt@^0.224.0": "jsr:@std/fmt@0.224.0", - "jsr:@std/internal@^0.224.0": "jsr:@std/internal@0.224.0", - "jsr:@std/io@0.225.0": "jsr:@std/io@0.225.0", - "jsr:@std/io@^0.225.0": "jsr:@std/io@0.225.0", - "npm:@henrygd/queue@^1.0.7": "npm:@henrygd/queue@1.0.7", - "npm:@supabase/supabase-js@^2.39.0": "npm:@supabase/supabase-js@2.74.0", - "npm:@supabase/supabase-js@^2.47.10": "npm:@supabase/supabase-js@2.74.0", - "npm:@types/deno@^2.3.0": "npm:@types/deno@2.3.0", - "npm:@types/node@~18.16.20": "npm:@types/node@18.16.20", - "npm:postgres@3.4.5": "npm:postgres@3.4.5", - "npm:supabase@2.21.1": "npm:supabase@2.21.1" + "version": "4", + "specifiers": { + "jsr:@deno-library/progress@*": "1.5.1", + "jsr:@henrygd/queue@^1.0.7": "1.0.7", + "jsr:@std/assert@*": "0.224.0", + "jsr:@std/assert@0.224": "0.224.0", + "jsr:@std/async@0.224": "0.224.2", + "jsr:@std/crypto@*": "1.0.5", + "jsr:@std/fmt@0.224": "0.224.0", + "jsr:@std/fmt@1.0.3": "1.0.3", + "jsr:@std/internal@0.224": "0.224.0", + "jsr:@std/io@0.225": "0.225.0", + "jsr:@std/io@0.225.0": "0.225.0", + "npm:@supabase/supabase-js@^2.39.0": "2.74.0", + "npm:postgres@3.4.5": "3.4.5" + }, + "jsr": { + "@deno-library/progress@1.5.1": { + "integrity": "966611826b8bb27baae73ab1c4fa4317cd4edd2abb99750cd6f8488d22d5b121", + "dependencies": [ + "jsr:@std/fmt@1.0.3", + "jsr:@std/io@0.225.0" + ] + }, + "@henrygd/queue@1.0.7": { + "integrity": "98cade132744bb420957c5413393f76eb8ba7261826f026c8a89a562b8fa2961" + }, + "@std/assert@0.224.0": { + "integrity": "8643233ec7aec38a940a8264a6e3eed9bfa44e7a71cc6b3c8874213ff401967f", + "dependencies": [ + "jsr:@std/fmt@0.224", + "jsr:@std/internal" + ] }, - "jsr": { - "@deno-library/progress@1.5.1": { - "integrity": "966611826b8bb27baae73ab1c4fa4317cd4edd2abb99750cd6f8488d22d5b121", - "dependencies": [ - "jsr:@std/fmt@1.0.3", - "jsr:@std/io@0.225.0" - ] - }, - "@henrygd/queue@1.0.7": { - "integrity": "98cade132744bb420957c5413393f76eb8ba7261826f026c8a89a562b8fa2961" - }, - "@std/assert@0.224.0": { - "integrity": "8643233ec7aec38a940a8264a6e3eed9bfa44e7a71cc6b3c8874213ff401967f", - "dependencies": [ - "jsr:@std/fmt@^0.224.0", - "jsr:@std/internal@^0.224.0" - ] - }, - "@std/async@0.224.2": { - "integrity": "4d277d6e165df43d5e061ba0ef3edfddb8e8d558f5b920e3e6b1d2614b44d074" - }, - "@std/crypto@1.0.5": { - "integrity": "0dcfbb319fe0bba1bd3af904ceb4f948cde1b92979ec1614528380ed308a3b40" - }, - "@std/fmt@0.224.0": { - "integrity": "e20e9a2312a8b5393272c26191c0a68eda8d2c4b08b046bad1673148f1d69851" - }, - "@std/fmt@1.0.3": { - "integrity": "97765c16aa32245ff4e2204ecf7d8562496a3cb8592340a80e7e554e0bb9149f" - }, - "@std/internal@0.224.0": { - "integrity": "afc50644f9cdf4495eeb80523a8f6d27226b4b36c45c7c195dfccad4b8509291", - "dependencies": [ - "jsr:@std/fmt@^0.224.0" - ] - }, - "@std/io@0.225.0": { - "integrity": "c1db7c5e5a231629b32d64b9a53139445b2ca640d828c26bf23e1c55f8c079b3" - } + "@std/async@0.224.2": { + "integrity": "4d277d6e165df43d5e061ba0ef3edfddb8e8d558f5b920e3e6b1d2614b44d074" }, - "npm": { - "@henrygd/queue@1.0.7": { - "integrity": "sha512-Jmt/iO6yDlz9UYGILkm/Qzi/ckkEiTNZcqDvt3QFLE4OThPeiCj6tKsynHFm/ppl8RumWXAx1dZPBPiRPaaGig==", - "dependencies": {} - }, - "@isaacs/fs-minipass@4.0.1": { - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "dependencies": { - "minipass": "minipass@7.1.2" - } - }, - "@supabase/auth-js@2.74.0": { - "integrity": "sha512-EJYDxYhBCOS40VJvfQ5zSjo8Ku7JbTICLTcmXt4xHMQZt4IumpRfHg11exXI9uZ6G7fhsQlNgbzDhFN4Ni9NnA==", - "dependencies": { - "@supabase/node-fetch": "@supabase/node-fetch@2.6.15" - } - }, - "@supabase/functions-js@2.74.0": { - "integrity": "sha512-VqWYa981t7xtIFVf7LRb9meklHckbH/tqwaML5P3LgvlaZHpoSPjMCNLcquuLYiJLxnh2rio7IxLh+VlvRvSWw==", - "dependencies": { - "@supabase/node-fetch": "@supabase/node-fetch@2.6.15" - } - }, - "@supabase/node-fetch@2.6.15": { - "integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==", - "dependencies": { - "whatwg-url": "whatwg-url@5.0.0" - } - }, - "@supabase/postgrest-js@2.74.0": { - "integrity": "sha512-9Ypa2eS0Ib/YQClE+BhDSjx7OKjYEF6LAGjTB8X4HucdboGEwR0LZKctNfw6V0PPIAVjjzZxIlNBXGv0ypIkHw==", - "dependencies": { - "@supabase/node-fetch": "@supabase/node-fetch@2.6.15" - } - }, - "@supabase/realtime-js@2.74.0": { - "integrity": "sha512-K5VqpA4/7RO1u1nyD5ICFKzWKu58bIDcPxHY0aFA7MyWkFd0pzi/XYXeoSsAifnD9p72gPIpgxVXCQZKJg1ktQ==", - "dependencies": { - "@supabase/node-fetch": "@supabase/node-fetch@2.6.15", - "@types/phoenix": "@types/phoenix@1.6.6", - "@types/ws": "@types/ws@8.18.1", - "ws": "ws@8.18.3" - } - }, - "@supabase/storage-js@2.74.0": { - "integrity": "sha512-o0cTQdMqHh4ERDLtjUp1/KGPbQoNwKRxUh6f8+KQyjC5DSmiw/r+jgFe/WHh067aW+WU8nA9Ytw9ag7OhzxEkQ==", - "dependencies": { - "@supabase/node-fetch": "@supabase/node-fetch@2.6.15" - } - }, - "@supabase/supabase-js@2.74.0": { - "integrity": "sha512-IEMM/V6gKdP+N/X31KDIczVzghDpiPWFGLNjS8Rus71KvV6y6ueLrrE/JGCHDrU+9pq5copF3iCa0YQh+9Lq9Q==", - "dependencies": { - "@supabase/auth-js": "@supabase/auth-js@2.74.0", - "@supabase/functions-js": "@supabase/functions-js@2.74.0", - "@supabase/node-fetch": "@supabase/node-fetch@2.6.15", - "@supabase/postgrest-js": "@supabase/postgrest-js@2.74.0", - "@supabase/realtime-js": "@supabase/realtime-js@2.74.0", - "@supabase/storage-js": "@supabase/storage-js@2.74.0" - } - }, - "@types/deno@2.3.0": { - "integrity": "sha512-/4SyefQpKjwNKGkq9qG3Ln7MazfbWKvydyVFBnXzP5OQA4u1paoFtaOe1iHKycIWHHkhYag0lPxyheThV1ijzw==", - "dependencies": {} - }, - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - }, - "@types/node@18.16.20": { - "integrity": "sha512-nL54VfDjThdP2UXJXZao5wp76CDiDw4zSRO8d4Tk7UgDqNKGKVEQB0/t3ti63NS+YNNkIQDvwEAF04BO+WYu7Q==", - "dependencies": {} - }, - "@types/phoenix@1.6.6": { - "integrity": "sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==", - "dependencies": {} - }, - "@types/ws@8.18.1": { - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "dependencies": { - "@types/node": "@types/node@18.16.19" - } - }, - "agent-base@7.1.4": { - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dependencies": {} - }, - "bin-links@5.0.0": { - "integrity": "sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==", - "dependencies": { - "cmd-shim": "cmd-shim@7.0.0", - "npm-normalize-package-bin": "npm-normalize-package-bin@4.0.0", - "proc-log": "proc-log@5.0.0", - "read-cmd-shim": "read-cmd-shim@5.0.0", - "write-file-atomic": "write-file-atomic@6.0.0" - } - }, - "chownr@3.0.0": { - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "dependencies": {} - }, - "cmd-shim@7.0.0": { - "integrity": "sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==", - "dependencies": {} - }, - "data-uri-to-buffer@4.0.1": { - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "dependencies": {} - }, - "debug@4.4.1": { - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dependencies": { - "ms": "ms@2.1.3" - } - }, - "fetch-blob@3.2.0": { - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dependencies": { - "node-domexception": "node-domexception@1.0.0", - "web-streams-polyfill": "web-streams-polyfill@3.3.3" - } - }, - "formdata-polyfill@4.0.10": { - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "fetch-blob@3.2.0" - } - }, - "https-proxy-agent@7.0.6": { - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dependencies": { - "agent-base": "agent-base@7.1.4", - "debug": "debug@4.4.1" - } - }, - "imurmurhash@0.1.4": { - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dependencies": {} - }, - "minipass@7.1.2": { - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dependencies": {} - }, - "minizlib@3.0.2": { - "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", - "dependencies": { - "minipass": "minipass@7.1.2" - } - }, - "mkdirp@3.0.1": { - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dependencies": {} - }, - "ms@2.1.3": { - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dependencies": {} - }, - "node-domexception@1.0.0": { - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dependencies": {} - }, - "node-fetch@3.3.2": { - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "data-uri-to-buffer@4.0.1", - "fetch-blob": "fetch-blob@3.2.0", - "formdata-polyfill": "formdata-polyfill@4.0.10" - } - }, - "npm-normalize-package-bin@4.0.0": { - "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", - "dependencies": {} - }, - "postgres@3.4.5": { - "integrity": "sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==", - "dependencies": {} - }, - "proc-log@5.0.0": { - "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", - "dependencies": {} - }, - "read-cmd-shim@5.0.0": { - "integrity": "sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==", - "dependencies": {} - }, - "signal-exit@4.1.0": { - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dependencies": {} - }, - "supabase@2.21.1": { - "integrity": "sha512-xef5mK2vrs/ApaHMOCeL/0rooq2M8xdV632/3VFY2gaoQqYiSGQlh1Yd/Yqa1TPUoPcsszuK6YsjkOdGs+e1iQ==", - "dependencies": { - "bin-links": "bin-links@5.0.0", - "https-proxy-agent": "https-proxy-agent@7.0.6", - "node-fetch": "node-fetch@3.3.2", - "tar": "tar@7.4.3" - } - }, - "tar@7.4.3": { - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", - "dependencies": { - "@isaacs/fs-minipass": "@isaacs/fs-minipass@4.0.1", - "chownr": "chownr@3.0.0", - "minipass": "minipass@7.1.2", - "minizlib": "minizlib@3.0.2", - "mkdirp": "mkdirp@3.0.1", - "yallist": "yallist@5.0.0" - } - }, - "tr46@0.0.3": { - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dependencies": {} - }, - "web-streams-polyfill@3.3.3": { - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "dependencies": {} - }, - "webidl-conversions@3.0.1": { - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dependencies": {} - }, - "whatwg-url@5.0.0": { - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "tr46@0.0.3", - "webidl-conversions": "webidl-conversions@3.0.1" - } - }, - "write-file-atomic@6.0.0": { - "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", - "dependencies": { - "imurmurhash": "imurmurhash@0.1.4", - "signal-exit": "signal-exit@4.1.0" - } - }, - "ws@8.18.3": { - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "dependencies": {} - }, - "yallist@5.0.0": { - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "dependencies": {} - } + "@std/crypto@1.0.5": { + "integrity": "0dcfbb319fe0bba1bd3af904ceb4f948cde1b92979ec1614528380ed308a3b40" + }, + "@std/fmt@0.224.0": { + "integrity": "e20e9a2312a8b5393272c26191c0a68eda8d2c4b08b046bad1673148f1d69851" + }, + "@std/fmt@1.0.3": { + "integrity": "97765c16aa32245ff4e2204ecf7d8562496a3cb8592340a80e7e554e0bb9149f" + }, + "@std/internal@0.224.0": { + "integrity": "afc50644f9cdf4495eeb80523a8f6d27226b4b36c45c7c195dfccad4b8509291", + "dependencies": [ + "jsr:@std/fmt@0.224" + ] + }, + "@std/io@0.225.0": { + "integrity": "c1db7c5e5a231629b32d64b9a53139445b2ca640d828c26bf23e1c55f8c079b3" + } + }, + "npm": { + "@supabase/auth-js@2.74.0": { + "integrity": "sha512-EJYDxYhBCOS40VJvfQ5zSjo8Ku7JbTICLTcmXt4xHMQZt4IumpRfHg11exXI9uZ6G7fhsQlNgbzDhFN4Ni9NnA==", + "dependencies": [ + "@supabase/node-fetch" + ] + }, + "@supabase/functions-js@2.74.0": { + "integrity": "sha512-VqWYa981t7xtIFVf7LRb9meklHckbH/tqwaML5P3LgvlaZHpoSPjMCNLcquuLYiJLxnh2rio7IxLh+VlvRvSWw==", + "dependencies": [ + "@supabase/node-fetch" + ] + }, + "@supabase/node-fetch@2.6.15": { + "integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==", + "dependencies": [ + "whatwg-url" + ] + }, + "@supabase/postgrest-js@2.74.0": { + "integrity": "sha512-9Ypa2eS0Ib/YQClE+BhDSjx7OKjYEF6LAGjTB8X4HucdboGEwR0LZKctNfw6V0PPIAVjjzZxIlNBXGv0ypIkHw==", + "dependencies": [ + "@supabase/node-fetch" + ] + }, + "@supabase/realtime-js@2.74.0": { + "integrity": "sha512-K5VqpA4/7RO1u1nyD5ICFKzWKu58bIDcPxHY0aFA7MyWkFd0pzi/XYXeoSsAifnD9p72gPIpgxVXCQZKJg1ktQ==", + "dependencies": [ + "@supabase/node-fetch", + "@types/phoenix", + "@types/ws", + "ws" + ] + }, + "@supabase/storage-js@2.74.0": { + "integrity": "sha512-o0cTQdMqHh4ERDLtjUp1/KGPbQoNwKRxUh6f8+KQyjC5DSmiw/r+jgFe/WHh067aW+WU8nA9Ytw9ag7OhzxEkQ==", + "dependencies": [ + "@supabase/node-fetch" + ] + }, + "@supabase/supabase-js@2.74.0": { + "integrity": "sha512-IEMM/V6gKdP+N/X31KDIczVzghDpiPWFGLNjS8Rus71KvV6y6ueLrrE/JGCHDrU+9pq5copF3iCa0YQh+9Lq9Q==", + "dependencies": [ + "@supabase/auth-js", + "@supabase/functions-js", + "@supabase/node-fetch", + "@supabase/postgrest-js", + "@supabase/realtime-js", + "@supabase/storage-js" + ] + }, + "@types/node@22.5.4": { + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "dependencies": [ + "undici-types" + ] + }, + "@types/phoenix@1.6.6": { + "integrity": "sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==" + }, + "@types/ws@8.18.1": { + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dependencies": [ + "@types/node" + ] + }, + "postgres@3.4.5": { + "integrity": "sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==" + }, + "tr46@0.0.3": { + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "undici-types@6.19.8": { + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "webidl-conversions@3.0.1": { + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url@5.0.0": { + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": [ + "tr46", + "webidl-conversions" + ] + }, + "ws@8.18.3": { + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==" } }, "remote": { @@ -591,23 +429,13 @@ "workspace": { "dependencies": [ "jsr:@henrygd/queue@^1.0.7", - "jsr:@std/assert@^0.224.0", - "jsr:@std/async@^0.224.0", - "jsr:@std/log@^0.224.13", - "jsr:@std/testing@^0.224.0", + "jsr:@std/assert@0.224", + "jsr:@std/async@0.224", + "jsr:@std/log@~0.224.13", + "jsr:@std/testing@0.224", "npm:@supabase/supabase-js@^2.39.0", "npm:@teidesu/deno-types@1.42.4", "npm:postgres@3.4.5" - ], - "packageJson": { - "dependencies": [ - "npm:@henrygd/queue@^1.0.7", - "npm:@supabase/supabase-js@^2.47.10", - "npm:@types/deno@^2.3.0", - "npm:@types/node@~18.16.20", - "npm:postgres@3.4.5", - "npm:supabase@2.21.1" - ] - } + ] } } diff --git a/pkgs/edge-worker/deno.test.json b/pkgs/edge-worker/deno.test.json index f262f95f6..ded19f31a 100644 --- a/pkgs/edge-worker/deno.test.json +++ b/pkgs/edge-worker/deno.test.json @@ -23,7 +23,7 @@ "lint": { "exclude": ["supabase/functions/", "dist/", "node_modules/"], "rules": { - "exclude": ["no-slow-types"] + "exclude": ["no-slow-types", "no-sloppy-imports"] } }, "publish": { diff --git a/pkgs/edge-worker/tests/unit/FlowWorkerLifecycle.deprecation.test.ts b/pkgs/edge-worker/tests/unit/FlowWorkerLifecycle.deprecation.test.ts index ddf64b548..0382aaf23 100644 --- a/pkgs/edge-worker/tests/unit/FlowWorkerLifecycle.deprecation.test.ts +++ b/pkgs/edge-worker/tests/unit/FlowWorkerLifecycle.deprecation.test.ts @@ -24,7 +24,7 @@ class MockQueries extends Queries { super(null as unknown as postgres.Sql); } - onWorkerStarted(params: { workerId: string; edgeFunctionName: string; queueName: string }): Promise { + override onWorkerStarted(params: { workerId: string; edgeFunctionName: string; queueName: string }): Promise { return Promise.resolve({ worker_id: params.workerId, queue_name: params.queueName, @@ -35,12 +35,12 @@ class MockQueries extends Queries { }); } - sendHeartbeat(_workerRow: WorkerRow): Promise<{ is_deprecated: boolean }> { + override sendHeartbeat(_workerRow: WorkerRow): Promise<{ is_deprecated: boolean }> { this.sendHeartbeatCallCount++; return Promise.resolve(this.nextResult); } - onWorkerStopped(workerRow: WorkerRow): Promise { + override onWorkerStopped(workerRow: WorkerRow): Promise { this.workerStopped = true; return Promise.resolve(workerRow); } diff --git a/pkgs/edge-worker/tests/unit/WorkerLifecycle.deprecation.test.ts b/pkgs/edge-worker/tests/unit/WorkerLifecycle.deprecation.test.ts index 95e5e0f3c..4c9d2b71c 100644 --- a/pkgs/edge-worker/tests/unit/WorkerLifecycle.deprecation.test.ts +++ b/pkgs/edge-worker/tests/unit/WorkerLifecycle.deprecation.test.ts @@ -24,7 +24,7 @@ class MockQueries extends Queries { super(null as unknown as postgres.Sql); } - onWorkerStarted(params: { + override onWorkerStarted(params: { workerId: string; edgeFunctionName: string; queueName: string; @@ -39,14 +39,14 @@ class MockQueries extends Queries { }); } - sendHeartbeat( + override sendHeartbeat( _workerRow: WorkerRow ): Promise<{ is_deprecated: boolean }> { this.sendHeartbeatCallCount++; return Promise.resolve(this.nextResult); } - onWorkerStopped(workerRow: WorkerRow): Promise { + override onWorkerStopped(workerRow: WorkerRow): Promise { this.workerStopped = true; return Promise.resolve(workerRow); } @@ -59,7 +59,7 @@ class MockQueue extends Queue { super(null as unknown as postgres.Sql, queueName, { debug: () => {}, info: () => {}, error: () => {}, warn: () => {} } as Logger); } - safeCreate(): Promise> { + override safeCreate(): Promise> { // No-op for testing - return a mock RowList const mockRowList = [] as postgres.Row[]; Object.assign(mockRowList, { diff --git a/pkgs/website/src/content/docs/news/pgflow-0-8-0-modernizing-dependencies-pgmq-1-5-0-and-postgresql-17.mdx b/pkgs/website/src/content/docs/news/pgflow-0-8-0-modernizing-dependencies-pgmq-1-5-0-and-postgresql-17.mdx index 32effce80..f70bcd49f 100644 --- a/pkgs/website/src/content/docs/news/pgflow-0-8-0-modernizing-dependencies-pgmq-1-5-0-and-postgresql-17.mdx +++ b/pkgs/website/src/content/docs/news/pgflow-0-8-0-modernizing-dependencies-pgmq-1-5-0-and-postgresql-17.mdx @@ -19,9 +19,9 @@ import { Aside } from "@astrojs/starlight/components"; pgflow 0.8.0 requires pgmq 1.5.0 or higher and PostgreSQL 17. This release removes the pgmq compatibility layer and prepares the foundation for upcoming flow auto-compilation features. - +:::danger[Breaking Change] + This version **will NOT work with pgmq 1.4.x or earlier**. The migration includes a compatibility check that will abort with a clear error message if pgmq 1.5.0 is not detected. +::: ## What's Changing diff --git a/scripts/snapshot-release.sh b/scripts/snapshot-release.sh index 354ad4262..b82f0a6b9 100755 --- a/scripts/snapshot-release.sh +++ b/scripts/snapshot-release.sh @@ -96,7 +96,7 @@ cleanup_snapshot_files() { git restore --source=HEAD --worktree --staged \ pnpm-lock.yaml 2>/dev/null || true git restore --source=HEAD --worktree --staged \ - .changeset/pre.json 2>/dev/null || true + .changeset/ 2>/dev/null || true git clean -fd .changeset 2>/dev/null || true echo -e "${GREEN}✓ Cleanup complete${NC}" } @@ -267,6 +267,7 @@ echo "" # Track publish success NPM_SUCCESS=false JSR_SUCCESS=true # Default true (only set false if JSR package exists and fails) +JSR_PUBLISHED_VERSION="" # Track JSR version if published # Publish to npm echo -e "${BOLD}Publishing to npm...${NC}" @@ -281,6 +282,8 @@ fi # Publish to JSR if [[ -f pkgs/edge-worker/jsr.json ]]; then + # Capture the snapshot version before publishing + JSR_PUBLISHED_VERSION=$(jq -r '.version' pkgs/edge-worker/jsr.json) echo "" echo -e "${BOLD}Publishing to JSR...${NC}" if ( cd pkgs/edge-worker && pnpm jsr publish --allow-slow-types --allow-dirty ) ; then @@ -288,6 +291,7 @@ if [[ -f pkgs/edge-worker/jsr.json ]]; then else echo -e "${RED}✗ JSR publish failed${NC}" JSR_SUCCESS=false + JSR_PUBLISHED_VERSION="" # Clear version since publish failed fi fi @@ -302,7 +306,7 @@ else echo "" echo -e "${RED}✗ Publishing failed - keeping files for debugging${NC}" echo -e "${YELLOW}Run the following to clean up manually:${NC}" - echo -e "${BLUE}git restore --source=HEAD --worktree --staged \"**/package.json\" \"**/jsr.json\" \"**/CHANGELOG.md\" pnpm-lock.yaml .changeset/pre.json${NC}" + echo -e "${BLUE}git restore --source=HEAD --worktree --staged \"**/package.json\" \"**/jsr.json\" \"**/CHANGELOG.md\" pnpm-lock.yaml .changeset/${NC}" echo -e "${BLUE}git clean -fd .changeset${NC}" exit 1 fi @@ -323,12 +327,11 @@ for PKG in "${NPM_PKGS[@]}"; do echo -e "${BLUE}npm install $PKG${NC}" done -# JSR package -if [[ -f pkgs/edge-worker/jsr.json ]]; then - JSR_VERSION=$(jq -r '.version' pkgs/edge-worker/jsr.json) +# JSR package (only show if successfully published) +if [[ -n "$JSR_PUBLISHED_VERSION" ]]; then echo "" echo -e "${BOLD}For Deno/Supabase Edge Functions:${NC}" - echo -e "${BLUE}import { EdgeWorker } from \"jsr:@pgflow/edge-worker@$JSR_VERSION\"${NC}" + echo -e "${BLUE}import { EdgeWorker } from \"jsr:@pgflow/edge-worker@$JSR_PUBLISHED_VERSION\"${NC}" fi # Deno import map @@ -349,10 +352,9 @@ for PKG in "${NPM_PKGS[@]}"; do fi done -# Show edge-worker (JSR) -if [[ -f pkgs/edge-worker/jsr.json ]]; then - JSR_VERSION=$(jq -r '.version' pkgs/edge-worker/jsr.json) - echo -e " \"@pgflow/edge-worker\": \"jsr:@pgflow/edge-worker@$JSR_VERSION\"," +# Show edge-worker (JSR) - only if successfully published +if [[ -n "$JSR_PUBLISHED_VERSION" ]]; then + echo -e " \"@pgflow/edge-worker\": \"jsr:@pgflow/edge-worker@$JSR_PUBLISHED_VERSION\"," fi # Show dsl and dsl/supabase (npm)