@wix/patterns-cms 1.1.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 (163) hide show
  1. package/dist/cjs/adapter/__tests__/cmsFieldActions.spec.js +436 -0
  2. package/dist/cjs/adapter/__tests__/cmsFieldActions.spec.js.map +1 -0
  3. package/dist/cjs/adapter/__tests__/cmsPermissions.spec.js +175 -0
  4. package/dist/cjs/adapter/__tests__/cmsPermissions.spec.js.map +1 -0
  5. package/dist/cjs/adapter/__tests__/createCmsBackend.spec.js +440 -0
  6. package/dist/cjs/adapter/__tests__/createCmsBackend.spec.js.map +1 -0
  7. package/dist/cjs/adapter/__tests__/filterUtils.spec.js +426 -0
  8. package/dist/cjs/adapter/__tests__/filterUtils.spec.js.map +1 -0
  9. package/dist/cjs/adapter/__tests__/getFieldKey.spec.js +24 -0
  10. package/dist/cjs/adapter/__tests__/getFieldKey.spec.js.map +1 -0
  11. package/dist/cjs/adapter/__tests__/loadCmsSchema.spec.js +166 -0
  12. package/dist/cjs/adapter/__tests__/loadCmsSchema.spec.js.map +1 -0
  13. package/dist/cjs/adapter/__tests__/searchUtils.spec.js +116 -0
  14. package/dist/cjs/adapter/__tests__/searchUtils.spec.js.map +1 -0
  15. package/dist/cjs/adapter/__tests__/sortUtils.spec.js +118 -0
  16. package/dist/cjs/adapter/__tests__/sortUtils.spec.js.map +1 -0
  17. package/dist/cjs/adapter/__tests__/transformCmsSchema.spec.js +210 -0
  18. package/dist/cjs/adapter/__tests__/transformCmsSchema.spec.js.map +1 -0
  19. package/dist/cjs/adapter/__tests__/wixDataQueryRecorder.js +54 -0
  20. package/dist/cjs/adapter/__tests__/wixDataQueryRecorder.js.map +1 -0
  21. package/dist/cjs/adapter/cmsBackup.js +52 -0
  22. package/dist/cjs/adapter/cmsBackup.js.map +1 -0
  23. package/dist/cjs/adapter/cmsFieldTypeMap.js +43 -0
  24. package/dist/cjs/adapter/cmsFieldTypeMap.js.map +1 -0
  25. package/dist/cjs/adapter/cmsPermissions.js +94 -0
  26. package/dist/cjs/adapter/cmsPermissions.js.map +1 -0
  27. package/dist/cjs/adapter/constants.js +20 -0
  28. package/dist/cjs/adapter/constants.js.map +1 -0
  29. package/dist/cjs/adapter/createCmsBackend.js +131 -0
  30. package/dist/cjs/adapter/createCmsBackend.js.map +1 -0
  31. package/dist/cjs/adapter/createCmsFieldActions.js +182 -0
  32. package/dist/cjs/adapter/createCmsFieldActions.js.map +1 -0
  33. package/dist/cjs/adapter/fetchExternalDbConnections.js +24 -0
  34. package/dist/cjs/adapter/fetchExternalDbConnections.js.map +1 -0
  35. package/dist/cjs/adapter/fetchUserPermissions.js +24 -0
  36. package/dist/cjs/adapter/fetchUserPermissions.js.map +1 -0
  37. package/dist/cjs/adapter/filterUtils.js +128 -0
  38. package/dist/cjs/adapter/filterUtils.js.map +1 -0
  39. package/dist/cjs/adapter/getFieldKey.js +19 -0
  40. package/dist/cjs/adapter/getFieldKey.js.map +1 -0
  41. package/dist/cjs/adapter/index.js +36 -0
  42. package/dist/cjs/adapter/index.js.map +1 -0
  43. package/dist/cjs/adapter/loadCmsSchema.js +51 -0
  44. package/dist/cjs/adapter/loadCmsSchema.js.map +1 -0
  45. package/dist/cjs/adapter/pollUntilReady.js +30 -0
  46. package/dist/cjs/adapter/pollUntilReady.js.map +1 -0
  47. package/dist/cjs/adapter/searchUtils.js +32 -0
  48. package/dist/cjs/adapter/searchUtils.js.map +1 -0
  49. package/dist/cjs/adapter/sortUtils.js +34 -0
  50. package/dist/cjs/adapter/sortUtils.js.map +1 -0
  51. package/dist/cjs/adapter/transformCmsSchema.js +75 -0
  52. package/dist/cjs/adapter/transformCmsSchema.js.map +1 -0
  53. package/dist/cjs/index.js +10 -0
  54. package/dist/cjs/index.js.map +1 -0
  55. package/dist/esm/adapter/__tests__/cmsFieldActions.spec.js +335 -0
  56. package/dist/esm/adapter/__tests__/cmsFieldActions.spec.js.map +1 -0
  57. package/dist/esm/adapter/__tests__/cmsPermissions.spec.js +173 -0
  58. package/dist/esm/adapter/__tests__/cmsPermissions.spec.js.map +1 -0
  59. package/dist/esm/adapter/__tests__/createCmsBackend.spec.js +307 -0
  60. package/dist/esm/adapter/__tests__/createCmsBackend.spec.js.map +1 -0
  61. package/dist/esm/adapter/__tests__/filterUtils.spec.js +298 -0
  62. package/dist/esm/adapter/__tests__/filterUtils.spec.js.map +1 -0
  63. package/dist/esm/adapter/__tests__/getFieldKey.spec.js +22 -0
  64. package/dist/esm/adapter/__tests__/getFieldKey.spec.js.map +1 -0
  65. package/dist/esm/adapter/__tests__/loadCmsSchema.spec.js +147 -0
  66. package/dist/esm/adapter/__tests__/loadCmsSchema.spec.js.map +1 -0
  67. package/dist/esm/adapter/__tests__/searchUtils.spec.js +109 -0
  68. package/dist/esm/adapter/__tests__/searchUtils.spec.js.map +1 -0
  69. package/dist/esm/adapter/__tests__/sortUtils.spec.js +85 -0
  70. package/dist/esm/adapter/__tests__/sortUtils.spec.js.map +1 -0
  71. package/dist/esm/adapter/__tests__/transformCmsSchema.spec.js +201 -0
  72. package/dist/esm/adapter/__tests__/transformCmsSchema.spec.js.map +1 -0
  73. package/dist/esm/adapter/__tests__/wixDataQueryRecorder.js +42 -0
  74. package/dist/esm/adapter/__tests__/wixDataQueryRecorder.js.map +1 -0
  75. package/dist/esm/adapter/cmsBackup.js +34 -0
  76. package/dist/esm/adapter/cmsBackup.js.map +1 -0
  77. package/dist/esm/adapter/cmsFieldTypeMap.js +37 -0
  78. package/dist/esm/adapter/cmsFieldTypeMap.js.map +1 -0
  79. package/dist/esm/adapter/cmsPermissions.js +91 -0
  80. package/dist/esm/adapter/cmsPermissions.js.map +1 -0
  81. package/dist/esm/adapter/constants.js +25 -0
  82. package/dist/esm/adapter/constants.js.map +1 -0
  83. package/dist/esm/adapter/createCmsBackend.js +113 -0
  84. package/dist/esm/adapter/createCmsBackend.js.map +1 -0
  85. package/dist/esm/adapter/createCmsFieldActions.js +159 -0
  86. package/dist/esm/adapter/createCmsFieldActions.js.map +1 -0
  87. package/dist/esm/adapter/fetchExternalDbConnections.js +17 -0
  88. package/dist/esm/adapter/fetchExternalDbConnections.js.map +1 -0
  89. package/dist/esm/adapter/fetchUserPermissions.js +15 -0
  90. package/dist/esm/adapter/fetchUserPermissions.js.map +1 -0
  91. package/dist/esm/adapter/filterUtils.js +126 -0
  92. package/dist/esm/adapter/filterUtils.js.map +1 -0
  93. package/dist/esm/adapter/getFieldKey.js +13 -0
  94. package/dist/esm/adapter/getFieldKey.js.map +1 -0
  95. package/dist/esm/adapter/index.js +15 -0
  96. package/dist/esm/adapter/index.js.map +1 -0
  97. package/dist/esm/adapter/loadCmsSchema.js +48 -0
  98. package/dist/esm/adapter/loadCmsSchema.js.map +1 -0
  99. package/dist/esm/adapter/pollUntilReady.js +24 -0
  100. package/dist/esm/adapter/pollUntilReady.js.map +1 -0
  101. package/dist/esm/adapter/searchUtils.js +24 -0
  102. package/dist/esm/adapter/searchUtils.js.map +1 -0
  103. package/dist/esm/adapter/sortUtils.js +21 -0
  104. package/dist/esm/adapter/sortUtils.js.map +1 -0
  105. package/dist/esm/adapter/transformCmsSchema.js +70 -0
  106. package/dist/esm/adapter/transformCmsSchema.js.map +1 -0
  107. package/dist/esm/index.js +2 -0
  108. package/dist/esm/index.js.map +1 -0
  109. package/dist/types/adapter/__tests__/cmsFieldActions.spec.d.ts +2 -0
  110. package/dist/types/adapter/__tests__/cmsFieldActions.spec.d.ts.map +1 -0
  111. package/dist/types/adapter/__tests__/cmsPermissions.spec.d.ts +2 -0
  112. package/dist/types/adapter/__tests__/cmsPermissions.spec.d.ts.map +1 -0
  113. package/dist/types/adapter/__tests__/createCmsBackend.spec.d.ts +2 -0
  114. package/dist/types/adapter/__tests__/createCmsBackend.spec.d.ts.map +1 -0
  115. package/dist/types/adapter/__tests__/filterUtils.spec.d.ts +2 -0
  116. package/dist/types/adapter/__tests__/filterUtils.spec.d.ts.map +1 -0
  117. package/dist/types/adapter/__tests__/getFieldKey.spec.d.ts +2 -0
  118. package/dist/types/adapter/__tests__/getFieldKey.spec.d.ts.map +1 -0
  119. package/dist/types/adapter/__tests__/loadCmsSchema.spec.d.ts +2 -0
  120. package/dist/types/adapter/__tests__/loadCmsSchema.spec.d.ts.map +1 -0
  121. package/dist/types/adapter/__tests__/searchUtils.spec.d.ts +2 -0
  122. package/dist/types/adapter/__tests__/searchUtils.spec.d.ts.map +1 -0
  123. package/dist/types/adapter/__tests__/sortUtils.spec.d.ts +2 -0
  124. package/dist/types/adapter/__tests__/sortUtils.spec.d.ts.map +1 -0
  125. package/dist/types/adapter/__tests__/transformCmsSchema.spec.d.ts +2 -0
  126. package/dist/types/adapter/__tests__/transformCmsSchema.spec.d.ts.map +1 -0
  127. package/dist/types/adapter/__tests__/wixDataQueryRecorder.d.ts +40 -0
  128. package/dist/types/adapter/__tests__/wixDataQueryRecorder.d.ts.map +1 -0
  129. package/dist/types/adapter/cmsBackup.d.ts +7 -0
  130. package/dist/types/adapter/cmsBackup.d.ts.map +1 -0
  131. package/dist/types/adapter/cmsFieldTypeMap.d.ts +8 -0
  132. package/dist/types/adapter/cmsFieldTypeMap.d.ts.map +1 -0
  133. package/dist/types/adapter/cmsPermissions.d.ts +21 -0
  134. package/dist/types/adapter/cmsPermissions.d.ts.map +1 -0
  135. package/dist/types/adapter/constants.d.ts +14 -0
  136. package/dist/types/adapter/constants.d.ts.map +1 -0
  137. package/dist/types/adapter/createCmsBackend.d.ts +9 -0
  138. package/dist/types/adapter/createCmsBackend.d.ts.map +1 -0
  139. package/dist/types/adapter/createCmsFieldActions.d.ts +8 -0
  140. package/dist/types/adapter/createCmsFieldActions.d.ts.map +1 -0
  141. package/dist/types/adapter/fetchExternalDbConnections.d.ts +11 -0
  142. package/dist/types/adapter/fetchExternalDbConnections.d.ts.map +1 -0
  143. package/dist/types/adapter/fetchUserPermissions.d.ts +7 -0
  144. package/dist/types/adapter/fetchUserPermissions.d.ts.map +1 -0
  145. package/dist/types/adapter/filterUtils.d.ts +14 -0
  146. package/dist/types/adapter/filterUtils.d.ts.map +1 -0
  147. package/dist/types/adapter/getFieldKey.d.ts +3 -0
  148. package/dist/types/adapter/getFieldKey.d.ts.map +1 -0
  149. package/dist/types/adapter/index.d.ts +15 -0
  150. package/dist/types/adapter/index.d.ts.map +1 -0
  151. package/dist/types/adapter/loadCmsSchema.d.ts +29 -0
  152. package/dist/types/adapter/loadCmsSchema.d.ts.map +1 -0
  153. package/dist/types/adapter/pollUntilReady.d.ts +11 -0
  154. package/dist/types/adapter/pollUntilReady.d.ts.map +1 -0
  155. package/dist/types/adapter/searchUtils.d.ts +12 -0
  156. package/dist/types/adapter/searchUtils.d.ts.map +1 -0
  157. package/dist/types/adapter/sortUtils.d.ts +11 -0
  158. package/dist/types/adapter/sortUtils.d.ts.map +1 -0
  159. package/dist/types/adapter/transformCmsSchema.d.ts +12 -0
  160. package/dist/types/adapter/transformCmsSchema.d.ts.map +1 -0
  161. package/dist/types/index.d.ts +2 -0
  162. package/dist/types/index.d.ts.map +1 -0
  163. package/package.json +123 -0
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.transformCmsSchema = exports.pollUntilReady = exports.getFieldKey = exports.fetchUserPermissions = exports.fetchExternalDbConnections = exports.fetchCmsCollection = exports.createCmsSchemaLoader = exports.createCmsFieldActions = exports.createCmsBackupConfig = exports.createCmsBackend = exports.computeCmsPermissions = exports.addSortToDataQuery = exports.addSearchToDataQuery = exports.addFiltersToDataQuery = exports.PatternsFieldTypeToCmsFieldType = exports.CmsFieldTypeToPatternsFieldType = exports.CMS_EMAIL_TYPE = void 0;
5
+ var _loadCmsSchema = require("./loadCmsSchema");
6
+ exports.createCmsSchemaLoader = _loadCmsSchema.createCmsSchemaLoader;
7
+ exports.fetchCmsCollection = _loadCmsSchema.fetchCmsCollection;
8
+ var _transformCmsSchema = require("./transformCmsSchema");
9
+ exports.transformCmsSchema = _transformCmsSchema.transformCmsSchema;
10
+ var _createCmsBackend = require("./createCmsBackend");
11
+ exports.createCmsBackend = _createCmsBackend.createCmsBackend;
12
+ var _createCmsFieldActions = require("./createCmsFieldActions");
13
+ exports.createCmsFieldActions = _createCmsFieldActions.createCmsFieldActions;
14
+ var _cmsPermissions = require("./cmsPermissions");
15
+ exports.computeCmsPermissions = _cmsPermissions.computeCmsPermissions;
16
+ var _cmsFieldTypeMap = require("./cmsFieldTypeMap");
17
+ exports.CmsFieldTypeToPatternsFieldType = _cmsFieldTypeMap.CmsFieldTypeToPatternsFieldType;
18
+ exports.PatternsFieldTypeToCmsFieldType = _cmsFieldTypeMap.PatternsFieldTypeToCmsFieldType;
19
+ exports.CMS_EMAIL_TYPE = _cmsFieldTypeMap.CMS_EMAIL_TYPE;
20
+ var _filterUtils = require("./filterUtils");
21
+ exports.addFiltersToDataQuery = _filterUtils.addFiltersToDataQuery;
22
+ var _searchUtils = require("./searchUtils");
23
+ exports.addSearchToDataQuery = _searchUtils.addSearchToDataQuery;
24
+ var _sortUtils = require("./sortUtils");
25
+ exports.addSortToDataQuery = _sortUtils.addSortToDataQuery;
26
+ var _getFieldKey = require("./getFieldKey");
27
+ exports.getFieldKey = _getFieldKey.getFieldKey;
28
+ var _cmsBackup = require("./cmsBackup");
29
+ exports.createCmsBackupConfig = _cmsBackup.createCmsBackupConfig;
30
+ var _pollUntilReady = require("./pollUntilReady");
31
+ exports.pollUntilReady = _pollUntilReady.pollUntilReady;
32
+ var _fetchExternalDbConnections = require("./fetchExternalDbConnections");
33
+ exports.fetchExternalDbConnections = _fetchExternalDbConnections.fetchExternalDbConnections;
34
+ var _fetchUserPermissions = require("./fetchUserPermissions");
35
+ exports.fetchUserPermissions = _fetchUserPermissions.fetchUserPermissions;
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_loadCmsSchema","require","exports","createCmsSchemaLoader","fetchCmsCollection","_transformCmsSchema","transformCmsSchema","_createCmsBackend","createCmsBackend","_createCmsFieldActions","createCmsFieldActions","_cmsPermissions","computeCmsPermissions","_cmsFieldTypeMap","CmsFieldTypeToPatternsFieldType","PatternsFieldTypeToCmsFieldType","CMS_EMAIL_TYPE","_filterUtils","addFiltersToDataQuery","_searchUtils","addSearchToDataQuery","_sortUtils","addSortToDataQuery","_getFieldKey","getFieldKey","_cmsBackup","createCmsBackupConfig","_pollUntilReady","pollUntilReady","_fetchExternalDbConnections","fetchExternalDbConnections","_fetchUserPermissions","fetchUserPermissions"],"sources":["../../../src/adapter/index.ts"],"sourcesContent":["export {\n createCmsSchemaLoader,\n fetchCmsCollection,\n type CreateCmsSchemaLoaderDeps,\n} from './loadCmsSchema';\nexport {\n transformCmsSchema,\n type TransformCmsSchemaOptions,\n} from './transformCmsSchema';\nexport { createCmsBackend } from './createCmsBackend';\nexport { createCmsFieldActions } from './createCmsFieldActions';\nexport {\n computeCmsPermissions,\n type CmsPermissions,\n type ExternalDbConnection,\n} from './cmsPermissions';\nexport {\n CmsFieldTypeToPatternsFieldType,\n PatternsFieldTypeToCmsFieldType,\n CMS_EMAIL_TYPE,\n} from './cmsFieldTypeMap';\nexport { addFiltersToDataQuery } from './filterUtils';\nexport { addSearchToDataQuery } from './searchUtils';\nexport { addSortToDataQuery } from './sortUtils';\nexport { getFieldKey } from './getFieldKey';\nexport { createCmsBackupConfig } from './cmsBackup';\nexport { pollUntilReady, type PollOptions } from './pollUntilReady';\nexport { fetchExternalDbConnections } from './fetchExternalDbConnections';\nexport { fetchUserPermissions } from './fetchUserPermissions';\n"],"mappings":";;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAIyBC,OAAA,CAAAC,qBAAA,GAAAH,cAAA,CAAAG,qBAAA;AAAAD,OAAA,CAAAE,kBAAA,GAAAJ,cAAA,CAAAI,kBAAA;AACzB,IAAAC,mBAAA,GAAAJ,OAAA;AAG8BC,OAAA,CAAAI,kBAAA,GAAAD,mBAAA,CAAAC,kBAAA;AAC9B,IAAAC,iBAAA,GAAAN,OAAA;AAAsDC,OAAA,CAAAM,gBAAA,GAAAD,iBAAA,CAAAC,gBAAA;AACtD,IAAAC,sBAAA,GAAAR,OAAA;AAAgEC,OAAA,CAAAQ,qBAAA,GAAAD,sBAAA,CAAAC,qBAAA;AAChE,IAAAC,eAAA,GAAAV,OAAA;AAI0BC,OAAA,CAAAU,qBAAA,GAAAD,eAAA,CAAAC,qBAAA;AAC1B,IAAAC,gBAAA,GAAAZ,OAAA;AAI2BC,OAAA,CAAAY,+BAAA,GAAAD,gBAAA,CAAAC,+BAAA;AAAAZ,OAAA,CAAAa,+BAAA,GAAAF,gBAAA,CAAAE,+BAAA;AAAAb,OAAA,CAAAc,cAAA,GAAAH,gBAAA,CAAAG,cAAA;AAC3B,IAAAC,YAAA,GAAAhB,OAAA;AAAsDC,OAAA,CAAAgB,qBAAA,GAAAD,YAAA,CAAAC,qBAAA;AACtD,IAAAC,YAAA,GAAAlB,OAAA;AAAqDC,OAAA,CAAAkB,oBAAA,GAAAD,YAAA,CAAAC,oBAAA;AACrD,IAAAC,UAAA,GAAApB,OAAA;AAAiDC,OAAA,CAAAoB,kBAAA,GAAAD,UAAA,CAAAC,kBAAA;AACjD,IAAAC,YAAA,GAAAtB,OAAA;AAA4CC,OAAA,CAAAsB,WAAA,GAAAD,YAAA,CAAAC,WAAA;AAC5C,IAAAC,UAAA,GAAAxB,OAAA;AAAoDC,OAAA,CAAAwB,qBAAA,GAAAD,UAAA,CAAAC,qBAAA;AACpD,IAAAC,eAAA,GAAA1B,OAAA;AAAoEC,OAAA,CAAA0B,cAAA,GAAAD,eAAA,CAAAC,cAAA;AACpE,IAAAC,2BAAA,GAAA5B,OAAA;AAA0EC,OAAA,CAAA4B,0BAAA,GAAAD,2BAAA,CAAAC,0BAAA;AAC1E,IAAAC,qBAAA,GAAA9B,OAAA;AAA8DC,OAAA,CAAA8B,oBAAA,GAAAD,qBAAA,CAAAC,oBAAA","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createCmsSchemaLoader = createCmsSchemaLoader;
5
+ exports.fetchCmsCollection = fetchCmsCollection;
6
+ var _data = require("@wix/data");
7
+ var _essentials = require("@wix/essentials");
8
+ var _transformCmsSchema = require("./transformCmsSchema");
9
+ var _createCmsBackend = require("./createCmsBackend");
10
+ var _createCmsFieldActions = require("./createCmsFieldActions");
11
+ var _fetchExternalDbConnections = require("./fetchExternalDbConnections");
12
+ var _fetchUserPermissions = require("./fetchUserPermissions");
13
+ /**
14
+ * Fetches the raw `@wix/data` collection. `includeAllowedDataPermissions` asks the
15
+ * server to evaluate the calling user against the collection's data-permission rules
16
+ * (`allowedDataPermissions` on the response — read by cmsPermissions.ts). The option
17
+ * is forwarded at runtime but stripped from the public typings, hence the cast.
18
+ */
19
+ async function fetchCmsCollection(collectionId) {
20
+ return _essentials.errorHandler.withErrorHandler(async () => _data.collections.getDataCollection(collectionId, {
21
+ includeAllowedDataPermissions: true
22
+ }), {});
23
+ }
24
+
25
+ /**
26
+ * Creates the CMS `SchemaLoader`: fetches the collection, ABAC permissions and
27
+ * external-DB connections in parallel and returns them as `LoadedSchema`.
28
+ * Failed permission/connection fetches degrade to `[]`.
29
+ */
30
+ function createCmsSchemaLoader(deps) {
31
+ const {
32
+ httpClient,
33
+ includeUserPermissions = false
34
+ } = deps;
35
+ return async collectionId => {
36
+ const metasiteId = includeUserPermissions ? deps.metasiteId : undefined;
37
+ const [rawCollection, userPermissions, externalDbConnections] = await Promise.all([fetchCmsCollection(collectionId), deps.userPermissions !== undefined ? Promise.resolve(deps.userPermissions) : includeUserPermissions && metasiteId ? (0, _fetchUserPermissions.fetchUserPermissions)(metasiteId).catch(() => []) : Promise.resolve([]), deps.externalDbConnections !== undefined ? Promise.resolve(deps.externalDbConnections) : (0, _fetchExternalDbConnections.fetchExternalDbConnections)(httpClient).catch(() => [])]);
38
+ const schema = (0, _transformCmsSchema.transformCmsSchema)(rawCollection, {
39
+ userPermissions,
40
+ externalDbConnections
41
+ });
42
+ const backend = (0, _createCmsBackend.createCmsBackend)(collectionId, schema.fields);
43
+ const fieldActions = (0, _createCmsFieldActions.createCmsFieldActions)(collectionId, () => rawCollection);
44
+ return {
45
+ schema,
46
+ backend,
47
+ fieldActions
48
+ };
49
+ };
50
+ }
51
+ //# sourceMappingURL=loadCmsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_data","require","_essentials","_transformCmsSchema","_createCmsBackend","_createCmsFieldActions","_fetchExternalDbConnections","_fetchUserPermissions","fetchCmsCollection","collectionId","errorHandler","withErrorHandler","collections","getDataCollection","includeAllowedDataPermissions","createCmsSchemaLoader","deps","httpClient","includeUserPermissions","metasiteId","undefined","rawCollection","userPermissions","externalDbConnections","Promise","all","resolve","fetchUserPermissions","catch","fetchExternalDbConnections","schema","transformCmsSchema","backend","createCmsBackend","fields","fieldActions","createCmsFieldActions"],"sources":["../../../src/adapter/loadCmsSchema.ts"],"sourcesContent":["import { collections } from '@wix/data';\nimport { errorHandler } from '@wix/essentials';\nimport type {\n LoadedSchema,\n SchemaLoader,\n WixPatternsContainerParams,\n} from '@wix/bex-core';\nimport { transformCmsSchema } from './transformCmsSchema';\nimport { createCmsBackend } from './createCmsBackend';\nimport { createCmsFieldActions } from './createCmsFieldActions';\nimport type { ExternalDbConnection } from './cmsPermissions';\nimport { fetchExternalDbConnections } from './fetchExternalDbConnections';\nimport { fetchUserPermissions } from './fetchUserPermissions';\n\ntype HttpClient = WixPatternsContainerParams['httpClient'];\n\nexport interface CreateCmsSchemaLoaderDeps {\n httpClient: HttpClient;\n /** Fetch the user's ABAC permissions for field-management gating. Default `false`. */\n includeUserPermissions?: boolean;\n /** Host-supplied metasite id; the ABAC permission fetch is skipped without it. */\n metasiteId?: string;\n /** Pre-resolved overrides (tests); skip the internal fetch when provided. */\n userPermissions?: string[];\n externalDbConnections?: ExternalDbConnection[];\n}\n\n/**\n * Fetches the raw `@wix/data` collection. `includeAllowedDataPermissions` asks the\n * server to evaluate the calling user against the collection's data-permission rules\n * (`allowedDataPermissions` on the response — read by cmsPermissions.ts). The option\n * is forwarded at runtime but stripped from the public typings, hence the cast.\n */\nexport async function fetchCmsCollection(\n collectionId: string,\n): Promise<collections.DataCollection> {\n return errorHandler.withErrorHandler<collections.DataCollection>(\n async () =>\n collections.getDataCollection(collectionId, {\n includeAllowedDataPermissions: true,\n } as collections.GetDataCollectionOptions),\n {},\n );\n}\n\n/**\n * Creates the CMS `SchemaLoader`: fetches the collection, ABAC permissions and\n * external-DB connections in parallel and returns them as `LoadedSchema`.\n * Failed permission/connection fetches degrade to `[]`.\n */\nexport function createCmsSchemaLoader<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(deps: CreateCmsSchemaLoaderDeps): SchemaLoader<T> {\n const { httpClient, includeUserPermissions = false } = deps;\n\n return async (collectionId: string): Promise<LoadedSchema<T>> => {\n const metasiteId = includeUserPermissions ? deps.metasiteId : undefined;\n\n const [rawCollection, userPermissions, externalDbConnections] =\n await Promise.all([\n fetchCmsCollection(collectionId),\n deps.userPermissions !== undefined\n ? Promise.resolve(deps.userPermissions)\n : includeUserPermissions && metasiteId\n ? fetchUserPermissions(metasiteId).catch(() => [] as string[])\n : Promise.resolve([] as string[]),\n deps.externalDbConnections !== undefined\n ? Promise.resolve(deps.externalDbConnections)\n : fetchExternalDbConnections(httpClient).catch(\n () => [] as ExternalDbConnection[],\n ),\n ]);\n\n const schema = transformCmsSchema(rawCollection, {\n userPermissions,\n externalDbConnections,\n });\n const backend = createCmsBackend<T>(collectionId, schema.fields);\n const fieldActions = createCmsFieldActions(\n collectionId,\n () => rawCollection,\n );\n\n return { schema, backend, fieldActions };\n };\n}\n"],"mappings":";;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAMA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AAEA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeO,kBAAkBA,CACtCC,YAAoB,EACiB;EACrC,OAAOC,wBAAY,CAACC,gBAAgB,CAClC,YACEC,iBAAW,CAACC,iBAAiB,CAACJ,YAAY,EAAE;IAC1CK,6BAA6B,EAAE;EACjC,CAAyC,CAAC,EAC5C,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAEnCC,IAA+B,EAAmB;EAClD,MAAM;IAAEC,UAAU;IAAEC,sBAAsB,GAAG;EAAM,CAAC,GAAGF,IAAI;EAE3D,OAAO,MAAOP,YAAoB,IAA+B;IAC/D,MAAMU,UAAU,GAAGD,sBAAsB,GAAGF,IAAI,CAACG,UAAU,GAAGC,SAAS;IAEvE,MAAM,CAACC,aAAa,EAAEC,eAAe,EAAEC,qBAAqB,CAAC,GAC3D,MAAMC,OAAO,CAACC,GAAG,CAAC,CAChBjB,kBAAkB,CAACC,YAAY,CAAC,EAChCO,IAAI,CAACM,eAAe,KAAKF,SAAS,GAC9BI,OAAO,CAACE,OAAO,CAACV,IAAI,CAACM,eAAe,CAAC,GACrCJ,sBAAsB,IAAIC,UAAU,GACpC,IAAAQ,0CAAoB,EAACR,UAAU,CAAC,CAACS,KAAK,CAAC,MAAM,EAAc,CAAC,GAC5DJ,OAAO,CAACE,OAAO,CAAC,EAAc,CAAC,EACnCV,IAAI,CAACO,qBAAqB,KAAKH,SAAS,GACpCI,OAAO,CAACE,OAAO,CAACV,IAAI,CAACO,qBAAqB,CAAC,GAC3C,IAAAM,sDAA0B,EAACZ,UAAU,CAAC,CAACW,KAAK,CAC1C,MAAM,EACR,CAAC,CACN,CAAC;IAEJ,MAAME,MAAM,GAAG,IAAAC,sCAAkB,EAACV,aAAa,EAAE;MAC/CC,eAAe;MACfC;IACF,CAAC,CAAC;IACF,MAAMS,OAAO,GAAG,IAAAC,kCAAgB,EAAIxB,YAAY,EAAEqB,MAAM,CAACI,MAAM,CAAC;IAChE,MAAMC,YAAY,GAAG,IAAAC,4CAAqB,EACxC3B,YAAY,EACZ,MAAMY,aACR,CAAC;IAED,OAAO;MAAES,MAAM;MAAEE,OAAO;MAAEG;IAAa,CAAC;EAC1C,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.pollUntilReady = pollUntilReady;
5
+ /**
6
+ * Polls `isDone` until it returns `true`, max attempts are exhausted, or the
7
+ * AbortSignal is aborted.
8
+ */
9
+ async function pollUntilReady(isDone, options) {
10
+ const interval = (options == null ? void 0 : options.interval) ?? 2000;
11
+ const maxAttempts = (options == null ? void 0 : options.maxAttempts) ?? 120;
12
+ const signal = options == null ? void 0 : options.signal;
13
+ for (let i = 0; i < maxAttempts; i++) {
14
+ signal == null || signal.throwIfAborted();
15
+ if (await isDone()) {
16
+ return;
17
+ }
18
+ await new Promise((resolve, reject) => {
19
+ const timer = setTimeout(resolve, interval);
20
+ signal == null || signal.addEventListener('abort', () => {
21
+ clearTimeout(timer);
22
+ reject(signal.reason);
23
+ }, {
24
+ once: true
25
+ });
26
+ });
27
+ }
28
+ throw new Error('Backup polling timed out');
29
+ }
30
+ //# sourceMappingURL=pollUntilReady.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pollUntilReady","isDone","options","interval","maxAttempts","signal","i","throwIfAborted","Promise","resolve","reject","timer","setTimeout","addEventListener","clearTimeout","reason","once","Error"],"sources":["../../../src/adapter/pollUntilReady.ts"],"sourcesContent":["export interface PollOptions {\n interval?: number;\n maxAttempts?: number;\n signal?: AbortSignal;\n}\n\n/**\n * Polls `isDone` until it returns `true`, max attempts are exhausted, or the\n * AbortSignal is aborted.\n */\nexport async function pollUntilReady(\n isDone: () => Promise<boolean>,\n options?: PollOptions,\n): Promise<void> {\n const interval = options?.interval ?? 2000;\n const maxAttempts = options?.maxAttempts ?? 120;\n const signal = options?.signal;\n\n for (let i = 0; i < maxAttempts; i++) {\n signal?.throwIfAborted();\n\n if (await isDone()) {\n return;\n }\n\n await new Promise<void>((resolve, reject) => {\n const timer = setTimeout(resolve, interval);\n\n signal?.addEventListener(\n 'abort',\n () => {\n clearTimeout(timer);\n reject(signal.reason);\n },\n { once: true },\n );\n });\n }\n\n throw new Error('Backup polling timed out');\n}\n"],"mappings":";;;;AAMA;AACA;AACA;AACA;AACO,eAAeA,cAAcA,CAClCC,MAA8B,EAC9BC,OAAqB,EACN;EACf,MAAMC,QAAQ,GAAG,CAAAD,OAAO,oBAAPA,OAAO,CAAEC,QAAQ,KAAI,IAAI;EAC1C,MAAMC,WAAW,GAAG,CAAAF,OAAO,oBAAPA,OAAO,CAAEE,WAAW,KAAI,GAAG;EAC/C,MAAMC,MAAM,GAAGH,OAAO,oBAAPA,OAAO,CAAEG,MAAM;EAE9B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,WAAW,EAAEE,CAAC,EAAE,EAAE;IACpCD,MAAM,YAANA,MAAM,CAAEE,cAAc,CAAC,CAAC;IAExB,IAAI,MAAMN,MAAM,CAAC,CAAC,EAAE;MAClB;IACF;IAEA,MAAM,IAAIO,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC3C,MAAMC,KAAK,GAAGC,UAAU,CAACH,OAAO,EAAEN,QAAQ,CAAC;MAE3CE,MAAM,YAANA,MAAM,CAAEQ,gBAAgB,CACtB,OAAO,EACP,MAAM;QACJC,YAAY,CAACH,KAAK,CAAC;QACnBD,MAAM,CAACL,MAAM,CAACU,MAAM,CAAC;MACvB,CAAC,EACD;QAAEC,IAAI,EAAE;MAAK,CACf,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,MAAM,IAAIC,KAAK,CAAC,0BAA0B,CAAC;AAC7C","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.addSearchToDataQuery = addSearchToDataQuery;
5
+ var _data = require("@wix/data");
6
+ const TEXT_FIELD_TYPES = ['LONG_TEXT', 'SHORT_TEXT'];
7
+
8
+ /** Free-text search: OR of `contains` over `SHORT_TEXT`/`LONG_TEXT` fields in `searchableFieldIds`. */
9
+ function addSearchToDataQuery({
10
+ dataQuery,
11
+ query,
12
+ fields,
13
+ searchableFieldIds
14
+ }) {
15
+ const searchableFields = Object.keys(fields).filter(fieldId => {
16
+ const field = fields[fieldId];
17
+ const isFieldSearchable = searchableFieldIds.includes(fieldId);
18
+ return isFieldSearchable && field && TEXT_FIELD_TYPES.includes(field.type);
19
+ });
20
+ if (query.search && searchableFields.length > 0) {
21
+ let searchFilter = null;
22
+ searchableFields.forEach(field => {
23
+ const currentFilter = _data.items.filter().contains(field, query.search);
24
+ searchFilter = searchFilter ? searchFilter.or(currentFilter) : currentFilter;
25
+ });
26
+ if (searchFilter) {
27
+ dataQuery = dataQuery.and(searchFilter);
28
+ }
29
+ }
30
+ return dataQuery;
31
+ }
32
+ //# sourceMappingURL=searchUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_data","require","TEXT_FIELD_TYPES","addSearchToDataQuery","dataQuery","query","fields","searchableFieldIds","searchableFields","Object","keys","filter","fieldId","field","isFieldSearchable","includes","type","search","length","searchFilter","forEach","currentFilter","items","contains","or","and"],"sources":["../../../src/adapter/searchUtils.ts"],"sourcesContent":["import { items } from '@wix/data';\nimport type { OffsetQuery, Schema } from '@wix/bex-core';\n\ntype SchemaFields = Schema['fields'];\n\nconst TEXT_FIELD_TYPES = ['LONG_TEXT', 'SHORT_TEXT'];\n\n/** Free-text search: OR of `contains` over `SHORT_TEXT`/`LONG_TEXT` fields in `searchableFieldIds`. */\nexport function addSearchToDataQuery({\n dataQuery,\n query,\n fields,\n searchableFieldIds,\n}: {\n dataQuery: items.WixDataQuery;\n query: OffsetQuery;\n fields: SchemaFields;\n searchableFieldIds: string[];\n}) {\n const searchableFields = Object.keys(fields).filter((fieldId) => {\n const field = fields[fieldId];\n const isFieldSearchable = searchableFieldIds.includes(fieldId);\n\n return isFieldSearchable && field && TEXT_FIELD_TYPES.includes(field.type);\n });\n\n if (query.search && searchableFields.length > 0) {\n let searchFilter: items.WixDataFilter | null = null;\n\n searchableFields.forEach((field) => {\n const currentFilter = items.filter().contains(field, query.search!);\n searchFilter = searchFilter\n ? searchFilter.or(currentFilter)\n : currentFilter;\n });\n\n if (searchFilter) {\n dataQuery = dataQuery.and(searchFilter);\n }\n }\n\n return dataQuery;\n}\n"],"mappings":";;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAKA,MAAMC,gBAAgB,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC;;AAEpD;AACO,SAASC,oBAAoBA,CAAC;EACnCC,SAAS;EACTC,KAAK;EACLC,MAAM;EACNC;AAMF,CAAC,EAAE;EACD,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACJ,MAAM,CAAC,CAACK,MAAM,CAAEC,OAAO,IAAK;IAC/D,MAAMC,KAAK,GAAGP,MAAM,CAACM,OAAO,CAAC;IAC7B,MAAME,iBAAiB,GAAGP,kBAAkB,CAACQ,QAAQ,CAACH,OAAO,CAAC;IAE9D,OAAOE,iBAAiB,IAAID,KAAK,IAAIX,gBAAgB,CAACa,QAAQ,CAACF,KAAK,CAACG,IAAI,CAAC;EAC5E,CAAC,CAAC;EAEF,IAAIX,KAAK,CAACY,MAAM,IAAIT,gBAAgB,CAACU,MAAM,GAAG,CAAC,EAAE;IAC/C,IAAIC,YAAwC,GAAG,IAAI;IAEnDX,gBAAgB,CAACY,OAAO,CAAEP,KAAK,IAAK;MAClC,MAAMQ,aAAa,GAAGC,WAAK,CAACX,MAAM,CAAC,CAAC,CAACY,QAAQ,CAACV,KAAK,EAAER,KAAK,CAACY,MAAO,CAAC;MACnEE,YAAY,GAAGA,YAAY,GACvBA,YAAY,CAACK,EAAE,CAACH,aAAa,CAAC,GAC9BA,aAAa;IACnB,CAAC,CAAC;IAEF,IAAIF,YAAY,EAAE;MAChBf,SAAS,GAAGA,SAAS,CAACqB,GAAG,CAACN,YAAY,CAAC;IACzC;EACF;EAEA,OAAOf,SAAS;AAClB","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.addSortToDataQuery = addSortToDataQuery;
5
+ /** Applies the query's sort to the WQL query — only `sortable` fields. */
6
+ function addSortToDataQuery({
7
+ dataQuery,
8
+ query,
9
+ fields
10
+ }) {
11
+ let dataQueryWithSort = dataQuery;
12
+ const {
13
+ sort
14
+ } = query;
15
+ sort == null || sort.forEach(sortField => {
16
+ const {
17
+ fieldName,
18
+ order
19
+ } = sortField;
20
+ if (fieldName && order) {
21
+ var _fieldDefinition$capa;
22
+ const fieldDefinition = fields[fieldName];
23
+ if (fieldDefinition != null && (_fieldDefinition$capa = fieldDefinition.capabilities) != null && _fieldDefinition$capa.sortable) {
24
+ if (order === 'asc') {
25
+ dataQueryWithSort = dataQueryWithSort.ascending(fieldName);
26
+ } else if (order === 'desc') {
27
+ dataQueryWithSort = dataQueryWithSort.descending(fieldName);
28
+ }
29
+ }
30
+ }
31
+ });
32
+ return dataQueryWithSort;
33
+ }
34
+ //# sourceMappingURL=sortUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["addSortToDataQuery","dataQuery","query","fields","dataQueryWithSort","sort","forEach","sortField","fieldName","order","_fieldDefinition$capa","fieldDefinition","capabilities","sortable","ascending","descending"],"sources":["../../../src/adapter/sortUtils.ts"],"sourcesContent":["import { items } from '@wix/data';\nimport type { OffsetQuery, Schema } from '@wix/bex-core';\n\ntype SchemaFields = Schema['fields'];\n\n/** Applies the query's sort to the WQL query — only `sortable` fields. */\nexport function addSortToDataQuery({\n dataQuery,\n query,\n fields,\n}: {\n dataQuery: items.WixDataQuery;\n query: OffsetQuery;\n fields: SchemaFields;\n}) {\n let dataQueryWithSort = dataQuery;\n const { sort } = query;\n sort?.forEach((sortField) => {\n const { fieldName, order } = sortField;\n if (fieldName && order) {\n const fieldDefinition = fields[fieldName];\n if (fieldDefinition?.capabilities?.sortable) {\n if (order === 'asc') {\n dataQueryWithSort = dataQueryWithSort.ascending(fieldName);\n } else if (order === 'desc') {\n dataQueryWithSort = dataQueryWithSort.descending(fieldName);\n }\n }\n }\n });\n\n return dataQueryWithSort;\n}\n"],"mappings":";;;;AAKA;AACO,SAASA,kBAAkBA,CAAC;EACjCC,SAAS;EACTC,KAAK;EACLC;AAKF,CAAC,EAAE;EACD,IAAIC,iBAAiB,GAAGH,SAAS;EACjC,MAAM;IAAEI;EAAK,CAAC,GAAGH,KAAK;EACtBG,IAAI,YAAJA,IAAI,CAAEC,OAAO,CAAEC,SAAS,IAAK;IAC3B,MAAM;MAAEC,SAAS;MAAEC;IAAM,CAAC,GAAGF,SAAS;IACtC,IAAIC,SAAS,IAAIC,KAAK,EAAE;MAAA,IAAAC,qBAAA;MACtB,MAAMC,eAAe,GAAGR,MAAM,CAACK,SAAS,CAAC;MACzC,IAAIG,eAAe,aAAAD,qBAAA,GAAfC,eAAe,CAAEC,YAAY,aAA7BF,qBAAA,CAA+BG,QAAQ,EAAE;QAC3C,IAAIJ,KAAK,KAAK,KAAK,EAAE;UACnBL,iBAAiB,GAAGA,iBAAiB,CAACU,SAAS,CAACN,SAAS,CAAC;QAC5D,CAAC,MAAM,IAAIC,KAAK,KAAK,MAAM,EAAE;UAC3BL,iBAAiB,GAAGA,iBAAiB,CAACW,UAAU,CAACP,SAAS,CAAC;QAC7D;MACF;IACF;EACF,CAAC,CAAC;EAEF,OAAOJ,iBAAiB;AAC1B","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.transformCmsSchema = transformCmsSchema;
5
+ var _cmsFieldTypeMap = require("./cmsFieldTypeMap");
6
+ var _cmsPermissions = require("./cmsPermissions");
7
+ /** Transforms a raw `@wix/data` `DataCollection` into the source-neutral `Schema`. */
8
+ function transformCmsSchema(schema, options = {}) {
9
+ const {
10
+ userPermissions = [],
11
+ externalDbConnections = []
12
+ } = options;
13
+ const collectionId = schema._id;
14
+ const transformedFields = (schema.fields || []).reduce((acc, field) => {
15
+ var _field$capabilities, _field$capabilities2, _field$typeMetadata, _field$typeMetadata2;
16
+ if (!field.key) {
17
+ return acc;
18
+ }
19
+ const fieldType = field.type ? _cmsFieldTypeMap.CmsFieldTypeToPatternsFieldType[field.type] || 'UNKNOWN' : 'UNKNOWN';
20
+ const baseField = {
21
+ id: field.key,
22
+ displayName: field.displayName || '',
23
+ isPrimary: field.key === schema.displayField,
24
+ isPii: field.encrypted ?? false,
25
+ helpText: field.description ?? undefined,
26
+ isSystem: field.systemField ?? false,
27
+ validation: {
28
+ numberRange: field.numberRange ? {
29
+ min: field.numberRange.min ?? undefined,
30
+ max: field.numberRange.max ?? undefined
31
+ } : undefined,
32
+ stringLengthRange: field.stringLengthRange ? {
33
+ minLength: field.stringLengthRange.minLength ?? undefined,
34
+ maxLength: field.stringLengthRange.maxLength ?? undefined
35
+ } : undefined,
36
+ required: field.required ?? false
37
+ },
38
+ capabilities: {
39
+ supportedQueryOperators: ((_field$capabilities = field.capabilities) == null ? void 0 : _field$capabilities.queryOperators) || [],
40
+ sortable: ((_field$capabilities2 = field.capabilities) == null ? void 0 : _field$capabilities2.sortable) || false
41
+ }
42
+ };
43
+ const referencedCollectionId = ((_field$typeMetadata = field.typeMetadata) == null || (_field$typeMetadata = _field$typeMetadata.reference) == null ? void 0 : _field$typeMetadata.referencedCollectionId) ?? ((_field$typeMetadata2 = field.typeMetadata) == null || (_field$typeMetadata2 = _field$typeMetadata2.multiReference) == null ? void 0 : _field$typeMetadata2.referencedCollectionId);
44
+ const isReference = fieldType === 'REFERENCE' || fieldType === 'MULTI_REFERENCE';
45
+ if (isReference && referencedCollectionId) {
46
+ acc[field.key] = {
47
+ ...baseField,
48
+ type: fieldType,
49
+ referenceMetadata: {
50
+ referencedCollectionId
51
+ }
52
+ };
53
+ } else {
54
+ acc[field.key] = {
55
+ ...baseField,
56
+ // A reference field without a target collection degrades to UNKNOWN.
57
+ type: isReference ? 'UNKNOWN' : fieldType
58
+ };
59
+ }
60
+ return acc;
61
+ }, {});
62
+ const {
63
+ schemaPermissions,
64
+ itemPermissions
65
+ } = (0, _cmsPermissions.computeCmsPermissions)(schema, userPermissions, externalDbConnections);
66
+ return {
67
+ id: collectionId,
68
+ fields: transformedFields,
69
+ displayField: schema.displayField ?? '_id',
70
+ idField: '_id',
71
+ schemaPermissions,
72
+ itemPermissions
73
+ };
74
+ }
75
+ //# sourceMappingURL=transformCmsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_cmsFieldTypeMap","require","_cmsPermissions","transformCmsSchema","schema","options","userPermissions","externalDbConnections","collectionId","_id","transformedFields","fields","reduce","acc","field","_field$capabilities","_field$capabilities2","_field$typeMetadata","_field$typeMetadata2","key","fieldType","type","CmsFieldTypeToPatternsFieldType","baseField","id","displayName","isPrimary","displayField","isPii","encrypted","helpText","description","undefined","isSystem","systemField","validation","numberRange","min","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","referencedCollectionId","typeMetadata","reference","multiReference","isReference","referenceMetadata","schemaPermissions","itemPermissions","computeCmsPermissions","idField"],"sources":["../../../src/adapter/transformCmsSchema.ts"],"sourcesContent":["import { collections } from '@wix/data';\nimport type { Field, Schema } from '@wix/bex-core';\nimport { CmsFieldTypeToPatternsFieldType } from './cmsFieldTypeMap';\nimport {\n computeCmsPermissions,\n type ExternalDbConnection,\n} from './cmsPermissions';\n\nexport interface TransformCmsSchemaOptions {\n /** Current user's ABAC permission strings. */\n userPermissions?: string[];\n /** External-DB connections (drive EXTERNAL-collection editability). */\n externalDbConnections?: ExternalDbConnection[];\n}\n\n/** Transforms a raw `@wix/data` `DataCollection` into the source-neutral `Schema`. */\nexport function transformCmsSchema(\n schema: collections.DataCollection,\n options: TransformCmsSchemaOptions = {},\n): Schema {\n const { userPermissions = [], externalDbConnections = [] } = options;\n const collectionId = schema._id as string;\n\n const transformedFields = (schema.fields || []).reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'UNKNOWN'\n : 'UNKNOWN';\n\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n isPrimary: field.key === schema.displayField,\n isPii: field.encrypted ?? false,\n helpText: field.description ?? undefined,\n isSystem: field.systemField ?? false,\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n const referencedCollectionId =\n field.typeMetadata?.reference?.referencedCollectionId ??\n field.typeMetadata?.multiReference?.referencedCollectionId;\n\n const isReference =\n fieldType === 'REFERENCE' || fieldType === 'MULTI_REFERENCE';\n\n if (isReference && referencedCollectionId) {\n acc[field.key] = {\n ...baseField,\n type: fieldType as 'REFERENCE' | 'MULTI_REFERENCE',\n referenceMetadata: { referencedCollectionId },\n };\n } else {\n acc[field.key] = {\n ...baseField,\n // A reference field without a target collection degrades to UNKNOWN.\n type: isReference ? 'UNKNOWN' : fieldType,\n };\n }\n\n return acc;\n },\n {},\n );\n\n const { schemaPermissions, itemPermissions } = computeCmsPermissions(\n schema,\n userPermissions,\n externalDbConnections,\n );\n\n return {\n id: collectionId,\n fields: transformedFields,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n schemaPermissions,\n itemPermissions,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _adapter = require("./adapter");
5
+ Object.keys(_adapter).forEach(function (key) {
6
+ if (key === "default" || key === "__esModule") return;
7
+ if (key in exports && exports[key] === _adapter[key]) return;
8
+ exports[key] = _adapter[key];
9
+ });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_adapter","require","Object","keys","forEach","key","exports"],"sources":["../../src/index.ts"],"sourcesContent":["export * from './adapter';\n"],"mappings":";;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,QAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,QAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,QAAA,CAAAK,GAAA;AAAA","ignoreList":[]}