@valbuild/shared 0.75.5 → 0.76.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/declarations/src/internal/ApiRoutes.d.ts +209 -15
- package/dist/declarations/src/internal/richtext/conversion/remirrorToRichTextSource.d.ts +13 -4
- package/internal/dist/valbuild-shared-internal.cjs.dev.js +107 -28
- package/internal/dist/valbuild-shared-internal.cjs.prod.js +107 -28
- package/internal/dist/valbuild-shared-internal.esm.js +107 -28
- package/package.json +2 -2
@@ -1719,6 +1719,200 @@ export declare const Api: {
|
|
1719
1719
|
}>]>;
|
1720
1720
|
};
|
1721
1721
|
};
|
1722
|
+
"/upload/patches": {
|
1723
|
+
POST: {
|
1724
|
+
req: {
|
1725
|
+
path: z.ZodOptional<z.ZodString>;
|
1726
|
+
body: z.ZodObject<{
|
1727
|
+
parentRef: z.ZodUnion<[z.ZodObject<{
|
1728
|
+
type: z.ZodLiteral<"head">;
|
1729
|
+
headBaseSha: z.ZodString;
|
1730
|
+
}, "strip", z.ZodTypeAny, {
|
1731
|
+
type: "head";
|
1732
|
+
headBaseSha: string;
|
1733
|
+
}, {
|
1734
|
+
type: "head";
|
1735
|
+
headBaseSha: string;
|
1736
|
+
}>, z.ZodObject<{
|
1737
|
+
type: z.ZodLiteral<"patch">;
|
1738
|
+
patchId: z.ZodEffects<z.ZodString, PatchIdT, string>;
|
1739
|
+
}, "strip", z.ZodTypeAny, {
|
1740
|
+
type: "patch";
|
1741
|
+
patchId?: any;
|
1742
|
+
}, {
|
1743
|
+
type: "patch";
|
1744
|
+
patchId: string;
|
1745
|
+
}>]>;
|
1746
|
+
filePath: z.ZodString;
|
1747
|
+
data: z.ZodAny;
|
1748
|
+
type: z.ZodUnion<[z.ZodLiteral<"file">, z.ZodLiteral<"image">]>;
|
1749
|
+
metadata: z.ZodAny;
|
1750
|
+
remote: z.ZodBoolean;
|
1751
|
+
}, "strip", z.ZodTypeAny, {
|
1752
|
+
type: "file" | "image";
|
1753
|
+
parentRef: {
|
1754
|
+
type: "head";
|
1755
|
+
headBaseSha: string;
|
1756
|
+
} | {
|
1757
|
+
type: "patch";
|
1758
|
+
patchId?: any;
|
1759
|
+
};
|
1760
|
+
filePath: string;
|
1761
|
+
remote: boolean;
|
1762
|
+
data?: any;
|
1763
|
+
metadata?: any;
|
1764
|
+
}, {
|
1765
|
+
type: "file" | "image";
|
1766
|
+
parentRef: {
|
1767
|
+
type: "head";
|
1768
|
+
headBaseSha: string;
|
1769
|
+
} | {
|
1770
|
+
type: "patch";
|
1771
|
+
patchId: string;
|
1772
|
+
};
|
1773
|
+
filePath: string;
|
1774
|
+
remote: boolean;
|
1775
|
+
data?: any;
|
1776
|
+
metadata?: any;
|
1777
|
+
}>;
|
1778
|
+
};
|
1779
|
+
res: z.ZodUnion<[z.ZodObject<{
|
1780
|
+
status: z.ZodLiteral<400>;
|
1781
|
+
json: z.ZodObject<{
|
1782
|
+
message: z.ZodString;
|
1783
|
+
}, "strip", z.ZodTypeAny, {
|
1784
|
+
message: string;
|
1785
|
+
}, {
|
1786
|
+
message: string;
|
1787
|
+
}>;
|
1788
|
+
}, "strip", z.ZodTypeAny, {
|
1789
|
+
status: 400;
|
1790
|
+
json: {
|
1791
|
+
message: string;
|
1792
|
+
};
|
1793
|
+
}, {
|
1794
|
+
status: 400;
|
1795
|
+
json: {
|
1796
|
+
message: string;
|
1797
|
+
};
|
1798
|
+
}>, z.ZodObject<{
|
1799
|
+
status: z.ZodLiteral<200>;
|
1800
|
+
json: z.ZodObject<{
|
1801
|
+
filePath: z.ZodString;
|
1802
|
+
patchId: z.ZodEffects<z.ZodString, PatchIdT, string>;
|
1803
|
+
}, "strip", z.ZodTypeAny, {
|
1804
|
+
filePath: string;
|
1805
|
+
patchId?: any;
|
1806
|
+
}, {
|
1807
|
+
patchId: string;
|
1808
|
+
filePath: string;
|
1809
|
+
}>;
|
1810
|
+
}, "strip", z.ZodTypeAny, {
|
1811
|
+
status: 200;
|
1812
|
+
json: {
|
1813
|
+
filePath: string;
|
1814
|
+
patchId?: any;
|
1815
|
+
};
|
1816
|
+
}, {
|
1817
|
+
status: 200;
|
1818
|
+
json: {
|
1819
|
+
patchId: string;
|
1820
|
+
filePath: string;
|
1821
|
+
};
|
1822
|
+
}>]>;
|
1823
|
+
};
|
1824
|
+
};
|
1825
|
+
"/direct-file-upload-settings": {
|
1826
|
+
POST: {
|
1827
|
+
req: {
|
1828
|
+
cookies: {
|
1829
|
+
val_session: z.ZodOptional<z.ZodString>;
|
1830
|
+
};
|
1831
|
+
};
|
1832
|
+
res: z.ZodUnion<[z.ZodObject<{
|
1833
|
+
status: z.ZodLiteral<400>;
|
1834
|
+
json: z.ZodObject<{
|
1835
|
+
message: z.ZodString;
|
1836
|
+
}, "strip", z.ZodTypeAny, {
|
1837
|
+
message: string;
|
1838
|
+
}, {
|
1839
|
+
message: string;
|
1840
|
+
}>;
|
1841
|
+
}, "strip", z.ZodTypeAny, {
|
1842
|
+
status: 400;
|
1843
|
+
json: {
|
1844
|
+
message: string;
|
1845
|
+
};
|
1846
|
+
}, {
|
1847
|
+
status: 400;
|
1848
|
+
json: {
|
1849
|
+
message: string;
|
1850
|
+
};
|
1851
|
+
}>, z.ZodObject<{
|
1852
|
+
status: z.ZodLiteral<401>;
|
1853
|
+
json: z.ZodObject<{
|
1854
|
+
message: z.ZodString;
|
1855
|
+
}, "strip", z.ZodTypeAny, {
|
1856
|
+
message: string;
|
1857
|
+
}, {
|
1858
|
+
message: string;
|
1859
|
+
}>;
|
1860
|
+
}, "strip", z.ZodTypeAny, {
|
1861
|
+
status: 401;
|
1862
|
+
json: {
|
1863
|
+
message: string;
|
1864
|
+
};
|
1865
|
+
}, {
|
1866
|
+
status: 401;
|
1867
|
+
json: {
|
1868
|
+
message: string;
|
1869
|
+
};
|
1870
|
+
}>, z.ZodObject<{
|
1871
|
+
status: z.ZodLiteral<500>;
|
1872
|
+
json: z.ZodObject<{
|
1873
|
+
message: z.ZodString;
|
1874
|
+
}, "strip", z.ZodTypeAny, {
|
1875
|
+
message: string;
|
1876
|
+
}, {
|
1877
|
+
message: string;
|
1878
|
+
}>;
|
1879
|
+
}, "strip", z.ZodTypeAny, {
|
1880
|
+
status: 500;
|
1881
|
+
json: {
|
1882
|
+
message: string;
|
1883
|
+
};
|
1884
|
+
}, {
|
1885
|
+
status: 500;
|
1886
|
+
json: {
|
1887
|
+
message: string;
|
1888
|
+
};
|
1889
|
+
}>, z.ZodObject<{
|
1890
|
+
status: z.ZodLiteral<200>;
|
1891
|
+
json: z.ZodObject<{
|
1892
|
+
nonce: z.ZodNullable<z.ZodString>;
|
1893
|
+
baseUrl: z.ZodString;
|
1894
|
+
}, "strip", z.ZodTypeAny, {
|
1895
|
+
nonce: string | null;
|
1896
|
+
baseUrl: string;
|
1897
|
+
}, {
|
1898
|
+
nonce: string | null;
|
1899
|
+
baseUrl: string;
|
1900
|
+
}>;
|
1901
|
+
}, "strip", z.ZodTypeAny, {
|
1902
|
+
status: 200;
|
1903
|
+
json: {
|
1904
|
+
nonce: string | null;
|
1905
|
+
baseUrl: string;
|
1906
|
+
};
|
1907
|
+
}, {
|
1908
|
+
status: 200;
|
1909
|
+
json: {
|
1910
|
+
nonce: string | null;
|
1911
|
+
baseUrl: string;
|
1912
|
+
};
|
1913
|
+
}>]>;
|
1914
|
+
};
|
1915
|
+
};
|
1722
1916
|
"/patches": {
|
1723
1917
|
DELETE: {
|
1724
1918
|
req: {
|
@@ -1853,8 +2047,8 @@ export declare const Api: {
|
|
1853
2047
|
patch: z.ZodType<PatchT, z.ZodTypeDef, PatchT>;
|
1854
2048
|
}, "strip", z.ZodTypeAny, {
|
1855
2049
|
path?: any;
|
1856
|
-
patchId?: any;
|
1857
2050
|
patch?: any;
|
2051
|
+
patchId?: any;
|
1858
2052
|
}, {
|
1859
2053
|
path: string;
|
1860
2054
|
patchId: string;
|
@@ -1863,8 +2057,8 @@ export declare const Api: {
|
|
1863
2057
|
}, "strip", z.ZodTypeAny, {
|
1864
2058
|
patches: {
|
1865
2059
|
path?: any;
|
1866
|
-
patchId?: any;
|
1867
2060
|
patch?: any;
|
2061
|
+
patchId?: any;
|
1868
2062
|
}[];
|
1869
2063
|
parentRef: {
|
1870
2064
|
type: "head";
|
@@ -2219,8 +2413,8 @@ export declare const Api: {
|
|
2219
2413
|
commitSha: string;
|
2220
2414
|
} | null;
|
2221
2415
|
path?: any;
|
2222
|
-
patchId?: any;
|
2223
2416
|
patch?: any;
|
2417
|
+
patchId?: any;
|
2224
2418
|
}, {
|
2225
2419
|
path: string;
|
2226
2420
|
createdAt: string;
|
@@ -2255,8 +2449,8 @@ export declare const Api: {
|
|
2255
2449
|
commitSha: string;
|
2256
2450
|
} | null;
|
2257
2451
|
path?: any;
|
2258
|
-
patchId?: any;
|
2259
2452
|
patch?: any;
|
2453
|
+
patchId?: any;
|
2260
2454
|
}[];
|
2261
2455
|
errors?: Record<PatchIdT, {
|
2262
2456
|
message: string;
|
@@ -2294,8 +2488,8 @@ export declare const Api: {
|
|
2294
2488
|
commitSha: string;
|
2295
2489
|
} | null;
|
2296
2490
|
path?: any;
|
2297
|
-
patchId?: any;
|
2298
2491
|
patch?: any;
|
2492
|
+
patchId?: any;
|
2299
2493
|
}[];
|
2300
2494
|
errors?: Record<PatchIdT, {
|
2301
2495
|
message: string;
|
@@ -3054,7 +3248,7 @@ export declare const Api: {
|
|
3054
3248
|
status: z.ZodLiteral<400>;
|
3055
3249
|
json: z.ZodUnion<[z.ZodObject<{
|
3056
3250
|
message: z.ZodString;
|
3057
|
-
details: z.ZodUnion<[z.ZodObject<{
|
3251
|
+
details: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
|
3058
3252
|
sourceFilePatchErrors: z.ZodRecord<z.ZodEffects<z.ZodString, ModuleFilePath, string>, z.ZodArray<z.ZodObject<{
|
3059
3253
|
message: z.ZodString;
|
3060
3254
|
}, "strip", z.ZodTypeAny, {
|
@@ -3089,10 +3283,10 @@ export declare const Api: {
|
|
3089
3283
|
message: string;
|
3090
3284
|
}, {
|
3091
3285
|
message: string;
|
3092
|
-
}>, "many">]
|
3286
|
+
}>, "many">]>>;
|
3093
3287
|
}, "strip", z.ZodTypeAny, {
|
3094
3288
|
message: string;
|
3095
|
-
details
|
3289
|
+
details?: {
|
3096
3290
|
message: string;
|
3097
3291
|
}[] | {
|
3098
3292
|
sourceFilePatchErrors: Record<ModuleFilePath, {
|
@@ -3101,10 +3295,10 @@ export declare const Api: {
|
|
3101
3295
|
binaryFilePatchErrors: Record<string, {
|
3102
3296
|
message: string;
|
3103
3297
|
}>;
|
3104
|
-
};
|
3298
|
+
} | undefined;
|
3105
3299
|
}, {
|
3106
3300
|
message: string;
|
3107
|
-
details
|
3301
|
+
details?: {
|
3108
3302
|
message: string;
|
3109
3303
|
}[] | {
|
3110
3304
|
sourceFilePatchErrors: Record<string, {
|
@@ -3113,7 +3307,7 @@ export declare const Api: {
|
|
3113
3307
|
binaryFilePatchErrors: Record<string, {
|
3114
3308
|
message: string;
|
3115
3309
|
}>;
|
3116
|
-
};
|
3310
|
+
} | undefined;
|
3117
3311
|
}>, z.ZodObject<{
|
3118
3312
|
message: z.ZodString;
|
3119
3313
|
errorCode: z.ZodUnion<[z.ZodLiteral<"project-not-configured">, z.ZodLiteral<"pat-error">]>;
|
@@ -3128,7 +3322,7 @@ export declare const Api: {
|
|
3128
3322
|
status: 400;
|
3129
3323
|
json: {
|
3130
3324
|
message: string;
|
3131
|
-
details
|
3325
|
+
details?: {
|
3132
3326
|
message: string;
|
3133
3327
|
}[] | {
|
3134
3328
|
sourceFilePatchErrors: Record<ModuleFilePath, {
|
@@ -3137,7 +3331,7 @@ export declare const Api: {
|
|
3137
3331
|
binaryFilePatchErrors: Record<string, {
|
3138
3332
|
message: string;
|
3139
3333
|
}>;
|
3140
|
-
};
|
3334
|
+
} | undefined;
|
3141
3335
|
} | {
|
3142
3336
|
message: string;
|
3143
3337
|
errorCode: "project-not-configured" | "pat-error";
|
@@ -3146,7 +3340,7 @@ export declare const Api: {
|
|
3146
3340
|
status: 400;
|
3147
3341
|
json: {
|
3148
3342
|
message: string;
|
3149
|
-
details
|
3343
|
+
details?: {
|
3150
3344
|
message: string;
|
3151
3345
|
}[] | {
|
3152
3346
|
sourceFilePatchErrors: Record<string, {
|
@@ -3155,7 +3349,7 @@ export declare const Api: {
|
|
3155
3349
|
binaryFilePatchErrors: Record<string, {
|
3156
3350
|
message: string;
|
3157
3351
|
}>;
|
3158
|
-
};
|
3352
|
+
} | undefined;
|
3159
3353
|
} | {
|
3160
3354
|
message: string;
|
3161
3355
|
errorCode: "project-not-configured" | "pat-error";
|
@@ -7,10 +7,19 @@ export type RemoteRichTextOptions = {
|
|
7
7
|
schema: SerializedImageSchema;
|
8
8
|
remoteHost: string;
|
9
9
|
};
|
10
|
+
type RTFiles = Record<string, {
|
11
|
+
value: string;
|
12
|
+
filePathOrRef: string;
|
13
|
+
patchPaths: string[][];
|
14
|
+
metadata: {
|
15
|
+
mimeType: string;
|
16
|
+
height: number;
|
17
|
+
width: number;
|
18
|
+
alt?: string;
|
19
|
+
};
|
20
|
+
}>;
|
10
21
|
export declare function remirrorToRichTextSource(node: RemirrorJSON, configDirectory: ConfigDirectory, remoteOptions: RemoteRichTextOptions | null): {
|
11
22
|
blocks: RichTextSource<AllRichTextOptions>;
|
12
|
-
files:
|
13
|
-
value: string;
|
14
|
-
patchPaths: string[][];
|
15
|
-
}>;
|
23
|
+
files: RTFiles;
|
16
24
|
};
|
25
|
+
export {};
|
@@ -294,6 +294,16 @@ function convertOrderedList(path, node, files, configDirectory, remoteOptions) {
|
|
294
294
|
})) || []
|
295
295
|
};
|
296
296
|
}
|
297
|
+
var convertToNumber = function convertToNumber(value) {
|
298
|
+
if (value === null || value === undefined) {
|
299
|
+
return 0;
|
300
|
+
}
|
301
|
+
if (typeof value === "number") {
|
302
|
+
return value;
|
303
|
+
}
|
304
|
+
var parsedValue = parseInt(value, 10);
|
305
|
+
return isNaN(parsedValue) ? 0 : parsedValue;
|
306
|
+
};
|
297
307
|
var textEncoder = new TextEncoder();
|
298
308
|
function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
299
309
|
if (node.attrs && node.attrs.src.startsWith("data:")) {
|
@@ -314,14 +324,6 @@ function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
|
314
324
|
var thisPath = path
|
315
325
|
// file is added as src (see below):
|
316
326
|
.concat("src");
|
317
|
-
if (existingFilesEntry) {
|
318
|
-
existingFilesEntry.patchPaths.push(thisPath);
|
319
|
-
} else {
|
320
|
-
files[filePath] = {
|
321
|
-
value: node.attrs.src,
|
322
|
-
patchPaths: [thisPath]
|
323
|
-
};
|
324
|
-
}
|
325
327
|
var remoteFileHash = core.Internal.remote.hashToRemoteFileHash(fullFileHash);
|
326
328
|
var ref = remoteOptions ? core.Internal.remote.createRemoteRef(remoteOptions.remoteHost, _objectSpread2(_objectSpread2({}, remoteOptions), {}, {
|
327
329
|
fileHash: remoteFileHash,
|
@@ -331,6 +333,21 @@ function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
|
331
333
|
}, remoteFileHash, textEncoder),
|
332
334
|
filePath: filePath.slice(1)
|
333
335
|
})) : filePath;
|
336
|
+
if (existingFilesEntry) {
|
337
|
+
existingFilesEntry.patchPaths.push(thisPath);
|
338
|
+
} else {
|
339
|
+
// TODO: use ref instead on filePath?
|
340
|
+
files[filePath] = {
|
341
|
+
value: node.attrs.src,
|
342
|
+
filePathOrRef: ref,
|
343
|
+
metadata: {
|
344
|
+
height: convertToNumber(node.attrs.height),
|
345
|
+
width: convertToNumber(node.attrs.width),
|
346
|
+
mimeType: mimeType
|
347
|
+
},
|
348
|
+
patchPaths: [thisPath]
|
349
|
+
};
|
350
|
+
}
|
334
351
|
return {
|
335
352
|
tag: "img",
|
336
353
|
src: _objectSpread2(_objectSpread2(_defineProperty({}, core.FILE_REF_PROP, ref), remoteOptions ? _defineProperty({}, core.VAL_EXTENSION, "remote") : _defineProperty(_defineProperty({}, core.VAL_EXTENSION, "file"), core.FILE_REF_SUBTYPE_TAG, "image")), {}, {
|
@@ -348,7 +365,14 @@ function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
|
348
365
|
var remote = false;
|
349
366
|
if (patchId) {
|
350
367
|
remote = getParam("remote", url) === "true";
|
351
|
-
if (
|
368
|
+
if (remote) {
|
369
|
+
var remoteRef = getParam("ref", url);
|
370
|
+
if (remoteRef) {
|
371
|
+
noParamsUrl = decodeURIComponent(remoteRef);
|
372
|
+
} else {
|
373
|
+
console.error("Remote image URL does not contain ref: " + url);
|
374
|
+
}
|
375
|
+
} else if (noParamsUrl.startsWith("/api/val/files/public")) {
|
352
376
|
noParamsUrl = noParamsUrl.slice("/api/val/files".length);
|
353
377
|
} else {
|
354
378
|
console.error("Patched image URL does not start with /api/val/files: " + url);
|
@@ -642,7 +666,7 @@ function convertLinkNodeToRemirror(linkNode) {
|
|
642
666
|
});
|
643
667
|
}
|
644
668
|
function convertImageNodeToRemirror(imageNode) {
|
645
|
-
var _fileSource$metadata, _fileSource$metadata2;
|
669
|
+
var _fileSource$metadata, _fileSource$metadata2, _fileSource$metadata3;
|
646
670
|
var fileSource = imageNode.src;
|
647
671
|
if (!(core.VAL_EXTENSION in fileSource) || fileSource[core.VAL_EXTENSION] !== "file" && fileSource[core.VAL_EXTENSION] !== "remote") {
|
648
672
|
throw Error("Expected file source in image node");
|
@@ -658,6 +682,7 @@ function convertImageNodeToRemirror(imageNode) {
|
|
658
682
|
attrs: {
|
659
683
|
height: (_fileSource$metadata = fileSource.metadata) === null || _fileSource$metadata === void 0 ? void 0 : _fileSource$metadata.height,
|
660
684
|
width: (_fileSource$metadata2 = fileSource.metadata) === null || _fileSource$metadata2 === void 0 ? void 0 : _fileSource$metadata2.width,
|
685
|
+
alt: (_fileSource$metadata3 = fileSource.metadata) === null || _fileSource$metadata3 === void 0 ? void 0 : _fileSource$metadata3.alt,
|
661
686
|
src: fileVal.url
|
662
687
|
}
|
663
688
|
};
|
@@ -1075,6 +1100,18 @@ function _asyncToGenerator(n) {
|
|
1075
1100
|
var JSONValueT = zod.z.lazy(function () {
|
1076
1101
|
return zod.z.union([zod.z.string(), zod.z.number(), zod.z["boolean"](), zod.z["null"](), zod.z.array(JSONValueT), zod.z.record(JSONValueT)]);
|
1077
1102
|
});
|
1103
|
+
var FileOperation = function FileOperation(path) {
|
1104
|
+
return zod.z.object({
|
1105
|
+
op: zod.z.literal("file"),
|
1106
|
+
path: path,
|
1107
|
+
filePath: zod.z.string(),
|
1108
|
+
value: JSONValueT,
|
1109
|
+
// TODO: this should be string, but we believe we have a bug in Zod where setting this to z.string(), means that other types of patches also ends up requiring a string after we deploy a version
|
1110
|
+
remote: zod.z["boolean"](),
|
1111
|
+
nestedFilePath: zod.z.array(zod.z.string()).optional(),
|
1112
|
+
metadata: JSONValueT.optional() // TODO: remove optional
|
1113
|
+
});
|
1114
|
+
};
|
1078
1115
|
|
1079
1116
|
/**
|
1080
1117
|
* Raw JSON patch operation.
|
@@ -1108,13 +1145,7 @@ var OperationJSONT = zod.z.discriminatedUnion("op", [zod.z.object({
|
|
1108
1145
|
op: zod.z.literal("test"),
|
1109
1146
|
path: zod.z.string(),
|
1110
1147
|
value: JSONValueT
|
1111
|
-
}).strict(), zod.z.
|
1112
|
-
op: zod.z.literal("file"),
|
1113
|
-
path: zod.z.string(),
|
1114
|
-
filePath: zod.z.string(),
|
1115
|
-
value: zod.z.string(),
|
1116
|
-
remote: zod.z["boolean"]()
|
1117
|
-
}).strict()]);
|
1148
|
+
}).strict(), FileOperation(zod.z.string()).strict()]);
|
1118
1149
|
var PatchJSON = zod.z.array(OperationJSONT);
|
1119
1150
|
/**
|
1120
1151
|
* Raw JSON patch operation.
|
@@ -1142,14 +1173,7 @@ var OperationT = zod.z.discriminatedUnion("op", [zod.z.object({
|
|
1142
1173
|
op: zod.z.literal("test"),
|
1143
1174
|
path: zod.z.array(zod.z.string()),
|
1144
1175
|
value: JSONValueT
|
1145
|
-
}).strict(), zod.z.
|
1146
|
-
op: zod.z.literal("file"),
|
1147
|
-
path: zod.z.array(zod.z.string()),
|
1148
|
-
filePath: zod.z.string(),
|
1149
|
-
nestedFilePath: zod.z.array(zod.z.string()).optional(),
|
1150
|
-
value: zod.z.string(),
|
1151
|
-
remote: zod.z["boolean"]()
|
1152
|
-
}).strict()]);
|
1176
|
+
}).strict(), FileOperation(zod.z.array(zod.z.string())).strict()]);
|
1153
1177
|
var Patch = zod.z.array(OperationT);
|
1154
1178
|
var PatchId = zod.z.string().refine(function (_id) {
|
1155
1179
|
return true;
|
@@ -1721,6 +1745,59 @@ var Api = {
|
|
1721
1745
|
})])
|
1722
1746
|
}
|
1723
1747
|
},
|
1748
|
+
// This has a path which is like this: /upload/patches/:patchId/files. Example: /upload/patches/76b9237a-7712-4d60-88b4-d273e6d6fe18/files
|
1749
|
+
"/upload/patches": {
|
1750
|
+
POST: {
|
1751
|
+
req: {
|
1752
|
+
path: zod.z.string().optional(),
|
1753
|
+
body: zod.z.object({
|
1754
|
+
parentRef: ParentRef,
|
1755
|
+
filePath: zod.z.string(),
|
1756
|
+
data: zod.z.any(),
|
1757
|
+
// TODO: Json zod type
|
1758
|
+
type: zod.z.union([zod.z.literal("file"), zod.z.literal("image")]),
|
1759
|
+
metadata: zod.z.any(),
|
1760
|
+
// TODO: Json zod type
|
1761
|
+
remote: zod.z["boolean"]()
|
1762
|
+
})
|
1763
|
+
},
|
1764
|
+
res: zod.z.union([zod.z.object({
|
1765
|
+
status: zod.z.literal(400),
|
1766
|
+
json: GenericError
|
1767
|
+
}), zod.z.object({
|
1768
|
+
status: zod.z.literal(200),
|
1769
|
+
json: zod.z.object({
|
1770
|
+
filePath: zod.z.string(),
|
1771
|
+
patchId: PatchId
|
1772
|
+
})
|
1773
|
+
})])
|
1774
|
+
}
|
1775
|
+
},
|
1776
|
+
"/direct-file-upload-settings": {
|
1777
|
+
POST: {
|
1778
|
+
req: {
|
1779
|
+
cookies: {
|
1780
|
+
val_session: zod.z.string().optional()
|
1781
|
+
}
|
1782
|
+
},
|
1783
|
+
res: zod.z.union([zod.z.object({
|
1784
|
+
status: zod.z.literal(400),
|
1785
|
+
json: GenericError
|
1786
|
+
}), zod.z.object({
|
1787
|
+
status: zod.z.literal(401),
|
1788
|
+
json: GenericError
|
1789
|
+
}), zod.z.object({
|
1790
|
+
status: zod.z.literal(500),
|
1791
|
+
json: GenericError
|
1792
|
+
}), zod.z.object({
|
1793
|
+
status: zod.z.literal(200),
|
1794
|
+
json: zod.z.object({
|
1795
|
+
nonce: zod.z.string().nullable(),
|
1796
|
+
baseUrl: zod.z.string()
|
1797
|
+
})
|
1798
|
+
})])
|
1799
|
+
}
|
1800
|
+
},
|
1724
1801
|
"/patches": {
|
1725
1802
|
DELETE: {
|
1726
1803
|
req: {
|
@@ -1975,7 +2052,7 @@ var Api = {
|
|
1975
2052
|
details: zod.z.union([zod.z.object({
|
1976
2053
|
sourceFilePatchErrors: zod.z.record(ModuleFilePath, zod.z.array(GenericError)),
|
1977
2054
|
binaryFilePatchErrors: zod.z.record(GenericError)
|
1978
|
-
}), zod.z.array(GenericError)])
|
2055
|
+
}), zod.z.array(GenericError)]).optional()
|
1979
2056
|
}), zod.z.object({
|
1980
2057
|
message: zod.z.string(),
|
1981
2058
|
errorCode: zod.z.union([zod.z.literal("project-not-configured"), zod.z.literal("pat-error")])
|
@@ -2098,7 +2175,9 @@ var createValClient = function createValClient(host, config // We want to use th
|
|
2098
2175
|
_context2.next = 11;
|
2099
2176
|
break;
|
2100
2177
|
}
|
2101
|
-
console.error("
|
2178
|
+
console.error("Got an invalid request body while validating client-side. This is most likely a Val bug.", {
|
2179
|
+
path: path,
|
2180
|
+
method: method,
|
2102
2181
|
body: anyReq.body,
|
2103
2182
|
error: reqBodyResult.error
|
2104
2183
|
});
|
@@ -2174,7 +2253,7 @@ var createValClient = function createValClient(host, config // We want to use th
|
|
2174
2253
|
_context.next = 12;
|
2175
2254
|
break;
|
2176
2255
|
}
|
2177
|
-
console.
|
2256
|
+
console.error("Server responded with an error", json);
|
2178
2257
|
return _context.abrupt("return", {
|
2179
2258
|
status: 500,
|
2180
2259
|
json: _objectSpread2({
|
@@ -294,6 +294,16 @@ function convertOrderedList(path, node, files, configDirectory, remoteOptions) {
|
|
294
294
|
})) || []
|
295
295
|
};
|
296
296
|
}
|
297
|
+
var convertToNumber = function convertToNumber(value) {
|
298
|
+
if (value === null || value === undefined) {
|
299
|
+
return 0;
|
300
|
+
}
|
301
|
+
if (typeof value === "number") {
|
302
|
+
return value;
|
303
|
+
}
|
304
|
+
var parsedValue = parseInt(value, 10);
|
305
|
+
return isNaN(parsedValue) ? 0 : parsedValue;
|
306
|
+
};
|
297
307
|
var textEncoder = new TextEncoder();
|
298
308
|
function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
299
309
|
if (node.attrs && node.attrs.src.startsWith("data:")) {
|
@@ -314,14 +324,6 @@ function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
|
314
324
|
var thisPath = path
|
315
325
|
// file is added as src (see below):
|
316
326
|
.concat("src");
|
317
|
-
if (existingFilesEntry) {
|
318
|
-
existingFilesEntry.patchPaths.push(thisPath);
|
319
|
-
} else {
|
320
|
-
files[filePath] = {
|
321
|
-
value: node.attrs.src,
|
322
|
-
patchPaths: [thisPath]
|
323
|
-
};
|
324
|
-
}
|
325
327
|
var remoteFileHash = core.Internal.remote.hashToRemoteFileHash(fullFileHash);
|
326
328
|
var ref = remoteOptions ? core.Internal.remote.createRemoteRef(remoteOptions.remoteHost, _objectSpread2(_objectSpread2({}, remoteOptions), {}, {
|
327
329
|
fileHash: remoteFileHash,
|
@@ -331,6 +333,21 @@ function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
|
331
333
|
}, remoteFileHash, textEncoder),
|
332
334
|
filePath: filePath.slice(1)
|
333
335
|
})) : filePath;
|
336
|
+
if (existingFilesEntry) {
|
337
|
+
existingFilesEntry.patchPaths.push(thisPath);
|
338
|
+
} else {
|
339
|
+
// TODO: use ref instead on filePath?
|
340
|
+
files[filePath] = {
|
341
|
+
value: node.attrs.src,
|
342
|
+
filePathOrRef: ref,
|
343
|
+
metadata: {
|
344
|
+
height: convertToNumber(node.attrs.height),
|
345
|
+
width: convertToNumber(node.attrs.width),
|
346
|
+
mimeType: mimeType
|
347
|
+
},
|
348
|
+
patchPaths: [thisPath]
|
349
|
+
};
|
350
|
+
}
|
334
351
|
return {
|
335
352
|
tag: "img",
|
336
353
|
src: _objectSpread2(_objectSpread2(_defineProperty({}, core.FILE_REF_PROP, ref), remoteOptions ? _defineProperty({}, core.VAL_EXTENSION, "remote") : _defineProperty(_defineProperty({}, core.VAL_EXTENSION, "file"), core.FILE_REF_SUBTYPE_TAG, "image")), {}, {
|
@@ -348,7 +365,14 @@ function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
|
348
365
|
var remote = false;
|
349
366
|
if (patchId) {
|
350
367
|
remote = getParam("remote", url) === "true";
|
351
|
-
if (
|
368
|
+
if (remote) {
|
369
|
+
var remoteRef = getParam("ref", url);
|
370
|
+
if (remoteRef) {
|
371
|
+
noParamsUrl = decodeURIComponent(remoteRef);
|
372
|
+
} else {
|
373
|
+
console.error("Remote image URL does not contain ref: " + url);
|
374
|
+
}
|
375
|
+
} else if (noParamsUrl.startsWith("/api/val/files/public")) {
|
352
376
|
noParamsUrl = noParamsUrl.slice("/api/val/files".length);
|
353
377
|
} else {
|
354
378
|
console.error("Patched image URL does not start with /api/val/files: " + url);
|
@@ -642,7 +666,7 @@ function convertLinkNodeToRemirror(linkNode) {
|
|
642
666
|
});
|
643
667
|
}
|
644
668
|
function convertImageNodeToRemirror(imageNode) {
|
645
|
-
var _fileSource$metadata, _fileSource$metadata2;
|
669
|
+
var _fileSource$metadata, _fileSource$metadata2, _fileSource$metadata3;
|
646
670
|
var fileSource = imageNode.src;
|
647
671
|
if (!(core.VAL_EXTENSION in fileSource) || fileSource[core.VAL_EXTENSION] !== "file" && fileSource[core.VAL_EXTENSION] !== "remote") {
|
648
672
|
throw Error("Expected file source in image node");
|
@@ -658,6 +682,7 @@ function convertImageNodeToRemirror(imageNode) {
|
|
658
682
|
attrs: {
|
659
683
|
height: (_fileSource$metadata = fileSource.metadata) === null || _fileSource$metadata === void 0 ? void 0 : _fileSource$metadata.height,
|
660
684
|
width: (_fileSource$metadata2 = fileSource.metadata) === null || _fileSource$metadata2 === void 0 ? void 0 : _fileSource$metadata2.width,
|
685
|
+
alt: (_fileSource$metadata3 = fileSource.metadata) === null || _fileSource$metadata3 === void 0 ? void 0 : _fileSource$metadata3.alt,
|
661
686
|
src: fileVal.url
|
662
687
|
}
|
663
688
|
};
|
@@ -1075,6 +1100,18 @@ function _asyncToGenerator(n) {
|
|
1075
1100
|
var JSONValueT = zod.z.lazy(function () {
|
1076
1101
|
return zod.z.union([zod.z.string(), zod.z.number(), zod.z["boolean"](), zod.z["null"](), zod.z.array(JSONValueT), zod.z.record(JSONValueT)]);
|
1077
1102
|
});
|
1103
|
+
var FileOperation = function FileOperation(path) {
|
1104
|
+
return zod.z.object({
|
1105
|
+
op: zod.z.literal("file"),
|
1106
|
+
path: path,
|
1107
|
+
filePath: zod.z.string(),
|
1108
|
+
value: JSONValueT,
|
1109
|
+
// TODO: this should be string, but we believe we have a bug in Zod where setting this to z.string(), means that other types of patches also ends up requiring a string after we deploy a version
|
1110
|
+
remote: zod.z["boolean"](),
|
1111
|
+
nestedFilePath: zod.z.array(zod.z.string()).optional(),
|
1112
|
+
metadata: JSONValueT.optional() // TODO: remove optional
|
1113
|
+
});
|
1114
|
+
};
|
1078
1115
|
|
1079
1116
|
/**
|
1080
1117
|
* Raw JSON patch operation.
|
@@ -1108,13 +1145,7 @@ var OperationJSONT = zod.z.discriminatedUnion("op", [zod.z.object({
|
|
1108
1145
|
op: zod.z.literal("test"),
|
1109
1146
|
path: zod.z.string(),
|
1110
1147
|
value: JSONValueT
|
1111
|
-
}).strict(), zod.z.
|
1112
|
-
op: zod.z.literal("file"),
|
1113
|
-
path: zod.z.string(),
|
1114
|
-
filePath: zod.z.string(),
|
1115
|
-
value: zod.z.string(),
|
1116
|
-
remote: zod.z["boolean"]()
|
1117
|
-
}).strict()]);
|
1148
|
+
}).strict(), FileOperation(zod.z.string()).strict()]);
|
1118
1149
|
var PatchJSON = zod.z.array(OperationJSONT);
|
1119
1150
|
/**
|
1120
1151
|
* Raw JSON patch operation.
|
@@ -1142,14 +1173,7 @@ var OperationT = zod.z.discriminatedUnion("op", [zod.z.object({
|
|
1142
1173
|
op: zod.z.literal("test"),
|
1143
1174
|
path: zod.z.array(zod.z.string()),
|
1144
1175
|
value: JSONValueT
|
1145
|
-
}).strict(), zod.z.
|
1146
|
-
op: zod.z.literal("file"),
|
1147
|
-
path: zod.z.array(zod.z.string()),
|
1148
|
-
filePath: zod.z.string(),
|
1149
|
-
nestedFilePath: zod.z.array(zod.z.string()).optional(),
|
1150
|
-
value: zod.z.string(),
|
1151
|
-
remote: zod.z["boolean"]()
|
1152
|
-
}).strict()]);
|
1176
|
+
}).strict(), FileOperation(zod.z.array(zod.z.string())).strict()]);
|
1153
1177
|
var Patch = zod.z.array(OperationT);
|
1154
1178
|
var PatchId = zod.z.string().refine(function (_id) {
|
1155
1179
|
return true;
|
@@ -1721,6 +1745,59 @@ var Api = {
|
|
1721
1745
|
})])
|
1722
1746
|
}
|
1723
1747
|
},
|
1748
|
+
// This has a path which is like this: /upload/patches/:patchId/files. Example: /upload/patches/76b9237a-7712-4d60-88b4-d273e6d6fe18/files
|
1749
|
+
"/upload/patches": {
|
1750
|
+
POST: {
|
1751
|
+
req: {
|
1752
|
+
path: zod.z.string().optional(),
|
1753
|
+
body: zod.z.object({
|
1754
|
+
parentRef: ParentRef,
|
1755
|
+
filePath: zod.z.string(),
|
1756
|
+
data: zod.z.any(),
|
1757
|
+
// TODO: Json zod type
|
1758
|
+
type: zod.z.union([zod.z.literal("file"), zod.z.literal("image")]),
|
1759
|
+
metadata: zod.z.any(),
|
1760
|
+
// TODO: Json zod type
|
1761
|
+
remote: zod.z["boolean"]()
|
1762
|
+
})
|
1763
|
+
},
|
1764
|
+
res: zod.z.union([zod.z.object({
|
1765
|
+
status: zod.z.literal(400),
|
1766
|
+
json: GenericError
|
1767
|
+
}), zod.z.object({
|
1768
|
+
status: zod.z.literal(200),
|
1769
|
+
json: zod.z.object({
|
1770
|
+
filePath: zod.z.string(),
|
1771
|
+
patchId: PatchId
|
1772
|
+
})
|
1773
|
+
})])
|
1774
|
+
}
|
1775
|
+
},
|
1776
|
+
"/direct-file-upload-settings": {
|
1777
|
+
POST: {
|
1778
|
+
req: {
|
1779
|
+
cookies: {
|
1780
|
+
val_session: zod.z.string().optional()
|
1781
|
+
}
|
1782
|
+
},
|
1783
|
+
res: zod.z.union([zod.z.object({
|
1784
|
+
status: zod.z.literal(400),
|
1785
|
+
json: GenericError
|
1786
|
+
}), zod.z.object({
|
1787
|
+
status: zod.z.literal(401),
|
1788
|
+
json: GenericError
|
1789
|
+
}), zod.z.object({
|
1790
|
+
status: zod.z.literal(500),
|
1791
|
+
json: GenericError
|
1792
|
+
}), zod.z.object({
|
1793
|
+
status: zod.z.literal(200),
|
1794
|
+
json: zod.z.object({
|
1795
|
+
nonce: zod.z.string().nullable(),
|
1796
|
+
baseUrl: zod.z.string()
|
1797
|
+
})
|
1798
|
+
})])
|
1799
|
+
}
|
1800
|
+
},
|
1724
1801
|
"/patches": {
|
1725
1802
|
DELETE: {
|
1726
1803
|
req: {
|
@@ -1975,7 +2052,7 @@ var Api = {
|
|
1975
2052
|
details: zod.z.union([zod.z.object({
|
1976
2053
|
sourceFilePatchErrors: zod.z.record(ModuleFilePath, zod.z.array(GenericError)),
|
1977
2054
|
binaryFilePatchErrors: zod.z.record(GenericError)
|
1978
|
-
}), zod.z.array(GenericError)])
|
2055
|
+
}), zod.z.array(GenericError)]).optional()
|
1979
2056
|
}), zod.z.object({
|
1980
2057
|
message: zod.z.string(),
|
1981
2058
|
errorCode: zod.z.union([zod.z.literal("project-not-configured"), zod.z.literal("pat-error")])
|
@@ -2098,7 +2175,9 @@ var createValClient = function createValClient(host, config // We want to use th
|
|
2098
2175
|
_context2.next = 11;
|
2099
2176
|
break;
|
2100
2177
|
}
|
2101
|
-
console.error("
|
2178
|
+
console.error("Got an invalid request body while validating client-side. This is most likely a Val bug.", {
|
2179
|
+
path: path,
|
2180
|
+
method: method,
|
2102
2181
|
body: anyReq.body,
|
2103
2182
|
error: reqBodyResult.error
|
2104
2183
|
});
|
@@ -2174,7 +2253,7 @@ var createValClient = function createValClient(host, config // We want to use th
|
|
2174
2253
|
_context.next = 12;
|
2175
2254
|
break;
|
2176
2255
|
}
|
2177
|
-
console.
|
2256
|
+
console.error("Server responded with an error", json);
|
2178
2257
|
return _context.abrupt("return", {
|
2179
2258
|
status: 500,
|
2180
2259
|
json: _objectSpread2({
|
@@ -290,6 +290,16 @@ function convertOrderedList(path, node, files, configDirectory, remoteOptions) {
|
|
290
290
|
})) || []
|
291
291
|
};
|
292
292
|
}
|
293
|
+
var convertToNumber = function convertToNumber(value) {
|
294
|
+
if (value === null || value === undefined) {
|
295
|
+
return 0;
|
296
|
+
}
|
297
|
+
if (typeof value === "number") {
|
298
|
+
return value;
|
299
|
+
}
|
300
|
+
var parsedValue = parseInt(value, 10);
|
301
|
+
return isNaN(parsedValue) ? 0 : parsedValue;
|
302
|
+
};
|
293
303
|
var textEncoder = new TextEncoder();
|
294
304
|
function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
295
305
|
if (node.attrs && node.attrs.src.startsWith("data:")) {
|
@@ -310,14 +320,6 @@ function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
|
310
320
|
var thisPath = path
|
311
321
|
// file is added as src (see below):
|
312
322
|
.concat("src");
|
313
|
-
if (existingFilesEntry) {
|
314
|
-
existingFilesEntry.patchPaths.push(thisPath);
|
315
|
-
} else {
|
316
|
-
files[filePath] = {
|
317
|
-
value: node.attrs.src,
|
318
|
-
patchPaths: [thisPath]
|
319
|
-
};
|
320
|
-
}
|
321
323
|
var remoteFileHash = Internal.remote.hashToRemoteFileHash(fullFileHash);
|
322
324
|
var ref = remoteOptions ? Internal.remote.createRemoteRef(remoteOptions.remoteHost, _objectSpread2(_objectSpread2({}, remoteOptions), {}, {
|
323
325
|
fileHash: remoteFileHash,
|
@@ -327,6 +329,21 @@ function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
|
327
329
|
}, remoteFileHash, textEncoder),
|
328
330
|
filePath: filePath.slice(1)
|
329
331
|
})) : filePath;
|
332
|
+
if (existingFilesEntry) {
|
333
|
+
existingFilesEntry.patchPaths.push(thisPath);
|
334
|
+
} else {
|
335
|
+
// TODO: use ref instead on filePath?
|
336
|
+
files[filePath] = {
|
337
|
+
value: node.attrs.src,
|
338
|
+
filePathOrRef: ref,
|
339
|
+
metadata: {
|
340
|
+
height: convertToNumber(node.attrs.height),
|
341
|
+
width: convertToNumber(node.attrs.width),
|
342
|
+
mimeType: mimeType
|
343
|
+
},
|
344
|
+
patchPaths: [thisPath]
|
345
|
+
};
|
346
|
+
}
|
330
347
|
return {
|
331
348
|
tag: "img",
|
332
349
|
src: _objectSpread2(_objectSpread2(_defineProperty({}, FILE_REF_PROP, ref), remoteOptions ? _defineProperty({}, VAL_EXTENSION, "remote") : _defineProperty(_defineProperty({}, VAL_EXTENSION, "file"), FILE_REF_SUBTYPE_TAG, "image")), {}, {
|
@@ -344,7 +361,14 @@ function convertImageNode(path, node, files, configDirectory, remoteOptions) {
|
|
344
361
|
var remote = false;
|
345
362
|
if (patchId) {
|
346
363
|
remote = getParam("remote", url) === "true";
|
347
|
-
if (
|
364
|
+
if (remote) {
|
365
|
+
var remoteRef = getParam("ref", url);
|
366
|
+
if (remoteRef) {
|
367
|
+
noParamsUrl = decodeURIComponent(remoteRef);
|
368
|
+
} else {
|
369
|
+
console.error("Remote image URL does not contain ref: " + url);
|
370
|
+
}
|
371
|
+
} else if (noParamsUrl.startsWith("/api/val/files/public")) {
|
348
372
|
noParamsUrl = noParamsUrl.slice("/api/val/files".length);
|
349
373
|
} else {
|
350
374
|
console.error("Patched image URL does not start with /api/val/files: " + url);
|
@@ -638,7 +662,7 @@ function convertLinkNodeToRemirror(linkNode) {
|
|
638
662
|
});
|
639
663
|
}
|
640
664
|
function convertImageNodeToRemirror(imageNode) {
|
641
|
-
var _fileSource$metadata, _fileSource$metadata2;
|
665
|
+
var _fileSource$metadata, _fileSource$metadata2, _fileSource$metadata3;
|
642
666
|
var fileSource = imageNode.src;
|
643
667
|
if (!(VAL_EXTENSION in fileSource) || fileSource[VAL_EXTENSION] !== "file" && fileSource[VAL_EXTENSION] !== "remote") {
|
644
668
|
throw Error("Expected file source in image node");
|
@@ -654,6 +678,7 @@ function convertImageNodeToRemirror(imageNode) {
|
|
654
678
|
attrs: {
|
655
679
|
height: (_fileSource$metadata = fileSource.metadata) === null || _fileSource$metadata === void 0 ? void 0 : _fileSource$metadata.height,
|
656
680
|
width: (_fileSource$metadata2 = fileSource.metadata) === null || _fileSource$metadata2 === void 0 ? void 0 : _fileSource$metadata2.width,
|
681
|
+
alt: (_fileSource$metadata3 = fileSource.metadata) === null || _fileSource$metadata3 === void 0 ? void 0 : _fileSource$metadata3.alt,
|
657
682
|
src: fileVal.url
|
658
683
|
}
|
659
684
|
};
|
@@ -1071,6 +1096,18 @@ function _asyncToGenerator(n) {
|
|
1071
1096
|
var JSONValueT = z.lazy(function () {
|
1072
1097
|
return z.union([z.string(), z.number(), z["boolean"](), z["null"](), z.array(JSONValueT), z.record(JSONValueT)]);
|
1073
1098
|
});
|
1099
|
+
var FileOperation = function FileOperation(path) {
|
1100
|
+
return z.object({
|
1101
|
+
op: z.literal("file"),
|
1102
|
+
path: path,
|
1103
|
+
filePath: z.string(),
|
1104
|
+
value: JSONValueT,
|
1105
|
+
// TODO: this should be string, but we believe we have a bug in Zod where setting this to z.string(), means that other types of patches also ends up requiring a string after we deploy a version
|
1106
|
+
remote: z["boolean"](),
|
1107
|
+
nestedFilePath: z.array(z.string()).optional(),
|
1108
|
+
metadata: JSONValueT.optional() // TODO: remove optional
|
1109
|
+
});
|
1110
|
+
};
|
1074
1111
|
|
1075
1112
|
/**
|
1076
1113
|
* Raw JSON patch operation.
|
@@ -1104,13 +1141,7 @@ var OperationJSONT = z.discriminatedUnion("op", [z.object({
|
|
1104
1141
|
op: z.literal("test"),
|
1105
1142
|
path: z.string(),
|
1106
1143
|
value: JSONValueT
|
1107
|
-
}).strict(), z.
|
1108
|
-
op: z.literal("file"),
|
1109
|
-
path: z.string(),
|
1110
|
-
filePath: z.string(),
|
1111
|
-
value: z.string(),
|
1112
|
-
remote: z["boolean"]()
|
1113
|
-
}).strict()]);
|
1144
|
+
}).strict(), FileOperation(z.string()).strict()]);
|
1114
1145
|
var PatchJSON = z.array(OperationJSONT);
|
1115
1146
|
/**
|
1116
1147
|
* Raw JSON patch operation.
|
@@ -1138,14 +1169,7 @@ var OperationT = z.discriminatedUnion("op", [z.object({
|
|
1138
1169
|
op: z.literal("test"),
|
1139
1170
|
path: z.array(z.string()),
|
1140
1171
|
value: JSONValueT
|
1141
|
-
}).strict(), z.
|
1142
|
-
op: z.literal("file"),
|
1143
|
-
path: z.array(z.string()),
|
1144
|
-
filePath: z.string(),
|
1145
|
-
nestedFilePath: z.array(z.string()).optional(),
|
1146
|
-
value: z.string(),
|
1147
|
-
remote: z["boolean"]()
|
1148
|
-
}).strict()]);
|
1172
|
+
}).strict(), FileOperation(z.array(z.string())).strict()]);
|
1149
1173
|
var Patch = z.array(OperationT);
|
1150
1174
|
var PatchId = z.string().refine(function (_id) {
|
1151
1175
|
return true;
|
@@ -1717,6 +1741,59 @@ var Api = {
|
|
1717
1741
|
})])
|
1718
1742
|
}
|
1719
1743
|
},
|
1744
|
+
// This has a path which is like this: /upload/patches/:patchId/files. Example: /upload/patches/76b9237a-7712-4d60-88b4-d273e6d6fe18/files
|
1745
|
+
"/upload/patches": {
|
1746
|
+
POST: {
|
1747
|
+
req: {
|
1748
|
+
path: z.string().optional(),
|
1749
|
+
body: z.object({
|
1750
|
+
parentRef: ParentRef,
|
1751
|
+
filePath: z.string(),
|
1752
|
+
data: z.any(),
|
1753
|
+
// TODO: Json zod type
|
1754
|
+
type: z.union([z.literal("file"), z.literal("image")]),
|
1755
|
+
metadata: z.any(),
|
1756
|
+
// TODO: Json zod type
|
1757
|
+
remote: z["boolean"]()
|
1758
|
+
})
|
1759
|
+
},
|
1760
|
+
res: z.union([z.object({
|
1761
|
+
status: z.literal(400),
|
1762
|
+
json: GenericError
|
1763
|
+
}), z.object({
|
1764
|
+
status: z.literal(200),
|
1765
|
+
json: z.object({
|
1766
|
+
filePath: z.string(),
|
1767
|
+
patchId: PatchId
|
1768
|
+
})
|
1769
|
+
})])
|
1770
|
+
}
|
1771
|
+
},
|
1772
|
+
"/direct-file-upload-settings": {
|
1773
|
+
POST: {
|
1774
|
+
req: {
|
1775
|
+
cookies: {
|
1776
|
+
val_session: z.string().optional()
|
1777
|
+
}
|
1778
|
+
},
|
1779
|
+
res: z.union([z.object({
|
1780
|
+
status: z.literal(400),
|
1781
|
+
json: GenericError
|
1782
|
+
}), z.object({
|
1783
|
+
status: z.literal(401),
|
1784
|
+
json: GenericError
|
1785
|
+
}), z.object({
|
1786
|
+
status: z.literal(500),
|
1787
|
+
json: GenericError
|
1788
|
+
}), z.object({
|
1789
|
+
status: z.literal(200),
|
1790
|
+
json: z.object({
|
1791
|
+
nonce: z.string().nullable(),
|
1792
|
+
baseUrl: z.string()
|
1793
|
+
})
|
1794
|
+
})])
|
1795
|
+
}
|
1796
|
+
},
|
1720
1797
|
"/patches": {
|
1721
1798
|
DELETE: {
|
1722
1799
|
req: {
|
@@ -1971,7 +2048,7 @@ var Api = {
|
|
1971
2048
|
details: z.union([z.object({
|
1972
2049
|
sourceFilePatchErrors: z.record(ModuleFilePath, z.array(GenericError)),
|
1973
2050
|
binaryFilePatchErrors: z.record(GenericError)
|
1974
|
-
}), z.array(GenericError)])
|
2051
|
+
}), z.array(GenericError)]).optional()
|
1975
2052
|
}), z.object({
|
1976
2053
|
message: z.string(),
|
1977
2054
|
errorCode: z.union([z.literal("project-not-configured"), z.literal("pat-error")])
|
@@ -2094,7 +2171,9 @@ var createValClient = function createValClient(host, config // We want to use th
|
|
2094
2171
|
_context2.next = 11;
|
2095
2172
|
break;
|
2096
2173
|
}
|
2097
|
-
console.error("
|
2174
|
+
console.error("Got an invalid request body while validating client-side. This is most likely a Val bug.", {
|
2175
|
+
path: path,
|
2176
|
+
method: method,
|
2098
2177
|
body: anyReq.body,
|
2099
2178
|
error: reqBodyResult.error
|
2100
2179
|
});
|
@@ -2170,7 +2249,7 @@ var createValClient = function createValClient(host, config // We want to use th
|
|
2170
2249
|
_context.next = 12;
|
2171
2250
|
break;
|
2172
2251
|
}
|
2173
|
-
console.
|
2252
|
+
console.error("Server responded with an error", json);
|
2174
2253
|
return _context.abrupt("return", {
|
2175
2254
|
status: 500,
|
2176
2255
|
json: _objectSpread2({
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@valbuild/shared",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.76.1",
|
4
4
|
"private": false,
|
5
5
|
"description": "Val shared types and utilities",
|
6
6
|
"scripts": {
|
@@ -29,7 +29,7 @@
|
|
29
29
|
"exports": true
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
-
"@valbuild/core": "~0.
|
32
|
+
"@valbuild/core": "~0.76.1",
|
33
33
|
"zod": "^3.22.4",
|
34
34
|
"zod-validation-error": "^3.3.0"
|
35
35
|
},
|