@zapier/zapier-sdk-cli 0.14.1 → 0.15.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/CHANGELOG.md +15 -0
- package/dist/cli.cjs +6 -6
- package/dist/cli.mjs +5 -6
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/package.json +3 -1
- package/dist/src/plugins/buildManifest/index.js +1 -1
- package/dist/src/utils/version-checker.js +2 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -4
- package/src/plugins/buildManifest/index.test.ts +39 -15
- package/src/plugins/buildManifest/index.ts +1 -1
- package/src/utils/version-checker.test.ts +40 -0
- package/src/utils/version-checker.ts +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zapier/zapier-sdk-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.1",
|
|
4
4
|
"description": "Command line interface for Zapier SDK",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -44,17 +44,19 @@
|
|
|
44
44
|
"ora": "^8.2.0",
|
|
45
45
|
"package-json": "^10.0.1",
|
|
46
46
|
"pkce-challenge": "^5.0.0",
|
|
47
|
+
"semver": "^7.7.3",
|
|
47
48
|
"typescript": "^5.8.3",
|
|
48
49
|
"zod": "^3.25.67",
|
|
49
|
-
"@zapier/zapier-sdk": "0.
|
|
50
|
-
"@zapier/zapier-sdk
|
|
51
|
-
"@zapier/zapier-sdk-
|
|
50
|
+
"@zapier/zapier-sdk-cli-login": "0.3.4",
|
|
51
|
+
"@zapier/zapier-sdk": "0.15.3",
|
|
52
|
+
"@zapier/zapier-sdk-mcp": "0.3.27"
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
55
|
"@types/express": "^5.0.3",
|
|
55
56
|
"@types/inquirer": "^9.0.8",
|
|
56
57
|
"@types/jsonwebtoken": "^9.0.10",
|
|
57
58
|
"@types/node": "^24.0.1",
|
|
59
|
+
"@types/semver": "^7.7.1",
|
|
58
60
|
"tsup": "^8.5.0",
|
|
59
61
|
"vitest": "^3.2.3"
|
|
60
62
|
},
|
|
@@ -4,7 +4,6 @@ import { BuildManifestSchema } from "./schemas";
|
|
|
4
4
|
import type {
|
|
5
5
|
AppItem,
|
|
6
6
|
Manifest,
|
|
7
|
-
ManifestEntry,
|
|
8
7
|
UpdateManifestEntryOptions,
|
|
9
8
|
} from "@zapier/zapier-sdk";
|
|
10
9
|
import {
|
|
@@ -49,20 +48,20 @@ describe("buildManifest plugin", () => {
|
|
|
49
48
|
|
|
50
49
|
mockUpdateManifestEntry = vi
|
|
51
50
|
.fn()
|
|
52
|
-
.mockImplementation(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
);
|
|
51
|
+
.mockImplementation(async (options: UpdateManifestEntryOptions) => {
|
|
52
|
+
const manifestKey = options.entry.implementationName;
|
|
53
|
+
const updatedManifest: Manifest = {
|
|
54
|
+
apps: {
|
|
55
|
+
...options.manifest?.apps,
|
|
56
|
+
[manifestKey]: options.entry,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
key: manifestKey,
|
|
61
|
+
entry: options.entry,
|
|
62
|
+
manifest: updatedManifest,
|
|
63
|
+
};
|
|
64
|
+
});
|
|
66
65
|
|
|
67
66
|
mockListAppsItems = vi.fn();
|
|
68
67
|
});
|
|
@@ -81,6 +80,31 @@ describe("buildManifest plugin", () => {
|
|
|
81
80
|
.addPlugin(() => ({
|
|
82
81
|
context: {
|
|
83
82
|
updateManifestEntry: mockUpdateManifestEntry,
|
|
83
|
+
addActionEntry: vi
|
|
84
|
+
.fn()
|
|
85
|
+
.mockResolvedValue(["test-key", {}, { apps: {} }]),
|
|
86
|
+
findActionEntry: vi.fn().mockResolvedValue({
|
|
87
|
+
key: "test-key",
|
|
88
|
+
entry: {},
|
|
89
|
+
manifest: { apps: {} },
|
|
90
|
+
}),
|
|
91
|
+
hasActionEntry: vi.fn().mockResolvedValue(true),
|
|
92
|
+
listActionEntries: vi
|
|
93
|
+
.fn()
|
|
94
|
+
.mockResolvedValue([
|
|
95
|
+
[
|
|
96
|
+
"test-key",
|
|
97
|
+
{ key: "test-key", entry: {}, manifest: { apps: {} } },
|
|
98
|
+
],
|
|
99
|
+
]),
|
|
100
|
+
deleteActionEntry: vi.fn().mockResolvedValue({ apps: {} }),
|
|
101
|
+
findManifestEntry: vi
|
|
102
|
+
.fn()
|
|
103
|
+
.mockResolvedValue([
|
|
104
|
+
"test-key",
|
|
105
|
+
{ key: "test-key", entry: {}, manifest: { apps: {} } },
|
|
106
|
+
]),
|
|
107
|
+
readManifestFromFile: vi.fn().mockResolvedValue({ apps: {} }),
|
|
84
108
|
},
|
|
85
109
|
}))
|
|
86
110
|
.addPlugin(() => ({
|
|
@@ -76,7 +76,7 @@ export const buildManifestPlugin: Plugin<
|
|
|
76
76
|
version: manifestEntry.version || "",
|
|
77
77
|
});
|
|
78
78
|
|
|
79
|
-
const
|
|
79
|
+
const { key: updatedManifestKey, manifest } =
|
|
80
80
|
await context.updateManifestEntry({
|
|
81
81
|
appKey: app.key,
|
|
82
82
|
entry: manifestEntry,
|
|
@@ -68,6 +68,46 @@ describe("version-checker", () => {
|
|
|
68
68
|
});
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
+
it("should not suggest update when current version is newer than latest", async () => {
|
|
72
|
+
mockPackageJson.mockResolvedValue({
|
|
73
|
+
version: "1.0.0",
|
|
74
|
+
deprecated: false,
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const result = await checkForUpdates({
|
|
78
|
+
packageName: "test-package",
|
|
79
|
+
currentVersion: "1.0.1",
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
expect(result).toEqual({
|
|
83
|
+
hasUpdate: false,
|
|
84
|
+
latestVersion: "1.0.0",
|
|
85
|
+
currentVersion: "1.0.1",
|
|
86
|
+
isDeprecated: false,
|
|
87
|
+
deprecationMessage: undefined,
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it("should handle pre-release versions correctly", async () => {
|
|
92
|
+
mockPackageJson.mockResolvedValue({
|
|
93
|
+
version: "1.0.0-beta.2",
|
|
94
|
+
deprecated: false,
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
const result = await checkForUpdates({
|
|
98
|
+
packageName: "test-package",
|
|
99
|
+
currentVersion: "1.0.0-beta.1",
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
expect(result).toEqual({
|
|
103
|
+
hasUpdate: true,
|
|
104
|
+
latestVersion: "1.0.0-beta.2",
|
|
105
|
+
currentVersion: "1.0.0-beta.1",
|
|
106
|
+
isDeprecated: false,
|
|
107
|
+
deprecationMessage: undefined,
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
|
|
71
111
|
it("should detect when package is deprecated", async () => {
|
|
72
112
|
mockPackageJson.mockResolvedValue({
|
|
73
113
|
version: "1.0.0",
|
|
@@ -3,6 +3,7 @@ import chalk from "chalk";
|
|
|
3
3
|
import log from "./log";
|
|
4
4
|
import Conf from "conf";
|
|
5
5
|
import { getUpdateCommand } from "./package-manager-detector";
|
|
6
|
+
import semver from "semver";
|
|
6
7
|
|
|
7
8
|
interface VersionInfo {
|
|
8
9
|
hasUpdate: boolean;
|
|
@@ -147,7 +148,7 @@ export async function checkForUpdates({
|
|
|
147
148
|
// Get latest version info (with caching)
|
|
148
149
|
const latestPackageInfo = await fetchCachedPackageInfo(packageName);
|
|
149
150
|
const latestVersion = latestPackageInfo.version;
|
|
150
|
-
const hasUpdate = currentVersion
|
|
151
|
+
const hasUpdate = semver.gt(latestVersion, currentVersion);
|
|
151
152
|
|
|
152
153
|
// Check deprecation status of the current version (with caching)
|
|
153
154
|
let currentPackageInfo: CachedPackageInfo;
|