@ukwhatn/wikidot 1.0.10 → 4.0.3
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 +242 -78
- package/dist/errors.cjs +114 -0
- package/dist/errors.d.cts +94 -0
- package/dist/errors.d.ts +94 -0
- package/dist/errors.js +81 -0
- package/dist/index.cjs +4615 -0
- package/dist/index.d.cts +2158 -0
- package/dist/index.d.ts +2158 -1
- package/dist/index.js +4582 -6
- package/package.json +64 -40
- package/.eslintrc.js +0 -23
- package/.github/dependabot.yml +0 -12
- package/.prettierrc +0 -6
- package/Makefile +0 -24
- package/dist/common/exceptions.d.ts +0 -95
- package/dist/common/exceptions.js +0 -146
- package/dist/common/exceptions.js.map +0 -1
- package/dist/common/index.d.ts +0 -1
- package/dist/common/index.js +0 -6
- package/dist/common/index.js.map +0 -1
- package/dist/common/logger.d.ts +0 -2
- package/dist/common/logger.js +0 -19
- package/dist/common/logger.js.map +0 -1
- package/dist/connector/ajax.d.ts +0 -142
- package/dist/connector/ajax.js +0 -260
- package/dist/connector/ajax.js.map +0 -1
- package/dist/connector/api.d.ts +0 -11
- package/dist/connector/api.js +0 -17
- package/dist/connector/api.js.map +0 -1
- package/dist/connector/index.d.ts +0 -0
- package/dist/connector/index.js +0 -2
- package/dist/connector/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/module/auth.d.ts +0 -8
- package/dist/module/auth.js +0 -80
- package/dist/module/auth.js.map +0 -1
- package/dist/module/client.d.ts +0 -39
- package/dist/module/client.js +0 -96
- package/dist/module/client.js.map +0 -1
- package/dist/module/index.d.ts +0 -0
- package/dist/module/index.js +0 -2
- package/dist/module/index.js.map +0 -1
- package/dist/module/page.d.ts +0 -102
- package/dist/module/page.js +0 -402
- package/dist/module/page.js.map +0 -1
- package/dist/module/pageRevision.d.ts +0 -29
- package/dist/module/pageRevision.js +0 -114
- package/dist/module/pageRevision.js.map +0 -1
- package/dist/module/pageSource.d.ts +0 -7
- package/dist/module/pageSource.js +0 -11
- package/dist/module/pageSource.js.map +0 -1
- package/dist/module/pageVote.d.ts +0 -14
- package/dist/module/pageVote.js +0 -20
- package/dist/module/pageVote.js.map +0 -1
- package/dist/module/privateMessage.d.ts +0 -29
- package/dist/module/privateMessage.js +0 -132
- package/dist/module/privateMessage.js.map +0 -1
- package/dist/module/site.d.ts +0 -32
- package/dist/module/site.js +0 -117
- package/dist/module/site.js.map +0 -1
- package/dist/module/siteApplication.d.ts +0 -14
- package/dist/module/siteApplication.js +0 -100
- package/dist/module/siteApplication.js.map +0 -1
- package/dist/module/user.d.ts +0 -56
- package/dist/module/user.js +0 -115
- package/dist/module/user.js.map +0 -1
- package/dist/util/index.d.ts +0 -3
- package/dist/util/index.js +0 -10
- package/dist/util/index.js.map +0 -1
- package/dist/util/parser/index.d.ts +0 -1
- package/dist/util/parser/index.js +0 -18
- package/dist/util/parser/index.js.map +0 -1
- package/dist/util/parser/odate.d.ts +0 -12
- package/dist/util/parser/odate.js +0 -25
- package/dist/util/parser/odate.js.map +0 -1
- package/dist/util/parser/user.d.ts +0 -16
- package/dist/util/parser/user.js +0 -36
- package/dist/util/parser/user.js.map +0 -1
- package/dist/util/quickModule.d.ts +0 -96
- package/dist/util/quickModule.js +0 -137
- package/dist/util/quickModule.js.map +0 -1
- package/dist/util/requestUtil.d.ts +0 -26
- package/dist/util/requestUtil.js +0 -69
- package/dist/util/requestUtil.js.map +0 -1
- package/dist/util/stringUtil.d.ts +0 -21
- package/dist/util/stringUtil.js +0 -64
- package/dist/util/stringUtil.js.map +0 -1
- package/dist/util/table/charTable.d.ts +0 -3
- package/dist/util/table/charTable.js +0 -472
- package/dist/util/table/charTable.js.map +0 -1
- package/dist/util/table/index.d.ts +0 -1
- package/dist/util/table/index.js +0 -18
- package/dist/util/table/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,85 +1,249 @@
|
|
|
1
|
-
# wikidot-ts
|
|
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 @ukwhatn/wikidot
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
または
|
|
2
24
|
|
|
3
|
-
## Installation
|
|
4
25
|
```bash
|
|
5
26
|
npm install @ukwhatn/wikidot
|
|
6
27
|
```
|
|
7
28
|
|
|
8
|
-
##
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
// or
|
|
43
|
-
application.reject()
|
|
29
|
+
## 基本的な使い方
|
|
30
|
+
|
|
31
|
+
このライブラリは`neverthrow`のResult型を使用します。すべての非同期メソッドは`WikidotResultAsync<T>`を返し、`isOk()`で成功を確認後、`.value`で値を取得します。
|
|
32
|
+
|
|
33
|
+
### クライアントの作成
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
import { Client } from '@ukwhatn/wikidot';
|
|
37
|
+
|
|
38
|
+
// ログインなしでアクセス(公開情報のみ)
|
|
39
|
+
const clientResult = await Client.create();
|
|
40
|
+
if (!clientResult.isOk()) {
|
|
41
|
+
throw new Error('クライアントの作成に失敗しました');
|
|
42
|
+
}
|
|
43
|
+
const client = clientResult.value;
|
|
44
|
+
|
|
45
|
+
// ログインしてアクセス
|
|
46
|
+
const authClientResult = await Client.create({
|
|
47
|
+
username: 'your_username',
|
|
48
|
+
password: 'your_password',
|
|
49
|
+
});
|
|
50
|
+
if (!authClientResult.isOk()) {
|
|
51
|
+
throw new Error('ログインに失敗しました');
|
|
52
|
+
}
|
|
53
|
+
const authClient = authClientResult.value;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### サイトの取得
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
// サイトを取得
|
|
60
|
+
const siteResult = await client.site.get('scp-jp');
|
|
61
|
+
if (!siteResult.isOk()) {
|
|
62
|
+
throw new Error('サイトの取得に失敗しました');
|
|
44
63
|
}
|
|
64
|
+
const site = siteResult.value;
|
|
65
|
+
console.log(`サイト: ${site.title}`);
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### ページの操作
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
// ページを検索
|
|
72
|
+
const pagesResult = await site.pages.search({ category: 'scp', tags: ['safe'] });
|
|
73
|
+
if (!pagesResult.isOk()) {
|
|
74
|
+
throw new Error('ページの検索に失敗しました');
|
|
75
|
+
}
|
|
76
|
+
for (const page of pagesResult.value) {
|
|
77
|
+
console.log(`${page.fullname}: ${page.title}`);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// 単一ページを取得
|
|
81
|
+
const pageResult = await site.page.get('scp-001');
|
|
82
|
+
if (!pageResult.isOk()) {
|
|
83
|
+
throw new Error('ページの取得に失敗しました');
|
|
84
|
+
}
|
|
85
|
+
const page = pageResult.value;
|
|
86
|
+
console.log(`タイトル: ${page.title}`);
|
|
87
|
+
console.log(`レーティング: ${page.rating}`);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### フォーラムの操作
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
// フォーラムカテゴリを取得
|
|
94
|
+
const categoriesResult = await site.forum.getCategories();
|
|
95
|
+
if (!categoriesResult.isOk()) {
|
|
96
|
+
throw new Error('フォーラムカテゴリの取得に失敗しました');
|
|
97
|
+
}
|
|
98
|
+
for (const category of categoriesResult.value) {
|
|
99
|
+
console.log(`カテゴリ: ${category.title}`);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// スレッドに返信(要ログイン)
|
|
103
|
+
const threadResult = await site.forum.getThread(12345);
|
|
104
|
+
if (!threadResult.isOk()) {
|
|
105
|
+
throw new Error('スレッドの取得に失敗しました');
|
|
106
|
+
}
|
|
107
|
+
const thread = threadResult.value;
|
|
108
|
+
await thread.reply('返信内容', 'Re: タイトル');
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### プライベートメッセージ(要ログイン)
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
// 受信箱を取得
|
|
115
|
+
const inboxResult = await client.privateMessage.inbox();
|
|
116
|
+
if (!inboxResult.isOk()) {
|
|
117
|
+
throw new Error('受信箱の取得に失敗しました');
|
|
118
|
+
}
|
|
119
|
+
for (const message of inboxResult.value) {
|
|
120
|
+
console.log(`From: ${message.sender.name}, Subject: ${message.subject}`);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// メッセージを送信
|
|
124
|
+
await client.privateMessage.send(recipientUser, '件名', '本文');
|
|
125
|
+
|
|
126
|
+
// メッセージを検索
|
|
127
|
+
const searchResult = await client.privateMessage.search('検索クエリ', 'all');
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## エラーハンドリング
|
|
131
|
+
|
|
132
|
+
wikidot-tsは`neverthrow`ライブラリを使用したResult型でエラーを処理します。
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
const result = await site.page.get('non-existent-page');
|
|
136
|
+
|
|
137
|
+
if (result.isOk()) {
|
|
138
|
+
const page = result.value;
|
|
139
|
+
// 成功時の処理
|
|
140
|
+
} else {
|
|
141
|
+
const error = result.error;
|
|
142
|
+
if (error instanceof NotFoundException) {
|
|
143
|
+
console.log('ページが見つかりません');
|
|
144
|
+
} else if (error instanceof ForbiddenError) {
|
|
145
|
+
console.log('アクセス権限がありません');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## 主要なエラー型
|
|
151
|
+
|
|
152
|
+
| エラー | 説明 |
|
|
153
|
+
|--------|------|
|
|
154
|
+
| `LoginRequiredError` | ログインが必要な操作 |
|
|
155
|
+
| `NotFoundException` | リソースが見つからない |
|
|
156
|
+
| `ForbiddenError` | アクセス権限がない |
|
|
157
|
+
| `TargetExistsError` | リソースが既に存在する |
|
|
158
|
+
| `WikidotStatusError` | Wikidot APIエラー |
|
|
159
|
+
|
|
160
|
+
## wikidot.pyとの差異
|
|
161
|
+
|
|
162
|
+
wikidot-tsはwikidot.pyからの移植ですが、TypeScriptの慣習に合わせていくつかの違いがあります。
|
|
163
|
+
|
|
164
|
+
### プロパティ → メソッド変換
|
|
165
|
+
|
|
166
|
+
Pythonの`@property`デコレータを使用したプロパティは、TypeScriptではgetterメソッドとして実装されています。
|
|
167
|
+
|
|
168
|
+
| Python (wikidot.py) | TypeScript (wikidot-ts) |
|
|
169
|
+
|---------------------|------------------------|
|
|
170
|
+
| `site.base_url` | `site.getBaseUrl()` |
|
|
171
|
+
| `page.url` | `page.getUrl()` |
|
|
172
|
+
| `user.avatar_url` | `user.avatarUrl` (読み取り専用プロパティ) |
|
|
173
|
+
|
|
174
|
+
### 命名規則
|
|
175
|
+
|
|
176
|
+
- スネークケース → キャメルケース
|
|
177
|
+
- `page.fullname` (変更なし)
|
|
178
|
+
- `page.children_count` → `page.childrenCount`
|
|
179
|
+
- `page.created_by` → `page.createdBy`
|
|
180
|
+
|
|
181
|
+
### エラーハンドリング
|
|
182
|
+
|
|
183
|
+
- Python: 例外をスロー
|
|
184
|
+
- TypeScript: `Result`型を返却(`neverthrow`使用)
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
# Python
|
|
188
|
+
try:
|
|
189
|
+
page = await site.get_page("scp-001")
|
|
190
|
+
except NotFoundException:
|
|
191
|
+
print("Page not found")
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
// TypeScript
|
|
196
|
+
const result = await site.page.get("scp-001");
|
|
197
|
+
if (result.isErr()) {
|
|
198
|
+
if (result.error instanceof NotFoundException) {
|
|
199
|
+
console.log("Page not found");
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### オプション引数
|
|
205
|
+
|
|
206
|
+
一部のメソッドでは、Python版と同様のオプション引数をサポートしています。
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
// raiseWhenNotFound オプション
|
|
210
|
+
const user = await client.user.get("username", { raiseWhenNotFound: true });
|
|
211
|
+
|
|
212
|
+
// returnExceptions オプション(AMCClient)
|
|
213
|
+
const results = await client.amcClient.requestWithOptions(bodies, { returnExceptions: true });
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## 開発
|
|
217
|
+
|
|
218
|
+
### セットアップ
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
bun install
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### コマンド
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# 型チェック
|
|
228
|
+
bun run typecheck
|
|
229
|
+
|
|
230
|
+
# Lint
|
|
231
|
+
bun run lint
|
|
232
|
+
|
|
233
|
+
# フォーマット
|
|
234
|
+
bun run format
|
|
235
|
+
|
|
236
|
+
# テスト
|
|
237
|
+
bun test
|
|
238
|
+
|
|
239
|
+
# ビルド
|
|
240
|
+
bun run build
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## ライセンス
|
|
244
|
+
|
|
245
|
+
MIT
|
|
246
|
+
|
|
247
|
+
## 関連プロジェクト
|
|
45
248
|
|
|
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
|
-
```
|
|
249
|
+
- [wikidot.py](https://github.com/ukwhatn/wikidot.py) - Python版のWikidotライブラリ
|
package/dist/errors.cjs
ADDED
|
@@ -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 };
|
package/dist/errors.d.ts
ADDED
|
@@ -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 };
|