@crvouga/mockingbird-service-llamacloud 2.1.0 → 2.2.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.
- package/CHANGELOG.md +10 -4
- package/dist/{chunk-PU3J2JN4.js → chunk-A6DLAV7K.js} +75 -6
- package/dist/chunk-A6DLAV7K.js.map +7 -0
- package/dist/{chunk-5A2QB5Z2.js → chunk-UAYEABQ5.js} +2 -2
- package/dist/cli.js +2 -2
- package/dist/index.js +1 -1
- package/dist/server.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-PU3J2JN4.js.map +0 -7
- /package/dist/{chunk-5A2QB5Z2.js.map → chunk-UAYEABQ5.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog — @crvouga/mockingbird-service-llamacloud
|
|
2
2
|
|
|
3
|
+
## 2.2.0 (2026-10-05)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- add scripted local API mock ([4a76a11](https://github.com/crvouga/mockingbird/commit/4a76a114e2efad45934e0a93cf29576fd418e15c))
|
|
8
|
+
|
|
9
|
+
### Fixes and improvements
|
|
10
|
+
|
|
11
|
+
- support embedded route parameters ([127cad9](https://github.com/crvouga/mockingbird/commit/127cad997ef106950c1b866070eea191ba54403f))
|
|
12
|
+
|
|
3
13
|
## 2.1.0 (2026-10-04)
|
|
4
14
|
|
|
5
15
|
### Features
|
|
@@ -12,10 +22,6 @@
|
|
|
12
22
|
- fill the embedded viewport ([c1a35a4](https://github.com/crvouga/mockingbird/commit/c1a35a4789389ee9cd06c286d09bd47c4d06c71e))
|
|
13
23
|
- make dialog cleanup immediate ([0c1a3c5](https://github.com/crvouga/mockingbird/commit/0c1a3c5b12584d50c19dcae595b951b8e5417b9c))
|
|
14
24
|
|
|
15
|
-
### Dependencies
|
|
16
|
-
|
|
17
|
-
- `@crvouga/mockingbird-service-sqlite`
|
|
18
|
-
|
|
19
25
|
## 2.0.0 (2026-10-04)
|
|
20
26
|
|
|
21
27
|
### ⚠️ Breaking changes
|
|
@@ -1018,7 +1018,40 @@ var decodeBody = (contentType, bytes) => {
|
|
|
1018
1018
|
return { kind: "bytes", value: bytes };
|
|
1019
1019
|
};
|
|
1020
1020
|
var readBody = async (message) => {
|
|
1021
|
-
|
|
1021
|
+
if (!(message instanceof Request) || !message.body) {
|
|
1022
|
+
if (message instanceof Request)
|
|
1023
|
+
message.signal.throwIfAborted();
|
|
1024
|
+
return decodeBody(message.headers.get("content-type"), new Uint8Array(await message.arrayBuffer()));
|
|
1025
|
+
}
|
|
1026
|
+
message.signal.throwIfAborted();
|
|
1027
|
+
const reader = message.body.getReader();
|
|
1028
|
+
const cancel = () => {
|
|
1029
|
+
void reader.cancel(message.signal.reason).catch(() => {
|
|
1030
|
+
});
|
|
1031
|
+
};
|
|
1032
|
+
message.signal.addEventListener("abort", cancel, { once: true });
|
|
1033
|
+
const chunks = [];
|
|
1034
|
+
let size = 0;
|
|
1035
|
+
try {
|
|
1036
|
+
for (; ; ) {
|
|
1037
|
+
message.signal.throwIfAborted();
|
|
1038
|
+
const { done, value } = await reader.read();
|
|
1039
|
+
message.signal.throwIfAborted();
|
|
1040
|
+
if (done)
|
|
1041
|
+
break;
|
|
1042
|
+
chunks.push(value);
|
|
1043
|
+
size += value.byteLength;
|
|
1044
|
+
}
|
|
1045
|
+
} finally {
|
|
1046
|
+
message.signal.removeEventListener("abort", cancel);
|
|
1047
|
+
reader.releaseLock();
|
|
1048
|
+
}
|
|
1049
|
+
const bytes = new Uint8Array(size);
|
|
1050
|
+
let offset = 0;
|
|
1051
|
+
for (const chunk of chunks) {
|
|
1052
|
+
bytes.set(chunk, offset);
|
|
1053
|
+
offset += chunk.byteLength;
|
|
1054
|
+
}
|
|
1022
1055
|
return decodeBody(message.headers.get("content-type"), bytes);
|
|
1023
1056
|
};
|
|
1024
1057
|
|
|
@@ -1737,7 +1770,42 @@ var verifyOperations = (document2, handlers) => {
|
|
|
1737
1770
|
}
|
|
1738
1771
|
return problems;
|
|
1739
1772
|
};
|
|
1740
|
-
var
|
|
1773
|
+
var escapePattern = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1774
|
+
var serviceRoute = (template) => {
|
|
1775
|
+
const names = [];
|
|
1776
|
+
let pattern = "", end = 0;
|
|
1777
|
+
for (const match of template.matchAll(/\{([^}]+)\}/g)) {
|
|
1778
|
+
pattern += `${escapePattern(template.slice(end, match.index))}([^/]+?)`;
|
|
1779
|
+
const name = match[1];
|
|
1780
|
+
if (!name)
|
|
1781
|
+
throw new Error(`Invalid OpenAPI route template: ${template}`);
|
|
1782
|
+
names.push(name);
|
|
1783
|
+
end = match.index + match[0].length;
|
|
1784
|
+
}
|
|
1785
|
+
pattern += escapePattern(template.slice(end));
|
|
1786
|
+
const matcher = new RegExp(`^${pattern}$`);
|
|
1787
|
+
const path = template.split("/").map((segment, index) => {
|
|
1788
|
+
if (!segment.includes("{"))
|
|
1789
|
+
return segment;
|
|
1790
|
+
const literal = /^\{([^}]+)\}$/.exec(segment);
|
|
1791
|
+
if (literal)
|
|
1792
|
+
return `:${literal[1]}`;
|
|
1793
|
+
let expression = "", offset = 0;
|
|
1794
|
+
for (const match of segment.matchAll(/\{[^}]+\}/g)) {
|
|
1795
|
+
expression += `${escapePattern(segment.slice(offset, match.index))}[^/]+?`;
|
|
1796
|
+
offset = match.index + match[0].length;
|
|
1797
|
+
}
|
|
1798
|
+
expression += escapePattern(segment.slice(offset));
|
|
1799
|
+
return `:mockingbirdSegment${index}{${expression}}`;
|
|
1800
|
+
}).join("/");
|
|
1801
|
+
return {
|
|
1802
|
+
path,
|
|
1803
|
+
params: (pathname) => {
|
|
1804
|
+
const values = matcher.exec(pathname);
|
|
1805
|
+
return Object.fromEntries(names.map((name, index) => [name, decodeURIComponent(values?.[index + 1] ?? "")]));
|
|
1806
|
+
}
|
|
1807
|
+
};
|
|
1808
|
+
};
|
|
1741
1809
|
var routeOrder = (a, b) => {
|
|
1742
1810
|
const sa = a.path.split("/");
|
|
1743
1811
|
const sb = b.path.split("/");
|
|
@@ -1772,6 +1840,7 @@ var createService = (options) => {
|
|
|
1772
1840
|
for (const operation of operations) {
|
|
1773
1841
|
const metadata = operationMetadata(operation.operation);
|
|
1774
1842
|
const handler = options.handlers[operation.operationId];
|
|
1843
|
+
const registeredRoute = serviceRoute(operation.path);
|
|
1775
1844
|
const route = async (c) => {
|
|
1776
1845
|
const request = c.req.raw;
|
|
1777
1846
|
if (!metadata.supported || !handler) {
|
|
@@ -1781,7 +1850,7 @@ var createService = (options) => {
|
|
|
1781
1850
|
const context = {
|
|
1782
1851
|
request,
|
|
1783
1852
|
url,
|
|
1784
|
-
params:
|
|
1853
|
+
params: registeredRoute.params(url.pathname),
|
|
1785
1854
|
query: queryOf(url),
|
|
1786
1855
|
body: await readBody(request),
|
|
1787
1856
|
sqlite: options.sqlite,
|
|
@@ -1793,7 +1862,7 @@ var createService = (options) => {
|
|
|
1793
1862
|
const short = await options.before?.(context);
|
|
1794
1863
|
return withIssues(request, short ?? await handler(context));
|
|
1795
1864
|
};
|
|
1796
|
-
app.on(operation.method.toUpperCase(),
|
|
1865
|
+
app.on(operation.method.toUpperCase(), registeredRoute.path, route);
|
|
1797
1866
|
}
|
|
1798
1867
|
return {
|
|
1799
1868
|
app,
|
|
@@ -2262,7 +2331,7 @@ var stateAdminRoutes = (routes) => {
|
|
|
2262
2331
|
};
|
|
2263
2332
|
|
|
2264
2333
|
// ../core/dist/version.js
|
|
2265
|
-
var PACKAGE_VERSION = true ? "2.
|
|
2334
|
+
var PACKAGE_VERSION = true ? "2.2.0" : UNRELEASED_VERSION;
|
|
2266
2335
|
|
|
2267
2336
|
// ../core/dist/webhooks.js
|
|
2268
2337
|
var json4 = (status, body) => new Response(JSON.stringify(body), {
|
|
@@ -3624,4 +3693,4 @@ export {
|
|
|
3624
3693
|
LLAMACLOUD_NAMESPACE,
|
|
3625
3694
|
LlamaCloudAPI
|
|
3626
3695
|
};
|
|
3627
|
-
//# sourceMappingURL=chunk-
|
|
3696
|
+
//# sourceMappingURL=chunk-A6DLAV7K.js.map
|