bililive-cli 3.18.0 → 3.19.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.
@@ -2,8 +2,8 @@
2
2
 
3
3
  var require$$0 = require('fs');
4
4
  var require$$0$1 = require('path');
5
- var index$1 = require('./index-CWUSa9VA.cjs');
6
- var index = require('./index-CYt93UQb.cjs');
5
+ var index$1 = require('./index-CApcEp1I.cjs');
6
+ var index = require('./index-BFO4BeOx.cjs');
7
7
  require('node:dns');
8
8
  require('constants');
9
9
  require('stream');
@@ -4,7 +4,7 @@ var path$3 = require('node:path');
4
4
  var require$$2$1 = require('node:http');
5
5
  var require$$0$4 = require('node:url');
6
6
  var a$1 = require('node:https');
7
- var index$1 = require('./index-CWUSa9VA.cjs');
7
+ var index$1 = require('./index-CApcEp1I.cjs');
8
8
  var require$$0$6 = require('tty');
9
9
  var require$$1$3 = require('util');
10
10
  var require$$0$c = require('assert');
@@ -29621,8 +29621,9 @@ async function getRecorders(params) {
29621
29621
  if (params.platform) {
29622
29622
  list = list.filter((item) => item.providerId === params.platform);
29623
29623
  }
29624
- if (params.recordStatus) {
29625
- list = list.filter((item) => (item.recordHandle != null) === (params.recordStatus === "recording"));
29624
+ if (params.status) {
29625
+ const normalizedStatus = params.status;
29626
+ list = list.filter((item) => item.state === normalizedStatus);
29626
29627
  }
29627
29628
  if (params.name) {
29628
29629
  list = list.filter((item) => item.remarks?.includes(params.name) ||
@@ -29841,7 +29842,12 @@ function recorderToClient(recorder) {
29841
29842
  }
29842
29843
  function resolveChannel(url) {
29843
29844
  const recorderManager = container.resolve("recorderManager");
29844
- return recorderManager.resolveChannel(url);
29845
+ const matchedProviders = recorderManager.manager.getChannelURLMatchedRecorderProviders(url);
29846
+ const isTikTok = matchedProviders.some((provider) => provider.id === "TikTok");
29847
+ const proxy = isTikTok
29848
+ ? container.resolve("appConfig").get("recorder").tiktok.proxy || undefined
29849
+ : undefined;
29850
+ return recorderManager.resolveChannel(url, { proxy });
29845
29851
  }
29846
29852
  async function resolve(url) {
29847
29853
  const channelInfo = await resolveChannel(url);
@@ -48078,6 +48084,15 @@ router$g.post("/", async (ctx) => {
48078
48084
  appConfig.setAll(data);
48079
48085
  ctx.body = "success";
48080
48086
  });
48087
+ router$g.get("/get", async (ctx) => {
48088
+ const key = ctx.query.key;
48089
+ if (!key) {
48090
+ ctx.body = "key is required";
48091
+ return;
48092
+ }
48093
+ const value = appConfig.get(key);
48094
+ ctx.body = value;
48095
+ });
48081
48096
  router$g.post("/set", async (ctx) => {
48082
48097
  const data = ctx.request.body;
48083
48098
  if (!data.key || !data.value) {
@@ -48132,7 +48147,7 @@ router$g.post("/verifyBiliKey", async (ctx) => {
48132
48147
  ctx.body = response;
48133
48148
  }
48134
48149
  });
48135
- router$g.post("/resetBin", async (ctx) => {
48150
+ router$g.post("/reset-bin", async (ctx) => {
48136
48151
  const data = ctx.request.body;
48137
48152
  const type = data.type;
48138
48153
  if (!type) {
@@ -54061,46 +54076,55 @@ const coerce$1 = (version, options) => {
54061
54076
  };
54062
54077
  var coerce_1 = coerce$1;
54063
54078
 
54064
- class LRUCache {
54065
- constructor () {
54066
- this.max = 1000;
54067
- this.map = new Map();
54068
- }
54079
+ var lrucache;
54080
+ var hasRequiredLrucache;
54069
54081
 
54070
- get (key) {
54071
- const value = this.map.get(key);
54072
- if (value === undefined) {
54073
- return undefined
54074
- } else {
54075
- // Remove the key from the map and add it to the end
54076
- this.map.delete(key);
54077
- this.map.set(key, value);
54078
- return value
54079
- }
54080
- }
54082
+ function requireLrucache () {
54083
+ if (hasRequiredLrucache) return lrucache;
54084
+ hasRequiredLrucache = 1;
54081
54085
 
54082
- delete (key) {
54083
- return this.map.delete(key)
54084
- }
54086
+ class LRUCache {
54087
+ constructor () {
54088
+ this.max = 1000;
54089
+ this.map = new Map();
54090
+ }
54091
+
54092
+ get (key) {
54093
+ const value = this.map.get(key);
54094
+ if (value === undefined) {
54095
+ return undefined
54096
+ } else {
54097
+ // Remove the key from the map and add it to the end
54098
+ this.map.delete(key);
54099
+ this.map.set(key, value);
54100
+ return value
54101
+ }
54102
+ }
54085
54103
 
54086
- set (key, value) {
54087
- const deleted = this.delete(key);
54104
+ delete (key) {
54105
+ return this.map.delete(key)
54106
+ }
54088
54107
 
54089
- if (!deleted && value !== undefined) {
54090
- // If cache is full, delete the least recently used item
54091
- if (this.map.size >= this.max) {
54092
- const firstKey = this.map.keys().next().value;
54093
- this.delete(firstKey);
54094
- }
54108
+ set (key, value) {
54109
+ const deleted = this.delete(key);
54095
54110
 
54096
- this.map.set(key, value);
54097
- }
54111
+ if (!deleted && value !== undefined) {
54112
+ // If cache is full, delete the least recently used item
54113
+ if (this.map.size >= this.max) {
54114
+ const firstKey = this.map.keys().next().value;
54115
+ this.delete(firstKey);
54116
+ }
54098
54117
 
54099
- return this
54100
- }
54101
- }
54118
+ this.map.set(key, value);
54119
+ }
54102
54120
 
54103
- var lrucache = LRUCache;
54121
+ return this
54122
+ }
54123
+ }
54124
+
54125
+ lrucache = LRUCache;
54126
+ return lrucache;
54127
+ }
54104
54128
 
54105
54129
  var range;
54106
54130
  var hasRequiredRange;
@@ -54323,7 +54347,7 @@ function requireRange () {
54323
54347
 
54324
54348
  range = Range;
54325
54349
 
54326
- const LRU = lrucache;
54350
+ const LRU = requireLrucache();
54327
54351
  const cache = new LRU();
54328
54352
 
54329
54353
  const parseOptions = parseOptions_1;
@@ -55535,7 +55559,7 @@ router$e.post("/danma/timestamp", async (ctx) => {
55535
55559
  const { filepath } = ctx.request.body;
55536
55560
  ctx.body = await index$1.readXmlTimestamp(filepath);
55537
55561
  });
55538
- router$e.post("/parseVideoMetadata", async (ctx) => {
55562
+ router$e.post("/parse-video-metadata", async (ctx) => {
55539
55563
  const files = ctx.request.body;
55540
55564
  ctx.body = await index$1.parseMeta(files);
55541
55565
  });
@@ -56145,7 +56169,7 @@ router$c.get("/danmu/:id", async (ctx) => {
56145
56169
  router$c.post("/danmu", async (ctx) => {
56146
56170
  const danmuPreset = container.resolve("danmuPreset");
56147
56171
  const data = ctx.request.body;
56148
- ctx.body = await danmuPreset.save(data);
56172
+ ctx.body = await danmuPreset.save({ ...data, id: index$1.uuid() });
56149
56173
  });
56150
56174
  router$c.del("/danmu/:id", async (ctx) => {
56151
56175
  const danmuPreset = container.resolve("danmuPreset");
@@ -56169,7 +56193,11 @@ router$c.post("/video", async (ctx) => {
56169
56193
  const preset = container.resolve("videoPreset");
56170
56194
  const data = ctx.request.body;
56171
56195
  data.config = index$1.omit(data.config, ["dtime"]);
56172
- ctx.body = await preset.save(data);
56196
+ const [status, msg] = index$1.validateBiliupConfig(data.config);
56197
+ if (!status) {
56198
+ throw new Error(msg || "配置验证失败");
56199
+ }
56200
+ ctx.body = await preset.save({ ...data, id: index$1.uuid() });
56173
56201
  });
56174
56202
  router$c.del("/video/:id", async (ctx) => {
56175
56203
  const preset = container.resolve("videoPreset");
@@ -56179,6 +56207,10 @@ router$c.put("/video/:id", async (ctx) => {
56179
56207
  const preset = container.resolve("videoPreset");
56180
56208
  const data = ctx.request.body;
56181
56209
  data.config = index$1.omit(data.config, ["dtime"]);
56210
+ const [status, msg] = index$1.validateBiliupConfig(data.config);
56211
+ if (!status) {
56212
+ throw new Error(msg || "配置验证失败");
56213
+ }
56182
56214
  ctx.body = await preset.save({ ...data, id: ctx.params.id });
56183
56215
  });
56184
56216
  ////////////////// ffmpeg预设 ///////////////////////////////
@@ -56197,7 +56229,7 @@ router$c.get("/ffmpeg/:id", async (ctx) => {
56197
56229
  router$c.post("/ffmpeg", async (ctx) => {
56198
56230
  const preset = container.resolve("ffmpegPreset");
56199
56231
  const data = ctx.request.body;
56200
- ctx.body = await preset.save(data);
56232
+ ctx.body = await preset.save({ ...data, id: index$1.uuid() });
56201
56233
  });
56202
56234
  router$c.del("/ffmpeg/:id", async (ctx) => {
56203
56235
  const preset = container.resolve("ffmpegPreset");
@@ -56220,7 +56252,7 @@ router$c.get("/subtitle-style/:id", async (ctx) => {
56220
56252
  router$c.post("/subtitle-style", async (ctx) => {
56221
56253
  const preset = container.resolve("subtitleStylePreset");
56222
56254
  const data = ctx.request.body;
56223
- ctx.body = await preset.save(data);
56255
+ ctx.body = await preset.save({ ...data, id: index$1.uuid() });
56224
56256
  });
56225
56257
  router$c.del("/subtitle-style/:id", async (ctx) => {
56226
56258
  const preset = container.resolve("subtitleStylePreset");
@@ -62549,7 +62581,7 @@ class MultipartBody {
62549
62581
  let fileFromPathWarned = false;
62550
62582
  async function fileFromPath(path, ...args) {
62551
62583
  // this import fails in environments that don't handle export maps correctly, like old versions of Jest
62552
- const { fileFromPath: _fileFromPath } = await Promise.resolve().then(function () { return require('./fileFromPath-Df_wQ1he.cjs'); });
62584
+ const { fileFromPath: _fileFromPath } = await Promise.resolve().then(function () { return require('./fileFromPath-DdVRxbmq.cjs'); });
62553
62585
  if (!fileFromPathWarned) {
62554
62586
  console.warn(`fileFromPath is deprecated; use fs.createReadStream(${JSON.stringify(path)}) instead`);
62555
62587
  fileFromPathWarned = true;
@@ -69858,32 +69890,36 @@ class Shazam {
69858
69890
  */
69859
69891
  async recognise(path, language = "en-US", minimal = false) {
69860
69892
  const signatures = shazamioCore.recognizeBytes(require$$0$9.readFileSync(path), 0, Number.MAX_SAFE_INTEGER);
69861
- let response;
69862
- for (let i = Math.floor(signatures.length / 2); i < signatures.length; i += 4) {
69863
- const data = {
69864
- timezone: this.endpoint.timezone,
69865
- signature: {
69866
- uri: signatures[i].uri,
69867
- samplems: signatures[i].samplems,
69868
- },
69869
- timestamp: new Date().getTime(),
69870
- context: {},
69871
- geolocation: {},
69872
- };
69873
- const url = new URL(this.endpoint.url());
69874
- Object.entries(this.endpoint.params()).forEach(([a, b]) => url.searchParams.append(a, b));
69875
- response = await this.endpoint.sendRecognizeRequest(url.toString(), JSON.stringify(data), language);
69876
- if (response?.matches.length === 0)
69877
- continue;
69878
- break;
69893
+ try {
69894
+ let response;
69895
+ for (let i = Math.floor(signatures.length / 2); i < signatures.length; i += 4) {
69896
+ const data = {
69897
+ timezone: this.endpoint.timezone,
69898
+ signature: {
69899
+ uri: signatures[i].uri,
69900
+ samplems: signatures[i].samplems,
69901
+ },
69902
+ timestamp: new Date().getTime(),
69903
+ context: {},
69904
+ geolocation: {},
69905
+ };
69906
+ const url = new URL(this.endpoint.url());
69907
+ Object.entries(this.endpoint.params()).forEach(([a, b]) => url.searchParams.append(a, b));
69908
+ response = await this.endpoint.sendRecognizeRequest(url.toString(), JSON.stringify(data), language);
69909
+ if (response?.matches?.length === 0)
69910
+ continue;
69911
+ break;
69912
+ }
69913
+ if (!response)
69914
+ return null;
69915
+ if (response?.matches?.length === 0)
69916
+ return null;
69917
+ return response;
69918
+ }
69919
+ finally {
69920
+ for (const sig of signatures)
69921
+ sig.free();
69879
69922
  }
69880
- for (const sig of signatures)
69881
- sig.free();
69882
- if (!response)
69883
- return null;
69884
- if (response?.matches.length === 0)
69885
- return null;
69886
- return response;
69887
69923
  }
69888
69924
  createSignatureGenerator(samples) {
69889
69925
  const signatureGenerator = new SignatureGenerator();
@@ -73901,7 +73937,7 @@ danmaTestWSS.on("connection", (socket, request) => {
73901
73937
  }, sendTextAfterMs);
73902
73938
  }
73903
73939
  });
73904
- const getSingleQueryValue = (value) => {
73940
+ const getSingleQueryValue$1 = (value) => {
73905
73941
  if (Array.isArray(value)) {
73906
73942
  return value[0];
73907
73943
  }
@@ -73910,8 +73946,8 @@ const getSingleQueryValue = (value) => {
73910
73946
  /**
73911
73947
  * 录制任务相关接口
73912
73948
  * @route GET /recorder/list
73913
- * @param platform 直播平台,DouYu: 斗鱼, HuYa: 虎牙, Bilibili: 哔哩哔哩, DouYin: 抖音
73914
- * @param recordStatus 录制状态 recording: 录制中 unrecorded: 未录制
73949
+ * @param platform 直播平台,DouYu: 斗鱼, HuYa: 虎牙, Bilibili: 哔哩哔哩, DouYin: 抖音, XHS: 小红书, TikTok: TikTok
73950
+ * @param status 录制状态 recording: 录制中 idle: 空闲中 check-error: 检查错误 title-blocked: 标题被屏蔽
73915
73951
  * @param name 备注名称或直播间号,模糊搜索
73916
73952
  * @param autoCheck 是否自动监控
73917
73953
  * @param page 页码
@@ -73925,11 +73961,11 @@ router$a.get("/list", async (ctx) => {
73925
73961
  ctx.body = { payload: await recorderService.getRecorders(query) };
73926
73962
  });
73927
73963
  router$a.get("/detail", async (ctx) => {
73928
- const recorderId = getSingleQueryValue(ctx.request.query.recorderId);
73929
- const page = getSingleQueryValue(ctx.request.query.page);
73930
- const pageSize = getSingleQueryValue(ctx.request.query.pageSize);
73931
- const startTime = getSingleQueryValue(ctx.request.query.startTime);
73932
- const endTime = getSingleQueryValue(ctx.request.query.endTime);
73964
+ const recorderId = getSingleQueryValue$1(ctx.request.query.recorderId);
73965
+ const page = getSingleQueryValue$1(ctx.request.query.page);
73966
+ const pageSize = getSingleQueryValue$1(ctx.request.query.pageSize);
73967
+ const startTime = getSingleQueryValue$1(ctx.request.query.startTime);
73968
+ const endTime = getSingleQueryValue$1(ctx.request.query.endTime);
73933
73969
  if (!recorderId) {
73934
73970
  ctx.status = 400;
73935
73971
  ctx.body = {
@@ -74012,16 +74048,28 @@ router$a.delete("/:id", (ctx) => {
74012
74048
  });
74013
74049
  /**
74014
74050
  * 开始录制
74051
+ * @deprecated
74015
74052
  * @route POST /recorder/:recorderId/start_record
74016
- * @param recorderId 直播间ID
74053
+ * @param recorderId 录制ID
74017
74054
  * @returns 录制任务信息
74018
74055
  */
74019
74056
  router$a.post("/:id/start_record", async (ctx) => {
74020
74057
  const { id } = ctx.params;
74021
74058
  ctx.body = { payload: await recorderService.startRecord({ id }) };
74022
74059
  });
74060
+ /**
74061
+ * 开始录制
74062
+ * @route POST /recorder/:recorderId/start
74063
+ * @param recorderId 录制ID
74064
+ * @returns 录制任务信息
74065
+ */
74066
+ router$a.post("/:id/start", async (ctx) => {
74067
+ const { id } = ctx.params;
74068
+ ctx.body = { payload: await recorderService.startRecord({ id }) };
74069
+ });
74023
74070
  /**
74024
74071
  * 停止录制
74072
+ * @deprecated
74025
74073
  * @route POST /recorder/:recorderId/stop_record
74026
74074
  * @param recorderId 直播间ID
74027
74075
  * @returns 录制任务信息
@@ -74030,6 +74078,17 @@ router$a.post("/:id/stop_record", async (ctx) => {
74030
74078
  const { id } = ctx.params;
74031
74079
  ctx.body = { payload: await recorderService.stopRecord({ id }) };
74032
74080
  });
74081
+ /**
74082
+ * 停止录制
74083
+ * @deprecated
74084
+ * @route POST /recorder/:recorderId/stop
74085
+ * @param recorderId 录制ID
74086
+ * @returns 录制任务信息
74087
+ */
74088
+ router$a.post("/:id/stop", async (ctx) => {
74089
+ const { id } = ctx.params;
74090
+ ctx.body = { payload: await recorderService.stopRecord({ id }) };
74091
+ });
74033
74092
  /**
74034
74093
  * 切割录制
74035
74094
  * @route POST /recorder/:recorderId/cut
@@ -74072,11 +74131,11 @@ router$a.post("/manager/batch_stop_record", async (ctx) => {
74072
74131
  });
74073
74132
  /**
74074
74133
  * 解析直播间地址,获取对应的直播间信息
74075
- * @route GET /recorder/manager/resolveChannel
74134
+ * @route GET /recorder/manager/resolve-channel
74076
74135
  * @param url 直播间地址
74077
74136
  * @returns 直播间信息
74078
74137
  */
74079
- router$a.get("/manager/resolveChannel", async (ctx) => {
74138
+ router$a.get("/manager/resolve-channel", async (ctx) => {
74080
74139
  const { url } = ctx.query;
74081
74140
  const data = await recorderService.resolveChannel(url);
74082
74141
  ctx.body = { payload: data };
@@ -74105,12 +74164,12 @@ router$a.post("/manager/batchResolveChannel", async (ctx) => {
74105
74164
  });
74106
74165
  /**
74107
74166
  * 获取直播间实时信息
74108
- * @route POST /recorder/manager/liveInfo
74167
+ * @route POST /recorder/manager/live-info
74109
74168
  * @param ids 直播间ID列表
74110
74169
  * @param forceRequest 强制查询直播间信息,不受配置限制,默认true
74111
74170
  * @returns 直播间实时信息列表
74112
74171
  */
74113
- router$a.post("/manager/liveInfo", async (ctx) => {
74172
+ router$a.post("/manager/live-info", async (ctx) => {
74114
74173
  const { ids } = ctx.request.body;
74115
74174
  const forceRequest = ctx.request.body.forceRequest ?? true;
74116
74175
  let requestInfoForRecord = true;
@@ -74168,7 +74227,7 @@ router$a.get("/douyin/stream-info", async (ctx) => {
74168
74227
  try {
74169
74228
  const info = await index$1.getStream({
74170
74229
  channelId: roomId,
74171
- quality: getSingleQueryValue(quality) || "origin",
74230
+ quality: getSingleQueryValue$1(quality) || "origin",
74172
74231
  streamPriorities: [],
74173
74232
  sourcePriorities: [],
74174
74233
  formatPriorities: ["flv"],
@@ -74667,15 +74726,47 @@ const generateWaveformData = async (videoFilePath) => {
74667
74726
  const router$8 = new Router$1({
74668
74727
  prefix: "/task",
74669
74728
  });
74729
+ const getSingleQueryValue = (value) => {
74730
+ if (Array.isArray(value)) {
74731
+ return value[0];
74732
+ }
74733
+ return value;
74734
+ };
74670
74735
  router$8.get("/", async (ctx) => {
74671
- const type = ctx.query.type;
74736
+ const type = getSingleQueryValue(ctx.request.query.type);
74737
+ const status = getSingleQueryValue(ctx.request.query.status);
74738
+ const page = getSingleQueryValue(ctx.request.query.page);
74739
+ const pageSize = getSingleQueryValue(ctx.request.query.pageSize);
74672
74740
  let data = index$1.handleListTask();
74673
74741
  if (type) {
74674
74742
  data = data.filter((item) => item.type === type);
74675
74743
  }
74744
+ if (status) {
74745
+ data = data.filter((item) => item.status === status);
74746
+ }
74747
+ const currentPage = page ? Number(page) : 1;
74748
+ const currentPageSize = pageSize ? Number(pageSize) : data.length || 1;
74749
+ if (!Number.isInteger(currentPage) || currentPage < 1) {
74750
+ ctx.status = 400;
74751
+ ctx.body = "page must be a positive integer";
74752
+ return;
74753
+ }
74754
+ if (!Number.isInteger(currentPageSize) || currentPageSize < 1) {
74755
+ ctx.status = 400;
74756
+ ctx.body = "pageSize must be a positive integer";
74757
+ return;
74758
+ }
74759
+ const total = data.length;
74760
+ const start = (currentPage - 1) * currentPageSize;
74761
+ const list = data.slice(start, start + currentPageSize);
74676
74762
  ctx.body = {
74677
- list: data,
74763
+ list,
74678
74764
  runningTaskNum: data.filter((item) => item.status === "running").length,
74765
+ pagination: {
74766
+ total,
74767
+ page: currentPage,
74768
+ pageSize: currentPageSize,
74769
+ },
74679
74770
  };
74680
74771
  });
74681
74772
  router$8.get("/:id", async (ctx) => {
@@ -75277,6 +75368,28 @@ router$6.post("/download", async (ctx) => {
75277
75368
  let options = ctx.request.body;
75278
75369
  ctx.body = await downloadVideo(options);
75279
75370
  });
75371
+ router$6.get("/douyu/videoList", async (ctx) => {
75372
+ const { subId, page, limit } = ctx.query;
75373
+ const res = await index$1.douyu.getReplayList(String(subId), {
75374
+ page: Number(page || 1),
75375
+ limit: Number(limit || 20),
75376
+ });
75377
+ const data = res.list.map((item) => {
75378
+ const firstVideo = item.video_list[0];
75379
+ return {
75380
+ startTime: firstVideo?.start_time,
75381
+ title: item.title,
75382
+ timeStr: new Date(firstVideo?.start_time * 1000).toLocaleString(),
75383
+ videos: item.video_list.map((video) => ({
75384
+ videoId: video.hash_id,
75385
+ title: video.title,
75386
+ url: `https://v.douyu.com/show/${video.hash_id}`,
75387
+ })),
75388
+ };
75389
+ });
75390
+ console.log(data);
75391
+ ctx.body = data;
75392
+ });
75280
75393
  router$6.post("/sub/parse", async (ctx) => {
75281
75394
  let data = ctx.request.body;
75282
75395
  if (!data.url) {
@@ -76726,7 +76839,7 @@ const router$1 = new Router$1({
76726
76839
  // });
76727
76840
  // ctx.body = result;
76728
76841
  // });
76729
- router$1.post("/song_recognize", async (ctx) => {
76842
+ router$1.post("/song-recognize", async (ctx) => {
76730
76843
  const data = ctx.request.body;
76731
76844
  if (!data.file || data.startTime == null || data.endTime == null) {
76732
76845
  ctx.status = 400;
@@ -79090,7 +79203,7 @@ let handler;
79090
79203
  let appConfig;
79091
79204
  let container;
79092
79205
  const fileCache = createFileCache();
79093
- path$3.dirname(require$$0$4.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-CYt93UQb.cjs', document.baseURI).href))));
79206
+ path$3.dirname(require$$0$4.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-BFO4BeOx.cjs', document.baseURI).href))));
79094
79207
  const authMiddleware = (passKey) => {
79095
79208
  return async (ctx, next) => {
79096
79209
  const authHeader = ctx.headers["authorization"] || ctx.request.query.auth;