osrs-json-hiscores 2.14.0 → 2.14.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,109 +1,119 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateRSN = exports.httpGet = exports.rsnFromElement = exports.numberFromElement = exports.getActivityPageURL = exports.getSkillPageURL = exports.getPlayerTableURL = exports.getStatsURL = void 0;
4
- var axios_1 = require("axios");
5
- var ua = require("useragent-generator");
6
- var constants_1 = require("./constants");
7
- /**
8
- * Will generate a stats URL for the official OSRS API.
9
- *
10
- * @param gamemode Gamemode to fetch ranks for.
11
- * @param rsn Username of the player.
12
- * @returns Encoded stats URL.
13
- */
14
- var getStatsURL = function (gamemode, rsn) {
15
- return "" + constants_1.GAMEMODE_URL[gamemode] + constants_1.STATS_URL + encodeURIComponent(rsn);
16
- };
17
- exports.getStatsURL = getStatsURL;
18
- /**
19
- * Will generate a player table URL for the official OSRS hiscores website.
20
- *
21
- * @param gamemode Gamemode to fetch ranks for.
22
- * @param rsn Username of the player.
23
- * @returns Encoded player table URL.
24
- */
25
- var getPlayerTableURL = function (gamemode, rsn) {
26
- return "" + constants_1.GAMEMODE_URL[gamemode] + constants_1.SCORES_URL + "table=0&user=" + encodeURIComponent(rsn);
27
- };
28
- exports.getPlayerTableURL = getPlayerTableURL;
29
- /**
30
- * Will generate a skill table URL for the official OSRS hiscores website.
31
- *
32
- * @param gamemode Gamemode to fetch ranks for.
33
- * @param skill Skill to fetch ranks for.
34
- * @param page Page number.
35
- * @returns
36
- */
37
- var getSkillPageURL = function (gamemode, skill, page) {
38
- return "" + constants_1.GAMEMODE_URL[gamemode] + constants_1.SCORES_URL + "table=" + constants_1.SKILLS.indexOf(skill) + "&page=" + page;
39
- };
40
- exports.getSkillPageURL = getSkillPageURL;
41
- /**
42
- * Will generate an activity table URL for the official OSRS hiscores website.
43
- *
44
- * @param gamemode Gamemode to fetch ranks for.
45
- * @param activity Activity or boss to fetch ranks for.
46
- * @param page Page number.
47
- * @returns
48
- */
49
- var getActivityPageURL = function (gamemode, activity, page) {
50
- return "" + constants_1.GAMEMODE_URL[gamemode] + constants_1.SCORES_URL + "category_type=1&table=" + constants_1.ACTIVITIES.indexOf(activity) + "&page=" + page;
51
- };
52
- exports.getActivityPageURL = getActivityPageURL;
53
- /**
54
- * Extracts a number from an OSRS hiscores table cell element.
55
- *
56
- * @param el OSRS hiscores table cell element.
57
- * @returns Number parsed from cell text.
58
- */
59
- var numberFromElement = function (el) {
60
- var _a;
61
- var innerHTML = (el !== null && el !== void 0 ? el : {}).innerHTML;
62
- var number = (_a = innerHTML === null || innerHTML === void 0 ? void 0 : innerHTML.replace(/[\n|,]/g, '')) !== null && _a !== void 0 ? _a : '-1';
63
- return parseInt(number, 10);
64
- };
65
- exports.numberFromElement = numberFromElement;
66
- /**
67
- * Extracts a RSN from an OSRS hiscores table cell element.
68
- *
69
- * @param el OSRS hiscores table cell element.
70
- * @returns RSN parsed from cell text.
71
- */
72
- var rsnFromElement = function (el) {
73
- var _a;
74
- var innerHTML = (el !== null && el !== void 0 ? el : {}).innerHTML;
75
- return (_a = innerHTML === null || innerHTML === void 0 ? void 0 : innerHTML.replace(/\uFFFD/g, ' ')) !== null && _a !== void 0 ? _a : '';
76
- };
77
- exports.rsnFromElement = rsnFromElement;
78
- /**
79
- * Will run an Axios `GET` request against a given URL after injecting a `User-Agent` header.
80
- *
81
- * @param url URL to run a `GET` request against.
82
- * @returns Axios response.
83
- */
84
- var httpGet = function (url) {
85
- return axios_1.default.get(url, {
86
- headers: {
87
- // without User-Agent header requests may be rejected by DDoS protection mechanism
88
- 'User-Agent': ua.firefox(80)
89
- }
90
- });
91
- };
92
- exports.httpGet = httpGet;
93
- /**
94
- * Validates that a provided RSN has the same username restrictions as Jagex.
95
- * @param rsn Username to validate.
96
- * @throws Error if the RSN fails validation.
97
- */
98
- var validateRSN = function (rsn) {
99
- if (typeof rsn !== 'string') {
100
- throw Error('RSN must be a string');
101
- }
102
- else if (!/^[a-zA-Z0-9 _-]+$/.test(rsn)) {
103
- throw Error('RSN contains invalid character');
104
- }
105
- else if (rsn.length > 12 || rsn.length < 1) {
106
- throw Error('RSN must be between 1 and 12 characters');
107
- }
108
- };
109
- exports.validateRSN = validateRSN;
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.validateRSN = exports.httpGet = exports.rsnFromElement = exports.numberFromElement = exports.getActivityPageURL = exports.getSkillPageURL = exports.getPlayerTableURL = exports.getStatsURL = void 0;
15
+ var axios_1 = require("axios");
16
+ var ua = require("useragent-generator");
17
+ var constants_1 = require("./constants");
18
+ /**
19
+ * Will generate a stats URL for the official OSRS API.
20
+ *
21
+ * @param gamemode Gamemode to fetch ranks for.
22
+ * @param rsn Username of the player.
23
+ * @returns Encoded stats URL.
24
+ */
25
+ var getStatsURL = function (gamemode, rsn) {
26
+ return "".concat(constants_1.GAMEMODE_URL[gamemode]).concat(constants_1.STATS_URL).concat(encodeURIComponent(rsn));
27
+ };
28
+ exports.getStatsURL = getStatsURL;
29
+ /**
30
+ * Will generate a player table URL for the official OSRS hiscores website.
31
+ *
32
+ * @param gamemode Gamemode to fetch ranks for.
33
+ * @param rsn Username of the player.
34
+ * @returns Encoded player table URL.
35
+ */
36
+ var getPlayerTableURL = function (gamemode, rsn) {
37
+ return "".concat(constants_1.GAMEMODE_URL[gamemode]).concat(constants_1.SCORES_URL, "table=0&user=").concat(encodeURIComponent(rsn));
38
+ };
39
+ exports.getPlayerTableURL = getPlayerTableURL;
40
+ /**
41
+ * Will generate a skill table URL for the official OSRS hiscores website.
42
+ *
43
+ * @param gamemode Gamemode to fetch ranks for.
44
+ * @param skill Skill to fetch ranks for.
45
+ * @param page Page number.
46
+ * @returns
47
+ */
48
+ var getSkillPageURL = function (gamemode, skill, page) {
49
+ return "".concat(constants_1.GAMEMODE_URL[gamemode]).concat(constants_1.SCORES_URL, "table=").concat(constants_1.SKILLS.indexOf(skill), "&page=").concat(page);
50
+ };
51
+ exports.getSkillPageURL = getSkillPageURL;
52
+ /**
53
+ * Will generate an activity table URL for the official OSRS hiscores website.
54
+ *
55
+ * @param gamemode Gamemode to fetch ranks for.
56
+ * @param activity Activity or boss to fetch ranks for.
57
+ * @param page Page number.
58
+ * @returns
59
+ */
60
+ var getActivityPageURL = function (gamemode, activity, page) {
61
+ return "".concat(constants_1.GAMEMODE_URL[gamemode]).concat(constants_1.SCORES_URL, "category_type=1&table=").concat(constants_1.ACTIVITIES.indexOf(activity), "&page=").concat(page);
62
+ };
63
+ exports.getActivityPageURL = getActivityPageURL;
64
+ /**
65
+ * Extracts a number from an OSRS hiscores table cell element.
66
+ *
67
+ * @param el OSRS hiscores table cell element.
68
+ * @returns Number parsed from cell text.
69
+ */
70
+ var numberFromElement = function (el) {
71
+ var _a;
72
+ var innerHTML = (el !== null && el !== void 0 ? el : {}).innerHTML;
73
+ var number = (_a = innerHTML === null || innerHTML === void 0 ? void 0 : innerHTML.replace(/[\n|,]/g, '')) !== null && _a !== void 0 ? _a : '-1';
74
+ return parseInt(number, 10);
75
+ };
76
+ exports.numberFromElement = numberFromElement;
77
+ /**
78
+ * Extracts a RSN from an OSRS hiscores table cell element.
79
+ *
80
+ * @param el OSRS hiscores table cell element.
81
+ * @returns RSN parsed from cell text.
82
+ */
83
+ var rsnFromElement = function (el) {
84
+ var _a;
85
+ var innerHTML = (el !== null && el !== void 0 ? el : {}).innerHTML;
86
+ return (_a = innerHTML === null || innerHTML === void 0 ? void 0 : innerHTML.replace(/\uFFFD/g, ' ')) !== null && _a !== void 0 ? _a : '';
87
+ };
88
+ exports.rsnFromElement = rsnFromElement;
89
+ /**
90
+ * Will run an Axios `GET` request against a given URL after injecting a `User-Agent` header.
91
+ *
92
+ * @param url URL to run a `GET` request against.
93
+ * @returns Axios response.
94
+ */
95
+ var httpGet = function (url, config) {
96
+ if (config === void 0) { config = {}; }
97
+ return axios_1.default.get(url, __assign({ headers: {
98
+ // without User-Agent header requests may be rejected by DDoS protection mechanism
99
+ 'User-Agent': ua.firefox(80)
100
+ } }, config));
101
+ };
102
+ exports.httpGet = httpGet;
103
+ /**
104
+ * Validates that a provided RSN has the same username restrictions as Jagex.
105
+ * @param rsn Username to validate.
106
+ * @throws Error if the RSN fails validation.
107
+ */
108
+ var validateRSN = function (rsn) {
109
+ if (typeof rsn !== 'string') {
110
+ throw Error('RSN must be a string');
111
+ }
112
+ else if (!/^[a-zA-Z0-9 _-]+$/.test(rsn)) {
113
+ throw Error('RSN contains invalid character');
114
+ }
115
+ else if (rsn.length > 12 || rsn.length < 1) {
116
+ throw Error('RSN must be between 1 and 12 characters');
117
+ }
118
+ };
119
+ exports.validateRSN = validateRSN;
@@ -1,2 +1,2 @@
1
- export * from './constants';
2
- export * from './helpers';
1
+ export * from './constants';
2
+ export * from './helpers';
@@ -1,14 +1,18 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./constants"), exports);
14
- __exportStar(require("./helpers"), exports);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constants"), exports);
18
+ __exportStar(require("./helpers"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "osrs-json-hiscores",
3
- "version": "2.14.0",
3
+ "version": "2.14.2",
4
4
  "description": "The Old School Runescape API wrapper that does more!",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -61,7 +61,8 @@
61
61
  "@typescript-eslint"
62
62
  ],
63
63
  "extends": [
64
- "eslint-config-airbnb-typescript",
64
+ "airbnb-base",
65
+ "airbnb-typescript/base",
65
66
  "prettier"
66
67
  ],
67
68
  "ignorePatterns": [
@@ -72,7 +73,8 @@
72
73
  "trailingComma": "none",
73
74
  "tabWidth": 2,
74
75
  "semi": true,
75
- "singleQuote": true
76
+ "singleQuote": true,
77
+ "endOfLine": "auto"
76
78
  },
77
79
  "jest": {
78
80
  "transform": {
@@ -91,27 +93,24 @@
91
93
  },
92
94
  "dependencies": {
93
95
  "axios": "^0.21.1",
94
- "jsdom": "^16.3.0",
96
+ "jsdom": "^22.1.0",
95
97
  "useragent-generator": "^1.1.0"
96
98
  },
97
99
  "devDependencies": {
98
- "@types/jest": "^26.0.21",
99
- "@types/jsdom": "^16.2.3",
100
- "@typescript-eslint/eslint-plugin": "^4.19.0",
101
- "@typescript-eslint/parser": "^4.19.0",
102
- "eslint": "^7.22.0",
103
- "eslint-config-airbnb-typescript": "^12.3.1",
104
- "eslint-config-prettier": "^8.1.0",
105
- "eslint-plugin-import": "^2.22.1",
106
- "eslint-plugin-jsx-a11y": "^6.4.1",
107
- "eslint-plugin-react": "^7.23.1",
108
- "eslint-plugin-react-hooks": "^4.2.0",
100
+ "@types/jest": "^29.5.3",
101
+ "@types/jsdom": "^21.1.1",
102
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
103
+ "@typescript-eslint/parser": "^6.0.0",
104
+ "eslint": "^8.44.0",
105
+ "eslint-config-airbnb-typescript": "^17.1.0",
106
+ "eslint-config-prettier": "^8.8.0",
107
+ "eslint-plugin-import": "^2.27.5",
109
108
  "husky": "^5.2.0",
110
- "jest": "^26.6.3",
111
- "lint-staged": "^10.5.4",
109
+ "jest": "^29.6.1",
110
+ "lint-staged": "^13.2.3",
112
111
  "np": "^7.7.0",
113
- "prettier": "^2.2.1",
114
- "ts-jest": "^26.5.4",
115
- "typescript": "^4.2.3"
112
+ "prettier": "^3.0.0",
113
+ "ts-jest": "^29.1.1",
114
+ "typescript": "^5.1.6"
116
115
  }
117
116
  }