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.
@@ -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
+ };
@@ -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
+ }
@@ -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: string | null;
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[];
package/package.json CHANGED
@@ -82,7 +82,7 @@
82
82
  },
83
83
  "type": "module",
84
84
  "types": "./dist/index.d.ts",
85
- "version": "1.1.0",
85
+ "version": "1.2.1",
86
86
  "scripts": {
87
87
  "build": "tsc",
88
88
  "dev": "tsc --watch",