@coreframe/scripts 0.1.3 → 0.1.5
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/_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/usingCtx.js +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/coreframe.d.ts +16 -0
- package/dist/coreframe.js +1 -1
- package/dist/db/apply-seed.d.ts +8 -0
- package/dist/db/apply-seed.js +1 -0
- package/dist/db/config.d.ts +2 -1
- package/dist/db/config.js +1 -1
- package/dist/db/drizzle-kit.d.ts +12 -1
- package/dist/db/drizzle-kit.js +1 -1
- package/dist/db/ensure.d.ts +8 -6
- package/dist/db/ensure.js +1 -1
- package/dist/db/local-postgres.d.ts +40 -1
- package/dist/db/local-postgres.js +1 -1
- package/dist/db/migrate.d.ts +10 -1
- package/dist/db/migrate.js +1 -1
- package/dist/db/project.d.ts +2 -2
- package/dist/db/project.js +1 -1
- package/dist/db/reset.d.ts +10 -1
- package/dist/db/reset.js +1 -1
- package/dist/db/schema-check.d.ts +26 -0
- package/dist/db/schema-check.js +2 -0
- package/dist/db/seed.d.ts +28 -2
- package/dist/db/seed.js +1 -1
- package/dist/db/setup.d.ts +9 -1
- package/dist/db/setup.js +1 -1
- package/dist/dev.d.ts +4 -7
- package/dist/dev.js +1 -1
- package/dist/upgrade/check-skill-current.js +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(){var e=typeof SuppressedError==`function`?SuppressedError:function(e,t){var n=Error();return n.name=`SuppressedError`,n.error=e,n.suppressed=t,n},t={},n=[];function r(e,t){if(t!=null){if(Object(t)!==t)throw TypeError(`using declarations can only be used with objects, functions, null, or undefined.`);if(e)var r=t[Symbol.asyncDispose||Symbol.for(`Symbol.asyncDispose`)];if(r===void 0&&(r=t[Symbol.dispose||Symbol.for(`Symbol.dispose`)],e))var i=r;if(typeof r!=`function`)throw TypeError(`Object is not disposable.`);i&&(r=function(){try{i.call(t)}catch(e){return Promise.reject(e)}}),n.push({v:t,d:r,a:e})}else e&&n.push({d:t,a:e});return t}return{e:t,u:r.bind(null,!1),a:r.bind(null,!0),d:function(){var r,i=this.e,a=0;function o(){for(;r=n.pop();)try{if(!r.a&&a===1)return a=0,n.push(r),Promise.resolve().then(o);if(r.d){var e=r.d.call(r.v);if(r.a)return a|=2,Promise.resolve(e).then(o,s)}else a|=1}catch(e){return s(e)}if(a===1)return i===t?Promise.resolve():Promise.reject(i);if(i!==t)throw i}function s(n){return i=i===t?n:new e(n,i),o()}return o()}}}export{e as default};
|
package/dist/config.d.ts
CHANGED
package/dist/coreframe.d.ts
CHANGED
|
@@ -79,6 +79,11 @@ declare const coreframeCli: Partial<import("cmd-ts/dist/cjs/argparser").Register
|
|
|
79
79
|
} | {
|
|
80
80
|
command: "seed";
|
|
81
81
|
args: {};
|
|
82
|
+
} | {
|
|
83
|
+
command: "schema-check";
|
|
84
|
+
args: {
|
|
85
|
+
seed: boolean;
|
|
86
|
+
};
|
|
82
87
|
} | {
|
|
83
88
|
command: "setup";
|
|
84
89
|
args: {};
|
|
@@ -163,6 +168,11 @@ declare const coreframeCli: Partial<import("cmd-ts/dist/cjs/argparser").Register
|
|
|
163
168
|
} | {
|
|
164
169
|
command: "seed";
|
|
165
170
|
args: {};
|
|
171
|
+
} | {
|
|
172
|
+
command: "schema-check";
|
|
173
|
+
args: {
|
|
174
|
+
seed: boolean;
|
|
175
|
+
};
|
|
166
176
|
} | {
|
|
167
177
|
command: "setup";
|
|
168
178
|
args: {};
|
|
@@ -217,6 +227,9 @@ declare const coreframeCli: Partial<import("cmd-ts/dist/cjs/argparser").Register
|
|
|
217
227
|
} | {
|
|
218
228
|
command: "seed";
|
|
219
229
|
value: Promise<void>;
|
|
230
|
+
} | {
|
|
231
|
+
command: "schema-check";
|
|
232
|
+
value: Promise<void>;
|
|
220
233
|
} | {
|
|
221
234
|
command: "setup";
|
|
222
235
|
value: Promise<void>;
|
|
@@ -272,6 +285,9 @@ declare const coreframeCli: Partial<import("cmd-ts/dist/cjs/argparser").Register
|
|
|
272
285
|
} | {
|
|
273
286
|
command: "seed";
|
|
274
287
|
value: Promise<void>;
|
|
288
|
+
} | {
|
|
289
|
+
command: "schema-check";
|
|
290
|
+
value: Promise<void>;
|
|
275
291
|
} | {
|
|
276
292
|
command: "setup";
|
|
277
293
|
value: Promise<void>;
|
package/dist/coreframe.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{runDrizzleKitCommand as e}from"./db/drizzle-kit.js";import{seedLocalDb as t}from"./db/seed.js";import{migrateLocalDb as n}from"./db/migrate.js";import{resetLocalDb as r}from"./db/reset.js";import{setupLocalDb as i}from"./db/setup.js";import{ensureLocalDb as a}from"./db/ensure.js";import{migrateHeldMigrations as o}from"./db/migrate-held.js";import{
|
|
2
|
+
import{runDrizzleKitCommand as e}from"./db/drizzle-kit.js";import{seedLocalDb as t}from"./db/seed.js";import{migrateLocalDb as n}from"./db/migrate.js";import{resetLocalDb as r}from"./db/reset.js";import{setupLocalDb as i}from"./db/setup.js";import{ensureLocalDb as a}from"./db/ensure.js";import{migrateHeldMigrations as o}from"./db/migrate-held.js";import{checkSchemaPush as s}from"./db/schema-check.js";import{tauriReleasePlatforms as c}from"./deploy/config.js";import{deployProject as l}from"./deploy.js";import{checkDeployMigrations as u}from"./deploy/check-migrations.js";import{runDevServer as d}from"./dev.js";import{typecheckProject as f}from"./typecheck.js";import{checkUpgradeSkillCurrent as p}from"./upgrade/check-skill-current.js";import{ensureTemplateRemote as m}from"./upgrade/ensure-template-remote.js";import{fastForwardTemplateFiles as h}from"./upgrade/fast-forward-template-files.js";import{array as g,binary as _,command as v,flag as y,multioption as b,oneOf as x,option as S,optional as C,positional as w,rest as T,run as E,string as D,subcommands as O}from"cmd-ts";const k=O({name:`coreframe`,cmds:{deploy:v({name:`deploy`,args:{runMigrations:y({long:`run-migrations`,description:`Run pending deploy-safe database migrations before deploying.`,defaultValue:()=>!1}),skipMigrations:y({long:`skip-migrations`,description:`Deploy without running pending deploy-safe database migrations.`,defaultValue:()=>!1}),skipPostDeployChecks:y({long:`skip-post-deploy-checks`,description:`Skip post-deploy checks after Cloudflare deployment.`,defaultValue:()=>!1}),tauriLocalPlatforms:b({long:`tauri-local-platform`,type:g(x(c)),description:`Build one Tauri release platform locally. Repeat for multiple platforms.`,defaultValue:()=>[]}),tauriWorkflowName:S({long:`tauri-workflow-name`,type:C(D),description:`GitHub Actions workflow file or name for remote Tauri release builds.`}),tauriWorkflowPlatforms:b({long:`tauri-workflow-platform`,type:g(x(c)),description:`Build one Tauri release platform with GitHub Actions. Repeat for multiple platforms.`,defaultValue:()=>[]}),tauriWorkflowRef:S({long:`tauri-workflow-ref`,type:C(D),description:`Git ref used when dispatching remote Tauri release builds.`}),yes:y({long:`yes`,short:`y`,description:`Approve noninteractive deploy prompts.`,defaultValue:()=>!1})},handler:({runMigrations:e,skipMigrations:t,skipPostDeployChecks:n,tauriLocalPlatforms:r,tauriWorkflowName:i,tauriWorkflowPlatforms:a,tauriWorkflowRef:o,yes:s})=>l([...e?[`--run-migrations`]:[],...t?[`--skip-migrations`]:[],...n?[`--skip-post-deploy-checks`]:[],...r.flatMap(e=>[`--tauri-local-platform`,e]),...i?[`--tauri-workflow-name`,i]:[],...a.flatMap(e=>[`--tauri-workflow-platform`,e]),...o?[`--tauri-workflow-ref`,o]:[],...s?[`--yes`]:[]])}),typecheck:v({name:`typecheck`,args:{},handler:f}),dev:v({name:`dev`,args:{platform:w({type:C(x([`web`,`desktop`,`ios`,`android`])),displayName:`platform`,description:`Development target platform. Defaults to web.`})},handler:({platform:e})=>d({platform:e??`web`})}),upgrade:O({name:`upgrade`,cmds:{"ensure-template-remote":v({name:`ensure-template-remote`,args:{remote:S({long:`remote`,type:D,defaultValue:()=>`template`,description:`Remote name to ensure.`}),noFetch:y({long:`no-fetch`,description:`Do not fetch the remote after ensuring it exists.`,defaultValue:()=>!1})},handler:({noFetch:e,remote:t})=>m({fetch:!e,remote:t})}),"check-skill-current":v({name:`check-skill-current`,args:{target:S({long:`target`,type:D,description:`Target Coreframe template git ref.`}),apply:y({long:`apply`,description:`Replace the local upgrade skill with the target version when it differs.`,defaultValue:()=>!1})},handler:({apply:e,target:t})=>{process.exitCode=p({apply:e,target:t})}}),"fast-forward-template-files":v({name:`fast-forward-template-files`,args:{target:S({long:`target`,type:D,description:`Target Coreframe template git ref.`}),base:S({long:`base`,type:C(D),description:`Previous Coreframe template git ref. Defaults to package.json engines.coreframe.`}),apply:y({long:`apply`,description:`Write clean fast-forwards to the worktree.`,defaultValue:()=>!1})},handler:({apply:e,base:t,target:n})=>h({apply:e,base:t,target:n})})}}),db:O({name:`db`,cmds:{ensure:v({name:`ensure`,args:{},handler:a}),generate:v({name:`generate`,args:{args:T({displayName:`drizzle-kit args`,description:`Additional arguments passed to drizzle-kit generate.`})},handler:({args:t})=>e(`generate`,t)}),migrate:v({name:`migrate`,args:{args:T({displayName:`drizzle-kit args`,description:`Additional arguments passed to drizzle-kit migrate.`})},handler:({args:t})=>e(`migrate`,t)}),"migrate-held":v({name:`migrate-held`,args:{confirm:S({long:`confirm`,type:C(x([`run-held-migrations`])),description:`Required confirmation value for held migrations.`})},handler:({confirm:e})=>o({argv:e?[`--confirm=${e}`]:[]})}),"migrate-local":v({name:`migrate-local`,args:{},handler:n}),"migrations-check":v({name:`migrations-check`,args:{},handler:u}),reset:v({name:`reset`,args:{},handler:r}),seed:v({name:`seed`,args:{},handler:()=>t()}),"schema-check":v({name:`schema-check`,args:{seed:y({long:`seed`,description:`Run the configured project seed against the throwaway database.`,defaultValue:()=>!1})},handler:({seed:e})=>s({seed:e})}),setup:v({name:`setup`,args:{},handler:()=>i()}),studio:v({name:`studio`,args:{args:T({displayName:`drizzle-kit args`,description:`Additional arguments passed to drizzle-kit studio.`})},handler:({args:t})=>e(`studio`,t)})}})}});import.meta.main&&E(_(k),process.argv);export{k as coreframeCli};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region db/apply-seed.d.ts
|
|
2
|
+
type SeedQuery = object;
|
|
3
|
+
type SeedDatabase = {
|
|
4
|
+
transaction<T>(transaction: (tx: any) => Promise<T>): Promise<T>;
|
|
5
|
+
};
|
|
6
|
+
declare function applySeed(db: SeedDatabase, seed: readonly SeedQuery[]): Promise<void>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { SeedDatabase, SeedQuery, applySeed };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
async function e(e,t){t.length!==0&&await e.transaction(async e=>{let n=e;for(let e of t)await n.execute(e.getSQL())})}export{e as applySeed};
|
package/dist/db/config.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ declare const HELD_MIGRATIONS_FOLDER = "drizzle-hold";
|
|
|
4
4
|
declare const NOW: Date;
|
|
5
5
|
declare const SEED_IDS: {
|
|
6
6
|
readonly adminUser: "00000000-0000-4000-8000-000000000001";
|
|
7
|
+
readonly adminCredentialAccount: "00000000-0000-4000-8000-000000000101";
|
|
7
8
|
readonly viewerUser: "00000000-0000-4000-8000-000000000002";
|
|
8
9
|
readonly inactiveUser: "00000000-0000-4000-8000-000000000003";
|
|
9
10
|
readonly unicodeUser: "00000000-0000-4000-8000-000000000004";
|
|
@@ -16,7 +17,7 @@ declare const SEED_EMAILS: {
|
|
|
16
17
|
readonly unicodeUser: "unicode@example.com";
|
|
17
18
|
readonly longNameUser: "long-name@example.com";
|
|
18
19
|
};
|
|
19
|
-
type SeedProfile = "
|
|
20
|
+
type SeedProfile = "default" | "large";
|
|
20
21
|
declare function getSeedProfile(argv?: string[]): SeedProfile;
|
|
21
22
|
declare function generatedUserId(index: number): string;
|
|
22
23
|
//#endregion
|
package/dist/db/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=`drizzle`,t=`drizzle-hold`,n=new Date(`2026-01-15T12:00:00.000Z`),r={adminUser:`00000000-0000-4000-8000-000000000001`,viewerUser:`00000000-0000-4000-8000-000000000002`,inactiveUser:`00000000-0000-4000-8000-000000000003`,unicodeUser:`00000000-0000-4000-8000-000000000004`,longNameUser:`00000000-0000-4000-8000-000000000005`},i={adminUser:`admin@example.com`,viewerUser:`viewer@example.com`,inactiveUser:`inactive@example.com`,unicodeUser:`unicode@example.com`,longNameUser:`long-name@example.com`};function a(e=process.argv.slice(2)){if(e.includes(`--large`))return`large`;let t=e.find(e=>e.startsWith(`--profile=`))?.slice(10)??`
|
|
1
|
+
const e=`drizzle`,t=`drizzle-hold`,n=new Date(`2026-01-15T12:00:00.000Z`),r={adminUser:`00000000-0000-4000-8000-000000000001`,adminCredentialAccount:`00000000-0000-4000-8000-000000000101`,viewerUser:`00000000-0000-4000-8000-000000000002`,inactiveUser:`00000000-0000-4000-8000-000000000003`,unicodeUser:`00000000-0000-4000-8000-000000000004`,longNameUser:`00000000-0000-4000-8000-000000000005`},i={adminUser:`admin@example.com`,viewerUser:`viewer@example.com`,inactiveUser:`inactive@example.com`,unicodeUser:`unicode@example.com`,longNameUser:`long-name@example.com`};function a(e=process.argv.slice(2)){if(e.includes(`--large`))return`large`;let t=e.find(e=>e.startsWith(`--profile=`))?.slice(10)??`default`;if(t==="default"||t===`large`)return t;throw Error(`Unknown seed profile "${t}". Expected default or large.`)}function o(e){return`00000000-0000-4000-8000-${String(1e3+e).padStart(12,`0`)}`}export{t as HELD_MIGRATIONS_FOLDER,e as MIGRATIONS_FOLDER,n as NOW,i as SEED_EMAILS,r as SEED_IDS,o as generatedUserId,a as getSeedProfile};
|
package/dist/db/drizzle-kit.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
|
+
import { startProjectPostgres } from "./local-postgres.js";
|
|
2
|
+
|
|
1
3
|
//#region db/drizzle-kit.d.ts
|
|
2
4
|
type Spawn = (file: string, args: readonly string[], options: {
|
|
3
5
|
env: NodeJS.ProcessEnv;
|
|
4
6
|
stdio: "inherit";
|
|
5
7
|
}) => PromiseLike<unknown>;
|
|
6
8
|
type DrizzleKitCommand = "generate" | "migrate" | "studio";
|
|
7
|
-
|
|
9
|
+
type RunDrizzleKitCommandOptions = {
|
|
10
|
+
env?: NodeJS.ProcessEnv;
|
|
11
|
+
spawn?: Spawn;
|
|
12
|
+
startProjectPostgres?: typeof startProjectPostgres;
|
|
13
|
+
};
|
|
14
|
+
declare function runDrizzleKitCommand(command: DrizzleKitCommand, args?: string[], {
|
|
15
|
+
env,
|
|
16
|
+
spawn,
|
|
17
|
+
startProjectPostgres
|
|
18
|
+
}?: RunDrizzleKitCommandOptions): Promise<void>;
|
|
8
19
|
//#endregion
|
|
9
20
|
export { runDrizzleKitCommand };
|
package/dist/db/drizzle-kit.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import e from"node:path";import
|
|
2
|
+
import{startProjectPostgres as e}from"./local-postgres.js";import t from"../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/usingCtx.js";import n from"node:path";import r from"node:process";import i from"nano-spawn";const a=n.resolve(`node_modules`,`.bin`),o=r.platform===`win32`?`drizzle-kit.cmd`:`drizzle-kit`,s={startProjectPostgres:e};async function c(e,c=[],{env:l=r.env,spawn:u=i,startProjectPostgres:d=s.startProjectPostgres}={}){try{var f=t();let r=f.a(await d({env:l})),i=l.PATH??l.Path??``;await u(o,[e,...c],{env:{...r.env,PATH:a+n.delimiter+i},stdio:`inherit`})}catch(e){f.e=e}finally{await f.d()}}import.meta.main&&c(r.argv[2],r.argv.slice(3)).catch(e=>{console.error(e),r.exit(1)});export{c as runDrizzleKitCommand};
|
package/dist/db/ensure.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { importProjectModule } from "../project.js";
|
|
2
|
-
import { createLocalPostgresDb } from "./local-postgres.js";
|
|
2
|
+
import { createLocalPostgresDb, startProjectPostgres } from "./local-postgres.js";
|
|
3
3
|
import { planLocalSchemaPush } from "./schema-push.js";
|
|
4
4
|
import { seedLocalDb } from "./seed.js";
|
|
5
5
|
import { setupLocalDb } from "./setup.js";
|
|
@@ -11,15 +11,17 @@ type EnsureLocalDbOptions = {
|
|
|
11
11
|
importProjectModule?: typeof importProjectModule;
|
|
12
12
|
planLocalSchemaPush?: typeof planLocalSchemaPush;
|
|
13
13
|
seedLocalDb?: typeof seedLocalDb;
|
|
14
|
+
startProjectPostgres?: typeof startProjectPostgres;
|
|
14
15
|
setupLocalDb?: typeof setupLocalDb;
|
|
15
16
|
};
|
|
16
17
|
declare function ensureLocalDb({
|
|
17
|
-
createLocalPostgresDb
|
|
18
|
+
createLocalPostgresDb,
|
|
18
19
|
env,
|
|
19
|
-
importProjectModule
|
|
20
|
-
planLocalSchemaPush
|
|
21
|
-
seedLocalDb
|
|
22
|
-
|
|
20
|
+
importProjectModule,
|
|
21
|
+
planLocalSchemaPush,
|
|
22
|
+
seedLocalDb,
|
|
23
|
+
startProjectPostgres,
|
|
24
|
+
setupLocalDb
|
|
23
25
|
}?: EnsureLocalDbOptions): Promise<void>;
|
|
24
26
|
//#endregion
|
|
25
27
|
export { ensureLocalDb };
|
package/dist/db/ensure.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{importProjectModule as e}from"../project.js";import{
|
|
2
|
+
import{importProjectModule as e}from"../project.js";import{createLocalPostgresDb as t,startProjectPostgres as n}from"./local-postgres.js";import r from"../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/usingCtx.js";import{SEED_EMAILS as i,SEED_IDS as a}from"./config.js";import{inferSchemaDialect as o,planLocalSchemaPush as s}from"./schema-push.js";import{seedLocalDb as c}from"./seed.js";import{setupLocalDb as l}from"./setup.js";import{eq as u}from"drizzle-orm";const d={createLocalPostgresDb:t,importProjectModule:e,planLocalSchemaPush:s,seedLocalDb:c,startProjectPostgres:n,setupLocalDb:l};async function f(t=e){return{schema:await t(`src/db/schema.ts`)}}async function p(e,{users:t}){let[n]=await e.select({id:t.id}).from(t).where(u(t.email,i.adminUser)).limit(1);return n?.id===a.adminUser}async function m(e,{schema:t},n=s){let r=await n(o(t),t,e);return r.sqlStatements.length===0?(console.log(`Local database schema already in sync`),{appliedStatements:0,plan:r}):(console.log(`Local database schema drift detected; applying ${r.sqlStatements.length} statement(s)`),await r.apply(),console.log(`Local database schema synced`),{appliedStatements:r.sqlStatements.length,plan:r})}async function h({createLocalPostgresDb:e=d.createLocalPostgresDb,env:t=process.env,importProjectModule:n=d.importProjectModule,planLocalSchemaPush:i=d.planLocalSchemaPush,seedLocalDb:a=d.seedLocalDb,startProjectPostgres:o=d.startProjectPostgres,setupLocalDb:s=d.setupLocalDb}={}){try{var c=r();let l=c.a(await o({env:t})).env,u=await f(n),d=await e({env:l});try{if(await g(d,u.schema))console.log(`Local database already set up`);else{console.log(`Local database is missing or unseeded; running setup`),await s(`default`,{env:l});return}(await m(d,u,i)).appliedStatements>0&&!await g(d,u.schema)&&(console.log(`Local database seed data missing after schema sync; running seed`),await a(void 0,{env:l}))}finally{await d.$client.end()}}catch(e){c.e=e}finally{await c.d()}}async function g(e,t){try{return await p(e,t)}catch{return!1}}import.meta.main&&h().catch(e=>{console.error(e),process.exit(1)});export{h as ensureLocalDb};
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import { CoreframeConfig, readProjectConfig } from "../config.js";
|
|
1
2
|
import { createProjectPostgresDrizzleDatabase } from "./project.js";
|
|
3
|
+
import { rm } from "node:fs/promises";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
5
|
+
import { LocalPostgresEnv, startPostgres } from "local-postgres";
|
|
2
6
|
|
|
3
7
|
//#region db/local-postgres.d.ts
|
|
8
|
+
declare const LOCAL_POSTGRES_ENV_FLAG = "COREFRAME_LOCAL_POSTGRES";
|
|
4
9
|
type LocalPostgresDb = Awaited<ReturnType<typeof createProjectPostgresDrizzleDatabase>> & {
|
|
5
10
|
$client: {
|
|
6
11
|
end(): Promise<void>;
|
|
@@ -18,9 +23,43 @@ type LocalPostgresDb = Awaited<ReturnType<typeof createProjectPostgresDrizzleDat
|
|
|
18
23
|
type LocalPostgresOptions = {
|
|
19
24
|
env?: NodeJS.ProcessEnv;
|
|
20
25
|
};
|
|
26
|
+
type ProjectPostgresSidecar = {
|
|
27
|
+
env: NodeJS.ProcessEnv;
|
|
28
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
29
|
+
};
|
|
30
|
+
type StartProjectPostgresOptions = {
|
|
31
|
+
config?: CoreframeConfig;
|
|
32
|
+
cwd?: string;
|
|
33
|
+
env?: NodeJS.ProcessEnv;
|
|
34
|
+
readProjectConfig?: typeof readProjectConfig;
|
|
35
|
+
startPostgres?: typeof startPostgres;
|
|
36
|
+
};
|
|
37
|
+
type StartTemporaryProjectPostgresOptions = StartProjectPostgresOptions & {
|
|
38
|
+
mkdtemp?: (prefix: string) => Promise<string>;
|
|
39
|
+
rm?: typeof rm;
|
|
40
|
+
tmpdir?: typeof tmpdir;
|
|
41
|
+
};
|
|
42
|
+
declare function startProjectPostgres({
|
|
43
|
+
config,
|
|
44
|
+
cwd,
|
|
45
|
+
env,
|
|
46
|
+
readProjectConfig,
|
|
47
|
+
startPostgres
|
|
48
|
+
}?: StartProjectPostgresOptions): Promise<ProjectPostgresSidecar>;
|
|
49
|
+
declare function startTemporaryProjectPostgres({
|
|
50
|
+
config,
|
|
51
|
+
cwd,
|
|
52
|
+
env,
|
|
53
|
+
mkdtemp,
|
|
54
|
+
readProjectConfig,
|
|
55
|
+
rm,
|
|
56
|
+
startPostgres,
|
|
57
|
+
tmpdir
|
|
58
|
+
}?: StartTemporaryProjectPostgresOptions): Promise<ProjectPostgresSidecar>;
|
|
59
|
+
declare function createLocalPostgresEnv(env: NodeJS.ProcessEnv, postgresEnv: LocalPostgresEnv): NodeJS.ProcessEnv;
|
|
21
60
|
declare function createLocalPostgresDb({
|
|
22
61
|
env
|
|
23
62
|
}?: LocalPostgresOptions): Promise<LocalPostgresDb>;
|
|
24
63
|
declare function getLocalPostgresConnectionString(env?: NodeJS.ProcessEnv): string;
|
|
25
64
|
//#endregion
|
|
26
|
-
export { LocalPostgresDb, createLocalPostgresDb, getLocalPostgresConnectionString };
|
|
65
|
+
export { LOCAL_POSTGRES_ENV_FLAG, LocalPostgresDb, ProjectPostgresSidecar, StartProjectPostgresOptions, StartTemporaryProjectPostgresOptions, createLocalPostgresDb, createLocalPostgresEnv, getLocalPostgresConnectionString, startProjectPostgres, startTemporaryProjectPostgres };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{readProjectConfig as e}from"../config.js";import{createProjectPostgresDrizzleDatabase as t}from"./project.js";import{mkdtemp as n,rm as r}from"node:fs/promises";import i from"node:path";import{tmpdir as a}from"node:os";import{startPostgres as o}from"local-postgres";const s=`COREFRAME_LOCAL_POSTGRES`,c=`coreframe`,l={name:`coreframe`,password:`coreframe`},u={mkdtemp:n,readProjectConfig:e,rm:r,startPostgres:o,tmpdir:a};async function d({config:e,cwd:t=process.cwd(),env:n=process.env,readProjectConfig:r=u.readProjectConfig,startPostgres:a=u.startPostgres}={}){return n.COREFRAME_LOCAL_POSTGRES===`1`||((e??await r({cwd:t})).database?.dialect??`postgres`)!==`postgres`?g(n):h(n,await a({dataDir:i.resolve(t,`.postgres`),database:c,log:`ignore`,postgres:{strategy:`prefer-local`},superuser:l}))}async function f({config:e,cwd:t=process.cwd(),env:n=process.env,mkdtemp:r=u.mkdtemp,readProjectConfig:a=u.readProjectConfig,rm:o=u.rm,startPostgres:s=u.startPostgres,tmpdir:d=u.tmpdir}={}){let f=(e??await a({cwd:t})).database?.dialect??`postgres`;if(f!==`postgres`)throw Error(`Temporary schema push checks require PostgreSQL, but this project uses ${f}.`);let p=await r(i.join(d(),`coreframe-schema-check-`));try{let e=h(n,await s({dataDir:p,database:c,log:`ignore`,postgres:{strategy:`prefer-local`},superuser:l}));return{env:e.env,async[Symbol.asyncDispose](){try{await e[Symbol.asyncDispose]()}finally{await o(p,{force:!0,recursive:!0})}}}}catch(e){throw await o(p,{force:!0,recursive:!0}),e}}function p(e,t){return{...e,...t,[s]:`1`}}async function m({env:e=process.env}={}){let n=_(e);return t({env:{...e,DATABASE_URL:n}})}function h(e,t){return{env:p(e,t.env),async[Symbol.asyncDispose](){await t[Symbol.asyncDispose]()}}}function g(e){return{env:e,async[Symbol.asyncDispose](){}}}function _(e=process.env){let t=e.DATABASE_URL||v(e);if(!t)throw Error(`DATABASE_URL or PGDATABASE, PGHOST, PGPORT, and PGUSER are required.`);return t}function v(e){let{PGDATABASE:t,PGHOST:n,PGPASSWORD:r,PGPORT:i,PGUSER:a}=e;if(!t||!n||!i||!a)return;let o=new URL(`postgresql://${n}:${i}/${t}`);return o.username=a,r&&(o.password=r),o.href}export{s as LOCAL_POSTGRES_ENV_FLAG,m as createLocalPostgresDb,p as createLocalPostgresEnv,_ as getLocalPostgresConnectionString,d as startProjectPostgres,f as startTemporaryProjectPostgres};
|
package/dist/db/migrate.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
+
import { startProjectPostgres } from "./local-postgres.js";
|
|
2
|
+
|
|
1
3
|
//#region db/migrate.d.ts
|
|
2
|
-
|
|
4
|
+
type MigrateLocalDbOptions = {
|
|
5
|
+
env?: NodeJS.ProcessEnv;
|
|
6
|
+
startProjectPostgres?: typeof startProjectPostgres;
|
|
7
|
+
};
|
|
8
|
+
declare function migrateLocalDb({
|
|
9
|
+
env,
|
|
10
|
+
startProjectPostgres
|
|
11
|
+
}?: MigrateLocalDbOptions): Promise<void>;
|
|
3
12
|
//#endregion
|
|
4
13
|
export { migrateLocalDb };
|
package/dist/db/migrate.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
2
|
+
import{createLocalPostgresDb as e,startProjectPostgres as t}from"./local-postgres.js";import n from"../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/usingCtx.js";import{MIGRATIONS_FOLDER as r}from"./config.js";import{access as i}from"node:fs/promises";import{resolve as a}from"node:path";import{migrate as o}from"drizzle-orm/node-postgres/migrator";const s=a(r),c={startProjectPostgres:t};async function l({env:t=process.env,startProjectPostgres:r=c.startProjectPostgres}={}){try{var a=n();await i(s);let c=await e({env:a.a(await r({env:t})).env});try{await o(c,{migrationsFolder:s}),console.log(`Applied local migrations from ${s}`)}finally{await c.$client.end()}}catch(e){a.e=e}finally{await a.d()}}import.meta.main&&l().catch(e=>{console.error(e),process.exit(1)});export{l as migrateLocalDb};
|
package/dist/db/project.d.ts
CHANGED
|
@@ -20,12 +20,12 @@ declare function createProjectDeployDatabase({
|
|
|
20
20
|
config,
|
|
21
21
|
env,
|
|
22
22
|
importProjectDependency,
|
|
23
|
-
importProjectModule
|
|
23
|
+
importProjectModule
|
|
24
24
|
}?: CreateProjectDatabaseOptions): Promise<DatabaseClient>;
|
|
25
25
|
declare function createProjectPostgresDrizzleDatabase({
|
|
26
26
|
env,
|
|
27
27
|
importProjectDependency,
|
|
28
|
-
importProjectModule
|
|
28
|
+
importProjectModule
|
|
29
29
|
}?: CreateProjectDatabaseOptions): Promise<DrizzleDatabase>;
|
|
30
30
|
//#endregion
|
|
31
31
|
export { CreateProjectDatabaseOptions, createProjectDeployDatabase, createProjectPostgresDrizzleDatabase };
|
package/dist/db/project.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{readProjectConfig as e}from"../config.js";import{importProjectModule as t}from"../project.js";import{createDatabaseAdapter as n}from"./client.js";import{createRequire as r}from"node:module";import{resolve as i}from"node:path";import{pathToFileURL as a}from"node:url";const o=`src/db/relations.ts
|
|
1
|
+
import{readProjectConfig as e}from"../config.js";import{importProjectModule as t}from"../project.js";import{createDatabaseAdapter as n}from"./client.js";import{createRequire as r}from"node:module";import{resolve as i}from"node:path";import{pathToFileURL as a}from"node:url";const o=`src/db/relations.ts`,s={importProjectModule:t};async function c({config:t,env:n=process.env,importProjectDependency:r=f,importProjectModule:i=s.importProjectModule}={}){let a=(t??(await e()).database)?.dialect??`postgres`;if(a===`postgres`)return u({env:n,importProjectModule:i,importProjectDependency:r});if(a===`sqlite`)return d({env:n,importProjectModule:i,importProjectDependency:r});throw Error(`Unsupported database dialect "${a}".`)}async function l({env:e=process.env,importProjectDependency:t=f,importProjectModule:n=s.importProjectModule}={}){let r=e.DATABASE_URL;if(!r)throw Error(`DATABASE_URL is required to create the PostgreSQL database.`);let[{drizzle:i},{relations:a}]=await Promise.all([t(`drizzle-orm/node-postgres`),n(o)]);return i({connection:{connectionString:r,max:1},relations:a})}async function u({env:e,importProjectModule:t,importProjectDependency:r}){let i=await l({env:e,importProjectDependency:r,importProjectModule:t});return n({database:i,dialect:`postgres`,close:()=>i.$client?.end?.()??Promise.resolve()})}async function d({env:e,importProjectModule:t,importProjectDependency:r}){let i=e.TURSO_DATABASE_URL??e.DATABASE_URL;if(!i)throw Error(`TURSO_DATABASE_URL or DATABASE_URL is required to create the deploy database.`);let[{createClient:a},{drizzle:s},{relations:c}]=await Promise.all([r(`@libsql/client`),r(`drizzle-orm/libsql`),t(o)]),l=a({url:i,authToken:e.TURSO_AUTH_TOKEN});return n({database:s({client:l,relations:c}),dialect:`sqlite`,close:async()=>{await l.close?.()}})}async function f(e){return await import(a(r(i(`package.json`)).resolve(e)).href)}export{c as createProjectDeployDatabase,l as createProjectPostgresDrizzleDatabase};
|
package/dist/db/reset.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
+
import { startProjectPostgres } from "./local-postgres.js";
|
|
2
|
+
|
|
1
3
|
//#region db/reset.d.ts
|
|
2
|
-
|
|
4
|
+
type ResetLocalDbOptions = {
|
|
5
|
+
env?: NodeJS.ProcessEnv;
|
|
6
|
+
startProjectPostgres?: typeof startProjectPostgres;
|
|
7
|
+
};
|
|
8
|
+
declare function resetLocalDb({
|
|
9
|
+
env,
|
|
10
|
+
startProjectPostgres
|
|
11
|
+
}?: ResetLocalDbOptions): Promise<void>;
|
|
3
12
|
//#endregion
|
|
4
13
|
export { resetLocalDb };
|
package/dist/db/reset.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createLocalPostgresDb as e}from"./local-postgres.js";import{sql as
|
|
2
|
+
import{createLocalPostgresDb as e,startProjectPostgres as t}from"./local-postgres.js";import n from"../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/usingCtx.js";import{sql as r}from"drizzle-orm";const i={startProjectPostgres:t};async function a({env:t=process.env,startProjectPostgres:a=i.startProjectPostgres}={}){try{var o=n();let i=await e({env:o.a(await a({env:t})).env});try{await i.execute(r`drop schema if exists public cascade`),await i.execute(r`create schema public`),console.log(`Reset local PostgreSQL schema`)}finally{await i.$client.end()}}catch(e){o.e=e}finally{await o.d()}}import.meta.main&&a().catch(e=>{console.error(e),process.exit(1)});export{a as resetLocalDb};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { importProjectModule } from "../project.js";
|
|
2
|
+
import { createLocalPostgresDb, startTemporaryProjectPostgres } from "./local-postgres.js";
|
|
3
|
+
import { planLocalSchemaPush } from "./schema-push.js";
|
|
4
|
+
import { runProjectSeed } from "./seed.js";
|
|
5
|
+
|
|
6
|
+
//#region db/schema-check.d.ts
|
|
7
|
+
type CheckSchemaPushOptions = {
|
|
8
|
+
createLocalPostgresDb?: typeof createLocalPostgresDb;
|
|
9
|
+
env?: NodeJS.ProcessEnv;
|
|
10
|
+
importProjectModule?: typeof importProjectModule;
|
|
11
|
+
planLocalSchemaPush?: typeof planLocalSchemaPush;
|
|
12
|
+
seed?: boolean;
|
|
13
|
+
runProjectSeed?: typeof runProjectSeed;
|
|
14
|
+
startTemporaryProjectPostgres?: typeof startTemporaryProjectPostgres;
|
|
15
|
+
};
|
|
16
|
+
declare function checkSchemaPush({
|
|
17
|
+
createLocalPostgresDb,
|
|
18
|
+
env,
|
|
19
|
+
importProjectModule,
|
|
20
|
+
planLocalSchemaPush,
|
|
21
|
+
seed,
|
|
22
|
+
runProjectSeed,
|
|
23
|
+
startTemporaryProjectPostgres
|
|
24
|
+
}?: CheckSchemaPushOptions): Promise<void>;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { checkSchemaPush };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{importProjectModule as e}from"../project.js";import{createLocalPostgresDb as t,startTemporaryProjectPostgres as n}from"./local-postgres.js";import r from"../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/usingCtx.js";import{inferSchemaDialect as i,planLocalSchemaPush as a}from"./schema-push.js";import{runProjectSeed as o}from"./seed.js";const s={createLocalPostgresDb:t,importProjectModule:e,planLocalSchemaPush:a,runProjectSeed:o,startTemporaryProjectPostgres:n};async function c({createLocalPostgresDb:e=s.createLocalPostgresDb,env:t=process.env,importProjectModule:n=s.importProjectModule,planLocalSchemaPush:a=s.planLocalSchemaPush,seed:o=!1,runProjectSeed:c=s.runProjectSeed,startTemporaryProjectPostgres:u=s.startTemporaryProjectPostgres}={}){try{var d=r();console.log(`Checking Drizzle schema against a throwaway PostgreSQL database`);let s=d.a(await u({env:t})),f=await n(`src/db/schema.ts`),p=await e({env:s.env});try{let e=i(f);if(e!==`postgres`)throw Error(`Temporary schema push checks require PostgreSQL schema, but found ${e}.`);let t=await a(e,f,p);t.sqlStatements.length===0?console.log(`Drizzle schema check passed with no changes`):(console.log(`Applying ${t.sqlStatements.length} statement(s) to throwaway database`),await t.apply(),console.log(`Drizzle schema check passed`)),o&&(console.log(`Seeding throwaway database`),await c(`default`,{env:s.env}),console.log(`Throwaway database seed check passed`))}finally{await l(p)}}catch(e){d.e=e}finally{await d.d()}}function l(e){return e.$client.end()}import.meta.main&&c().catch(e=>{console.error(e),process.exit(1)});export{c as checkSchemaPush};
|
package/dist/db/seed.d.ts
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
|
+
import { readProjectConfig } from "../config.js";
|
|
1
2
|
import { SeedProfile } from "./config.js";
|
|
3
|
+
import { importProjectModule } from "../project.js";
|
|
4
|
+
import { startProjectPostgres } from "./local-postgres.js";
|
|
2
5
|
|
|
3
6
|
//#region db/seed.d.ts
|
|
4
|
-
|
|
7
|
+
type SeedLocalDbOptions = {
|
|
8
|
+
env?: NodeJS.ProcessEnv;
|
|
9
|
+
importProjectModule?: typeof importProjectModule;
|
|
10
|
+
readProjectConfig?: typeof readProjectConfig;
|
|
11
|
+
startProjectPostgres?: typeof startProjectPostgres;
|
|
12
|
+
};
|
|
13
|
+
type RunProjectSeedOptions = {
|
|
14
|
+
env: NodeJS.ProcessEnv;
|
|
15
|
+
importProjectModule?: typeof importProjectModule;
|
|
16
|
+
readProjectConfig?: typeof readProjectConfig;
|
|
17
|
+
seedEntryPoint?: string;
|
|
18
|
+
};
|
|
19
|
+
declare function seedLocalDb(profile?: SeedProfile, {
|
|
20
|
+
env,
|
|
21
|
+
importProjectModule,
|
|
22
|
+
readProjectConfig,
|
|
23
|
+
startProjectPostgres
|
|
24
|
+
}?: SeedLocalDbOptions): Promise<void>;
|
|
25
|
+
declare function runProjectSeed(profile: SeedProfile | undefined, {
|
|
26
|
+
env,
|
|
27
|
+
importProjectModule,
|
|
28
|
+
readProjectConfig,
|
|
29
|
+
seedEntryPoint
|
|
30
|
+
}: RunProjectSeedOptions): Promise<void>;
|
|
5
31
|
//#endregion
|
|
6
|
-
export { seedLocalDb };
|
|
32
|
+
export { runProjectSeed, seedLocalDb };
|
package/dist/db/seed.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
2
|
+
import{readProjectConfig as e}from"../config.js";import{importProjectModule as t}from"../project.js";import{startProjectPostgres as n}from"./local-postgres.js";import r from"../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/usingCtx.js";import{getSeedProfile as i}from"./config.js";const a={importProjectModule:t,readProjectConfig:e,startProjectPostgres:n};async function o(e=i(),{env:t=process.env,importProjectModule:n=a.importProjectModule,readProjectConfig:o=a.readProjectConfig,startProjectPostgres:l=a.startProjectPostgres}={}){try{var u=r();let i=await o(),a=c(i);await s(e,{env:u.a(await l({config:i,env:t})).env,importProjectModule:n,readProjectConfig:o,seedEntryPoint:a}),console.log(`Seeded local database with "${e}" profile`)}catch(e){u.e=e}finally{await u.d()}}async function s(e=i(),{env:t,importProjectModule:n=a.importProjectModule,readProjectConfig:r=a.readProjectConfig,seedEntryPoint:o}){o??=c(await r()),await u(t,async()=>{await l(await n(o),o)({env:t,profile:e})})}function c(e){let t=e.database?.seed;if(!t)throw Error(`coreframe.config.ts must configure database.seed before running db seed.`);return t}function l(e,t){let n=e.default??e.seed??e.seedLocalDb;if(!n)throw Error(`${t} must export a default seed function, seed function, or seedLocalDb function.`);return n}async function u(e,t){let n=new Map;for(let[t,r]of Object.entries(e))n.set(t,process.env[t]),r===void 0?delete process.env[t]:process.env[t]=r;try{await t()}finally{for(let[e,t]of n)t===void 0?delete process.env[e]:process.env[e]=t}}import.meta.main&&o().catch(e=>{console.error(e),process.exit(1)});export{s as runProjectSeed,o as seedLocalDb};
|
package/dist/db/setup.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { SeedProfile } from "./config.js";
|
|
2
|
+
import { startProjectPostgres } from "./local-postgres.js";
|
|
2
3
|
|
|
3
4
|
//#region db/setup.d.ts
|
|
4
|
-
|
|
5
|
+
type SetupLocalDbOptions = {
|
|
6
|
+
env?: NodeJS.ProcessEnv;
|
|
7
|
+
startProjectPostgres?: typeof startProjectPostgres;
|
|
8
|
+
};
|
|
9
|
+
declare function setupLocalDb(profile?: SeedProfile, {
|
|
10
|
+
env,
|
|
11
|
+
startProjectPostgres
|
|
12
|
+
}?: SetupLocalDbOptions): Promise<void>;
|
|
5
13
|
//#endregion
|
|
6
14
|
export { setupLocalDb };
|
package/dist/db/setup.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
2
|
+
import{startProjectPostgres as e}from"./local-postgres.js";import t from"../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/usingCtx.js";import{seedLocalDb as n}from"./seed.js";import{migrateLocalDb as r}from"./migrate.js";import{resetLocalDb as i}from"./reset.js";const a={startProjectPostgres:e};async function o(e=`default`,{env:o=process.env,startProjectPostgres:s=a.startProjectPostgres}={}){try{var c=t();let a=c.a(await s({env:o})).env;await i({env:a}),await r({env:a}),await n(e,{env:a})}catch(e){c.e=e}finally{await c.d()}}import.meta.main&&o().catch(e=>{console.error(e),process.exit(1)});export{o as setupLocalDb};
|
package/dist/dev.d.ts
CHANGED
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import { readProjectConfig } from "./config.js";
|
|
2
|
-
import {
|
|
2
|
+
import { startProjectPostgres } from "./db/local-postgres.js";
|
|
3
3
|
|
|
4
4
|
//#region dev.d.ts
|
|
5
|
-
type Spawn = typeof spawn$1;
|
|
6
5
|
type DevServerOptions = {
|
|
7
6
|
cwd?: string;
|
|
8
7
|
env?: NodeJS.ProcessEnv;
|
|
9
|
-
logPath?: string;
|
|
10
8
|
platform?: DevPlatform;
|
|
11
9
|
readProjectConfig?: typeof readProjectConfig;
|
|
12
|
-
|
|
10
|
+
startProjectPostgres?: typeof startProjectPostgres;
|
|
13
11
|
};
|
|
14
12
|
type DevPlatform = "android" | "desktop" | "ios" | "web";
|
|
15
13
|
declare function runDevServer({
|
|
16
14
|
cwd,
|
|
17
15
|
env,
|
|
18
|
-
logPath,
|
|
19
16
|
platform,
|
|
20
|
-
readProjectConfig
|
|
21
|
-
|
|
17
|
+
readProjectConfig,
|
|
18
|
+
startProjectPostgres
|
|
22
19
|
}?: DevServerOptions): Promise<void>;
|
|
23
20
|
//#endregion
|
|
24
21
|
export { DevPlatform, DevServerOptions, runDevServer };
|
package/dist/dev.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{readProjectConfig as e}from"./config.js";import{
|
|
2
|
+
import{readProjectConfig as e}from"./config.js";import{startProjectPostgres as t}from"./db/local-postgres.js";import n from"./_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/usingCtx.js";import r from"node:path";import i from"node:process";import{supervise as a}from"procband";const o=r.resolve(`node_modules`,`.bin`),s=i.platform===`win32`?`pnpm.cmd`:`pnpm`,c=i.platform===`win32`?`react-router.cmd`:`react-router`,l=i.platform===`win32`?`turso.cmd`:`turso`,u={readProjectConfig:e,startProjectPostgres:t};async function d({cwd:e=i.cwd(),env:t=i.env,platform:d=`web`,readProjectConfig:m=u.readProjectConfig,startProjectPostgres:h=u.startProjectPostgres}={}){let g=t.PATH??t.Path??``,_;try{if(d===`web`){let i=await m({cwd:e});if(i.database?.dialect===`sqlite`&&(_=a({name:`turso-dev`,command:l,args:[`dev`],cwd:e,env:t}),await _.waitFor(`listening`),await a({name:`db-ensure`,command:s,args:[`db`,`ensure`],cwd:e,env:t,prefix:!1}).expectSuccess()),f(i))try{var v=n();let l=v.a(await h({config:i,cwd:e,env:t})).env;await a({name:`db-ensure`,command:s,args:[`db`,`ensure`],cwd:e,env:l,prefix:!1}).expectSuccess(),await a({name:`web-dev`,command:c,args:[`dev`],cwd:e,env:{...l,CLOUDFLARE_ENV:`development`,PATH:o+r.delimiter+g}}).expectSuccess();return}catch(e){v.e=e}finally{await v.d()}await a({name:`web-dev`,command:c,args:[`dev`],cwd:e,env:{...t,CLOUDFLARE_ENV:`development`,PATH:o+r.delimiter+g}}).expectSuccess();return}let i=p(d);await a({name:[`tauri`,...i.slice(2)].join(`-`),command:s,args:i,cwd:e,env:t}).expectSuccess()}finally{_&&_.kill(`SIGTERM`)}}function f(e){return(e.database?.dialect??`postgres`)===`postgres`}function p(e){return[`--dir=tauri`,`tauri`,...e===`desktop`?[]:[e],`dev`]}import.meta.main&&d({env:{...i.env,FORCE_COLOR:`1`}}).catch(e=>{console.error(e),i.exit(1)});export{d as runDevServer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{join as e}from"node:path";import{
|
|
2
|
+
import{join as e}from"node:path";import{tmpdir as t}from"node:os";import{existsSync as n,mkdtempSync as r,readFileSync as i,rmSync as a,writeFileSync as o}from"node:fs";import{spawnSync as s}from"node:child_process";const c=`.agents/skills/coreframe-upgrade/SKILL.md`;function l(e,t={}){return s(`git`,e,t)}function u(e){return e.stderr.toString(`utf8`).trim()||e.stdout.toString(`utf8`).trim()}function d(e,t){let n=l([`show`,`${e}:${t}`],{encoding:`utf8`});if(n.status!==0){let r=u(n);throw Error(`Could not read ${t} at ${e}.${r?` ${r}`:``}`)}return n.stdout.toString()}function f(){let e=l([`rev-parse`,`--show-toplevel`],{encoding:`utf8`});if(e.status!==0){let t=u(e);throw Error(`Could not find git repository root.${t?` ${t}`:``}`)}return e.stdout.toString().trim()}function p(n,i){let s=r(e(t(),`coreframe-upgrade-skill-`)),c=e(s,`SKILL.md`);try{o(c,i);let e=u(l([`--no-pager`,`diff`,`--no-index`,`--color=never`,`--`,n,c]));e&&console.log(e)}finally{a(s,{force:!0,recursive:!0})}}function m({apply:t,target:r}){let a=e(f(),c);if(!n(a))throw Error(`Local ${c} does not exist.`);let s=i(a,`utf8`),l=d(r,c);return s===l?(console.log(`Coreframe upgrade skill matches ${r}:${c}.`),0):t?(o(a,l),console.error(`Updated ${c} from ${r}. Reread it before continuing the upgrade.`),20):(console.error(`Coreframe upgrade skill differs from ${r}:${c}.`),console.error(`Run again with --apply to update it, then reread ${c} before continuing.`),p(a,l),20)}if(import.meta.main){let e=process.argv.indexOf(`--target`),t=e===-1?null:process.argv[e+1];t||(console.error(`Usage: coreframe upgrade check-skill-current --target <git-ref> [--apply]`),process.exit(64));try{process.exit(m({apply:process.argv.includes(`--apply`),target:t}))}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(65)}}export{m as checkUpgradeSkillCurrent};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coreframe/scripts",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"bin": {
|
|
5
5
|
"coreframe": "./bin/coreframe.js"
|
|
6
6
|
},
|
|
@@ -31,8 +31,9 @@
|
|
|
31
31
|
"@clack/prompts": "^1.6.0",
|
|
32
32
|
"cmd-ts": "0.15.0",
|
|
33
33
|
"drizzle-orm": "1.0.0-rc.4",
|
|
34
|
+
"local-postgres": "0.1.2",
|
|
34
35
|
"nano-spawn": "^2.1.0",
|
|
35
|
-
"procband": "^0.3.
|
|
36
|
+
"procband": "^0.3.6",
|
|
36
37
|
"tinyglobby": "^0.2.17"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|