fandom.js 1.0.0 → 1.1.0

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 (106) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +73 -1
  3. package/dist/client/client.d.ts +69 -0
  4. package/dist/client/client.d.ts.map +1 -0
  5. package/dist/client/client.js +74 -0
  6. package/dist/enums/index.d.ts +7 -0
  7. package/dist/enums/index.d.ts.map +1 -0
  8. package/dist/enums/index.js +6 -0
  9. package/dist/enums/log-type.d.ts +20 -0
  10. package/dist/enums/log-type.d.ts.map +1 -0
  11. package/dist/enums/log-type.js +20 -0
  12. package/dist/enums/namespace.d.ts +25 -0
  13. package/dist/enums/namespace.d.ts.map +1 -0
  14. package/dist/enums/namespace.js +25 -0
  15. package/dist/enums/protection-level.d.ts +9 -0
  16. package/dist/enums/protection-level.d.ts.map +1 -0
  17. package/dist/enums/protection-level.js +9 -0
  18. package/dist/enums/rc-show.d.ts +16 -0
  19. package/dist/enums/rc-show.d.ts.map +1 -0
  20. package/dist/enums/rc-show.js +16 -0
  21. package/dist/enums/rc-type.d.ts +11 -0
  22. package/dist/enums/rc-type.d.ts.map +1 -0
  23. package/dist/enums/rc-type.js +11 -0
  24. package/dist/enums/token-type.d.ts +13 -0
  25. package/dist/enums/token-type.d.ts.map +1 -0
  26. package/dist/enums/token-type.js +13 -0
  27. package/dist/errors/api-error.d.ts +6 -0
  28. package/dist/errors/api-error.d.ts.map +1 -0
  29. package/dist/errors/api-error.js +8 -0
  30. package/dist/events/events.d.ts +14 -0
  31. package/dist/events/events.d.ts.map +1 -0
  32. package/dist/events/events.js +3 -0
  33. package/dist/index.d.ts +17 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +16 -0
  36. package/dist/managers/base-manager.d.ts +16 -0
  37. package/dist/managers/base-manager.d.ts.map +1 -0
  38. package/dist/managers/base-manager.js +12 -0
  39. package/dist/managers/category-manager.d.ts +15 -0
  40. package/dist/managers/category-manager.d.ts.map +1 -0
  41. package/dist/managers/category-manager.js +27 -0
  42. package/dist/managers/event-manager.d.ts +48 -0
  43. package/dist/managers/event-manager.d.ts.map +1 -0
  44. package/dist/managers/event-manager.js +110 -0
  45. package/dist/managers/meta-manager.d.ts +14 -0
  46. package/dist/managers/meta-manager.d.ts.map +1 -0
  47. package/dist/managers/meta-manager.js +20 -0
  48. package/dist/managers/page-manager.d.ts +26 -0
  49. package/dist/managers/page-manager.d.ts.map +1 -0
  50. package/dist/managers/page-manager.js +86 -0
  51. package/dist/managers/revision-manager.d.ts +32 -0
  52. package/dist/managers/revision-manager.d.ts.map +1 -0
  53. package/dist/managers/revision-manager.js +69 -0
  54. package/dist/managers/search-manager.d.ts +14 -0
  55. package/dist/managers/search-manager.d.ts.map +1 -0
  56. package/dist/managers/search-manager.js +24 -0
  57. package/dist/managers/user-manager.d.ts +34 -0
  58. package/dist/managers/user-manager.d.ts.map +1 -0
  59. package/dist/managers/user-manager.js +66 -0
  60. package/dist/package-constants.d.ts +5 -0
  61. package/dist/package-constants.d.ts.map +1 -0
  62. package/dist/package-constants.js +4 -0
  63. package/dist/request/rate-limiter.d.ts +13 -0
  64. package/dist/request/rate-limiter.d.ts.map +1 -0
  65. package/dist/request/rate-limiter.js +28 -0
  66. package/dist/request/request-manager.d.ts +29 -0
  67. package/dist/request/request-manager.d.ts.map +1 -0
  68. package/dist/request/request-manager.js +106 -0
  69. package/dist/structures/base-structure.d.ts +24 -0
  70. package/dist/structures/base-structure.d.ts.map +1 -0
  71. package/dist/structures/base-structure.js +13 -0
  72. package/dist/structures/page-structure.d.ts +81 -0
  73. package/dist/structures/page-structure.d.ts.map +1 -0
  74. package/dist/structures/page-structure.js +164 -0
  75. package/dist/structures/revision-structure.d.ts +46 -0
  76. package/dist/structures/revision-structure.d.ts.map +1 -0
  77. package/dist/structures/revision-structure.js +41 -0
  78. package/dist/structures/user-structure.d.ts +45 -0
  79. package/dist/structures/user-structure.d.ts.map +1 -0
  80. package/dist/structures/user-structure.js +52 -0
  81. package/dist/types/api.d.ts +14 -0
  82. package/dist/types/api.d.ts.map +1 -0
  83. package/dist/types/api.js +1 -0
  84. package/dist/types/client.d.ts +39 -0
  85. package/dist/types/client.d.ts.map +1 -0
  86. package/dist/types/client.js +1 -0
  87. package/dist/types/events.d.ts +141 -0
  88. package/dist/types/events.d.ts.map +1 -0
  89. package/dist/types/events.js +1 -0
  90. package/dist/types/index.d.ts +8 -0
  91. package/dist/types/index.d.ts.map +1 -0
  92. package/dist/types/index.js +7 -0
  93. package/dist/types/page.d.ts +105 -0
  94. package/dist/types/page.d.ts.map +1 -0
  95. package/dist/types/page.js +1 -0
  96. package/dist/types/revision.d.ts +83 -0
  97. package/dist/types/revision.d.ts.map +1 -0
  98. package/dist/types/revision.js +1 -0
  99. package/dist/types/site.d.ts +290 -0
  100. package/dist/types/site.d.ts.map +1 -0
  101. package/dist/types/site.js +1 -0
  102. package/dist/types/user.d.ts +100 -0
  103. package/dist/types/user.d.ts.map +1 -0
  104. package/dist/types/user.js +1 -0
  105. package/package.json +54 -8
  106. package/src/index.js +0 -0
package/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Evan <evanrayweigel@outlook.com>
4
+ Copyright (c) 2025 ByJonas <me@binaryblazer.me>
5
+ Copyright (c) 2025 fandom.js contributors
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
package/README.md CHANGED
@@ -1 +1,73 @@
1
- More coming soon...
1
+ # fandom.js
2
+
3
+ A powerful library to interact with the Fandom + MediaWiki APIs.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/fandom.js.svg)](https://www.npmjs.com/package/fandom.js)
6
+ [![License](https://img.shields.io/npm/l/fandom.js.svg)](LICENSE)
7
+
8
+ ## Features
9
+
10
+ - **Page Management**: Fetch, edit, and manage wiki pages.
11
+ - **User Information**: Retrieve user details, groups, and contributions.
12
+ - **Revisions**: Access page history and recent changes.
13
+ - **Search**: Search for pages and content.
14
+ - **Categories**: List category members.
15
+ - **Events**: Listen for wiki events like page updates and creations.
16
+ - **TypeScript Support**: Fully typed for a better development experience.
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install fandom.js
22
+ # or
23
+ pnpm add fandom.js
24
+ # or
25
+ yarn add fandom.js
26
+ # or
27
+ bun add fandom.js
28
+ ```
29
+
30
+ ## Usage
31
+
32
+ Here is a simple example to get you started:
33
+
34
+ ```javascript
35
+ import { Client } from "fandom.js";
36
+
37
+ const client = new Client({
38
+ host: "https://sonic.fandom.com",
39
+ apiPath: "/api.php",
40
+ });
41
+
42
+ client.events.on("ready", () => {
43
+ console.log("Client is ready!");
44
+ });
45
+
46
+ async function main() {
47
+ // Login (Optional, required for write operations)
48
+ // await client.login("Username", "Password");
49
+
50
+ // Fetch a page
51
+ const page = await client.pages.fetch("Sonic_the_Hedgehog");
52
+ console.log(`Title: ${page.title}`);
53
+ console.log(`Extract: ${page.extract}`);
54
+
55
+ // Search
56
+ const results = await client.search.search("Tails");
57
+ console.log("Search results:", results);
58
+ }
59
+
60
+ main();
61
+ ```
62
+
63
+ ## Documentation
64
+
65
+ For full documentation, visit [fandom.js.org](https://fandom.js.org).
66
+
67
+ ## Contributing
68
+
69
+ Contributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests.
70
+
71
+ ## License
72
+
73
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,69 @@
1
+ import { RequestManager } from "../request/request-manager.js";
2
+ import { PageManager } from "../managers/page-manager.js";
3
+ import { UserManager } from "../managers/user-manager.js";
4
+ import { EventManager } from "../managers/event-manager.js";
5
+ import { RevisionManager } from "../managers/revision-manager.js";
6
+ import { SearchManager } from "../managers/search-manager.js";
7
+ import { CategoryManager } from "../managers/category-manager.js";
8
+ import { MetaManager } from "../managers/meta-manager.js";
9
+ import type { ClientOptions } from "../types/index.js";
10
+ /**
11
+ * The main client class for interacting with the Fandom API.
12
+ */
13
+ export declare class Client {
14
+ /**
15
+ * The options for the client.
16
+ */
17
+ options: ClientOptions;
18
+ /**
19
+ * The event manager for handling wiki events.
20
+ */
21
+ events: EventManager;
22
+ /**
23
+ * The request manager for handling API requests.
24
+ * @internal
25
+ */
26
+ requestManager: RequestManager;
27
+ /**
28
+ * The manager for interacting with pages.
29
+ */
30
+ pages: PageManager;
31
+ /**
32
+ * The manager for interacting with users.
33
+ */
34
+ users: UserManager;
35
+ /**
36
+ * The manager for interacting with revisions.
37
+ */
38
+ revisions: RevisionManager;
39
+ /**
40
+ * The manager for searching the wiki.
41
+ */
42
+ search: SearchManager;
43
+ /**
44
+ * The manager for interacting with categories.
45
+ */
46
+ categories: CategoryManager;
47
+ /**
48
+ * The manager for retrieving wiki metadata.
49
+ */
50
+ meta: MetaManager;
51
+ /**
52
+ * Creates a new instance of the Client.
53
+ * @param options - The options for the client.
54
+ */
55
+ constructor(options: ClientOptions);
56
+ /**
57
+ * Logs in to the wiki.
58
+ * @param username - The username to login with.
59
+ * @param password - The password to login with.
60
+ * @throws {Error} If the login fails.
61
+ */
62
+ login(username?: string, password?: string): Promise<void>;
63
+ /**
64
+ * Called when the client is ready.
65
+ * Emits the 'ready' event and starts polling if enabled.
66
+ */
67
+ onReady(): Promise<void>;
68
+ }
69
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD;;GAEG;AACH,qBAAa,MAAM;IACjB;;OAEG;IACI,OAAO,EAAE,aAAa,CAAC;IAC9B;;OAEG;IACI,MAAM,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACI,cAAc,EAAE,cAAc,CAAC;IACtC;;OAEG;IACI,KAAK,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACI,KAAK,EAAE,WAAW,CAAC;IAC1B;;OAEG;IACI,SAAS,EAAE,eAAe,CAAC;IAClC;;OAEG;IACI,MAAM,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACI,UAAU,EAAE,eAAe,CAAC;IACnC;;OAEG;IACI,IAAI,EAAE,WAAW,CAAC;IAEzB;;;OAGG;gBACS,OAAO,EAAE,aAAa;IAwBlC;;;;;OAKG;IACU,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAoBvD;;;OAGG;IACU,OAAO;CAMrB"}
@@ -0,0 +1,74 @@
1
+ import { RequestManager } from "../request/request-manager.js";
2
+ import { PageManager } from "../managers/page-manager.js";
3
+ import { UserManager } from "../managers/user-manager.js";
4
+ import { EventManager } from "../managers/event-manager.js";
5
+ import { RevisionManager } from "../managers/revision-manager.js";
6
+ import { SearchManager } from "../managers/search-manager.js";
7
+ import { CategoryManager } from "../managers/category-manager.js";
8
+ import { MetaManager } from "../managers/meta-manager.js";
9
+ import { TokenType } from "../enums/index.js";
10
+ import { DEFAULT_API_PATH, USER_AGENT } from "../package-constants.js";
11
+ /**
12
+ * The main client class for interacting with the Fandom API.
13
+ */
14
+ export class Client {
15
+ /**
16
+ * Creates a new instance of the Client.
17
+ * @param options - The options for the client.
18
+ */
19
+ constructor(options) {
20
+ this.options = {
21
+ apiPath: DEFAULT_API_PATH,
22
+ userAgent: USER_AGENT,
23
+ maxRetries: 3,
24
+ cacheSize: 100,
25
+ polling: true,
26
+ ...options,
27
+ };
28
+ this.events = new EventManager(this);
29
+ this.requestManager = new RequestManager({
30
+ baseURL: this.options.host,
31
+ apiPath: this.options.apiPath,
32
+ userAgent: this.options.userAgent,
33
+ maxRetries: this.options.maxRetries,
34
+ });
35
+ this.pages = new PageManager(this);
36
+ this.users = new UserManager(this);
37
+ this.revisions = new RevisionManager(this);
38
+ this.search = new SearchManager(this);
39
+ this.categories = new CategoryManager(this);
40
+ this.meta = new MetaManager(this);
41
+ }
42
+ /**
43
+ * Logs in to the wiki.
44
+ * @param username - The username to login with.
45
+ * @param password - The password to login with.
46
+ * @throws {Error} If the login fails.
47
+ */
48
+ async login(username, password) {
49
+ if (username && password) {
50
+ const loginToken = await this.requestManager.fetchToken(TokenType.Login);
51
+ const res = await this.requestManager.post({
52
+ action: "login",
53
+ lgname: username,
54
+ lgpassword: password,
55
+ lgtoken: loginToken,
56
+ format: "json",
57
+ });
58
+ if (res.login?.result === "Failed") {
59
+ throw new Error(`Login failed: ${res.login.reason}`);
60
+ }
61
+ }
62
+ await this.onReady();
63
+ }
64
+ /**
65
+ * Called when the client is ready.
66
+ * Emits the 'ready' event and starts polling if enabled.
67
+ */
68
+ async onReady() {
69
+ this.events.emit("ready");
70
+ if (this.options.polling) {
71
+ this.events.startPolling();
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,7 @@
1
+ export * from "./namespace.js";
2
+ export * from "./token-type.js";
3
+ export * from "./protection-level.js";
4
+ export * from "./log-type.js";
5
+ export * from "./rc-show.js";
6
+ export * from "./rc-type.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./namespace.js";
2
+ export * from "./token-type.js";
3
+ export * from "./protection-level.js";
4
+ export * from "./log-type.js";
5
+ export * from "./rc-show.js";
6
+ export * from "./rc-type.js";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Types of logs.
3
+ */
4
+ export declare enum LogType {
5
+ Block = "block",
6
+ Protect = "protect",
7
+ Rights = "rights",
8
+ Delete = "delete",
9
+ Upload = "upload",
10
+ Move = "move",
11
+ Import = "import",
12
+ Patrol = "patrol",
13
+ Merge = "merge",
14
+ Suppress = "suppress",
15
+ Tag = "tag",
16
+ Managetags = "managetags",
17
+ Contentmodel = "contentmodel",
18
+ Newusers = "newusers"
19
+ }
20
+ //# sourceMappingURL=log-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-type.d.ts","sourceRoot":"","sources":["../../src/enums/log-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,OAAO;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Types of logs.
3
+ */
4
+ export var LogType;
5
+ (function (LogType) {
6
+ LogType["Block"] = "block";
7
+ LogType["Protect"] = "protect";
8
+ LogType["Rights"] = "rights";
9
+ LogType["Delete"] = "delete";
10
+ LogType["Upload"] = "upload";
11
+ LogType["Move"] = "move";
12
+ LogType["Import"] = "import";
13
+ LogType["Patrol"] = "patrol";
14
+ LogType["Merge"] = "merge";
15
+ LogType["Suppress"] = "suppress";
16
+ LogType["Tag"] = "tag";
17
+ LogType["Managetags"] = "managetags";
18
+ LogType["Contentmodel"] = "contentmodel";
19
+ LogType["Newusers"] = "newusers";
20
+ })(LogType || (LogType = {}));
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Standard MediaWiki namespaces.
3
+ */
4
+ export declare enum Namespace {
5
+ Main = 0,
6
+ Talk = 1,
7
+ User = 2,
8
+ UserTalk = 3,
9
+ Project = 4,
10
+ ProjectTalk = 5,
11
+ File = 6,
12
+ FileTalk = 7,
13
+ MediaWiki = 8,
14
+ MediaWikiTalk = 9,
15
+ Template = 10,
16
+ TemplateTalk = 11,
17
+ Help = 12,
18
+ HelpTalk = 13,
19
+ Category = 14,
20
+ CategoryTalk = 15,
21
+ Thread = 1201,
22
+ ThreadTalk = 1202,
23
+ MessageWall = 1200
24
+ }
25
+ //# sourceMappingURL=namespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/enums/namespace.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,IAAI;IACR,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,WAAW,IAAI;IACf,IAAI,IAAI;IACR,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,aAAa,IAAI;IACjB,QAAQ,KAAK;IACb,YAAY,KAAK;IACjB,IAAI,KAAK;IACT,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,YAAY,KAAK;IACjB,MAAM,OAAO;IACb,UAAU,OAAO;IACjB,WAAW,OAAO;CACnB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Standard MediaWiki namespaces.
3
+ */
4
+ export var Namespace;
5
+ (function (Namespace) {
6
+ Namespace[Namespace["Main"] = 0] = "Main";
7
+ Namespace[Namespace["Talk"] = 1] = "Talk";
8
+ Namespace[Namespace["User"] = 2] = "User";
9
+ Namespace[Namespace["UserTalk"] = 3] = "UserTalk";
10
+ Namespace[Namespace["Project"] = 4] = "Project";
11
+ Namespace[Namespace["ProjectTalk"] = 5] = "ProjectTalk";
12
+ Namespace[Namespace["File"] = 6] = "File";
13
+ Namespace[Namespace["FileTalk"] = 7] = "FileTalk";
14
+ Namespace[Namespace["MediaWiki"] = 8] = "MediaWiki";
15
+ Namespace[Namespace["MediaWikiTalk"] = 9] = "MediaWikiTalk";
16
+ Namespace[Namespace["Template"] = 10] = "Template";
17
+ Namespace[Namespace["TemplateTalk"] = 11] = "TemplateTalk";
18
+ Namespace[Namespace["Help"] = 12] = "Help";
19
+ Namespace[Namespace["HelpTalk"] = 13] = "HelpTalk";
20
+ Namespace[Namespace["Category"] = 14] = "Category";
21
+ Namespace[Namespace["CategoryTalk"] = 15] = "CategoryTalk";
22
+ Namespace[Namespace["Thread"] = 1201] = "Thread";
23
+ Namespace[Namespace["ThreadTalk"] = 1202] = "ThreadTalk";
24
+ Namespace[Namespace["MessageWall"] = 1200] = "MessageWall";
25
+ })(Namespace || (Namespace = {}));
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Levels of page protection.
3
+ */
4
+ export declare enum ProtectionLevel {
5
+ Sysop = "sysop",
6
+ Autoconfirmed = "autoconfirmed",
7
+ None = ""
8
+ }
9
+ //# sourceMappingURL=protection-level.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protection-level.d.ts","sourceRoot":"","sources":["../../src/enums/protection-level.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,IAAI,KAAK;CACV"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Levels of page protection.
3
+ */
4
+ export var ProtectionLevel;
5
+ (function (ProtectionLevel) {
6
+ ProtectionLevel["Sysop"] = "sysop";
7
+ ProtectionLevel["Autoconfirmed"] = "autoconfirmed";
8
+ ProtectionLevel["None"] = "";
9
+ })(ProtectionLevel || (ProtectionLevel = {}));
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Filters for recent changes.
3
+ */
4
+ export declare enum RCShow {
5
+ Anon = "anon",
6
+ Bot = "bot",
7
+ Minor = "minor",
8
+ Redirect = "redirect",
9
+ Patrolled = "patrolled",
10
+ NotAnon = "!anon",
11
+ NotBot = "!bot",
12
+ NotMinor = "!minor",
13
+ NotRedirect = "!redirect",
14
+ NotPatrolled = "!patrolled"
15
+ }
16
+ //# sourceMappingURL=rc-show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rc-show.d.ts","sourceRoot":"","sources":["../../src/enums/rc-show.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,MAAM;IAChB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,UAAU;IACjB,MAAM,SAAS;IACf,QAAQ,WAAW;IACnB,WAAW,cAAc;IACzB,YAAY,eAAe;CAC5B"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Filters for recent changes.
3
+ */
4
+ export var RCShow;
5
+ (function (RCShow) {
6
+ RCShow["Anon"] = "anon";
7
+ RCShow["Bot"] = "bot";
8
+ RCShow["Minor"] = "minor";
9
+ RCShow["Redirect"] = "redirect";
10
+ RCShow["Patrolled"] = "patrolled";
11
+ RCShow["NotAnon"] = "!anon";
12
+ RCShow["NotBot"] = "!bot";
13
+ RCShow["NotMinor"] = "!minor";
14
+ RCShow["NotRedirect"] = "!redirect";
15
+ RCShow["NotPatrolled"] = "!patrolled";
16
+ })(RCShow || (RCShow = {}));
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Types of recent changes.
3
+ */
4
+ export declare enum RCType {
5
+ Edit = "edit",
6
+ New = "new",
7
+ Log = "log",
8
+ External = "external",
9
+ Categorize = "categorize"
10
+ }
11
+ //# sourceMappingURL=rc-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rc-type.d.ts","sourceRoot":"","sources":["../../src/enums/rc-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,MAAM;IAChB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC1B"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Types of recent changes.
3
+ */
4
+ export var RCType;
5
+ (function (RCType) {
6
+ RCType["Edit"] = "edit";
7
+ RCType["New"] = "new";
8
+ RCType["Log"] = "log";
9
+ RCType["External"] = "external";
10
+ RCType["Categorize"] = "categorize";
11
+ })(RCType || (RCType = {}));
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Types of tokens used for API requests.
3
+ */
4
+ export declare enum TokenType {
5
+ Csrf = "csrf",
6
+ Login = "login",
7
+ Patrol = "patrol",
8
+ Rollback = "rollback",
9
+ Userrights = "userrights",
10
+ Watch = "watch",
11
+ Edit = "edit"
12
+ }
13
+ //# sourceMappingURL=token-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-type.d.ts","sourceRoot":"","sources":["../../src/enums/token-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Types of tokens used for API requests.
3
+ */
4
+ export var TokenType;
5
+ (function (TokenType) {
6
+ TokenType["Csrf"] = "csrf";
7
+ TokenType["Login"] = "login";
8
+ TokenType["Patrol"] = "patrol";
9
+ TokenType["Rollback"] = "rollback";
10
+ TokenType["Userrights"] = "userrights";
11
+ TokenType["Watch"] = "watch";
12
+ TokenType["Edit"] = "edit";
13
+ })(TokenType || (TokenType = {}));
@@ -0,0 +1,6 @@
1
+ export declare class APIError extends Error {
2
+ code: string;
3
+ info: string;
4
+ constructor(code: string, info: string);
5
+ }
6
+ //# sourceMappingURL=api-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-error.d.ts","sourceRoot":"","sources":["../../src/errors/api-error.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAMvC"}
@@ -0,0 +1,8 @@
1
+ export class APIError extends Error {
2
+ constructor(code, info) {
3
+ super(`${code}: ${info}`);
4
+ this.name = "APIError";
5
+ this.code = code;
6
+ this.info = info;
7
+ }
8
+ }
@@ -0,0 +1,14 @@
1
+ import { EventEmitter } from "eventemitter3";
2
+ import type { PageSummary, RecentChange, FileUploadEvent, UserBlockEvent } from "../types/index.js";
3
+ export interface FandomEvents {
4
+ ready: [];
5
+ warn: [Error];
6
+ pageFetched: [PageSummary];
7
+ pageUpdate: [RecentChange];
8
+ pageCreate: [RecentChange];
9
+ fileUpload: [FileUploadEvent];
10
+ userBlock: [UserBlockEvent];
11
+ }
12
+ export declare class FandomEmitter extends EventEmitter<FandomEvents> {
13
+ }
14
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,EAAE,CAAC;IACV,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IACd,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;IAC3B,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC;IAC3B,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC;IAC3B,UAAU,EAAE,CAAC,eAAe,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC;CAC7B;AAED,qBAAa,aAAc,SAAQ,YAAY,CAAC,YAAY,CAAC;CAAG"}
@@ -0,0 +1,3 @@
1
+ import { EventEmitter } from "eventemitter3";
2
+ export class FandomEmitter extends EventEmitter {
3
+ }
@@ -0,0 +1,17 @@
1
+ export * from "./client/client.js";
2
+ export * from "./types/index.js";
3
+ export * from "./structures/page-structure.js";
4
+ export * from "./managers/page-manager.js";
5
+ export * from "./enums/index.js";
6
+ export * from "./structures/base-structure.js";
7
+ export * from "./managers/base-manager.js";
8
+ export * from "./structures/user-structure.js";
9
+ export * from "./managers/user-manager.js";
10
+ export * from "./structures/revision-structure.js";
11
+ export * from "./errors/api-error.js";
12
+ export * from "./managers/event-manager.js";
13
+ export * from "./managers/revision-manager.js";
14
+ export * from "./managers/search-manager.js";
15
+ export * from "./managers/category-manager.js";
16
+ export * from "./managers/meta-manager.js";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ export * from "./client/client.js";
2
+ export * from "./types/index.js";
3
+ export * from "./structures/page-structure.js";
4
+ export * from "./managers/page-manager.js";
5
+ export * from "./enums/index.js";
6
+ export * from "./structures/base-structure.js";
7
+ export * from "./managers/base-manager.js";
8
+ export * from "./structures/user-structure.js";
9
+ export * from "./managers/user-manager.js";
10
+ export * from "./structures/revision-structure.js";
11
+ export * from "./errors/api-error.js";
12
+ export * from "./managers/event-manager.js";
13
+ export * from "./managers/revision-manager.js";
14
+ export * from "./managers/search-manager.js";
15
+ export * from "./managers/category-manager.js";
16
+ export * from "./managers/meta-manager.js";
@@ -0,0 +1,16 @@
1
+ import type { Client } from "../client/client.js";
2
+ /**
3
+ * The base manager class that all other managers extend.
4
+ */
5
+ export declare abstract class BaseManager {
6
+ /**
7
+ * The client that instantiated this manager.
8
+ */
9
+ client: Client;
10
+ /**
11
+ * Creates a new instance of the BaseManager.
12
+ * @param client - The client instance.
13
+ */
14
+ constructor(client: Client);
15
+ }
16
+ //# sourceMappingURL=base-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-manager.d.ts","sourceRoot":"","sources":["../../src/managers/base-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;GAEG;AACH,8BAAsB,WAAW;IAC/B;;OAEG;IACI,MAAM,EAAE,MAAM,CAAC;IAEtB;;;OAGG;gBACS,MAAM,EAAE,MAAM;CAG3B"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The base manager class that all other managers extend.
3
+ */
4
+ export class BaseManager {
5
+ /**
6
+ * Creates a new instance of the BaseManager.
7
+ * @param client - The client instance.
8
+ */
9
+ constructor(client) {
10
+ this.client = client;
11
+ }
12
+ }
@@ -0,0 +1,15 @@
1
+ import { BaseManager } from "./base-manager.js";
2
+ import { Page } from "../structures/page-structure.js";
3
+ /**
4
+ * Manager for handling category-related operations.
5
+ */
6
+ export declare class CategoryManager extends BaseManager {
7
+ /**
8
+ * Fetches members of a category.
9
+ * @param category - The name of the category.
10
+ * @param limit - The maximum number of members to fetch. Defaults to 50.
11
+ * @returns A Promise that resolves to an array of Page objects representing the category members.
12
+ */
13
+ fetchMembers(category: string, limit?: number): Promise<Page[]>;
14
+ }
15
+ //# sourceMappingURL=category-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category-manager.d.ts","sourceRoot":"","sources":["../../src/managers/category-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAGvD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C;;;;;OAKG;IACU,YAAY,CACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,IAAI,EAAE,CAAC;CAmBnB"}