@absolutejs/voice 0.0.22-beta.364 → 0.0.22-beta.365
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/dist/index.js +35 -11
- package/dist/productionReadiness.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -33565,6 +33565,7 @@ var createVoiceProductionReadinessRoutes = (options) => {
|
|
|
33565
33565
|
const routes = new Elysia54({
|
|
33566
33566
|
name: options.name ?? "absolutejs-voice-production-readiness"
|
|
33567
33567
|
});
|
|
33568
|
+
let cachedReport;
|
|
33568
33569
|
const resolveOptions = async (input) => {
|
|
33569
33570
|
if (!options.resolveOptions) {
|
|
33570
33571
|
return options;
|
|
@@ -33574,14 +33575,41 @@ var createVoiceProductionReadinessRoutes = (options) => {
|
|
|
33574
33575
|
...await options.resolveOptions(input)
|
|
33575
33576
|
};
|
|
33576
33577
|
};
|
|
33577
|
-
|
|
33578
|
+
const reportCacheKey = (query, request) => {
|
|
33579
|
+
const url = new URL(request.url);
|
|
33580
|
+
const queryKey = Object.entries(query).map(([key, value]) => [key, String(value)]).sort(([left], [right]) => left.localeCompare(right)).map(([key, value]) => `${key}=${value}`).join("&");
|
|
33581
|
+
return `${url.pathname}?${queryKey}`;
|
|
33582
|
+
};
|
|
33583
|
+
const getReport = async (query, request) => {
|
|
33584
|
+
const cacheMs = typeof options.cacheMs === "number" && Number.isFinite(options.cacheMs) && options.cacheMs > 0 ? options.cacheMs : 0;
|
|
33585
|
+
const key = reportCacheKey(query, request);
|
|
33586
|
+
if (cacheMs > 0 && cachedReport && cachedReport.key === key && Date.now() - cachedReport.loadedAt <= cacheMs) {
|
|
33587
|
+
return cachedReport.value;
|
|
33588
|
+
}
|
|
33589
|
+
const value = (async () => {
|
|
33590
|
+
const resolvedOptions = await resolveOptions({ query, request });
|
|
33591
|
+
return {
|
|
33592
|
+
report: await buildVoiceProductionReadinessReport(resolvedOptions, {
|
|
33593
|
+
query,
|
|
33594
|
+
request
|
|
33595
|
+
}),
|
|
33596
|
+
resolvedOptions
|
|
33597
|
+
};
|
|
33598
|
+
})();
|
|
33599
|
+
if (cacheMs > 0) {
|
|
33600
|
+
cachedReport = {
|
|
33601
|
+
key,
|
|
33602
|
+
loadedAt: Date.now(),
|
|
33603
|
+
value
|
|
33604
|
+
};
|
|
33605
|
+
}
|
|
33606
|
+
return value;
|
|
33607
|
+
};
|
|
33608
|
+
routes.get(path, async ({ query, request }) => (await getReport(query, request)).report);
|
|
33578
33609
|
if (gatePath !== false) {
|
|
33579
33610
|
routes.get(gatePath, async ({ query, request }) => {
|
|
33580
|
-
const resolvedOptions = await
|
|
33581
|
-
const gate =
|
|
33582
|
-
query,
|
|
33583
|
-
request
|
|
33584
|
-
});
|
|
33611
|
+
const { report, resolvedOptions } = await getReport(query, request);
|
|
33612
|
+
const gate = summarizeVoiceProductionReadinessGate(report, resolvedOptions.gate || undefined);
|
|
33585
33613
|
return new Response(JSON.stringify(gate), {
|
|
33586
33614
|
headers: {
|
|
33587
33615
|
"Content-Type": "application/json; charset=utf-8",
|
|
@@ -33593,11 +33621,7 @@ var createVoiceProductionReadinessRoutes = (options) => {
|
|
|
33593
33621
|
}
|
|
33594
33622
|
if (htmlPath !== false) {
|
|
33595
33623
|
routes.get(htmlPath, async ({ query, request }) => {
|
|
33596
|
-
const resolvedOptions = await
|
|
33597
|
-
const report = await buildVoiceProductionReadinessReport(resolvedOptions, {
|
|
33598
|
-
query,
|
|
33599
|
-
request
|
|
33600
|
-
});
|
|
33624
|
+
const { report, resolvedOptions } = await getReport(query, request);
|
|
33601
33625
|
const body = await (resolvedOptions.render ?? renderVoiceProductionReadinessHTML)(report);
|
|
33602
33626
|
return new Response(body, {
|
|
33603
33627
|
headers: {
|
|
@@ -484,6 +484,7 @@ export type VoiceProductionReadinessRoutesOptions = {
|
|
|
484
484
|
query: Record<string, unknown>;
|
|
485
485
|
request: Request;
|
|
486
486
|
}) => Promise<VoiceCampaignReadinessProofReport> | VoiceCampaignReadinessProofReport);
|
|
487
|
+
cacheMs?: number;
|
|
487
488
|
deliveryRuntime?: false | VoiceDeliveryRuntime | VoiceDeliveryRuntimeSummary | ((input: {
|
|
488
489
|
query: Record<string, unknown>;
|
|
489
490
|
request: Request;
|