@actuate-media/cms-core 0.76.2 → 0.77.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.
Files changed (87) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/__tests__/ai/brand-voice-alignment.test.d.ts +2 -0
  3. package/dist/__tests__/ai/brand-voice-alignment.test.d.ts.map +1 -0
  4. package/dist/__tests__/ai/brand-voice-alignment.test.js +38 -0
  5. package/dist/__tests__/ai/brand-voice-alignment.test.js.map +1 -0
  6. package/dist/__tests__/ai/brand-voice-analyze.test.d.ts +2 -0
  7. package/dist/__tests__/ai/brand-voice-analyze.test.d.ts.map +1 -0
  8. package/dist/__tests__/ai/brand-voice-analyze.test.js +117 -0
  9. package/dist/__tests__/ai/brand-voice-analyze.test.js.map +1 -0
  10. package/dist/__tests__/ai/brand-voice-document.test.d.ts +2 -0
  11. package/dist/__tests__/ai/brand-voice-document.test.d.ts.map +1 -0
  12. package/dist/__tests__/ai/brand-voice-document.test.js +74 -0
  13. package/dist/__tests__/ai/brand-voice-document.test.js.map +1 -0
  14. package/dist/__tests__/ai/brand-voice-fix.test.d.ts +2 -0
  15. package/dist/__tests__/ai/brand-voice-fix.test.d.ts.map +1 -0
  16. package/dist/__tests__/ai/brand-voice-fix.test.js +34 -0
  17. package/dist/__tests__/ai/brand-voice-fix.test.js.map +1 -0
  18. package/dist/__tests__/ai/brand-voice-sources.test.d.ts +2 -0
  19. package/dist/__tests__/ai/brand-voice-sources.test.d.ts.map +1 -0
  20. package/dist/__tests__/ai/brand-voice-sources.test.js +14 -0
  21. package/dist/__tests__/ai/brand-voice-sources.test.js.map +1 -0
  22. package/dist/__tests__/ai/brand-voice-structured.test.d.ts +2 -0
  23. package/dist/__tests__/ai/brand-voice-structured.test.d.ts.map +1 -0
  24. package/dist/__tests__/ai/brand-voice-structured.test.js +49 -0
  25. package/dist/__tests__/ai/brand-voice-structured.test.js.map +1 -0
  26. package/dist/__tests__/api/route-contracts.test.js +3 -0
  27. package/dist/__tests__/api/route-contracts.test.js.map +1 -1
  28. package/dist/__tests__/diagnostics/env.test.js +12 -1
  29. package/dist/__tests__/diagnostics/env.test.js.map +1 -1
  30. package/dist/ai/brand-voice-alignment.d.ts +17 -0
  31. package/dist/ai/brand-voice-alignment.d.ts.map +1 -0
  32. package/dist/ai/brand-voice-alignment.js +40 -0
  33. package/dist/ai/brand-voice-alignment.js.map +1 -0
  34. package/dist/ai/brand-voice-analyze.d.ts +71 -0
  35. package/dist/ai/brand-voice-analyze.d.ts.map +1 -0
  36. package/dist/ai/brand-voice-analyze.js +151 -0
  37. package/dist/ai/brand-voice-analyze.js.map +1 -0
  38. package/dist/ai/brand-voice-document.d.ts +56 -0
  39. package/dist/ai/brand-voice-document.d.ts.map +1 -0
  40. package/dist/ai/brand-voice-document.js +335 -0
  41. package/dist/ai/brand-voice-document.js.map +1 -0
  42. package/dist/ai/brand-voice-fix.d.ts +26 -0
  43. package/dist/ai/brand-voice-fix.d.ts.map +1 -0
  44. package/dist/ai/brand-voice-fix.js +97 -0
  45. package/dist/ai/brand-voice-fix.js.map +1 -0
  46. package/dist/ai/brand-voice-save.d.ts +11 -0
  47. package/dist/ai/brand-voice-save.d.ts.map +1 -0
  48. package/dist/ai/brand-voice-save.js +51 -0
  49. package/dist/ai/brand-voice-save.js.map +1 -0
  50. package/dist/ai/brand-voice-sources.d.ts +16 -0
  51. package/dist/ai/brand-voice-sources.d.ts.map +1 -0
  52. package/dist/ai/brand-voice-sources.js +106 -0
  53. package/dist/ai/brand-voice-sources.js.map +1 -0
  54. package/dist/ai/brand-voice-structured.d.ts +87 -0
  55. package/dist/ai/brand-voice-structured.d.ts.map +1 -0
  56. package/dist/ai/brand-voice-structured.js +438 -0
  57. package/dist/ai/brand-voice-structured.js.map +1 -0
  58. package/dist/ai/brand-voice.d.ts +3 -0
  59. package/dist/ai/brand-voice.d.ts.map +1 -1
  60. package/dist/ai/brand-voice.js +18 -0
  61. package/dist/ai/brand-voice.js.map +1 -1
  62. package/dist/ai/index.d.ts +7 -0
  63. package/dist/ai/index.d.ts.map +1 -1
  64. package/dist/ai/index.js +7 -0
  65. package/dist/ai/index.js.map +1 -1
  66. package/dist/ai/types.d.ts +8 -0
  67. package/dist/ai/types.d.ts.map +1 -1
  68. package/dist/api/routes/ai-seo.d.ts.map +1 -1
  69. package/dist/api/routes/ai-seo.js +22 -3
  70. package/dist/api/routes/ai-seo.js.map +1 -1
  71. package/dist/api/routes/ai-settings.d.ts.map +1 -1
  72. package/dist/api/routes/ai-settings.js +272 -7
  73. package/dist/api/routes/ai-settings.js.map +1 -1
  74. package/dist/api/routes/media.d.ts.map +1 -1
  75. package/dist/api/routes/media.js +10 -6
  76. package/dist/api/routes/media.js.map +1 -1
  77. package/dist/api/routes/saved-sections.d.ts.map +1 -1
  78. package/dist/api/routes/saved-sections.js +4 -1
  79. package/dist/api/routes/saved-sections.js.map +1 -1
  80. package/dist/brand-voice/index.d.ts +7 -0
  81. package/dist/brand-voice/index.d.ts.map +1 -0
  82. package/dist/brand-voice/index.js +7 -0
  83. package/dist/brand-voice/index.js.map +1 -0
  84. package/dist/diagnostics/env.d.ts.map +1 -1
  85. package/dist/diagnostics/env.js +18 -11
  86. package/dist/diagnostics/env.js.map +1 -1
  87. package/package.json +6 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @actuate-media/cms-core
2
2
 
3
+ ## 0.77.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d97e388: Add brand voice analysis: scan published pages and posts to draft a profile via `POST /ai/brand-voice/analyze`, with a Generate from content panel in Settings > AI.
8
+ - d97e388: Brand voice Phase 2: portable `brand-voice-profile.md` documents with export/import, an advanced markdown editor, and server-side sync between the document and quick-edit fields.
9
+ - d97e388: Brand voice Phase 3: structured rule editors (vocabulary, channel overrides, worked examples), deterministic alignment scoring via `POST /ai/brand-voice/score`, and a check-alignment panel in Settings > AI.
10
+ - d97e388: Phase 4 brand voice: wire alignment scoring into co-author and SEO field generation, add analyze-and-fix endpoint with hybrid deterministic + AI rewrite, and extend profile analyzer with SSRF-safe URL fetch and text file uploads.
11
+
12
+ ## 0.76.3
13
+
14
+ ### Patch Changes
15
+
16
+ - 7a6a140: Support Vercel Marketplace Blob auth via OIDC (`BLOB_STORE_ID` + `VERCEL_OIDC_TOKEN`) instead of requiring `BLOB_READ_WRITE_TOKEN`. Fix `@vercel/blob` client options to use `oidcToken` + `storeId` (never pass OIDC as `token`). Update env diagnostics, upload errors, and `actuate vercel:blob-link` accordingly.
17
+
3
18
  ## 0.76.2
4
19
 
5
20
  ### Patch Changes
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=brand-voice-alignment.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-alignment.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-alignment.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { alignContentWithBrandVoice, seoFieldToBrandChannel, COAUTHOR_BRAND_CHANNEL, } from '../../ai/brand-voice-alignment.js';
3
+ import { defaultStructuredProfile } from '../../ai/brand-voice-structured.js';
4
+ import { serializeBrandVoiceDocument } from '../../ai/brand-voice-document.js';
5
+ describe('brand-voice-alignment', () => {
6
+ it('maps SEO description fields to meta_description channel', () => {
7
+ expect(seoFieldToBrandChannel('metaDescription')).toBe('meta_description');
8
+ expect(seoFieldToBrandChannel('ogDescription')).toBe('meta_description');
9
+ expect(seoFieldToBrandChannel('metaTitle')).toBeUndefined();
10
+ });
11
+ it('scores copy when a profile document exists', () => {
12
+ const structured = defaultStructuredProfile();
13
+ structured.bannedTerms = [{ term: 'synergy', useInstead: 'collaboration' }];
14
+ const document = serializeBrandVoiceDocument({
15
+ fields: {
16
+ name: 'Test',
17
+ tone: 'clear',
18
+ audience: 'marketers',
19
+ guidelines: '- Be direct',
20
+ sampleText: 'Sample on-brand copy.',
21
+ },
22
+ structured,
23
+ });
24
+ const result = alignContentWithBrandVoice('We drive synergy across teams.', {
25
+ enabled: true,
26
+ name: 'Test',
27
+ tone: 'clear',
28
+ document,
29
+ }, COAUTHOR_BRAND_CHANNEL);
30
+ expect(result).not.toBeNull();
31
+ expect(result.score).toBeLessThan(100);
32
+ expect(result.issues.some((i) => i.id.startsWith('banned-'))).toBe(true);
33
+ });
34
+ it('returns null when no profile is configured', () => {
35
+ expect(alignContentWithBrandVoice('Hello', null)).toBeNull();
36
+ });
37
+ });
38
+ //# sourceMappingURL=brand-voice-alignment.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-alignment.test.js","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-alignment.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAE9E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC1E,MAAM,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACxE,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAA;QAC7C,UAAU,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAA;QAC3E,MAAM,QAAQ,GAAG,2BAA2B,CAAC;YAC3C,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,aAAa;gBACzB,UAAU,EAAE,uBAAuB;aACpC;YACD,UAAU;SACX,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,0BAA0B,CACvC,gCAAgC,EAChC;YACE,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,QAAQ;SACT,EACD,sBAAsB,CACvB,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=brand-voice-analyze.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-analyze.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-analyze.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,117 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { buildBrandVoiceAnalysisPrompt, fenceBrandVoiceSample, gatherBrandVoiceSamples, parseBrandVoiceAnalysisResponse, stripJsonFences, toBrandVoiceAnalyzeResult, } from '../../ai/brand-voice-analyze.js';
3
+ describe('fenceBrandVoiceSample', () => {
4
+ it('wraps content in delimiters and clamps length', () => {
5
+ const out = fenceBrandVoiceSample('Hello world', 5);
6
+ expect(out).toContain('<<<SAMPLE');
7
+ expect(out).toContain('Hello');
8
+ });
9
+ });
10
+ describe('buildBrandVoiceAnalysisPrompt', () => {
11
+ it('includes fenced samples and asks for JSON keys', () => {
12
+ const { system, prompt } = buildBrandVoiceAnalysisPrompt([
13
+ {
14
+ collection: 'posts',
15
+ documentId: 'd1',
16
+ title: 'Launch post',
17
+ text: 'We help teams ship faster with clear, practical guidance.',
18
+ },
19
+ ]);
20
+ expect(system).toContain('name');
21
+ expect(system).toContain('guidelines');
22
+ expect(prompt).toContain('posts / Launch post');
23
+ expect(prompt).toContain('<<<SAMPLE');
24
+ });
25
+ });
26
+ describe('parseBrandVoiceAnalysisResponse', () => {
27
+ it('parses valid JSON and normalizes fields', () => {
28
+ const draft = parseBrandVoiceAnalysisResponse(JSON.stringify({
29
+ name: 'Acme',
30
+ tone: 'confident, warm',
31
+ audience: 'B2B marketers',
32
+ guidelines: '- Do: lead with benefits',
33
+ sampleText: 'Ship with confidence.',
34
+ }));
35
+ expect(draft).toMatchObject({
36
+ name: 'Acme',
37
+ tone: 'confident, warm',
38
+ audience: 'B2B marketers',
39
+ });
40
+ });
41
+ it('strips markdown fences before parsing', () => {
42
+ const draft = parseBrandVoiceAnalysisResponse('```json\n{"name":"X","tone":"plain","guidelines":"- Be clear"}\n```');
43
+ expect(draft?.name).toBe('X');
44
+ expect(draft?.tone).toBe('plain');
45
+ });
46
+ it('returns null when tone and guidelines are both empty', () => {
47
+ expect(parseBrandVoiceAnalysisResponse('{"name":"X"}')).toBeNull();
48
+ expect(parseBrandVoiceAnalysisResponse('not json')).toBeNull();
49
+ });
50
+ });
51
+ describe('stripJsonFences', () => {
52
+ it('removes code fences', () => {
53
+ expect(stripJsonFences('```json\n{}\n```')).toBe('{}');
54
+ });
55
+ });
56
+ describe('gatherBrandVoiceSamples', () => {
57
+ it('loads published docs across collections up to maxSamples', async () => {
58
+ const findMany = vi
59
+ .fn()
60
+ .mockResolvedValueOnce([
61
+ {
62
+ id: 'p1',
63
+ collection: 'pages',
64
+ title: 'About',
65
+ plainText: 'We build tools for busy teams who need clarity and speed in every release cycle.',
66
+ data: {},
67
+ },
68
+ ])
69
+ .mockResolvedValueOnce([
70
+ {
71
+ id: 'b1',
72
+ collection: 'posts',
73
+ title: 'Hello',
74
+ plainText: 'Our blog shares practical advice for product leaders who want measurable outcomes without hype.',
75
+ data: {},
76
+ },
77
+ ]);
78
+ const samples = await gatherBrandVoiceSamples({ document: { findMany } }, { collections: ['pages', 'posts'], maxSamples: 4 });
79
+ expect(samples).toHaveLength(2);
80
+ expect(samples[0]?.documentId).toBe('p1');
81
+ expect(findMany).toHaveBeenCalledTimes(2);
82
+ });
83
+ it('skips very short documents', async () => {
84
+ const findMany = vi.fn().mockResolvedValue([
85
+ {
86
+ id: 'p1',
87
+ collection: 'pages',
88
+ title: 'Tiny',
89
+ plainText: 'Too short',
90
+ data: {},
91
+ },
92
+ ]);
93
+ const samples = await gatherBrandVoiceSamples({ document: { findMany } }, { collections: ['pages'] });
94
+ expect(samples).toHaveLength(0);
95
+ });
96
+ });
97
+ describe('toBrandVoiceAnalyzeResult', () => {
98
+ it('maps samples to source metadata', () => {
99
+ const result = toBrandVoiceAnalyzeResult({
100
+ name: 'Acme',
101
+ tone: 'warm',
102
+ audience: 'teams',
103
+ guidelines: '- Be clear',
104
+ sampleText: 'Example copy.',
105
+ }, [
106
+ {
107
+ collection: 'pages',
108
+ documentId: 'p1',
109
+ title: 'About',
110
+ text: 'About us copy that is long enough to analyze properly for tone and style.',
111
+ },
112
+ ]);
113
+ expect(result.sampleCount).toBe(1);
114
+ expect(result.sources[0]).toMatchObject({ documentId: 'p1', title: 'About' });
115
+ });
116
+ });
117
+ //# sourceMappingURL=brand-voice-analyze.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-analyze.test.js","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-analyze.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=brand-voice-document.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-document.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-document.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { deriveBrandVoiceFields, parseBrandVoiceDocument, serializeBrandVoiceDocument, splitBrandVoiceDocument, } from '../../ai/brand-voice-document.js';
3
+ import { prepareBrandVoiceForSave } from '../../ai/brand-voice-save.js';
4
+ const SAMPLE_PROFILE = serializeBrandVoiceDocument({
5
+ fields: {
6
+ name: 'Acme Marketing',
7
+ tone: 'A knowledgeable colleague who respects your time.',
8
+ audience: 'Marketing managers at mid-market B2B firms.',
9
+ guidelines: "Do:\n- Lead with the benefit\n\nDon't:\n- No hype words",
10
+ sampleText: 'We help teams ship with clarity.',
11
+ },
12
+ meta: { version: 2, status: 'draft', generatedFrom: ['collection:posts'] },
13
+ });
14
+ describe('splitBrandVoiceDocument', () => {
15
+ it('splits YAML frontmatter from markdown body', () => {
16
+ const split = splitBrandVoiceDocument(SAMPLE_PROFILE);
17
+ expect(split?.frontmatter).toContain('profile:');
18
+ expect(split?.body).toContain('# Brand Voice — Human Guidance');
19
+ });
20
+ });
21
+ describe('parseBrandVoiceDocument', () => {
22
+ it('round-trips a serialized profile', () => {
23
+ const parsed = parseBrandVoiceDocument(SAMPLE_PROFILE);
24
+ expect(parsed.ok).toBe(true);
25
+ if (!parsed.ok)
26
+ return;
27
+ expect(parsed.value.fields.name).toBe('Acme Marketing');
28
+ expect(parsed.value.fields.tone).toContain('knowledgeable colleague');
29
+ expect(parsed.value.fields.audience).toContain('Marketing managers');
30
+ expect(parsed.value.meta.version).toBe(2);
31
+ expect(parsed.value.meta.generatedFrom).toContain('collection:posts');
32
+ });
33
+ it('rejects documents without frontmatter', () => {
34
+ const parsed = parseBrandVoiceDocument('# Just markdown');
35
+ expect(parsed.ok).toBe(false);
36
+ });
37
+ });
38
+ describe('deriveBrandVoiceFields', () => {
39
+ it("extracts Do/Don't sections into guidelines", () => {
40
+ const split = splitBrandVoiceDocument(SAMPLE_PROFILE);
41
+ const fields = deriveBrandVoiceFields(split.body, split.frontmatter);
42
+ expect(fields.guidelines).toContain('Do:');
43
+ expect(fields.guidelines).toContain("Don't:");
44
+ });
45
+ });
46
+ describe('prepareBrandVoiceForSave', () => {
47
+ it('regenerates the markdown document from quick-edit fields', () => {
48
+ const saved = prepareBrandVoiceForSave({
49
+ enabled: true,
50
+ name: 'Acme',
51
+ tone: 'warm, direct',
52
+ audience: 'teams',
53
+ guidelines: 'Do:\n- Be clear',
54
+ sampleText: 'Sample paragraph.',
55
+ version: 2,
56
+ preferDocument: false,
57
+ });
58
+ expect(saved.document).toContain('brand_name: Acme');
59
+ expect(saved.document).toContain('warm, direct');
60
+ expect(saved.version).toBe(3);
61
+ });
62
+ it('trusts the markdown document when preferDocument is true', () => {
63
+ const saved = prepareBrandVoiceForSave({
64
+ enabled: true,
65
+ name: 'Stale name',
66
+ tone: 'stale tone',
67
+ document: SAMPLE_PROFILE,
68
+ preferDocument: true,
69
+ });
70
+ expect(saved.name).toBe('Acme Marketing');
71
+ expect(saved.document).toBe(SAMPLE_PROFILE.trim());
72
+ });
73
+ });
74
+ //# sourceMappingURL=brand-voice-document.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-document.test.js","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-document.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=brand-voice-fix.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-fix.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-fix.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { applyDeterministicBrandFixes, needsAiBrandFix, runDeterministicBrandFix, } from '../../ai/brand-voice-fix.js';
3
+ import { defaultStructuredProfile } from '../../ai/brand-voice-structured.js';
4
+ describe('brand-voice-fix', () => {
5
+ it('replaces banned terms and removes forbidden exclamation points', () => {
6
+ const structured = defaultStructuredProfile();
7
+ structured.bannedTerms = [{ term: 'synergy', useInstead: 'collaboration' }];
8
+ structured.mechanics.exclamationPoints = 'forbid';
9
+ const { text, fixes } = applyDeterministicBrandFixes('Unlock synergy now!', structured);
10
+ expect(text).toContain('collaboration');
11
+ expect(text).not.toContain('!');
12
+ expect(fixes.length).toBeGreaterThan(0);
13
+ });
14
+ it('improves score after deterministic fixes', () => {
15
+ const structured = defaultStructuredProfile();
16
+ structured.bannedTerms = [{ term: 'synergy', useInstead: 'collaboration' }];
17
+ const outcome = runDeterministicBrandFix('Our synergy is unmatched.', structured);
18
+ expect(outcome.afterScore.score).toBeGreaterThanOrEqual(outcome.beforeScore.score);
19
+ expect(outcome.text).toContain('collaboration');
20
+ });
21
+ it('flags when AI fix may still be needed', () => {
22
+ expect(needsAiBrandFix({
23
+ score: 72,
24
+ issues: [{ id: 'tone', severity: 'warning', message: 'Off-brand tone.' }],
25
+ dimensions: [],
26
+ })).toBe(true);
27
+ expect(needsAiBrandFix({
28
+ score: 95,
29
+ issues: [],
30
+ dimensions: [],
31
+ })).toBe(false);
32
+ });
33
+ });
34
+ //# sourceMappingURL=brand-voice-fix.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-fix.test.js","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-fix.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,wBAAwB,GACzB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAA;AAE7E,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAA;QAC7C,UAAU,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAA;QAC3E,UAAU,CAAC,SAAS,CAAC,iBAAiB,GAAG,QAAQ,CAAA;QAEjD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,4BAA4B,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAA;QAEvF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QACvC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAA;QAC7C,UAAU,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAA;QAE3E,MAAM,OAAO,GAAG,wBAAwB,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAA;QACjF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAClF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CACJ,eAAe,CAAC;YACd,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;YACzE,UAAU,EAAE,EAAE;SACf,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACZ,MAAM,CACJ,eAAe,CAAC;YACd,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;SACf,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACf,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=brand-voice-sources.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-sources.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-sources.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { BrandVoiceSourceError, uploadToBrandVoiceSample } from '../../ai/brand-voice-sources.js';
3
+ describe('brand-voice-sources', () => {
4
+ it('converts uploads into analyzer samples', () => {
5
+ const sample = uploadToBrandVoiceSample('about.md', '# About us\nWe help teams ship faster.');
6
+ expect(sample.collection).toBe('upload');
7
+ expect(sample.title).toBe('about.md');
8
+ expect(sample.text).toContain('ship faster');
9
+ });
10
+ it('rejects empty uploads', () => {
11
+ expect(() => uploadToBrandVoiceSample('empty.txt', ' ')).toThrow(BrandVoiceSourceError);
12
+ });
13
+ });
14
+ //# sourceMappingURL=brand-voice-sources.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-sources.test.js","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-sources.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAEjG,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,EAAE,wCAAwC,CAAC,CAAA;QAC7F,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC3F,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=brand-voice-structured.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-structured.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-structured.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { serializeBrandVoiceDocument } from '../../ai/brand-voice-document.js';
3
+ import { applyStructuredProfileToDocument, defaultStructuredProfile, parseStructuredProfile, scoreBrandAlignment, } from '../../ai/brand-voice-structured.js';
4
+ describe('parseStructuredProfile', () => {
5
+ it('reads vocabulary, channels, and worked examples from a profile document', () => {
6
+ const structured = defaultStructuredProfile();
7
+ structured.bannedTerms = [{ term: 'cheap', useInstead: 'affordable' }];
8
+ structured.preferredTerms = ['ecommerce'];
9
+ structured.workedExamples = [
10
+ {
11
+ offBrand: 'Our cheap tool!',
12
+ onBrand: 'Our affordable tool.',
13
+ why: 'Removed banned term and exclamation.',
14
+ },
15
+ ];
16
+ const document = applyStructuredProfileToDocument(serializeBrandVoiceDocument({
17
+ fields: {
18
+ name: 'Acme',
19
+ tone: 'plain-spoken',
20
+ audience: 'teams',
21
+ guidelines: 'Do:\n- Be clear',
22
+ sampleText: 'Sample',
23
+ },
24
+ }), structured);
25
+ const parsed = parseStructuredProfile(document);
26
+ expect(parsed.bannedTerms[0]?.term).toBe('cheap');
27
+ expect(parsed.preferredTerms).toContain('ecommerce');
28
+ expect(parsed.workedExamples[0]?.onBrand).toContain('affordable');
29
+ expect(parsed.channels.some((c) => c.id === 'meta_description')).toBe(true);
30
+ });
31
+ });
32
+ describe('scoreBrandAlignment', () => {
33
+ it('flags banned terms and exclamation points', () => {
34
+ const structured = defaultStructuredProfile();
35
+ structured.bannedTerms = [{ term: 'cheap', useInstead: 'affordable' }];
36
+ structured.mechanics.exclamationPoints = 'forbid';
37
+ const result = scoreBrandAlignment('Our cheap tool is the best!', structured);
38
+ expect(result.score).toBeLessThan(80);
39
+ expect(result.issues.some((issue) => issue.id.startsWith('banned-'))).toBe(true);
40
+ expect(result.issues.some((issue) => issue.id === 'exclamation-forbid')).toBe(true);
41
+ });
42
+ it('enforces channel character limits', () => {
43
+ const structured = defaultStructuredProfile();
44
+ const long = 'x'.repeat(180);
45
+ const result = scoreBrandAlignment(long, structured, 'meta_description');
46
+ expect(result.issues.some((issue) => issue.id === 'channel-length-meta_description')).toBe(true);
47
+ });
48
+ });
49
+ //# sourceMappingURL=brand-voice-structured.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice-structured.test.js","sourceRoot":"","sources":["../../../src/__tests__/ai/brand-voice-structured.test.ts"],"names":[],"mappings":"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"}
@@ -336,6 +336,9 @@ const ROUTE_CONTRACT = [
336
336
  ['POST /ai/providers/:id/sync-models', 401],
337
337
  ['GET /ai/models', 401],
338
338
  ['GET /ai/usage/summary', 401],
339
+ ['POST /ai/brand-voice/analyze', 401],
340
+ ['POST /ai/brand-voice/score', 401],
341
+ ['POST /ai/brand-voice/fix', 401],
339
342
  ['PUT /security', 401],
340
343
  ['POST /security/sessions/revoke-all', 401],
341
344
  ['GET /globals/:slug', 401],
@@ -1 +1 @@
1
- {"version":3,"file":"route-contracts.test.js","sourceRoot":"","sources":["../../../src/__tests__/api/route-contracts.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,yEAAyE;AAEzE;;;;GAIG;AACH,SAAS,gBAAgB;IACvB,MAAM,QAAQ,GAAG;QACf,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAC5B,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAC3B,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QACxB,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QACvB,MAAM,EAAE,KAAK,EAAE,CAAqB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAI,CAAC,EAAE,IAAe,EAAE,CAAC;QAC9E,MAAM,EAAE,KAAK,EAAE,CAAqB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAI,CAAC,EAAE,IAAe,EAAE,CAAC;QAC9E,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACtC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QACjC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QACjC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACvC,CAAA;IACD,MAAM,IAAI,GAAG;QACX,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAClC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1B,YAAY,EAAE,KAAK,EAAE,EAAW,EAAE,EAAE,CAClC,OAAO,EAAE,KAAK,UAAU;YACtB,CAAC,CAAE,EAA+B,CAAC,gBAAgB,EAAE,CAAC;YACtD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAwB,CAAC;KAC5C,CAAA;IACD,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;QACrB,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,IAAI,IAAI,IAAI,MAAM;gBAAE,OAAQ,MAA2C,CAAC,IAAI,CAAC,CAAA;YAC7E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,QAAQ,CAAA;YACzF,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;AAEhC,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,wCAAwC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,gCAAgC,CAAA;IAC1D,gBAAgB,CAAC;QACf,WAAW,EAAE;YACX;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;gBAC7C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAC1C;SACF;KACO,CAAC,CAAA;IACX,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC,CAAC,CAAA;AAEF,4EAA4E;AAC5E,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAAe;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IACvD,MAAM,IAAI,GACR,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS;QACtC,CAAC,CAAC,EAAE,MAAM,EAAE;QACZ,CAAC,CAAC;YACE,MAAM;YACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;SACzB,CAAA;IACP,0EAA0E;IAC1E,qEAAqE;IACrE,8DAA8D;IAC9D,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,sBAAsB,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,OAAO,4BAA4B,CAAC,CAAC,EAAE,IAAI,CAAC,CAC5F;KACF,CAAC,CAAA;AACJ,CAAC;AAED,yEAAyE;AAEzE,MAAM,cAAc,GAAkE;IACpF,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,WAAW,EAAE,GAAG,CAAC;IAClB,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,cAAc,EAAE,GAAG,CAAC;IACrB,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAC/B,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,oCAAoC,EAAE,GAAG,CAAC;IAC3C,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAC/B,sEAAsE;IACtE,CAAC,qCAAqC,EAAE,GAAG,CAAC;IAC5C,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,+BAA+B,EAAE,GAAG,CAAC;IACtC,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,oCAAoC,EAAE,GAAG,CAAC;IAC3C,CAAC,qCAAqC,EAAE,GAAG,CAAC;IAC5C,CAAC,6CAA6C,EAAE,GAAG,CAAC;IACpD,CAAC,iDAAiD,EAAE,GAAG,CAAC;IACxD,CAAC,kDAAkD,EAAE,GAAG,CAAC;IACzD,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,YAAY,EAAE,GAAG,CAAC;IACnB,CAAC,YAAY,EAAE,GAAG,CAAC;IACnB,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,aAAa,EAAE,GAAG,CAAC;IACpB,CAAC,YAAY,EAAE,GAAG,CAAC;IACnB,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,eAAe,EAAE,GAAG,CAAC;IACtB,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,YAAY,EAAE,GAAG,CAAC;IACnB,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,uCAAuC,EAAE,GAAG,CAAC;IAC9C,CAAC,qCAAqC,EAAE,GAAG,CAAC;IAC5C,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,gCAAgC,EAAE,GAAG,CAAC;IACvC,CAAC,sCAAsC,EAAE,GAAG,CAAC;IAC7C,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAC/B,CAAC,kCAAkC,EAAE,GAAG,CAAC;IACzC,CAAC,cAAc,EAAE,GAAG,CAAC;IACrB,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,iCAAiC,EAAE,GAAG,CAAC;IACxC,CAAC,YAAY,EAAE,GAAG,CAAC;IACnB,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,oCAAoC,EAAE,GAAG,CAAC;IAC3C,CAAC,iCAAiC,EAAE,GAAG,CAAC;IACxC,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAC/B,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,+BAA+B,EAAE,GAAG,CAAC;IACtC,CAAC,gCAAgC,EAAE,GAAG,CAAC;IACvC,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,aAAa,EAAE,GAAG,CAAC;IACpB,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,sCAAsC,EAAE,GAAG,CAAC;IAC7C,CAAC,uCAAuC,EAAE,GAAG,CAAC;IAC9C,CAAC,0CAA0C,EAAE,GAAG,CAAC;IACjD,CAAC,oCAAoC,EAAE,GAAG,CAAC;IAC3C,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,gCAAgC,EAAE,GAAG,CAAC;IACvC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,4CAA4C,EAAE,GAAG,CAAC;IACnD,CAAC,6CAA6C,EAAE,GAAG,CAAC;IACpD,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAC/B,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAC/B,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAC/B,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,wCAAwC,EAAE,GAAG,CAAC;IAC/C,CAAC,wCAAwC,EAAE,GAAG,CAAC;IAC/C,CAAC,+BAA+B,EAAE,GAAG,CAAC;IACtC,CAAC,kCAAkC,EAAE,GAAG,CAAC;IACzC,CAAC,qCAAqC,EAAE,GAAG,CAAC;IAC5C,CAAC,eAAe,EAAE,GAAG,CAAC;IACtB,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,SAAS,EAAE,GAAG,CAAC;IAChB,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,eAAe,EAAE,GAAG,CAAC;IACtB,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,8EAA8E;IAC9E,uCAAuC;IACvC,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,aAAa,EAAE,GAAG,CAAC;IACpB,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,cAAc,EAAE,GAAG,CAAC;IACrB,CAAC,cAAc,EAAE,GAAG,CAAC;IACrB,CAAC,eAAe,EAAE,GAAG,CAAC;IACtB,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,sCAAsC,EAAE,GAAG,CAAC;IAC7C,CAAC,qCAAqC,EAAE,GAAG,CAAC;IAC5C,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,iCAAiC,EAAE,GAAG,CAAC;IACxC,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,sCAAsC,EAAE,GAAG,CAAC;IAC7C,CAAC,qCAAqC,EAAE,GAAG,CAAC;IAC5C,CAAC,qCAAqC,EAAE,GAAG,CAAC;IAC5C,CAAC,yDAAyD,EAAE,GAAG,CAAC;IAChE,CAAC,sCAAsC,EAAE,GAAG,CAAC;IAC7C,CAAC,wCAAwC,EAAE,GAAG,CAAC;IAC/C,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,+BAA+B,EAAE,GAAG,CAAC;IACtC,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,eAAe,EAAE,GAAG,CAAC;IACtB,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,oCAAoC,EAAE,GAAG,CAAC;IAC3C,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,eAAe,EAAE,GAAG,CAAC;IACtB,CAAC,oCAAoC,EAAE,GAAG,CAAC;IAC3C,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,oBAAoB,EAAE,GAAG,CAAC;IAC3B,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,eAAe,EAAE,GAAG,CAAC;IACtB,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACvB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,0BAA0B,EAAE,GAAG,CAAC;IACjC,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,sCAAsC,EAAE,GAAG,CAAC;IAC7C,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,mCAAmC,EAAE,GAAG,CAAC;IAC1C,CAAC,2BAA2B,EAAE,GAAG,CAAC;IAClC,CAAC,mCAAmC,EAAE,GAAG,CAAC;IAC1C,CAAC,+BAA+B,EAAE,GAAG,CAAC;IACtC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,iCAAiC,EAAE,GAAG,CAAC;IACxC,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAChC,CAAC,6BAA6B,EAAE,GAAG,CAAC;IACpC,CAAC,4BAA4B,EAAE,GAAG,CAAC;IACnC,CAAC,8BAA8B,EAAE,GAAG,CAAC;IACrC,CAAC,wBAAwB,EAAE,GAAG,CAAC;CAChC,CAAA;AAED;;;;GAIG;AACH,MAAM,iBAAiB,GAAyD;IAC9E,CAAC,gBAAgB,EAAE,yDAAyD,CAAC;IAC7E,CAAC,mBAAmB,EAAE,mDAAmD,CAAC;IAC1E,CAAC,kBAAkB,EAAE,uDAAuD,CAAC;IAC7E,CAAC,WAAW,EAAE,sBAAsB,CAAC;IACrC,CAAC,qBAAqB,EAAE,8CAA8C,CAAC;IACvE,CAAC,mBAAmB,EAAE,oDAAoD,CAAC;IAC3E,CAAC,aAAa,EAAE,kCAAkC,CAAC;IACnD,CAAC,6BAA6B,EAAE,6CAA6C,CAAC;IAC9E,CAAC,oCAAoC,EAAE,6CAA6C,CAAC;IACrF,CAAC,wBAAwB,EAAE,uDAAuD,CAAC;IACnF,CAAC,uBAAuB,EAAE,oDAAoD,CAAC;IAC/E,CAAC,4BAA4B,EAAE,2CAA2C,CAAC;IAC3E,CAAC,4BAA4B,EAAE,wCAAwC,CAAC;IACxE,CAAC,eAAe,EAAE,qBAAqB,CAAC;IACxC,CAAC,uBAAuB,EAAE,sDAAsD,CAAC;IACjF,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IAC3C,CAAC,eAAe,EAAE,qBAAqB,CAAC;IACxC,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACzC,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;IAC1C,CAAC,aAAa,EAAE,yBAAyB,CAAC;IAC1C,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;IAClE,CAAC,0BAA0B,EAAE,0CAA0C,CAAC;CACzE,CAAA;AAED,yEAAyE;AAEzE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;QACrD,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;QACnE,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;aACtF,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;aACvB,IAAI,EAAE,CAAA;QACT,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CACnE,mBAAmB,EACnB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAA;QAC9D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACnD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE/B,yEAAyE;QACzE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,0BAA0B,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QAExE,yEAAyE;QACzE,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QACzD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAA;YAC1D,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,iCAAiC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrF,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"route-contracts.test.js","sourceRoot":"","sources":["../../../src/__tests__/api/route-contracts.test.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,23 @@ describe('validateEnvShape', () => {
15
15
  CMS_SECRET: 'a'.repeat(40),
16
16
  DATABASE_URL: 'postgres://x',
17
17
  BLOB_STORE_ID: 'store_abc',
18
- // BLOB_READ_WRITE_TOKEN missing — uploads would fail at runtime.
18
+ // No BLOB_READ_WRITE_TOKEN or VERCEL_OIDC_TOKEN — uploads would fail.
19
19
  }));
20
20
  const blob = r.checks.find((c) => c.name === 'BLOB_READ_WRITE_TOKEN');
21
21
  expect(blob?.status).toBe('error');
22
22
  expect(blob?.required).toBe(true);
23
23
  });
24
+ it('treats Marketplace OIDC (store + VERCEL_OIDC_TOKEN) as configured without read-write token', () => {
25
+ const r = validateEnvShape(envFrom({
26
+ CMS_SECRET: 'a'.repeat(40),
27
+ DATABASE_URL: 'postgres://x',
28
+ BLOB_STORE_ID: 'store_gy8L80LPV1fQCRAn',
29
+ VERCEL_OIDC_TOKEN: 'oidc-short-lived',
30
+ }));
31
+ const blob = r.checks.find((c) => c.name === 'BLOB_READ_WRITE_TOKEN');
32
+ expect(blob?.status).toBe('ok');
33
+ expect(blob?.message).toMatch(/OIDC/i);
34
+ });
24
35
  it('keeps a missing Blob token a warning when no store is linked', () => {
25
36
  const r = validateEnvShape(envFrom({
26
37
  CMS_SECRET: 'a'.repeat(40),
@@ -1 +1 @@
1
- {"version":3,"file":"env.test.js","sourceRoot":"","sources":["../../../src/__tests__/diagnostics/env.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.test.js","sourceRoot":"","sources":["../../../src/__tests__/diagnostics/env.test.ts"],"names":[],"mappings":"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"}