@fibery/schema 8.4.0 → 10.0.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/lib/index.js CHANGED
@@ -1,788 +1,22 @@
1
- /******/ (() => { // webpackBootstrap
2
- /******/ "use strict";
3
- /******/ // The require scope
4
- /******/ var __webpack_require__ = {};
5
- /******/
6
- /************************************************************************/
7
- /******/ /* webpack/runtime/compat get default export */
8
- /******/ (() => {
9
- /******/ // getDefaultExport function for compatibility with non-harmony modules
10
- /******/ __webpack_require__.n = (module) => {
11
- /******/ var getter = module && module.__esModule ?
12
- /******/ () => (module['default']) :
13
- /******/ () => (module);
14
- /******/ __webpack_require__.d(getter, { a: getter });
15
- /******/ return getter;
16
- /******/ };
17
- /******/ })();
18
- /******/
19
- /******/ /* webpack/runtime/define property getters */
20
- /******/ (() => {
21
- /******/ // define getter functions for harmony exports
22
- /******/ __webpack_require__.d = (exports, definition) => {
23
- /******/ for(var key in definition) {
24
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
25
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
26
- /******/ }
27
- /******/ }
28
- /******/ };
29
- /******/ })();
30
- /******/
31
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
32
- /******/ (() => {
33
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
34
- /******/ })();
35
- /******/
36
- /******/ /* webpack/runtime/make namespace object */
37
- /******/ (() => {
38
- /******/ // define __esModule on exports
39
- /******/ __webpack_require__.r = (exports) => {
40
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
41
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
42
- /******/ }
43
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
44
- /******/ };
45
- /******/ })();
46
- /******/
47
- /************************************************************************/
48
- var __webpack_exports__ = {};
49
- // ESM COMPAT FLAG
50
- __webpack_require__.r(__webpack_exports__);
51
-
52
- // EXPORTS
53
- __webpack_require__.d(__webpack_exports__, {
54
- factory: () => (/* binding */ factory),
55
- protectiveFactory: () => (/* binding */ protectiveFactory)
56
- });
57
-
58
- ;// CONCATENATED MODULE: external "lodash"
59
- const external_lodash_namespaceObject = require("lodash");
60
- var external_lodash_default = /*#__PURE__*/__webpack_require__.n(external_lodash_namespaceObject);
61
- ;// CONCATENATED MODULE: external "util"
62
- const external_util_namespaceObject = require("util");
63
- ;// CONCATENATED MODULE: external "memoize-one"
64
- const external_memoize_one_namespaceObject = require("memoize-one");
65
- var external_memoize_one_default = /*#__PURE__*/__webpack_require__.n(external_memoize_one_namespaceObject);
66
- ;// CONCATENATED MODULE: ../helpers/utils/trace.ts
67
-
68
-
69
- const formatWithCustomInspectParams = values => {
70
- return values.map(value => {
71
- if (typeof value === "object") {
72
- return util.inspect(value, {
73
- showHidden: false,
74
- depth: null,
75
- maxArrayLength: null
76
- });
77
- }
78
- return value;
79
- }).join(" ");
80
- };
81
- function assert(condition) {
82
- if (!condition) {
83
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
84
- args[_key - 1] = arguments[_key];
85
- }
86
- const message = args.length > 0 ? formatWithCustomInspectParams(args) : `Assertion failed with no details`;
87
- throw new Error(message);
88
- }
89
- }
90
- function assertWithTraceError(condition) {
91
- if (!condition) {
92
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
93
- args[_key2 - 1] = arguments[_key2];
94
- }
95
- const message = args.length > 0 ? formatWithCustomInspectParams(args) : `Assertion failed with no details`;
96
- traceError(message);
97
- }
98
- }
99
-
100
- // eslint-disable-next-line no-console
101
- let traceErrorSubscribers = [console.error.bind(console)];
102
- const overridden = false;
103
- function subscribeOnTraceError(fn) {
104
- if (overridden) {
105
- throw new Error("can't subscribe while overridden");
106
- }
107
- traceErrorSubscribers.push(fn);
108
- let unsubscribed = false;
109
- return function unsubscribe() {
110
- assert(!unsubscribed, "Can't unsubscribe more than once");
111
- unsubscribed = true;
112
- traceErrorSubscribers = traceErrorSubscribers.filter(x => x !== fn);
113
- };
114
- }
115
- const traceError = external_memoize_one_default()(function traceError() {
116
- for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
117
- args[_key3] = arguments[_key3];
118
- }
119
- traceErrorSubscribers.forEach(fn => {
120
- fn(...args);
121
- });
122
- });
123
-
124
- // eslint-disable-next-line no-console
125
- let captureMessageSubscribers = [console.info.bind(console)];
126
- function subscribeOnCaptureMessage(fn) {
127
- captureMessageSubscribers.push(fn);
128
- let unsubscribed = false;
129
- return function unsubscribe() {
130
- assert(!unsubscribed, "Can't unsubscribe more than once");
131
- unsubscribed = true;
132
- captureMessageSubscribers = captureMessageSubscribers.filter(x => x !== fn);
133
- };
134
- }
135
- const captureMessage = external_memoize_one_default()(function captureMessage() {
136
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
137
- args[_key4] = arguments[_key4];
138
- }
139
- captureMessageSubscribers.forEach(fn => {
140
- fn(...args);
141
- });
142
- });
143
- const tracedErrorTracker = {};
144
- const traceErrorOncePerSession = (seed, err) => {
145
- if (tracedErrorTracker[seed]) {
146
- return;
147
- }
148
- tracedErrorTracker[seed] = true;
149
- const message = [seed, err].filter(Boolean).join(": ");
150
- traceError(message);
151
- };
152
- const capturedMessageTracker = {};
153
- const captureMessageOncePerSession = (seed, err) => {
154
- if (capturedMessageTracker[seed]) {
155
- return;
156
- }
157
- capturedMessageTracker[seed] = true;
158
- const message = [seed, err].filter(Boolean).join(": ");
159
- captureMessage(message);
160
- };
161
- function withErrorTrace(f) {
162
- return async function () {
163
- try {
164
- return await f(...arguments);
165
- } catch (err) {
166
- traceError(err);
167
- throw err;
168
- }
169
- };
170
- }
171
- ;// CONCATENATED MODULE: ./utils.ts
172
-
173
-
174
-
175
-
176
- const jestKey = new Set(["nodeType", "tagName", "hasAttribute"]);
177
-
178
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
179
- const withOnlyDefinedGets = function (target) {
180
- let targetKind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "object";
181
- return new Proxy(target, {
182
- get(target, key) {
183
- if (!(key in target) && "production" !== "production") {}
184
- return target[key];
185
- }
186
- });
187
- };
188
- const getNamePart = str => splitKeyword(str).name;
189
- const capitalizeFirstChar = input => {
190
- const str = input || "";
191
- return str ? str.charAt(0).toUpperCase() + str.slice(1) : str;
192
- };
193
- const replaceTildes = str => (str || "").split("~").join(" ");
194
- const toTypeOrFieldNamePartTitle = external_lodash_default().flow([capitalizeFirstChar, replaceTildes]);
195
- const toTypeOrFieldTitle = external_lodash_default().flow([getNamePart, toTypeOrFieldNamePartTitle]);
196
- const toPascalCase = function () {
197
- let lispCasedString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
198
- return lispCasedString && (external_lodash_default().last(lispCasedString.split("/")) || "").split("-").map((external_lodash_default()).capitalize).join(" ");
199
- };
200
- const isObsoleteTitle = str => {
201
- const {
202
- name
203
- } = splitKeyword(str);
204
- return name.toLowerCase() === name && !hasTildes(name);
205
- };
206
- const hasTildes = str => str.includes("~");
207
- const toNonEnumTitle = str => {
208
- return isObsoleteTitle(str) ? toPascalCase(str) : toTypeOrFieldTitle(str);
209
- };
210
- const parseEnumType = type => {
211
- const [templateType, targetType] = type.split("_");
212
- const {
213
- name: templateName,
214
- namespace: templateNamespace
215
- } = parseType(templateType);
216
- const {
217
- name: targetName,
218
- namespace: targetNamespace
219
- } = parseType(targetType);
220
- return {
221
- templateName,
222
- templateNamespace,
223
- targetName,
224
- targetNamespace
225
- };
226
- };
227
- const toEnumTitle = type => {
228
- // enum logic
229
- const {
230
- templateName,
231
- targetName
232
- } = parseEnumType(type);
233
- return toTitle(targetName) + " " + toTitle(templateName);
234
- };
235
- const toTitle = typeOrAttr => {
236
- const str = typeOrAttr || "";
237
- return str.includes("_") ? toEnumTitle(str) : toNonEnumTitle(str);
238
- };
239
- const splitKeyword = keyword => {
240
- const str = keyword || "";
241
- const index = str.indexOf("/");
242
- if (index === -1) {
243
- return {
244
- namespace: "",
245
- name: str
246
- };
247
- }
248
- const namespace = str.substring(0, index);
249
- const name = str.substring(index + 1);
250
- return {
251
- namespace,
252
- name
253
- };
254
- };
255
- const parseType = external_lodash_default().memoize(type => {
256
- if (!type.includes("/")) {
257
- traceError(`parseType invalid usage: passed type is '${type}'`);
258
- }
259
- return splitKeyword(type);
260
- });
261
- const makeEnumTypeNamePart = _ref => {
262
- let {
263
- holderType,
264
- enumName
265
- } = _ref;
266
- const {
267
- namespace,
268
- name
269
- } = parseType(holderType);
270
- return `${enumName}_${namespace}/${name}`;
271
- };
272
- const attachEnumNamespace = _ref2 => {
273
- let {
274
- enumNamespace,
275
- typeNamePart
276
- } = _ref2;
277
- return `${enumNamespace}/${typeNamePart}`;
278
- };
279
- const removeDeletedTypesAndFields = rawSchema => {
280
- const {
281
- "fibery/types": rawTypeObjects,
282
- ...schemaRest
283
- } = rawSchema;
284
- const filteredRawTypeObjects = rawTypeObjects.filter(rawTypeObject => rawTypeObject["fibery/deleted?"] !== true).map(rawTypeObject => {
285
- const {
286
- "fibery/fields": rawFieldObjects,
287
- ...rawTypeObjectRest
288
- } = rawTypeObject;
289
- const filteredRawFieldObjects = rawFieldObjects.filter(rawFieldObject => rawFieldObject["fibery/deleted?"] !== true);
290
- return {
291
- ...rawTypeObjectRest,
292
- "fibery/fields": filteredRawFieldObjects
293
- };
294
- });
295
- return {
296
- ...schemaRest,
297
- "fibery/types": filteredRawTypeObjects
298
- };
299
- };
300
- ;// CONCATENATED MODULE: ./FieldObject.js
301
-
302
-
303
- class FieldObject {
304
- constructor(_ref) {
305
- let {
306
- rawFieldObject,
307
- holderType,
308
- resolveTypeObject,
309
- version,
310
- resolveMultiRelatedFieldObjects
311
- } = _ref;
312
- if (!external_lodash_default().isPlainObject(rawFieldObject)) {
313
- throw new Error("rawFieldObject arg must be plain object");
314
- }
315
- if (!external_lodash_default().isString(holderType)) {
316
- throw new Error("holderType arg must be string");
317
- }
318
- if (!external_lodash_default().isFunction(resolveTypeObject)) {
319
- throw new Error("resolveTypeObject arg must be function");
320
- }
321
- if (!external_lodash_default().isFunction(resolveMultiRelatedFieldObjects)) {
322
- throw new Error("resolveMultiRelationFieldObjects arg must be function");
323
- }
324
- this.name = rawFieldObject["fibery/name"];
325
- this.description = rawFieldObject["fibery/description"] || null;
326
- this.id = rawFieldObject["fibery/id"];
327
- this.type = rawFieldObject["fibery/type"];
328
- const rawMeta = rawFieldObject["fibery/meta"] || {};
329
- this.rawMeta = rawMeta;
330
- this.holderType = holderType;
331
- this.isCollection = rawMeta["fibery/collection?"] || false;
332
- this.isTitle = rawMeta["ui/title?"] || false;
333
- this.isId = rawMeta["fibery/id?"] || false;
334
- this.isPublicId = rawMeta["fibery/public-id?"] || false;
335
- this.isReadOnly = rawMeta["fibery/readonly?"] || false;
336
- this.isFormula = rawMeta["formula/formula?"] || false;
337
- this.isFormulaDisabled = rawMeta["formula/disabled?"] || false;
338
- this.formulaDisableReason = rawMeta["formula/disable-reason"] || null;
339
- this.formula = rawMeta["formula/formula"] || null;
340
- this.isLookup = rawMeta["formula/lookup?"] || false;
341
- this.hasLinkRule = rawMeta["link-rule/link-rule?"] || false;
342
- this.linkRule = rawMeta["link-rule/link-rule"] || null;
343
- this.isLinkRuleDisabled = rawMeta["link-rule/disabled?"] || false;
344
- this.linkRuleDisableReason = rawMeta["link-rule/disable-reason"] || null;
345
- this.relation = rawMeta["fibery/relation"] || null;
346
- this.defaultValue = rawMeta["fibery/default-value"] || null;
347
- this.objectEditorOrder = rawMeta["ui/object-editor-order"] || 0;
348
- this.isRequired = rawMeta["fibery/required?"] === true;
349
- this.isHidden = rawMeta["ui/hidden?"] === true;
350
- this.isDeleted = rawFieldObject["fibery/deleted?"] || false;
351
- this.disableLinkExistingItems = rawMeta["ui/disable-link-existing-items"] || false;
352
- this.version = version;
353
- this.multiRelation = rawMeta["fibery/multi-relation"] || null;
354
- Object.defineProperties(this, {
355
- typeObject: {
356
- configurable: false,
357
- enumerable: true,
358
- get: external_lodash_default().once(() => resolveTypeObject(this.type))
359
- },
360
- mixinTypeObject: {
361
- configurable: false,
362
- enumerable: true,
363
- get: external_lodash_default().once(() => {
364
- return this.holderTypeObject.installedMixinTypeObjects.find(mixinTypeObject => mixinTypeObject.fieldObjectsByName.hasOwnProperty(this.name) || this.name === "workflow/state" && mixinTypeObject.name === "workflow/workflow");
365
- })
366
- },
367
- holderTypeObject: {
368
- configurable: false,
369
- enumerable: true,
370
- get: external_lodash_default().once(() => {
371
- return resolveTypeObject(holderType);
372
- })
373
- },
374
- nameParts: {
375
- configurable: false,
376
- enumerable: true,
377
- get: external_lodash_default().once(() => parseType(rawFieldObject["fibery/name"]))
378
- },
379
- title: {
380
- configurable: false,
381
- enumerable: true,
382
- get: external_lodash_default().once(() => toNonEnumTitle(rawFieldObject["fibery/name"]))
383
- },
384
- multiRelatedFieldObjects: {
385
- configurable: false,
386
- enumerable: true,
387
- get: external_lodash_default().once(() => {
388
- const {
389
- multiRelation,
390
- typeObject
391
- } = this;
392
- if (!multiRelation || !typeObject.isEntityRef) {
393
- return [];
394
- }
395
- return resolveMultiRelatedFieldObjects(multiRelation);
396
- })
397
- }
398
- });
399
- }
400
- get relatedFieldObject() {
401
- const {
402
- name,
403
- relation,
404
- multiRelation,
405
- typeObject
406
- } = this;
407
- if (!relation && !multiRelation) {
408
- return null;
409
- }
410
- if (!relation && multiRelation && typeObject.isEntityRef) {
411
- return null;
412
- }
413
- let relationKey;
414
- let relationId;
415
- if (relation) {
416
- relationKey = "relation";
417
- relationId = relation;
418
- } else {
419
- relationId = multiRelation;
420
- relationKey = "multiRelation";
421
- }
422
- const selector = this.type !== this.holderType ? fieldObject => fieldObject[relationKey] === relationId : fieldObject => fieldObject[relationKey] === relationId && fieldObject.name !== name;
423
- const fieldObject = this.typeObject.fieldObjects.find(selector);
424
- if (!fieldObject) {
425
- throw new Error(`there no other end for ${relationKey} ${relationId}`);
426
- }
427
- return fieldObject;
428
- }
429
- get cardinality() {
430
- const {
431
- isCollection,
432
- relatedFieldObject,
433
- typeObject
434
- } = this;
435
- if (typeObject.isPrimitive) {
436
- throw new Error("Only non-basic fields have cardinality");
437
- }
438
- if (isCollection && this.rawMeta["fibery/field-reversed-collection?"]) {
439
- return ":cardinality/many-to-many";
440
- }
441
- if (!relatedFieldObject) {
442
- return isCollection ? ":cardinality/one-to-many" : ":cardinality/many-to-one";
443
- }
444
- const isRelationCollection = relatedFieldObject.isCollection;
445
- if (!isCollection && !isRelationCollection) {
446
- return ":cardinality/one-to-one";
447
- }
448
- if (isCollection && !isRelationCollection) {
449
- return ":cardinality/one-to-many";
450
- }
451
- if (!isCollection && isRelationCollection) {
452
- return ":cardinality/many-to-one";
453
- }
454
- if (isCollection && isRelationCollection) {
455
- return ":cardinality/many-to-many";
456
- }
457
- throw new Error("get cardinality invariant");
458
- }
459
-
460
- /** @deprecated use !typeObject.isPrimitive && cardinality === ... instead */
461
- get kind() {
462
- if (this.typeObject.isPrimitive) {
463
- if (this.isCollection) {
464
- throw new Error("basic collection is not implemented");
465
- } else {
466
- return ":field/basic";
467
- }
468
- } else {
469
- if (this.isCollection) {
470
- return ":field/reference-collection";
471
- } else {
472
- return ":field/reference";
473
- }
474
- }
475
- }
476
- }
477
- ;// CONCATENATED MODULE: ./Schema.js
478
-
479
- class Schema {
480
- constructor(_ref) {
481
- let {
482
- factory,
483
- rawSchema: {
484
- "fibery/id": id,
485
- "fibery/types": rawTypeObjects,
486
- "fibery/version": version
487
- }
488
- } = _ref;
489
- if (!Array.isArray(rawTypeObjects)) {
490
- throw new Error("rawTypeObjects arg must be array");
491
- }
492
- Object.defineProperties(this, {
493
- toJSON: {
494
- value: () => ({
495
- "fibery/types": rawTypeObjects,
496
- "fibery/meta": {
497
- "fibery/version": version
498
- }
499
- }),
500
- enumerable: false
501
- }
502
- });
503
- const getTypeComponentTypeToFieldObject = external_lodash_default().once(() => {
504
- const typeComponentTypeToFieldObject = new Map();
505
- this.typeObjects.flatMap(typeObject => typeObject.fieldObjects).filter(fieldObject => {
506
- return fieldObject.rawMeta["fibery/type-component?"] === true && fieldObject.typeObject.rawMeta["fibery/type-component?"] === true;
507
- }).forEach(fieldObject => {
508
- typeComponentTypeToFieldObject.set(fieldObject.type, fieldObject);
509
- });
510
- return typeComponentTypeToFieldObject;
511
- });
512
- let multiRelatedFieldsObjectsMap = null;
513
- const initMultiRelatedFieldsObjectsMap = () => {
514
- multiRelatedFieldsObjectsMap = new Map();
515
- this.typeObjects.forEach(typeObject => {
516
- typeObject.fieldObjects.forEach(fieldObject => {
517
- if (fieldObject.multiRelation && !fieldObject.typeObject.isEntityRef) {
518
- const store = multiRelatedFieldsObjectsMap.get(fieldObject.multiRelation) || [];
519
- store.push(fieldObject);
520
- multiRelatedFieldsObjectsMap.set(fieldObject.multiRelation, store);
521
- }
522
- });
523
- });
524
- };
525
- this.typeObjects = rawTypeObjects.map(rawTypeObject => factory.makeTypeObject({
526
- rawTypeObject,
527
- resolveTypeObject: type => this.typeObjectsByName[type] || null,
528
- getTypeComponentTypeToFieldObject: type => getTypeComponentTypeToFieldObject().get(type),
529
- resolveMultiRelatedFieldObjects: multiRelation => {
530
- if (!multiRelatedFieldsObjectsMap) {
531
- initMultiRelatedFieldsObjectsMap();
532
- }
533
- return multiRelatedFieldsObjectsMap.get(multiRelation) || [];
534
- },
535
- version
536
- }));
537
- this.typeObjectsById = factory.makeTypeObjectsById(this.typeObjects);
538
- this.typeObjectsByName = factory.makeTypeObjectsByName(this.typeObjects);
539
- this.id = id;
540
- this.version = version;
541
- }
542
- }
543
- ;// CONCATENATED MODULE: external "pluralize"
544
- const external_pluralize_namespaceObject = require("pluralize");
545
- var external_pluralize_default = /*#__PURE__*/__webpack_require__.n(external_pluralize_namespaceObject);
546
- ;// CONCATENATED MODULE: ./TypeObject.js
547
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
548
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
549
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
550
-
551
-
552
-
553
- class TypeObject {
554
- constructor(_ref) {
555
- let {
556
- rawTypeObject,
557
- resolveTypeObject,
558
- getTypeComponentTypeToFieldObject,
559
- version,
560
- factory,
561
- resolveMultiRelatedFieldObjects
562
- } = _ref;
563
- _defineProperty(this, "_getFieldObjectShortcuts", external_lodash_default().once(() => {
564
- const hasRank = this.installedMixins.has("fibery/rank-mixin");
565
- return this.fieldObjects.reduce((result, fieldObject) => {
566
- if (fieldObject.isId) {
567
- result.idField = fieldObject.name;
568
- result.idFieldObject = fieldObject;
569
- } else if (fieldObject.isPublicId) {
570
- result.publicIdField = fieldObject.name;
571
- result.publicIdFieldObject = fieldObject;
572
- } else if (fieldObject.isTitle) {
573
- result.titleField = fieldObject.name;
574
- result.titleFieldObject = fieldObject;
575
- } else if (hasRank && fieldObject.name === "fibery/rank") {
576
- result.rankField = fieldObject.name;
577
- result.rankFieldObject = fieldObject;
578
- }
579
- return result;
580
- }, {
581
- idField: null,
582
- idFieldObject: null,
583
- publicIdField: null,
584
- publicIdFieldObject: null,
585
- titleField: null,
586
- titleFieldObject: null,
587
- rankField: null,
588
- rankFieldObject: null
589
- });
590
- }));
591
- if (!external_lodash_default().isPlainObject(rawTypeObject)) {
592
- throw new Error("rawTypeObject arg must be plain object");
593
- }
594
- if (!external_lodash_default().isFunction(resolveTypeObject)) {
595
- throw new Error("resolveTypeObject arg must be function");
596
- }
597
- this.name = rawTypeObject["fibery/name"];
598
- this.description = rawTypeObject["fibery/description"] || null;
599
- this.id = rawTypeObject["fibery/id"];
600
- const rawMeta = rawTypeObject["fibery/meta"] || {};
601
- this.rawMeta = rawMeta;
602
- this.isDomain = rawMeta["fibery/domain?"] || false;
603
- this.isPlatform = rawMeta["fibery/platform?"] || false;
604
- this.isHighlight = rawMeta["fibery/highlight?"] || false;
605
- this.isMixin = rawMeta["app/mixin?"] || false;
606
- this.mixinIcon = rawMeta["ui/mixin-icon"] || null;
607
- this.isEnum = rawMeta["fibery/enum?"] || false;
608
- this.isPrimitive = rawMeta["fibery/primitive?"] || false;
609
- this.isWriterModeByDefault = rawMeta["ui/writer-mode?"] || false;
610
- this.isDeleted = rawTypeObject["fibery/deleted?"] || false;
611
- this.nameParts = parseType(this.name);
612
- this.color = rawMeta["ui/color"] || "#4568FB";
613
- this.units = rawMeta["ui/units"] || null;
614
- this.installedMixins = new Set(Object.keys(rawMeta["app/mixins"] || {}));
615
- this.syncSource = rawMeta["sync/source"] || null;
616
- this.version = version;
617
- this.isEntityRef = rawTypeObject["fibery/name"] === "fibery/entity-ref";
618
- const fieldObjectsByNameOnceGetter = external_lodash_default().once(() => {
619
- return factory.makeFieldObjectsByName({
620
- type: this.name,
621
- fieldObjects: this.fieldObjects
622
- });
623
- });
624
- const fieldObjectsGetter = external_lodash_default().once(() => rawTypeObject["fibery/fields"].map(rawFieldObject => {
625
- return factory.makeFieldObject({
626
- rawFieldObject,
627
- holderType: this.name,
628
- resolveTypeObject,
629
- version,
630
- resolveMultiRelatedFieldObjects
631
- });
632
- }));
633
- Object.defineProperties(this, {
634
- toJSON: {
635
- value() {
636
- if (false) {}
637
- return rawTypeObject;
638
- },
639
- enumerable: false
640
- },
641
- fieldObjects: {
642
- configurable: false,
643
- enumerable: true,
644
- get: fieldObjectsGetter
645
- },
646
- typeComponentFieldObject: {
647
- configurable: false,
648
- enumerable: true,
649
- get: () => {
650
- return getTypeComponentTypeToFieldObject(this.name);
651
- }
652
- },
653
- fieldObjectsById: {
654
- configurable: false,
655
- enumerable: true,
656
- get: external_lodash_default().once(() => {
657
- return factory.makeFieldObjectsById({
658
- type: this.name,
659
- fieldObjects: this.fieldObjects
660
- });
661
- })
662
- },
663
- fieldObjectsByName: {
664
- configurable: false,
665
- enumerable: true,
666
- get: fieldObjectsByNameOnceGetter
667
- },
668
- installedMixinTypeObjects: {
669
- configurable: false,
670
- enumerable: true,
671
- get: external_lodash_default().once(() => [...this.installedMixins].map(resolveTypeObject).filter(typeObject => typeObject))
672
- },
673
- title: {
674
- configurable: false,
675
- enumerable: true,
676
- get: external_lodash_default().once(() => toTitle(this.name))
677
- },
678
- pluralTitle: {
679
- configurable: false,
680
- enumerable: true,
681
- get: external_lodash_default().once(() => toTitle(external_pluralize_default().plural(this.name)))
682
- }
683
- });
684
- }
685
- get idField() {
686
- return this._getFieldObjectShortcuts().idField;
687
- }
688
- get idFieldObject() {
689
- return this._getFieldObjectShortcuts().idFieldObject;
690
- }
691
- get publicIdField() {
692
- return this._getFieldObjectShortcuts().publicIdField;
693
- }
694
- get publicIdFieldObject() {
695
- return this._getFieldObjectShortcuts().publicIdFieldObject;
696
- }
697
- get titleField() {
698
- return this._getFieldObjectShortcuts().titleField;
699
- }
700
- get titleFieldObject() {
701
- return this._getFieldObjectShortcuts().titleFieldObject;
702
- }
703
- get rankField() {
704
- return this._getFieldObjectShortcuts().rankField;
705
- }
706
- get rankFieldObject() {
707
- return this._getFieldObjectShortcuts().rankFieldObject;
708
- }
709
- }
710
- ;// CONCATENATED MODULE: ./index.js
711
-
712
-
713
-
714
-
715
-
716
- const factory = {
717
- makeSchema: function (rawSchema) {
718
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
719
- shouldRemoveDeletedTypesAndFields: true
720
- };
721
- return new Schema({
722
- rawSchema: options.shouldRemoveDeletedTypesAndFields ? removeDeletedTypesAndFields(rawSchema) : rawSchema,
723
- factory
724
- });
725
- },
726
- makeTypeObject: args => new TypeObject({
727
- ...args,
728
- factory
729
- }),
730
- makeTypeObjectsById: typeObjects => external_lodash_default().keyBy(typeObjects, x => x.id),
731
- makeTypeObjectsByName: typeObjects => external_lodash_default().keyBy(typeObjects, x => x.name),
732
- makeFieldObject: args => new FieldObject(args),
733
- makeFieldObjectsById: _ref => {
734
- let {
735
- type,
736
- fieldObjects
737
- } = _ref;
738
- return external_lodash_default().keyBy(fieldObjects, x => x.id);
739
- },
740
- makeFieldObjectsByName: _ref2 => {
741
- let {
742
- type,
743
- fieldObjects
744
- } = _ref2;
745
- return external_lodash_default().keyBy(fieldObjects, x => x.name);
746
- }
747
- };
748
- const protectiveFactory = {
749
- makeSchema: function (rawSchema) {
750
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
751
- shouldRemoveDeletedTypesAndFields: true
752
- };
753
- return withOnlyDefinedGets(new Schema({
754
- rawSchema: options.shouldRemoveDeletedTypesAndFields ? removeDeletedTypesAndFields(rawSchema) : rawSchema,
755
- factory: protectiveFactory
756
- }), `schema`);
757
- },
758
- makeTypeObject: args => {
759
- const typeObject = new TypeObject({
760
- ...args,
761
- factory: protectiveFactory
762
- });
763
- return withOnlyDefinedGets(typeObject, `schema.typeObjectsByName["${typeObject.name}"]`);
764
- },
765
- makeTypeObjectsById: typeObjects => withOnlyDefinedGets(external_lodash_default().keyBy(typeObjects, x => x.id), "schema.typeObjectsById"),
766
- makeTypeObjectsByName: typeObjects => withOnlyDefinedGets(external_lodash_default().keyBy(typeObjects, x => x.name), "schema.typeObjectsByName"),
767
- makeFieldObject: args => {
768
- const fieldObject = new FieldObject(args);
769
- return withOnlyDefinedGets(fieldObject, `schema.typeObjectsByName["${fieldObject.holderType}"].fieldObjectsByName["${fieldObject.name}"]`);
770
- },
771
- makeFieldObjectsById: _ref3 => {
772
- let {
773
- type,
774
- fieldObjects
775
- } = _ref3;
776
- return withOnlyDefinedGets(external_lodash_default().keyBy(fieldObjects, x => x.id), `schema.typeObjectsByName["${type}"].fieldObjectsById`);
777
- },
778
- makeFieldObjectsByName: _ref4 => {
779
- let {
780
- type,
781
- fieldObjects
782
- } = _ref4;
783
- return withOnlyDefinedGets(external_lodash_default().keyBy(fieldObjects, x => x.name), `schema.typeObjectsByName["${type}"].fieldObjectsByName`);
784
- }
785
- };
786
- module.exports = __webpack_exports__;
787
- /******/ })()
788
- ;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./src/factory"), exports);
18
+ __exportStar(require("./src/schema"), exports);
19
+ __exportStar(require("./src/type-object"), exports);
20
+ __exportStar(require("./src/field-object"), exports);
21
+ __exportStar(require("./src/utils"), exports);
22
+ __exportStar(require("./src/errors"), exports);