@nimee/wallet-generator 1.0.1 → 1.0.3

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.
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { IWalletPassData, IAppleWalletConfig, IWalletLayoutField } from '../types';
3
+ export declare const SUBSCRIPTION_TEMPLATE_PATH: string;
3
4
  export interface ApplePassGeneratorOptions {
4
5
  /** Allowed image host list passed to downloadImageBuffer. Empty = all https hosts. */
5
6
  allowedHosts?: string[];
@@ -30,7 +31,7 @@ interface WorkerPayload {
30
31
  value: string;
31
32
  row: string;
32
33
  }>;
33
- relevantDate: string;
34
+ relevantDate?: string;
34
35
  }
35
36
  export declare class ApplePassGenerator {
36
37
  private readonly allowedHosts;
@@ -32,11 +32,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
32
32
  });
33
33
  };
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.ApplePassGenerator = void 0;
35
+ exports.ApplePassGenerator = exports.SUBSCRIPTION_TEMPLATE_PATH = void 0;
36
36
  const fs = __importStar(require("fs"));
37
37
  const path = __importStar(require("path"));
38
38
  const worker_threads_1 = require("worker_threads");
39
39
  const imageHelpers = __importStar(require("../helpers/imageHelpers"));
40
+ exports.SUBSCRIPTION_TEMPLATE_PATH = path.join(__dirname, 'subscription.pass');
40
41
  // ─── Apple pass image dimensions ─────────────────────────────────────────────
41
42
  const LOGO_1X = { w: 160, h: 50 };
42
43
  const LOGO_2X = { w: 320, h: 100 };
@@ -53,35 +54,35 @@ function resolveField(key, data) {
53
54
  switch (key) {
54
55
  case 'event':
55
56
  case 'passTitle':
56
- return data.passTitle ? { label: 'Event', value: data.passTitle } : undefined;
57
+ return data.passTitle ? { label: 'EVENT', value: data.passTitle } : undefined;
57
58
  case 'holder':
58
59
  case 'holderName':
59
60
  case 'attendee':
60
- return data.holderName ? { label: 'Name', value: data.holderName } : undefined;
61
+ return data.holderName ? { label: 'NAME', value: data.holderName } : undefined;
61
62
  case 'date':
62
63
  case 'dateDisplay':
63
- return data.dateDisplay ? { label: 'Date', value: data.dateDisplay } : undefined;
64
+ return data.dateDisplay ? { label: 'DATE', value: data.dateDisplay } : undefined;
64
65
  case 'seat':
65
- return data.seat ? { label: 'Seat', value: data.seat } : undefined;
66
+ return data.seat ? { label: 'SEAT', value: data.seat } : undefined;
66
67
  case 'order':
67
68
  case 'orderNumber':
68
69
  case 'order_number':
69
- return data.orderNumber ? { label: 'Order', value: data.orderNumber } : undefined;
70
+ return data.orderNumber ? { label: 'ORDER', value: data.orderNumber } : undefined;
70
71
  case 'subtitle':
71
72
  case 'passSubtitle':
72
73
  case 'ticket_type':
73
- return data.passSubtitle ? { label: 'Ticket', value: data.passSubtitle } : undefined;
74
+ return data.passSubtitle ? { label: 'TICKET', value: data.passSubtitle } : undefined;
74
75
  case 'plan_name':
75
- return data.passTitle ? { label: 'Plan', value: data.passTitle } : undefined;
76
+ return data.passTitle ? { label: 'PLAN', value: data.passTitle } : undefined;
76
77
  case 'member_name':
77
- return data.holderName ? { label: 'Member', value: data.holderName } : undefined;
78
+ return data.holderName ? { label: 'MEMBER', value: data.holderName } : undefined;
78
79
  case 'valid_from': {
79
80
  const value = data.dateDisplay || (data.startDate ? data.startDate.toLocaleDateString('he-IL') : '') || '';
80
- return value ? { label: 'Valid From', value } : undefined;
81
+ return value ? { label: 'VALID FROM', value } : undefined;
81
82
  }
82
83
  case 'valid_to': {
83
84
  const value = data.endDate ? data.endDate.toLocaleDateString('he-IL') : '';
84
- return value ? { label: 'Valid To', value } : undefined;
85
+ return value ? { label: 'VALID TO', value } : undefined;
85
86
  }
86
87
  default:
87
88
  return undefined;
@@ -104,29 +105,21 @@ class ApplePassGenerator {
104
105
  * @returns Signed `.pkpass` buffer ready to stream to the client.
105
106
  */
106
107
  generate(data, config, defaultLayout) {
107
- var _a, _b, _c;
108
108
  return __awaiter(this, void 0, void 0, function* () {
109
109
  const images = yield this.prepareImages(data);
110
110
  const layoutFields = this.resolveLayout(data, defaultLayout);
111
111
  const modelPath = this.resolveTemplatePath(config);
112
- const passOverrides = Object.assign(Object.assign(Object.assign(Object.assign({ passTypeIdentifier: config.passTypeIdentifier, teamIdentifier: config.teamIdentifier, serialNumber: data.objectId, description: data.passTitle, organizationName: (_a = data.marketplaceName) !== null && _a !== void 0 ? _a : 'Nimi', logoText: (_b = data.marketplaceName) !== null && _b !== void 0 ? _b : 'Nimi' }, (data.backgroundColor && { backgroundColor: data.backgroundColor })), (data.foregroundColor && { foregroundColor: data.foregroundColor })), (data.labelColor && { labelColor: data.labelColor })), (data.isCheckedIn && { voided: true }));
113
- const workerPayload = {
114
- modelPath,
115
- certificates: {
112
+ const passOverrides = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ passTypeIdentifier: config.passTypeIdentifier, teamIdentifier: config.teamIdentifier, serialNumber: data.objectId, description: data.passTitle, organizationName: data.marketplaceName || 'Nimi' }, (data.marketplaceName ? { logoText: data.marketplaceName } : {})), (data.backgroundColor && { backgroundColor: data.backgroundColor })), (data.foregroundColor && { foregroundColor: data.foregroundColor })), (data.labelColor && { labelColor: data.labelColor })), (data.isCheckedIn && { voided: true }));
113
+ const workerPayload = Object.assign({ modelPath, certificates: {
116
114
  signerCert: config.cert,
117
115
  signerKey: config.key,
118
116
  wwdr: config.wwdr,
119
- },
120
- passOverrides,
121
- images,
122
- barcodes: {
117
+ }, passOverrides,
118
+ images, barcodes: {
123
119
  message: data.qrContent,
124
120
  format: 'PKBarcodeFormatQR',
125
121
  messageEncoding: 'iso-8859-1',
126
- },
127
- layoutFields,
128
- relevantDate: ((_c = data.startDate) !== null && _c !== void 0 ? _c : new Date()).toISOString(),
129
- };
122
+ }, layoutFields }, (data.startDate ? { relevantDate: data.startDate.toISOString() } : {}));
130
123
  return this.spawnWorker(workerPayload);
131
124
  });
132
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApplePassGenerator.js","sourceRoot":"","sources":["../../src/apple/ApplePassGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApplePassGenerator.js","sourceRoot":"","sources":["../../src/apple/ApplePassGenerator.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,9 @@ function run() {
18
18
  model: data.modelPath,
19
19
  certificates: data.certificates,
20
20
  }, data.passOverrides);
21
- pass.setRelevantDate(new Date(data.relevantDate));
21
+ if (data.relevantDate) {
22
+ pass.setRelevantDate(new Date(data.relevantDate));
23
+ }
22
24
  for (const img of data.images) {
23
25
  pass.addBuffer(img.name, Buffer.from(img.buffer));
24
26
  }
@@ -27,6 +29,8 @@ function run() {
27
29
  const entry = { key: f.key, label: f.label, value: f.value };
28
30
  if (f.row === "header")
29
31
  pass.headerFields.push(entry);
32
+ if (f.row === "primary")
33
+ pass.primaryFields.push(entry);
30
34
  if (f.row === "secondary")
31
35
  pass.secondaryFields.push(entry);
32
36
  if (f.row === "auxiliary")
@@ -1 +1 @@
1
- {"version":3,"file":"signPassWorker.js","sourceRoot":"","sources":["../../src/apple/signPassWorker.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mDAAwD;AACxD,yDAA2C;AAiB3C,SAAe,GAAG;;QAChB,MAAM,IAAI,GAAG,2BAAwB,CAAC;QAEtC,MAAM,IAAI,GAAG,MAAM,0BAAM,CAAC,IAAI,CAC5B;YACE,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,EACD,IAAI,CAAC,aAAa,CACnB,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAElD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;QAEvC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW;gBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW;gBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,2BAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CAAA;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAClB,2BAAW,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"signPassWorker.js","sourceRoot":"","sources":["../../src/apple/signPassWorker.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mDAAwD;AACxD,yDAA2C;AAiB3C,SAAe,GAAG;;QAChB,MAAM,IAAI,GAAG,2BAAwB,CAAC;QAEtC,MAAM,IAAI,GAAG,MAAM,0BAAM,CAAC,IAAI,CAC5B;YACE,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,EACD,IAAI,CAAC,aAAa,CACnB,CAAC;QAEF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;QAEvC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW;gBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW;gBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM;gBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,2BAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CAAA;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAClB,2BAAW,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ {
2
+ "formatVersion": 1,
3
+ "passTypeIdentifier": "pass.il.co.nimi.event-ticket",
4
+ "teamIdentifier": "PLACEHOLDER",
5
+ "organizationName": "PLACEHOLDER",
6
+ "description": "Subscription Pass",
7
+ "foregroundColor": "rgb(255, 255, 255)",
8
+ "backgroundColor": "rgb(60, 65, 76)",
9
+ "labelColor": "rgb(200, 200, 200)",
10
+ "generic": {
11
+ "primaryFields": [],
12
+ "secondaryFields": [],
13
+ "auxiliaryFields": [],
14
+ "backFields": []
15
+ }
16
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "formatVersion": 1,
3
+ "passTypeIdentifier": "pass.il.co.nimi.event-ticket",
4
+ "teamIdentifier": "PLACEHOLDER",
5
+ "organizationName": "PLACEHOLDER",
6
+ "description": "Subscription Pass",
7
+ "foregroundColor": "rgb(255, 255, 255)",
8
+ "backgroundColor": "rgb(60, 65, 76)",
9
+ "labelColor": "rgb(200, 200, 200)",
10
+ "storeCard": {
11
+ "headerFields": [],
12
+ "primaryFields": [],
13
+ "secondaryFields": [],
14
+ "auxiliaryFields": [],
15
+ "backFields": []
16
+ }
17
+ }
@@ -23,10 +23,15 @@ export declare class GooglePassGenerator {
23
23
  * Generates a Google Wallet "Add to Wallet" save URL for the given pass data.
24
24
  */
25
25
  generateSaveUrl(data: IWalletPassData, config: IGoogleWalletConfig): Promise<string>;
26
+ /**
27
+ * Generates a Google Wallet "Add to Wallet" save URL using genericObject (for subscriptions).
28
+ * Uses genericClass / genericObject API instead of eventTicketClass / eventTicketObject.
29
+ */
30
+ generateSubscriptionSaveUrl(data: IWalletPassData, config: IGoogleWalletConfig): Promise<string>;
26
31
  /**
27
32
  * PATCHes the Google Wallet object state (ACTIVE | EXPIRED | INACTIVE).
28
33
  * Silently no-ops on 404 (pass was never created — expected when user never added to wallet).
29
34
  * Throws on all other errors so callers can log/alert on real failures.
30
35
  */
31
- updateObjectState(rawObjectId: string, config: IGoogleWalletConfig, state: 'ACTIVE' | 'EXPIRED' | 'INACTIVE'): Promise<void>;
36
+ updateObjectState(rawObjectId: string, config: IGoogleWalletConfig, state: 'ACTIVE' | 'EXPIRED' | 'INACTIVE', passType?: 'eventTicket' | 'generic'): Promise<void>;
32
37
  }
@@ -77,17 +77,57 @@ class GooglePassGenerator {
77
77
  return `https://pay.google.com/gp/v/save/${token}`;
78
78
  });
79
79
  }
80
+ /**
81
+ * Generates a Google Wallet "Add to Wallet" save URL using genericObject (for subscriptions).
82
+ * Uses genericClass / genericObject API instead of eventTicketClass / eventTicketObject.
83
+ */
84
+ generateSubscriptionSaveUrl(data, config) {
85
+ var _a, _b, _c, _d, _e;
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ const classId = this.buildClassId(data, config);
88
+ const accessToken = yield (0, googleAuth_1.getGoogleAccessToken)(config);
89
+ const baseUrl = "https://walletobjects.googleapis.com/walletobjects/v1/genericClass";
90
+ const headers = { Authorization: `Bearer ${accessToken}` };
91
+ const classBody = (0, googleAuth_1.buildGoogleGenericClass)(classId, data);
92
+ try {
93
+ yield axios_1.default.post(baseUrl, classBody, { headers, timeout: 5000 });
94
+ }
95
+ catch (err) {
96
+ if (((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 409) {
97
+ yield axios_1.default.patch(`${baseUrl}/${encodeURIComponent(classId)}`, classBody, { headers, timeout: 5000 });
98
+ }
99
+ else {
100
+ throw new Error(`failed to sync Google Wallet generic class: ${(_e = (_d = (_c = (_b = err.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : err.message}`);
101
+ }
102
+ }
103
+ const objectId = `${config.issuerId}.${data.objectId}`.replace(/[^a-zA-Z0-9_.\-]/g, '-');
104
+ const genericObject = (0, googleAuth_1.buildGoogleGenericObject)(objectId, classId, data);
105
+ const claims = {
106
+ iss: config.serviceAccountEmail,
107
+ aud: 'google',
108
+ origins: [],
109
+ typ: 'savetowallet',
110
+ payload: {
111
+ genericObjects: [genericObject],
112
+ },
113
+ };
114
+ const token = jsonwebtoken_1.default.sign(claims, config.privateKey, { algorithm: 'RS256' });
115
+ logger_1.default.info(`[GooglePassGenerator] subscription save URL generated for objectId=${data.objectId}`);
116
+ return `https://pay.google.com/gp/v/save/${token}`;
117
+ });
118
+ }
80
119
  /**
81
120
  * PATCHes the Google Wallet object state (ACTIVE | EXPIRED | INACTIVE).
82
121
  * Silently no-ops on 404 (pass was never created — expected when user never added to wallet).
83
122
  * Throws on all other errors so callers can log/alert on real failures.
84
123
  */
85
- updateObjectState(rawObjectId, config, state) {
124
+ updateObjectState(rawObjectId, config, state, passType = 'eventTicket') {
86
125
  var _a;
87
126
  return __awaiter(this, void 0, void 0, function* () {
88
127
  const accessToken = yield (0, googleAuth_1.getGoogleAccessToken)(config);
89
128
  const encodedId = encodeURIComponent(rawObjectId);
90
- const url = `https://walletobjects.googleapis.com/walletobjects/v1/eventTicketObject/${encodedId}`;
129
+ const objectType = passType === 'generic' ? 'genericObject' : 'eventTicketObject';
130
+ const url = `https://walletobjects.googleapis.com/walletobjects/v1/${objectType}/${encodedId}`;
91
131
  try {
92
132
  yield axios_1.default.patch(url, { state }, {
93
133
  headers: { Authorization: `Bearer ${accessToken}` },
@@ -1 +1 @@
1
- {"version":3,"file":"GooglePassGenerator.js","sourceRoot":"","sources":["../../src/google/GooglePassGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GooglePassGenerator.js","sourceRoot":"","sources":["../../src/google/GooglePassGenerator.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,6 @@ export declare function getGoogleAccessToken(config: IGoogleWalletConfig): Promi
8
8
  */
9
9
  export declare function ensureGoogleTicketClass(config: IGoogleWalletConfig, data: IWalletPassData): Promise<void>;
10
10
  export declare function buildGoogleTicketObject(objectId: string, classId: string, data: IWalletPassData): object;
11
+ export declare function buildGoogleGenericObject(objectId: string, classId: string, data: IWalletPassData): object;
12
+ export declare function buildGoogleGenericClass(classId: string, data: IWalletPassData): object;
11
13
  export declare function buildGoogleTicketClass(classId: string, data: IWalletPassData): object;
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.buildGoogleTicketClass = exports.buildGoogleTicketObject = exports.ensureGoogleTicketClass = exports.getGoogleAccessToken = void 0;
15
+ exports.buildGoogleTicketClass = exports.buildGoogleGenericClass = exports.buildGoogleGenericObject = exports.buildGoogleTicketObject = exports.ensureGoogleTicketClass = exports.getGoogleAccessToken = void 0;
16
16
  const axios_1 = __importDefault(require("axios"));
17
17
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
18
18
  // Intentional module-level singletons — shared across all Wallet instances
@@ -90,6 +90,22 @@ function buildGoogleTicketObject(objectId, classId, data) {
90
90
  ], validTimeInterval: Object.assign({ start: { date: (data.startDate || new Date()).toISOString() } }, (data.endDate && { end: { date: data.endDate.toISOString() } })) });
91
91
  }
92
92
  exports.buildGoogleTicketObject = buildGoogleTicketObject;
93
+ function buildGoogleGenericObject(objectId, classId, data) {
94
+ return Object.assign(Object.assign(Object.assign({ id: objectId, classId, state: "ACTIVE", cardTitle: {
95
+ defaultValue: { language: "en-US", value: data.marketplaceName || "" },
96
+ }, header: {
97
+ defaultValue: { language: "en-US", value: data.passTitle || "" },
98
+ }, subheader: {
99
+ defaultValue: { language: "en-US", value: data.holderName || "" },
100
+ } }, (data.logoUrl && { logo: { sourceUri: { uri: data.logoUrl } } })), (data.backgroundColorHex && { hexBackgroundColor: data.backgroundColorHex })), { barcode: Object.assign({ type: "QR_CODE", value: data.qrContent }, (data.orderNumber && { alternateText: data.orderNumber })), validTimeInterval: Object.assign({ start: { date: (data.startDate || new Date()).toISOString() } }, (data.endDate && { end: { date: data.endDate.toISOString() } })), textModulesData: [
101
+ ...(data.passSubtitle ? [{ header: "PLAN", body: data.passSubtitle }] : []),
102
+ ] });
103
+ }
104
+ exports.buildGoogleGenericObject = buildGoogleGenericObject;
105
+ function buildGoogleGenericClass(classId, data) {
106
+ return Object.assign({ id: classId, issuerName: data.marketplaceName || "", reviewStatus: "UNDER_REVIEW" }, (data.logoUrl && { logo: { sourceUri: { uri: data.logoUrl } } }));
107
+ }
108
+ exports.buildGoogleGenericClass = buildGoogleGenericClass;
93
109
  function buildGoogleTicketClass(classId, data) {
94
110
  return Object.assign(Object.assign({ id: classId, issuerName: data.marketplaceName || "", reviewStatus: "UNDER_REVIEW", eventName: {
95
111
  defaultValue: { language: "en-US", value: data.passTitle || "" },
@@ -1 +1 @@
1
- {"version":3,"file":"googleAuth.js","sourceRoot":"","sources":["../../src/google/googleAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"googleAuth.js","sourceRoot":"","sources":["../../src/google/googleAuth.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from './types';
2
2
  export * from './helpers/colorHelpers';
3
3
  export * from './helpers/imageHelpers';
4
- export { ApplePassGenerator } from './apple/ApplePassGenerator';
4
+ export { ApplePassGenerator, SUBSCRIPTION_TEMPLATE_PATH } from './apple/ApplePassGenerator';
5
5
  export { GooglePassGenerator } from './google/GooglePassGenerator';
package/dist/index.js CHANGED
@@ -14,12 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.GooglePassGenerator = exports.ApplePassGenerator = void 0;
17
+ exports.GooglePassGenerator = exports.SUBSCRIPTION_TEMPLATE_PATH = exports.ApplePassGenerator = void 0;
18
18
  __exportStar(require("./types"), exports);
19
19
  __exportStar(require("./helpers/colorHelpers"), exports);
20
20
  __exportStar(require("./helpers/imageHelpers"), exports);
21
21
  var ApplePassGenerator_1 = require("./apple/ApplePassGenerator");
22
22
  Object.defineProperty(exports, "ApplePassGenerator", { enumerable: true, get: function () { return ApplePassGenerator_1.ApplePassGenerator; } });
23
+ Object.defineProperty(exports, "SUBSCRIPTION_TEMPLATE_PATH", { enumerable: true, get: function () { return ApplePassGenerator_1.SUBSCRIPTION_TEMPLATE_PATH; } });
23
24
  var GooglePassGenerator_1 = require("./google/GooglePassGenerator");
24
25
  Object.defineProperty(exports, "GooglePassGenerator", { enumerable: true, get: function () { return GooglePassGenerator_1.GooglePassGenerator; } });
25
26
  //# 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":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,yDAAuC;AACvC,yDAAuC;AACvC,iEAAgE;AAAvD,wHAAA,kBAAkB,OAAA;AAC3B,oEAAmE;AAA1D,0HAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,yDAAuC;AACvC,yDAAuC;AACvC,iEAA4F;AAAnF,wHAAA,kBAAkB,OAAA;AAAE,gIAAA,0BAA0B,OAAA;AACvD,oEAAmE;AAA1D,0HAAA,mBAAmB,OAAA"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export interface IWalletLayoutField {
2
2
  key: string;
3
- row: 'header' | 'secondary' | 'auxiliary' | 'back' | 'hidden';
3
+ row: 'header' | 'primary' | 'secondary' | 'auxiliary' | 'back' | 'hidden';
4
4
  position: number;
5
5
  }
6
6
  /**
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@nimee/wallet-generator",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Apple Wallet and Google Wallet pass generation for Nimi services",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
8
  "build-ts": "tsc",
9
9
  "watch-ts": "tsc -w",
10
- "build": "npm run build-ts && cp -r src/apple/template.pass dist/apple/template.pass",
10
+ "build": "npm run build-ts && cp -r src/apple/template.pass dist/apple/template.pass && cp -r src/apple/subscription.pass dist/apple/subscription.pass",
11
11
  "lint": "eslint -c ../../.eslintrc.js --ext .ts src/**",
12
12
  "test": "jest --detectOpenHandles --watch",
13
13
  "test:deploy": "jest --ci --coverage",
@@ -4,6 +4,8 @@ import { Worker } from 'worker_threads';
4
4
  import * as imageHelpers from '../helpers/imageHelpers';
5
5
  import { IWalletPassData, IAppleWalletConfig, IWalletLayoutField } from '../types';
6
6
 
7
+ export const SUBSCRIPTION_TEMPLATE_PATH = path.join(__dirname, 'subscription.pass');
8
+
7
9
  // ─── Apple pass image dimensions ─────────────────────────────────────────────
8
10
 
9
11
  const LOGO_1X = { w: 160, h: 50 };
@@ -34,7 +36,7 @@ interface WorkerPayload {
34
36
  images: PassImage[];
35
37
  barcodes: { message: string; format: string; messageEncoding: string };
36
38
  layoutFields: Array<{ key: string; label: string; value: string; row: string }>;
37
- relevantDate: string;
39
+ relevantDate?: string;
38
40
  }
39
41
 
40
42
  // ─── Field resolver ───────────────────────────────────────────────────────────
@@ -50,35 +52,35 @@ function resolveField(
50
52
  switch (key) {
51
53
  case 'event':
52
54
  case 'passTitle':
53
- return data.passTitle ? { label: 'Event', value: data.passTitle } : undefined;
55
+ return data.passTitle ? { label: 'EVENT', value: data.passTitle } : undefined;
54
56
  case 'holder':
55
57
  case 'holderName':
56
58
  case 'attendee':
57
- return data.holderName ? { label: 'Name', value: data.holderName } : undefined;
59
+ return data.holderName ? { label: 'NAME', value: data.holderName } : undefined;
58
60
  case 'date':
59
61
  case 'dateDisplay':
60
- return data.dateDisplay ? { label: 'Date', value: data.dateDisplay } : undefined;
62
+ return data.dateDisplay ? { label: 'DATE', value: data.dateDisplay } : undefined;
61
63
  case 'seat':
62
- return data.seat ? { label: 'Seat', value: data.seat } : undefined;
64
+ return data.seat ? { label: 'SEAT', value: data.seat } : undefined;
63
65
  case 'order':
64
66
  case 'orderNumber':
65
67
  case 'order_number':
66
- return data.orderNumber ? { label: 'Order', value: data.orderNumber } : undefined;
68
+ return data.orderNumber ? { label: 'ORDER', value: data.orderNumber } : undefined;
67
69
  case 'subtitle':
68
70
  case 'passSubtitle':
69
71
  case 'ticket_type':
70
- return data.passSubtitle ? { label: 'Ticket', value: data.passSubtitle } : undefined;
72
+ return data.passSubtitle ? { label: 'TICKET', value: data.passSubtitle } : undefined;
71
73
  case 'plan_name':
72
- return data.passTitle ? { label: 'Plan', value: data.passTitle } : undefined;
74
+ return data.passTitle ? { label: 'PLAN', value: data.passTitle } : undefined;
73
75
  case 'member_name':
74
- return data.holderName ? { label: 'Member', value: data.holderName } : undefined;
76
+ return data.holderName ? { label: 'MEMBER', value: data.holderName } : undefined;
75
77
  case 'valid_from': {
76
78
  const value = data.dateDisplay || (data.startDate ? data.startDate.toLocaleDateString('he-IL') : '') || '';
77
- return value ? { label: 'Valid From', value } : undefined;
79
+ return value ? { label: 'VALID FROM', value } : undefined;
78
80
  }
79
81
  case 'valid_to': {
80
82
  const value = data.endDate ? data.endDate.toLocaleDateString('he-IL') : '';
81
- return value ? { label: 'Valid To', value } : undefined;
83
+ return value ? { label: 'VALID TO', value } : undefined;
82
84
  }
83
85
  default:
84
86
  return undefined;
@@ -120,8 +122,8 @@ export class ApplePassGenerator {
120
122
  teamIdentifier: config.teamIdentifier,
121
123
  serialNumber: data.objectId,
122
124
  description: data.passTitle,
123
- organizationName: data.marketplaceName ?? 'Nimi',
124
- logoText: data.marketplaceName ?? 'Nimi',
125
+ organizationName: data.marketplaceName || 'Nimi',
126
+ ...(data.marketplaceName ? { logoText: data.marketplaceName } : {}),
125
127
  ...(data.backgroundColor && { backgroundColor: data.backgroundColor }),
126
128
  ...(data.foregroundColor && { foregroundColor: data.foregroundColor }),
127
129
  ...(data.labelColor && { labelColor: data.labelColor }),
@@ -143,7 +145,7 @@ export class ApplePassGenerator {
143
145
  messageEncoding: 'iso-8859-1',
144
146
  },
145
147
  layoutFields,
146
- relevantDate: (data.startDate ?? new Date()).toISOString(),
148
+ ...(data.startDate ? { relevantDate: data.startDate.toISOString() } : {}),
147
149
  };
148
150
 
149
151
  return this.spawnWorker(workerPayload);
@@ -13,7 +13,7 @@ interface WorkerData {
13
13
  images: PassImage[];
14
14
  barcodes: { message: string; format: string; messageEncoding: string };
15
15
  layoutFields: Array<{ key: string; label: string; value: string; row: string }>;
16
- relevantDate: string;
16
+ relevantDate?: string;
17
17
  }
18
18
 
19
19
  async function run() {
@@ -27,7 +27,9 @@ async function run() {
27
27
  data.passOverrides
28
28
  );
29
29
 
30
- pass.setRelevantDate(new Date(data.relevantDate));
30
+ if (data.relevantDate) {
31
+ pass.setRelevantDate(new Date(data.relevantDate));
32
+ }
31
33
 
32
34
  for (const img of data.images) {
33
35
  pass.addBuffer(img.name, Buffer.from(img.buffer));
@@ -38,6 +40,7 @@ async function run() {
38
40
  for (const f of data.layoutFields) {
39
41
  const entry = { key: f.key, label: f.label, value: f.value };
40
42
  if (f.row === "header") pass.headerFields.push(entry);
43
+ if (f.row === "primary") pass.primaryFields.push(entry);
41
44
  if (f.row === "secondary") pass.secondaryFields.push(entry);
42
45
  if (f.row === "auxiliary") pass.auxiliaryFields.push(entry);
43
46
  if (f.row === "back") pass.backFields.push(entry);
@@ -0,0 +1,17 @@
1
+ {
2
+ "formatVersion": 1,
3
+ "passTypeIdentifier": "pass.il.co.nimi.event-ticket",
4
+ "teamIdentifier": "PLACEHOLDER",
5
+ "organizationName": "PLACEHOLDER",
6
+ "description": "Subscription Pass",
7
+ "foregroundColor": "rgb(255, 255, 255)",
8
+ "backgroundColor": "rgb(60, 65, 76)",
9
+ "labelColor": "rgb(200, 200, 200)",
10
+ "storeCard": {
11
+ "headerFields": [],
12
+ "primaryFields": [],
13
+ "secondaryFields": [],
14
+ "auxiliaryFields": [],
15
+ "backFields": []
16
+ }
17
+ }
@@ -2,7 +2,7 @@ import axios from 'axios';
2
2
  import jwt from 'jsonwebtoken';
3
3
  import logger from '@nimee/logger';
4
4
  import { IGoogleWalletConfig, IWalletPassData } from '../types';
5
- import { ensureGoogleTicketClass, getGoogleAccessToken, buildGoogleTicketObject } from './googleAuth';
5
+ import { ensureGoogleTicketClass, getGoogleAccessToken, buildGoogleTicketObject, buildGoogleGenericObject, buildGoogleGenericClass } from './googleAuth';
6
6
 
7
7
  export class GooglePassGenerator {
8
8
  /**
@@ -69,6 +69,45 @@ export class GooglePassGenerator {
69
69
  return `https://pay.google.com/gp/v/save/${token}`;
70
70
  }
71
71
 
72
+ /**
73
+ * Generates a Google Wallet "Add to Wallet" save URL using genericObject (for subscriptions).
74
+ * Uses genericClass / genericObject API instead of eventTicketClass / eventTicketObject.
75
+ */
76
+ async generateSubscriptionSaveUrl(data: IWalletPassData, config: IGoogleWalletConfig): Promise<string> {
77
+ const classId = this.buildClassId(data, config);
78
+ const accessToken = await getGoogleAccessToken(config);
79
+ const baseUrl = "https://walletobjects.googleapis.com/walletobjects/v1/genericClass";
80
+ const headers = { Authorization: `Bearer ${accessToken}` };
81
+ const classBody = buildGoogleGenericClass(classId, data);
82
+
83
+ try {
84
+ await axios.post(baseUrl, classBody, { headers, timeout: 5000 });
85
+ } catch (err: any) {
86
+ if (err.response?.status === 409) {
87
+ await axios.patch(`${baseUrl}/${encodeURIComponent(classId)}`, classBody, { headers, timeout: 5000 });
88
+ } else {
89
+ throw new Error(`failed to sync Google Wallet generic class: ${err.response?.data?.error?.message ?? err.message}`);
90
+ }
91
+ }
92
+
93
+ const objectId = `${config.issuerId}.${data.objectId}`.replace(/[^a-zA-Z0-9_.\-]/g, '-');
94
+ const genericObject = buildGoogleGenericObject(objectId, classId, data);
95
+
96
+ const claims = {
97
+ iss: config.serviceAccountEmail,
98
+ aud: 'google',
99
+ origins: [] as string[],
100
+ typ: 'savetowallet',
101
+ payload: {
102
+ genericObjects: [genericObject],
103
+ },
104
+ };
105
+
106
+ const token = jwt.sign(claims, config.privateKey, { algorithm: 'RS256' });
107
+ logger.info(`[GooglePassGenerator] subscription save URL generated for objectId=${data.objectId}`);
108
+ return `https://pay.google.com/gp/v/save/${token}`;
109
+ }
110
+
72
111
  /**
73
112
  * PATCHes the Google Wallet object state (ACTIVE | EXPIRED | INACTIVE).
74
113
  * Silently no-ops on 404 (pass was never created — expected when user never added to wallet).
@@ -77,11 +116,13 @@ export class GooglePassGenerator {
77
116
  async updateObjectState(
78
117
  rawObjectId: string,
79
118
  config: IGoogleWalletConfig,
80
- state: 'ACTIVE' | 'EXPIRED' | 'INACTIVE'
119
+ state: 'ACTIVE' | 'EXPIRED' | 'INACTIVE',
120
+ passType: 'eventTicket' | 'generic' = 'eventTicket'
81
121
  ): Promise<void> {
82
122
  const accessToken = await getGoogleAccessToken(config);
83
123
  const encodedId = encodeURIComponent(rawObjectId);
84
- const url = `https://walletobjects.googleapis.com/walletobjects/v1/eventTicketObject/${encodedId}`;
124
+ const objectType = passType === 'generic' ? 'genericObject' : 'eventTicketObject';
125
+ const url = `https://walletobjects.googleapis.com/walletobjects/v1/${objectType}/${encodedId}`;
85
126
 
86
127
  try {
87
128
  await axios.patch(
@@ -121,6 +121,46 @@ export function buildGoogleTicketObject(objectId: string, classId: string, data:
121
121
  };
122
122
  }
123
123
 
124
+ export function buildGoogleGenericObject(objectId: string, classId: string, data: IWalletPassData): object {
125
+ return {
126
+ id: objectId,
127
+ classId,
128
+ state: "ACTIVE",
129
+ cardTitle: {
130
+ defaultValue: { language: "en-US", value: data.marketplaceName || "" },
131
+ },
132
+ header: {
133
+ defaultValue: { language: "en-US", value: data.passTitle || "" },
134
+ },
135
+ subheader: {
136
+ defaultValue: { language: "en-US", value: data.holderName || "" },
137
+ },
138
+ ...(data.logoUrl && { logo: { sourceUri: { uri: data.logoUrl } } }),
139
+ ...(data.backgroundColorHex && { hexBackgroundColor: data.backgroundColorHex }),
140
+ barcode: {
141
+ type: "QR_CODE",
142
+ value: data.qrContent,
143
+ ...(data.orderNumber && { alternateText: data.orderNumber }),
144
+ },
145
+ validTimeInterval: {
146
+ start: { date: (data.startDate || new Date()).toISOString() },
147
+ ...(data.endDate && { end: { date: data.endDate.toISOString() } }),
148
+ },
149
+ textModulesData: [
150
+ ...(data.passSubtitle ? [{ header: "PLAN", body: data.passSubtitle }] : []),
151
+ ],
152
+ };
153
+ }
154
+
155
+ export function buildGoogleGenericClass(classId: string, data: IWalletPassData): object {
156
+ return {
157
+ id: classId,
158
+ issuerName: data.marketplaceName || "",
159
+ reviewStatus: "UNDER_REVIEW",
160
+ ...(data.logoUrl && { logo: { sourceUri: { uri: data.logoUrl } } }),
161
+ };
162
+ }
163
+
124
164
  export function buildGoogleTicketClass(classId: string, data: IWalletPassData): object {
125
165
  return {
126
166
  id: classId,
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from './types';
2
2
  export * from './helpers/colorHelpers';
3
3
  export * from './helpers/imageHelpers';
4
- export { ApplePassGenerator } from './apple/ApplePassGenerator';
4
+ export { ApplePassGenerator, SUBSCRIPTION_TEMPLATE_PATH } from './apple/ApplePassGenerator';
5
5
  export { GooglePassGenerator } from './google/GooglePassGenerator';
package/src/types.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export interface IWalletLayoutField {
2
2
  key: string;
3
- row: 'header' | 'secondary' | 'auxiliary' | 'back' | 'hidden';
3
+ row: 'header' | 'primary' | 'secondary' | 'auxiliary' | 'back' | 'hidden';
4
4
  position: number;
5
5
  }
6
6