mppx 0.5.13 → 0.5.16
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 +23 -0
- package/dist/Method.d.ts +5 -2
- package/dist/Method.d.ts.map +1 -1
- package/dist/Method.js.map +1 -1
- package/dist/mcp-sdk/server/Transport.d.ts.map +1 -1
- package/dist/mcp-sdk/server/Transport.js +8 -2
- package/dist/mcp-sdk/server/Transport.js.map +1 -1
- package/dist/server/Mppx.d.ts.map +1 -1
- package/dist/server/Mppx.js +17 -10
- package/dist/server/Mppx.js.map +1 -1
- package/dist/server/Request.js +5 -1
- package/dist/server/Request.js.map +1 -1
- package/dist/server/Transport.d.ts.map +1 -1
- package/dist/server/Transport.js +4 -0
- package/dist/server/Transport.js.map +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
- package/dist/stripe/server/internal/html.gen.js +1 -1
- package/dist/stripe/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/Methods.d.ts.map +1 -1
- package/dist/tempo/Methods.js +4 -2
- package/dist/tempo/Methods.js.map +1 -1
- package/dist/tempo/client/SessionManager.d.ts.map +1 -1
- package/dist/tempo/client/SessionManager.js +20 -10
- package/dist/tempo/client/SessionManager.js.map +1 -1
- package/dist/tempo/internal/fee-payer.d.ts +4 -1
- package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.js +99 -23
- package/dist/tempo/internal/fee-payer.js.map +1 -1
- package/dist/tempo/server/Charge.d.ts.map +1 -1
- package/dist/tempo/server/Charge.js +6 -0
- package/dist/tempo/server/Charge.js.map +1 -1
- package/dist/tempo/server/Session.d.ts +4 -0
- package/dist/tempo/server/Session.d.ts.map +1 -1
- package/dist/tempo/server/Session.js +79 -48
- package/dist/tempo/server/Session.js.map +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/server/internal/transport.d.ts +0 -7
- package/dist/tempo/server/internal/transport.d.ts.map +1 -1
- package/dist/tempo/server/internal/transport.js +84 -13
- package/dist/tempo/server/internal/transport.js.map +1 -1
- package/dist/tempo/session/Chain.d.ts +5 -0
- package/dist/tempo/session/Chain.d.ts.map +1 -1
- package/dist/tempo/session/Chain.js +202 -63
- package/dist/tempo/session/Chain.js.map +1 -1
- package/dist/tempo/session/ChannelStore.d.ts +1 -0
- package/dist/tempo/session/ChannelStore.d.ts.map +1 -1
- package/dist/tempo/session/ChannelStore.js +38 -15
- package/dist/tempo/session/ChannelStore.js.map +1 -1
- package/package.json +2 -2
- package/src/Method.ts +5 -2
- package/src/internal/changeset.test.ts +106 -0
- package/src/mcp-sdk/client/McpClient.integration.test.ts +634 -0
- package/src/mcp-sdk/server/Transport.test.ts +1 -0
- package/src/mcp-sdk/server/Transport.ts +10 -2
- package/src/proxy/Proxy.test.ts +149 -1
- package/src/server/Mppx.test.ts +120 -0
- package/src/server/Mppx.ts +27 -11
- package/src/server/Request.test.ts +46 -1
- package/src/server/Request.ts +6 -1
- package/src/server/Transport.test.ts +2 -0
- package/src/server/Transport.ts +4 -0
- package/src/stripe/server/internal/html.gen.ts +1 -1
- package/src/tempo/Methods.test.ts +13 -0
- package/src/tempo/Methods.ts +23 -16
- package/src/tempo/client/SessionManager.ts +32 -9
- package/src/tempo/internal/fee-payer.test.ts +88 -16
- package/src/tempo/internal/fee-payer.ts +118 -23
- package/src/tempo/server/Charge.test.ts +73 -0
- package/src/tempo/server/Charge.ts +6 -0
- package/src/tempo/server/Session.test.ts +934 -47
- package/src/tempo/server/Session.ts +100 -52
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/server/internal/transport.test.ts +321 -10
- package/src/tempo/server/internal/transport.ts +101 -14
- package/src/tempo/session/Chain.test.ts +225 -2
- package/src/tempo/session/Chain.ts +250 -65
- package/src/tempo/session/ChannelStore.test.ts +23 -0
- package/src/tempo/session/ChannelStore.ts +46 -13
- package/src/viem/Client.test.ts +52 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelStore.d.ts","sourceRoot":"","sources":["../../../src/tempo/session/ChannelStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,KAAK;IACpB,kEAAkE;IAClE,gBAAgB,EAAE,OAAO,CAAA;IACzB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,yDAAyD;IACzD,cAAc,EAAE,OAAO,CAAA;IACvB,kDAAkD;IAClD,SAAS,EAAE,GAAG,CAAA;IACd,iFAAiF;IACjF,gBAAgB,EAAE,MAAM,CAAA;IACxB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAA;IACf,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAA;IAClB,kEAAkE;IAClE,cAAc,EAAE,aAAa,GAAG,IAAI,CAAA;IACpC,gEAAgE;IAChE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAA;IACd,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAA;IACtB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAA;IACd,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAEjD;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAEjG;;;;;;;;;OASG;IACH,aAAa,CAAC,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7C;;;;;;OAMG;IACH,mBAAmB,CAAC,CAAC,MAAM,EACzB,SAAS,EAAE,GAAG,EACd,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GACzD,OAAO,CAAC,MAAM,CAAC,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAA;AAEvF;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,GAAG,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAoCvB;AAqBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"ChannelStore.d.ts","sourceRoot":"","sources":["../../../src/tempo/session/ChannelStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,KAAK;IACpB,kEAAkE;IAClE,gBAAgB,EAAE,OAAO,CAAA;IACzB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,yDAAyD;IACzD,cAAc,EAAE,OAAO,CAAA;IACvB,kDAAkD;IAClD,SAAS,EAAE,GAAG,CAAA;IACd,iFAAiF;IACjF,gBAAgB,EAAE,MAAM,CAAA;IACxB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAA;IACf,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAA;IAClB,kEAAkE;IAClE,cAAc,EAAE,aAAa,GAAG,IAAI,CAAA;IACpC,gEAAgE;IAChE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAA;IACd,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAA;IACtB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAA;IACd,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAEjD;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAEjG;;;;;;;;;OASG;IACH,aAAa,CAAC,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7C;;;;;;OAMG;IACH,mBAAmB,CAAC,CAAC,MAAM,EACzB,SAAS,EAAE,GAAG,EACd,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GACzD,OAAO,CAAC,MAAM,CAAC,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAA;AAEvF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAEtD;AAUD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,GAAG,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAoCvB;AAqBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,GAAG,YAAY,CA8G9E"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
export function normalizeChannelId(channelId) {
|
|
2
|
+
return channelId.toLowerCase();
|
|
3
|
+
}
|
|
4
|
+
function normalizeState(channelId, state) {
|
|
5
|
+
return state.channelId === channelId ? state : { ...state, channelId };
|
|
6
|
+
}
|
|
7
|
+
function normalizeMaybeState(channelId, state) {
|
|
8
|
+
return state ? normalizeState(channelId, state) : null;
|
|
9
|
+
}
|
|
1
10
|
/**
|
|
2
11
|
* Atomically deduct `amount` from a channel's available balance.
|
|
3
12
|
*
|
|
@@ -84,53 +93,67 @@ export function fromStore(store) {
|
|
|
84
93
|
});
|
|
85
94
|
}
|
|
86
95
|
async function updateResult(channelId, fn) {
|
|
96
|
+
const normalizedChannelId = normalizeChannelId(channelId);
|
|
87
97
|
let change;
|
|
88
98
|
if (atomicUpdate) {
|
|
89
|
-
const result = await atomicUpdate(
|
|
90
|
-
change = fn(current ?? null);
|
|
99
|
+
const result = await atomicUpdate(normalizedChannelId, (current) => {
|
|
100
|
+
change = fn(normalizeMaybeState(normalizedChannelId, current ?? null));
|
|
101
|
+
if (change.op === 'set') {
|
|
102
|
+
change = {
|
|
103
|
+
...change,
|
|
104
|
+
value: normalizeState(normalizedChannelId, change.value),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
91
107
|
if (change.op !== 'set')
|
|
92
108
|
return change;
|
|
93
109
|
return { ...change, value: change.value };
|
|
94
110
|
});
|
|
95
111
|
if (change?.op !== 'noop')
|
|
96
|
-
notify(
|
|
112
|
+
notify(normalizedChannelId);
|
|
97
113
|
return result;
|
|
98
114
|
}
|
|
99
|
-
while (locks.has(
|
|
100
|
-
await locks.get(
|
|
115
|
+
while (locks.has(normalizedChannelId))
|
|
116
|
+
await locks.get(normalizedChannelId);
|
|
101
117
|
let release;
|
|
102
|
-
locks.set(
|
|
118
|
+
locks.set(normalizedChannelId, new Promise((r) => {
|
|
103
119
|
release = r;
|
|
104
120
|
}));
|
|
105
121
|
try {
|
|
106
|
-
const current = (await store.get(
|
|
122
|
+
const current = normalizeMaybeState(normalizedChannelId, (await store.get(normalizedChannelId)));
|
|
107
123
|
change = fn(current);
|
|
108
|
-
if (change.op === 'set')
|
|
109
|
-
|
|
124
|
+
if (change.op === 'set') {
|
|
125
|
+
change = {
|
|
126
|
+
...change,
|
|
127
|
+
value: normalizeState(normalizedChannelId, change.value),
|
|
128
|
+
};
|
|
129
|
+
await store.put(normalizedChannelId, change.value);
|
|
130
|
+
}
|
|
110
131
|
if (change.op === 'delete')
|
|
111
|
-
await store.delete(
|
|
132
|
+
await store.delete(normalizedChannelId);
|
|
112
133
|
if (change.op !== 'noop')
|
|
113
|
-
notify(
|
|
134
|
+
notify(normalizedChannelId);
|
|
114
135
|
return change.result;
|
|
115
136
|
}
|
|
116
137
|
finally {
|
|
117
|
-
locks.delete(
|
|
138
|
+
locks.delete(normalizedChannelId);
|
|
118
139
|
release();
|
|
119
140
|
}
|
|
120
141
|
}
|
|
121
142
|
const cs = {
|
|
122
143
|
async getChannel(channelId) {
|
|
123
|
-
|
|
144
|
+
const normalizedChannelId = normalizeChannelId(channelId);
|
|
145
|
+
return normalizeMaybeState(normalizedChannelId, (await store.get(normalizedChannelId)));
|
|
124
146
|
},
|
|
125
147
|
async updateChannel(channelId, fn) {
|
|
126
148
|
return update(channelId, fn);
|
|
127
149
|
},
|
|
128
150
|
waitForUpdate(channelId) {
|
|
129
151
|
return new Promise((resolve) => {
|
|
130
|
-
|
|
152
|
+
const normalizedChannelId = normalizeChannelId(channelId);
|
|
153
|
+
let set = waiters.get(normalizedChannelId);
|
|
131
154
|
if (!set) {
|
|
132
155
|
set = new Set();
|
|
133
|
-
waiters.set(
|
|
156
|
+
waiters.set(normalizedChannelId, set);
|
|
134
157
|
}
|
|
135
158
|
set.add(resolve);
|
|
136
159
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelStore.js","sourceRoot":"","sources":["../../../src/tempo/session/ChannelStore.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ChannelStore.js","sourceRoot":"","sources":["../../../src/tempo/session/ChannelStore.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mppx",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.16",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"files": [
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"@modelcontextprotocol/sdk": ">=1.25.0",
|
|
106
106
|
"elysia": ">=1",
|
|
107
107
|
"express": ">=5",
|
|
108
|
-
"hono": ">=4.12.
|
|
108
|
+
"hono": ">=4.12.14",
|
|
109
109
|
"viem": ">=2.47.5"
|
|
110
110
|
},
|
|
111
111
|
"peerDependenciesMeta": {
|
package/src/Method.ts
CHANGED
|
@@ -69,6 +69,7 @@ export type AnyClient = Client<any, any>
|
|
|
69
69
|
|
|
70
70
|
/** Transport-captured request metadata used as the authoritative request snapshot. */
|
|
71
71
|
export type CapturedRequest = {
|
|
72
|
+
readonly hasBody?: boolean | undefined
|
|
72
73
|
readonly headers: Headers
|
|
73
74
|
readonly method: string
|
|
74
75
|
readonly url: URL
|
|
@@ -167,8 +168,10 @@ export type VerifyFn<method extends Method> = (
|
|
|
167
168
|
* response or generator. If it returns `undefined`, the server handler
|
|
168
169
|
* is expected to serve content via `withReceipt(response)`.
|
|
169
170
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
171
|
+
* Use `parameters.envelope?.capturedRequest` for any transport-agnostic
|
|
172
|
+
* authorization, billing, or routing decisions. The raw `input` should only
|
|
173
|
+
* be used for transport-specific response shaping (for example, HTTP content
|
|
174
|
+
* negotiation).
|
|
172
175
|
*/
|
|
173
176
|
export type RespondFn<method extends Method> = (
|
|
174
177
|
parameters: RespondContext<method>,
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as fs from 'node:fs'
|
|
2
|
+
import * as path from 'node:path'
|
|
3
|
+
|
|
4
|
+
import { describe, expect, test } from 'vp/test'
|
|
5
|
+
|
|
6
|
+
const changesetDir = path.resolve(import.meta.dirname, '../../.changeset')
|
|
7
|
+
const validPackages = new Set(['mppx'])
|
|
8
|
+
const validBumpTypes = new Set(['major', 'minor', 'patch', 'none'])
|
|
9
|
+
|
|
10
|
+
function getChangesetFiles() {
|
|
11
|
+
return fs
|
|
12
|
+
.readdirSync(changesetDir)
|
|
13
|
+
.filter((f) => f.endsWith('.md') && f !== 'README.md' && !f.startsWith('.'))
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function parseFrontmatter(content: string) {
|
|
17
|
+
const match = content.match(/^\s*---\n([^]*?)\n\s*---/)
|
|
18
|
+
if (!match) return undefined
|
|
19
|
+
return match[1]
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function parseReleases(frontmatter: string) {
|
|
23
|
+
return [...frontmatter.matchAll(/^['"]?([^'":\n]+?)['"]?\s*:\s*(.+)$/gm)].map(
|
|
24
|
+
([, name, type]) => ({ name: name!.trim(), type: type!.trim().replace(/['"]/g, '') }),
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
describe('changesets', () => {
|
|
29
|
+
const files = getChangesetFiles()
|
|
30
|
+
|
|
31
|
+
test('all changeset files have valid frontmatter fences', () => {
|
|
32
|
+
for (const file of files) {
|
|
33
|
+
const content = fs.readFileSync(path.join(changesetDir, file), 'utf-8')
|
|
34
|
+
expect(content, `${file}: must start with "---"`).toMatch(/^---\n/)
|
|
35
|
+
const closingIdx = content.indexOf('---', 3)
|
|
36
|
+
expect(closingIdx, `${file}: missing closing "---" fence`).toBeGreaterThan(3)
|
|
37
|
+
|
|
38
|
+
// closing fence must not have trailing non-whitespace (parser chokes)
|
|
39
|
+
const afterClosing = content.slice(closingIdx + 3).split('\n')[0]!
|
|
40
|
+
expect(afterClosing.trim(), `${file}: trailing characters after closing "---"`).toBe('')
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
test('all changesets reference valid packages', () => {
|
|
45
|
+
for (const file of files) {
|
|
46
|
+
const content = fs.readFileSync(path.join(changesetDir, file), 'utf-8')
|
|
47
|
+
const frontmatter = parseFrontmatter(content)
|
|
48
|
+
if (!frontmatter) continue
|
|
49
|
+
for (const { name } of parseReleases(frontmatter)) {
|
|
50
|
+
expect(
|
|
51
|
+
validPackages.has(name),
|
|
52
|
+
`${file}: unknown package "${name}" (valid: ${[...validPackages].join(', ')})`,
|
|
53
|
+
).toBe(true)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
test('all changesets use valid bump types', () => {
|
|
59
|
+
for (const file of files) {
|
|
60
|
+
const content = fs.readFileSync(path.join(changesetDir, file), 'utf-8')
|
|
61
|
+
const frontmatter = parseFrontmatter(content)
|
|
62
|
+
if (!frontmatter) continue
|
|
63
|
+
for (const { name, type } of parseReleases(frontmatter)) {
|
|
64
|
+
expect(
|
|
65
|
+
validBumpTypes.has(type),
|
|
66
|
+
`${file}: invalid bump type "${type}" for "${name}" (valid: major, minor, patch, none)`,
|
|
67
|
+
).toBe(true)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
test('no changeset uses major bump (pre-v1 policy)', () => {
|
|
73
|
+
for (const file of files) {
|
|
74
|
+
const content = fs.readFileSync(path.join(changesetDir, file), 'utf-8')
|
|
75
|
+
const frontmatter = parseFrontmatter(content)
|
|
76
|
+
if (!frontmatter) continue
|
|
77
|
+
for (const { name, type } of parseReleases(frontmatter)) {
|
|
78
|
+
expect(type, `${file}: "${name}" uses major bump — pre-v1 policy forbids this`).not.toBe(
|
|
79
|
+
'major',
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
test('all changesets have a non-empty description', () => {
|
|
86
|
+
for (const file of files) {
|
|
87
|
+
const content = fs.readFileSync(path.join(changesetDir, file), 'utf-8')
|
|
88
|
+
const match = content.match(/^\s*---[^]*?---\s*(.*)$/s)
|
|
89
|
+
expect(match?.[1]?.trim(), `${file}: changeset has an empty description`).toBeTruthy()
|
|
90
|
+
}
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
test('no duplicate package entries in frontmatter', () => {
|
|
94
|
+
for (const file of files) {
|
|
95
|
+
const content = fs.readFileSync(path.join(changesetDir, file), 'utf-8')
|
|
96
|
+
const frontmatter = parseFrontmatter(content)
|
|
97
|
+
if (!frontmatter) continue
|
|
98
|
+
const releases = parseReleases(frontmatter)
|
|
99
|
+
const seen = new Set<string>()
|
|
100
|
+
for (const { name } of releases) {
|
|
101
|
+
expect(seen.has(name), `${file}: duplicate entry for "${name}"`).toBe(false)
|
|
102
|
+
seen.add(name)
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
})
|
|
106
|
+
})
|