@based/schema 4.1.0 → 5.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +152 -0
  5. package/dist/lang.js +149 -0
  6. package/dist/mermaid.d.ts +3 -0
  7. package/dist/mermaid.js +24 -0
  8. package/dist/parse/assert.d.ts +1 -1
  9. package/dist/parse/assert.js +2 -2
  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 +160 -68
  15. package/dist/parse/utils.d.ts +2 -2
  16. package/dist/parse/utils.js +11 -2
  17. package/dist/types.d.ts +66 -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,217 +0,0 @@
1
- const oldToNewType = {
2
- id: { type: 'string', format: 'basedId' },
3
- int: { type: 'integer' },
4
- url: { type: 'string', format: 'URL' },
5
- email: { type: 'string', format: 'email' },
6
- float: { type: 'number' },
7
- phone: { type: 'string', format: 'mobilePhone' },
8
- digest: { type: 'string', format: 'strongPassword' },
9
- };
10
- const newToOldType = {
11
- mobilePhone: { type: 'phone' },
12
- basedId: { type: 'id' },
13
- integer: { type: 'int' },
14
- URL: { type: 'url' },
15
- email: { type: 'email' },
16
- strongPassword: { type: 'digest' },
17
- };
18
- const convertNewToOldMeta = (props) => {
19
- let meta;
20
- for (const i in props) {
21
- if (i[0] !== '$') {
22
- const v = props[i];
23
- meta ??= {};
24
- if (i === 'allowedType') {
25
- meta.refTypes = v;
26
- }
27
- else if (i === 'display' && v === 'bytes') {
28
- meta.format = v;
29
- }
30
- else if (i === 'title') {
31
- meta.name = v;
32
- }
33
- else {
34
- meta[i] = v;
35
- }
36
- }
37
- }
38
- return meta;
39
- };
40
- const convertOldToNewMeta = (props) => {
41
- const meta = {};
42
- for (const i in props) {
43
- const v = props[i];
44
- if (i === 'refTypes') {
45
- meta.allowedType = v; // TODO
46
- }
47
- else if (i === 'format' && v === 'bytes') {
48
- meta.display = 'bytes';
49
- }
50
- else if (i === 'name') {
51
- meta.title = v;
52
- }
53
- else {
54
- meta[i] = v;
55
- }
56
- }
57
- return meta;
58
- };
59
- const convertNewFieldToOldField = (newField) => {
60
- // @ts-ignore
61
- const { type, bidirectional, properties, values, items, ...props } = newField;
62
- const meta = convertNewToOldMeta(props);
63
- // @ts-ignore
64
- const overwrite = newToOldType[type] || newToOldType[props.format];
65
- const oldField = overwrite
66
- ? { ...overwrite }
67
- : {
68
- type,
69
- };
70
- if (meta) {
71
- oldField.meta = meta;
72
- }
73
- if (bidirectional) {
74
- // @ts-ignore
75
- oldField.bidirectional = bidirectional;
76
- }
77
- if (properties) {
78
- // @ts-ignore
79
- oldField.properties = {};
80
- for (const key in properties) {
81
- // @ts-ignore
82
- oldField.properties[key] = convertNewFieldToOldField(properties[key]);
83
- }
84
- }
85
- if (values) {
86
- // @ts-ignore
87
- oldField.values = convertNewFieldToOldField(values);
88
- }
89
- if (items) {
90
- // @ts-ignore
91
- oldField.items = convertNewFieldToOldField(items);
92
- }
93
- return oldField;
94
- };
95
- const convertNewTypeToOldType = (newType) => {
96
- const { prefix, fields, ...props } = newType;
97
- const oldType = {};
98
- const meta = convertNewToOldMeta(props);
99
- if (prefix) {
100
- oldType.prefix = prefix;
101
- }
102
- if (meta) {
103
- oldType.meta = meta;
104
- }
105
- if (fields) {
106
- oldType.fields = {};
107
- for (const key in fields) {
108
- // @ts-ignore
109
- oldType.fields[key] = convertNewFieldToOldField(fields[key]);
110
- }
111
- }
112
- return oldType;
113
- };
114
- export const convertNewToOld = (newSchema) => {
115
- const { root, types, language, translations, prefixToTypeMapping } = newSchema;
116
- const oldSchema = {};
117
- if (prefixToTypeMapping) {
118
- oldSchema.prefixToTypeMapping = prefixToTypeMapping;
119
- }
120
- if (language) {
121
- oldSchema.languages = [language];
122
- }
123
- if (translations) {
124
- oldSchema.languages ??= [];
125
- oldSchema.languages.push(...translations);
126
- }
127
- if (root) {
128
- oldSchema.rootType = convertNewTypeToOldType(root);
129
- }
130
- if (types) {
131
- oldSchema.types = {};
132
- for (const key in types) {
133
- oldSchema.types[key] = convertNewTypeToOldType(types[key]);
134
- }
135
- }
136
- return oldSchema;
137
- };
138
- const convertOldFieldToNewField = (oldField) => {
139
- // @ts-ignore
140
- const { type, bidirectional, properties, values, items, meta = {} } = oldField;
141
- const overwrite = oldToNewType[type] || oldToNewType[meta.format];
142
- const newField = overwrite
143
- ? {
144
- ...overwrite,
145
- ...convertOldToNewMeta(meta),
146
- }
147
- : {
148
- type,
149
- ...convertOldToNewMeta(meta),
150
- };
151
- if (bidirectional) {
152
- // @ts-ignore
153
- newField.bidirectional = bidirectional;
154
- }
155
- if (properties) {
156
- // @ts-ignore
157
- newField.properties = {};
158
- for (const key in properties) {
159
- // @ts-ignore
160
- newField.properties[key] = convertOldFieldToNewField(properties[key]);
161
- }
162
- }
163
- if (values) {
164
- // @ts-ignore
165
- newField.values = convertOldFieldToNewField(values);
166
- }
167
- if (items) {
168
- // @ts-ignore
169
- newField.items = convertOldFieldToNewField(items);
170
- }
171
- return newField;
172
- };
173
- const convertOldTypeToNewType = (oldType) => {
174
- const { prefix, fields, meta } = oldType;
175
- const newType = {
176
- fields: {},
177
- };
178
- if (prefix) {
179
- newType.prefix = prefix;
180
- }
181
- if (meta) {
182
- Object.assign(newType, convertOldToNewMeta(meta));
183
- }
184
- if (fields) {
185
- for (const key in fields) {
186
- newType.fields[key] = convertOldFieldToNewField(fields[key]);
187
- }
188
- }
189
- return newType;
190
- };
191
- export const convertOldToNew = (oldSchema) => {
192
- const { rootType, types, languages, prefixToTypeMapping } = oldSchema;
193
- const newSchema = {};
194
- if (prefixToTypeMapping) {
195
- newSchema.prefixToTypeMapping = prefixToTypeMapping;
196
- }
197
- if (languages?.length) {
198
- // @ts-ignore
199
- newSchema.language = languages[0];
200
- const translations = languages.slice(1);
201
- if (translations.length) {
202
- // @ts-ignore
203
- newSchema.translations = translations;
204
- }
205
- }
206
- if (rootType) {
207
- newSchema.root = convertOldTypeToNewType(rootType);
208
- }
209
- if (types) {
210
- newSchema.types = {};
211
- for (const key in types) {
212
- newSchema.types[key] = convertOldTypeToNewType(types[key]);
213
- }
214
- }
215
- return newSchema;
216
- };
217
- //# sourceMappingURL=index.js.map
@@ -1,93 +0,0 @@
1
- type FieldType = 'float' | 'boolean' | 'number' | 'int' | 'string' | 'text' | 'id' | 'digest' | 'url' | 'email' | 'phone' | 'geo' | 'type' | 'timestamp';
2
- export type FieldSchemaObject = {
3
- type: 'object';
4
- properties: {
5
- [key: string]: FieldSchema;
6
- };
7
- meta?: any;
8
- timeseries?: boolean;
9
- };
10
- type FieldSchemaJson = {
11
- type: 'json';
12
- properties?: {
13
- [key: string]: FieldSchema;
14
- };
15
- meta?: any;
16
- timeseries?: boolean;
17
- };
18
- type FieldSchemaRecord = {
19
- type: 'record';
20
- values: FieldSchema;
21
- meta?: any;
22
- timeseries?: boolean;
23
- };
24
- type FieldSchemaReferences = {
25
- type: 'reference' | 'references';
26
- bidirectional?: {
27
- fromField: string;
28
- };
29
- meta?: any;
30
- timeseries?: boolean;
31
- };
32
- type FieldSchemaOther = {
33
- type: FieldType;
34
- meta?: any;
35
- timeseries?: boolean;
36
- };
37
- export type FieldSchemaArrayLike = {
38
- type: 'set' | 'array';
39
- items: FieldSchema;
40
- meta?: any;
41
- timeseries?: boolean;
42
- };
43
- export type FieldSchema = FieldSchemaObject | FieldSchemaRecord | FieldSchemaArrayLike | FieldSchemaJson | FieldSchemaReferences | FieldSchemaOther;
44
- type FieldInputSchemaArrayLike = {
45
- type: 'set' | 'array';
46
- items: FieldInputSchema;
47
- meta?: any;
48
- timeseries?: boolean;
49
- };
50
- type FieldInputSchemaRecord = {
51
- type: 'record';
52
- values: FieldInputSchema;
53
- meta?: any;
54
- timeseries?: boolean;
55
- };
56
- export type FieldInputSchemaObject = {
57
- type: 'object';
58
- properties: {
59
- [key: string]: FieldInputSchema;
60
- };
61
- meta?: any;
62
- timeseries?: boolean;
63
- };
64
- type FieldInputSchema = FieldSchema | FieldInputSchemaArrayLike | FieldInputSchemaRecord | FieldInputSchemaObject | DeleteField;
65
- type DeleteField = {
66
- $delete: boolean;
67
- };
68
- type Fields = Record<string, FieldSchema>;
69
- type HierarchySchema = false | {
70
- [key: string]: false | {
71
- excludeAncestryWith: string[];
72
- } | {
73
- includeAncestryWith: string[];
74
- };
75
- };
76
- export type TypeSchema = {
77
- prefix?: string;
78
- hierarchy?: HierarchySchema;
79
- fields?: Fields;
80
- meta?: any;
81
- };
82
- type Types = {
83
- [key: string]: TypeSchema;
84
- };
85
- export type BasedOldSchema = {
86
- sha?: string;
87
- languages?: string[];
88
- types: Types;
89
- rootType?: Pick<TypeSchema, 'fields' | 'prefix' | 'meta'>;
90
- idSeedCounter?: number;
91
- prefixToTypeMapping?: Record<string, string>;
92
- };
93
- export {};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=oldSchemaType.js.map
@@ -1,2 +0,0 @@
1
- import { BasedSchemaField } from '../types.js';
2
- export declare const display: (value: string | number | undefined, field: BasedSchemaField) => string | number | undefined;
@@ -1,16 +0,0 @@
1
- import timestampDisplay from './timestamp.js';
2
- import numberDisplay from './number.js';
3
- import stringDisplay from './string.js';
4
- export const display = (value, field) => {
5
- if (field.type === 'timestamp' && typeof value === 'number') {
6
- return timestampDisplay(value, field.display);
7
- }
8
- if (field.type === 'number' && typeof value === 'number') {
9
- return numberDisplay(value, field.display);
10
- }
11
- if (field.type === 'string' && typeof value === 'string') {
12
- return stringDisplay(value, field.display);
13
- }
14
- return value;
15
- };
16
- //# sourceMappingURL=index.js.map
@@ -1,4 +0,0 @@
1
- export declare const basedSchemaNumberFormats: readonly [any, "short", "human", "ratio", "bytes", "euro", "dollar", "pound"];
2
- export type NumberFormat = (typeof basedSchemaNumberFormats)[number] | `round-${number}`;
3
- declare const parseNumber: (nr: number | string, format?: NumberFormat) => string | number;
4
- export default parseNumber;
@@ -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