@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.
- package/dist/cjs/adapter/__tests__/cmsFieldActions.spec.js +436 -0
- package/dist/cjs/adapter/__tests__/cmsFieldActions.spec.js.map +1 -0
- package/dist/cjs/adapter/__tests__/cmsPermissions.spec.js +175 -0
- package/dist/cjs/adapter/__tests__/cmsPermissions.spec.js.map +1 -0
- package/dist/cjs/adapter/__tests__/createCmsBackend.spec.js +440 -0
- package/dist/cjs/adapter/__tests__/createCmsBackend.spec.js.map +1 -0
- package/dist/cjs/adapter/__tests__/filterUtils.spec.js +426 -0
- package/dist/cjs/adapter/__tests__/filterUtils.spec.js.map +1 -0
- package/dist/cjs/adapter/__tests__/getFieldKey.spec.js +24 -0
- package/dist/cjs/adapter/__tests__/getFieldKey.spec.js.map +1 -0
- package/dist/cjs/adapter/__tests__/loadCmsSchema.spec.js +166 -0
- package/dist/cjs/adapter/__tests__/loadCmsSchema.spec.js.map +1 -0
- package/dist/cjs/adapter/__tests__/searchUtils.spec.js +116 -0
- package/dist/cjs/adapter/__tests__/searchUtils.spec.js.map +1 -0
- package/dist/cjs/adapter/__tests__/sortUtils.spec.js +118 -0
- package/dist/cjs/adapter/__tests__/sortUtils.spec.js.map +1 -0
- package/dist/cjs/adapter/__tests__/transformCmsSchema.spec.js +210 -0
- package/dist/cjs/adapter/__tests__/transformCmsSchema.spec.js.map +1 -0
- package/dist/cjs/adapter/__tests__/wixDataQueryRecorder.js +54 -0
- package/dist/cjs/adapter/__tests__/wixDataQueryRecorder.js.map +1 -0
- package/dist/cjs/adapter/cmsBackup.js +52 -0
- package/dist/cjs/adapter/cmsBackup.js.map +1 -0
- package/dist/cjs/adapter/cmsFieldTypeMap.js +43 -0
- package/dist/cjs/adapter/cmsFieldTypeMap.js.map +1 -0
- package/dist/cjs/adapter/cmsPermissions.js +94 -0
- package/dist/cjs/adapter/cmsPermissions.js.map +1 -0
- package/dist/cjs/adapter/constants.js +20 -0
- package/dist/cjs/adapter/constants.js.map +1 -0
- package/dist/cjs/adapter/createCmsBackend.js +131 -0
- package/dist/cjs/adapter/createCmsBackend.js.map +1 -0
- package/dist/cjs/adapter/createCmsFieldActions.js +182 -0
- package/dist/cjs/adapter/createCmsFieldActions.js.map +1 -0
- package/dist/cjs/adapter/fetchExternalDbConnections.js +24 -0
- package/dist/cjs/adapter/fetchExternalDbConnections.js.map +1 -0
- package/dist/cjs/adapter/fetchUserPermissions.js +24 -0
- package/dist/cjs/adapter/fetchUserPermissions.js.map +1 -0
- package/dist/cjs/adapter/filterUtils.js +128 -0
- package/dist/cjs/adapter/filterUtils.js.map +1 -0
- package/dist/cjs/adapter/getFieldKey.js +19 -0
- package/dist/cjs/adapter/getFieldKey.js.map +1 -0
- package/dist/cjs/adapter/index.js +36 -0
- package/dist/cjs/adapter/index.js.map +1 -0
- package/dist/cjs/adapter/loadCmsSchema.js +51 -0
- package/dist/cjs/adapter/loadCmsSchema.js.map +1 -0
- package/dist/cjs/adapter/pollUntilReady.js +30 -0
- package/dist/cjs/adapter/pollUntilReady.js.map +1 -0
- package/dist/cjs/adapter/searchUtils.js +32 -0
- package/dist/cjs/adapter/searchUtils.js.map +1 -0
- package/dist/cjs/adapter/sortUtils.js +34 -0
- package/dist/cjs/adapter/sortUtils.js.map +1 -0
- package/dist/cjs/adapter/transformCmsSchema.js +75 -0
- package/dist/cjs/adapter/transformCmsSchema.js.map +1 -0
- package/dist/cjs/index.js +10 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/adapter/__tests__/cmsFieldActions.spec.js +335 -0
- package/dist/esm/adapter/__tests__/cmsFieldActions.spec.js.map +1 -0
- package/dist/esm/adapter/__tests__/cmsPermissions.spec.js +173 -0
- package/dist/esm/adapter/__tests__/cmsPermissions.spec.js.map +1 -0
- package/dist/esm/adapter/__tests__/createCmsBackend.spec.js +307 -0
- package/dist/esm/adapter/__tests__/createCmsBackend.spec.js.map +1 -0
- package/dist/esm/adapter/__tests__/filterUtils.spec.js +298 -0
- package/dist/esm/adapter/__tests__/filterUtils.spec.js.map +1 -0
- package/dist/esm/adapter/__tests__/getFieldKey.spec.js +22 -0
- package/dist/esm/adapter/__tests__/getFieldKey.spec.js.map +1 -0
- package/dist/esm/adapter/__tests__/loadCmsSchema.spec.js +147 -0
- package/dist/esm/adapter/__tests__/loadCmsSchema.spec.js.map +1 -0
- package/dist/esm/adapter/__tests__/searchUtils.spec.js +109 -0
- package/dist/esm/adapter/__tests__/searchUtils.spec.js.map +1 -0
- package/dist/esm/adapter/__tests__/sortUtils.spec.js +85 -0
- package/dist/esm/adapter/__tests__/sortUtils.spec.js.map +1 -0
- package/dist/esm/adapter/__tests__/transformCmsSchema.spec.js +201 -0
- package/dist/esm/adapter/__tests__/transformCmsSchema.spec.js.map +1 -0
- package/dist/esm/adapter/__tests__/wixDataQueryRecorder.js +42 -0
- package/dist/esm/adapter/__tests__/wixDataQueryRecorder.js.map +1 -0
- package/dist/esm/adapter/cmsBackup.js +34 -0
- package/dist/esm/adapter/cmsBackup.js.map +1 -0
- package/dist/esm/adapter/cmsFieldTypeMap.js +37 -0
- package/dist/esm/adapter/cmsFieldTypeMap.js.map +1 -0
- package/dist/esm/adapter/cmsPermissions.js +91 -0
- package/dist/esm/adapter/cmsPermissions.js.map +1 -0
- package/dist/esm/adapter/constants.js +25 -0
- package/dist/esm/adapter/constants.js.map +1 -0
- package/dist/esm/adapter/createCmsBackend.js +113 -0
- package/dist/esm/adapter/createCmsBackend.js.map +1 -0
- package/dist/esm/adapter/createCmsFieldActions.js +159 -0
- package/dist/esm/adapter/createCmsFieldActions.js.map +1 -0
- package/dist/esm/adapter/fetchExternalDbConnections.js +17 -0
- package/dist/esm/adapter/fetchExternalDbConnections.js.map +1 -0
- package/dist/esm/adapter/fetchUserPermissions.js +15 -0
- package/dist/esm/adapter/fetchUserPermissions.js.map +1 -0
- package/dist/esm/adapter/filterUtils.js +126 -0
- package/dist/esm/adapter/filterUtils.js.map +1 -0
- package/dist/esm/adapter/getFieldKey.js +13 -0
- package/dist/esm/adapter/getFieldKey.js.map +1 -0
- package/dist/esm/adapter/index.js +15 -0
- package/dist/esm/adapter/index.js.map +1 -0
- package/dist/esm/adapter/loadCmsSchema.js +48 -0
- package/dist/esm/adapter/loadCmsSchema.js.map +1 -0
- package/dist/esm/adapter/pollUntilReady.js +24 -0
- package/dist/esm/adapter/pollUntilReady.js.map +1 -0
- package/dist/esm/adapter/searchUtils.js +24 -0
- package/dist/esm/adapter/searchUtils.js.map +1 -0
- package/dist/esm/adapter/sortUtils.js +21 -0
- package/dist/esm/adapter/sortUtils.js.map +1 -0
- package/dist/esm/adapter/transformCmsSchema.js +70 -0
- package/dist/esm/adapter/transformCmsSchema.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/types/adapter/__tests__/cmsFieldActions.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/cmsFieldActions.spec.d.ts.map +1 -0
- package/dist/types/adapter/__tests__/cmsPermissions.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/cmsPermissions.spec.d.ts.map +1 -0
- package/dist/types/adapter/__tests__/createCmsBackend.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/createCmsBackend.spec.d.ts.map +1 -0
- package/dist/types/adapter/__tests__/filterUtils.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/filterUtils.spec.d.ts.map +1 -0
- package/dist/types/adapter/__tests__/getFieldKey.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/getFieldKey.spec.d.ts.map +1 -0
- package/dist/types/adapter/__tests__/loadCmsSchema.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/loadCmsSchema.spec.d.ts.map +1 -0
- package/dist/types/adapter/__tests__/searchUtils.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/searchUtils.spec.d.ts.map +1 -0
- package/dist/types/adapter/__tests__/sortUtils.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/sortUtils.spec.d.ts.map +1 -0
- package/dist/types/adapter/__tests__/transformCmsSchema.spec.d.ts +2 -0
- package/dist/types/adapter/__tests__/transformCmsSchema.spec.d.ts.map +1 -0
- package/dist/types/adapter/__tests__/wixDataQueryRecorder.d.ts +40 -0
- package/dist/types/adapter/__tests__/wixDataQueryRecorder.d.ts.map +1 -0
- package/dist/types/adapter/cmsBackup.d.ts +7 -0
- package/dist/types/adapter/cmsBackup.d.ts.map +1 -0
- package/dist/types/adapter/cmsFieldTypeMap.d.ts +8 -0
- package/dist/types/adapter/cmsFieldTypeMap.d.ts.map +1 -0
- package/dist/types/adapter/cmsPermissions.d.ts +21 -0
- package/dist/types/adapter/cmsPermissions.d.ts.map +1 -0
- package/dist/types/adapter/constants.d.ts +14 -0
- package/dist/types/adapter/constants.d.ts.map +1 -0
- package/dist/types/adapter/createCmsBackend.d.ts +9 -0
- package/dist/types/adapter/createCmsBackend.d.ts.map +1 -0
- package/dist/types/adapter/createCmsFieldActions.d.ts +8 -0
- package/dist/types/adapter/createCmsFieldActions.d.ts.map +1 -0
- package/dist/types/adapter/fetchExternalDbConnections.d.ts +11 -0
- package/dist/types/adapter/fetchExternalDbConnections.d.ts.map +1 -0
- package/dist/types/adapter/fetchUserPermissions.d.ts +7 -0
- package/dist/types/adapter/fetchUserPermissions.d.ts.map +1 -0
- package/dist/types/adapter/filterUtils.d.ts +14 -0
- package/dist/types/adapter/filterUtils.d.ts.map +1 -0
- package/dist/types/adapter/getFieldKey.d.ts +3 -0
- package/dist/types/adapter/getFieldKey.d.ts.map +1 -0
- package/dist/types/adapter/index.d.ts +15 -0
- package/dist/types/adapter/index.d.ts.map +1 -0
- package/dist/types/adapter/loadCmsSchema.d.ts +29 -0
- package/dist/types/adapter/loadCmsSchema.d.ts.map +1 -0
- package/dist/types/adapter/pollUntilReady.d.ts +11 -0
- package/dist/types/adapter/pollUntilReady.d.ts.map +1 -0
- package/dist/types/adapter/searchUtils.d.ts +12 -0
- package/dist/types/adapter/searchUtils.d.ts.map +1 -0
- package/dist/types/adapter/sortUtils.d.ts +11 -0
- package/dist/types/adapter/sortUtils.d.ts.map +1 -0
- package/dist/types/adapter/transformCmsSchema.d.ts +12 -0
- package/dist/types/adapter/transformCmsSchema.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- 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":[]}
|