@nimee/wallet-generator 1.0.0 → 1.0.2

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.
@@ -65,9 +65,11 @@ function resolveField(key, data) {
65
65
  return data.seat ? { label: 'Seat', value: data.seat } : undefined;
66
66
  case 'order':
67
67
  case 'orderNumber':
68
+ case 'order_number':
68
69
  return data.orderNumber ? { label: 'Order', value: data.orderNumber } : undefined;
69
70
  case 'subtitle':
70
71
  case 'passSubtitle':
72
+ case 'ticket_type':
71
73
  return data.passSubtitle ? { label: 'Ticket', value: data.passSubtitle } : undefined;
72
74
  case 'plan_name':
73
75
  return data.passTitle ? { label: 'Plan', value: data.passTitle } : undefined;
@@ -102,12 +104,12 @@ class ApplePassGenerator {
102
104
  * @returns Signed `.pkpass` buffer ready to stream to the client.
103
105
  */
104
106
  generate(data, config, defaultLayout) {
105
- var _a, _b, _c;
107
+ var _a;
106
108
  return __awaiter(this, void 0, void 0, function* () {
107
109
  const images = yield this.prepareImages(data);
108
110
  const layoutFields = this.resolveLayout(data, defaultLayout);
109
111
  const modelPath = this.resolveTemplatePath(config);
110
- 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 }));
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 }));
111
113
  const workerPayload = {
112
114
  modelPath,
113
115
  certificates: {
@@ -123,7 +125,7 @@ class ApplePassGenerator {
123
125
  messageEncoding: 'iso-8859-1',
124
126
  },
125
127
  layoutFields,
126
- relevantDate: ((_c = data.startDate) !== null && _c !== void 0 ? _c : new Date()).toISOString(),
128
+ relevantDate: ((_a = data.startDate) !== null && _a !== void 0 ? _a : new Date()).toISOString(),
127
129
  };
128
130
  return this.spawnWorker(workerPayload);
129
131
  });
@@ -155,10 +157,10 @@ class ApplePassGenerator {
155
157
  const cleanup = () => {
156
158
  clearTimeout(timer);
157
159
  worker.removeAllListeners();
160
+ worker.terminate();
158
161
  };
159
162
  const timer = setTimeout(() => {
160
163
  cleanup();
161
- worker.terminate();
162
164
  reject(new Error(`[ApplePassGenerator] worker timed out after ${workerTimeoutMs}ms`));
163
165
  }, workerTimeoutMs);
164
166
  worker.on('message', (msg) => {
@@ -166,6 +168,9 @@ class ApplePassGenerator {
166
168
  if (msg === null || msg === void 0 ? void 0 : msg.error) {
167
169
  reject(new Error(msg.error));
168
170
  }
171
+ else if (!(msg instanceof Uint8Array)) {
172
+ reject(new Error('[ApplePassGenerator] invalid worker payload'));
173
+ }
169
174
  else {
170
175
  resolve(Buffer.from(msg));
171
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApplePassGenerator.js","sourceRoot":"","sources":["../../src/apple/ApplePassGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAwC;AACxC,sEAAwD;AAGxD,gFAAgF;AAEhF,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAClC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AACnC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AACjC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AACjC,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AA0BpC,iFAAiF;AAEjF;;;GAGG;AACH,SAAS,YAAY,CACnB,GAAW,EACX,IAAqB;IAErB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,WAAW;YACd,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,KAAK,MAAM,CAAC;QACZ,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,KAAK,OAAO,CAAC;QACb,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,KAAK,UAAU,CAAC;QAChB,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,KAAK,WAAW;YACd,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC3G,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,CAAC;QACD;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAa,kBAAkB;IAI7B,YAAY,UAAqC,EAAE;;QACjD,IAAI,CAAC,YAAY,GAAG,MAAA,OAAO,CAAC,YAAY,mCAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,MAAA,OAAO,CAAC,eAAe,mCAAI,KAAM,CAAC;IAC3D,CAAC;IAED,8EAA8E;IAE9E;;;;;;;OAOG;IACG,QAAQ,CACZ,IAAqB,EACrB,MAA0B,EAC1B,aAAmC;;;YAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,aAAa,6DACjB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAC7C,cAAc,EAAE,MAAM,CAAC,cAAc,EACrC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAC3B,WAAW,EAAE,IAAI,CAAC,SAAS,EAC3B,gBAAgB,EAAE,MAAA,IAAI,CAAC,eAAe,mCAAI,MAAM,EAChD,QAAQ,EAAE,MAAA,IAAI,CAAC,eAAe,mCAAI,MAAM,IACrC,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,GACnE,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,GACnE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GACpD,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAC1C,CAAC;YAEF,MAAM,aAAa,GAAkB;gBACnC,SAAS;gBACT,YAAY,EAAE;oBACZ,UAAU,EAAE,MAAM,CAAC,IAAI;oBACvB,SAAS,EAAE,MAAM,CAAC,GAAG;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB;gBACD,aAAa;gBACb,MAAM;gBACN,QAAQ,EAAE;oBACR,OAAO,EAAE,IAAI,CAAC,SAAS;oBACvB,MAAM,EAAE,mBAAmB;oBAC3B,eAAe,EAAE,YAAY;iBAC9B;gBACD,YAAY;gBACZ,YAAY,EAAE,CAAC,MAAA,IAAI,CAAC,SAAS,mCAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;aAC3D,CAAC;YAEF,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;;KACxC;IAED,8EAA8E;IAE9E;;;;OAIG;IACH,mBAAmB,CAAC,MAA0B;;QAC5C,OAAO,MAAA,MAAM,CAAC,YAAY,mCAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACtE,CAAC;IAED,8EAA8E;IAE9E;;;;OAIG;IACH,WAAW,CAAC,UAAyB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAEtE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QAEjC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,kCAC/B,CAAC,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC,KAC5D,UAAU,IACV,CAAC;YAEH,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,CAAC,CAAC;YAEF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,eAAe,IAAI,CAAC,CAAC,CAAC;YACxF,CAAC,EAAE,eAAe,CAAC,CAAC;YAEpB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3B,OAAO,EAAE,CAAC;gBACV,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,EAAE,CAAC;gBACV,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAE9E;;;OAGG;IACW,aAAa,CAAC,IAAqB;;YAC/C,MAAM,cAAc,GAAG,IAAK,CAAC;YAC7B,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC5C,IAAI,CAAC,OAAO;oBACV,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC;oBACnF,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC9B,IAAI,CAAC,aAAa;oBAChB,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC;oBACzF,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;aAC/B,CAAC,CAAC;YAEH,4EAA4E;YAC5E,IAAI,UAAU,GAAuB,OAAO,CAAC;YAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;gBACvE,IAAI,CAAC;oBACH,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACxD,CAAC;gBAAC,WAAM,CAAC;oBACP,4EAA4E;gBAC9E,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAgB,EAAE,CAAC;YAE/B,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACzD,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;oBAChE,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;oBAChE,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;oBAChE,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;iBACjE,CAAC,CAAC;gBACH,IAAI,MAAM;oBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,IAAI,MAAM;oBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBACjE,IAAI,MAAM;oBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,IAAI,MAAM;oBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC3C,YAAY,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAChE,YAAY,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;iBACjE,CAAC,CAAC;gBACH,IAAI,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBACjE,IAAI,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAED;;;OAGG;IACK,aAAa,CACnB,IAAqB,EACrB,aAAmC;;QAEnC,MAAM,MAAM,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,mCAAI,aAAa,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAsE,EAAE,CAAC;QACrF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA3MD,gDA2MC"}
1
+ {"version":3,"file":"ApplePassGenerator.js","sourceRoot":"","sources":["../../src/apple/ApplePassGenerator.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,8 @@ export declare class GooglePassGenerator {
25
25
  generateSaveUrl(data: IWalletPassData, config: IGoogleWalletConfig): Promise<string>;
26
26
  /**
27
27
  * PATCHes the Google Wallet object state (ACTIVE | EXPIRED | INACTIVE).
28
- * Never throwsswallows all errors and logs a warning instead.
28
+ * Silently no-ops on 404 (pass was never created expected when user never added to wallet).
29
+ * Throws on all other errors so callers can log/alert on real failures.
29
30
  */
30
31
  updateObjectState(rawObjectId: string, config: IGoogleWalletConfig, state: 'ACTIVE' | 'EXPIRED' | 'INACTIVE'): Promise<void>;
31
32
  }
@@ -79,14 +79,16 @@ class GooglePassGenerator {
79
79
  }
80
80
  /**
81
81
  * PATCHes the Google Wallet object state (ACTIVE | EXPIRED | INACTIVE).
82
- * Never throwsswallows all errors and logs a warning instead.
82
+ * Silently no-ops on 404 (pass was never created expected when user never added to wallet).
83
+ * Throws on all other errors so callers can log/alert on real failures.
83
84
  */
84
85
  updateObjectState(rawObjectId, config, state) {
86
+ var _a;
85
87
  return __awaiter(this, void 0, void 0, function* () {
88
+ const accessToken = yield (0, googleAuth_1.getGoogleAccessToken)(config);
89
+ const encodedId = encodeURIComponent(rawObjectId);
90
+ const url = `https://walletobjects.googleapis.com/walletobjects/v1/eventTicketObject/${encodedId}`;
86
91
  try {
87
- const accessToken = yield (0, googleAuth_1.getGoogleAccessToken)(config);
88
- const encodedId = encodeURIComponent(rawObjectId);
89
- const url = `https://walletobjects.googleapis.com/walletobjects/v1/eventTicketObject/${encodedId}`;
90
92
  yield axios_1.default.patch(url, { state }, {
91
93
  headers: { Authorization: `Bearer ${accessToken}` },
92
94
  timeout: 5000,
@@ -94,7 +96,11 @@ class GooglePassGenerator {
94
96
  logger_1.default.info(`[GooglePassGenerator] object ${rawObjectId} state updated to ${state}`);
95
97
  }
96
98
  catch (err) {
97
- logger_1.default.warn(`[GooglePassGenerator] failed to update object state for ${rawObjectId} ${state}: ${err instanceof Error ? err.message : String(err)}`);
99
+ if (((_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
100
+ // Pass object doesn't exist — user never added to Google Wallet, nothing to invalidate
101
+ return;
102
+ }
103
+ throw err;
98
104
  }
99
105
  });
100
106
  }
@@ -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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"}
@@ -82,8 +82,8 @@ function buildGoogleTicketObject(objectId, classId, data) {
82
82
  const dateDisplay = data.dateDisplay;
83
83
  return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ id: objectId, classId, state: data.isCheckedIn ? "COMPLETED" : "ACTIVE", ticketHolderName: data.holderName, issueName: data.marketplaceName || "", ticketNumber: data.orderNumber || "" }, (data.logoUrl && { logo: { sourceUri: { uri: data.logoUrl } } })), { barcode: Object.assign({ type: "QR_CODE", value: data.qrContent }, (data.orderNumber && { alternateText: data.orderNumber })), eventName: {
84
84
  defaultValue: { language: "en-US", value: data.passTitle || "" },
85
- } }), (data.backgroundColorHex && { hexBackgroundColor: data.backgroundColorHex })), ((data.seat) && {
86
- seatInfo: Object.assign({}, (data.seat && { seat: { defaultValue: { language: "en-US", value: data.seat } } })),
85
+ } }), (data.backgroundColorHex && { hexBackgroundColor: data.backgroundColorHex })), ((data.seat || data.seatRow) && {
86
+ seatInfo: Object.assign(Object.assign({}, (data.seat && { seat: { defaultValue: { language: "en-US", value: data.seat } } })), (data.seatRow && { row: { defaultValue: { language: "en-US", value: data.seatRow } } })),
87
87
  })), { textModulesData: [
88
88
  { header: "TICKET", body: data.passSubtitle || data.passTitle || "" },
89
89
  ...(dateDisplay ? [{ header: "DATE", body: dateDisplay }] : []),
@@ -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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"}
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -15,6 +38,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
38
  exports.resizeImageBuffer = exports.downloadImageBuffer = exports.isAllowedImageUrl = exports.WEBP_WEBP = exports.WEBP_RIFF = exports.JPEG_MAGIC = exports.PNG_MAGIC = exports.IMAGE_MAX_SIZE = void 0;
16
39
  const axios_1 = __importDefault(require("axios"));
17
40
  const sharp_1 = __importDefault(require("sharp"));
41
+ const dns = __importStar(require("dns"));
42
+ const net = __importStar(require("net"));
18
43
  // ─── Image validation constants ───────────────────────────────────────────────
19
44
  exports.IMAGE_MAX_SIZE = 5 * 1024 * 1024; // 5 MB
20
45
  exports.PNG_MAGIC = Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);
@@ -42,6 +67,33 @@ function isAllowedImageUrl(url, allowedHosts) {
42
67
  return allowedHosts.some((host) => parsed.hostname === host || parsed.hostname.endsWith(`.${host}`));
43
68
  }
44
69
  exports.isAllowedImageUrl = isAllowedImageUrl;
70
+ // ─── SSRF guard ───────────────────────────────────────────────────────────────
71
+ function isPrivateIp(ip) {
72
+ if (net.isIPv6(ip)) {
73
+ // loopback, link-local, unique-local
74
+ return ip === '::1' || /^fe80:/i.test(ip) || /^f[cd]/i.test(ip);
75
+ }
76
+ // RFC1918, loopback, link-local (169.254.x.x = AWS metadata service)
77
+ return (/^10\./.test(ip) ||
78
+ /^172\.(1[6-9]|2\d|3[01])\./.test(ip) ||
79
+ /^192\.168\./.test(ip) ||
80
+ /^127\./.test(ip) ||
81
+ /^169\.254\./.test(ip) ||
82
+ /^0\./.test(ip));
83
+ }
84
+ /** Resolves the hostname and returns true if any resolved address is private. */
85
+ function resolvesToPrivateIp(hostname) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ try {
88
+ const addresses = yield dns.promises.resolve(hostname);
89
+ return addresses.some(isPrivateIp);
90
+ }
91
+ catch (_a) {
92
+ // DNS failure → treat as unsafe to avoid SSRF via unresolvable names
93
+ return true;
94
+ }
95
+ });
96
+ }
45
97
  // ─── Image download ───────────────────────────────────────────────────────────
46
98
  /**
47
99
  * Downloads an image from a URL, validates it, and returns its buffer.
@@ -52,11 +104,16 @@ function downloadImageBuffer(url, allowedHosts, timeoutMs = 10000) {
52
104
  return __awaiter(this, void 0, void 0, function* () {
53
105
  if (!isAllowedImageUrl(url, allowedHosts))
54
106
  return undefined;
107
+ // Guard against DNS rebinding: block if the hostname resolves to a private IP
108
+ const { hostname } = new URL(url);
109
+ if (yield resolvesToPrivateIp(hostname))
110
+ return undefined;
55
111
  try {
56
112
  const response = yield axios_1.default.get(url, {
57
113
  responseType: 'arraybuffer',
58
114
  timeout: timeoutMs,
59
115
  maxContentLength: exports.IMAGE_MAX_SIZE,
116
+ maxRedirects: 0,
60
117
  });
61
118
  const buffer = Buffer.from(response.data);
62
119
  if (buffer.length > exports.IMAGE_MAX_SIZE)
@@ -1 +1 @@
1
- {"version":3,"file":"imageHelpers.js","sourceRoot":"","sources":["../../src/helpers/imageHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imageHelpers.js","sourceRoot":"","sources":["../../src/helpers/imageHelpers.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -21,6 +21,7 @@ export interface IWalletPassData {
21
21
  startDate?: Date;
22
22
  endDate?: Date;
23
23
  seat?: string;
24
+ seatRow?: string;
24
25
  orderNumber?: string;
25
26
  /** True when the QR code has already been scanned/used. Affects Google pass state. */
26
27
  isCheckedIn?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nimee/wallet-generator",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
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",
@@ -62,9 +62,11 @@ function resolveField(
62
62
  return data.seat ? { label: 'Seat', value: data.seat } : undefined;
63
63
  case 'order':
64
64
  case 'orderNumber':
65
+ case 'order_number':
65
66
  return data.orderNumber ? { label: 'Order', value: data.orderNumber } : undefined;
66
67
  case 'subtitle':
67
68
  case 'passSubtitle':
69
+ case 'ticket_type':
68
70
  return data.passSubtitle ? { label: 'Ticket', value: data.passSubtitle } : undefined;
69
71
  case 'plan_name':
70
72
  return data.passTitle ? { label: 'Plan', value: data.passTitle } : undefined;
@@ -118,8 +120,8 @@ export class ApplePassGenerator {
118
120
  teamIdentifier: config.teamIdentifier,
119
121
  serialNumber: data.objectId,
120
122
  description: data.passTitle,
121
- organizationName: data.marketplaceName ?? 'Nimi',
122
- logoText: data.marketplaceName ?? 'Nimi',
123
+ organizationName: data.marketplaceName || 'Nimi',
124
+ ...(data.marketplaceName ? { logoText: data.marketplaceName } : {}),
123
125
  ...(data.backgroundColor && { backgroundColor: data.backgroundColor }),
124
126
  ...(data.foregroundColor && { foregroundColor: data.foregroundColor }),
125
127
  ...(data.labelColor && { labelColor: data.labelColor }),
@@ -182,11 +184,11 @@ export class ApplePassGenerator {
182
184
  const cleanup = () => {
183
185
  clearTimeout(timer);
184
186
  worker.removeAllListeners();
187
+ worker.terminate();
185
188
  };
186
189
 
187
190
  const timer = setTimeout(() => {
188
191
  cleanup();
189
- worker.terminate();
190
192
  reject(new Error(`[ApplePassGenerator] worker timed out after ${workerTimeoutMs}ms`));
191
193
  }, workerTimeoutMs);
192
194
 
@@ -194,6 +196,8 @@ export class ApplePassGenerator {
194
196
  cleanup();
195
197
  if (msg?.error) {
196
198
  reject(new Error(msg.error));
199
+ } else if (!(msg instanceof Uint8Array)) {
200
+ reject(new Error('[ApplePassGenerator] invalid worker payload'));
197
201
  } else {
198
202
  resolve(Buffer.from(msg));
199
203
  }
@@ -71,18 +71,19 @@ export class GooglePassGenerator {
71
71
 
72
72
  /**
73
73
  * PATCHes the Google Wallet object state (ACTIVE | EXPIRED | INACTIVE).
74
- * Never throwsswallows all errors and logs a warning instead.
74
+ * Silently no-ops on 404 (pass was never created expected when user never added to wallet).
75
+ * Throws on all other errors so callers can log/alert on real failures.
75
76
  */
76
77
  async updateObjectState(
77
78
  rawObjectId: string,
78
79
  config: IGoogleWalletConfig,
79
80
  state: 'ACTIVE' | 'EXPIRED' | 'INACTIVE'
80
81
  ): Promise<void> {
81
- try {
82
- const accessToken = await getGoogleAccessToken(config);
83
- const encodedId = encodeURIComponent(rawObjectId);
84
- const url = `https://walletobjects.googleapis.com/walletobjects/v1/eventTicketObject/${encodedId}`;
82
+ const accessToken = await getGoogleAccessToken(config);
83
+ const encodedId = encodeURIComponent(rawObjectId);
84
+ const url = `https://walletobjects.googleapis.com/walletobjects/v1/eventTicketObject/${encodedId}`;
85
85
 
86
+ try {
86
87
  await axios.patch(
87
88
  url,
88
89
  { state },
@@ -91,14 +92,13 @@ export class GooglePassGenerator {
91
92
  timeout: 5000,
92
93
  }
93
94
  );
94
-
95
95
  logger.info(`[GooglePassGenerator] object ${rawObjectId} state updated to ${state}`);
96
- } catch (err) {
97
- logger.warn(
98
- `[GooglePassGenerator] failed to update object state for ${rawObjectId} ${state}: ${
99
- err instanceof Error ? err.message : String(err)
100
- }`
101
- );
96
+ } catch (err: any) {
97
+ if (err?.response?.status === 404) {
98
+ // Pass object doesn't exist user never added to Google Wallet, nothing to invalidate
99
+ return;
100
+ }
101
+ throw err;
102
102
  }
103
103
  }
104
104
  }
@@ -104,9 +104,10 @@ export function buildGoogleTicketObject(objectId: string, classId: string, data:
104
104
  defaultValue: { language: "en-US", value: data.passTitle || "" },
105
105
  },
106
106
  ...(data.backgroundColorHex && { hexBackgroundColor: data.backgroundColorHex }),
107
- ...((data.seat) && {
107
+ ...((data.seat || data.seatRow) && {
108
108
  seatInfo: {
109
109
  ...(data.seat && { seat: { defaultValue: { language: "en-US", value: data.seat } } }),
110
+ ...(data.seatRow && { row: { defaultValue: { language: "en-US", value: data.seatRow } } }),
110
111
  },
111
112
  }),
112
113
  textModulesData: [
@@ -1,5 +1,7 @@
1
1
  import axios from 'axios';
2
2
  import sharp from 'sharp';
3
+ import * as dns from 'dns';
4
+ import * as net from 'net';
3
5
 
4
6
  // ─── Image validation constants ───────────────────────────────────────────────
5
7
 
@@ -30,6 +32,35 @@ export function isAllowedImageUrl(url: string, allowedHosts: string[]): boolean
30
32
  return allowedHosts.some((host) => parsed.hostname === host || parsed.hostname.endsWith(`.${host}`));
31
33
  }
32
34
 
35
+ // ─── SSRF guard ───────────────────────────────────────────────────────────────
36
+
37
+ function isPrivateIp(ip: string): boolean {
38
+ if (net.isIPv6(ip)) {
39
+ // loopback, link-local, unique-local
40
+ return ip === '::1' || /^fe80:/i.test(ip) || /^f[cd]/i.test(ip);
41
+ }
42
+ // RFC1918, loopback, link-local (169.254.x.x = AWS metadata service)
43
+ return (
44
+ /^10\./.test(ip) ||
45
+ /^172\.(1[6-9]|2\d|3[01])\./.test(ip) ||
46
+ /^192\.168\./.test(ip) ||
47
+ /^127\./.test(ip) ||
48
+ /^169\.254\./.test(ip) ||
49
+ /^0\./.test(ip)
50
+ );
51
+ }
52
+
53
+ /** Resolves the hostname and returns true if any resolved address is private. */
54
+ async function resolvesToPrivateIp(hostname: string): Promise<boolean> {
55
+ try {
56
+ const addresses = await dns.promises.resolve(hostname);
57
+ return addresses.some(isPrivateIp);
58
+ } catch {
59
+ // DNS failure → treat as unsafe to avoid SSRF via unresolvable names
60
+ return true;
61
+ }
62
+ }
63
+
33
64
  // ─── Image download ───────────────────────────────────────────────────────────
34
65
 
35
66
  /**
@@ -44,11 +75,16 @@ export async function downloadImageBuffer(
44
75
  ): Promise<Buffer | undefined> {
45
76
  if (!isAllowedImageUrl(url, allowedHosts)) return undefined;
46
77
 
78
+ // Guard against DNS rebinding: block if the hostname resolves to a private IP
79
+ const { hostname } = new URL(url);
80
+ if (await resolvesToPrivateIp(hostname)) return undefined;
81
+
47
82
  try {
48
83
  const response = await axios.get<Buffer>(url, {
49
84
  responseType: 'arraybuffer',
50
85
  timeout: timeoutMs,
51
86
  maxContentLength: IMAGE_MAX_SIZE,
87
+ maxRedirects: 0,
52
88
  });
53
89
 
54
90
  const buffer = Buffer.from(response.data);
package/src/types.ts CHANGED
@@ -22,6 +22,7 @@ export interface IWalletPassData {
22
22
  startDate?: Date;
23
23
  endDate?: Date;
24
24
  seat?: string;
25
+ seatRow?: string;
25
26
  orderNumber?: string;
26
27
  /** True when the QR code has already been scanned/used. Affects Google pass state. */
27
28
  isCheckedIn?: boolean;