@based/schema 4.1.1 → 5.0.0-alpha.1

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 (123) hide show
  1. package/README.md +152 -0
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.js +2 -0
  4. package/dist/lang.d.ts +153 -0
  5. package/dist/lang.js +153 -0
  6. package/dist/mermaid.d.ts +3 -0
  7. package/dist/mermaid.js +24 -0
  8. package/dist/parse/assert.d.ts +2 -1
  9. package/dist/parse/assert.js +9 -3
  10. package/dist/parse/errors.d.ts +2 -0
  11. package/dist/parse/errors.js +2 -0
  12. package/dist/parse/index.d.ts +5 -4
  13. package/dist/parse/index.js +43 -41
  14. package/dist/parse/props.js +168 -75
  15. package/dist/parse/utils.d.ts +2 -2
  16. package/dist/parse/utils.js +11 -2
  17. package/dist/types.d.ts +72 -23
  18. package/dist/types.js +93 -0
  19. package/package.json +4 -3
  20. package/dist/parsePayload/index.d.ts +0 -3
  21. package/dist/parsePayload/index.js +0 -2
  22. package/dist/parseSchema/assert.d.ts +0 -6
  23. package/dist/parseSchema/assert.js +0 -27
  24. package/dist/parseSchema/errors.d.ts +0 -19
  25. package/dist/parseSchema/errors.js +0 -19
  26. package/dist/parseSchema/index.d.ts +0 -20
  27. package/dist/parseSchema/index.js +0 -132
  28. package/dist/parseSchema/props.d.ts +0 -7
  29. package/dist/parseSchema/props.js +0 -256
  30. package/dist/parseSchema/utils.d.ts +0 -3
  31. package/dist/parseSchema/utils.js +0 -29
  32. package/dist/src/compat/index.d.ts +0 -6
  33. package/dist/src/compat/index.js +0 -217
  34. package/dist/src/compat/oldSchemaType.d.ts +0 -93
  35. package/dist/src/compat/oldSchemaType.js +0 -2
  36. package/dist/src/display/index.d.ts +0 -2
  37. package/dist/src/display/index.js +0 -16
  38. package/dist/src/display/number.d.ts +0 -4
  39. package/dist/src/display/number.js +0 -97
  40. package/dist/src/display/string.d.ts +0 -5
  41. package/dist/src/display/string.js +0 -26
  42. package/dist/src/display/timestamp.d.ts +0 -5
  43. package/dist/src/display/timestamp.js +0 -134
  44. package/dist/src/error.d.ts +0 -21
  45. package/dist/src/error.js +0 -23
  46. package/dist/src/index.d.ts +0 -6
  47. package/dist/src/index.js +0 -7
  48. package/dist/src/languages.d.ts +0 -188
  49. package/dist/src/languages.js +0 -188
  50. package/dist/src/set/fields/array.d.ts +0 -2
  51. package/dist/src/set/fields/array.js +0 -119
  52. package/dist/src/set/fields/index.d.ts +0 -3
  53. package/dist/src/set/fields/index.js +0 -85
  54. package/dist/src/set/fields/number.d.ts +0 -4
  55. package/dist/src/set/fields/number.js +0 -123
  56. package/dist/src/set/fields/object.d.ts +0 -3
  57. package/dist/src/set/fields/object.js +0 -28
  58. package/dist/src/set/fields/references.d.ts +0 -3
  59. package/dist/src/set/fields/references.js +0 -136
  60. package/dist/src/set/fields/set.d.ts +0 -2
  61. package/dist/src/set/fields/set.js +0 -59
  62. package/dist/src/set/fields/string.d.ts +0 -3
  63. package/dist/src/set/fields/string.js +0 -289
  64. package/dist/src/set/index.d.ts +0 -3
  65. package/dist/src/set/index.js +0 -205
  66. package/dist/src/set/isValidId.d.ts +0 -2
  67. package/dist/src/set/isValidId.js +0 -17
  68. package/dist/src/types.d.ts +0 -205
  69. package/dist/src/types.js +0 -113
  70. package/dist/src/updateSchema.d.ts +0 -2
  71. package/dist/src/updateSchema.js +0 -12
  72. package/dist/src/validateSchema/basedSchemaTypeValidator.d.ts +0 -3
  73. package/dist/src/validateSchema/basedSchemaTypeValidator.js +0 -45
  74. package/dist/src/validateSchema/fieldValidators.d.ts +0 -27
  75. package/dist/src/validateSchema/fieldValidators.js +0 -360
  76. package/dist/src/validateSchema/index.d.ts +0 -17
  77. package/dist/src/validateSchema/index.js +0 -109
  78. package/dist/src/validateSchema/utils.d.ts +0 -25
  79. package/dist/src/validateSchema/utils.js +0 -61
  80. package/dist/src/walker/args.d.ts +0 -36
  81. package/dist/src/walker/args.js +0 -158
  82. package/dist/src/walker/index.d.ts +0 -6
  83. package/dist/src/walker/index.js +0 -31
  84. package/dist/src/walker/parse.d.ts +0 -3
  85. package/dist/src/walker/parse.js +0 -182
  86. package/dist/src/walker/types.d.ts +0 -45
  87. package/dist/src/walker/types.js +0 -7
  88. package/dist/test/array.d.ts +0 -1
  89. package/dist/test/array.js +0 -342
  90. package/dist/test/compat.d.ts +0 -1
  91. package/dist/test/compat.js +0 -97
  92. package/dist/test/data/newSchemas.d.ts +0 -2
  93. package/dist/test/data/newSchemas.js +0 -489
  94. package/dist/test/data/oldSchemas.d.ts +0 -2
  95. package/dist/test/data/oldSchemas.js +0 -5058
  96. package/dist/test/display.d.ts +0 -1
  97. package/dist/test/display.js +0 -103
  98. package/dist/test/json.d.ts +0 -1
  99. package/dist/test/json.js +0 -40
  100. package/dist/test/number.d.ts +0 -1
  101. package/dist/test/number.js +0 -374
  102. package/dist/test/reference.d.ts +0 -1
  103. package/dist/test/reference.js +0 -188
  104. package/dist/test/rest.d.ts +0 -1
  105. package/dist/test/rest.js +0 -168
  106. package/dist/test/set.d.ts +0 -1
  107. package/dist/test/set.js +0 -95
  108. package/dist/test/string.d.ts +0 -1
  109. package/dist/test/string.js +0 -120
  110. package/dist/test/text.d.ts +0 -1
  111. package/dist/test/text.js +0 -324
  112. package/dist/test/utils/index.d.ts +0 -11
  113. package/dist/test/utils/index.js +0 -17
  114. package/dist/test/validateSchema/basic.d.ts +0 -1
  115. package/dist/test/validateSchema/basic.js +0 -94
  116. package/dist/test/validateSchema/fields.d.ts +0 -1
  117. package/dist/test/validateSchema/fields.js +0 -436
  118. package/dist/test/validateSchema/languages.d.ts +0 -1
  119. package/dist/test/validateSchema/languages.js +0 -124
  120. package/dist/test/validateSchema/realWorld.d.ts +0 -1
  121. package/dist/test/validateSchema/realWorld.js +0 -13
  122. package/dist/test/walker.d.ts +0 -1
  123. package/dist/test/walker.js +0 -289
@@ -1,97 +0,0 @@
1
- export const basedSchemaNumberFormats = [
2
- ,
3
- 'short',
4
- 'human',
5
- 'ratio',
6
- 'bytes',
7
- 'euro',
8
- 'dollar',
9
- 'pound',
10
- ];
11
- const parseNumber = (nr, format) => {
12
- if (!format) {
13
- return nr;
14
- }
15
- if (typeof nr === 'number') {
16
- if (format === 'euro' || format === 'dollar' || format === 'pound') {
17
- const p = String(parseNumber(nr, 'short'));
18
- const fraction = format === 'euro' ? ',' : '.';
19
- const [s, f] = p.split('.');
20
- return `${format === 'euro'
21
- ? '€'
22
- : format === 'pound'
23
- ? '£'
24
- : format === 'dollar'
25
- ? '$'
26
- : ''}${s}${f ? `${fraction}${f}` : ''}`;
27
- }
28
- else if (format.startsWith('round-')) {
29
- const [, fixed] = format.split('round-');
30
- const n = Number(fixed);
31
- if (!n) {
32
- return `${nr.toFixed()}`;
33
- }
34
- return `${nr.toFixed(n)}`;
35
- }
36
- else if (format === 'bytes') {
37
- const kb = nr / 1024;
38
- const mb = kb / 1024;
39
- const gb = mb / 1024;
40
- if (gb >= 1) {
41
- return `${gb.toFixed(2)} gb`;
42
- }
43
- else if (mb >= 1) {
44
- return `${mb.toFixed(2)} mb`;
45
- }
46
- else if (kb >= 1) {
47
- return `${kb.toFixed(2)} kb`;
48
- }
49
- else {
50
- return `${nr} ${nr === 1 ? 'byte' : 'bytes'}`;
51
- }
52
- }
53
- else if (format === 'ratio') {
54
- return `${Math.round(nr * 10000) / 100}%`;
55
- }
56
- else if (format === 'short') {
57
- if (nr >= 10e9) {
58
- nr = nr / 1e9;
59
- nr = nr.toFixed(1);
60
- if (nr[nr.length - 1] === '0') {
61
- nr = nr.slice(0, -2);
62
- }
63
- return nr + 'b';
64
- }
65
- else if (nr >= 10e6) {
66
- nr = nr / 1e6;
67
- nr = nr.toFixed(1);
68
- if (nr[nr.length - 1] === '0') {
69
- nr = nr.slice(0, -2);
70
- }
71
- return nr + 'm';
72
- }
73
- else if (nr >= 10e3) {
74
- nr = nr / 1e3;
75
- nr = nr.toFixed(1);
76
- if (nr[nr.length - 1] === '0') {
77
- nr = nr.slice(0, -2);
78
- }
79
- return nr + 'k';
80
- }
81
- nr = nr.toFixed(2);
82
- if (nr[nr.length - 1] === '0') {
83
- nr = nr.slice(0, -3);
84
- }
85
- return String(nr);
86
- }
87
- else if (format === 'human') {
88
- return nr.toFixed(2);
89
- }
90
- return String(nr);
91
- }
92
- else {
93
- return nr;
94
- }
95
- };
96
- export default parseNumber;
97
- //# sourceMappingURL=number.js.map
@@ -1,5 +0,0 @@
1
- export declare const basedSchemaDisplayFormats: readonly ["lowercase", "uppercase", "capitalize"];
2
- export type basedSchemaDisplayFormat = (typeof basedSchemaDisplayFormats)[number];
3
- export type StringFormat = basedSchemaDisplayFormat;
4
- declare const parseString: (value?: string, format?: StringFormat) => string;
5
- export default parseString;
@@ -1,26 +0,0 @@
1
- export const basedSchemaDisplayFormats = [
2
- 'lowercase',
3
- 'uppercase',
4
- 'capitalize',
5
- ];
6
- const parseString = (value, format) => {
7
- if (!format) {
8
- return value;
9
- }
10
- if (!value) {
11
- return value;
12
- }
13
- if (format === 'lowercase') {
14
- return value.toLowerCase();
15
- }
16
- if (format === 'uppercase') {
17
- return value.toUpperCase();
18
- }
19
- if (format === 'capitalize') {
20
- const a = value[0];
21
- return a.toUpperCase() + (value ? value.slice(1) : '');
22
- }
23
- return value;
24
- };
25
- export default parseString;
26
- //# sourceMappingURL=string.js.map
@@ -1,5 +0,0 @@
1
- export declare const basedSchemaDateFormats: readonly [any, "date", "date-time", "date-time-text", "human", "time", "time-precise"];
2
- export type BasedSchemaDateFormat = (typeof basedSchemaDateFormats)[number];
3
- export type DateFormat = BasedSchemaDateFormat;
4
- declare const _default: (nr: number | string, format?: DateFormat) => string | number;
5
- export default _default;
@@ -1,134 +0,0 @@
1
- export const basedSchemaDateFormats = [
2
- ,
3
- 'date',
4
- 'date-time',
5
- 'date-time-text',
6
- 'human',
7
- 'time',
8
- 'time-precise',
9
- ];
10
- const addZero = (d) => {
11
- const s = d + '';
12
- if (s.length === 1) {
13
- return '0' + s;
14
- }
15
- return s;
16
- };
17
- export default (nr, format) => {
18
- if (!format) {
19
- return nr;
20
- }
21
- if (typeof nr === 'number') {
22
- const thenDate = new Date(nr);
23
- if (format === 'date') {
24
- return (thenDate.getDate() +
25
- '/' +
26
- (thenDate.getMonth() + 1) +
27
- '/' +
28
- thenDate.getFullYear());
29
- }
30
- else if (format === 'time') {
31
- return thenDate.getHours() + ':' + addZero(thenDate.getMinutes());
32
- }
33
- else if (format === 'time-precise') {
34
- return (thenDate.getHours() +
35
- ':' +
36
- addZero(thenDate.getMinutes()) +
37
- ':' +
38
- addZero(thenDate.getSeconds()));
39
- }
40
- else if (format === 'date-time-text') {
41
- return `${thenDate.toLocaleDateString('default', {
42
- day: 'numeric',
43
- month: 'long',
44
- year: 'numeric',
45
- })}, ${thenDate.toLocaleTimeString()}`;
46
- }
47
- else if (format === 'date-time') {
48
- return (thenDate.getHours() +
49
- ':' +
50
- addZero(thenDate.getMinutes()) +
51
- ' ' +
52
- thenDate.getDate() +
53
- '/' +
54
- (thenDate.getMonth() + 1) +
55
- '/' +
56
- thenDate.getFullYear());
57
- }
58
- else if (format === 'human') {
59
- const nowDate = new Date();
60
- if (nowDate.getTime() > thenDate.getTime()) {
61
- var secondsSince = Math.floor((nowDate.getTime() - thenDate.getTime()) / 1000);
62
- var interval = secondsSince / 31536000; // seconds in a year
63
- if (interval > 1) {
64
- const x = Math.floor(interval);
65
- return `${x} ${x > 1 ? 'years' : 'year'} ago`;
66
- }
67
- interval = secondsSince / 2592000; // seconds in a month
68
- if (interval > 1) {
69
- const x = Math.floor(interval);
70
- return `${x} ${x > 1 ? 'months' : 'month'} ago`;
71
- }
72
- interval = secondsSince / 86400; // seconds in a day
73
- if (interval > 1) {
74
- const x = Math.floor(interval);
75
- return `${x} ${x > 1 ? 'days' : 'day'} ago`;
76
- }
77
- interval = secondsSince / 3600; // seconds in an hour
78
- if (interval > 1) {
79
- const x = Math.floor(interval);
80
- return `${x} ${x > 1 ? 'hours' : 'hour'} ago`;
81
- }
82
- interval = secondsSince / 60; // seconds in a minute :)
83
- if (interval > 1) {
84
- const x = Math.floor(interval);
85
- return `${x} ${x > 1 ? 'minutes' : 'minute'} ago`;
86
- }
87
- if (secondsSince > 10) {
88
- const x = Math.floor(secondsSince);
89
- return `${x} ${x > 1 ? 'seconds' : 'second'} ago`;
90
- }
91
- return 'Now';
92
- }
93
- else {
94
- // in the future
95
- var secondsSince = Math.floor((thenDate.getTime() - nowDate.getTime()) / 1000);
96
- var interval = secondsSince / 31536000; // seconds in a year
97
- if (interval > 1) {
98
- const x = Math.floor(interval);
99
- return `${x} ${x > 1 ? 'years' : 'year'} from now`;
100
- }
101
- interval = secondsSince / 2592000; // seconds in a month
102
- if (interval > 1) {
103
- const x = Math.floor(interval);
104
- return `${x} ${x > 1 ? 'months' : 'month'} from now`;
105
- }
106
- interval = secondsSince / 86400; // seconds in a day
107
- if (interval > 1) {
108
- const x = Math.floor(interval);
109
- return `${x} ${x > 1 ? 'days' : 'day'} from now`;
110
- }
111
- interval = secondsSince / 3600; // seconds in an hour
112
- if (interval > 1) {
113
- const x = Math.floor(interval);
114
- return `${x} ${x > 1 ? 'hours' : 'hour'} from now`;
115
- }
116
- interval = secondsSince / 60; // seconds in a minute :)
117
- if (interval > 1) {
118
- const x = Math.floor(interval);
119
- return `${x} ${x > 1 ? 'minutes' : 'minute'} from now`;
120
- }
121
- if (secondsSince > 10) {
122
- const x = Math.floor(secondsSince);
123
- return `${x} ${x > 1 ? 'seconds' : 'second'} from now`;
124
- }
125
- return 'Now';
126
- }
127
- }
128
- return String(nr);
129
- }
130
- else {
131
- return nr;
132
- }
133
- };
134
- //# sourceMappingURL=timestamp.js.map
@@ -1,21 +0,0 @@
1
- export declare enum ParseError {
2
- 'incorrectFieldType' = 0,
3
- 'incorrectNodeType' = 1,
4
- 'exceedsMaximum' = 2,
5
- 'subceedsMinimum' = 3,
6
- 'fieldDoesNotExist' = 4,
7
- 'incorrectFormat' = 5,
8
- 'referenceIsIncorrectType' = 6,
9
- 'valueAndDefault' = 7,
10
- 'defaultNotSupported' = 8,
11
- 'multipleOperationsNotAllowed' = 9,
12
- 'requiredFieldNotDefined' = 10,
13
- 'languageNotSupported' = 11,
14
- 'invalidJSON' = 12,
15
- 'noLanguageFound' = 13,
16
- 'cannotDeleteNodeFromModify' = 14,
17
- 'nestedModifyObjectNotAllowed' = 15,
18
- 'infinityNotSupported' = 16,
19
- 'invalidSchemaFormat' = 17,
20
- 'invalidProperty' = 18
21
- }
package/dist/src/error.js DELETED
@@ -1,23 +0,0 @@
1
- export var ParseError;
2
- (function (ParseError) {
3
- ParseError[ParseError["incorrectFieldType"] = 0] = "incorrectFieldType";
4
- ParseError[ParseError["incorrectNodeType"] = 1] = "incorrectNodeType";
5
- ParseError[ParseError["exceedsMaximum"] = 2] = "exceedsMaximum";
6
- ParseError[ParseError["subceedsMinimum"] = 3] = "subceedsMinimum";
7
- ParseError[ParseError["fieldDoesNotExist"] = 4] = "fieldDoesNotExist";
8
- ParseError[ParseError["incorrectFormat"] = 5] = "incorrectFormat";
9
- ParseError[ParseError["referenceIsIncorrectType"] = 6] = "referenceIsIncorrectType";
10
- ParseError[ParseError["valueAndDefault"] = 7] = "valueAndDefault";
11
- ParseError[ParseError["defaultNotSupported"] = 8] = "defaultNotSupported";
12
- ParseError[ParseError["multipleOperationsNotAllowed"] = 9] = "multipleOperationsNotAllowed";
13
- ParseError[ParseError["requiredFieldNotDefined"] = 10] = "requiredFieldNotDefined";
14
- ParseError[ParseError["languageNotSupported"] = 11] = "languageNotSupported";
15
- ParseError[ParseError["invalidJSON"] = 12] = "invalidJSON";
16
- ParseError[ParseError["noLanguageFound"] = 13] = "noLanguageFound";
17
- ParseError[ParseError["cannotDeleteNodeFromModify"] = 14] = "cannotDeleteNodeFromModify";
18
- ParseError[ParseError["nestedModifyObjectNotAllowed"] = 15] = "nestedModifyObjectNotAllowed";
19
- ParseError[ParseError["infinityNotSupported"] = 16] = "infinityNotSupported";
20
- ParseError[ParseError["invalidSchemaFormat"] = 17] = "invalidSchemaFormat";
21
- ParseError[ParseError["invalidProperty"] = 18] = "invalidProperty";
22
- })(ParseError || (ParseError = {}));
23
- //# sourceMappingURL=error.js.map
@@ -1,6 +0,0 @@
1
- export * from './types.js';
2
- export * from './validateSchema/index.js';
3
- export * from './walker/index.js';
4
- export * from './set/index.js';
5
- export * from './display/index.js';
6
- export * from './compat/index.js';
package/dist/src/index.js DELETED
@@ -1,7 +0,0 @@
1
- export * from './types.js';
2
- export * from './validateSchema/index.js';
3
- export * from './walker/index.js';
4
- export * from './set/index.js';
5
- export * from './display/index.js';
6
- export * from './compat/index.js';
7
- //# sourceMappingURL=index.js.map
@@ -1,188 +0,0 @@
1
- export declare const languages: {
2
- ab: string;
3
- aa: string;
4
- af: string;
5
- ak: string;
6
- sq: string;
7
- am: string;
8
- ar: string;
9
- an: string;
10
- hy: string;
11
- as: string;
12
- av: string;
13
- ae: string;
14
- ay: string;
15
- az: string;
16
- bm: string;
17
- ba: string;
18
- eu: string;
19
- be: string;
20
- bn: string;
21
- bh: string;
22
- bi: string;
23
- bs: string;
24
- br: string;
25
- bg: string;
26
- my: string;
27
- ca: string;
28
- km: string;
29
- ch: string;
30
- ce: string;
31
- ny: string;
32
- zh: string;
33
- cu: string;
34
- cv: string;
35
- kw: string;
36
- co: string;
37
- cr: string;
38
- hr: string;
39
- cs: string;
40
- da: string;
41
- dv: string;
42
- nl: string;
43
- dz: string;
44
- en: string;
45
- eo: string;
46
- et: string;
47
- ee: string;
48
- fo: string;
49
- fj: string;
50
- fi: string;
51
- fr: string;
52
- ff: string;
53
- gd: string;
54
- gl: string;
55
- lg: string;
56
- ka: string;
57
- de: string;
58
- gsw: string;
59
- ki: string;
60
- el: string;
61
- kl: string;
62
- gn: string;
63
- gu: string;
64
- ht: string;
65
- ha: string;
66
- he: string;
67
- hz: string;
68
- hi: string;
69
- ho: string;
70
- hu: string;
71
- is: string;
72
- io: string;
73
- ig: string;
74
- id: string;
75
- ia: string;
76
- ie: string;
77
- iu: string;
78
- ik: string;
79
- ga: string;
80
- it: string;
81
- ja: string;
82
- jv: string;
83
- kn: string;
84
- kr: string;
85
- ks: string;
86
- kk: string;
87
- rw: string;
88
- kv: string;
89
- kg: string;
90
- ko: string;
91
- kj: string;
92
- ku: string;
93
- ky: string;
94
- lo: string;
95
- la: string;
96
- lv: string;
97
- lb: string;
98
- li: string;
99
- ln: string;
100
- lt: string;
101
- lu: string;
102
- mk: string;
103
- mg: string;
104
- ms: string;
105
- ml: string;
106
- mt: string;
107
- gv: string;
108
- mi: string;
109
- mr: string;
110
- mh: string;
111
- ro: string;
112
- mn: string;
113
- na: string;
114
- nv: string;
115
- nd: string;
116
- ng: string;
117
- ne: string;
118
- se: string;
119
- no: string;
120
- nb: string;
121
- nn: string;
122
- ii: string;
123
- oc: string;
124
- oj: string;
125
- or: string;
126
- om: string;
127
- os: string;
128
- pi: string;
129
- pa: string;
130
- ps: string;
131
- fa: string;
132
- pl: string;
133
- pt: string;
134
- qu: string;
135
- rm: string;
136
- rn: string;
137
- ru: string;
138
- sm: string;
139
- sg: string;
140
- sa: string;
141
- sc: string;
142
- sr: string;
143
- sn: string;
144
- sd: string;
145
- si: string;
146
- sk: string;
147
- sl: string;
148
- so: string;
149
- st: string;
150
- nr: string;
151
- es: string;
152
- su: string;
153
- sw: string;
154
- ss: string;
155
- sv: string;
156
- tl: string;
157
- ty: string;
158
- tg: string;
159
- ta: string;
160
- tt: string;
161
- te: string;
162
- th: string;
163
- bo: string;
164
- ti: string;
165
- to: string;
166
- ts: string;
167
- tn: string;
168
- tr: string;
169
- tk: string;
170
- tw: string;
171
- ug: string;
172
- uk: string;
173
- ur: string;
174
- uz: string;
175
- ve: string;
176
- vi: string;
177
- vo: string;
178
- wa: string;
179
- cy: string;
180
- fy: string;
181
- wo: string;
182
- xh: string;
183
- yi: string;
184
- yo: string;
185
- za: string;
186
- zu: string;
187
- };
188
- export type Language = keyof typeof languages;