@meistrari/vault-sdk 3.2.0 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +20 -6
- package/dist/index.mjs +20 -6
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -224,6 +224,16 @@ async function detectFileMimeType(blob) {
|
|
|
224
224
|
}
|
|
225
225
|
return void 0;
|
|
226
226
|
}
|
|
227
|
+
function sanitizeFileName(name) {
|
|
228
|
+
if (!name.includes("\0"))
|
|
229
|
+
return name;
|
|
230
|
+
const sanitized = name.replace(/\0/g, "");
|
|
231
|
+
console.warn(
|
|
232
|
+
"[Vault SDK - WARNING] Null bytes found in file name and were removed.",
|
|
233
|
+
{ original: name, sanitized }
|
|
234
|
+
);
|
|
235
|
+
return sanitized;
|
|
236
|
+
}
|
|
227
237
|
function basename(name, separator = "/") {
|
|
228
238
|
if (!name)
|
|
229
239
|
return void 0;
|
|
@@ -237,7 +247,7 @@ function getFileName(content) {
|
|
|
237
247
|
}
|
|
238
248
|
|
|
239
249
|
const name = "@meistrari/vault-sdk";
|
|
240
|
-
const version = "3.2.
|
|
250
|
+
const version = "3.2.1";
|
|
241
251
|
const license = "UNLICENSED";
|
|
242
252
|
const repository = {
|
|
243
253
|
type: "git",
|
|
@@ -265,7 +275,7 @@ const scripts = {
|
|
|
265
275
|
};
|
|
266
276
|
const dependencies = {
|
|
267
277
|
"@meistrari/file-type": "22.0.0",
|
|
268
|
-
"@meistrari/vault-shared": "0.1.
|
|
278
|
+
"@meistrari/vault-shared": "0.1.2",
|
|
269
279
|
"mime-types": "3.0.1",
|
|
270
280
|
ofetch: "1.4.1",
|
|
271
281
|
zod: "4.3.6"
|
|
@@ -603,7 +613,8 @@ class VaultFile {
|
|
|
603
613
|
*/
|
|
604
614
|
static async fromContent(params, options) {
|
|
605
615
|
const { content, config: vaultConfig, upload = false, parentId, onMissingParent, onParentConflict } = params;
|
|
606
|
-
const
|
|
616
|
+
const rawName = basename(params.name) ?? getFileName(content);
|
|
617
|
+
const name = rawName ? sanitizeFileName(rawName) : rawName;
|
|
607
618
|
const config = resolveConfig(vaultConfig);
|
|
608
619
|
const { vaultUrl, authStrategy } = config;
|
|
609
620
|
const sha256sum = await getFileHash(content);
|
|
@@ -686,7 +697,8 @@ class VaultFile {
|
|
|
686
697
|
onMissingParent,
|
|
687
698
|
onParentConflict
|
|
688
699
|
} = params;
|
|
689
|
-
const
|
|
700
|
+
const rawName = basename(params.name);
|
|
701
|
+
const name = rawName ? sanitizeFileName(rawName) : rawName;
|
|
690
702
|
const config = resolveConfig(vaultConfig);
|
|
691
703
|
const file = new VaultFile({ config, name });
|
|
692
704
|
await file._createFile({
|
|
@@ -727,7 +739,8 @@ class VaultFile {
|
|
|
727
739
|
const config = resolveConfig(vaultConfig);
|
|
728
740
|
const preparedFiles = await Promise.all(
|
|
729
741
|
fileInputs.map(async (input) => {
|
|
730
|
-
const
|
|
742
|
+
const rawName = basename(input.name) ?? getFileName(input.content);
|
|
743
|
+
const name = rawName ? sanitizeFileName(rawName) : rawName;
|
|
731
744
|
const sha256sum = await getFileHash(input.content);
|
|
732
745
|
const mimeType = input.mimeType ?? await detectFileMimeType(input.content);
|
|
733
746
|
const size = input.content.size;
|
|
@@ -810,7 +823,8 @@ class VaultFile {
|
|
|
810
823
|
const { files: fileInputs, config: vaultConfig } = params;
|
|
811
824
|
const config = resolveConfig(vaultConfig);
|
|
812
825
|
const preparedFiles = fileInputs.map((input) => {
|
|
813
|
-
const
|
|
826
|
+
const rawName = basename(input.name);
|
|
827
|
+
const name = rawName ? sanitizeFileName(rawName) : rawName;
|
|
814
828
|
const mimeType = input.contentType || "application/octet-stream";
|
|
815
829
|
const size = input.contentLength;
|
|
816
830
|
return { ...input, name, mimeType, size };
|
package/dist/index.mjs
CHANGED
|
@@ -218,6 +218,16 @@ async function detectFileMimeType(blob) {
|
|
|
218
218
|
}
|
|
219
219
|
return void 0;
|
|
220
220
|
}
|
|
221
|
+
function sanitizeFileName(name) {
|
|
222
|
+
if (!name.includes("\0"))
|
|
223
|
+
return name;
|
|
224
|
+
const sanitized = name.replace(/\0/g, "");
|
|
225
|
+
console.warn(
|
|
226
|
+
"[Vault SDK - WARNING] Null bytes found in file name and were removed.",
|
|
227
|
+
{ original: name, sanitized }
|
|
228
|
+
);
|
|
229
|
+
return sanitized;
|
|
230
|
+
}
|
|
221
231
|
function basename(name, separator = "/") {
|
|
222
232
|
if (!name)
|
|
223
233
|
return void 0;
|
|
@@ -231,7 +241,7 @@ function getFileName(content) {
|
|
|
231
241
|
}
|
|
232
242
|
|
|
233
243
|
const name = "@meistrari/vault-sdk";
|
|
234
|
-
const version = "3.2.
|
|
244
|
+
const version = "3.2.1";
|
|
235
245
|
const license = "UNLICENSED";
|
|
236
246
|
const repository = {
|
|
237
247
|
type: "git",
|
|
@@ -259,7 +269,7 @@ const scripts = {
|
|
|
259
269
|
};
|
|
260
270
|
const dependencies = {
|
|
261
271
|
"@meistrari/file-type": "22.0.0",
|
|
262
|
-
"@meistrari/vault-shared": "0.1.
|
|
272
|
+
"@meistrari/vault-shared": "0.1.2",
|
|
263
273
|
"mime-types": "3.0.1",
|
|
264
274
|
ofetch: "1.4.1",
|
|
265
275
|
zod: "4.3.6"
|
|
@@ -597,7 +607,8 @@ class VaultFile {
|
|
|
597
607
|
*/
|
|
598
608
|
static async fromContent(params, options) {
|
|
599
609
|
const { content, config: vaultConfig, upload = false, parentId, onMissingParent, onParentConflict } = params;
|
|
600
|
-
const
|
|
610
|
+
const rawName = basename(params.name) ?? getFileName(content);
|
|
611
|
+
const name = rawName ? sanitizeFileName(rawName) : rawName;
|
|
601
612
|
const config = resolveConfig(vaultConfig);
|
|
602
613
|
const { vaultUrl, authStrategy } = config;
|
|
603
614
|
const sha256sum = await getFileHash(content);
|
|
@@ -680,7 +691,8 @@ class VaultFile {
|
|
|
680
691
|
onMissingParent,
|
|
681
692
|
onParentConflict
|
|
682
693
|
} = params;
|
|
683
|
-
const
|
|
694
|
+
const rawName = basename(params.name);
|
|
695
|
+
const name = rawName ? sanitizeFileName(rawName) : rawName;
|
|
684
696
|
const config = resolveConfig(vaultConfig);
|
|
685
697
|
const file = new VaultFile({ config, name });
|
|
686
698
|
await file._createFile({
|
|
@@ -721,7 +733,8 @@ class VaultFile {
|
|
|
721
733
|
const config = resolveConfig(vaultConfig);
|
|
722
734
|
const preparedFiles = await Promise.all(
|
|
723
735
|
fileInputs.map(async (input) => {
|
|
724
|
-
const
|
|
736
|
+
const rawName = basename(input.name) ?? getFileName(input.content);
|
|
737
|
+
const name = rawName ? sanitizeFileName(rawName) : rawName;
|
|
725
738
|
const sha256sum = await getFileHash(input.content);
|
|
726
739
|
const mimeType = input.mimeType ?? await detectFileMimeType(input.content);
|
|
727
740
|
const size = input.content.size;
|
|
@@ -804,7 +817,8 @@ class VaultFile {
|
|
|
804
817
|
const { files: fileInputs, config: vaultConfig } = params;
|
|
805
818
|
const config = resolveConfig(vaultConfig);
|
|
806
819
|
const preparedFiles = fileInputs.map((input) => {
|
|
807
|
-
const
|
|
820
|
+
const rawName = basename(input.name);
|
|
821
|
+
const name = rawName ? sanitizeFileName(rawName) : rawName;
|
|
808
822
|
const mimeType = input.contentType || "application/octet-stream";
|
|
809
823
|
const size = input.contentLength;
|
|
810
824
|
return { ...input, name, mimeType, size };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meistrari/vault-sdk",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@meistrari/file-type": "22.0.0",
|
|
31
|
-
"@meistrari/vault-shared": "0.1.
|
|
31
|
+
"@meistrari/vault-shared": "0.1.2",
|
|
32
32
|
"mime-types": "3.0.1",
|
|
33
33
|
"ofetch": "1.4.1",
|
|
34
34
|
"zod": "4.3.6"
|