@onivoro/app-server-bucketvore 24.31.2 → 24.31.3
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.
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(()=>{"use strict";function e(){return{selectedBucket:"",currentPrefix:"",buckets:[],files:[],folders:[],viewMode:"list",bucketsHtml:'<div class="loading"><div class="spinner"></div><p>Loading buckets...</p></div>',filesHtml:"",breadcrumbsHtml:"",bucketFilter:"",fileFilter:"",showUpload:!1,showPreview:!1,uploadProgress:[],uploadProgressHtml:"",previewHtml:"",activeTab:"data",get filteredBucketsHtml(){if(!this.bucketFilter.trim())return this.bucketsHtml;const e=(new DOMParser).parseFromString(this.bucketsHtml,"text/html");return e.querySelectorAll(".bucket-item").forEach(e=>{(e.querySelector(".bucket-name")?.textContent?.toLowerCase()||"").includes(this.bucketFilter.toLowerCase())?e.style.display="":e.style.display="none"}),0===e.querySelectorAll('.bucket-item:not([style*="display: none"])').length?'<div class="empty-state"><div class="empty-state-icon">🔍</div><p>No buckets match your filter</p></div>':e.body.innerHTML},get filteredFilesHtml(){if(!this.fileFilter.trim()||!this.filesHtml)return this.filesHtml;const e=(new DOMParser).parseFromString(this.filesHtml,"text/html");return e.querySelectorAll(".file-item").forEach(e=>{(e.querySelector(".file-name")?.textContent?.toLowerCase()||"").includes(this.fileFilter.toLowerCase())?e.style.display="":e.style.display="none"}),0===e.querySelectorAll('.file-item:not([style*="display: none"])').length?'<div class="empty-state"><div class="empty-state-icon">🔍</div><p>No files match your filter</p></div>':e.body.innerHTML},async init(){await this.loadBuckets()},async loadBuckets(){try{const e=await fetch("/api/buckets");this.bucketsHtml=await e.text()}catch(e){this.bucketsHtml='<div class="error"><div class="error-icon">⚠️</div><p>Error loading buckets</p></div>'}},async selectBucket(e){this.selectedBucket=e,this.currentPrefix="",this.fileFilter="",await this.loadFiles()},async loadFiles(){try{const e=new URLSearchParams({bucket:this.selectedBucket,prefix:this.currentPrefix}),t=await fetch(`/api/files?${e}`),i=await t.json();this.filesHtml=i.filesHtml||"",this.breadcrumbsHtml=i.breadcrumbsHtml||""}catch(e){this.filesHtml='<div class="error"><div class="error-icon">⚠️</div><p>Error loading files</p></div>'}},async navigateToFolder(e){this.currentPrefix=e,this.fileFilter="",await this.loadFiles()},async previewFile(e){try{const t=new URLSearchParams({bucket:this.selectedBucket,key:e}),i=await fetch(`/api/files/preview?${t}`);this.previewHtml=await i.text(),this.showPreview=!0}catch(e){alert("Error loading preview")}},closePreview(){this.showPreview=!1,this.previewHtml=""},async downloadFile(e){try{const t=new URLSearchParams({bucket:this.selectedBucket,key:e}),i=await fetch(`/api/files/download?${t}`),s=await i.json();window.open(s.url,"_blank")}catch(e){alert("Error generating download link")}},async deleteFile(e){if(confirm(`Delete ${e}?`))try{await fetch("/api/files/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({bucket:this.selectedBucket,key:e})}),await this.loadFiles()}catch(e){alert("Error deleting file")}},async copyS3Path(e){const t=event?.target;await async function(e,t,i){try{const s=await fetch(`/api/buckets/${encodeURIComponent(e)}/region`),a=`https://s3.${(await s.json()).region||"us-east-1"}.amazonaws.com/${e}/${t}`;await async function(e,t){try{if(await navigator.clipboard.writeText(e),t){const e=t.textContent||"",i=t.style.backgroundColor;t.textContent="✓ Copied!",t.style.backgroundColor="var(--color-success)",setTimeout(()=>{t.textContent=e,t.style.backgroundColor=i},1500)}return!0}catch(t){return console.error("Clipboard API failed:",t),null!==prompt("Copy to clipboard:",e)}}(a,i)}catch(i){console.error("Error getting S3 URL:",i),prompt("Copy S3 path (fallback):",`s3://${e}/${t}`)}}(this.selectedBucket,e,t)},async deleteFolder(e){if(confirm(`Delete folder ${e} and all its contents?`))try{await fetch("/api/files/delete-folder",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({bucket:this.selectedBucket,prefix:e})}),await this.loadFiles()}catch(e){alert("Error deleting folder")}},handleFileSelect(e){const t=e.target;if(t.files){const e=Array.from(t.files);this.uploadFiles(e)}},handleDrop(e){if(e.target.classList.remove("drag-over"),e.dataTransfer?.files){const t=Array.from(e.dataTransfer.files);this.uploadFiles(t)}},async uploadFiles(e){this.uploadProgress=e.map(e=>({name:e.name,status:"Uploading..."}));for(let t=0;t<e.length;t++){const i=e[t],s=new FormData;s.append("file",i),s.append("bucket",this.selectedBucket),s.append("prefix",this.currentPrefix);try{await fetch("/api/upload",{method:"POST",body:s}),this.uploadProgress[t].status="✓ Complete"}catch(e){this.uploadProgress[t].status="✗ Failed"}}setTimeout(async()=>{this.uploadProgress=[],this.showUpload=!1,await this.loadFiles()},2e3)},async refresh(){await this.loadFiles()},filterBuckets(){},filterFiles(){}}}"undefined"!=typeof window&&(window.Alpine?window.Alpine.data("s3Explorer",e):document.addEventListener("alpine:init",()=>{window.Alpine.data("s3Explorer",e)}))})();
|
|
2
|
+
//# sourceMappingURL=s3-explorer.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-explorer.bundle.js","mappings":"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","sources":["webpack://onivoro/./apps/server/bucketvore/src/app/client/s3-explorer.client.ts","webpack://onivoro/./apps/server/bucketvore/src/app/client/utils/clipboard.client.ts"],"sourcesContent":["/**\n * S3 Explorer Alpine.js Component\n * Client-side TypeScript with full IDE support\n */\n\nimport { copyS3PathToClipboard } from './utils/clipboard.client';\nimport type { S3ClientState, UploadProgress } from '../shared/types.shared';\n\ndeclare global {\n interface Window {\n Alpine: any;\n }\n}\n\nexport function s3Explorer(): S3ClientState & Record<string, any> {\n return {\n // State\n selectedBucket: '',\n currentPrefix: '',\n buckets: [],\n files: [],\n folders: [],\n viewMode: 'list',\n bucketsHtml: '<div class=\"loading\"><div class=\"spinner\"></div><p>Loading buckets...</p></div>',\n filesHtml: '',\n breadcrumbsHtml: '',\n bucketFilter: '',\n fileFilter: '',\n showUpload: false,\n showPreview: false,\n uploadProgress: [] as UploadProgress[],\n uploadProgressHtml: '',\n previewHtml: '',\n activeTab: 'data',\n\n // Computed properties\n get filteredBucketsHtml(): string {\n if (!this.bucketFilter.trim()) {\n return this.bucketsHtml;\n }\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(this.bucketsHtml, 'text/html');\n const bucketItems = doc.querySelectorAll('.bucket-item');\n\n bucketItems.forEach((item) => {\n const bucketName = item.querySelector('.bucket-name')?.textContent?.toLowerCase() || '';\n if (bucketName.includes(this.bucketFilter.toLowerCase())) {\n (item as HTMLElement).style.display = '';\n } else {\n (item as HTMLElement).style.display = 'none';\n }\n });\n\n const visibleCount = doc.querySelectorAll('.bucket-item:not([style*=\"display: none\"])').length;\n if (visibleCount === 0) {\n return '<div class=\"empty-state\"><div class=\"empty-state-icon\">🔍</div><p>No buckets match your filter</p></div>';\n }\n\n return doc.body.innerHTML;\n },\n\n get filteredFilesHtml(): string {\n if (!this.fileFilter.trim() || !this.filesHtml) {\n return this.filesHtml;\n }\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(this.filesHtml, 'text/html');\n const fileItems = doc.querySelectorAll('.file-item');\n\n fileItems.forEach((item) => {\n const fileName = item.querySelector('.file-name')?.textContent?.toLowerCase() || '';\n if (fileName.includes(this.fileFilter.toLowerCase())) {\n (item as HTMLElement).style.display = '';\n } else {\n (item as HTMLElement).style.display = 'none';\n }\n });\n\n const visibleCount = doc.querySelectorAll('.file-item:not([style*=\"display: none\"])').length;\n if (visibleCount === 0) {\n return '<div class=\"empty-state\"><div class=\"empty-state-icon\">🔍</div><p>No files match your filter</p></div>';\n }\n\n return doc.body.innerHTML;\n },\n\n // Initialization\n async init(): Promise<void> {\n await this.loadBuckets();\n },\n\n // API Methods\n async loadBuckets(): Promise<void> {\n try {\n const response = await fetch('/api/buckets');\n this.bucketsHtml = await response.text();\n } catch (error) {\n this.bucketsHtml = '<div class=\"error\"><div class=\"error-icon\">⚠️</div><p>Error loading buckets</p></div>';\n }\n },\n\n async selectBucket(bucketName: string): Promise<void> {\n this.selectedBucket = bucketName;\n this.currentPrefix = '';\n this.fileFilter = '';\n await this.loadFiles();\n },\n\n async loadFiles(): Promise<void> {\n try {\n const params = new URLSearchParams({\n bucket: this.selectedBucket,\n prefix: this.currentPrefix\n });\n\n const response = await fetch(`/api/files?${params}`);\n const data = await response.json();\n\n this.filesHtml = data.filesHtml || '';\n this.breadcrumbsHtml = data.breadcrumbsHtml || '';\n } catch (error) {\n this.filesHtml = '<div class=\"error\"><div class=\"error-icon\">⚠️</div><p>Error loading files</p></div>';\n }\n },\n\n async navigateToFolder(prefix: string): Promise<void> {\n this.currentPrefix = prefix;\n this.fileFilter = '';\n await this.loadFiles();\n },\n\n async previewFile(key: string): Promise<void> {\n try {\n const params = new URLSearchParams({\n bucket: this.selectedBucket,\n key: key\n });\n\n const response = await fetch(`/api/files/preview?${params}`);\n this.previewHtml = await response.text();\n this.showPreview = true;\n } catch (error) {\n alert('Error loading preview');\n }\n },\n\n closePreview(): void {\n this.showPreview = false;\n this.previewHtml = '';\n },\n\n async downloadFile(key: string): Promise<void> {\n try {\n const params = new URLSearchParams({\n bucket: this.selectedBucket,\n key: key\n });\n\n const response = await fetch(`/api/files/download?${params}`);\n const data = await response.json();\n window.open(data.url, '_blank');\n } catch (error) {\n alert('Error generating download link');\n }\n },\n\n async deleteFile(key: string): Promise<void> {\n if (!confirm(`Delete ${key}?`)) return;\n\n try {\n await fetch(`/api/files/delete`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ bucket: this.selectedBucket, key })\n });\n await this.loadFiles();\n } catch (error) {\n alert('Error deleting file');\n }\n },\n\n async copyS3Path(key: string): Promise<void> {\n const element = (event as any)?.target as HTMLElement | undefined;\n await copyS3PathToClipboard(this.selectedBucket, key, element);\n },\n\n async deleteFolder(prefix: string): Promise<void> {\n if (!confirm(`Delete folder ${prefix} and all its contents?`)) return;\n\n try {\n await fetch(`/api/files/delete-folder`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ bucket: this.selectedBucket, prefix })\n });\n await this.loadFiles();\n } catch (error) {\n alert('Error deleting folder');\n }\n },\n\n // Upload functionality\n handleFileSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (input.files) {\n const files = Array.from(input.files);\n this.uploadFiles(files);\n }\n },\n\n handleDrop(event: DragEvent): void {\n (event.target as HTMLElement).classList.remove('drag-over');\n if (event.dataTransfer?.files) {\n const files = Array.from(event.dataTransfer.files);\n this.uploadFiles(files);\n }\n },\n\n async uploadFiles(files: File[]): Promise<void> {\n this.uploadProgress = files.map(f => ({ name: f.name, status: 'Uploading...' }));\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const formData = new FormData();\n formData.append('file', file);\n formData.append('bucket', this.selectedBucket);\n formData.append('prefix', this.currentPrefix);\n\n try {\n await fetch('/api/upload', {\n method: 'POST',\n body: formData\n });\n this.uploadProgress[i].status = '✓ Complete';\n } catch (error) {\n this.uploadProgress[i].status = '✗ Failed';\n }\n }\n\n setTimeout(async () => {\n this.uploadProgress = [];\n this.showUpload = false;\n await this.loadFiles();\n }, 2000);\n },\n\n async refresh(): Promise<void> {\n await this.loadFiles();\n },\n\n filterBuckets(): void {\n // Reactive computed property handles this\n },\n\n filterFiles(): void {\n // Reactive computed property handles this\n }\n };\n}\n\n// Auto-register with Alpine when it initializes\nif (typeof window !== 'undefined') {\n // Register immediately if Alpine is already available\n if ((window as any).Alpine) {\n (window as any).Alpine.data('s3Explorer', s3Explorer);\n } else {\n // Otherwise wait for Alpine to initialize\n document.addEventListener('alpine:init', () => {\n (window as any).Alpine.data('s3Explorer', s3Explorer);\n });\n }\n}\n","/**\n * Client-side utility for clipboard operations\n */\n\nexport async function copyToClipboard(text: string, element?: HTMLElement): Promise<boolean> {\n try {\n await navigator.clipboard.writeText(text);\n\n // Provide visual feedback if element is provided\n if (element) {\n const originalText = element.textContent || '';\n const originalBg = element.style.backgroundColor;\n\n element.textContent = '✓ Copied!';\n element.style.backgroundColor = 'var(--color-success)';\n\n setTimeout(() => {\n element.textContent = originalText;\n element.style.backgroundColor = originalBg;\n }, 1500);\n }\n\n return true;\n } catch (error) {\n console.error('Clipboard API failed:', error);\n\n // Fallback to prompt\n const userCopy = prompt('Copy to clipboard:', text);\n return userCopy !== null;\n }\n}\n\nexport async function copyS3PathToClipboard(\n bucket: string,\n key: string,\n element?: HTMLElement\n): Promise<void> {\n try {\n // Fetch bucket region\n const response = await fetch(`/api/buckets/${encodeURIComponent(bucket)}/region`);\n const data = await response.json();\n const region = data.region || 'us-east-1';\n\n // Construct HTTPS URL\n const url = `https://s3.${region}.amazonaws.com/${bucket}/${key}`;\n\n await copyToClipboard(url, element);\n } catch (error) {\n console.error('Error getting S3 URL:', error);\n\n // Fallback to s3:// protocol\n const s3Path = `s3://${bucket}/${key}`;\n prompt('Copy S3 path (fallback):', s3Path);\n }\n}\n"],"names":["s3Explorer","selectedBucket","currentPrefix","buckets","files","folders","viewMode","bucketsHtml","filesHtml","breadcrumbsHtml","bucketFilter","fileFilter","showUpload","showPreview","uploadProgress","uploadProgressHtml","previewHtml","activeTab","filteredBucketsHtml","this","trim","doc","DOMParser","parseFromString","querySelectorAll","forEach","item","querySelector","textContent","toLowerCase","includes","style","display","length","body","innerHTML","filteredFilesHtml","init","loadBuckets","response","fetch","text","error","selectBucket","bucketName","loadFiles","params","URLSearchParams","bucket","prefix","data","json","navigateToFolder","previewFile","key","alert","closePreview","downloadFile","window","open","url","deleteFile","confirm","method","headers","JSON","stringify","copyS3Path","element","event","target","async","encodeURIComponent","region","navigator","clipboard","writeText","originalText","originalBg","backgroundColor","setTimeout","console","prompt","copyToClipboard","copyS3PathToClipboard","deleteFolder","handleFileSelect","input","Array","from","uploadFiles","handleDrop","classList","remove","dataTransfer","map","f","name","status","i","file","formData","FormData","append","refresh","filterBuckets","filterFiles","Alpine","document","addEventListener"],"sourceRoot":""}
|
package/main.js
CHANGED
|
@@ -10,10 +10,15 @@
|
|
|
10
10
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11
11
|
exports.bootstrap = bootstrap;
|
|
12
12
|
const core_1 = __webpack_require__(2);
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const path_1 = __webpack_require__(3);
|
|
14
|
+
const app_server_bucketvore_module_1 = __webpack_require__(4);
|
|
15
|
+
const app_server_bucketvore_config_class_1 = __webpack_require__(44);
|
|
15
16
|
async function bootstrap() {
|
|
16
17
|
const app = await core_1.NestFactory.create(app_server_bucketvore_module_1.AppServerBucketvoreModule, { logger: console });
|
|
18
|
+
// Serve static assets (including client bundles)
|
|
19
|
+
app.useStaticAssets((0, path_1.join)(__dirname, 'assets'), {
|
|
20
|
+
prefix: '/assets/',
|
|
21
|
+
});
|
|
17
22
|
const port = Number(new app_server_bucketvore_config_class_1.AppServerBucketvoreConfig().HTTP_PORT);
|
|
18
23
|
await app.listen(port);
|
|
19
24
|
console.log(`BucketVore available at: http://localhost:${port}`);
|
|
@@ -28,23 +33,29 @@ module.exports = require("@nestjs/core");
|
|
|
28
33
|
|
|
29
34
|
/***/ }),
|
|
30
35
|
/* 3 */
|
|
36
|
+
/***/ ((module) => {
|
|
37
|
+
|
|
38
|
+
module.exports = require("path");
|
|
39
|
+
|
|
40
|
+
/***/ }),
|
|
41
|
+
/* 4 */
|
|
31
42
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
32
43
|
|
|
33
44
|
|
|
34
45
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
35
46
|
exports.AppServerBucketvoreModule = void 0;
|
|
36
|
-
const tslib_1 = __webpack_require__(
|
|
37
|
-
const common_1 = __webpack_require__(
|
|
38
|
-
const app_controller_1 = __webpack_require__(
|
|
39
|
-
const buckets_controller_1 = __webpack_require__(
|
|
40
|
-
const files_controller_1 = __webpack_require__(
|
|
41
|
-
const upload_controller_1 = __webpack_require__(
|
|
42
|
-
const app_server_bucketvore_config_class_1 = __webpack_require__(
|
|
43
|
-
const client_s3_1 = __webpack_require__(
|
|
44
|
-
const credential_providers_1 = __webpack_require__(
|
|
45
|
-
const s3_service_1 = __webpack_require__(
|
|
46
|
-
const html_generator_service_1 = __webpack_require__(
|
|
47
|
-
const file_preview_service_1 = __webpack_require__(
|
|
47
|
+
const tslib_1 = __webpack_require__(5);
|
|
48
|
+
const common_1 = __webpack_require__(6);
|
|
49
|
+
const app_controller_1 = __webpack_require__(7);
|
|
50
|
+
const buckets_controller_1 = __webpack_require__(46);
|
|
51
|
+
const files_controller_1 = __webpack_require__(53);
|
|
52
|
+
const upload_controller_1 = __webpack_require__(54);
|
|
53
|
+
const app_server_bucketvore_config_class_1 = __webpack_require__(44);
|
|
54
|
+
const client_s3_1 = __webpack_require__(48);
|
|
55
|
+
const credential_providers_1 = __webpack_require__(50);
|
|
56
|
+
const s3_service_1 = __webpack_require__(47);
|
|
57
|
+
const html_generator_service_1 = __webpack_require__(51);
|
|
58
|
+
const file_preview_service_1 = __webpack_require__(52);
|
|
48
59
|
const bucketvoreConfig = new app_server_bucketvore_config_class_1.AppServerBucketvoreConfig();
|
|
49
60
|
let AppServerBucketvoreModule = class AppServerBucketvoreModule {
|
|
50
61
|
};
|
|
@@ -81,30 +92,30 @@ exports.AppServerBucketvoreModule = AppServerBucketvoreModule = tslib_1.__decora
|
|
|
81
92
|
|
|
82
93
|
|
|
83
94
|
/***/ }),
|
|
84
|
-
/*
|
|
95
|
+
/* 5 */
|
|
85
96
|
/***/ ((module) => {
|
|
86
97
|
|
|
87
98
|
module.exports = require("tslib");
|
|
88
99
|
|
|
89
100
|
/***/ }),
|
|
90
|
-
/*
|
|
101
|
+
/* 6 */
|
|
91
102
|
/***/ ((module) => {
|
|
92
103
|
|
|
93
104
|
module.exports = require("@nestjs/common");
|
|
94
105
|
|
|
95
106
|
/***/ }),
|
|
96
|
-
/*
|
|
107
|
+
/* 7 */
|
|
97
108
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
98
109
|
|
|
99
110
|
|
|
100
111
|
var _a;
|
|
101
112
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
102
113
|
exports.AppController = void 0;
|
|
103
|
-
const tslib_1 = __webpack_require__(
|
|
104
|
-
const common_1 = __webpack_require__(
|
|
105
|
-
const server_html_1 = __webpack_require__(
|
|
106
|
-
const app_server_bucketvore_config_class_1 = __webpack_require__(
|
|
107
|
-
const design_system_1 = __webpack_require__(
|
|
114
|
+
const tslib_1 = __webpack_require__(5);
|
|
115
|
+
const common_1 = __webpack_require__(6);
|
|
116
|
+
const server_html_1 = __webpack_require__(8);
|
|
117
|
+
const app_server_bucketvore_config_class_1 = __webpack_require__(44);
|
|
118
|
+
const design_system_1 = __webpack_require__(45);
|
|
108
119
|
let AppController = class AppController {
|
|
109
120
|
constructor(config) {
|
|
110
121
|
this.config = config;
|
|
@@ -118,8 +129,12 @@ let AppController = class AppController {
|
|
|
118
129
|
(0, server_html_1.$meta)({ charset: 'UTF-8' }),
|
|
119
130
|
(0, server_html_1.$meta)({ name: 'viewport', content: 'width=device-width, initial-scale=1.0' }),
|
|
120
131
|
(0, server_html_1.$title)({ textContent: 'BucketVore - S3 File Explorer' }),
|
|
121
|
-
(0, server_html_1.$
|
|
122
|
-
(0, server_html_1.$style)({ textContent: design_system_1.DESIGN_SYSTEM_STYLES })
|
|
132
|
+
(0, server_html_1.$link)({ rel: 'icon', type: 'image/x-icon', href: '/assets/images/bear.ico' }),
|
|
133
|
+
(0, server_html_1.$style)({ textContent: design_system_1.DESIGN_SYSTEM_STYLES }),
|
|
134
|
+
// Load our Alpine component first
|
|
135
|
+
(0, server_html_1.$script)({ src: '/assets/scripts/s3-explorer.bundle.js' }),
|
|
136
|
+
// Then load Alpine.js (will auto-start after DOM ready)
|
|
137
|
+
(0, server_html_1.$script)({ src: 'https://unpkg.com/alpinejs@3.13.5/dist/cdn.min.js', defer: true })
|
|
123
138
|
]
|
|
124
139
|
}),
|
|
125
140
|
(0, server_html_1.$body)({
|
|
@@ -312,270 +327,8 @@ let AppController = class AppController {
|
|
|
312
327
|
})
|
|
313
328
|
]
|
|
314
329
|
}),
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
function s3Explorer() {
|
|
318
|
-
return {
|
|
319
|
-
selectedBucket: '',
|
|
320
|
-
currentPrefix: '',
|
|
321
|
-
viewMode: 'list',
|
|
322
|
-
showUpload: false,
|
|
323
|
-
showPreview: false,
|
|
324
|
-
uploadProgress: [],
|
|
325
|
-
|
|
326
|
-
bucketFilter: '',
|
|
327
|
-
fileFilter: '',
|
|
328
|
-
allBuckets: [],
|
|
329
|
-
allFilesData: { filesHtml: '', breadcrumbsHtml: '' },
|
|
330
|
-
|
|
331
|
-
bucketsHtml: '<div class="loading"><div class="spinner"></div><p>Loading buckets...</p></div>',
|
|
332
|
-
breadcrumbsHtml: '',
|
|
333
|
-
filesHtml: '<div class="empty-state"><div class="empty-state-icon">🪣</div><p>Select a bucket to browse files</p></div>',
|
|
334
|
-
previewHtml: '',
|
|
335
|
-
|
|
336
|
-
get filteredBucketsHtml() {
|
|
337
|
-
if (!this.bucketFilter.trim()) {
|
|
338
|
-
return this.bucketsHtml;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
const filter = this.bucketFilter.toLowerCase();
|
|
342
|
-
const parser = new DOMParser();
|
|
343
|
-
const doc = parser.parseFromString(this.bucketsHtml, 'text/html');
|
|
344
|
-
const bucketItems = doc.querySelectorAll('.bucket-item');
|
|
345
|
-
|
|
346
|
-
let filtered = '';
|
|
347
|
-
bucketItems.forEach(item => {
|
|
348
|
-
const bucketName = item.querySelector('.bucket-name')?.textContent?.toLowerCase() || '';
|
|
349
|
-
if (bucketName.includes(filter)) {
|
|
350
|
-
filtered += item.outerHTML;
|
|
351
|
-
}
|
|
352
|
-
});
|
|
353
|
-
|
|
354
|
-
if (!filtered) {
|
|
355
|
-
return '<div class="empty-state"><div class="empty-state-icon">🔍</div><p>No buckets match your filter</p></div>';
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
return filtered;
|
|
359
|
-
},
|
|
360
|
-
|
|
361
|
-
get filteredFilesHtml() {
|
|
362
|
-
if (!this.fileFilter.trim()) {
|
|
363
|
-
return this.filesHtml;
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
const filter = this.fileFilter.toLowerCase();
|
|
367
|
-
const parser = new DOMParser();
|
|
368
|
-
const doc = parser.parseFromString(this.filesHtml, 'text/html');
|
|
369
|
-
const fileItems = doc.querySelectorAll('.file-item');
|
|
370
|
-
|
|
371
|
-
let filtered = '';
|
|
372
|
-
fileItems.forEach(item => {
|
|
373
|
-
const fileName = item.querySelector('.file-name')?.textContent?.toLowerCase() || '';
|
|
374
|
-
if (fileName.includes(filter)) {
|
|
375
|
-
filtered += item.outerHTML;
|
|
376
|
-
}
|
|
377
|
-
});
|
|
378
|
-
|
|
379
|
-
if (!filtered) {
|
|
380
|
-
return '<div class="empty-state"><div class="empty-state-icon">🔍</div><p>No files match your filter</p></div>';
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
return filtered;
|
|
384
|
-
},
|
|
385
|
-
|
|
386
|
-
get uploadProgressHtml() {
|
|
387
|
-
return this.uploadProgress.map(f =>
|
|
388
|
-
\`<div style="margin-bottom: var(--space-2)">
|
|
389
|
-
<div style="display: flex; justify-content: space-between; font-size: var(--size-sm); margin-bottom: var(--space-1)">
|
|
390
|
-
<span>\${f.name}</span>
|
|
391
|
-
<span>\${f.status}</span>
|
|
392
|
-
</div>
|
|
393
|
-
</div>\`
|
|
394
|
-
).join('');
|
|
395
|
-
},
|
|
396
|
-
|
|
397
|
-
async init() {
|
|
398
|
-
await this.loadBuckets();
|
|
399
|
-
},
|
|
400
|
-
|
|
401
|
-
async loadBuckets() {
|
|
402
|
-
try {
|
|
403
|
-
const response = await fetch('/api/buckets');
|
|
404
|
-
this.bucketsHtml = await response.text();
|
|
405
|
-
} catch (error) {
|
|
406
|
-
this.bucketsHtml = '<div class="error"><div class="error-icon">⚠️</div><p>Error loading buckets</p></div>';
|
|
407
|
-
}
|
|
408
|
-
},
|
|
409
|
-
|
|
410
|
-
async selectBucket(bucket) {
|
|
411
|
-
this.selectedBucket = bucket;
|
|
412
|
-
this.currentPrefix = '';
|
|
413
|
-
await this.loadFiles();
|
|
414
|
-
},
|
|
415
|
-
|
|
416
|
-
async loadFiles() {
|
|
417
|
-
try {
|
|
418
|
-
this.filesHtml = '<div class="loading"><div class="spinner"></div><p>Loading files...</p></div>';
|
|
419
|
-
this.fileFilter = ''; // Reset filter when navigating
|
|
420
|
-
const url = \`/api/files?bucket=\${this.selectedBucket}&prefix=\${encodeURIComponent(this.currentPrefix)}\`;
|
|
421
|
-
const response = await fetch(url);
|
|
422
|
-
|
|
423
|
-
const data = await response.json();
|
|
424
|
-
this.filesHtml = data.filesHtml;
|
|
425
|
-
this.breadcrumbsHtml = data.breadcrumbsHtml;
|
|
426
|
-
} catch (error) {
|
|
427
|
-
this.filesHtml = '<div class="error"><div class="error-icon">⚠️</div><p>Error loading files</p></div>';
|
|
428
|
-
}
|
|
429
|
-
},
|
|
430
|
-
|
|
431
|
-
async navigateToFolder(prefix) {
|
|
432
|
-
this.currentPrefix = prefix;
|
|
433
|
-
await this.loadFiles();
|
|
434
|
-
},
|
|
435
|
-
|
|
436
|
-
async previewFile(key) {
|
|
437
|
-
try {
|
|
438
|
-
this.showPreview = true;
|
|
439
|
-
this.previewHtml = '<div class="loading"><div class="spinner"></div><p>Loading preview...</p></div>';
|
|
440
|
-
|
|
441
|
-
const response = await fetch(\`/api/files/preview?bucket=\${this.selectedBucket}&key=\${encodeURIComponent(key)}\`);
|
|
442
|
-
this.previewHtml = await response.text();
|
|
443
|
-
} catch (error) {
|
|
444
|
-
this.previewHtml = '<div class="error"><div class="error-icon">⚠️</div><p>Error loading preview</p></div>';
|
|
445
|
-
}
|
|
446
|
-
},
|
|
447
|
-
|
|
448
|
-
closePreview() {
|
|
449
|
-
this.showPreview = false;
|
|
450
|
-
this.previewHtml = '';
|
|
451
|
-
},
|
|
452
|
-
|
|
453
|
-
async downloadFile(key) {
|
|
454
|
-
try {
|
|
455
|
-
const response = await fetch(\`/api/files/download?bucket=\${this.selectedBucket}&key=\${encodeURIComponent(key)}\`);
|
|
456
|
-
const data = await response.json();
|
|
457
|
-
window.open(data.url, '_blank');
|
|
458
|
-
} catch (error) {
|
|
459
|
-
alert('Error generating download link');
|
|
460
|
-
}
|
|
461
|
-
},
|
|
462
|
-
|
|
463
|
-
async deleteFile(key) {
|
|
464
|
-
if (!confirm(\`Delete \${key}?\`)) return;
|
|
465
|
-
|
|
466
|
-
try {
|
|
467
|
-
await fetch(\`/api/files/delete\`, {
|
|
468
|
-
method: 'POST',
|
|
469
|
-
headers: { 'Content-Type': 'application/json' },
|
|
470
|
-
body: JSON.stringify({ bucket: this.selectedBucket, key })
|
|
471
|
-
});
|
|
472
|
-
await this.loadFiles();
|
|
473
|
-
} catch (error) {
|
|
474
|
-
alert('Error deleting file');
|
|
475
|
-
}
|
|
476
|
-
},
|
|
477
|
-
|
|
478
|
-
async copyS3Path(key, target) {
|
|
479
|
-
try {
|
|
480
|
-
// First fetch the bucket region
|
|
481
|
-
const regionResponse = await fetch(\`/api/buckets/\${this.selectedBucket}/region\`);
|
|
482
|
-
const regionData = await regionResponse.json();
|
|
483
|
-
console.warn({regionData});
|
|
484
|
-
const region = regionData.region || 'us-east-1';
|
|
485
|
-
|
|
486
|
-
// Construct proper HTTPS S3 URL
|
|
487
|
-
const httpsUrl = \`https://s3.\${region}.amazonaws.com/\${this.selectedBucket}/\${key}\`;
|
|
488
|
-
|
|
489
|
-
await navigator.clipboard.writeText(httpsUrl);
|
|
490
|
-
|
|
491
|
-
// Show temporary success feedback
|
|
492
|
-
const event = {target};
|
|
493
|
-
const originalText = event.target.textContent;
|
|
494
|
-
const originalBg = event.target.style.backgroundColor;
|
|
495
|
-
event.target.textContent = '✓ Copied!';
|
|
496
|
-
event.target.style.backgroundColor = 'var(--color-success)';
|
|
497
|
-
|
|
498
|
-
setTimeout(() => {
|
|
499
|
-
event.target.textContent = originalText;
|
|
500
|
-
event.target.style.backgroundColor = originalBg;
|
|
501
|
-
}, 1500);
|
|
502
|
-
} catch (error) {
|
|
503
|
-
console.error('Error copying S3 path:', error);
|
|
504
|
-
// Fallback to s3:// protocol
|
|
505
|
-
const s3Path = \`s3://\${this.selectedBucket}/\${key}\`;
|
|
506
|
-
prompt('Copy S3 path (fallback):', s3Path);
|
|
507
|
-
}
|
|
508
|
-
},
|
|
509
|
-
|
|
510
|
-
async deleteFolder(prefix) {
|
|
511
|
-
if (!confirm(\`Delete folder \${prefix} and all its contents?\`)) return;
|
|
512
|
-
|
|
513
|
-
try {
|
|
514
|
-
await fetch(\`/api/files/delete-folder\`, {
|
|
515
|
-
method: 'POST',
|
|
516
|
-
headers: { 'Content-Type': 'application/json' },
|
|
517
|
-
body: JSON.stringify({ bucket: this.selectedBucket, prefix })
|
|
518
|
-
});
|
|
519
|
-
await this.loadFiles();
|
|
520
|
-
} catch (error) {
|
|
521
|
-
alert('Error deleting folder');
|
|
522
|
-
}
|
|
523
|
-
},
|
|
524
|
-
|
|
525
|
-
handleFileSelect(event) {
|
|
526
|
-
const files = Array.from(event.target.files);
|
|
527
|
-
this.uploadFiles(files);
|
|
528
|
-
},
|
|
529
|
-
|
|
530
|
-
handleDrop(event) {
|
|
531
|
-
event.target.classList.remove('drag-over');
|
|
532
|
-
const files = Array.from(event.dataTransfer.files);
|
|
533
|
-
this.uploadFiles(files);
|
|
534
|
-
},
|
|
535
|
-
|
|
536
|
-
async uploadFiles(files) {
|
|
537
|
-
this.uploadProgress = files.map(f => ({ name: f.name, status: 'Uploading...' }));
|
|
538
|
-
|
|
539
|
-
for (let i = 0; i < files.length; i++) {
|
|
540
|
-
const file = files[i];
|
|
541
|
-
const formData = new FormData();
|
|
542
|
-
formData.append('file', file);
|
|
543
|
-
formData.append('bucket', this.selectedBucket);
|
|
544
|
-
formData.append('prefix', this.currentPrefix);
|
|
545
|
-
|
|
546
|
-
try {
|
|
547
|
-
await fetch('/api/upload', {
|
|
548
|
-
method: 'POST',
|
|
549
|
-
body: formData
|
|
550
|
-
});
|
|
551
|
-
this.uploadProgress[i].status = '✓ Complete';
|
|
552
|
-
} catch (error) {
|
|
553
|
-
this.uploadProgress[i].status = '✗ Failed';
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
setTimeout(async () => {
|
|
558
|
-
this.uploadProgress = [];
|
|
559
|
-
this.showUpload = false;
|
|
560
|
-
await this.loadFiles();
|
|
561
|
-
}, 2000);
|
|
562
|
-
},
|
|
563
|
-
|
|
564
|
-
async refresh() {
|
|
565
|
-
await this.loadFiles();
|
|
566
|
-
},
|
|
567
|
-
|
|
568
|
-
filterBuckets() {
|
|
569
|
-
// Reactive computed property handles this automatically
|
|
570
|
-
},
|
|
571
|
-
|
|
572
|
-
filterFiles() {
|
|
573
|
-
// Reactive computed property handles this automatically
|
|
574
|
-
}
|
|
575
|
-
};
|
|
576
|
-
}
|
|
577
|
-
`
|
|
578
|
-
})
|
|
330
|
+
// Load client bundle at end of body
|
|
331
|
+
(0, server_html_1.$script)({ src: '/assets/scripts/s3-explorer.bundle.js' })
|
|
579
332
|
]
|
|
580
333
|
})
|
|
581
334
|
]
|
|
@@ -596,37 +349,37 @@ exports.AppController = AppController = tslib_1.__decorate([
|
|
|
596
349
|
|
|
597
350
|
|
|
598
351
|
/***/ }),
|
|
599
|
-
/*
|
|
352
|
+
/* 8 */
|
|
600
353
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
601
354
|
|
|
602
355
|
|
|
603
356
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
604
|
-
const tslib_1 = __webpack_require__(
|
|
605
|
-
tslib_1.__exportStar(__webpack_require__(8), exports);
|
|
357
|
+
const tslib_1 = __webpack_require__(5);
|
|
606
358
|
tslib_1.__exportStar(__webpack_require__(9), exports);
|
|
607
359
|
tslib_1.__exportStar(__webpack_require__(10), exports);
|
|
608
|
-
tslib_1.__exportStar(__webpack_require__(17), exports);
|
|
609
|
-
tslib_1.__exportStar(__webpack_require__(22), exports);
|
|
610
|
-
tslib_1.__exportStar(__webpack_require__(12), exports);
|
|
611
|
-
tslib_1.__exportStar(__webpack_require__(13), exports);
|
|
612
360
|
tslib_1.__exportStar(__webpack_require__(11), exports);
|
|
613
|
-
tslib_1.__exportStar(__webpack_require__(19), exports);
|
|
614
361
|
tslib_1.__exportStar(__webpack_require__(18), exports);
|
|
362
|
+
tslib_1.__exportStar(__webpack_require__(23), exports);
|
|
363
|
+
tslib_1.__exportStar(__webpack_require__(13), exports);
|
|
615
364
|
tslib_1.__exportStar(__webpack_require__(14), exports);
|
|
616
|
-
tslib_1.__exportStar(__webpack_require__(
|
|
365
|
+
tslib_1.__exportStar(__webpack_require__(12), exports);
|
|
617
366
|
tslib_1.__exportStar(__webpack_require__(20), exports);
|
|
367
|
+
tslib_1.__exportStar(__webpack_require__(19), exports);
|
|
368
|
+
tslib_1.__exportStar(__webpack_require__(15), exports);
|
|
369
|
+
tslib_1.__exportStar(__webpack_require__(17), exports);
|
|
618
370
|
tslib_1.__exportStar(__webpack_require__(21), exports);
|
|
619
|
-
tslib_1.__exportStar(__webpack_require__(
|
|
371
|
+
tslib_1.__exportStar(__webpack_require__(22), exports);
|
|
620
372
|
tslib_1.__exportStar(__webpack_require__(24), exports);
|
|
621
|
-
tslib_1.__exportStar(__webpack_require__(
|
|
373
|
+
tslib_1.__exportStar(__webpack_require__(25), exports);
|
|
622
374
|
tslib_1.__exportStar(__webpack_require__(27), exports);
|
|
623
375
|
tslib_1.__exportStar(__webpack_require__(28), exports);
|
|
624
376
|
tslib_1.__exportStar(__webpack_require__(29), exports);
|
|
625
377
|
tslib_1.__exportStar(__webpack_require__(30), exports);
|
|
378
|
+
tslib_1.__exportStar(__webpack_require__(31), exports);
|
|
626
379
|
|
|
627
380
|
|
|
628
381
|
/***/ }),
|
|
629
|
-
/*
|
|
382
|
+
/* 9 */
|
|
630
383
|
/***/ ((__unused_webpack_module, exports) => {
|
|
631
384
|
|
|
632
385
|
|
|
@@ -639,7 +392,7 @@ function a(text, href, cssClass) {
|
|
|
639
392
|
|
|
640
393
|
|
|
641
394
|
/***/ }),
|
|
642
|
-
/*
|
|
395
|
+
/* 10 */
|
|
643
396
|
/***/ ((__unused_webpack_module, exports) => {
|
|
644
397
|
|
|
645
398
|
|
|
@@ -647,13 +400,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
647
400
|
|
|
648
401
|
|
|
649
402
|
/***/ }),
|
|
650
|
-
/*
|
|
403
|
+
/* 11 */
|
|
651
404
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
652
405
|
|
|
653
406
|
|
|
654
407
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
655
408
|
exports.html = html;
|
|
656
|
-
const tags_1 = __webpack_require__(
|
|
409
|
+
const tags_1 = __webpack_require__(12);
|
|
657
410
|
function html(title, subtitle, markup, logoUrl) {
|
|
658
411
|
return (0, tags_1._htm)([
|
|
659
412
|
(0, tags_1._head)([
|
|
@@ -695,14 +448,14 @@ function html(title, subtitle, markup, logoUrl) {
|
|
|
695
448
|
|
|
696
449
|
|
|
697
450
|
/***/ }),
|
|
698
|
-
/*
|
|
451
|
+
/* 12 */
|
|
699
452
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
700
453
|
|
|
701
454
|
|
|
702
455
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
703
456
|
exports._style = exports._tr = exports._thead = exports._th = exports._td = exports._tbody = exports._tab = exports._pre = exports._p = exports._main = exports._img = exports._htm = exports._header = exports._head = exports._h6 = exports._h5 = exports._h4 = exports._h3 = exports._h2 = exports._h1 = exports._div = exports._body = void 0;
|
|
704
|
-
const self_closing_tag_function_1 = __webpack_require__(
|
|
705
|
-
const tag_function_1 = __webpack_require__(
|
|
457
|
+
const self_closing_tag_function_1 = __webpack_require__(13);
|
|
458
|
+
const tag_function_1 = __webpack_require__(14);
|
|
706
459
|
exports._body = tag_function_1.tag.bind(null, 'body');
|
|
707
460
|
exports._div = tag_function_1.tag.bind(null, 'div');
|
|
708
461
|
exports._h1 = tag_function_1.tag.bind(null, 'h1');
|
|
@@ -728,27 +481,27 @@ exports._style = tag_function_1.tag.bind(null, 'style');
|
|
|
728
481
|
|
|
729
482
|
|
|
730
483
|
/***/ }),
|
|
731
|
-
/*
|
|
484
|
+
/* 13 */
|
|
732
485
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
733
486
|
|
|
734
487
|
|
|
735
488
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
736
489
|
exports.selfClosingTag = selfClosingTag;
|
|
737
|
-
const tag_function_1 = __webpack_require__(
|
|
490
|
+
const tag_function_1 = __webpack_require__(14);
|
|
738
491
|
function selfClosingTag(tag, cssClass, attributes, styles) {
|
|
739
492
|
return (0, tag_function_1.tag)(tag, [], cssClass, attributes, styles).replace(`></${tag}>`, '/>');
|
|
740
493
|
}
|
|
741
494
|
|
|
742
495
|
|
|
743
496
|
/***/ }),
|
|
744
|
-
/*
|
|
497
|
+
/* 14 */
|
|
745
498
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
746
499
|
|
|
747
500
|
|
|
748
501
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
749
502
|
exports.tag = tag;
|
|
750
|
-
const format_attributes_function_1 = __webpack_require__(
|
|
751
|
-
const inline_style_function_1 = __webpack_require__(
|
|
503
|
+
const format_attributes_function_1 = __webpack_require__(15);
|
|
504
|
+
const inline_style_function_1 = __webpack_require__(17);
|
|
752
505
|
function tag(tag, content, cssClass, attributes, styles) {
|
|
753
506
|
const classExp = cssClass ? ` class="${cssClass}"` : '';
|
|
754
507
|
const attributesExp = attributes ? ` ${(0, format_attributes_function_1.formatAttributes)(attributes)}` : '';
|
|
@@ -758,13 +511,13 @@ function tag(tag, content, cssClass, attributes, styles) {
|
|
|
758
511
|
|
|
759
512
|
|
|
760
513
|
/***/ }),
|
|
761
|
-
/*
|
|
514
|
+
/* 15 */
|
|
762
515
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
763
516
|
|
|
764
517
|
|
|
765
518
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
766
519
|
exports.formatAttributes = formatAttributes;
|
|
767
|
-
const escape_html_attr_function_1 = __webpack_require__(
|
|
520
|
+
const escape_html_attr_function_1 = __webpack_require__(16);
|
|
768
521
|
function formatAttributes(attributes) {
|
|
769
522
|
if (!attributes) {
|
|
770
523
|
return '';
|
|
@@ -776,7 +529,7 @@ function formatAttributes(attributes) {
|
|
|
776
529
|
|
|
777
530
|
|
|
778
531
|
/***/ }),
|
|
779
|
-
/*
|
|
532
|
+
/* 16 */
|
|
780
533
|
/***/ ((__unused_webpack_module, exports) => {
|
|
781
534
|
|
|
782
535
|
|
|
@@ -793,7 +546,7 @@ function escapeHtmlAttr(str) {
|
|
|
793
546
|
|
|
794
547
|
|
|
795
548
|
/***/ }),
|
|
796
|
-
/*
|
|
549
|
+
/* 17 */
|
|
797
550
|
/***/ ((__unused_webpack_module, exports) => {
|
|
798
551
|
|
|
799
552
|
|
|
@@ -813,14 +566,14 @@ function inlineStyle(styles) {
|
|
|
813
566
|
|
|
814
567
|
|
|
815
568
|
/***/ }),
|
|
816
|
-
/*
|
|
569
|
+
/* 18 */
|
|
817
570
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
818
571
|
|
|
819
572
|
|
|
820
573
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
821
574
|
exports.loginButton = loginButton;
|
|
822
|
-
const elements_1 = __webpack_require__(
|
|
823
|
-
const button_styles_constant_1 = __webpack_require__(
|
|
575
|
+
const elements_1 = __webpack_require__(19);
|
|
576
|
+
const button_styles_constant_1 = __webpack_require__(22);
|
|
824
577
|
function loginButton(text, href, extraStyles) {
|
|
825
578
|
return (0, elements_1.anchor)([text], {
|
|
826
579
|
href,
|
|
@@ -833,15 +586,15 @@ function loginButton(text, href, extraStyles) {
|
|
|
833
586
|
|
|
834
587
|
|
|
835
588
|
/***/ }),
|
|
836
|
-
/*
|
|
589
|
+
/* 19 */
|
|
837
590
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
838
591
|
|
|
839
592
|
|
|
840
593
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
841
594
|
exports.style = exports.tr = exports.thead = exports.th = exports.td = exports.tbody = exports.tab = exports.pre = exports.p = exports.main = exports.img = exports.htm = exports.header = exports.head = exports.h6 = exports.h5 = exports.h4 = exports.h3 = exports.h2 = exports.h1 = exports.div = exports.button = exports.body = exports.anchor = void 0;
|
|
842
|
-
const element_function_1 = __webpack_require__(
|
|
843
|
-
const self_closing_element_function_1 = __webpack_require__(
|
|
844
|
-
const button_styles_constant_1 = __webpack_require__(
|
|
595
|
+
const element_function_1 = __webpack_require__(20);
|
|
596
|
+
const self_closing_element_function_1 = __webpack_require__(21);
|
|
597
|
+
const button_styles_constant_1 = __webpack_require__(22);
|
|
845
598
|
const anchor = (content, attributes) => (0, element_function_1.element)('a', content, { ...attributes, style: { ...button_styles_constant_1.buttonStyles, ...attributes?.style } });
|
|
846
599
|
exports.anchor = anchor;
|
|
847
600
|
exports.body = element_function_1.element.bind(null, 'body');
|
|
@@ -873,14 +626,14 @@ exports.style = element_function_1.element.bind(null, 'style');
|
|
|
873
626
|
|
|
874
627
|
|
|
875
628
|
/***/ }),
|
|
876
|
-
/*
|
|
629
|
+
/* 20 */
|
|
877
630
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
878
631
|
|
|
879
632
|
|
|
880
633
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
881
634
|
exports.element = element;
|
|
882
|
-
const format_attributes_function_1 = __webpack_require__(
|
|
883
|
-
const inline_style_function_1 = __webpack_require__(
|
|
635
|
+
const format_attributes_function_1 = __webpack_require__(15);
|
|
636
|
+
const inline_style_function_1 = __webpack_require__(17);
|
|
884
637
|
function element(tag, content, attributes) {
|
|
885
638
|
const { cssClass = '', style = undefined, ...attrs } = attributes || {};
|
|
886
639
|
const classExp = cssClass ? ` class="${cssClass}"` : '';
|
|
@@ -891,20 +644,20 @@ function element(tag, content, attributes) {
|
|
|
891
644
|
|
|
892
645
|
|
|
893
646
|
/***/ }),
|
|
894
|
-
/*
|
|
647
|
+
/* 21 */
|
|
895
648
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
896
649
|
|
|
897
650
|
|
|
898
651
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
899
652
|
exports.selfClosingElement = selfClosingElement;
|
|
900
|
-
const element_function_1 = __webpack_require__(
|
|
653
|
+
const element_function_1 = __webpack_require__(20);
|
|
901
654
|
function selfClosingElement(tag, attributes) {
|
|
902
655
|
return (0, element_function_1.element)(tag, [], attributes).replace(`></${tag}>`, '/>');
|
|
903
656
|
}
|
|
904
657
|
|
|
905
658
|
|
|
906
659
|
/***/ }),
|
|
907
|
-
/*
|
|
660
|
+
/* 22 */
|
|
908
661
|
/***/ ((__unused_webpack_module, exports) => {
|
|
909
662
|
|
|
910
663
|
|
|
@@ -924,7 +677,7 @@ exports.buttonStyles = {
|
|
|
924
677
|
|
|
925
678
|
|
|
926
679
|
/***/ }),
|
|
927
|
-
/*
|
|
680
|
+
/* 23 */
|
|
928
681
|
/***/ ((__unused_webpack_module, exports) => {
|
|
929
682
|
|
|
930
683
|
|
|
@@ -932,7 +685,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
932
685
|
|
|
933
686
|
|
|
934
687
|
/***/ }),
|
|
935
|
-
/*
|
|
688
|
+
/* 24 */
|
|
936
689
|
/***/ ((__unused_webpack_module, exports) => {
|
|
937
690
|
|
|
938
691
|
|
|
@@ -948,18 +701,18 @@ exports.fontStyles = {
|
|
|
948
701
|
|
|
949
702
|
|
|
950
703
|
/***/ }),
|
|
951
|
-
/*
|
|
704
|
+
/* 25 */
|
|
952
705
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
953
706
|
|
|
954
707
|
|
|
955
708
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
956
709
|
exports.CSSProperties = void 0;
|
|
957
|
-
const css_properties_type_1 = __webpack_require__(
|
|
710
|
+
const css_properties_type_1 = __webpack_require__(26);
|
|
958
711
|
Object.defineProperty(exports, "CSSProperties", ({ enumerable: true, get: function () { return css_properties_type_1.CSSProperties; } }));
|
|
959
712
|
|
|
960
713
|
|
|
961
714
|
/***/ }),
|
|
962
|
-
/*
|
|
715
|
+
/* 26 */
|
|
963
716
|
/***/ ((__unused_webpack_module, exports) => {
|
|
964
717
|
|
|
965
718
|
|
|
@@ -967,7 +720,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
967
720
|
|
|
968
721
|
|
|
969
722
|
/***/ }),
|
|
970
|
-
/*
|
|
723
|
+
/* 27 */
|
|
971
724
|
/***/ ((__unused_webpack_module, exports) => {
|
|
972
725
|
|
|
973
726
|
|
|
@@ -975,7 +728,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
975
728
|
|
|
976
729
|
|
|
977
730
|
/***/ }),
|
|
978
|
-
/*
|
|
731
|
+
/* 28 */
|
|
979
732
|
/***/ ((__unused_webpack_module, exports) => {
|
|
980
733
|
|
|
981
734
|
|
|
@@ -983,14 +736,14 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
983
736
|
|
|
984
737
|
|
|
985
738
|
/***/ }),
|
|
986
|
-
/*
|
|
739
|
+
/* 29 */
|
|
987
740
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
988
741
|
|
|
989
742
|
|
|
990
743
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
991
744
|
exports.emailBody = emailBody;
|
|
992
|
-
const elements_1 = __webpack_require__(
|
|
993
|
-
const font_styles_constant_1 = __webpack_require__(
|
|
745
|
+
const elements_1 = __webpack_require__(19);
|
|
746
|
+
const font_styles_constant_1 = __webpack_require__(24);
|
|
994
747
|
function emailBody(title, subtitle, markup, logoUrl, extraStyles = {}) {
|
|
995
748
|
return (0, elements_1.div)([
|
|
996
749
|
(0, elements_1.div)([
|
|
@@ -1013,13 +766,13 @@ function emailBody(title, subtitle, markup, logoUrl, extraStyles = {}) {
|
|
|
1013
766
|
|
|
1014
767
|
|
|
1015
768
|
/***/ }),
|
|
1016
|
-
/*
|
|
769
|
+
/* 30 */
|
|
1017
770
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1018
771
|
|
|
1019
772
|
|
|
1020
773
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1021
774
|
exports.table = table;
|
|
1022
|
-
const elements_1 = __webpack_require__(
|
|
775
|
+
const elements_1 = __webpack_require__(19);
|
|
1023
776
|
const padding = '0.5rem';
|
|
1024
777
|
const color = 'inherit';
|
|
1025
778
|
function table(columns, rows) {
|
|
@@ -1031,7 +784,7 @@ function table(columns, rows) {
|
|
|
1031
784
|
|
|
1032
785
|
|
|
1033
786
|
/***/ }),
|
|
1034
|
-
/*
|
|
787
|
+
/* 31 */
|
|
1035
788
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1036
789
|
|
|
1037
790
|
|
|
@@ -1039,33 +792,33 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
1039
792
|
exports.$footer = exports.$figure = exports.$figcaption = exports.$fieldset = exports.$embed = exports.$em = exports.$dt = exports.$dl = exports.$div = exports.$dialog = exports.$dfn = exports.$details = exports.$del = exports.$dd = exports.$datalist = exports.$data = exports.$colgroup = exports.$col = exports.$code = exports.$cite = exports.$caption = exports.$canvas = exports.$button = exports.$br = exports.$body = exports.$blockquote = exports.$bdo = exports.$bdi = exports.$base = exports.$b = exports.$audio = exports.$aside = exports.$article = exports.$area = exports.$address = exports.$abbr = exports.$a = exports.styled = exports.styleOnPointerEnter = exports.styleOnFocus = exports.styleOn = exports.setElementStyles = exports.setElementStyle = exports.setAttrs = exports.extractStyle = exports.asElementFactory = exports.asId = exports.styleManager = exports.TElementProps = exports.CSSProperties = void 0;
|
|
1040
793
|
exports.$slot = exports.$select = exports.$section = exports.$script = exports.$samp = exports.$s = exports.$ruby = exports.$rt = exports.$rp = exports.$q = exports.$progress = exports.$pre = exports.$picture = exports.$p = exports.$output = exports.$option = exports.$optgroup = exports.$ol = exports.$object = exports.$noscript = exports.$nav = exports.$meter = exports.$meta = exports.$menu = exports.$math = exports.$mark = exports.$map = exports.$main = exports.$link = exports.$li = exports.$legend = exports.$label = exports.$kbd = exports.$ins = exports.$input = exports.$img = exports.$iframe = exports.$i = exports.$html = exports.$hr = exports.$hgroup = exports.$header = exports.$head = exports.$h6 = exports.$h5 = exports.$h4 = exports.$h3 = exports.$h2 = exports.$h1 = exports.$form = void 0;
|
|
1041
794
|
exports.$wbr = exports.$video = exports.$var = exports.$ul = exports.$u = exports.$track = exports.$tr = exports.$title = exports.$time = exports.$thead = exports.$th = exports.$tfoot = exports.$textarea = exports.$template = exports.$td = exports.$tbody = exports.$table = exports.$sup = exports.$summary = exports.$sub = exports.$style = exports.$strong = exports.$span = exports.$source = exports.$small = void 0;
|
|
1042
|
-
const element_function_1 = __webpack_require__(
|
|
1043
|
-
const self_closing_element_function_1 = __webpack_require__(
|
|
1044
|
-
const css_properties_type_1 = __webpack_require__(
|
|
795
|
+
const element_function_1 = __webpack_require__(20);
|
|
796
|
+
const self_closing_element_function_1 = __webpack_require__(21);
|
|
797
|
+
const css_properties_type_1 = __webpack_require__(26);
|
|
1045
798
|
Object.defineProperty(exports, "CSSProperties", ({ enumerable: true, get: function () { return css_properties_type_1.CSSProperties; } }));
|
|
1046
|
-
const element_props_type_1 = __webpack_require__(
|
|
799
|
+
const element_props_type_1 = __webpack_require__(32);
|
|
1047
800
|
Object.defineProperty(exports, "TElementProps", ({ enumerable: true, get: function () { return element_props_type_1.TElementProps; } }));
|
|
1048
|
-
const style_manager_constant_1 = __webpack_require__(
|
|
801
|
+
const style_manager_constant_1 = __webpack_require__(33);
|
|
1049
802
|
Object.defineProperty(exports, "styleManager", ({ enumerable: true, get: function () { return style_manager_constant_1.styleManager; } }));
|
|
1050
|
-
const as_id_function_1 = __webpack_require__(
|
|
803
|
+
const as_id_function_1 = __webpack_require__(34);
|
|
1051
804
|
Object.defineProperty(exports, "asId", ({ enumerable: true, get: function () { return as_id_function_1.asId; } }));
|
|
1052
|
-
const as_element_factory_function_1 = __webpack_require__(
|
|
805
|
+
const as_element_factory_function_1 = __webpack_require__(35);
|
|
1053
806
|
Object.defineProperty(exports, "asElementFactory", ({ enumerable: true, get: function () { return as_element_factory_function_1.asElementFactory; } }));
|
|
1054
|
-
const extract_style_function_1 = __webpack_require__(
|
|
807
|
+
const extract_style_function_1 = __webpack_require__(36);
|
|
1055
808
|
Object.defineProperty(exports, "extractStyle", ({ enumerable: true, get: function () { return extract_style_function_1.extractStyle; } }));
|
|
1056
|
-
const set_element_attributes_function_1 = __webpack_require__(
|
|
809
|
+
const set_element_attributes_function_1 = __webpack_require__(37);
|
|
1057
810
|
Object.defineProperty(exports, "setAttrs", ({ enumerable: true, get: function () { return set_element_attributes_function_1.setAttrs; } }));
|
|
1058
|
-
const set_element_style_function_1 = __webpack_require__(
|
|
811
|
+
const set_element_style_function_1 = __webpack_require__(38);
|
|
1059
812
|
Object.defineProperty(exports, "setElementStyle", ({ enumerable: true, get: function () { return set_element_style_function_1.setElementStyle; } }));
|
|
1060
|
-
const set_element_styles_function_1 = __webpack_require__(
|
|
813
|
+
const set_element_styles_function_1 = __webpack_require__(39);
|
|
1061
814
|
Object.defineProperty(exports, "setElementStyles", ({ enumerable: true, get: function () { return set_element_styles_function_1.setElementStyles; } }));
|
|
1062
|
-
const style_on_function_1 = __webpack_require__(
|
|
815
|
+
const style_on_function_1 = __webpack_require__(40);
|
|
1063
816
|
Object.defineProperty(exports, "styleOn", ({ enumerable: true, get: function () { return style_on_function_1.styleOn; } }));
|
|
1064
|
-
const style_on_focus_function_1 = __webpack_require__(
|
|
817
|
+
const style_on_focus_function_1 = __webpack_require__(41);
|
|
1065
818
|
Object.defineProperty(exports, "styleOnFocus", ({ enumerable: true, get: function () { return style_on_focus_function_1.styleOnFocus; } }));
|
|
1066
|
-
const style_on_pointer_enter_function_1 = __webpack_require__(
|
|
819
|
+
const style_on_pointer_enter_function_1 = __webpack_require__(42);
|
|
1067
820
|
Object.defineProperty(exports, "styleOnPointerEnter", ({ enumerable: true, get: function () { return style_on_pointer_enter_function_1.styleOnPointerEnter; } }));
|
|
1068
|
-
const styled_function_1 = __webpack_require__(
|
|
821
|
+
const styled_function_1 = __webpack_require__(43);
|
|
1069
822
|
Object.defineProperty(exports, "styled", ({ enumerable: true, get: function () { return styled_function_1.styled; } }));
|
|
1070
823
|
// Element factories
|
|
1071
824
|
exports.$a = (0, as_element_factory_function_1.asElementFactory)(element_function_1.element.bind(null, 'a'));
|
|
@@ -1183,7 +936,7 @@ exports.$wbr = (0, as_element_factory_function_1.asElementFactory)((_, attrs) =>
|
|
|
1183
936
|
|
|
1184
937
|
|
|
1185
938
|
/***/ }),
|
|
1186
|
-
/*
|
|
939
|
+
/* 32 */
|
|
1187
940
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1188
941
|
|
|
1189
942
|
|
|
@@ -1191,7 +944,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
1191
944
|
|
|
1192
945
|
|
|
1193
946
|
/***/ }),
|
|
1194
|
-
/*
|
|
947
|
+
/* 33 */
|
|
1195
948
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1196
949
|
|
|
1197
950
|
|
|
@@ -1224,7 +977,7 @@ exports.styleManager = StyleManager;
|
|
|
1224
977
|
|
|
1225
978
|
|
|
1226
979
|
/***/ }),
|
|
1227
|
-
/*
|
|
980
|
+
/* 34 */
|
|
1228
981
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1229
982
|
|
|
1230
983
|
|
|
@@ -1238,7 +991,7 @@ function asId(prefix = 'id') {
|
|
|
1238
991
|
|
|
1239
992
|
|
|
1240
993
|
/***/ }),
|
|
1241
|
-
/*
|
|
994
|
+
/* 35 */
|
|
1242
995
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1243
996
|
|
|
1244
997
|
|
|
@@ -1267,7 +1020,7 @@ function asElementFactory(renderer) {
|
|
|
1267
1020
|
|
|
1268
1021
|
|
|
1269
1022
|
/***/ }),
|
|
1270
|
-
/*
|
|
1023
|
+
/* 36 */
|
|
1271
1024
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1272
1025
|
|
|
1273
1026
|
|
|
@@ -1279,7 +1032,7 @@ function extractStyle(element, style) {
|
|
|
1279
1032
|
|
|
1280
1033
|
|
|
1281
1034
|
/***/ }),
|
|
1282
|
-
/*
|
|
1035
|
+
/* 37 */
|
|
1283
1036
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1284
1037
|
|
|
1285
1038
|
|
|
@@ -1290,7 +1043,7 @@ function setAttrs(target, attrs) {
|
|
|
1290
1043
|
|
|
1291
1044
|
|
|
1292
1045
|
/***/ }),
|
|
1293
|
-
/*
|
|
1046
|
+
/* 38 */
|
|
1294
1047
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1295
1048
|
|
|
1296
1049
|
|
|
@@ -1301,7 +1054,7 @@ function setElementStyle(target, key, value) {
|
|
|
1301
1054
|
|
|
1302
1055
|
|
|
1303
1056
|
/***/ }),
|
|
1304
|
-
/*
|
|
1057
|
+
/* 39 */
|
|
1305
1058
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1306
1059
|
|
|
1307
1060
|
|
|
@@ -1312,7 +1065,7 @@ function setElementStyles(target, styles) {
|
|
|
1312
1065
|
|
|
1313
1066
|
|
|
1314
1067
|
/***/ }),
|
|
1315
|
-
/*
|
|
1068
|
+
/* 40 */
|
|
1316
1069
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1317
1070
|
|
|
1318
1071
|
|
|
@@ -1324,39 +1077,39 @@ function styleOn(element, event, style, elementToStyle, onlyIf) {
|
|
|
1324
1077
|
|
|
1325
1078
|
|
|
1326
1079
|
/***/ }),
|
|
1327
|
-
/*
|
|
1080
|
+
/* 41 */
|
|
1328
1081
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1329
1082
|
|
|
1330
1083
|
|
|
1331
1084
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1332
1085
|
exports.styleOnFocus = styleOnFocus;
|
|
1333
|
-
const style_on_function_1 = __webpack_require__(
|
|
1086
|
+
const style_on_function_1 = __webpack_require__(40);
|
|
1334
1087
|
function styleOnFocus(element, style, elementToStyle, onlyIf) {
|
|
1335
1088
|
(0, style_on_function_1.styleOn)(element, 'focus', style, elementToStyle, onlyIf);
|
|
1336
1089
|
}
|
|
1337
1090
|
|
|
1338
1091
|
|
|
1339
1092
|
/***/ }),
|
|
1340
|
-
/*
|
|
1093
|
+
/* 42 */
|
|
1341
1094
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1342
1095
|
|
|
1343
1096
|
|
|
1344
1097
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1345
1098
|
exports.styleOnPointerEnter = styleOnPointerEnter;
|
|
1346
|
-
const style_on_function_1 = __webpack_require__(
|
|
1099
|
+
const style_on_function_1 = __webpack_require__(40);
|
|
1347
1100
|
function styleOnPointerEnter(element, style, elementToStyle, onlyIf) {
|
|
1348
1101
|
(0, style_on_function_1.styleOn)(element, 'mouseenter', style, elementToStyle, onlyIf);
|
|
1349
1102
|
}
|
|
1350
1103
|
|
|
1351
1104
|
|
|
1352
1105
|
/***/ }),
|
|
1353
|
-
/*
|
|
1106
|
+
/* 43 */
|
|
1354
1107
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
1355
1108
|
|
|
1356
1109
|
|
|
1357
1110
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1358
1111
|
exports.styled = styled;
|
|
1359
|
-
const style_manager_constant_1 = __webpack_require__(
|
|
1112
|
+
const style_manager_constant_1 = __webpack_require__(33);
|
|
1360
1113
|
function styled(creator) {
|
|
1361
1114
|
return (css, ...values) => (props = {}) => {
|
|
1362
1115
|
const raw = css.reduce((acc, part, i) => acc + part + (values[i] || ''), '').trim();
|
|
@@ -1371,7 +1124,7 @@ function styled(creator) {
|
|
|
1371
1124
|
|
|
1372
1125
|
|
|
1373
1126
|
/***/ }),
|
|
1374
|
-
/*
|
|
1127
|
+
/* 44 */
|
|
1375
1128
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1376
1129
|
|
|
1377
1130
|
|
|
@@ -1387,7 +1140,7 @@ exports.AppServerBucketvoreConfig = AppServerBucketvoreConfig;
|
|
|
1387
1140
|
|
|
1388
1141
|
|
|
1389
1142
|
/***/ }),
|
|
1390
|
-
/*
|
|
1143
|
+
/* 45 */
|
|
1391
1144
|
/***/ ((__unused_webpack_module, exports) => {
|
|
1392
1145
|
|
|
1393
1146
|
|
|
@@ -2008,17 +1761,17 @@ exports.DESIGN_SYSTEM_STYLES = `
|
|
|
2008
1761
|
|
|
2009
1762
|
|
|
2010
1763
|
/***/ }),
|
|
2011
|
-
/*
|
|
1764
|
+
/* 46 */
|
|
2012
1765
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2013
1766
|
|
|
2014
1767
|
|
|
2015
1768
|
var _a, _b;
|
|
2016
1769
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2017
1770
|
exports.BucketsController = void 0;
|
|
2018
|
-
const tslib_1 = __webpack_require__(
|
|
2019
|
-
const common_1 = __webpack_require__(
|
|
2020
|
-
const s3_service_1 = __webpack_require__(
|
|
2021
|
-
const html_generator_service_1 = __webpack_require__(
|
|
1771
|
+
const tslib_1 = __webpack_require__(5);
|
|
1772
|
+
const common_1 = __webpack_require__(6);
|
|
1773
|
+
const s3_service_1 = __webpack_require__(47);
|
|
1774
|
+
const html_generator_service_1 = __webpack_require__(51);
|
|
2022
1775
|
let BucketsController = class BucketsController {
|
|
2023
1776
|
constructor(s3Service, htmlGenerator) {
|
|
2024
1777
|
this.s3Service = s3Service;
|
|
@@ -2069,19 +1822,19 @@ exports.BucketsController = BucketsController = tslib_1.__decorate([
|
|
|
2069
1822
|
|
|
2070
1823
|
|
|
2071
1824
|
/***/ }),
|
|
2072
|
-
/*
|
|
1825
|
+
/* 47 */
|
|
2073
1826
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2074
1827
|
|
|
2075
1828
|
|
|
2076
1829
|
var _a, _b;
|
|
2077
1830
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2078
1831
|
exports.S3Service = void 0;
|
|
2079
|
-
const tslib_1 = __webpack_require__(
|
|
2080
|
-
const common_1 = __webpack_require__(
|
|
2081
|
-
const client_s3_1 = __webpack_require__(
|
|
2082
|
-
const s3_request_presigner_1 = __webpack_require__(
|
|
2083
|
-
const app_server_bucketvore_config_class_1 = __webpack_require__(
|
|
2084
|
-
const credential_providers_1 = __webpack_require__(
|
|
1832
|
+
const tslib_1 = __webpack_require__(5);
|
|
1833
|
+
const common_1 = __webpack_require__(6);
|
|
1834
|
+
const client_s3_1 = __webpack_require__(48);
|
|
1835
|
+
const s3_request_presigner_1 = __webpack_require__(49);
|
|
1836
|
+
const app_server_bucketvore_config_class_1 = __webpack_require__(44);
|
|
1837
|
+
const credential_providers_1 = __webpack_require__(50);
|
|
2085
1838
|
let S3Service = class S3Service {
|
|
2086
1839
|
constructor(s3Client, config) {
|
|
2087
1840
|
this.s3Client = s3Client;
|
|
@@ -2281,35 +2034,35 @@ exports.S3Service = S3Service = tslib_1.__decorate([
|
|
|
2281
2034
|
|
|
2282
2035
|
|
|
2283
2036
|
/***/ }),
|
|
2284
|
-
/*
|
|
2037
|
+
/* 48 */
|
|
2285
2038
|
/***/ ((module) => {
|
|
2286
2039
|
|
|
2287
2040
|
module.exports = require("@aws-sdk/client-s3");
|
|
2288
2041
|
|
|
2289
2042
|
/***/ }),
|
|
2290
|
-
/*
|
|
2043
|
+
/* 49 */
|
|
2291
2044
|
/***/ ((module) => {
|
|
2292
2045
|
|
|
2293
2046
|
module.exports = require("@aws-sdk/s3-request-presigner");
|
|
2294
2047
|
|
|
2295
2048
|
/***/ }),
|
|
2296
|
-
/*
|
|
2049
|
+
/* 50 */
|
|
2297
2050
|
/***/ ((module) => {
|
|
2298
2051
|
|
|
2299
2052
|
module.exports = require("@aws-sdk/credential-providers");
|
|
2300
2053
|
|
|
2301
2054
|
/***/ }),
|
|
2302
|
-
/*
|
|
2055
|
+
/* 51 */
|
|
2303
2056
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2304
2057
|
|
|
2305
2058
|
|
|
2306
2059
|
var _a;
|
|
2307
2060
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2308
2061
|
exports.HtmlGeneratorService = void 0;
|
|
2309
|
-
const tslib_1 = __webpack_require__(
|
|
2310
|
-
const common_1 = __webpack_require__(
|
|
2311
|
-
const server_html_1 = __webpack_require__(
|
|
2312
|
-
const file_preview_service_1 = __webpack_require__(
|
|
2062
|
+
const tslib_1 = __webpack_require__(5);
|
|
2063
|
+
const common_1 = __webpack_require__(6);
|
|
2064
|
+
const server_html_1 = __webpack_require__(8);
|
|
2065
|
+
const file_preview_service_1 = __webpack_require__(52);
|
|
2313
2066
|
let HtmlGeneratorService = class HtmlGeneratorService {
|
|
2314
2067
|
constructor(filePreviewService) {
|
|
2315
2068
|
this.filePreviewService = filePreviewService;
|
|
@@ -2629,14 +2382,14 @@ exports.HtmlGeneratorService = HtmlGeneratorService = tslib_1.__decorate([
|
|
|
2629
2382
|
|
|
2630
2383
|
|
|
2631
2384
|
/***/ }),
|
|
2632
|
-
/*
|
|
2385
|
+
/* 52 */
|
|
2633
2386
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2634
2387
|
|
|
2635
2388
|
|
|
2636
2389
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2637
2390
|
exports.FilePreviewService = void 0;
|
|
2638
|
-
const tslib_1 = __webpack_require__(
|
|
2639
|
-
const common_1 = __webpack_require__(
|
|
2391
|
+
const tslib_1 = __webpack_require__(5);
|
|
2392
|
+
const common_1 = __webpack_require__(6);
|
|
2640
2393
|
let FilePreviewService = class FilePreviewService {
|
|
2641
2394
|
constructor() {
|
|
2642
2395
|
this.imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg'];
|
|
@@ -2729,18 +2482,18 @@ exports.FilePreviewService = FilePreviewService = tslib_1.__decorate([
|
|
|
2729
2482
|
|
|
2730
2483
|
|
|
2731
2484
|
/***/ }),
|
|
2732
|
-
/*
|
|
2485
|
+
/* 53 */
|
|
2733
2486
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2734
2487
|
|
|
2735
2488
|
|
|
2736
2489
|
var _a, _b, _c;
|
|
2737
2490
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2738
2491
|
exports.FilesController = void 0;
|
|
2739
|
-
const tslib_1 = __webpack_require__(
|
|
2740
|
-
const common_1 = __webpack_require__(
|
|
2741
|
-
const s3_service_1 = __webpack_require__(
|
|
2742
|
-
const html_generator_service_1 = __webpack_require__(
|
|
2743
|
-
const file_preview_service_1 = __webpack_require__(
|
|
2492
|
+
const tslib_1 = __webpack_require__(5);
|
|
2493
|
+
const common_1 = __webpack_require__(6);
|
|
2494
|
+
const s3_service_1 = __webpack_require__(47);
|
|
2495
|
+
const html_generator_service_1 = __webpack_require__(51);
|
|
2496
|
+
const file_preview_service_1 = __webpack_require__(52);
|
|
2744
2497
|
let FilesController = class FilesController {
|
|
2745
2498
|
constructor(s3Service, htmlGenerator, filePreviewService) {
|
|
2746
2499
|
this.s3Service = s3Service;
|
|
@@ -2867,17 +2620,17 @@ exports.FilesController = FilesController = tslib_1.__decorate([
|
|
|
2867
2620
|
|
|
2868
2621
|
|
|
2869
2622
|
/***/ }),
|
|
2870
|
-
/*
|
|
2623
|
+
/* 54 */
|
|
2871
2624
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
2872
2625
|
|
|
2873
2626
|
|
|
2874
2627
|
var _a;
|
|
2875
2628
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2876
2629
|
exports.UploadController = void 0;
|
|
2877
|
-
const tslib_1 = __webpack_require__(
|
|
2878
|
-
const common_1 = __webpack_require__(
|
|
2879
|
-
const platform_express_1 = __webpack_require__(
|
|
2880
|
-
const s3_service_1 = __webpack_require__(
|
|
2630
|
+
const tslib_1 = __webpack_require__(5);
|
|
2631
|
+
const common_1 = __webpack_require__(6);
|
|
2632
|
+
const platform_express_1 = __webpack_require__(55);
|
|
2633
|
+
const s3_service_1 = __webpack_require__(47);
|
|
2881
2634
|
let UploadController = class UploadController {
|
|
2882
2635
|
constructor(s3Service) {
|
|
2883
2636
|
this.s3Service = s3Service;
|
|
@@ -2916,7 +2669,7 @@ exports.UploadController = UploadController = tslib_1.__decorate([
|
|
|
2916
2669
|
|
|
2917
2670
|
|
|
2918
2671
|
/***/ }),
|
|
2919
|
-
/*
|
|
2672
|
+
/* 55 */
|
|
2920
2673
|
/***/ ((module) => {
|
|
2921
2674
|
|
|
2922
2675
|
module.exports = require("@nestjs/platform-express");
|