reylo-effect-tooling 0.5.0 → 0.5.1
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/esbuild.js +57 -9
- package/dist/loader.js +57 -9
- package/dist/mapper.js +59 -11
- package/dist/vite-owner.js +60 -12
- package/package.json +2 -2
package/dist/esbuild.js
CHANGED
|
@@ -7,8 +7,8 @@ import { Effect as Effect7, FileSystem as FileSystem3, Option as Option6 } from
|
|
|
7
7
|
|
|
8
8
|
// src/analysis.ts
|
|
9
9
|
import { createHash as createHash3, randomUUID } from "node:crypto";
|
|
10
|
-
import { existsSync as existsSync4 } from "node:fs";
|
|
11
|
-
import { dirname as dirname3, join as join5, relative as relative2, resolve as resolve2 } from "node:path";
|
|
10
|
+
import { existsSync as existsSync4, readFileSync as readFileSync4 } from "node:fs";
|
|
11
|
+
import { dirname as dirname3, join as join5, posix, relative as relative2, resolve as resolve2, sep } from "node:path";
|
|
12
12
|
import {
|
|
13
13
|
Effect as Effect3,
|
|
14
14
|
Exit,
|
|
@@ -402,12 +402,12 @@ var DIALECTS = ["postgres", "sqlite", "mysql"];
|
|
|
402
402
|
function declaredEngines(dir) {
|
|
403
403
|
try {
|
|
404
404
|
const parsed = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
|
|
405
|
-
const
|
|
405
|
+
const listed2 = /* @__PURE__ */ new Set();
|
|
406
406
|
for (const key of ["dependencies", "devDependencies", "optionalDependencies"]) {
|
|
407
407
|
const group = Predicate.hasProperty(parsed, key) ? parsed[key] : void 0;
|
|
408
|
-
if (Predicate.isObject(group)) for (const name of Object.keys(group))
|
|
408
|
+
if (Predicate.isObject(group)) for (const name of Object.keys(group)) listed2.add(name);
|
|
409
409
|
}
|
|
410
|
-
return DIALECTS.filter((dialect) =>
|
|
410
|
+
return DIALECTS.filter((dialect) => listed2.has(ENGINE_PACKAGES[dialect]));
|
|
411
411
|
} catch {
|
|
412
412
|
return [];
|
|
413
413
|
}
|
|
@@ -704,17 +704,17 @@ function wranglerVersion(entry) {
|
|
|
704
704
|
function projectDrivers(root) {
|
|
705
705
|
const file = join2(packageDir(root), "package.json");
|
|
706
706
|
if (!existsSync2(file)) return [];
|
|
707
|
-
const
|
|
707
|
+
const listed2 = /* @__PURE__ */ new Set();
|
|
708
708
|
try {
|
|
709
709
|
const parsed = JSON.parse(readFileSync2(file, "utf8"));
|
|
710
710
|
for (const key of ["dependencies", "devDependencies", "optionalDependencies"]) {
|
|
711
711
|
const group = Predicate2.hasProperty(parsed, key) ? parsed[key] : void 0;
|
|
712
|
-
if (Predicate2.isObject(group)) for (const name of Object.keys(group))
|
|
712
|
+
if (Predicate2.isObject(group)) for (const name of Object.keys(group)) listed2.add(name);
|
|
713
713
|
}
|
|
714
714
|
} catch {
|
|
715
715
|
return [];
|
|
716
716
|
}
|
|
717
|
-
return DRIVERS.flatMap(([name]) =>
|
|
717
|
+
return DRIVERS.flatMap(([name]) => listed2.has(name) ? [name] : []);
|
|
718
718
|
}
|
|
719
719
|
async function openProjectDrivers(root, path) {
|
|
720
720
|
if (path === ":memory:") return [];
|
|
@@ -1546,13 +1546,61 @@ var StoredAnalysis = Schema4.fromJsonString(
|
|
|
1546
1546
|
function findProject(from) {
|
|
1547
1547
|
const configured = process.env.REYLO_CONFIG;
|
|
1548
1548
|
if (configured) return { dir: packageDir(from), file: resolve2(configured) };
|
|
1549
|
+
let owner;
|
|
1549
1550
|
for (let dir = resolve2(from); ; dir = dirname3(dir)) {
|
|
1550
1551
|
const file = PROJECT_FILES.map((name) => join5(dir, name)).find((path) => existsSync4(path));
|
|
1551
1552
|
if (file !== void 0) return { dir, file };
|
|
1552
|
-
if (existsSync4(join5(dir, "package.json")))
|
|
1553
|
+
if (owner === void 0 && existsSync4(join5(dir, "package.json")))
|
|
1554
|
+
owner = { dir, stop: workspaceRoot(dir) ?? dir };
|
|
1555
|
+
if (dir === owner?.stop) return { dir: owner.dir };
|
|
1553
1556
|
if (dirname3(dir) === dir) return { dir: resolve2(from) };
|
|
1554
1557
|
}
|
|
1555
1558
|
}
|
|
1559
|
+
var WorkspacePatterns = Schema4.Array(Schema4.String);
|
|
1560
|
+
var PackageWorkspaces = Schema4.Struct({
|
|
1561
|
+
workspaces: Schema4.Union([WorkspacePatterns, Schema4.Struct({ packages: WorkspacePatterns })])
|
|
1562
|
+
});
|
|
1563
|
+
var PnpmWorkspace = Schema4.Struct({ packages: WorkspacePatterns });
|
|
1564
|
+
function workspaceRoot(member) {
|
|
1565
|
+
for (let dir = member; dirname3(dir) !== dir; ) {
|
|
1566
|
+
dir = dirname3(dir);
|
|
1567
|
+
const patterns = workspacePatterns(dir);
|
|
1568
|
+
if (patterns !== void 0) return listed(relative2(dir, member), patterns) ? dir : void 0;
|
|
1569
|
+
}
|
|
1570
|
+
return void 0;
|
|
1571
|
+
}
|
|
1572
|
+
function listed(path, patterns) {
|
|
1573
|
+
const posixPath = path.split(sep).join("/");
|
|
1574
|
+
const matches = (pattern) => posix.matchesGlob(posixPath, pattern.replace(/^\.\//u, "").replace(/\/+$/u, ""));
|
|
1575
|
+
return patterns.some((pattern) => !pattern.startsWith("!") && matches(pattern)) && !patterns.some((pattern) => pattern.startsWith("!") && matches(pattern.slice(1)));
|
|
1576
|
+
}
|
|
1577
|
+
function workspacePatterns(dir) {
|
|
1578
|
+
const pnpm = join5(dir, "pnpm-workspace.yaml");
|
|
1579
|
+
if (existsSync4(pnpm)) {
|
|
1580
|
+
let parsed2;
|
|
1581
|
+
try {
|
|
1582
|
+
parsed2 = parseDocument(readFileSync4(pnpm, "utf8")).toJS();
|
|
1583
|
+
} catch {
|
|
1584
|
+
return [];
|
|
1585
|
+
}
|
|
1586
|
+
return Option4.match(Schema4.decodeUnknownOption(PnpmWorkspace)(parsed2), {
|
|
1587
|
+
onNone: () => [],
|
|
1588
|
+
onSome: (workspace) => workspace.packages
|
|
1589
|
+
});
|
|
1590
|
+
}
|
|
1591
|
+
const manifest = join5(dir, "package.json");
|
|
1592
|
+
if (!existsSync4(manifest)) return void 0;
|
|
1593
|
+
let parsed;
|
|
1594
|
+
try {
|
|
1595
|
+
parsed = JSON.parse(readFileSync4(manifest, "utf8"));
|
|
1596
|
+
} catch {
|
|
1597
|
+
return void 0;
|
|
1598
|
+
}
|
|
1599
|
+
return Option4.match(Schema4.decodeUnknownOption(PackageWorkspaces)(parsed), {
|
|
1600
|
+
onNone: () => void 0,
|
|
1601
|
+
onSome: ({ workspaces }) => "packages" in workspaces ? workspaces.packages : workspaces
|
|
1602
|
+
});
|
|
1603
|
+
}
|
|
1556
1604
|
function projectDirectory(from) {
|
|
1557
1605
|
return findProject(from).dir;
|
|
1558
1606
|
}
|
package/dist/loader.js
CHANGED
|
@@ -8,8 +8,8 @@ import { Effect as Effect7, FileSystem as FileSystem3, Option as Option6 } from
|
|
|
8
8
|
|
|
9
9
|
// src/analysis.ts
|
|
10
10
|
import { createHash as createHash3, randomUUID } from "node:crypto";
|
|
11
|
-
import { existsSync as existsSync4 } from "node:fs";
|
|
12
|
-
import { dirname as dirname3, join as join5, relative as relative2, resolve as resolve2 } from "node:path";
|
|
11
|
+
import { existsSync as existsSync4, readFileSync as readFileSync4 } from "node:fs";
|
|
12
|
+
import { dirname as dirname3, join as join5, posix, relative as relative2, resolve as resolve2, sep } from "node:path";
|
|
13
13
|
import {
|
|
14
14
|
Effect as Effect3,
|
|
15
15
|
Exit,
|
|
@@ -403,12 +403,12 @@ var DIALECTS = ["postgres", "sqlite", "mysql"];
|
|
|
403
403
|
function declaredEngines(dir) {
|
|
404
404
|
try {
|
|
405
405
|
const parsed = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
|
|
406
|
-
const
|
|
406
|
+
const listed2 = /* @__PURE__ */ new Set();
|
|
407
407
|
for (const key of ["dependencies", "devDependencies", "optionalDependencies"]) {
|
|
408
408
|
const group = Predicate.hasProperty(parsed, key) ? parsed[key] : void 0;
|
|
409
|
-
if (Predicate.isObject(group)) for (const name of Object.keys(group))
|
|
409
|
+
if (Predicate.isObject(group)) for (const name of Object.keys(group)) listed2.add(name);
|
|
410
410
|
}
|
|
411
|
-
return DIALECTS.filter((dialect) =>
|
|
411
|
+
return DIALECTS.filter((dialect) => listed2.has(ENGINE_PACKAGES[dialect]));
|
|
412
412
|
} catch {
|
|
413
413
|
return [];
|
|
414
414
|
}
|
|
@@ -705,17 +705,17 @@ function wranglerVersion(entry) {
|
|
|
705
705
|
function projectDrivers(root) {
|
|
706
706
|
const file = join2(packageDir(root), "package.json");
|
|
707
707
|
if (!existsSync2(file)) return [];
|
|
708
|
-
const
|
|
708
|
+
const listed2 = /* @__PURE__ */ new Set();
|
|
709
709
|
try {
|
|
710
710
|
const parsed = JSON.parse(readFileSync2(file, "utf8"));
|
|
711
711
|
for (const key of ["dependencies", "devDependencies", "optionalDependencies"]) {
|
|
712
712
|
const group = Predicate2.hasProperty(parsed, key) ? parsed[key] : void 0;
|
|
713
|
-
if (Predicate2.isObject(group)) for (const name of Object.keys(group))
|
|
713
|
+
if (Predicate2.isObject(group)) for (const name of Object.keys(group)) listed2.add(name);
|
|
714
714
|
}
|
|
715
715
|
} catch {
|
|
716
716
|
return [];
|
|
717
717
|
}
|
|
718
|
-
return DRIVERS.flatMap(([name]) =>
|
|
718
|
+
return DRIVERS.flatMap(([name]) => listed2.has(name) ? [name] : []);
|
|
719
719
|
}
|
|
720
720
|
async function openProjectDrivers(root, path) {
|
|
721
721
|
if (path === ":memory:") return [];
|
|
@@ -1547,13 +1547,61 @@ var StoredAnalysis = Schema4.fromJsonString(
|
|
|
1547
1547
|
function findProject(from) {
|
|
1548
1548
|
const configured = process.env.REYLO_CONFIG;
|
|
1549
1549
|
if (configured) return { dir: packageDir(from), file: resolve2(configured) };
|
|
1550
|
+
let owner;
|
|
1550
1551
|
for (let dir = resolve2(from); ; dir = dirname3(dir)) {
|
|
1551
1552
|
const file = PROJECT_FILES.map((name) => join5(dir, name)).find((path) => existsSync4(path));
|
|
1552
1553
|
if (file !== void 0) return { dir, file };
|
|
1553
|
-
if (existsSync4(join5(dir, "package.json")))
|
|
1554
|
+
if (owner === void 0 && existsSync4(join5(dir, "package.json")))
|
|
1555
|
+
owner = { dir, stop: workspaceRoot(dir) ?? dir };
|
|
1556
|
+
if (dir === owner?.stop) return { dir: owner.dir };
|
|
1554
1557
|
if (dirname3(dir) === dir) return { dir: resolve2(from) };
|
|
1555
1558
|
}
|
|
1556
1559
|
}
|
|
1560
|
+
var WorkspacePatterns = Schema4.Array(Schema4.String);
|
|
1561
|
+
var PackageWorkspaces = Schema4.Struct({
|
|
1562
|
+
workspaces: Schema4.Union([WorkspacePatterns, Schema4.Struct({ packages: WorkspacePatterns })])
|
|
1563
|
+
});
|
|
1564
|
+
var PnpmWorkspace = Schema4.Struct({ packages: WorkspacePatterns });
|
|
1565
|
+
function workspaceRoot(member) {
|
|
1566
|
+
for (let dir = member; dirname3(dir) !== dir; ) {
|
|
1567
|
+
dir = dirname3(dir);
|
|
1568
|
+
const patterns = workspacePatterns(dir);
|
|
1569
|
+
if (patterns !== void 0) return listed(relative2(dir, member), patterns) ? dir : void 0;
|
|
1570
|
+
}
|
|
1571
|
+
return void 0;
|
|
1572
|
+
}
|
|
1573
|
+
function listed(path, patterns) {
|
|
1574
|
+
const posixPath = path.split(sep).join("/");
|
|
1575
|
+
const matches = (pattern) => posix.matchesGlob(posixPath, pattern.replace(/^\.\//u, "").replace(/\/+$/u, ""));
|
|
1576
|
+
return patterns.some((pattern) => !pattern.startsWith("!") && matches(pattern)) && !patterns.some((pattern) => pattern.startsWith("!") && matches(pattern.slice(1)));
|
|
1577
|
+
}
|
|
1578
|
+
function workspacePatterns(dir) {
|
|
1579
|
+
const pnpm = join5(dir, "pnpm-workspace.yaml");
|
|
1580
|
+
if (existsSync4(pnpm)) {
|
|
1581
|
+
let parsed2;
|
|
1582
|
+
try {
|
|
1583
|
+
parsed2 = parseDocument(readFileSync4(pnpm, "utf8")).toJS();
|
|
1584
|
+
} catch {
|
|
1585
|
+
return [];
|
|
1586
|
+
}
|
|
1587
|
+
return Option4.match(Schema4.decodeUnknownOption(PnpmWorkspace)(parsed2), {
|
|
1588
|
+
onNone: () => [],
|
|
1589
|
+
onSome: (workspace) => workspace.packages
|
|
1590
|
+
});
|
|
1591
|
+
}
|
|
1592
|
+
const manifest = join5(dir, "package.json");
|
|
1593
|
+
if (!existsSync4(manifest)) return void 0;
|
|
1594
|
+
let parsed;
|
|
1595
|
+
try {
|
|
1596
|
+
parsed = JSON.parse(readFileSync4(manifest, "utf8"));
|
|
1597
|
+
} catch {
|
|
1598
|
+
return void 0;
|
|
1599
|
+
}
|
|
1600
|
+
return Option4.match(Schema4.decodeUnknownOption(PackageWorkspaces)(parsed), {
|
|
1601
|
+
onNone: () => void 0,
|
|
1602
|
+
onSome: ({ workspaces }) => "packages" in workspaces ? workspaces.packages : workspaces
|
|
1603
|
+
});
|
|
1604
|
+
}
|
|
1557
1605
|
function projectDirectory(from) {
|
|
1558
1606
|
return findProject(from).dir;
|
|
1559
1607
|
}
|
package/dist/mapper.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// src/mapper.ts
|
|
2
2
|
import { createHash as createHash5 } from "node:crypto";
|
|
3
|
-
import { dirname as dirname5, join as join7, resolve as resolve4
|
|
3
|
+
import { dirname as dirname5, join as join7, resolve as resolve4 } from "node:path";
|
|
4
4
|
import { Deferred, Effect as Effect8, Exit as Exit3, FileSystem as FileSystem4, Predicate as Predicate8, Schema as Schema7 } from "effect";
|
|
5
5
|
|
|
6
6
|
// src/analysis.ts
|
|
7
7
|
import { createHash as createHash3, randomUUID } from "node:crypto";
|
|
8
|
-
import { existsSync as existsSync4 } from "node:fs";
|
|
9
|
-
import { dirname as dirname3, join as join5, relative as relative2, resolve as resolve2 } from "node:path";
|
|
8
|
+
import { existsSync as existsSync4, readFileSync as readFileSync4 } from "node:fs";
|
|
9
|
+
import { dirname as dirname3, join as join5, posix, relative as relative2, resolve as resolve2, sep } from "node:path";
|
|
10
10
|
import {
|
|
11
11
|
Effect as Effect3,
|
|
12
12
|
Exit,
|
|
@@ -400,12 +400,12 @@ var DIALECTS = ["postgres", "sqlite", "mysql"];
|
|
|
400
400
|
function declaredEngines(dir) {
|
|
401
401
|
try {
|
|
402
402
|
const parsed = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
|
|
403
|
-
const
|
|
403
|
+
const listed2 = /* @__PURE__ */ new Set();
|
|
404
404
|
for (const key of ["dependencies", "devDependencies", "optionalDependencies"]) {
|
|
405
405
|
const group = Predicate.hasProperty(parsed, key) ? parsed[key] : void 0;
|
|
406
|
-
if (Predicate.isObject(group)) for (const name of Object.keys(group))
|
|
406
|
+
if (Predicate.isObject(group)) for (const name of Object.keys(group)) listed2.add(name);
|
|
407
407
|
}
|
|
408
|
-
return DIALECTS.filter((dialect) =>
|
|
408
|
+
return DIALECTS.filter((dialect) => listed2.has(ENGINE_PACKAGES[dialect]));
|
|
409
409
|
} catch {
|
|
410
410
|
return [];
|
|
411
411
|
}
|
|
@@ -702,17 +702,17 @@ function wranglerVersion(entry) {
|
|
|
702
702
|
function projectDrivers(root) {
|
|
703
703
|
const file = join2(packageDir(root), "package.json");
|
|
704
704
|
if (!existsSync2(file)) return [];
|
|
705
|
-
const
|
|
705
|
+
const listed2 = /* @__PURE__ */ new Set();
|
|
706
706
|
try {
|
|
707
707
|
const parsed = JSON.parse(readFileSync2(file, "utf8"));
|
|
708
708
|
for (const key of ["dependencies", "devDependencies", "optionalDependencies"]) {
|
|
709
709
|
const group = Predicate2.hasProperty(parsed, key) ? parsed[key] : void 0;
|
|
710
|
-
if (Predicate2.isObject(group)) for (const name of Object.keys(group))
|
|
710
|
+
if (Predicate2.isObject(group)) for (const name of Object.keys(group)) listed2.add(name);
|
|
711
711
|
}
|
|
712
712
|
} catch {
|
|
713
713
|
return [];
|
|
714
714
|
}
|
|
715
|
-
return DRIVERS.flatMap(([name]) =>
|
|
715
|
+
return DRIVERS.flatMap(([name]) => listed2.has(name) ? [name] : []);
|
|
716
716
|
}
|
|
717
717
|
async function openProjectDrivers(root, path) {
|
|
718
718
|
if (path === ":memory:") return [];
|
|
@@ -1599,13 +1599,61 @@ var StoredAnalysis = Schema5.fromJsonString(
|
|
|
1599
1599
|
function findProject(from) {
|
|
1600
1600
|
const configured = process.env.REYLO_CONFIG;
|
|
1601
1601
|
if (configured) return { dir: packageDir(from), file: resolve2(configured) };
|
|
1602
|
+
let owner;
|
|
1602
1603
|
for (let dir = resolve2(from); ; dir = dirname3(dir)) {
|
|
1603
1604
|
const file = PROJECT_FILES.map((name) => join5(dir, name)).find((path) => existsSync4(path));
|
|
1604
1605
|
if (file !== void 0) return { dir, file };
|
|
1605
|
-
if (existsSync4(join5(dir, "package.json")))
|
|
1606
|
+
if (owner === void 0 && existsSync4(join5(dir, "package.json")))
|
|
1607
|
+
owner = { dir, stop: workspaceRoot(dir) ?? dir };
|
|
1608
|
+
if (dir === owner?.stop) return { dir: owner.dir };
|
|
1606
1609
|
if (dirname3(dir) === dir) return { dir: resolve2(from) };
|
|
1607
1610
|
}
|
|
1608
1611
|
}
|
|
1612
|
+
var WorkspacePatterns = Schema5.Array(Schema5.String);
|
|
1613
|
+
var PackageWorkspaces = Schema5.Struct({
|
|
1614
|
+
workspaces: Schema5.Union([WorkspacePatterns, Schema5.Struct({ packages: WorkspacePatterns })])
|
|
1615
|
+
});
|
|
1616
|
+
var PnpmWorkspace = Schema5.Struct({ packages: WorkspacePatterns });
|
|
1617
|
+
function workspaceRoot(member) {
|
|
1618
|
+
for (let dir = member; dirname3(dir) !== dir; ) {
|
|
1619
|
+
dir = dirname3(dir);
|
|
1620
|
+
const patterns = workspacePatterns(dir);
|
|
1621
|
+
if (patterns !== void 0) return listed(relative2(dir, member), patterns) ? dir : void 0;
|
|
1622
|
+
}
|
|
1623
|
+
return void 0;
|
|
1624
|
+
}
|
|
1625
|
+
function listed(path, patterns) {
|
|
1626
|
+
const posixPath = path.split(sep).join("/");
|
|
1627
|
+
const matches = (pattern) => posix.matchesGlob(posixPath, pattern.replace(/^\.\//u, "").replace(/\/+$/u, ""));
|
|
1628
|
+
return patterns.some((pattern) => !pattern.startsWith("!") && matches(pattern)) && !patterns.some((pattern) => pattern.startsWith("!") && matches(pattern.slice(1)));
|
|
1629
|
+
}
|
|
1630
|
+
function workspacePatterns(dir) {
|
|
1631
|
+
const pnpm = join5(dir, "pnpm-workspace.yaml");
|
|
1632
|
+
if (existsSync4(pnpm)) {
|
|
1633
|
+
let parsed2;
|
|
1634
|
+
try {
|
|
1635
|
+
parsed2 = parseDocument(readFileSync4(pnpm, "utf8")).toJS();
|
|
1636
|
+
} catch {
|
|
1637
|
+
return [];
|
|
1638
|
+
}
|
|
1639
|
+
return Option5.match(Schema5.decodeUnknownOption(PnpmWorkspace)(parsed2), {
|
|
1640
|
+
onNone: () => [],
|
|
1641
|
+
onSome: (workspace) => workspace.packages
|
|
1642
|
+
});
|
|
1643
|
+
}
|
|
1644
|
+
const manifest = join5(dir, "package.json");
|
|
1645
|
+
if (!existsSync4(manifest)) return void 0;
|
|
1646
|
+
let parsed;
|
|
1647
|
+
try {
|
|
1648
|
+
parsed = JSON.parse(readFileSync4(manifest, "utf8"));
|
|
1649
|
+
} catch {
|
|
1650
|
+
return void 0;
|
|
1651
|
+
}
|
|
1652
|
+
return Option5.match(Schema5.decodeUnknownOption(PackageWorkspaces)(parsed), {
|
|
1653
|
+
onNone: () => void 0,
|
|
1654
|
+
onSome: ({ workspaces }) => "packages" in workspaces ? workspaces.packages : workspaces
|
|
1655
|
+
});
|
|
1656
|
+
}
|
|
1609
1657
|
function projectDirectory(from) {
|
|
1610
1658
|
return findProject(from).dir;
|
|
1611
1659
|
}
|
|
@@ -3681,7 +3729,7 @@ var configDirectories = Effect8.fn("Mapper.configDirectories")(function* (projec
|
|
|
3681
3729
|
const dirs = /* @__PURE__ */ new Set([root, ...nested.flat().map((file) => dirname5(file))]);
|
|
3682
3730
|
const candidates = /* @__PURE__ */ new Set();
|
|
3683
3731
|
for (const query of queries) {
|
|
3684
|
-
for (let dir = dirname5(query); !dirs.has(dir) && dir
|
|
3732
|
+
for (let dir = dirname5(query); !dirs.has(dir) && dirname5(dir) !== dir; ) {
|
|
3685
3733
|
for (const name of PROJECT_FILES) candidates.add(join7(dir, name));
|
|
3686
3734
|
dir = dirname5(dir);
|
|
3687
3735
|
}
|
package/dist/vite-owner.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/vite-owner.ts
|
|
2
2
|
import { statSync as statSync3 } from "node:fs";
|
|
3
|
-
import { basename as basename2, dirname as dirname5, join as join7, sep } from "node:path";
|
|
3
|
+
import { basename as basename2, dirname as dirname5, join as join7, sep as sep2 } from "node:path";
|
|
4
4
|
import {
|
|
5
5
|
Cause,
|
|
6
6
|
Deferred,
|
|
@@ -302,8 +302,8 @@ import { Effect as Effect7, FileSystem as FileSystem3, Option as Option6 } from
|
|
|
302
302
|
|
|
303
303
|
// src/analysis.ts
|
|
304
304
|
import { createHash as createHash3, randomUUID } from "node:crypto";
|
|
305
|
-
import { existsSync as existsSync4 } from "node:fs";
|
|
306
|
-
import { dirname as dirname3, join as join5, relative as relative2, resolve as resolve2 } from "node:path";
|
|
305
|
+
import { existsSync as existsSync4, readFileSync as readFileSync4 } from "node:fs";
|
|
306
|
+
import { dirname as dirname3, join as join5, posix, relative as relative2, resolve as resolve2, sep } from "node:path";
|
|
307
307
|
import {
|
|
308
308
|
Effect as Effect3,
|
|
309
309
|
Exit,
|
|
@@ -697,12 +697,12 @@ var DIALECTS = ["postgres", "sqlite", "mysql"];
|
|
|
697
697
|
function declaredEngines(dir) {
|
|
698
698
|
try {
|
|
699
699
|
const parsed = JSON.parse(readFileSync(join2(dir, "package.json"), "utf8"));
|
|
700
|
-
const
|
|
700
|
+
const listed2 = /* @__PURE__ */ new Set();
|
|
701
701
|
for (const key of ["dependencies", "devDependencies", "optionalDependencies"]) {
|
|
702
702
|
const group = Predicate2.hasProperty(parsed, key) ? parsed[key] : void 0;
|
|
703
|
-
if (Predicate2.isObject(group)) for (const name of Object.keys(group))
|
|
703
|
+
if (Predicate2.isObject(group)) for (const name of Object.keys(group)) listed2.add(name);
|
|
704
704
|
}
|
|
705
|
-
return DIALECTS.filter((dialect) =>
|
|
705
|
+
return DIALECTS.filter((dialect) => listed2.has(ENGINE_PACKAGES[dialect]));
|
|
706
706
|
} catch {
|
|
707
707
|
return [];
|
|
708
708
|
}
|
|
@@ -999,17 +999,17 @@ function wranglerVersion(entry) {
|
|
|
999
999
|
function projectDrivers(root) {
|
|
1000
1000
|
const file = join3(packageDir(root), "package.json");
|
|
1001
1001
|
if (!existsSync2(file)) return [];
|
|
1002
|
-
const
|
|
1002
|
+
const listed2 = /* @__PURE__ */ new Set();
|
|
1003
1003
|
try {
|
|
1004
1004
|
const parsed = JSON.parse(readFileSync2(file, "utf8"));
|
|
1005
1005
|
for (const key of ["dependencies", "devDependencies", "optionalDependencies"]) {
|
|
1006
1006
|
const group = Predicate3.hasProperty(parsed, key) ? parsed[key] : void 0;
|
|
1007
|
-
if (Predicate3.isObject(group)) for (const name of Object.keys(group))
|
|
1007
|
+
if (Predicate3.isObject(group)) for (const name of Object.keys(group)) listed2.add(name);
|
|
1008
1008
|
}
|
|
1009
1009
|
} catch {
|
|
1010
1010
|
return [];
|
|
1011
1011
|
}
|
|
1012
|
-
return DRIVERS.flatMap(([name]) =>
|
|
1012
|
+
return DRIVERS.flatMap(([name]) => listed2.has(name) ? [name] : []);
|
|
1013
1013
|
}
|
|
1014
1014
|
async function openProjectDrivers(root, path) {
|
|
1015
1015
|
if (path === ":memory:") return [];
|
|
@@ -1566,13 +1566,61 @@ var StoredAnalysis = Schema4.fromJsonString(
|
|
|
1566
1566
|
function findProject(from) {
|
|
1567
1567
|
const configured = process.env.REYLO_CONFIG;
|
|
1568
1568
|
if (configured) return { dir: packageDir(from), file: resolve2(configured) };
|
|
1569
|
+
let owner;
|
|
1569
1570
|
for (let dir = resolve2(from); ; dir = dirname3(dir)) {
|
|
1570
1571
|
const file = PROJECT_FILES.map((name) => join5(dir, name)).find((path) => existsSync4(path));
|
|
1571
1572
|
if (file !== void 0) return { dir, file };
|
|
1572
|
-
if (existsSync4(join5(dir, "package.json")))
|
|
1573
|
+
if (owner === void 0 && existsSync4(join5(dir, "package.json")))
|
|
1574
|
+
owner = { dir, stop: workspaceRoot(dir) ?? dir };
|
|
1575
|
+
if (dir === owner?.stop) return { dir: owner.dir };
|
|
1573
1576
|
if (dirname3(dir) === dir) return { dir: resolve2(from) };
|
|
1574
1577
|
}
|
|
1575
1578
|
}
|
|
1579
|
+
var WorkspacePatterns = Schema4.Array(Schema4.String);
|
|
1580
|
+
var PackageWorkspaces = Schema4.Struct({
|
|
1581
|
+
workspaces: Schema4.Union([WorkspacePatterns, Schema4.Struct({ packages: WorkspacePatterns })])
|
|
1582
|
+
});
|
|
1583
|
+
var PnpmWorkspace = Schema4.Struct({ packages: WorkspacePatterns });
|
|
1584
|
+
function workspaceRoot(member) {
|
|
1585
|
+
for (let dir = member; dirname3(dir) !== dir; ) {
|
|
1586
|
+
dir = dirname3(dir);
|
|
1587
|
+
const patterns = workspacePatterns(dir);
|
|
1588
|
+
if (patterns !== void 0) return listed(relative2(dir, member), patterns) ? dir : void 0;
|
|
1589
|
+
}
|
|
1590
|
+
return void 0;
|
|
1591
|
+
}
|
|
1592
|
+
function listed(path, patterns) {
|
|
1593
|
+
const posixPath = path.split(sep).join("/");
|
|
1594
|
+
const matches = (pattern) => posix.matchesGlob(posixPath, pattern.replace(/^\.\//u, "").replace(/\/+$/u, ""));
|
|
1595
|
+
return patterns.some((pattern) => !pattern.startsWith("!") && matches(pattern)) && !patterns.some((pattern) => pattern.startsWith("!") && matches(pattern.slice(1)));
|
|
1596
|
+
}
|
|
1597
|
+
function workspacePatterns(dir) {
|
|
1598
|
+
const pnpm = join5(dir, "pnpm-workspace.yaml");
|
|
1599
|
+
if (existsSync4(pnpm)) {
|
|
1600
|
+
let parsed2;
|
|
1601
|
+
try {
|
|
1602
|
+
parsed2 = parseDocument(readFileSync4(pnpm, "utf8")).toJS();
|
|
1603
|
+
} catch {
|
|
1604
|
+
return [];
|
|
1605
|
+
}
|
|
1606
|
+
return Option4.match(Schema4.decodeUnknownOption(PnpmWorkspace)(parsed2), {
|
|
1607
|
+
onNone: () => [],
|
|
1608
|
+
onSome: (workspace) => workspace.packages
|
|
1609
|
+
});
|
|
1610
|
+
}
|
|
1611
|
+
const manifest = join5(dir, "package.json");
|
|
1612
|
+
if (!existsSync4(manifest)) return void 0;
|
|
1613
|
+
let parsed;
|
|
1614
|
+
try {
|
|
1615
|
+
parsed = JSON.parse(readFileSync4(manifest, "utf8"));
|
|
1616
|
+
} catch {
|
|
1617
|
+
return void 0;
|
|
1618
|
+
}
|
|
1619
|
+
return Option4.match(Schema4.decodeUnknownOption(PackageWorkspaces)(parsed), {
|
|
1620
|
+
onNone: () => void 0,
|
|
1621
|
+
onSome: ({ workspaces }) => "packages" in workspaces ? workspaces.packages : workspaces
|
|
1622
|
+
});
|
|
1623
|
+
}
|
|
1576
1624
|
function projectDirectory(from) {
|
|
1577
1625
|
return findProject(from).dir;
|
|
1578
1626
|
}
|
|
@@ -4199,11 +4247,11 @@ function collect(project, changed) {
|
|
|
4199
4247
|
}
|
|
4200
4248
|
function nestedProjectFile(key, path) {
|
|
4201
4249
|
const name = basename2(path);
|
|
4202
|
-
return PROJECT_FILES.some((file) => file === name) && path.startsWith(`${key}${
|
|
4250
|
+
return PROJECT_FILES.some((file) => file === name) && path.startsWith(`${key}${sep2}`);
|
|
4203
4251
|
}
|
|
4204
4252
|
function underWatch(project, path) {
|
|
4205
4253
|
for (const dir of project.watchDirs) {
|
|
4206
|
-
if (path === dir || path.startsWith(`${dir}${
|
|
4254
|
+
if (path === dir || path.startsWith(`${dir}${sep2}`)) return true;
|
|
4207
4255
|
}
|
|
4208
4256
|
return false;
|
|
4209
4257
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reylo-effect-tooling",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "The SQL compiler host behind reylo-effect: the Node loader, Vite and esbuild plugins, and the TypeScript content mapper.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@reylosql/postgres": "0.5.0",
|
|
41
41
|
"@reylosql/sqlite": "0.5.0",
|
|
42
42
|
"effect": "4.0.6",
|
|
43
|
-
"reylo-effect": "0.5.
|
|
43
|
+
"reylo-effect": "0.5.1",
|
|
44
44
|
"vite": ">=8.0.0 <9.0.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependenciesMeta": {
|