@liquidmetal-ai/drizzle 0.0.4 → 0.1.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/.changeset/slow-guests-stare.md +7 -0
- package/.changeset/tasty-tigers-wash.md +6 -0
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +211 -0
- package/dist/appify/build.d.ts +1 -0
- package/dist/appify/build.d.ts.map +1 -1
- package/dist/appify/build.js +4 -3
- package/dist/appify/build.test.js +1 -3
- package/dist/appify/index.test.js +2 -2
- package/dist/appify/parse.test.js +0 -1
- package/dist/appify/validate.d.ts.map +1 -1
- package/dist/appify/validate.js +34 -7
- package/dist/appify/validate.test.js +119 -26
- package/dist/codestore.d.ts +40 -0
- package/dist/codestore.d.ts.map +1 -1
- package/dist/codestore.js +15 -0
- package/dist/liquidmetal/v1alpha1/catalog_connect.d.ts +12 -12
- package/dist/liquidmetal/v1alpha1/catalog_connect.d.ts.map +1 -1
- package/dist/liquidmetal/v1alpha1/catalog_connect.js +12 -12
- package/dist/liquidmetal/v1alpha1/catalog_pb.d.ts +119 -77
- package/dist/liquidmetal/v1alpha1/catalog_pb.d.ts.map +1 -1
- package/dist/liquidmetal/v1alpha1/catalog_pb.js +177 -107
- package/dist/raindrop/index.d.ts +2 -0
- package/dist/raindrop/index.d.ts.map +1 -0
- package/dist/raindrop/index.js +4 -0
- package/dist/raindrop/index.test.d.ts +2 -0
- package/dist/raindrop/index.test.d.ts.map +1 -0
- package/dist/raindrop/index.test.js +5 -0
- package/dist/unsafe/codestore.d.ts +5 -0
- package/dist/unsafe/codestore.d.ts.map +1 -1
- package/dist/unsafe/codestore.js +5 -1
- package/dist/unsafe/framework.d.ts +11 -0
- package/dist/unsafe/framework.d.ts.map +1 -0
- package/dist/unsafe/framework.js +96 -0
- package/dist/unsafe/framework.test.d.ts +2 -0
- package/dist/unsafe/framework.test.d.ts.map +1 -0
- package/dist/unsafe/framework.test.js +175 -0
- package/eslint.config.mjs +1 -2
- package/package.json +1 -1
- package/src/appify/build.test.ts +1 -3
- package/src/appify/build.ts +4 -3
- package/src/appify/index.test.ts +2 -2
- package/src/appify/parse.test.ts +0 -1
- package/src/appify/validate.test.ts +123 -26
- package/src/appify/validate.ts +39 -7
- package/src/codestore.ts +40 -1
- package/src/liquidmetal/v1alpha1/catalog_connect.ts +12 -12
- package/src/liquidmetal/v1alpha1/catalog_pb.ts +213 -127
- package/src/raindrop/index.test.ts +6 -0
- package/src/raindrop/index.ts +4 -0
- package/src/unsafe/codestore.ts +7 -3
- package/src/unsafe/framework.test.ts +205 -0
- package/src/unsafe/framework.ts +113 -0
- package/tsconfig.json +3 -9
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { exec } from 'node:child_process';
|
|
2
|
+
import { lstat } from 'node:fs/promises';
|
|
3
|
+
import { dirname, join, parse } from 'node:path';
|
|
4
|
+
import { promisify } from 'node:util';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The name of the framework package
|
|
8
|
+
*/
|
|
9
|
+
export const FRAMEWORK_PACKAGE = '@liquidmetal-ai/raindrop-framework';
|
|
10
|
+
|
|
11
|
+
const execAsync = promisify(exec);
|
|
12
|
+
|
|
13
|
+
interface NpmListDependency {
|
|
14
|
+
version: string;
|
|
15
|
+
dependencies?: Record<string, NpmListDependency>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
interface NpmListOutput {
|
|
19
|
+
dependencies: Record<string, NpmListDependency>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function findDependencyVersion(
|
|
23
|
+
deps: Record<string, NpmListDependency> | undefined,
|
|
24
|
+
packageName: string,
|
|
25
|
+
): string | null {
|
|
26
|
+
if (!deps) return null;
|
|
27
|
+
|
|
28
|
+
if (deps[packageName]) {
|
|
29
|
+
return deps[packageName].version;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
for (const dep of Object.values(deps)) {
|
|
33
|
+
if (dep.dependencies) {
|
|
34
|
+
const version = findDependencyVersion(dep.dependencies, packageName);
|
|
35
|
+
if (version) return version;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async function fileExists(path: string): Promise<boolean> {
|
|
42
|
+
try {
|
|
43
|
+
await lstat(path);
|
|
44
|
+
return true;
|
|
45
|
+
} catch {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function detectPackageManager(dir: string): Promise<'npm' | 'yarn' | 'pnpm' | null> {
|
|
51
|
+
if (await fileExists(join(dir, 'package-lock.json'))) return 'npm';
|
|
52
|
+
if (await fileExists(join(dir, 'yarn.lock'))) return 'yarn';
|
|
53
|
+
if (await fileExists(join(dir, 'pnpm-lock.yaml'))) return 'pnpm';
|
|
54
|
+
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const getVersionFromCommand = async (
|
|
59
|
+
packageName: string,
|
|
60
|
+
packageManager: 'npm' | 'yarn' | 'pnpm',
|
|
61
|
+
): Promise<string | null> => {
|
|
62
|
+
try {
|
|
63
|
+
const command = {
|
|
64
|
+
npm: `npm list ${packageName} --json`,
|
|
65
|
+
yarn: `yarn list --pattern "${packageName}" --json`,
|
|
66
|
+
pnpm: `pnpm list ${packageName} --json`,
|
|
67
|
+
}[packageManager];
|
|
68
|
+
|
|
69
|
+
const { stdout } = await execAsync(command);
|
|
70
|
+
if (packageManager === 'yarn') {
|
|
71
|
+
const lines = stdout.split('\n').filter((line) => line.trim());
|
|
72
|
+
for (const line of lines) {
|
|
73
|
+
const parsed = JSON.parse(line);
|
|
74
|
+
if (parsed.data?.trees) {
|
|
75
|
+
const match = parsed.data.trees.find((t: { name: string }) => t.name === packageName);
|
|
76
|
+
if (match) return match.version;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
} else {
|
|
80
|
+
const data = JSON.parse(stdout) as NpmListOutput;
|
|
81
|
+
return findDependencyVersion(data.dependencies, packageName);
|
|
82
|
+
}
|
|
83
|
+
} catch (error) {
|
|
84
|
+
console.error(`Error executing ${packageManager} list command:`, error);
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Get the version of a package in the current project
|
|
92
|
+
* @param packageName The name of the package to find
|
|
93
|
+
* @returns The version of the package, or null if not found
|
|
94
|
+
*/
|
|
95
|
+
export async function getPackageVersion(packageName: string): Promise<string | null> {
|
|
96
|
+
try {
|
|
97
|
+
let currentDir = process.cwd();
|
|
98
|
+
|
|
99
|
+
while (currentDir !== parse(currentDir).root) {
|
|
100
|
+
const packageManager = await detectPackageManager(currentDir);
|
|
101
|
+
if (packageManager) {
|
|
102
|
+
const version = await getVersionFromCommand(packageName, packageManager);
|
|
103
|
+
if (version) return version;
|
|
104
|
+
}
|
|
105
|
+
currentDir = dirname(currentDir);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
throw new Error('Package version not found');
|
|
109
|
+
} catch (error) {
|
|
110
|
+
console.error(`Error reading package version:`, error);
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -6,13 +6,9 @@
|
|
|
6
6
|
"esModuleInterop": true,
|
|
7
7
|
"incremental": false,
|
|
8
8
|
"isolatedModules": true,
|
|
9
|
-
"lib": [
|
|
10
|
-
"es2022",
|
|
11
|
-
"DOM",
|
|
12
|
-
"DOM.Iterable"
|
|
13
|
-
],
|
|
9
|
+
"lib": ["es2022", "DOM", "DOM.Iterable"],
|
|
14
10
|
"lib": ["ESNext"],
|
|
15
|
-
"module"
|
|
11
|
+
"module": "ESNext",
|
|
16
12
|
"moduleDetection": "force",
|
|
17
13
|
"moduleResolution": "bundler",
|
|
18
14
|
"noEmit": false,
|
|
@@ -23,9 +19,7 @@
|
|
|
23
19
|
"skipLibCheck": true,
|
|
24
20
|
"strict": true,
|
|
25
21
|
"target": "ESNext",
|
|
26
|
-
"types": [
|
|
27
|
-
"@cloudflare/workers-types"
|
|
28
|
-
]
|
|
22
|
+
"types": ["@cloudflare/workers-types"]
|
|
29
23
|
},
|
|
30
24
|
"exclude": ["eslint.config.js", "*.test.ts", "test", "tmp/**", "dist/**"]
|
|
31
25
|
}
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/codestore.test.ts","./src/codestore.ts","./src/appify/build.test.ts","./src/appify/build.ts","./src/appify/index.test.ts","./src/appify/index.ts","./src/appify/parse.test.ts","./src/appify/parse.ts","./src/appify/validate.test.ts","./src/appify/validate.ts","./src/liquidmetal/v1alpha1/catalog_connect.ts","./src/liquidmetal/v1alpha1/catalog_pb.ts","./src/liquidmetal/v1alpha1/rainbow_auth_connect.ts","./src/liquidmetal/v1alpha1/rainbow_auth_pb.ts","./src/liquidmetal/v1alpha1/rainbow_public_connect.ts","./src/liquidmetal/v1alpha1/rainbow_public_pb.ts","./src/liquidmetal/v1alpha1/raindrop_pb.ts","./src/unsafe/codestore.test.ts","./src/unsafe/codestore.ts"],"version":"5.6.3"}
|
|
1
|
+
{"root":["./src/codestore.test.ts","./src/codestore.ts","./src/appify/build.test.ts","./src/appify/build.ts","./src/appify/index.test.ts","./src/appify/index.ts","./src/appify/parse.test.ts","./src/appify/parse.ts","./src/appify/validate.test.ts","./src/appify/validate.ts","./src/liquidmetal/v1alpha1/catalog_connect.ts","./src/liquidmetal/v1alpha1/catalog_pb.ts","./src/liquidmetal/v1alpha1/rainbow_auth_connect.ts","./src/liquidmetal/v1alpha1/rainbow_auth_pb.ts","./src/liquidmetal/v1alpha1/rainbow_public_connect.ts","./src/liquidmetal/v1alpha1/rainbow_public_pb.ts","./src/liquidmetal/v1alpha1/raindrop_pb.ts","./src/raindrop/index.test.ts","./src/raindrop/index.ts","./src/unsafe/codestore.test.ts","./src/unsafe/codestore.ts","./src/unsafe/framework.test.ts","./src/unsafe/framework.ts"],"version":"5.6.3"}
|