redmine-devrelay-client 0.3.0 → 0.3.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.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/textile.d.ts +6 -0
- package/dist/textile.js +18 -0
- package/dist/textile.js.map +1 -0
- package/dist/writes.js +6 -3
- package/dist/writes.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ export { buildIssueQuery } from "./issues.js";
|
|
|
7
7
|
export { addComment, createIssue, updateIssue, updateIssueStatus, } from "./writes.js";
|
|
8
8
|
export { searchUsers, normalizeListedUser } from "./users.js";
|
|
9
9
|
export { listProjectMembers, matchMemberByName } from "./memberships.js";
|
|
10
|
+
export { formatNotesForRedmine } from "./textile.js";
|
|
10
11
|
export type * from "./types.js";
|
package/dist/index.js
CHANGED
|
@@ -7,4 +7,5 @@ export { buildIssueQuery } from "./issues.js";
|
|
|
7
7
|
export { addComment, createIssue, updateIssue, updateIssueStatus, } from "./writes.js";
|
|
8
8
|
export { searchUsers, normalizeListedUser } from "./users.js";
|
|
9
9
|
export { listProjectMembers, matchMemberByName } from "./memberships.js";
|
|
10
|
+
export { formatNotesForRedmine } from "./textile.js";
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redmine Textile (and some HTML-ish note UIs) collapse bare newlines.
|
|
3
|
+
* Convert line breaks to <br /> so multi-line comments render as intended.
|
|
4
|
+
* Idempotent for lines that already end with <br /> / <br>.
|
|
5
|
+
*/
|
|
6
|
+
export declare function formatNotesForRedmine(notes: string): string;
|
package/dist/textile.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redmine Textile (and some HTML-ish note UIs) collapse bare newlines.
|
|
3
|
+
* Convert line breaks to <br /> so multi-line comments render as intended.
|
|
4
|
+
* Idempotent for lines that already end with <br /> / <br>.
|
|
5
|
+
*/
|
|
6
|
+
export function formatNotesForRedmine(notes) {
|
|
7
|
+
const normalized = notes.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
8
|
+
return normalized
|
|
9
|
+
.split("\n")
|
|
10
|
+
.map((line) => {
|
|
11
|
+
const trimmedEnd = line.replace(/\s+$/u, "");
|
|
12
|
+
if (/<br\s*\/?>\s*$/i.test(trimmedEnd))
|
|
13
|
+
return trimmedEnd;
|
|
14
|
+
return `${trimmedEnd}<br />`;
|
|
15
|
+
})
|
|
16
|
+
.join("\n");
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=textile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textile.js","sourceRoot":"","sources":["../src/textile.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrE,OAAO,UAAU;SACd,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAC1D,OAAO,GAAG,UAAU,QAAQ,CAAC;IAC/B,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
package/dist/writes.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { formatNotesForRedmine } from "./textile.js";
|
|
1
2
|
function applyOptionalIssueFields(issue, input, opts = {}) {
|
|
2
3
|
if (input.description !== undefined)
|
|
3
4
|
issue.description = input.description;
|
|
@@ -24,7 +25,7 @@ function applyOptionalIssueFields(issue, input, opts = {}) {
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
if (input.notes !== undefined)
|
|
27
|
-
issue.notes = input.notes;
|
|
28
|
+
issue.notes = formatNotesForRedmine(input.notes);
|
|
28
29
|
}
|
|
29
30
|
export async function createIssue(http, input) {
|
|
30
31
|
const issue = {
|
|
@@ -58,13 +59,15 @@ export async function updateIssue(http, input) {
|
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
61
|
export async function addComment(http, issueId, notes) {
|
|
61
|
-
await http.putJson(`/issues/${issueId}.json`, {
|
|
62
|
+
await http.putJson(`/issues/${issueId}.json`, {
|
|
63
|
+
issue: { notes: formatNotesForRedmine(notes) },
|
|
64
|
+
});
|
|
62
65
|
return { issueId, updated: true };
|
|
63
66
|
}
|
|
64
67
|
export async function updateIssueStatus(http, issueId, statusId, notes) {
|
|
65
68
|
const issue = { status_id: statusId };
|
|
66
69
|
if (notes !== undefined)
|
|
67
|
-
issue.notes = notes;
|
|
70
|
+
issue.notes = formatNotesForRedmine(notes);
|
|
68
71
|
const data = await http.putJson(`/issues/${issueId}.json`, {
|
|
69
72
|
issue,
|
|
70
73
|
});
|
package/dist/writes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writes.js","sourceRoot":"","sources":["../src/writes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writes.js","sourceRoot":"","sources":["../src/writes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED