@lark-apaas/fullstack-nestjs-core 1.1.33-alpha.1 → 1.1.33-alpha.11
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/index.cjs +45 -350
- package/dist/index.d.cts +4 -65
- package/dist/index.d.ts +4 -65
- package/dist/index.js +34 -337
- package/package.json +9 -9
package/dist/index.cjs
CHANGED
|
@@ -1371,8 +1371,8 @@ var require_node = __commonJS({
|
|
|
1371
1371
|
}
|
|
1372
1372
|
break;
|
|
1373
1373
|
case "FILE":
|
|
1374
|
-
var
|
|
1375
|
-
stream2 = new
|
|
1374
|
+
var fs2 = require("fs");
|
|
1375
|
+
stream2 = new fs2.SyncWriteStream(fd2, {
|
|
1376
1376
|
autoClose: false
|
|
1377
1377
|
});
|
|
1378
1378
|
stream2._type = "fs";
|
|
@@ -5492,9 +5492,9 @@ var require_read = __commonJS({
|
|
|
5492
5492
|
}
|
|
5493
5493
|
});
|
|
5494
5494
|
|
|
5495
|
-
// ../../../node_modules/media-typer/index.js
|
|
5495
|
+
// ../../../node_modules/type-is/node_modules/media-typer/index.js
|
|
5496
5496
|
var require_media_typer = __commonJS({
|
|
5497
|
-
"../../../node_modules/media-typer/index.js"(exports2) {
|
|
5497
|
+
"../../../node_modules/type-is/node_modules/media-typer/index.js"(exports2) {
|
|
5498
5498
|
"use strict";
|
|
5499
5499
|
var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g;
|
|
5500
5500
|
var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/;
|
|
@@ -18069,8 +18069,8 @@ var require_node2 = __commonJS({
|
|
|
18069
18069
|
}
|
|
18070
18070
|
break;
|
|
18071
18071
|
case "FILE":
|
|
18072
|
-
var
|
|
18073
|
-
stream2 = new
|
|
18072
|
+
var fs2 = require("fs");
|
|
18073
|
+
stream2 = new fs2.SyncWriteStream(fd2, {
|
|
18074
18074
|
autoClose: false
|
|
18075
18075
|
});
|
|
18076
18076
|
stream2._type = "fs";
|
|
@@ -18839,8 +18839,8 @@ var require_node3 = __commonJS({
|
|
|
18839
18839
|
}
|
|
18840
18840
|
break;
|
|
18841
18841
|
case "FILE":
|
|
18842
|
-
var
|
|
18843
|
-
stream2 = new
|
|
18842
|
+
var fs2 = require("fs");
|
|
18843
|
+
stream2 = new fs2.SyncWriteStream(fd2, {
|
|
18844
18844
|
autoClose: false
|
|
18845
18845
|
});
|
|
18846
18846
|
stream2._type = "fs";
|
|
@@ -20634,11 +20634,11 @@ var require_view = __commonJS({
|
|
|
20634
20634
|
"use strict";
|
|
20635
20635
|
var debug = require_src3()("express:view");
|
|
20636
20636
|
var path2 = require("path");
|
|
20637
|
-
var
|
|
20638
|
-
var
|
|
20637
|
+
var fs2 = require("fs");
|
|
20638
|
+
var dirname = path2.dirname;
|
|
20639
20639
|
var basename = path2.basename;
|
|
20640
20640
|
var extname2 = path2.extname;
|
|
20641
|
-
var
|
|
20641
|
+
var join2 = path2.join;
|
|
20642
20642
|
var resolve2 = path2.resolve;
|
|
20643
20643
|
module2.exports = View;
|
|
20644
20644
|
function View(name, options) {
|
|
@@ -20675,7 +20675,7 @@ var require_view = __commonJS({
|
|
|
20675
20675
|
for (var i = 0; i < roots.length && !path3; i++) {
|
|
20676
20676
|
var root = roots[i];
|
|
20677
20677
|
var loc = resolve2(root, name);
|
|
20678
|
-
var dir =
|
|
20678
|
+
var dir = dirname(loc);
|
|
20679
20679
|
var file = basename(loc);
|
|
20680
20680
|
path3 = this.resolve(dir, file);
|
|
20681
20681
|
}
|
|
@@ -20687,12 +20687,12 @@ var require_view = __commonJS({
|
|
|
20687
20687
|
}, "render");
|
|
20688
20688
|
View.prototype.resolve = /* @__PURE__ */ __name(function resolve3(dir, file) {
|
|
20689
20689
|
var ext = this.ext;
|
|
20690
|
-
var path3 =
|
|
20690
|
+
var path3 = join2(dir, file);
|
|
20691
20691
|
var stat = tryStat(path3);
|
|
20692
20692
|
if (stat && stat.isFile()) {
|
|
20693
20693
|
return path3;
|
|
20694
20694
|
}
|
|
20695
|
-
path3 =
|
|
20695
|
+
path3 = join2(dir, basename(file, ext), "index" + ext);
|
|
20696
20696
|
stat = tryStat(path3);
|
|
20697
20697
|
if (stat && stat.isFile()) {
|
|
20698
20698
|
return path3;
|
|
@@ -20701,7 +20701,7 @@ var require_view = __commonJS({
|
|
|
20701
20701
|
function tryStat(path3) {
|
|
20702
20702
|
debug('stat "%s"', path3);
|
|
20703
20703
|
try {
|
|
20704
|
-
return
|
|
20704
|
+
return fs2.statSync(path3);
|
|
20705
20705
|
} catch (e) {
|
|
20706
20706
|
return void 0;
|
|
20707
20707
|
}
|
|
@@ -21350,8 +21350,8 @@ var require_node4 = __commonJS({
|
|
|
21350
21350
|
}
|
|
21351
21351
|
break;
|
|
21352
21352
|
case "FILE":
|
|
21353
|
-
var
|
|
21354
|
-
stream2 = new
|
|
21353
|
+
var fs2 = require("fs");
|
|
21354
|
+
stream2 = new fs2.SyncWriteStream(fd2, {
|
|
21355
21355
|
autoClose: false
|
|
21356
21356
|
});
|
|
21357
21357
|
stream2._type = "fs";
|
|
@@ -21537,7 +21537,7 @@ var require_mime = __commonJS({
|
|
|
21537
21537
|
"../../../node_modules/mime/mime.js"(exports2, module2) {
|
|
21538
21538
|
"use strict";
|
|
21539
21539
|
var path2 = require("path");
|
|
21540
|
-
var
|
|
21540
|
+
var fs2 = require("fs");
|
|
21541
21541
|
function Mime() {
|
|
21542
21542
|
this.types = /* @__PURE__ */ Object.create(null);
|
|
21543
21543
|
this.extensions = /* @__PURE__ */ Object.create(null);
|
|
@@ -21559,7 +21559,7 @@ var require_mime = __commonJS({
|
|
|
21559
21559
|
};
|
|
21560
21560
|
Mime.prototype.load = function(file) {
|
|
21561
21561
|
this._loading = file;
|
|
21562
|
-
var map = {}, content =
|
|
21562
|
+
var map = {}, content = fs2.readFileSync(file, "ascii"), lines = content.split(/[\r\n]+/);
|
|
21563
21563
|
lines.forEach(function(line) {
|
|
21564
21564
|
var fields = line.replace(/\s*#.*|^\s*|\s*$/g, "").split(/\s+/);
|
|
21565
21565
|
map[fields.shift()] = fields;
|
|
@@ -21804,7 +21804,7 @@ var require_send = __commonJS({
|
|
|
21804
21804
|
var escapeHtml = require_escape_html();
|
|
21805
21805
|
var etag = require_etag();
|
|
21806
21806
|
var fresh = require_fresh();
|
|
21807
|
-
var
|
|
21807
|
+
var fs2 = require("fs");
|
|
21808
21808
|
var mime = require_mime();
|
|
21809
21809
|
var ms = require_ms5();
|
|
21810
21810
|
var onFinished = require_on_finished();
|
|
@@ -21814,7 +21814,7 @@ var require_send = __commonJS({
|
|
|
21814
21814
|
var Stream = require("stream");
|
|
21815
21815
|
var util = require("util");
|
|
21816
21816
|
var extname2 = path2.extname;
|
|
21817
|
-
var
|
|
21817
|
+
var join2 = path2.join;
|
|
21818
21818
|
var normalize2 = path2.normalize;
|
|
21819
21819
|
var resolve2 = path2.resolve;
|
|
21820
21820
|
var sep = path2.sep;
|
|
@@ -22031,7 +22031,7 @@ var require_send = __commonJS({
|
|
|
22031
22031
|
return res;
|
|
22032
22032
|
}
|
|
22033
22033
|
parts = path3.split(sep);
|
|
22034
|
-
path3 = normalize2(
|
|
22034
|
+
path3 = normalize2(join2(root, path3));
|
|
22035
22035
|
} else {
|
|
22036
22036
|
if (UP_PATH_REGEXP.test(path3)) {
|
|
22037
22037
|
debug('malicious path "%s"', path3);
|
|
@@ -22137,7 +22137,7 @@ var require_send = __commonJS({
|
|
|
22137
22137
|
var i = 0;
|
|
22138
22138
|
var self = this;
|
|
22139
22139
|
debug('stat "%s"', path3);
|
|
22140
|
-
|
|
22140
|
+
fs2.stat(path3, /* @__PURE__ */ __name(function onstat(err, stat) {
|
|
22141
22141
|
if (err && err.code === "ENOENT" && !extname2(path3) && path3[path3.length - 1] !== sep) {
|
|
22142
22142
|
return next(err);
|
|
22143
22143
|
}
|
|
@@ -22152,7 +22152,7 @@ var require_send = __commonJS({
|
|
|
22152
22152
|
}
|
|
22153
22153
|
var p = path3 + "." + self._extensions[i++];
|
|
22154
22154
|
debug('stat "%s"', p);
|
|
22155
|
-
|
|
22155
|
+
fs2.stat(p, function(err2, stat) {
|
|
22156
22156
|
if (err2) return next(err2);
|
|
22157
22157
|
if (stat.isDirectory()) return next();
|
|
22158
22158
|
self.emit("file", p, stat);
|
|
@@ -22169,9 +22169,9 @@ var require_send = __commonJS({
|
|
|
22169
22169
|
if (err) return self.onStatError(err);
|
|
22170
22170
|
return self.error(404);
|
|
22171
22171
|
}
|
|
22172
|
-
var p =
|
|
22172
|
+
var p = join2(path3, self._index[i]);
|
|
22173
22173
|
debug('stat "%s"', p);
|
|
22174
|
-
|
|
22174
|
+
fs2.stat(p, function(err2, stat) {
|
|
22175
22175
|
if (err2) return next(err2);
|
|
22176
22176
|
if (stat.isDirectory()) return next();
|
|
22177
22177
|
self.emit("file", p, stat);
|
|
@@ -22184,7 +22184,7 @@ var require_send = __commonJS({
|
|
|
22184
22184
|
SendStream.prototype.stream = /* @__PURE__ */ __name(function stream(path3, options) {
|
|
22185
22185
|
var self = this;
|
|
22186
22186
|
var res = this.res;
|
|
22187
|
-
var stream2 =
|
|
22187
|
+
var stream2 = fs2.createReadStream(path3, options);
|
|
22188
22188
|
this.emit("stream", stream2);
|
|
22189
22189
|
stream2.pipe(res);
|
|
22190
22190
|
function cleanup() {
|
|
@@ -34404,15 +34404,13 @@ var require_express2 = __commonJS({
|
|
|
34404
34404
|
// src/index.ts
|
|
34405
34405
|
var index_exports = {};
|
|
34406
34406
|
__export(index_exports, {
|
|
34407
|
-
AutoTrace: () =>
|
|
34407
|
+
AutoTrace: () => import_nestjs_common7.AutoTrace,
|
|
34408
34408
|
CanRole: () => import_nestjs_authzpaas2.CanRole,
|
|
34409
34409
|
CsrfMiddleware: () => CsrfMiddleware,
|
|
34410
34410
|
CsrfTokenMiddleware: () => CsrfTokenMiddleware,
|
|
34411
34411
|
DevToolsModule: () => import_nestjs_openapi_devtools2.DevToolsModule,
|
|
34412
34412
|
DevToolsV2Module: () => import_nestjs_openapi_devtools2.DevToolsV2Module,
|
|
34413
34413
|
FileService: () => FileService,
|
|
34414
|
-
HtmlHotUpdateModule: () => HtmlHotUpdateModule,
|
|
34415
|
-
HtmlHotUpdateService: () => HtmlHotUpdateService,
|
|
34416
34414
|
PlatformHttpClientService: () => PlatformHttpClientService,
|
|
34417
34415
|
PlatformModule: () => PlatformModule,
|
|
34418
34416
|
StaticModule: () => StaticModule,
|
|
@@ -34424,9 +34422,9 @@ __export(index_exports, {
|
|
|
34424
34422
|
module.exports = __toCommonJS(index_exports);
|
|
34425
34423
|
|
|
34426
34424
|
// src/modules/platform/module.ts
|
|
34427
|
-
var
|
|
34425
|
+
var import_common12 = require("@nestjs/common");
|
|
34428
34426
|
var import_core2 = require("@nestjs/core");
|
|
34429
|
-
var
|
|
34427
|
+
var import_nestjs_common5 = require("@lark-apaas/nestjs-common");
|
|
34430
34428
|
var import_config2 = require("@nestjs/config");
|
|
34431
34429
|
var import_nestjs_observable = require("@lark-apaas/nestjs-observable");
|
|
34432
34430
|
var import_axios2 = require("@nestjs/axios");
|
|
@@ -34434,7 +34432,7 @@ var import_nestjs_logger2 = require("@lark-apaas/nestjs-logger");
|
|
|
34434
34432
|
var import_nestjs_datapaas = require("@lark-apaas/nestjs-datapaas");
|
|
34435
34433
|
var import_nestjs_authnpaas = require("@lark-apaas/nestjs-authnpaas");
|
|
34436
34434
|
var import_nestjs_trigger = require("@lark-apaas/nestjs-trigger");
|
|
34437
|
-
var
|
|
34435
|
+
var import_nestjs_common6 = require("@lark-apaas/nestjs-common");
|
|
34438
34436
|
var import_nestjs_capability = require("@lark-apaas/nestjs-capability");
|
|
34439
34437
|
|
|
34440
34438
|
// src/middlewares/user-context/index.ts
|
|
@@ -35821,18 +35819,7 @@ StaticModule = _ts_decorate11([
|
|
|
35821
35819
|
})
|
|
35822
35820
|
], StaticModule);
|
|
35823
35821
|
|
|
35824
|
-
// src/modules/
|
|
35825
|
-
var import_common14 = require("@nestjs/common");
|
|
35826
|
-
|
|
35827
|
-
// src/modules/html-hot-update/html-hot-update.controller.ts
|
|
35828
|
-
var import_common13 = require("@nestjs/common");
|
|
35829
|
-
var import_swagger2 = require("@nestjs/swagger");
|
|
35830
|
-
|
|
35831
|
-
// src/modules/html-hot-update/html-hot-update.service.ts
|
|
35832
|
-
var import_common12 = require("@nestjs/common");
|
|
35833
|
-
var import_node_fs = require("fs");
|
|
35834
|
-
var import_node_path = require("path");
|
|
35835
|
-
var import_nestjs_common5 = require("@lark-apaas/nestjs-common");
|
|
35822
|
+
// src/modules/platform/module.ts
|
|
35836
35823
|
function _ts_decorate12(decorators, target, key, desc) {
|
|
35837
35824
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
35838
35825
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -35840,291 +35827,6 @@ function _ts_decorate12(decorators, target, key, desc) {
|
|
|
35840
35827
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
35841
35828
|
}
|
|
35842
35829
|
__name(_ts_decorate12, "_ts_decorate");
|
|
35843
|
-
function _ts_metadata8(k, v) {
|
|
35844
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
35845
|
-
}
|
|
35846
|
-
__name(_ts_metadata8, "_ts_metadata");
|
|
35847
|
-
function _ts_param4(paramIndex, decorator) {
|
|
35848
|
-
return function(target, key) {
|
|
35849
|
-
decorator(target, key, paramIndex);
|
|
35850
|
-
};
|
|
35851
|
-
}
|
|
35852
|
-
__name(_ts_param4, "_ts_param");
|
|
35853
|
-
var Mutex = class Mutex2 {
|
|
35854
|
-
static {
|
|
35855
|
-
__name(this, "Mutex");
|
|
35856
|
-
}
|
|
35857
|
-
locked = false;
|
|
35858
|
-
waiting = [];
|
|
35859
|
-
async acquire() {
|
|
35860
|
-
if (!this.locked) {
|
|
35861
|
-
this.locked = true;
|
|
35862
|
-
return;
|
|
35863
|
-
}
|
|
35864
|
-
return new Promise((resolve2) => {
|
|
35865
|
-
this.waiting.push(() => {
|
|
35866
|
-
this.locked = true;
|
|
35867
|
-
resolve2();
|
|
35868
|
-
});
|
|
35869
|
-
});
|
|
35870
|
-
}
|
|
35871
|
-
release() {
|
|
35872
|
-
if (this.waiting.length > 0) {
|
|
35873
|
-
const next = this.waiting.shift();
|
|
35874
|
-
next();
|
|
35875
|
-
} else {
|
|
35876
|
-
this.locked = false;
|
|
35877
|
-
}
|
|
35878
|
-
}
|
|
35879
|
-
};
|
|
35880
|
-
var HtmlHotUpdateService = class _HtmlHotUpdateService {
|
|
35881
|
-
static {
|
|
35882
|
-
__name(this, "HtmlHotUpdateService");
|
|
35883
|
-
}
|
|
35884
|
-
httpClient;
|
|
35885
|
-
logger = new import_common12.Logger(_HtmlHotUpdateService.name);
|
|
35886
|
-
/** 文件锁:冷启动更新和 innerapi 主动更新共用 */
|
|
35887
|
-
fileLock = new Mutex();
|
|
35888
|
-
/** 本地 HTML 文件目录(dist/dist/client,与 build.sh [4/5] 对齐) */
|
|
35889
|
-
localHtmlDir = (0, import_node_path.join)(process.cwd(), "dist", "client");
|
|
35890
|
-
constructor(httpClient) {
|
|
35891
|
-
this.httpClient = httpClient;
|
|
35892
|
-
}
|
|
35893
|
-
/**
|
|
35894
|
-
* 任务一:冷启动时尝试更新 HTML 文件列表
|
|
35895
|
-
*
|
|
35896
|
-
* - 生产环境默认启用(模块仅在生产环境加载)
|
|
35897
|
-
* - 失败则降级,使用部署时打包的 HTML 正常启动
|
|
35898
|
-
* - 超时 3s,避免拉长冷启动耗时
|
|
35899
|
-
*/
|
|
35900
|
-
async onModuleInit() {
|
|
35901
|
-
const appID = this.getAppID();
|
|
35902
|
-
if (!appID) {
|
|
35903
|
-
this.logger.warn("Skip HTML hot update on startup: appID not found");
|
|
35904
|
-
return;
|
|
35905
|
-
}
|
|
35906
|
-
try {
|
|
35907
|
-
this.logger.log(`Startup HTML update: appID=${appID}`);
|
|
35908
|
-
const result = await this.updateFromRemote(appID);
|
|
35909
|
-
this.logger.log(`Startup HTML update complete: ${result.updatedFiles.length} updated, ${result.failedFiles.length} failed`);
|
|
35910
|
-
} catch (error) {
|
|
35911
|
-
this.logger.warn(`Startup HTML update failed (degraded to bundled HTML): ${error instanceof Error ? error.message : String(error)}, appID=${appID}`);
|
|
35912
|
-
}
|
|
35913
|
-
}
|
|
35914
|
-
/**
|
|
35915
|
-
* 从远端获取最新 HTML 文件并更新本地
|
|
35916
|
-
*
|
|
35917
|
-
* 调用方:
|
|
35918
|
-
* 1) 冷启动更新(onModuleInit)
|
|
35919
|
-
* 2) innerapi 主动更新(controller 调用)
|
|
35920
|
-
*/
|
|
35921
|
-
async updateFromRemote(appID, commitID) {
|
|
35922
|
-
const fileMap = await this.fetchLatestHtmlFiles(appID, commitID);
|
|
35923
|
-
return this.writeHtmlFiles(fileMap);
|
|
35924
|
-
}
|
|
35925
|
-
/**
|
|
35926
|
-
* 将文件内容写入本地 HTML 目录(带文件锁)
|
|
35927
|
-
*/
|
|
35928
|
-
async writeHtmlFiles(fileMap) {
|
|
35929
|
-
const result = {
|
|
35930
|
-
updatedFiles: [],
|
|
35931
|
-
failedFiles: []
|
|
35932
|
-
};
|
|
35933
|
-
const entries = Object.entries(fileMap);
|
|
35934
|
-
if (entries.length === 0) {
|
|
35935
|
-
return result;
|
|
35936
|
-
}
|
|
35937
|
-
await this.fileLock.acquire();
|
|
35938
|
-
try {
|
|
35939
|
-
for (const [filePath, content] of entries) {
|
|
35940
|
-
try {
|
|
35941
|
-
const localPath = (0, import_node_path.join)(this.localHtmlDir, filePath);
|
|
35942
|
-
await import_node_fs.promises.mkdir((0, import_node_path.dirname)(localPath), {
|
|
35943
|
-
recursive: true
|
|
35944
|
-
});
|
|
35945
|
-
await import_node_fs.promises.writeFile(localPath, content, "utf-8");
|
|
35946
|
-
result.updatedFiles.push(filePath);
|
|
35947
|
-
} catch (error) {
|
|
35948
|
-
const reason = error instanceof Error ? error.message : String(error);
|
|
35949
|
-
result.failedFiles.push({
|
|
35950
|
-
filePath,
|
|
35951
|
-
reason
|
|
35952
|
-
});
|
|
35953
|
-
this.logger.warn(`Failed to write HTML file ${filePath}: ${reason}`);
|
|
35954
|
-
}
|
|
35955
|
-
}
|
|
35956
|
-
} finally {
|
|
35957
|
-
this.fileLock.release();
|
|
35958
|
-
}
|
|
35959
|
-
return result;
|
|
35960
|
-
}
|
|
35961
|
-
/**
|
|
35962
|
-
* 调用后端 GetLatestArtifactHtmlFiles 接口
|
|
35963
|
-
*/
|
|
35964
|
-
async fetchLatestHtmlFiles(appID, commitID) {
|
|
35965
|
-
const url = `/v1/app/${appID}/pipeline/frontend/latest_artifact/html_files`;
|
|
35966
|
-
const body = {};
|
|
35967
|
-
if (commitID) {
|
|
35968
|
-
body.commitID = commitID;
|
|
35969
|
-
}
|
|
35970
|
-
const response = await this.httpClient.post(url, body, {
|
|
35971
|
-
timeout: 3e3
|
|
35972
|
-
});
|
|
35973
|
-
if (!response.ok) {
|
|
35974
|
-
throw new Error(`GetLatestArtifactHtmlFiles failed: ${response.status} ${response.statusText}`);
|
|
35975
|
-
}
|
|
35976
|
-
const data = await response.json();
|
|
35977
|
-
if (data.BaseResp?.StatusCode && data.BaseResp.StatusCode !== 0) {
|
|
35978
|
-
throw new Error(`GetLatestArtifactHtmlFiles error: ${data.BaseResp.StatusMessage}`);
|
|
35979
|
-
}
|
|
35980
|
-
if (!data.fileMap || Object.keys(data.fileMap).length === 0) {
|
|
35981
|
-
throw new Error("GetLatestArtifactHtmlFiles returned empty fileMap");
|
|
35982
|
-
}
|
|
35983
|
-
return data.fileMap;
|
|
35984
|
-
}
|
|
35985
|
-
/**
|
|
35986
|
-
* 从 CLIENT_BASE_PATH 提取 appID
|
|
35987
|
-
* CLIENT_BASE_PATH 格式: /app/{appId}
|
|
35988
|
-
*/
|
|
35989
|
-
getAppID() {
|
|
35990
|
-
const basePath = process.env.CLIENT_BASE_PATH || "";
|
|
35991
|
-
const match = basePath.match(/\/app\/([^/]+)/);
|
|
35992
|
-
return match?.[1] ?? "";
|
|
35993
|
-
}
|
|
35994
|
-
};
|
|
35995
|
-
HtmlHotUpdateService = _ts_decorate12([
|
|
35996
|
-
(0, import_common12.Injectable)(),
|
|
35997
|
-
_ts_param4(0, (0, import_common12.Inject)(import_nestjs_common5.PLATFORM_HTTP_CLIENT)),
|
|
35998
|
-
_ts_metadata8("design:type", Function),
|
|
35999
|
-
_ts_metadata8("design:paramtypes", [
|
|
36000
|
-
typeof PlatformHttpClient === "undefined" ? Object : PlatformHttpClient
|
|
36001
|
-
])
|
|
36002
|
-
], HtmlHotUpdateService);
|
|
36003
|
-
|
|
36004
|
-
// src/modules/html-hot-update/html-hot-update.controller.ts
|
|
36005
|
-
function _ts_decorate13(decorators, target, key, desc) {
|
|
36006
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
36007
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
36008
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
36009
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
36010
|
-
}
|
|
36011
|
-
__name(_ts_decorate13, "_ts_decorate");
|
|
36012
|
-
function _ts_metadata9(k, v) {
|
|
36013
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
36014
|
-
}
|
|
36015
|
-
__name(_ts_metadata9, "_ts_metadata");
|
|
36016
|
-
function _ts_param5(paramIndex, decorator) {
|
|
36017
|
-
return function(target, key) {
|
|
36018
|
-
decorator(target, key, paramIndex);
|
|
36019
|
-
};
|
|
36020
|
-
}
|
|
36021
|
-
__name(_ts_param5, "_ts_param");
|
|
36022
|
-
var UpdateHtmlFilesDto = class UpdateHtmlFilesDto2 {
|
|
36023
|
-
static {
|
|
36024
|
-
__name(this, "UpdateHtmlFilesDto");
|
|
36025
|
-
}
|
|
36026
|
-
commitID;
|
|
36027
|
-
appID;
|
|
36028
|
-
};
|
|
36029
|
-
var HtmlHotUpdateController = class {
|
|
36030
|
-
static {
|
|
36031
|
-
__name(this, "HtmlHotUpdateController");
|
|
36032
|
-
}
|
|
36033
|
-
htmlHotUpdateService;
|
|
36034
|
-
constructor(htmlHotUpdateService) {
|
|
36035
|
-
this.htmlHotUpdateService = htmlHotUpdateService;
|
|
36036
|
-
}
|
|
36037
|
-
/**
|
|
36038
|
-
* POST /__innerapi__/update_html_files
|
|
36039
|
-
*
|
|
36040
|
-
* 请求体: { commitID: string, appID: string }
|
|
36041
|
-
* 响应:
|
|
36042
|
-
* 成功: { code: 0, msg: "success" }
|
|
36043
|
-
* 失败: { code: -1, msg: "update html failed: <error>" }
|
|
36044
|
-
*/
|
|
36045
|
-
async updateHtmlFiles(body) {
|
|
36046
|
-
const { commitID, appID } = body;
|
|
36047
|
-
if (!commitID || !appID) {
|
|
36048
|
-
return {
|
|
36049
|
-
code: -1,
|
|
36050
|
-
msg: "commitID and appID are required"
|
|
36051
|
-
};
|
|
36052
|
-
}
|
|
36053
|
-
try {
|
|
36054
|
-
const result = await this.htmlHotUpdateService.updateFromRemote(appID, commitID);
|
|
36055
|
-
if (result.updatedFiles.length === 0 && result.failedFiles.length > 0) {
|
|
36056
|
-
return {
|
|
36057
|
-
code: -1,
|
|
36058
|
-
msg: `update html failed: all ${result.failedFiles.length} files failed to write`
|
|
36059
|
-
};
|
|
36060
|
-
}
|
|
36061
|
-
return {
|
|
36062
|
-
code: 0,
|
|
36063
|
-
msg: "success"
|
|
36064
|
-
};
|
|
36065
|
-
} catch (error) {
|
|
36066
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
36067
|
-
return {
|
|
36068
|
-
code: -1,
|
|
36069
|
-
msg: `update html failed: ${errorMsg}`
|
|
36070
|
-
};
|
|
36071
|
-
}
|
|
36072
|
-
}
|
|
36073
|
-
};
|
|
36074
|
-
_ts_decorate13([
|
|
36075
|
-
(0, import_common13.Post)("update_html_files"),
|
|
36076
|
-
(0, import_common13.HttpCode)(import_common13.HttpStatus.OK),
|
|
36077
|
-
_ts_param5(0, (0, import_common13.Body)()),
|
|
36078
|
-
_ts_metadata9("design:type", Function),
|
|
36079
|
-
_ts_metadata9("design:paramtypes", [
|
|
36080
|
-
typeof UpdateHtmlFilesDto === "undefined" ? Object : UpdateHtmlFilesDto
|
|
36081
|
-
]),
|
|
36082
|
-
_ts_metadata9("design:returntype", Promise)
|
|
36083
|
-
], HtmlHotUpdateController.prototype, "updateHtmlFiles", null);
|
|
36084
|
-
HtmlHotUpdateController = _ts_decorate13([
|
|
36085
|
-
(0, import_swagger2.ApiExcludeController)(),
|
|
36086
|
-
(0, import_common13.Controller)("__innerapi__"),
|
|
36087
|
-
_ts_metadata9("design:type", Function),
|
|
36088
|
-
_ts_metadata9("design:paramtypes", [
|
|
36089
|
-
typeof HtmlHotUpdateService === "undefined" ? Object : HtmlHotUpdateService
|
|
36090
|
-
])
|
|
36091
|
-
], HtmlHotUpdateController);
|
|
36092
|
-
|
|
36093
|
-
// src/modules/html-hot-update/html-hot-update.module.ts
|
|
36094
|
-
function _ts_decorate14(decorators, target, key, desc) {
|
|
36095
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
36096
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
36097
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
36098
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
36099
|
-
}
|
|
36100
|
-
__name(_ts_decorate14, "_ts_decorate");
|
|
36101
|
-
var HtmlHotUpdateModule = class {
|
|
36102
|
-
static {
|
|
36103
|
-
__name(this, "HtmlHotUpdateModule");
|
|
36104
|
-
}
|
|
36105
|
-
};
|
|
36106
|
-
HtmlHotUpdateModule = _ts_decorate14([
|
|
36107
|
-
(0, import_common14.Module)({
|
|
36108
|
-
controllers: [
|
|
36109
|
-
HtmlHotUpdateController
|
|
36110
|
-
],
|
|
36111
|
-
providers: [
|
|
36112
|
-
HtmlHotUpdateService
|
|
36113
|
-
],
|
|
36114
|
-
exports: [
|
|
36115
|
-
HtmlHotUpdateService
|
|
36116
|
-
]
|
|
36117
|
-
})
|
|
36118
|
-
], HtmlHotUpdateModule);
|
|
36119
|
-
|
|
36120
|
-
// src/modules/platform/module.ts
|
|
36121
|
-
function _ts_decorate15(decorators, target, key, desc) {
|
|
36122
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
36123
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
36124
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
36125
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
36126
|
-
}
|
|
36127
|
-
__name(_ts_decorate15, "_ts_decorate");
|
|
36128
35830
|
var PLATFORM_MODULE_OPTIONS = /* @__PURE__ */ Symbol("PLATFORM_MODULE_OPTIONS");
|
|
36129
35831
|
var PlatformModule = class _PlatformModule {
|
|
36130
35832
|
static {
|
|
@@ -36146,7 +35848,7 @@ var PlatformModule = class _PlatformModule {
|
|
|
36146
35848
|
app_config_default
|
|
36147
35849
|
]
|
|
36148
35850
|
}),
|
|
36149
|
-
|
|
35851
|
+
import_nestjs_common5.CommonModule,
|
|
36150
35852
|
import_nestjs_observable.NestjsObservableModule,
|
|
36151
35853
|
import_nestjs_logger2.LoggerModule,
|
|
36152
35854
|
import_axios2.HttpModule.register({
|
|
@@ -36195,11 +35897,6 @@ var PlatformModule = class _PlatformModule {
|
|
|
36195
35897
|
// 开发环境由 Vite/Rspack dev server 的中间件处理 /static/* 请求
|
|
36196
35898
|
...process.env.NODE_ENV === "development" ? [] : [
|
|
36197
35899
|
StaticModule
|
|
36198
|
-
],
|
|
36199
|
-
// HTML 热更新模块(仅生产环境启用)
|
|
36200
|
-
// 提供 innerapi 供 tce 服务触发 HTML 热更新,冷启动时也会尝试拉取最新 HTML
|
|
36201
|
-
...process.env.NODE_ENV === "development" ? [] : [
|
|
36202
|
-
HtmlHotUpdateModule
|
|
36203
35900
|
]
|
|
36204
35901
|
],
|
|
36205
35902
|
providers: [
|
|
@@ -36209,7 +35906,7 @@ var PlatformModule = class _PlatformModule {
|
|
|
36209
35906
|
},
|
|
36210
35907
|
{
|
|
36211
35908
|
provide: import_core2.APP_PIPE,
|
|
36212
|
-
useValue: new
|
|
35909
|
+
useValue: new import_common12.ValidationPipe({
|
|
36213
35910
|
transform: true,
|
|
36214
35911
|
transformOptions: {
|
|
36215
35912
|
enableImplicitConversion: true
|
|
@@ -36217,19 +35914,19 @@ var PlatformModule = class _PlatformModule {
|
|
|
36217
35914
|
})
|
|
36218
35915
|
},
|
|
36219
35916
|
{
|
|
36220
|
-
provide:
|
|
35917
|
+
provide: import_nestjs_common5.OBSERVABLE_SERVICE,
|
|
36221
35918
|
useClass: import_nestjs_observable.Observable
|
|
36222
35919
|
},
|
|
36223
35920
|
PlatformHttpClientService,
|
|
36224
35921
|
{
|
|
36225
|
-
provide:
|
|
35922
|
+
provide: import_nestjs_common6.PLATFORM_HTTP_CLIENT,
|
|
36226
35923
|
useFactory: /* @__PURE__ */ __name((svc) => svc.instance, "useFactory"),
|
|
36227
35924
|
inject: [
|
|
36228
35925
|
PlatformHttpClientService
|
|
36229
35926
|
]
|
|
36230
35927
|
},
|
|
36231
35928
|
{
|
|
36232
|
-
provide:
|
|
35929
|
+
provide: import_nestjs_common5.HTTP_CLIENT_FACTORY,
|
|
36233
35930
|
useFactory: /* @__PURE__ */ __name((svc) => ({
|
|
36234
35931
|
create: /* @__PURE__ */ __name((options2) => svc.createWithGlobalInterceptors(options2), "create")
|
|
36235
35932
|
}), "useFactory"),
|
|
@@ -36247,10 +35944,10 @@ var PlatformModule = class _PlatformModule {
|
|
|
36247
35944
|
exports: [
|
|
36248
35945
|
import_config2.ConfigModule,
|
|
36249
35946
|
import_nestjs_logger2.LoggerModule,
|
|
36250
|
-
|
|
36251
|
-
|
|
36252
|
-
|
|
36253
|
-
|
|
35947
|
+
import_nestjs_common5.CommonModule,
|
|
35948
|
+
import_nestjs_common5.OBSERVABLE_SERVICE,
|
|
35949
|
+
import_nestjs_common6.PLATFORM_HTTP_CLIENT,
|
|
35950
|
+
import_nestjs_common5.HTTP_CLIENT_FACTORY,
|
|
36254
35951
|
PlatformHttpClientService,
|
|
36255
35952
|
import_nestjs_capability.CapabilityModule,
|
|
36256
35953
|
FileService
|
|
@@ -36282,9 +35979,9 @@ var PlatformModule = class _PlatformModule {
|
|
|
36282
35979
|
}
|
|
36283
35980
|
}
|
|
36284
35981
|
};
|
|
36285
|
-
PlatformModule =
|
|
36286
|
-
(0,
|
|
36287
|
-
(0,
|
|
35982
|
+
PlatformModule = _ts_decorate12([
|
|
35983
|
+
(0, import_common12.Global)(),
|
|
35984
|
+
(0, import_common12.Module)({})
|
|
36288
35985
|
], PlatformModule);
|
|
36289
35986
|
|
|
36290
35987
|
// src/setup.ts
|
|
@@ -36372,7 +36069,7 @@ __reExport(index_exports, require("@lark-apaas/nestjs-datapaas"), module.exports
|
|
|
36372
36069
|
__reExport(index_exports, require("@lark-apaas/nestjs-observable"), module.exports);
|
|
36373
36070
|
__reExport(index_exports, require("@lark-apaas/nestjs-trigger"), module.exports);
|
|
36374
36071
|
__reExport(index_exports, require("@lark-apaas/file-service"), module.exports);
|
|
36375
|
-
var
|
|
36072
|
+
var import_nestjs_common7 = require("@lark-apaas/nestjs-common");
|
|
36376
36073
|
var import_nestjs_authzpaas2 = require("@lark-apaas/nestjs-authzpaas");
|
|
36377
36074
|
// Annotate the CommonJS export names for ESM import in node:
|
|
36378
36075
|
0 && (module.exports = {
|
|
@@ -36383,8 +36080,6 @@ var import_nestjs_authzpaas2 = require("@lark-apaas/nestjs-authzpaas");
|
|
|
36383
36080
|
DevToolsModule,
|
|
36384
36081
|
DevToolsV2Module,
|
|
36385
36082
|
FileService,
|
|
36386
|
-
HtmlHotUpdateModule,
|
|
36387
|
-
HtmlHotUpdateService,
|
|
36388
36083
|
PlatformHttpClientService,
|
|
36389
36084
|
PlatformModule,
|
|
36390
36085
|
StaticModule,
|