@liquidmetal-ai/drizzle 0.4.7 → 0.4.9

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.
Files changed (31) hide show
  1. package/.turbo/turbo-build.log +9 -9
  2. package/.turbo/turbo-test.log +277 -83
  3. package/CHANGELOG.md +12 -0
  4. package/dist/liquidmetal/v1alpha1/catalog_pb.d.ts +1 -1
  5. package/dist/liquidmetal/v1alpha1/catalog_pb.d.ts.map +1 -1
  6. package/dist/liquidmetal/v1alpha1/catalog_pb.js +2 -2
  7. package/dist/liquidmetal/v1alpha1/events_connect.d.ts +39 -0
  8. package/dist/liquidmetal/v1alpha1/events_connect.d.ts.map +1 -0
  9. package/dist/liquidmetal/v1alpha1/events_connect.js +43 -0
  10. package/dist/liquidmetal/v1alpha1/events_pb.d.ts +175 -0
  11. package/dist/liquidmetal/v1alpha1/events_pb.d.ts.map +1 -0
  12. package/dist/liquidmetal/v1alpha1/events_pb.js +51 -0
  13. package/dist/liquidmetal/v1alpha1/logging_pb.d.ts +87 -0
  14. package/dist/liquidmetal/v1alpha1/logging_pb.d.ts.map +1 -0
  15. package/dist/liquidmetal/v1alpha1/logging_pb.js +25 -0
  16. package/dist/liquidmetal/v1alpha1/riverjack_pb.d.ts +74 -0
  17. package/dist/liquidmetal/v1alpha1/riverjack_pb.d.ts.map +1 -0
  18. package/dist/liquidmetal/v1alpha1/riverjack_pb.js +24 -0
  19. package/dist/unsafe/framework.d.ts.map +1 -1
  20. package/dist/unsafe/framework.js +48 -12
  21. package/dist/unsafe/framework.test.js +97 -62
  22. package/eslint.config.mjs +7 -4
  23. package/package.json +14 -15
  24. package/src/liquidmetal/v1alpha1/catalog_pb.ts +3 -3
  25. package/src/liquidmetal/v1alpha1/events_connect.ts +48 -0
  26. package/src/liquidmetal/v1alpha1/events_pb.ts +210 -0
  27. package/src/liquidmetal/v1alpha1/logging_pb.ts +108 -0
  28. package/src/liquidmetal/v1alpha1/riverjack_pb.ts +92 -0
  29. package/src/unsafe/framework.test.ts +96 -64
  30. package/src/unsafe/framework.ts +50 -10
  31. package/tsconfig.tsbuildinfo +1 -1
@@ -2,6 +2,7 @@ import { exec } from 'node:child_process';
2
2
  import { lstat } from 'node:fs/promises';
3
3
  import { dirname, join, parse } from 'node:path';
4
4
  import { promisify } from 'node:util';
5
+ import { readFile } from 'node:fs/promises';
5
6
 
6
7
  /**
7
8
  * The name of the framework package
@@ -15,8 +16,23 @@ interface NpmListDependency {
15
16
  dependencies?: Record<string, NpmListDependency>;
16
17
  }
17
18
 
18
- interface NpmListOutput {
19
- dependencies: Record<string, NpmListDependency>;
19
+ async function resolveWorkspaceLink(version: string, currentDir: string): Promise<string | null> {
20
+ if (!version.startsWith('link:')) {
21
+ return version;
22
+ }
23
+
24
+ const linkPath = version.substring(5); // Remove 'link:' prefix
25
+ const absolutePath = join(currentDir, linkPath);
26
+
27
+ try {
28
+ const packageJsonPath = join(absolutePath, 'package.json');
29
+ const packageJsonContent = await readFile(packageJsonPath, 'utf8');
30
+ const packageJson = JSON.parse(packageJsonContent);
31
+ return packageJson.version || null;
32
+ } catch (error) {
33
+ console.error(`Error reading version from linked package at ${absolutePath}:`, error);
34
+ return null;
35
+ }
20
36
  }
21
37
 
22
38
  function findDependencyVersion(
@@ -48,9 +64,15 @@ async function fileExists(path: string): Promise<boolean> {
48
64
  }
49
65
 
50
66
  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';
67
+ let currentDir = dir;
68
+
69
+ while (currentDir !== parse(currentDir).root) {
70
+ if (await fileExists(join(currentDir, 'package-lock.json'))) return 'npm';
71
+ if (await fileExists(join(currentDir, 'yarn.lock'))) return 'yarn';
72
+ if (await fileExists(join(currentDir, 'pnpm-lock.yaml'))) return 'pnpm';
73
+
74
+ currentDir = dirname(currentDir);
75
+ }
54
76
 
55
77
  return null;
56
78
  }
@@ -58,6 +80,7 @@ async function detectPackageManager(dir: string): Promise<'npm' | 'yarn' | 'pnpm
58
80
  const getVersionFromCommand = async (
59
81
  packageName: string,
60
82
  packageManager: 'npm' | 'yarn' | 'pnpm',
83
+ currentDir: string,
61
84
  ): Promise<string | null> => {
62
85
  try {
63
86
  const command = {
@@ -66,19 +89,36 @@ const getVersionFromCommand = async (
66
89
  pnpm: `pnpm list ${packageName} --json`,
67
90
  }[packageManager];
68
91
 
69
- const { stdout } = await execAsync(command);
92
+ const { stdout } = await execAsync(command, { cwd: currentDir });
93
+
70
94
  if (packageManager === 'yarn') {
71
95
  const lines = stdout.split('\n').filter((line) => line.trim());
72
96
  for (const line of lines) {
73
97
  const parsed = JSON.parse(line);
74
98
  if (parsed.data?.trees) {
75
99
  const match = parsed.data.trees.find((t: { name: string }) => t.name === packageName);
76
- if (match) return match.version;
100
+ if (match) {
101
+ return await resolveWorkspaceLink(match.version, currentDir);
102
+ }
77
103
  }
78
104
  }
79
105
  } else {
80
- const data = JSON.parse(stdout) as NpmListOutput;
81
- return findDependencyVersion(data.dependencies, packageName);
106
+ const data = JSON.parse(stdout);
107
+
108
+ // Handle pnpm array format vs npm object format
109
+ let dependencies;
110
+ if (Array.isArray(data)) {
111
+ // pnpm format: array of objects
112
+ dependencies = data[0]?.dependencies;
113
+ } else {
114
+ // npm format: single object with dependencies
115
+ dependencies = data.dependencies;
116
+ }
117
+
118
+ const version = findDependencyVersion(dependencies, packageName);
119
+ if (version) {
120
+ return await resolveWorkspaceLink(version, currentDir);
121
+ }
82
122
  }
83
123
  } catch (error) {
84
124
  console.error(`Error executing ${packageManager} list command:`, error);
@@ -99,7 +139,7 @@ export async function getPackageVersion(packageName: string): Promise<string | n
99
139
  while (currentDir !== parse(currentDir).root) {
100
140
  const packageManager = await detectPackageManager(currentDir);
101
141
  if (packageManager) {
102
- const version = await getVersionFromCommand(packageName, packageManager);
142
+ const version = await getVersionFromCommand(packageName, packageManager, currentDir);
103
143
  if (version) return version;
104
144
  }
105
145
  currentDir = dirname(currentDir);
@@ -1 +1 @@
1
- {"root":["./src/codestore.test.ts","./src/codestore.ts","./src/logging.test.ts","./src/logging.ts","./src/mrn.test.ts","./src/mrn.ts","./src/ulid.test.ts","./src/ulid.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/agent_memory_name_pb.ts","./src/liquidmetal/v1alpha1/annotation_pb.ts","./src/liquidmetal/v1alpha1/bucket_name_pb.ts","./src/liquidmetal/v1alpha1/catalog_pb.ts","./src/liquidmetal/v1alpha1/object_pb.ts","./src/liquidmetal/v1alpha1/rainbow_auth_pb.ts","./src/liquidmetal/v1alpha1/raindrop_pb.ts","./src/liquidmetal/v1alpha1/search_agent_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.8.2"}
1
+ {"root":["./src/codestore.test.ts","./src/codestore.ts","./src/logging.test.ts","./src/logging.ts","./src/mrn.test.ts","./src/mrn.ts","./src/ulid.test.ts","./src/ulid.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/agent_memory_name_pb.ts","./src/liquidmetal/v1alpha1/annotation_pb.ts","./src/liquidmetal/v1alpha1/bucket_name_pb.ts","./src/liquidmetal/v1alpha1/catalog_pb.ts","./src/liquidmetal/v1alpha1/events_connect.ts","./src/liquidmetal/v1alpha1/events_pb.ts","./src/liquidmetal/v1alpha1/logging_pb.ts","./src/liquidmetal/v1alpha1/object_pb.ts","./src/liquidmetal/v1alpha1/rainbow_auth_pb.ts","./src/liquidmetal/v1alpha1/raindrop_pb.ts","./src/liquidmetal/v1alpha1/riverjack_pb.ts","./src/liquidmetal/v1alpha1/search_agent_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.8.3"}