@algoux/standard-ranklist-utils 0.1.1 → 0.2.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.
package/package.json CHANGED
@@ -1,39 +1,50 @@
1
1
  {
2
2
  "name": "@algoux/standard-ranklist-utils",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "author": "bLue",
5
5
  "keywords": [
6
6
  "standard ranklist",
7
7
  "srk",
8
8
  "utils"
9
9
  ],
10
- "type": "module",
11
- "main": "dist/index.js",
12
- "types": "dist/index.d.ts",
10
+ "main": "./dist/index.cjs",
11
+ "module": "./dist/index.mjs",
12
+ "types": "./dist/index.d.cts",
13
+ "exports": {
14
+ "require": {
15
+ "types": "./dist/index.d.cts",
16
+ "default": "./dist/index.cjs"
17
+ },
18
+ "import": {
19
+ "types": "./dist/index.d.mts",
20
+ "default": "./dist/index.mjs"
21
+ }
22
+ },
13
23
  "files": [
14
24
  "dist"
15
25
  ],
16
26
  "scripts": {
17
- "dev": "NODE_OPTIONS='--es-module-specifier-resolution=node' ts-node --transpile-only src/index.ts",
18
- "build": "rimraf dist && tsc"
27
+ "dev": "tsx src/index.ts",
28
+ "build": "pkgroll && node scripts/postcompile.js"
19
29
  },
20
30
  "dependencies": {
31
+ "@types/semver": "^7.5.0",
21
32
  "bcp-47-match": "^2.0.2",
22
33
  "bignumber.js": "^9.1.1",
23
34
  "semver": "^7.5.4",
24
35
  "textcolor": "^1.0.2"
25
36
  },
26
37
  "devDependencies": {
27
- "@algoux/standard-ranklist": "^0.3.3",
38
+ "@algoux/standard-ranklist": "^0.3.4",
28
39
  "@types/node": "^16.18.38",
29
- "@types/semver": "^7.5.0",
30
40
  "@typescript-eslint/eslint-plugin": "^5.61.0",
31
41
  "@typescript-eslint/parser": "^5.61.0",
32
42
  "eslint": "^8.44.0",
33
43
  "eslint-config-alloy": "^4.0.0",
44
+ "pkgroll": "~2.3.0",
34
45
  "prettier": "^2.7.1",
35
46
  "rimraf": "^5.0.1",
36
- "ts-node": "^10.9.1",
47
+ "tsx": "^4.19.4",
37
48
  "typescript": "^4.9.5"
38
49
  },
39
50
  "peerDependencies": {
@@ -48,5 +59,10 @@
48
59
  "url": "https://github.com/algoux/standard-ranklist-utils/issues"
49
60
  },
50
61
  "homepage": "https://github.com/algoux/standard-ranklist-utils#readme",
51
- "srkSupportedVersions": ">=0.3.0 <=0.3.3"
62
+ "srkSupportedVersions": ">=0.3.0 <0.4.0",
63
+ "pnpm": {
64
+ "overrides": {
65
+ "esbuild": "0.23.1"
66
+ }
67
+ }
52
68
  }
@@ -1 +0,0 @@
1
- export declare const MIN_REGEN_SUPPORTED_VERSION = "0.3.0";
package/dist/constants.js DELETED
@@ -1 +0,0 @@
1
- export const MIN_REGEN_SUPPORTED_VERSION = '0.3.0';
package/dist/enums.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export declare enum EnumTheme {
2
- light = "light",
3
- dark = "dark"
4
- }
package/dist/enums.js DELETED
@@ -1,5 +0,0 @@
1
- export var EnumTheme;
2
- (function (EnumTheme) {
3
- EnumTheme["light"] = "light";
4
- EnumTheme["dark"] = "dark";
5
- })(EnumTheme || (EnumTheme = {}));
@@ -1,35 +0,0 @@
1
- import type * as srk from '@algoux/standard-ranklist';
2
- export declare function formatTimeDuration(time: srk.TimeDuration, targetUnit?: srk.TimeUnit, fmt?: (num: number) => number): number;
3
- export declare function preZeroFill(num: number, size: number): string;
4
- /**
5
- * format seconds to time string
6
- * @param {number} second
7
- * @param {{ fillHour?: boolean, showDay?: boolean }} options
8
- * @returns {string}
9
- */
10
- export declare function secToTimeStr(second: number, options?: {
11
- fillHour?: boolean;
12
- showDay?: boolean;
13
- }): string;
14
- /**
15
- * Format number index to alphabet index
16
- * 0 => 'A'
17
- * 2 => 'C'
18
- * 25 => 'Z'
19
- * 26 => 'AA'
20
- * 28 => 'AC
21
- * @param {number | string} number
22
- * @returns {string}
23
- */
24
- export declare function numberToAlphabet(number: number | string): string;
25
- /**
26
- * Format alphabet index to number index
27
- * 'A' => 0
28
- * 'C' => 2
29
- * 'Z' => 25
30
- * 'AA' => 26
31
- * 'AC' => 28
32
- * @param {string} alphabet
33
- * @returns {number}
34
- */
35
- export declare function alphabetToNumber(alphabet: string): number;
@@ -1,124 +0,0 @@
1
- export function formatTimeDuration(time, targetUnit = 'ms', fmt = (num) => num) {
2
- let ms = -1;
3
- switch (time[1]) {
4
- case 'ms':
5
- ms = time[0];
6
- break;
7
- case 's':
8
- ms = time[0] * 1000;
9
- break;
10
- case 'min':
11
- ms = time[0] * 1000 * 60;
12
- break;
13
- case 'h':
14
- ms = time[0] * 1000 * 60 * 60;
15
- break;
16
- case 'd':
17
- ms = time[0] * 1000 * 60 * 60 * 24;
18
- break;
19
- default:
20
- throw new Error(`Invalid source time unit ${time[1]}`);
21
- }
22
- switch (targetUnit) {
23
- case 'ms':
24
- return ms;
25
- case 's':
26
- return fmt(ms / 1000);
27
- case 'min':
28
- return fmt(ms / 1000 / 60);
29
- case 'h':
30
- return fmt(ms / 1000 / 60 / 60);
31
- case 'd':
32
- return fmt(ms / 1000 / 60 / 60 / 24);
33
- default:
34
- throw new Error(`Invalid target time unit ${targetUnit}`);
35
- }
36
- }
37
- export function preZeroFill(num, size) {
38
- if (num >= Math.pow(10, size)) {
39
- return num.toString();
40
- }
41
- else {
42
- let str = Array(size + 1).join('0') + num;
43
- return str.slice(str.length - size);
44
- }
45
- }
46
- /**
47
- * format seconds to time string
48
- * @param {number} second
49
- * @param {{ fillHour?: boolean, showDay?: boolean }} options
50
- * @returns {string}
51
- */
52
- export function secToTimeStr(second, options = {}) {
53
- let sec = second;
54
- let d = 0;
55
- const { fillHour = false, showDay = false } = options;
56
- if (showDay) {
57
- d = Math.floor(sec / 86400);
58
- sec %= 86400;
59
- }
60
- let h = Math.floor(sec / 3600);
61
- sec %= 3600;
62
- let m = Math.floor(sec / 60);
63
- sec %= 60;
64
- let s = Math.floor(sec);
65
- let dayStr = '';
66
- if (showDay && d >= 1) {
67
- dayStr = d + 'D ';
68
- }
69
- if (sec < 0) {
70
- return '--';
71
- }
72
- return dayStr + (fillHour ? preZeroFill(h, 2) : `${h}`) + ':' + preZeroFill(m, 2) + ':' + preZeroFill(s, 2);
73
- }
74
- /**
75
- * Format number index to alphabet index
76
- * 0 => 'A'
77
- * 2 => 'C'
78
- * 25 => 'Z'
79
- * 26 => 'AA'
80
- * 28 => 'AC
81
- * @param {number | string} number
82
- * @returns {string}
83
- */
84
- export function numberToAlphabet(number) {
85
- let n = ~~number;
86
- const radix = 26;
87
- let cnt = 1;
88
- let p = radix;
89
- while (n >= p) {
90
- n -= p;
91
- cnt++;
92
- p *= radix;
93
- }
94
- let res = [];
95
- for (; cnt > 0; cnt--) {
96
- res.push(String.fromCharCode((n % radix) + 65));
97
- n = Math.trunc(n / radix);
98
- }
99
- return res.reverse().join('');
100
- }
101
- /**
102
- * Format alphabet index to number index
103
- * 'A' => 0
104
- * 'C' => 2
105
- * 'Z' => 25
106
- * 'AA' => 26
107
- * 'AC' => 28
108
- * @param {string} alphabet
109
- * @returns {number}
110
- */
111
- export function alphabetToNumber(alphabet) {
112
- if (typeof alphabet !== 'string' || !alphabet.length) {
113
- return -1;
114
- }
115
- const chars = `${alphabet}`.toUpperCase().split('').reverse();
116
- const radix = 26;
117
- let p = 1;
118
- let res = -1;
119
- chars.forEach((ch) => {
120
- res += (ch.charCodeAt(0) - 65) * p + p;
121
- p *= radix;
122
- });
123
- return res;
124
- }
package/dist/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export * from './constants';
2
- export * from './enums';
3
- export * from './types';
4
- export * from './formatters';
5
- export * from './resolvers';
6
- export * from './ranklist';
package/dist/index.js DELETED
@@ -1,6 +0,0 @@
1
- export * from './constants';
2
- export * from './enums';
3
- export * from './types';
4
- export * from './formatters';
5
- export * from './resolvers';
6
- export * from './ranklist';
@@ -1,9 +0,0 @@
1
- import type * as srk from '@algoux/standard-ranklist';
2
- import { CalculatedSolutionTetrad, StaticRanklist } from './types';
3
- export declare function canRegenerateRanklist(ranklist: srk.Ranklist): boolean;
4
- export declare function getSortedCalculatedRawSolutions(rows: srk.RanklistRow[]): CalculatedSolutionTetrad[];
5
- export declare function filterSolutionsUntil(solutions: CalculatedSolutionTetrad[], time: srk.TimeDuration): CalculatedSolutionTetrad[];
6
- export declare function sortRows(rows: srk.RanklistRow[]): srk.RanklistRow[];
7
- export declare function regenerateRanklistBySolutions(originalRanklist: srk.Ranklist, solutions: CalculatedSolutionTetrad[]): srk.Ranklist;
8
- export declare function regenerateRowsByIncrementalSolutions(originalRanklist: srk.Ranklist, solutions: CalculatedSolutionTetrad[]): srk.RanklistRow[];
9
- export declare function convertToStaticRanklist(ranklist: srk.Ranklist): StaticRanklist;