chore: fix evernote attachment imports causing CSP issues [skip e2e]
This commit is contained in:
@@ -7,6 +7,7 @@ import MD5 from 'crypto-js/md5'
|
|||||||
import Base64 from 'crypto-js/enc-base64'
|
import Base64 from 'crypto-js/enc-base64'
|
||||||
import { Converter, UploadFileFn } from '../Converter'
|
import { Converter, UploadFileFn } from '../Converter'
|
||||||
import { ConversionResult } from '../ConversionResult'
|
import { ConversionResult } from '../ConversionResult'
|
||||||
|
import { getBlobFromBase64 } from '../Utils'
|
||||||
dayjs.extend(customParseFormat)
|
dayjs.extend(customParseFormat)
|
||||||
dayjs.extend(utc)
|
dayjs.extend(utc)
|
||||||
|
|
||||||
@@ -330,8 +331,7 @@ export class EvernoteConverter implements Converter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getFileFromResource(resource: EvernoteResource): Promise<File> {
|
async getFileFromResource(resource: EvernoteResource): Promise<File> {
|
||||||
const response = await fetch(resource.data)
|
const blob = getBlobFromBase64(resource.data, resource.mimeType)
|
||||||
const blob = await response.blob()
|
|
||||||
return new File([blob], resource.fileName, { type: resource.mimeType })
|
return new File([blob], resource.fileName, { type: resource.mimeType })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,3 +11,20 @@ export const readFileAsText = (file: File): Promise<string> => {
|
|||||||
reader.readAsText(file)
|
reader.readAsText(file)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const getBlobFromBase64 = (b64Data: string, contentType = '') => {
|
||||||
|
const byteString = atob(b64Data.split(',')[1])
|
||||||
|
|
||||||
|
if (!contentType) {
|
||||||
|
contentType = b64Data.split(',')[0].split(':')[1].split(';')[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
const buffer = new ArrayBuffer(byteString.length)
|
||||||
|
const view = new Uint8Array(buffer)
|
||||||
|
for (let i = 0; i < byteString.length; i++) {
|
||||||
|
view[i] = byteString.charCodeAt(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
const blob = new Blob([buffer], { type: contentType })
|
||||||
|
return blob
|
||||||
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ module.exports = (env, argv) => {
|
|||||||
headers: {
|
headers: {
|
||||||
'Access-Control-Allow-Origin': '*',
|
'Access-Control-Allow-Origin': '*',
|
||||||
'Content-Security-Policy':
|
'Content-Security-Policy':
|
||||||
"default-src https: 'self'; base-uri 'self'; child-src * blob:; connect-src * data: blob:; font-src * data:; form-action 'self'; frame-ancestors * file:; frame-src * blob:; img-src 'self' * data: blob:; manifest-src 'self'; media-src 'self' blob: *.standardnotes.com; object-src 'self' blob: *.standardnotes.com; script-src 'self' 'sha256-r26E+iPOhx7KM7cKn4trOSoD8u5E7wL7wwJ8UrR+rGs=' 'unsafe-eval' 'wasm-unsafe-eval'; style-src *;",
|
"default-src https: 'self'; base-uri 'self'; child-src * blob:; connect-src * blob:; font-src * data:; form-action 'self'; frame-ancestors * file:; frame-src * blob:; img-src 'self' * data: blob:; manifest-src 'self'; media-src 'self' blob: *.standardnotes.com; object-src 'self' blob: *.standardnotes.com; script-src 'self' 'sha256-r26E+iPOhx7KM7cKn4trOSoD8u5E7wL7wwJ8UrR+rGs=' 'unsafe-eval' 'wasm-unsafe-eval'; style-src *;",
|
||||||
},
|
},
|
||||||
hot: true,
|
hot: true,
|
||||||
static: './dist',
|
static: './dist',
|
||||||
|
|||||||
Reference in New Issue
Block a user