@breedware/exampaqs-shared 1.0.0 → 1.1.0

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/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './types/index.js';
2
+ export * from './sms/index.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './types/index.js';
2
+ export * from './sms/index.js';
2
3
  //# 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":"AACA,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,39 @@
1
+ export declare const SMSTemplates: {
2
+ arrival: ({ studentName, status, time, guardian, schoolName }: {
3
+ studentName: string;
4
+ status: "early" | "late" | "on-time";
5
+ time: string;
6
+ guardian?: string;
7
+ schoolName: string;
8
+ }) => string;
9
+ departure: ({ studentName, time, guardian, schoolName }: {
10
+ studentName: string;
11
+ time: string;
12
+ guardian?: string;
13
+ schoolName: string;
14
+ }) => string;
15
+ excused: ({ studentName, date, parentName, schoolName }: {
16
+ studentName: string;
17
+ date: string;
18
+ parentName: string;
19
+ schoolName: string;
20
+ }) => string;
21
+ absent: ({ studentName, date, schoolName }: {
22
+ studentName: string;
23
+ date: string;
24
+ schoolName: string;
25
+ }) => string;
26
+ otp: ({ otpCode, purpose, schoolName }: {
27
+ otpCode: string;
28
+ purpose: string;
29
+ schoolName: string;
30
+ }) => string;
31
+ };
32
+ /**
33
+ * Computes the number of SMS segments (pages) for a given string.
34
+ * This assumes standard GSM-7 encoding.
35
+ * * Note: If using non-GSM characters (like emojis or special symbols),
36
+ * the limits drop to 70 chars (single) and 67 chars (multi-part).
37
+ */
38
+ export declare const smsPagesComputer: (content: string) => number;
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sms/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;mEAEwC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;6DAKxH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;6DAK5E;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;gDAK1F;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;4CAK7D;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAGjG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MAkBlD,CAAC"}
@@ -0,0 +1,46 @@
1
+ export const SMSTemplates = {
2
+ // 1. Student Arrival
3
+ arrival: ({ studentName, status, time, guardian, schoolName }) => {
4
+ return `Attendance Alert: ${studentName} arrived ${status} at ${time}. Dropped off by: ${guardian || 'Self'}. - ${schoolName}`;
5
+ },
6
+ // 2. Student Departure
7
+ departure: ({ studentName, time, guardian, schoolName }) => {
8
+ return `Departure Alert: ${studentName} left school at ${time}. Picked up by: ${guardian || 'Self'}. - ${schoolName}`;
9
+ },
10
+ // 3. Excused Absence
11
+ excused: ({ studentName, date, parentName, schoolName }) => {
12
+ return `Excuse Confirmed: ${studentName} is marked Excused for ${date}, per request by ${parentName}. - ${schoolName}`;
13
+ },
14
+ // 4. Unexcused Absence
15
+ absent: ({ studentName, date, schoolName }) => {
16
+ return `Urgent: ${studentName} is marked ABSENT today, ${date}. Please contact the office to verify. - ${schoolName}`;
17
+ },
18
+ // 5. Transaction OTP
19
+ otp: ({ otpCode, purpose, schoolName }) => {
20
+ return `Your OTP for ${purpose} is ${otpCode}. Valid for 5 mins. Do not share. - ${schoolName}`;
21
+ }
22
+ };
23
+ /**
24
+ * Computes the number of SMS segments (pages) for a given string.
25
+ * This assumes standard GSM-7 encoding.
26
+ * * Note: If using non-GSM characters (like emojis or special symbols),
27
+ * the limits drop to 70 chars (single) and 67 chars (multi-part).
28
+ */
29
+ export const smsPagesComputer = (content) => {
30
+ const charCount = content.length;
31
+ // If the message is empty, it technically consumes 0 pages (or 1 depending on carrier billing)
32
+ if (charCount === 0)
33
+ return 0;
34
+ // Standard GSM-7 limit for a single message
35
+ const SINGLE_PAGE_LIMIT = 160;
36
+ // Limit for multi-part messages (7 characters reserved for UDH)
37
+ const MULTI_PAGE_LIMIT = 152;
38
+ if (charCount <= SINGLE_PAGE_LIMIT) {
39
+ return 1;
40
+ }
41
+ else {
42
+ // Math.ceil ensures that even 1 extra character triggers a new page
43
+ return Math.ceil(charCount / MULTI_PAGE_LIMIT);
44
+ }
45
+ };
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sms/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,qBAAqB;IACrB,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAsH,EAAE,EAAE;QACnL,OAAO,qBAAqB,WAAW,YAAY,MAAM,OAAO,IAAI,qBAAqB,QAAQ,IAAI,MAAM,OAAO,UAAU,EAAE,CAAC;IACjI,CAAC;IAED,uBAAuB;IACvB,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAgF,EAAE,EAAE;QACvI,OAAO,oBAAoB,WAAW,mBAAmB,IAAI,mBAAmB,QAAQ,IAAI,MAAM,OAAO,UAAU,EAAE,CAAC;IACxH,CAAC;IAED,qBAAqB;IACrB,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAiF,EAAE,EAAE;QACxI,OAAO,qBAAqB,WAAW,0BAA0B,IAAI,oBAAoB,UAAU,OAAO,UAAU,EAAE,CAAC;IACzH,CAAC;IAED,uBAAuB;IACvB,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAA6D,EAAE,EAAE;QACvG,OAAO,WAAW,WAAW,4BAA4B,IAAI,4CAA4C,UAAU,EAAE,CAAC;IACxH,CAAC;IAED,qBAAqB;IACrB,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAA4D,EAAE,EAAE;QAClG,OAAO,gBAAgB,OAAO,OAAO,OAAO,uCAAuC,UAAU,EAAE,CAAC;IAClG,CAAC;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAU,EAAE;IAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjC,+FAA+F;IAC/F,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE9B,4CAA4C;IAC5C,MAAM,iBAAiB,GAAG,GAAG,CAAC;IAE9B,gEAAgE;IAChE,MAAM,gBAAgB,GAAG,GAAG,CAAC;IAE7B,IAAI,SAAS,IAAI,iBAAiB,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,oEAAoE;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC"}
@@ -30,6 +30,7 @@ export declare enum FIREBASETABLE {
30
30
  STUDENTTRIPS = "studenttrips",
31
31
  PROCESSEDTRANSACTIONS = "processedtransactions",
32
32
  PAYMENTADVICES = "paymentadvices",
33
+ QUEUEDTRANSFERS = "queuedtransfers",
33
34
  SCHOOLBANKPROGRESS = "schoolbankprogress",
34
35
  TRANSACTIONNOTIFICATIONS = "transactionnotifications",
35
36
  PENDINGSTUDENTDVA = "pendingstudentdva"
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.table.d.ts","sourceRoot":"","sources":["../../src/types/firestore.table.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,mBAAmB,wBAAwB;IAC3C,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,aAAa,qBAAqB;IAClC,aAAa,2BAA2B;IACxC,WAAW,yBAAyB;IACpC,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,OAAO,YAAY;IACnB,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;IAC7B,qBAAqB,0BAA0B;IAC/C,cAAc,mBAAmB;IAGjC,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IACrD,iBAAiB,sBAAsB;CACxC;AAED,oBAAY,UAAU;IAClB,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,kBAAkB,uBAAuB;IACzC,sBAAsB,mBAAmB;IACzC,SAAS,cAAc;IACvB,sBAAsB,2BAA2B;CACpD;AAED,oBAAY,YAAY;IACtB,SAAS,gCAAgC;IACzC,cAAc,4BAA4B;IAC1C,yBAAyB,mCAAmC;IAC5D,uBAAuB,wCAAwC;IAC/D,cAAc,8BAA8B;CAC7C"}
1
+ {"version":3,"file":"firestore.table.d.ts","sourceRoot":"","sources":["../../src/types/firestore.table.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,mBAAmB,wBAAwB;IAC3C,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,aAAa,qBAAqB;IAClC,aAAa,2BAA2B;IACxC,WAAW,yBAAyB;IACpC,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,OAAO,YAAY;IACnB,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;IAC7B,qBAAqB,0BAA0B;IAC/C,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IAGnC,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IACrD,iBAAiB,sBAAsB;CACxC;AAED,oBAAY,UAAU;IAClB,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,kBAAkB,uBAAuB;IACzC,sBAAsB,mBAAmB;IACzC,SAAS,cAAc;IACvB,sBAAsB,2BAA2B;CACpD;AAED,oBAAY,YAAY;IACtB,SAAS,gCAAgC;IACzC,cAAc,4BAA4B;IAC1C,yBAAyB,mCAAmC;IAC5D,uBAAuB,wCAAwC;IAC/D,cAAc,8BAA8B;CAC7C"}
@@ -31,6 +31,7 @@ export var FIREBASETABLE;
31
31
  FIREBASETABLE["STUDENTTRIPS"] = "studenttrips";
32
32
  FIREBASETABLE["PROCESSEDTRANSACTIONS"] = "processedtransactions";
33
33
  FIREBASETABLE["PAYMENTADVICES"] = "paymentadvices";
34
+ FIREBASETABLE["QUEUEDTRANSFERS"] = "queuedtransfers";
34
35
  // TRIGGERS
35
36
  FIREBASETABLE["SCHOOLBANKPROGRESS"] = "schoolbankprogress";
36
37
  FIREBASETABLE["TRANSACTIONNOTIFICATIONS"] = "transactionnotifications";
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.table.js","sourceRoot":"","sources":["../../src/types/firestore.table.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAqCX;AArCD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,4DAA2C,CAAA;IAC3C,kCAAiB,CAAA;IACjB,8CAA6B,CAAA;IAC7B,mDAAkC,CAAA;IAClC,yDAAwC,CAAA;IACxC,qDAAoC,CAAA;IACpC,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;IAC3B,8CAA6B,CAAA;IAC7B,sCAAqB,CAAA;IACrB,sDAAqC,CAAA;IACrC,wDAAuC,CAAA;IACvC,oCAAmB,CAAA;IACnB,oDAAmC,CAAA;IACnC,sDAAqC,CAAA;IACrC,sDAAqC,CAAA;IACrC,8CAA6B,CAAA;IAC7B,kDAAiC,CAAA;IACjC,sCAAqB,CAAA;IACrB,kDAAiC,CAAA;IACjC,0DAAyC,CAAA;IACzC,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;IAC3B,kDAAiC,CAAA;IACjC,8CAA6B,CAAA;IAC7B,0DAAyC,CAAA;IACzC,8CAA6B,CAAA;IAC7B,gEAA+C,CAAA;IAC/C,kDAAiC,CAAA;IAEjC,WAAW;IACX,0DAAyC,CAAA;IACzC,sEAAqD,CAAA;IACrD,wDAAuC,CAAA;AACzC,CAAC,EArCW,aAAa,KAAb,aAAa,QAqCxB;AAED,MAAM,CAAN,IAAY,UAcX;AAdD,WAAY,UAAU;IAClB,mDAAqC,CAAA;IACrC,qDAAuC,CAAA;IACvC,uDAAyC,CAAA;IACzC,uDAAyC,CAAA;IACzC,qDAAuC,CAAA;IACvC,+CAAiC,CAAA;IACjC,2DAA6C,CAAA;IAC7C,6CAA+B,CAAA;IAC/B,uCAAyB,CAAA;IACzB,uDAAyC,CAAA;IACzC,uDAAyC,CAAA;IACzC,qCAAuB,CAAA;IACvB,+DAAiD,CAAA;AACrD,CAAC,EAdW,UAAU,KAAV,UAAU,QAcrB;AAED,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,yDAAyC,CAAA;IACzC,0DAA0C,CAAA;IAC1C,4EAA4D,CAAA;IAC5D,+EAA+D,CAAA;IAC/D,4DAA4C,CAAA;AAC9C,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB"}
1
+ {"version":3,"file":"firestore.table.js","sourceRoot":"","sources":["../../src/types/firestore.table.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAsCX;AAtCD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,4DAA2C,CAAA;IAC3C,kCAAiB,CAAA;IACjB,8CAA6B,CAAA;IAC7B,mDAAkC,CAAA;IAClC,yDAAwC,CAAA;IACxC,qDAAoC,CAAA;IACpC,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;IAC3B,8CAA6B,CAAA;IAC7B,sCAAqB,CAAA;IACrB,sDAAqC,CAAA;IACrC,wDAAuC,CAAA;IACvC,oCAAmB,CAAA;IACnB,oDAAmC,CAAA;IACnC,sDAAqC,CAAA;IACrC,sDAAqC,CAAA;IACrC,8CAA6B,CAAA;IAC7B,kDAAiC,CAAA;IACjC,sCAAqB,CAAA;IACrB,kDAAiC,CAAA;IACjC,0DAAyC,CAAA;IACzC,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;IAC3B,kDAAiC,CAAA;IACjC,8CAA6B,CAAA;IAC7B,0DAAyC,CAAA;IACzC,8CAA6B,CAAA;IAC7B,gEAA+C,CAAA;IAC/C,kDAAiC,CAAA;IACjC,oDAAmC,CAAA;IAEnC,WAAW;IACX,0DAAyC,CAAA;IACzC,sEAAqD,CAAA;IACrD,wDAAuC,CAAA;AACzC,CAAC,EAtCW,aAAa,KAAb,aAAa,QAsCxB;AAED,MAAM,CAAN,IAAY,UAcX;AAdD,WAAY,UAAU;IAClB,mDAAqC,CAAA;IACrC,qDAAuC,CAAA;IACvC,uDAAyC,CAAA;IACzC,uDAAyC,CAAA;IACzC,qDAAuC,CAAA;IACvC,+CAAiC,CAAA;IACjC,2DAA6C,CAAA;IAC7C,6CAA+B,CAAA;IAC/B,uCAAyB,CAAA;IACzB,uDAAyC,CAAA;IACzC,uDAAyC,CAAA;IACzC,qCAAuB,CAAA;IACvB,+DAAiD,CAAA;AACrD,CAAC,EAdW,UAAU,KAAV,UAAU,QAcrB;AAED,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,yDAAyC,CAAA;IACzC,0DAA0C,CAAA;IAC1C,4EAA4D,CAAA;IAC5D,+EAA+D,CAAA;IAC/D,4DAA4C,CAAA;AAC9C,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@breedware/exampaqs-shared",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "description": "Shared methods and types for exampaqs code base",
6
6
  "main": "dist/index.js",