@de-otio/chaoskb-server 0.2.1 → 0.2.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../../../lib/handler/routes/devices.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EAMvB,MAAM,uBAAuB,CAAC;AAK/B,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAID;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,GAAG,EAAE,sBAAsB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../../../lib/handler/routes/devices.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EAMvB,MAAM,uBAAuB,CAAC;AAK/B,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAID;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,GAAG,EAAE,sBAAsB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAqD1B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,GAAG,EAAE,sBAAsB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAyJ1B;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,GAAG,EAAE,sBAAsB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAmE1B;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,sBAAsB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAkC1B;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,sBAAsB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAuB1B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,sBAAsB,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CA0C1B"}
|
|
@@ -78,7 +78,7 @@ async function handleCreateLinkCode(tenantId, body, ddb, tableName) {
|
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
const now = new Date();
|
|
81
|
-
const
|
|
81
|
+
const expiresAtISO = new Date(now.getTime() + 5 * 60 * 1000).toISOString();
|
|
82
82
|
const ttl = Math.floor(now.getTime() / 1000) + 10 * 60; // DynamoDB TTL: 10 min (generous)
|
|
83
83
|
await ddb.send(new lib_dynamodb_1.PutCommand({
|
|
84
84
|
TableName: tableName,
|
|
@@ -87,6 +87,7 @@ async function handleCreateLinkCode(tenantId, body, ddb, tableName) {
|
|
|
87
87
|
SK: `LINK#${parsed.codeHash}`,
|
|
88
88
|
newPublicKey: null,
|
|
89
89
|
failureCount: 0,
|
|
90
|
+
expiresAtISO,
|
|
90
91
|
expiresAt: ttl,
|
|
91
92
|
},
|
|
92
93
|
}));
|
|
@@ -94,7 +95,7 @@ async function handleCreateLinkCode(tenantId, body, ddb, tableName) {
|
|
|
94
95
|
return {
|
|
95
96
|
statusCode: 201,
|
|
96
97
|
headers: JSON_HEADERS,
|
|
97
|
-
body: JSON.stringify({ status: 'created', expiresAt }),
|
|
98
|
+
body: JSON.stringify({ status: 'created', expiresAt: expiresAtISO }),
|
|
98
99
|
};
|
|
99
100
|
}
|
|
100
101
|
/**
|
|
@@ -176,8 +177,9 @@ async function handleLinkConfirm(body, ddb, tableName) {
|
|
|
176
177
|
};
|
|
177
178
|
}
|
|
178
179
|
const linkRecord = linkResult.Item;
|
|
179
|
-
// Check expiry
|
|
180
|
-
|
|
180
|
+
// Check expiry (expiresAtISO is the ISO string for app-level checks;
|
|
181
|
+
// expiresAt is the epoch number for DynamoDB TTL auto-deletion)
|
|
182
|
+
if (new Date(linkRecord['expiresAtISO']) < new Date()) {
|
|
181
183
|
return {
|
|
182
184
|
statusCode: 410,
|
|
183
185
|
headers: JSON_HEADERS,
|
|
@@ -267,7 +269,7 @@ async function handleCreateLinkCodeFull(tenantId, body, ddb, tableName) {
|
|
|
267
269
|
};
|
|
268
270
|
}
|
|
269
271
|
const now = new Date();
|
|
270
|
-
const
|
|
272
|
+
const expiresAtISO = new Date(now.getTime() + 5 * 60 * 1000).toISOString();
|
|
271
273
|
const ttl = Math.floor(now.getTime() / 1000) + 10 * 60;
|
|
272
274
|
// Write the tenant-scoped link record
|
|
273
275
|
await ddb.send(new lib_dynamodb_1.PutCommand({
|
|
@@ -277,6 +279,7 @@ async function handleCreateLinkCodeFull(tenantId, body, ddb, tableName) {
|
|
|
277
279
|
SK: `LINK#${parsed.codeHash}`,
|
|
278
280
|
newPublicKey: null,
|
|
279
281
|
failureCount: 0,
|
|
282
|
+
expiresAtISO,
|
|
280
283
|
expiresAt: ttl,
|
|
281
284
|
},
|
|
282
285
|
}));
|
|
@@ -294,7 +297,7 @@ async function handleCreateLinkCodeFull(tenantId, body, ddb, tableName) {
|
|
|
294
297
|
return {
|
|
295
298
|
statusCode: 201,
|
|
296
299
|
headers: JSON_HEADERS,
|
|
297
|
-
body: JSON.stringify({ status: 'created', expiresAt }),
|
|
300
|
+
body: JSON.stringify({ status: 'created', expiresAt: expiresAtISO }),
|
|
298
301
|
};
|
|
299
302
|
}
|
|
300
303
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../../lib/handler/routes/devices.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../../lib/handler/routes/devices.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,7 @@ export async function handleCreateLinkCode(
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
const now = new Date();
|
|
62
|
-
const
|
|
62
|
+
const expiresAtISO = new Date(now.getTime() + 5 * 60 * 1000).toISOString();
|
|
63
63
|
const ttl = Math.floor(now.getTime() / 1000) + 10 * 60; // DynamoDB TTL: 10 min (generous)
|
|
64
64
|
|
|
65
65
|
await ddb.send(
|
|
@@ -70,6 +70,7 @@ export async function handleCreateLinkCode(
|
|
|
70
70
|
SK: `LINK#${parsed.codeHash}`,
|
|
71
71
|
newPublicKey: null,
|
|
72
72
|
failureCount: 0,
|
|
73
|
+
expiresAtISO,
|
|
73
74
|
expiresAt: ttl,
|
|
74
75
|
},
|
|
75
76
|
}),
|
|
@@ -80,7 +81,7 @@ export async function handleCreateLinkCode(
|
|
|
80
81
|
return {
|
|
81
82
|
statusCode: 201,
|
|
82
83
|
headers: JSON_HEADERS,
|
|
83
|
-
body: JSON.stringify({ status: 'created', expiresAt }),
|
|
84
|
+
body: JSON.stringify({ status: 'created', expiresAt: expiresAtISO }),
|
|
84
85
|
};
|
|
85
86
|
}
|
|
86
87
|
|
|
@@ -181,8 +182,9 @@ export async function handleLinkConfirm(
|
|
|
181
182
|
|
|
182
183
|
const linkRecord = linkResult.Item;
|
|
183
184
|
|
|
184
|
-
// Check expiry
|
|
185
|
-
|
|
185
|
+
// Check expiry (expiresAtISO is the ISO string for app-level checks;
|
|
186
|
+
// expiresAt is the epoch number for DynamoDB TTL auto-deletion)
|
|
187
|
+
if (new Date(linkRecord['expiresAtISO'] as string) < new Date()) {
|
|
186
188
|
return {
|
|
187
189
|
statusCode: 410,
|
|
188
190
|
headers: JSON_HEADERS,
|
|
@@ -289,7 +291,7 @@ export async function handleCreateLinkCodeFull(
|
|
|
289
291
|
}
|
|
290
292
|
|
|
291
293
|
const now = new Date();
|
|
292
|
-
const
|
|
294
|
+
const expiresAtISO = new Date(now.getTime() + 5 * 60 * 1000).toISOString();
|
|
293
295
|
const ttl = Math.floor(now.getTime() / 1000) + 10 * 60;
|
|
294
296
|
|
|
295
297
|
// Write the tenant-scoped link record
|
|
@@ -301,6 +303,7 @@ export async function handleCreateLinkCodeFull(
|
|
|
301
303
|
SK: `LINK#${parsed.codeHash}`,
|
|
302
304
|
newPublicKey: null,
|
|
303
305
|
failureCount: 0,
|
|
306
|
+
expiresAtISO,
|
|
304
307
|
expiresAt: ttl,
|
|
305
308
|
},
|
|
306
309
|
}),
|
|
@@ -324,7 +327,7 @@ export async function handleCreateLinkCodeFull(
|
|
|
324
327
|
return {
|
|
325
328
|
statusCode: 201,
|
|
326
329
|
headers: JSON_HEADERS,
|
|
327
|
-
body: JSON.stringify({ status: 'created', expiresAt }),
|
|
330
|
+
body: JSON.stringify({ status: 'created', expiresAt: expiresAtISO }),
|
|
328
331
|
};
|
|
329
332
|
}
|
|
330
333
|
|