@wix/patterns-cms 1.10.0 → 1.14.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.
Files changed (64) hide show
  1. package/dist/cjs/adapter/__tests__/transformCmsSchema.spec.js +9 -0
  2. package/dist/cjs/adapter/__tests__/transformCmsSchema.spec.js.map +1 -1
  3. package/dist/cjs/adapter/__tests__/useCmsSchemaSource.spec.js +142 -0
  4. package/dist/cjs/adapter/__tests__/useCmsSchemaSource.spec.js.map +1 -0
  5. package/dist/cjs/adapter/createCmsBackend.js +2 -0
  6. package/dist/cjs/adapter/createCmsBackend.js.map +1 -1
  7. package/dist/cjs/adapter/index.js +5 -3
  8. package/dist/cjs/adapter/index.js.map +1 -1
  9. package/dist/cjs/adapter/listCmsCollections.js +15 -0
  10. package/dist/cjs/adapter/listCmsCollections.js.map +1 -0
  11. package/dist/cjs/adapter/transformCmsSchema.js +4 -1
  12. package/dist/cjs/adapter/transformCmsSchema.js.map +1 -1
  13. package/dist/cjs/adapter/useCmsSchemaSource.js +72 -0
  14. package/dist/cjs/adapter/useCmsSchemaSource.js.map +1 -0
  15. package/dist/cjs/testkit/cmsFetchMocks.js +166 -0
  16. package/dist/cjs/testkit/cmsFetchMocks.js.map +1 -0
  17. package/dist/cjs/testkit/index.js +10 -0
  18. package/dist/cjs/testkit/index.js.map +1 -0
  19. package/dist/esm/adapter/__tests__/transformCmsSchema.spec.js +5 -0
  20. package/dist/esm/adapter/__tests__/transformCmsSchema.spec.js.map +1 -1
  21. package/dist/esm/adapter/__tests__/useCmsSchemaSource.spec.js +117 -0
  22. package/dist/esm/adapter/__tests__/useCmsSchemaSource.spec.js.map +1 -0
  23. package/dist/esm/adapter/createCmsBackend.js.map +1 -1
  24. package/dist/esm/adapter/index.js +2 -1
  25. package/dist/esm/adapter/index.js.map +1 -1
  26. package/dist/esm/adapter/listCmsCollections.js +13 -0
  27. package/dist/esm/adapter/listCmsCollections.js.map +1 -0
  28. package/dist/esm/adapter/transformCmsSchema.js +4 -1
  29. package/dist/esm/adapter/transformCmsSchema.js.map +1 -1
  30. package/dist/esm/adapter/useCmsSchemaSource.js +56 -0
  31. package/dist/esm/adapter/useCmsSchemaSource.js.map +1 -0
  32. package/dist/esm/testkit/cmsFetchMocks.js +116 -0
  33. package/dist/esm/testkit/cmsFetchMocks.js.map +1 -0
  34. package/dist/esm/testkit/index.js +2 -0
  35. package/dist/esm/testkit/index.js.map +1 -0
  36. package/dist/types/adapter/__tests__/useCmsSchemaSource.spec.d.ts +2 -0
  37. package/dist/types/adapter/__tests__/useCmsSchemaSource.spec.d.ts.map +1 -0
  38. package/dist/types/adapter/createCmsBackend.d.ts +4 -2
  39. package/dist/types/adapter/createCmsBackend.d.ts.map +1 -1
  40. package/dist/types/adapter/index.d.ts +2 -1
  41. package/dist/types/adapter/index.d.ts.map +1 -1
  42. package/dist/types/adapter/listCmsCollections.d.ts +7 -0
  43. package/dist/types/adapter/listCmsCollections.d.ts.map +1 -0
  44. package/dist/types/adapter/transformCmsSchema.d.ts.map +1 -1
  45. package/dist/types/adapter/useCmsSchemaSource.d.ts +19 -0
  46. package/dist/types/adapter/useCmsSchemaSource.d.ts.map +1 -0
  47. package/dist/types/testkit/cmsFetchMocks.d.ts +48 -0
  48. package/dist/types/testkit/cmsFetchMocks.d.ts.map +1 -0
  49. package/dist/types/testkit/index.d.ts +2 -0
  50. package/dist/types/testkit/index.d.ts.map +1 -0
  51. package/package.json +21 -6
  52. package/testkit/package.json +6 -0
  53. package/dist/cjs/adapter/__tests__/createCmsSchemaSource.spec.js +0 -38
  54. package/dist/cjs/adapter/__tests__/createCmsSchemaSource.spec.js.map +0 -1
  55. package/dist/cjs/adapter/createCmsSchemaSource.js +0 -43
  56. package/dist/cjs/adapter/createCmsSchemaSource.js.map +0 -1
  57. package/dist/esm/adapter/__tests__/createCmsSchemaSource.spec.js +0 -41
  58. package/dist/esm/adapter/__tests__/createCmsSchemaSource.spec.js.map +0 -1
  59. package/dist/esm/adapter/createCmsSchemaSource.js +0 -41
  60. package/dist/esm/adapter/createCmsSchemaSource.js.map +0 -1
  61. package/dist/types/adapter/__tests__/createCmsSchemaSource.spec.d.ts +0 -2
  62. package/dist/types/adapter/__tests__/createCmsSchemaSource.spec.d.ts.map +0 -1
  63. package/dist/types/adapter/createCmsSchemaSource.d.ts +0 -12
  64. package/dist/types/adapter/createCmsSchemaSource.d.ts.map +0 -1
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.mockCmsCollection = mockCmsCollection;
5
+ exports.mockCmsItems = mockCmsItems;
6
+ var _fetchMock = require("@wix/sdk-testkit/fetch-mock");
7
+ var _meta = require("@wix/data/meta");
8
+ var _data = require("@wix/data");
9
+ var _bexCore = require("@wix/bex-core");
10
+ var _cmsFieldTypeMap = require("../adapter/cmsFieldTypeMap");
11
+ var itemsApi = _interopRequireWildcard(require("@wix/wix-data-items-sdk/build/cjs/src/data-items-api-client"));
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ // The query endpoint's request options aren't exposed on any public entry, so
14
+ // reach into the items SDK internals to derive its URL (no @wix/data/meta entry).
15
+ // eslint-disable-next-line no-restricted-imports
16
+
17
+ /**
18
+ * Mock the collection schema (`getDataCollection`) either from explicit CMS fields
19
+ * or straight from a schema source — a `createInMemorySchemaSource` becomes the
20
+ * single source of truth for the schema, its contract fields converted back to CMS
21
+ * fields (types with no CMS mapping fall back to text — enough to render).
22
+ */
23
+
24
+ function toCmsFields(fields, idField) {
25
+ return Object.values(fields).filter(field => field != null).map(field => ({
26
+ key: field.id,
27
+ displayName: field.displayName,
28
+ type: _cmsFieldTypeMap.PatternsFieldTypeToCmsFieldType[field.type] ?? _data.collections.Type.TEXT,
29
+ ...(field.id === idField ? {
30
+ systemField: true
31
+ } : {})
32
+ }));
33
+ }
34
+ function collectionResponse(collectionId, fields, displayField) {
35
+ return {
36
+ referencedCollections: [],
37
+ collection: {
38
+ id: collectionId,
39
+ collectionType: _data.collections.CollectionType.WIX_APP,
40
+ pagingModes: [_data.collections.PagingMode.OFFSET],
41
+ plugins: [],
42
+ displayField,
43
+ fields
44
+ }
45
+ };
46
+ }
47
+
48
+ /**
49
+ * Routes the collection schema (`getDataCollection`) that `useCmsSchemaSource`
50
+ * loads. `@wix/data` issues real fetch calls; the caller's fetch-mock instance
51
+ * intercepts them by URL.
52
+ */
53
+ function mockCmsCollection(fetchMock, options) {
54
+ if ('source' in options) {
55
+ const {
56
+ source
57
+ } = options;
58
+ const [url] = (0, _fetchMock.when)(_meta.collections.getDataCollection()).withParams({
59
+ dataCollectionId: source.collectionId
60
+ }).reply(undefined);
61
+ fetchMock.route(url, async () => {
62
+ const {
63
+ schema
64
+ } = await source.loadSchema();
65
+ return collectionResponse(source.collectionId, toCmsFields(schema.fields, schema.idField), schema.displayField);
66
+ });
67
+ return;
68
+ }
69
+ const {
70
+ collectionId,
71
+ fields,
72
+ displayField = 'name'
73
+ } = options;
74
+ const [url, data] = (0, _fetchMock.when)(_meta.collections.getDataCollection()).withParams({
75
+ dataCollectionId: collectionId
76
+ }).reply(collectionResponse(collectionId, fields, displayField));
77
+ fetchMock.route(url, data);
78
+ }
79
+
80
+ // The items-query endpoint has no `@wix/data/meta` entry, so derive its URL from
81
+ // the wix-data-items SDK request options.
82
+ function queryDataItemsMeta() {
83
+ return {
84
+ getUrl: context =>
85
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
+ itemsApi.reqOptions(itemsApi.queryDataItemsRequestOptions, {})(context).url,
87
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
88
+ httpMethod: itemsApi.queryDataItemsRequestOptions.method,
89
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
+ path: itemsApi.queryDataItemsRequestOptions.httpPath,
91
+ pathParams: {},
92
+ __requestType: null,
93
+ __originalRequestType: null,
94
+ __responseType: null,
95
+ __originalResponseType: null
96
+ };
97
+ }
98
+
99
+ // A resolver reads a page of rows for a decoded query — this is exactly a schema
100
+ // source's derived fetch (`sourceFetchData`), so an in-memory source wires
101
+ // straight in. A plain array is normalized to one below.
102
+
103
+ /**
104
+ * What `mockCmsItems` serves: either plain rows or a resolver that returns a page
105
+ * per query (a schema source's derived fetch is exactly a resolver).
106
+ */
107
+
108
+ /**
109
+ * Mock the rows either from explicit items/resolver or straight from a schema
110
+ * source — pass `{ source }` and a `createInMemorySchemaSource` becomes the single
111
+ * source of truth for the rows too.
112
+ */
113
+
114
+ // The @wix/data query is sent as a base64 `.r` search param; decode it back to
115
+ // the offset/limit a resolver expects.
116
+
117
+ function decodeOffsetQuery(opts) {
118
+ var _JSON$parse, _query$paging, _query$paging2;
119
+ const raw = opts.queryParams.get('.r');
120
+ const query = raw ? (_JSON$parse = JSON.parse(atob(raw))) == null ? void 0 : _JSON$parse.query : undefined;
121
+ return {
122
+ offset: (query == null || (_query$paging = query.paging) == null ? void 0 : _query$paging.offset) ?? 0,
123
+ limit: (query == null || (_query$paging2 = query.paging) == null ? void 0 : _query$paging2.limit) ?? 100
124
+ };
125
+ }
126
+ function toResolver(items) {
127
+ if (typeof items === 'function') {
128
+ return items;
129
+ }
130
+ // Plain array: slice by the requested page, report the full count as total.
131
+ return async query => {
132
+ const offset = query.offset ?? 0;
133
+ const limit = query.limit ?? items.length;
134
+ const page = items.slice(offset, offset + limit);
135
+ return {
136
+ items: page,
137
+ total: items.length,
138
+ hasNext: offset + page.length < items.length
139
+ };
140
+ };
141
+ }
142
+
143
+ /**
144
+ * Routes the collection's rows (`items.query(...).find()`). Pass plain rows, or a
145
+ * resolver `(query) => Promise<{ items, total }>` — the latter is a schema source's
146
+ * `sourceFetchData(source)`, so an in-memory source drives paging per request.
147
+ */
148
+ function mockCmsItems(fetchMock, options) {
149
+ const resolve = 'source' in options ? (0, _bexCore.sourceFetchData)(options.source) : toResolver(options.items);
150
+ const [url] = (0, _fetchMock.when)(queryDataItemsMeta()).reply(null);
151
+ fetchMock.route(url, async opts => {
152
+ const {
153
+ items: page,
154
+ total
155
+ } = await resolve(decodeOffsetQuery(opts));
156
+ return {
157
+ dataItems: page.map(data => ({
158
+ data
159
+ })),
160
+ pagingMetadata: {
161
+ total
162
+ }
163
+ };
164
+ });
165
+ }
166
+ //# sourceMappingURL=cmsFetchMocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_fetchMock","require","_meta","_data","_bexCore","_cmsFieldTypeMap","itemsApi","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toCmsFields","fields","idField","values","filter","field","map","key","id","displayName","type","PatternsFieldTypeToCmsFieldType","collections","Type","TEXT","systemField","collectionResponse","collectionId","displayField","referencedCollections","collection","collectionType","CollectionType","WIX_APP","pagingModes","PagingMode","OFFSET","plugins","mockCmsCollection","fetchMock","options","source","url","when","collectionsMeta","getDataCollection","withParams","dataCollectionId","reply","undefined","route","schema","loadSchema","data","queryDataItemsMeta","getUrl","context","reqOptions","queryDataItemsRequestOptions","httpMethod","method","path","httpPath","pathParams","__requestType","__originalRequestType","__responseType","__originalResponseType","decodeOffsetQuery","opts","_JSON$parse","_query$paging","_query$paging2","raw","queryParams","query","JSON","parse","atob","offset","paging","limit","toResolver","items","length","page","slice","total","hasNext","mockCmsItems","resolve","sourceFetchData","dataItems","pagingMetadata"],"sources":["../../../src/testkit/cmsFetchMocks.ts"],"sourcesContent":["import { when } from '@wix/sdk-testkit/fetch-mock';\nimport { collections as collectionsMeta } from '@wix/data/meta';\nimport { collections } from '@wix/data';\nimport { sourceFetchData } from '@wix/bex-core';\nimport type { Schema, SchemaSource } from '@wix/bex-core';\nimport { PatternsFieldTypeToCmsFieldType } from '../adapter/cmsFieldTypeMap';\n// The query endpoint's request options aren't exposed on any public entry, so\n// reach into the items SDK internals to derive its URL (no @wix/data/meta entry).\n// eslint-disable-next-line no-restricted-imports\nimport * as itemsApi from '@wix/wix-data-items-sdk/build/cjs/src/data-items-api-client';\nimport type { FetchMock } from 'fetch-mock';\n\nexport type WixDataFields = NonNullable<\n collections.GetDataCollectionResponse['collection']\n>['fields'];\n\n/**\n * Mock the collection schema (`getDataCollection`) either from explicit CMS fields\n * or straight from a schema source — a `createInMemorySchemaSource` becomes the\n * single source of truth for the schema, its contract fields converted back to CMS\n * fields (types with no CMS mapping fall back to text — enough to render).\n */\nexport type MockCmsCollectionOptions<\n T extends Record<string, unknown> = Record<string, unknown>,\n> =\n | { collectionId: string; fields: WixDataFields; displayField?: string }\n | { source: SchemaSource<T> };\n\nfunction toCmsFields(fields: Schema['fields'], idField: string): WixDataFields {\n return Object.values(fields)\n .filter((field): field is NonNullable<typeof field> => field != null)\n .map((field) => ({\n key: field.id,\n displayName: field.displayName,\n type:\n PatternsFieldTypeToCmsFieldType[field.type] ?? collections.Type.TEXT,\n ...(field.id === idField ? { systemField: true } : {}),\n }));\n}\n\nfunction collectionResponse(\n collectionId: string,\n fields: WixDataFields,\n displayField: string,\n): collections.GetDataCollectionResponse {\n return {\n referencedCollections: [],\n collection: {\n id: collectionId,\n collectionType: collections.CollectionType.WIX_APP,\n pagingModes: [collections.PagingMode.OFFSET],\n plugins: [],\n displayField,\n fields,\n },\n } as collections.GetDataCollectionResponse;\n}\n\n/**\n * Routes the collection schema (`getDataCollection`) that `useCmsSchemaSource`\n * loads. `@wix/data` issues real fetch calls; the caller's fetch-mock instance\n * intercepts them by URL.\n */\nexport function mockCmsCollection<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(fetchMock: FetchMock, options: MockCmsCollectionOptions<T>): void {\n if ('source' in options) {\n const { source } = options;\n const [url] = when(collectionsMeta.getDataCollection())\n .withParams({ dataCollectionId: source.collectionId })\n .reply(undefined);\n\n fetchMock.route(url, async () => {\n const { schema } = await source.loadSchema();\n return collectionResponse(\n source.collectionId,\n toCmsFields(schema.fields, schema.idField),\n schema.displayField,\n );\n });\n return;\n }\n\n const { collectionId, fields, displayField = 'name' } = options;\n const [url, data] = when(collectionsMeta.getDataCollection())\n .withParams({ dataCollectionId: collectionId })\n .reply(collectionResponse(collectionId, fields, displayField));\n\n fetchMock.route(url, data);\n}\n\n// The items-query endpoint has no `@wix/data/meta` entry, so derive its URL from\n// the wix-data-items SDK request options.\nfunction queryDataItemsMeta() {\n return {\n getUrl: (context: unknown) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (itemsApi.reqOptions as any)(\n itemsApi.queryDataItemsRequestOptions,\n {},\n )(context).url,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n httpMethod: (itemsApi.queryDataItemsRequestOptions as any).method,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n path: (itemsApi.queryDataItemsRequestOptions as any).httpPath,\n pathParams: {},\n __requestType: null,\n __originalRequestType: null,\n __responseType: null,\n __originalResponseType: null,\n };\n}\n\n// A resolver reads a page of rows for a decoded query — this is exactly a schema\n// source's derived fetch (`sourceFetchData`), so an in-memory source wires\n// straight in. A plain array is normalized to one below.\ntype ItemsResolver<T> = ReturnType<typeof sourceFetchData<T>>;\ntype OffsetQuery<T> = Parameters<ItemsResolver<T>>[0];\n\n/**\n * What `mockCmsItems` serves: either plain rows or a resolver that returns a page\n * per query (a schema source's derived fetch is exactly a resolver).\n */\nexport type CmsItems<T extends Record<string, unknown>> =\n | T[]\n | ItemsResolver<T>;\n\n/**\n * Mock the rows either from explicit items/resolver or straight from a schema\n * source — pass `{ source }` and a `createInMemorySchemaSource` becomes the single\n * source of truth for the rows too.\n */\nexport type MockCmsItemsOptions<T extends Record<string, unknown>> =\n | { items: CmsItems<T> }\n | { source: SchemaSource<T> };\n\n// The @wix/data query is sent as a base64 `.r` search param; decode it back to\n// the offset/limit a resolver expects.\ninterface QueryCall {\n queryParams: { get(name: string): string | null };\n}\n\nfunction decodeOffsetQuery<T extends Record<string, unknown>>(\n opts: QueryCall,\n): OffsetQuery<T> {\n const raw = opts.queryParams.get('.r');\n const query = raw ? JSON.parse(atob(raw))?.query : undefined;\n return {\n offset: query?.paging?.offset ?? 0,\n limit: query?.paging?.limit ?? 100,\n } as OffsetQuery<T>;\n}\n\nfunction toResolver<T extends Record<string, unknown>>(\n items: CmsItems<T>,\n): ItemsResolver<T> {\n if (typeof items === 'function') {\n return items;\n }\n // Plain array: slice by the requested page, report the full count as total.\n return (async (query: OffsetQuery<T>) => {\n const offset = query.offset ?? 0;\n const limit = query.limit ?? items.length;\n const page = items.slice(offset, offset + limit);\n return {\n items: page,\n total: items.length,\n hasNext: offset + page.length < items.length,\n };\n }) as ItemsResolver<T>;\n}\n\n/**\n * Routes the collection's rows (`items.query(...).find()`). Pass plain rows, or a\n * resolver `(query) => Promise<{ items, total }>` — the latter is a schema source's\n * `sourceFetchData(source)`, so an in-memory source drives paging per request.\n */\nexport function mockCmsItems<T extends Record<string, unknown>>(\n fetchMock: FetchMock,\n options: MockCmsItemsOptions<T>,\n): void {\n const resolve =\n 'source' in options\n ? sourceFetchData(options.source)\n : toResolver(options.items);\n const [url] = when(queryDataItemsMeta()).reply(null);\n\n fetchMock.route(url, async (opts: QueryCall) => {\n const { items: page, total } = await resolve(decodeOffsetQuery<T>(opts));\n return {\n dataItems: page.map((data) => ({ data })),\n pagingMetadata: { total },\n };\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _cmsFetchMocks = require("./cmsFetchMocks");
5
+ Object.keys(_cmsFetchMocks).forEach(function (key) {
6
+ if (key === "default" || key === "__esModule") return;
7
+ if (key in exports && exports[key] === _cmsFetchMocks[key]) return;
8
+ exports[key] = _cmsFetchMocks[key];
9
+ });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_cmsFetchMocks","require","Object","keys","forEach","key","exports"],"sources":["../../../src/testkit/index.ts"],"sourcesContent":["export * from './cmsFetchMocks';\n"],"mappings":";;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,cAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,cAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,cAAA,CAAAK,GAAA;AAAA","ignoreList":[]}
@@ -99,6 +99,11 @@ describe('transformCmsSchema', () => {
99
99
  expect(schema.fields.secret?.helpText).toBe('A hint');
100
100
  expect(schema.fields.secret?.isSystem).toBe(true);
101
101
  });
102
+ it('treats the manual-sort field as system even when not flagged by @wix/data', () => {
103
+ const key = '_manualSort_48382113-d33d-415b-b416-b65642f65483';
104
+ const schema = transformCmsSchema(makeCollection([makeField({ key, systemField: false })]));
105
+ expect(schema.fields[key]?.isSystem).toBe(true);
106
+ });
102
107
  it('maps validation ranges and required', () => {
103
108
  const schema = transformCmsSchema(makeCollection([
104
109
  makeField({
@@ -1 +1 @@
1
- {"version":3,"file":"transformCmsSchema.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/transformCmsSchema.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformCmsSchema.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/transformCmsSchema.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import { defineSchemaSource } from '@wix/bex-core';
2
+ import { collections } from '@wix/data';
3
+ import { cmsSchemaSourceInput } from '../useCmsSchemaSource';
4
+ import { fetchUserPermissions } from '../fetchUserPermissions';
5
+ import { fetchExternalDbConnections } from '../fetchExternalDbConnections';
6
+ // loadCmsSchema imports errorHandler at evaluation time; stub it so importing
7
+ // the source builder is side-effect free.
8
+ jest.mock('@wix/essentials', () => ({
9
+ errorHandler: {
10
+ withErrorHandler: (fn) => fn(),
11
+ },
12
+ }));
13
+ // Keep @wix/data real (cmsFieldTypeMap reads `collections.Type` at evaluation
14
+ // time) and stub only the collection fetch, so loadSchema runs the real
15
+ // loader + transform against a fixed collection.
16
+ jest.mock('@wix/data', () => {
17
+ const actual = jest.requireActual('@wix/data');
18
+ return {
19
+ ...actual,
20
+ collections: {
21
+ ...actual.collections,
22
+ getDataCollection: jest.fn(),
23
+ },
24
+ };
25
+ });
26
+ jest.mock('../fetchUserPermissions', () => ({
27
+ fetchUserPermissions: jest.fn(),
28
+ }));
29
+ jest.mock('../fetchExternalDbConnections', () => ({
30
+ fetchExternalDbConnections: jest.fn(),
31
+ }));
32
+ const getDataCollection = collections.getDataCollection;
33
+ const fetchUserPermissionsMock = fetchUserPermissions;
34
+ const fetchExternalDbConnectionsMock = fetchExternalDbConnections;
35
+ const httpClient = {};
36
+ // A collection with one reference field pointing at "Camels".
37
+ const collectionWithReference = () => ({
38
+ _id: 'Products',
39
+ collectionType: 'NATIVE',
40
+ displayField: 'title',
41
+ capabilities: { dataOperations: ['SAVE', 'UPDATE', 'REMOVE'] },
42
+ permissions: {
43
+ read: 'ANYONE',
44
+ insert: 'SITE_MEMBER',
45
+ update: 'SITE_MEMBER',
46
+ remove: 'SITE_MEMBER',
47
+ },
48
+ plugins: [],
49
+ fields: [
50
+ {
51
+ key: 'title',
52
+ type: collections.Type.TEXT,
53
+ systemField: false,
54
+ encrypted: false,
55
+ plugins: [],
56
+ displayName: 'Title',
57
+ capabilities: { queryOperators: [], sortable: true },
58
+ },
59
+ {
60
+ key: 'supplier',
61
+ type: collections.Type.REFERENCE,
62
+ systemField: false,
63
+ encrypted: false,
64
+ plugins: [],
65
+ displayName: 'Supplier',
66
+ capabilities: { queryOperators: [], sortable: false },
67
+ typeMetadata: { reference: { referencedCollectionId: 'Camels' } },
68
+ },
69
+ ],
70
+ });
71
+ describe('useCmsSchemaSource', () => {
72
+ beforeEach(() => {
73
+ jest.clearAllMocks();
74
+ getDataCollection.mockResolvedValue(collectionWithReference());
75
+ fetchUserPermissionsMock.mockResolvedValue([]);
76
+ fetchExternalDbConnectionsMock.mockResolvedValue([]);
77
+ });
78
+ it('declares the creatable types in display order — labels come from the standard names in the UI', () => {
79
+ const source = defineSchemaSource(cmsSchemaSourceInput({
80
+ collectionId: 'Pokemon',
81
+ httpClient,
82
+ }));
83
+ expect(source.creatableFieldTypes).toEqual([
84
+ { patternsType: 'SHORT_TEXT' },
85
+ { patternsType: 'NUMBER' },
86
+ { patternsType: 'BOOLEAN' },
87
+ { patternsType: 'DATE' },
88
+ ]);
89
+ });
90
+ it('builds an offset source keyed by the collectionId', () => {
91
+ const source = defineSchemaSource(cmsSchemaSourceInput({
92
+ collectionId: 'Pokemon',
93
+ httpClient,
94
+ }));
95
+ expect(source.collectionId).toBe('Pokemon');
96
+ expect(source.paginationMode).toBe('offset');
97
+ });
98
+ it('auto-builds a reference source per reference field once the schema loads', async () => {
99
+ const source = defineSchemaSource(cmsSchemaSourceInput({ collectionId: 'Products', httpClient }));
100
+ // Nothing is wired until the schema (and its reference fields) is known.
101
+ expect(source.references).toEqual({});
102
+ await source.loadSchema();
103
+ expect(source.references.Camels).toBeDefined();
104
+ expect(source.references.Camels.collectionId).toBe('Camels');
105
+ });
106
+ it('keeps a seeded reference source instead of auto-building it', async () => {
107
+ const seeded = defineSchemaSource(cmsSchemaSourceInput({ collectionId: 'Camels', httpClient }));
108
+ const source = defineSchemaSource(cmsSchemaSourceInput({
109
+ collectionId: 'Products',
110
+ httpClient,
111
+ references: { Camels: seeded },
112
+ }));
113
+ await source.loadSchema();
114
+ expect(source.references.Camels).toBe(seeded);
115
+ });
116
+ });
117
+ //# sourceMappingURL=useCmsSchemaSource.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCmsSchemaSource.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/useCmsSchemaSource.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCmsBackend.js","sourceRoot":"","sources":["../../../src/adapter/createCmsBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createCmsBackend.js","sourceRoot":"","sources":["../../../src/adapter/createCmsBackend.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export { createCmsSchemaLoader, fetchCmsCollection, } from './loadCmsSchema';
2
- export { createCmsSchemaSource, } from './createCmsSchemaSource';
2
+ export { useCmsSchemaSource, } from './useCmsSchemaSource';
3
+ export { listCmsCollections, } from './listCmsCollections';
3
4
  export { transformCmsSchema, } from './transformCmsSchema';
4
5
  export { createCmsBackend } from './createCmsBackend';
5
6
  export { createCmsFieldActions } from './createCmsFieldActions';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,qBAAqB,GAGtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,qBAAqB,GAGtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { collections } from '@wix/data';
2
+ import { errorHandler } from '@wix/essentials';
3
+ /** Lists the site's CMS collections — for collection pickers. */
4
+ export async function listCmsCollections() {
5
+ const response = await errorHandler.withErrorHandler(async () => collections.listDataCollections(), {});
6
+ return (response.collections ?? [])
7
+ .map((collection) => ({
8
+ id: collection._id ?? '',
9
+ displayName: collection.displayName ?? collection._id ?? '',
10
+ }))
11
+ .filter((collection) => collection.id !== '');
12
+ }
13
+ //# sourceMappingURL=listCmsCollections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listCmsCollections.js","sourceRoot":"","sources":["../../../src/adapter/listCmsCollections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAO/C,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAClD,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,mBAAmB,EAAE,EAC7C,EAAE,CACH,CAAC;IACF,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;SAChC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpB,EAAE,EAAE,UAAU,CAAC,GAAG,IAAI,EAAE;QACxB,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,GAAG,IAAI,EAAE;KAC5D,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC"}
@@ -17,7 +17,10 @@ export function transformCmsSchema(schema, options = {}) {
17
17
  isPrimary: field.key === schema.displayField,
18
18
  isPii: field.encrypted ?? false,
19
19
  helpText: field.description ?? undefined,
20
- isSystem: field.systemField ?? false,
20
+ // `@wix/data` does not flag the manual-sort field (`_manualSort_<id>`)
21
+ // as `systemField`, but it is internal and must not surface as an
22
+ // editable field — treat it as system, matching auto-patterns.
23
+ isSystem: (field.systemField ?? false) || field.key.startsWith('_manualSort'),
21
24
  validation: {
22
25
  numberRange: field.numberRange
23
26
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"transformCmsSchema.js","sourceRoot":"","sources":["../../../src/adapter/transformCmsSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformCmsSchema.js","sourceRoot":"","sources":["../../../src/adapter/transformCmsSchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { useSchemaSource, useWixPatternsContainer } from '@wix/bex-core/react';
2
+ import { defineSchemaSource } from '@wix/bex-core';
3
+ import { createCmsSchemaLoader, } from './loadCmsSchema';
4
+ // The field types the add/edit modal offers, in display order. These are the
5
+ // only types @wix/data can create (see PatternsFieldTypeToCmsFieldType).
6
+ const CMS_CREATABLE_TYPES = [
7
+ { patternsType: 'SHORT_TEXT' },
8
+ { patternsType: 'NUMBER' },
9
+ { patternsType: 'BOOLEAN' },
10
+ { patternsType: 'DATE' },
11
+ ];
12
+ export function cmsSchemaSourceInput(deps) {
13
+ const { collectionId, references: seedReferences, ...loaderDeps } = deps;
14
+ const loader = createCmsSchemaLoader(loaderDeps);
15
+ // Reference fields are wired automatically: when the schema loads, each
16
+ // REFERENCE / MULTI_REFERENCE field's referencedCollectionId gets a child CMS
17
+ // source (same loader deps) added to `references`, so entity-page reference
18
+ // inputs can query the referenced collection with no manual wiring. The object
19
+ // is shared with the resolved source; seeded entries win over auto-built ones.
20
+ const references = { ...seedReferences };
21
+ const loadSchema = async () => {
22
+ const loaded = await loader(collectionId);
23
+ Object.values(loaded.schema.fields).forEach((field) => {
24
+ if (field?.type !== 'REFERENCE' && field?.type !== 'MULTI_REFERENCE') {
25
+ return;
26
+ }
27
+ const referencedCollectionId = field.referenceMetadata.referencedCollectionId;
28
+ if (referencedCollectionId && !references[referencedCollectionId]) {
29
+ references[referencedCollectionId] = defineSchemaSource(cmsSchemaSourceInput({
30
+ collectionId: referencedCollectionId,
31
+ ...loaderDeps,
32
+ }));
33
+ }
34
+ });
35
+ return loaded;
36
+ };
37
+ return {
38
+ collectionId,
39
+ loadSchema,
40
+ creatableFieldTypes: CMS_CREATABLE_TYPES,
41
+ references,
42
+ };
43
+ }
44
+ /**
45
+ * A ready-to-use `SchemaSource` for a CMS collection: wraps the CMS schema
46
+ * loader and supplies the CMS field types. Pass it to a `@wix/patterns/schema`
47
+ * collection hook.
48
+ */
49
+ export function useCmsSchemaSource(deps) {
50
+ const container = useWixPatternsContainer();
51
+ return useSchemaSource(cmsSchemaSourceInput({
52
+ ...deps,
53
+ httpClient: deps.httpClient ?? container.httpClient,
54
+ }));
55
+ }
56
+ //# sourceMappingURL=useCmsSchemaSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCmsSchemaSource.js","sourceRoot":"","sources":["../../../src/adapter/useCmsSchemaSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAMnD,OAAO,EACL,qBAAqB,GAEtB,MAAM,iBAAiB,CAAC;AAEzB,6EAA6E;AAC7E,yEAAyE;AACzE,MAAM,mBAAmB,GAAyB;IAChD,EAAE,YAAY,EAAE,YAAY,EAAE;IAC9B,EAAE,YAAY,EAAE,QAAQ,EAAE;IAC1B,EAAE,YAAY,EAAE,SAAS,EAAE;IAC3B,EAAE,YAAY,EAAE,MAAM,EAAE;CACzB,CAAC;AAaF,MAAM,UAAU,oBAAoB,CAGlC,IAA4E;IAE5E,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IACzE,MAAM,MAAM,GAAG,qBAAqB,CAAI,UAAU,CAAC,CAAC;IAEpD,wEAAwE;IACxE,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,MAAM,UAAU,GAAsC,EAAE,GAAG,cAAc,EAAE,CAAC;IAE5E,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACpD,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,EAAE,IAAI,KAAK,iBAAiB,EAAE;gBACpE,OAAO;aACR;YACD,MAAM,sBAAsB,GAC1B,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;YACjD,IAAI,sBAAsB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;gBACjE,UAAU,CAAC,sBAAsB,CAAC,GAAG,kBAAkB,CACrD,oBAAoB,CAAC;oBACnB,YAAY,EAAE,sBAAsB;oBACpC,GAAG,UAAU;iBACd,CAAC,CACH,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,UAAU;QACV,mBAAmB,EAAE,mBAAmB;QACxC,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAEhC,IAA4B;IAC5B,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAC;IAC5C,OAAO,eAAe,CACpB,oBAAoB,CAAI;QACtB,GAAG,IAAI;QACP,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU;KACpD,CAAC,CACH,CAAC;AACJ,CAAC"}