mineflayer-viaproxy 0.7.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/README.md +112 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/convNmp.d.ts +6 -0
- package/dist/convNmp.js +312 -0
- package/dist/convNmp.js.map +1 -0
- package/dist/func.d.ts +4 -0
- package/dist/func.js +255 -0
- package/dist/func.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/openAuthMod.d.ts +2 -0
- package/dist/openAuthMod.js +31 -0
- package/dist/openAuthMod.js.map +1 -0
- package/dist/types/accountsV3.d.ts +109 -0
- package/dist/types/accountsV3.js +3 -0
- package/dist/types/accountsV3.js.map +1 -0
- package/dist/types/accountsV4.d.ts +124 -0
- package/dist/types/accountsV4.js +3 -0
- package/dist/types/accountsV4.js.map +1 -0
- package/dist/types/config.d.ts +20 -0
- package/dist/types/config.js +39 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types.d.ts +21 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +20 -0
- package/dist/utils.js +544 -0
- package/dist/utils.js.map +1 -0
- package/eclcc.log +1 -0
- package/package.json +32 -0
package/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# mineflayer-viaproxy
|
|
2
|
+
|
|
3
|
+
[](http://npmjs.com/package/mineflayer-viaproxy)
|
|
4
|
+
|
|
5
|
+
A mineflayer plugin that allows you to connect to a server through a ViaVersion proxy.
|
|
6
|
+
|
|
7
|
+
Why? Because I'm tired of people asking for version updates.
|
|
8
|
+
|
|
9
|
+
If you have issues, join [here](https://discord.gg/g3w4G88y) for support.
|
|
10
|
+
Alternatively, [here](https://discord.gg/prismarinejs-413438066984747026) for general mineflayer support.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Prerequisites
|
|
14
|
+
* Node.js v16 or higher
|
|
15
|
+
* Java Runtime Environment (JRE) installed and accessible via command line, preferably version 17 or higher.
|
|
16
|
+
|
|
17
|
+
### TODOS
|
|
18
|
+
|
|
19
|
+
* [x] Support bedrock versions
|
|
20
|
+
* [x] Support adding accounts to ViaProxy gracefully.
|
|
21
|
+
* [x] Make fix for prismarine-registry more robust (see patches)
|
|
22
|
+
* [ ] Add support for more ViaVersion options
|
|
23
|
+
* [x] Add support for more ViaProxy options
|
|
24
|
+
* [x] Support Python
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install mineflayer-viaproxy
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
```js
|
|
35
|
+
const { createBot } = require('mineflayer-viaproxy')
|
|
36
|
+
|
|
37
|
+
// only difference is that this must be awaited now.
|
|
38
|
+
const bot = await createBot({...})
|
|
39
|
+
|
|
40
|
+
// if you want to pass viaProxy options, it'd be like so:
|
|
41
|
+
|
|
42
|
+
const orgBotOpts = {...}
|
|
43
|
+
const viaProxyOpts = {...}
|
|
44
|
+
|
|
45
|
+
// same object.
|
|
46
|
+
const bot = await createBot({...orgBotOpts, ...viaProxyOpts});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## API
|
|
50
|
+
|
|
51
|
+
### Types
|
|
52
|
+
|
|
53
|
+
#### `AuthType`
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
export enum AuthType {
|
|
57
|
+
NONE = "NONE",
|
|
58
|
+
OPENAUTHMOD = "OPENAUTHMOD",
|
|
59
|
+
ACCOUNT = "ACCOUNT",
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
| Name | Value | Description |
|
|
64
|
+
| ------------- | --------------- | ---------------------------------------------- |
|
|
65
|
+
| `NONE` | `"NONE"` | No authentication |
|
|
66
|
+
| `OPENAUTHMOD` | `"OPENAUTHMOD"` | OpenAuthMod authentication |
|
|
67
|
+
| `ACCOUNT` | `"ACCOUNT"` | Account authentication (requires manual setup) |
|
|
68
|
+
|
|
69
|
+
#### `ViaProxyOpts`
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
export interface ViaProxyOpts {
|
|
73
|
+
forceViaProxy?: boolean;
|
|
74
|
+
javaPath?: string;
|
|
75
|
+
localPort?: number;
|
|
76
|
+
localAuth?: AuthType;
|
|
77
|
+
viaProxyLocation?: string;
|
|
78
|
+
viaProxyWorkingDir?: string;
|
|
79
|
+
autoUpdate?: boolean;
|
|
80
|
+
viaProxyConfig?: Partial<ViaProxyConfig>;
|
|
81
|
+
viaProxyStdoutCb?: (data: any) => void;
|
|
82
|
+
viaProxyStderrCb?: (data: any) => void;
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
| Name | Type | Default | Description |
|
|
87
|
+
| -------------------- | ------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
88
|
+
| `forceViaProxy` | boolean | false | Whether or not to force the use of ViaProxy. If set to true, it will always use ViaProxy regardless of the server version. |
|
|
89
|
+
| `javaPath` | string | `"java"` | The path to the java executable. |
|
|
90
|
+
| `localPort` | number | *auto determined* | The port to listen on for the local server. If none is specified, it will automatically locate an open port for you on your computer. |
|
|
91
|
+
| `localAuth` | `AuthType` | `AuthType.NONE` | The authentication type to use for the local server. |
|
|
92
|
+
| `viaProxyLocation` | string | "" | The location of the ViaVersion proxy jar. If none specified, it will download automatically to the CWD + `viaproxy`. |
|
|
93
|
+
| `viaProxyWorkingDir` | string | "" | The working directory for the ViaVersion proxy. If none specified, it will use the CWD + `viaproxy`. |
|
|
94
|
+
| `autoUpdate` | boolean | true | Whether or not to automatically update the ViaVersion proxy. |
|
|
95
|
+
| `viaProxyConfig` | `Partial<ViaProxyConfig>` | undefined | Configuration options for ViaProxy. |
|
|
96
|
+
| `viaProxyStdoutCb` | `(data: any) => void` | undefined | A callback for the stdout of the ViaVersion proxy. |
|
|
97
|
+
| `viaProxyStderrCb` | `(data: any) => void` | undefined | A callback for the stderr of the ViaVersion proxy. |
|
|
98
|
+
|
|
99
|
+
#### `ViaProxyConfig`
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
export interface ViaProxyConfig {
|
|
103
|
+
backendProxyUrl: string;
|
|
104
|
+
[key: string]: string | number | boolean;
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
| Name | Type | Description | | |
|
|
109
|
+
| ----------------- | ------- | ----------------------------------------------------------------------------------- | -------- | ---------------------------------------------- |
|
|
110
|
+
| `backendProxyUrl` | string | The URL of the backend proxy to connect to. If none specified, it will not use one. | | |
|
|
111
|
+
| `[key: string]` | `string \| number \| boolean` | Additional configuration options for ViaProxy. |
|
|
112
|
+
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const BASE_VIAPROXY_URL = "https://ci.viaversion.com/view/Platforms/job/ViaProxy/lastStableBuild";
|
|
2
|
+
export declare const BASE_GEYSER_URL = "https://download.geysermc.org/v2/projects/geyser";
|
|
3
|
+
export declare const VIA_PROXY_CMD: (java_loc: string, loc: string, cli?: boolean) => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VIA_PROXY_CMD = exports.BASE_GEYSER_URL = exports.BASE_VIAPROXY_URL = void 0;
|
|
4
|
+
exports.BASE_VIAPROXY_URL = "https://ci.viaversion.com/view/Platforms/job/ViaProxy/lastStableBuild";
|
|
5
|
+
exports.BASE_GEYSER_URL = "https://download.geysermc.org/v2/projects/geyser";
|
|
6
|
+
const VIA_PROXY_CMD = (java_loc, loc, cli = true) => java_loc + " -jar " + `"${loc}"` + (cli ? " cli" : "");
|
|
7
|
+
exports.VIA_PROXY_CMD = VIA_PROXY_CMD;
|
|
8
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,uEAAuE,CAAA;AAC3F,QAAA,eAAe,GAAG,kDAAkD,CAAC;AAC3E,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,GAAW,EAAE,GAAG,GAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAApH,QAAA,aAAa,iBAAuG"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BotOptions } from "mineflayer";
|
|
2
|
+
import * as viaproxyTypes from "./types/config";
|
|
3
|
+
export declare function generateCacheFileName(pathName: string, cacheName: string, username: string): string;
|
|
4
|
+
export declare function extractCacheNames(opts: BotOptions): AsyncGenerator<string, never[] | undefined, unknown>;
|
|
5
|
+
export declare function loadNmpConfig(opts: BotOptions): Promise<viaproxyTypes.ViaProxyV3Config>;
|
|
6
|
+
export declare function convToV4(code: viaproxyTypes.ViaProxyV3Config): viaproxyTypes.ViaProxyV4Config;
|
package/dist/convNmp.js
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
45
|
+
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
46
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
47
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
48
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
49
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
50
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
51
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
52
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
53
|
+
function fulfill(value) { resume("next", value); }
|
|
54
|
+
function reject(value) { resume("throw", value); }
|
|
55
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
56
|
+
};
|
|
57
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
58
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
59
|
+
var m = o[Symbol.asyncIterator], i;
|
|
60
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
61
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
62
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
63
|
+
};
|
|
64
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
65
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
66
|
+
};
|
|
67
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
68
|
+
exports.generateCacheFileName = generateCacheFileName;
|
|
69
|
+
exports.extractCacheNames = extractCacheNames;
|
|
70
|
+
exports.loadNmpConfig = loadNmpConfig;
|
|
71
|
+
exports.convToV4 = convToV4;
|
|
72
|
+
const path_1 = __importDefault(require("path"));
|
|
73
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
74
|
+
const utils_1 = require("./utils");
|
|
75
|
+
const crypto = __importStar(require("crypto"));
|
|
76
|
+
const prismarine_auth_1 = require("prismarine-auth");
|
|
77
|
+
const uuid_1 = require("uuid");
|
|
78
|
+
const { createHash } = require("prismarine-auth/src/common/Util");
|
|
79
|
+
function generateCacheFileName(pathName, cacheName, username) {
|
|
80
|
+
return path_1.default.join(pathName, `${createHash(username)}_${cacheName}-cache.json`);
|
|
81
|
+
}
|
|
82
|
+
function extractCacheNames(opts) {
|
|
83
|
+
return __asyncGenerator(this, arguments, function* extractCacheNames_1() {
|
|
84
|
+
const profileFolder = (0, utils_1.validateOptions)(opts).profilesFolder;
|
|
85
|
+
if (!(yield __await(promises_1.default.stat(profileFolder).catch(() => false)))) {
|
|
86
|
+
return yield __await([]);
|
|
87
|
+
}
|
|
88
|
+
const files = yield __await(promises_1.default.readdir(profileFolder));
|
|
89
|
+
const hash = createHash(opts.username);
|
|
90
|
+
for (const file of files) {
|
|
91
|
+
if (file.startsWith(hash) && file.endsWith("-cache.json")) {
|
|
92
|
+
const cacheName = file.substring(hash.length + 1, file.length - "-cache.json".length);
|
|
93
|
+
yield yield __await(cacheName);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function loadNmpConfig(opts) {
|
|
99
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
var _a, e_1, _b, _c;
|
|
101
|
+
var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
102
|
+
const sanitizedOpts = (0, utils_1.validateOptions)(opts);
|
|
103
|
+
const flow = new prismarine_auth_1.Authflow(opts.username, sanitizedOpts.profilesFolder, {
|
|
104
|
+
authTitle: prismarine_auth_1.Titles.MinecraftNintendoSwitch, deviceType: 'Nintendo', flow: 'live'
|
|
105
|
+
});
|
|
106
|
+
const mcMgr = yield flow.getMinecraftJavaToken({ fetchCertificates: true, fetchProfile: true });
|
|
107
|
+
const caches = [];
|
|
108
|
+
try {
|
|
109
|
+
for (var _s = true, _t = __asyncValues(extractCacheNames(opts)), _u; _u = yield _t.next(), _a = _u.done, !_a; _s = true) {
|
|
110
|
+
_c = _u.value;
|
|
111
|
+
_s = false;
|
|
112
|
+
const cacheName = _c;
|
|
113
|
+
caches.push(cacheName);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
117
|
+
finally {
|
|
118
|
+
try {
|
|
119
|
+
if (!_s && !_a && (_b = _t.return)) yield _b.call(_t);
|
|
120
|
+
}
|
|
121
|
+
finally { if (e_1) throw e_1.error; }
|
|
122
|
+
}
|
|
123
|
+
const requiredCaches = ['live', 'mca', 'xbl'];
|
|
124
|
+
for (const req of requiredCaches) {
|
|
125
|
+
if (!caches.includes(req)) {
|
|
126
|
+
throw new Error(`Missing required cache: ${req}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
const cacheMap = {};
|
|
130
|
+
for (const cacheName of caches) {
|
|
131
|
+
const cacheFile = generateCacheFileName(sanitizedOpts.profilesFolder, cacheName, sanitizedOpts.username);
|
|
132
|
+
const data = yield promises_1.default.readFile(cacheFile, 'utf-8');
|
|
133
|
+
const parsed = JSON.parse(data);
|
|
134
|
+
cacheMap[cacheName] = parsed;
|
|
135
|
+
}
|
|
136
|
+
const mca = cacheMap['mca'];
|
|
137
|
+
const mcAccessToken = mca.mca.access_token;
|
|
138
|
+
const mcExpireTimeMs = mca.mca.obtainedOn + mca.mca.expires_in * 1000;
|
|
139
|
+
const mcProfileId = mca.mca.username;
|
|
140
|
+
const mcProfileName = sanitizedOpts.username;
|
|
141
|
+
const xbl = cacheMap['xbl'];
|
|
142
|
+
const userToken = xbl.userToken.Token;
|
|
143
|
+
const userTokenExp = Date.parse(xbl.userToken.NotAfter);
|
|
144
|
+
const titleToken = xbl.titleToken.Token;
|
|
145
|
+
const titleTokenExp = Date.parse(xbl.titleToken.NotAfter);
|
|
146
|
+
const xstsToken = xbl["30f115"].XSTSToken;
|
|
147
|
+
const xstsUserHash = xbl["30f115"].userHash;
|
|
148
|
+
const deviceToken = xbl.deviceToken.Token;
|
|
149
|
+
const live = cacheMap['live'];
|
|
150
|
+
const msaAccessToken = live.token.access_token;
|
|
151
|
+
const msaRefreshToken = live.token.refresh_token;
|
|
152
|
+
const msaExpireTimeMs = live.token.obtainedOn + live.token.expires_in * 1000;
|
|
153
|
+
const keyPair = crypto.generateKeyPairSync('ec', { namedCurve: 'P-256' });
|
|
154
|
+
const publicKey = mcMgr.certificates.profileKeys.public.export({ type: 'spki', format: 'pem' });
|
|
155
|
+
const privateKey = mcMgr.certificates.profileKeys.private.export({ type: 'pkcs8', format: 'pem' });
|
|
156
|
+
const expiresOn = mcMgr.certificates.profileKeys.expiresOn;
|
|
157
|
+
const publicKeySignature = mcMgr.certificates.profileKeys.signatureV2.toString('base64');
|
|
158
|
+
const legacyPublicKeySignature = mcMgr.certificates.profileKeys.signature.toString('base64');
|
|
159
|
+
const combined = {
|
|
160
|
+
accountsV3: [
|
|
161
|
+
{
|
|
162
|
+
accountType: "net.raphimc.viaproxy.saves.impl.accounts.MicrosoftAccount",
|
|
163
|
+
javaSession: {
|
|
164
|
+
mcProfile: {
|
|
165
|
+
id: mcProfileId,
|
|
166
|
+
name: mcProfileName,
|
|
167
|
+
skinUrl: ((_d = mcMgr.profile.skins[0]) === null || _d === void 0 ? void 0 : _d.url) || "",
|
|
168
|
+
mcToken: {
|
|
169
|
+
accessToken: mcAccessToken,
|
|
170
|
+
tokenType: "Bearer",
|
|
171
|
+
expireTimeMs: mcExpireTimeMs,
|
|
172
|
+
xblSisuAuthentication: {
|
|
173
|
+
userToken: {
|
|
174
|
+
token: userToken,
|
|
175
|
+
expireTimeMs: userTokenExp,
|
|
176
|
+
userHash: (_h = (_g = (_f = (_e = xbl.userToken.DisplayClaims) === null || _e === void 0 ? void 0 : _e.xui) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.uhs) !== null && _h !== void 0 ? _h : xstsUserHash
|
|
177
|
+
},
|
|
178
|
+
titleToken: {
|
|
179
|
+
token: titleToken,
|
|
180
|
+
expireTimeMs: titleTokenExp,
|
|
181
|
+
titleId: (_o = (_m = (_l = (_k = (_j = xbl.titleToken.DisplayClaims) === null || _j === void 0 ? void 0 : _j.xti) === null || _k === void 0 ? void 0 : _k.tid) === null || _l === void 0 ? void 0 : _l.toString) === null || _m === void 0 ? void 0 : _m.call(_l)) !== null && _o !== void 0 ? _o : "TODO_TITLE_ID"
|
|
182
|
+
},
|
|
183
|
+
xstsToken: {
|
|
184
|
+
token: xstsToken,
|
|
185
|
+
expireTimeMs: Date.now() + 3600000,
|
|
186
|
+
userHash: xstsUserHash,
|
|
187
|
+
displayClaims: { uhs: xstsUserHash }
|
|
188
|
+
},
|
|
189
|
+
initialXblSession: {
|
|
190
|
+
msaToken: {
|
|
191
|
+
accessToken: msaAccessToken,
|
|
192
|
+
refreshToken: msaRefreshToken,
|
|
193
|
+
expireTimeMs: msaExpireTimeMs,
|
|
194
|
+
msaCode: {}
|
|
195
|
+
},
|
|
196
|
+
xblDeviceToken: {
|
|
197
|
+
publicKey: keyPair.publicKey.export({ type: 'spki', format: 'der' }).toString('base64'),
|
|
198
|
+
privateKey: keyPair.privateKey.export({ type: 'pkcs8', format: 'der' }).toString('base64'),
|
|
199
|
+
id: (0, uuid_1.v4)(),
|
|
200
|
+
deviceId: (_r = (_q = (_p = xbl.deviceToken.DisplayClaims) === null || _p === void 0 ? void 0 : _p.xdi) === null || _q === void 0 ? void 0 : _q.did) !== null && _r !== void 0 ? _r : "TODO_DEVICE_ID",
|
|
201
|
+
expireTimeMs: Date.parse(xbl.deviceToken.NotAfter),
|
|
202
|
+
token: deviceToken
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
playerCertificates: {
|
|
209
|
+
expireTimeMs: Date.parse(expiresOn),
|
|
210
|
+
publicKey: publicKey.toString('utf-8').replace(/-----BEGIN PUBLIC KEY-----|-----END PUBLIC KEY-----|\n|\r/g, ''),
|
|
211
|
+
privateKey: privateKey.toString('utf-8').replace(/-----BEGIN PRIVATE KEY-----|-----END PRIVATE KEY-----|\n|\r/g, ''),
|
|
212
|
+
publicKeySignature: publicKeySignature,
|
|
213
|
+
legacyPublicKeySignature: legacyPublicKeySignature
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
],
|
|
218
|
+
ui: {},
|
|
219
|
+
};
|
|
220
|
+
return combined;
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
function convToV4(code) {
|
|
224
|
+
const deviceEc = crypto.generateKeyPairSync("ec", { namedCurve: "P-256" });
|
|
225
|
+
const devicePublicKeyB64 = deviceEc.publicKey.export({ type: "spki", format: "der" }).toString("base64");
|
|
226
|
+
const devicePrivateKeyB64 = deviceEc.privateKey.export({ type: "pkcs8", format: "der" }).toString("base64");
|
|
227
|
+
const accountsV4 = [];
|
|
228
|
+
for (const account of code.accountsV3) {
|
|
229
|
+
const accountV4 = Object.assign({}, account);
|
|
230
|
+
if (account.accountType === 'net.raphimc.viaproxy.saves.impl.accounts.MicrosoftAccount') {
|
|
231
|
+
const mcAcount = account;
|
|
232
|
+
const newAccount = {
|
|
233
|
+
accountType: "net.raphimc.viaproxy.saves.impl.accounts.MicrosoftAccount",
|
|
234
|
+
deviceId: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.initialXblSession.xblDeviceToken.id,
|
|
235
|
+
_saveVersion: 1,
|
|
236
|
+
msaApplicationConfig: {
|
|
237
|
+
_saveVersion: 1,
|
|
238
|
+
clientId: "00000000402b5328",
|
|
239
|
+
scope: "service::user.auth.xboxlive.com::MBI_SSL",
|
|
240
|
+
environment: "LIVE",
|
|
241
|
+
},
|
|
242
|
+
deviceType: "Win32",
|
|
243
|
+
deviceKeyPair: {
|
|
244
|
+
algorithm: "EC",
|
|
245
|
+
publicKey: devicePublicKeyB64,
|
|
246
|
+
privateKey: devicePrivateKeyB64,
|
|
247
|
+
},
|
|
248
|
+
msaToken: {
|
|
249
|
+
_saveVersion: 1,
|
|
250
|
+
expireTimeMs: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.initialXblSession.msaToken.expireTimeMs,
|
|
251
|
+
accessToken: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.initialXblSession.msaToken.accessToken,
|
|
252
|
+
refreshToken: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.initialXblSession.msaToken.refreshToken,
|
|
253
|
+
},
|
|
254
|
+
xblUserToken: {
|
|
255
|
+
_saveVersion: 1,
|
|
256
|
+
expireTimeMs: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.userToken.expireTimeMs,
|
|
257
|
+
token: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.userToken.token,
|
|
258
|
+
userHash: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.userToken.userHash,
|
|
259
|
+
},
|
|
260
|
+
xblTitleToken: {
|
|
261
|
+
_saveVersion: 1,
|
|
262
|
+
expireTimeMs: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.titleToken.expireTimeMs,
|
|
263
|
+
token: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.titleToken.token,
|
|
264
|
+
titleId: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.titleToken.titleId,
|
|
265
|
+
},
|
|
266
|
+
javaXstsToken: {
|
|
267
|
+
_saveVersion: 1,
|
|
268
|
+
expireTimeMs: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.userToken.expireTimeMs,
|
|
269
|
+
token: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.userToken.token,
|
|
270
|
+
userHash: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.userToken.userHash,
|
|
271
|
+
},
|
|
272
|
+
minecraftToken: {
|
|
273
|
+
_saveVersion: 1,
|
|
274
|
+
expireTimeMs: mcAcount.javaSession.mcProfile.mcToken.expireTimeMs,
|
|
275
|
+
type: mcAcount.javaSession.mcProfile.mcToken.tokenType,
|
|
276
|
+
token: mcAcount.javaSession.mcProfile.mcToken.accessToken,
|
|
277
|
+
},
|
|
278
|
+
minecraftProfile: {
|
|
279
|
+
_saveVersion: 1,
|
|
280
|
+
id: mcAcount.javaSession.mcProfile.id,
|
|
281
|
+
name: mcAcount.javaSession.mcProfile.name,
|
|
282
|
+
},
|
|
283
|
+
minecraftPlayerCertificates: {
|
|
284
|
+
_saveVersion: 1,
|
|
285
|
+
expireTimeMs: mcAcount.javaSession.playerCertificates.expireTimeMs,
|
|
286
|
+
keyPair: {
|
|
287
|
+
algorithm: "RSA",
|
|
288
|
+
publicKey: mcAcount.javaSession.playerCertificates.publicKey,
|
|
289
|
+
privateKey: mcAcount.javaSession.playerCertificates.privateKey,
|
|
290
|
+
},
|
|
291
|
+
publicKeySignature: mcAcount.javaSession.playerCertificates.publicKeySignature,
|
|
292
|
+
legacyPublicKeySignature: mcAcount.javaSession.playerCertificates.legacyPublicKeySignature,
|
|
293
|
+
},
|
|
294
|
+
xblDeviceToken: {
|
|
295
|
+
_saveVersion: 1,
|
|
296
|
+
expireTimeMs: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.initialXblSession.xblDeviceToken.expireTimeMs,
|
|
297
|
+
token: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.initialXblSession.xblDeviceToken.token,
|
|
298
|
+
deviceId: mcAcount.javaSession.mcProfile.mcToken.xblSisuAuthentication.initialXblSession.xblDeviceToken.deviceId,
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
accountsV4.push(newAccount);
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
accountsV4.push(accountV4);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return {
|
|
308
|
+
accountsV4: accountsV4,
|
|
309
|
+
ui: code.ui,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=convNmp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convNmp.js","sourceRoot":"","sources":["../src/convNmp.ts"],"names":[],"mappings":"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"}
|
package/dist/func.d.ts
ADDED