@blocklet/uploader-server 0.1.80 → 0.1.82

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 CHANGED
@@ -42,7 +42,7 @@ pnpm run dev
42
42
  ## Backend Example
43
43
 
44
44
  ```javascript
45
- const { initLocalStorageServer, initCompanion } = require('@blocklet/uploader-server');
45
+ import { initLocalStorageServer, initCompanion } from '@blocklet/uploader-server';
46
46
 
47
47
  // init uploader server
48
48
  const localStorageServer = initLocalStorageServer({
@@ -2,4 +2,7 @@ export declare function initCompanion({ path, express, providerOptions, ...restP
2
2
  path: string;
3
3
  express: Function;
4
4
  providerOptions?: Object;
5
- }): any;
5
+ }): {
6
+ app: import("express").Express;
7
+ emitter: any;
8
+ };
@@ -1,7 +1,7 @@
1
- const companion = require("@uppy/companion");
2
- const bodyParser = require("body-parser");
3
- const session = require("express-session");
4
- const crypto = require("crypto");
1
+ import { app as companionAppLib } from "@uppy/companion";
2
+ import bodyParser from "body-parser";
3
+ import session from "express-session";
4
+ import crypto from "crypto";
5
5
  const secret = crypto.randomBytes(32).toString("hex");
6
6
  export function initCompanion({
7
7
  path,
@@ -29,7 +29,7 @@ export function initCompanion({
29
29
  metrics: false,
30
30
  ...restProps
31
31
  };
32
- const newCompanion = companion.app(companionOptions);
32
+ const newCompanion = companionAppLib(companionOptions);
33
33
  const { app: companionApp } = newCompanion;
34
34
  app.all(
35
35
  "*",
@@ -1,4 +1,5 @@
1
1
  import { type ServerOptions } from '@tus/server';
2
+ import { Server } from '@tus/server';
2
3
  export declare function initLocalStorageServer({ path: _path, onUploadFinish: _onUploadFinish, onUploadCreate: _onUploadCreate, express, expiredUploadTime, // default 3 days expire
3
4
  ...restProps }: ServerOptions & {
4
5
  path: string;
@@ -6,7 +7,7 @@ export declare function initLocalStorageServer({ path: _path, onUploadFinish: _o
6
7
  onUploadCreate?: Function;
7
8
  express: Function;
8
9
  expiredUploadTime?: Number;
9
- }): any;
10
+ }): Server;
10
11
  export declare const getFileName: (req: any) => any;
11
12
  export declare function getFileNameParam(req: any, res: any, { isRequired }?: {
12
13
  isRequired: boolean;
@@ -1,13 +1,13 @@
1
- const { Server, EVENTS } = require("@tus/server");
2
- const { FileStore } = require("@tus/file-store");
3
- const cron = require("@abtnode/cron");
4
- const fs = require("fs").promises;
5
- const path = require("path");
6
- const crypto = require("crypto");
7
- const mime = require("mime-types");
8
- const joinUrlLib = require("url-join");
9
- const { default: queue } = require("p-queue");
10
- const { setPDFDownloadHeader, logger } = require("../utils");
1
+ import { Server, EVENTS } from "@tus/server";
2
+ import { FileStore } from "@tus/file-store";
3
+ import cron from "@abtnode/cron";
4
+ import { promises as fs } from "fs";
5
+ import path from "path";
6
+ import crypto from "crypto";
7
+ import mime from "mime-types";
8
+ import joinUrlLib from "url-join";
9
+ import queue from "p-queue";
10
+ import { setPDFDownloadHeader, logger } from "../utils.js";
11
11
  const validFilePathInDirPath = (dirPath, filePath) => {
12
12
  const fileName = path.basename(filePath);
13
13
  if (!filePath.startsWith(dirPath) || path.join(dirPath, fileName) !== filePath) {
@@ -1,11 +1,11 @@
1
- const { existsSync } = require("fs");
2
- const { join, basename } = require("path");
3
- const config = require("@blocklet/sdk/lib/config");
4
- const { getResources } = require("@blocklet/sdk/lib/component");
5
- const joinUrl = require("url-join");
6
- const component = require("@blocklet/sdk/lib/component");
7
- const { setPDFDownloadHeader, logger } = require("../utils");
8
- const { ImageBinDid } = require("../constants");
1
+ import { existsSync } from "fs";
2
+ import { join, basename } from "path";
3
+ import config from "@blocklet/sdk/lib/config";
4
+ import { getResources } from "@blocklet/sdk/lib/component";
5
+ import joinUrl from "url-join";
6
+ import component from "@blocklet/sdk/lib/component";
7
+ import { setPDFDownloadHeader, logger } from "../utils.js";
8
+ import { ImageBinDid } from "../constants.js";
9
9
  const ImgResourceType = "imgpack";
10
10
  let skipRunningCheck = false;
11
11
  let resourceTypes = [
package/es/utils.js CHANGED
@@ -11,8 +11,12 @@ import FormData from "form-data";
11
11
  import omit from "lodash/omit";
12
12
  export let logger = console;
13
13
  if (process.env.BLOCKLET_LOG_DIR) {
14
- const initLogger = require("@blocklet/logger");
15
- logger = initLogger("uploader-server");
14
+ try {
15
+ import("@blocklet/logger").then(({ default: initLogger }) => {
16
+ logger = initLogger("uploader-server");
17
+ });
18
+ } catch (error) {
19
+ }
16
20
  }
17
21
  const DEFAULT_TTL = 5 * 60 * 1e3;
18
22
  const appUrl = process.env.BLOCKLET_APP_URL || "";
@@ -2,4 +2,7 @@ export declare function initCompanion({ path, express, providerOptions, ...restP
2
2
  path: string;
3
3
  express: Function;
4
4
  providerOptions?: Object;
5
- }): any;
5
+ }): {
6
+ app: import("express").Express;
7
+ emitter: any;
8
+ };
@@ -4,11 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.initCompanion = initCompanion;
7
- const companion = require("@uppy/companion");
8
- const bodyParser = require("body-parser");
9
- const session = require("express-session");
10
- const crypto = require("crypto");
11
- const secret = crypto.randomBytes(32).toString("hex");
7
+ var _companion = require("@uppy/companion");
8
+ var _bodyParser = _interopRequireDefault(require("body-parser"));
9
+ var _expressSession = _interopRequireDefault(require("express-session"));
10
+ var _crypto = _interopRequireDefault(require("crypto"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const secret = _crypto.default.randomBytes(32).toString("hex");
12
13
  function initCompanion({
13
14
  path,
14
15
  express,
@@ -16,8 +17,8 @@ function initCompanion({
16
17
  ...restProps
17
18
  }) {
18
19
  const app = express();
19
- app.use(bodyParser.json());
20
- app.use(session({
20
+ app.use(_bodyParser.default.json());
21
+ app.use((0, _expressSession.default)({
21
22
  secret
22
23
  }));
23
24
  let dynamicProviderOptions = providerOptions;
@@ -37,7 +38,7 @@ function initCompanion({
37
38
  metrics: false,
38
39
  ...restProps
39
40
  };
40
- const newCompanion = companion.app(companionOptions);
41
+ const newCompanion = (0, _companion.app)(companionOptions);
41
42
  const {
42
43
  app: companionApp
43
44
  } = newCompanion;
@@ -1,4 +1,5 @@
1
1
  import { type ServerOptions } from '@tus/server';
2
+ import { Server } from '@tus/server';
2
3
  export declare function initLocalStorageServer({ path: _path, onUploadFinish: _onUploadFinish, onUploadCreate: _onUploadCreate, express, expiredUploadTime, // default 3 days expire
3
4
  ...restProps }: ServerOptions & {
4
5
  path: string;
@@ -6,7 +7,7 @@ export declare function initLocalStorageServer({ path: _path, onUploadFinish: _o
6
7
  onUploadCreate?: Function;
7
8
  express: Function;
8
9
  expiredUploadTime?: Number;
9
- }): any;
10
+ }): Server;
10
11
  export declare const getFileName: (req: any) => any;
11
12
  export declare function getFileNameParam(req: any, res: any, { isRequired }?: {
12
13
  isRequired: boolean;
@@ -11,30 +11,21 @@ exports.getMetaDataByFilePath = getMetaDataByFilePath;
11
11
  exports.initLocalStorageServer = initLocalStorageServer;
12
12
  exports.joinUrl = joinUrl;
13
13
  exports.setHeaders = setHeaders;
14
- const {
15
- Server,
16
- EVENTS
17
- } = require("@tus/server");
18
- const {
19
- FileStore
20
- } = require("@tus/file-store");
21
- const cron = require("@abtnode/cron");
22
- const fs = require("fs").promises;
23
- const path = require("path");
24
- const crypto = require("crypto");
25
- const mime = require("mime-types");
26
- const joinUrlLib = require("url-join");
27
- const {
28
- default: queue
29
- } = require("p-queue");
30
- const {
31
- setPDFDownloadHeader,
32
- logger
33
- } = require("../utils");
14
+ var _server = require("@tus/server");
15
+ var _fileStore = require("@tus/file-store");
16
+ var _cron = _interopRequireDefault(require("@abtnode/cron"));
17
+ var _fs = require("fs");
18
+ var _path2 = _interopRequireDefault(require("path"));
19
+ var _crypto = _interopRequireDefault(require("crypto"));
20
+ var _mimeTypes = _interopRequireDefault(require("mime-types"));
21
+ var _urlJoin = _interopRequireDefault(require("url-join"));
22
+ var _pQueue = _interopRequireDefault(require("p-queue"));
23
+ var _utils = require("../utils");
24
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
34
25
  const validFilePathInDirPath = (dirPath, filePath) => {
35
- const fileName = path.basename(filePath);
36
- if (!filePath.startsWith(dirPath) || path.join(dirPath, fileName) !== filePath) {
37
- logger.error("Invalid file path: ", filePath);
26
+ const fileName = _path2.default.basename(filePath);
27
+ if (!filePath.startsWith(dirPath) || _path2.default.join(dirPath, fileName) !== filePath) {
28
+ _utils.logger.error("Invalid file path: ", filePath);
38
29
  throw new Error("Invalid file path");
39
30
  }
40
31
  return true;
@@ -71,7 +62,7 @@ function initLocalStorageServer({
71
62
  } = cloneUploadMetadata;
72
63
  cloneUploadMetadata.runtime = {
73
64
  relativePath: metadata?.relativePath,
74
- absolutePath: path.join(_path, id),
65
+ absolutePath: _path2.default.join(_path, id),
75
66
  size,
76
67
  hashFileName: id,
77
68
  originFileName: metadata?.filename,
@@ -119,7 +110,7 @@ function initLocalStorageServer({
119
110
  const result = await _onUploadFinish(req, res, uploadMetadata);
120
111
  return result;
121
112
  } catch (err) {
122
- logger.error("@blocklet/uploader: onUploadFinish error: ", err);
113
+ _utils.logger.error("@blocklet/uploader: onUploadFinish error: ", err);
123
114
  newServer.delete(uploadMetadata.id);
124
115
  res.setHeader("x-uploader-file-exist", false);
125
116
  throw err;
@@ -127,14 +118,14 @@ function initLocalStorageServer({
127
118
  }
128
119
  return res;
129
120
  };
130
- const newServer = new Server({
121
+ const newServer = new _server.Server({
131
122
  path: "/",
132
123
  // UNUSED
133
124
  relativeLocation: true,
134
125
  // respectForwardedHeaders: true,
135
126
  namingFunction: req => {
136
127
  const fileName = getFileName(req);
137
- const filePath = path.join(_path, fileName);
128
+ const filePath = _path2.default.join(_path, fileName);
138
129
  validFilePathInDirPath(_path, filePath);
139
130
  return fileName;
140
131
  },
@@ -163,7 +154,7 @@ function initLocalStorageServer({
163
154
  };
164
155
  next();
165
156
  });
166
- cron.init({
157
+ _cron.default.init({
167
158
  context: {},
168
159
  jobs: [{
169
160
  name: "auto-cleanup-expired-uploads",
@@ -172,12 +163,12 @@ function initLocalStorageServer({
172
163
  fn: () => {
173
164
  try {
174
165
  newServer.cleanUpExpiredUploads().then(count => {
175
- logger.info(`@blocklet/uploader: cleanup expired uploads done: ${count}`);
166
+ _utils.logger.info(`@blocklet/uploader: cleanup expired uploads done: ${count}`);
176
167
  }).catch(err => {
177
- logger.error(`@blocklet/uploader: cleanup expired uploads error`, err);
168
+ _utils.logger.error(`@blocklet/uploader: cleanup expired uploads error`, err);
178
169
  });
179
170
  } catch (err) {
180
- logger.error(`@blocklet/uploader: cleanup expired uploads error`, err);
171
+ _utils.logger.error(`@blocklet/uploader: cleanup expired uploads error`, err);
181
172
  }
182
173
  },
183
174
  options: {
@@ -185,7 +176,7 @@ function initLocalStorageServer({
185
176
  }
186
177
  }],
187
178
  onError: err => {
188
- logger.error("@blocklet/uploader: cleanup job failed", err);
179
+ _utils.logger.error("@blocklet/uploader: cleanup job failed", err);
189
180
  }
190
181
  });
191
182
  newServer.delete = async key => {
@@ -193,10 +184,10 @@ function initLocalStorageServer({
193
184
  await configstore.delete(key);
194
185
  await configstore.delete(key, false);
195
186
  } catch (err) {
196
- logger.error("@blocklet/uploader: delete error: ", err);
187
+ _utils.logger.error("@blocklet/uploader: delete error: ", err);
197
188
  }
198
189
  };
199
- newServer.on(EVENTS.POST_RECEIVE, async (req, res, uploadMetadata) => {
190
+ newServer.on(_server.EVENTS.POST_RECEIVE, async (req, res, uploadMetadata) => {
200
191
  uploadMetadata = formatMetadata(uploadMetadata);
201
192
  await rewriteMetaDataFile(uploadMetadata);
202
193
  });
@@ -206,7 +197,7 @@ function initLocalStorageServer({
206
197
  }
207
198
  const getFileName = req => {
208
199
  const ext = req.headers["x-uploader-file-ext"];
209
- const randomName = `${crypto.randomBytes(16).toString("hex")}${ext ? `.${ext}` : ""}`;
200
+ const randomName = `${_crypto.default.randomBytes(16).toString("hex")}${ext ? `.${ext}` : ""}`;
210
201
  return req.headers["x-uploader-file-name"] || randomName;
211
202
  };
212
203
  exports.getFileName = getFileName;
@@ -232,9 +223,9 @@ function getLocalStorageFile({
232
223
  }) {
233
224
  return async (req, res, next) => {
234
225
  const fileName = getFileNameParam(req, res);
235
- const filePath = path.join(server.datastore.directory, fileName);
226
+ const filePath = _path2.default.join(server.datastore.directory, fileName);
236
227
  validFilePathInDirPath(server.datastore.directory, filePath);
237
- const fileExists = await fs.stat(filePath).catch(() => false);
228
+ const fileExists = await _fs.promises.stat(filePath).catch(() => false);
238
229
  if (!fileExists) {
239
230
  res.status(404).json({
240
231
  error: "file not found"
@@ -242,7 +233,7 @@ function getLocalStorageFile({
242
233
  return;
243
234
  }
244
235
  setHeaders(req, res);
245
- const file = await fs.readFile(filePath);
236
+ const file = await _fs.promises.readFile(filePath);
246
237
  res.send(file);
247
238
  next?.();
248
239
  };
@@ -267,11 +258,11 @@ function setHeaders(req, res, next) {
267
258
  req.baseUrl = req.headers["x-uploader-base-url"];
268
259
  }
269
260
  if (method === "GET" && fileName) {
270
- const contentType = mime.lookup(fileName);
261
+ const contentType = _mimeTypes.default.lookup(fileName);
271
262
  if (contentType) {
272
263
  res.setHeader("Content-Type", contentType);
273
264
  }
274
- setPDFDownloadHeader(req, res);
265
+ (0, _utils.setPDFDownloadHeader)(req, res);
275
266
  }
276
267
  next?.();
277
268
  }
@@ -284,9 +275,9 @@ async function fileExistBeforeUpload(req, res, next) {
284
275
  if (["PATCH", "POST"].includes(method)) {
285
276
  const _path = uploaderProps.server.datastore.directory;
286
277
  const fileName = getFileName(req);
287
- const filePath = path.join(_path, fileName);
278
+ const filePath = _path2.default.join(_path, fileName);
288
279
  validFilePathInDirPath(_path, filePath);
289
- const isExist = await fs.stat(filePath).catch(() => false);
280
+ const isExist = await _fs.promises.stat(filePath).catch(() => false);
290
281
  if (isExist) {
291
282
  const metaData = await getMetaDataByFilePath(filePath);
292
283
  if (isExist?.size >= 0 && isExist?.size === metaData?.size) {
@@ -310,7 +301,7 @@ async function fileExistBeforeUpload(req, res, next) {
310
301
  ...realMetaData
311
302
  };
312
303
  } catch (err) {
313
- logger.error("@blocklet/uploader: parse metadata error: ", err);
304
+ _utils.logger.error("@blocklet/uploader: parse metadata error: ", err);
314
305
  }
315
306
  }
316
307
  const uploadResult = await uploaderProps.onUploadFinish(req, res, metaData);
@@ -323,14 +314,14 @@ async function fileExistBeforeUpload(req, res, next) {
323
314
  }
324
315
  async function getMetaDataByFilePath(filePath) {
325
316
  const metaDataPath = `${filePath}.json`;
326
- const isExist = await fs.stat(filePath).catch(() => false);
317
+ const isExist = await _fs.promises.stat(filePath).catch(() => false);
327
318
  if (isExist) {
328
319
  try {
329
- const metaData = await fs.readFile(metaDataPath, "utf-8");
320
+ const metaData = await _fs.promises.readFile(metaDataPath, "utf-8");
330
321
  const metaDataJson = JSON.parse(metaData);
331
322
  return metaDataJson;
332
323
  } catch (err) {
333
- logger.error("@blocklet/uploader: getMetaDataByPath error: ", err);
324
+ _utils.logger.error("@blocklet/uploader: getMetaDataByPath error: ", err);
334
325
  }
335
326
  }
336
327
  return null;
@@ -342,23 +333,23 @@ function joinUrl(...args) {
342
333
  }
343
334
  return item;
344
335
  });
345
- return joinUrlLib(...realArgs);
336
+ return (0, _urlJoin.default)(...realArgs);
346
337
  }
347
338
  class RewriteFileConfigstore {
348
339
  directory;
349
340
  queue;
350
341
  constructor(path2) {
351
342
  this.directory = path2;
352
- this.queue = new queue({
343
+ this.queue = new _pQueue.default({
353
344
  concurrency: 1
354
345
  });
355
346
  }
356
347
  async get(key) {
357
348
  try {
358
- const buffer = await this.queue.add(() => fs.readFile(this.resolve(key), "utf8"));
349
+ const buffer = await this.queue.add(() => _fs.promises.readFile(this.resolve(key), "utf8"));
359
350
  const metadata = JSON.parse(buffer);
360
351
  if (metadata.offset !== metadata.size) {
361
- const info = await fs.stat(this.resolve(key, false)).catch(() => false);
352
+ const info = await _fs.promises.stat(this.resolve(key, false)).catch(() => false);
362
353
  if (info?.size !== metadata?.offset) {
363
354
  metadata.offset = info.size;
364
355
  this.set(key, metadata);
@@ -376,31 +367,31 @@ class RewriteFileConfigstore {
376
367
  if (value?.metadata?.runtime) {
377
368
  delete value.metadata.runtime;
378
369
  }
379
- await this.queue.add(() => fs.writeFile(this.resolve(key), JSON.stringify(value)));
370
+ await this.queue.add(() => _fs.promises.writeFile(this.resolve(key), JSON.stringify(value)));
380
371
  }
381
372
  async safeDeleteFile(filePath) {
382
373
  validFilePathInDirPath(this.directory, filePath);
383
374
  try {
384
- const isExist = await fs.stat(filePath).catch(() => false);
375
+ const isExist = await _fs.promises.stat(filePath).catch(() => false);
385
376
  if (isExist) {
386
- await fs.rm(filePath);
377
+ await _fs.promises.rm(filePath);
387
378
  } else {
388
- logger.log("Can not remove file, the file not exist: ", filePath);
379
+ _utils.logger.log("Can not remove file, the file not exist: ", filePath);
389
380
  }
390
381
  } catch (err) {
391
- logger.error("@blocklet/uploader: safeDeleteFile error: ", err);
382
+ _utils.logger.error("@blocklet/uploader: safeDeleteFile error: ", err);
392
383
  }
393
384
  }
394
385
  async delete(key, isMetadata = true) {
395
386
  try {
396
387
  await this.queue.add(() => this.safeDeleteFile(this.resolve(key, isMetadata)));
397
388
  } catch (err) {
398
- logger.error("@blocklet/uploader: delete error: ", err);
389
+ _utils.logger.error("@blocklet/uploader: delete error: ", err);
399
390
  }
400
391
  }
401
392
  async list() {
402
393
  return this.queue.add(async () => {
403
- const files = await fs.readdir(this.directory, {
394
+ const files = await _fs.promises.readdir(this.directory, {
404
395
  withFileTypes: true
405
396
  });
406
397
  const promises = files.filter(file => file.isFile() && file.name.endsWith(".json")).map(file => {
@@ -414,10 +405,10 @@ class RewriteFileConfigstore {
414
405
  if (isMetadata) {
415
406
  fileKey = `${key}.json`;
416
407
  }
417
- return path.join(this.directory, fileKey);
408
+ return _path2.default.join(this.directory, fileKey);
418
409
  }
419
410
  }
420
- class RewriteFileStore extends FileStore {
411
+ class RewriteFileStore extends _fileStore.FileStore {
421
412
  constructor(options) {
422
413
  super(options);
423
414
  }
@@ -4,38 +4,28 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.mappingResource = exports.initStaticResourceMiddleware = exports.initProxyToMediaKitUploadsMiddleware = exports.getCanUseResources = void 0;
7
- const {
8
- existsSync
9
- } = require("fs");
10
- const {
11
- join,
12
- basename
13
- } = require("path");
14
- const config = require("@blocklet/sdk/lib/config");
15
- const {
16
- getResources
17
- } = require("@blocklet/sdk/lib/component");
18
- const joinUrl = require("url-join");
19
- const component = require("@blocklet/sdk/lib/component");
20
- const {
21
- setPDFDownloadHeader,
22
- logger
23
- } = require("../utils");
24
- const {
25
- ImageBinDid
26
- } = require("../constants");
7
+ var _fs = require("fs");
8
+ var _path = require("path");
9
+ var _config = _interopRequireDefault(require("@blocklet/sdk/lib/config"));
10
+ var _component = _interopRequireWildcard(require("@blocklet/sdk/lib/component"));
11
+ var _urlJoin = _interopRequireDefault(require("url-join"));
12
+ var _utils = require("../utils");
13
+ var _constants = require("../constants");
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
17
  const ImgResourceType = "imgpack";
28
18
  let skipRunningCheck = false;
29
19
  let resourceTypes = [{
30
20
  type: ImgResourceType,
31
- did: ImageBinDid,
21
+ did: _constants.ImageBinDid,
32
22
  folder: ""
33
23
  // can be string or string[]
34
24
  }];
35
25
  let canUseResources = [];
36
26
  const mappingResource = async () => {
37
27
  try {
38
- const resources = getResources({
28
+ const resources = (0, _component.getResources)({
39
29
  types: resourceTypes,
40
30
  skipRunningCheck
41
31
  });
@@ -44,24 +34,24 @@ const mappingResource = async () => {
44
34
  const resourceType = resourceTypes.find(({
45
35
  type
46
36
  }) => originDir.endsWith(type));
47
- if (!existsSync(originDir) || !resourceType) {
37
+ if (!(0, _fs.existsSync)(originDir) || !resourceType) {
48
38
  return false;
49
39
  }
50
40
  const folders = Array.isArray(resourceType.folder) ? resourceType.folder : [resourceType.folder || ""];
51
41
  return folders.map(folder => ({
52
42
  originDir,
53
- dir: join(originDir, folder),
43
+ dir: (0, _path.join)(originDir, folder),
54
44
  blockletInfo: resource,
55
45
  whitelist: resourceType.whitelist,
56
46
  blacklist: resourceType.blacklist
57
47
  }));
58
48
  }).filter(Boolean).flat();
59
- logger.info("Mapping can use resources count: ", canUseResources.length
49
+ _utils.logger.info("Mapping can use resources count: ", canUseResources.length
60
50
  // canUseResources
61
51
  );
62
52
  return canUseResources;
63
53
  } catch (error) {
64
- logger.error(error);
54
+ _utils.logger.error(error);
65
55
  }
66
56
  return false;
67
57
  };
@@ -69,7 +59,7 @@ exports.mappingResource = mappingResource;
69
59
  const {
70
60
  events,
71
61
  Events
72
- } = config;
62
+ } = _config.default;
73
63
  events.on(Events.componentAdded, () => mappingResource());
74
64
  events.on(Events.componentRemoved, () => mappingResource());
75
65
  events.on(Events.componentStarted, () => mappingResource());
@@ -87,7 +77,7 @@ const initStaticResourceMiddleware = ({
87
77
  if (typeof item === "string") {
88
78
  return {
89
79
  type: item,
90
- did: ImageBinDid,
80
+ did: _constants.ImageBinDid,
91
81
  // not set did, default is ImageBinDid
92
82
  folder: ""
93
83
  // not set folder, default is root
@@ -98,13 +88,13 @@ const initStaticResourceMiddleware = ({
98
88
  }
99
89
  mappingResource();
100
90
  return (req, res, next) => {
101
- const fileName = basename(req.url);
91
+ const fileName = (0, _path.basename)(req.url);
102
92
  const matchCanUseResourceItem = canUseResources.find(item => {
103
- const normalizedPath = join(item.dir, fileName);
93
+ const normalizedPath = (0, _path.join)(item.dir, fileName);
104
94
  if (!normalizedPath.startsWith(item.dir)) {
105
95
  return false;
106
96
  }
107
- if (!existsSync(normalizedPath)) {
97
+ if (!(0, _fs.existsSync)(normalizedPath)) {
108
98
  return false;
109
99
  }
110
100
  const {
@@ -139,18 +129,18 @@ const initProxyToMediaKitUploadsMiddleware = ({
139
129
  express
140
130
  } = {}) => {
141
131
  return async (req, res, next) => {
142
- if (!component.getComponentWebEndpoint(ImageBinDid)) {
132
+ if (!_component.default.getComponentWebEndpoint(_constants.ImageBinDid)) {
143
133
  return next();
144
134
  }
145
- setPDFDownloadHeader(req, res);
135
+ (0, _utils.setPDFDownloadHeader)(req, res);
146
136
  try {
147
137
  const {
148
138
  data,
149
139
  status,
150
140
  headers
151
- } = await component.call({
152
- name: ImageBinDid,
153
- path: joinUrl("/uploads", basename(req.url)),
141
+ } = await _component.default.call({
142
+ name: _constants.ImageBinDid,
143
+ path: (0, _urlJoin.default)("/uploads", (0, _path.basename)(req.url)),
154
144
  responseType: "stream",
155
145
  method: "GET"
156
146
  });
package/lib/utils.js CHANGED
@@ -25,8 +25,13 @@ var _omit = _interopRequireDefault(require("lodash/omit"));
25
25
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
26
26
  let logger = exports.logger = console;
27
27
  if (process.env.BLOCKLET_LOG_DIR) {
28
- const initLogger = require("@blocklet/logger");
29
- exports.logger = logger = initLogger("uploader-server");
28
+ try {
29
+ Promise.resolve().then(() => require("@blocklet/logger")).then(({
30
+ default: initLogger
31
+ }) => {
32
+ exports.logger = logger = initLogger("uploader-server");
33
+ });
34
+ } catch (error) {}
30
35
  }
31
36
  const DEFAULT_TTL = 5 * 60 * 1e3;
32
37
  const appUrl = process.env.BLOCKLET_APP_URL || "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/uploader-server",
3
- "version": "0.1.80",
3
+ "version": "0.1.82",
4
4
  "description": "blocklet upload server",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -18,6 +18,18 @@
18
18
  "types": "./lib/middlewares.d.ts"
19
19
  }
20
20
  },
21
+ "typesVersions": {
22
+ "*": {
23
+ "*": [
24
+ "./es/*.d.ts"
25
+ ]
26
+ },
27
+ "middlewares": {
28
+ "*": [
29
+ "./es/middlewares.d.ts"
30
+ ]
31
+ }
32
+ },
21
33
  "files": [
22
34
  "lib",
23
35
  "es",
@@ -33,7 +45,8 @@
33
45
  "peerDependencies": {
34
46
  "@tus/file-store": "1.0.0",
35
47
  "@tus/server": "1.0.0",
36
- "@uppy/companion": "4.15.1"
48
+ "@uppy/companion": "4.15.1",
49
+ "axios": "^1.7.8"
37
50
  },
38
51
  "dependencies": {
39
52
  "@abtnode/cron": "^1.16.38",
@@ -55,6 +68,7 @@
55
68
  "devDependencies": {
56
69
  "@arcblock/eslint-config-ts": "^0.2.4",
57
70
  "@types/express": "^4.17.21",
71
+ "@types/express-session": "^1.18.1",
58
72
  "@types/mime-types": "^2.1.4",
59
73
  "@types/node": "^20.17.9",
60
74
  "@types/url-join": "^4.0.3",