wapi-client 0.17.13 → 0.18.0-beta.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 (159) hide show
  1. package/dist/api/base-client.browser.cjs +41 -0
  2. package/dist/api/base-client.browser.js +41 -0
  3. package/dist/api/base-client.cjs +41 -0
  4. package/dist/api/base-client.js +41 -0
  5. package/dist/client.browser.cjs +15 -0
  6. package/dist/client.browser.js +15 -0
  7. package/dist/client.cjs +15 -0
  8. package/dist/client.js +15 -0
  9. package/dist/db/consts.browser.cjs +26 -2
  10. package/dist/db/consts.browser.js +26 -2
  11. package/dist/db/consts.cjs +29 -3
  12. package/dist/db/consts.js +26 -2
  13. package/dist/fns/create-deposit/create-deposit.schema.zod.browser.cjs +1 -1
  14. package/dist/fns/create-deposit/create-deposit.schema.zod.browser.js +1 -1
  15. package/dist/fns/create-deposit/create-deposit.schema.zod.cjs +1 -1
  16. package/dist/fns/create-deposit/create-deposit.schema.zod.js +1 -1
  17. package/dist/fns/create-index/create-index.browser.cjs +51 -0
  18. package/dist/fns/create-index/create-index.browser.js +32 -0
  19. package/dist/fns/create-index/create-index.cjs +55 -0
  20. package/dist/fns/create-index/create-index.enums.browser.cjs +18 -0
  21. package/dist/fns/create-index/create-index.enums.browser.js +0 -0
  22. package/dist/fns/create-index/create-index.enums.cjs +18 -0
  23. package/dist/fns/create-index/create-index.enums.js +0 -0
  24. package/dist/fns/create-index/create-index.js +32 -0
  25. package/dist/fns/create-index/create-index.schema.zod.browser.cjs +41 -0
  26. package/dist/fns/create-index/create-index.schema.zod.browser.js +24 -0
  27. package/dist/fns/create-index/create-index.schema.zod.cjs +49 -0
  28. package/dist/fns/create-index/create-index.schema.zod.js +24 -0
  29. package/dist/fns/create-transfer/create-transfer.schema.zod.browser.cjs +1 -1
  30. package/dist/fns/create-transfer/create-transfer.schema.zod.browser.js +1 -1
  31. package/dist/fns/create-transfer/create-transfer.schema.zod.cjs +1 -1
  32. package/dist/fns/create-transfer/create-transfer.schema.zod.js +1 -1
  33. package/dist/fns/create-withdrawal/create-withdrawal.schema.zod.browser.cjs +1 -1
  34. package/dist/fns/create-withdrawal/create-withdrawal.schema.zod.browser.js +1 -1
  35. package/dist/fns/create-withdrawal/create-withdrawal.schema.zod.cjs +1 -1
  36. package/dist/fns/create-withdrawal/create-withdrawal.schema.zod.js +1 -1
  37. package/dist/fns/drop-index/drop-index.browser.cjs +51 -0
  38. package/dist/fns/drop-index/drop-index.browser.js +32 -0
  39. package/dist/fns/drop-index/drop-index.cjs +55 -0
  40. package/dist/fns/drop-index/drop-index.enums.browser.cjs +18 -0
  41. package/dist/fns/drop-index/drop-index.enums.browser.js +0 -0
  42. package/dist/fns/drop-index/drop-index.enums.cjs +18 -0
  43. package/dist/fns/drop-index/drop-index.enums.js +0 -0
  44. package/dist/fns/drop-index/drop-index.js +32 -0
  45. package/dist/fns/drop-index/drop-index.schema.zod.browser.cjs +41 -0
  46. package/dist/fns/drop-index/drop-index.schema.zod.browser.js +24 -0
  47. package/dist/fns/drop-index/drop-index.schema.zod.cjs +49 -0
  48. package/dist/fns/drop-index/drop-index.schema.zod.js +24 -0
  49. package/dist/fns/find-balances/find-balances.browser.cjs +13 -1
  50. package/dist/fns/find-balances/find-balances.browser.js +13 -1
  51. package/dist/fns/find-balances/find-balances.cjs +13 -1
  52. package/dist/fns/find-balances/find-balances.js +13 -1
  53. package/dist/fns/find-indexes/find-indexes.browser.cjs +51 -0
  54. package/dist/fns/find-indexes/find-indexes.browser.js +32 -0
  55. package/dist/fns/find-indexes/find-indexes.cjs +55 -0
  56. package/dist/fns/find-indexes/find-indexes.enums.browser.cjs +18 -0
  57. package/dist/fns/find-indexes/find-indexes.enums.browser.js +0 -0
  58. package/dist/fns/find-indexes/find-indexes.enums.cjs +18 -0
  59. package/dist/fns/find-indexes/find-indexes.enums.js +0 -0
  60. package/dist/fns/find-indexes/find-indexes.js +32 -0
  61. package/dist/fns/find-indexes/find-indexes.schema.zod.browser.cjs +41 -0
  62. package/dist/fns/find-indexes/find-indexes.schema.zod.browser.js +24 -0
  63. package/dist/fns/find-indexes/find-indexes.schema.zod.cjs +49 -0
  64. package/dist/fns/find-indexes/find-indexes.schema.zod.js +24 -0
  65. package/dist/fns/find-transfers/find-transfers.browser.cjs +4 -1
  66. package/dist/fns/find-transfers/find-transfers.browser.js +4 -1
  67. package/dist/fns/find-transfers/find-transfers.cjs +4 -1
  68. package/dist/fns/find-transfers/find-transfers.js +4 -1
  69. package/dist/fns/fn-types.browser.cjs +3 -0
  70. package/dist/fns/fn-types.browser.js +3 -0
  71. package/dist/fns/fn-types.cjs +6 -0
  72. package/dist/fns/fn-types.js +3 -0
  73. package/dist/fns/get-balance/get-balance.schema.zod.browser.cjs +1 -1
  74. package/dist/fns/get-balance/get-balance.schema.zod.browser.js +1 -1
  75. package/dist/fns/get-balance/get-balance.schema.zod.cjs +1 -1
  76. package/dist/fns/get-balance/get-balance.schema.zod.js +1 -1
  77. package/dist/lib/env.browser.cjs +1 -1
  78. package/dist/lib/env.browser.js +1 -1
  79. package/dist/lib/env.cjs +1 -1
  80. package/dist/lib/env.js +1 -1
  81. package/dist/lib/query-builder/aggregate-query-builder.browser.cjs +0 -193
  82. package/dist/lib/query-builder/aggregate-query-builder.browser.js +1 -196
  83. package/dist/lib/query-builder/aggregate-query-builder.cjs +0 -193
  84. package/dist/lib/query-builder/aggregate-query-builder.js +1 -196
  85. package/dist/lib/query-builder/find-query-builder.browser.cjs +0 -193
  86. package/dist/lib/query-builder/find-query-builder.browser.js +1 -196
  87. package/dist/lib/query-builder/find-query-builder.cjs +0 -193
  88. package/dist/lib/query-builder/find-query-builder.js +1 -196
  89. package/dist/lib/query-builder/query-builder.browser.cjs +75 -80
  90. package/dist/lib/query-builder/query-builder.browser.js +75 -80
  91. package/dist/lib/query-builder/query-builder.cjs +75 -80
  92. package/dist/lib/query-builder/query-builder.js +75 -80
  93. package/dist/lib/query-builder/reverse-query-builder.browser.cjs +0 -193
  94. package/dist/lib/query-builder/reverse-query-builder.browser.js +0 -193
  95. package/dist/lib/query-builder/reverse-query-builder.cjs +0 -193
  96. package/dist/lib/query-builder/reverse-query-builder.js +0 -193
  97. package/dist/lib/query-builder/update-query-builder.browser.cjs +0 -193
  98. package/dist/lib/query-builder/update-query-builder.browser.js +0 -193
  99. package/dist/lib/query-builder/update-query-builder.cjs +0 -193
  100. package/dist/lib/query-builder/update-query-builder.js +0 -193
  101. package/dist/lib/validator.browser.cjs +18 -0
  102. package/dist/lib/validator.browser.js +36 -0
  103. package/dist/lib/validator.cjs +18 -0
  104. package/dist/lib/validator.js +36 -0
  105. package/dist/txs/consts.browser.cjs +3 -0
  106. package/dist/txs/consts.browser.js +3 -0
  107. package/dist/txs/consts.cjs +3 -0
  108. package/dist/txs/consts.js +3 -0
  109. package/dist/txs/create-access-token/create-access-token.schema.zod.browser.cjs +3 -0
  110. package/dist/txs/create-access-token/create-access-token.schema.zod.browser.js +3 -0
  111. package/dist/txs/create-access-token/create-access-token.schema.zod.cjs +3 -0
  112. package/dist/txs/create-access-token/create-access-token.schema.zod.js +3 -0
  113. package/dist/txs/create-index/create-index.enums.browser.cjs +18 -0
  114. package/dist/txs/create-index/create-index.enums.browser.js +0 -0
  115. package/dist/txs/create-index/create-index.enums.cjs +18 -0
  116. package/dist/txs/create-index/create-index.enums.js +0 -0
  117. package/dist/txs/create-index/create-index.schema.zod.browser.cjs +53 -0
  118. package/dist/txs/create-index/create-index.schema.zod.browser.js +32 -0
  119. package/dist/txs/create-index/create-index.schema.zod.cjs +61 -0
  120. package/dist/txs/create-index/create-index.schema.zod.js +32 -0
  121. package/dist/txs/drop-index/drop-index.enums.browser.cjs +18 -0
  122. package/dist/txs/drop-index/drop-index.enums.browser.js +0 -0
  123. package/dist/txs/drop-index/drop-index.enums.cjs +18 -0
  124. package/dist/txs/drop-index/drop-index.enums.js +0 -0
  125. package/dist/txs/drop-index/drop-index.schema.zod.browser.cjs +46 -0
  126. package/dist/txs/drop-index/drop-index.schema.zod.browser.js +28 -0
  127. package/dist/txs/drop-index/drop-index.schema.zod.cjs +53 -0
  128. package/dist/txs/drop-index/drop-index.schema.zod.js +28 -0
  129. package/dist/txs/find-balance-many/find-balance-many.schema.zod.browser.cjs +16 -1
  130. package/dist/txs/find-balance-many/find-balance-many.schema.zod.browser.js +22 -2
  131. package/dist/txs/find-balance-many/find-balance-many.schema.zod.cjs +16 -1
  132. package/dist/txs/find-balance-many/find-balance-many.schema.zod.js +22 -2
  133. package/dist/txs/find-index-many/find-index-many.enums.browser.cjs +18 -0
  134. package/dist/txs/find-index-many/find-index-many.enums.browser.js +0 -0
  135. package/dist/txs/find-index-many/find-index-many.enums.cjs +18 -0
  136. package/dist/txs/find-index-many/find-index-many.enums.js +0 -0
  137. package/dist/txs/find-index-many/find-index-many.schema.zod.browser.cjs +66 -0
  138. package/dist/txs/find-index-many/find-index-many.schema.zod.browser.js +48 -0
  139. package/dist/txs/find-index-many/find-index-many.schema.zod.cjs +74 -0
  140. package/dist/txs/find-index-many/find-index-many.schema.zod.js +48 -0
  141. package/dist/txs/find-transfer-many/find-transfer-many.schema.zod.browser.cjs +76 -3
  142. package/dist/txs/find-transfer-many/find-transfer-many.schema.zod.browser.js +90 -4
  143. package/dist/txs/find-transfer-many/find-transfer-many.schema.zod.cjs +76 -3
  144. package/dist/txs/find-transfer-many/find-transfer-many.schema.zod.js +90 -4
  145. package/dist/txs/get-transfer-group/get-transfer-group.schema.zod.browser.cjs +1 -1
  146. package/dist/txs/get-transfer-group/get-transfer-group.schema.zod.browser.js +1 -1
  147. package/dist/txs/get-transfer-group/get-transfer-group.schema.zod.cjs +1 -1
  148. package/dist/txs/get-transfer-group/get-transfer-group.schema.zod.js +1 -1
  149. package/dist/txs/tx-types.browser.cjs +3 -0
  150. package/dist/txs/tx-types.browser.js +3 -0
  151. package/dist/txs/tx-types.cjs +6 -0
  152. package/dist/txs/tx-types.js +3 -0
  153. package/dist/types/wapi-client.d.ts +17547 -2165
  154. package/dist/wapi-client.iife.js +7 -7
  155. package/package.json +1 -1
  156. package/dist/txs/index.browser.cjs +0 -193
  157. package/dist/txs/index.browser.js +0 -172
  158. package/dist/txs/index.cjs +0 -198
  159. package/dist/txs/index.js +0 -172
@@ -26,6 +26,10 @@ __export(query_builder_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(query_builder_exports);
28
28
  var import_index = require("./index.cjs");
29
+ var import_consts = require("../../db/consts.cjs");
30
+ function isForeignValue(value) {
31
+ return "foreign" in value && Object.keys(value).length === 1;
32
+ }
29
33
  function getWhereObject({
30
34
  function: fn,
31
35
  field,
@@ -33,35 +37,28 @@ function getWhereObject({
33
37
  value
34
38
  }) {
35
39
  if (Array.isArray(value)) {
36
- return {
37
- function: fn,
38
- inner: value
39
- };
40
- }
41
- if (typeof value === "object" && operator && field && "foreign" in value && Object.keys(value).length === 1) {
42
- return {
43
- function: fn,
44
- operator,
45
- field,
46
- value: value.foreign
47
- };
40
+ return { function: fn, inner: value };
48
41
  }
49
42
  if (typeof value === "object") {
50
- return {
51
- function: fn,
52
- value
53
- };
43
+ if (operator && field && isForeignValue(value)) {
44
+ return { function: fn, operator, field, value: value.foreign };
45
+ }
46
+ return { function: fn, value };
54
47
  }
55
- operator != null ? operator : operator = "=";
56
48
  if (!field) {
57
49
  throw new TypeError("FIELD_IS_REQUIRED");
58
50
  }
59
- return {
60
- function: fn,
61
- field,
62
- operator,
63
- value
64
- };
51
+ return { function: fn, field, operator: operator != null ? operator : "=", value };
52
+ }
53
+ function normalizeOperatorValue(operator, value) {
54
+ if (value === void 0) {
55
+ value = operator;
56
+ operator = "=";
57
+ }
58
+ if (value === void 0) {
59
+ throw new TypeError("Invalid comparison value: undefined not allowed");
60
+ }
61
+ return { operator: operator != null ? operator : "=", value };
65
62
  }
66
63
  var QueryBuilder = class _QueryBuilder {
67
64
  constructor($schemaBasic, $schema, $queries = []) {
@@ -98,32 +95,42 @@ var QueryBuilder = class _QueryBuilder {
98
95
  this.$schemaBasic,
99
96
  this.$schema
100
97
  );
101
- const res = field(inner);
102
- if (res === false) {
98
+ if (field(inner) === false) {
103
99
  return this;
104
100
  }
105
- if (!inner || !(inner instanceof _QueryBuilder)) {
106
- throw new TypeError("Inner Builder must return QueryBuilderInner");
107
- }
108
- return this.add(
109
- getWhereObject({
110
- function: fn,
111
- value: inner.toQuery()
112
- })
113
- );
101
+ return this.add(getWhereObject({ function: fn, value: inner.toQuery() }));
114
102
  }
115
103
  if (typeof field === "object") {
116
104
  const validObject = (0, import_index.validateQueryBuilderSchema)(this.$schemaBasic, field);
117
- return this.add(
118
- getWhereObject({
119
- function: fn,
120
- value: validObject
121
- })
122
- );
105
+ return this.add(getWhereObject({ function: fn, value: validObject }));
123
106
  }
124
107
  if (typeof field !== "string") {
125
108
  throw new TypeError("Field is required");
126
109
  }
110
+ if ((0, import_consts.isMetadataDotFilterField)(field)) {
111
+ return this.add(this.buildMetadataFilter(fn, field, operator, value));
112
+ }
113
+ return this.add(this.buildFieldFilter(fn, field, operator, value));
114
+ }
115
+ /**
116
+ * Build a comparison against a `metadata.x` dot-path field. The two-argument
117
+ * form (`.where('metadata.x', value)`) carries the value in the operator slot.
118
+ */
119
+ buildMetadataFilter(fn, field, operator, value) {
120
+ const normalized = normalizeOperatorValue(operator, value);
121
+ return {
122
+ function: fn,
123
+ field,
124
+ operator: normalized.operator,
125
+ value: normalized.value
126
+ };
127
+ }
128
+ /**
129
+ * Build a comparison against a schema field. The two-argument form
130
+ * (`.where('token', 'EUR')`) carries the value in the operator slot with an
131
+ * implied equals; the three-argument form supplies a real operator.
132
+ */
133
+ buildFieldFilter(fn, field, operator, value) {
127
134
  const fieldShape = this.$schemaBasic.shape[field] || this.$schema.shape[field];
128
135
  if (!fieldShape) {
129
136
  throw new TypeError("Invalid field:" + field);
@@ -131,41 +138,30 @@ var QueryBuilder = class _QueryBuilder {
131
138
  if (operator === void 0) {
132
139
  throw new TypeError("Operator is required");
133
140
  }
134
- if (typeof operator !== "string" || !(operator in import_index.DbFilterOperatorAllEnum) || value === void 0) {
135
- operator = (0, import_index.validateQueryBuilderSchema)(fieldShape, operator);
136
- if (operator === void 0) {
141
+ const operatorSlotHoldsValue = typeof operator !== "string" || !(operator in import_index.DbFilterOperatorAllEnum) || value === void 0;
142
+ if (operatorSlotHoldsValue) {
143
+ const validated = (0, import_index.validateQueryBuilderSchema)(fieldShape, operator);
144
+ if (validated === void 0) {
137
145
  throw new TypeError("unexpectedly value needed");
138
146
  }
139
- if (typeof operator === "object") {
140
- return this.add(
141
- getWhereObject({
142
- function: fn,
143
- value: {
144
- [field]: operator
145
- }
146
- })
147
- );
148
- }
149
- return this.add(
150
- getWhereObject({
147
+ if (typeof validated === "object") {
148
+ return getWhereObject({
151
149
  function: fn,
152
- field,
153
- value: operator
154
- })
155
- );
150
+ value: { [field]: validated }
151
+ });
152
+ }
153
+ return getWhereObject({ function: fn, field, value: validated });
156
154
  }
157
- value = (0, import_index.validateQueryBuilderSchema)(fieldShape, value);
158
- if (value === void 0) {
155
+ const validatedValue = (0, import_index.validateQueryBuilderSchema)(fieldShape, value);
156
+ if (validatedValue === void 0) {
159
157
  throw new Error("undefined value");
160
158
  }
161
- return this.add(
162
- getWhereObject({
163
- function: fn,
164
- field,
165
- operator,
166
- value
167
- })
168
- );
159
+ return getWhereObject({
160
+ function: fn,
161
+ field,
162
+ operator,
163
+ value: validatedValue
164
+ });
169
165
  }
170
166
  addIn({
171
167
  fn,
@@ -175,7 +171,7 @@ var QueryBuilder = class _QueryBuilder {
175
171
  if (!field) {
176
172
  throw new TypeError("Field is required");
177
173
  }
178
- if (!(field in this.$schema.shape)) {
174
+ if (!(field in this.$schema.shape) && !(0, import_consts.isMetadataDotFilterField)(field)) {
179
175
  throw new TypeError("Invalid field");
180
176
  }
181
177
  if (!value) {
@@ -212,12 +208,14 @@ var QueryBuilder = class _QueryBuilder {
212
208
  if (!field) {
213
209
  throw new TypeError("Field is required");
214
210
  }
215
- if (!(field in this.$schema.shape)) {
211
+ if (!(field in this.$schema.shape) && !(0, import_consts.isMetadataDotFilterField)(field)) {
216
212
  throw new TypeError("Invalid field");
217
213
  }
218
- this.$schema.parse({
219
- [field]: null
220
- });
214
+ if (!(0, import_consts.isMetadataDotFilterField)(field)) {
215
+ this.$schema.parse({
216
+ [field]: null
217
+ });
218
+ }
221
219
  return this.add({
222
220
  function: fn,
223
221
  field
@@ -232,15 +230,12 @@ var QueryBuilder = class _QueryBuilder {
232
230
  if (typeof field !== "string") {
233
231
  throw new TypeError("expected field to be string");
234
232
  }
235
- if (!value) {
236
- value = operator;
237
- operator = "=";
238
- }
233
+ const normalized = normalizeOperatorValue(operator, value);
239
234
  return this.add({
240
235
  function: fn,
241
236
  field,
242
- operator,
243
- value
237
+ operator: normalized.operator,
238
+ value: normalized.value
244
239
  });
245
240
  }
246
241
  addMetadataIn({
@@ -7,6 +7,10 @@ import {
7
7
  DbFilterOperatorAllEnum,
8
8
  validateQueryBuilderSchema
9
9
  } from "./index.js";
10
+ import { isMetadataDotFilterField } from "../../db/consts.js";
11
+ function isForeignValue(value) {
12
+ return "foreign" in value && Object.keys(value).length === 1;
13
+ }
10
14
  function getWhereObject({
11
15
  function: fn,
12
16
  field,
@@ -14,35 +18,28 @@ function getWhereObject({
14
18
  value
15
19
  }) {
16
20
  if (Array.isArray(value)) {
17
- return {
18
- function: fn,
19
- inner: value
20
- };
21
- }
22
- if (typeof value === "object" && operator && field && "foreign" in value && Object.keys(value).length === 1) {
23
- return {
24
- function: fn,
25
- operator,
26
- field,
27
- value: value.foreign
28
- };
21
+ return { function: fn, inner: value };
29
22
  }
30
23
  if (typeof value === "object") {
31
- return {
32
- function: fn,
33
- value
34
- };
24
+ if (operator && field && isForeignValue(value)) {
25
+ return { function: fn, operator, field, value: value.foreign };
26
+ }
27
+ return { function: fn, value };
35
28
  }
36
- operator != null ? operator : operator = "=";
37
29
  if (!field) {
38
30
  throw new TypeError("FIELD_IS_REQUIRED");
39
31
  }
40
- return {
41
- function: fn,
42
- field,
43
- operator,
44
- value
45
- };
32
+ return { function: fn, field, operator: operator != null ? operator : "=", value };
33
+ }
34
+ function normalizeOperatorValue(operator, value) {
35
+ if (value === void 0) {
36
+ value = operator;
37
+ operator = "=";
38
+ }
39
+ if (value === void 0) {
40
+ throw new TypeError("Invalid comparison value: undefined not allowed");
41
+ }
42
+ return { operator: operator != null ? operator : "=", value };
46
43
  }
47
44
  var QueryBuilder = class _QueryBuilder {
48
45
  constructor($schemaBasic, $schema, $queries = []) {
@@ -79,32 +76,42 @@ var QueryBuilder = class _QueryBuilder {
79
76
  this.$schemaBasic,
80
77
  this.$schema
81
78
  );
82
- const res = field(inner);
83
- if (res === false) {
79
+ if (field(inner) === false) {
84
80
  return this;
85
81
  }
86
- if (!inner || !(inner instanceof _QueryBuilder)) {
87
- throw new TypeError("Inner Builder must return QueryBuilderInner");
88
- }
89
- return this.add(
90
- getWhereObject({
91
- function: fn,
92
- value: inner.toQuery()
93
- })
94
- );
82
+ return this.add(getWhereObject({ function: fn, value: inner.toQuery() }));
95
83
  }
96
84
  if (typeof field === "object") {
97
85
  const validObject = validateQueryBuilderSchema(this.$schemaBasic, field);
98
- return this.add(
99
- getWhereObject({
100
- function: fn,
101
- value: validObject
102
- })
103
- );
86
+ return this.add(getWhereObject({ function: fn, value: validObject }));
104
87
  }
105
88
  if (typeof field !== "string") {
106
89
  throw new TypeError("Field is required");
107
90
  }
91
+ if (isMetadataDotFilterField(field)) {
92
+ return this.add(this.buildMetadataFilter(fn, field, operator, value));
93
+ }
94
+ return this.add(this.buildFieldFilter(fn, field, operator, value));
95
+ }
96
+ /**
97
+ * Build a comparison against a `metadata.x` dot-path field. The two-argument
98
+ * form (`.where('metadata.x', value)`) carries the value in the operator slot.
99
+ */
100
+ buildMetadataFilter(fn, field, operator, value) {
101
+ const normalized = normalizeOperatorValue(operator, value);
102
+ return {
103
+ function: fn,
104
+ field,
105
+ operator: normalized.operator,
106
+ value: normalized.value
107
+ };
108
+ }
109
+ /**
110
+ * Build a comparison against a schema field. The two-argument form
111
+ * (`.where('token', 'EUR')`) carries the value in the operator slot with an
112
+ * implied equals; the three-argument form supplies a real operator.
113
+ */
114
+ buildFieldFilter(fn, field, operator, value) {
108
115
  const fieldShape = this.$schemaBasic.shape[field] || this.$schema.shape[field];
109
116
  if (!fieldShape) {
110
117
  throw new TypeError("Invalid field:" + field);
@@ -112,41 +119,30 @@ var QueryBuilder = class _QueryBuilder {
112
119
  if (operator === void 0) {
113
120
  throw new TypeError("Operator is required");
114
121
  }
115
- if (typeof operator !== "string" || !(operator in DbFilterOperatorAllEnum) || value === void 0) {
116
- operator = validateQueryBuilderSchema(fieldShape, operator);
117
- if (operator === void 0) {
122
+ const operatorSlotHoldsValue = typeof operator !== "string" || !(operator in DbFilterOperatorAllEnum) || value === void 0;
123
+ if (operatorSlotHoldsValue) {
124
+ const validated = validateQueryBuilderSchema(fieldShape, operator);
125
+ if (validated === void 0) {
118
126
  throw new TypeError("unexpectedly value needed");
119
127
  }
120
- if (typeof operator === "object") {
121
- return this.add(
122
- getWhereObject({
123
- function: fn,
124
- value: {
125
- [field]: operator
126
- }
127
- })
128
- );
129
- }
130
- return this.add(
131
- getWhereObject({
128
+ if (typeof validated === "object") {
129
+ return getWhereObject({
132
130
  function: fn,
133
- field,
134
- value: operator
135
- })
136
- );
131
+ value: { [field]: validated }
132
+ });
133
+ }
134
+ return getWhereObject({ function: fn, field, value: validated });
137
135
  }
138
- value = validateQueryBuilderSchema(fieldShape, value);
139
- if (value === void 0) {
136
+ const validatedValue = validateQueryBuilderSchema(fieldShape, value);
137
+ if (validatedValue === void 0) {
140
138
  throw new Error("undefined value");
141
139
  }
142
- return this.add(
143
- getWhereObject({
144
- function: fn,
145
- field,
146
- operator,
147
- value
148
- })
149
- );
140
+ return getWhereObject({
141
+ function: fn,
142
+ field,
143
+ operator,
144
+ value: validatedValue
145
+ });
150
146
  }
151
147
  addIn({
152
148
  fn,
@@ -156,7 +152,7 @@ var QueryBuilder = class _QueryBuilder {
156
152
  if (!field) {
157
153
  throw new TypeError("Field is required");
158
154
  }
159
- if (!(field in this.$schema.shape)) {
155
+ if (!(field in this.$schema.shape) && !isMetadataDotFilterField(field)) {
160
156
  throw new TypeError("Invalid field");
161
157
  }
162
158
  if (!value) {
@@ -193,12 +189,14 @@ var QueryBuilder = class _QueryBuilder {
193
189
  if (!field) {
194
190
  throw new TypeError("Field is required");
195
191
  }
196
- if (!(field in this.$schema.shape)) {
192
+ if (!(field in this.$schema.shape) && !isMetadataDotFilterField(field)) {
197
193
  throw new TypeError("Invalid field");
198
194
  }
199
- this.$schema.parse({
200
- [field]: null
201
- });
195
+ if (!isMetadataDotFilterField(field)) {
196
+ this.$schema.parse({
197
+ [field]: null
198
+ });
199
+ }
202
200
  return this.add({
203
201
  function: fn,
204
202
  field
@@ -213,15 +211,12 @@ var QueryBuilder = class _QueryBuilder {
213
211
  if (typeof field !== "string") {
214
212
  throw new TypeError("expected field to be string");
215
213
  }
216
- if (!value) {
217
- value = operator;
218
- operator = "=";
219
- }
214
+ const normalized = normalizeOperatorValue(operator, value);
220
215
  return this.add({
221
216
  function: fn,
222
217
  field,
223
- operator,
224
- value
218
+ operator: normalized.operator,
219
+ value: normalized.value
225
220
  });
226
221
  }
227
222
  addMetadataIn({
@@ -126,197 +126,4 @@ var ReverseQueryBuilder = class _ReverseQueryBuilder extends import_query_builde
126
126
  reverse: __spreadValues(__spreadValues({}, (_a = this.$reverse) != null ? _a : {}), valid)
127
127
  });
128
128
  }
129
- where(field, operator, value) {
130
- return this.addWhere({
131
- fn: "where",
132
- field,
133
- operator,
134
- value
135
- });
136
- }
137
- orWhere(field, operator, value) {
138
- return this.addWhere({
139
- fn: "orWhere",
140
- field,
141
- operator,
142
- value
143
- });
144
- }
145
- /**
146
- * ```javascript
147
- * Add an IN filter
148
- *
149
- * .whereIn('token', ['EUR', 'USD'])
150
- * ```
151
- */
152
- whereIn(field, value) {
153
- return this.addIn({
154
- fn: "whereIn",
155
- field,
156
- value
157
- });
158
- }
159
- /**
160
- * ```javascript
161
- * Add an OR IN filter
162
- *
163
- * .orWhereIn('token', ['EUR', 'USD'])
164
- * ```
165
- */
166
- orWhereIn(field, value) {
167
- return this.addIn({
168
- fn: "orWhereIn",
169
- field,
170
- value
171
- });
172
- }
173
- /**
174
- * ```javascript
175
- * Add an IS NULL filter
176
- *
177
- * .whereNull('status_finalized_at')
178
- * ```
179
- */
180
- whereNull(field) {
181
- return this.addNull({
182
- fn: "whereNull",
183
- field
184
- });
185
- }
186
- /**
187
- * ```javascript
188
- * Add an OR IS NULL filter
189
- *
190
- * .orWhereNull('status_finalized_at')
191
- * ```
192
- */
193
- orWhereNull(field) {
194
- return this.addNull({
195
- fn: "orWhereNull",
196
- field
197
- });
198
- }
199
- /**
200
- * ```javascript
201
- * Add an NOT NULL filter
202
- *
203
- * .whereNotNull('status_finalized_at')
204
- * ```
205
- */
206
- whereNotNull(field) {
207
- return this.addNull({
208
- fn: "whereNotNull",
209
- field
210
- });
211
- }
212
- /**
213
- * ```javascript
214
- * Add an OR NOT NULL filter
215
- *
216
- * .orWhereNotNull('status_finalized_at')
217
- * ```
218
- */
219
- orWhereNotNull(field) {
220
- return this.addNull({
221
- fn: "orWhereNotNull",
222
- field
223
- });
224
- }
225
- whereMetadata(field, operator, value) {
226
- return this.addMetadata({
227
- fn: "whereMetadata",
228
- field,
229
- operator,
230
- value
231
- });
232
- }
233
- orWhereMetadata(field, operator, value) {
234
- return this.addMetadata({
235
- fn: "orWhereMetadata",
236
- field,
237
- operator,
238
- value
239
- });
240
- }
241
- /**
242
- * ```javascript
243
- * Add an IN filter for metadata field
244
- *
245
- * .whereMetadataIn('myCustomField', [9, 10])
246
- * ```
247
- */
248
- whereMetadataIn(field, value) {
249
- return this.addMetadataIn({
250
- fn: "whereMetadataIn",
251
- field,
252
- value
253
- });
254
- }
255
- /**
256
- * ```javascript
257
- * Add an OR IN filter for metadata field
258
- *
259
- * .orWhereMetadataIn('myCustomField', [9, 10])
260
- * ```
261
- */
262
- orWhereMetadataIn(field, value) {
263
- return this.addMetadataIn({
264
- fn: "orWhereMetadataIn",
265
- field,
266
- value
267
- });
268
- }
269
- /**
270
- * ```javascript
271
- * Add an IS NULL filter for metadata field
272
- *
273
- * .whereMetadataNull('myCustomField')
274
- * ```
275
- */
276
- whereMetadataNull(field) {
277
- return this.addMetadataNull({
278
- fn: "whereMetadataNull",
279
- field
280
- });
281
- }
282
- /**
283
- * ```javascript
284
- * Add an OR IS NULL filter for metadata field
285
- *
286
- * .orWhereMetadataNull('myCustomField')
287
- * ```
288
- */
289
- orWhereMetadataNull(field) {
290
- return this.addMetadataNull({
291
- fn: "orWhereMetadataNull",
292
- field
293
- });
294
- }
295
- /**
296
- * ```javascript
297
- * Add an NOT NULL filter for metadata field
298
- *
299
- * .whereMetadataNotNull('myCustomField')
300
- * ```
301
- */
302
- whereMetadataNotNull(field) {
303
- return this.addMetadataNull({
304
- fn: "whereMetadataNotNull",
305
- field
306
- });
307
- }
308
- /**
309
- * ```javascript
310
- * Add an OR NOT NULL filter for metadata field
311
- *
312
- * .orWhereMetadataNotNull('myCustomField')
313
- * ```
314
- */
315
- orWhereMetadataNotNull(field) {
316
- return this.addMetadataNull({
317
- fn: "orWhereMetadataNotNull",
318
- field
319
- });
320
- }
321
- // FILTERING FUNCTIONS
322
129
  };