@rudderhq/identity-core 0.6.6-canary.8 → 0.7.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.
@@ -1,6 +1,6 @@
1
1
  import { KeyObject } from "node:crypto";
2
2
  export declare const MAX_OFFLINE_GRANT_LIFETIME_MS: number;
3
- export type OfflineGrantClaims = {
3
+ export type LegacyOfflineGrantClaims = {
4
4
  version: 1;
5
5
  issuer: string;
6
6
  accountId: string;
@@ -14,6 +14,23 @@ export type OfflineGrantClaims = {
14
14
  signOutEpoch: number;
15
15
  jti: string;
16
16
  };
17
+ export type OfflineGrantClaims = {
18
+ version: 2;
19
+ issuer: string;
20
+ accountId: string;
21
+ deviceId: string;
22
+ installationId: string;
23
+ audience: "rudder-local-board";
24
+ publicKeyThumbprint: string;
25
+ issuedAtMs: number;
26
+ expiresAtMs: number;
27
+ trustedTimeMs: number;
28
+ localSignOutEpoch: number;
29
+ authSchemaEpoch: number;
30
+ accountAuthEpoch: number;
31
+ deviceAuthEpoch: number;
32
+ jti: string;
33
+ };
17
34
  export type OfflineGrantProof = {
18
35
  payload: {
19
36
  version: 1;
@@ -43,7 +60,10 @@ export declare function issueOfflineGrant(input: {
43
60
  nowMs: number;
44
61
  expiresAtMs?: number;
45
62
  trustedTimeMs: number;
46
- signOutEpoch: number;
63
+ localSignOutEpoch: number;
64
+ authSchemaEpoch: number;
65
+ accountAuthEpoch: number;
66
+ deviceAuthEpoch: number;
47
67
  jti: string;
48
68
  }): string;
49
69
  export declare function verifyOfflineGrant(input: {
@@ -57,7 +77,11 @@ export declare function verifyOfflineGrant(input: {
57
77
  nowMs: number;
58
78
  lastTrustedTimeMs: number;
59
79
  localSignOutEpoch: number;
60
- }): OfflineGrantClaims;
80
+ allowLegacyOffline?: boolean;
81
+ expectedAuthSchemaEpoch?: number;
82
+ expectedAccountAuthEpoch?: number;
83
+ expectedDeviceAuthEpoch?: number;
84
+ }): OfflineGrantClaims | LegacyOfflineGrantClaims;
61
85
  export declare function createOfflineGrantProof(input: {
62
86
  grant: string;
63
87
  devicePrivateKey: KeyObject | string | Buffer;
@@ -83,9 +107,13 @@ export declare function verifyOfflineGrantAndProof(input: {
83
107
  nowMs: number;
84
108
  lastTrustedTimeMs: number;
85
109
  localSignOutEpoch: number;
110
+ allowLegacyOffline?: boolean;
111
+ expectedAuthSchemaEpoch?: number;
112
+ expectedAccountAuthEpoch?: number;
113
+ expectedDeviceAuthEpoch?: number;
86
114
  consumeNonce(nonce: string): boolean;
87
115
  }): {
88
- claims: OfflineGrantClaims;
116
+ claims: OfflineGrantClaims | LegacyOfflineGrantClaims;
89
117
  nextTrustedTimeMs: number;
90
118
  };
91
119
  export declare function offlineRequestBodyHash(body: Buffer | string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"offline-grant.d.ts","sourceRoot":"","sources":["../src/offline-grant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"offline-grant.d.ts","sourceRoot":"","sources":["../src/offline-grant.ts"],"names":[],"mappings":"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"}
@@ -40,17 +40,28 @@ function assertNonce(value) {
40
40
  || !/^[A-Za-z0-9_-]+$/.test(value))
41
41
  throw new Error("invalid_nonce");
42
42
  }
43
- function parseClaims(value) {
43
+ function parseClaims(value, allowLegacyOffline) {
44
44
  if (!value || typeof value !== "object")
45
45
  throw new Error("invalid_offline_grant");
46
46
  const claims = value;
47
- if (claims.version !== 1
47
+ if ((claims.version !== 2 && !(allowLegacyOffline && claims.version === 1))
48
48
  || claims.audience !== "rudder-local-board"
49
49
  || !Number.isSafeInteger(claims.issuedAtMs)
50
50
  || !Number.isSafeInteger(claims.expiresAtMs)
51
51
  || !Number.isSafeInteger(claims.trustedTimeMs)
52
- || !Number.isSafeInteger(claims.signOutEpoch)
53
- || Number(claims.signOutEpoch) < 0)
52
+ || (claims.version === 1
53
+ && (!Number.isSafeInteger(claims.signOutEpoch)
54
+ || Number(claims.signOutEpoch) < 0)))
55
+ throw new Error("invalid_offline_grant");
56
+ if (claims.version === 2
57
+ && (!Number.isSafeInteger(claims.authSchemaEpoch)
58
+ || Number(claims.authSchemaEpoch) < 1
59
+ || !Number.isSafeInteger(claims.accountAuthEpoch)
60
+ || Number(claims.accountAuthEpoch) < 0
61
+ || !Number.isSafeInteger(claims.deviceAuthEpoch)
62
+ || Number(claims.deviceAuthEpoch) < 0
63
+ || !Number.isSafeInteger(claims.localSignOutEpoch)
64
+ || Number(claims.localSignOutEpoch) < 0))
54
65
  throw new Error("invalid_offline_grant");
55
66
  assertSafeString(claims.issuer, "issuer");
56
67
  assertSafeString(claims.accountId, "account_id");
@@ -79,8 +90,14 @@ export function issueOfflineGrant(input) {
79
90
  || expiresAtMs - input.nowMs > MAX_OFFLINE_GRANT_LIFETIME_MS
80
91
  || !Number.isSafeInteger(input.trustedTimeMs)
81
92
  || input.trustedTimeMs > input.nowMs
82
- || !Number.isSafeInteger(input.signOutEpoch)
83
- || input.signOutEpoch < 0)
93
+ || !Number.isSafeInteger(input.localSignOutEpoch)
94
+ || input.localSignOutEpoch < 0
95
+ || !Number.isSafeInteger(input.authSchemaEpoch)
96
+ || input.authSchemaEpoch < 1
97
+ || !Number.isSafeInteger(input.accountAuthEpoch)
98
+ || input.accountAuthEpoch < 0
99
+ || !Number.isSafeInteger(input.deviceAuthEpoch)
100
+ || input.deviceAuthEpoch < 0)
84
101
  throw new Error("invalid_offline_grant_lifetime");
85
102
  for (const [label, value] of [
86
103
  ["key_id", input.keyId],
@@ -98,7 +115,7 @@ export function issueOfflineGrant(input) {
98
115
  kid: input.keyId,
99
116
  };
100
117
  const claims = {
101
- version: 1,
118
+ version: 2,
102
119
  issuer: input.issuer,
103
120
  accountId: input.accountId,
104
121
  deviceId: input.deviceId,
@@ -108,7 +125,10 @@ export function issueOfflineGrant(input) {
108
125
  issuedAtMs: input.nowMs,
109
126
  expiresAtMs,
110
127
  trustedTimeMs: input.trustedTimeMs,
111
- signOutEpoch: input.signOutEpoch,
128
+ localSignOutEpoch: input.localSignOutEpoch,
129
+ authSchemaEpoch: input.authSchemaEpoch,
130
+ accountAuthEpoch: input.accountAuthEpoch,
131
+ deviceAuthEpoch: input.deviceAuthEpoch,
112
132
  jti: input.jti,
113
133
  };
114
134
  const signingInput = `${base64url(stableJson(header))}.${base64url(stableJson(claims))}`;
@@ -143,7 +163,7 @@ export function verifyOfflineGrant(input) {
143
163
  const signatureValid = verify(null, Buffer.from(`${parts[0]}.${parts[1]}`), requirePublicKey(input.identityPublicKey), decodeBase64url(parts[2]));
144
164
  if (!signatureValid)
145
165
  throw new Error("invalid_offline_grant_signature");
146
- const claims = parseClaims(claimsValue);
166
+ const claims = parseClaims(claimsValue, input.allowLegacyOffline === true);
147
167
  if (claims.issuer !== input.expectedIssuer
148
168
  || claims.installationId !== input.expectedInstallationId
149
169
  || (input.expectedDeviceId !== undefined && claims.deviceId !== input.expectedDeviceId)
@@ -158,8 +178,19 @@ export function verifyOfflineGrant(input) {
158
178
  if (input.nowMs < claims.issuedAtMs - PROOF_CLOCK_SKEW_MS
159
179
  || input.nowMs >= claims.expiresAtMs)
160
180
  throw new Error("offline_grant_expired");
161
- if (input.localSignOutEpoch > claims.signOutEpoch)
181
+ const grantLocalSignOutEpoch = claims.version === 1 ? claims.signOutEpoch : claims.localSignOutEpoch;
182
+ if (input.localSignOutEpoch > grantLocalSignOutEpoch) {
162
183
  throw new Error("offline_grant_signed_out");
184
+ }
185
+ if (claims.version === 2) {
186
+ if ((input.expectedAuthSchemaEpoch !== undefined
187
+ && claims.authSchemaEpoch !== input.expectedAuthSchemaEpoch)
188
+ || (input.expectedAccountAuthEpoch !== undefined
189
+ && claims.accountAuthEpoch !== input.expectedAccountAuthEpoch)
190
+ || (input.expectedDeviceAuthEpoch !== undefined
191
+ && claims.deviceAuthEpoch !== input.expectedDeviceAuthEpoch))
192
+ throw new Error("offline_grant_revoked");
193
+ }
163
194
  return claims;
164
195
  }
165
196
  export function createOfflineGrantProof(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"offline-grant.js","sourceRoot":"","sources":["../src/offline-grant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"offline-grant.js","sourceRoot":"","sources":["../src/offline-grant.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,29 @@
1
- import { generateKeyPairSync } from "node:crypto";
1
+ import { generateKeyPairSync, sign } from "node:crypto";
2
2
  import { describe, expect, it } from "vitest";
3
3
  import { createOfflineGrantProof, generateOfflineDeviceKeyPair, issueOfflineGrant, MAX_OFFLINE_GRANT_LIFETIME_MS, offlineRequestBodyHash, verifyOfflineGrantAndProof, } from "./offline-grant.js";
4
4
  const nowMs = Date.parse("2026-07-29T00:00:00.000Z");
5
+ function stableJson(value) {
6
+ if (value === null || typeof value !== "object")
7
+ return JSON.stringify(value);
8
+ if (Array.isArray(value))
9
+ return `[${value.map(stableJson).join(",")}]`;
10
+ const record = value;
11
+ return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`).join(",")}}`;
12
+ }
13
+ function asLegacyGrant(grant, privateKey) {
14
+ const [header, payload] = grant.split(".");
15
+ const claims = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
16
+ claims.version = 1;
17
+ claims.signOutEpoch = claims.localSignOutEpoch;
18
+ delete claims.localSignOutEpoch;
19
+ delete claims.authSchemaEpoch;
20
+ delete claims.accountAuthEpoch;
21
+ delete claims.deviceAuthEpoch;
22
+ const encodedPayload = Buffer.from(stableJson(claims)).toString("base64url");
23
+ const signingInput = `${header}.${encodedPayload}`;
24
+ const signature = sign(null, Buffer.from(signingInput), privateKey);
25
+ return `${signingInput}.${signature.toString("base64url")}`;
26
+ }
5
27
  function fixture() {
6
28
  const identityKeys = generateKeyPairSync("ed25519");
7
29
  const deviceKeys = generateOfflineDeviceKeyPair();
@@ -15,7 +37,10 @@ function fixture() {
15
37
  publicKeyThumbprint: deviceKeys.thumbprint,
16
38
  nowMs,
17
39
  trustedTimeMs: nowMs,
18
- signOutEpoch: 3,
40
+ localSignOutEpoch: 3,
41
+ authSchemaEpoch: 2,
42
+ accountAuthEpoch: 4,
43
+ deviceAuthEpoch: 5,
19
44
  jti: "grant-1",
20
45
  });
21
46
  const bodyHash = offlineRequestBodyHash('{"intent":"open-local-board"}');
@@ -66,7 +91,10 @@ describe("Local offline grant proof of possession", () => {
66
91
  deviceId: "device-1",
67
92
  installationId: "default",
68
93
  audience: "rudder-local-board",
69
- signOutEpoch: 3,
94
+ localSignOutEpoch: 3,
95
+ authSchemaEpoch: 2,
96
+ accountAuthEpoch: 4,
97
+ deviceAuthEpoch: 5,
70
98
  });
71
99
  expect(result.nextTrustedTimeMs).toBe(nowMs + 1_000);
72
100
  });
@@ -101,6 +129,32 @@ describe("Local offline grant proof of possession", () => {
101
129
  expect(() => verifyFixture(value, options)).not.toThrow();
102
130
  expect(() => verifyFixture(value, options)).toThrow("proof_replay");
103
131
  });
132
+ it("rejects a grant after any server-owned auth epoch advances", () => {
133
+ const value = fixture();
134
+ expect(() => verifyFixture(value, { expectedAuthSchemaEpoch: 3 }))
135
+ .toThrow("offline_grant_revoked");
136
+ expect(() => verifyFixture(value, { expectedAccountAuthEpoch: 5 }))
137
+ .toThrow("offline_grant_revoked");
138
+ expect(() => verifyFixture(value, { expectedDeviceAuthEpoch: 6 }))
139
+ .toThrow("offline_grant_revoked");
140
+ });
141
+ it("rejects legacy grants online but preserves their bounded offline residual", () => {
142
+ const value = fixture();
143
+ const legacyGrant = asLegacyGrant(value.grant, value.identityKeys.privateKey);
144
+ const legacyProof = createOfflineGrantProof({
145
+ grant: legacyGrant,
146
+ devicePrivateKey: value.deviceKeys.privateKey,
147
+ method: "POST",
148
+ path: "/api/auth/offline",
149
+ bodyHash: value.bodyHash,
150
+ nonce: "legacy-offline-proof",
151
+ issuedAtMs: nowMs + 1_000,
152
+ });
153
+ const legacy = { ...value, grant: legacyGrant, proof: legacyProof };
154
+ expect(() => verifyFixture(legacy)).toThrow("invalid_offline_grant");
155
+ expect(() => verifyFixture(legacy, { allowLegacyOffline: true }))
156
+ .not.toThrow();
157
+ });
104
158
  it("rejects clock rollback, expiry, installation mismatch, and local sign-out", () => {
105
159
  const value = fixture();
106
160
  expect(() => verifyFixture(value, {
@@ -138,7 +192,10 @@ describe("Local offline grant proof of possession", () => {
138
192
  nowMs,
139
193
  expiresAtMs: nowMs + MAX_OFFLINE_GRANT_LIFETIME_MS + 1,
140
194
  trustedTimeMs: nowMs,
141
- signOutEpoch: 0,
195
+ localSignOutEpoch: 0,
196
+ authSchemaEpoch: 2,
197
+ accountAuthEpoch: 0,
198
+ deviceAuthEpoch: 0,
142
199
  jti: "grant-too-long",
143
200
  })).toThrow("lifetime");
144
201
  });
@@ -1 +1 @@
1
- {"version":3,"file":"offline-grant.test.js","sourceRoot":"","sources":["../src/offline-grant.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"offline-grant.test.js","sourceRoot":"","sources":["../src/offline-grant.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=package-manifest.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manifest.test.d.ts","sourceRoot":"","sources":["../src/package-manifest.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import fs from "node:fs";
2
+ import { describe, expect, it } from "vitest";
3
+ describe("@rudderhq/identity-core package manifest", () => {
4
+ it("keeps workspace source imports separate from compiled Electron imports", () => {
5
+ const manifest = JSON.parse(fs.readFileSync(new URL("../package.json", import.meta.url), "utf8"));
6
+ expect(manifest.exports?.["."]).toBe("./src/index.ts");
7
+ expect(manifest.exports?.["./electron"]).toEqual({
8
+ types: "./src/index.ts",
9
+ default: "./dist/index.js",
10
+ });
11
+ expect(manifest.publishConfig?.exports?.["./electron"]).toEqual({
12
+ types: "./dist/index.d.ts",
13
+ import: "./dist/index.js",
14
+ });
15
+ });
16
+ });
17
+ //# sourceMappingURL=package-manifest.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manifest.test.js","sourceRoot":"","sources":["../src/package-manifest.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,EAAE,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAYrE,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,iBAAiB;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9D,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderhq/identity-core",
3
- "version": "0.6.6-canary.8",
3
+ "version": "0.7.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "homepage": "https://github.com/Undertone0809/rudder",
6
6
  "bugs": {
@@ -17,6 +17,11 @@
17
17
  "types": "./dist/index.d.ts",
18
18
  "import": "./dist/index.js",
19
19
  "default": "./dist/index.js"
20
+ },
21
+ "./electron": {
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.js",
24
+ "default": "./dist/index.js"
20
25
  }
21
26
  },
22
27
  "publishConfig": {
@@ -25,6 +30,10 @@
25
30
  ".": {
26
31
  "types": "./dist/index.d.ts",
27
32
  "import": "./dist/index.js"
33
+ },
34
+ "./electron": {
35
+ "types": "./dist/index.d.ts",
36
+ "import": "./dist/index.js"
28
37
  }
29
38
  },
30
39
  "main": "./dist/index.js",