@unchainedshop/ticketing 3.0.0-rc9 → 3.0.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.
Files changed (66) hide show
  1. package/lib/express.d.ts +4 -0
  2. package/lib/express.d.ts.map +1 -0
  3. package/lib/express.js +17 -0
  4. package/lib/express.js.map +1 -0
  5. package/lib/fastify.d.ts +4 -0
  6. package/lib/fastify.d.ts.map +1 -0
  7. package/lib/fastify.js +22 -0
  8. package/lib/fastify.js.map +1 -0
  9. package/lib/index.d.ts +6 -35
  10. package/lib/index.d.ts.map +1 -1
  11. package/lib/index.js +8 -19
  12. package/lib/index.js.map +1 -1
  13. package/lib/mobile-tickets/apple-handler-express.d.ts +7 -0
  14. package/lib/mobile-tickets/apple-handler-express.d.ts.map +1 -0
  15. package/lib/mobile-tickets/{apple-webservice.js → apple-handler-express.js} +3 -9
  16. package/lib/mobile-tickets/apple-handler-express.js.map +1 -0
  17. package/lib/mobile-tickets/apple-handler-fastify.d.ts +4 -0
  18. package/lib/mobile-tickets/apple-handler-fastify.d.ts.map +1 -0
  19. package/lib/mobile-tickets/apple-handler-fastify.js +158 -0
  20. package/lib/mobile-tickets/apple-handler-fastify.js.map +1 -0
  21. package/lib/mobile-tickets/{google-webservice.d.ts → google-handler-express.d.ts} +3 -3
  22. package/lib/mobile-tickets/google-handler-express.d.ts.map +1 -0
  23. package/lib/mobile-tickets/{google-webservice.js → google-handler-express.js} +2 -8
  24. package/lib/mobile-tickets/google-handler-express.js.map +1 -0
  25. package/lib/mobile-tickets/google-handler-fastify.d.ts +4 -0
  26. package/lib/mobile-tickets/google-handler-fastify.d.ts.map +1 -0
  27. package/lib/mobile-tickets/google-handler-fastify.js +41 -0
  28. package/lib/mobile-tickets/google-handler-fastify.js.map +1 -0
  29. package/lib/module.d.ts +56 -27
  30. package/lib/module.d.ts.map +1 -1
  31. package/lib/module.js +166 -164
  32. package/lib/module.js.map +1 -1
  33. package/lib/pdf-tickets/{print-webservice.d.ts → print-handler-express.d.ts} +3 -3
  34. package/lib/pdf-tickets/print-handler-express.d.ts.map +1 -0
  35. package/lib/pdf-tickets/{print-webservice.js → print-handler-express.js} +2 -8
  36. package/lib/pdf-tickets/print-handler-express.js.map +1 -0
  37. package/lib/pdf-tickets/print-handler-fastify.d.ts +4 -0
  38. package/lib/pdf-tickets/print-handler-fastify.d.ts.map +1 -0
  39. package/lib/pdf-tickets/print-handler-fastify.js +24 -0
  40. package/lib/pdf-tickets/print-handler-fastify.js.map +1 -0
  41. package/lib/services.d.ts +11 -5
  42. package/lib/services.d.ts.map +1 -1
  43. package/lib/services.js +17 -15
  44. package/lib/services.js.map +1 -1
  45. package/lib/types.d.ts +1 -3
  46. package/lib/types.d.ts.map +1 -1
  47. package/package.json +27 -11
  48. package/src/express.ts +35 -0
  49. package/src/fastify.ts +30 -0
  50. package/src/index.ts +13 -39
  51. package/src/mobile-tickets/{apple-webservice.ts → apple-handler-express.ts} +3 -16
  52. package/src/mobile-tickets/apple-handler-fastify.ts +227 -0
  53. package/src/mobile-tickets/{google-webservice.ts → google-handler-express.ts} +2 -12
  54. package/src/mobile-tickets/google-handler-fastify.ts +57 -0
  55. package/src/module.ts +211 -207
  56. package/src/pdf-tickets/{print-webservice.ts → print-handler-express.ts} +2 -12
  57. package/src/pdf-tickets/print-handler-fastify.ts +36 -0
  58. package/src/services.ts +28 -18
  59. package/src/types.ts +1 -1
  60. package/lib/mobile-tickets/apple-webservice.d.ts +0 -7
  61. package/lib/mobile-tickets/apple-webservice.d.ts.map +0 -1
  62. package/lib/mobile-tickets/apple-webservice.js.map +0 -1
  63. package/lib/mobile-tickets/google-webservice.d.ts.map +0 -1
  64. package/lib/mobile-tickets/google-webservice.js.map +0 -1
  65. package/lib/pdf-tickets/print-webservice.d.ts.map +0 -1
  66. package/lib/pdf-tickets/print-webservice.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAKjD,eAAO,MAAM,kCAAkC,wBAAwB,CAAC;AAIxE,QAAA,MAAM,eAAe;wBACO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;uCAmBd,cAAc,gBAAgB,aAAa;6EAoDjB,OAAO,CAAC,IAAI,CAAC;;;;;;0HA8DhF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oDAkBkC,aAAa;wCAtFzB,cAAc,gBAAgB,aAAa;;;;;;iCA2GlD,MAAM;gCAMP,MAAM;mCAUT,cAAc;4CAO3C;YACD,SAAS,EAAE,MAAM,CAAC;SACnB,sBACkB;YAAE,aAAa,CAAC,EAAE,OAAO,CAAA;SAAE,KAC7C,OAAO,CAAC,MAAM,CAAC;;CAwBrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAEzF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAKjD,eAAO,MAAM,kCAAkC,wBAAwB,CAAC;AAIxE,QAAA,MAAM,eAAe,WAAkB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;mCAmB3B,cAAc,gBAAgB,aAAa;yEAoDjB,OAAO,CAAC,IAAI,CAAC;;;;;;sHA8DhF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gDAkBkC,aAAa;oCAtFzB,cAAc,gBAAgB,aAAa;;;;;;6BA2GlD,MAAM;4BAMP,MAAM;+BAUT,cAAc;wCAO3C;QACD,SAAS,EAAE,MAAM,CAAC;KACnB,sBACkB;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,KAC7C,OAAO,CAAC,MAAM,CAAC;EAuBnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC;CACrD,CAAC;;;4BAlOqC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;2CAmB3B,cAAc,gBAAgB,aAAa;iFAoDjB,OAAO,CAAC,IAAI,CAAC;;;;;;8HA8DhF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wDAkBkC,aAAa;4CAtFzB,cAAc,gBAAgB,aAAa;;;;;;qCA2GlD,MAAM;oCAMP,MAAM;uCAUT,cAAc;gDAO3C;gBACD,SAAS,EAAE,MAAM,CAAC;aACnB,sBACkB;gBAAE,aAAa,CAAC,EAAE,OAAO,CAAA;aAAE,KAC7C,OAAO,CAAC,MAAM,CAAC;;;;AA6BpB,wBAIE"}
package/lib/module.js CHANGED
@@ -6,180 +6,182 @@ import { RendererTypes, getRenderer } from './template-registry.js';
6
6
  import { buildPassBinary, pushToApplePushNotificationService } from './mobile-tickets/apple-wallet.js';
7
7
  export const APPLE_WALLET_PASSES_FILE_DIRECTORY = 'apple-wallet-passes';
8
8
  const logger = createLogger('unchained:apple-wallet-webservice');
9
- const ticketingModule = {
10
- configure: async ({ db }) => {
11
- const MediaObjects = await MediaObjectsCollection(db);
12
- const TokenSurrogates = await TokenSurrogateCollection(db);
13
- await buildDbIndexes(TokenSurrogates, [
14
- { index: { 'meta.cancelled': 1 }, options: { sparse: true } },
15
- ]);
16
- await buildDbIndexes(MediaObjects, [
17
- { index: { path: 1, 'meta.passTypeIdentifier': 1, 'meta.serialNumber': 1 } },
18
- {
19
- index: {
20
- path: 1,
21
- 'meta.passTypeIdentifier': 1,
22
- 'meta.registrations.deviceLibraryIdentifier': 1,
23
- },
9
+ const configurePasses = async ({ db }) => {
10
+ const MediaObjects = await MediaObjectsCollection(db);
11
+ const TokenSurrogates = await TokenSurrogateCollection(db);
12
+ await buildDbIndexes(TokenSurrogates, [
13
+ { index: { 'meta.cancelled': 1 }, options: { sparse: true } },
14
+ ]);
15
+ await buildDbIndexes(MediaObjects, [
16
+ { index: { path: 1, 'meta.passTypeIdentifier': 1, 'meta.serialNumber': 1 } },
17
+ {
18
+ index: {
19
+ path: 1,
20
+ 'meta.passTypeIdentifier': 1,
21
+ 'meta.registrations.deviceLibraryIdentifier': 1,
24
22
  },
25
- ]);
26
- const upsertAppleWalletPass = async (token, unchainedAPI) => {
27
- const createAppleWalletPass = getRenderer(RendererTypes.APPLE_WALLET);
28
- const pass = await createAppleWalletPass(token, unchainedAPI);
29
- const rawFile = Promise.resolve(
30
- // wrap in promise to make stream upload work
31
- await buildPassBinary(token.chainTokenId, pass));
32
- const previousFile = await MediaObjects.findOne({
33
- path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
34
- 'meta.passTypeIdentifier': pass.passTypeIdentifier,
35
- 'meta.serialNumber': pass.serialNumber,
36
- });
37
- const registrations = previousFile?.meta?.registrations || [];
38
- const pkpassFile = await unchainedAPI.services.files.uploadFileFromStream({
39
- directoryName: APPLE_WALLET_PASSES_FILE_DIRECTORY,
40
- rawFile,
41
- meta: {
42
- rawData: token,
43
- passTypeIdentifier: pass.passTypeIdentifier,
44
- serialNumber: pass.serialNumber,
45
- registrations,
46
- },
23
+ },
24
+ ]);
25
+ const upsertAppleWalletPass = async (token, unchainedAPI) => {
26
+ const createAppleWalletPass = getRenderer(RendererTypes.APPLE_WALLET);
27
+ const pass = await createAppleWalletPass(token, unchainedAPI);
28
+ const rawFile = Promise.resolve(
29
+ // wrap in promise to make stream upload work
30
+ await buildPassBinary(token.chainTokenId, pass));
31
+ const previousFile = await MediaObjects.findOne({
32
+ path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
33
+ 'meta.passTypeIdentifier': pass.passTypeIdentifier,
34
+ 'meta.serialNumber': pass.serialNumber,
35
+ });
36
+ const registrations = previousFile?.meta?.registrations || [];
37
+ const pkpassFile = await unchainedAPI.services.files.uploadFileFromStream({
38
+ directoryName: APPLE_WALLET_PASSES_FILE_DIRECTORY,
39
+ rawFile,
40
+ meta: {
41
+ rawData: token,
42
+ passTypeIdentifier: pass.passTypeIdentifier,
43
+ serialNumber: pass.serialNumber,
44
+ registrations,
45
+ },
46
+ });
47
+ if (previousFile) {
48
+ await unchainedAPI.services.files.removeFiles({
49
+ fileIds: [previousFile._id],
47
50
  });
48
- if (previousFile) {
49
- await unchainedAPI.services.files.removeFiles({
50
- fileIds: [previousFile._id],
51
- });
51
+ }
52
+ // Push updates!
53
+ if (registrations?.length) {
54
+ try {
55
+ const pushTokens = registrations.map(({ pushToken }) => pushToken);
56
+ logger.info(`Send update pass notification to ${pushTokens.join(',')}`);
57
+ await pushToApplePushNotificationService(pushTokens);
52
58
  }
53
- // Push updates!
54
- if (registrations?.length) {
55
- try {
56
- const pushTokens = registrations.map(({ pushToken }) => pushToken);
57
- logger.info(`Send update pass notification to ${pushTokens.join(',')}`);
58
- await pushToApplePushNotificationService(pushTokens);
59
- }
60
- catch (e) {
61
- logger.error(e);
62
- }
59
+ catch (e) {
60
+ logger.error(e);
63
61
  }
64
- return pkpassFile;
65
- };
66
- const upsertGoogleWalletPass = async (token, unchainedAPI) => {
67
- const createGoogleWalletPass = getRenderer(RendererTypes.GOOGLE_WALLET);
68
- const pass = await createGoogleWalletPass(token, unchainedAPI);
69
- return pass;
70
- };
71
- const findAppleWalletPass = async (passTypeIdentifier, serialNumber) => {
72
- const mediaObject = await MediaObjects.findOne({
73
- path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
74
- 'meta.passTypeIdentifier': passTypeIdentifier,
75
- 'meta.serialNumber': serialNumber,
76
- });
77
- return mediaObject;
78
- };
79
- const registerDeviceForAppleWalletPass = async (passTypeIdentifier, serialNumber, { deviceLibraryIdentifier, pushToken }) => {
80
- const result = await MediaObjects.updateOne({
81
- path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
82
- 'meta.passTypeIdentifier': passTypeIdentifier,
83
- 'meta.serialNumber': serialNumber,
84
- 'meta.registrations.deviceLibraryIdentifier': {
85
- $ne: deviceLibraryIdentifier,
62
+ }
63
+ return pkpassFile;
64
+ };
65
+ const upsertGoogleWalletPass = async (token, unchainedAPI) => {
66
+ const createGoogleWalletPass = getRenderer(RendererTypes.GOOGLE_WALLET);
67
+ const pass = await createGoogleWalletPass(token, unchainedAPI);
68
+ return pass;
69
+ };
70
+ const findAppleWalletPass = async (passTypeIdentifier, serialNumber) => {
71
+ const mediaObject = await MediaObjects.findOne({
72
+ path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
73
+ 'meta.passTypeIdentifier': passTypeIdentifier,
74
+ 'meta.serialNumber': serialNumber,
75
+ });
76
+ return mediaObject;
77
+ };
78
+ const registerDeviceForAppleWalletPass = async (passTypeIdentifier, serialNumber, { deviceLibraryIdentifier, pushToken }) => {
79
+ const result = await MediaObjects.updateOne({
80
+ path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
81
+ 'meta.passTypeIdentifier': passTypeIdentifier,
82
+ 'meta.serialNumber': serialNumber,
83
+ 'meta.registrations.deviceLibraryIdentifier': {
84
+ $ne: deviceLibraryIdentifier,
85
+ },
86
+ }, {
87
+ $push: {
88
+ 'meta.registrations': {
89
+ deviceLibraryIdentifier,
90
+ pushToken,
86
91
  },
87
- }, {
88
- $push: {
89
- 'meta.registrations': {
90
- deviceLibraryIdentifier,
91
- pushToken,
92
- },
92
+ },
93
+ });
94
+ return Boolean(result.modifiedCount);
95
+ };
96
+ const unregisterDeviceForAppleWalletPass = async (passTypeIdentifier, serialNumber, deviceLibraryIdentifier) => {
97
+ const result = await MediaObjects.updateOne({
98
+ path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
99
+ 'meta.passTypeIdentifier': passTypeIdentifier,
100
+ 'meta.serialNumber': serialNumber,
101
+ 'meta.registrations.deviceLibraryIdentifier': deviceLibraryIdentifier,
102
+ }, {
103
+ $pull: {
104
+ 'meta.registrations': {
105
+ deviceLibraryIdentifier,
93
106
  },
94
- });
95
- return Boolean(result.modifiedCount);
96
- };
97
- const unregisterDeviceForAppleWalletPass = async (passTypeIdentifier, serialNumber, deviceLibraryIdentifier) => {
98
- const result = await MediaObjects.updateOne({
99
- path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
100
- 'meta.passTypeIdentifier': passTypeIdentifier,
101
- 'meta.serialNumber': serialNumber,
102
- 'meta.registrations.deviceLibraryIdentifier': deviceLibraryIdentifier,
103
- }, {
104
- $pull: {
105
- 'meta.registrations': {
106
- deviceLibraryIdentifier,
107
- },
107
+ },
108
+ });
109
+ return Boolean(result.modifiedCount);
110
+ };
111
+ const findUpdatedAppleWalletPasses = async (passTypeIdentifier, deviceLibraryIdentifier, passesUpdatedSince) => {
112
+ const selector = {
113
+ $or: [
114
+ {
115
+ updated: passesUpdatedSince ? { $gt: passesUpdatedSince } : { $exists: true },
108
116
  },
109
- });
110
- return Boolean(result.modifiedCount);
111
- };
112
- const findUpdatedAppleWalletPasses = async (passTypeIdentifier, deviceLibraryIdentifier, passesUpdatedSince) => {
113
- const selector = {
114
- $or: [
115
- {
116
- updated: passesUpdatedSince ? { $gt: passesUpdatedSince } : { $exists: true },
117
- },
118
- {
119
- created: passesUpdatedSince ? { $gt: passesUpdatedSince } : { $exists: true },
120
- },
121
- ],
122
- 'meta.registrations.deviceLibraryIdentifier': deviceLibraryIdentifier,
123
- 'meta.passTypeIdentifier': passTypeIdentifier,
124
- path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
125
- };
126
- const updatedPasses = await MediaObjects.find(selector).toArray();
127
- return updatedPasses;
128
- };
129
- const invalidateAppleWalletPasses = async (unchainedAPI) => {
130
- const allPasses = await MediaObjects.find({
131
- path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
132
- }).toArray();
133
- const allTokens = await TokenSurrogates.find({}).toArray();
134
- for (const pass of allPasses) {
135
- // Check if binary is already invalidated, if so, skip
136
- const rawData = pass.meta.rawData;
137
- if (rawData.invalidatedDate)
138
- continue;
139
- const redeemedToken = allTokens.find((t) => t._id === rawData._id && t.invalidatedDate);
140
- // Find invalidated token for the binary, if found, invalidate binary
141
- if (redeemedToken) {
142
- logger.info('Ticket redeemed, void pass', rawData);
143
- await upsertAppleWalletPass(redeemedToken, unchainedAPI);
144
- }
145
- }
146
- };
147
- const buildMagicKey = async (orderId) => {
148
- const msgUint8 = new TextEncoder().encode([orderId, process.env.UNCHAINED_SECRET].join(''));
149
- const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);
150
- return Buffer.from(hashBuffer).toString('hex');
151
- };
152
- const cancelTicket = async (tokenId) => {
153
- return TokenSurrogates.findOneAndUpdate({ _id: tokenId }, { $set: { 'meta.cancelled': true } }, {
154
- returnDocument: 'after',
155
- });
156
- };
157
- const isTicketCancelled = (token) => {
158
- return Boolean(token.meta?.cancelled);
117
+ {
118
+ created: passesUpdatedSince ? { $gt: passesUpdatedSince } : { $exists: true },
119
+ },
120
+ ],
121
+ 'meta.registrations.deviceLibraryIdentifier': deviceLibraryIdentifier,
122
+ 'meta.passTypeIdentifier': passTypeIdentifier,
123
+ path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
159
124
  };
160
- const getTicketsCreated = async ({ productId, }, { skipCancelled } = {}) => {
161
- const selector = {
162
- productId,
163
- };
164
- if (skipCancelled) {
165
- selector['meta.cancelled'] = null;
125
+ const updatedPasses = await MediaObjects.find(selector).toArray();
126
+ return updatedPasses;
127
+ };
128
+ const invalidateAppleWalletPasses = async (unchainedAPI) => {
129
+ const allPasses = await MediaObjects.find({
130
+ path: APPLE_WALLET_PASSES_FILE_DIRECTORY,
131
+ }).toArray();
132
+ const allTokens = await TokenSurrogates.find({}).toArray();
133
+ for (const pass of allPasses) {
134
+ // Check if binary is already invalidated, if so, skip
135
+ const rawData = pass.meta.rawData;
136
+ if (rawData.invalidatedDate)
137
+ continue;
138
+ const redeemedToken = allTokens.find((t) => t._id === rawData._id && t.invalidatedDate);
139
+ // Find invalidated token for the binary, if found, invalidate binary
140
+ if (redeemedToken) {
141
+ logger.info('Ticket redeemed, void pass', rawData);
142
+ await upsertAppleWalletPass(redeemedToken, unchainedAPI);
166
143
  }
167
- return TokenSurrogates.countDocuments(selector);
168
- };
169
- return {
170
- upsertAppleWalletPass,
171
- findAppleWalletPass,
172
- registerDeviceForAppleWalletPass,
173
- unregisterDeviceForAppleWalletPass,
174
- findUpdatedAppleWalletPasses,
175
- invalidateAppleWalletPasses,
176
- upsertGoogleWalletPass,
177
- buildMagicKey,
178
- cancelTicket,
179
- isTicketCancelled,
180
- getTicketsCreated,
144
+ }
145
+ };
146
+ const buildMagicKey = async (orderId) => {
147
+ const msgUint8 = new TextEncoder().encode([orderId, process.env.UNCHAINED_SECRET].join(''));
148
+ const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);
149
+ return Buffer.from(hashBuffer).toString('hex');
150
+ };
151
+ const cancelTicket = async (tokenId) => {
152
+ return TokenSurrogates.findOneAndUpdate({ _id: tokenId }, { $set: { 'meta.cancelled': true } }, {
153
+ returnDocument: 'after',
154
+ });
155
+ };
156
+ const isTicketCancelled = (token) => {
157
+ return Boolean(token.meta?.cancelled);
158
+ };
159
+ const getTicketsCreated = async ({ productId, }, { skipCancelled } = {}) => {
160
+ const selector = {
161
+ productId,
181
162
  };
163
+ if (skipCancelled) {
164
+ selector['meta.cancelled'] = null;
165
+ }
166
+ return TokenSurrogates.countDocuments(selector);
167
+ };
168
+ return {
169
+ upsertAppleWalletPass,
170
+ findAppleWalletPass,
171
+ registerDeviceForAppleWalletPass,
172
+ unregisterDeviceForAppleWalletPass,
173
+ findUpdatedAppleWalletPasses,
174
+ invalidateAppleWalletPasses,
175
+ upsertGoogleWalletPass,
176
+ buildMagicKey,
177
+ cancelTicket,
178
+ isTicketCancelled,
179
+ getTicketsCreated,
180
+ };
181
+ };
182
+ export default {
183
+ passes: {
184
+ configure: configurePasses,
182
185
  },
183
186
  };
184
- export default ticketingModule;
185
187
  //# sourceMappingURL=module.js.map
package/lib/module.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { Request, Response } from 'express';
2
1
  import { Context } from '@unchainedshop/api';
2
+ import type { Request, Response } from 'express';
3
3
  export declare function printTicketsHandler(req: Request & {
4
4
  unchainedContext: Context;
5
5
  }, res: Response): Promise<void>;
6
- export default function connectPrintWebservice(app: any): void;
7
- //# sourceMappingURL=print-webservice.d.ts.map
6
+ export default printTicketsHandler;
7
+ //# sourceMappingURL=print-handler-express.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-handler-express.d.ts","sourceRoot":"","sources":["../../src/pdf-tickets/print-handler-express.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,gBAAgB,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,EAAE,QAAQ,iBAsBpG;AAED,eAAe,mBAAmB,CAAC"}
@@ -1,8 +1,6 @@
1
1
  import { checkAction } from '@unchainedshop/api/lib/acl.js';
2
2
  import { actions } from '@unchainedshop/api/lib/roles/index.js';
3
- import express from 'express';
4
3
  import { RendererTypes, getRenderer } from '../template-registry.js';
5
- const { UNCHAINED_PDF_PRINT_HANDLER_PATH = '/rest/print_tickets' } = process.env;
6
4
  export async function printTicketsHandler(req, res) {
7
5
  const { variant, orderId, otp } = req.query || {};
8
6
  try {
@@ -22,9 +20,5 @@ export async function printTicketsHandler(req, res) {
22
20
  res.end();
23
21
  }
24
22
  }
25
- export default function connectPrintWebservice(app) {
26
- app.use(UNCHAINED_PDF_PRINT_HANDLER_PATH, express.json({
27
- type: 'application/json',
28
- }), printTicketsHandler);
29
- }
30
- //# sourceMappingURL=print-webservice.js.map
23
+ export default printTicketsHandler;
24
+ //# sourceMappingURL=print-handler-express.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-handler-express.js","sourceRoot":"","sources":["../../src/pdf-tickets/print-handler-express.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGrE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAA4C,EAAE,GAAa;IACnG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAElD,IAAI,CAAC;QACH,IACE,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,GAAG,KAAK,QAAQ;YACvB,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;YAExC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE7C,MAAM,WAAW,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAE1F,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAiB,EAAE,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9F,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACjD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { RouteHandlerMethod } from 'fastify';
2
+ declare const printTicketsHandler: RouteHandlerMethod;
3
+ export default printTicketsHandler;
4
+ //# sourceMappingURL=print-handler-fastify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-handler-fastify.d.ts","sourceRoot":"","sources":["../../src/pdf-tickets/print-handler-fastify.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElE,QAAA,MAAM,mBAAmB,EAAE,kBA2B1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { checkAction } from '@unchainedshop/api/lib/acl.js';
2
+ import { actions } from '@unchainedshop/api/lib/roles/index.js';
3
+ import { RendererTypes, getRenderer } from '../template-registry.js';
4
+ const printTicketsHandler = async (req, reply) => {
5
+ const { variant, orderId, otp } = req.query || {};
6
+ try {
7
+ if (typeof orderId !== 'string' ||
8
+ typeof otp !== 'string' ||
9
+ (variant && typeof variant !== 'string'))
10
+ throw new Error('Invalid query parameter');
11
+ await checkAction(req.unchainedContext, actions.viewOrder, [undefined, { orderId, otp }]);
12
+ const render = getRenderer(RendererTypes.ORDER_PDF);
13
+ const pdfStream = await render({ orderId, variant: variant }, req.unchainedContext);
14
+ reply.header('content-type', 'application/pdf');
15
+ return reply.send(pdfStream);
16
+ }
17
+ catch (error) {
18
+ console.error(error);
19
+ reply.status(403);
20
+ return reply.send();
21
+ }
22
+ };
23
+ export default printTicketsHandler;
24
+ //# sourceMappingURL=print-handler-fastify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-handler-fastify.js","sourceRoot":"","sources":["../../src/pdf-tickets/print-handler-fastify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAIrE,MAAM,mBAAmB,GAAuB,KAAK,EACnD,GAEC,EACD,KAAK,EACL,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAI,GAAG,CAAC,KAA6B,IAAI,EAAE,CAAC;IAE3E,IAAI,CAAC;QACH,IACE,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,GAAG,KAAK,QAAQ;YACvB,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;YAExC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE7C,MAAM,WAAW,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAE1F,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAiB,EAAE,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9F,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
package/lib/services.d.ts CHANGED
@@ -1,9 +1,15 @@
1
- import { TicketingAPI } from './types.js';
2
- declare const ticketingServices: {
3
- cancelTicketsForProduct: (productId: string, context: TicketingAPI) => Promise<number>;
1
+ import { TicketingModule } from './module.js';
2
+ import { Bound, UnchainedCore } from '@unchainedshop/core';
3
+ declare function cancelTicketsForProduct(this: TicketingModule & UnchainedCore['modules'], productId: string): Promise<number>;
4
+ declare const _default: {
5
+ ticketing: {
6
+ cancelTicketsForProduct: typeof cancelTicketsForProduct;
7
+ };
4
8
  };
9
+ export default _default;
5
10
  export type TicketingServices = {
6
- ticketing: typeof ticketingServices;
11
+ ticketing: {
12
+ cancelTicketsForProduct: Bound<typeof cancelTicketsForProduct>;
13
+ };
7
14
  };
8
- export default ticketingServices;
9
15
  //# sourceMappingURL=services.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,QAAA,MAAM,iBAAiB;yCACsB,MAAM,WAAW,YAAY,KAAG,OAAO,CAAC,MAAM,CAAC;CAiB3F,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAAE,SAAS,EAAE,OAAO,iBAAiB,CAAA;CAAE,CAAC;AAExE,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE3D,iBAAe,uBAAuB,CACpC,IAAI,EAAE,eAAe,GAAG,aAAa,CAAC,SAAS,CAAC,EAChD,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAgBjB;;;;;;AAED,wBAIE;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE;QACT,uBAAuB,EAAE,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;KAChE,CAAC;CACH,CAAC"}
package/lib/services.js CHANGED
@@ -1,18 +1,20 @@
1
- const ticketingServices = {
2
- cancelTicketsForProduct: async (productId, context) => {
3
- const tokensToCancel = await context.modules.warehousing.findTokens({
4
- productId,
5
- 'meta.cancelled': null,
6
- });
7
- for (const token of tokensToCancel) {
8
- await context.modules.warehousing.invalidateToken(token._id);
9
- await context.modules.passes.cancelTicket(token._id);
10
- }
11
- await context.modules.products.update(productId, {
12
- $set: { 'meta.cancelled': true },
13
- });
14
- return tokensToCancel.length;
1
+ async function cancelTicketsForProduct(productId) {
2
+ const tokensToCancel = await this.warehousing.findTokens({
3
+ productId,
4
+ 'meta.cancelled': null,
5
+ });
6
+ for (const token of tokensToCancel) {
7
+ await this.warehousing.invalidateToken(token._id);
8
+ await this.passes.cancelTicket(token._id);
9
+ }
10
+ await this.products.update(productId, {
11
+ $set: { 'meta.cancelled': true },
12
+ });
13
+ return tokensToCancel.length;
14
+ }
15
+ export default {
16
+ ticketing: {
17
+ cancelTicketsForProduct,
15
18
  },
16
19
  };
17
- export default ticketingServices;
18
20
  //# sourceMappingURL=services.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG;IACxB,uBAAuB,EAAE,KAAK,EAAE,SAAiB,EAAE,OAAqB,EAAmB,EAAE;QAC3F,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;YAClE,SAAS;YACT,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;YAC/C,IAAI,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;SACjC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC,MAAM,CAAC;IAC/B,CAAC;CACF,CAAC;AAIF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAGA,KAAK,UAAU,uBAAuB,CAEpC,SAAiB;IAEjB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QACvD,SAAS;QACT,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;QACpC,IAAI,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;KACjC,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC,MAAM,CAAC;AAC/B,CAAC;AAED,eAAe;IACb,SAAS,EAAE;QACT,uBAAuB;KACxB;CACF,CAAC"}
package/lib/types.d.ts CHANGED
@@ -2,9 +2,7 @@ import { UnchainedCore } from '@unchainedshop/core';
2
2
  import { TicketingModule } from './module.js';
3
3
  import { TicketingServices } from './services.js';
4
4
  export type TicketingAPI = UnchainedCore & {
5
- modules: {
6
- passes: TicketingModule;
7
- };
5
+ modules: TicketingModule;
8
6
  services: TicketingServices;
9
7
  };
10
8
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG;IACzC,OAAO,EAAE;QAAE,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC;IACrC,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG;IACzC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/ticketing",
3
- "version": "3.0.0-rc9",
3
+ "version": "3.0.0",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "type": "module",
@@ -31,21 +31,37 @@
31
31
  },
32
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
33
  "dependencies": {
34
- "@unchainedshop/api": "^3.0.0-rc9",
35
- "@unchainedshop/core-files": "^3.0.0-rc9",
36
- "@unchainedshop/core-worker": "^3.0.0-rc9",
37
- "@unchainedshop/events": "^3.0.0-rc9",
38
- "@unchainedshop/logger": "^3.0.0-rc9",
39
- "@unchainedshop/mongodb": "^3.0.0-rc9"
34
+ "@unchainedshop/api": "^3.0.0",
35
+ "@unchainedshop/core": "^3.0.0",
36
+ "@unchainedshop/core-files": "^3.0.0",
37
+ "@unchainedshop/core-warehousing": "^3.0.0",
38
+ "@unchainedshop/core-worker": "^3.0.0",
39
+ "@unchainedshop/events": "^3.0.0",
40
+ "@unchainedshop/logger": "^3.0.0",
41
+ "@unchainedshop/mongodb": "^3.0.0"
40
42
  },
41
43
  "peerDependencies": {
42
- "@hyperlink/node-apn": "^5.1.4",
43
- "express": "^5.0.1"
44
+ "@hyperlink/node-apn": ">= 5.1",
45
+ "express": "5.x",
46
+ "fastify": ">= 5.2 < 6"
47
+ },
48
+ "peerDependenciesMeta": {
49
+ "@hyperlink/node-apn": {
50
+ "optional": false
51
+ },
52
+ "express": {
53
+ "optional": true
54
+ },
55
+ "fastify": {
56
+ "optional": true
57
+ }
44
58
  },
45
59
  "devDependencies": {
46
60
  "@types/express": "^5.0.0",
47
- "@types/node": "^22.10.2",
61
+ "@types/node": "^22.10.5",
62
+ "express": "^5.0.1",
63
+ "fastify": "^5.2.1",
48
64
  "jest": "^29.7.0",
49
- "typescript": "^5.7.2"
65
+ "typescript": "^5.7.3"
50
66
  }
51
67
  }