@nuasite/cms-client 0.43.0-beta.4

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.
@@ -0,0 +1,168 @@
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
+ }
@@ -0,0 +1,17 @@
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 { FIELD_TYPES, isFieldType } from '@nuasite/cms-types';
15
+ export * from './client';
16
+ export * from './form-model';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC7D,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
@@ -0,0 +1,15 @@
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';
@@ -0,0 +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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@nuasite/cms-client",
3
+ "description": "Headless TypeScript SDK for the Nua CMS — typed client over the cms-sidecar /cms/v1 contract plus the pure entry-draft form model (zero React).",
4
+ "files": [
5
+ "dist/**",
6
+ "src/**",
7
+ "README.md",
8
+ "package.json"
9
+ ],
10
+ "homepage": "https://github.com/nuasite/nuasite/blob/main/packages/cms-client/README.md",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/nuasite/nuasite.git",
14
+ "directory": "packages/cms-client"
15
+ },
16
+ "license": "Apache-2.0",
17
+ "version": "0.43.0-beta.4",
18
+ "module": "src/index.ts",
19
+ "types": "src/index.ts",
20
+ "type": "module",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./src/index.ts",
24
+ "import": "./src/index.ts",
25
+ "default": "./src/index.ts"
26
+ }
27
+ },
28
+ "dependencies": {
29
+ "@nuasite/cms-types": "0.43.0-beta.4"
30
+ },
31
+ "devDependencies": {
32
+ "@types/bun": "1.3.11"
33
+ },
34
+ "peerDependencies": {
35
+ "typescript": "^6.0.2"
36
+ },
37
+ "scripts": {
38
+ "prepack": "bun run ../../scripts/workspace-deps/resolve-deps.ts"
39
+ },
40
+ "keywords": [
41
+ "cms",
42
+ "nuasite",
43
+ "client",
44
+ "sdk",
45
+ "headless"
46
+ ]
47
+ }