@nuasite/cms-client 0.43.0-beta.4 → 0.43.0
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/types/client.d.ts +15 -1
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/client.ts +23 -0
- package/dist/types/client.js +0 -253
- package/dist/types/form-model.js +0 -168
- package/dist/types/index.js +0 -15
package/dist/types/client.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* wire types; it is declared here because those types are not part of the
|
|
12
12
|
* `@nuasite/cms-types` contract surface.
|
|
13
13
|
*/
|
|
14
|
-
import type { CollectionDefinition, CollectionEntry, CollectionEntryInfo, MediaListResult, MediaUploadResult, MutationResult } from '@nuasite/cms-types';
|
|
14
|
+
import type { CollectionDefinition, CollectionEntry, CollectionEntryInfo, ComponentDefinition, MediaListResult, MediaUploadResult, MutationResult } from '@nuasite/cms-types';
|
|
15
15
|
/** Stable error codes the sidecar exposes, each mapped to an HTTP status. */
|
|
16
16
|
export type CmsErrorCode = 'not_found' | 'conflict' | 'validation' | 'parse_error' | 'io_error' | 'unsupported' | 'unauthorized';
|
|
17
17
|
/** JSON body returned for every non-2xx response that is not a conflict. */
|
|
@@ -117,6 +117,8 @@ export interface CmsClient {
|
|
|
117
117
|
getCollections(): Promise<CollectionDefinition[]>;
|
|
118
118
|
getEntries(collection: string, options?: GetEntriesOptions): Promise<CmsEntriesListResult>;
|
|
119
119
|
getEntry(collection: string, slug: string): Promise<CollectionEntry>;
|
|
120
|
+
/** Astro component definitions for the MDX body editor (block picker + prop labels). */
|
|
121
|
+
getComponents(): Promise<ComponentDefinition[]>;
|
|
120
122
|
/**
|
|
121
123
|
* Merge-patch an entry's frontmatter/body. Returns a discriminated result: a
|
|
122
124
|
* `409` is surfaced as `{ status: 'conflict' }` (not thrown) so the editor can
|
|
@@ -134,10 +136,22 @@ export interface CmsClient {
|
|
|
134
136
|
limit?: number;
|
|
135
137
|
}): Promise<MediaListResult>;
|
|
136
138
|
uploadMedia(file: File, context?: MediaContext): Promise<MediaUploadResult>;
|
|
139
|
+
/**
|
|
140
|
+
* Build a GET URL for an asset referenced by an entry — an `image`/`file` value
|
|
141
|
+
* such as `../../src/assets/x.webp` that the sidecar resolves relative to the
|
|
142
|
+
* entry source and streams. Suitable for `<img src>` (no auth header needed for
|
|
143
|
+
* the same-origin local studio; the BFF must allow the route for hosted use).
|
|
144
|
+
*/
|
|
145
|
+
mediaFileUrl(collection: string, entry: string, path: string): string;
|
|
137
146
|
deleteMedia(id: string): Promise<{
|
|
138
147
|
success: boolean;
|
|
139
148
|
error?: string;
|
|
140
149
|
}>;
|
|
150
|
+
/** Create an empty media subfolder (sidecar `POST /media` JSON). 501 if the adapter has none. */
|
|
151
|
+
createFolder(folder: string): Promise<{
|
|
152
|
+
success: boolean;
|
|
153
|
+
error?: string;
|
|
154
|
+
}>;
|
|
141
155
|
}
|
|
142
156
|
/**
|
|
143
157
|
* Whether a thrown `CmsClientError` means "media is not available" — the deployed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/@types/react/global.d.ts","../../../../node_modules/csstype/index.d.ts","../../../../node_modules/@types/react/index.d.ts","../../../../node_modules/@types/react/jsx-runtime.d.ts","../../../cms-types/dist/types/index.d.ts","../../src/client.ts","../../src/form-model.ts","../../src/index.ts"],"fileIdsList":[[90,91],[92],[93,94],[93,94,95,96]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"2577e7e800bdece2956ca027cb5c17aa359abd968eb9355760110c853f4fb9da","impliedFormat":1},{"version":"b838d4c72740eb0afd284bf7575b74c624b105eff2e8c7b4aeead57e7ac320ff","impliedFormat":1},"c43c2a0107a2a099fe50bcc754e90b50aa6b265ce57e464a2489798b38e4dc53",{"version":"5d9827861b2f5c138f2a474a28362869e527b0f41701c6a1c0b0e6df268833dc","signature":"18be101c2011a0c364fc7e5ee231d6a9397808e9a095b4bb25c171adf4f23ff5"},{"version":"5df26b293a5a1aca81be7bab8da2f2e5bb11cfece195a469a20f1ac383f1a854","signature":"35ac5e9e25a23b55393daa079c3e7b85817598eed090c2b6b92d156fbde16c6b"},{"version":"09390c2196b53cb8cfb492ffd276a2c3569db3c0d9487cc3096794d06e267572","signature":"3e03795c405f900bc9283d1ade119adc8e71928febe60b69b868401fea33cdc6"}],"root":[[95,97]],"options":{"allowImportingTsExtensions":true,"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"jsx":4,"module":200,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","skipLibCheck":true,"strict":true,"target":99,"verbatimModuleSyntax":true},"referencedMap":[[92,1],[93,2],[95,3],[96,3],[97,4]],"latestChangedDtsFile":"./index.d.ts","version":"6.0.2"}
|
|
1
|
+
{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/@types/react/global.d.ts","../../../../node_modules/csstype/index.d.ts","../../../../node_modules/@types/react/index.d.ts","../../../../node_modules/@types/react/jsx-runtime.d.ts","../../../cms-types/dist/types/index.d.ts","../../src/client.ts","../../src/form-model.ts","../../src/index.ts"],"fileIdsList":[[90,91],[92],[93,94],[93,94,95,96]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"2577e7e800bdece2956ca027cb5c17aa359abd968eb9355760110c853f4fb9da","impliedFormat":1},{"version":"b838d4c72740eb0afd284bf7575b74c624b105eff2e8c7b4aeead57e7ac320ff","impliedFormat":1},"f9c2b8b335210c0ce59d7978e52d91b5fe33af9dbeafb4505b30758783b0470d",{"version":"068fe61a21c80374856d386232637b449a28064e80c3f10490293430c1c11846","signature":"16f76c4b362db8138f4813aabcce18c999e55fc52463a8df46eaa6082d01af7e"},{"version":"5df26b293a5a1aca81be7bab8da2f2e5bb11cfece195a469a20f1ac383f1a854","signature":"35ac5e9e25a23b55393daa079c3e7b85817598eed090c2b6b92d156fbde16c6b"},{"version":"09390c2196b53cb8cfb492ffd276a2c3569db3c0d9487cc3096794d06e267572","signature":"3e03795c405f900bc9283d1ade119adc8e71928febe60b69b868401fea33cdc6"}],"root":[[95,97]],"options":{"allowImportingTsExtensions":true,"allowJs":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"jsx":4,"module":200,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","skipLibCheck":true,"strict":true,"target":99,"verbatimModuleSyntax":true},"referencedMap":[[92,1],[93,2],[95,3],[96,3],[97,4]],"latestChangedDtsFile":"./index.d.ts","version":"6.0.2"}
|
package/package.json
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"directory": "packages/cms-client"
|
|
15
15
|
},
|
|
16
16
|
"license": "Apache-2.0",
|
|
17
|
-
"version": "0.43.0
|
|
17
|
+
"version": "0.43.0",
|
|
18
18
|
"module": "src/index.ts",
|
|
19
19
|
"types": "src/index.ts",
|
|
20
20
|
"type": "module",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@nuasite/cms-types": "0.43.0
|
|
29
|
+
"@nuasite/cms-types": "0.43.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/bun": "1.3.11"
|
package/src/client.ts
CHANGED
|
@@ -16,6 +16,7 @@ import type {
|
|
|
16
16
|
CollectionDefinition,
|
|
17
17
|
CollectionEntry,
|
|
18
18
|
CollectionEntryInfo,
|
|
19
|
+
ComponentDefinition,
|
|
19
20
|
MediaListResult,
|
|
20
21
|
MediaUploadResult,
|
|
21
22
|
MutationResult,
|
|
@@ -208,6 +209,9 @@ export interface CmsClient {
|
|
|
208
209
|
getEntries(collection: string, options?: GetEntriesOptions): Promise<CmsEntriesListResult>
|
|
209
210
|
getEntry(collection: string, slug: string): Promise<CollectionEntry>
|
|
210
211
|
|
|
212
|
+
/** Astro component definitions for the MDX body editor (block picker + prop labels). */
|
|
213
|
+
getComponents(): Promise<ComponentDefinition[]>
|
|
214
|
+
|
|
211
215
|
// --- Mutations ---
|
|
212
216
|
|
|
213
217
|
/**
|
|
@@ -226,7 +230,16 @@ export interface CmsClient {
|
|
|
226
230
|
|
|
227
231
|
listMedia(options?: { folder?: string; cursor?: string; limit?: number }): Promise<MediaListResult>
|
|
228
232
|
uploadMedia(file: File, context?: MediaContext): Promise<MediaUploadResult>
|
|
233
|
+
/**
|
|
234
|
+
* Build a GET URL for an asset referenced by an entry — an `image`/`file` value
|
|
235
|
+
* such as `../../src/assets/x.webp` that the sidecar resolves relative to the
|
|
236
|
+
* entry source and streams. Suitable for `<img src>` (no auth header needed for
|
|
237
|
+
* the same-origin local studio; the BFF must allow the route for hosted use).
|
|
238
|
+
*/
|
|
239
|
+
mediaFileUrl(collection: string, entry: string, path: string): string
|
|
229
240
|
deleteMedia(id: string): Promise<{ success: boolean; error?: string }>
|
|
241
|
+
/** Create an empty media subfolder (sidecar `POST /media` JSON). 501 if the adapter has none. */
|
|
242
|
+
createFolder(folder: string): Promise<{ success: boolean; error?: string }>
|
|
230
243
|
}
|
|
231
244
|
|
|
232
245
|
/**
|
|
@@ -326,6 +339,9 @@ export function createClient(apiBase: string): CmsClient {
|
|
|
326
339
|
getCollections() {
|
|
327
340
|
return request<CollectionDefinition[]>('/collections')
|
|
328
341
|
},
|
|
342
|
+
getComponents() {
|
|
343
|
+
return request<ComponentDefinition[]>('/components')
|
|
344
|
+
},
|
|
329
345
|
getEntries(collection, options = {}) {
|
|
330
346
|
const params = new URLSearchParams()
|
|
331
347
|
if (options.fields !== undefined) params.set('fields', options.fields)
|
|
@@ -398,8 +414,15 @@ export function createClient(apiBase: string): CmsClient {
|
|
|
398
414
|
const result: MediaUploadResult = await response.json()
|
|
399
415
|
return result
|
|
400
416
|
},
|
|
417
|
+
mediaFileUrl(collection, entry, path) {
|
|
418
|
+
return `${base}${entryPath(collection, entry)}/asset?path=${encodeURIComponent(path)}`
|
|
419
|
+
},
|
|
401
420
|
deleteMedia(id) {
|
|
402
421
|
return mutate<{ success: boolean; error?: string }>(`/media/${encodeURIComponent(id)}`, 'DELETE')
|
|
403
422
|
},
|
|
423
|
+
createFolder(folder) {
|
|
424
|
+
// A JSON body to `POST /media` is the create-folder branch (multipart = upload).
|
|
425
|
+
return mutate<{ success: boolean; error?: string }>('/media', 'POST', { folder })
|
|
426
|
+
},
|
|
404
427
|
}
|
|
405
428
|
}
|
package/dist/types/client.js
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Typed client over the cms-sidecar `/cms/v1` HTTP contract (reads + mutations).
|
|
3
|
-
*
|
|
4
|
-
* The host (webmaster BFF, or a local dev proxy in F7) mounts the sidecar under
|
|
5
|
-
* an `apiBase` and adds the `/cms/v1` prefix itself — so this client requests
|
|
6
|
-
* `${apiBase}/project`, `${apiBase}/collections`, etc. (never `/cms/v1/...`).
|
|
7
|
-
*
|
|
8
|
-
* The structural model (collections/entries/fields) is reused 1:1 from
|
|
9
|
-
* `@nuasite/cms-types`. The thin HTTP envelope (project model, sparse entries
|
|
10
|
-
* list, error codes, mutation bodies, conflict response) mirrors the sidecar's
|
|
11
|
-
* wire types; it is declared here because those types are not part of the
|
|
12
|
-
* `@nuasite/cms-types` contract surface.
|
|
13
|
-
*/
|
|
14
|
-
/** HTTP status the sidecar uses for an optimistic-concurrency conflict. */
|
|
15
|
-
const STATUS_CONFLICT = 409;
|
|
16
|
-
// ============================================================================
|
|
17
|
-
// Client error
|
|
18
|
-
// ============================================================================
|
|
19
|
-
/**
|
|
20
|
-
* Thrown for any non-2xx response. Carries the parsed sidecar error code so the
|
|
21
|
-
* UI can distinguish auth failures (`unauthorized`/`forbidden`) from a missing
|
|
22
|
-
* collection/entry (`not_found`) or a generic failure.
|
|
23
|
-
*/
|
|
24
|
-
export class CmsClientError extends Error {
|
|
25
|
-
status;
|
|
26
|
-
code;
|
|
27
|
-
constructor(status, code, message) {
|
|
28
|
-
super(message);
|
|
29
|
-
this.status = status;
|
|
30
|
-
this.code = code;
|
|
31
|
-
this.name = 'CmsClientError';
|
|
32
|
-
}
|
|
33
|
-
/** Session cookie missing/expired upstream — the user must re-authenticate. */
|
|
34
|
-
get isUnauthorized() {
|
|
35
|
-
return this.code === 'unauthorized' || this.status === 401;
|
|
36
|
-
}
|
|
37
|
-
/** Authenticated but lacks access to this project. */
|
|
38
|
-
get isForbidden() {
|
|
39
|
-
return this.code === 'forbidden' || this.status === 403;
|
|
40
|
-
}
|
|
41
|
-
get isNotFound() {
|
|
42
|
-
return this.code === 'not_found' || this.status === 404;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// ============================================================================
|
|
46
|
-
// Client
|
|
47
|
-
// ============================================================================
|
|
48
|
-
function isApiError(value) {
|
|
49
|
-
return isRecord(value)
|
|
50
|
-
&& typeof value.error === 'string'
|
|
51
|
-
&& typeof value.code === 'string';
|
|
52
|
-
}
|
|
53
|
-
/** Narrow `unknown` to a record so property reads typecheck without casts. */
|
|
54
|
-
function isRecord(value) {
|
|
55
|
-
return typeof value === 'object' && value !== null;
|
|
56
|
-
}
|
|
57
|
-
function isConflict(value) {
|
|
58
|
-
if (!isRecord(value))
|
|
59
|
-
return false;
|
|
60
|
-
return value.code === 'conflict'
|
|
61
|
-
&& typeof value.serverHash === 'string'
|
|
62
|
-
&& isRecord(value.serverFrontmatter);
|
|
63
|
-
}
|
|
64
|
-
const KNOWN_ERROR_CODES = [
|
|
65
|
-
'not_found',
|
|
66
|
-
'conflict',
|
|
67
|
-
'validation',
|
|
68
|
-
'parse_error',
|
|
69
|
-
'io_error',
|
|
70
|
-
'unsupported',
|
|
71
|
-
'unauthorized',
|
|
72
|
-
];
|
|
73
|
-
function isErrorCode(value) {
|
|
74
|
-
return KNOWN_ERROR_CODES.includes(value);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Whether a thrown `CmsClientError` means "media is not available" — the deployed
|
|
78
|
-
* sidecar may have no media adapter wired (`501 unsupported`). The picker uses
|
|
79
|
-
* this to degrade gracefully instead of surfacing a hard error.
|
|
80
|
-
*/
|
|
81
|
-
export function isMediaUnavailable(error) {
|
|
82
|
-
return error instanceof CmsClientError && (error.status === 501 || error.code === 'unsupported');
|
|
83
|
-
}
|
|
84
|
-
export function createClient(apiBase) {
|
|
85
|
-
// Normalise: drop a trailing slash so `${base}${path}` joins cleanly.
|
|
86
|
-
const base = apiBase.endsWith('/') ? apiBase.slice(0, -1) : apiBase;
|
|
87
|
-
async function request(path) {
|
|
88
|
-
const response = await fetch(`${base}${path}`, {
|
|
89
|
-
method: 'GET',
|
|
90
|
-
credentials: 'include',
|
|
91
|
-
headers: { accept: 'application/json' },
|
|
92
|
-
});
|
|
93
|
-
if (!response.ok) {
|
|
94
|
-
throw await toError(response);
|
|
95
|
-
}
|
|
96
|
-
// Successful responses are always JSON in the read-only surface.
|
|
97
|
-
const value = await response.json();
|
|
98
|
-
return value;
|
|
99
|
-
}
|
|
100
|
-
async function toError(response) {
|
|
101
|
-
// 403 is produced by the BFF (project scope), not the sidecar, so it has no
|
|
102
|
-
// sidecar `code`; `errorFromBody` surfaces it as a distinct `forbidden`.
|
|
103
|
-
const body = await response.json().catch(() => null);
|
|
104
|
-
return errorFromBody(response.status, body);
|
|
105
|
-
}
|
|
106
|
-
function errorMessageFromBody(body, fallback) {
|
|
107
|
-
if (isApiError(body))
|
|
108
|
-
return body.error;
|
|
109
|
-
if (isRecord(body)) {
|
|
110
|
-
const err = body.error;
|
|
111
|
-
if (isRecord(err) && typeof err.message === 'string')
|
|
112
|
-
return err.message;
|
|
113
|
-
}
|
|
114
|
-
return fallback;
|
|
115
|
-
}
|
|
116
|
-
/** Build a `CmsClientError` from an already-parsed body (no re-read of the stream). */
|
|
117
|
-
function errorFromBody(status, body) {
|
|
118
|
-
if (status === 403) {
|
|
119
|
-
return new CmsClientError(403, 'forbidden', errorMessageFromBody(body, 'You do not have access to this project.'));
|
|
120
|
-
}
|
|
121
|
-
if (isApiError(body) && isErrorCode(body.code)) {
|
|
122
|
-
return new CmsClientError(status, body.code, body.error);
|
|
123
|
-
}
|
|
124
|
-
if (status === 401) {
|
|
125
|
-
return new CmsClientError(401, 'unauthorized', 'Your session has expired. Please reload.');
|
|
126
|
-
}
|
|
127
|
-
return new CmsClientError(status, 'unknown', errorMessageFromBody(body, `Request failed (${status})`));
|
|
128
|
-
}
|
|
129
|
-
function mutationInit(method, body) {
|
|
130
|
-
const init = {
|
|
131
|
-
method,
|
|
132
|
-
credentials: 'include',
|
|
133
|
-
headers: { accept: 'application/json' },
|
|
134
|
-
};
|
|
135
|
-
if (body !== undefined) {
|
|
136
|
-
init.body = JSON.stringify(body);
|
|
137
|
-
init.headers = { accept: 'application/json', 'content-type': 'application/json' };
|
|
138
|
-
}
|
|
139
|
-
return init;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Send a JSON-body mutation (POST/PATCH/DELETE). Throws `CmsClientError` on any
|
|
143
|
-
* non-2xx — used by the mutations that have no conflict branch. The
|
|
144
|
-
* conflict-aware update has its own path below.
|
|
145
|
-
*/
|
|
146
|
-
async function mutate(path, method, body) {
|
|
147
|
-
const response = await fetch(`${base}${path}`, mutationInit(method, body));
|
|
148
|
-
if (!response.ok)
|
|
149
|
-
throw await toError(response);
|
|
150
|
-
// Mutation responses are documented JSON; the asserted shape is trusted
|
|
151
|
-
// (`response.json()` widens to the declared `T`, mirroring `request`).
|
|
152
|
-
const value = await response.json();
|
|
153
|
-
return value;
|
|
154
|
-
}
|
|
155
|
-
function entryPath(collection, slug) {
|
|
156
|
-
return `/collections/${encodeURIComponent(collection)}/entries/${encodeURIComponent(slug)}`;
|
|
157
|
-
}
|
|
158
|
-
return {
|
|
159
|
-
getProject() {
|
|
160
|
-
return request('/project');
|
|
161
|
-
},
|
|
162
|
-
getCollections() {
|
|
163
|
-
return request('/collections');
|
|
164
|
-
},
|
|
165
|
-
getEntries(collection, options = {}) {
|
|
166
|
-
const params = new URLSearchParams();
|
|
167
|
-
if (options.fields !== undefined)
|
|
168
|
-
params.set('fields', options.fields);
|
|
169
|
-
if (options.draft !== undefined)
|
|
170
|
-
params.set('draft', options.draft);
|
|
171
|
-
if (options.cursor !== undefined)
|
|
172
|
-
params.set('cursor', options.cursor);
|
|
173
|
-
if (options.limit !== undefined)
|
|
174
|
-
params.set('limit', String(options.limit));
|
|
175
|
-
const query = params.toString();
|
|
176
|
-
const suffix = query === '' ? '' : `?${query}`;
|
|
177
|
-
return request(`/collections/${encodeURIComponent(collection)}/entries${suffix}`);
|
|
178
|
-
},
|
|
179
|
-
getEntry(collection, slug) {
|
|
180
|
-
return request(entryPath(collection, slug));
|
|
181
|
-
},
|
|
182
|
-
async updateEntry(collection, slug, input) {
|
|
183
|
-
const response = await fetch(`${base}${entryPath(collection, slug)}`, mutationInit('PATCH', input));
|
|
184
|
-
// A `409` carries the server version; parse and return it for the dialog.
|
|
185
|
-
if (response.status === STATUS_CONFLICT) {
|
|
186
|
-
const body = await response.json().catch(() => null);
|
|
187
|
-
if (isConflict(body))
|
|
188
|
-
return { status: 'conflict', conflict: body };
|
|
189
|
-
throw errorFromBody(response.status, body);
|
|
190
|
-
}
|
|
191
|
-
if (!response.ok)
|
|
192
|
-
throw await toError(response);
|
|
193
|
-
const result = await response.json();
|
|
194
|
-
return { status: 'ok', result };
|
|
195
|
-
},
|
|
196
|
-
createEntry(collection, input) {
|
|
197
|
-
return mutate(`/collections/${encodeURIComponent(collection)}/entries`, 'POST', input);
|
|
198
|
-
},
|
|
199
|
-
deleteEntry(collection, slug) {
|
|
200
|
-
return mutate(entryPath(collection, slug), 'DELETE');
|
|
201
|
-
},
|
|
202
|
-
renameEntry(collection, slug, to) {
|
|
203
|
-
return mutate(`${entryPath(collection, slug)}/rename`, 'POST', { to });
|
|
204
|
-
},
|
|
205
|
-
addArrayItem(collection, slug, field, value, index) {
|
|
206
|
-
const body = index === undefined ? { field, value } : { field, value, index };
|
|
207
|
-
return mutate(`${entryPath(collection, slug)}/array`, 'POST', body);
|
|
208
|
-
},
|
|
209
|
-
removeArrayItem(collection, slug, field, index) {
|
|
210
|
-
return mutate(`${entryPath(collection, slug)}/array`, 'DELETE', { field, index });
|
|
211
|
-
},
|
|
212
|
-
listMedia(options = {}) {
|
|
213
|
-
const params = new URLSearchParams();
|
|
214
|
-
if (options.folder !== undefined)
|
|
215
|
-
params.set('folder', options.folder);
|
|
216
|
-
if (options.cursor !== undefined)
|
|
217
|
-
params.set('cursor', options.cursor);
|
|
218
|
-
if (options.limit !== undefined)
|
|
219
|
-
params.set('limit', String(options.limit));
|
|
220
|
-
const query = params.toString();
|
|
221
|
-
return request(`/media${query === '' ? '' : `?${query}`}`);
|
|
222
|
-
},
|
|
223
|
-
async uploadMedia(file, context = {}) {
|
|
224
|
-
// The sidecar reads upload context (collection/entry/field/folder) from the
|
|
225
|
-
// query string; the file rides in multipart form data under `file`.
|
|
226
|
-
const params = new URLSearchParams();
|
|
227
|
-
if (context.collection !== undefined)
|
|
228
|
-
params.set('collection', context.collection);
|
|
229
|
-
if (context.entry !== undefined)
|
|
230
|
-
params.set('entry', context.entry);
|
|
231
|
-
if (context.field !== undefined)
|
|
232
|
-
params.set('field', context.field);
|
|
233
|
-
if (context.folder !== undefined)
|
|
234
|
-
params.set('folder', context.folder);
|
|
235
|
-
const query = params.toString();
|
|
236
|
-
const form = new FormData();
|
|
237
|
-
form.append('file', file);
|
|
238
|
-
const response = await fetch(`${base}/media${query === '' ? '' : `?${query}`}`, {
|
|
239
|
-
method: 'POST',
|
|
240
|
-
credentials: 'include',
|
|
241
|
-
headers: { accept: 'application/json' },
|
|
242
|
-
body: form,
|
|
243
|
-
});
|
|
244
|
-
if (!response.ok)
|
|
245
|
-
throw await toError(response);
|
|
246
|
-
const result = await response.json();
|
|
247
|
-
return result;
|
|
248
|
-
},
|
|
249
|
-
deleteMedia(id) {
|
|
250
|
-
return mutate(`/media/${encodeURIComponent(id)}`, 'DELETE');
|
|
251
|
-
},
|
|
252
|
-
};
|
|
253
|
-
}
|
package/dist/types/form-model.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure draft model + field coercion for the entry editor (cms-headless F3.2).
|
|
3
|
-
*
|
|
4
|
-
* The sidecar speaks two slightly different frontmatter shapes:
|
|
5
|
-
* - `GET …/entries/:slug` returns `frontmatter: Record<string, { value: string; line: number }>`,
|
|
6
|
-
* where `value` is already stringified (objects/arrays are JSON).
|
|
7
|
-
* - `PATCH …` accepts `frontmatter?: Record<string, unknown>` of *native* values (merged), and a
|
|
8
|
-
* `409` `serverFrontmatter` is likewise native (not stringified).
|
|
9
|
-
*
|
|
10
|
-
* The editor works on a single native draft (`EntryDraft`): `frontmatter` is a
|
|
11
|
-
* `Record<string, unknown>` of native JS values keyed by field name, plus the
|
|
12
|
-
* markdown `body`. This module converts to/from the wire and coerces raw input
|
|
13
|
-
* (form strings) into the native value a `FieldType` expects. Keeping it pure
|
|
14
|
-
* (no React/DOM) makes the mapping unit-testable.
|
|
15
|
-
*/
|
|
16
|
-
function isRecord(value) {
|
|
17
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Parse one stringified frontmatter `value` (from `GET …/entries/:slug`) into the
|
|
21
|
-
* native value a field of `type` expects. Structural types (object/array) and
|
|
22
|
-
* unknowns fall back to a best-effort `JSON.parse`; scalars are coerced per type.
|
|
23
|
-
*/
|
|
24
|
-
export function parseWireValue(type, raw) {
|
|
25
|
-
switch (type) {
|
|
26
|
-
case 'boolean':
|
|
27
|
-
return raw === 'true' || raw === '1' || raw.toLowerCase() === 'yes';
|
|
28
|
-
case 'number':
|
|
29
|
-
case 'year':
|
|
30
|
-
case 'month': {
|
|
31
|
-
const n = Number(raw);
|
|
32
|
-
return raw.trim() === '' || Number.isNaN(n) ? raw : n;
|
|
33
|
-
}
|
|
34
|
-
case 'array':
|
|
35
|
-
case 'object':
|
|
36
|
-
return parseJsonLoose(raw);
|
|
37
|
-
default:
|
|
38
|
-
return raw;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/** `JSON.parse` for structural values, falling back to the raw string when invalid. */
|
|
42
|
-
function parseJsonLoose(raw) {
|
|
43
|
-
const trimmed = raw.trim();
|
|
44
|
-
if (trimmed === '')
|
|
45
|
-
return undefined;
|
|
46
|
-
if (!(trimmed.startsWith('{') || trimmed.startsWith('[') || trimmed.startsWith('"')))
|
|
47
|
-
return raw;
|
|
48
|
-
try {
|
|
49
|
-
return JSON.parse(trimmed);
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
return raw;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Build a native draft from a loaded entry, driven by the collection's fields.
|
|
57
|
-
* Frontmatter keys present on the entry but absent from the inferred schema are
|
|
58
|
-
* preserved verbatim (as raw strings) so a save never silently drops them.
|
|
59
|
-
*/
|
|
60
|
-
export function draftFromEntry(entry, fields) {
|
|
61
|
-
const byName = new Map(fields.map(f => [f.name, f]));
|
|
62
|
-
const frontmatter = {};
|
|
63
|
-
for (const [key, cell] of Object.entries(entry.frontmatter)) {
|
|
64
|
-
const field = byName.get(key);
|
|
65
|
-
frontmatter[key] = field ? parseWireValue(field.type, cell.value) : cell.value;
|
|
66
|
-
}
|
|
67
|
-
return { frontmatter, body: entry.body };
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Build a fresh draft for a create form from the collection's fields, seeding
|
|
71
|
-
* each field with its `defaultValue` (when present) or a type-appropriate blank.
|
|
72
|
-
*/
|
|
73
|
-
export function draftForCreate(fields) {
|
|
74
|
-
const frontmatter = {};
|
|
75
|
-
for (const field of fields) {
|
|
76
|
-
if (field.hidden)
|
|
77
|
-
continue;
|
|
78
|
-
if (field.defaultValue !== undefined) {
|
|
79
|
-
frontmatter[field.name] = field.defaultValue;
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
frontmatter[field.name] = blankValue(field.type);
|
|
83
|
-
}
|
|
84
|
-
return { frontmatter, body: '' };
|
|
85
|
-
}
|
|
86
|
-
/** A type-appropriate empty value used to seed create forms. */
|
|
87
|
-
export function blankValue(type) {
|
|
88
|
-
switch (type) {
|
|
89
|
-
case 'boolean':
|
|
90
|
-
return false;
|
|
91
|
-
case 'array':
|
|
92
|
-
return [];
|
|
93
|
-
case 'object':
|
|
94
|
-
return {};
|
|
95
|
-
default:
|
|
96
|
-
return '';
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Adopt a server-provided native frontmatter map (from a `409` `serverFrontmatter`)
|
|
101
|
-
* into a draft, re-coercing per field where a definition exists.
|
|
102
|
-
*/
|
|
103
|
-
export function draftFromServerFrontmatter(serverFrontmatter, serverBody, fields) {
|
|
104
|
-
const byName = new Map(fields.map(f => [f.name, f]));
|
|
105
|
-
const frontmatter = {};
|
|
106
|
-
for (const [key, value] of Object.entries(serverFrontmatter)) {
|
|
107
|
-
const field = byName.get(key);
|
|
108
|
-
// Server values are already native; only re-coerce when the value arrived as
|
|
109
|
-
// a string for a numeric/boolean field (e.g. YAML quirks).
|
|
110
|
-
frontmatter[key] = field && typeof value === 'string' ? parseWireValue(field.type, value) : value;
|
|
111
|
-
}
|
|
112
|
-
return { frontmatter, body: serverBody ?? '' };
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Coerce a raw form-control string into the native value a field expects. Used by
|
|
116
|
-
* the widgets, whose `<input>` values are always strings.
|
|
117
|
-
*/
|
|
118
|
-
export function coerceInput(type, raw) {
|
|
119
|
-
switch (type) {
|
|
120
|
-
case 'boolean':
|
|
121
|
-
return raw === 'true';
|
|
122
|
-
case 'number': {
|
|
123
|
-
if (raw.trim() === '')
|
|
124
|
-
return undefined;
|
|
125
|
-
const n = Number(raw);
|
|
126
|
-
return Number.isNaN(n) ? raw : n;
|
|
127
|
-
}
|
|
128
|
-
case 'year':
|
|
129
|
-
case 'month': {
|
|
130
|
-
if (raw.trim() === '')
|
|
131
|
-
return undefined;
|
|
132
|
-
const n = Number(raw);
|
|
133
|
-
return Number.isNaN(n) ? raw : n;
|
|
134
|
-
}
|
|
135
|
-
default:
|
|
136
|
-
return raw;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
/** Render a native value back to a string for a text/number/date/select control. */
|
|
140
|
-
export function valueToInput(value) {
|
|
141
|
-
if (value === undefined || value === null)
|
|
142
|
-
return '';
|
|
143
|
-
if (typeof value === 'string')
|
|
144
|
-
return value;
|
|
145
|
-
if (typeof value === 'number' || typeof value === 'boolean')
|
|
146
|
-
return String(value);
|
|
147
|
-
return JSON.stringify(value);
|
|
148
|
-
}
|
|
149
|
-
/** Read a value as a boolean for toggle widgets, tolerating string encodings. */
|
|
150
|
-
export function valueToBoolean(value) {
|
|
151
|
-
if (typeof value === 'boolean')
|
|
152
|
-
return value;
|
|
153
|
-
if (typeof value === 'string')
|
|
154
|
-
return value === 'true' || value === '1' || value.toLowerCase() === 'yes';
|
|
155
|
-
return Boolean(value);
|
|
156
|
-
}
|
|
157
|
-
/** Read a value as an array of items for repeater widgets. */
|
|
158
|
-
export function valueToArray(value) {
|
|
159
|
-
return Array.isArray(value) ? value : [];
|
|
160
|
-
}
|
|
161
|
-
/** Read a value as an object for nested-group widgets. */
|
|
162
|
-
export function valueToObject(value) {
|
|
163
|
-
return isRecord(value) ? value : {};
|
|
164
|
-
}
|
|
165
|
-
/** Immutably set a top-level frontmatter key in a draft. */
|
|
166
|
-
export function setDraftField(draft, name, value) {
|
|
167
|
-
return { ...draft, frontmatter: { ...draft.frontmatter, [name]: value } };
|
|
168
|
-
}
|
package/dist/types/index.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `@nuasite/cms-client` — the headless TypeScript SDK for the Nua CMS.
|
|
3
|
-
*
|
|
4
|
-
* Framework-agnostic (zero React/DOM): a typed `fetch` client over the
|
|
5
|
-
* cms-sidecar `/cms/v1` HTTP contract plus the pure entry-draft form model
|
|
6
|
-
* (field coercion, wire ↔ native mapping, optimistic-concurrency helpers).
|
|
7
|
-
*
|
|
8
|
-
* Any host builds its own collections UI on top of this: webmaster's native
|
|
9
|
-
* tab, the `@nuasite/collections-admin` default SPA, or a third party. The
|
|
10
|
-
* structural contract types live in `@nuasite/cms-types`; this package adds
|
|
11
|
-
* the thin HTTP envelope (project model, sparse entries list, error/conflict
|
|
12
|
-
* shapes) and the editor-side draft logic.
|
|
13
|
-
*/
|
|
14
|
-
export * from './client';
|
|
15
|
-
export * from './form-model';
|