mirror of
https://gitea.tendokyu.moe/ppc/amnet.git
synced 2026-09-22 22:28:22 +03:00
add game name resolution
This commit is contained in:
Vendored
+3
-2
@@ -41,7 +41,7 @@ declare function generateCardNumber(): string;
|
||||
*/
|
||||
declare function validateCardId(id: string): boolean;
|
||||
|
||||
declare enum GameIds {
|
||||
declare enum GameId {
|
||||
/**
|
||||
* Initial D The Arcade
|
||||
*/
|
||||
@@ -58,5 +58,6 @@ declare enum GameIds {
|
||||
maimaiDX = "SDEZ",
|
||||
DivaFT = "SBZV"
|
||||
}
|
||||
declare function getGameName(id: GameId): "Initial D The Arcade" | "CHUNITHM" | "CHUNITHM (Paradise Lost)" | "O.N.G.E.K.I" | "maimai DX" | "Project DIVA Future Tone";
|
||||
|
||||
export { type AMCardInRequest, AMNET_API_VERSION, type AMServerConnectionInfo, type AMServerInfoResponse, CARD_ID_REGEX, GameIds, fetchServerInfo, generateCardNumber, performCardIn, validateCardId };
|
||||
export { type AMCardInRequest, AMNET_API_VERSION, type AMServerConnectionInfo, type AMServerInfoResponse, CARD_ID_REGEX, GameId, fetchServerInfo, generateCardNumber, getGameName, performCardIn, validateCardId };
|
||||
|
||||
Vendored
+3
-2
@@ -41,7 +41,7 @@ declare function generateCardNumber(): string;
|
||||
*/
|
||||
declare function validateCardId(id: string): boolean;
|
||||
|
||||
declare enum GameIds {
|
||||
declare enum GameId {
|
||||
/**
|
||||
* Initial D The Arcade
|
||||
*/
|
||||
@@ -58,5 +58,6 @@ declare enum GameIds {
|
||||
maimaiDX = "SDEZ",
|
||||
DivaFT = "SBZV"
|
||||
}
|
||||
declare function getGameName(id: GameId): "Initial D The Arcade" | "CHUNITHM" | "CHUNITHM (Paradise Lost)" | "O.N.G.E.K.I" | "maimai DX" | "Project DIVA Future Tone";
|
||||
|
||||
export { type AMCardInRequest, AMNET_API_VERSION, type AMServerConnectionInfo, type AMServerInfoResponse, CARD_ID_REGEX, GameIds, fetchServerInfo, generateCardNumber, performCardIn, validateCardId };
|
||||
export { type AMCardInRequest, AMNET_API_VERSION, type AMServerConnectionInfo, type AMServerInfoResponse, CARD_ID_REGEX, GameId, fetchServerInfo, generateCardNumber, getGameName, performCardIn, validateCardId };
|
||||
|
||||
Vendored
+29
-11
@@ -59,9 +59,10 @@ var src_exports = {};
|
||||
__export(src_exports, {
|
||||
AMNET_API_VERSION: () => AMNET_API_VERSION,
|
||||
CARD_ID_REGEX: () => CARD_ID_REGEX,
|
||||
GameIds: () => GameIds,
|
||||
GameId: () => GameId,
|
||||
fetchServerInfo: () => fetchServerInfo,
|
||||
generateCardNumber: () => generateCardNumber,
|
||||
getGameName: () => getGameName,
|
||||
performCardIn: () => performCardIn,
|
||||
validateCardId: () => validateCardId
|
||||
});
|
||||
@@ -122,22 +123,39 @@ function validateCardId(id) {
|
||||
}
|
||||
|
||||
// src/gameIds.ts
|
||||
var GameIds = /* @__PURE__ */ ((GameIds2) => {
|
||||
GameIds2["IDAC"] = "SDGT";
|
||||
GameIds2["Chuni"] = "SDBT";
|
||||
GameIds2["Chusan"] = "SDHD";
|
||||
GameIds2["ONGEKI"] = "SDDT";
|
||||
GameIds2["maimaiDX"] = "SDEZ";
|
||||
GameIds2["DivaFT"] = "SBZV";
|
||||
return GameIds2;
|
||||
})(GameIds || {});
|
||||
var GameId = /* @__PURE__ */ ((GameId2) => {
|
||||
GameId2["IDAC"] = "SDGT";
|
||||
GameId2["Chuni"] = "SDBT";
|
||||
GameId2["Chusan"] = "SDHD";
|
||||
GameId2["ONGEKI"] = "SDDT";
|
||||
GameId2["maimaiDX"] = "SDEZ";
|
||||
GameId2["DivaFT"] = "SBZV";
|
||||
return GameId2;
|
||||
})(GameId || {});
|
||||
function getGameName(id) {
|
||||
switch (id) {
|
||||
case "SDGT" /* IDAC */:
|
||||
return "Initial D The Arcade";
|
||||
case "SDBT" /* Chuni */:
|
||||
return "CHUNITHM";
|
||||
case "SDHD" /* Chusan */:
|
||||
return "CHUNITHM (Paradise Lost)";
|
||||
case "SDDT" /* ONGEKI */:
|
||||
return "O.N.G.E.K.I";
|
||||
case "SDEZ" /* maimaiDX */:
|
||||
return "maimai DX";
|
||||
case "SBZV" /* DivaFT */:
|
||||
return "Project DIVA Future Tone";
|
||||
}
|
||||
}
|
||||
// Annotate the CommonJS export names for ESM import in node:
|
||||
0 && (module.exports = {
|
||||
AMNET_API_VERSION,
|
||||
CARD_ID_REGEX,
|
||||
GameIds,
|
||||
GameId,
|
||||
fetchServerInfo,
|
||||
generateCardNumber,
|
||||
getGameName,
|
||||
performCardIn,
|
||||
validateCardId
|
||||
});
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+27
-10
@@ -93,21 +93,38 @@ function validateCardId(id) {
|
||||
}
|
||||
|
||||
// src/gameIds.ts
|
||||
var GameIds = /* @__PURE__ */ ((GameIds2) => {
|
||||
GameIds2["IDAC"] = "SDGT";
|
||||
GameIds2["Chuni"] = "SDBT";
|
||||
GameIds2["Chusan"] = "SDHD";
|
||||
GameIds2["ONGEKI"] = "SDDT";
|
||||
GameIds2["maimaiDX"] = "SDEZ";
|
||||
GameIds2["DivaFT"] = "SBZV";
|
||||
return GameIds2;
|
||||
})(GameIds || {});
|
||||
var GameId = /* @__PURE__ */ ((GameId2) => {
|
||||
GameId2["IDAC"] = "SDGT";
|
||||
GameId2["Chuni"] = "SDBT";
|
||||
GameId2["Chusan"] = "SDHD";
|
||||
GameId2["ONGEKI"] = "SDDT";
|
||||
GameId2["maimaiDX"] = "SDEZ";
|
||||
GameId2["DivaFT"] = "SBZV";
|
||||
return GameId2;
|
||||
})(GameId || {});
|
||||
function getGameName(id) {
|
||||
switch (id) {
|
||||
case "SDGT" /* IDAC */:
|
||||
return "Initial D The Arcade";
|
||||
case "SDBT" /* Chuni */:
|
||||
return "CHUNITHM";
|
||||
case "SDHD" /* Chusan */:
|
||||
return "CHUNITHM (Paradise Lost)";
|
||||
case "SDDT" /* ONGEKI */:
|
||||
return "O.N.G.E.K.I";
|
||||
case "SDEZ" /* maimaiDX */:
|
||||
return "maimai DX";
|
||||
case "SBZV" /* DivaFT */:
|
||||
return "Project DIVA Future Tone";
|
||||
}
|
||||
}
|
||||
export {
|
||||
AMNET_API_VERSION,
|
||||
CARD_ID_REGEX,
|
||||
GameIds,
|
||||
GameId,
|
||||
fetchServerInfo,
|
||||
generateCardNumber,
|
||||
getGameName,
|
||||
performCardIn,
|
||||
validateCardId
|
||||
};
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
{"version":3,"sources":["../src/api.ts","../src/card.ts","../src/gameIds.ts"],"sourcesContent":["/**\n * The latest version of the AMNet API this library supports\n */\nexport const AMNET_API_VERSION = 1;\n\nexport interface AMCardInRequest {\n cardId: string;\n}\n\n/**\n * Information needed to perform a request against an AMNet server\n */\nexport interface AMServerConnectionInfo {\n apiVersion: number;\n serverAddress: string;\n}\n\n/**\n * Received metadata from an AMNet server \n */\nexport interface AMServerInfoResponse extends AMServerConnectionInfo {\n serverName: string;\n gameId?: string | null | undefined;\n}\n\n/**\n * Performs the card-in request to the specified server\n * @param server The server to perform the request against\n * @param request The card-in request to send\n * @param signal The abort signal to use for the request\n */\nexport async function performCardIn(server: AMServerConnectionInfo, request: AMCardInRequest, signal: AbortSignal) {\n try {\n const response = await fetch(`${new URL(server.serverAddress).origin}/amnet/signin`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(request),\n signal: signal\n });\n\n return response.ok;\n } catch {\n return false;\n }\n}\n\n/**\n * Attempts to connect to the specified server and fetch its info\n * @param serverAddress The origin address of the server to connect to\n * @param abort The abort signal to use for the request (for cancellation)\n */\nexport async function fetchServerInfo(serverAddress: string, abort: AbortSignal): Promise<AMServerInfoResponse | null> {\n try {\n const response = await fetch(`${new URL(serverAddress).origin}/amnet/info`, {\n signal: abort\n });\n\n return {\n ...await response.json(),\n serverAddress: serverAddress\n } satisfies AMServerInfoResponse;\n } catch {\n return null;\n }\n}\n","export const CARD_ID_REGEX = /^(?:[0-9]{4} ?){5}$/i;\n\nexport function generateCardNumber(): string {\n let cardId = '';\n\n while (true) {\n // don't start with a 3\n const firstDigit = Math.floor(Math.random() * 10);\n\n if (firstDigit !== 3) {\n cardId = firstDigit.toString();\n break;\n }\n }\n\n for (let i = 0; i < 19; i++) {\n cardId += Math.floor(Math.random() * 10).toString();\n }\n\n return cardId;\n}\n\n/**\n * Validates the provided card id by known parameters\n * @param id The card id to validate\n */\nexport function validateCardId(id: string): boolean {\n return id[0] !== '3' && CARD_ID_REGEX.test(id);\n}\n","export enum GameIds {\n /**\n * Initial D The Arcade\n */\n IDAC = \"SDGT\",\n\n /**\n * Chunithm (Paradise Lost)\n */\n Chuni = \"SDBT\",\n\n /**\n * Chunithm NEW onwards\n */\n Chusan = \"SDHD\",\n\n ONGEKI = \"SDDT\",\n maimaiDX = \"SDEZ\",\n DivaFT = \"SBZV\"\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAAM,oBAAoB;AA4BjC,SAAsB,cAAc,QAAgC,SAA0B,QAAqB;AAAA;AAC/G,QAAI;AACA,YAAM,WAAW,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,aAAa,EAAE,MAAM,iBAAiB;AAAA,QACjF,QAAQ;AAAA,QACR,SAAS;AAAA,UACL,gBAAgB;AAAA,QACpB;AAAA,QACA,MAAM,KAAK,UAAU,OAAO;AAAA,QAC5B;AAAA,MACJ,CAAC;AAED,aAAO,SAAS;AAAA,IACpB,SAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AAAA;AAOA,SAAsB,gBAAgB,eAAuB,OAA0D;AAAA;AACnH,QAAI;AACA,YAAM,WAAW,MAAM,MAAM,GAAG,IAAI,IAAI,aAAa,EAAE,MAAM,eAAe;AAAA,QACxE,QAAQ;AAAA,MACZ,CAAC;AAED,aAAO,iCACA,MAAM,SAAS,KAAK,IADpB;AAAA,QAEH;AAAA,MACJ;AAAA,IACJ,SAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AAAA;;;AClEO,IAAM,gBAAgB;AAEtB,SAAS,qBAA6B;AACzC,MAAI,SAAS;AAEb,SAAO,MAAM;AAET,UAAM,aAAa,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE;AAEhD,QAAI,eAAe,GAAG;AAClB,eAAS,WAAW,SAAS;AAC7B;AAAA,IACJ;AAAA,EACJ;AAEA,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AACzB,cAAU,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE,EAAE,SAAS;AAAA,EACtD;AAEA,SAAO;AACX;AAMO,SAAS,eAAe,IAAqB;AAChD,SAAO,GAAG,CAAC,MAAM,OAAO,cAAc,KAAK,EAAE;AACjD;;;AC5BO,IAAK,UAAL,kBAAKA,aAAL;AAIL,EAAAA,SAAA,UAAO;AAKP,EAAAA,SAAA,WAAQ;AAKR,EAAAA,SAAA,YAAS;AAET,EAAAA,SAAA,YAAS;AACT,EAAAA,SAAA,cAAW;AACX,EAAAA,SAAA,YAAS;AAlBC,SAAAA;AAAA,GAAA;","names":["GameIds"]}
|
||||
{"version":3,"sources":["../src/api.ts","../src/card.ts","../src/gameIds.ts"],"sourcesContent":["/**\n * The latest version of the AMNet API this library supports\n */\nexport const AMNET_API_VERSION = 1;\n\nexport interface AMCardInRequest {\n cardId: string;\n}\n\n/**\n * Information needed to perform a request against an AMNet server\n */\nexport interface AMServerConnectionInfo {\n apiVersion: number;\n serverAddress: string;\n}\n\n/**\n * Received metadata from an AMNet server \n */\nexport interface AMServerInfoResponse extends AMServerConnectionInfo {\n serverName: string;\n gameId?: string | null | undefined;\n}\n\n/**\n * Performs the card-in request to the specified server\n * @param server The server to perform the request against\n * @param request The card-in request to send\n * @param signal The abort signal to use for the request\n */\nexport async function performCardIn(server: AMServerConnectionInfo, request: AMCardInRequest, signal: AbortSignal) {\n try {\n const response = await fetch(`${new URL(server.serverAddress).origin}/amnet/signin`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(request),\n signal: signal\n });\n\n return response.ok;\n } catch {\n return false;\n }\n}\n\n/**\n * Attempts to connect to the specified server and fetch its info\n * @param serverAddress The origin address of the server to connect to\n * @param abort The abort signal to use for the request (for cancellation)\n */\nexport async function fetchServerInfo(serverAddress: string, abort: AbortSignal): Promise<AMServerInfoResponse | null> {\n try {\n const response = await fetch(`${new URL(serverAddress).origin}/amnet/info`, {\n signal: abort\n });\n\n return {\n ...await response.json(),\n serverAddress: serverAddress\n } satisfies AMServerInfoResponse;\n } catch {\n return null;\n }\n}\n","export const CARD_ID_REGEX = /^(?:[0-9]{4} ?){5}$/i;\n\nexport function generateCardNumber(): string {\n let cardId = '';\n\n while (true) {\n // don't start with a 3\n const firstDigit = Math.floor(Math.random() * 10);\n\n if (firstDigit !== 3) {\n cardId = firstDigit.toString();\n break;\n }\n }\n\n for (let i = 0; i < 19; i++) {\n cardId += Math.floor(Math.random() * 10).toString();\n }\n\n return cardId;\n}\n\n/**\n * Validates the provided card id by known parameters\n * @param id The card id to validate\n */\nexport function validateCardId(id: string): boolean {\n return id[0] !== '3' && CARD_ID_REGEX.test(id);\n}\n","export enum GameId {\n /**\n * Initial D The Arcade\n */\n IDAC = \"SDGT\",\n\n /**\n * Chunithm (Paradise Lost)\n */\n Chuni = \"SDBT\",\n\n /**\n * Chunithm NEW onwards\n */\n Chusan = \"SDHD\",\n\n ONGEKI = \"SDDT\",\n maimaiDX = \"SDEZ\",\n DivaFT = \"SBZV\"\n}\n\nexport function getGameName(id: GameId) {\n switch (id) {\n case GameId.IDAC:\n return \"Initial D The Arcade\";\n case GameId.Chuni:\n return \"CHUNITHM\";\n case GameId.Chusan:\n return \"CHUNITHM (Paradise Lost)\";\n case GameId.ONGEKI:\n return \"O.N.G.E.K.I\";\n case GameId.maimaiDX:\n return \"maimai DX\";\n case GameId.DivaFT:\n return \"Project DIVA Future Tone\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAAM,oBAAoB;AA4BjC,SAAsB,cAAc,QAAgC,SAA0B,QAAqB;AAAA;AAC/G,QAAI;AACA,YAAM,WAAW,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,aAAa,EAAE,MAAM,iBAAiB;AAAA,QACjF,QAAQ;AAAA,QACR,SAAS;AAAA,UACL,gBAAgB;AAAA,QACpB;AAAA,QACA,MAAM,KAAK,UAAU,OAAO;AAAA,QAC5B;AAAA,MACJ,CAAC;AAED,aAAO,SAAS;AAAA,IACpB,SAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AAAA;AAOA,SAAsB,gBAAgB,eAAuB,OAA0D;AAAA;AACnH,QAAI;AACA,YAAM,WAAW,MAAM,MAAM,GAAG,IAAI,IAAI,aAAa,EAAE,MAAM,eAAe;AAAA,QACxE,QAAQ;AAAA,MACZ,CAAC;AAED,aAAO,iCACA,MAAM,SAAS,KAAK,IADpB;AAAA,QAEH;AAAA,MACJ;AAAA,IACJ,SAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AAAA;;;AClEO,IAAM,gBAAgB;AAEtB,SAAS,qBAA6B;AACzC,MAAI,SAAS;AAEb,SAAO,MAAM;AAET,UAAM,aAAa,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE;AAEhD,QAAI,eAAe,GAAG;AAClB,eAAS,WAAW,SAAS;AAC7B;AAAA,IACJ;AAAA,EACJ;AAEA,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AACzB,cAAU,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE,EAAE,SAAS;AAAA,EACtD;AAEA,SAAO;AACX;AAMO,SAAS,eAAe,IAAqB;AAChD,SAAO,GAAG,CAAC,MAAM,OAAO,cAAc,KAAK,EAAE;AACjD;;;AC5BO,IAAK,SAAL,kBAAKA,YAAL;AAIH,EAAAA,QAAA,UAAO;AAKP,EAAAA,QAAA,WAAQ;AAKR,EAAAA,QAAA,YAAS;AAET,EAAAA,QAAA,YAAS;AACT,EAAAA,QAAA,cAAW;AACX,EAAAA,QAAA,YAAS;AAlBD,SAAAA;AAAA,GAAA;AAqBL,SAAS,YAAY,IAAY;AACpC,UAAQ,IAAI;AAAA,IACR,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,EACf;AACJ;","names":["GameId"]}
|
||||
+34
-17
@@ -1,20 +1,37 @@
|
||||
export enum GameIds {
|
||||
/**
|
||||
* Initial D The Arcade
|
||||
*/
|
||||
IDAC = "SDGT",
|
||||
export enum GameId {
|
||||
/**
|
||||
* Initial D The Arcade
|
||||
*/
|
||||
IDAC = "SDGT",
|
||||
|
||||
/**
|
||||
* Chunithm (Paradise Lost)
|
||||
*/
|
||||
Chuni = "SDBT",
|
||||
/**
|
||||
* Chunithm (Paradise Lost)
|
||||
*/
|
||||
Chuni = "SDBT",
|
||||
|
||||
/**
|
||||
* Chunithm NEW onwards
|
||||
*/
|
||||
Chusan = "SDHD",
|
||||
/**
|
||||
* Chunithm NEW onwards
|
||||
*/
|
||||
Chusan = "SDHD",
|
||||
|
||||
ONGEKI = "SDDT",
|
||||
maimaiDX = "SDEZ",
|
||||
DivaFT = "SBZV"
|
||||
}
|
||||
ONGEKI = "SDDT",
|
||||
maimaiDX = "SDEZ",
|
||||
DivaFT = "SBZV"
|
||||
}
|
||||
|
||||
export function getGameName(id: GameId) {
|
||||
switch (id) {
|
||||
case GameId.IDAC:
|
||||
return "Initial D The Arcade";
|
||||
case GameId.Chuni:
|
||||
return "CHUNITHM";
|
||||
case GameId.Chusan:
|
||||
return "CHUNITHM (Paradise Lost)";
|
||||
case GameId.ONGEKI:
|
||||
return "O.N.G.E.K.I";
|
||||
case GameId.maimaiDX:
|
||||
return "maimai DX";
|
||||
case GameId.DivaFT:
|
||||
return "Project DIVA Future Tone";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user