kibela-api-client 0.1.9 → 0.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.
Files changed (119) hide show
  1. package/README.md +66 -78
  2. package/dist/cli/_error-handler.d.ts.map +1 -1
  3. package/dist/cli/_error-handler.js +5 -8
  4. package/dist/cli/_error-handler.js.map +1 -1
  5. package/dist/cli/_validators.d.ts +15 -38
  6. package/dist/cli/_validators.d.ts.map +1 -1
  7. package/dist/cli/_validators.js +148 -49
  8. package/dist/cli/_validators.js.map +1 -1
  9. package/dist/cli/commands/all.d.ts +3 -0
  10. package/dist/cli/commands/all.d.ts.map +1 -0
  11. package/dist/cli/commands/all.js +59 -0
  12. package/dist/cli/commands/all.js.map +1 -0
  13. package/dist/cli/commands/config.d.ts +6 -2
  14. package/dist/cli/commands/config.d.ts.map +1 -1
  15. package/dist/cli/commands/config.js +67 -62
  16. package/dist/cli/commands/config.js.map +1 -1
  17. package/dist/cli/commands/get.d.ts +3 -0
  18. package/dist/cli/commands/get.d.ts.map +1 -0
  19. package/dist/cli/commands/get.js +152 -0
  20. package/dist/cli/commands/get.js.map +1 -0
  21. package/dist/cli/commands/groups-simple.d.ts +3 -0
  22. package/dist/cli/commands/groups-simple.d.ts.map +1 -0
  23. package/dist/cli/commands/groups-simple.js +39 -0
  24. package/dist/cli/commands/groups-simple.js.map +1 -0
  25. package/dist/cli/commands/new.d.ts +3 -0
  26. package/dist/cli/commands/new.d.ts.map +1 -0
  27. package/dist/cli/commands/new.js +168 -0
  28. package/dist/cli/commands/new.js.map +1 -0
  29. package/dist/cli/commands/set.d.ts +3 -0
  30. package/dist/cli/commands/set.d.ts.map +1 -0
  31. package/dist/cli/commands/set.js +96 -0
  32. package/dist/cli/commands/set.js.map +1 -0
  33. package/dist/cli/commands/users.d.ts +2 -2
  34. package/dist/cli/commands/users.d.ts.map +1 -1
  35. package/dist/cli/commands/users.js +50 -65
  36. package/dist/cli/commands/users.js.map +1 -1
  37. package/dist/cli/config.js +7 -7
  38. package/dist/cli/config.js.map +1 -1
  39. package/dist/cli/index.js +29 -13
  40. package/dist/cli/index.js.map +1 -1
  41. package/dist/cli/utils/frontmatter.d.ts +3 -0
  42. package/dist/cli/utils/frontmatter.d.ts.map +1 -0
  43. package/dist/cli/utils/frontmatter.js +89 -0
  44. package/dist/cli/utils/frontmatter.js.map +1 -0
  45. package/dist/cli/utils.d.ts +2 -2
  46. package/dist/cli/utils.d.ts.map +1 -1
  47. package/dist/cli/utils.js +7 -13
  48. package/dist/cli/utils.js.map +1 -1
  49. package/dist/client/index.js +2 -2
  50. package/dist/client/index.js.map +1 -1
  51. package/dist/core/cli/command.d.ts +45 -0
  52. package/dist/core/cli/command.d.ts.map +1 -0
  53. package/dist/core/cli/command.js +237 -0
  54. package/dist/core/cli/command.js.map +1 -0
  55. package/dist/core/env.d.ts +9 -0
  56. package/dist/core/env.d.ts.map +1 -0
  57. package/dist/core/env.js +96 -0
  58. package/dist/core/env.js.map +1 -0
  59. package/dist/core/graphql/client.d.ts +29 -0
  60. package/dist/core/graphql/client.d.ts.map +1 -0
  61. package/dist/core/graphql/client.js +41 -0
  62. package/dist/core/graphql/client.js.map +1 -0
  63. package/dist/core/http/client.d.ts +16 -0
  64. package/dist/core/http/client.d.ts.map +1 -0
  65. package/dist/core/http/client.js +87 -0
  66. package/dist/core/http/client.js.map +1 -0
  67. package/dist/core/index.d.ts +9 -0
  68. package/dist/core/index.d.ts.map +1 -0
  69. package/dist/core/index.js +25 -0
  70. package/dist/core/index.js.map +1 -0
  71. package/dist/core/terminal/colors.d.ts +29 -0
  72. package/dist/core/terminal/colors.d.ts.map +1 -0
  73. package/dist/core/terminal/colors.js +66 -0
  74. package/dist/core/terminal/colors.js.map +1 -0
  75. package/dist/core/terminal/prompt.d.ts +22 -0
  76. package/dist/core/terminal/prompt.d.ts.map +1 -0
  77. package/dist/core/terminal/prompt.js +189 -0
  78. package/dist/core/terminal/prompt.js.map +1 -0
  79. package/dist/core/terminal/spinner.d.ts +17 -0
  80. package/dist/core/terminal/spinner.d.ts.map +1 -0
  81. package/dist/core/terminal/spinner.js +79 -0
  82. package/dist/core/terminal/spinner.js.map +1 -0
  83. package/dist/core/validation/validator.d.ts +26 -0
  84. package/dist/core/validation/validator.d.ts.map +1 -0
  85. package/dist/core/validation/validator.js +100 -0
  86. package/dist/core/validation/validator.js.map +1 -0
  87. package/dist/queries/notes.d.ts +10 -1
  88. package/dist/queries/notes.d.ts.map +1 -1
  89. package/dist/queries/notes.js +13 -13
  90. package/dist/queries/notes.js.map +1 -1
  91. package/dist/sync/frontmatter.d.ts +30 -0
  92. package/dist/sync/frontmatter.d.ts.map +1 -0
  93. package/dist/sync/frontmatter.js +123 -0
  94. package/dist/sync/frontmatter.js.map +1 -0
  95. package/dist/sync/index.d.ts +3 -0
  96. package/dist/sync/index.d.ts.map +1 -0
  97. package/dist/sync/index.js +19 -0
  98. package/dist/sync/index.js.map +1 -0
  99. package/dist/sync/sync-client.d.ts +17 -0
  100. package/dist/sync/sync-client.d.ts.map +1 -0
  101. package/dist/sync/sync-client.js +158 -0
  102. package/dist/sync/sync-client.js.map +1 -0
  103. package/package.json +2 -12
  104. package/dist/cli/commands/groups.d.ts +0 -3
  105. package/dist/cli/commands/groups.d.ts.map +0 -1
  106. package/dist/cli/commands/groups.js +0 -57
  107. package/dist/cli/commands/groups.js.map +0 -1
  108. package/dist/cli/commands/notes.d.ts +0 -3
  109. package/dist/cli/commands/notes.d.ts.map +0 -1
  110. package/dist/cli/commands/notes.js +0 -432
  111. package/dist/cli/commands/notes.js.map +0 -1
  112. package/dist/cli/commands/stats.d.ts +0 -3
  113. package/dist/cli/commands/stats.d.ts.map +0 -1
  114. package/dist/cli/commands/stats.js +0 -71
  115. package/dist/cli/commands/stats.js.map +0 -1
  116. package/dist/cli/commands/test.d.ts +0 -3
  117. package/dist/cli/commands/test.d.ts.map +0 -1
  118. package/dist/cli/commands/test.js +0 -19
  119. package/dist/cli/commands/test.js.map +0 -1
package/README.md CHANGED
@@ -3,14 +3,14 @@
3
3
  [![npm version](https://img.shields.io/npm/v/kibela-api-client.svg)](https://www.npmjs.com/package/kibela-api-client)
4
4
  [![npm downloads](https://img.shields.io/npm/dm/kibela-api-client.svg)](https://www.npmjs.com/package/kibela-api-client)
5
5
  [![npm downloads total](https://img.shields.io/npm/dt/kibela-api-client.svg)](https://www.npmjs.com/package/kibela-api-client)
6
- [![Bundle Size](https://img.shields.io/bundlephobia/minzip/kibela-api-client)](https://bundlephobia.com/package/kibela-api-client)
6
+ [![Zero Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen.svg)](https://www.npmjs.com/package/kibela-api-client?activeTab=dependencies)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
8
  [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)
9
9
  [![Node version](https://img.shields.io/node/v/kibela-api-client.svg)](https://nodejs.org)
10
10
 
11
- Kibela API用の非公式TypeScriptクライアントライブラリ(CLI対応)
11
+ Kibela API用の非公式TypeScriptクライアントライブラリ - ゼロ依存、フル機能CLI付き
12
12
 
13
- **注意**: これはKibelaの非公式クライアントライブラリです。Kibela社による公式サポートはありません。
13
+ **注意**: これはKibelaの非公式クライアントライブラリです。Kibelaのサービス提供者による公式サポートはありません。
14
14
 
15
15
  [English Version](./README_EN.md)
16
16
 
@@ -20,23 +20,25 @@ Kibela API用の非公式TypeScriptクライアントライブラリ(CLI対応
20
20
  - 🔧 **CLIツール**: 一般的な操作のための強力なコマンドラインインターフェース
21
21
  - 🔐 **セキュア**: 環境変数対応のAPIキー管理
22
22
  - 📝 **完全なAPIカバレッジ**: ノート、ユーザー、グループなど
23
- - ⚡ **軽量**: 最小限の依存関係、最適化されたバンドルサイズ
23
+ - ⚡ **外部依存ゼロ**: Node.js標準モジュールのみを使用
24
24
  - 🌐 **GraphQL**: 直接的なGraphQL API統合
25
+ - 🔄 **ローカル管理**: ローカルファイルとKibelaの効率的な同期
26
+ - 📄 **Frontmatter対応**: YAMLメタデータ付きMarkdownファイルの完全サポート
25
27
 
26
28
  ## インストール
27
29
 
28
30
  ```bash
29
31
  # npm
30
- npm install kibela-api-client
32
+ npm install -g kibela-api-client
31
33
 
32
34
  # yarn
33
- yarn add kibela-api-client
35
+ yarn global add kibela-api-client
34
36
 
35
37
  # pnpm
36
- pnpm add kibela-api-client
38
+ pnpm add -g kibela-api-client
37
39
 
38
- # グローバルCLIインストール
39
- npm install -g kibela-api-client
40
+ # ローカルプロジェクト
41
+ npm install kibela-api-client
40
42
  ```
41
43
 
42
44
  ## クイックスタート
@@ -49,7 +51,7 @@ import { createClient } from 'kibela-api-client';
49
51
  // クライアントインスタンスの作成
50
52
  const kibela = createClient({
51
53
  team: 'your-team-name',
52
- token: process.env.KIBELA_API_KEY
54
+ token: process.env.KIBELA_TOKEN
53
55
  });
54
56
 
55
57
  // ノートの作成
@@ -71,90 +73,46 @@ const user = await kibela.users.getCurrentUser();
71
73
 
72
74
  #### 設定
73
75
 
74
- CLIは以下の優先順位で複数の設定方法をサポートしています:
75
-
76
- 1. 設定ファイル(`~/.kibela/config.json`)
77
- 2. 環境変数
78
- 3. 現在のディレクトリの`.env`ファイル
79
-
80
76
  ```bash
81
77
  # 対話的セットアップ
82
78
  kibela config
83
79
 
84
- # 認証情報を直接設定
80
+ # 直接設定
85
81
  kibela config --team your-team --token your-api-token
86
82
 
87
- # 環境変数を使用
83
+ # 環境変数で設定
88
84
  export KIBELA_TEAM=your-team
89
- export KIBELA_API_KEY=your-api-token
90
-
91
- # または.envファイルを使用
92
- echo "KIBELA_TEAM=your-team" >> .env
93
- echo "KIBELA_API_KEY=your-api-token" >> .env
85
+ export KIBELA_TOKEN=your-api-token
94
86
  ```
95
87
 
96
- #### コマンド
97
-
98
- ##### ノート管理
88
+ #### 基本コマンド
99
89
 
100
90
  ```bash
101
- # 最近のノート一覧
102
- kibela notes list
103
-
104
- # 特定のグループのノート一覧
105
- kibela notes list --group <グループID>
106
-
107
- # グループ内の特定のフォルダのノート一覧
108
- kibela notes list --group <グループID> --folder "<フォルダ名>"
109
-
110
- # ノートの検索
111
- kibela notes list --search "キーワード" --limit 20
112
-
113
- # グループ内の全フォルダ一覧
114
- kibela notes folders --group <グループID>
115
-
116
- # 新規ノートの作成
117
- kibela notes create --title "タイトル" --content "内容" --groups <グループID>
118
-
119
- # Markdownファイルからノートを作成
120
- kibela notes create --markdown note.md --groups <グループID>
121
-
122
- # 特定のフォルダにノートを作成
123
- kibela notes create --markdown note.md --groups <グループID> --folder "<フォルダ名>"
124
-
125
- # 特定のノートを取得
126
- kibela notes get <ノートID>
127
-
128
- # ノートの内容をファイルに保存
129
- kibela notes get <ノートID> --output output.md
91
+ # 全ノートの取得
92
+ kibela all # ローカルにダウンロード
93
+ kibela all --list # 一覧表示のみ
94
+ kibela all -l 20 # 20件のみ
130
95
 
131
- # Markdownの代わりにHTML内容を表示
132
- kibela notes get <ノートID> --html
96
+ # 特定ノートの取得
97
+ kibela get <ノートID> # ID指定(タイトルがファイル名に)
98
+ kibela get <ID> --frontmatter # フロントマター付きで保存
99
+ kibela get --group <ID> # グループ指定
133
100
 
134
101
  # ノートの更新
135
- kibela notes update <ノートID> --title "新しいタイトル" --content "新しい内容"
102
+ kibela set notes/123.md # ファイルから更新
103
+ kibela set --id <ID> --title "新タイトル"
136
104
 
137
- # Markdownファイルからノートを更新
138
- kibela notes update <ノートID> --markdown updated.md
139
-
140
- # ノートの削除
141
- kibela notes delete <ノートID>
105
+ # ノートの新規作成
106
+ kibela new # 対話的に作成
107
+ kibela new --file note.md # ファイルから作成
108
+ kibela new --title "タイトル" --content "内容"
142
109
  ```
143
110
 
144
- ##### ワークスペース情報
145
-
146
- ```bash
147
- # 全グループ一覧
148
- kibela groups
149
- kibela groups --all # ページネーションなしで全グループを表示
150
-
151
- # ユーザー一覧
152
- kibela users list
153
- kibela users list --all # 全ユーザーを表示
154
-
155
- # 現在のユーザー情報を取得
156
- kibela users me
157
- ```
111
+ # シンプルなコマンド体系
112
+ kibela all # 全ノートをローカルにダウンロード
113
+ kibela get --search "検索" # ノートを検索・取得
114
+ kibela set notes/123.md # 既存ノートを更新
115
+ kibela new --file note.md # 新規ノートを作成
158
116
 
159
117
  ## APIリファレンス
160
118
 
@@ -250,7 +208,7 @@ kibela.users.getAll()
250
208
  ## 環境変数
251
209
 
252
210
  - `KIBELA_TEAM`: あなたのKibelaチーム名
253
- - `KIBELA_API_KEY` または `KIBELA_TOKEN`: あなたのAPIトークン
211
+ - `KIBELA_TOKEN`: あなたのAPIトークン
254
212
 
255
213
  ## セキュリティ
256
214
 
@@ -291,6 +249,36 @@ npm run dev
291
249
  npm test
292
250
  ```
293
251
 
252
+ ## 制限事項
253
+
254
+ - **検索機能**: Kibela APIの制限により、検索機能(`--search`)は現在利用できません
255
+ - 代替方法: `kibela all --list | grep "検索語"` または グループ指定での取得
256
+
257
+ ## 外部依存ゼロの実装
258
+
259
+ このライブラリは外部依存を一切使用せず、Node.js標準モジュールのみで実装されています:
260
+
261
+ - HTTPクライアント: Node.js標準の`https`モジュール
262
+ - CLIフレームワーク: 自前実装
263
+ - ターミナル装飾: ANSIエスケープコード直接使用
264
+ - バリデーション: 軽量な自前実装
265
+ - 環境変数: `process.env`直接使用
266
+
267
+ これにより、セキュリティリスクを最小化し、バンドルサイズを削減しています。
268
+
269
+ ## シンプルなコマンド体系
270
+
271
+ 直感的な4つのコマンドでKibelaを操作:
272
+
273
+ - **all**: 全ノートの一括取得・ダウンロード
274
+ - **get**: 特定ノートの取得・検索
275
+ - **set**: 既存ノートの更新
276
+ - **new**: 新規ノートの作成
277
+
278
+ 各コマンドは`--dir`オプションでローカルファイル管理もサポートします。
279
+
280
+ 詳細な使用方法は[USAGE.md](./USAGE.md)をご覧ください。
281
+
294
282
  ## コントリビュート
295
283
 
296
284
  コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
@@ -1 +1 @@
1
- {"version":3,"file":"_error-handler.d.ts","sourceRoot":"","sources":["../../src/cli/_error-handler.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAY,SAAQ,KAAK;IAG3B,IAAI,CAAC,EAAE,MAAM;IACb,OAAO,CAAC,EAAE,GAAG;gBAFpB,OAAO,EAAE,MAAM,EACR,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,OAAO,CAAC,EAAE,GAAG,YAAA;CAKvB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAsDpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,IAAI,CAiB7D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,IAC7B,GAAG,MAAM,GAAG,EAAE,mBAW7B"}
1
+ {"version":3,"file":"_error-handler.d.ts","sourceRoot":"","sources":["../../src/cli/_error-handler.ts"],"names":[],"mappings":"AAYA,qBAAa,WAAY,SAAQ,KAAK;IAG3B,IAAI,CAAC,EAAE,MAAM;IACb,OAAO,CAAC,EAAE,GAAG;gBAFpB,OAAO,EAAE,MAAM,EACR,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,OAAO,CAAC,EAAE,GAAG,YAAA;CAKvB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAsDpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,IAAI,CAiB7D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,IAC7B,GAAG,MAAM,GAAG,EAAE,mBAW7B"}
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.KibelaError = void 0;
7
4
  exports.handleGraphQLError = handleGraphQLError;
8
5
  exports.displayError = displayError;
9
6
  exports.wrapAsyncCommand = wrapAsyncCommand;
10
- const chalk_1 = __importDefault(require("chalk"));
7
+ const colors_1 = require("../core/terminal/colors");
11
8
  class KibelaError extends Error {
12
9
  constructor(message, code, details) {
13
10
  super(message);
@@ -44,16 +41,16 @@ function handleGraphQLError(error) {
44
41
  throw new KibelaError(error.message || 'An unexpected error occurred', 'UNKNOWN_ERROR', error);
45
42
  }
46
43
  function displayError(error) {
47
- console.error(chalk_1.default.red('✖'), chalk_1.default.bold('Error:'), error.message);
44
+ console.error(colors_1.colors.red('✖'), colors_1.colors.bold('Error:'), error.message);
48
45
  if (error instanceof KibelaError) {
49
46
  if (error.code === 'AUTH_ERROR') {
50
- console.error(chalk_1.default.dim('\nPlease run "kibela config" to update your credentials.'));
47
+ console.error(colors_1.colors.dim('\nPlease run "kibela config" to update your credentials.'));
51
48
  }
52
49
  else if (error.code === 'NETWORK_ERROR') {
53
- console.error(chalk_1.default.dim('\nCheck your internet connection and team name.'));
50
+ console.error(colors_1.colors.dim('\nCheck your internet connection and team name.'));
54
51
  }
55
52
  if (process.env.DEBUG && error.details) {
56
- console.error(chalk_1.default.dim('\nDebug details:'));
53
+ console.error(colors_1.colors.dim('\nDebug details:'));
57
54
  console.error(error.details);
58
55
  }
59
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"_error-handler.js","sourceRoot":"","sources":["../../src/cli/_error-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_error-handler.js","sourceRoot":"","sources":["../../src/cli/_error-handler.ts"],"names":[],"mappings":";;;AAuBA,gDAsDC;AAED,oCAiBC;AAED,4CAYC;AA9GD,oDAAiD;AAYjD,MAAa,WAAY,SAAQ,KAAK;IACpC,YACE,OAAe,EACR,IAAa,EACb,OAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAS;QACb,YAAO,GAAP,OAAO,CAAM;QAGpB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AATD,kCASC;AAED,SAAgB,kBAAkB,CAAC,KAAU;IAC3C,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAwB,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvD,iCAAiC;QACjC,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,WAAW,CACnB,qDAAqD,EACrD,YAAY,EACZ,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,WAAW,CACnB,wDAAwD,EACxD,WAAW,EACX,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,WAAW,CACnB,8DAA8D,EAC9D,kBAAkB,EAClB,MAAM,CACP,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,iBAAiB;IACjB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,WAAW,CACnB,mFAAmF,EACnF,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,WAAW,CACnB,sCAAsC,EACtC,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,MAAM,IAAI,WAAW,CACnB,KAAK,CAAC,OAAO,IAAI,8BAA8B,EAC/C,eAAe,EACf,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,KAA0B;IACrD,OAAO,CAAC,KAAK,CAAC,eAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,eAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAErE,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,eAAM,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,eAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,eAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAgB,gBAAgB,CAAC,EAAY;IAC3C,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,44 +1,21 @@
1
- import { z } from 'zod';
2
- export declare const ConfigSchema: z.ZodObject<{
3
- team: z.ZodString;
4
- token: z.ZodString;
5
- }, z.core.$strip>;
6
- export declare const CreateNoteInputSchema: z.ZodObject<{
7
- title: z.ZodString;
8
- content: z.ZodString;
9
- coediting: z.ZodOptional<z.ZodBoolean>;
10
- groupIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
- draft: z.ZodOptional<z.ZodBoolean>;
12
- }, z.core.$strip>;
13
- export declare const UpdateNoteInputSchema: z.ZodObject<{
14
- title: z.ZodOptional<z.ZodString>;
15
- content: z.ZodOptional<z.ZodString>;
16
- coediting: z.ZodOptional<z.ZodBoolean>;
17
- groupIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
- draft: z.ZodOptional<z.ZodBoolean>;
19
- }, z.core.$strip>;
20
- export declare const EnvSchema: z.ZodObject<{
21
- KIBELA_TEAM: z.ZodOptional<z.ZodString>;
22
- KIBELA_TOKEN: z.ZodOptional<z.ZodString>;
23
- KIBELA_API_KEY: z.ZodOptional<z.ZodString>;
24
- }, z.core.$strip>;
25
- export declare const NoteResponseSchema: z.ZodObject<{
26
- id: z.ZodString;
27
- title: z.ZodString;
28
- content: z.ZodString;
29
- url: z.ZodString;
30
- }, z.core.$strip>;
31
- export declare const ErrorResponseSchema: z.ZodObject<{
32
- errors: z.ZodArray<z.ZodObject<{
33
- message: z.ZodString;
34
- extensions: z.ZodOptional<z.ZodObject<{
35
- code: z.ZodOptional<z.ZodString>;
36
- }, z.core.$strip>>;
37
- }, z.core.$strip>>;
38
- }, z.core.$strip>;
1
+ import { Schema } from '../core/validation/validator';
2
+ export declare const ConfigSchema: Schema;
3
+ export declare const CreateNoteInputSchema: Schema;
4
+ export declare const UpdateNoteInputSchema: Schema;
5
+ export declare const EnvSchema: Schema;
6
+ export declare const NoteResponseSchema: Schema;
7
+ export declare const ErrorResponseSchema: Schema;
39
8
  export declare function validateConfig(team?: string, token?: string): {
40
9
  isValid: boolean;
41
10
  error?: string;
42
11
  };
12
+ export declare function validateUpdateNoteInput(data: any): {
13
+ isValid: boolean;
14
+ error?: string;
15
+ };
16
+ export declare function validateEnv(env: any): {
17
+ isValid: boolean;
18
+ error?: string;
19
+ };
43
20
  export declare function sanitizeToken(token: string): string;
44
21
  //# sourceMappingURL=_validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_validators.d.ts","sourceRoot":"","sources":["../../src/cli/_validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,YAAY;;;iBAGvB,CAAC;AAGH,eAAO,MAAM,qBAAqB;;;;;;iBAMhC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;iBAQhC,CAAC;AAGH,eAAO,MAAM,SAAS;;;;iBAMpB,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AAGH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAYlG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD"}
1
+ {"version":3,"file":"_validators.d.ts","sourceRoot":"","sources":["../../src/cli/_validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAGjE,eAAO,MAAM,YAAY,EAAE,MAa1B,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,MA0BnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAwBnC,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,MASvB,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,MAiBhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAwBjC,CAAC;AAGF,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAYlG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAevF;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAW1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD"}
@@ -2,62 +2,161 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ErrorResponseSchema = exports.NoteResponseSchema = exports.EnvSchema = exports.UpdateNoteInputSchema = exports.CreateNoteInputSchema = exports.ConfigSchema = void 0;
4
4
  exports.validateConfig = validateConfig;
5
+ exports.validateUpdateNoteInput = validateUpdateNoteInput;
6
+ exports.validateEnv = validateEnv;
5
7
  exports.sanitizeToken = sanitizeToken;
6
- const zod_1 = require("zod");
8
+ const validator_1 = require("../core/validation/validator");
7
9
  // Configuration validation
8
- exports.ConfigSchema = zod_1.z.object({
9
- team: zod_1.z.string().min(1, 'Team name is required'),
10
- token: zod_1.z.string().min(1, 'API token is required')
11
- });
10
+ exports.ConfigSchema = {
11
+ team: {
12
+ type: 'string',
13
+ required: true,
14
+ min: 1,
15
+ validate: (value) => value.trim() === '' ? 'Team name is required' : null,
16
+ },
17
+ token: {
18
+ type: 'string',
19
+ required: true,
20
+ min: 1,
21
+ validate: (value) => value.trim() === '' ? 'API token is required' : null,
22
+ },
23
+ };
12
24
  // Note input validation
13
- exports.CreateNoteInputSchema = zod_1.z.object({
14
- title: zod_1.z.string().min(1, 'Title is required'),
15
- content: zod_1.z.string().min(1, 'Content is required'),
16
- coediting: zod_1.z.boolean().optional(),
17
- groupIds: zod_1.z.array(zod_1.z.string()).optional(),
18
- draft: zod_1.z.boolean().optional()
19
- });
20
- exports.UpdateNoteInputSchema = zod_1.z.object({
21
- title: zod_1.z.string().min(1).optional(),
22
- content: zod_1.z.string().min(1).optional(),
23
- coediting: zod_1.z.boolean().optional(),
24
- groupIds: zod_1.z.array(zod_1.z.string()).optional(),
25
- draft: zod_1.z.boolean().optional()
26
- }).refine(data => data.title || data.content, {
27
- message: 'At least one field (title or content) must be provided'
28
- });
25
+ exports.CreateNoteInputSchema = {
26
+ title: {
27
+ type: 'string',
28
+ required: true,
29
+ min: 1,
30
+ validate: (value) => value.trim() === '' ? 'Title is required' : null,
31
+ },
32
+ content: {
33
+ type: 'string',
34
+ required: true,
35
+ min: 1,
36
+ validate: (value) => value.trim() === '' ? 'Content is required' : null,
37
+ },
38
+ coediting: {
39
+ type: 'boolean',
40
+ required: false,
41
+ },
42
+ groupIds: {
43
+ type: 'array',
44
+ required: false,
45
+ items: { type: 'string' },
46
+ },
47
+ draft: {
48
+ type: 'boolean',
49
+ required: false,
50
+ },
51
+ };
52
+ exports.UpdateNoteInputSchema = {
53
+ title: {
54
+ type: 'string',
55
+ required: false,
56
+ min: 1,
57
+ },
58
+ content: {
59
+ type: 'string',
60
+ required: false,
61
+ min: 1,
62
+ },
63
+ coediting: {
64
+ type: 'boolean',
65
+ required: false,
66
+ },
67
+ groupIds: {
68
+ type: 'array',
69
+ required: false,
70
+ items: { type: 'string' },
71
+ },
72
+ draft: {
73
+ type: 'boolean',
74
+ required: false,
75
+ },
76
+ };
29
77
  // Environment variable validation
30
- exports.EnvSchema = zod_1.z.object({
31
- KIBELA_TEAM: zod_1.z.string().optional(),
32
- KIBELA_TOKEN: zod_1.z.string().optional(),
33
- KIBELA_API_KEY: zod_1.z.string().optional()
34
- }).refine(data => !data.KIBELA_TOKEN || !data.KIBELA_API_KEY || data.KIBELA_TOKEN === data.KIBELA_API_KEY, {
35
- message: 'Both KIBELA_TOKEN and KIBELA_API_KEY are set with different values. Please use only one.'
36
- });
78
+ exports.EnvSchema = {
79
+ KIBELA_TEAM: {
80
+ type: 'string',
81
+ required: false,
82
+ },
83
+ KIBELA_TOKEN: {
84
+ type: 'string',
85
+ required: false,
86
+ },
87
+ };
37
88
  // API response validation
38
- exports.NoteResponseSchema = zod_1.z.object({
39
- id: zod_1.z.string(),
40
- title: zod_1.z.string(),
41
- content: zod_1.z.string(),
42
- url: zod_1.z.string()
43
- });
44
- exports.ErrorResponseSchema = zod_1.z.object({
45
- errors: zod_1.z.array(zod_1.z.object({
46
- message: zod_1.z.string(),
47
- extensions: zod_1.z.object({
48
- code: zod_1.z.string().optional()
49
- }).optional()
50
- }))
51
- });
89
+ exports.NoteResponseSchema = {
90
+ id: {
91
+ type: 'string',
92
+ required: true,
93
+ },
94
+ title: {
95
+ type: 'string',
96
+ required: true,
97
+ },
98
+ content: {
99
+ type: 'string',
100
+ required: true,
101
+ },
102
+ url: {
103
+ type: 'string',
104
+ required: true,
105
+ },
106
+ };
107
+ exports.ErrorResponseSchema = {
108
+ errors: {
109
+ type: 'array',
110
+ required: true,
111
+ items: {
112
+ type: 'object',
113
+ properties: {
114
+ message: {
115
+ type: 'string',
116
+ required: true,
117
+ },
118
+ extensions: {
119
+ type: 'object',
120
+ required: false,
121
+ properties: {
122
+ code: {
123
+ type: 'string',
124
+ required: false,
125
+ },
126
+ },
127
+ },
128
+ },
129
+ },
130
+ },
131
+ };
52
132
  // Validation helpers
53
133
  function validateConfig(team, token) {
54
- const result = exports.ConfigSchema.safeParse({
55
- team: team || '',
56
- token: token || ''
57
- });
58
- if (!result.success) {
59
- const errors = result.error.issues.map((issue) => issue.message).join(', ');
60
- return { isValid: false, error: errors };
134
+ const errors = validator_1.Validator.validate({ team: team || '', token: token || '' }, exports.ConfigSchema);
135
+ if (errors.length > 0) {
136
+ const errorMessages = errors.map(e => e.message).join(', ');
137
+ return { isValid: false, error: errorMessages };
138
+ }
139
+ return { isValid: true };
140
+ }
141
+ function validateUpdateNoteInput(data) {
142
+ const errors = validator_1.Validator.validate(data, exports.UpdateNoteInputSchema);
143
+ // Additional validation: at least one field must be provided
144
+ if (!data.title && !data.content && data.coediting === undefined &&
145
+ !data.groupIds && data.draft === undefined) {
146
+ return { isValid: false, error: 'At least one field must be provided' };
147
+ }
148
+ if (errors.length > 0) {
149
+ const errorMessages = errors.map(e => e.message).join(', ');
150
+ return { isValid: false, error: errorMessages };
151
+ }
152
+ return { isValid: true };
153
+ }
154
+ function validateEnv(env) {
155
+ const errors = validator_1.Validator.validate(env, exports.EnvSchema);
156
+ // No additional validation needed for single token
157
+ if (errors.length > 0) {
158
+ const errorMessages = errors.map(e => e.message).join(', ');
159
+ return { isValid: false, error: errorMessages };
61
160
  }
62
161
  return { isValid: true };
63
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"_validators.js","sourceRoot":"","sources":["../../src/cli/_validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_validators.js","sourceRoot":"","sources":["../../src/cli/_validators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from '../../core/cli/command';
2
+ export declare function allCommand(program: Command): void;
3
+ //# sourceMappingURL=all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAOjD,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoDjD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allCommand = allCommand;
4
+ const config_1 = require("./config");
5
+ const sync_client_1 = require("../../sync/sync-client");
6
+ const spinner_1 = require("../../core/terminal/spinner");
7
+ const colors_1 = require("../../core/terminal/colors");
8
+ const utils_1 = require("../utils");
9
+ function allCommand(program) {
10
+ program
11
+ .option('-d, --dir <dir>', 'Directory to save notes', './notes')
12
+ .option('-l, --limit <number>', 'Limit number of notes')
13
+ .option('--list', 'List only without downloading')
14
+ .option('--group <groupId>', 'Filter by group ID')
15
+ .action(async ({ options }) => {
16
+ const spinner = new spinner_1.Spinner('Fetching all notes from Kibela...');
17
+ try {
18
+ spinner.start();
19
+ if (options.list) {
20
+ // List mode
21
+ const client = (0, utils_1.getClient)();
22
+ const limit = options.limit ? parseInt(options.limit, 10) : 20;
23
+ let notes;
24
+ if (options.group) {
25
+ const result = await client.notes.listByGroup(options.group, { first: limit });
26
+ notes = result.notes.nodes;
27
+ }
28
+ else {
29
+ const result = await client.notes.list({ first: limit });
30
+ notes = result.nodes;
31
+ }
32
+ spinner.stop();
33
+ console.log(`\nFound ${notes.length} notes:\n`);
34
+ notes.forEach((note) => {
35
+ const updatedAt = new Date(note.contentUpdatedAt).toLocaleDateString();
36
+ console.log(`${colors_1.colors.cyan(note.id)} - ${colors_1.colors.bold(note.title)}`);
37
+ console.log(` Author: ${note.author?.account || 'Unknown'}, Updated: ${updatedAt}`);
38
+ console.log(` URL: ${colors_1.colors.blue(note.url)}\n`);
39
+ });
40
+ }
41
+ else {
42
+ // Download mode
43
+ const config = await (0, config_1.getConfig)();
44
+ const client = new sync_client_1.SyncClient({
45
+ team: config.team,
46
+ token: config.token,
47
+ dir: options.dir,
48
+ });
49
+ await client.pull();
50
+ spinner.succeed(`All notes downloaded to ${options.dir}`);
51
+ }
52
+ }
53
+ catch (error) {
54
+ spinner.fail(`Failed: ${error instanceof Error ? error.message : error}`);
55
+ process.exit(1);
56
+ }
57
+ });
58
+ }
59
+ //# sourceMappingURL=all.js.map