@superblocksteam/sdk-api 2.0.115-next.0 → 2.0.115-next.1

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 (76) hide show
  1. package/README.md +1 -192
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/integrations/documentation-resolver.test.d.ts +2 -0
  6. package/dist/integrations/documentation-resolver.test.d.ts.map +1 -0
  7. package/dist/integrations/documentation-resolver.test.js +608 -0
  8. package/dist/integrations/documentation-resolver.test.js.map +1 -0
  9. package/dist/integrations/documentation.d.ts +8 -0
  10. package/dist/integrations/documentation.d.ts.map +1 -0
  11. package/dist/integrations/documentation.js +277 -0
  12. package/dist/integrations/documentation.js.map +1 -0
  13. package/package.json +1 -1
  14. package/src/index.ts +4 -0
  15. package/src/integrations/airtable/docs.manifest.json +5 -0
  16. package/src/integrations/anthropic/docs.manifest.json +5 -0
  17. package/src/integrations/asana/docs.manifest.json +5 -0
  18. package/src/integrations/athena/docs.manifest.json +5 -0
  19. package/src/integrations/bigquery/docs.manifest.json +5 -0
  20. package/src/integrations/bitbucket/docs.manifest.json +5 -0
  21. package/src/integrations/box/docs.manifest.json +5 -0
  22. package/src/integrations/circleci/docs.manifest.json +5 -0
  23. package/src/integrations/cockroachdb/docs.manifest.json +5 -0
  24. package/src/integrations/cohere/docs.manifest.json +5 -0
  25. package/src/integrations/confluence/docs.manifest.json +5 -0
  26. package/src/integrations/cosmosdb/docs.manifest.json +5 -0
  27. package/src/integrations/databricks/docs.manifest.json +5 -0
  28. package/src/integrations/datadog/docs.manifest.json +5 -0
  29. package/src/integrations/documentation-resolver.test.ts +704 -0
  30. package/src/integrations/documentation.ts +421 -0
  31. package/src/integrations/dropbox/docs.manifest.json +5 -0
  32. package/src/integrations/dynamodb/docs.manifest.json +5 -0
  33. package/src/integrations/elasticsearch/docs.manifest.json +5 -0
  34. package/src/integrations/fireworks/docs.manifest.json +5 -0
  35. package/src/integrations/front/docs.manifest.json +5 -0
  36. package/src/integrations/gcs/docs.manifest.json +5 -0
  37. package/src/integrations/gemini/docs.manifest.json +5 -0
  38. package/src/integrations/github/docs.manifest.json +5 -0
  39. package/src/integrations/googleanalytics/docs.manifest.json +5 -0
  40. package/src/integrations/googledrive/docs.manifest.json +5 -0
  41. package/src/integrations/graphql/docs.manifest.json +5 -0
  42. package/src/integrations/groq/docs.manifest.json +5 -0
  43. package/src/integrations/gsheets/docs.manifest.json +5 -0
  44. package/src/integrations/hubspot/docs.manifest.json +5 -0
  45. package/src/integrations/intercom/docs.manifest.json +5 -0
  46. package/src/integrations/jira/docs.manifest.json +5 -0
  47. package/src/integrations/lakebase/docs.manifest.json +5 -0
  48. package/src/integrations/launchdarkly/docs.manifest.json +5 -0
  49. package/src/integrations/mariadb/docs.manifest.json +5 -0
  50. package/src/integrations/mistral/docs.manifest.json +5 -0
  51. package/src/integrations/mongodb/docs.manifest.json +5 -0
  52. package/src/integrations/mssql/docs.manifest.json +5 -0
  53. package/src/integrations/mysql/docs.manifest.json +5 -0
  54. package/src/integrations/notion/docs.manifest.json +5 -0
  55. package/src/integrations/openai_v2/docs.manifest.json +5 -0
  56. package/src/integrations/oracledb/docs.manifest.json +5 -0
  57. package/src/integrations/pagerduty/docs.manifest.json +5 -0
  58. package/src/integrations/perplexity/docs.manifest.json +5 -0
  59. package/src/integrations/postgres/docs.manifest.json +5 -0
  60. package/src/integrations/redshift/docs.manifest.json +5 -0
  61. package/src/integrations/restapiintegration/docs.manifest.json +5 -0
  62. package/src/integrations/s3/docs.manifest.json +5 -0
  63. package/src/integrations/salesforce/docs.manifest.json +5 -0
  64. package/src/integrations/segment/docs.manifest.json +5 -0
  65. package/src/integrations/sendgrid/docs.manifest.json +5 -0
  66. package/src/integrations/slack/docs.manifest.json +5 -0
  67. package/src/integrations/smtp/docs.manifest.json +5 -0
  68. package/src/integrations/snowflake/docs.manifest.json +5 -0
  69. package/src/integrations/snowflakecortex/docs.manifest.json +5 -0
  70. package/src/integrations/snowflakepostgres/docs.manifest.json +5 -0
  71. package/src/integrations/stabilityai/docs.manifest.json +5 -0
  72. package/src/integrations/stripe/docs.manifest.json +5 -0
  73. package/src/integrations/superblocks-ocr/docs.manifest.json +5 -0
  74. package/src/integrations/twilio/docs.manifest.json +5 -0
  75. package/src/integrations/zendesk/docs.manifest.json +5 -0
  76. package/src/integrations/zoom/docs.manifest.json +5 -0
@@ -0,0 +1,608 @@
1
+ import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { describe, expect, it } from "vitest";
5
+ import { resolveIntegrationDocumentation } from "./documentation.js";
6
+ function createPluginDocsFixture(pluginId, files) {
7
+ const rootDirectory = mkdtempSync(join(tmpdir(), "sdk-docs-"));
8
+ const pluginDirectory = join(rootDirectory, pluginId);
9
+ mkdirSync(pluginDirectory, { recursive: true });
10
+ for (const [relativePath, content] of Object.entries(files)) {
11
+ const absolutePath = join(pluginDirectory, relativePath);
12
+ mkdirSync(join(absolutePath, ".."), { recursive: true });
13
+ writeFileSync(absolutePath, content);
14
+ }
15
+ return rootDirectory;
16
+ }
17
+ describe("resolveIntegrationDocumentation", () => {
18
+ it("returns base README when no manifest exists", async () => {
19
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
20
+ "README.md": "base-docs",
21
+ });
22
+ try {
23
+ const docs = await resolveIntegrationDocumentation("dropbox", {
24
+ pluginVersion: "0.4.0",
25
+ integrationsDirectory,
26
+ });
27
+ expect(docs).toBe("base-docs");
28
+ }
29
+ finally {
30
+ rmSync(integrationsDirectory, { recursive: true, force: true });
31
+ }
32
+ });
33
+ it("applies matching overlays in manifest order", async () => {
34
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
35
+ "README.md": "base-docs",
36
+ "docs.manifest.json": JSON.stringify({
37
+ overlays: [
38
+ { file: "overlays/01.md", versionRange: ">=0.4.0" },
39
+ { file: "overlays/02.md", versionRange: ">=0.5.0" },
40
+ { file: "overlays/03.md", versionRange: ">=0.5.0" },
41
+ ],
42
+ }),
43
+ "overlays/01.md": "overlay-one",
44
+ "overlays/02.md": "overlay-two",
45
+ "overlays/03.md": "overlay-three",
46
+ });
47
+ try {
48
+ const docs = await resolveIntegrationDocumentation("dropbox", {
49
+ pluginVersion: "0.5.0",
50
+ integrationsDirectory,
51
+ });
52
+ expect(docs).toBe(["base-docs", "overlay-one", "overlay-two", "overlay-three"].join("\n\n"));
53
+ }
54
+ finally {
55
+ rmSync(integrationsDirectory, { recursive: true, force: true });
56
+ }
57
+ });
58
+ it("skips overlays whose version range does not match", async () => {
59
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
60
+ "README.md": "base-docs",
61
+ "docs.manifest.json": JSON.stringify({
62
+ overlays: [
63
+ { file: "overlays/match.md", versionRange: ">=0.4.0 <0.6.0" },
64
+ { file: "overlays/skip.md", versionRange: ">=0.6.0" },
65
+ ],
66
+ }),
67
+ "overlays/match.md": "overlay-match",
68
+ "overlays/skip.md": "overlay-skip",
69
+ });
70
+ try {
71
+ const docs = await resolveIntegrationDocumentation("dropbox", {
72
+ pluginVersion: "0.5.1",
73
+ integrationsDirectory,
74
+ });
75
+ expect(docs).toBe(["base-docs", "overlay-match"].join("\n\n"));
76
+ }
77
+ finally {
78
+ rmSync(integrationsDirectory, { recursive: true, force: true });
79
+ }
80
+ });
81
+ it("returns base docs when pluginVersion is missing", async () => {
82
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
83
+ "README.md": "base-docs",
84
+ "docs.manifest.json": JSON.stringify({
85
+ overlays: [{ file: "overlays/01.md", versionRange: ">=0.4.0" }],
86
+ }),
87
+ "overlays/01.md": "overlay-one",
88
+ });
89
+ try {
90
+ const docs = await resolveIntegrationDocumentation("dropbox", {
91
+ integrationsDirectory,
92
+ });
93
+ expect(docs).toBe("base-docs");
94
+ }
95
+ finally {
96
+ rmSync(integrationsDirectory, { recursive: true, force: true });
97
+ }
98
+ });
99
+ it("throws on invalid manifest shape", async () => {
100
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
101
+ "README.md": "base-docs",
102
+ "docs.manifest.json": JSON.stringify({
103
+ overlays: [{ versionRange: ">=0.4.0" }],
104
+ }),
105
+ });
106
+ try {
107
+ await expect(resolveIntegrationDocumentation("dropbox", {
108
+ pluginVersion: "0.5.0",
109
+ integrationsDirectory,
110
+ })).rejects.toThrowError(/Invalid overlay entry/);
111
+ }
112
+ finally {
113
+ rmSync(integrationsDirectory, { recursive: true, force: true });
114
+ }
115
+ });
116
+ it("replaces markdown sections via overlay directives", async () => {
117
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
118
+ "README.md": [
119
+ "# Dropbox",
120
+ "",
121
+ "## Authentication",
122
+ "Old auth docs",
123
+ "",
124
+ "## Limits",
125
+ "Old limits docs",
126
+ ].join("\n"),
127
+ "docs.manifest.json": JSON.stringify({
128
+ overlays: [
129
+ { file: "overlays/replace-auth.md", versionRange: ">=0.4.0" },
130
+ ],
131
+ }),
132
+ "overlays/replace-auth.md": [
133
+ "## @replace: Authentication",
134
+ "New auth docs",
135
+ "With multiple lines",
136
+ ].join("\n"),
137
+ });
138
+ try {
139
+ const docs = await resolveIntegrationDocumentation("dropbox", {
140
+ pluginVersion: "0.4.1",
141
+ integrationsDirectory,
142
+ });
143
+ expect(docs).toContain("## Authentication\nNew auth docs\nWith multiple lines");
144
+ expect(docs).toContain("## Limits\nOld limits docs");
145
+ expect(docs).not.toContain("Old auth docs");
146
+ }
147
+ finally {
148
+ rmSync(integrationsDirectory, { recursive: true, force: true });
149
+ }
150
+ });
151
+ it("applies replace overlays in manifest order", async () => {
152
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
153
+ "README.md": ["# Dropbox", "", "## Authentication", "v1 auth"].join("\n"),
154
+ "docs.manifest.json": JSON.stringify({
155
+ overlays: [
156
+ { file: "overlays/replace-auth-v2.md", versionRange: ">=0.4.0" },
157
+ { file: "overlays/replace-auth-v3.md", versionRange: ">=0.4.0" },
158
+ ],
159
+ }),
160
+ "overlays/replace-auth-v2.md": [
161
+ "## @replace: Authentication",
162
+ "v2 auth",
163
+ ].join("\n"),
164
+ "overlays/replace-auth-v3.md": [
165
+ "## @replace: Authentication",
166
+ "v3 auth",
167
+ ].join("\n"),
168
+ });
169
+ try {
170
+ const docs = await resolveIntegrationDocumentation("dropbox", {
171
+ pluginVersion: "0.4.1",
172
+ integrationsDirectory,
173
+ });
174
+ expect(docs).toContain("## Authentication\nv3 auth");
175
+ expect(docs).not.toContain("v1 auth");
176
+ expect(docs).not.toContain("v2 auth");
177
+ }
178
+ finally {
179
+ rmSync(integrationsDirectory, { recursive: true, force: true });
180
+ }
181
+ });
182
+ it("throws when replace target section does not exist", async () => {
183
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
184
+ "README.md": ["# Dropbox", "", "## Authentication", "auth docs"].join("\n"),
185
+ "docs.manifest.json": JSON.stringify({
186
+ overlays: [
187
+ { file: "overlays/missing-target.md", versionRange: ">=0.4.0" },
188
+ ],
189
+ }),
190
+ "overlays/missing-target.md": [
191
+ "## @replace: Limits",
192
+ "new limits docs",
193
+ ].join("\n"),
194
+ });
195
+ try {
196
+ await expect(resolveIntegrationDocumentation("dropbox", {
197
+ pluginVersion: "0.4.1",
198
+ integrationsDirectory,
199
+ })).rejects.toThrowError(/could not find section/i);
200
+ }
201
+ finally {
202
+ rmSync(integrationsDirectory, { recursive: true, force: true });
203
+ }
204
+ });
205
+ it("handles mixed append and replace in a single overlay", async () => {
206
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
207
+ "README.md": [
208
+ "# Dropbox",
209
+ "",
210
+ "## Setup",
211
+ "Old setup content",
212
+ "",
213
+ "## Usage",
214
+ "Usage content",
215
+ ].join("\n"),
216
+ "docs.manifest.json": JSON.stringify({
217
+ overlays: [{ file: "overlays/mixed.md", versionRange: ">=0.4.0" }],
218
+ }),
219
+ "overlays/mixed.md": [
220
+ "Appended intro paragraph",
221
+ "",
222
+ "## @replace: Setup",
223
+ "New setup content",
224
+ ].join("\n"),
225
+ });
226
+ try {
227
+ const docs = await resolveIntegrationDocumentation("dropbox", {
228
+ pluginVersion: "0.5.0",
229
+ integrationsDirectory,
230
+ });
231
+ expect(docs).toContain("Appended intro paragraph");
232
+ expect(docs).toContain("## Setup\nNew setup content");
233
+ expect(docs).not.toContain("Old setup content");
234
+ expect(docs).toContain("## Usage\nUsage content");
235
+ }
236
+ finally {
237
+ rmSync(integrationsDirectory, { recursive: true, force: true });
238
+ }
239
+ });
240
+ it("handles multiple @replace directives in a single overlay", async () => {
241
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
242
+ "README.md": [
243
+ "# Dropbox",
244
+ "",
245
+ "## Auth",
246
+ "Old auth",
247
+ "",
248
+ "## Limits",
249
+ "Old limits",
250
+ "",
251
+ "## Usage",
252
+ "Usage content",
253
+ ].join("\n"),
254
+ "docs.manifest.json": JSON.stringify({
255
+ overlays: [
256
+ { file: "overlays/multi-replace.md", versionRange: ">=0.4.0" },
257
+ ],
258
+ }),
259
+ "overlays/multi-replace.md": [
260
+ "## @replace: Auth",
261
+ "New auth",
262
+ "",
263
+ "## @replace: Limits",
264
+ "New limits",
265
+ ].join("\n"),
266
+ });
267
+ try {
268
+ const docs = await resolveIntegrationDocumentation("dropbox", {
269
+ pluginVersion: "0.4.0",
270
+ integrationsDirectory,
271
+ });
272
+ expect(docs).toContain("## Auth\nNew auth");
273
+ expect(docs).toContain("## Limits\nNew limits");
274
+ expect(docs).toContain("## Usage\nUsage content");
275
+ expect(docs).not.toContain("Old auth");
276
+ expect(docs).not.toContain("Old limits");
277
+ }
278
+ finally {
279
+ rmSync(integrationsDirectory, { recursive: true, force: true });
280
+ }
281
+ });
282
+ it("replaces the last section in the document", async () => {
283
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
284
+ "README.md": [
285
+ "# Dropbox",
286
+ "",
287
+ "## First",
288
+ "First content",
289
+ "",
290
+ "## Last",
291
+ "Old last content",
292
+ "More old last content",
293
+ ].join("\n"),
294
+ "docs.manifest.json": JSON.stringify({
295
+ overlays: [
296
+ { file: "overlays/replace-last.md", versionRange: ">=0.4.0" },
297
+ ],
298
+ }),
299
+ "overlays/replace-last.md": [
300
+ "## @replace: Last",
301
+ "New last content",
302
+ ].join("\n"),
303
+ });
304
+ try {
305
+ const docs = await resolveIntegrationDocumentation("dropbox", {
306
+ pluginVersion: "0.4.0",
307
+ integrationsDirectory,
308
+ });
309
+ expect(docs).toContain("## Last\nNew last content");
310
+ expect(docs).toContain("## First\nFirst content");
311
+ expect(docs).not.toContain("Old last content");
312
+ }
313
+ finally {
314
+ rmSync(integrationsDirectory, { recursive: true, force: true });
315
+ }
316
+ });
317
+ it("respects heading hierarchy when replacing nested sections", async () => {
318
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
319
+ "README.md": [
320
+ "# Dropbox",
321
+ "",
322
+ "## Auth",
323
+ "Auth intro",
324
+ "",
325
+ "### OAuth",
326
+ "OAuth details",
327
+ "",
328
+ "### API Key",
329
+ "API key details",
330
+ "",
331
+ "## Usage",
332
+ "Usage content",
333
+ ].join("\n"),
334
+ "docs.manifest.json": JSON.stringify({
335
+ overlays: [
336
+ { file: "overlays/replace-oauth.md", versionRange: ">=0.4.0" },
337
+ ],
338
+ }),
339
+ "overlays/replace-oauth.md": [
340
+ "### @replace: OAuth",
341
+ "New OAuth flow",
342
+ ].join("\n"),
343
+ });
344
+ try {
345
+ const docs = await resolveIntegrationDocumentation("dropbox", {
346
+ pluginVersion: "0.4.0",
347
+ integrationsDirectory,
348
+ });
349
+ expect(docs).toContain("### OAuth\nNew OAuth flow");
350
+ expect(docs).toContain("### API Key\nAPI key details");
351
+ expect(docs).toContain("## Usage\nUsage content");
352
+ expect(docs).not.toContain("OAuth details");
353
+ }
354
+ finally {
355
+ rmSync(integrationsDirectory, { recursive: true, force: true });
356
+ }
357
+ });
358
+ it("ignores empty overlay content (whitespace only)", async () => {
359
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
360
+ "README.md": "base-docs",
361
+ "docs.manifest.json": JSON.stringify({
362
+ overlays: [{ file: "overlays/empty.md", versionRange: ">=0.4.0" }],
363
+ }),
364
+ "overlays/empty.md": " \n \n ",
365
+ });
366
+ try {
367
+ const docs = await resolveIntegrationDocumentation("dropbox", {
368
+ pluginVersion: "0.5.0",
369
+ integrationsDirectory,
370
+ });
371
+ expect(docs).toBe("base-docs");
372
+ }
373
+ finally {
374
+ rmSync(integrationsDirectory, { recursive: true, force: true });
375
+ }
376
+ });
377
+ it("resolves documentation for aliased plugin IDs", async () => {
378
+ const integrationsDirectory = createPluginDocsFixture("graphql", {
379
+ "README.md": "graphql-docs",
380
+ });
381
+ try {
382
+ const docs = await resolveIntegrationDocumentation("graphqlintegration", {
383
+ integrationsDirectory,
384
+ });
385
+ expect(docs).toBe("graphql-docs");
386
+ }
387
+ finally {
388
+ rmSync(integrationsDirectory, { recursive: true, force: true });
389
+ }
390
+ });
391
+ describe("semver matching", () => {
392
+ it("matches exact version with = operator", async () => {
393
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
394
+ "README.md": "base",
395
+ "docs.manifest.json": JSON.stringify({
396
+ overlays: [{ file: "overlays/exact.md", versionRange: "=0.4.0" }],
397
+ }),
398
+ "overlays/exact.md": "exact-match",
399
+ });
400
+ try {
401
+ expect(await resolveIntegrationDocumentation("dropbox", {
402
+ pluginVersion: "0.4.0",
403
+ integrationsDirectory,
404
+ })).toBe("base\n\nexact-match");
405
+ expect(await resolveIntegrationDocumentation("dropbox", {
406
+ pluginVersion: "0.4.1",
407
+ integrationsDirectory,
408
+ })).toBe("base");
409
+ }
410
+ finally {
411
+ rmSync(integrationsDirectory, { recursive: true, force: true });
412
+ }
413
+ });
414
+ it("matches strict less-than with < operator", async () => {
415
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
416
+ "README.md": "base",
417
+ "docs.manifest.json": JSON.stringify({
418
+ overlays: [{ file: "overlays/legacy.md", versionRange: "<1.0.0" }],
419
+ }),
420
+ "overlays/legacy.md": "legacy-overlay",
421
+ });
422
+ try {
423
+ expect(await resolveIntegrationDocumentation("dropbox", {
424
+ pluginVersion: "0.9.9",
425
+ integrationsDirectory,
426
+ })).toBe("base\n\nlegacy-overlay");
427
+ expect(await resolveIntegrationDocumentation("dropbox", {
428
+ pluginVersion: "1.0.0",
429
+ integrationsDirectory,
430
+ })).toBe("base");
431
+ }
432
+ finally {
433
+ rmSync(integrationsDirectory, { recursive: true, force: true });
434
+ }
435
+ });
436
+ it("matches <= operator at boundary", async () => {
437
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
438
+ "README.md": "base",
439
+ "docs.manifest.json": JSON.stringify({
440
+ overlays: [{ file: "overlays/lte.md", versionRange: "<=1.0.0" }],
441
+ }),
442
+ "overlays/lte.md": "lte-overlay",
443
+ });
444
+ try {
445
+ expect(await resolveIntegrationDocumentation("dropbox", {
446
+ pluginVersion: "1.0.0",
447
+ integrationsDirectory,
448
+ })).toBe("base\n\nlte-overlay");
449
+ expect(await resolveIntegrationDocumentation("dropbox", {
450
+ pluginVersion: "1.0.1",
451
+ integrationsDirectory,
452
+ })).toBe("base");
453
+ }
454
+ finally {
455
+ rmSync(integrationsDirectory, { recursive: true, force: true });
456
+ }
457
+ });
458
+ it("matches > operator", async () => {
459
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
460
+ "README.md": "base",
461
+ "docs.manifest.json": JSON.stringify({
462
+ overlays: [{ file: "overlays/gt.md", versionRange: ">1.0.0" }],
463
+ }),
464
+ "overlays/gt.md": "gt-overlay",
465
+ });
466
+ try {
467
+ expect(await resolveIntegrationDocumentation("dropbox", {
468
+ pluginVersion: "1.0.0",
469
+ integrationsDirectory,
470
+ })).toBe("base");
471
+ expect(await resolveIntegrationDocumentation("dropbox", {
472
+ pluginVersion: "1.0.1",
473
+ integrationsDirectory,
474
+ })).toBe("base\n\ngt-overlay");
475
+ }
476
+ finally {
477
+ rmSync(integrationsDirectory, { recursive: true, force: true });
478
+ }
479
+ });
480
+ it("matches compound range with multiple comparators", async () => {
481
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
482
+ "README.md": "base",
483
+ "docs.manifest.json": JSON.stringify({
484
+ overlays: [
485
+ { file: "overlays/range.md", versionRange: ">=1.0.0 <2.0.0" },
486
+ ],
487
+ }),
488
+ "overlays/range.md": "range-overlay",
489
+ });
490
+ try {
491
+ expect(await resolveIntegrationDocumentation("dropbox", {
492
+ pluginVersion: "0.9.9",
493
+ integrationsDirectory,
494
+ })).toBe("base");
495
+ expect(await resolveIntegrationDocumentation("dropbox", {
496
+ pluginVersion: "1.5.0",
497
+ integrationsDirectory,
498
+ })).toBe("base\n\nrange-overlay");
499
+ expect(await resolveIntegrationDocumentation("dropbox", {
500
+ pluginVersion: "2.0.0",
501
+ integrationsDirectory,
502
+ })).toBe("base");
503
+ }
504
+ finally {
505
+ rmSync(integrationsDirectory, { recursive: true, force: true });
506
+ }
507
+ });
508
+ it("handles spaced operators in version ranges", async () => {
509
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
510
+ "README.md": "base",
511
+ "docs.manifest.json": JSON.stringify({
512
+ overlays: [
513
+ { file: "overlays/spaced.md", versionRange: ">= 0.4.0 < 1.0.0" },
514
+ ],
515
+ }),
516
+ "overlays/spaced.md": "spaced-overlay",
517
+ });
518
+ try {
519
+ expect(await resolveIntegrationDocumentation("dropbox", {
520
+ pluginVersion: "0.3.9",
521
+ integrationsDirectory,
522
+ })).toBe("base");
523
+ expect(await resolveIntegrationDocumentation("dropbox", {
524
+ pluginVersion: "0.5.0",
525
+ integrationsDirectory,
526
+ })).toBe("base\n\nspaced-overlay");
527
+ expect(await resolveIntegrationDocumentation("dropbox", {
528
+ pluginVersion: "1.0.0",
529
+ integrationsDirectory,
530
+ })).toBe("base");
531
+ }
532
+ finally {
533
+ rmSync(integrationsDirectory, { recursive: true, force: true });
534
+ }
535
+ });
536
+ });
537
+ describe("manifest validation", () => {
538
+ it("throws when overlays key is not an array", async () => {
539
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
540
+ "README.md": "base",
541
+ "docs.manifest.json": JSON.stringify({ overlays: "not-an-array" }),
542
+ });
543
+ try {
544
+ await expect(resolveIntegrationDocumentation("dropbox", {
545
+ pluginVersion: "0.4.0",
546
+ integrationsDirectory,
547
+ })).rejects.toThrowError(/overlays.*must be an array/i);
548
+ }
549
+ finally {
550
+ rmSync(integrationsDirectory, { recursive: true, force: true });
551
+ }
552
+ });
553
+ it("throws when overlay entry has empty file", async () => {
554
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
555
+ "README.md": "base",
556
+ "docs.manifest.json": JSON.stringify({
557
+ overlays: [{ file: " ", versionRange: ">=0.4.0" }],
558
+ }),
559
+ });
560
+ try {
561
+ await expect(resolveIntegrationDocumentation("dropbox", {
562
+ pluginVersion: "0.4.0",
563
+ integrationsDirectory,
564
+ })).rejects.toThrowError(/Invalid "file"/);
565
+ }
566
+ finally {
567
+ rmSync(integrationsDirectory, { recursive: true, force: true });
568
+ }
569
+ });
570
+ it("throws when overlay entry has empty versionRange", async () => {
571
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
572
+ "README.md": "base",
573
+ "docs.manifest.json": JSON.stringify({
574
+ overlays: [{ file: "overlays/01.md", versionRange: " " }],
575
+ }),
576
+ });
577
+ try {
578
+ await expect(resolveIntegrationDocumentation("dropbox", {
579
+ pluginVersion: "0.4.0",
580
+ integrationsDirectory,
581
+ })).rejects.toThrowError(/Invalid "versionRange"/);
582
+ }
583
+ finally {
584
+ rmSync(integrationsDirectory, { recursive: true, force: true });
585
+ }
586
+ });
587
+ });
588
+ it("blocks overlay paths outside the plugin directory", async () => {
589
+ const integrationsDirectory = createPluginDocsFixture("dropbox", {
590
+ "README.md": "base",
591
+ "docs.manifest.json": JSON.stringify({
592
+ overlays: [
593
+ { file: "../other-plugin/secret.md", versionRange: ">=0.4.0" },
594
+ ],
595
+ }),
596
+ });
597
+ try {
598
+ await expect(resolveIntegrationDocumentation("dropbox", {
599
+ pluginVersion: "0.4.0",
600
+ integrationsDirectory,
601
+ })).rejects.toThrowError(/must be inside plugin directory/i);
602
+ }
603
+ finally {
604
+ rmSync(integrationsDirectory, { recursive: true, force: true });
605
+ }
606
+ });
607
+ });
608
+ //# sourceMappingURL=documentation-resolver.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentation-resolver.test.js","sourceRoot":"","sources":["../../src/integrations/documentation-resolver.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ type SemVer = `${number}.${number}.${number}`;
2
+ export interface ResolveIntegrationDocumentationOptions {
3
+ pluginVersion?: SemVer;
4
+ integrationsDirectory?: string;
5
+ }
6
+ export declare function resolveIntegrationDocumentation(pluginId: string, options?: ResolveIntegrationDocumentationOptions): Promise<string>;
7
+ export {};
8
+ //# sourceMappingURL=documentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentation.d.ts","sourceRoot":"","sources":["../../src/integrations/documentation.ts"],"names":[],"mappings":"AAKA,KAAK,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AA2B9C,MAAM,WAAW,sCAAsC;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AA2VD,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sCAA2C,GACnD,OAAO,CAAC,MAAM,CAAC,CAmCjB"}