@churchapps/helpers 1.2.18 → 1.2.20
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/dist/EventHelper.d.ts +2 -2
- package/dist/EventHelper.d.ts.map +1 -1
- package/dist/EventHelper.js +35 -6
- package/dist/EventHelper.js.map +1 -1
- package/dist/interfaces/Donation.d.ts +2 -0
- package/dist/interfaces/Donation.d.ts.map +1 -1
- package/dist/interfaces/Donation.js.map +1 -1
- package/package.json +9 -2
- package/src/EventHelper.ts +40 -8
- package/src/interfaces/Donation.ts +3 -0
package/dist/EventHelper.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EventInterface } from "./interfaces/index.js";
|
|
2
|
-
|
|
3
|
-
type ParsedOptions = Partial<InstanceType<typeof RRule>["options"]>;
|
|
2
|
+
type ParsedOptions = any;
|
|
4
3
|
export declare class EventHelper {
|
|
5
4
|
static getRange: (event: EventInterface, startDate: Date, endDate: Date) => any;
|
|
6
5
|
static getFullRRule: (event: EventInterface) => any;
|
|
7
6
|
static removeExcludeDates: (events: EventInterface[]) => void;
|
|
8
7
|
static getPartialRRuleString: (options: ParsedOptions) => any;
|
|
9
8
|
static cleanRule: (options: ParsedOptions) => void;
|
|
9
|
+
static ensureInitialized: () => Promise<void>;
|
|
10
10
|
}
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=EventHelper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventHelper.d.ts","sourceRoot":"","sources":["../src/EventHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"EventHelper.d.ts","sourceRoot":"","sources":["../src/EventHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAiCvD,KAAK,aAAa,GAAG,GAAG,CAAC;AAEzB,qBAAa,WAAW;IAEtB,MAAM,CAAC,QAAQ,GAAI,OAAM,cAAc,EAAE,WAAU,IAAI,EAAE,SAAQ,IAAI,SAYpE;IAED,MAAM,CAAC,YAAY,GAAI,OAAM,cAAc,SAK1C;IAED,MAAM,CAAC,kBAAkB,GAAI,QAAO,cAAc,EAAE,UAQnD;IAED,MAAM,CAAC,qBAAqB,GAAI,SAAQ,aAAa,SAKpD;IAED,MAAM,CAAC,SAAS,GAAI,SAAQ,aAAa,UAIxC;IAGD,MAAM,CAAC,iBAAiB,sBAAe;CACxC"}
|
package/dist/EventHelper.js
CHANGED
|
@@ -1,11 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// Lazy initialization to handle both bundlers and Node.js ESM
|
|
2
|
+
let RRule = null;
|
|
3
|
+
let initPromise = null;
|
|
4
|
+
const ensureRRule = () => {
|
|
5
|
+
if (RRule)
|
|
6
|
+
return Promise.resolve();
|
|
7
|
+
if (!initPromise) {
|
|
8
|
+
initPromise = import("rrule").then((mod) => {
|
|
9
|
+
RRule = mod.RRule ?? mod.default?.RRule ?? mod;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return initPromise;
|
|
13
|
+
};
|
|
14
|
+
// Synchronous getter for RRule - throws if not initialized
|
|
15
|
+
const getRRule = () => {
|
|
16
|
+
if (!RRule) {
|
|
17
|
+
throw new Error("EventHelper: RRule not initialized. Ensure ensureRRule() is called first.");
|
|
18
|
+
}
|
|
19
|
+
return RRule;
|
|
20
|
+
};
|
|
21
|
+
// Initialize on first use for bundlers (they process the dynamic import statically)
|
|
22
|
+
// The promise is created immediately to start loading
|
|
23
|
+
initPromise = import("rrule").then((mod) => {
|
|
24
|
+
RRule = mod.RRule ?? mod.default?.RRule ?? mod;
|
|
25
|
+
}).catch(() => {
|
|
26
|
+
// rrule not available - EventHelper methods will fail gracefully
|
|
27
|
+
});
|
|
3
28
|
export class EventHelper {
|
|
4
29
|
static getRange = (event, startDate, endDate) => {
|
|
5
30
|
const start = new Date(event.start);
|
|
6
31
|
const rrule = EventHelper.getFullRRule(event);
|
|
7
32
|
const dates = rrule.between(startDate, endDate);
|
|
8
|
-
dates.forEach(d => {
|
|
33
|
+
dates.forEach((d) => {
|
|
9
34
|
d.setHours(start.getHours());
|
|
10
35
|
d.setMinutes(start.getMinutes());
|
|
11
36
|
d.setSeconds(start.getSeconds());
|
|
@@ -13,21 +38,23 @@ export class EventHelper {
|
|
|
13
38
|
return dates;
|
|
14
39
|
};
|
|
15
40
|
static getFullRRule = (event) => {
|
|
16
|
-
|
|
41
|
+
const RR = getRRule();
|
|
42
|
+
let rrule = RR.fromString(event.recurrenceRule);
|
|
17
43
|
rrule.options.dtstart = new Date(event.start);
|
|
18
44
|
return rrule;
|
|
19
45
|
};
|
|
20
46
|
static removeExcludeDates = (events) => {
|
|
21
47
|
for (let i = events.length - 1; i >= 0; i--) {
|
|
22
48
|
if (events[i].exceptionDates?.length > 0) {
|
|
23
|
-
const parsedDates = events[i].exceptionDates.map(d => new Date(d).toISOString());
|
|
49
|
+
const parsedDates = events[i].exceptionDates.map((d) => new Date(d).toISOString());
|
|
24
50
|
if (parsedDates.indexOf(events[i].start.toISOString()) > -1)
|
|
25
51
|
events.splice(i, 1);
|
|
26
52
|
}
|
|
27
53
|
}
|
|
28
54
|
};
|
|
29
55
|
static getPartialRRuleString = (options) => {
|
|
30
|
-
const
|
|
56
|
+
const RR = getRRule();
|
|
57
|
+
const parts = new RR(options).toString().split("RRULE:");
|
|
31
58
|
const result = parts.length === 2 ? parts[1] : "";
|
|
32
59
|
return result;
|
|
33
60
|
};
|
|
@@ -36,5 +63,7 @@ export class EventHelper {
|
|
|
36
63
|
options.byminute = undefined;
|
|
37
64
|
options.bysecond = undefined;
|
|
38
65
|
};
|
|
66
|
+
// Export for consumers who need to ensure initialization
|
|
67
|
+
static ensureInitialized = ensureRRule;
|
|
39
68
|
}
|
|
40
69
|
//# sourceMappingURL=EventHelper.js.map
|
package/dist/EventHelper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventHelper.js","sourceRoot":"","sources":["../src/EventHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EventHelper.js","sourceRoot":"","sources":["../src/EventHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PersonInterface } from "./index.js";
|
|
2
|
+
export type DonationStatus = "pending" | "complete" | "failed";
|
|
2
3
|
export interface DonationBatchInterface {
|
|
3
4
|
id?: string;
|
|
4
5
|
name?: string;
|
|
@@ -15,6 +16,7 @@ export interface DonationInterface {
|
|
|
15
16
|
method?: string;
|
|
16
17
|
methodDetails?: string;
|
|
17
18
|
notes?: string;
|
|
19
|
+
status?: DonationStatus;
|
|
18
20
|
person?: PersonInterface;
|
|
19
21
|
fund?: FundInterface;
|
|
20
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Donation.d.ts","sourceRoot":"","sources":["../../src/interfaces/Donation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Donation.d.ts","sourceRoot":"","sources":["../../src/interfaces/Donation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Donation.js","sourceRoot":"","sources":["../../src/interfaces/Donation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Donation.js","sourceRoot":"","sources":["../../src/interfaces/Donation.ts"],"names":[],"mappings":"AA0KA,MAAM,OAAO,mBAAmB;IAC9B,EAAE,CAAS;IACX,IAAI,CAAS;IACb,IAAI,CAAS;IACb,KAAK,CAAS;IACd,SAAS,CAAU;IACnB,QAAQ,CAAU;IAClB,MAAM,CAAU;IAChB,mBAAmB,CAAU;IAC7B,mBAAmB,CAAU;IAE7B,YAAY,GAAS;QACnB,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC;QAChE,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE,mBAAmB,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE,mBAAmB,IAAI,YAAY,CAAC;IACtE,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@churchapps/helpers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.20",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Library of helper functions not specific to any one ChurchApps project or framework.",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -51,7 +51,14 @@
|
|
|
51
51
|
"typescript": "^5.9.2"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"dayjs": "^1.11.18"
|
|
54
|
+
"dayjs": "^1.11.18"
|
|
55
|
+
},
|
|
56
|
+
"peerDependencies": {
|
|
55
57
|
"rrule": "^2.8.1"
|
|
58
|
+
},
|
|
59
|
+
"peerDependenciesMeta": {
|
|
60
|
+
"rrule": {
|
|
61
|
+
"optional": true
|
|
62
|
+
}
|
|
56
63
|
}
|
|
57
64
|
}
|
package/src/EventHelper.ts
CHANGED
|
@@ -1,9 +1,37 @@
|
|
|
1
1
|
import { EventInterface } from "./interfaces/index.js";
|
|
2
|
-
import * as rrule from "rrule";
|
|
3
|
-
const RRule = rrule.RRule || (rrule as any).default?.RRule || rrule;
|
|
4
2
|
|
|
5
|
-
//
|
|
6
|
-
|
|
3
|
+
// Lazy initialization to handle both bundlers and Node.js ESM
|
|
4
|
+
let RRule: any = null;
|
|
5
|
+
let initPromise: Promise<void> | null = null;
|
|
6
|
+
|
|
7
|
+
const ensureRRule = () => {
|
|
8
|
+
if (RRule) return Promise.resolve();
|
|
9
|
+
if (!initPromise) {
|
|
10
|
+
initPromise = import("rrule").then((mod) => {
|
|
11
|
+
RRule = (mod as any).RRule ?? (mod as any).default?.RRule ?? mod;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
return initPromise;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// Synchronous getter for RRule - throws if not initialized
|
|
18
|
+
const getRRule = () => {
|
|
19
|
+
if (!RRule) {
|
|
20
|
+
throw new Error("EventHelper: RRule not initialized. Ensure ensureRRule() is called first.");
|
|
21
|
+
}
|
|
22
|
+
return RRule;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// Initialize on first use for bundlers (they process the dynamic import statically)
|
|
26
|
+
// The promise is created immediately to start loading
|
|
27
|
+
initPromise = import("rrule").then((mod) => {
|
|
28
|
+
RRule = (mod as any).RRule ?? (mod as any).default?.RRule ?? mod;
|
|
29
|
+
}).catch(() => {
|
|
30
|
+
// rrule not available - EventHelper methods will fail gracefully
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// Define ParsedOptions as any since RRule is dynamically loaded
|
|
34
|
+
type ParsedOptions = any;
|
|
7
35
|
|
|
8
36
|
export class EventHelper {
|
|
9
37
|
|
|
@@ -13,7 +41,7 @@ export class EventHelper {
|
|
|
13
41
|
|
|
14
42
|
const dates = rrule.between(startDate, endDate);
|
|
15
43
|
|
|
16
|
-
dates.forEach(d => {
|
|
44
|
+
dates.forEach((d: Date) => {
|
|
17
45
|
d.setHours(start.getHours());
|
|
18
46
|
d.setMinutes(start.getMinutes());
|
|
19
47
|
d.setSeconds(start.getSeconds());
|
|
@@ -22,7 +50,8 @@ export class EventHelper {
|
|
|
22
50
|
}
|
|
23
51
|
|
|
24
52
|
static getFullRRule = (event:EventInterface) => {
|
|
25
|
-
|
|
53
|
+
const RR = getRRule();
|
|
54
|
+
let rrule = RR.fromString(event.recurrenceRule);
|
|
26
55
|
rrule.options.dtstart = new Date(event.start);
|
|
27
56
|
return rrule;
|
|
28
57
|
}
|
|
@@ -31,14 +60,15 @@ export class EventHelper {
|
|
|
31
60
|
for (let i=events.length-1; i>=0; i--) {
|
|
32
61
|
if (events[i].exceptionDates?.length>0)
|
|
33
62
|
{
|
|
34
|
-
const parsedDates = events[i].exceptionDates.map(d=>new Date(d).toISOString());
|
|
63
|
+
const parsedDates = events[i].exceptionDates.map((d: string | Date)=>new Date(d).toISOString());
|
|
35
64
|
if (parsedDates.indexOf(events[i].start.toISOString())>-1) events.splice(i,1);
|
|
36
65
|
}
|
|
37
66
|
}
|
|
38
67
|
}
|
|
39
68
|
|
|
40
69
|
static getPartialRRuleString = (options:ParsedOptions) => {
|
|
41
|
-
const
|
|
70
|
+
const RR = getRRule();
|
|
71
|
+
const parts = new RR(options).toString().split("RRULE:");
|
|
42
72
|
const result = parts.length===2 ? parts[1] : "";
|
|
43
73
|
return result;
|
|
44
74
|
}
|
|
@@ -49,4 +79,6 @@ export class EventHelper {
|
|
|
49
79
|
options.bysecond = undefined;
|
|
50
80
|
}
|
|
51
81
|
|
|
82
|
+
// Export for consumers who need to ensure initialization
|
|
83
|
+
static ensureInitialized = ensureRRule;
|
|
52
84
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { PersonInterface } from "./index.js";
|
|
2
2
|
|
|
3
|
+
export type DonationStatus = "pending" | "complete" | "failed";
|
|
4
|
+
|
|
3
5
|
export interface DonationBatchInterface {
|
|
4
6
|
id?: string;
|
|
5
7
|
name?: string;
|
|
@@ -16,6 +18,7 @@ export interface DonationInterface {
|
|
|
16
18
|
method?: string;
|
|
17
19
|
methodDetails?: string;
|
|
18
20
|
notes?: string;
|
|
21
|
+
status?: DonationStatus;
|
|
19
22
|
person?: PersonInterface;
|
|
20
23
|
fund?: FundInterface;
|
|
21
24
|
}
|