ioredis-toolkit 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.13
4
+
5
+ ### Patch Changes
6
+
7
+ - 09c266a: resolve bug
8
+
3
9
  ## 0.0.12
4
10
 
5
11
  ### Patch Changes
@@ -1,9 +1,9 @@
1
1
  export declare const SCRIPT_SOURCES: {
2
2
  readonly create_session: "-- KEYS[1] session key\n-- KEYS[2] user index\n-- ARGV[1] serialized record\n-- ARGV[2] ttl seconds\n-- ARGV[3] createdAt score\n-- ARGV[4] tokenHash\n-- ARGV[5] max sessions (0 = unlimited)\n-- ARGV[6] namespace\n-- ARGV[7] userTag\nlocal created = redis.call('SET', KEYS[1], ARGV[1], 'NX', 'EX', ARGV[2])\nif not created then return {-1} end\nredis.call('ZADD', KEYS[2], ARGV[3], ARGV[4])\nif tonumber(ARGV[5]) > 0 then\n local count = redis.call('ZCARD', KEYS[2])\n if count > tonumber(ARGV[5]) then\n local excess = count - tonumber(ARGV[5])\n local old = redis.call('ZRANGE', KEYS[2], 0, excess - 1)\n for _, evictedHash in ipairs(old) do\n redis.call('ZREM', KEYS[2], evictedHash)\n redis.call('DEL', ARGV[6] .. ':session:{' .. ARGV[7] .. '}:' .. evictedHash)\n redis.call('DEL', ARGV[6] .. ':token-index:' .. evictedHash)\n end\n return {1, excess}\n end\nend\nreturn {1}\n";
3
- readonly touch_session: "-- KEYS[1] session key\n-- ARGV[1] now epoch seconds\n-- ARGV[2] touch interval\n-- ARGV[3] new idle expiry epoch seconds (0 = no idle timeout)\n-- ARGV[4] new absolute expiry epoch seconds (0 = no absolute timeout)\nlocal raw = redis.call('GET', KEYS[1])\nif not raw then return {0} end\nlocal ok, s = pcall(cjson.decode, raw)\nif not ok or not s.data then return {-4} end\nlocal r = s.data\nif r.status ~= 'active' then return {-1} end\nlocal now = tonumber(ARGV[1])\nif tonumber(r.expiresAt) <= now then return {-2} end\nif r.absoluteExpiresAt and r.absoluteExpiresAt ~= cjson.null and tonumber(r.absoluteExpiresAt) > 0 and tonumber(r.absoluteExpiresAt) <= now then return {-2} end\nif r.idleExpiresAt and tonumber(r.idleExpiresAt) > 0 and tonumber(r.idleExpiresAt) <= now then return {-3} end\nif now - tonumber(r.lastAccessedAt) < tonumber(ARGV[2]) then return {2} end\nlocal idle = tonumber(ARGV[3])\nlocal absolute = tonumber(ARGV[4])\nif absolute > 0 and idle > absolute then idle = absolute end\nr.lastAccessedAt = now\nr.idleExpiresAt = idle > 0 and idle or cjson.null\nr.version = tonumber(r.version) + 1\nlocal wrapper = {v=1, data=r}\nlocal encoded = cjson.encode(wrapper)\nlocal ttl = tonumber(r.expiresAt) - now\nif ttl <= 0 then return {-2} end\nredis.call('SET', KEYS[1], encoded, 'XX', 'EX', ttl)\nreturn {1, r.version, idle}\n";
4
- readonly consume_session: "-- KEYS[1] session key\n-- ARGV[1] now epoch seconds\n-- ARGV[2] tombstone ttl seconds\nlocal raw = redis.call('GET', KEYS[1])\nif not raw then return {0} end\nlocal ok, s = pcall(cjson.decode, raw)\nif not ok or not s.data then return {-4} end\nlocal r = s.data\nif r.status == 'consumed' then return {-1} end\nif r.status == 'revoked' then return {-3} end\nlocal now = tonumber(ARGV[1])\nif tonumber(r.expiresAt) <= now then return {-2} end\nif r.absoluteExpiresAt and r.absoluteExpiresAt ~= cjson.null and tonumber(r.absoluteExpiresAt) > 0 and tonumber(r.absoluteExpiresAt) <= now then return {-2} end\nif r.idleExpiresAt and tonumber(r.idleExpiresAt) > 0 and tonumber(r.idleExpiresAt) <= now then return {-2} end\nr.status = 'consumed'\nr.consumedAt = now\nr.version = tonumber(r.version) + 1\nlocal ttl = tonumber(ARGV[2])\nlocal encoded = cjson.encode({v=1, data=r})\nredis.call('SET', KEYS[1], encoded, 'XX', 'EX', ttl)\nreturn {1, r.userId, r.jti, r.version}\n";
5
- readonly revoke_session: "-- KEYS[1] session key\n-- ARGV[1] now\n-- ARGV[2] tombstone ttl\nlocal raw = redis.call('GET', KEYS[1])\nif not raw then return {0} end\nlocal ok, s = pcall(cjson.decode, raw)\nif not ok or not s.data then return {-4} end\nlocal r=s.data\nif r.status == 'revoked' then return {2} end\nr.status='revoked'; r.version=tonumber(r.version)+1\nlocal ttl=tonumber(ARGV[2])\nif ttl < 1 then redis.call('DEL', KEYS[1]) else redis.call('SET', KEYS[1], cjson.encode({v=1,data=r}), 'XX', 'EX', ttl) end\nreturn {1}\n";
6
- readonly update_session: "-- KEYS[1] session key\n-- ARGV[1] expected version\n-- ARGV[2] now\n-- ARGV[3] serialized replacement\nlocal raw = redis.call('GET', KEYS[1])\nif not raw then return {0} end\nlocal ok, s = pcall(cjson.decode, raw)\nif not ok or not s.data then return {-4} end\nif s.data.status ~= 'active' then return {-3} end\nif tonumber(s.data.version) ~= tonumber(ARGV[1]) then return {-2, s.data.version} end\nlocal replacement = ARGV[3]\nlocal ok2, parsed = pcall(cjson.decode, replacement)\nif not ok2 or not parsed.data then return {-4} end\nif parsed.data.userId ~= s.data.userId or parsed.data.jti ~= s.data.jti or parsed.data.id ~= s.data.id or parsed.data.createdAt ~= s.data.createdAt or parsed.data.absoluteExpiresAt ~= s.data.absoluteExpiresAt then return {-5} end\nlocal ttl = tonumber(s.data.expiresAt) - tonumber(ARGV[2])\nif ttl <= 0 then return {-1} end\nredis.call('SET', KEYS[1], replacement, 'XX', 'EX', ttl)\nreturn {1}\n";
3
+ readonly touch_session: "-- KEYS[1] session key\n-- ARGV[1] now epoch seconds\n-- ARGV[2] touch interval\n-- ARGV[3] new idle expiry epoch seconds (0 = no idle timeout)\n-- ARGV[4] new absolute expiry epoch seconds (0 = no absolute timeout)\nlocal raw = redis.call('GET', KEYS[1])\nif not raw then return {0} end\nlocal ok, s = pcall(cjson.decode, raw)\nif not ok or not s.data then return {-4} end\nlocal r = cjson.decode(s.data)\nif r.status ~= 'active' then return {-1} end\nlocal now = tonumber(ARGV[1])\nif tonumber(r.expiresAt) <= now then return {-2} end\nif r.absoluteExpiresAt and r.absoluteExpiresAt ~= cjson.null and tonumber(r.absoluteExpiresAt) > 0 and tonumber(r.absoluteExpiresAt) <= now then return {-2} end\nif r.idleExpiresAt and r.idleExpiresAt ~= cjson.null and tonumber(r.idleExpiresAt) > 0 and tonumber(r.idleExpiresAt) <= now then return {-3} end\nif now - tonumber(r.lastAccessedAt) < tonumber(ARGV[2]) then return {2} end\nlocal idle = tonumber(ARGV[3])\nlocal absolute = tonumber(ARGV[4])\nif absolute > 0 and idle > absolute then idle = absolute end\nr.lastAccessedAt = now\nr.idleExpiresAt = idle > 0 and idle or cjson.null\nr.version = tonumber(r.version) + 1\nlocal wrapper = {v=1, data=cjson.encode(r)}\nlocal encoded = cjson.encode(wrapper)\nlocal ttl = tonumber(r.expiresAt) - now\nif ttl <= 0 then return {-2} end\nredis.call('SET', KEYS[1], encoded, 'XX', 'EX', ttl)\nreturn {1, r.version, idle}\n";
4
+ readonly consume_session: "-- KEYS[1] session key\n-- ARGV[1] now epoch seconds\n-- ARGV[2] tombstone ttl seconds\nlocal raw = redis.call('GET', KEYS[1])\nif not raw then return {0} end\nlocal ok, s = pcall(cjson.decode, raw)\nif not ok or not s.data then return {-4} end\nlocal r = cjson.decode(s.data)\nif r.status == 'consumed' then return {-1} end\nif r.status == 'revoked' then return {-3} end\nlocal now = tonumber(ARGV[1])\nif tonumber(r.expiresAt) <= now then return {-2} end\nif r.absoluteExpiresAt and r.absoluteExpiresAt ~= cjson.null and tonumber(r.absoluteExpiresAt) > 0 and tonumber(r.absoluteExpiresAt) <= now then return {-2} end\nif r.idleExpiresAt and r.idleExpiresAt ~= cjson.null and tonumber(r.idleExpiresAt) > 0 and tonumber(r.idleExpiresAt) <= now then return {-2} end\nr.status = 'consumed'\nr.consumedAt = now\nr.version = tonumber(r.version) + 1\nlocal ttl = tonumber(ARGV[2])\nlocal encoded = cjson.encode({v=1, data=cjson.encode(r)})\nredis.call('SET', KEYS[1], encoded, 'XX', 'EX', ttl)\nreturn {1, r.userId, r.jti, r.version}\n";
5
+ readonly revoke_session: "-- KEYS[1] session key\n-- ARGV[1] now\n-- ARGV[2] tombstone ttl\nlocal raw = redis.call('GET', KEYS[1])\nif not raw then return {0} end\nlocal ok, s = pcall(cjson.decode, raw)\nif not ok or not s.data then return {-4} end\nlocal r=cjson.decode(s.data)\nif r.status == 'revoked' then return {2} end\nr.status='revoked'; r.version=tonumber(r.version)+1\nlocal ttl=tonumber(ARGV[2])\nif ttl < 1 then redis.call('DEL', KEYS[1]) else redis.call('SET', KEYS[1], cjson.encode({v=1,data=cjson.encode(r)}), 'XX', 'EX', ttl) end\nreturn {1}\n";
6
+ readonly update_session: "-- KEYS[1] session key\n-- ARGV[1] expected version\n-- ARGV[2] now\n-- ARGV[3] serialized replacement\nlocal raw = redis.call('GET', KEYS[1])\nif not raw then return {0} end\nlocal ok, s = pcall(cjson.decode, raw)\nif not ok or not s.data then return {-4} end\ns.data = cjson.decode(s.data)\nif s.data.status ~= 'active' then return {-3} end\nif tonumber(s.data.version) ~= tonumber(ARGV[1]) then return {-2, s.data.version} end\nlocal replacement = ARGV[3]\nlocal ok2, parsed = pcall(cjson.decode, replacement)\nif not ok2 or not parsed.data then return {-4} end\nparsed.data = cjson.decode(parsed.data)\nif parsed.data.userId ~= s.data.userId or parsed.data.jti ~= s.data.jti or parsed.data.id ~= s.data.id or parsed.data.createdAt ~= s.data.createdAt or parsed.data.absoluteExpiresAt ~= s.data.absoluteExpiresAt then return {-5} end\nlocal ttl = tonumber(s.data.expiresAt) - tonumber(ARGV[2])\nif ttl <= 0 then return {-1} end\nredis.call('SET', KEYS[1], replacement, 'XX', 'EX', ttl)\nreturn {1}\n";
7
7
  readonly delete: "-- KEYS[1] session key\nreturn redis.call('DEL', KEYS[1])\n";
8
8
  readonly enforce_limit: "-- Bounded helper. The application must pass session keys to delete as KEYS.\n-- KEYS[1] user index; KEYS[2..N] session keys corresponding to the oldest members.\n-- ARGV[1] max sessions; ARGV[2] number of candidate keys.\nlocal max=tonumber(ARGV[1])\nlocal candidateCount=tonumber(ARGV[2])\nlocal count=redis.call('ZCARD', KEYS[1])\nif max <= 0 or count <= max then return {0} end\nlocal excess=math.min(count-max, candidateCount)\nlocal removed=0\nfor i=1,excess do\n local tokenHash=redis.call('ZRANGE', KEYS[1], 0, 0)[1]\n if not tokenHash then break end\n redis.call('ZREM', KEYS[1], tokenHash)\n redis.call('DEL', KEYS[i+1])\n removed=removed+1\nend\nreturn {removed}\n";
9
9
  readonly cleanup_index: "-- KEYS[1] user index\n-- ARGV[1..N] stale token hashes (user-index ZSET members, not JTIs)\nfor i=1,#ARGV do redis.call('ZREM', KEYS[1], ARGV[i]) end\nreturn #ARGV\n";
@@ -1 +1 @@
1
- {"version":3,"file":"script-sources.d.ts","sourceRoot":"","sources":["../../src/session/script-sources.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;CA0IjB,CAAC"}
1
+ {"version":3,"file":"script-sources.d.ts","sourceRoot":"","sources":["../../src/session/script-sources.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;CA4IjB,CAAC"}
@@ -35,12 +35,12 @@ local raw = redis.call('GET', KEYS[1])
35
35
  if not raw then return {0} end
36
36
  local ok, s = pcall(cjson.decode, raw)
37
37
  if not ok or not s.data then return {-4} end
38
- local r = s.data
38
+ local r = cjson.decode(s.data)
39
39
  if r.status ~= 'active' then return {-1} end
40
40
  local now = tonumber(ARGV[1])
41
41
  if tonumber(r.expiresAt) <= now then return {-2} end
42
42
  if r.absoluteExpiresAt and r.absoluteExpiresAt ~= cjson.null and tonumber(r.absoluteExpiresAt) > 0 and tonumber(r.absoluteExpiresAt) <= now then return {-2} end
43
- if r.idleExpiresAt and tonumber(r.idleExpiresAt) > 0 and tonumber(r.idleExpiresAt) <= now then return {-3} end
43
+ if r.idleExpiresAt and r.idleExpiresAt ~= cjson.null and tonumber(r.idleExpiresAt) > 0 and tonumber(r.idleExpiresAt) <= now then return {-3} end
44
44
  if now - tonumber(r.lastAccessedAt) < tonumber(ARGV[2]) then return {2} end
45
45
  local idle = tonumber(ARGV[3])
46
46
  local absolute = tonumber(ARGV[4])
@@ -48,7 +48,7 @@ if absolute > 0 and idle > absolute then idle = absolute end
48
48
  r.lastAccessedAt = now
49
49
  r.idleExpiresAt = idle > 0 and idle or cjson.null
50
50
  r.version = tonumber(r.version) + 1
51
- local wrapper = {v=1, data=r}
51
+ local wrapper = {v=1, data=cjson.encode(r)}
52
52
  local encoded = cjson.encode(wrapper)
53
53
  local ttl = tonumber(r.expiresAt) - now
54
54
  if ttl <= 0 then return {-2} end
@@ -62,18 +62,18 @@ local raw = redis.call('GET', KEYS[1])
62
62
  if not raw then return {0} end
63
63
  local ok, s = pcall(cjson.decode, raw)
64
64
  if not ok or not s.data then return {-4} end
65
- local r = s.data
65
+ local r = cjson.decode(s.data)
66
66
  if r.status == 'consumed' then return {-1} end
67
67
  if r.status == 'revoked' then return {-3} end
68
68
  local now = tonumber(ARGV[1])
69
69
  if tonumber(r.expiresAt) <= now then return {-2} end
70
70
  if r.absoluteExpiresAt and r.absoluteExpiresAt ~= cjson.null and tonumber(r.absoluteExpiresAt) > 0 and tonumber(r.absoluteExpiresAt) <= now then return {-2} end
71
- if r.idleExpiresAt and tonumber(r.idleExpiresAt) > 0 and tonumber(r.idleExpiresAt) <= now then return {-2} end
71
+ if r.idleExpiresAt and r.idleExpiresAt ~= cjson.null and tonumber(r.idleExpiresAt) > 0 and tonumber(r.idleExpiresAt) <= now then return {-2} end
72
72
  r.status = 'consumed'
73
73
  r.consumedAt = now
74
74
  r.version = tonumber(r.version) + 1
75
75
  local ttl = tonumber(ARGV[2])
76
- local encoded = cjson.encode({v=1, data=r})
76
+ local encoded = cjson.encode({v=1, data=cjson.encode(r)})
77
77
  redis.call('SET', KEYS[1], encoded, 'XX', 'EX', ttl)
78
78
  return {1, r.userId, r.jti, r.version}
79
79
  `,
@@ -84,11 +84,11 @@ local raw = redis.call('GET', KEYS[1])
84
84
  if not raw then return {0} end
85
85
  local ok, s = pcall(cjson.decode, raw)
86
86
  if not ok or not s.data then return {-4} end
87
- local r=s.data
87
+ local r=cjson.decode(s.data)
88
88
  if r.status == 'revoked' then return {2} end
89
89
  r.status='revoked'; r.version=tonumber(r.version)+1
90
90
  local ttl=tonumber(ARGV[2])
91
- if ttl < 1 then redis.call('DEL', KEYS[1]) else redis.call('SET', KEYS[1], cjson.encode({v=1,data=r}), 'XX', 'EX', ttl) end
91
+ if ttl < 1 then redis.call('DEL', KEYS[1]) else redis.call('SET', KEYS[1], cjson.encode({v=1,data=cjson.encode(r)}), 'XX', 'EX', ttl) end
92
92
  return {1}
93
93
  `,
94
94
  'update_session': `-- KEYS[1] session key
@@ -99,11 +99,13 @@ local raw = redis.call('GET', KEYS[1])
99
99
  if not raw then return {0} end
100
100
  local ok, s = pcall(cjson.decode, raw)
101
101
  if not ok or not s.data then return {-4} end
102
+ s.data = cjson.decode(s.data)
102
103
  if s.data.status ~= 'active' then return {-3} end
103
104
  if tonumber(s.data.version) ~= tonumber(ARGV[1]) then return {-2, s.data.version} end
104
105
  local replacement = ARGV[3]
105
106
  local ok2, parsed = pcall(cjson.decode, replacement)
106
107
  if not ok2 or not parsed.data then return {-4} end
108
+ parsed.data = cjson.decode(parsed.data)
107
109
  if parsed.data.userId ~= s.data.userId or parsed.data.jti ~= s.data.jti or parsed.data.id ~= s.data.id or parsed.data.createdAt ~= s.data.createdAt or parsed.data.absoluteExpiresAt ~= s.data.absoluteExpiresAt then return {-5} end
108
110
  local ttl = tonumber(s.data.expiresAt) - tonumber(ARGV[2])
109
111
  if ttl <= 0 then return {-1} end
@@ -1 +1 @@
1
- {"version":3,"file":"script-sources.js","sourceRoot":"","sources":["../../src/session/script-sources.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BnB;IACC,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BlB;IACC,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBpB;IACC,gBAAgB,EAAE;;;;;;;;;;;;;CAanB;IACC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;CAkBnB;IACC,QAAQ,EAAE;;CAEX;IACC,eAAe,EAAE;;;;;;;;;;;;;;;;;CAiBlB;IACC,eAAe,EAAE;;;;CAIlB;CACS,CAAC"}
1
+ {"version":3,"file":"script-sources.js","sourceRoot":"","sources":["../../src/session/script-sources.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BnB;IACC,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BlB;IACC,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBpB;IACC,gBAAgB,EAAE;;;;;;;;;;;;;CAanB;IACC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;CAoBnB;IACC,QAAQ,EAAE;;CAEX;IACC,eAAe,EAAE;;;;;;;;;;;;;;;;;CAiBlB;IACC,eAAe,EAAE;;;;CAIlB;CACS,CAAC"}
@@ -230,6 +230,8 @@ function errorForReason(reason) {
230
230
  return new SessionExpiredError();
231
231
  if (reason === 'revoked')
232
232
  return new SessionRevokedError();
233
+ if (reason === 'consumed')
234
+ return new SessionReplayError();
233
235
  return new SessionInvalidError();
234
236
  }
235
237
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/session/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/session/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ioredis-toolkit",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "description": "Production-grade Redis sessions, cache, locks, rate limiting, Pub/Sub, and Streams for Node.js",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",