@ejercito-fam/habbo-api 1.0.0 → 1.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.
- package/README.md +14 -6
- package/dist/constants.d.ts +25 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +26 -0
- package/dist/constants.js.map +1 -0
- package/dist/habbo.d.ts +22 -0
- package/dist/habbo.d.ts.map +1 -0
- package/dist/habbo.js +64 -0
- package/dist/habbo.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +1 -0
- package/dist/index.js.map +1 -0
- package/dist/routes/achievements.d.ts +52 -0
- package/dist/routes/achievements.d.ts.map +1 -0
- package/dist/routes/achievements.js +40 -0
- package/dist/routes/achievements.js.map +1 -0
- package/dist/routes/base.d.ts +13 -0
- package/dist/routes/base.d.ts.map +1 -0
- package/dist/routes/base.js +44 -0
- package/dist/routes/base.js.map +1 -0
- package/dist/routes/groups.d.ts +111 -0
- package/dist/routes/groups.d.ts.map +1 -0
- package/dist/routes/groups.js +53 -0
- package/dist/routes/groups.js.map +1 -0
- package/dist/routes/lists.d.ts +21 -0
- package/dist/routes/lists.d.ts.map +1 -0
- package/dist/routes/lists.js +38 -0
- package/dist/routes/lists.js.map +1 -0
- package/dist/routes/marketplace.d.ts +28 -0
- package/dist/routes/marketplace.d.ts.map +1 -0
- package/dist/routes/marketplace.js +25 -0
- package/dist/routes/marketplace.js.map +1 -0
- package/dist/routes/ping.d.ts +10 -0
- package/dist/routes/ping.d.ts.map +1 -0
- package/dist/routes/ping.js +17 -0
- package/dist/routes/ping.js.map +1 -0
- package/dist/routes/rooms.d.ts +30 -0
- package/dist/routes/rooms.d.ts.map +1 -0
- package/dist/routes/rooms.js +15 -0
- package/dist/routes/rooms.js.map +1 -0
- package/dist/routes/users.d.ts +407 -0
- package/dist/routes/users.d.ts.map +1 -0
- package/dist/routes/users.js +87 -0
- package/dist/routes/users.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +4 -1
- package/.github/workflows/pr.yml +0 -18
- package/.prettierignore +0 -1
- package/.yarn/releases/yarn-4.7.0.cjs +0 -935
- package/.yarnrc.yml +0 -5
- package/src/constants.ts +0 -25
- package/src/habbo.ts +0 -36
- package/src/routes/achievements.ts +0 -67
- package/src/routes/base.ts +0 -33
- package/src/routes/groups.ts +0 -139
- package/src/routes/lists.ts +0 -41
- package/src/routes/marketplace.ts +0 -36
- package/src/routes/ping.ts +0 -17
- package/src/routes/rooms.ts +0 -35
- package/src/routes/users.ts +0 -448
- package/src/tsconfig.json +0 -14
- package/tsconfig.base.json +0 -3
- package/tsconfig.eslint.json +0 -8
package/README.md
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
#
|
|
1
|
+
# `@ejercito-fam/habbo-api`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
```ts
|
|
4
|
+
import { Habbo, HotelDomainURL } from '@ejercito-fam/habbo-api';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
// Initialize the client:
|
|
7
|
+
const client = new Habbo({
|
|
8
|
+
baseURL: HotelDomainURL.Spanish
|
|
9
|
+
});
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
// Fetch a user by its username:
|
|
12
|
+
const result = await client.users.getByUsername('-tobi-talent-');
|
|
13
|
+
|
|
14
|
+
// Log the user:
|
|
15
|
+
const user = result.unwrap();
|
|
16
|
+
console.log(user);
|
|
17
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare enum HotelDomainTLD {
|
|
2
|
+
Brazilian = ".com.br",
|
|
3
|
+
Danish = ".dk",
|
|
4
|
+
Dutch = ".nl",
|
|
5
|
+
Finnish = ".fi",
|
|
6
|
+
French = ".fr",
|
|
7
|
+
German = ".de",
|
|
8
|
+
International = ".com",
|
|
9
|
+
Italian = ".it",
|
|
10
|
+
Spanish = ".es",
|
|
11
|
+
Turkish = ".com.tr"
|
|
12
|
+
}
|
|
13
|
+
export declare const HotelDomainURL: {
|
|
14
|
+
readonly Brazilian: "https://www.habbo.com.br";
|
|
15
|
+
readonly Danish: "https://www.habbo.dk";
|
|
16
|
+
readonly Dutch: "https://www.habbo.nl";
|
|
17
|
+
readonly Finnish: "https://www.habbo.fi";
|
|
18
|
+
readonly French: "https://www.habbo.fr";
|
|
19
|
+
readonly German: "https://www.habbo.de";
|
|
20
|
+
readonly International: "https://www.habbo.com";
|
|
21
|
+
readonly Italian: "https://www.habbo.it";
|
|
22
|
+
readonly Spanish: "https://www.habbo.es";
|
|
23
|
+
readonly Turkish: "https://www.habbo.com.tr";
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACzB,SAAS,YAAY;IACrB,MAAM,QAAQ;IACd,KAAK,QAAQ;IACb,OAAO,QAAQ;IACf,MAAM,QAAQ;IACd,MAAM,QAAQ;IACd,aAAa,SAAS;IACtB,OAAO,QAAQ;IACf,OAAO,QAAQ;IACf,OAAO,YAAY;CACnB;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;CAWjB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export var HotelDomainTLD;
|
|
2
|
+
(function (HotelDomainTLD) {
|
|
3
|
+
HotelDomainTLD["Brazilian"] = ".com.br";
|
|
4
|
+
HotelDomainTLD["Danish"] = ".dk";
|
|
5
|
+
HotelDomainTLD["Dutch"] = ".nl";
|
|
6
|
+
HotelDomainTLD["Finnish"] = ".fi";
|
|
7
|
+
HotelDomainTLD["French"] = ".fr";
|
|
8
|
+
HotelDomainTLD["German"] = ".de";
|
|
9
|
+
HotelDomainTLD["International"] = ".com";
|
|
10
|
+
HotelDomainTLD["Italian"] = ".it";
|
|
11
|
+
HotelDomainTLD["Spanish"] = ".es";
|
|
12
|
+
HotelDomainTLD["Turkish"] = ".com.tr";
|
|
13
|
+
})(HotelDomainTLD || (HotelDomainTLD = {}));
|
|
14
|
+
export const HotelDomainURL = {
|
|
15
|
+
Brazilian: `https://www.habbo${HotelDomainTLD.Brazilian}`,
|
|
16
|
+
Danish: `https://www.habbo${HotelDomainTLD.Danish}`,
|
|
17
|
+
Dutch: `https://www.habbo${HotelDomainTLD.Dutch}`,
|
|
18
|
+
Finnish: `https://www.habbo${HotelDomainTLD.Finnish}`,
|
|
19
|
+
French: `https://www.habbo${HotelDomainTLD.French}`,
|
|
20
|
+
German: `https://www.habbo${HotelDomainTLD.German}`,
|
|
21
|
+
International: `https://www.habbo${HotelDomainTLD.International}`,
|
|
22
|
+
Italian: `https://www.habbo${HotelDomainTLD.Italian}`,
|
|
23
|
+
Spanish: `https://www.habbo${HotelDomainTLD.Spanish}`,
|
|
24
|
+
Turkish: `https://www.habbo${HotelDomainTLD.Turkish}`
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAWX;AAXD,WAAY,cAAc;IACzB,uCAAqB,CAAA;IACrB,gCAAc,CAAA;IACd,+BAAa,CAAA;IACb,iCAAe,CAAA;IACf,gCAAc,CAAA;IACd,gCAAc,CAAA;IACd,wCAAsB,CAAA;IACtB,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,qCAAmB,CAAA;AACpB,CAAC,EAXW,cAAc,KAAd,cAAc,QAWzB;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,SAAS,EAAE,oBAAoB,cAAc,CAAC,SAAS,EAAE;IACzD,MAAM,EAAE,oBAAoB,cAAc,CAAC,MAAM,EAAE;IACnD,KAAK,EAAE,oBAAoB,cAAc,CAAC,KAAK,EAAE;IACjD,OAAO,EAAE,oBAAoB,cAAc,CAAC,OAAO,EAAE;IACrD,MAAM,EAAE,oBAAoB,cAAc,CAAC,MAAM,EAAE;IACnD,MAAM,EAAE,oBAAoB,cAAc,CAAC,MAAM,EAAE;IACnD,aAAa,EAAE,oBAAoB,cAAc,CAAC,aAAa,EAAE;IACjE,OAAO,EAAE,oBAAoB,cAAc,CAAC,OAAO,EAAE;IACrD,OAAO,EAAE,oBAAoB,cAAc,CAAC,OAAO,EAAE;IACrD,OAAO,EAAE,oBAAoB,cAAc,CAAC,OAAO,EAAE;CAC5C,CAAC"}
|
package/dist/habbo.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AchievementsAPI } from './routes/achievements.js';
|
|
2
|
+
import { GroupsAPI } from './routes/groups.js';
|
|
3
|
+
import { ListsAPI } from './routes/lists.js';
|
|
4
|
+
import { MarketplaceAPI } from './routes/marketplace.js';
|
|
5
|
+
import { PingAPI } from './routes/ping.js';
|
|
6
|
+
import { RoomsAPI } from './routes/rooms.js';
|
|
7
|
+
import { UsersAPI } from './routes/users.js';
|
|
8
|
+
export declare class Habbo {
|
|
9
|
+
readonly achievements: AchievementsAPI;
|
|
10
|
+
readonly groups: GroupsAPI;
|
|
11
|
+
readonly lists: ListsAPI;
|
|
12
|
+
readonly marketplace: MarketplaceAPI;
|
|
13
|
+
readonly ping: PingAPI;
|
|
14
|
+
readonly rooms: RoomsAPI;
|
|
15
|
+
readonly users: UsersAPI;
|
|
16
|
+
constructor(options?: HabboOptions);
|
|
17
|
+
}
|
|
18
|
+
export interface HabboOptions {
|
|
19
|
+
baseURL?: string | null | undefined;
|
|
20
|
+
timeout?: number | null | undefined;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=habbo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"habbo.d.ts","sourceRoot":"","sources":["../src/habbo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,qBAAa,KAAK;IACjB,SAAgB,YAAY,EAAE,eAAe,CAAC;IAC9C,SAAgB,MAAM,EAAE,SAAS,CAAC;IAClC,SAAgB,KAAK,EAAE,QAAQ,CAAC;IAChC,SAAgB,WAAW,EAAE,cAAc,CAAC;IAC5C,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,KAAK,EAAE,QAAQ,CAAC;IAChC,SAAgB,KAAK,EAAE,QAAQ,CAAC;gBAEb,OAAO,CAAC,EAAE,YAAY;CAYzC;AAED,MAAM,WAAW,YAAY;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACpC"}
|
package/dist/habbo.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { HotelDomainURL } from './constants.js';
|
|
2
|
+
import { AchievementsAPI } from './routes/achievements.js';
|
|
3
|
+
import { GroupsAPI } from './routes/groups.js';
|
|
4
|
+
import { ListsAPI } from './routes/lists.js';
|
|
5
|
+
import { MarketplaceAPI } from './routes/marketplace.js';
|
|
6
|
+
import { PingAPI } from './routes/ping.js';
|
|
7
|
+
import { RoomsAPI } from './routes/rooms.js';
|
|
8
|
+
import { UsersAPI } from './routes/users.js';
|
|
9
|
+
export class Habbo {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
Object.defineProperty(this, "achievements", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: void 0
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(this, "groups", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: void 0
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(this, "lists", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: void 0
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(this, "marketplace", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, "ping", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: void 0
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(this, "rooms", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true,
|
|
44
|
+
writable: true,
|
|
45
|
+
value: void 0
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(this, "users", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
configurable: true,
|
|
50
|
+
writable: true,
|
|
51
|
+
value: void 0
|
|
52
|
+
});
|
|
53
|
+
const baseURL = options?.baseURL ?? HotelDomainURL.International;
|
|
54
|
+
const timeout = options?.timeout ?? null;
|
|
55
|
+
this.achievements = new AchievementsAPI(baseURL, timeout);
|
|
56
|
+
this.groups = new GroupsAPI(baseURL, timeout);
|
|
57
|
+
this.lists = new ListsAPI(baseURL, timeout);
|
|
58
|
+
this.marketplace = new MarketplaceAPI(baseURL, timeout);
|
|
59
|
+
this.ping = new PingAPI(baseURL, timeout);
|
|
60
|
+
this.rooms = new RoomsAPI(baseURL, timeout);
|
|
61
|
+
this.users = new UsersAPI(baseURL, timeout);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=habbo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"habbo.js","sourceRoot":"","sources":["../src/habbo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,OAAO,KAAK;IASjB,YAAmB,OAAsB;QARzB;;;;;WAA8B;QAC9B;;;;;WAAkB;QAClB;;;;;WAAgB;QAChB;;;;;WAA4B;QAC5B;;;;;WAAc;QACd;;;;;WAAgB;QAChB;;;;;WAAgB;QAG/B,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,cAAc,CAAC,aAAa,CAAC;QACjE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;QAEzC,IAAI,CAAC,YAAY,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACD"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './constants.js';
|
|
2
|
+
export * from './habbo.js';
|
|
3
|
+
export * from './routes/achievements.js';
|
|
4
|
+
export * from './routes/groups.js';
|
|
5
|
+
export * from './routes/lists.js';
|
|
6
|
+
export * from './routes/marketplace.js';
|
|
7
|
+
export * from './routes/ping.js';
|
|
8
|
+
export * from './routes/rooms.js';
|
|
9
|
+
export * from './routes/users.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type FetchResult } from '@skyra/safe-fetch';
|
|
2
|
+
import { BaseAPI, type APIOptions } from './base.js';
|
|
3
|
+
import type { HabboUserId } from './users.js';
|
|
4
|
+
export declare class AchievementsAPI extends BaseAPI {
|
|
5
|
+
/**
|
|
6
|
+
* Get all achievements
|
|
7
|
+
*
|
|
8
|
+
* @param options - The options for the API call
|
|
9
|
+
*/
|
|
10
|
+
getAll(options?: APIOptions): Promise<FetchResult<Achievement[]>>;
|
|
11
|
+
/**
|
|
12
|
+
* Get the achievements from a specified user ID
|
|
13
|
+
*
|
|
14
|
+
* @param id - The ID of the user
|
|
15
|
+
* @param options - The options for the API call
|
|
16
|
+
*/
|
|
17
|
+
getByUserId(id: HabboUserId, options?: APIOptions): Promise<FetchResult<UserAchievement[]>>;
|
|
18
|
+
/**
|
|
19
|
+
* Get the image URL for an achievement
|
|
20
|
+
*
|
|
21
|
+
* @param achievementName - The name of the achievement, retrieved from {@linkcode AchievementData.name}
|
|
22
|
+
*
|
|
23
|
+
* @unstable This feature is not documented, use at your own risk
|
|
24
|
+
*/
|
|
25
|
+
getImageURL(achievementName: string): URL;
|
|
26
|
+
}
|
|
27
|
+
export interface Achievement {
|
|
28
|
+
achievement: AchievementData;
|
|
29
|
+
levelRequirements: AchievementRequirements;
|
|
30
|
+
}
|
|
31
|
+
export interface UserAchievement {
|
|
32
|
+
achievement: AchievementData;
|
|
33
|
+
level: number;
|
|
34
|
+
score: number;
|
|
35
|
+
}
|
|
36
|
+
export interface AchievementData {
|
|
37
|
+
id: number;
|
|
38
|
+
name: string;
|
|
39
|
+
creationTime: `${bigint}-${bigint}-${bigint}`;
|
|
40
|
+
state: AchievementDataState;
|
|
41
|
+
category: string;
|
|
42
|
+
}
|
|
43
|
+
export declare enum AchievementDataState {
|
|
44
|
+
Enabled = "ENABLED",
|
|
45
|
+
Archived = "ARCHIVED",
|
|
46
|
+
OffSeason = "OFF_SEASON"
|
|
47
|
+
}
|
|
48
|
+
export interface AchievementRequirements {
|
|
49
|
+
level: number;
|
|
50
|
+
requiredScore: number;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=achievements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"achievements.d.ts","sourceRoot":"","sources":["../../src/routes/achievements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,qBAAa,eAAgB,SAAQ,OAAO;IAC3C;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAKxE;;;;;OAKG;IACI,WAAW,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAKlG;;;;;;OAMG;IACI,WAAW,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG;CAGhD;AAED,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,eAAe,CAAC;IAC7B,iBAAiB,EAAE,uBAAuB,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;IAC9C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,oBAAoB;IAC/B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,SAAS,eAAe;CACxB;AAED,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Json } from '@skyra/safe-fetch';
|
|
2
|
+
import { BaseAPI } from './base.js';
|
|
3
|
+
export class AchievementsAPI extends BaseAPI {
|
|
4
|
+
/**
|
|
5
|
+
* Get all achievements
|
|
6
|
+
*
|
|
7
|
+
* @param options - The options for the API call
|
|
8
|
+
*/
|
|
9
|
+
getAll(options) {
|
|
10
|
+
const url = this.formatURL('/api/public/achievements');
|
|
11
|
+
return Json(this.fetch(url, options));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get the achievements from a specified user ID
|
|
15
|
+
*
|
|
16
|
+
* @param id - The ID of the user
|
|
17
|
+
* @param options - The options for the API call
|
|
18
|
+
*/
|
|
19
|
+
getByUserId(id, options) {
|
|
20
|
+
const url = this.formatURL(`/api/public/achievements/${id}`);
|
|
21
|
+
return Json(this.fetch(url, options));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the image URL for an achievement
|
|
25
|
+
*
|
|
26
|
+
* @param achievementName - The name of the achievement, retrieved from {@linkcode AchievementData.name}
|
|
27
|
+
*
|
|
28
|
+
* @unstable This feature is not documented, use at your own risk
|
|
29
|
+
*/
|
|
30
|
+
getImageURL(achievementName) {
|
|
31
|
+
return new URL(`https://images.habbo.com/c_images/album1584/${achievementName}.png`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export var AchievementDataState;
|
|
35
|
+
(function (AchievementDataState) {
|
|
36
|
+
AchievementDataState["Enabled"] = "ENABLED";
|
|
37
|
+
AchievementDataState["Archived"] = "ARCHIVED";
|
|
38
|
+
AchievementDataState["OffSeason"] = "OFF_SEASON";
|
|
39
|
+
})(AchievementDataState || (AchievementDataState = {}));
|
|
40
|
+
//# sourceMappingURL=achievements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"achievements.js","sourceRoot":"","sources":["../../src/routes/achievements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAGrD,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAC3C;;;;OAIG;IACI,MAAM,CAAC,OAAoB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACvD,OAAO,IAAI,CAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,EAAe,EAAE,OAAoB;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IACI,WAAW,CAAC,eAAuB;QACzC,OAAO,IAAI,GAAG,CAAC,+CAA+C,eAAe,MAAM,CAAC,CAAC;IACtF,CAAC;CACD;AAqBD,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC/B,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,gDAAwB,CAAA;AACzB,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type FetchResult } from '@skyra/safe-fetch';
|
|
2
|
+
export declare abstract class BaseAPI {
|
|
3
|
+
#private;
|
|
4
|
+
protected readonly baseURL: string;
|
|
5
|
+
protected readonly timeout: number | null;
|
|
6
|
+
constructor(baseURL: string, timeout?: number | null | undefined);
|
|
7
|
+
protected formatURL(route: string): URL;
|
|
8
|
+
protected fetch(url: string | URL, options?: APIOptions): Promise<FetchResult<Response>>;
|
|
9
|
+
}
|
|
10
|
+
export interface APIOptions {
|
|
11
|
+
signal?: AbortSignal | number | null | undefined;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/routes/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhE,8BAAsB,OAAO;;IAC5B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAKvE,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG;IAIvC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;CAaxF;AAED,MAAM,WAAW,UAAU;IAC1B,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACjD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
+
};
|
|
6
|
+
var _BaseAPI_instances, _BaseAPI_getSignalOrDefault;
|
|
7
|
+
import { safeFetch } from '@skyra/safe-fetch';
|
|
8
|
+
export class BaseAPI {
|
|
9
|
+
constructor(baseURL, timeout) {
|
|
10
|
+
_BaseAPI_instances.add(this);
|
|
11
|
+
Object.defineProperty(this, "baseURL", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: void 0
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(this, "timeout", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: void 0
|
|
22
|
+
});
|
|
23
|
+
this.baseURL = baseURL;
|
|
24
|
+
this.timeout = timeout ?? null;
|
|
25
|
+
}
|
|
26
|
+
formatURL(route) {
|
|
27
|
+
return new URL(route, this.baseURL);
|
|
28
|
+
}
|
|
29
|
+
fetch(url, options) {
|
|
30
|
+
return safeFetch(url, { headers: { 'Content-Type': 'application/json' }, signal: __classPrivateFieldGet(this, _BaseAPI_instances, "m", _BaseAPI_getSignalOrDefault).call(this, options) });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
_BaseAPI_instances = new WeakSet(), _BaseAPI_getSignalOrDefault = function _BaseAPI_getSignalOrDefault(options) {
|
|
34
|
+
if (typeof options === 'object' && options !== null) {
|
|
35
|
+
if (typeof options.signal === 'number')
|
|
36
|
+
return AbortSignal.timeout(options.signal);
|
|
37
|
+
if (typeof options.signal === 'object' && options.signal !== null)
|
|
38
|
+
return options.signal;
|
|
39
|
+
}
|
|
40
|
+
if (typeof this.timeout === 'number')
|
|
41
|
+
return AbortSignal.timeout(this.timeout);
|
|
42
|
+
return null;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/routes/base.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,mBAAmB,CAAC;AAEhE,MAAM,OAAgB,OAAO;IAI5B,YAAmB,OAAe,EAAE,OAAmC;;QAHpD;;;;;WAAgB;QAChB;;;;;WAAuB;QAGzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;IAChC,CAAC;IAES,SAAS,CAAC,KAAa;QAChC,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAES,KAAK,CAAC,GAAiB,EAAE,OAAoB;QACtD,OAAO,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,uBAAA,IAAI,uDAAoB,MAAxB,IAAI,EAAqB,OAAO,CAAC,EAAE,CAAC,CAAC;IACvH,CAAC;CAWD;uGAToB,OAAoB;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrD,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1F,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { type FetchResult } from '@skyra/safe-fetch';
|
|
2
|
+
import { BaseAPI, type APIOptions } from './base.js';
|
|
3
|
+
export declare class GroupsAPI extends BaseAPI {
|
|
4
|
+
/**
|
|
5
|
+
* Get the data for a group given its identifier
|
|
6
|
+
*
|
|
7
|
+
* @param id - The ID of the group
|
|
8
|
+
* @param options - The options for the API call
|
|
9
|
+
*/
|
|
10
|
+
getByUniqueId(id: HabboGroupId, options?: APIOptions): Promise<FetchResult<HabboGroup>>;
|
|
11
|
+
/**
|
|
12
|
+
* Get the members from a group given its identifier
|
|
13
|
+
*
|
|
14
|
+
* @param id - The ID of the group
|
|
15
|
+
* @param options - The options for the API call
|
|
16
|
+
*/
|
|
17
|
+
getGroupMembers(id: HabboGroupId, options?: APIOptions): Promise<FetchResult<HabboGroupMember[]>>;
|
|
18
|
+
/**
|
|
19
|
+
* Get the image URL for a badge
|
|
20
|
+
*
|
|
21
|
+
* @param badgeCode - The badge's code, retrieved from {@linkcode HabboGroup.badgeCode}
|
|
22
|
+
*
|
|
23
|
+
* @unstable This feature is not documented, use at your own risk
|
|
24
|
+
*/
|
|
25
|
+
getGroupBadgeImageURL(badgeCode: string): URL;
|
|
26
|
+
}
|
|
27
|
+
export type HabboGroupId = `g-hh${string}-${string};`;
|
|
28
|
+
/**
|
|
29
|
+
* Represents a Habbo group.
|
|
30
|
+
*/
|
|
31
|
+
export interface HabboGroup {
|
|
32
|
+
/**
|
|
33
|
+
* The unique identifier of the group.
|
|
34
|
+
*/
|
|
35
|
+
id: HabboGroupId;
|
|
36
|
+
/**
|
|
37
|
+
* The name of the group.
|
|
38
|
+
*/
|
|
39
|
+
name: string;
|
|
40
|
+
/**
|
|
41
|
+
* The description of the group.
|
|
42
|
+
*/
|
|
43
|
+
description: string;
|
|
44
|
+
/**
|
|
45
|
+
* The type of the group.
|
|
46
|
+
*/
|
|
47
|
+
type: HabboGroupType;
|
|
48
|
+
/**
|
|
49
|
+
* The ID of the room associated with the group, or null if no room is associated.
|
|
50
|
+
*/
|
|
51
|
+
roomId: number | null;
|
|
52
|
+
/**
|
|
53
|
+
* The badge code of the group.
|
|
54
|
+
*/
|
|
55
|
+
badgeCode: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Enum representing the type of a Habbo group.
|
|
59
|
+
*/
|
|
60
|
+
export declare enum HabboGroupType {
|
|
61
|
+
/**
|
|
62
|
+
* A normal group (public).
|
|
63
|
+
*/
|
|
64
|
+
NORMAL = "NORMAL",
|
|
65
|
+
/**
|
|
66
|
+
* A favourite (exclusive) group.
|
|
67
|
+
*/
|
|
68
|
+
FAVOURITE = "EXCLUSIVE",
|
|
69
|
+
/**
|
|
70
|
+
* A private (closed) group.
|
|
71
|
+
*/
|
|
72
|
+
PRIVATE = "CLOSED"
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Represents a member of a Habbo group.
|
|
76
|
+
*/
|
|
77
|
+
export interface HabboGroupMember {
|
|
78
|
+
/**
|
|
79
|
+
* Indicates whether the member is online.
|
|
80
|
+
*/
|
|
81
|
+
online: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* The gender of the member.
|
|
84
|
+
*/
|
|
85
|
+
gender: 'm' | 'f';
|
|
86
|
+
/**
|
|
87
|
+
* The motto of the member.
|
|
88
|
+
*/
|
|
89
|
+
motto: string;
|
|
90
|
+
/**
|
|
91
|
+
* The figure of the member in the Habbo world.
|
|
92
|
+
*/
|
|
93
|
+
habboFigure: string;
|
|
94
|
+
/**
|
|
95
|
+
* The date since the member joined the group.
|
|
96
|
+
*/
|
|
97
|
+
memberSince: string;
|
|
98
|
+
/**
|
|
99
|
+
* The unique identifier of the member.
|
|
100
|
+
*/
|
|
101
|
+
uniqueId: string;
|
|
102
|
+
/**
|
|
103
|
+
* The name of the member.
|
|
104
|
+
*/
|
|
105
|
+
name: string;
|
|
106
|
+
/**
|
|
107
|
+
* Indicates whether the member is an admin of the group.
|
|
108
|
+
*/
|
|
109
|
+
isAdmin: boolean;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/routes/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,qBAAa,SAAU,SAAQ,OAAO;IACrC;;;;;OAKG;IACI,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAK9F;;;;;OAKG;IACI,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAKxG;;;;;;OAMG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG;CAGpD;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,MAAM,IAAI,MAAM,GAAG,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,EAAE,EAAE,YAAY,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,oBAAY,cAAc;IACzB;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,OAAO,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAElB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CACjB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Json } from '@skyra/safe-fetch';
|
|
2
|
+
import { BaseAPI } from './base.js';
|
|
3
|
+
export class GroupsAPI extends BaseAPI {
|
|
4
|
+
/**
|
|
5
|
+
* Get the data for a group given its identifier
|
|
6
|
+
*
|
|
7
|
+
* @param id - The ID of the group
|
|
8
|
+
* @param options - The options for the API call
|
|
9
|
+
*/
|
|
10
|
+
getByUniqueId(id, options) {
|
|
11
|
+
const url = this.formatURL(`/api/public/groups/${id}`);
|
|
12
|
+
return Json(this.fetch(url, options));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the members from a group given its identifier
|
|
16
|
+
*
|
|
17
|
+
* @param id - The ID of the group
|
|
18
|
+
* @param options - The options for the API call
|
|
19
|
+
*/
|
|
20
|
+
getGroupMembers(id, options) {
|
|
21
|
+
const url = this.formatURL(`/api/public/groups/${id}/members`);
|
|
22
|
+
return Json(this.fetch(url, options));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the image URL for a badge
|
|
26
|
+
*
|
|
27
|
+
* @param badgeCode - The badge's code, retrieved from {@linkcode HabboGroup.badgeCode}
|
|
28
|
+
*
|
|
29
|
+
* @unstable This feature is not documented, use at your own risk
|
|
30
|
+
*/
|
|
31
|
+
getGroupBadgeImageURL(badgeCode) {
|
|
32
|
+
return this.formatURL(`/habbo-imaging/badge/${badgeCode}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Enum representing the type of a Habbo group.
|
|
37
|
+
*/
|
|
38
|
+
export var HabboGroupType;
|
|
39
|
+
(function (HabboGroupType) {
|
|
40
|
+
/**
|
|
41
|
+
* A normal group (public).
|
|
42
|
+
*/
|
|
43
|
+
HabboGroupType["NORMAL"] = "NORMAL";
|
|
44
|
+
/**
|
|
45
|
+
* A favourite (exclusive) group.
|
|
46
|
+
*/
|
|
47
|
+
HabboGroupType["FAVOURITE"] = "EXCLUSIVE";
|
|
48
|
+
/**
|
|
49
|
+
* A private (closed) group.
|
|
50
|
+
*/
|
|
51
|
+
HabboGroupType["PRIVATE"] = "CLOSED";
|
|
52
|
+
})(HabboGroupType || (HabboGroupType = {}));
|
|
53
|
+
//# sourceMappingURL=groups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/routes/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAErD,MAAM,OAAO,SAAU,SAAQ,OAAO;IACrC;;;;;OAKG;IACI,aAAa,CAAC,EAAgB,EAAE,OAAoB;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAa,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,eAAe,CAAC,EAAgB,EAAE,OAAoB;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAqB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;OAMG;IACI,qBAAqB,CAAC,SAAiB;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;IAC5D,CAAC;CACD;AAuCD;;GAEG;AACH,MAAM,CAAN,IAAY,cAeX;AAfD,WAAY,cAAc;IACzB;;OAEG;IACH,mCAAiB,CAAA;IAEjB;;OAEG;IACH,yCAAuB,CAAA;IAEvB;;OAEG;IACH,oCAAkB,CAAA;AACnB,CAAC,EAfW,cAAc,KAAd,cAAc,QAezB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type FetchResult } from '@skyra/safe-fetch';
|
|
2
|
+
import { BaseAPI, type APIOptions } from './base.js';
|
|
3
|
+
export declare class ListsAPI extends BaseAPI {
|
|
4
|
+
#private;
|
|
5
|
+
/**
|
|
6
|
+
* Get the hot looks from the hotel
|
|
7
|
+
*
|
|
8
|
+
* @param options - The options for the API call
|
|
9
|
+
*/
|
|
10
|
+
getHotLooks(options: APIOptions): Promise<FetchResult<HabboHotLookList>>;
|
|
11
|
+
}
|
|
12
|
+
export interface HabboHotLookList {
|
|
13
|
+
url: string;
|
|
14
|
+
entries: HabboHotLookListItem[];
|
|
15
|
+
}
|
|
16
|
+
export interface HabboHotLookListItem {
|
|
17
|
+
gender: 'f' | 'm';
|
|
18
|
+
figure: string;
|
|
19
|
+
hash: string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=lists.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../src/routes/lists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,qBAAa,QAAS,SAAQ,OAAO;;IACpC;;;;OAIG;IACU,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;CAoBrF;AAED,MAAM,WAAW,gBAAgB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACb"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
+
};
|
|
6
|
+
var _ListsAPI_instances, _ListsAPI_parseHotLooksXML;
|
|
7
|
+
import {} from '@skyra/safe-fetch';
|
|
8
|
+
import { BaseAPI } from './base.js';
|
|
9
|
+
export class ListsAPI extends BaseAPI {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
_ListsAPI_instances.add(this);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the hot looks from the hotel
|
|
16
|
+
*
|
|
17
|
+
* @param options - The options for the API call
|
|
18
|
+
*/
|
|
19
|
+
async getHotLooks(options) {
|
|
20
|
+
const url = this.formatURL('/api/public/lists/hotlooks');
|
|
21
|
+
const data = await this.fetch(url, options);
|
|
22
|
+
return data.map(async (result) => __classPrivateFieldGet(this, _ListsAPI_instances, "m", _ListsAPI_parseHotLooksXML).call(this, await result.text())).intoPromise();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
_ListsAPI_instances = new WeakSet(), _ListsAPI_parseHotLooksXML = function _ListsAPI_parseHotLooksXML(data) {
|
|
26
|
+
const urlResult = /url="(.*)"/.exec(data);
|
|
27
|
+
if (urlResult === null)
|
|
28
|
+
throw new SyntaxError('Could not read hot looks');
|
|
29
|
+
const url = urlResult[1];
|
|
30
|
+
const entries = [];
|
|
31
|
+
for (const result of data.matchAll(/gender="(\w)" figure="(.+)" hash="(.+)"/g)) {
|
|
32
|
+
entries.push({ gender: result[1], figure: result[2], hash: result[3] });
|
|
33
|
+
}
|
|
34
|
+
if (entries.length === 0)
|
|
35
|
+
throw new SyntaxError('Could not read hot looks');
|
|
36
|
+
return { url, entries };
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=lists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/routes/lists.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAoB,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAErD,MAAM,OAAO,QAAS,SAAQ,OAAO;IAArC;;;IA0BA,CAAC;IAzBA;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,OAAmB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,uBAAA,IAAI,uDAAkB,MAAtB,IAAI,EAAmB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9F,CAAC;CAgBD;sGAdkB,IAAY;IAC7B,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,SAAS,KAAK,IAAI;QAAE,MAAM,IAAI,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAE1E,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,EAA4B,CAAC;IAC7C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,0CAA0C,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAE5E,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACzB,CAAC"}
|