@knpkv/atlassian-common 1.0.0 → 1.1.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 +12 -0
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +4 -2
- package/dist/Brand.js.map +1 -1
- package/dist/ast/Document.d.ts +2 -2
- package/dist/ast/Document.d.ts.map +1 -1
- package/dist/ast/Document.js +1 -1
- package/dist/ast/Document.js.map +1 -1
- package/dist/ast/MacroNode.d.ts +4 -4
- package/dist/ast/MacroNode.d.ts.map +1 -1
- package/dist/ast/MacroNode.js +8 -1
- package/dist/ast/MacroNode.js.map +1 -1
- package/dist/attachments.d.ts +42 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +51 -0
- package/dist/attachments.js.map +1 -0
- package/dist/auth/OAuthEndpoints.d.ts.map +1 -1
- package/dist/auth/OAuthEndpoints.js +2 -0
- package/dist/auth/OAuthEndpoints.js.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/bin.js.map +1 -1
- package/dist/config/AuthProfiles.js.map +1 -1
- package/dist/config/ProfileManager.d.ts +3 -20
- package/dist/config/ProfileManager.d.ts.map +1 -1
- package/dist/config/ProfileManager.js +2 -1
- package/dist/config/ProfileManager.js.map +1 -1
- package/dist/config/TokenStorage.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/serializers/MarkdownSerializer.d.ts.map +1 -1
- package/dist/serializers/MarkdownSerializer.js +9 -6
- package/dist/serializers/MarkdownSerializer.js.map +1 -1
- package/package.json +11 -7
- package/src/Brand.ts +4 -2
- package/src/ast/Document.ts +1 -1
- package/src/ast/MacroNode.ts +8 -1
- package/src/attachments.ts +98 -0
- package/src/auth/OAuthEndpoints.ts +2 -0
- package/src/bin.ts +1 -1
- package/src/config/AuthProfiles.ts +1 -1
- package/src/config/ProfileManager.ts +21 -9
- package/src/config/TokenStorage.ts +1 -1
- package/src/index.ts +3 -0
- package/src/serializers/MarkdownSerializer.ts +22 -37
- package/test/AuthProfiles.test.ts +1 -1
- package/test/OAuthEndpoints.test.ts +14 -1
- package/test/ProfileManager.test.ts +1 -1
- package/test/attachments.test.ts +75 -0
- package/test/fixtures/attachments/inline-attachment.svg +6 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -212,8 +212,7 @@ const serializeList = (node, options) => Effect.gen(function* () {
|
|
|
212
212
|
* Serialize simple block (for nested content).
|
|
213
213
|
*/
|
|
214
214
|
const serializeSimpleBlock = (node, options) => Effect.gen(function* () {
|
|
215
|
-
|
|
216
|
-
switch (tagged._tag) {
|
|
215
|
+
switch (node._tag) {
|
|
217
216
|
case "Heading":
|
|
218
217
|
return yield* serializeHeading(node);
|
|
219
218
|
case "Paragraph":
|
|
@@ -226,10 +225,14 @@ const serializeSimpleBlock = (node, options) => Effect.gen(function* () {
|
|
|
226
225
|
return serializeImage(node, options);
|
|
227
226
|
case "Table":
|
|
228
227
|
return yield* serializeTable(node);
|
|
229
|
-
case "
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
228
|
+
case "List":
|
|
229
|
+
return yield* serializeList(node, options);
|
|
230
|
+
case "BlockQuote":
|
|
231
|
+
return yield* serializeBlockQuote(node, options);
|
|
232
|
+
case "TaskList":
|
|
233
|
+
return yield* serializeTaskList(node.children, options);
|
|
234
|
+
case "UnsupportedBlock":
|
|
235
|
+
return node.rawMarkdown ?? node.rawHtml ?? node.rawAdf ?? "";
|
|
233
236
|
default:
|
|
234
237
|
return "";
|
|
235
238
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSerializer.js","sourceRoot":"","sources":["../../src/serializers/MarkdownSerializer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MarkdownSerializer.js","sourceRoot":"","sources":["../../src/serializers/MarkdownSerializer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knpkv/atlassian-common",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Shared utilities for Atlassian tools (AST, serializers, auth, config)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "knpkv",
|
|
@@ -30,6 +30,10 @@
|
|
|
30
30
|
"import": "./dist/serializers/index.js",
|
|
31
31
|
"types": "./dist/serializers/index.d.ts"
|
|
32
32
|
},
|
|
33
|
+
"./attachments": {
|
|
34
|
+
"import": "./dist/attachments.js",
|
|
35
|
+
"types": "./dist/attachments.d.ts"
|
|
36
|
+
},
|
|
33
37
|
"./parsers": {
|
|
34
38
|
"import": "./dist/parsers/index.js",
|
|
35
39
|
"types": "./dist/parsers/index.d.ts"
|
|
@@ -51,20 +55,20 @@
|
|
|
51
55
|
"access": "public"
|
|
52
56
|
},
|
|
53
57
|
"peerDependencies": {
|
|
54
|
-
"effect": "4.0.0-beta.
|
|
58
|
+
"effect": "4.0.0-beta.93"
|
|
55
59
|
},
|
|
56
60
|
"dependencies": {
|
|
61
|
+
"@effect/platform-node": "4.0.0-beta.93",
|
|
57
62
|
"remark-gfm": "^4.0.1",
|
|
58
63
|
"remark-parse": "^11.0.0",
|
|
59
64
|
"remark-stringify": "^11.0.0",
|
|
60
|
-
"unified": "^11.0.5"
|
|
61
|
-
"@effect/platform-node": "4.0.0-beta.87"
|
|
65
|
+
"unified": "^11.0.5"
|
|
62
66
|
},
|
|
63
67
|
"devDependencies": {
|
|
64
|
-
"@effect/platform-node": "4.0.0-beta.
|
|
65
|
-
"@effect/vitest": "4.0.0-beta.
|
|
68
|
+
"@effect/platform-node": "4.0.0-beta.93",
|
|
69
|
+
"@effect/vitest": "4.0.0-beta.93",
|
|
66
70
|
"@types/node": "latest",
|
|
67
|
-
"effect": "4.0.0-beta.
|
|
71
|
+
"effect": "4.0.0-beta.93",
|
|
68
72
|
"typescript": "~6.0.3",
|
|
69
73
|
"vitest": "^4.1.9"
|
|
70
74
|
},
|
package/src/Brand.ts
CHANGED
|
@@ -51,10 +51,11 @@ export const makeBrandedString = <B extends string>(
|
|
|
51
51
|
const brand = Brand.make<BrandedType>((s) => pattern.test(s) || `Invalid ${name}: ${s} does not match ${pattern}`)
|
|
52
52
|
|
|
53
53
|
const schema = Schema.String.check(Schema.isPattern(pattern)).pipe(Schema.brand(name))
|
|
54
|
+
const Type: BrandedType = undefined!
|
|
54
55
|
|
|
55
56
|
return Object.assign(brand, {
|
|
56
57
|
schema,
|
|
57
|
-
Type
|
|
58
|
+
Type
|
|
58
59
|
})
|
|
59
60
|
}
|
|
60
61
|
|
|
@@ -80,10 +81,11 @@ export const makeBrandedNonEmptyString = <B extends string>(name: B) => {
|
|
|
80
81
|
const brand = Brand.make<BrandedType>((s) => s.length > 0 || `${name} cannot be empty`)
|
|
81
82
|
|
|
82
83
|
const schema = Schema.NonEmptyString.pipe(Schema.brand(name))
|
|
84
|
+
const Type: BrandedType = undefined!
|
|
83
85
|
|
|
84
86
|
return Object.assign(brand, {
|
|
85
87
|
schema,
|
|
86
|
-
Type
|
|
88
|
+
Type
|
|
87
89
|
})
|
|
88
90
|
}
|
|
89
91
|
|
package/src/ast/Document.ts
CHANGED
package/src/ast/MacroNode.ts
CHANGED
|
@@ -19,7 +19,14 @@ import { RawSource, SchemaVersion, SimpleBlockNode } from "./BlockNode.js"
|
|
|
19
19
|
*
|
|
20
20
|
* @category MacroNode
|
|
21
21
|
*/
|
|
22
|
-
export const PanelTypes
|
|
22
|
+
export const PanelTypes: ReadonlyArray<"info" | "warning" | "note" | "tip" | "error" | "panel"> = [
|
|
23
|
+
"info",
|
|
24
|
+
"warning",
|
|
25
|
+
"note",
|
|
26
|
+
"tip",
|
|
27
|
+
"error",
|
|
28
|
+
"panel"
|
|
29
|
+
]
|
|
23
30
|
|
|
24
31
|
/**
|
|
25
32
|
* Panel type for info/warning/note macros.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared attachment reference helpers for Atlassian Markdown surfaces.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export interface AttachmentPreviewInput {
|
|
8
|
+
readonly id?: string | undefined
|
|
9
|
+
readonly filename: string
|
|
10
|
+
readonly url?: string | undefined
|
|
11
|
+
readonly mediaType?: string | null | undefined
|
|
12
|
+
readonly mimeType?: string | null | undefined
|
|
13
|
+
readonly size?: number | null | undefined
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface AttachmentReferenceInput {
|
|
17
|
+
readonly id: string
|
|
18
|
+
readonly filename: string
|
|
19
|
+
readonly url: string
|
|
20
|
+
readonly mediaType: string | null
|
|
21
|
+
readonly size: number | null
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface AttachmentPlaceholderReplacement {
|
|
25
|
+
readonly content: string
|
|
26
|
+
readonly replacements: number
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface AttachmentPlaceholderMatch {
|
|
30
|
+
readonly label: string
|
|
31
|
+
readonly isImage: boolean
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const IMAGE_EXTENSION_RE = /\.(avif|bmp|gif|jpe?g|png|svg|webp)$/i
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Returns true when an attachment should render as a Markdown image preview.
|
|
38
|
+
* SVG is previewable even when the remote API reports a generic content type.
|
|
39
|
+
*/
|
|
40
|
+
export const isPreviewableAttachment = (attachment: AttachmentPreviewInput): boolean => {
|
|
41
|
+
const type = attachment.mediaType ?? attachment.mimeType ?? ""
|
|
42
|
+
return type.toLowerCase().startsWith("image/") || IMAGE_EXTENSION_RE.test(attachment.filename)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export const normalizeAttachmentMediaType = (
|
|
46
|
+
mediaType: string | null | undefined,
|
|
47
|
+
mimeType?: string | null | undefined
|
|
48
|
+
): string | null => {
|
|
49
|
+
const value = mediaType ?? mimeType
|
|
50
|
+
return value && value.trim().length > 0 ? value : null
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export const renderAttachmentMarkdown = (
|
|
54
|
+
attachment: AttachmentReferenceInput,
|
|
55
|
+
options?: { readonly label?: string | null | undefined; readonly metadata?: string | null | undefined }
|
|
56
|
+
): string => {
|
|
57
|
+
const label = escapeMarkdownLabel(options?.label?.trim() || attachment.filename)
|
|
58
|
+
const destination = safeMarkdownDestination(attachment.url)
|
|
59
|
+
const reference = isPreviewableAttachment(attachment)
|
|
60
|
+
? ``
|
|
61
|
+
: `[${label}](${destination})`
|
|
62
|
+
return options?.metadata ? `${options.metadata}\n${reference}` : reference
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export const replaceAttachmentPlaceholder = (
|
|
66
|
+
content: string,
|
|
67
|
+
placeholderPath: string,
|
|
68
|
+
renderedAttachment: string | ((match: AttachmentPlaceholderMatch) => string),
|
|
69
|
+
options?: { readonly replaceAll?: boolean | undefined }
|
|
70
|
+
): AttachmentPlaceholderReplacement => {
|
|
71
|
+
const escapedPath = escapeRegExp(placeholderPath)
|
|
72
|
+
const placeholder = new RegExp(`!?\\[([^\\]]*)\\]\\(${escapedPath}\\)`, "g")
|
|
73
|
+
let replacements = 0
|
|
74
|
+
const replaced = content.replace(placeholder, (match, label: string) => {
|
|
75
|
+
replacements++
|
|
76
|
+
return typeof renderedAttachment === "string"
|
|
77
|
+
? renderedAttachment
|
|
78
|
+
: renderedAttachment({ isImage: match.startsWith("!"), label })
|
|
79
|
+
})
|
|
80
|
+
if (!options?.replaceAll && replacements > 1) {
|
|
81
|
+
return { content, replacements }
|
|
82
|
+
}
|
|
83
|
+
return { content: replaced, replacements }
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const escapeMarkdownLabel = (value: string): string =>
|
|
87
|
+
value
|
|
88
|
+
.replace(/\\/g, "\\\\")
|
|
89
|
+
.replace(/\n+/g, " ")
|
|
90
|
+
.replace(/\[/g, "\\[")
|
|
91
|
+
.replace(/]/g, "\\]")
|
|
92
|
+
|
|
93
|
+
const safeMarkdownDestination = (value: string): string =>
|
|
94
|
+
/[\s()<>]/.test(value)
|
|
95
|
+
? `<${value.replace(/\n/g, "%0A").replace(/</g, "%3C").replace(/>/g, "%3E")}>`
|
|
96
|
+
: value
|
|
97
|
+
|
|
98
|
+
const escapeRegExp = (value: string): string => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
|
package/src/bin.ts
CHANGED
|
@@ -12,7 +12,14 @@ import * as Schema from "effect/Schema"
|
|
|
12
12
|
import type { HttpClient } from "effect/unstable/http"
|
|
13
13
|
import type { OAuthError } from "../auth/OAuthErrors.js"
|
|
14
14
|
import { refreshToken } from "../auth/OAuthOperations.js"
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
type AuthProfile,
|
|
17
|
+
type AuthProfilesFile,
|
|
18
|
+
findProfile,
|
|
19
|
+
loadProfiles,
|
|
20
|
+
saveProfiles,
|
|
21
|
+
saveProfileToken
|
|
22
|
+
} from "./AuthProfiles.js"
|
|
16
23
|
import { getProfilesPath, type HomeDirectoryError, HomeDirectoryTag } from "./ConfigPaths.js"
|
|
17
24
|
import { type OAuthToken, OAuthTokenSchema } from "./OAuthSchemas.js"
|
|
18
25
|
import { FileSystemError, isTokenExpired, loadOAuthConfig } from "./TokenStorage.js"
|
|
@@ -26,24 +33,24 @@ export interface AtlassianToolDefinition {
|
|
|
26
33
|
readonly requiredScopes: ReadonlyArray<string>
|
|
27
34
|
}
|
|
28
35
|
|
|
29
|
-
export const JIRA_REQUIRED_SCOPES = [
|
|
36
|
+
export const JIRA_REQUIRED_SCOPES: ReadonlyArray<string> = [
|
|
30
37
|
"read:jira-work",
|
|
31
38
|
"write:jira-work",
|
|
32
39
|
"manage:jira-project",
|
|
33
40
|
"read:jira-user",
|
|
34
41
|
"read:me",
|
|
35
42
|
"offline_access"
|
|
36
|
-
]
|
|
43
|
+
]
|
|
37
44
|
|
|
38
|
-
export const CONFLUENCE_REQUIRED_SCOPES = [
|
|
45
|
+
export const CONFLUENCE_REQUIRED_SCOPES: ReadonlyArray<string> = [
|
|
39
46
|
"read:page:confluence",
|
|
40
47
|
"write:page:confluence",
|
|
41
48
|
"delete:page:confluence",
|
|
42
49
|
"read:me",
|
|
43
50
|
"offline_access"
|
|
44
|
-
]
|
|
51
|
+
]
|
|
45
52
|
|
|
46
|
-
export const ATLASSIAN_TOOLS = [
|
|
53
|
+
export const ATLASSIAN_TOOLS: ReadonlyArray<AtlassianToolDefinition> = [
|
|
47
54
|
{
|
|
48
55
|
toolName: "jira-cli",
|
|
49
56
|
label: "Jira CLI",
|
|
@@ -64,7 +71,7 @@ export const ATLASSIAN_TOOLS = [
|
|
|
64
71
|
loginHint: "jcf auth jira login",
|
|
65
72
|
requiredScopes: JIRA_REQUIRED_SCOPES
|
|
66
73
|
}
|
|
67
|
-
]
|
|
74
|
+
]
|
|
68
75
|
|
|
69
76
|
export type ProfileTokenStatus = "valid" | "expired"
|
|
70
77
|
|
|
@@ -97,6 +104,11 @@ export interface ToolProfileStatus {
|
|
|
97
104
|
|
|
98
105
|
const authStoreName = (tool: AtlassianToolDefinition): string => tool.authStoreName ?? tool.toolName
|
|
99
106
|
|
|
107
|
+
const toolStorePair = (
|
|
108
|
+
tool: AtlassianToolDefinition,
|
|
109
|
+
store: AuthProfilesFile
|
|
110
|
+
): readonly [AtlassianToolDefinition, AuthProfilesFile] => [tool, store]
|
|
111
|
+
|
|
100
112
|
const uniqueAuthTools = (tools: ReadonlyArray<AtlassianToolDefinition>): ReadonlyArray<AtlassianToolDefinition> =>
|
|
101
113
|
tools.filter((tool, index) =>
|
|
102
114
|
tools.findIndex((candidate) => authStoreName(candidate) === authStoreName(tool)) === index
|
|
@@ -122,7 +134,7 @@ const loadLegacyToken = (
|
|
|
122
134
|
Effect.mapError((cause) => new FileSystemError({ operation: "read", path: authPath, cause }))
|
|
123
135
|
)
|
|
124
136
|
const parsed = yield* Effect.try({
|
|
125
|
-
try: () => JSON.parse(content)
|
|
137
|
+
try: () => JSON.parse(content),
|
|
126
138
|
catch: (cause) => cause
|
|
127
139
|
}).pipe(Effect.catch(() => Effect.succeed(null)))
|
|
128
140
|
if (parsed === null) return null
|
|
@@ -186,7 +198,7 @@ export const useProfileForAllTools = (
|
|
|
186
198
|
Effect.gen(function*() {
|
|
187
199
|
const authTools = uniqueAuthTools(tools)
|
|
188
200
|
const stores = yield* Effect.forEach(authTools, (tool) =>
|
|
189
|
-
loadProfiles(authStoreName(tool)).pipe(Effect.map((store) =>
|
|
201
|
+
loadProfiles(authStoreName(tool)).pipe(Effect.map((store) => toolStorePair(tool, store))))
|
|
190
202
|
const selected = stores.map(([, store]) =>
|
|
191
203
|
findProfile(store.profiles, selector)
|
|
192
204
|
).find((profile): profile is AuthProfile =>
|
|
@@ -29,7 +29,7 @@ import { type OAuthConfig, OAuthConfigSchema, type OAuthToken, OAuthTokenSchema
|
|
|
29
29
|
|
|
30
30
|
const parseJsonOrNull = (content: string): unknown | null => {
|
|
31
31
|
try {
|
|
32
|
-
return JSON.parse(content)
|
|
32
|
+
return JSON.parse(content)
|
|
33
33
|
} catch {
|
|
34
34
|
return null
|
|
35
35
|
}
|
package/src/index.ts
CHANGED
|
@@ -22,8 +22,10 @@
|
|
|
22
22
|
* @module
|
|
23
23
|
*/
|
|
24
24
|
import * as Effect from "effect/Effect"
|
|
25
|
+
import type { BlockNode, BlockQuote, List } from "../ast/BlockNode.js"
|
|
25
26
|
import type { Document, DocumentNode } from "../ast/Document.js"
|
|
26
27
|
import type { InlineNode } from "../ast/InlineNode.js"
|
|
28
|
+
import type { ExpandMacro, InfoPanel } from "../ast/MacroNode.js"
|
|
27
29
|
import type { SerializeError } from "../SerializeError.js"
|
|
28
30
|
|
|
29
31
|
/**
|
|
@@ -242,28 +244,18 @@ const serializeTable = (
|
|
|
242
244
|
return lines.join("\n")
|
|
243
245
|
})
|
|
244
246
|
|
|
245
|
-
// Simple block type for list items - use unknown for flexibility
|
|
246
|
-
type SimpleBlock = unknown
|
|
247
|
-
|
|
248
|
-
// List item type
|
|
249
|
-
type ListItemType = {
|
|
250
|
-
readonly _tag: "ListItem"
|
|
251
|
-
readonly checked?: boolean | undefined
|
|
252
|
-
readonly children: ReadonlyArray<unknown>
|
|
253
|
-
}
|
|
254
|
-
|
|
255
247
|
/**
|
|
256
248
|
* Serialize list.
|
|
257
249
|
*/
|
|
258
250
|
const serializeList = (
|
|
259
|
-
node:
|
|
251
|
+
node: List,
|
|
260
252
|
options: SerializeOptions
|
|
261
253
|
): Effect.Effect<string, SerializeError> =>
|
|
262
254
|
Effect.gen(function*() {
|
|
263
255
|
const lines: Array<string> = []
|
|
264
256
|
let counter = node.start ?? 1
|
|
265
257
|
|
|
266
|
-
for (const item of node.children
|
|
258
|
+
for (const item of node.children) {
|
|
267
259
|
const prefix = node.ordered ? `${counter}.` : "-"
|
|
268
260
|
const checkbox = item.checked !== undefined ? (item.checked ? "[x] " : "[ ] ") : ""
|
|
269
261
|
|
|
@@ -291,38 +283,31 @@ const serializeList = (
|
|
|
291
283
|
* Serialize simple block (for nested content).
|
|
292
284
|
*/
|
|
293
285
|
const serializeSimpleBlock = (
|
|
294
|
-
node:
|
|
286
|
+
node: BlockNode,
|
|
295
287
|
options: SerializeOptions
|
|
296
288
|
): Effect.Effect<string, SerializeError> =>
|
|
297
289
|
Effect.gen(function*() {
|
|
298
|
-
|
|
299
|
-
switch (tagged._tag) {
|
|
290
|
+
switch (node._tag) {
|
|
300
291
|
case "Heading":
|
|
301
|
-
return yield* serializeHeading(
|
|
302
|
-
node as unknown as { level: 1 | 2 | 3 | 4 | 5 | 6; children: ReadonlyArray<InlineNode> }
|
|
303
|
-
)
|
|
292
|
+
return yield* serializeHeading(node)
|
|
304
293
|
case "Paragraph":
|
|
305
|
-
return yield* serializeParagraph(node
|
|
294
|
+
return yield* serializeParagraph(node)
|
|
306
295
|
case "CodeBlock":
|
|
307
|
-
return serializeCodeBlock(node
|
|
296
|
+
return serializeCodeBlock(node)
|
|
308
297
|
case "ThematicBreak":
|
|
309
298
|
return "---"
|
|
310
299
|
case "Image":
|
|
311
|
-
return serializeImage(
|
|
312
|
-
node as unknown as { src: string; alt?: string | undefined; title?: string | undefined },
|
|
313
|
-
options
|
|
314
|
-
)
|
|
300
|
+
return serializeImage(node, options)
|
|
315
301
|
case "Table":
|
|
316
|
-
return yield* serializeTable(
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
return
|
|
325
|
-
}
|
|
302
|
+
return yield* serializeTable(node)
|
|
303
|
+
case "List":
|
|
304
|
+
return yield* serializeList(node, options)
|
|
305
|
+
case "BlockQuote":
|
|
306
|
+
return yield* serializeBlockQuote(node, options)
|
|
307
|
+
case "TaskList":
|
|
308
|
+
return yield* serializeTaskList(node.children, options)
|
|
309
|
+
case "UnsupportedBlock":
|
|
310
|
+
return node.rawMarkdown ?? node.rawHtml ?? node.rawAdf ?? ""
|
|
326
311
|
default:
|
|
327
312
|
return ""
|
|
328
313
|
}
|
|
@@ -332,7 +317,7 @@ const serializeSimpleBlock = (
|
|
|
332
317
|
* Serialize block quote.
|
|
333
318
|
*/
|
|
334
319
|
const serializeBlockQuote = (
|
|
335
|
-
node:
|
|
320
|
+
node: BlockQuote,
|
|
336
321
|
options: SerializeOptions
|
|
337
322
|
): Effect.Effect<string, SerializeError> =>
|
|
338
323
|
Effect.gen(function*() {
|
|
@@ -349,7 +334,7 @@ const serializeBlockQuote = (
|
|
|
349
334
|
* Serialize info panel to container syntax.
|
|
350
335
|
*/
|
|
351
336
|
const serializeInfoPanel = (
|
|
352
|
-
node:
|
|
337
|
+
node: InfoPanel,
|
|
353
338
|
options: SerializeOptions
|
|
354
339
|
): Effect.Effect<string, SerializeError> =>
|
|
355
340
|
Effect.gen(function*() {
|
|
@@ -370,7 +355,7 @@ const serializeInfoPanel = (
|
|
|
370
355
|
* Serialize expand macro.
|
|
371
356
|
*/
|
|
372
357
|
const serializeExpandMacro = (
|
|
373
|
-
node:
|
|
358
|
+
node: ExpandMacro,
|
|
374
359
|
options: SerializeOptions
|
|
375
360
|
): Effect.Effect<string, SerializeError> =>
|
|
376
361
|
Effect.gen(function*() {
|
|
@@ -57,7 +57,7 @@ const makeMockFS = (files: Record<string, string> = {}) => {
|
|
|
57
57
|
|
|
58
58
|
return {
|
|
59
59
|
store,
|
|
60
|
-
layer: Layer.succeed(FileSystem.FileSystem, FileSystem.FileSystem.of(partial
|
|
60
|
+
layer: Layer.succeed(FileSystem.FileSystem, FileSystem.FileSystem.of(partial))
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -2,11 +2,24 @@ import * as NodeCrypto from "@effect/platform-node/NodeCrypto"
|
|
|
2
2
|
import { it as effectIt } from "@effect/vitest"
|
|
3
3
|
import * as Effect from "effect/Effect"
|
|
4
4
|
import { describe, expect, it } from "vitest"
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
AUTH_URL,
|
|
7
|
+
buildAuthUrl,
|
|
8
|
+
computeCodeChallenge,
|
|
9
|
+
CONFLUENCE_SCOPES,
|
|
10
|
+
generateCodeVerifier
|
|
11
|
+
} from "../src/auth/OAuthEndpoints.js"
|
|
6
12
|
|
|
7
13
|
const withCrypto = <A, E, R>(effect: Effect.Effect<A, E, R>) => effect.pipe(Effect.provide(NodeCrypto.layer))
|
|
8
14
|
|
|
9
15
|
describe("OAuthEndpoints", () => {
|
|
16
|
+
describe("CONFLUENCE_SCOPES", () => {
|
|
17
|
+
it("includes attachment read and write scopes", () => {
|
|
18
|
+
expect(CONFLUENCE_SCOPES).toContain("read:attachment:confluence")
|
|
19
|
+
expect(CONFLUENCE_SCOPES).toContain("write:attachment:confluence")
|
|
20
|
+
})
|
|
21
|
+
})
|
|
22
|
+
|
|
10
23
|
// ---- PKCE ----
|
|
11
24
|
|
|
12
25
|
describe("generateCodeVerifier", () => {
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest"
|
|
2
|
+
import { isPreviewableAttachment, renderAttachmentMarkdown, replaceAttachmentPlaceholder } from "../src/attachments.js"
|
|
3
|
+
|
|
4
|
+
describe("attachment helpers", () => {
|
|
5
|
+
it("treats SVG as previewable even with a generic media type", () => {
|
|
6
|
+
expect(isPreviewableAttachment({
|
|
7
|
+
filename: "diagram.svg",
|
|
8
|
+
mediaType: "application/octet-stream"
|
|
9
|
+
})).toBe(true)
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
it("renders image attachments as previews and other attachments as links", () => {
|
|
13
|
+
expect(renderAttachmentMarkdown({
|
|
14
|
+
id: "1",
|
|
15
|
+
filename: "screenshot.png",
|
|
16
|
+
url: "https://example.test/screenshot.png",
|
|
17
|
+
mediaType: "image/png",
|
|
18
|
+
size: 1
|
|
19
|
+
})).toBe("")
|
|
20
|
+
|
|
21
|
+
expect(renderAttachmentMarkdown({
|
|
22
|
+
id: "2",
|
|
23
|
+
filename: "debug.log",
|
|
24
|
+
url: "https://example.test/debug.log",
|
|
25
|
+
mediaType: "text/plain",
|
|
26
|
+
size: 1
|
|
27
|
+
})).toBe("[debug.log](https://example.test/debug.log)")
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it("escapes labels and wraps unsafe destinations in rendered markdown", () => {
|
|
31
|
+
expect(renderAttachmentMarkdown({
|
|
32
|
+
id: "1",
|
|
33
|
+
filename: "weird ] name\n.svg",
|
|
34
|
+
url: "https://example.test/a file(1).svg",
|
|
35
|
+
mediaType: "image/svg+xml",
|
|
36
|
+
size: 1
|
|
37
|
+
})).toBe("![weird \\] name .svg](<https://example.test/a file(1).svg>)")
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
it("uses an explicit label when rendering attachment markdown", () => {
|
|
41
|
+
expect(renderAttachmentMarkdown({
|
|
42
|
+
id: "1",
|
|
43
|
+
filename: "diagram.svg",
|
|
44
|
+
url: "https://example.test/diagram.svg",
|
|
45
|
+
mediaType: "image/svg+xml",
|
|
46
|
+
size: 1
|
|
47
|
+
}, { label: "Architecture diagram" })).toBe("")
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
it("replaces a named local Markdown placeholder", () => {
|
|
51
|
+
const result = replaceAttachmentPlaceholder(
|
|
52
|
+
"before\n\nafter",
|
|
53
|
+
"./diagram.svg",
|
|
54
|
+
""
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
expect(result).toEqual({
|
|
58
|
+
replacements: 1,
|
|
59
|
+
content: "before\n\nafter"
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
it("passes the placeholder label to callback replacements", () => {
|
|
64
|
+
const result = replaceAttachmentPlaceholder(
|
|
65
|
+
"before\n\nafter",
|
|
66
|
+
"./diagram.svg",
|
|
67
|
+
({ isImage, label }) => `${isImage ? "!" : ""}[${label}](https://example.test/diagram.svg)`
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
expect(result).toEqual({
|
|
71
|
+
replacements: 1,
|
|
72
|
+
content: "before\n\nafter"
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
})
|