dsh-plugin-streamnest 0.0.0-stage → 0.0.2

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.
Files changed (150) hide show
  1. package/LICENSE +27 -0
  2. package/README.en.md +106 -0
  3. package/README.md +105 -2
  4. package/assets/logo.svg +5 -0
  5. package/assets/reference-projects.json +16 -0
  6. package/assets/screenshots/deepseek-harness-installed.png +0 -0
  7. package/lib/THIRD_PARTY_LICENSES.txt +2068 -0
  8. package/lib/apps/api/src/app.module.js +52 -0
  9. package/lib/apps/api/src/app.module.js.map +1 -0
  10. package/lib/apps/api/src/common/api-error.filter.js +22 -0
  11. package/lib/apps/api/src/common/api-error.filter.js.map +1 -0
  12. package/lib/apps/api/src/common/business-error.js +21 -0
  13. package/lib/apps/api/src/common/business-error.js.map +1 -0
  14. package/lib/apps/api/src/common/network.js +89 -0
  15. package/lib/apps/api/src/common/network.js.map +1 -0
  16. package/lib/apps/api/src/common/process.js +101 -0
  17. package/lib/apps/api/src/common/process.js.map +1 -0
  18. package/lib/apps/api/src/common/validation.js +30 -0
  19. package/lib/apps/api/src/common/validation.js.map +1 -0
  20. package/lib/apps/api/src/create-application.js +65 -0
  21. package/lib/apps/api/src/create-application.js.map +1 -0
  22. package/lib/apps/api/src/main.js +9 -0
  23. package/lib/apps/api/src/main.js.map +1 -0
  24. package/lib/apps/api/src/media/arguments.js +120 -0
  25. package/lib/apps/api/src/media/arguments.js.map +1 -0
  26. package/lib/apps/api/src/media/delete-downloads.js +129 -0
  27. package/lib/apps/api/src/media/delete-downloads.js.map +1 -0
  28. package/lib/apps/api/src/media/directory-sync.js +152 -0
  29. package/lib/apps/api/src/media/directory-sync.js.map +1 -0
  30. package/lib/apps/api/src/media/dto/media.dto.js +268 -0
  31. package/lib/apps/api/src/media/dto/media.dto.js.map +1 -0
  32. package/lib/apps/api/src/media/engines/aria2-progress.js +11 -0
  33. package/lib/apps/api/src/media/engines/aria2-progress.js.map +1 -0
  34. package/lib/apps/api/src/media/engines/aria2.js +85 -0
  35. package/lib/apps/api/src/media/engines/aria2.js.map +1 -0
  36. package/lib/apps/api/src/media/engines/direct-state.js +42 -0
  37. package/lib/apps/api/src/media/engines/direct-state.js.map +1 -0
  38. package/lib/apps/api/src/media/engines/direct.js +269 -0
  39. package/lib/apps/api/src/media/engines/direct.js.map +1 -0
  40. package/lib/apps/api/src/media/engines/js-runtime.js +125 -0
  41. package/lib/apps/api/src/media/engines/js-runtime.js.map +1 -0
  42. package/lib/apps/api/src/media/engines/types.js +2 -0
  43. package/lib/apps/api/src/media/engines/types.js.map +1 -0
  44. package/lib/apps/api/src/media/formats.js +106 -0
  45. package/lib/apps/api/src/media/formats.js.map +1 -0
  46. package/lib/apps/api/src/media/media.controller.js +312 -0
  47. package/lib/apps/api/src/media/media.controller.js.map +1 -0
  48. package/lib/apps/api/src/media/media.engine.js +446 -0
  49. package/lib/apps/api/src/media/media.engine.js.map +1 -0
  50. package/lib/apps/api/src/media/media.service.js +563 -0
  51. package/lib/apps/api/src/media/media.service.js.map +1 -0
  52. package/lib/apps/api/src/media/parsing/browser-paths.js +105 -0
  53. package/lib/apps/api/src/media/parsing/browser-paths.js.map +1 -0
  54. package/lib/apps/api/src/media/parsing/browser-pool.service.js +84 -0
  55. package/lib/apps/api/src/media/parsing/browser-pool.service.js.map +1 -0
  56. package/lib/apps/api/src/media/parsing/cache.service.js +123 -0
  57. package/lib/apps/api/src/media/parsing/cache.service.js.map +1 -0
  58. package/lib/apps/api/src/media/parsing/cookie.service.js +243 -0
  59. package/lib/apps/api/src/media/parsing/cookie.service.js.map +1 -0
  60. package/lib/apps/api/src/media/parsing/platform-data.js +131 -0
  61. package/lib/apps/api/src/media/parsing/platform-data.js.map +1 -0
  62. package/lib/apps/api/src/media/parsing/platform-parser.service.js +230 -0
  63. package/lib/apps/api/src/media/parsing/platform-parser.service.js.map +1 -0
  64. package/lib/apps/api/src/media/parsing/youtube-retry.js +24 -0
  65. package/lib/apps/api/src/media/parsing/youtube-retry.js.map +1 -0
  66. package/lib/apps/api/src/media/thumbnail.service.js +189 -0
  67. package/lib/apps/api/src/media/thumbnail.service.js.map +1 -0
  68. package/lib/apps/api/src/media/wechat/api.js +251 -0
  69. package/lib/apps/api/src/media/wechat/api.js.map +1 -0
  70. package/lib/apps/api/src/media/wechat/decode.js +121 -0
  71. package/lib/apps/api/src/media/wechat/decode.js.map +1 -0
  72. package/lib/apps/api/src/media/wechat/wechat.service.js +61 -0
  73. package/lib/apps/api/src/media/wechat/wechat.service.js.map +1 -0
  74. package/lib/apps/api/src/runtime/assets.json +98 -0
  75. package/lib/apps/api/src/runtime/runtime-archive.js +44 -0
  76. package/lib/apps/api/src/runtime/runtime-archive.js.map +1 -0
  77. package/lib/apps/api/src/runtime/runtime-discovery.js +163 -0
  78. package/lib/apps/api/src/runtime/runtime-discovery.js.map +1 -0
  79. package/lib/apps/api/src/runtime/runtime-installer.js +93 -0
  80. package/lib/apps/api/src/runtime/runtime-installer.js.map +1 -0
  81. package/lib/apps/api/src/runtime/runtime-manager.js +180 -0
  82. package/lib/apps/api/src/runtime/runtime-manager.js.map +1 -0
  83. package/lib/apps/api/src/runtime/runtime-manifest.js +48 -0
  84. package/lib/apps/api/src/runtime/runtime-manifest.js.map +1 -0
  85. package/lib/apps/api/src/runtime/runtime.service.js +2 -0
  86. package/lib/apps/api/src/runtime/runtime.service.js.map +1 -0
  87. package/lib/apps/api/src/storage/legacy-vault.js +66 -0
  88. package/lib/apps/api/src/storage/legacy-vault.js.map +1 -0
  89. package/lib/apps/api/src/storage/task-record.js +87 -0
  90. package/lib/apps/api/src/storage/task-record.js.map +1 -0
  91. package/lib/apps/api/src/storage/vault.store.js +321 -0
  92. package/lib/apps/api/src/storage/vault.store.js.map +1 -0
  93. package/lib/apps/api/src/system/browser-profiles.js +117 -0
  94. package/lib/apps/api/src/system/browser-profiles.js.map +1 -0
  95. package/lib/apps/api/src/system/journal.service.js +87 -0
  96. package/lib/apps/api/src/system/journal.service.js.map +1 -0
  97. package/lib/apps/api/src/system/native.service.js +106 -0
  98. package/lib/apps/api/src/system/native.service.js.map +1 -0
  99. package/lib/apps/api/src/system/system.controller.js +162 -0
  100. package/lib/apps/api/src/system/system.controller.js.map +1 -0
  101. package/lib/apps/api/src/system/system.dto.js +127 -0
  102. package/lib/apps/api/src/system/system.dto.js.map +1 -0
  103. package/lib/apps/api/src/system/system.service.js +191 -0
  104. package/lib/apps/api/src/system/system.service.js.map +1 -0
  105. package/lib/apps/shared/src/brand.js +9 -0
  106. package/lib/apps/shared/src/brand.js.map +1 -0
  107. package/lib/apps/shared/src/browser-profiles.js +15 -0
  108. package/lib/apps/shared/src/browser-profiles.js.map +1 -0
  109. package/lib/apps/shared/src/contracts.js +13 -0
  110. package/lib/apps/shared/src/contracts.js.map +1 -0
  111. package/lib/apps/shared/src/cookies.js +23 -0
  112. package/lib/apps/shared/src/cookies.js.map +1 -0
  113. package/lib/apps/shared/src/links.js +7 -0
  114. package/lib/apps/shared/src/links.js.map +1 -0
  115. package/lib/apps/shared/src/media-files.js +17 -0
  116. package/lib/apps/shared/src/media-files.js.map +1 -0
  117. package/lib/apps/shared/src/messages.js +255 -0
  118. package/lib/apps/shared/src/messages.js.map +1 -0
  119. package/lib/apps/shared/src/parse-errors.js +69 -0
  120. package/lib/apps/shared/src/parse-errors.js.map +1 -0
  121. package/lib/apps/shared/src/preferences.js +26 -0
  122. package/lib/apps/shared/src/preferences.js.map +1 -0
  123. package/lib/apps/shared/src/system.js +7 -0
  124. package/lib/apps/shared/src/system.js.map +1 -0
  125. package/lib/apps/shared/src/task-messages.js +21 -0
  126. package/lib/apps/shared/src/task-messages.js.map +1 -0
  127. package/lib/apps/shared/src/thumbnail.js +16 -0
  128. package/lib/apps/shared/src/thumbnail.js.map +1 -0
  129. package/lib/client.js +43785 -0
  130. package/lib/index.js +1 -0
  131. package/lib/packages/harness/src/index.js +46 -0
  132. package/lib/packages/harness/src/index.js.map +1 -0
  133. package/lib/packages/harness/src/tools/business-errors.js +47 -0
  134. package/lib/packages/harness/src/tools/business-errors.js.map +1 -0
  135. package/lib/packages/harness/src/tools/permissions.js +24 -0
  136. package/lib/packages/harness/src/tools/permissions.js.map +1 -0
  137. package/lib/packages/harness/src/tools/register.js +356 -0
  138. package/lib/packages/harness/src/tools/register.js.map +1 -0
  139. package/lib/packages/harness/src/tools/schemas.js +248 -0
  140. package/lib/packages/harness/src/tools/schemas.js.map +1 -0
  141. package/lib/packages/harness/src/tools/system-schemas.js +88 -0
  142. package/lib/packages/harness/src/tools/system-schemas.js.map +1 -0
  143. package/lib/packages/harness/src/tools/system-tools.js +193 -0
  144. package/lib/packages/harness/src/tools/system-tools.js.map +1 -0
  145. package/licenses/downvid.LICENSE +22 -0
  146. package/licenses/wx_channels_download.LICENSE +35 -0
  147. package/package.json +150 -3
  148. package/packages/harness/cordis.patch.yml +3 -0
  149. package/packages/harness/locale/en.json +6 -0
  150. package/packages/harness/locale/zh.json +6 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal.service.js","sourceRoot":"","sources":["../../../../../apps/api/src/system/journal.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { businessMessage } from '../../../shared/src/messages.js';
8
+ import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common';
9
+ import { randomUUID } from 'node:crypto';
10
+ import { isAbsolute, resolve } from 'node:path';
11
+ import { stat } from 'node:fs/promises';
12
+ import { extractMediaLink } from '../../../shared/src/links.js';
13
+ import { validateUuid } from '../common/validation.js';
14
+ let NativeService = class NativeService {
15
+ requests = new Map();
16
+ create(kind, purpose, text = '') {
17
+ this.expire();
18
+ if ([...this.requests.values()].filter((value) => value.status === 'pending').length >= 8)
19
+ throw new BadRequestException(businessMessage('NATIVE_PENDING_LIMIT'));
20
+ if (!['pick-folder', 'pick-file', 'clipboard-read', 'clipboard-write'].includes(kind))
21
+ throw new BadRequestException(businessMessage('NATIVE_KIND_INVALID'));
22
+ if (text.length > 4096 || purpose.length > 300)
23
+ throw new BadRequestException(businessMessage('NATIVE_DESCRIPTION_TOO_LONG'));
24
+ const request = {
25
+ id: randomUUID(),
26
+ kind,
27
+ purpose,
28
+ text: kind === 'clipboard-write' ? text : '',
29
+ status: 'pending',
30
+ value: '',
31
+ createdAt: new Date().toISOString(),
32
+ ...businessMessage('NATIVE_CONFIRM'),
33
+ };
34
+ this.requests.set(request.id, request);
35
+ return structuredClone(request);
36
+ }
37
+ expire() {
38
+ for (const request of this.requests.values()) {
39
+ const age = Date.now() - new Date(request.createdAt).getTime();
40
+ if (request.status === 'pending' && age > 10 * 60_000) {
41
+ request.status = 'expired';
42
+ Object.assign(request, businessMessage('NATIVE_EXPIRED'));
43
+ }
44
+ if (age > 60 * 60_000)
45
+ this.requests.delete(request.id);
46
+ }
47
+ }
48
+ pending() {
49
+ this.expire();
50
+ return [...this.requests.values()]
51
+ .filter((request) => request.status === 'pending')
52
+ .map((value) => structuredClone(value));
53
+ }
54
+ get(id) {
55
+ validateUuid(id, 'id');
56
+ this.expire();
57
+ const request = this.requests.get(id);
58
+ if (!request)
59
+ throw new NotFoundException(businessMessage('NATIVE_NOT_FOUND'));
60
+ return structuredClone(request);
61
+ }
62
+ async complete(id, value, cancelled = false) {
63
+ const request = this.get(id);
64
+ if (request.status !== 'pending')
65
+ throw new BadRequestException(businessMessage('NATIVE_ENDED'));
66
+ if (cancelled) {
67
+ request.status = 'cancelled';
68
+ Object.assign(request, businessMessage('NATIVE_CANCELLED'));
69
+ }
70
+ else if (request.kind === 'pick-folder' || request.kind === 'pick-file') {
71
+ if (!isAbsolute(value) || value.includes('\0'))
72
+ throw new BadRequestException(businessMessage('LOCAL_PATH_REQUIRED'));
73
+ const info = await stat(value);
74
+ if (request.kind === 'pick-folder' ? !info.isDirectory() : !info.isFile())
75
+ throw new BadRequestException(businessMessage('LOCAL_PATH_TYPE_INVALID'));
76
+ request.value = resolve(value);
77
+ request.status = 'completed';
78
+ }
79
+ else {
80
+ if (request.kind === 'clipboard-read') {
81
+ let url;
82
+ try {
83
+ url = new URL(extractMediaLink(value));
84
+ }
85
+ catch {
86
+ throw new BadRequestException(businessMessage('CLIPBOARD_URL_MISSING'));
87
+ }
88
+ if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password)
89
+ throw new BadRequestException(businessMessage('CLIPBOARD_URL_MISSING'));
90
+ request.value = url.href;
91
+ }
92
+ else
93
+ request.value = request.text;
94
+ request.status = 'completed';
95
+ }
96
+ if (request.status === 'completed')
97
+ Object.assign(request, businessMessage('NATIVE_COMPLETED'));
98
+ this.requests.set(id, request);
99
+ return structuredClone(request);
100
+ }
101
+ };
102
+ NativeService = __decorate([
103
+ Injectable()
104
+ ], NativeService);
105
+ export { NativeService };
106
+ //# sourceMappingURL=native.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.service.js","sourceRoot":"","sources":["../../../../../apps/api/src/system/native.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Body, Controller, Get, Param, Post, Query } from '@nestjs/common';
14
+ import { NativeService } from './native.service.js';
15
+ import { SystemService } from './system.service.js';
16
+ import { JournalService } from './journal.service.js';
17
+ import { BrowserProfilesDto, ImportBrowserProfilesDto, NativeRequestDto, NativeResultDto, OpenFileDto, ProxyTestDto, } from './system.dto.js';
18
+ let SystemController = class SystemController {
19
+ native;
20
+ system;
21
+ journal;
22
+ constructor(native, system, journal) {
23
+ this.native = native;
24
+ this.system = system;
25
+ this.journal = journal;
26
+ }
27
+ disk() {
28
+ return this.system.diskSpace();
29
+ }
30
+ profiles(dto) {
31
+ return this.system.browserProfiles(dto.browser);
32
+ }
33
+ importProfiles(dto) {
34
+ return this.system.importBrowserProfiles(dto);
35
+ }
36
+ diagnostics(force) {
37
+ return this.system.diagnostics(force === 'true');
38
+ }
39
+ proxy(dto) {
40
+ return this.system.proxyTest(dto.proxy, dto.url);
41
+ }
42
+ open(dto) {
43
+ return this.system.open(dto.target, dto.taskId, dto.index);
44
+ }
45
+ report(taskId) {
46
+ return this.system.errorReport(taskId);
47
+ }
48
+ logs() {
49
+ return this.journal.read();
50
+ }
51
+ clearLogs() {
52
+ return this.journal.clear();
53
+ }
54
+ request(dto) {
55
+ return this.native.create(dto.kind, dto.purpose, dto.text);
56
+ }
57
+ pending() {
58
+ return { requests: this.native.pending() };
59
+ }
60
+ result(id) {
61
+ return this.native.get(id);
62
+ }
63
+ complete(id, dto) {
64
+ return this.native.complete(id, dto.value, dto.cancelled);
65
+ }
66
+ };
67
+ __decorate([
68
+ Get('disk'),
69
+ __metadata("design:type", Function),
70
+ __metadata("design:paramtypes", []),
71
+ __metadata("design:returntype", void 0)
72
+ ], SystemController.prototype, "disk", null);
73
+ __decorate([
74
+ Get('browser-profiles'),
75
+ __param(0, Query()),
76
+ __metadata("design:type", Function),
77
+ __metadata("design:paramtypes", [BrowserProfilesDto]),
78
+ __metadata("design:returntype", void 0)
79
+ ], SystemController.prototype, "profiles", null);
80
+ __decorate([
81
+ Post('browser-profiles'),
82
+ __param(0, Body()),
83
+ __metadata("design:type", Function),
84
+ __metadata("design:paramtypes", [ImportBrowserProfilesDto]),
85
+ __metadata("design:returntype", void 0)
86
+ ], SystemController.prototype, "importProfiles", null);
87
+ __decorate([
88
+ Get('diagnostics'),
89
+ __param(0, Query('force')),
90
+ __metadata("design:type", Function),
91
+ __metadata("design:paramtypes", [String]),
92
+ __metadata("design:returntype", void 0)
93
+ ], SystemController.prototype, "diagnostics", null);
94
+ __decorate([
95
+ Post('proxy-test'),
96
+ __param(0, Body()),
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", [ProxyTestDto]),
99
+ __metadata("design:returntype", void 0)
100
+ ], SystemController.prototype, "proxy", null);
101
+ __decorate([
102
+ Post('open'),
103
+ __param(0, Body()),
104
+ __metadata("design:type", Function),
105
+ __metadata("design:paramtypes", [OpenFileDto]),
106
+ __metadata("design:returntype", void 0)
107
+ ], SystemController.prototype, "open", null);
108
+ __decorate([
109
+ Get('error-report'),
110
+ __param(0, Query('taskId')),
111
+ __metadata("design:type", Function),
112
+ __metadata("design:paramtypes", [String]),
113
+ __metadata("design:returntype", void 0)
114
+ ], SystemController.prototype, "report", null);
115
+ __decorate([
116
+ Get('logs'),
117
+ __metadata("design:type", Function),
118
+ __metadata("design:paramtypes", []),
119
+ __metadata("design:returntype", void 0)
120
+ ], SystemController.prototype, "logs", null);
121
+ __decorate([
122
+ Post('logs/clear'),
123
+ __metadata("design:type", Function),
124
+ __metadata("design:paramtypes", []),
125
+ __metadata("design:returntype", void 0)
126
+ ], SystemController.prototype, "clearLogs", null);
127
+ __decorate([
128
+ Post('native'),
129
+ __param(0, Body()),
130
+ __metadata("design:type", Function),
131
+ __metadata("design:paramtypes", [NativeRequestDto]),
132
+ __metadata("design:returntype", void 0)
133
+ ], SystemController.prototype, "request", null);
134
+ __decorate([
135
+ Get('native'),
136
+ __metadata("design:type", Function),
137
+ __metadata("design:paramtypes", []),
138
+ __metadata("design:returntype", void 0)
139
+ ], SystemController.prototype, "pending", null);
140
+ __decorate([
141
+ Get('native/:id'),
142
+ __param(0, Param('id')),
143
+ __metadata("design:type", Function),
144
+ __metadata("design:paramtypes", [String]),
145
+ __metadata("design:returntype", void 0)
146
+ ], SystemController.prototype, "result", null);
147
+ __decorate([
148
+ Post('native/:id'),
149
+ __param(0, Param('id')),
150
+ __param(1, Body()),
151
+ __metadata("design:type", Function),
152
+ __metadata("design:paramtypes", [String, NativeResultDto]),
153
+ __metadata("design:returntype", void 0)
154
+ ], SystemController.prototype, "complete", null);
155
+ SystemController = __decorate([
156
+ Controller('system'),
157
+ __metadata("design:paramtypes", [NativeService,
158
+ SystemService,
159
+ JournalService])
160
+ ], SystemController);
161
+ export { SystemController };
162
+ //# sourceMappingURL=system.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.controller.js","sourceRoot":"","sources":["../../../../../apps/api/src/system/system.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { IsBoolean, IsArray, ArrayMaxSize, IsIn, IsInt, IsString, IsUUID, Max, MaxLength, Min, ValidateIf, ValidateNested, } from 'class-validator';
11
+ import { Type } from 'class-transformer';
12
+ import { NATIVE_KINDS } from '../../../shared/src/system.js';
13
+ export class BrowserProfilesDto {
14
+ browser;
15
+ }
16
+ __decorate([
17
+ IsIn(['chrome', 'edge', 'firefox', 'safari', 'brave', 'chromium']),
18
+ __metadata("design:type", String)
19
+ ], BrowserProfilesDto.prototype, "browser", void 0);
20
+ class BrowserAccountDto {
21
+ id;
22
+ name;
23
+ account;
24
+ }
25
+ __decorate([
26
+ IsString(),
27
+ MaxLength(100),
28
+ __metadata("design:type", String)
29
+ ], BrowserAccountDto.prototype, "id", void 0);
30
+ __decorate([
31
+ IsString(),
32
+ MaxLength(100),
33
+ __metadata("design:type", String)
34
+ ], BrowserAccountDto.prototype, "name", void 0);
35
+ __decorate([
36
+ IsString(),
37
+ MaxLength(300),
38
+ __metadata("design:type", String)
39
+ ], BrowserAccountDto.prototype, "account", void 0);
40
+ export class ImportBrowserProfilesDto extends BrowserProfilesDto {
41
+ sourcePath;
42
+ profiles;
43
+ }
44
+ __decorate([
45
+ IsString(),
46
+ MaxLength(4096),
47
+ __metadata("design:type", String)
48
+ ], ImportBrowserProfilesDto.prototype, "sourcePath", void 0);
49
+ __decorate([
50
+ IsArray(),
51
+ ArrayMaxSize(100),
52
+ ValidateNested({ each: true }),
53
+ Type(() => BrowserAccountDto),
54
+ __metadata("design:type", Array)
55
+ ], ImportBrowserProfilesDto.prototype, "profiles", void 0);
56
+ export class NativeRequestDto {
57
+ kind;
58
+ purpose;
59
+ text;
60
+ }
61
+ __decorate([
62
+ IsIn(NATIVE_KINDS),
63
+ __metadata("design:type", String)
64
+ ], NativeRequestDto.prototype, "kind", void 0);
65
+ __decorate([
66
+ IsString(),
67
+ MaxLength(300),
68
+ __metadata("design:type", String)
69
+ ], NativeRequestDto.prototype, "purpose", void 0);
70
+ __decorate([
71
+ ValidateIf((_object, value) => value !== undefined),
72
+ IsString(),
73
+ MaxLength(4096),
74
+ __metadata("design:type", String)
75
+ ], NativeRequestDto.prototype, "text", void 0);
76
+ export class NativeResultDto {
77
+ value;
78
+ cancelled;
79
+ }
80
+ __decorate([
81
+ IsString(),
82
+ MaxLength(4096),
83
+ __metadata("design:type", String)
84
+ ], NativeResultDto.prototype, "value", void 0);
85
+ __decorate([
86
+ ValidateIf((_object, value) => value !== undefined),
87
+ IsBoolean(),
88
+ __metadata("design:type", Boolean)
89
+ ], NativeResultDto.prototype, "cancelled", void 0);
90
+ export class ProxyTestDto {
91
+ proxy;
92
+ url;
93
+ }
94
+ __decorate([
95
+ ValidateIf((_object, value) => value !== undefined),
96
+ IsString(),
97
+ MaxLength(4096),
98
+ __metadata("design:type", String)
99
+ ], ProxyTestDto.prototype, "proxy", void 0);
100
+ __decorate([
101
+ ValidateIf((_object, value) => value !== undefined),
102
+ IsString(),
103
+ MaxLength(4096),
104
+ __metadata("design:type", String)
105
+ ], ProxyTestDto.prototype, "url", void 0);
106
+ export class OpenFileDto {
107
+ target;
108
+ taskId;
109
+ index;
110
+ }
111
+ __decorate([
112
+ IsIn(['artifact', 'reveal', 'task-folder', 'download-directory', 'runtime', 'logs']),
113
+ __metadata("design:type", String)
114
+ ], OpenFileDto.prototype, "target", void 0);
115
+ __decorate([
116
+ ValidateIf((_object, value) => value !== undefined),
117
+ IsUUID(),
118
+ __metadata("design:type", String)
119
+ ], OpenFileDto.prototype, "taskId", void 0);
120
+ __decorate([
121
+ ValidateIf((_object, value) => value !== undefined),
122
+ IsInt(),
123
+ Min(0),
124
+ Max(1000),
125
+ __metadata("design:type", Number)
126
+ ], OpenFileDto.prototype, "index", void 0);
127
+ //# sourceMappingURL=system.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.dto.js","sourceRoot":"","sources":["../../../../../apps/api/src/system/system.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { businessMessage } from '../../../shared/src/messages.js';
14
+ import { BadRequestException, Inject, Injectable } from '@nestjs/common';
15
+ import { stat, statfs, mkdir } from 'node:fs/promises';
16
+ import { dirname, isAbsolute, join, resolve } from 'node:path';
17
+ import { spawn } from 'node:child_process';
18
+ import { RuntimeService } from '../runtime/runtime.service.js';
19
+ import { MediaService } from '../media/media.service.js';
20
+ import { DATA_DIRECTORY } from '../storage/vault.store.js';
21
+ import { CookieService } from '../media/parsing/cookie.service.js';
22
+ import { getChromiumPath, getInstalledBrowsers } from '../media/parsing/browser-paths.js';
23
+ import { detectAria2 } from '../media/engines/aria2.js';
24
+ import { checkJsRuntime } from '../media/engines/js-runtime.js';
25
+ import { fetchNetwork } from '../common/network.js';
26
+ import { validateMediaUrl } from '../media/media.engine.js';
27
+ import { JournalService } from './journal.service.js';
28
+ import { safeIssueReport } from '../../../shared/src/parse-errors.js';
29
+ import { browserProfiles, saveBrowserProfiles } from './browser-profiles.js';
30
+ import { BRAND } from '../../../shared/src/brand.js';
31
+ let SystemService = class SystemService {
32
+ directory;
33
+ runtime;
34
+ media;
35
+ cookies;
36
+ journal;
37
+ constructor(directory, runtime, media, cookies, journal) {
38
+ this.directory = directory;
39
+ this.runtime = runtime;
40
+ this.media = media;
41
+ this.cookies = cookies;
42
+ this.journal = journal;
43
+ }
44
+ browserProfiles(browser) {
45
+ return browserProfiles(browser, this.directory);
46
+ }
47
+ importBrowserProfiles(dto) {
48
+ return saveBrowserProfiles(this.directory, dto.browser, dto.sourcePath, dto.profiles.map((profile) => ({ ...profile, label: '' })));
49
+ }
50
+ async diskSpace(directory = this.media.preferences().downloadDirectory) {
51
+ if (!isAbsolute(directory))
52
+ throw new BadRequestException(businessMessage('DIRECTORY_INVALID'));
53
+ let existing = resolve(directory);
54
+ while (!(await stat(existing).catch(() => undefined))) {
55
+ const parent = dirname(existing);
56
+ if (parent === existing)
57
+ break;
58
+ existing = parent;
59
+ }
60
+ const space = await statfs(existing, { bigint: true });
61
+ return {
62
+ directory,
63
+ resolvedDirectory: existing,
64
+ free: Number(space.bavail * space.bsize),
65
+ total: Number(space.blocks * space.bsize),
66
+ checkedAt: new Date().toISOString(),
67
+ };
68
+ }
69
+ async proxyTest(proxy = this.media.preferences().proxy, url = 'https://www.gstatic.com/generate_204', signal) {
70
+ if (proxy) {
71
+ let parsed;
72
+ try {
73
+ parsed = new URL(proxy);
74
+ }
75
+ catch {
76
+ throw new BadRequestException(businessMessage('PROXY_INVALID'));
77
+ }
78
+ if (!['http:', 'https:', 'socks5:', 'socks5h:'].includes(parsed.protocol) ||
79
+ parsed.username ||
80
+ parsed.password)
81
+ throw new BadRequestException(businessMessage('PROXY_CREDENTIALS'));
82
+ }
83
+ const target = await validateMediaUrl(url, signal);
84
+ const start = Date.now();
85
+ try {
86
+ const response = await fetchNetwork(target, {
87
+ method: 'HEAD',
88
+ proxy,
89
+ signal,
90
+ timeoutMs: 10_000,
91
+ });
92
+ await response.body?.cancel();
93
+ return {
94
+ connected: response.ok,
95
+ latencyMs: Date.now() - start,
96
+ status: response.status,
97
+ ...businessMessage(response.ok ? 'PROXY_CONNECTED' : 'PROXY_HTTP_STATUS', response.ok ? {} : { status: response.status }),
98
+ };
99
+ }
100
+ catch {
101
+ signal?.throwIfAborted();
102
+ return {
103
+ connected: false,
104
+ latencyMs: Date.now() - start,
105
+ status: 0,
106
+ ...businessMessage('PROXY_FAILED'),
107
+ };
108
+ }
109
+ }
110
+ async diagnostics(force = false, signal) {
111
+ const preferences = this.media.preferences();
112
+ const [runtime, acceleration, jsRuntime, cookies, disk] = await Promise.all([
113
+ this.runtime.status(preferences, signal, force),
114
+ detectAria2(preferences.acceleration?.aria2Path ?? '', join(this.directory, 'runtime/bin'), signal),
115
+ checkJsRuntime(signal),
116
+ this.cookies.status(preferences),
117
+ this.diskSpace(),
118
+ ]);
119
+ return {
120
+ version: BRAND.version,
121
+ platform: `${process.platform}-${process.arch}`,
122
+ runtime,
123
+ acceleration,
124
+ jsRuntime,
125
+ cookies,
126
+ disk,
127
+ browser: { path: getChromiumPath(), installed: getInstalledBrowsers() },
128
+ };
129
+ }
130
+ async errorReport(taskId) {
131
+ const message = taskId ? this.media.get(taskId).message : 'unknown';
132
+ const report = safeIssueReport(message, '');
133
+ return {
134
+ title: report.title.replace('[Bug]', '[拾流]'),
135
+ body: `${report.body}\n\n插件版本:${BRAND.version}\n请确认已移除个人信息后,再将草稿提交给维护者。`,
136
+ };
137
+ }
138
+ async open(target, taskId, index = 0) {
139
+ let path;
140
+ if (target === 'artifact' || target === 'reveal') {
141
+ if (!taskId)
142
+ throw new BadRequestException(businessMessage('TASK_REQUIRED'));
143
+ path = (await this.media.artifact(taskId, index)).path;
144
+ }
145
+ else if (target === 'task-folder') {
146
+ if (!taskId)
147
+ throw new BadRequestException(businessMessage('TASK_REQUIRED'));
148
+ path = this.media.get(taskId).outputDirectory;
149
+ }
150
+ else if (target === 'runtime')
151
+ path = join(this.directory, 'runtime/bin');
152
+ else if (target === 'logs')
153
+ path = this.journal.directory;
154
+ else if (target === 'download-directory')
155
+ path = this.media.preferences().downloadDirectory;
156
+ else
157
+ throw new BadRequestException(businessMessage('OPEN_TARGET_INVALID'));
158
+ if (!['artifact', 'reveal'].includes(target))
159
+ await mkdir(path, { recursive: true });
160
+ const command = process.platform === 'darwin'
161
+ ? 'open'
162
+ : process.platform === 'win32'
163
+ ? 'explorer.exe'
164
+ : 'xdg-open';
165
+ const args = process.platform === 'darwin' && target === 'reveal'
166
+ ? ['-R', path]
167
+ : process.platform === 'win32' && target === 'reveal'
168
+ ? [`/select,${path}`]
169
+ : [target === 'reveal' ? dirname(path) : path];
170
+ await new Promise((resolve, reject) => {
171
+ const child = spawn(command, args, { stdio: 'ignore', windowsHide: true, detached: true });
172
+ child.once('error', reject);
173
+ child.once('spawn', () => {
174
+ child.unref();
175
+ resolve();
176
+ });
177
+ });
178
+ this.journal.write('system.open', { category: target });
179
+ return { accepted: true, target, path };
180
+ }
181
+ };
182
+ SystemService = __decorate([
183
+ Injectable(),
184
+ __param(0, Inject(DATA_DIRECTORY)),
185
+ __metadata("design:paramtypes", [String, RuntimeService,
186
+ MediaService,
187
+ CookieService,
188
+ JournalService])
189
+ ], SystemService);
190
+ export { SystemService };
191
+ //# sourceMappingURL=system.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.service.js","sourceRoot":"","sources":["../../../../../apps/api/src/system/system.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export const BRAND = {
2
+ id: 'streamnest',
3
+ version: '0.0.1',
4
+ name: '拾流',
5
+ englishName: 'StreamNest',
6
+ description: '解析音视频链接,选择画质并保存到本机;页面与 Agent 共用同一下载队列。',
7
+ englishDescription: 'Parse media links, choose quality and save locally, with a shared queue for the UI and Agent.',
8
+ };
9
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../../../../apps/shared/src/brand.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,EAAE,EAAE,YAAY;IAChB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,wCAAwC;IACrD,kBAAkB,EAChB,+FAA+F;CACzF,CAAC"}