@entity-access/entity-access 1.0.15 → 1.0.16

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.
@@ -0,0 +1,340 @@
1
+ import TimeSpan from "./TimeSpan.js";
2
+ /**
3
+ * DateTime differs from Date in following cases,
4
+ * 1. DateTime is immutable, however underlying object is Date
5
+ * but all methods specific to DateTime are immutable
6
+ * 2. DateTime has readonly properties for `day, month, year etc`
7
+ * 3. DateTime is derived from Date so passing DateTime to existing
8
+ * code will not change anything, however intellisense does not display
9
+ * any methods of Date unless you explicity cast as Date, but instanceof
10
+ * works correctly
11
+ * 4. DateTime does not modify underlying Date prototype or add any methods to it
12
+ * ``` typescript
13
+ * DateTime dt = DateTime.now();
14
+ * (dt instanceof Date) // is true
15
+ * (dt instanceof DateTime) // is also true
16
+ * ```
17
+ */
18
+ export default class DateTime {
19
+ /**
20
+ * Current date without time
21
+ */
22
+ static get today() {
23
+ const a = new DateTime();
24
+ return a.date;
25
+ }
26
+ /**
27
+ * Current UTC Date
28
+ */
29
+ static get utcNow() {
30
+ const now = new Date();
31
+ return new DateTime(now.getTime() + now.getTimezoneOffset());
32
+ }
33
+ /**
34
+ * DateTime at right now
35
+ */
36
+ static get now() {
37
+ return new DateTime();
38
+ }
39
+ /**
40
+ * Returns DateTime new instance from Date or String, if d is DateTime already
41
+ * it will return the d.
42
+ * @param d Date | DateTime | string
43
+ * @returns DateTime
44
+ */
45
+ static from(d) {
46
+ if (!d) {
47
+ return null;
48
+ }
49
+ if (!(d instanceof DateTime)) {
50
+ if (d instanceof Date) {
51
+ d = new DateTime(d.getTime());
52
+ }
53
+ return new DateTime(d);
54
+ }
55
+ return d;
56
+ }
57
+ static parse(s) {
58
+ return new DateTime(s);
59
+ }
60
+ /**
61
+ * Converts a date and time to a string by using the current or specified locale.
62
+ * @param locales A locale string or array of locale strings that contain one or more language
63
+ * or locale tags. If you include more than one locale string, list them in descending order of
64
+ * priority so that the first entry is the preferred locale. If you omit this parameter,
65
+ * the default locale of the JavaScript runtime is used.
66
+ * @param options An object that contains one or more properties that specify comparison options.
67
+ */
68
+ toLocaleString;
69
+ /**
70
+ * Converts a date to a string by using the current or specified locale.
71
+ * @param locales A locale string or array of locale strings that contain one or more language
72
+ * or locale tags. If you include more than one locale string, list them in descending order
73
+ * of priority so that the first entry is the preferred locale. If you omit this parameter,
74
+ * the default locale of the JavaScript runtime is used.
75
+ * @param options An object that contains one or more properties that specify comparison options.
76
+ */
77
+ toLocaleDateString;
78
+ /**
79
+ * Converts a time to a string by using the current or specified locale.
80
+ * @param locales A locale string or array of locale strings that contain one or more language
81
+ * or locale tags. If you include more than one locale string, list them in descending order of
82
+ * priority so that the first entry is the preferred locale. If you omit this parameter,
83
+ * the default locale of the JavaScript runtime is used.
84
+ * @param options An object that contains one or more properties that specify comparison options.
85
+ */
86
+ toLocaleTimeString;
87
+ /** Returns a date converted to a string using Universal Coordinated Time (UTC). */
88
+ toUTCString;
89
+ /** Returns a date as a string value in ISO format. */
90
+ toISOString;
91
+ /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object
92
+ * Notation (JSON) serialization.
93
+ */
94
+ toJSON;
95
+ toTimeString;
96
+ toDateString;
97
+ /** Day of month */
98
+ get day() {
99
+ return this.getDate();
100
+ }
101
+ /** Day of week */
102
+ get dayOfWeek() {
103
+ return this.getDay();
104
+ }
105
+ /**
106
+ * Current month, 0 is January
107
+ */
108
+ get month() {
109
+ return this.getMonth();
110
+ }
111
+ /**
112
+ * Current full year
113
+ */
114
+ get year() {
115
+ return this.getFullYear();
116
+ }
117
+ /**
118
+ * Current hour of the day
119
+ */
120
+ get hour() {
121
+ return this.getHours();
122
+ }
123
+ /**
124
+ * Current minute of the hour
125
+ */
126
+ get minute() {
127
+ return this.getMinutes();
128
+ }
129
+ /**
130
+ * Current second of the minute
131
+ */
132
+ get second() {
133
+ return this.getSeconds();
134
+ }
135
+ get milliSecond() {
136
+ return this.getMilliseconds();
137
+ }
138
+ /**
139
+ * Timezone offset as TimeSpan
140
+ */
141
+ get timeZoneOffset() {
142
+ return TimeSpan.fromMinutes(this.getTimezoneOffset());
143
+ }
144
+ /**
145
+ * Milliseconds since EPOCH, ie total number of milliseconds
146
+ * of underlying Date object
147
+ */
148
+ get msSinceEpoch() {
149
+ return this.getTime();
150
+ }
151
+ /**
152
+ * Strips time of the day and returns Date only
153
+ */
154
+ get date() {
155
+ const d = new DateTime(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0, 0);
156
+ return d;
157
+ }
158
+ /**
159
+ * Just for convenience, avoid using this, instead use methods of DateTime
160
+ * or suggest better method at our github repo
161
+ */
162
+ get asJSDate() {
163
+ return this;
164
+ }
165
+ /**
166
+ * Gets time of the day in TimeSpan format
167
+ */
168
+ get time() {
169
+ return new TimeSpan(0, this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds());
170
+ }
171
+ /**
172
+ * Creates new DateTime instance from given input,
173
+ * input parameters are exactly same as `Date`
174
+ */
175
+ constructor(a, b, c, d, e, f, g) {
176
+ let rd;
177
+ switch (arguments.length) {
178
+ case 0:
179
+ rd = new Date();
180
+ break;
181
+ case 1:
182
+ rd = new Date(a);
183
+ break;
184
+ case 2:
185
+ rd = new Date(a, b);
186
+ break;
187
+ case 3:
188
+ rd = new Date(a, b, c);
189
+ break;
190
+ case 4:
191
+ rd = new Date(a, b, c, d);
192
+ break;
193
+ case 5:
194
+ rd = new Date(a, b, c, d, e);
195
+ break;
196
+ case 6:
197
+ rd = new Date(a, b, c, d, e, f);
198
+ break;
199
+ default:
200
+ rd = new Date(a, b, c, d, e, f, g);
201
+ }
202
+ Object.setPrototypeOf(rd, DateTime.prototype);
203
+ return rd;
204
+ }
205
+ add(t, hours, minutes, seconds, milliseconds) {
206
+ if (t instanceof Date) {
207
+ return new DateTime(this.getTime() + t.getTime());
208
+ }
209
+ let days = 0;
210
+ if (t instanceof TimeSpan) {
211
+ days = t.days;
212
+ hours = t.hours;
213
+ minutes = t.minutes;
214
+ seconds = t.seconds;
215
+ milliseconds = t.milliseconds;
216
+ }
217
+ else {
218
+ days = t;
219
+ }
220
+ function hasValue(n, name) {
221
+ if (n === undefined) {
222
+ return false;
223
+ }
224
+ if (n === null) {
225
+ throw new Error(`${name} cannot be null`);
226
+ }
227
+ return n !== 0;
228
+ }
229
+ const d = new Date(this.getTime());
230
+ if (hasValue(days, "days")) {
231
+ d.setDate(d.getDate() + days);
232
+ }
233
+ if (hasValue(hours, "hours")) {
234
+ d.setHours(d.getHours() + hours);
235
+ }
236
+ if (hasValue(minutes, "minutes")) {
237
+ d.setMinutes(d.getMinutes() + minutes);
238
+ }
239
+ if (hasValue(seconds, "seconds")) {
240
+ d.setSeconds(d.getSeconds() + seconds);
241
+ }
242
+ if (hasValue(milliseconds, "milliseconds")) {
243
+ d.setMilliseconds(d.getMilliseconds() + milliseconds);
244
+ }
245
+ Object.setPrototypeOf(d, DateTime.prototype);
246
+ return d;
247
+ }
248
+ addMonths(m) {
249
+ const d = new Date(this.msSinceEpoch);
250
+ d.setMonth(d.getMonth() + m);
251
+ Object.setPrototypeOf(d, DateTime.prototype);
252
+ return d;
253
+ }
254
+ addYears(y) {
255
+ const d = new Date(this.msSinceEpoch);
256
+ d.setFullYear(d.getFullYear() + y);
257
+ Object.setPrototypeOf(d, DateTime.prototype);
258
+ return d;
259
+ }
260
+ addDays(day) {
261
+ const d = new Date(this.msSinceEpoch);
262
+ d.setDate(d.getDate() + day);
263
+ Object.setPrototypeOf(d, DateTime.prototype);
264
+ return d;
265
+ }
266
+ addHours(h) {
267
+ const d = new Date(this.msSinceEpoch);
268
+ d.setHours(d.getHours() + h);
269
+ Object.setPrototypeOf(d, DateTime.prototype);
270
+ return d;
271
+ }
272
+ addMinutes(m) {
273
+ const d = new Date(this.msSinceEpoch);
274
+ d.setMinutes(d.getMinutes() + m);
275
+ Object.setPrototypeOf(d, DateTime.prototype);
276
+ return d;
277
+ }
278
+ /**
279
+ * Returns TimeSpan from subtracting rhs from this,
280
+ * `const ts = lhs.diff(rhs); // ts = lhs - rhs`
281
+ * @param rhs Right hand side
282
+ * @returns TimeSpan
283
+ */
284
+ diff(rhs) {
285
+ return new TimeSpan(this.getTime() - rhs.getTime());
286
+ }
287
+ equals(d) {
288
+ if (!d) {
289
+ return false;
290
+ }
291
+ return this.getTime() === d.getTime();
292
+ }
293
+ /**
294
+ * Trims time part and compares the given dates
295
+ * @param d date to test
296
+ */
297
+ dateEquals(d) {
298
+ if (!d) {
299
+ return false;
300
+ }
301
+ return this.date.equals(DateTime.from(d).date);
302
+ }
303
+ compare(d) {
304
+ return this.getTime() - d.getTime();
305
+ }
306
+ toRelativeString(dt) {
307
+ if (!dt) {
308
+ dt = DateTime.now;
309
+ }
310
+ else {
311
+ if (dt instanceof Date && !(dt instanceof DateTime)) {
312
+ dt.__proto__ = DateTime.prototype;
313
+ dt = dt;
314
+ }
315
+ }
316
+ const diff = this.diff(dt);
317
+ if (dt.year !== this.year) {
318
+ return this.toLocaleDateString();
319
+ }
320
+ if (Math.abs(diff.totalDays) > 6) {
321
+ return this.toLocaleDateString(undefined, { month: "short", day: "numeric" });
322
+ }
323
+ if (Math.abs(diff.totalHours) > 23) {
324
+ return this.toLocaleDateString(undefined, { weekday: "short" });
325
+ }
326
+ if (Math.abs(diff.totalMinutes) > 59) {
327
+ return `${Math.floor(diff.totalHours)} hours`;
328
+ }
329
+ return `${Math.floor(diff.totalMinutes)} mins`;
330
+ }
331
+ /**
332
+ * Returns number so that DateTime in logical comparison
333
+ * returns correct answer. Such as DateTime.from("2022-02-01") > DateTime.from("2021-02-01") returns true.
334
+ * @returns Milliseconds since EPOCH
335
+ */
336
+ valueOf() {
337
+ return this.getTime();
338
+ }
339
+ }
340
+ //# sourceMappingURL=DateTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../src/types/DateTime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export declare const msMinutes = 60000;
2
+ export declare const msSeconds = 1000;
3
+ export declare const msHours = 3600000;
4
+ export declare const msDays: number;
5
+ export default class TimeSpan {
6
+ static fromDays(n: number): TimeSpan;
7
+ static fromHours(n: number): TimeSpan;
8
+ static fromMinutes(n: number): TimeSpan;
9
+ static fromSeconds(n: number): TimeSpan;
10
+ static parse(text: string): TimeSpan;
11
+ private msSinceEpoch;
12
+ get totalSeconds(): number;
13
+ get totalMinutes(): number;
14
+ get totalHours(): number;
15
+ get totalDays(): number;
16
+ get totalMilliseconds(): number;
17
+ get days(): number;
18
+ get hours(): number;
19
+ get minutes(): number;
20
+ get seconds(): number;
21
+ get milliseconds(): number;
22
+ /**
23
+ * Duration is always positive TimeSpan
24
+ */
25
+ get duration(): TimeSpan;
26
+ /**
27
+ * Removes days and only trims given TimeSpan to TimeOfDay
28
+ */
29
+ get trimmedTime(): TimeSpan;
30
+ constructor(ms: number);
31
+ constructor(days: number, hours: number, minutes?: number, seconds?: number, milliseconds?: number);
32
+ /**
33
+ * Format the TimeSpan as time format
34
+ * @param formatAs12 Display time as 12 hours with AM/PM (only if day is zero)
35
+ */
36
+ toString(formatAs12?: boolean): string;
37
+ add(ts: TimeSpan): TimeSpan;
38
+ equals(ts: TimeSpan): boolean;
39
+ }
40
+ //# sourceMappingURL=TimeSpan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeSpan.d.ts","sourceRoot":"","sources":["../../src/types/TimeSpan.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,eAAO,MAAM,SAAS,OAAO,CAAC;AAE9B,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,eAAO,MAAM,MAAM,QAAe,CAAC;AAqBnC,MAAM,CAAC,OAAO,OAAO,QAAQ;WAEX,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;WAI7B,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;WAI9B,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;WAIhC,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;WAIhC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IA+C3C,OAAO,CAAC,YAAY,CAAS;IAE7B,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED;;OAEG;IACH,IAAW,QAAQ,IAAI,QAAQ,CAG9B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,QAAQ,CAEjC;gBAEW,EAAE,EAAE,MAAM;gBAEV,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAclG;;;OAGG;IACI,QAAQ,CAAC,UAAU,GAAE,OAAe,GAAG,MAAM;IAyC7C,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAI3B,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;CAGvC"}
@@ -0,0 +1,186 @@
1
+ function isEmpty(n) {
2
+ return n === undefined || n === null || n === 0 || isNaN(n);
3
+ }
4
+ export const msMinutes = 60000;
5
+ export const msSeconds = 1000;
6
+ export const msHours = 3600000;
7
+ export const msDays = 24 * msHours;
8
+ /**
9
+ * This is due to performance reason, copied from Source of TimeSpan from C# code.
10
+ */
11
+ const daysPerMS = 1 / msDays;
12
+ const hoursPerMS = 1 / msHours;
13
+ const minutesPerMS = 1 / msMinutes;
14
+ const secondsPerMS = 1 / msSeconds;
15
+ function padLeft(n, c = 2, t = "0") {
16
+ let s = n.toString();
17
+ if (s.length < c) {
18
+ s = t + s;
19
+ }
20
+ return s;
21
+ }
22
+ export default class TimeSpan {
23
+ static fromDays(n) {
24
+ return new TimeSpan(n * msDays);
25
+ }
26
+ static fromHours(n) {
27
+ return new TimeSpan(n * msHours);
28
+ }
29
+ static fromMinutes(n) {
30
+ return new TimeSpan(n * msMinutes);
31
+ }
32
+ static fromSeconds(n) {
33
+ return new TimeSpan(n * msSeconds);
34
+ }
35
+ static parse(text) {
36
+ if (!text) {
37
+ throw new Error("Invalid time format");
38
+ }
39
+ let isPM = false;
40
+ // tslint:disable-next-line: one-variable-per-declaration
41
+ let d, h, m, s, ms;
42
+ const tokens = text.split(/:/);
43
+ // split last...
44
+ const last = tokens[tokens.length - 1];
45
+ const lastParts = last.split(" ");
46
+ if (lastParts.length > 1) {
47
+ if (/pm/i.test(lastParts[1])) {
48
+ isPM = true;
49
+ }
50
+ tokens[tokens.length - 1] = lastParts[0];
51
+ }
52
+ const firstOfLast = lastParts[0];
53
+ if (firstOfLast.indexOf(".") !== -1) {
54
+ // it has ms...
55
+ const secondParts = firstOfLast.split(".");
56
+ if (secondParts.length > 1) {
57
+ tokens[tokens.length - 1] = secondParts[0];
58
+ ms = parseInt(secondParts[1], 10);
59
+ }
60
+ }
61
+ if (tokens.length === 2) {
62
+ // this is hour:min
63
+ d = 0;
64
+ h = parseInt(tokens[0], 10);
65
+ m = parseInt(tokens[1], 10);
66
+ }
67
+ else if (tokens.length === 3) {
68
+ d = 0;
69
+ h = parseInt(tokens[0], 10);
70
+ m = parseInt(tokens[1], 10);
71
+ s = parseInt(tokens[2], 10);
72
+ }
73
+ else if (tokens.length === 4) {
74
+ d = parseInt(tokens[0], 10);
75
+ h = parseInt(tokens[1], 10);
76
+ m = parseInt(tokens[2], 10);
77
+ s = parseInt(tokens[3], 10);
78
+ }
79
+ return new TimeSpan(d, isPM ? h + 12 : h, m, s, ms);
80
+ }
81
+ msSinceEpoch;
82
+ get totalSeconds() {
83
+ return this.msSinceEpoch * secondsPerMS;
84
+ }
85
+ get totalMinutes() {
86
+ return this.msSinceEpoch * minutesPerMS;
87
+ }
88
+ get totalHours() {
89
+ return this.msSinceEpoch * hoursPerMS;
90
+ }
91
+ get totalDays() {
92
+ return this.msSinceEpoch * daysPerMS;
93
+ }
94
+ get totalMilliseconds() {
95
+ return this.msSinceEpoch;
96
+ }
97
+ get days() {
98
+ return Math.floor(this.msSinceEpoch / msDays);
99
+ }
100
+ get hours() {
101
+ return Math.floor((this.msSinceEpoch / msHours) % 24);
102
+ }
103
+ get minutes() {
104
+ return Math.floor((this.msSinceEpoch / msMinutes) % 60);
105
+ }
106
+ get seconds() {
107
+ return Math.floor((this.msSinceEpoch / msSeconds) % 60);
108
+ }
109
+ get milliseconds() {
110
+ return Math.floor(this.msSinceEpoch % 1000);
111
+ }
112
+ /**
113
+ * Duration is always positive TimeSpan
114
+ */
115
+ get duration() {
116
+ const t = this.msSinceEpoch;
117
+ return new TimeSpan(t > 0 ? t : -t);
118
+ }
119
+ /**
120
+ * Removes days and only trims given TimeSpan to TimeOfDay
121
+ */
122
+ get trimmedTime() {
123
+ return new TimeSpan(Math.ceil(this.msSinceEpoch % msDays));
124
+ }
125
+ constructor(days, hours, minutes, seconds, milliseconds) {
126
+ if (arguments.length === 1) {
127
+ this.msSinceEpoch = days;
128
+ }
129
+ else {
130
+ this.msSinceEpoch =
131
+ (days || 0) * msDays +
132
+ (hours || 0) * msHours +
133
+ (minutes || 0) * msMinutes +
134
+ (seconds || 0) * msSeconds +
135
+ (milliseconds || 0);
136
+ }
137
+ }
138
+ /**
139
+ * Format the TimeSpan as time format
140
+ * @param formatAs12 Display time as 12 hours with AM/PM (only if day is zero)
141
+ */
142
+ toString(formatAs12 = false) {
143
+ let ams = this.msSinceEpoch;
144
+ const text = [];
145
+ let postFix = "";
146
+ function format(max, f12 = false) {
147
+ let txt = null;
148
+ if (ams > max) {
149
+ const n = Math.floor(ams / max);
150
+ ams = ams % max;
151
+ if (f12) {
152
+ if (n > 12) {
153
+ postFix = " PM";
154
+ txt = padLeft(n - 12);
155
+ }
156
+ else {
157
+ postFix = " AM";
158
+ }
159
+ }
160
+ if (!txt) {
161
+ txt = padLeft(n);
162
+ }
163
+ }
164
+ if (txt) {
165
+ text.push(txt);
166
+ }
167
+ return txt;
168
+ }
169
+ const d = format(msDays);
170
+ format(msHours, formatAs12 && !d);
171
+ format(msMinutes);
172
+ let s = format(msSeconds);
173
+ if (ams) {
174
+ s += "." + ams;
175
+ text[text.length - 1] = s;
176
+ }
177
+ return `${text.join(":")}${postFix}`;
178
+ }
179
+ add(ts) {
180
+ return new TimeSpan(this.msSinceEpoch + ts.msSinceEpoch);
181
+ }
182
+ equals(ts) {
183
+ return ts.msSinceEpoch === this.msSinceEpoch;
184
+ }
185
+ }
186
+ //# sourceMappingURL=TimeSpan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["../../src/types/TimeSpan.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entity-access/entity-access",
3
- "version": "1.0.15",
3
+ "version": "1.0.16",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {