🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@effect/sql-pg

Package Overview
Dependencies
Maintainers
3
Versions
430
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@effect/sql-pg - npm Package Compare versions

Comparing version
4.0.0-beta.7
to
4.0.0-beta.8
+8
-4
dist/PgMigrator.d.ts
/**
* @since 1.0.0
*/
import type * as Effect from "effect/Effect";
import * as Effect from "effect/Effect";
import * as FileSystem from "effect/FileSystem";
import * as Layer from "effect/Layer";
import * as Path from "effect/Path";
import type * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
import * as Migrator from "effect/unstable/sql/Migrator";
import type * as Client from "effect/unstable/sql/SqlClient";
import type { SqlClient } from "effect/unstable/sql/SqlClient";
import type { SqlError } from "effect/unstable/sql/SqlError";
import { PgClient } from "./PgClient.ts";
/**

@@ -17,3 +21,3 @@ * @since 1.0.0

*/
export declare const run: <R2 = never>(options: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, Client.SqlClient | R2>;
export declare const run: <R2 = never>(options: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, SqlClient | PgClient | ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path | R2>;
/**

@@ -23,3 +27,3 @@ * @category layers

*/
export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, Migrator.MigrationError | SqlError, Client.SqlClient | R>;
export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, Migrator.MigrationError | SqlError, SqlClient | PgClient | ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path | R>;
//# sourceMappingURL=PgMigrator.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"PgMigrator.d.ts","sourceRoot":"","sources":["../src/PgMigrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;GAGG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAC3B,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAClC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAClC,MAAM,CAAC,SAAS,GAAG,EAAE,CA0DrB,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CACgB,CAAA"}
{"version":3,"file":"PgMigrator.d.ts","sourceRoot":"","sources":["../src/PgMigrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAGnC,OAAO,KAAK,KAAK,mBAAmB,MAAM,6CAA6C,CAAA;AACvF,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;GAGG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAC3B,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAClC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAChC,SAAS,GACT,QAAQ,GACR,mBAAmB,CAAC,mBAAmB,GACvC,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,EAAE,CAuDJ,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAChC,SAAS,GACT,QAAQ,GACR,mBAAmB,CAAC,mBAAmB,GACvC,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,CAAC,CACiC,CAAA"}

@@ -0,3 +1,12 @@

/**
* @since 1.0.0
*/
import * as Effect from "effect/Effect";
import * as FileSystem from "effect/FileSystem";
import * as Layer from "effect/Layer";
import * as Path from "effect/Path";
import * as Redacted from "effect/Redacted";
import * as ChildProcess from "effect/unstable/process/ChildProcess";
import * as Migrator from "effect/unstable/sql/Migrator";
import { PgClient } from "./PgClient.js";
/**

@@ -12,58 +21,40 @@ * @since 1.0.0

export const run = /*#__PURE__*/Migrator.make({
// TODO: Wait for Command module
// dumpSchema(path, table) {
// const pgDump = (args: Array<string>) =>
// Effect.gen(function*() {
// const sql = yield* PgClient
// const dump = yield* pipe(
// Command.make("pg_dump", ...args, "--no-owner", "--no-privileges"),
// Command.env({
// PATH: (globalThis as any).process?.env.PATH,
// PGHOST: sql.config.host,
// PGPORT: sql.config.port?.toString(),
// PGUSER: sql.config.username,
// PGPASSWORD: sql.config.password
// ? Redacted.value(sql.config.password)
// : undefined,
// PGDATABASE: sql.config.database,
// PGSSLMODE: sql.config.ssl ? "require" : "prefer"
// }),
// Command.string
// )
//
// return dump.replace(/^--.*$/gm, "")
// .replace(/^SET .*$/gm, "")
// .replace(/^SELECT pg_catalog\..*$/gm, "")
// .replace(/\n{2,}/gm, "\n\n")
// .trim()
// }).pipe(
// Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
// )
//
// const pgDumpSchema = pgDump(["--schema-only"])
//
// const pgDumpMigrations = pgDump([
// "--column-inserts",
// "--data-only",
// `--table=${table}`
// ])
//
// const pgDumpAll = Effect.map(
// Effect.all([pgDumpSchema, pgDumpMigrations], { concurrency: 2 }),
// ([schema, migrations]) => schema + "\n\n" + migrations
// )
//
// const pgDumpFile = (path: string) =>
// Effect.gen(function*() {
// const fs = yield* FileSystem
// const path_ = yield* Path
// const dump = yield* pgDumpAll
// yield* fs.makeDirectory(path_.dirname(path), { recursive: true })
// yield* fs.writeFileString(path, dump)
// }).pipe(
// Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
// )
//
// return pgDumpFile(path)
// }
dumpSchema(path, table) {
const pgDump = args => Effect.gen(function* () {
const sql = yield* PgClient;
const dump = yield* ChildProcess.make("pg_dump", [...args, "--no-owner", "--no-privileges"], {
env: {
PATH: globalThis.process?.env.PATH,
PGHOST: sql.config.host,
PGPORT: sql.config.port?.toString(),
PGUSER: sql.config.username,
PGPASSWORD: sql.config.password ? Redacted.value(sql.config.password) : undefined,
PGDATABASE: sql.config.database,
PGSSLMODE: sql.config.ssl ? "require" : "prefer"
}
}).pipe(ChildProcess.string);
return dump.replace(/^--.*$/gm, "").replace(/^SET .*$/gm, "").replace(/^SELECT pg_catalog\..*$/gm, "").replace(/\n{2,}/gm, "\n\n").trim();
}).pipe(Effect.mapError(error => new Migrator.MigrationError({
kind: "Failed",
message: error.message
})));
const pgDumpSchema = pgDump(["--schema-only"]);
const pgDumpMigrations = pgDump(["--column-inserts", "--data-only", `--table=${table}`]);
const pgDumpAll = Effect.map(Effect.all([pgDumpSchema, pgDumpMigrations], {
concurrency: 2
}), ([schema, migrations]) => schema + "\n\n" + migrations);
const pgDumpFile = path => Effect.gen(function* () {
const fs = yield* FileSystem.FileSystem;
const path_ = yield* Path.Path;
const dump = yield* pgDumpAll;
yield* fs.makeDirectory(path_.dirname(path), {
recursive: true
});
yield* fs.writeFileString(path, dump);
}).pipe(Effect.mapError(error => new Migrator.MigrationError({
kind: "Failed",
message: error.message
})));
return pgDumpFile(path);
}
});

@@ -70,0 +61,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"PgMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/PgMigrator.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,8BAA8B;AAIxD;;;AAGA,cAAc,8BAA8B;AAE5C;;;;AAIA,OAAO,MAAMC,GAAG,gBAMZD,QAAQ,CAACE,IAAI,CAAC;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA,CACD,CAAC;AAEF;;;;AAIA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAKjCL,KAAK,CAACM,aAAa,CAACJ,GAAG,CAACG,OAAO,CAAC,CAAC","ignoreList":[]}
{"version":3,"file":"PgMigrator.js","names":["Effect","FileSystem","Layer","Path","Redacted","ChildProcess","Migrator","PgClient","run","make","dumpSchema","path","table","pgDump","args","gen","sql","dump","env","PATH","globalThis","process","PGHOST","config","host","PGPORT","port","toString","PGUSER","username","PGPASSWORD","password","value","undefined","PGDATABASE","database","PGSSLMODE","ssl","pipe","string","replace","trim","mapError","error","MigrationError","kind","message","pgDumpSchema","pgDumpMigrations","pgDumpAll","map","all","concurrency","schema","migrations","pgDumpFile","fs","path_","makeDirectory","dirname","recursive","writeFileString","layer","options","effectDiscard"],"sources":["../src/PgMigrator.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,YAAY,MAAM,sCAAsC;AAEpE,OAAO,KAAKC,QAAQ,MAAM,8BAA8B;AAGxD,SAASC,QAAQ,QAAQ,eAAe;AAExC;;;AAGA,cAAc,8BAA8B;AAE5C;;;;AAIA,OAAO,MAAMC,GAAG,gBAWZF,QAAQ,CAACG,IAAI,CAAC;EAChBC,UAAUA,CAACC,IAAI,EAAEC,KAAK;IACpB,MAAMC,MAAM,GAAIC,IAAmB,IACjCd,MAAM,CAACe,GAAG,CAAC,aAAS;MAClB,MAAMC,GAAG,GAAG,OAAOT,QAAQ;MAC3B,MAAMU,IAAI,GAAG,OAAOZ,YAAY,CAACI,IAAI,CAAC,SAAS,EAAE,CAAC,GAAGK,IAAI,EAAE,YAAY,EAAE,iBAAiB,CAAC,EAAE;QAC3FI,GAAG,EAAE;UACHC,IAAI,EAAGC,UAAkB,CAACC,OAAO,EAAEH,GAAG,CAACC,IAAI;UAC3CG,MAAM,EAAEN,GAAG,CAACO,MAAM,CAACC,IAAI;UACvBC,MAAM,EAAET,GAAG,CAACO,MAAM,CAACG,IAAI,EAAEC,QAAQ,EAAE;UACnCC,MAAM,EAAEZ,GAAG,CAACO,MAAM,CAACM,QAAQ;UAC3BC,UAAU,EAAEd,GAAG,CAACO,MAAM,CAACQ,QAAQ,GAC3B3B,QAAQ,CAAC4B,KAAK,CAAChB,GAAG,CAACO,MAAM,CAACQ,QAAQ,CAAC,GACnCE,SAAS;UACbC,UAAU,EAAElB,GAAG,CAACO,MAAM,CAACY,QAAQ;UAC/BC,SAAS,EAAEpB,GAAG,CAACO,MAAM,CAACc,GAAG,GAAG,SAAS,GAAG;;OAE3C,CAAC,CAACC,IAAI,CAACjC,YAAY,CAACkC,MAAM,CAAC;MAE5B,OAAOtB,IAAI,CAACuB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAChCA,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CACzBA,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CACxCA,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAC3BC,IAAI,EAAE;IACX,CAAC,CAAC,CAACH,IAAI,CACLtC,MAAM,CAAC0C,QAAQ,CAAEC,KAAK,IAAK,IAAIrC,QAAQ,CAACsC,cAAc,CAAC;MAAEC,IAAI,EAAE,QAAQ;MAAEC,OAAO,EAAEH,KAAK,CAACG;IAAO,CAAE,CAAC,CAAC,CACpG;IAEH,MAAMC,YAAY,GAAGlC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IAE9C,MAAMmC,gBAAgB,GAAGnC,MAAM,CAAC,CAC9B,kBAAkB,EAClB,aAAa,EACb,WAAWD,KAAK,EAAE,CACnB,CAAC;IAEF,MAAMqC,SAAS,GAAGjD,MAAM,CAACkD,GAAG,CAC1BlD,MAAM,CAACmD,GAAG,CAAC,CAACJ,YAAY,EAAEC,gBAAgB,CAAC,EAAE;MAAEI,WAAW,EAAE;IAAC,CAAE,CAAC,EAChE,CAAC,CAACC,MAAM,EAAEC,UAAU,CAAC,KAAKD,MAAM,GAAG,MAAM,GAAGC,UAAU,CACvD;IAED,MAAMC,UAAU,GAAI5C,IAAY,IAC9BX,MAAM,CAACe,GAAG,CAAC,aAAS;MAClB,MAAMyC,EAAE,GAAG,OAAOvD,UAAU,CAACA,UAAU;MACvC,MAAMwD,KAAK,GAAG,OAAOtD,IAAI,CAACA,IAAI;MAC9B,MAAMc,IAAI,GAAG,OAAOgC,SAAS;MAC7B,OAAOO,EAAE,CAACE,aAAa,CAACD,KAAK,CAACE,OAAO,CAAChD,IAAI,CAAC,EAAE;QAAEiD,SAAS,EAAE;MAAI,CAAE,CAAC;MACjE,OAAOJ,EAAE,CAACK,eAAe,CAAClD,IAAI,EAAEM,IAAI,CAAC;IACvC,CAAC,CAAC,CAACqB,IAAI,CACLtC,MAAM,CAAC0C,QAAQ,CAAEC,KAAK,IAAK,IAAIrC,QAAQ,CAACsC,cAAc,CAAC;MAAEC,IAAI,EAAE,QAAQ;MAAEC,OAAO,EAAEH,KAAK,CAACG;IAAO,CAAE,CAAC,CAAC,CACpG;IAEH,OAAOS,UAAU,CAAC5C,IAAI,CAAC;EACzB;CACD,CAAC;AAEF;;;;AAIA,OAAO,MAAMmD,KAAK,GAChBC,OAAoC,IAUjC7D,KAAK,CAAC8D,aAAa,CAACxD,GAAG,CAACuD,OAAO,CAAC,CAAC","ignoreList":[]}
{
"name": "@effect/sql-pg",
"version": "4.0.0-beta.7",
"version": "4.0.0-beta.8",
"type": "module",

@@ -49,6 +49,6 @@ "license": "MIT",

"@types/pg-cursor": "^2.7.2",
"effect": "^4.0.0-beta.7"
"effect": "^4.0.0-beta.8"
},
"peerDependencies": {
"effect": "^4.0.0-beta.7"
"effect": "^4.0.0-beta.8"
},

@@ -55,0 +55,0 @@ "dependencies": {

/**
* @since 1.0.0
*/
import type * as Effect from "effect/Effect"
import * as Effect from "effect/Effect"
import * as FileSystem from "effect/FileSystem"
import * as Layer from "effect/Layer"
import * as Path from "effect/Path"
import * as Redacted from "effect/Redacted"
import * as ChildProcess from "effect/unstable/process/ChildProcess"
import type * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"
import * as Migrator from "effect/unstable/sql/Migrator"
import type * as Client from "effect/unstable/sql/SqlClient"
import type { SqlClient } from "effect/unstable/sql/SqlClient"
import type { SqlError } from "effect/unstable/sql/SqlError"
import { PgClient } from "./PgClient.ts"

@@ -24,60 +30,62 @@ /**

Migrator.MigrationError | SqlError,
Client.SqlClient | R2
| SqlClient
| PgClient
| ChildProcessSpawner.ChildProcessSpawner
| FileSystem.FileSystem
| Path.Path
| R2
> = Migrator.make({
// TODO: Wait for Command module
// dumpSchema(path, table) {
// const pgDump = (args: Array<string>) =>
// Effect.gen(function*() {
// const sql = yield* PgClient
// const dump = yield* pipe(
// Command.make("pg_dump", ...args, "--no-owner", "--no-privileges"),
// Command.env({
// PATH: (globalThis as any).process?.env.PATH,
// PGHOST: sql.config.host,
// PGPORT: sql.config.port?.toString(),
// PGUSER: sql.config.username,
// PGPASSWORD: sql.config.password
// ? Redacted.value(sql.config.password)
// : undefined,
// PGDATABASE: sql.config.database,
// PGSSLMODE: sql.config.ssl ? "require" : "prefer"
// }),
// Command.string
// )
//
// return dump.replace(/^--.*$/gm, "")
// .replace(/^SET .*$/gm, "")
// .replace(/^SELECT pg_catalog\..*$/gm, "")
// .replace(/\n{2,}/gm, "\n\n")
// .trim()
// }).pipe(
// Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
// )
//
// const pgDumpSchema = pgDump(["--schema-only"])
//
// const pgDumpMigrations = pgDump([
// "--column-inserts",
// "--data-only",
// `--table=${table}`
// ])
//
// const pgDumpAll = Effect.map(
// Effect.all([pgDumpSchema, pgDumpMigrations], { concurrency: 2 }),
// ([schema, migrations]) => schema + "\n\n" + migrations
// )
//
// const pgDumpFile = (path: string) =>
// Effect.gen(function*() {
// const fs = yield* FileSystem
// const path_ = yield* Path
// const dump = yield* pgDumpAll
// yield* fs.makeDirectory(path_.dirname(path), { recursive: true })
// yield* fs.writeFileString(path, dump)
// }).pipe(
// Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
// )
//
// return pgDumpFile(path)
// }
dumpSchema(path, table) {
const pgDump = (args: Array<string>) =>
Effect.gen(function*() {
const sql = yield* PgClient
const dump = yield* ChildProcess.make("pg_dump", [...args, "--no-owner", "--no-privileges"], {
env: {
PATH: (globalThis as any).process?.env.PATH,
PGHOST: sql.config.host,
PGPORT: sql.config.port?.toString(),
PGUSER: sql.config.username,
PGPASSWORD: sql.config.password
? Redacted.value(sql.config.password)
: undefined,
PGDATABASE: sql.config.database,
PGSSLMODE: sql.config.ssl ? "require" : "prefer"
}
}).pipe(ChildProcess.string)
return dump.replace(/^--.*$/gm, "")
.replace(/^SET .*$/gm, "")
.replace(/^SELECT pg_catalog\..*$/gm, "")
.replace(/\n{2,}/gm, "\n\n")
.trim();
}).pipe(
Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
)
const pgDumpSchema = pgDump(["--schema-only"])
const pgDumpMigrations = pgDump([
"--column-inserts",
"--data-only",
`--table=${table}`
])
const pgDumpAll = Effect.map(
Effect.all([pgDumpSchema, pgDumpMigrations], { concurrency: 2 }),
([schema, migrations]) => schema + "\n\n" + migrations
)
const pgDumpFile = (path: string) =>
Effect.gen(function*() {
const fs = yield* FileSystem.FileSystem
const path_ = yield* Path.Path
const dump = yield* pgDumpAll
yield* fs.makeDirectory(path_.dirname(path), { recursive: true })
yield* fs.writeFileString(path, dump)
}).pipe(
Effect.mapError((error) => new Migrator.MigrationError({ kind: "Failed", message: error.message }))
)
return pgDumpFile(path)
}
})

@@ -94,3 +102,8 @@

Migrator.MigrationError | SqlError,
Client.SqlClient | R
| SqlClient
| PgClient
| ChildProcessSpawner.ChildProcessSpawner
| FileSystem.FileSystem
| Path.Path
| R
> => Layer.effectDiscard(run(options))