beatsaber-bot-core 0.2.0-rc.13 → 0.2.0-rc.14
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/dist/cjs/cmd/bind/bind-id-beatleader.js +1 -1
- package/dist/cjs/cmd/bind/bind-id-beatsaver.js +1 -1
- package/dist/cjs/cmd/bind/bind-scoresaber.js +1 -1
- package/dist/cjs/cmd/bind/index.js +4 -4
- package/dist/cjs/cmd/bsmap/id-search.js +2 -2
- package/dist/cjs/cmd/bsmap/key-search.js +1 -1
- package/dist/cjs/cmd/bsmap/latest.js +1 -1
- package/dist/cjs/cmd/deprecated/tmp.js +1 -1
- package/dist/cjs/cmd/index.js +11 -11
- package/dist/cjs/cmd/index.js.map +1 -1
- package/dist/cjs/cmd/rank.js +3 -3
- package/dist/cjs/cmd/score.js +5 -5
- package/dist/cjs/cmd/subscribe/beatleader.js +1 -1
- package/dist/cjs/cmd/subscribe/beatsaver.js +1 -1
- package/dist/cjs/cmd/subscribe/id-beatleader-score.js +1 -1
- package/dist/cjs/cmd/subscribe/id-beatsaver-mapper.js +1 -1
- package/dist/cjs/cmd/subscribe/index.js +5 -5
- package/dist/cjs/cmd/subscribe/subjoin.js +2 -2
- package/dist/cjs/cmd/subscribe/subleave.js +1 -1
- package/dist/cjs/cmd/subscribe/unsubscribe.js +2 -2
- package/dist/cjs/components/components/RankDifficulty.js +1 -1
- package/dist/cjs/components/components/bl-rank-score-item.js +3 -3
- package/dist/cjs/components/components/bl-score-item.js +1 -1
- package/dist/cjs/components/components/bl-score-item.js.map +1 -1
- package/dist/cjs/components/components/flag.js +1 -1
- package/dist/cjs/components/components/icons/RankIcon.js +2 -2
- package/dist/cjs/components/components/scoreItem.js +1 -1
- package/dist/cjs/components/components/scoreItem.js.map +1 -1
- package/dist/cjs/components/components/scoregraph.js +2 -2
- package/dist/cjs/components/components/ss-rank-score-item.js +3 -3
- package/dist/cjs/components/components/ss-score-item.js +1 -1
- package/dist/cjs/components/components/ss-score-item.js.map +1 -1
- package/dist/cjs/components/index.js +1 -1
- package/dist/cjs/components/pages/bl-player.js +5 -5
- package/dist/cjs/components/pages/bl-score-with-rank.js +6 -6
- package/dist/cjs/components/pages/bl-score.js +2 -2
- package/dist/cjs/components/pages/bs-map.js +3 -3
- package/dist/cjs/components/pages/index.js +4 -4
- package/dist/cjs/components/pages/ss-player.js +2 -2
- package/dist/cjs/components/utils/format.js +4 -4
- package/dist/cjs/components/utils/format.js.map +1 -1
- package/dist/cjs/config.js +39 -0
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/infra/index.js +3 -3
- package/dist/cjs/infra/index.js.map +1 -1
- package/dist/cjs/infra/s3/index.js +34 -3
- package/dist/cjs/infra/s3/index.js.map +1 -1
- package/dist/cjs/infra/support/fetch/index.js +13 -4
- package/dist/cjs/infra/support/fetch/index.js.map +1 -1
- package/dist/cjs/infra/support/fetch/ofetch.js +5 -12
- package/dist/cjs/infra/support/fetch/ofetch.js.map +1 -1
- package/dist/cjs/infra/support/render/index.js +48 -14
- package/dist/cjs/infra/support/render/index.js.map +1 -1
- package/dist/cjs/interface/cmd/builder.js +1 -1
- package/dist/cjs/schedules/index.js +3 -2
- package/dist/cjs/schedules/index.js.map +1 -1
- package/dist/cjs/service/api/base/aioclient.js +1 -1
- package/dist/cjs/service/api/base/blclient.js +1 -1
- package/dist/cjs/service/api/base/bsclient.js +2 -2
- package/dist/cjs/service/api/base/ssclient.js +2 -2
- package/dist/cjs/service/api/index.js +14 -5
- package/dist/cjs/service/api/index.js.map +1 -1
- package/dist/cjs/service/render/index.js +21 -8
- package/dist/cjs/service/render/index.js.map +1 -1
- package/dist/cjs/ws/beatsaver.js +1 -1
- package/dist/esm/cmd/bind/bind-id-beatleader.js +1 -1
- package/dist/esm/cmd/bind/bind-id-beatsaver.js +1 -1
- package/dist/esm/cmd/bind/bind-scoresaber.js +1 -1
- package/dist/esm/cmd/bind/index.js +5 -5
- package/dist/esm/cmd/bsmap/id-search.js +2 -2
- package/dist/esm/cmd/bsmap/key-search.js +1 -1
- package/dist/esm/cmd/bsmap/latest.js +1 -1
- package/dist/esm/cmd/deprecated/tmp.js +1 -1
- package/dist/esm/cmd/index.js +11 -11
- package/dist/esm/cmd/index.js.map +1 -1
- package/dist/esm/cmd/rank.js +3 -3
- package/dist/esm/cmd/score.js +5 -5
- package/dist/esm/cmd/subscribe/beatleader.js +1 -1
- package/dist/esm/cmd/subscribe/beatsaver.js +1 -1
- package/dist/esm/cmd/subscribe/id-beatleader-score.js +1 -1
- package/dist/esm/cmd/subscribe/id-beatsaver-mapper.js +1 -1
- package/dist/esm/cmd/subscribe/index.js +5 -5
- package/dist/esm/cmd/subscribe/subjoin.js +2 -2
- package/dist/esm/cmd/subscribe/subleave.js +1 -1
- package/dist/esm/cmd/subscribe/unsubscribe.js +2 -2
- package/dist/esm/components/components/RankDifficulty.js +1 -1
- package/dist/esm/components/components/bl-rank-score-item.js +2 -2
- package/dist/esm/components/components/bl-score-item.js +2 -2
- package/dist/esm/components/components/bl-score-item.js.map +1 -1
- package/dist/esm/components/components/icons/RankIcon.js +2 -2
- package/dist/esm/components/components/scoreItem.js +1 -1
- package/dist/esm/components/components/scoreItem.js.map +1 -1
- package/dist/esm/components/components/scoregraph.js +3 -3
- package/dist/esm/components/components/socre-badge.js +1 -1
- package/dist/esm/components/components/ss-rank-score-item.js +2 -2
- package/dist/esm/components/components/ss-score-item.js +2 -2
- package/dist/esm/components/components/ss-score-item.js.map +1 -1
- package/dist/esm/components/pages/bl-player.js +7 -7
- package/dist/esm/components/pages/bl-score-with-rank.js +6 -6
- package/dist/esm/components/pages/bl-score.js +3 -3
- package/dist/esm/components/pages/bs-map.js +5 -5
- package/dist/esm/components/pages/index.js +5 -5
- package/dist/esm/components/pages/ss-player.js +3 -3
- package/dist/esm/components/utils/bl/bsorReplayAcc.js +2 -2
- package/dist/esm/components/utils/format.js +3 -3
- package/dist/esm/components/utils/format.js.map +1 -1
- package/dist/esm/components/utils/index.js +2 -2
- package/dist/esm/config.js +31 -0
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/index.js +10 -10
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/infra/i18n/index.js +2 -2
- package/dist/esm/infra/index.js +5 -5
- package/dist/esm/infra/index.js.map +1 -1
- package/dist/esm/infra/s3/index.js +31 -1
- package/dist/esm/infra/s3/index.js.map +1 -1
- package/dist/esm/infra/support/fetch/index.js +16 -7
- package/dist/esm/infra/support/fetch/index.js.map +1 -1
- package/dist/esm/infra/support/fetch/ofetch.js +4 -10
- package/dist/esm/infra/support/fetch/ofetch.js.map +1 -1
- package/dist/esm/infra/support/render/index.js +47 -13
- package/dist/esm/infra/support/render/index.js.map +1 -1
- package/dist/esm/interface/cmd/builder.js +1 -1
- package/dist/esm/interface/index.js +4 -4
- package/dist/esm/schedules/index.js +4 -3
- package/dist/esm/schedules/index.js.map +1 -1
- package/dist/esm/service/api/base/aioclient.js +1 -1
- package/dist/esm/service/api/base/blclient.js +1 -1
- package/dist/esm/service/api/base/bsclient.js +2 -2
- package/dist/esm/service/api/base/index.js +4 -4
- package/dist/esm/service/api/base/ssclient.js +2 -2
- package/dist/esm/service/api/index.js +16 -7
- package/dist/esm/service/api/index.js.map +1 -1
- package/dist/esm/service/api/interfaces/beatleader/index.js +5 -5
- package/dist/esm/service/api/interfaces/beatsaver/index.js +5 -5
- package/dist/esm/service/api/interfaces/scoresaber/index.js +3 -3
- package/dist/esm/service/index.js +2 -2
- package/dist/esm/service/render/index.js +22 -9
- package/dist/esm/service/render/index.js.map +1 -1
- package/dist/esm/ws/beatsaver.js +1 -1
- package/dist/esm/ws/index.js +3 -3
- package/dist/types/index.d.ts +205 -123
- package/package.json +17 -7
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/utils/format.ts"],"sourcesContent":["import dayjs from 'dayjs'\nimport duration from 'dayjs/plugin/duration'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport zh from 'dayjs/locale/zh-cn'\ndayjs.extend(duration)\ndayjs.extend(relativeTime)\nexport const formatDuration = (duration: number) => {\n const d = dayjs.duration(duration, 'second')\n return d.format('m[m]s[s]')\n}\n\n// export const formatDuration = (duration: number) => {\n// return dayjs.duration(duration,'seconds').format('mm:ss')\n// }\n\nexport const formatTime = (time: string) => {\n return dayjs(time).locale(zh).fromNow()\n}\n\nexport function formatRelativeTimeByDay(time: string | number | Date) {\n let res = dayjs().diff(dayjs(time), 'd')\n let unit = 'd'\n if (res <= 0) {\n res = dayjs().diff(dayjs(time), 'h')\n unit = 'h'\n }\n if (res <= 0) {\n res = dayjs().diff(dayjs(time), 'm')\n unit = 'm'\n }\n return `${res}${unit}`\n}\n\nexport const formatNumber = (number: number) => {\n // 1.11w\n try {\n if (number > 10000) {\n return `${(number / 10000.0).toFixed(2)}w`\n }\n // 1.11k\n if (number > 1000) {\n return `${(number / 1000.0).toFixed(2)}k`\n }\n return number.toString()\n } catch (e) {\n return '0'\n }\n}\n\nexport function numberWithCommas(x: number) {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n}\nexport const formatDate = (time: Date | undefined, template?: string) => {\n if (!time) return undefined\n return dayjs(time).format(template ?? 'YYYY-MM-DD')\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAAqB;AACrB,0BAAyB;AACzB,mBAAe;AACf,aAAAA,QAAM,OAAO,gBAAAC,OAAQ;AACrB,aAAAD,QAAM,OAAO,oBAAAE,OAAY;AAClB,MAAM,iBAAiB,CAACD,cAAqB;AAClD,QAAM,IAAI,aAAAD,QAAM,SAASC,WAAU,QAAQ;AAC3C,SAAO,EAAE,OAAO,UAAU;AAC5B;AAMO,MAAM,aAAa,CAAC,SAAiB;AAC1C,aAAO,aAAAD,SAAM,IAAI,EAAE,OAAO,aAAAG,OAAE,EAAE,QAAQ;AACxC;AAEO,SAAS,wBAAwB,MAA8B;AACpE,MAAI,UAAM,aAAAH,SAAM,EAAE,SAAK,aAAAA,SAAM,IAAI,GAAG,GAAG;AACvC,MAAI,OAAO;AACX,MAAI,OAAO,GAAG;AACZ,cAAM,aAAAA,SAAM,EAAE,SAAK,aAAAA,SAAM,IAAI,GAAG,GAAG;AACnC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,GAAG;AACZ,cAAM,aAAAA,SAAM,EAAE,SAAK,aAAAA,SAAM,IAAI,GAAG,GAAG;AACnC,WAAO;AAAA,EACT;AACA,SAAO,GAAG,GAAG,GAAG,IAAI;AACtB;AAEO,MAAM,eAAe,CAAC,WAAmB;AAE9C,MAAI;AACF,QAAI,SAAS,KAAO;AAClB,aAAO,IAAI,SAAS,KAAS,QAAQ,CAAC,CAAC;AAAA,IACzC;AAEA,QAAI,SAAS,KAAM;AACjB,aAAO,IAAI,SAAS,KAAQ,QAAQ,CAAC,CAAC;AAAA,IACxC;AACA,WAAO,OAAO,SAAS;AAAA,EACzB,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEO,SAAS,iBAAiB,GAAW;AAC1C,SAAO,EAAE,SAAS,EAAE,QAAQ,yBAAyB,GAAG;AAC1D;AACO,MAAM,aAAa,CAAC,MAAwB,aAAsB;AACvE,MAAI,CAAC,KAAM,QAAO;AAClB,aAAO,aAAAA,SAAM,IAAI,EAAE,OAAO,8BAAY,YAAY;AACpD;","names":["dayjs","duration","relativeTime","zh"]}
|
1
|
+
{"version":3,"sources":["../../../../src/components/utils/format.ts"],"sourcesContent":["import dayjs from 'dayjs'\nimport duration from 'dayjs/plugin/duration.js'\nimport relativeTime from 'dayjs/plugin/relativeTime.js'\nimport zh from 'dayjs/locale/zh-cn.js'\ndayjs.extend(duration)\ndayjs.extend(relativeTime)\nexport const formatDuration = (duration: number) => {\n const d = dayjs.duration(duration, 'second')\n return d.format('m[m]s[s]')\n}\n\n// export const formatDuration = (duration: number) => {\n// return dayjs.duration(duration,'seconds').format('mm:ss')\n// }\n\nexport const formatTime = (time: string) => {\n return dayjs(time).locale(zh).fromNow()\n}\n\nexport function formatRelativeTimeByDay(time: string | number | Date) {\n let res = dayjs().diff(dayjs(time), 'd')\n let unit = 'd'\n if (res <= 0) {\n res = dayjs().diff(dayjs(time), 'h')\n unit = 'h'\n }\n if (res <= 0) {\n res = dayjs().diff(dayjs(time), 'm')\n unit = 'm'\n }\n return `${res}${unit}`\n}\n\nexport const formatNumber = (number: number) => {\n // 1.11w\n try {\n if (number > 10000) {\n return `${(number / 10000.0).toFixed(2)}w`\n }\n // 1.11k\n if (number > 1000) {\n return `${(number / 1000.0).toFixed(2)}k`\n }\n return number.toString()\n } catch (e) {\n return '0'\n }\n}\n\nexport function numberWithCommas(x: number) {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n}\nexport const formatDate = (time: Date | undefined, template?: string) => {\n if (!time) return undefined\n return dayjs(time).format(template ?? 'YYYY-MM-DD')\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAAqB;AACrB,0BAAyB;AACzB,mBAAe;AACf,aAAAA,QAAM,OAAO,gBAAAC,OAAQ;AACrB,aAAAD,QAAM,OAAO,oBAAAE,OAAY;AAClB,MAAM,iBAAiB,CAACD,cAAqB;AAClD,QAAM,IAAI,aAAAD,QAAM,SAASC,WAAU,QAAQ;AAC3C,SAAO,EAAE,OAAO,UAAU;AAC5B;AAMO,MAAM,aAAa,CAAC,SAAiB;AAC1C,aAAO,aAAAD,SAAM,IAAI,EAAE,OAAO,aAAAG,OAAE,EAAE,QAAQ;AACxC;AAEO,SAAS,wBAAwB,MAA8B;AACpE,MAAI,UAAM,aAAAH,SAAM,EAAE,SAAK,aAAAA,SAAM,IAAI,GAAG,GAAG;AACvC,MAAI,OAAO;AACX,MAAI,OAAO,GAAG;AACZ,cAAM,aAAAA,SAAM,EAAE,SAAK,aAAAA,SAAM,IAAI,GAAG,GAAG;AACnC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,GAAG;AACZ,cAAM,aAAAA,SAAM,EAAE,SAAK,aAAAA,SAAM,IAAI,GAAG,GAAG;AACnC,WAAO;AAAA,EACT;AACA,SAAO,GAAG,GAAG,GAAG,IAAI;AACtB;AAEO,MAAM,eAAe,CAAC,WAAmB;AAE9C,MAAI;AACF,QAAI,SAAS,KAAO;AAClB,aAAO,IAAI,SAAS,KAAS,QAAQ,CAAC,CAAC;AAAA,IACzC;AAEA,QAAI,SAAS,KAAM;AACjB,aAAO,IAAI,SAAS,KAAQ,QAAQ,CAAC,CAAC;AAAA,IACxC;AACA,WAAO,OAAO,SAAS;AAAA,EACzB,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEO,SAAS,iBAAiB,GAAW;AAC1C,SAAO,EAAE,SAAS,EAAE,QAAQ,yBAAyB,GAAG;AAC1D;AACO,MAAM,aAAa,CAAC,MAAwB,aAAsB;AACvE,MAAI,CAAC,KAAM,QAAO;AAClB,aAAO,aAAAA,SAAM,IAAI,EAAE,OAAO,8BAAY,YAAY;AACpD;","names":["dayjs","duration","relativeTime","zh"]}
|
package/dist/cjs/config.js
CHANGED
@@ -2,6 +2,10 @@ var __defProp = Object.defineProperty;
|
|
2
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
5
|
+
var __export = (target, all) => {
|
6
|
+
for (var name in all)
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
8
|
+
};
|
5
9
|
var __copyProps = (to, from, except, desc) => {
|
6
10
|
if (from && typeof from === "object" || typeof from === "function") {
|
7
11
|
for (let key of __getOwnPropNames(from))
|
@@ -12,5 +16,40 @@ var __copyProps = (to, from, except, desc) => {
|
|
12
16
|
};
|
13
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
14
18
|
var config_exports = {};
|
19
|
+
__export(config_exports, {
|
20
|
+
configSchema: () => configSchema
|
21
|
+
});
|
15
22
|
module.exports = __toCommonJS(config_exports);
|
23
|
+
var import_infra = require("@/infra");
|
24
|
+
var import_v4 = require("zod/v4");
|
25
|
+
const cronSchema = import_v4.z.object({
|
26
|
+
enabled: import_v4.z.boolean().optional().default(false),
|
27
|
+
cron: import_v4.z.string().optional()
|
28
|
+
}).optional().default({ enabled: false });
|
29
|
+
const configSchema = import_v4.z.object({
|
30
|
+
s3: import_infra.s3ConfigSchema.default({ enabled: false }).optional(),
|
31
|
+
render: import_infra.renderSchema,
|
32
|
+
beatsaver: import_v4.z.object({
|
33
|
+
host: import_v4.z.string().default("https://api.beatsaver.com").optional(),
|
34
|
+
wsURL: import_v4.z.string().default("wss://ws.beatsaver.com/maps").optional(),
|
35
|
+
oauthClientId: import_v4.z.string().optional(),
|
36
|
+
oauthClientSecret: import_v4.z.string().optional()
|
37
|
+
}).default({
|
38
|
+
host: "https://api.beatsaver.com",
|
39
|
+
wsURL: "wss://ws.beatsaver.com/maps"
|
40
|
+
}).optional(),
|
41
|
+
beatleader: import_v4.z.object({
|
42
|
+
oauthClientId: import_v4.z.string().optional(),
|
43
|
+
oauthClientSecret: import_v4.z.string().optional()
|
44
|
+
}).default({}).optional(),
|
45
|
+
cron: import_v4.z.object({
|
46
|
+
temp: cronSchema
|
47
|
+
}).default({
|
48
|
+
temp: { enabled: false }
|
49
|
+
}).optional()
|
50
|
+
});
|
51
|
+
// Annotate the CommonJS export names for ESM import in node:
|
52
|
+
0 && (module.exports = {
|
53
|
+
configSchema
|
54
|
+
});
|
16
55
|
//# sourceMappingURL=config.js.map
|
package/dist/cjs/config.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/config.ts"],"sourcesContent":["import
|
1
|
+
{"version":3,"sources":["../../src/config.ts"],"sourcesContent":["import { renderSchema, s3ConfigSchema } from '@/infra'\nimport {z} from 'zod/v4'\n\nconst cronSchema = z.object({\n enabled: z.boolean().optional().default(false),\n cron: z.string().optional(),\n}).optional().default({ enabled: false })\n\nexport const configSchema = z.object({\n s3: s3ConfigSchema.default({ enabled: false }).optional(),\n render: renderSchema,\n beatsaver: z.object({\n host: z.string().default('https://api.beatsaver.com').optional(),\n wsURL: z.string().default('wss://ws.beatsaver.com/maps').optional(),\n oauthClientId: z.string().optional(),\n oauthClientSecret: z.string().optional(),\n }).default({\n host: 'https://api.beatsaver.com',\n wsURL: 'wss://ws.beatsaver.com/maps',\n }).optional(),\n beatleader: z.object({\n oauthClientId: z.string().optional(),\n oauthClientSecret: z.string().optional(),\n }).default({}).optional(),\n cron: z.object({\n temp: cronSchema,\n }).default({\n temp: {enabled: false},\n }).optional()\n})\n\nexport type Config = z.infer<typeof configSchema>\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6C;AAC7C,gBAAgB;AAEhB,MAAM,aAAa,YAAE,OAAO;AAAA,EAC1B,SAAS,YAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK;AAAA,EAC7C,MAAM,YAAE,OAAO,EAAE,SAAS;AAC5B,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,MAAM,CAAC;AAEjC,MAAM,eAAe,YAAE,OAAO;AAAA,EACnC,IAAI,4BAAe,QAAQ,EAAE,SAAS,MAAM,CAAC,EAAE,SAAS;AAAA,EACxD,QAAQ;AAAA,EACR,WAAW,YAAE,OAAO;AAAA,IAClB,MAAM,YAAE,OAAO,EAAE,QAAQ,2BAA2B,EAAE,SAAS;AAAA,IAC/D,OAAO,YAAE,OAAO,EAAE,QAAQ,6BAA6B,EAAE,SAAS;AAAA,IAClE,eAAe,YAAE,OAAO,EAAE,SAAS;AAAA,IACnC,mBAAmB,YAAE,OAAO,EAAE,SAAS;AAAA,EACzC,CAAC,EAAE,QAAQ;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACT,CAAC,EAAE,SAAS;AAAA,EACZ,YAAY,YAAE,OAAO;AAAA,IACnB,eAAe,YAAE,OAAO,EAAE,SAAS;AAAA,IACnC,mBAAmB,YAAE,OAAO,EAAE,SAAS;AAAA,EACzC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS;AAAA,EACxB,MAAM,YAAE,OAAO;AAAA,IACb,MAAM;AAAA,EACR,CAAC,EAAE,QAAQ;AAAA,IACT,MAAM,EAAC,SAAS,MAAK;AAAA,EACvB,CAAC,EAAE,SAAS;AACd,CAAC;","names":[]}
|
package/dist/cjs/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {botCommands} from \"./cmd\";\nimport {getScheduleTasks} from \"./schedules\";\nimport {Config} from \"./config\";\n\nexport * from './interface'\nexport * from './schedules'\nexport * from './config'\nexport * from './cmd'\nexport * from './ws'\nexport * from './utils'\nexport * from './service'\nexport * from './infra'\n\nexport const getBot = <T>(config: Config) => ({\n commands: botCommands<T>(),\n schedule: getScheduleTasks(config),\n})\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA0B;AAC1B,uBAA+B;AAG/B,0BAAc,wBAJd;AAKA,0BAAc,wBALd;AAMA,0BAAc,qBANd;AAOA,0BAAc,kBAPd;AAQA,0BAAc,iBARd;AASA,0BAAc,oBATd;AAUA,0BAAc,sBAVd;AAWA,0BAAc,oBAXd;AAaO,MAAM,SAAS,CAAI,YAAoB;AAAA,EAC5C,cAAU,wBAAe;AAAA,EACzB,cAAU,mCAAiB,MAAM;AACnC;","names":[]}
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {botCommands} from \"./cmd\";\nimport {getScheduleTasks} from \"./schedules\";\nimport type {Config} from \"./config\";\n\nexport * from './interface'\nexport * from './schedules'\nexport * from './config'\nexport * from './cmd'\nexport * from './ws'\nexport * from './utils'\nexport * from './service'\nexport * from './infra'\n\nexport const getBot = <T>(config: Config) => ({\n commands: botCommands<T>(),\n schedule: getScheduleTasks(config),\n})\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA0B;AAC1B,uBAA+B;AAG/B,0BAAc,wBAJd;AAKA,0BAAc,wBALd;AAMA,0BAAc,qBANd;AAOA,0BAAc,kBAPd;AAQA,0BAAc,iBARd;AASA,0BAAc,oBATd;AAUA,0BAAc,sBAVd;AAWA,0BAAc,oBAXd;AAaO,MAAM,SAAS,CAAI,YAAoB;AAAA,EAC5C,cAAU,wBAAe;AAAA,EACzB,cAAU,mCAAiB,MAAM;AACnC;","names":[]}
|
package/dist/cjs/infra/index.js
CHANGED
@@ -19,8 +19,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
19
19
|
var infra_exports = {};
|
20
20
|
__export(infra_exports, {
|
21
21
|
I18nService: () => import_i18n.I18nService,
|
22
|
-
|
23
|
-
|
22
|
+
S3Service: () => import_s3.S3Service,
|
23
|
+
s3ConfigSchema: () => import_s3.s3ConfigSchema
|
24
24
|
});
|
25
25
|
module.exports = __toCommonJS(infra_exports);
|
26
26
|
__reExport(infra_exports, require("./support/render"), module.exports);
|
@@ -29,8 +29,8 @@ var import_s3 = require("./s3");
|
|
29
29
|
// Annotate the CommonJS export names for ESM import in node:
|
30
30
|
0 && (module.exports = {
|
31
31
|
I18nService,
|
32
|
-
S3Config,
|
33
32
|
S3Service,
|
33
|
+
s3ConfigSchema,
|
34
34
|
...require("./support/render")
|
35
35
|
});
|
36
36
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/infra/index.ts"],"sourcesContent":["export * from './support/render'\nexport { I18nService } from './i18n'\nexport { S3Service, S3Config } from './s3'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAc,6BAAd;AACA,kBAA4B;AAC5B,
|
1
|
+
{"version":3,"sources":["../../../src/infra/index.ts"],"sourcesContent":["export * from './support/render'\nexport { I18nService } from './i18n'\nexport { S3Service, type S3Config, s3ConfigSchema } from './s3'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAc,6BAAd;AACA,kBAA4B;AAC5B,gBAAyD;","names":[]}
|
@@ -2,9 +2,22 @@ var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
5
6
|
var __getProtoOf = Object.getPrototypeOf;
|
6
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
7
9
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
10
|
+
var __spreadValues = (a, b) => {
|
11
|
+
for (var prop in b || (b = {}))
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
14
|
+
if (__getOwnPropSymbols)
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
16
|
+
if (__propIsEnum.call(b, prop))
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
18
|
+
}
|
19
|
+
return a;
|
20
|
+
};
|
8
21
|
var __export = (target, all) => {
|
9
22
|
for (var name in all)
|
10
23
|
__defProp(target, name, { get: all[name], enumerable: true });
|
@@ -49,11 +62,27 @@ var __async = (__this, __arguments, generator) => {
|
|
49
62
|
};
|
50
63
|
var s3_exports = {};
|
51
64
|
__export(s3_exports, {
|
52
|
-
S3Service: () => S3Service
|
65
|
+
S3Service: () => S3Service,
|
66
|
+
s3ConfigSchema: () => s3ConfigSchema,
|
67
|
+
strictS3ConfigSchema: () => strictS3ConfigSchema
|
53
68
|
});
|
54
69
|
module.exports = __toCommonJS(s3_exports);
|
55
70
|
var import_client_s3 = require("@aws-sdk/client-s3");
|
56
|
-
var import_crypto = __toESM(require("crypto"));
|
71
|
+
var import_crypto = __toESM(require("crypto"), 1);
|
72
|
+
var import_v4 = require("zod/v4");
|
73
|
+
const strictS3ConfigSchema = import_v4.z.object({
|
74
|
+
s3AccessKey: import_v4.z.string(),
|
75
|
+
s3SecretKey: import_v4.z.string(),
|
76
|
+
endpoint: import_v4.z.string(),
|
77
|
+
baseURL: import_v4.z.string(),
|
78
|
+
bucketName: import_v4.z.string(),
|
79
|
+
region: import_v4.z.string().optional(),
|
80
|
+
keyPrefix: import_v4.z.string().optional()
|
81
|
+
});
|
82
|
+
const s3ConfigSchema = import_v4.z.discriminatedUnion("enabled", [
|
83
|
+
import_v4.z.object(__spreadValues({ enabled: import_v4.z.literal(true) }, strictS3ConfigSchema.shape)),
|
84
|
+
import_v4.z.object({ enabled: import_v4.z.literal(false) })
|
85
|
+
]);
|
57
86
|
class S3Service {
|
58
87
|
constructor(config) {
|
59
88
|
__publicField(this, "s3Client");
|
@@ -109,6 +138,8 @@ class S3Service {
|
|
109
138
|
}
|
110
139
|
// Annotate the CommonJS export names for ESM import in node:
|
111
140
|
0 && (module.exports = {
|
112
|
-
S3Service
|
141
|
+
S3Service,
|
142
|
+
s3ConfigSchema,
|
143
|
+
strictS3ConfigSchema
|
113
144
|
});
|
114
145
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/infra/s3/index.ts"],"sourcesContent":["import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'\nimport crypto from 'crypto'\n\nexport interface S3Config {\n s3AccessKey: string\n s3SecretKey: string\n endpoint: string\n region
|
1
|
+
{"version":3,"sources":["../../../../src/infra/s3/index.ts"],"sourcesContent":["import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'\nimport crypto from 'crypto'\nimport {z} from \"zod/v4\";\n\nexport interface S3Config {\n s3AccessKey: string\n s3SecretKey: string\n endpoint: string\n region?: string\n bucketName: string\n keyPrefix?: string\n baseURL: string\n}\n\n\n\nexport const strictS3ConfigSchema = z.object({\n s3AccessKey: z.string(),\n s3SecretKey: z.string(),\n endpoint: z.string(),\n baseURL: z.string(),\n bucketName: z.string(),\n region: z.string().optional(),\n keyPrefix: z.string().optional(),\n})\n\nexport const s3ConfigSchema = z.discriminatedUnion('enabled', [\n z.object({ enabled: z.literal(true), ...strictS3ConfigSchema.shape }),\n z.object({ enabled: z.literal(false),}),\n])\n\nexport class S3Service {\n private s3Client: S3Client\n private readonly bucket: string\n private readonly keyPrefix: string = ''\n private readonly baseURL: string = ''\n constructor(config: S3Config) {\n const s3 = new S3Client({\n region: config.region ?? 'auto',\n endpoint: config.endpoint,\n credentials: {\n accessKeyId: config.s3AccessKey,\n secretAccessKey: config.s3SecretKey,\n },\n })\n this.bucket = config.bucketName\n this.keyPrefix = config.keyPrefix\n this.baseURL = config.baseURL\n this.s3Client = s3\n }\n async uploadImgWithUrl(url: string, mimeType?: string): Promise<string> {\n const res = await fetch(url).then((it) => it.arrayBuffer())\n const buf = Buffer.from(res)\n // @ts-ignore\n const md5 = crypto.createHash('md5').update(buf).digest('hex')\n const key = this.keyPrefix ? `${this.keyPrefix}-${md5}` : md5\n const params = {\n Bucket: this.bucket,\n Key: key,\n Body: buf,\n ContentType: mimeType ?? 'image/png',\n }\n const command = new PutObjectCommand(params)\n const data = await this.s3Client.send(command)\n return `${this.baseURL}${key}`\n }\n async uploadImg(buffer: Buffer, mimeType?: string): Promise<string> {\n // md5 digest\n // @ts-ignore\n const md5 = crypto.createHash('md5').update(buffer).digest('hex')\n const key = this.keyPrefix ? `${this.keyPrefix}-${md5}` : md5\n const params = {\n Bucket: this.bucket,\n Key: key,\n Body: buffer,\n ContentType: mimeType ?? 'image/png',\n }\n const command = new PutObjectCommand(params)\n const data = await this.s3Client.send(command)\n return `${this.baseURL}${key}`\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA2C;AAC3C,oBAAmB;AACnB,gBAAgB;AAcT,MAAM,uBAAuB,YAAE,OAAO;AAAA,EAC3C,aAAa,YAAE,OAAO;AAAA,EACtB,aAAa,YAAE,OAAO;AAAA,EACtB,UAAU,YAAE,OAAO;AAAA,EACnB,SAAS,YAAE,OAAO;AAAA,EAClB,YAAY,YAAE,OAAO;AAAA,EACrB,QAAQ,YAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,WAAW,YAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAEM,MAAM,iBAAiB,YAAE,mBAAmB,WAAW;AAAA,EAC5D,YAAE,OAAO,iBAAE,SAAS,YAAE,QAAQ,IAAI,KAAM,qBAAqB,MAAO;AAAA,EACpE,YAAE,OAAO,EAAE,SAAS,YAAE,QAAQ,KAAK,EAAE,CAAC;AACxC,CAAC;AAEM,MAAM,UAAU;AAAA,EAKrB,YAAY,QAAkB;AAJ9B,wBAAQ;AACR,wBAAiB;AACjB,wBAAiB,aAAoB;AACrC,wBAAiB,WAAkB;AAnCrC;AAqCI,UAAM,KAAK,IAAI,0BAAS;AAAA,MACtB,SAAQ,YAAO,WAAP,YAAiB;AAAA,MACzB,UAAU,OAAO;AAAA,MACjB,aAAa;AAAA,QACX,aAAa,OAAO;AAAA,QACpB,iBAAiB,OAAO;AAAA,MAC1B;AAAA,IACF,CAAC;AACD,SAAK,SAAS,OAAO;AACrB,SAAK,YAAY,OAAO;AACxB,SAAK,UAAU,OAAO;AACtB,SAAK,WAAW;AAAA,EAClB;AAAA,EACM,iBAAiB,KAAa,UAAoC;AAAA;AACtE,YAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC;AAC1D,YAAM,MAAM,OAAO,KAAK,GAAG;AAE3B,YAAM,MAAM,cAAAA,QAAO,WAAW,KAAK,EAAE,OAAO,GAAG,EAAE,OAAO,KAAK;AAC7D,YAAM,MAAM,KAAK,YAAY,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK;AAC1D,YAAM,SAAS;AAAA,QACb,QAAQ,KAAK;AAAA,QACb,KAAK;AAAA,QACL,MAAM;AAAA,QACN,aAAa,8BAAY;AAAA,MAC3B;AACA,YAAM,UAAU,IAAI,kCAAiB,MAAM;AAC3C,YAAM,OAAO,MAAM,KAAK,SAAS,KAAK,OAAO;AAC7C,aAAO,GAAG,KAAK,OAAO,GAAG,GAAG;AAAA,IAC9B;AAAA;AAAA,EACM,UAAU,QAAgB,UAAoC;AAAA;AAGlE,YAAM,MAAM,cAAAA,QAAO,WAAW,KAAK,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK;AAChE,YAAM,MAAM,KAAK,YAAY,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK;AAC1D,YAAM,SAAS;AAAA,QACb,QAAQ,KAAK;AAAA,QACb,KAAK;AAAA,QACL,MAAM;AAAA,QACN,aAAa,8BAAY;AAAA,MAC3B;AACA,YAAM,UAAU,IAAI,kCAAiB,MAAM;AAC3C,YAAM,OAAO,MAAM,KAAK,SAAS,KAAK,OAAO;AAC7C,aAAO,GAAG,KAAK,OAAO,GAAG,GAAG;AAAA,IAC9B;AAAA;AACF;","names":["crypto"]}
|
@@ -31,20 +31,29 @@ const rofetch = (0, import_ofetch.createFetch)({
|
|
31
31
|
retryDelay: 400
|
32
32
|
}
|
33
33
|
});
|
34
|
-
const ofetch = new import_ofetch.Fetch(
|
34
|
+
const ofetch = new import_ofetch.Fetch();
|
35
35
|
const createFetch = (logger) => {
|
36
36
|
return ofetch.extend({
|
37
37
|
onRequest: (context) => {
|
38
38
|
logger.debug(`[fetch -->] ${context.options.baseURL}${context.request}`);
|
39
|
+
logger.debug(`[fetch -->] ${JSON.stringify(context.options, null, 2)}`);
|
39
40
|
},
|
40
41
|
onResponse: (context) => {
|
41
42
|
logger.debug(`[fetch <--] ${context.request} ${context.response.status}`);
|
43
|
+
switch (context.options.responseType) {
|
44
|
+
case "text":
|
45
|
+
logger.debug(`[fetch <--] ${context.response._data}`);
|
46
|
+
break;
|
47
|
+
case "json":
|
48
|
+
logger.debug(`[fetch -->] ${JSON.stringify(context.response._data, null, 2)}`);
|
49
|
+
break;
|
50
|
+
}
|
42
51
|
},
|
43
|
-
onResponseError
|
44
|
-
|
52
|
+
onResponseError({ request, response, options, error }) {
|
53
|
+
logger.debug(`response error ${response.statusText}`, error);
|
54
|
+
if (response.status === 404) {
|
45
55
|
throw new import_error.NotFoundError();
|
46
56
|
}
|
47
|
-
throw context.error;
|
48
57
|
},
|
49
58
|
ignoreResponseError: false
|
50
59
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../src/infra/support/fetch/index.ts"],"sourcesContent":["import { createFetch as c, Fetch } from './ofetch'\nimport { Logger } from '@/interface'\nimport { NotFoundError } from './error'\n\nconst rofetch = c({\n defaults: {\n retryStatusCodes: [400, 408, 409, 425, 429, 502, 503, 504],\n retry: 2,\n retryDelay: 400,\n },\n})\n\nconst ofetch = new Fetch(
|
1
|
+
{"version":3,"sources":["../../../../../src/infra/support/fetch/index.ts"],"sourcesContent":["import { createFetch as c, Fetch } from './ofetch'\nimport { Logger } from '@/interface'\nimport { NotFoundError } from './error'\n\nconst rofetch = c({\n defaults: {\n retryStatusCodes: [400, 408, 409, 425, 429, 502, 503, 504],\n retry: 2,\n retryDelay: 400,\n },\n})\n\nconst ofetch = new Fetch()\n\nexport const createFetch = (logger: Logger) => {\n return ofetch.extend({\n onRequest: (context) => {\n logger.debug(`[fetch -->] ${context.options.baseURL}${context.request}`)\n logger.debug(`[fetch -->] ${JSON.stringify(context.options, null, 2)}`)\n },\n onResponse: (context) => {\n logger.debug(`[fetch <--] ${context.request} ${context.response.status}`)\n switch (context.options.responseType) {\n case 'text':\n logger.debug(`[fetch <--] ${context.response._data}`)\n break\n case \"json\":\n logger.debug(`[fetch -->] ${JSON.stringify(context.response._data, null, 2)}`)\n break\n }\n },\n onResponseError({ request, response, options, error }) {\n logger.debug(`response error ${response.statusText}`, error)\n if (response.status === 404) {\n throw new NotFoundError()\n }\n },\n ignoreResponseError: false,\n })\n}\n\nexport { Fetch } from './ofetch'\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAwC;AAExC,mBAA8B;AAuC9B,IAAAA,iBAAsB;AArCtB,MAAM,cAAU,cAAAC,aAAE;AAAA,EAChB,UAAU;AAAA,IACR,kBAAkB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,IACzD,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AACF,CAAC;AAED,MAAM,SAAS,IAAI,oBAAM;AAElB,MAAM,cAAc,CAAC,WAAmB;AAC7C,SAAO,OAAO,OAAO;AAAA,IACnB,WAAW,CAAC,YAAY;AACtB,aAAO,MAAM,eAAe,QAAQ,QAAQ,OAAO,GAAG,QAAQ,OAAO,EAAE;AACvE,aAAO,MAAM,eAAe,KAAK,UAAU,QAAQ,SAAS,MAAM,CAAC,CAAC,EAAE;AAAA,IACxE;AAAA,IACA,YAAY,CAAC,YAAY;AACvB,aAAO,MAAM,eAAe,QAAQ,OAAO,IAAI,QAAQ,SAAS,MAAM,EAAE;AACxE,cAAQ,QAAQ,QAAQ,cAAc;AAAA,QACpC,KAAK;AACH,iBAAO,MAAM,eAAe,QAAQ,SAAS,KAAK,EAAE;AACpD;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,eAAe,KAAK,UAAU,QAAQ,SAAS,OAAO,MAAM,CAAC,CAAC,EAAE;AAC7E;AAAA,MACJ;AAAA,IACF;AAAA,IACA,gBAAgB,EAAE,SAAS,UAAU,SAAS,MAAM,GAAG;AACrD,aAAO,MAAM,kBAAkB,SAAS,UAAU,IAAI,KAAK;AAC3D,UAAI,SAAS,WAAW,KAAK;AAC3B,cAAM,IAAI,2BAAc;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,qBAAqB;AAAA,EACvB,CAAC;AACH;","names":["import_ofetch","c"]}
|
@@ -56,25 +56,18 @@ var __async = (__this, __arguments, generator) => {
|
|
56
56
|
var ofetch_exports = {};
|
57
57
|
__export(ofetch_exports, {
|
58
58
|
Fetch: () => Fetch,
|
59
|
-
createFetch: () => import_ofetch2.createFetch
|
60
|
-
rofetch: () => rofetch
|
59
|
+
createFetch: () => import_ofetch2.createFetch
|
61
60
|
});
|
62
61
|
module.exports = __toCommonJS(ofetch_exports);
|
63
62
|
var import_ofetch = require("ofetch");
|
64
|
-
var import_error = require("./error");
|
65
63
|
var import_ofetch2 = require("ofetch");
|
66
64
|
const rofetch = (0, import_ofetch.createFetch)({
|
67
65
|
defaults: {
|
68
|
-
retryStatusCodes: [
|
69
|
-
retry:
|
66
|
+
retryStatusCodes: [408, 409, 425, 429, 500, 502, 503, 504],
|
67
|
+
retry: 2,
|
70
68
|
retryDelay: 800
|
71
69
|
}
|
72
70
|
}).create({
|
73
|
-
onResponseError({ request, response, options }) {
|
74
|
-
if (response.status === 404) {
|
75
|
-
throw new import_error.NotFoundError();
|
76
|
-
}
|
77
|
-
},
|
78
71
|
onRequestError({ request, error }) {
|
79
72
|
}
|
80
73
|
});
|
@@ -99,6 +92,7 @@ class Fetch {
|
|
99
92
|
body: f
|
100
93
|
});
|
101
94
|
}
|
95
|
+
console.debug();
|
102
96
|
const res = yield this.ofetchInstance(request, opt);
|
103
97
|
return res;
|
104
98
|
});
|
@@ -131,7 +125,6 @@ class Fetch {
|
|
131
125
|
// Annotate the CommonJS export names for ESM import in node:
|
132
126
|
0 && (module.exports = {
|
133
127
|
Fetch,
|
134
|
-
createFetch
|
135
|
-
rofetch
|
128
|
+
createFetch
|
136
129
|
});
|
137
130
|
//# sourceMappingURL=ofetch.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../src/infra/support/fetch/ofetch.ts"],"sourcesContent":["import { $Fetch, createFetch, FetchOptions, ResponseType } from 'ofetch'\
|
1
|
+
{"version":3,"sources":["../../../../../src/infra/support/fetch/ofetch.ts"],"sourcesContent":["import { $Fetch, createFetch, FetchOptions, ResponseType } from 'ofetch'\n\n\nconst rofetch = createFetch({\n defaults: {\n retryStatusCodes: [408, 409, 425, 429, 500, 502, 503, 504],\n retry: 2,\n retryDelay: 800,\n },\n}).create({\n\n onRequestError({ request, error }) {\n\n },\n})\n\nexport type ExtendFetchOptions<R extends ResponseType = ResponseType, T = any> = {\n form?: Record<string, any>\n} & FetchOptions<R, T>\n\nexport class Fetch {\n private options?: FetchOptions\n private ofetchInstance: $Fetch\n constructor(fetchInstance?: $Fetch, options?: FetchOptions) {\n this.options = options\n this.ofetchInstance = fetchInstance ?? rofetch\n }\n async fetch<T, R extends ResponseType>(request: string, options?: ExtendFetchOptions<R, T>) {\n let opt = {\n ...options,\n ...this.options\n } as ExtendFetchOptions<R, T>\n if(opt.form) {\n const form = new FormData()\n let f = opt.form\n Object.entries(form).forEach(([key, value]) => form.append(key, value))\n opt = {\n ...opt,\n headers: {\n ...opt.headers,\n 'Content-Type': 'multipart/form-data'\n },\n body: f\n }\n }\n console.debug()\n const res = await this.ofetchInstance<T, R>(request, opt)\n return res\n }\n get<T = any, R extends ResponseType = 'json'>(\n request: string,\n options?: ExtendFetchOptions<R>\n ) {\n return this.fetch<T, R>(request, { ...options, method: 'GET' })\n }\n post<T = any, R extends ResponseType = 'json'>(\n request: string,\n options?: ExtendFetchOptions<R>\n ) {\n return this.fetch<T, R>(request, { ...options, method: 'POST' })\n }\n put<T = any, R extends ResponseType = 'json'>(\n request: string,\n options?: ExtendFetchOptions<R>\n ) {\n return this.fetch(request, { ...options, method: 'PUT' })\n }\n patch<T = any, R extends ResponseType = 'json'>(\n request: string,\n options?: ExtendFetchOptions<R>\n ) {\n return this.fetch(request, { ...options, method: 'PATCH' })\n }\n delete<T = any, R extends ResponseType = 'json'>(\n request: string,\n options?: ExtendFetchOptions<R>\n ) {\n return this.fetch(request, { ...options, method: 'DELETE' })\n }\n head(request: string, options?: FetchOptions) {\n return this.fetch(request, { ...options, method: 'HEAD' })\n }\n\n extend(options: FetchOptions) {\n return new Fetch(this.ofetchInstance, { ...this.options, ...options })\n }\n baseUrl(url: string) {\n return this.extend({ baseURL: url })\n }\n}\n\nexport { createFetch } from 'ofetch'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgE;AA2FhE,IAAAA,iBAA4B;AAxF5B,MAAM,cAAU,2BAAY;AAAA,EAC1B,UAAU;AAAA,IACR,kBAAkB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,IACzD,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AACF,CAAC,EAAE,OAAO;AAAA,EAER,eAAe,EAAE,SAAS,MAAM,GAAG;AAAA,EAEnC;AACF,CAAC;AAMM,MAAM,MAAM;AAAA,EAGjB,YAAY,eAAwB,SAAwB;AAF5D,wBAAQ;AACR,wBAAQ;AAEN,SAAK,UAAU;AACf,SAAK,iBAAiB,wCAAiB;AAAA,EACzC;AAAA,EACO,MAAiC,SAAiB,SAAoC;AAAA;AAC3F,UAAI,MAAM,kCACL,UACA,KAAK;AAEV,UAAG,IAAI,MAAM;AACX,cAAM,OAAO,IAAI,SAAS;AAC1B,YAAI,IAAI,IAAI;AACZ,eAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,CAAC;AACtE,cAAM,iCACD,MADC;AAAA,UAEJ,SAAS,iCACJ,IAAI,UADA;AAAA,YAEP,gBAAgB;AAAA,UAClB;AAAA,UACA,MAAM;AAAA,QACR;AAAA,MACF;AACA,cAAQ,MAAM;AACd,YAAM,MAAM,MAAM,KAAK,eAAqB,SAAS,GAAG;AACxD,aAAO;AAAA,IACT;AAAA;AAAA,EACA,IACE,SACA,SACA;AACA,WAAO,KAAK,MAAY,SAAS,iCAAK,UAAL,EAAc,QAAQ,MAAM,EAAC;AAAA,EAChE;AAAA,EACA,KACE,SACA,SACA;AACA,WAAO,KAAK,MAAY,SAAS,iCAAK,UAAL,EAAc,QAAQ,OAAO,EAAC;AAAA,EACjE;AAAA,EACA,IACE,SACA,SACA;AACA,WAAO,KAAK,MAAM,SAAS,iCAAK,UAAL,EAAc,QAAQ,MAAM,EAAC;AAAA,EAC1D;AAAA,EACA,MACE,SACA,SACA;AACA,WAAO,KAAK,MAAM,SAAS,iCAAK,UAAL,EAAc,QAAQ,QAAQ,EAAC;AAAA,EAC5D;AAAA,EACA,OACE,SACA,SACA;AACA,WAAO,KAAK,MAAM,SAAS,iCAAK,UAAL,EAAc,QAAQ,SAAS,EAAC;AAAA,EAC7D;AAAA,EACA,KAAK,SAAiB,SAAwB;AAC5C,WAAO,KAAK,MAAM,SAAS,iCAAK,UAAL,EAAc,QAAQ,OAAO,EAAC;AAAA,EAC3D;AAAA,EAEA,OAAO,SAAuB;AAC5B,WAAO,IAAI,MAAM,KAAK,gBAAgB,kCAAK,KAAK,UAAY,QAAS;AAAA,EACvE;AAAA,EACA,QAAQ,KAAa;AACnB,WAAO,KAAK,OAAO,EAAE,SAAS,IAAI,CAAC;AAAA,EACrC;AACF;","names":["import_ofetch"]}
|
@@ -19,6 +19,18 @@ var __spreadValues = (a, b) => {
|
|
19
19
|
return a;
|
20
20
|
};
|
21
21
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
22
|
+
var __objRest = (source, exclude) => {
|
23
|
+
var target = {};
|
24
|
+
for (var prop in source)
|
25
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
26
|
+
target[prop] = source[prop];
|
27
|
+
if (source != null && __getOwnPropSymbols)
|
28
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
29
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
30
|
+
target[prop] = source[prop];
|
31
|
+
}
|
32
|
+
return target;
|
33
|
+
};
|
22
34
|
var __export = (target, all) => {
|
23
35
|
for (var name in all)
|
24
36
|
__defProp(target, name, { get: all[name], enumerable: true });
|
@@ -56,19 +68,37 @@ var __async = (__this, __arguments, generator) => {
|
|
56
68
|
var render_exports = {};
|
57
69
|
__export(render_exports, {
|
58
70
|
CFBrowserRendering: () => CFBrowserRendering,
|
59
|
-
PuppeteerOptions: () => import_puppeteer.RenderOptions,
|
60
71
|
PuppeteerRendering: () => PuppeteerRendering,
|
61
72
|
RemoteBrowserGetter: () => RemoteBrowserGetter,
|
62
|
-
getImageRender: () => getImageRender
|
73
|
+
getImageRender: () => getImageRender,
|
74
|
+
renderSchema: () => renderSchema
|
63
75
|
});
|
64
76
|
module.exports = __toCommonJS(render_exports);
|
65
77
|
var import_puppeteer = require("./puppeteer");
|
66
78
|
var import_puppeteer_core = require("puppeteer-core");
|
67
|
-
var import_fetch = require("
|
79
|
+
var import_fetch = require("@/infra/support/fetch");
|
80
|
+
var import_v4 = require("zod/v4");
|
81
|
+
const common = import_v4.z.object({
|
82
|
+
defaultWaitTimeout: import_v4.z.number().optional(),
|
83
|
+
waitTimeout: import_v4.z.number().optional()
|
84
|
+
});
|
85
|
+
const cfConfig = import_v4.z.object({
|
86
|
+
cfAccountId: import_v4.z.string().min(1, "Cloudflare account id is required"),
|
87
|
+
cfAPIKey: import_v4.z.string().min(1, "Cloudflare API key is required")
|
88
|
+
});
|
89
|
+
const puppeteerConfig = import_v4.z.object({
|
90
|
+
puppeteerURL: import_v4.z.string().describe("remote puppeteer url, eg: wss://browserless/xxx, https://browserless/xxx").optional()
|
91
|
+
});
|
92
|
+
const strictRenderConfig = import_v4.z.discriminatedUnion("mode", [
|
93
|
+
import_v4.z.object(__spreadValues(__spreadValues({ mode: import_v4.z.literal("cf") }, cfConfig.shape), common.shape)),
|
94
|
+
import_v4.z.object(__spreadValues(__spreadValues({ mode: import_v4.z.literal("puppeteer") }, puppeteerConfig.shape), common.shape)),
|
95
|
+
import_v4.z.object(__spreadValues({ mode: import_v4.z.literal("custom") }, common.shape))
|
96
|
+
]);
|
97
|
+
const renderSchema = strictRenderConfig.and(import_v4.z.object(__spreadValues(__spreadValues(__spreadValues({}, cfConfig.shape), puppeteerConfig.shape), common.shape)).partial());
|
68
98
|
class CFBrowserRendering {
|
69
|
-
constructor(accountId, cfAPIKey) {
|
99
|
+
constructor(accountId, cfAPIKey, logger) {
|
70
100
|
__publicField(this, "f");
|
71
|
-
this.f =
|
101
|
+
this.f = (0, import_fetch.createFetch)(logger).baseUrl(`https://api.cloudflare.com/client/v4/accounts/${accountId}`).extend({
|
72
102
|
headers: {
|
73
103
|
Authorization: `Bearer ${cfAPIKey}`
|
74
104
|
}
|
@@ -79,7 +109,8 @@ class CFBrowserRendering {
|
|
79
109
|
responseType: "arrayBuffer",
|
80
110
|
body: __spreadProps(__spreadValues({
|
81
111
|
"screenshotOptions": {
|
82
|
-
quality: 90
|
112
|
+
quality: 90,
|
113
|
+
type: "webp"
|
83
114
|
}
|
84
115
|
}, body), {
|
85
116
|
"viewport": {
|
@@ -132,27 +163,30 @@ const RemoteBrowserGetter = (addr) => {
|
|
132
163
|
}
|
133
164
|
return () => p.connect(opt);
|
134
165
|
};
|
135
|
-
const getImageRender = (
|
166
|
+
const getImageRender = (config) => {
|
167
|
+
const _a = config, { logger, render, browserGetter } = _a, _cfg = __objRest(_a, ["logger", "render", "browserGetter"]);
|
168
|
+
const cfg = strictRenderConfig.parse(_cfg);
|
136
169
|
if (cfg.mode === "cf") {
|
137
|
-
return new CFBrowserRendering(cfg.cfAccountId, cfg.cfAPIKey);
|
170
|
+
return new CFBrowserRendering(cfg.cfAccountId, cfg.cfAPIKey, logger);
|
138
171
|
}
|
139
172
|
if (cfg.mode === "custom") {
|
140
|
-
if (!
|
141
|
-
return
|
173
|
+
if (!render) throw new Error("please provide custom img render");
|
174
|
+
return render;
|
142
175
|
}
|
143
176
|
if (cfg.puppeteerURL) {
|
144
177
|
return new PuppeteerRendering(RemoteBrowserGetter(cfg.puppeteerURL));
|
145
178
|
}
|
146
|
-
if (
|
147
|
-
return new PuppeteerRendering(
|
179
|
+
if (browserGetter) {
|
180
|
+
return new PuppeteerRendering(browserGetter);
|
148
181
|
}
|
182
|
+
return null;
|
149
183
|
};
|
150
184
|
// Annotate the CommonJS export names for ESM import in node:
|
151
185
|
0 && (module.exports = {
|
152
186
|
CFBrowserRendering,
|
153
|
-
PuppeteerOptions,
|
154
187
|
PuppeteerRendering,
|
155
188
|
RemoteBrowserGetter,
|
156
|
-
getImageRender
|
189
|
+
getImageRender,
|
190
|
+
renderSchema
|
157
191
|
});
|
158
192
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../src/infra/support/render/index.ts"],"sourcesContent":["import {html2imgBuffer, RenderOptions, url2imgBuffer} from \"./puppeteer\";\nimport {Browser, Puppeteer} from \"puppeteer-core\";\nimport {Fetch} from \"@/infra/support/fetch\";\nexport {RenderOptions as PuppeteerOptions}\nexport interface ImageRender {\n html2img: (html: string, opt: RenderOptions) => Promise<Buffer>\n url2img: (url: string, opt: RenderOptions) => Promise<Buffer>\n}\n\
|
1
|
+
{"version":3,"sources":["../../../../../src/infra/support/render/index.ts"],"sourcesContent":["import {html2imgBuffer, type RenderOptions, url2imgBuffer} from \"./puppeteer\";\nimport {Browser, Puppeteer} from \"puppeteer-core\";\nimport {Fetch, createFetch} from \"@/infra/support/fetch\";\nimport {Logger} from \"@/interface\";\nimport {z} from \"zod/v4\";\nexport type {RenderOptions as PuppeteerOptions}\nexport interface ImageRender {\n html2img: (html: string, opt: RenderOptions) => Promise<Buffer>\n url2img: (url: string, opt: RenderOptions) => Promise<Buffer>\n}\n\nconst common = z.object({\n defaultWaitTimeout: z.number().optional(),\n waitTimeout: z.number().optional(),\n})\n\nconst cfConfig = z.object({\n cfAccountId: z.string().min(1, \"Cloudflare account id is required\"),\n cfAPIKey: z.string().min(1, \"Cloudflare API key is required\"),\n})\n\nconst puppeteerConfig = z.object({\n puppeteerURL: z.string().describe(\"remote puppeteer url, eg: wss://browserless/xxx, https://browserless/xxx\").optional(),\n})\n\nconst strictRenderConfig = z.discriminatedUnion('mode', [\n z.object({ mode: z.literal('cf'), ...cfConfig.shape, ...common.shape }),\n z.object({ mode: z.literal('puppeteer'), ...puppeteerConfig.shape, ...common.shape }),\n z.object({ mode: z.literal('custom'), ...common.shape }),\n])\n\nexport const renderSchema = strictRenderConfig\n .and(z.object({\n ...cfConfig.shape,\n ...puppeteerConfig.shape,\n ...common.shape\n }).partial())\n\nexport type RenderConfig = z.infer<typeof renderSchema>\n\ntype StrictRenderConfig = z.infer<typeof strictRenderConfig>\n\n\n\n\nexport class CFBrowserRendering implements ImageRender {\n f: Fetch\n constructor(accountId: string, cfAPIKey: string, logger: Logger) {\n this.f = createFetch(logger)\n .baseUrl(`https://api.cloudflare.com/client/v4/accounts/${accountId}`)\n .extend({\n headers: {\n Authorization: `Bearer ${cfAPIKey}`\n },\n })\n }\n private post(body) {\n return this.f.post('/browser-rendering/screenshot', {\n responseType: 'arrayBuffer',\n body: {\n \"screenshotOptions\": {\n quality: 90,\n type: 'webp'\n },\n ...body,\n \"viewport\": {\n \"width\": 3840,\n \"height\": 2160,\n \"deviceScaleFactor\": 2,\n },\n \"gotoOptions\": {\n \"waitUntil\": \"networkidle0\",\n \"timeout\": 30000\n },\n }\n })\n }\n\n\n\n async html2img (html: string, opt: RenderOptions) {\n const buf = await this.post({html: html, ...opt})\n return Buffer.from(buf)\n }\n async url2img (url: string, opt: RenderOptions) {\n const buf = await this.post({url: url, ...opt})\n return Buffer.from(buf)\n }\n}\n\nexport class PuppeteerRendering implements ImageRender {\n constructor(private browserGetter: () => Promise<Browser>) {\n }\n async html2img (html: string, opt: RenderOptions) {\n return html2imgBuffer(this.browserGetter, html, opt)\n }\n async url2img (html: string, opt: RenderOptions) {\n return url2imgBuffer(this.browserGetter, html, opt)\n }\n}\n\n\nexport const RemoteBrowserGetter = (addr: string) => {\n const p = new Puppeteer()\n let opt = {}\n if(addr.startsWith('ws')) {\n opt = { browserWSEndpoint: addr }\n }else if(addr.startsWith('http')) {\n opt = { browserURL: addr }\n }\n return () => p.connect(opt)\n}\n\ntype ImageRenderCreateOptions = StrictRenderConfig & {\n logger: Logger,\n render?: ImageRender,\n browserGetter?: () => Promise<Browser>\n}\n\n\nexport const getImageRender = (config: ImageRenderCreateOptions) => {\n const { logger, render, browserGetter, ..._cfg} = config\n const cfg = strictRenderConfig.parse(_cfg)\n if(cfg.mode === 'cf') {\n return new CFBrowserRendering(cfg.cfAccountId, cfg.cfAPIKey, logger)\n }\n if(cfg.mode === 'custom') {\n if(!render) throw new Error(\"please provide custom img render\")\n return render\n }\n if(cfg.puppeteerURL) {\n return new PuppeteerRendering(RemoteBrowserGetter(cfg.puppeteerURL))\n }\n if(browserGetter) {\n return new PuppeteerRendering(browserGetter)\n }\n return null\n}\n\nexport type CreateImageRenderOption = Parameters<typeof getImageRender>[0]\n"],"mappings":"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","names":[]}
|
@@ -42,7 +42,7 @@ __export(builder_exports, {
|
|
42
42
|
CommandBuilder: () => CommandBuilder
|
43
43
|
});
|
44
44
|
module.exports = __toCommonJS(builder_exports);
|
45
|
-
var import_errors = require("
|
45
|
+
var import_errors = require("@/infra/errors");
|
46
46
|
class CommandBuilder {
|
47
47
|
constructor() {
|
48
48
|
__publicField(this, "name");
|
@@ -22,12 +22,13 @@ __export(schedules_exports, {
|
|
22
22
|
module.exports = __toCommonJS(schedules_exports);
|
23
23
|
var import_temp = require("./temp");
|
24
24
|
const getScheduleTasks = (config) => {
|
25
|
+
var _a, _b, _c, _d, _e;
|
25
26
|
return [
|
26
27
|
{
|
27
28
|
name: "lb-rank-notifier",
|
28
29
|
handler: import_temp.LBScoreMonitor,
|
29
|
-
cron: config.
|
30
|
-
enabled: config.
|
30
|
+
cron: (_b = (_a = config.cron) == null ? void 0 : _a.temp) == null ? void 0 : _b.cron,
|
31
|
+
enabled: (_e = (_d = (_c = config.cron) == null ? void 0 : _c.temp) == null ? void 0 : _d.enabled) != null ? _e : false
|
31
32
|
}
|
32
33
|
];
|
33
34
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/schedules/index.ts"],"sourcesContent":["import { Config } from '@/config'\nimport { LBScoreMonitor } from './temp'\n\n\nexport const getScheduleTasks = (config: Config) => {\n return [\n {\n name: 'lb-rank-notifier',\n handler: LBScoreMonitor,\n cron: config.
|
1
|
+
{"version":3,"sources":["../../../src/schedules/index.ts"],"sourcesContent":["import { Config } from '@/config'\nimport { LBScoreMonitor } from './temp'\n\n\nexport const getScheduleTasks = (config: Config) => {\n return [\n {\n name: 'lb-rank-notifier',\n handler: LBScoreMonitor,\n cron: config.cron?.temp?.cron,\n enabled: config.cron?.temp?.enabled ?? false,\n },\n ]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAA+B;AAGxB,MAAM,mBAAmB,CAAC,WAAmB;AAJpD;AAKE,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAM,kBAAO,SAAP,mBAAa,SAAb,mBAAmB;AAAA,MACzB,UAAS,wBAAO,SAAP,mBAAa,SAAb,mBAAmB,YAAnB,YAA8B;AAAA,IACzC;AAAA,EACF;AACF;","names":[]}
|
@@ -42,7 +42,7 @@ __export(aioclient_exports, {
|
|
42
42
|
AIOSaberClient: () => AIOSaberClient
|
43
43
|
});
|
44
44
|
module.exports = __toCommonJS(aioclient_exports);
|
45
|
-
var import_fetch = require("
|
45
|
+
var import_fetch = require("@/infra/support/fetch");
|
46
46
|
class AIOSaberClient {
|
47
47
|
constructor(logger) {
|
48
48
|
__publicField(this, "f");
|
@@ -42,7 +42,7 @@ __export(blclient_exports, {
|
|
42
42
|
BeatLeaderClient: () => BeatLeaderClient
|
43
43
|
});
|
44
44
|
module.exports = __toCommonJS(blclient_exports);
|
45
|
-
var import_fetch = require("
|
45
|
+
var import_fetch = require("@/infra/support/fetch");
|
46
46
|
class BeatLeaderClient {
|
47
47
|
constructor(opt) {
|
48
48
|
__publicField(this, "f");
|
@@ -55,8 +55,8 @@ __export(bsclient_exports, {
|
|
55
55
|
BeatSaverClient: () => BeatSaverClient
|
56
56
|
});
|
57
57
|
module.exports = __toCommonJS(bsclient_exports);
|
58
|
-
var import_fetch = require("
|
59
|
-
var import_error = require("
|
58
|
+
var import_fetch = require("@/infra/support/fetch");
|
59
|
+
var import_error = require("@/infra/support/fetch/error");
|
60
60
|
class BeatSaverClient {
|
61
61
|
constructor(opt) {
|
62
62
|
__publicField(this, "f");
|
@@ -42,8 +42,8 @@ __export(ssclient_exports, {
|
|
42
42
|
ScoreSaberClient: () => ScoreSaberClient
|
43
43
|
});
|
44
44
|
module.exports = __toCommonJS(ssclient_exports);
|
45
|
-
var import_fetch = require("
|
46
|
-
var import_error = require("
|
45
|
+
var import_fetch = require("@/infra/support/fetch");
|
46
|
+
var import_error = require("@/infra/support/fetch/error");
|
47
47
|
class ScoreSaberClient {
|
48
48
|
constructor(logger) {
|
49
49
|
__publicField(this, "f");
|
@@ -56,18 +56,27 @@ __export(api_exports, {
|
|
56
56
|
});
|
57
57
|
module.exports = __toCommonJS(api_exports);
|
58
58
|
var import_base = require("./base");
|
59
|
-
var import_errors = require("
|
60
|
-
var import_error = require("
|
59
|
+
var import_errors = require("@/infra/errors");
|
60
|
+
var import_error = require("@/infra/support/fetch/error");
|
61
61
|
var import_sortScore = require("./sortScore");
|
62
|
-
var import_bsorDecoder = require("
|
62
|
+
var import_bsorDecoder = require("@/components/utils/bl/bsorDecoder");
|
63
63
|
class APIService {
|
64
64
|
constructor(cfg, logger) {
|
65
65
|
__publicField(this, "BeatLeader");
|
66
66
|
__publicField(this, "ScoreSaber");
|
67
67
|
__publicField(this, "BeatSaver");
|
68
68
|
__publicField(this, "AIOSaber");
|
69
|
-
this.BeatSaver = new import_base.BeatSaverClient({
|
70
|
-
|
69
|
+
this.BeatSaver = new import_base.BeatSaverClient({
|
70
|
+
logger,
|
71
|
+
host: cfg.beatsaver.host,
|
72
|
+
client_id: cfg.beatsaver.oauthClientId,
|
73
|
+
client_secret: cfg.beatsaver.oauthClientSecret
|
74
|
+
});
|
75
|
+
this.BeatLeader = new import_base.BeatLeaderClient({
|
76
|
+
logger,
|
77
|
+
client_id: cfg.beatleader.oauthClientId,
|
78
|
+
client_secret: cfg.beatleader.oauthClientSecret
|
79
|
+
});
|
71
80
|
this.ScoreSaber = new import_base.ScoreSaberClient(logger);
|
72
81
|
this.AIOSaber = new import_base.AIOSaberClient(logger);
|
73
82
|
}
|