@specific.dev/cli 0.1.136 → 0.1.137
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.
- package/dist/admin/404/index.html +1 -1
- package/dist/admin/404.html +1 -1
- package/dist/admin/__next.!KGRlZmF1bHQp.__PAGE__.txt +1 -1
- package/dist/admin/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/__next._full.txt +1 -1
- package/dist/admin/__next._head.txt +1 -1
- package/dist/admin/__next._index.txt +1 -1
- package/dist/admin/__next._tree.txt +1 -1
- package/dist/admin/_not-found/__next._full.txt +1 -1
- package/dist/admin/_not-found/__next._head.txt +1 -1
- package/dist/admin/_not-found/__next._index.txt +1 -1
- package/dist/admin/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/admin/_not-found/__next._not-found.txt +1 -1
- package/dist/admin/_not-found/__next._tree.txt +1 -1
- package/dist/admin/_not-found/index.html +1 -1
- package/dist/admin/_not-found/index.txt +1 -1
- package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.__PAGE__.txt +1 -1
- package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.txt +1 -1
- package/dist/admin/databases/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/databases/__next._full.txt +1 -1
- package/dist/admin/databases/__next._head.txt +1 -1
- package/dist/admin/databases/__next._index.txt +1 -1
- package/dist/admin/databases/__next._tree.txt +1 -1
- package/dist/admin/databases/index.html +1 -1
- package/dist/admin/databases/index.txt +1 -1
- package/dist/admin/fullscreen/__next._full.txt +1 -1
- package/dist/admin/fullscreen/__next._head.txt +1 -1
- package/dist/admin/fullscreen/__next._index.txt +1 -1
- package/dist/admin/fullscreen/__next._tree.txt +1 -1
- package/dist/admin/fullscreen/__next.fullscreen.__PAGE__.txt +1 -1
- package/dist/admin/fullscreen/__next.fullscreen.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._full.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._head.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._index.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._tree.txt +1 -1
- package/dist/admin/fullscreen/databases/__next.fullscreen.databases.__PAGE__.txt +1 -1
- package/dist/admin/fullscreen/databases/__next.fullscreen.databases.txt +1 -1
- package/dist/admin/fullscreen/databases/__next.fullscreen.txt +1 -1
- package/dist/admin/fullscreen/databases/index.html +1 -1
- package/dist/admin/fullscreen/databases/index.txt +1 -1
- package/dist/admin/fullscreen/index.html +1 -1
- package/dist/admin/fullscreen/index.txt +1 -1
- package/dist/admin/index.html +1 -1
- package/dist/admin/index.txt +1 -1
- package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.__PAGE__.txt +1 -1
- package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.txt +1 -1
- package/dist/admin/mail/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/mail/__next._full.txt +1 -1
- package/dist/admin/mail/__next._head.txt +1 -1
- package/dist/admin/mail/__next._index.txt +1 -1
- package/dist/admin/mail/__next._tree.txt +1 -1
- package/dist/admin/mail/index.html +1 -1
- package/dist/admin/mail/index.txt +1 -1
- package/dist/admin/workflows/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.__PAGE__.txt +1 -1
- package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.txt +1 -1
- package/dist/admin/workflows/__next._full.txt +1 -1
- package/dist/admin/workflows/__next._head.txt +1 -1
- package/dist/admin/workflows/__next._index.txt +1 -1
- package/dist/admin/workflows/__next._tree.txt +1 -1
- package/dist/admin/workflows/index.html +1 -1
- package/dist/admin/workflows/index.txt +1 -1
- package/dist/cli.js +7 -4
- package/dist/docs/migrations/supabase.md +10 -2
- package/package.json +1 -1
- /package/dist/admin/_next/static/{6ZZzob2EI7lj4cdEYlqgi → 0eRIjnMtgmLVz8sGgvDtH}/_buildManifest.js +0 -0
- /package/dist/admin/_next/static/{6ZZzob2EI7lj4cdEYlqgi → 0eRIjnMtgmLVz8sGgvDtH}/_clientMiddlewareManifest.json +0 -0
- /package/dist/admin/_next/static/{6ZZzob2EI7lj4cdEYlqgi → 0eRIjnMtgmLVz8sGgvDtH}/_ssgManifest.js +0 -0
package/dist/cli.js
CHANGED
|
@@ -369718,7 +369718,10 @@ async function saveLocalConfig(name, value) {
|
|
|
369718
369718
|
function appendSearchPathToUrl(baseUrl, searchPath) {
|
|
369719
369719
|
const url = new URL(baseUrl);
|
|
369720
369720
|
url.searchParams.set("options", `-c search_path=${searchPath},public`);
|
|
369721
|
-
|
|
369721
|
+
const str = url.toString();
|
|
369722
|
+
const queryStart = str.indexOf("?");
|
|
369723
|
+
if (queryStart === -1) return str;
|
|
369724
|
+
return str.slice(0, queryStart) + str.slice(queryStart).replace(/\+/g, "%20");
|
|
369722
369725
|
}
|
|
369723
369726
|
var MissingSecretError = class extends Error {
|
|
369724
369727
|
constructor(secretName) {
|
|
@@ -373718,7 +373721,7 @@ function trackEvent(event, properties) {
|
|
|
373718
373721
|
event,
|
|
373719
373722
|
properties: {
|
|
373720
373723
|
...properties,
|
|
373721
|
-
cli_version: "0.1.
|
|
373724
|
+
cli_version: "0.1.137",
|
|
373722
373725
|
platform: process.platform,
|
|
373723
373726
|
node_version: process.version,
|
|
373724
373727
|
project_id: getProjectId()
|
|
@@ -377824,7 +377827,7 @@ function compareVersions(a, b) {
|
|
|
377824
377827
|
return 0;
|
|
377825
377828
|
}
|
|
377826
377829
|
async function checkForUpdate() {
|
|
377827
|
-
const currentVersion = "0.1.
|
|
377830
|
+
const currentVersion = "0.1.137";
|
|
377828
377831
|
const response = await fetch(`${BINARIES_BASE_URL}/latest?t=${Date.now()}`);
|
|
377829
377832
|
if (!response.ok) {
|
|
377830
377833
|
throw new Error(`Failed to check for updates: HTTP ${response.status}`);
|
|
@@ -378339,7 +378342,7 @@ function friendlyErrorMessage(raw) {
|
|
|
378339
378342
|
var program = new Command();
|
|
378340
378343
|
var env = "production";
|
|
378341
378344
|
var envLabel = env !== "production" ? `[${env.toUpperCase()}] ` : "";
|
|
378342
|
-
program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.
|
|
378345
|
+
program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.137").enablePositionalOptions();
|
|
378343
378346
|
program.command("init").description("Initialize project for use with a coding agent").option("--agent <name...>", "Agents to configure (cursor, claude, codex, other)").addHelpText("after", `
|
|
378344
378347
|
Examples:
|
|
378345
378348
|
$ specific init
|
|
@@ -45,11 +45,19 @@ Supabase Realtime can be replace with the sync engine available in Specific. See
|
|
|
45
45
|
|
|
46
46
|
## Queues
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
Replace Supabase Queues with a [Temporal](/temporal) workflow engine in Specific. Define a `temporal` block in `specific.hcl` and run a worker service that processes queued work as Temporal workflows or signals. Temporal gives you durable execution, retries, and visibility into queued items via the Temporal Web UI in the admin sidebar.
|
|
49
49
|
|
|
50
50
|
## Cron
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
Replace Supabase Cron (pg_cron) with [Temporal Schedules](https://docs.temporal.io/schedules) running on a [Temporal](/temporal) workflow engine in Specific. Define a `temporal` block in `specific.hcl` and have your worker register schedules that trigger workflows at the desired cadence.
|
|
53
|
+
|
|
54
|
+
## Vector embeddings (pgvector)
|
|
55
|
+
|
|
56
|
+
If the Supabase project uses `pgvector` for AI embeddings or semantic search, the same extension is available on the Neon-backed [Postgres](/postgres) in Specific. Enable it in a migration with `CREATE EXTENSION IF NOT EXISTS vector;` and the existing schema and queries transfer over unchanged.
|
|
57
|
+
|
|
58
|
+
## Database functions and triggers
|
|
59
|
+
|
|
60
|
+
Supabase projects often define SQL functions and triggers, sometimes invoked from the frontend via PostgREST RPC. The functions and triggers themselves transfer directly since they are standard Postgres. However, calls made from the frontend through PostgREST RPC must be re-implemented as explicit endpoints on the new backend service — the backend then invokes the function over the normal Postgres connection.
|
|
53
61
|
|
|
54
62
|
## Client-side Changes
|
|
55
63
|
|
package/package.json
CHANGED
/package/dist/admin/_next/static/{6ZZzob2EI7lj4cdEYlqgi → 0eRIjnMtgmLVz8sGgvDtH}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/admin/_next/static/{6ZZzob2EI7lj4cdEYlqgi → 0eRIjnMtgmLVz8sGgvDtH}/_ssgManifest.js
RENAMED
|
File without changes
|