





















@@ -114,6 +114,7 @@ describe("collectPublishablePluginPackageErrors", () => {
114114packageJson: {
115115name: "@openclaw/zalo",
116116version: "2026.3.15",
117+type: "module",
117118repository: {
118119type: "git",
119120url: OPENCLAW_PLUGIN_NPM_REPOSITORY_URL,
@@ -158,6 +159,7 @@ describe("collectPublishablePluginPackageErrors", () => {
158159).toEqual([
159160'package name must start with "@openclaw/"; found "broken".',
160161"package.json private must not be true.",
162+'package.json type must be "module" so built .js runtime entries load as ESM.',
161163`package.json repository.url must be "${OPENCLAW_PLUGIN_NPM_REPOSITORY_URL}" so npm provenance can validate GitHub trusted publishing; found "<missing>".`,
162164'package.json version must match YYYY.M.PATCH, YYYY.M.PATCH-N, YYYY.M.PATCH-alpha.N, or YYYY.M.PATCH-beta.N; found "latest".',
163165"openclaw.extensions must contain only non-empty strings.",
@@ -174,6 +176,7 @@ describe("collectPublishablePluginPackageErrors", () => {
174176packageJson: {
175177name: "@openclaw/twitch",
176178version: "2026.5.1-beta.1",
179+type: "module",
177180openclaw: {
178181extensions: ["./index.ts"],
179182 ...externalPluginContract("2026.5.1-beta.1"),
@@ -200,6 +203,7 @@ describe("collectPublishablePluginPackageErrors", () => {
200203packageJson: {
201204name: "@openclaw/voice-call",
202205version: "2026.5.1-beta.1",
206+type: "module",
203207repository: {
204208type: "git",
205209url: OPENCLAW_PLUGIN_NPM_REPOSITORY_URL,
@@ -225,6 +229,7 @@ describe("collectPublishablePluginPackageErrors", () => {
225229packageJson: {
226230name: "@openclaw/voice-call",
227231version: "2026.5.1-beta.1",
232+type: "module",
228233repository: {
229234type: "git",
230235url: OPENCLAW_PLUGIN_NPM_REPOSITORY_URL,
@@ -255,6 +260,7 @@ describe("collectPublishablePluginPackageErrors", () => {
255260packageJson: {
256261name: "@openclaw/zalo",
257262version: "2026.3.15",
263+type: "module",
258264repository: {
259265type: "git",
260266url: OPENCLAW_PLUGIN_NPM_REPOSITORY_URL,
@@ -334,6 +340,7 @@ describe("collectPublishablePluginPackages", () => {
334340writeJsonFile(join(repoDir, "extensions", "demo-plugin", "package.json"), {
335341name: "@openclaw/demo-plugin",
336342version: "2026.4.10",
343+type: "module",
337344repository: {
338345type: "git",
339346url: OPENCLAW_PLUGIN_NPM_REPOSITORY_URL,
@@ -370,6 +377,7 @@ describe("collectPublishablePluginPackages", () => {
370377writeJsonFile(join(repoDir, "extensions", "demo-plugin", "package.json"), {
371378name: "@openclaw/demo-plugin",
372379version: "2026.4.10-beta.1",
380+type: "module",
373381repository: {
374382type: "git",
375383url: OPENCLAW_PLUGIN_NPM_REPOSITORY_URL,
@@ -449,6 +457,7 @@ describe("collectPublishablePluginPackages", () => {
449457writeJsonFile(join(repoDir, "extensions", "demo-plugin", "package.json"), {
450458name: "@openclaw/demo-plugin",
451459version: "2026.4.10-alpha.1",
460+type: "module",
452461repository: {
453462type: "git",
454463url: OPENCLAW_PLUGIN_NPM_REPOSITORY_URL,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。