@aiready/deps 0.9.2 → 0.9.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/.turbo/turbo-build.log +11 -11
- package/.turbo/turbo-test.log +3 -3
- package/dist/chunk-4D7DCOHZ.mjs +97 -0
- package/dist/cli.js +4 -4
- package/dist/cli.mjs +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -4
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
- package/src/analyzer.ts +5 -5
- package/src/types.ts +2 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
> @aiready/deps@0.9.
|
|
3
|
+
> @aiready/deps@0.9.4 build /Users/pengcao/projects/aiready/packages/deps
|
|
4
4
|
> tsup src/index.ts src/cli.ts --format cjs,esm --dts
|
|
5
5
|
|
|
6
6
|
[34mCLI[39m Building entry: src/cli.ts, src/index.ts
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
[34mCJS[39m Build start
|
|
11
11
|
[34mESM[39m Build start
|
|
12
12
|
|
|
13
|
-
[43m[30m WARN [39m[49m [33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThe condition "types" here will never be used as it comes after both "import" and "require"[0m [package.json] [
|
|
13
|
+
[43m[30m WARN [39m[49m [33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThe condition "types" here will never be used as it comes after both "import" and "require"[0m [package.json] [90m9:38:41 pm[39m
|
|
14
14
|
|
|
15
15
|
package.json:32:6:
|
|
16
16
|
[37m 32 │ [32m"types"[37m: "./dist/index.d.ts"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
[43m[30m WARN [39m[49m [33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThe condition "types" here will never be used as it comes after both "import" and "require"[0m [package.json] [
|
|
34
|
+
[43m[30m WARN [39m[49m [33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThe condition "types" here will never be used as it comes after both "import" and "require"[0m [package.json] [90m9:38:41 pm[39m
|
|
35
35
|
|
|
36
36
|
package.json:32:6:
|
|
37
37
|
[37m 32 │ [32m"types"[37m: "./dist/index.d.ts"
|
|
@@ -51,16 +51,16 @@
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
[
|
|
54
|
+
[32mCJS[39m [1mdist/index.js [22m[32m3.89 KB[39m
|
|
55
|
+
[32mCJS[39m [1mdist/cli.js [22m[32m5.87 KB[39m
|
|
56
|
+
[32mCJS[39m ⚡️ Build success in 137ms
|
|
55
57
|
[32mESM[39m [1mdist/cli.mjs [22m[32m1.33 KB[39m
|
|
56
58
|
[32mESM[39m [1mdist/index.mjs [22m[32m80.00 B[39m
|
|
57
|
-
[32mESM[39m
|
|
58
|
-
[
|
|
59
|
-
[32mCJS[39m [1mdist/index.js [22m[32m3.82 KB[39m
|
|
60
|
-
[32mCJS[39m ⚡️ Build success in 114ms
|
|
59
|
+
[32mESM[39m [1mdist/chunk-4D7DCOHZ.mjs [22m[32m3.18 KB[39m
|
|
60
|
+
[32mESM[39m ⚡️ Build success in 138ms
|
|
61
61
|
DTS Build start
|
|
62
|
-
DTS ⚡️ Build success in
|
|
62
|
+
DTS ⚡️ Build success in 3723ms
|
|
63
63
|
DTS dist/cli.d.ts 108.00 B
|
|
64
|
-
DTS dist/index.d.ts
|
|
64
|
+
DTS dist/index.d.ts 857.00 B
|
|
65
65
|
DTS dist/cli.d.mts 108.00 B
|
|
66
|
-
DTS dist/index.d.mts
|
|
66
|
+
DTS dist/index.d.mts 857.00 B
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
> @aiready/deps@0.9.
|
|
3
|
+
> @aiready/deps@0.9.4 test /Users/pengcao/projects/aiready/packages/deps
|
|
4
4
|
> vitest run
|
|
5
5
|
|
|
6
6
|
[?25l
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
[2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
|
|
12
12
|
[2m Tests [22m [1m[32m1 passed[39m[22m[90m (1)[39m
|
|
13
|
-
[2m Start at [22m
|
|
14
|
-
[2m Duration [22m 1.
|
|
13
|
+
[2m Start at [22m 21:39:02
|
|
14
|
+
[2m Duration [22m 1.15s[2m (transform 169ms, setup 0ms, import 791ms, tests 6ms, environment 0ms)[22m
|
|
15
15
|
|
|
16
16
|
[?25h
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
+
}) : x)(function(x) {
|
|
4
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
// src/analyzer.ts
|
|
9
|
+
import { calculateDependencyHealth, Severity, IssueType } from "@aiready/core";
|
|
10
|
+
import { readFileSync, existsSync } from "fs";
|
|
11
|
+
import { join } from "path";
|
|
12
|
+
async function analyzeDeps(options) {
|
|
13
|
+
const rootDir = options.rootDir;
|
|
14
|
+
const packageJsonPath = join(rootDir, "package.json");
|
|
15
|
+
let totalPackages = 0;
|
|
16
|
+
let outdatedPackages = 0;
|
|
17
|
+
let deprecatedPackages = 0;
|
|
18
|
+
let trainingCutoffSkew = 0;
|
|
19
|
+
const issues = [];
|
|
20
|
+
if (existsSync(packageJsonPath)) {
|
|
21
|
+
try {
|
|
22
|
+
const content = readFileSync(packageJsonPath, "utf-8");
|
|
23
|
+
const pkg = JSON.parse(content);
|
|
24
|
+
const allDeps = {
|
|
25
|
+
...pkg.dependencies || {},
|
|
26
|
+
...pkg.devDependencies || {},
|
|
27
|
+
...pkg.peerDependencies || {}
|
|
28
|
+
};
|
|
29
|
+
const depNames = Object.keys(allDeps);
|
|
30
|
+
totalPackages = depNames.length;
|
|
31
|
+
for (const [name, version] of Object.entries(allDeps)) {
|
|
32
|
+
const vStr = String(version).replace(/[^0-9.]/g, "");
|
|
33
|
+
const major = parseInt(vStr.split(".")[0] || "0", 10);
|
|
34
|
+
if ([
|
|
35
|
+
"request",
|
|
36
|
+
"moment",
|
|
37
|
+
"tslint",
|
|
38
|
+
"mkdirp",
|
|
39
|
+
"uuid",
|
|
40
|
+
"node-uuid"
|
|
41
|
+
].includes(name) && major < 4) {
|
|
42
|
+
deprecatedPackages++;
|
|
43
|
+
issues.push({
|
|
44
|
+
type: IssueType.DependencyHealth,
|
|
45
|
+
severity: Severity.Major,
|
|
46
|
+
message: `Dependency '${name}' is known to be deprecated. AI assistants may use outdated APIs.`,
|
|
47
|
+
location: { file: packageJsonPath, line: 1 }
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (major === 0) {
|
|
51
|
+
outdatedPackages++;
|
|
52
|
+
issues.push({
|
|
53
|
+
type: IssueType.DependencyHealth,
|
|
54
|
+
severity: Severity.Minor,
|
|
55
|
+
message: `Dependency '${name}' (${version}) is pre-v1. APIs often unstable and hard for AI to predict.`,
|
|
56
|
+
location: { file: packageJsonPath, line: 1 }
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
let skewSignals = 0;
|
|
61
|
+
if (allDeps["next"] && allDeps["next"].includes("15")) skewSignals++;
|
|
62
|
+
if (allDeps["react"] && allDeps["react"].includes("19")) skewSignals++;
|
|
63
|
+
if (allDeps["typescript"] && allDeps["typescript"].includes("5.6"))
|
|
64
|
+
skewSignals++;
|
|
65
|
+
trainingCutoffSkew = totalPackages > 0 ? skewSignals / totalPackages * 5 : 0;
|
|
66
|
+
trainingCutoffSkew = Math.min(1, trainingCutoffSkew);
|
|
67
|
+
} catch {
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const riskResult = calculateDependencyHealth({
|
|
71
|
+
totalPackages,
|
|
72
|
+
outdatedPackages,
|
|
73
|
+
deprecatedPackages,
|
|
74
|
+
trainingCutoffSkew
|
|
75
|
+
});
|
|
76
|
+
return {
|
|
77
|
+
summary: {
|
|
78
|
+
filesAnalyzed: existsSync(packageJsonPath) ? 1 : 0,
|
|
79
|
+
packagesAnalyzed: totalPackages,
|
|
80
|
+
score: riskResult.score,
|
|
81
|
+
rating: riskResult.rating
|
|
82
|
+
},
|
|
83
|
+
issues,
|
|
84
|
+
rawData: {
|
|
85
|
+
totalPackages,
|
|
86
|
+
outdatedPackages,
|
|
87
|
+
deprecatedPackages,
|
|
88
|
+
trainingCutoffSkew
|
|
89
|
+
},
|
|
90
|
+
recommendations: riskResult.recommendations
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export {
|
|
95
|
+
__require,
|
|
96
|
+
analyzeDeps
|
|
97
|
+
};
|
package/dist/cli.js
CHANGED
|
@@ -71,8 +71,8 @@ async function analyzeDeps(options) {
|
|
|
71
71
|
].includes(name) && major < 4) {
|
|
72
72
|
deprecatedPackages++;
|
|
73
73
|
issues.push({
|
|
74
|
-
type:
|
|
75
|
-
severity:
|
|
74
|
+
type: import_core.IssueType.DependencyHealth,
|
|
75
|
+
severity: import_core.Severity.Major,
|
|
76
76
|
message: `Dependency '${name}' is known to be deprecated. AI assistants may use outdated APIs.`,
|
|
77
77
|
location: { file: packageJsonPath, line: 1 }
|
|
78
78
|
});
|
|
@@ -80,8 +80,8 @@ async function analyzeDeps(options) {
|
|
|
80
80
|
if (major === 0) {
|
|
81
81
|
outdatedPackages++;
|
|
82
82
|
issues.push({
|
|
83
|
-
type:
|
|
84
|
-
severity:
|
|
83
|
+
type: import_core.IssueType.DependencyHealth,
|
|
84
|
+
severity: import_core.Severity.Minor,
|
|
85
85
|
message: `Dependency '${name}' (${version}) is pre-v1. APIs often unstable and hard for AI to predict.`,
|
|
86
86
|
location: { file: packageJsonPath, line: 1 }
|
|
87
87
|
});
|
package/dist/cli.mjs
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Issue, ScanOptions } from '@aiready/core';
|
|
1
|
+
import { Issue, IssueType, ScanOptions } from '@aiready/core';
|
|
2
2
|
|
|
3
3
|
interface DepsOptions extends ScanOptions {
|
|
4
4
|
/** The year the AI model was trained. Defaults to 2023. */
|
|
5
5
|
trainingCutoffYear?: number;
|
|
6
6
|
}
|
|
7
7
|
interface DepsIssue extends Issue {
|
|
8
|
-
type:
|
|
8
|
+
type: IssueType.DependencyHealth;
|
|
9
9
|
}
|
|
10
10
|
interface DepsReport {
|
|
11
11
|
summary: {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Issue, ScanOptions } from '@aiready/core';
|
|
1
|
+
import { Issue, IssueType, ScanOptions } from '@aiready/core';
|
|
2
2
|
|
|
3
3
|
interface DepsOptions extends ScanOptions {
|
|
4
4
|
/** The year the AI model was trained. Defaults to 2023. */
|
|
5
5
|
trainingCutoffYear?: number;
|
|
6
6
|
}
|
|
7
7
|
interface DepsIssue extends Issue {
|
|
8
|
-
type:
|
|
8
|
+
type: IssueType.DependencyHealth;
|
|
9
9
|
}
|
|
10
10
|
interface DepsReport {
|
|
11
11
|
summary: {
|
package/dist/index.js
CHANGED
|
@@ -60,8 +60,8 @@ async function analyzeDeps(options) {
|
|
|
60
60
|
].includes(name) && major < 4) {
|
|
61
61
|
deprecatedPackages++;
|
|
62
62
|
issues.push({
|
|
63
|
-
type:
|
|
64
|
-
severity:
|
|
63
|
+
type: import_core.IssueType.DependencyHealth,
|
|
64
|
+
severity: import_core.Severity.Major,
|
|
65
65
|
message: `Dependency '${name}' is known to be deprecated. AI assistants may use outdated APIs.`,
|
|
66
66
|
location: { file: packageJsonPath, line: 1 }
|
|
67
67
|
});
|
|
@@ -69,8 +69,8 @@ async function analyzeDeps(options) {
|
|
|
69
69
|
if (major === 0) {
|
|
70
70
|
outdatedPackages++;
|
|
71
71
|
issues.push({
|
|
72
|
-
type:
|
|
73
|
-
severity:
|
|
72
|
+
type: import_core.IssueType.DependencyHealth,
|
|
73
|
+
severity: import_core.Severity.Minor,
|
|
74
74
|
message: `Dependency '${name}' (${version}) is pre-v1. APIs often unstable and hard for AI to predict.`,
|
|
75
75
|
location: { file: packageJsonPath, line: 1 }
|
|
76
76
|
});
|
package/dist/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiready/deps",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.5",
|
|
4
4
|
"description": "AI-Readiness: Dependency Health & Cutoff Skew",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"commander": "^14.0.0",
|
|
10
10
|
"picocolors": "^1.0.0",
|
|
11
11
|
"semver": "^7.6.0",
|
|
12
|
-
"@aiready/core": "0.19.
|
|
12
|
+
"@aiready/core": "0.19.5"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@types/node": "^24.0.0",
|
package/src/analyzer.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { calculateDependencyHealth } from '@aiready/core';
|
|
1
|
+
import { calculateDependencyHealth, Severity, IssueType } from '@aiready/core';
|
|
2
2
|
import type { DepsOptions, DepsReport, DepsIssue } from './types';
|
|
3
3
|
import { readFileSync, existsSync } from 'fs';
|
|
4
4
|
import { join } from 'path';
|
|
@@ -47,8 +47,8 @@ export async function analyzeDeps(options: DepsOptions): Promise<DepsReport> {
|
|
|
47
47
|
) {
|
|
48
48
|
deprecatedPackages++;
|
|
49
49
|
issues.push({
|
|
50
|
-
type:
|
|
51
|
-
severity:
|
|
50
|
+
type: IssueType.DependencyHealth,
|
|
51
|
+
severity: Severity.Major,
|
|
52
52
|
message: `Dependency '${name}' is known to be deprecated. AI assistants may use outdated APIs.`,
|
|
53
53
|
location: { file: packageJsonPath, line: 1 },
|
|
54
54
|
});
|
|
@@ -58,8 +58,8 @@ export async function analyzeDeps(options: DepsOptions): Promise<DepsReport> {
|
|
|
58
58
|
if (major === 0) {
|
|
59
59
|
outdatedPackages++;
|
|
60
60
|
issues.push({
|
|
61
|
-
type:
|
|
62
|
-
severity:
|
|
61
|
+
type: IssueType.DependencyHealth,
|
|
62
|
+
severity: Severity.Minor,
|
|
63
63
|
message: `Dependency '${name}' (${version}) is pre-v1. APIs often unstable and hard for AI to predict.`,
|
|
64
64
|
location: { file: packageJsonPath, line: 1 },
|
|
65
65
|
});
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ScanOptions, Issue } from '@aiready/core';
|
|
1
|
+
import type { ScanOptions, Issue, IssueType } from '@aiready/core';
|
|
2
2
|
|
|
3
3
|
export interface DepsOptions extends ScanOptions {
|
|
4
4
|
/** The year the AI model was trained. Defaults to 2023. */
|
|
@@ -6,7 +6,7 @@ export interface DepsOptions extends ScanOptions {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export interface DepsIssue extends Issue {
|
|
9
|
-
type:
|
|
9
|
+
type: IssueType.DependencyHealth;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export interface DepsReport {
|