atl-fetch 1.1.0 → 1.2.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/README.md +20 -7
- package/dist/services/fetch/fetch-service.js +4 -5
- package/dist/services/jira/jira-service.js +2 -0
- package/dist/services/storage/storage-service.d.ts +5 -3
- package/dist/services/storage/storage-service.js +297 -36
- package/dist/services/text-converter/adf-to-html.d.ts +37 -0
- package/dist/services/text-converter/adf-to-html.js +476 -0
- package/dist/services/text-converter/adf-to-plain-text.d.ts +25 -0
- package/dist/services/text-converter/adf-to-plain-text.js +119 -0
- package/dist/services/text-converter/markdown-utils.d.ts +22 -0
- package/dist/services/text-converter/markdown-utils.js +270 -0
- package/dist/services/text-converter/storage-to-plain-text.d.ts +66 -0
- package/dist/services/text-converter/storage-to-plain-text.js +238 -0
- package/dist/services/text-converter/text-converter.d.ts +8 -18
- package/dist/services/text-converter/text-converter.js +23 -630
- package/dist/services/text-converter/types.d.ts +40 -0
- package/dist/services/text-converter/types.js +16 -0
- package/dist/types/jira.d.ts +5 -1
- package/dist/types/result.d.ts +104 -0
- package/dist/types/result.js +119 -0
- package/dist/types/storage.d.ts +3 -3
- package/package.json +1 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* テキスト変換サービスの型定義
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 添付ファイルパスのマッピング型
|
|
6
|
+
* filename -> savedPath
|
|
7
|
+
*/
|
|
8
|
+
export type AttachmentPathMapping = Record<string, string>;
|
|
9
|
+
/**
|
|
10
|
+
* ADF マークの型定義
|
|
11
|
+
*/
|
|
12
|
+
export interface AdfMark {
|
|
13
|
+
readonly type: string;
|
|
14
|
+
readonly attrs?: Readonly<Record<string, unknown>>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* ADF ノードの型定義
|
|
18
|
+
*/
|
|
19
|
+
export interface AdfNode {
|
|
20
|
+
readonly type: string;
|
|
21
|
+
readonly text?: string;
|
|
22
|
+
readonly content?: readonly AdfNode[];
|
|
23
|
+
readonly attrs?: Readonly<Record<string, unknown>>;
|
|
24
|
+
readonly marks?: readonly AdfMark[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* ADF ドキュメントの型定義
|
|
28
|
+
*/
|
|
29
|
+
export interface AdfDocument {
|
|
30
|
+
readonly type: 'doc';
|
|
31
|
+
readonly version: number;
|
|
32
|
+
readonly content: readonly AdfNode[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 入力が ADF ドキュメント形式かどうかを判定する
|
|
36
|
+
*
|
|
37
|
+
* @param input 入力値
|
|
38
|
+
* @returns ADF ドキュメント形式の場合 true
|
|
39
|
+
*/
|
|
40
|
+
export declare const isAdfDocument: (input: unknown) => input is AdfDocument;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* テキスト変換サービスの型定義
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 入力が ADF ドキュメント形式かどうかを判定する
|
|
6
|
+
*
|
|
7
|
+
* @param input 入力値
|
|
8
|
+
* @returns ADF ドキュメント形式の場合 true
|
|
9
|
+
*/
|
|
10
|
+
export const isAdfDocument = (input) => {
|
|
11
|
+
if (typeof input !== 'object' || input === null) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const doc = input;
|
|
15
|
+
return doc['type'] === 'doc' && Array.isArray(doc['content']);
|
|
16
|
+
};
|
package/dist/types/jira.d.ts
CHANGED
|
@@ -6,8 +6,10 @@ export interface JiraComment {
|
|
|
6
6
|
readonly id: string;
|
|
7
7
|
/** 作成者の表示名 */
|
|
8
8
|
readonly author: string;
|
|
9
|
-
/**
|
|
9
|
+
/** コメント本文(プレーンテキスト) */
|
|
10
10
|
readonly body: string;
|
|
11
|
+
/** コメント本文(ADF 形式、Markdown 変換用) */
|
|
12
|
+
readonly bodyAdf: unknown;
|
|
11
13
|
/** 作成日時(ISO 8601 形式) */
|
|
12
14
|
readonly created: string;
|
|
13
15
|
/** 更新日時(ISO 8601 形式) */
|
|
@@ -62,6 +64,8 @@ export interface JiraIssue {
|
|
|
62
64
|
readonly summary: string;
|
|
63
65
|
/** Issue 説明(null の場合は説明なし) */
|
|
64
66
|
readonly description: string | null;
|
|
67
|
+
/** Issue 説明(ADF 形式、Markdown 変換用) */
|
|
68
|
+
readonly descriptionAdf: unknown;
|
|
65
69
|
/** コメント一覧 */
|
|
66
70
|
readonly comments: readonly JiraComment[];
|
|
67
71
|
/** 変更履歴一覧 */
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result 型 - 成功または失敗を表現する discriminated union
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* function divide(a: number, b: number): Result<number, DivisionError> {
|
|
7
|
+
* if (b === 0) {
|
|
8
|
+
* return err({ kind: 'DIVISION_BY_ZERO', message: 'Cannot divide by zero' });
|
|
9
|
+
* }
|
|
10
|
+
* return ok(a / b);
|
|
11
|
+
* }
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* 成功を表す型
|
|
16
|
+
*/
|
|
17
|
+
export interface Ok<T> {
|
|
18
|
+
readonly success: true;
|
|
19
|
+
readonly value: T;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 失敗を表す型
|
|
23
|
+
*/
|
|
24
|
+
export interface Err<E> {
|
|
25
|
+
readonly success: false;
|
|
26
|
+
readonly error: E;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Result 型 - 成功(Ok)または失敗(Err)のどちらかを表す
|
|
30
|
+
*/
|
|
31
|
+
export type Result<T, E> = Ok<T> | Err<E>;
|
|
32
|
+
/**
|
|
33
|
+
* 成功 Result を作成する
|
|
34
|
+
*
|
|
35
|
+
* @param value - 成功値
|
|
36
|
+
* @returns 成功 Result
|
|
37
|
+
*/
|
|
38
|
+
export declare function ok<T>(value: T): Ok<T>;
|
|
39
|
+
/**
|
|
40
|
+
* 失敗 Result を作成する
|
|
41
|
+
*
|
|
42
|
+
* @param error - エラー値
|
|
43
|
+
* @returns 失敗 Result
|
|
44
|
+
*/
|
|
45
|
+
export declare function err<E>(error: E): Err<E>;
|
|
46
|
+
/**
|
|
47
|
+
* Result が成功かどうかを判定する型ガード
|
|
48
|
+
*
|
|
49
|
+
* @param result - 判定対象の Result
|
|
50
|
+
* @returns 成功の場合 true
|
|
51
|
+
*/
|
|
52
|
+
export declare function isOk<T, E>(result: Result<T, E>): result is Ok<T>;
|
|
53
|
+
/**
|
|
54
|
+
* Result が失敗かどうかを判定する型ガード
|
|
55
|
+
*
|
|
56
|
+
* @param result - 判定対象の Result
|
|
57
|
+
* @returns 失敗の場合 true
|
|
58
|
+
*/
|
|
59
|
+
export declare function isErr<T, E>(result: Result<T, E>): result is Err<E>;
|
|
60
|
+
/**
|
|
61
|
+
* 成功 Result から値を取り出す
|
|
62
|
+
* 失敗 Result の場合はエラーをスローする
|
|
63
|
+
*
|
|
64
|
+
* @param result - 対象の Result
|
|
65
|
+
* @returns 成功値
|
|
66
|
+
* @throws 失敗 Result の場合
|
|
67
|
+
*/
|
|
68
|
+
export declare function unwrap<T, E>(result: Result<T, E>): T;
|
|
69
|
+
/**
|
|
70
|
+
* 失敗 Result からエラー値を取り出す
|
|
71
|
+
* 成功 Result の場合はエラーをスローする
|
|
72
|
+
*
|
|
73
|
+
* @param result - 対象の Result
|
|
74
|
+
* @returns エラー値
|
|
75
|
+
* @throws 成功 Result の場合
|
|
76
|
+
*/
|
|
77
|
+
export declare function unwrapErr<T, E>(result: Result<T, E>): E;
|
|
78
|
+
/**
|
|
79
|
+
* 成功 Result から値を取り出す
|
|
80
|
+
* 失敗 Result の場合はデフォルト値を返す
|
|
81
|
+
*
|
|
82
|
+
* @param result - 対象の Result
|
|
83
|
+
* @param defaultValue - 失敗時のデフォルト値
|
|
84
|
+
* @returns 成功値またはデフォルト値
|
|
85
|
+
*/
|
|
86
|
+
export declare function unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T;
|
|
87
|
+
/**
|
|
88
|
+
* 成功 Result の値を変換する
|
|
89
|
+
* 失敗 Result の場合はそのまま返す
|
|
90
|
+
*
|
|
91
|
+
* @param result - 対象の Result
|
|
92
|
+
* @param fn - 変換関数
|
|
93
|
+
* @returns 変換された Result
|
|
94
|
+
*/
|
|
95
|
+
export declare function mapResult<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
|
|
96
|
+
/**
|
|
97
|
+
* 失敗 Result のエラー値を変換する
|
|
98
|
+
* 成功 Result の場合はそのまま返す
|
|
99
|
+
*
|
|
100
|
+
* @param result - 対象の Result
|
|
101
|
+
* @param fn - 変換関数
|
|
102
|
+
* @returns 変換された Result
|
|
103
|
+
*/
|
|
104
|
+
export declare function mapErr<T, E, F>(result: Result<T, E>, fn: (error: E) => F): Result<T, F>;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result 型 - 成功または失敗を表現する discriminated union
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* function divide(a: number, b: number): Result<number, DivisionError> {
|
|
7
|
+
* if (b === 0) {
|
|
8
|
+
* return err({ kind: 'DIVISION_BY_ZERO', message: 'Cannot divide by zero' });
|
|
9
|
+
* }
|
|
10
|
+
* return ok(a / b);
|
|
11
|
+
* }
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* 成功 Result を作成する
|
|
16
|
+
*
|
|
17
|
+
* @param value - 成功値
|
|
18
|
+
* @returns 成功 Result
|
|
19
|
+
*/
|
|
20
|
+
export function ok(value) {
|
|
21
|
+
return { success: true, value };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 失敗 Result を作成する
|
|
25
|
+
*
|
|
26
|
+
* @param error - エラー値
|
|
27
|
+
* @returns 失敗 Result
|
|
28
|
+
*/
|
|
29
|
+
export function err(error) {
|
|
30
|
+
return { error, success: false };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Result が成功かどうかを判定する型ガード
|
|
34
|
+
*
|
|
35
|
+
* @param result - 判定対象の Result
|
|
36
|
+
* @returns 成功の場合 true
|
|
37
|
+
*/
|
|
38
|
+
export function isOk(result) {
|
|
39
|
+
return result.success;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Result が失敗かどうかを判定する型ガード
|
|
43
|
+
*
|
|
44
|
+
* @param result - 判定対象の Result
|
|
45
|
+
* @returns 失敗の場合 true
|
|
46
|
+
*/
|
|
47
|
+
export function isErr(result) {
|
|
48
|
+
return !result.success;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 成功 Result から値を取り出す
|
|
52
|
+
* 失敗 Result の場合はエラーをスローする
|
|
53
|
+
*
|
|
54
|
+
* @param result - 対象の Result
|
|
55
|
+
* @returns 成功値
|
|
56
|
+
* @throws 失敗 Result の場合
|
|
57
|
+
*/
|
|
58
|
+
export function unwrap(result) {
|
|
59
|
+
if (isOk(result)) {
|
|
60
|
+
return result.value;
|
|
61
|
+
}
|
|
62
|
+
throw new Error(`Attempted to unwrap an Err value: ${String(result.error)}`);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 失敗 Result からエラー値を取り出す
|
|
66
|
+
* 成功 Result の場合はエラーをスローする
|
|
67
|
+
*
|
|
68
|
+
* @param result - 対象の Result
|
|
69
|
+
* @returns エラー値
|
|
70
|
+
* @throws 成功 Result の場合
|
|
71
|
+
*/
|
|
72
|
+
export function unwrapErr(result) {
|
|
73
|
+
if (isErr(result)) {
|
|
74
|
+
return result.error;
|
|
75
|
+
}
|
|
76
|
+
throw new Error('Attempted to unwrapErr an Ok value');
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 成功 Result から値を取り出す
|
|
80
|
+
* 失敗 Result の場合はデフォルト値を返す
|
|
81
|
+
*
|
|
82
|
+
* @param result - 対象の Result
|
|
83
|
+
* @param defaultValue - 失敗時のデフォルト値
|
|
84
|
+
* @returns 成功値またはデフォルト値
|
|
85
|
+
*/
|
|
86
|
+
export function unwrapOr(result, defaultValue) {
|
|
87
|
+
if (isOk(result)) {
|
|
88
|
+
return result.value;
|
|
89
|
+
}
|
|
90
|
+
return defaultValue;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* 成功 Result の値を変換する
|
|
94
|
+
* 失敗 Result の場合はそのまま返す
|
|
95
|
+
*
|
|
96
|
+
* @param result - 対象の Result
|
|
97
|
+
* @param fn - 変換関数
|
|
98
|
+
* @returns 変換された Result
|
|
99
|
+
*/
|
|
100
|
+
export function mapResult(result, fn) {
|
|
101
|
+
if (isOk(result)) {
|
|
102
|
+
return ok(fn(result.value));
|
|
103
|
+
}
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* 失敗 Result のエラー値を変換する
|
|
108
|
+
* 成功 Result の場合はそのまま返す
|
|
109
|
+
*
|
|
110
|
+
* @param result - 対象の Result
|
|
111
|
+
* @param fn - 変換関数
|
|
112
|
+
* @returns 変換された Result
|
|
113
|
+
*/
|
|
114
|
+
export function mapErr(result, fn) {
|
|
115
|
+
if (isErr(result)) {
|
|
116
|
+
return err(fn(result.error));
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
package/dist/types/storage.d.ts
CHANGED
|
@@ -93,9 +93,9 @@ export interface JiraSaveData {
|
|
|
93
93
|
readonly key: string;
|
|
94
94
|
/** Issue タイトル(要約) */
|
|
95
95
|
readonly summary: string;
|
|
96
|
-
/** Issue 説明(null の場合は説明なし) */
|
|
97
|
-
readonly description:
|
|
98
|
-
/** 説明のプレーンテキスト(null
|
|
96
|
+
/** Issue 説明(ADF 形式、null の場合は説明なし) */
|
|
97
|
+
readonly description: unknown;
|
|
98
|
+
/** 説明のプレーンテキスト(null の場合は説明なし、後方互換性のため維持) */
|
|
99
99
|
readonly descriptionPlainText: string | null;
|
|
100
100
|
/** コメント一覧 */
|
|
101
101
|
readonly comments: readonly JiraComment[];
|