@molopos/shared 2.0.21 → 2.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/enum/index.d.ts +24 -0
- package/enum/index.js +27 -1
- package/package.json +1 -1
- package/lib/filter/index.d.ts +0 -59
- package/lib/filter/index.js +0 -122
package/enum/index.d.ts
CHANGED
|
@@ -174,3 +174,27 @@ export declare enum UserStatusEnum {
|
|
|
174
174
|
Admin = "ADMIN",
|
|
175
175
|
Demo = "DEMO"
|
|
176
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Pricing type status enum
|
|
179
|
+
*/
|
|
180
|
+
export declare enum PricingTypeEnum {
|
|
181
|
+
Free = "free",
|
|
182
|
+
Custom = "enterprise-stripe",
|
|
183
|
+
BasicMonthStripe = "basic-month-stripe",
|
|
184
|
+
BasicYearStripe = "basic-year-stripe",
|
|
185
|
+
ProMonthStripe = "pro-month-stripe",
|
|
186
|
+
ProYearStripe = "pro-year-stripe",
|
|
187
|
+
BusinessMonthStripe = "business-month-stripe",
|
|
188
|
+
BusinessYearStripe = "business-year-stripe",
|
|
189
|
+
PremiumMonthStripe = "premium-month-stripe",
|
|
190
|
+
PremiumYearStripe = "premium-year-stripe"
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Quote status enum
|
|
194
|
+
*/
|
|
195
|
+
export declare enum QuoteStatusEnum {
|
|
196
|
+
Signed = "SIGNED",
|
|
197
|
+
Pending = "PENDING",
|
|
198
|
+
Confirmed = "CONFIRMED",
|
|
199
|
+
Cancelled = "CANCELLED"
|
|
200
|
+
}
|
package/enum/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UserStatusEnum = exports.ApplicationSectionModuleEnum = exports.PagesProviderEnum = exports.PrivatePublicEnum = exports.StatusQuoteItemEnum = exports.ContributorRoleEnum = exports.QuoteSignedViewEnum = exports.CurrencyEnum = exports.ExportExtEnum = exports.SortOrderEnum = exports.BooleanStringEnum = exports.TransactionModelEnum = exports.TransactionDirectionEnum = exports.QueryTypeEnum = exports.ProductTypeEnum = exports.PaymentMethodEnum = exports.DiscountTypeEnum = exports.CustomerTypeEnum = void 0;
|
|
3
|
+
exports.QuoteStatusEnum = exports.PricingTypeEnum = exports.UserStatusEnum = exports.ApplicationSectionModuleEnum = exports.PagesProviderEnum = exports.PrivatePublicEnum = exports.StatusQuoteItemEnum = exports.ContributorRoleEnum = exports.QuoteSignedViewEnum = exports.CurrencyEnum = exports.ExportExtEnum = exports.SortOrderEnum = exports.BooleanStringEnum = exports.TransactionModelEnum = exports.TransactionDirectionEnum = exports.QueryTypeEnum = exports.ProductTypeEnum = exports.PaymentMethodEnum = exports.DiscountTypeEnum = exports.CustomerTypeEnum = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Customer type enum
|
|
6
6
|
*/
|
|
@@ -195,3 +195,29 @@ var UserStatusEnum;
|
|
|
195
195
|
UserStatusEnum["Admin"] = "ADMIN";
|
|
196
196
|
UserStatusEnum["Demo"] = "DEMO";
|
|
197
197
|
})(UserStatusEnum || (exports.UserStatusEnum = UserStatusEnum = {}));
|
|
198
|
+
/**
|
|
199
|
+
* Pricing type status enum
|
|
200
|
+
*/
|
|
201
|
+
var PricingTypeEnum;
|
|
202
|
+
(function (PricingTypeEnum) {
|
|
203
|
+
PricingTypeEnum["Free"] = "free";
|
|
204
|
+
PricingTypeEnum["Custom"] = "enterprise-stripe";
|
|
205
|
+
PricingTypeEnum["BasicMonthStripe"] = "basic-month-stripe";
|
|
206
|
+
PricingTypeEnum["BasicYearStripe"] = "basic-year-stripe";
|
|
207
|
+
PricingTypeEnum["ProMonthStripe"] = "pro-month-stripe";
|
|
208
|
+
PricingTypeEnum["ProYearStripe"] = "pro-year-stripe";
|
|
209
|
+
PricingTypeEnum["BusinessMonthStripe"] = "business-month-stripe";
|
|
210
|
+
PricingTypeEnum["BusinessYearStripe"] = "business-year-stripe";
|
|
211
|
+
PricingTypeEnum["PremiumMonthStripe"] = "premium-month-stripe";
|
|
212
|
+
PricingTypeEnum["PremiumYearStripe"] = "premium-year-stripe";
|
|
213
|
+
})(PricingTypeEnum || (exports.PricingTypeEnum = PricingTypeEnum = {}));
|
|
214
|
+
/**
|
|
215
|
+
* Quote status enum
|
|
216
|
+
*/
|
|
217
|
+
var QuoteStatusEnum;
|
|
218
|
+
(function (QuoteStatusEnum) {
|
|
219
|
+
QuoteStatusEnum["Signed"] = "SIGNED";
|
|
220
|
+
QuoteStatusEnum["Pending"] = "PENDING";
|
|
221
|
+
QuoteStatusEnum["Confirmed"] = "CONFIRMED";
|
|
222
|
+
QuoteStatusEnum["Cancelled"] = "CANCELLED";
|
|
223
|
+
})(QuoteStatusEnum || (exports.QuoteStatusEnum = QuoteStatusEnum = {}));
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@molopos/shared","publishConfig":{"access":"public"},"version":"2.0.
|
|
1
|
+
{"name":"@molopos/shared","publishConfig":{"access":"public"},"version":"2.0.23","description":"Shared between backend and frontend repos","license":"ISC","repository":{"type":"git","url":"https://github.com/unicubate/molopos-shared.git"},"dependencies":{"date-fns":"^4.1.0","luxon":"^3.7.2"}}
|
package/lib/filter/index.d.ts
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
export declare enum Action {
|
|
2
|
-
Number = "NUM",
|
|
3
|
-
String = "STR",
|
|
4
|
-
Date = "DATE"
|
|
5
|
-
}
|
|
6
|
-
export declare enum Operation {
|
|
7
|
-
Eq = "=",
|
|
8
|
-
Neq = "!=",
|
|
9
|
-
Gt = ">",
|
|
10
|
-
Gte = ">=",
|
|
11
|
-
Lt = "<",
|
|
12
|
-
Lte = "<=",
|
|
13
|
-
Range = "<>",
|
|
14
|
-
Contains = "~",
|
|
15
|
-
Regex = "$",
|
|
16
|
-
In = "IN"
|
|
17
|
-
}
|
|
18
|
-
export type Payload<A extends Action = Action> = A extends Action.Number ? number : A extends Action.String ? string : A extends Action.Date ? Date : never;
|
|
19
|
-
/**
|
|
20
|
-
* ### Serialize
|
|
21
|
-
*
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const filter = new Filter(Action.Number, Operation.Gt, 10);
|
|
24
|
-
*
|
|
25
|
-
* filter.toString(); // 'NUM|>|10'
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* ### Deserialize
|
|
29
|
-
*
|
|
30
|
-
* ```typescript
|
|
31
|
-
* const filter = Filter.parse('NUM|>|10', Action.Number);
|
|
32
|
-
*
|
|
33
|
-
* filter.action; // Action.Number
|
|
34
|
-
* filter.operation; // Operation.Gt
|
|
35
|
-
* filter.payload; // [10]
|
|
36
|
-
*
|
|
37
|
-
* Filter.parse('NUM|>|10', Action.Date);
|
|
38
|
-
* // Error: Expected action DATE but got NUM
|
|
39
|
-
*
|
|
40
|
-
* Filter.parse('NUM|>|Hello World', Action.Number);
|
|
41
|
-
* // Error: Invalid number payload: Hello World
|
|
42
|
-
*
|
|
43
|
-
* Filter.parse('NUM|>|10', Action.Number, [1, 2, 3]);
|
|
44
|
-
* // Error: Invalid option: 10
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
export declare class Filter<A extends Action = Action> {
|
|
48
|
-
action: A;
|
|
49
|
-
operation: Operation;
|
|
50
|
-
payload: Payload<A>[];
|
|
51
|
-
constructor(action: A, operation: Operation, ...payload: Payload<A>[]);
|
|
52
|
-
get ok(): boolean;
|
|
53
|
-
as(f: (payload: Payload<A>) => Payload<A>): Filter<A>;
|
|
54
|
-
toString(): string;
|
|
55
|
-
/**
|
|
56
|
-
* @throws {Error}
|
|
57
|
-
*/
|
|
58
|
-
static parse<A extends Action = Action>(str: string, action?: A, allowed?: Payload<A>[]): Filter<A>;
|
|
59
|
-
}
|
package/lib/filter/index.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Filter = exports.Operation = exports.Action = void 0;
|
|
4
|
-
var Action;
|
|
5
|
-
(function (Action) {
|
|
6
|
-
Action["Number"] = "NUM";
|
|
7
|
-
Action["String"] = "STR";
|
|
8
|
-
Action["Date"] = "DATE";
|
|
9
|
-
})(Action || (exports.Action = Action = {}));
|
|
10
|
-
;
|
|
11
|
-
var Operation;
|
|
12
|
-
(function (Operation) {
|
|
13
|
-
Operation["Eq"] = "=";
|
|
14
|
-
Operation["Neq"] = "!=";
|
|
15
|
-
Operation["Gt"] = ">";
|
|
16
|
-
Operation["Gte"] = ">=";
|
|
17
|
-
Operation["Lt"] = "<";
|
|
18
|
-
Operation["Lte"] = "<=";
|
|
19
|
-
Operation["Range"] = "<>";
|
|
20
|
-
Operation["Contains"] = "~";
|
|
21
|
-
Operation["Regex"] = "$";
|
|
22
|
-
Operation["In"] = "IN";
|
|
23
|
-
})(Operation || (exports.Operation = Operation = {}));
|
|
24
|
-
;
|
|
25
|
-
/**
|
|
26
|
-
* ### Serialize
|
|
27
|
-
*
|
|
28
|
-
* ```typescript
|
|
29
|
-
* const filter = new Filter(Action.Number, Operation.Gt, 10);
|
|
30
|
-
*
|
|
31
|
-
* filter.toString(); // 'NUM|>|10'
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
|
-
* ### Deserialize
|
|
35
|
-
*
|
|
36
|
-
* ```typescript
|
|
37
|
-
* const filter = Filter.parse('NUM|>|10', Action.Number);
|
|
38
|
-
*
|
|
39
|
-
* filter.action; // Action.Number
|
|
40
|
-
* filter.operation; // Operation.Gt
|
|
41
|
-
* filter.payload; // [10]
|
|
42
|
-
*
|
|
43
|
-
* Filter.parse('NUM|>|10', Action.Date);
|
|
44
|
-
* // Error: Expected action DATE but got NUM
|
|
45
|
-
*
|
|
46
|
-
* Filter.parse('NUM|>|Hello World', Action.Number);
|
|
47
|
-
* // Error: Invalid number payload: Hello World
|
|
48
|
-
*
|
|
49
|
-
* Filter.parse('NUM|>|10', Action.Number, [1, 2, 3]);
|
|
50
|
-
* // Error: Invalid option: 10
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
class Filter {
|
|
54
|
-
constructor(action, operation, ...payload) {
|
|
55
|
-
this.action = action;
|
|
56
|
-
this.operation = operation;
|
|
57
|
-
this.payload = payload;
|
|
58
|
-
}
|
|
59
|
-
get ok() {
|
|
60
|
-
return this.operation === Operation.Range
|
|
61
|
-
? this.payload.length > 1
|
|
62
|
-
: this.payload.length > 0;
|
|
63
|
-
}
|
|
64
|
-
as(f) {
|
|
65
|
-
return new Filter(this.action, this.operation, ...this.payload.map(f));
|
|
66
|
-
}
|
|
67
|
-
toString() {
|
|
68
|
-
return this.action
|
|
69
|
-
+ "|" + this.operation
|
|
70
|
-
+ "|" + this.payload.map((p) => p instanceof Date ? p.toISOString() : p.toString()).join('|');
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* @throws {Error}
|
|
74
|
-
*/
|
|
75
|
-
static parse(str, action, allowed) {
|
|
76
|
-
const [_action, operation, ...raw] = str.split('|');
|
|
77
|
-
const payload = raw;
|
|
78
|
-
if (!_action || !operation || !payload.length) {
|
|
79
|
-
throw new Error('Invalid filter string');
|
|
80
|
-
}
|
|
81
|
-
if (action && _action !== action) {
|
|
82
|
-
throw new Error('Expected action ' + action + ' but got ' + _action);
|
|
83
|
-
}
|
|
84
|
-
switch (_action) {
|
|
85
|
-
case Action.Number:
|
|
86
|
-
raw.forEach((p, i) => {
|
|
87
|
-
if (!/^-?(\d_?)+$|^-?(\d_?)*\.(\d_?)+$/.test(p)) {
|
|
88
|
-
throw new Error('Invalid number payload: ' + p);
|
|
89
|
-
}
|
|
90
|
-
payload[i] = Number(p);
|
|
91
|
-
if (allowed && !allowed.some((p) => p === payload[i])) {
|
|
92
|
-
throw new Error('Invalid option: ' + p);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
break;
|
|
96
|
-
case Action.Date:
|
|
97
|
-
raw.forEach((p, i) => {
|
|
98
|
-
if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/.test(p)) {
|
|
99
|
-
throw new Error('Invalid date payload: ' + p);
|
|
100
|
-
}
|
|
101
|
-
payload[i] = new Date(p);
|
|
102
|
-
if (allowed && !allowed.some((p) => p === payload[i])) {
|
|
103
|
-
throw new Error('Invalid option: ' + p);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
break;
|
|
107
|
-
case Action.String:
|
|
108
|
-
if (allowed) {
|
|
109
|
-
raw.forEach((p, i) => {
|
|
110
|
-
if (!allowed.some((p) => p === payload[i])) {
|
|
111
|
-
throw new Error('Invalid option: ' + p);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
break;
|
|
116
|
-
default:
|
|
117
|
-
throw new Error('Unknown action: ' + _action);
|
|
118
|
-
}
|
|
119
|
-
return new Filter(_action, operation, ...payload);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
exports.Filter = Filter;
|