@ukwhatn/wikidot 1.0.10 → 4.0.2

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 (97) hide show
  1. package/README.md +227 -79
  2. package/dist/errors.cjs +114 -0
  3. package/dist/errors.d.cts +94 -0
  4. package/dist/errors.d.ts +94 -0
  5. package/dist/errors.js +81 -0
  6. package/dist/index.cjs +4624 -0
  7. package/dist/index.d.cts +2106 -0
  8. package/dist/index.d.ts +2106 -1
  9. package/dist/index.js +2651 -6
  10. package/dist/shared/index-7dqqxq7x.js +105 -0
  11. package/dist/shared/index-f2eh3ykk.js +172 -0
  12. package/dist/shared/index-kka6e8cb.js +627 -0
  13. package/dist/shared/index-ytknx2hn.js +980 -0
  14. package/package.json +64 -40
  15. package/.eslintrc.js +0 -23
  16. package/.github/dependabot.yml +0 -12
  17. package/.prettierrc +0 -6
  18. package/Makefile +0 -24
  19. package/dist/common/exceptions.d.ts +0 -95
  20. package/dist/common/exceptions.js +0 -146
  21. package/dist/common/exceptions.js.map +0 -1
  22. package/dist/common/index.d.ts +0 -1
  23. package/dist/common/index.js +0 -6
  24. package/dist/common/index.js.map +0 -1
  25. package/dist/common/logger.d.ts +0 -2
  26. package/dist/common/logger.js +0 -19
  27. package/dist/common/logger.js.map +0 -1
  28. package/dist/connector/ajax.d.ts +0 -142
  29. package/dist/connector/ajax.js +0 -260
  30. package/dist/connector/ajax.js.map +0 -1
  31. package/dist/connector/api.d.ts +0 -11
  32. package/dist/connector/api.js +0 -17
  33. package/dist/connector/api.js.map +0 -1
  34. package/dist/connector/index.d.ts +0 -0
  35. package/dist/connector/index.js +0 -2
  36. package/dist/connector/index.js.map +0 -1
  37. package/dist/index.js.map +0 -1
  38. package/dist/module/auth.d.ts +0 -8
  39. package/dist/module/auth.js +0 -80
  40. package/dist/module/auth.js.map +0 -1
  41. package/dist/module/client.d.ts +0 -39
  42. package/dist/module/client.js +0 -96
  43. package/dist/module/client.js.map +0 -1
  44. package/dist/module/index.d.ts +0 -0
  45. package/dist/module/index.js +0 -2
  46. package/dist/module/index.js.map +0 -1
  47. package/dist/module/page.d.ts +0 -102
  48. package/dist/module/page.js +0 -402
  49. package/dist/module/page.js.map +0 -1
  50. package/dist/module/pageRevision.d.ts +0 -29
  51. package/dist/module/pageRevision.js +0 -114
  52. package/dist/module/pageRevision.js.map +0 -1
  53. package/dist/module/pageSource.d.ts +0 -7
  54. package/dist/module/pageSource.js +0 -11
  55. package/dist/module/pageSource.js.map +0 -1
  56. package/dist/module/pageVote.d.ts +0 -14
  57. package/dist/module/pageVote.js +0 -20
  58. package/dist/module/pageVote.js.map +0 -1
  59. package/dist/module/privateMessage.d.ts +0 -29
  60. package/dist/module/privateMessage.js +0 -132
  61. package/dist/module/privateMessage.js.map +0 -1
  62. package/dist/module/site.d.ts +0 -32
  63. package/dist/module/site.js +0 -117
  64. package/dist/module/site.js.map +0 -1
  65. package/dist/module/siteApplication.d.ts +0 -14
  66. package/dist/module/siteApplication.js +0 -100
  67. package/dist/module/siteApplication.js.map +0 -1
  68. package/dist/module/user.d.ts +0 -56
  69. package/dist/module/user.js +0 -115
  70. package/dist/module/user.js.map +0 -1
  71. package/dist/util/index.d.ts +0 -3
  72. package/dist/util/index.js +0 -10
  73. package/dist/util/index.js.map +0 -1
  74. package/dist/util/parser/index.d.ts +0 -1
  75. package/dist/util/parser/index.js +0 -18
  76. package/dist/util/parser/index.js.map +0 -1
  77. package/dist/util/parser/odate.d.ts +0 -12
  78. package/dist/util/parser/odate.js +0 -25
  79. package/dist/util/parser/odate.js.map +0 -1
  80. package/dist/util/parser/user.d.ts +0 -16
  81. package/dist/util/parser/user.js +0 -36
  82. package/dist/util/parser/user.js.map +0 -1
  83. package/dist/util/quickModule.d.ts +0 -96
  84. package/dist/util/quickModule.js +0 -137
  85. package/dist/util/quickModule.js.map +0 -1
  86. package/dist/util/requestUtil.d.ts +0 -26
  87. package/dist/util/requestUtil.js +0 -69
  88. package/dist/util/requestUtil.js.map +0 -1
  89. package/dist/util/stringUtil.d.ts +0 -21
  90. package/dist/util/stringUtil.js +0 -64
  91. package/dist/util/stringUtil.js.map +0 -1
  92. package/dist/util/table/charTable.d.ts +0 -3
  93. package/dist/util/table/charTable.js +0 -472
  94. package/dist/util/table/charTable.js.map +0 -1
  95. package/dist/util/table/index.d.ts +0 -1
  96. package/dist/util/table/index.js +0 -18
  97. package/dist/util/table/index.js.map +0 -1
package/README.md CHANGED
@@ -1,85 +1,233 @@
1
- # wikidot-ts - A TypeScript library for making requests to the Wikidot sites.
1
+ # wikidot-ts
2
+
3
+ TypeScriptでWikidotサイトと対話するための非同期ユーティリティライブラリ。
4
+
5
+ ## 概要
6
+
7
+ wikidot-tsは、Wikidot APIを操作するためのTypeScriptライブラリです。ページの取得・編集、フォーラム操作、プライベートメッセージ、ユーザー情報の取得など、Wikidotの主要機能をサポートしています。
8
+
9
+ ## 特徴
10
+
11
+ - 型安全なAPI(TypeScript完全対応)
12
+ - Result型によるエラーハンドリング(neverthrow使用)
13
+ - 非同期処理の完全サポート
14
+ - ページ、フォーラム、プライベートメッセージなど主要機能をカバー
15
+ - wikidot.pyとの高い互換性
16
+
17
+ ## インストール
18
+
19
+ ```bash
20
+ bun add wikidot-ts
21
+ ```
22
+
23
+ または
2
24
 
3
- ## Installation
4
25
  ```bash
5
- npm install @ukwhatn/wikidot
26
+ npm install wikidot-ts
27
+ ```
28
+
29
+ ## 基本的な使い方
30
+
31
+ ### クライアントの作成
32
+
33
+ ```typescript
34
+ import { Client } from 'wikidot-ts';
35
+
36
+ // ログインなしでアクセス(公開情報のみ)
37
+ const client = await Client.create();
38
+
39
+ // ログインしてアクセス
40
+ const authenticatedClient = await Client.create({
41
+ username: 'your_username',
42
+ password: 'your_password',
43
+ });
44
+ ```
45
+
46
+ ### サイトの取得
47
+
48
+ ```typescript
49
+ // サイトを取得
50
+ const siteResult = await client.site.get('scp-jp');
51
+ if (siteResult.isOk()) {
52
+ const site = siteResult.value;
53
+ console.log(`サイト: ${site.title}`);
54
+ }
6
55
  ```
7
56
 
8
- ## Usage
9
- > [!NOTE]
10
- > You can use this library without logging in, but you can only use the features that do not require logging in.
11
- ```ts
12
- import {Client} from "@ukwhatn/wikidot";
13
-
14
- // Create a new Client class and logging in with the credentials of your wikidot account
15
- // If you don't want to log in:
16
- // const client = await Client.init();
17
- const client = await Client.init('input-your-name', 'input-your-password');
18
-
19
- // ------
20
- // user features
21
- // ------
22
- // Get the user object of the user
23
- const user = await client.user.get('input-a-username');
24
- // Bulk execution by asynchronous request
25
- const users = await client.user.getBulk(['input-a-username', 'input-another-username']);
26
-
27
- // ------
28
- // site features
29
- // ------
30
- // Get the site object of the SCP Foundation
31
- const site = await client.site.get('scp-wiki');
32
-
33
- // invite a user to the site
34
- await site.inviteUser(user)
35
-
36
- // Get all unprocessed applications for the site
37
- const applications = await site.getApplications()
38
-
39
- // process an application
40
- for (const application of applications) {
41
- application.accept()
42
- // or
43
- application.reject()
57
+ ### ページの操作
58
+
59
+ ```typescript
60
+ // ページを検索
61
+ const pagesResult = await site.pages.search({ category: 'scp', tags: ['safe'] });
62
+ if (pagesResult.isOk()) {
63
+ for (const page of pagesResult.value) {
64
+ console.log(`${page.fullname}: ${page.title}`);
65
+ }
66
+ }
67
+
68
+ // 単一ページを取得
69
+ const pageResult = await site.page.get('scp-001');
70
+ if (pageResult.isOk()) {
71
+ const page = pageResult.value;
72
+ console.log(`タイトル: ${page.title}`);
73
+ console.log(`レーティング: ${page.rating}`);
74
+ }
75
+ ```
76
+
77
+ ### フォーラムの操作
78
+
79
+ ```typescript
80
+ // フォーラムカテゴリを取得
81
+ const categoriesResult = await site.forum.getCategories();
82
+ if (categoriesResult.isOk()) {
83
+ for (const category of categoriesResult.value) {
84
+ console.log(`カテゴリ: ${category.title}`);
85
+ }
86
+ }
87
+
88
+ // スレッドに返信(要ログイン)
89
+ const threadResult = await site.forum.getThread(12345);
90
+ if (threadResult.isOk()) {
91
+ const thread = threadResult.value;
92
+ await thread.reply('返信内容', 'Re: タイトル');
93
+ }
94
+ ```
95
+
96
+ ### プライベートメッセージ(要ログイン)
97
+
98
+ ```typescript
99
+ // 受信箱を取得
100
+ const inboxResult = await client.pm.inbox();
101
+ if (inboxResult.isOk()) {
102
+ for (const message of inboxResult.value) {
103
+ console.log(`From: ${message.sender.name}, Subject: ${message.subject}`);
104
+ }
44
105
  }
45
106
 
46
- // ------
47
- // page features
48
- // ------
49
- // Search pages by some criteria
50
- // NOTE: The search criteria are the same as in the ListPages module
51
- pages = await site.pages.search({
52
- category: "_default",
53
- tags: ["tag1", "tag2"], // You can also use the "tag1 -tag2" syntax
54
- order: "created_at desc desc",
55
- limit: 10,
56
- })
57
-
58
- // Get the page object of the SCP-001
59
- const page = await site.page.get('scp-001')
60
-
61
- // destroy a page
62
- await page.destroy()
63
-
64
- // ------
65
- // private message features
66
- // ------
67
- // Get messages in your inbox
68
- const receivedMessages = await client.privateMessage.getInbox()
69
-
70
- // Get messages in your sent box
71
- const sentMessages = await client.privateMessage.getSentbox()
72
-
73
- // Get message by id
74
- // NOTE: You can only get the message that you have received or sent
75
- message = client.privateMessage.getMessage(123456)
76
- // Bulk execution by asynchronous request
77
- messages = client.privateMessage.getMessages([123456, 123457])
78
-
79
- // Send a message to a user
80
- await client.privateMessage.send(
81
- recipient = user,
82
- subject = 'Hello',
83
- body = 'Hello, world!'
84
- )
85
- ```
107
+ // メッセージを送信
108
+ await client.pm.send(recipientUser, '件名', '本文');
109
+
110
+ // メッセージを検索
111
+ const searchResult = await client.pm.search('検索クエリ', 'all');
112
+ ```
113
+
114
+ ## エラーハンドリング
115
+
116
+ wikidot-tsは`neverthrow`ライブラリを使用したResult型でエラーを処理します。
117
+
118
+ ```typescript
119
+ const result = await site.page.get('non-existent-page');
120
+
121
+ if (result.isOk()) {
122
+ const page = result.value;
123
+ // 成功時の処理
124
+ } else {
125
+ const error = result.error;
126
+ if (error instanceof NotFoundException) {
127
+ console.log('ページが見つかりません');
128
+ } else if (error instanceof ForbiddenError) {
129
+ console.log('アクセス権限がありません');
130
+ }
131
+ }
132
+ ```
133
+
134
+ ## 主要なエラー型
135
+
136
+ | エラー | 説明 |
137
+ |--------|------|
138
+ | `LoginRequiredError` | ログインが必要な操作 |
139
+ | `NotFoundException` | リソースが見つからない |
140
+ | `ForbiddenError` | アクセス権限がない |
141
+ | `TargetExistsError` | リソースが既に存在する |
142
+ | `WikidotStatusError` | Wikidot APIエラー |
143
+
144
+ ## wikidot.pyとの差異
145
+
146
+ wikidot-tsはwikidot.pyからの移植ですが、TypeScriptの慣習に合わせていくつかの違いがあります。
147
+
148
+ ### プロパティ → メソッド変換
149
+
150
+ Pythonの`@property`デコレータを使用したプロパティは、TypeScriptではgetterメソッドとして実装されています。
151
+
152
+ | Python (wikidot.py) | TypeScript (wikidot-ts) |
153
+ |---------------------|------------------------|
154
+ | `site.base_url` | `site.getBaseUrl()` |
155
+ | `page.url` | `page.getUrl()` |
156
+ | `user.avatar_url` | `user.avatarUrl` (読み取り専用プロパティ) |
157
+
158
+ ### 命名規則
159
+
160
+ - スネークケース → キャメルケース
161
+ - `page.fullname` (変更なし)
162
+ - `page.children_count` → `page.childrenCount`
163
+ - `page.created_by` → `page.createdBy`
164
+
165
+ ### エラーハンドリング
166
+
167
+ - Python: 例外をスロー
168
+ - TypeScript: `Result`型を返却(`neverthrow`使用)
169
+
170
+ ```python
171
+ # Python
172
+ try:
173
+ page = await site.get_page("scp-001")
174
+ except NotFoundException:
175
+ print("Page not found")
176
+ ```
177
+
178
+ ```typescript
179
+ // TypeScript
180
+ const result = await site.page.get("scp-001");
181
+ if (result.isErr()) {
182
+ if (result.error instanceof NotFoundException) {
183
+ console.log("Page not found");
184
+ }
185
+ }
186
+ ```
187
+
188
+ ### オプション引数
189
+
190
+ 一部のメソッドでは、Python版と同様のオプション引数をサポートしています。
191
+
192
+ ```typescript
193
+ // raiseWhenNotFound オプション
194
+ const user = await client.user.get("username", { raiseWhenNotFound: true });
195
+
196
+ // returnExceptions オプション(AMCClient)
197
+ const results = await client.amcClient.requestWithOptions(bodies, { returnExceptions: true });
198
+ ```
199
+
200
+ ## 開発
201
+
202
+ ### セットアップ
203
+
204
+ ```bash
205
+ bun install
206
+ ```
207
+
208
+ ### コマンド
209
+
210
+ ```bash
211
+ # 型チェック
212
+ bun run typecheck
213
+
214
+ # Lint
215
+ bun run lint
216
+
217
+ # フォーマット
218
+ bun run format
219
+
220
+ # テスト
221
+ bun test
222
+
223
+ # ビルド
224
+ bun run build
225
+ ```
226
+
227
+ ## ライセンス
228
+
229
+ MIT
230
+
231
+ ## 関連プロジェクト
232
+
233
+ - [wikidot.py](https://github.com/ukwhatn/wikidot.py) - Python版のWikidotライブラリ
@@ -0,0 +1,114 @@
1
+ var import_node_module = require("node:module");
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
7
+ var __toCommonJS = (from) => {
8
+ var entry = __moduleCache.get(from), desc;
9
+ if (entry)
10
+ return entry;
11
+ entry = __defProp({}, "__esModule", { value: true });
12
+ if (from && typeof from === "object" || typeof from === "function")
13
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ }));
17
+ __moduleCache.set(from, entry);
18
+ return entry;
19
+ };
20
+ var __export = (target, all) => {
21
+ for (var name in all)
22
+ __defProp(target, name, {
23
+ get: all[name],
24
+ enumerable: true,
25
+ configurable: true,
26
+ set: (newValue) => all[name] = () => newValue
27
+ });
28
+ };
29
+
30
+ // src/errors.ts
31
+ var exports_errors = {};
32
+ __export(exports_errors, {
33
+ WikidotStatusError: () => WikidotStatusError,
34
+ WikidotError: () => WikidotError,
35
+ UnexpectedError: () => UnexpectedError,
36
+ TargetExistsError: () => TargetExistsError,
37
+ TargetError: () => TargetError,
38
+ SessionError: () => SessionError,
39
+ SessionCreateError: () => SessionCreateError,
40
+ ResponseDataError: () => ResponseDataError,
41
+ NotFoundException: () => NotFoundException,
42
+ NoElementError: () => NoElementError,
43
+ LoginRequiredError: () => LoginRequiredError,
44
+ ForbiddenError: () => ForbiddenError,
45
+ AMCHttpError: () => AMCHttpError,
46
+ AMCError: () => AMCError
47
+ });
48
+ module.exports = __toCommonJS(exports_errors);
49
+
50
+ // src/common/errors/base.ts
51
+ class WikidotError extends Error {
52
+ name;
53
+ constructor(message) {
54
+ super(message);
55
+ this.name = this.constructor.name;
56
+ Object.setPrototypeOf(this, new.target.prototype);
57
+ }
58
+ }
59
+
60
+ class UnexpectedError extends WikidotError {
61
+ }
62
+
63
+ // src/common/errors/amc.ts
64
+ class AMCError extends WikidotError {
65
+ }
66
+
67
+ class AMCHttpError extends AMCError {
68
+ statusCode;
69
+ constructor(message, statusCode) {
70
+ super(message);
71
+ this.statusCode = statusCode;
72
+ }
73
+ }
74
+
75
+ class WikidotStatusError extends AMCError {
76
+ statusCode;
77
+ constructor(message, statusCode) {
78
+ super(message);
79
+ this.statusCode = statusCode;
80
+ }
81
+ }
82
+
83
+ class ResponseDataError extends AMCError {
84
+ }
85
+ // src/common/errors/session.ts
86
+ class SessionError extends WikidotError {
87
+ }
88
+
89
+ class SessionCreateError extends SessionError {
90
+ }
91
+
92
+ class LoginRequiredError extends SessionError {
93
+ constructor(message = "Login is required for this operation") {
94
+ super(message);
95
+ }
96
+ }
97
+ // src/common/errors/target.ts
98
+ class NotFoundException extends WikidotError {
99
+ }
100
+
101
+ class TargetExistsError extends WikidotError {
102
+ }
103
+
104
+ class TargetError extends WikidotError {
105
+ }
106
+
107
+ class ForbiddenError extends WikidotError {
108
+ }
109
+
110
+ class NoElementError extends WikidotError {
111
+ }
112
+
113
+ //# debugId=34CEA15B1F492E1F64756E2164756E21
114
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2NvbW1vbi9lcnJvcnMvYmFzZS50cyIsICJzcmMvY29tbW9uL2Vycm9ycy9hbWMudHMiLCAic3JjL2NvbW1vbi9lcnJvcnMvc2Vzc2lvbi50cyIsICJzcmMvY29tbW9uL2Vycm9ycy90YXJnZXQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiLyoqXG4gKiBXaWtpZG9044Op44Kk44OW44Op44Oq44Gu5Z+65bqV44Ko44Op44O844Kv44Op44K5XG4gKiDlhajjgabjga7jgqvjgrnjgr/jg6Djgqjjg6njg7zjga/jgZPjga7jgq/jg6njgrnjgpLntpnmib/jgZnjgotcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdpa2lkb3RFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqIOOCqOODqeODvOWQjSAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIOOCqOODqeODvOODoeODg+OCu+ODvOOCuFxuICAgKi9cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBuZXcudGFyZ2V0LnByb3RvdHlwZSk7XG4gIH1cbn1cblxuLyoqXG4gKiDkuojmnJ/jgZvjgazjgqjjg6njg7xcbiAqIOWGhemDqOeahOOBquS4jeaVtOWQiOOChOODkOOCsOOCkuihqOOBmVxuICovXG5leHBvcnQgY2xhc3MgVW5leHBlY3RlZEVycm9yIGV4dGVuZHMgV2lraWRvdEVycm9yIHt9XG4iLAogICAgImltcG9ydCB7IFdpa2lkb3RFcnJvciB9IGZyb20gJy4vYmFzZSc7XG5cbi8qKlxuICogQWpheCBNb2R1bGUgQ29ubmVjdG9y6Zai6YCj44Gu5Z+65bqV44Ko44Op44O8XG4gKi9cbmV4cG9ydCBjbGFzcyBBTUNFcnJvciBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIEhUVFDjgrnjg4bjg7zjgr/jgrnjgrPjg7zjg4njgqjjg6njg7xcbiAqIEFNQ+OBuOOBruODquOCr+OCqOOCueODiOOBjEhUVFDjgqjjg6njg7zjgaflpLHmlZfjgZfjgZ/loLTlkIhcbiAqL1xuZXhwb3J0IGNsYXNzIEFNQ0h0dHBFcnJvciBleHRlbmRzIEFNQ0Vycm9yIHtcbiAgLyoqIEhUVFDjgrnjg4bjg7zjgr/jgrnjgrPjg7zjg4kgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1c0NvZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSDjgqjjg6njg7zjg6Hjg4Pjgrvjg7zjgrhcbiAgICogQHBhcmFtIHN0YXR1c0NvZGUgLSBIVFRQ44K544OG44O844K/44K544Kz44O844OJXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YXR1c0NvZGU6IG51bWJlcikge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gIH1cbn1cblxuLyoqXG4gKiBXaWtpZG9044K544OG44O844K/44K544Kz44O844OJ44Ko44Op44O8XG4gKiBBTUPjg6zjgrnjg53jg7Pjgrnjga5zdGF0dXPjgYxva+OBp+OBquOBhOWgtOWQiFxuICovXG5leHBvcnQgY2xhc3MgV2lraWRvdFN0YXR1c0Vycm9yIGV4dGVuZHMgQU1DRXJyb3Ige1xuICAvKiogV2lraWRvdOOCueODhuODvOOCv+OCueOCs+ODvOODieaWh+Wtl+WIlyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ29kZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIOOCqOODqeODvOODoeODg+OCu+ODvOOCuFxuICAgKiBAcGFyYW0gc3RhdHVzQ29kZSAtIOOCueODhuODvOOCv+OCueOCs+ODvOODie+8iOS+izogJ25vdF9vaycsICd0cnlfYWdhaW4n77yJXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YXR1c0NvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gIH1cbn1cblxuLyoqXG4gKiDjg6zjgrnjg53jg7Pjgrnjg4fjg7zjgr/jgqjjg6njg7xcbiAqIOODrOOCueODneODs+OCueOBruODkeODvOOCueOBq+WkseaVl+OBl+OBn+WgtOWQiFxuICovXG5leHBvcnQgY2xhc3MgUmVzcG9uc2VEYXRhRXJyb3IgZXh0ZW5kcyBBTUNFcnJvciB7fVxuIiwKICAgICJpbXBvcnQgeyBXaWtpZG90RXJyb3IgfSBmcm9tICcuL2Jhc2UnO1xuXG4vKipcbiAqIOOCu+ODg+OCt+ODp+ODs+mWoumAo+OBruWfuuW6leOCqOODqeODvFxuICovXG5leHBvcnQgY2xhc3MgU2Vzc2lvbkVycm9yIGV4dGVuZHMgV2lraWRvdEVycm9yIHt9XG5cbi8qKlxuICog44K744OD44K344On44Oz5L2c5oiQ5aSx5pWX44Ko44Op44O8XG4gKiDjg63jgrDjgqTjg7PoqabooYzjgYzlpLHmlZfjgZfjgZ/loLTlkIjjgavjgrnjg63jg7xcbiAqL1xuZXhwb3J0IGNsYXNzIFNlc3Npb25DcmVhdGVFcnJvciBleHRlbmRzIFNlc3Npb25FcnJvciB7fVxuXG4vKipcbiAqIOODreOCsOOCpOODs+W/hemgiOOCqOODqeODvFxuICog6KqN6Ki844GM5b+F6KaB44Gq5pON5L2c44KS5pyq44Ot44Kw44Kk44Oz54q25oWL44Gn5a6f6KGM44GX44Gf5aC05ZCI44Gr44K544Ot44O8XG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dpblJlcXVpcmVkRXJyb3IgZXh0ZW5kcyBTZXNzaW9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gJ0xvZ2luIGlzIHJlcXVpcmVkIGZvciB0aGlzIG9wZXJhdGlvbicpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxufVxuIiwKICAgICJpbXBvcnQgeyBXaWtpZG90RXJyb3IgfSBmcm9tICcuL2Jhc2UnO1xuXG4vKipcbiAqIOODquOCveODvOOCueacqueZuuimi+OCqOODqeODvFxuICog6KaB5rGC44GV44KM44Gf44Oq44K944O844K544GM5a2Y5Zyo44GX44Gq44GE5aC05ZCIXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIOODquOCveODvOOCueaXouWtmOOCqOODqeODvFxuICog5L2c5oiQ44GX44KI44GG44Go44GX44Gf44Oq44K944O844K544GM5pei44Gr5a2Y5Zyo44GZ44KL5aC05ZCIXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXRFeGlzdHNFcnJvciBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIOOCv+ODvOOCsuODg+ODiOeKtuaFi+OCqOODqeODvFxuICog44Oq44K944O844K544GM5pON5L2c5LiN5Y+v6IO944Gq54q25oWL44Gu5aC05ZCI77yI44Ot44OD44Kv5Lit44Gq44Gp77yJXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXRFcnJvciBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIOOCouOCr+OCu+OCueaLkuWQpuOCqOODqeODvFxuICog5qip6ZmQ5LiN6Laz44Gn5pON5L2c44GM5ouS5ZCm44GV44KM44Gf5aC05ZCIXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3JiaWRkZW5FcnJvciBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIEhUTUzopoHntKDmnKrnmbropovjgqjjg6njg7xcbiAqIOODkeODvOOCueS4reOBq+W/heimgeOBquimgee0oOOBjOimi+OBpOOBi+OCieOBquOBhOWgtOWQiFxuICovXG5leHBvcnQgY2xhc3MgTm9FbGVtZW50RXJyb3IgZXh0ZW5kcyBXaWtpZG90RXJyb3Ige31cbiIKICBdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSU8sTUFBZSxxQkFBcUIsTUFBTTtBQUFBLEVBRXRCO0FBQUEsRUFLekIsV0FBVyxDQUFDLFNBQWlCO0FBQUEsSUFDM0IsTUFBTSxPQUFPO0FBQUEsSUFDYixLQUFLLE9BQU8sS0FBSyxZQUFZO0FBQUEsSUFDN0IsT0FBTyxlQUFlLE1BQU0sV0FBVyxTQUFTO0FBQUE7QUFFcEQ7QUFBQTtBQU1PLE1BQU0sd0JBQXdCLGFBQWE7QUFBQzs7O0FDakI1QyxNQUFNLGlCQUFpQixhQUFhO0FBQUM7QUFBQTtBQU1yQyxNQUFNLHFCQUFxQixTQUFTO0FBQUEsRUFFekI7QUFBQSxFQU1oQixXQUFXLENBQUMsU0FBaUIsWUFBb0I7QUFBQSxJQUMvQyxNQUFNLE9BQU87QUFBQSxJQUNiLEtBQUssYUFBYTtBQUFBO0FBRXRCO0FBQUE7QUFNTyxNQUFNLDJCQUEyQixTQUFTO0FBQUEsRUFFL0I7QUFBQSxFQU1oQixXQUFXLENBQUMsU0FBaUIsWUFBb0I7QUFBQSxJQUMvQyxNQUFNLE9BQU87QUFBQSxJQUNiLEtBQUssYUFBYTtBQUFBO0FBRXRCO0FBQUE7QUFNTyxNQUFNLDBCQUEwQixTQUFTO0FBQUM7O0FDMUMxQyxNQUFNLHFCQUFxQixhQUFhO0FBQUM7QUFBQTtBQU16QyxNQUFNLDJCQUEyQixhQUFhO0FBQUM7QUFBQTtBQU0vQyxNQUFNLDJCQUEyQixhQUFhO0FBQUEsRUFDbkQsV0FBVyxDQUFDLFVBQVUsd0NBQXdDO0FBQUEsSUFDNUQsTUFBTSxPQUFPO0FBQUE7QUFFakI7O0FDZk8sTUFBTSwwQkFBMEIsYUFBYTtBQUFDO0FBQUE7QUFNOUMsTUFBTSwwQkFBMEIsYUFBYTtBQUFDO0FBQUE7QUFNOUMsTUFBTSxvQkFBb0IsYUFBYTtBQUFDO0FBQUE7QUFNeEMsTUFBTSx1QkFBdUIsYUFBYTtBQUFDO0FBQUE7QUFNM0MsTUFBTSx1QkFBdUIsYUFBYTtBQUFDOyIsCiAgImRlYnVnSWQiOiAiMzRDRUExNUIxRjQ5MkUxRjY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Wikidotライブラリの基底エラークラス
3
+ * 全てのカスタムエラーはこのクラスを継承する
4
+ */
5
+ declare abstract class WikidotError extends Error {
6
+ /** エラー名 */
7
+ readonly name: string;
8
+ /**
9
+ * @param message - エラーメッセージ
10
+ */
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * 予期せぬエラー
15
+ * 内部的な不整合やバグを表す
16
+ */
17
+ declare class UnexpectedError extends WikidotError {}
18
+ /**
19
+ * Ajax Module Connector関連の基底エラー
20
+ */
21
+ declare class AMCError extends WikidotError {}
22
+ /**
23
+ * HTTPステータスコードエラー
24
+ * AMCへのリクエストがHTTPエラーで失敗した場合
25
+ */
26
+ declare class AMCHttpError extends AMCError {
27
+ /** HTTPステータスコード */
28
+ readonly statusCode: number;
29
+ /**
30
+ * @param message - エラーメッセージ
31
+ * @param statusCode - HTTPステータスコード
32
+ */
33
+ constructor(message: string, statusCode: number);
34
+ }
35
+ /**
36
+ * Wikidotステータスコードエラー
37
+ * AMCレスポンスのstatusがokでない場合
38
+ */
39
+ declare class WikidotStatusError extends AMCError {
40
+ /** Wikidotステータスコード文字列 */
41
+ readonly statusCode: string;
42
+ /**
43
+ * @param message - エラーメッセージ
44
+ * @param statusCode - ステータスコード(例: 'not_ok', 'try_again')
45
+ */
46
+ constructor(message: string, statusCode: string);
47
+ }
48
+ /**
49
+ * レスポンスデータエラー
50
+ * レスポンスのパースに失敗した場合
51
+ */
52
+ declare class ResponseDataError extends AMCError {}
53
+ /**
54
+ * セッション関連の基底エラー
55
+ */
56
+ declare class SessionError extends WikidotError {}
57
+ /**
58
+ * セッション作成失敗エラー
59
+ * ログイン試行が失敗した場合にスロー
60
+ */
61
+ declare class SessionCreateError extends SessionError {}
62
+ /**
63
+ * ログイン必須エラー
64
+ * 認証が必要な操作を未ログイン状態で実行した場合にスロー
65
+ */
66
+ declare class LoginRequiredError extends SessionError {
67
+ constructor(message?: string);
68
+ }
69
+ /**
70
+ * リソース未発見エラー
71
+ * 要求されたリソースが存在しない場合
72
+ */
73
+ declare class NotFoundException extends WikidotError {}
74
+ /**
75
+ * リソース既存エラー
76
+ * 作成しようとしたリソースが既に存在する場合
77
+ */
78
+ declare class TargetExistsError extends WikidotError {}
79
+ /**
80
+ * ターゲット状態エラー
81
+ * リソースが操作不可能な状態の場合(ロック中など)
82
+ */
83
+ declare class TargetError extends WikidotError {}
84
+ /**
85
+ * アクセス拒否エラー
86
+ * 権限不足で操作が拒否された場合
87
+ */
88
+ declare class ForbiddenError extends WikidotError {}
89
+ /**
90
+ * HTML要素未発見エラー
91
+ * パース中に必要な要素が見つからない場合
92
+ */
93
+ declare class NoElementError extends WikidotError {}
94
+ export { WikidotStatusError, WikidotError, UnexpectedError, TargetExistsError, TargetError, SessionError, SessionCreateError, ResponseDataError, NotFoundException, NoElementError, LoginRequiredError, ForbiddenError, AMCHttpError, AMCError };
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Wikidotライブラリの基底エラークラス
3
+ * 全てのカスタムエラーはこのクラスを継承する
4
+ */
5
+ declare abstract class WikidotError extends Error {
6
+ /** エラー名 */
7
+ readonly name: string;
8
+ /**
9
+ * @param message - エラーメッセージ
10
+ */
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * 予期せぬエラー
15
+ * 内部的な不整合やバグを表す
16
+ */
17
+ declare class UnexpectedError extends WikidotError {}
18
+ /**
19
+ * Ajax Module Connector関連の基底エラー
20
+ */
21
+ declare class AMCError extends WikidotError {}
22
+ /**
23
+ * HTTPステータスコードエラー
24
+ * AMCへのリクエストがHTTPエラーで失敗した場合
25
+ */
26
+ declare class AMCHttpError extends AMCError {
27
+ /** HTTPステータスコード */
28
+ readonly statusCode: number;
29
+ /**
30
+ * @param message - エラーメッセージ
31
+ * @param statusCode - HTTPステータスコード
32
+ */
33
+ constructor(message: string, statusCode: number);
34
+ }
35
+ /**
36
+ * Wikidotステータスコードエラー
37
+ * AMCレスポンスのstatusがokでない場合
38
+ */
39
+ declare class WikidotStatusError extends AMCError {
40
+ /** Wikidotステータスコード文字列 */
41
+ readonly statusCode: string;
42
+ /**
43
+ * @param message - エラーメッセージ
44
+ * @param statusCode - ステータスコード(例: 'not_ok', 'try_again')
45
+ */
46
+ constructor(message: string, statusCode: string);
47
+ }
48
+ /**
49
+ * レスポンスデータエラー
50
+ * レスポンスのパースに失敗した場合
51
+ */
52
+ declare class ResponseDataError extends AMCError {}
53
+ /**
54
+ * セッション関連の基底エラー
55
+ */
56
+ declare class SessionError extends WikidotError {}
57
+ /**
58
+ * セッション作成失敗エラー
59
+ * ログイン試行が失敗した場合にスロー
60
+ */
61
+ declare class SessionCreateError extends SessionError {}
62
+ /**
63
+ * ログイン必須エラー
64
+ * 認証が必要な操作を未ログイン状態で実行した場合にスロー
65
+ */
66
+ declare class LoginRequiredError extends SessionError {
67
+ constructor(message?: string);
68
+ }
69
+ /**
70
+ * リソース未発見エラー
71
+ * 要求されたリソースが存在しない場合
72
+ */
73
+ declare class NotFoundException extends WikidotError {}
74
+ /**
75
+ * リソース既存エラー
76
+ * 作成しようとしたリソースが既に存在する場合
77
+ */
78
+ declare class TargetExistsError extends WikidotError {}
79
+ /**
80
+ * ターゲット状態エラー
81
+ * リソースが操作不可能な状態の場合(ロック中など)
82
+ */
83
+ declare class TargetError extends WikidotError {}
84
+ /**
85
+ * アクセス拒否エラー
86
+ * 権限不足で操作が拒否された場合
87
+ */
88
+ declare class ForbiddenError extends WikidotError {}
89
+ /**
90
+ * HTML要素未発見エラー
91
+ * パース中に必要な要素が見つからない場合
92
+ */
93
+ declare class NoElementError extends WikidotError {}
94
+ export { WikidotStatusError, WikidotError, UnexpectedError, TargetExistsError, TargetError, SessionError, SessionCreateError, ResponseDataError, NotFoundException, NoElementError, LoginRequiredError, ForbiddenError, AMCHttpError, AMCError };