easyeda-mcp-pro 0.34.4 → 0.35.0

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.
@@ -90,6 +90,40 @@ export function extractCreatedPrimitiveId(result) {
90
90
  const direct = firstCreatedPrimitiveId(CREATED_ID_KEYS.map((key) => record[key]));
91
91
  return direct ?? firstCreatedPrimitiveId(CREATED_ID_NESTED_KEYS.map((key) => record[key]));
92
92
  }
93
+ function asPinNoConnectSnapshot(value) {
94
+ if (!value || typeof value !== 'object' || Array.isArray(value))
95
+ return undefined;
96
+ const snapshot = value;
97
+ if (snapshot.schemaVersion !== 'schematic-pin-no-connect-snapshot/v1' ||
98
+ typeof snapshot.projectId !== 'string' ||
99
+ typeof snapshot.componentPrimitiveId !== 'string' ||
100
+ typeof snapshot.pinPrimitiveId !== 'string' ||
101
+ typeof snapshot.pinNumber !== 'string' ||
102
+ typeof snapshot.noConnected !== 'boolean') {
103
+ return undefined;
104
+ }
105
+ return snapshot;
106
+ }
107
+ async function readPinNoConnectSnapshot(bridge, expected) {
108
+ const state = await bridge.call('schematic.getPinNoConnect', {
109
+ projectId: expected.projectId,
110
+ primitiveId: expected.componentPrimitiveId,
111
+ pinNumber: expected.pinNumber,
112
+ });
113
+ if (typeof state?.pinPrimitiveId !== 'string' || typeof state?.noConnected !== 'boolean') {
114
+ throw new TypeError('Pin no-connect rollback verification returned an invalid state');
115
+ }
116
+ return {
117
+ schemaVersion: 'schematic-pin-no-connect-snapshot/v1',
118
+ projectId: expected.projectId,
119
+ componentPrimitiveId: typeof state.componentPrimitiveId === 'string'
120
+ ? state.componentPrimitiveId
121
+ : expected.componentPrimitiveId,
122
+ pinPrimitiveId: state.pinPrimitiveId,
123
+ pinNumber: typeof state.pinNumber === 'string' ? state.pinNumber : expected.pinNumber,
124
+ noConnected: state.noConnected,
125
+ };
126
+ }
93
127
  function requireBeforeSnapshot(operation) {
94
128
  if (operation.beforeSnapshot === undefined) {
95
129
  throw new Error(`Operation ${operation.id} has no rollback snapshot`);
@@ -103,11 +137,21 @@ export async function rollbackEasyedaTransaction(manager, transactionId, bridge)
103
137
  case 'create':
104
138
  await deletePrimitiveExact(bridge, operation.target.id);
105
139
  return;
106
- case 'modify':
107
- await bridge.call('schematic.restorePrimitiveSnapshot', {
108
- snapshot: requireBeforeSnapshot(operation),
109
- });
140
+ case 'modify': {
141
+ const snapshot = requireBeforeSnapshot(operation);
142
+ const pinSnapshot = asPinNoConnectSnapshot(snapshot);
143
+ if (pinSnapshot) {
144
+ await bridge.call('schematic.setPinNoConnect', {
145
+ projectId: pinSnapshot.projectId,
146
+ primitiveId: pinSnapshot.componentPrimitiveId,
147
+ pinNumber: pinSnapshot.pinNumber,
148
+ noConnected: pinSnapshot.noConnected,
149
+ });
150
+ return;
151
+ }
152
+ await bridge.call('schematic.restorePrimitiveSnapshot', { snapshot });
110
153
  return;
154
+ }
111
155
  case 'delete': {
112
156
  const recreated = await recreatePrimitiveSnapshot(bridge, requireBeforeSnapshot(operation));
113
157
  return { restoredTargetId: recreated.primitiveId };
@@ -118,8 +162,11 @@ export async function rollbackEasyedaTransaction(manager, transactionId, bridge)
118
162
  if (operation.kind === 'create') {
119
163
  return !(await primitiveExists(bridge, operation.target.id));
120
164
  }
121
- const targetId = restoreResult.restoredTargetId ?? operation.target.id;
122
- const snapshot = await getPrimitiveSnapshot(bridge, targetId);
165
+ const beforeSnapshot = requireBeforeSnapshot(operation);
166
+ const pinSnapshot = asPinNoConnectSnapshot(beforeSnapshot);
167
+ const snapshot = pinSnapshot
168
+ ? await readPinNoConnectSnapshot(bridge, pinSnapshot)
169
+ : await getPrimitiveSnapshot(bridge, restoreResult.restoredTargetId ?? operation.target.id);
123
170
  if (!operation.beforeHash)
124
171
  return false;
125
172
  return (stableHash(snapshotForHash(snapshot, operation.snapshotHashMode)) === operation.beforeHash);
@@ -1 +1 @@
1
- {"version":3,"file":"easyeda.js","sourceRoot":"","sources":["../../src/transactions/easyeda.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"easyeda.js","sourceRoot":"","sources":["../../src/transactions/easyeda.ts"],"names":[],"mappings":"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"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easyeda-mcp-pro",
3
- "version": "0.34.4",
3
+ "version": "0.35.0",
4
4
  "mcpName": "io.github.oaslananka/easyeda-mcp-pro",
5
5
  "description": "MCP server for EasyEDA Pro: PCB inspection, BOM, exports, and hardware review.",
6
6
  "keywords": [
@@ -84,7 +84,12 @@
84
84
  "security:semgrep:test": "node scripts/test-semgrep-rules.mjs",
85
85
  "security:snyk:oss": "corepack pnpm dlx snyk@1.1306.1 test --all-projects --severity-threshold=high",
86
86
  "security:snyk:code": "corepack pnpm dlx snyk@1.1306.1 code test --severity-threshold=high",
87
- "security:snyk": "pnpm security:snyk:oss && pnpm security:snyk:code"
87
+ "security:snyk": "pnpm security:snyk:oss && pnpm security:snyk:code",
88
+ "test:coverage:ci": "node -e \"require('node:fs').mkdirSync('reports',{recursive:true})\" && vitest run --coverage --reporter=default --reporter=junit --outputFile.junit=reports/server.junit.xml",
89
+ "test:extension:ci": "node -e \"require('node:fs').mkdirSync('reports',{recursive:true})\" && pnpm --filter @easyeda-mcp-pro/bridge-extension exec vitest run --coverage --reporter=default --reporter=junit --outputFile.junit=../reports/extension.junit.xml",
90
+ "check:extension-size": "node scripts/check-extension-size-budget.mjs",
91
+ "validate:codecov": "curl --fail-with-body --silent --show-error --retry 3 --retry-all-errors --data-binary @codecov.yml https://codecov.io/validate",
92
+ "analyze:extension-bundle:ci": "bundle-analyzer easyeda-bridge-extension/dist --bundle-name=easyeda-bridge-extension --upload-token=$CODECOV_TOKEN --ignore-patterns='*.map' --ignore-patterns='*.json'"
88
93
  },
89
94
  "dependencies": {
90
95
  "@modelcontextprotocol/sdk": "^1.29.0",
@@ -96,6 +101,7 @@
96
101
  "zod": "^4.4.3"
97
102
  },
98
103
  "devDependencies": {
104
+ "@codecov/bundle-analyzer": "2.0.1",
99
105
  "@eslint/js": "^10.0.1",
100
106
  "@jlceda/pro-api-types": "^0.3.5",
101
107
  "@types/express": "^5.0.6",