@based/schema 0.0.16 → 1.0.2

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 (105) hide show
  1. package/dist/error.d.ts +18 -0
  2. package/dist/error.js +31 -0
  3. package/dist/error.js.map +1 -0
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/set/collections.js +14 -32
  8. package/dist/set/collections.js.map +1 -1
  9. package/dist/set/error.d.ts +1 -2
  10. package/dist/set/error.js +3 -8
  11. package/dist/set/error.js.map +1 -1
  12. package/dist/set/fields/array.d.ts +2 -0
  13. package/dist/set/fields/array.js +96 -0
  14. package/dist/set/fields/array.js.map +1 -0
  15. package/dist/set/fields/index.d.ts +3 -0
  16. package/dist/set/fields/index.js +72 -0
  17. package/dist/set/fields/index.js.map +1 -0
  18. package/dist/set/fields/number.d.ts +4 -0
  19. package/dist/set/fields/number.js +121 -0
  20. package/dist/set/fields/number.js.map +1 -0
  21. package/dist/set/fields/object.d.ts +3 -0
  22. package/dist/set/fields/object.js +33 -0
  23. package/dist/set/fields/object.js.map +1 -0
  24. package/dist/set/fields/references.d.ts +3 -0
  25. package/dist/set/fields/references.js +106 -0
  26. package/dist/set/fields/references.js.map +1 -0
  27. package/dist/set/fields/set.d.ts +2 -0
  28. package/dist/set/fields/set.js +63 -0
  29. package/dist/set/fields/set.js.map +1 -0
  30. package/dist/set/fields/string.d.ts +3 -0
  31. package/dist/set/fields/string.js +190 -0
  32. package/dist/set/fields/string.js.map +1 -0
  33. package/dist/set/index.d.ts +2 -5
  34. package/dist/set/index.js +101 -126
  35. package/dist/set/index.js.map +1 -1
  36. package/dist/set/isValidId.d.ts +2 -0
  37. package/dist/set/isValidId.js +21 -0
  38. package/dist/set/isValidId.js.map +1 -0
  39. package/dist/set/number.js +23 -36
  40. package/dist/set/number.js.map +1 -1
  41. package/dist/set/parseDefaultAndValue.js +1 -3
  42. package/dist/set/parseDefaultAndValue.js.map +1 -1
  43. package/dist/set/references.js +5 -12
  44. package/dist/set/references.js.map +1 -1
  45. package/dist/set/rest.js +4 -4
  46. package/dist/set/rest.js.map +1 -1
  47. package/dist/set/string.js +35 -35
  48. package/dist/set/string.js.map +1 -1
  49. package/dist/set/types.d.ts +0 -5
  50. package/dist/set/types.js +0 -2
  51. package/dist/types.d.ts +7 -1
  52. package/dist/types.js.map +1 -1
  53. package/dist/walker/args.d.ts +31 -0
  54. package/dist/walker/args.js +120 -0
  55. package/dist/walker/args.js.map +1 -0
  56. package/dist/walker/index.d.ts +6 -0
  57. package/dist/walker/index.js +40 -0
  58. package/dist/walker/index.js.map +1 -0
  59. package/dist/walker/parse.d.ts +2 -0
  60. package/dist/walker/parse.js +157 -0
  61. package/dist/walker/parse.js.map +1 -0
  62. package/dist/walker/types.d.ts +44 -0
  63. package/dist/walker/types.js +9 -0
  64. package/dist/walker/types.js.map +1 -0
  65. package/package.json +2 -2
  66. package/src/{set/error.ts → error.ts} +3 -1
  67. package/src/index.ts +2 -2
  68. package/src/set/fields/array.ts +111 -0
  69. package/src/set/fields/index.ts +69 -0
  70. package/src/set/fields/number.ts +134 -0
  71. package/src/set/fields/object.ts +30 -0
  72. package/src/set/fields/references.ts +114 -0
  73. package/src/set/fields/set.ts +63 -0
  74. package/src/set/fields/string.ts +199 -0
  75. package/src/set/index.ts +105 -187
  76. package/src/set/isValidId.ts +23 -0
  77. package/src/set/types.ts +0 -20
  78. package/src/types.ts +4 -2
  79. package/src/walker/args.ts +159 -0
  80. package/src/walker/index.ts +35 -0
  81. package/src/walker/parse.ts +193 -0
  82. package/src/walker/types.ts +75 -0
  83. package/test/number.ts +289 -543
  84. package/test/reference.ts +150 -198
  85. package/test/rest.ts +227 -0
  86. package/test/string.ts +139 -183
  87. package/test/utils/index.ts +23 -0
  88. package/test/walker.ts +558 -3
  89. package/dist/set2/index.d.ts +0 -0
  90. package/dist/set2/index.js +0 -71
  91. package/dist/set2/index.js.map +0 -1
  92. package/dist/walker.d.ts +0 -51
  93. package/dist/walker.js +0 -120
  94. package/dist/walker.js.map +0 -1
  95. package/src/set/collections.ts +0 -338
  96. package/src/set/number.ts +0 -167
  97. package/src/set/parseDefaultAndValue.ts +0 -54
  98. package/src/set/parsers.ts +0 -20
  99. package/src/set/references.ts +0 -113
  100. package/src/set/rest.ts +0 -135
  101. package/src/set/string.ts +0 -254
  102. package/src/set2/index.ts +0 -71
  103. package/src/walker.ts +0 -201
  104. package/test/setWalker.ts +0 -494
  105. package/test/text.ts +0 -171
@@ -0,0 +1,18 @@
1
+ import { BasedSetHandlers } from './types';
2
+ export declare enum ParseError {
3
+ 'incorrectFieldType' = 0,
4
+ 'incorrectNodeType' = 1,
5
+ 'exceedsMaximum' = 2,
6
+ 'subceedsMinimum' = 3,
7
+ 'fieldDoesNotExist' = 4,
8
+ 'incorrectFormat' = 5,
9
+ 'referenceIsIncorrectType' = 6,
10
+ 'valueAndDefault' = 7,
11
+ 'defaultNotSupported' = 8,
12
+ 'multipleOperationsNotAllowed' = 9,
13
+ 'requiredFieldNotDefined' = 10,
14
+ 'languageNotSupported' = 11,
15
+ 'invalidJSON' = 12,
16
+ 'noLanguageFound' = 13
17
+ }
18
+ export declare const error: (handlers: BasedSetHandlers, error: ParseError, path?: (number | string)[]) => void;
package/dist/error.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.error = exports.ParseError = void 0;
4
+ var ParseError;
5
+ (function (ParseError) {
6
+ ParseError[ParseError["incorrectFieldType"] = 0] = "incorrectFieldType";
7
+ ParseError[ParseError["incorrectNodeType"] = 1] = "incorrectNodeType";
8
+ ParseError[ParseError["exceedsMaximum"] = 2] = "exceedsMaximum";
9
+ ParseError[ParseError["subceedsMinimum"] = 3] = "subceedsMinimum";
10
+ ParseError[ParseError["fieldDoesNotExist"] = 4] = "fieldDoesNotExist";
11
+ ParseError[ParseError["incorrectFormat"] = 5] = "incorrectFormat";
12
+ ParseError[ParseError["referenceIsIncorrectType"] = 6] = "referenceIsIncorrectType";
13
+ ParseError[ParseError["valueAndDefault"] = 7] = "valueAndDefault";
14
+ ParseError[ParseError["defaultNotSupported"] = 8] = "defaultNotSupported";
15
+ ParseError[ParseError["multipleOperationsNotAllowed"] = 9] = "multipleOperationsNotAllowed";
16
+ ParseError[ParseError["requiredFieldNotDefined"] = 10] = "requiredFieldNotDefined";
17
+ ParseError[ParseError["languageNotSupported"] = 11] = "languageNotSupported";
18
+ ParseError[ParseError["invalidJSON"] = 12] = "invalidJSON";
19
+ ParseError[ParseError["noLanguageFound"] = 13] = "noLanguageFound";
20
+ })(ParseError = exports.ParseError || (exports.ParseError = {}));
21
+ const error = (handlers, error, path) => {
22
+ const message = path
23
+ ? `${ParseError[error]} ${path.join('.')}`
24
+ : `${ParseError[error]}`;
25
+ handlers.collectErrors({
26
+ message,
27
+ code: error,
28
+ });
29
+ };
30
+ exports.error = error;
31
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAeX;AAfD,WAAY,UAAU;IACpB,uEAAoB,CAAA;IACpB,qEAAmB,CAAA;IACnB,+DAAgB,CAAA;IAChB,iEAAiB,CAAA;IACjB,qEAAmB,CAAA;IACnB,iEAAiB,CAAA;IACjB,mFAA0B,CAAA;IAC1B,iEAAiB,CAAA;IACjB,yEAAqB,CAAA;IACrB,2FAA8B,CAAA;IAC9B,kFAAyB,CAAA;IACzB,4EAAsB,CAAA;IACtB,0DAAa,CAAA;IACb,kEAAiB,CAAA;AACnB,CAAC,EAfW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAerB;AAEM,MAAM,KAAK,GAAG,CACnB,QAA0B,EAC1B,KAAiB,EACjB,IAA0B,EAC1B,EAAE;IACF,MAAM,OAAO,GAAG,IAAI;QAClB,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC1C,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;IAE1B,QAAQ,CAAC,aAAa,CAAC;QACrB,OAAO;QACP,IAAI,EAAE,KAAK;KACZ,CAAC,CAAA;AACJ,CAAC,CAAA;AAbY,QAAA,KAAK,SAajB"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './types';
2
2
  export * from './validateSchema';
3
- export * from './set';
4
3
  export * from './walker';
4
+ export * from './set';
package/dist/index.js CHANGED
@@ -16,6 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./types"), exports);
18
18
  __exportStar(require("./validateSchema"), exports);
19
- __exportStar(require("./set"), exports);
20
19
  __exportStar(require("./walker"), exports);
20
+ __exportStar(require("./set"), exports);
21
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AAEvB,mDAAgC;AAEhC,wCAAqB;AAErB,2CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AAEvB,mDAAgC;AAEhC,2CAAwB;AAExB,wCAAqB"}
@@ -3,15 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.record = exports.array = exports.object = exports.set = void 0;
4
4
  const error_1 = require("./error");
5
5
  const _1 = require(".");
6
- // what about making errors return signature
7
6
  const set = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
8
- if (value && typeof value === 'object') {
9
- if (value.$default) {
10
- (0, error_1.error)(handlers, error_1.ParseError.defaultNotSupported, path);
11
- }
12
- if (value.$value) {
13
- value = value.$value;
14
- }
7
+ if (value && typeof value === 'object' && value.$value) {
8
+ value = value.$value;
15
9
  }
16
10
  const q = [];
17
11
  const fieldDef = fieldSchema.items;
@@ -56,20 +50,17 @@ const set = async (path, value, fieldSchema, typeSchema, target, handlers, noCol
56
50
  exports.set = set;
57
51
  const object = async (path, value, fieldSchema, typeSchema, target, handlers, noCollect) => {
58
52
  if (typeof value !== 'object') {
59
- (0, error_1.error)(handlers, error_1.ParseError.incorrectFormat, path);
60
- return;
53
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
61
54
  }
62
55
  const isArray = Array.isArray(value);
63
56
  if (isArray) {
64
- (0, error_1.error)(handlers, error_1.ParseError.incorrectFormat, path);
65
- return;
57
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
66
58
  }
67
59
  const q = [];
68
60
  for (const key in value) {
69
61
  const propDef = fieldSchema.properties[key];
70
62
  if (!propDef) {
71
- (0, error_1.error)(handlers, error_1.ParseError.fieldDoesNotExist, [...path, key]);
72
- continue;
63
+ (0, error_1.error)([...path, key], error_1.ParseError.fieldDoesNotExist);
73
64
  }
74
65
  q.push((0, _1.fieldWalker)([...path, key], value[key], propDef, typeSchema, target, handlers, noCollect));
75
66
  }
@@ -99,13 +90,11 @@ const array = async (path, value, fieldSchema, typeSchema, target, handlers, noC
99
90
  if (value.$insert) {
100
91
  opCount++;
101
92
  if (opCount > 1) {
102
- (0, error_1.error)(handlers, error_1.ParseError.multipleOperationsNotAllowed, path);
103
- return;
93
+ (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
104
94
  }
105
95
  if (typeof value.$insert !== 'object' ||
106
96
  value.$insert.$idx === undefined) {
107
- (0, error_1.error)(handlers, error_1.ParseError.incorrectFormat, path);
108
- return;
97
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
109
98
  }
110
99
  else {
111
100
  const insert = Array.isArray(value.$insert.$value)
@@ -121,19 +110,16 @@ const array = async (path, value, fieldSchema, typeSchema, target, handlers, noC
121
110
  if (value.$remove) {
122
111
  opCount++;
123
112
  if (opCount > 1) {
124
- (0, error_1.error)(handlers, error_1.ParseError.multipleOperationsNotAllowed, path);
125
- return;
113
+ (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
126
114
  }
127
115
  if (value.$remove.$idx === undefined) {
128
- (0, error_1.error)(handlers, error_1.ParseError.incorrectFormat, path);
129
- return;
116
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
130
117
  }
131
118
  }
132
119
  if (value.$push) {
133
120
  opCount++;
134
121
  if (opCount > 1) {
135
- (0, error_1.error)(handlers, error_1.ParseError.multipleOperationsNotAllowed, path);
136
- return;
122
+ (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
137
123
  }
138
124
  // TODO: FIX PUSH PARSING
139
125
  const q = [];
@@ -149,8 +135,7 @@ const array = async (path, value, fieldSchema, typeSchema, target, handlers, noC
149
135
  if (value.$unshift) {
150
136
  opCount++;
151
137
  if (opCount > 1) {
152
- (0, error_1.error)(handlers, error_1.ParseError.multipleOperationsNotAllowed, path);
153
- return;
138
+ (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
154
139
  }
155
140
  const q = [];
156
141
  const unshift = Array.isArray(value.$unshift)
@@ -168,13 +153,11 @@ const array = async (path, value, fieldSchema, typeSchema, target, handlers, noC
168
153
  if (value.$assign) {
169
154
  opCount++;
170
155
  if (opCount > 1) {
171
- (0, error_1.error)(handlers, error_1.ParseError.multipleOperationsNotAllowed, path);
172
- return;
156
+ (0, error_1.error)(path, error_1.ParseError.multipleOperationsNotAllowed);
173
157
  }
174
158
  if (typeof value.$assign !== 'object' ||
175
159
  typeof value.$assign.$idx !== 'number') {
176
- (0, error_1.error)(handlers, error_1.ParseError.incorrectFormat, path);
177
- return;
160
+ (0, error_1.error)(path, error_1.ParseError.incorrectFormat);
178
161
  }
179
162
  await (0, _1.fieldWalker)([...path, value.$assign.$idx], value.$assign.$value, fieldSchema.values, typeSchema, target, handlers, noCollect);
180
163
  return;
@@ -193,8 +176,7 @@ const array = async (path, value, fieldSchema, typeSchema, target, handlers, noC
193
176
  }
194
177
  }
195
178
  if (!isArray) {
196
- (0, error_1.error)(handlers, error_1.ParseError.incorrectFieldType, path);
197
- return;
179
+ (0, error_1.error)(path, error_1.ParseError.incorrectFieldType);
198
180
  }
199
181
  const q = [];
200
182
  const collector = [];
@@ -1 +1 @@
1
- {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/set/collections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/set/collections.ts"],"names":[],"mappings":";;;AACA,mCAA2C;AAC3C,wBAA+B;AAExB,MAAM,GAAG,GAAkB,KAAK,EACrC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,EAAE;IACF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;QACtD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;KACrB;IACD,MAAM,CAAC,GAAoB,EAAE,CAAA;IAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAA;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,WAAW,GAAG,EAAE,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;gBAChE,GAAG,QAAQ;gBACX,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;oBACrB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACzB,CAAC;aACF,CAAC,CACH,CAAA;SACF;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,SAAS,EAAE;YACd,QAAQ,CAAC,OAAO,CAAC;gBACf,IAAI;gBACJ,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;gBAC9B,UAAU;gBACV,WAAW;gBACX,MAAM;aACP,CAAC,CAAA;SACH;KACF;SAAM;QACL,IAAI,KAAK,CAAC,IAAI,EAAE;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,IAAI,EACJ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACb,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;aACF;SACF;QACD,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,IAAI,EACJ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAChB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;aACF;SACF;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,SAAS,EAAE;YACd,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;SACnE;KACF;AACH,CAAC,CAAA;AAxEY,QAAA,GAAG,OAwEf;AAEM,MAAM,MAAM,GAAqB,KAAK,EAC3C,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,EAAE;IACF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;KACxC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,OAAO,EAAE;QACX,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;KACxC;IACD,MAAM,CAAC,GAAoB,EAAE,CAAA;IAC7B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,EAAE;YACZ,IAAA,aAAK,EAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,kBAAU,CAAC,iBAAiB,CAAC,CAAA;SACpD;QACD,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EACd,KAAK,CAAC,GAAG,CAAC,EACV,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,CACV,CACF,CAAA;KACF;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACpB,IAAI,WAAW,CAAC,QAAQ,EAAE;QACxB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE;gBACnB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;aACrC;SACF;KACF;AACH,CAAC,CAAA;AA1CY,QAAA,MAAM,UA0ClB;AAED,yFAAyF;AAClF,MAAM,KAAK,GAAoB,KAAK,EACzC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,EAAE;IACF,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE;QAC/C,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAA;YACT,SAAS,GAAG,IAAI,CAAA;YAChB,WAAW,GAAG,KAAK,CAAC,MAAM,CAAA;YAC1B,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;SACrC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,CAAA;YACT,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,4BAA4B,CAAC,CAAA;aACrD;YACD,IACE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gBACjC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAChC;gBACA,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;aACxC;iBAAM;gBACL,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBAChD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;oBACtB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC1B,MAAM,CAAC,GAAoB,EAAE,CAAA;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACtC,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,IAAI,EACJ,MAAM,CAAC,CAAC,CAAC,EACT,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;iBACF;gBACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;aACrB;SACF;QACD,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,CAAA;YACT,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,4BAA4B,CAAC,CAAA;aACrD;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;gBACpC,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;aACxC;SACF;QACD,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,OAAO,EAAE,CAAA;YACT,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,4BAA4B,CAAC,CAAA;aACrD;YAED,yBAAyB;YACzB,MAAM,CAAC,GAAoB,EAAE,CAAA;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW;gBACT,YAAY;gBACZ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EACrB,IAAI,CAAC,CAAC,CAAC,EACP,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;aACF;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACpB,WAAW,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;SAC9B;QACD,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,OAAO,EAAE,CAAA;YACT,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,4BAA4B,CAAC,CAAA;aACrD;YACD,MAAM,CAAC,GAAoB,EAAE,CAAA;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC3C,CAAC,CAAC,KAAK,CAAC,QAAQ;gBAChB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAEpB,4BAA4B;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW;gBACT,YAAY;gBACZ,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,EACxB,OAAO,CAAC,CAAC,CAAC,EACV,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,CACL,CACF,CAAA;aACF;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACpB,WAAW,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;SACpC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,CAAA;YACT,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,4BAA4B,CAAC,CAAA;aACrD;YACD,IACE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gBACjC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EACtC;gBACA,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,eAAe,CAAC,CAAA;aACxC;YACD,MAAM,IAAA,cAAW,EACf,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAC7B,KAAK,CAAC,OAAO,CAAC,MAAM,EACpB,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,CACV,CAAA;YACD,OAAM;SACP;QACD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE;YAC5B,QAAQ,CAAC,OAAO,CAAC;gBACf,IAAI;gBACJ,KAAK,EAAE,WAAW;gBAClB,UAAU;gBACV,WAAW;gBACX,MAAM;aACP,CAAC,CAAA;SACH;QACD,IAAI,CAAC,SAAS,EAAE;YACd,OAAM;SACP;KACF;IACD,IAAI,CAAC,OAAO,EAAE;QACZ,IAAA,aAAK,EAAC,IAAI,EAAE,kBAAU,CAAC,kBAAkB,CAAC,CAAA;KAC3C;IACD,MAAM,CAAC,GAAoB,EAAE,CAAA;IAC7B,MAAM,SAAS,GAAU,EAAE,CAAA;IAC3B,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC;YACE,GAAG,QAAQ;YACX,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;gBACnB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACzB,CAAC;SACF,CAAA;IACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC3C,CAAC,CAAC,IAAI,CACJ,IAAA,cAAW,EACT,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EACZ,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,MAAM,EAClB,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAS,CACV,CACF,CAAA;KACF;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEpB,IAAI,CAAC,SAAS,EAAE;QACd,QAAQ,CAAC,OAAO,CAAC;YACf,IAAI;YACJ,UAAU;YACV,WAAW;YACX,MAAM;YACN,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SACzB,CAAC,CAAA;QACF,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;YACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;SACpB;KACF;AACH,CAAC,CAAA;AA7LY,QAAA,KAAK,SA6LjB;AAEM,MAAM,MAAM,GAAqB,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAE,CAAC,CAAA;AAAjE,QAAA,MAAM,UAA2D"}
@@ -1,4 +1,3 @@
1
- import { BasedSetHandlers } from '../types';
2
1
  export declare enum ParseError {
3
2
  'incorrectFieldType' = 0,
4
3
  'incorrectNodeType' = 1,
@@ -13,4 +12,4 @@ export declare enum ParseError {
13
12
  'requiredFieldNotDefined' = 10,
14
13
  'languageNotSupported' = 11
15
14
  }
16
- export declare const error: (handlers: BasedSetHandlers, error: ParseError, path?: (number | string)[]) => void;
15
+ export declare const error: (path: (number | string)[], error: ParseError, type?: string) => never;
package/dist/set/error.js CHANGED
@@ -16,14 +16,9 @@ var ParseError;
16
16
  ParseError[ParseError["requiredFieldNotDefined"] = 10] = "requiredFieldNotDefined";
17
17
  ParseError[ParseError["languageNotSupported"] = 11] = "languageNotSupported";
18
18
  })(ParseError = exports.ParseError || (exports.ParseError = {}));
19
- const error = (handlers, error, path) => {
20
- const message = path
21
- ? `${ParseError[error]} ${path.join('.')}`
22
- : `${ParseError[error]}`;
23
- handlers.collectErrors({
24
- message,
25
- code: error,
26
- });
19
+ const error = (path, error, type // nice to give as option
20
+ ) => {
21
+ throw new Error(`Field: "${path.join('.')}" ${ParseError[error]}`);
27
22
  };
28
23
  exports.error = error;
29
24
  //# sourceMappingURL=error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/set/error.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAaX;AAbD,WAAY,UAAU;IACpB,uEAAoB,CAAA;IACpB,qEAAmB,CAAA;IACnB,+DAAgB,CAAA;IAChB,iEAAiB,CAAA;IACjB,qEAAmB,CAAA;IACnB,iEAAiB,CAAA;IACjB,mFAA0B,CAAA;IAC1B,iEAAiB,CAAA;IACjB,yEAAqB,CAAA;IACrB,2FAA8B,CAAA;IAC9B,kFAAyB,CAAA;IACzB,4EAAsB,CAAA;AACxB,CAAC,EAbW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAarB;AAEM,MAAM,KAAK,GAAG,CACnB,QAA0B,EAC1B,KAAiB,EACjB,IAA0B,EAC1B,EAAE;IACF,MAAM,OAAO,GAAG,IAAI;QAClB,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC1C,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;IAE1B,QAAQ,CAAC,aAAa,CAAC;QACrB,OAAO;QACP,IAAI,EAAE,KAAK;KACZ,CAAC,CAAA;AACJ,CAAC,CAAA;AAbY,QAAA,KAAK,SAajB"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/set/error.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAaX;AAbD,WAAY,UAAU;IACpB,uEAAoB,CAAA;IACpB,qEAAmB,CAAA;IACnB,+DAAgB,CAAA;IAChB,iEAAiB,CAAA;IACjB,qEAAmB,CAAA;IACnB,iEAAiB,CAAA;IACjB,mFAA0B,CAAA;IAC1B,iEAAiB,CAAA;IACjB,yEAAqB,CAAA;IACrB,2FAA8B,CAAA;IAC9B,kFAAyB,CAAA;IACzB,4EAAsB,CAAA;AACxB,CAAC,EAbW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAarB;AAEM,MAAM,KAAK,GAAG,CACnB,IAAyB,EACzB,KAAiB,EACjB,IAAa,CAAC,yBAAyB;EACvC,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACpE,CAAC,CAAA;AANY,QAAA,KAAK,SAMjB"}
@@ -0,0 +1,2 @@
1
+ import { FieldParser } from '../../walker';
2
+ export declare const array: FieldParser<'array'>;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.array = void 0;
4
+ const utils_1 = require("@saulx/utils");
5
+ const error_1 = require("../../error");
6
+ const parseArray = async (args, value) => {
7
+ const fromValue = Array.isArray(value) ? value : [value];
8
+ const q = [];
9
+ const arr = new Array(fromValue.length);
10
+ for (let i = 0; i < fromValue.length; i++) {
11
+ q.push(args.parse({
12
+ path: [i],
13
+ value: fromValue[i],
14
+ fieldSchema: args.fieldSchema.values,
15
+ collect: (args, v) => {
16
+ (0, utils_1.setByPath)(arr, args.path, v);
17
+ },
18
+ }));
19
+ }
20
+ await Promise.all(q);
21
+ return arr;
22
+ };
23
+ const operations = {
24
+ $insert: async (args, value) => {
25
+ if (typeof value.$insert !== 'object' ||
26
+ typeof value.$insert.$idx !== 'number') {
27
+ args.error(error_1.ParseError.incorrectFormat);
28
+ return;
29
+ }
30
+ value.$insert.$value = await parseArray(args, value.$insert.$value);
31
+ args.collect(value);
32
+ },
33
+ $push: async (args, value) => {
34
+ value.$push = await parseArray(args, value.$push);
35
+ args.collect(value);
36
+ },
37
+ $unshift: async (args, value) => {
38
+ value.$unshift = await parseArray(args, value.$push);
39
+ args.collect(value);
40
+ },
41
+ $remove: async (args, value) => {
42
+ if (typeof value.$remove.$idx !== 'number') {
43
+ args.error(error_1.ParseError.incorrectFormat);
44
+ return;
45
+ }
46
+ args.collect(value);
47
+ },
48
+ $assign: async (args, value) => {
49
+ if (typeof value.$assign !== 'object' ||
50
+ typeof value.$assign.$idx !== 'number') {
51
+ args.error(error_1.ParseError.incorrectFormat);
52
+ return;
53
+ }
54
+ await args.parse({
55
+ key: value.$assign.$idx,
56
+ value: args.fieldSchema.values,
57
+ });
58
+ },
59
+ };
60
+ const array = async (args) => {
61
+ args.stop();
62
+ if (typeof args.value !== 'object') {
63
+ args.error(error_1.ParseError.incorrectFormat);
64
+ return;
65
+ }
66
+ let value = '$value' in args.value ? args.value.$value : args.value;
67
+ if (Array.isArray(value)) {
68
+ const q = [];
69
+ args.collect({ $delete: true });
70
+ for (let i = 0; i < value.length; i++) {
71
+ q.push(args.parse({
72
+ key: i,
73
+ value: args.value[i],
74
+ fieldSchema: args.fieldSchema.values,
75
+ }));
76
+ }
77
+ await Promise.all(q);
78
+ return;
79
+ }
80
+ let hasOperation = false;
81
+ for (const key in value) {
82
+ if (operations[key]) {
83
+ if (hasOperation) {
84
+ args.error(error_1.ParseError.multipleOperationsNotAllowed);
85
+ return;
86
+ }
87
+ await operations[key](args, value);
88
+ hasOperation = true;
89
+ }
90
+ else {
91
+ args.error(error_1.ParseError.fieldDoesNotExist);
92
+ }
93
+ }
94
+ };
95
+ exports.array = array;
96
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/set/fields/array.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { FieldParsers } from '../../walker';
2
+ import { BasedSetTarget } from '../../types';
3
+ export declare const fields: Partial<FieldParsers<BasedSetTarget>>;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fields = void 0;
4
+ const error_1 = require("../../error");
5
+ const array_1 = require("./array");
6
+ const object_1 = require("./object");
7
+ const number_1 = require("./number");
8
+ const string_1 = require("./string");
9
+ const references_1 = require("./references");
10
+ const set_1 = require("./set");
11
+ const hash_1 = require("@saulx/hash");
12
+ const utils_1 = require("@saulx/utils");
13
+ exports.fields = {
14
+ array: array_1.array,
15
+ object: object_1.object,
16
+ record: object_1.record,
17
+ number: number_1.number,
18
+ integer: number_1.integer,
19
+ timestamp: number_1.timestamp,
20
+ string: string_1.string,
21
+ set: set_1.set,
22
+ text: string_1.text,
23
+ reference: references_1.reference,
24
+ references: references_1.references,
25
+ cardinality: async (args) => {
26
+ let hashedValue;
27
+ if (args.value && typeof args.value === 'object') {
28
+ args.stop();
29
+ if (args.value.$default !== undefined) {
30
+ args.error(error_1.ParseError.defaultNotSupported);
31
+ return;
32
+ }
33
+ if (args.value.$value !== undefined) {
34
+ hashedValue = (0, hash_1.hashObjectIgnoreKeyOrder)(args.value.$value).toString(16);
35
+ }
36
+ else {
37
+ hashedValue = (0, hash_1.hashObjectIgnoreKeyOrder)(args.value).toString(16);
38
+ }
39
+ }
40
+ else {
41
+ hashedValue = (0, hash_1.hash)(args.value).toString(16);
42
+ }
43
+ args.collect(hashedValue);
44
+ },
45
+ boolean: async (args) => {
46
+ if (typeof args.value !== 'boolean') {
47
+ args.error(error_1.ParseError.incorrectFormat);
48
+ return;
49
+ }
50
+ args.collect();
51
+ },
52
+ json: async (args) => {
53
+ try {
54
+ const parsedValue = JSON.stringify(args.value);
55
+ args.collect(parsedValue);
56
+ }
57
+ catch (err) {
58
+ args.error(error_1.ParseError.invalidJSON);
59
+ }
60
+ },
61
+ enum: async (args) => {
62
+ const enumValues = args.fieldSchema.enum;
63
+ for (let i = 0; i < enumValues.length; i++) {
64
+ if ((0, utils_1.deepEqual)(enumValues[i], args.value)) {
65
+ args.collect(i);
66
+ return;
67
+ }
68
+ }
69
+ args.error(error_1.ParseError.incorrectFormat);
70
+ },
71
+ };
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/set/fields/index.ts"],"names":[],"mappings":";;;AACA,uCAAwC;AAExC,mCAA+B;AAC/B,qCAAyC;AACzC,qCAAqD;AACrD,qCAAuC;AACvC,6CAAoD;AACpD,+BAA2B;AAC3B,sCAA4D;AAC5D,wCAAwC;AAE3B,QAAA,MAAM,GAA0C;IAC3D,KAAK,EAAL,aAAK;IACL,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,OAAO,EAAP,gBAAO;IACP,SAAS,EAAT,kBAAS;IACT,MAAM,EAAN,eAAM;IACN,GAAG,EAAH,SAAG;IACH,IAAI,EAAJ,aAAI;IACJ,SAAS,EAAT,sBAAS;IACT,UAAU,EAAV,uBAAU;IACV,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,WAAmB,CAAA;QACvB,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChD,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,mBAAmB,CAAC,CAAA;gBAC1C,OAAM;aACP;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;gBACnC,WAAW,GAAG,IAAA,+BAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;aACvE;iBAAM;gBACL,WAAW,GAAG,IAAA,+BAAwB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;aAChE;SACF;aAAM;YACL,WAAW,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;SAC5C;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAA;YACtC,OAAM;SACP;QACD,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACnB,IAAI;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;SAC1B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,WAAW,CAAC,CAAA;SACnC;IACH,CAAC;IACD,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gBACxC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;gBACf,OAAM;aACP;SACF;QACD,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;CACF,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { FieldParser } from '../../walker';
2
+ export declare const number: FieldParser<'number'>;
3
+ export declare const integer: FieldParser<'integer'>;
4
+ export declare const timestamp: FieldParser<'timestamp'>;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.timestamp = exports.integer = exports.number = void 0;
4
+ const error_1 = require("../../error");
5
+ const validateNumber = (args, value, ignoreMinMax) => {
6
+ const { fieldSchema } = args;
7
+ if (typeof value !== 'number') {
8
+ args.error(error_1.ParseError.incorrectFormat);
9
+ return false;
10
+ }
11
+ if (fieldSchema.type === 'integer' && value - Math.floor(value) !== 0) {
12
+ args.error(error_1.ParseError.incorrectFormat);
13
+ return false;
14
+ }
15
+ if (fieldSchema.multipleOf &&
16
+ value / fieldSchema.multipleOf -
17
+ Math.floor(value / fieldSchema.multipleOf) !==
18
+ 0) {
19
+ args.error(error_1.ParseError.incorrectFormat);
20
+ return false;
21
+ }
22
+ if (ignoreMinMax) {
23
+ // TODO: maybe add async validator getting the actual value from the db OR checking the result of the $incr/$decr operation
24
+ return true;
25
+ }
26
+ if (fieldSchema.maximum) {
27
+ if (fieldSchema.exclusiveMaximum) {
28
+ if (value >= fieldSchema.maximum) {
29
+ args.error(error_1.ParseError.exceedsMaximum);
30
+ return false;
31
+ }
32
+ }
33
+ else if (value > fieldSchema.maximum) {
34
+ args.error(error_1.ParseError.exceedsMaximum);
35
+ return false;
36
+ }
37
+ }
38
+ if (fieldSchema.minimum) {
39
+ if (fieldSchema.exclusiveMinimum) {
40
+ if (value <= fieldSchema.minimum) {
41
+ args.error(error_1.ParseError.subceedsMinimum);
42
+ return false;
43
+ }
44
+ }
45
+ else if (value < fieldSchema.minimum) {
46
+ args.error(error_1.ParseError.subceedsMinimum);
47
+ return false;
48
+ }
49
+ }
50
+ return true;
51
+ };
52
+ const validate = (args, value) => {
53
+ if (value === null) {
54
+ return false;
55
+ }
56
+ if (typeof value !== 'object') {
57
+ return validateNumber(args, value);
58
+ }
59
+ if ('$value' in value) {
60
+ return;
61
+ }
62
+ args.stop();
63
+ for (const key in value) {
64
+ if (key === '$default') {
65
+ if (!validateNumber(args, value.$default)) {
66
+ return false;
67
+ }
68
+ }
69
+ else if (key === '$increment') {
70
+ if (!validateNumber(args, value.$increment, true)) {
71
+ return false;
72
+ }
73
+ }
74
+ else if (key === '$decrement') {
75
+ if (!validateNumber(args, value.$decrement, true)) {
76
+ return false;
77
+ }
78
+ }
79
+ else {
80
+ args.create({ key }).error(error_1.ParseError.fieldDoesNotExist);
81
+ return false;
82
+ }
83
+ }
84
+ return true;
85
+ };
86
+ const number = async (args) => {
87
+ if (!validate(args, args.value)) {
88
+ return;
89
+ }
90
+ args.collect();
91
+ };
92
+ exports.number = number;
93
+ const integer = async (args) => {
94
+ if (!validate(args, args.value)) {
95
+ return;
96
+ }
97
+ args.collect();
98
+ };
99
+ exports.integer = integer;
100
+ const timestamp = async (args) => {
101
+ if (typeof args.value === 'string') {
102
+ if (args.value === 'now') {
103
+ // TODO: + 1s + 10s etc
104
+ args.value = Date.now();
105
+ }
106
+ else {
107
+ const d = new Date(args.value);
108
+ args.value = d.valueOf();
109
+ if (isNaN(args.value)) {
110
+ args.error(error_1.ParseError.incorrectFormat);
111
+ return;
112
+ }
113
+ }
114
+ }
115
+ if (!validateNumber(args, args.value)) {
116
+ return;
117
+ }
118
+ args.collect();
119
+ };
120
+ exports.timestamp = timestamp;
121
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/set/fields/number.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { FieldParser } from '../../walker';
2
+ export declare const object: FieldParser<'object'>;
3
+ export declare const record: FieldParser<'record'>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.record = exports.object = void 0;
4
+ const error_1 = require("../../error");
5
+ const object = async (args) => {
6
+ if (typeof args.value !== 'object') {
7
+ args.error(error_1.ParseError.incorrectFormat);
8
+ return;
9
+ }
10
+ const isArray = Array.isArray(args.value);
11
+ if (isArray) {
12
+ args.error(error_1.ParseError.incorrectFormat);
13
+ return;
14
+ }
15
+ args.collect();
16
+ return args;
17
+ };
18
+ exports.object = object;
19
+ const record = async (args) => {
20
+ if (typeof args.value !== 'object') {
21
+ args.error(error_1.ParseError.incorrectFormat);
22
+ return;
23
+ }
24
+ const isArray = Array.isArray(args.value);
25
+ if (isArray) {
26
+ args.error(error_1.ParseError.incorrectFormat);
27
+ return;
28
+ }
29
+ args.collect();
30
+ return args;
31
+ };
32
+ exports.record = record;
33
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/set/fields/object.ts"],"names":[],"mappings":";;;AAAA,uCAAwC;AAGjC,MAAM,MAAM,GAA0B,KAAK,EAAE,IAAI,EAAE,EAAE;IAC1D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAA;QACtC,OAAM;KACP;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAA;QACtC,OAAM;KACP;IACD,IAAI,CAAC,OAAO,EAAE,CAAA;IACd,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAZY,QAAA,MAAM,UAYlB;AAEM,MAAM,MAAM,GAA0B,KAAK,EAAE,IAAI,EAAE,EAAE;IAC1D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAA;QACtC,OAAM;KACP;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,kBAAU,CAAC,eAAe,CAAC,CAAA;QACtC,OAAM;KACP;IACD,IAAI,CAAC,OAAO,EAAE,CAAA;IACd,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAZY,QAAA,MAAM,UAYlB"}
@@ -0,0 +1,3 @@
1
+ import { FieldParser } from '../../walker';
2
+ export declare const reference: FieldParser<'reference'>;
3
+ export declare const references: FieldParser<'references'>;