@c9up/transit 0.1.5 → 0.1.7

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 (50) hide show
  1. package/README.md +24 -1
  2. package/dist/configure.d.ts +6 -0
  3. package/dist/configure.d.ts.map +1 -1
  4. package/dist/configure.js +2 -14
  5. package/dist/configure.js.map +1 -1
  6. package/dist/drivers/LdapDirectory.d.ts.map +1 -1
  7. package/dist/drivers/LdapDirectory.js +3 -1
  8. package/dist/drivers/LdapDirectory.js.map +1 -1
  9. package/dist/drivers/SamlDriver.d.ts +17 -0
  10. package/dist/drivers/SamlDriver.d.ts.map +1 -1
  11. package/dist/drivers/SamlDriver.js +45 -4
  12. package/dist/drivers/SamlDriver.js.map +1 -1
  13. package/dist/ldap.d.ts.map +1 -1
  14. package/dist/ldap.js +35 -4
  15. package/dist/ldap.js.map +1 -1
  16. package/dist/oidc.d.ts.map +1 -1
  17. package/dist/oidc.js +7 -4
  18. package/dist/oidc.js.map +1 -1
  19. package/dist/quasar.d.ts +7 -2
  20. package/dist/quasar.d.ts.map +1 -1
  21. package/dist/quasar.js +8 -2
  22. package/dist/quasar.js.map +1 -1
  23. package/dist/replay.d.ts +3 -1
  24. package/dist/replay.d.ts.map +1 -1
  25. package/dist/replay.js +11 -5
  26. package/dist/replay.js.map +1 -1
  27. package/dist/saml.d.ts +9 -1
  28. package/dist/saml.d.ts.map +1 -1
  29. package/dist/saml.js +1 -0
  30. package/dist/saml.js.map +1 -1
  31. package/dist/stubs.d.ts +14 -0
  32. package/dist/stubs.d.ts.map +1 -0
  33. package/dist/stubs.js +15 -0
  34. package/dist/stubs.js.map +1 -0
  35. package/dist/vendor/quasarConnection.d.ts +26 -3
  36. package/dist/vendor/quasarConnection.d.ts.map +1 -1
  37. package/dist/vendor/quasarConnection.js +44 -23
  38. package/dist/vendor/quasarConnection.js.map +1 -1
  39. package/package.json +4 -3
  40. package/src/configure.ts +9 -17
  41. package/src/drivers/LdapDirectory.ts +3 -1
  42. package/src/drivers/SamlDriver.ts +65 -4
  43. package/src/ldap.ts +39 -4
  44. package/src/oidc.ts +7 -4
  45. package/src/quasar.ts +9 -2
  46. package/src/replay.ts +17 -7
  47. package/src/saml.ts +10 -1
  48. package/src/stubs.ts +16 -0
  49. package/src/vendor/quasarConnection.ts +84 -22
  50. package/stubs/config/transit.stub +17 -0
package/README.md CHANGED
@@ -100,6 +100,15 @@ password is an anonymous bind, and the directory answers success. And there is
100
100
  no filter string — a filter is a structure whose values are written as octets,
101
101
  so a username cannot become syntax.
102
102
 
103
+ The search ignores continuation references (Active Directory answers some for
104
+ any search from a domain root) instead of counting them as entries, and never
105
+ follows them.
106
+
107
+ An address read from the directory is reported `verified`: the directory is
108
+ the one you configured and run. If it belongs to someone else — a customer's
109
+ directory — its addresses are that customer's say-so, and linking accounts by
110
+ email across tenants on that basis is not safe.
111
+
103
112
  ## SAML 2.0
104
113
 
105
114
  ```ts
@@ -118,7 +127,8 @@ export default defineConfig({
118
127
  The certificates come from the provider's metadata and nowhere else. The
119
128
  element the signature covers is the element that is read — nothing is looked up
120
129
  in the document afterwards, which is what closes XML Signature Wrapping. An
121
- assertion is a bearer token, so its id is remembered until it expires.
130
+ assertion is a bearer token, so its id is remembered for as long as it could
131
+ still be accepted — its later expiry plus `clockSkewSeconds`.
122
132
 
123
133
  That record has to be **shared by every replica**, because it is what stops the
124
134
  same assertion being presented twice. The in-process default bounds replay
@@ -133,6 +143,15 @@ replayStore: replayStores.memory() // a single process, de
133
143
  Outside production the in-process store remains the default: one dev process is
134
144
  the case it is correct for.
135
145
 
146
+ Whoever administers a SAML provider can assert any address, so an asserted
147
+ address is reported `unsupported` unless the config says the provider is
148
+ authoritative for it:
149
+
150
+ ```ts
151
+ trustEmail: true // your own provider: every address is verified
152
+ trustedEmailDomains: ['acme.test'] // a customer's: only acme.test addresses are verified, others unverified
153
+ ```
154
+
136
155
  ## OpenID Connect
137
156
 
138
157
  One driver for every conforming provider — Keycloak, Auth0, Okta, Entra ID,
@@ -156,6 +175,10 @@ taken from what the provider **declared** rather than from the token's own
156
175
  header, and every claim that binds it to this exchange — `iss`, `aud`, `exp`,
157
176
  and the `nonce`. Only asymmetric signatures are accepted.
158
177
 
178
+ The issuer is compared byte for byte with the discovery document's `issuer` and
179
+ with every token's `iss`, so write it exactly as the provider does — Auth0's
180
+ ends with a slash (`https://tenant.auth0.com/`).
181
+
159
182
  ## Before linking an account by email
160
183
 
161
184
  `user.emailVerificationState` is `verified`, `unverified` or `unsupported`.
@@ -12,6 +12,12 @@ interface Codemods {
12
12
  writeFile(filePath: string, content: string, options?: {
13
13
  force?: boolean;
14
14
  }): Promise<void>;
15
+ makeUsingStub(stubsRoot: string, stubPath: string, state?: Record<string, string | number | boolean>, options?: {
16
+ force?: boolean;
17
+ }): Promise<{
18
+ path: string;
19
+ contents: string;
20
+ }>;
15
21
  }
16
22
  export declare function configure(codemods: Codemods): Promise<void>;
17
23
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,UAAU,QAAQ;IACjB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,SAAS,CACR,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;CACjB;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BjE"}
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,UAAU,QAAQ;IACjB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,SAAS,CACR,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,aAAa,CACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACjD,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAWjE"}
package/dist/configure.js CHANGED
@@ -6,6 +6,7 @@
6
6
  * application wants. Writing both together is what makes `ream add` mean
7
7
  * installed AND working.
8
8
  */
9
+ import { stubsRoot } from "./stubs.js";
9
10
  export async function configure(codemods) {
10
11
  // The config below reads these, so they are declared here. Writing the file
11
12
  // without them leaves an application whose config asks the environment for
@@ -15,19 +16,6 @@ export async function configure(codemods) {
15
16
  GOOGLE_CLIENT_SECRET: "",
16
17
  });
17
18
  await codemods.addProvider("@c9up/transit/provider");
18
- await codemods.writeFile("config/transit.ts", `import { defineConfig, socials } from '@c9up/transit'
19
- import env from '#start/env'
20
-
21
- export default defineConfig({
22
- // The key is yours: it is what \`transit.begin(name)\` asks for.
23
- google: socials.google({
24
- clientId: env.get('GOOGLE_CLIENT_ID', ''),
25
- clientSecret: env.get('GOOGLE_CLIENT_SECRET', ''),
26
- callbackUrl: 'http://localhost:3333/auth/google/callback',
27
- }),
28
-
29
- // An OpenID Connect provider needs only its issuer:
30
- // work: oidc({ issuer: env.get('OIDC_ISSUER'), clientId, clientSecret, callbackUrl }),
31
- })`);
19
+ await codemods.makeUsingStub(stubsRoot, "config/transit.stub");
32
20
  }
33
21
  //# sourceMappingURL=configure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB;IACjD,4EAA4E;IAC5E,2EAA2E;IAC3E,oCAAoC;IACpC,MAAM,QAAQ,CAAC,UAAU,CAAC;QACzB,gBAAgB,EAAE,EAAE;QACpB,oBAAoB,EAAE,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACrD,MAAM,QAAQ,CAAC,SAAS,CACvB,mBAAmB,EACnB;;;;;;;;;;;;;GAaC,CACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkBvC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB;IACjD,4EAA4E;IAC5E,2EAA2E;IAC3E,oCAAoC;IACpC,MAAM,QAAQ,CAAC,UAAU,CAAC;QACzB,gBAAgB,EAAE,EAAE;QACpB,oBAAoB,EAAE,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACrD,MAAM,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LdapDirectory.d.ts","sourceRoot":"","sources":["../../src/drivers/LdapDirectory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAIN,KAAK,UAAU,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,UAAU;IAC1B,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iFAAiF;IACjF,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,qBAAa,aAAc,YAAW,eAAe;;gBAGxC,MAAM,EAAE,UAAU;IAIxB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAgH5E"}
1
+ {"version":3,"file":"LdapDirectory.d.ts","sourceRoot":"","sources":["../../src/drivers/LdapDirectory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAIN,KAAK,UAAU,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,UAAU;IAC1B,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iFAAiF;IACjF,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,qBAAa,aAAc,YAAW,eAAe;;gBAGxC,MAAM,EAAE,UAAU;IAIxB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAkH5E"}
@@ -110,7 +110,9 @@ export class LdapDirectory {
110
110
  name: name ?? nickName ?? entry.dn,
111
111
  nickName,
112
112
  // A directory that holds an address has vouched for it: that is what
113
- // a directory is.
113
+ // a directory is. Unlike a SAML provider, the directory is the one
114
+ // the operator configured and runs — if it is a customer's, its
115
+ // addresses are that customer's say-so (see the README).
114
116
  emailVerificationState: email === undefined ? "unsupported" : "verified",
115
117
  raw: { dn: entry.dn, attributes: entry.attributes },
116
118
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LdapDirectory.js","sourceRoot":"","sources":["../../src/drivers/LdapDirectory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LdapDirectory.js","sourceRoot":"","sources":["../../src/drivers/LdapDirectory.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,23 @@ export interface SamlConfig {
43
43
  name?: string;
44
44
  nickName?: string;
45
45
  };
46
+ /**
47
+ * Mark every address this provider asserts as `"verified"`.
48
+ *
49
+ * Only for a provider that is authoritative for ALL the addresses it can
50
+ * assert — your own organisation's. Whoever administers the provider can
51
+ * assert any address, so with a customer's provider this hands them every
52
+ * account an application links by email. Default false: an asserted
53
+ * address is `"unsupported"`.
54
+ */
55
+ trustEmail?: boolean;
56
+ /**
57
+ * The domains this provider is authoritative for. An asserted address in
58
+ * one of them is `"verified"`, any other is `"unverified"`. Compared without
59
+ * case on what follows the address's last `@`, exactly — a subdomain is
60
+ * listed on its own.
61
+ */
62
+ trustedEmailDomains?: string[];
46
63
  }
47
64
  export declare class SamlDriver implements TransitDriver {
48
65
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"SamlDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/SamlDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EACN,KAAK,oBAAoB,EAEzB,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EACX,UAAU,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,MAAM,aAAa,CAAC;AAmCrB,MAAM,WAAW,UAAU;IAC1B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,oBAAoB,GAAG,CAAC,MAAM,oBAAoB,CAAC,CAAC;IAClE,gFAAgF;IAChF,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAsBD,qBAAa,UAAW,YAAW,aAAa;;gBAInC,MAAM,EAAE,UAAU;IAkB9B;;;OAGG;IACH,WAAW,IAAI,MAAM;IAMf,KAAK,CAAC,KAAK,GAAE,MAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAwBnE;;;;OAIG;IACG,QAAQ,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;CAoHpD"}
1
+ {"version":3,"file":"SamlDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/SamlDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EACN,KAAK,oBAAoB,EAEzB,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAEX,UAAU,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,MAAM,aAAa,CAAC;AAmCrB,MAAM,WAAW,UAAU;IAC1B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,oBAAoB,GAAG,CAAC,MAAM,oBAAoB,CAAC,CAAC;IAClE,gFAAgF;IAChF,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAsBD,qBAAa,UAAW,YAAW,aAAa;;gBAKnC,MAAM,EAAE,UAAU;IAmB9B;;;OAGG;IACH,WAAW,IAAI,MAAM;IAMf,KAAK,CAAC,KAAK,GAAE,MAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAwBnE;;;;OAIG;IACG,QAAQ,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;CAmIpD"}
@@ -66,6 +66,7 @@ function refuseImplicitMemoryReplayStoreInProduction() {
66
66
  }
67
67
  export class SamlDriver {
68
68
  #config;
69
+ #trustedDomains;
69
70
  #replay;
70
71
  constructor(config) {
71
72
  if (config.certificates.length === 0) {
@@ -80,6 +81,7 @@ export class SamlDriver {
80
81
  // healthy, and reported it to whoever happened to sign in first.
81
82
  refuseImplicitMemoryReplayStoreInProduction();
82
83
  }
84
+ this.#trustedDomains = trustedDomains(config);
83
85
  this.#config = config;
84
86
  }
85
87
  /**
@@ -145,7 +147,10 @@ export class SamlDriver {
145
147
  inResponseTo: secret,
146
148
  clockSkewSeconds: this.#config.clockSkewSeconds,
147
149
  });
148
- const fresh = await this.#replayStore().remember(identity.assertionId, identity.notOnOrAfter);
150
+ // Remembered for as long as the validation above would still accept the
151
+ // assertion — its later expiry plus the clock skew — not merely until
152
+ // the expiry it states.
153
+ const fresh = await this.#replayStore().remember(identity.assertionId, identity.rememberUntil);
149
154
  if (!fresh) {
150
155
  // Everything above passes on a captured response posted a second
151
156
  // time. This is what does not.
@@ -182,6 +187,22 @@ export class SamlDriver {
182
187
  : "") +
183
188
  "</samlp:AuthnRequest>");
184
189
  }
190
+ /**
191
+ * Whoever administers a SAML provider can assert any address, so one is
192
+ * verified only when the config says this provider is authoritative for it.
193
+ */
194
+ #emailVerificationState(email) {
195
+ if (email === undefined)
196
+ return "unsupported";
197
+ if (this.#config.trustEmail === true)
198
+ return "verified";
199
+ const domains = this.#trustedDomains;
200
+ if (domains === undefined)
201
+ return "unsupported";
202
+ const at = email.lastIndexOf("@");
203
+ const domain = at === -1 ? "" : email.slice(at + 1).toLowerCase();
204
+ return domains.has(domain) ? "verified" : "unverified";
205
+ }
185
206
  #mapUser(identity) {
186
207
  const claims = this.#config.claims ?? {};
187
208
  const email = pick(identity, claims.email, EMAIL_CLAIMS) ??
@@ -194,9 +215,7 @@ export class SamlDriver {
194
215
  email: email ?? "",
195
216
  name: name ?? identity.nameId,
196
217
  nickName: pick(identity, claims.nickName, NICK_CLAIMS),
197
- // A provider that asserts an address has vouched for it: that is what
198
- // its directory is.
199
- emailVerificationState: email === undefined ? "unsupported" : "verified",
218
+ emailVerificationState: this.#emailVerificationState(email),
200
219
  raw: {
201
220
  nameId: identity.nameId,
202
221
  nameIdFormat: identity.nameIdFormat,
@@ -206,6 +225,28 @@ export class SamlDriver {
206
225
  };
207
226
  }
208
227
  }
228
+ /**
229
+ * The trusted domains, lower-cased, or undefined when none were configured.
230
+ * A malformed list fails at construction rather than marking nothing, or the
231
+ * wrong addresses, verified.
232
+ */
233
+ function trustedDomains(config) {
234
+ const domains = config.trustedEmailDomains;
235
+ if (domains === undefined)
236
+ return undefined;
237
+ if (config.trustEmail === true) {
238
+ throw new SamlError(`'${config.issuer}' sets both trustEmail and trustedEmailDomains — trustEmail already trusts every domain, so say which one is meant`);
239
+ }
240
+ const normalized = new Set();
241
+ for (const domain of domains) {
242
+ const value = domain.trim().toLowerCase();
243
+ if (value === "" || value.includes("@")) {
244
+ throw new SamlError(`trustedEmailDomains of '${config.issuer}' lists '${domain}', which is not a domain — write 'acme.com', not an address`);
245
+ }
246
+ normalized.add(value);
247
+ }
248
+ return normalized;
249
+ }
209
250
  /** The first value among the configured name, then the usual ones. */
210
251
  function pick(identity, configured, candidates) {
211
252
  const names = configured ? [configured] : candidates;
@@ -1 +1 @@
1
- {"version":3,"file":"SamlDriver.js","sourceRoot":"","sources":["../../src/drivers/SamlDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SamlDriver.js","sourceRoot":"","sources":["../../src/drivers/SamlDriver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ldap.d.ts","sourceRoot":"","sources":["../src/ldap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA+BH,qBAAa,SAAU,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBACtB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK1C;AAED,mEAAmE;AACnE,MAAM,MAAM,UAAU,GACnB;IAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GAC9C;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACnB;IAAE,GAAG,EAAE,UAAU,EAAE,CAAA;CAAE,GACrB;IAAE,EAAE,EAAE,UAAU,EAAE,CAAA;CAAE,GACpB;IAAE,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC;AAEvB,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IAC3B,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;;gBAcd,OAAO,EAAE,WAAW;IAI1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C9B;;;;;;;OAOG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvD,iEAAiE;IAC3D,MAAM,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,UAAU,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAsBxB,mEAAmE;IAC7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA0G5B"}
1
+ {"version":3,"file":"ldap.d.ts","sourceRoot":"","sources":["../src/ldap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgCH,qBAAa,SAAU,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBACtB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK1C;AAED,mEAAmE;AACnE,MAAM,MAAM,UAAU,GACnB;IAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GAC9C;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACnB;IAAE,GAAG,EAAE,UAAU,EAAE,CAAA;CAAE,GACrB;IAAE,EAAE,EAAE,UAAU,EAAE,CAAA;CAAE,GACpB;IAAE,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC;AAEvB,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IAC3B,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;;gBAcd,OAAO,EAAE,WAAW;IAI1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C9B;;;;;;;OAOG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvD,iEAAiE;IAC3D,MAAM,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,UAAU,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAsBxB,mEAAmE;IAC7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAsI5B"}
package/dist/ldap.js CHANGED
@@ -24,6 +24,7 @@ const UNBIND_REQUEST = applicationPrimitive(2);
24
24
  const SEARCH_REQUEST = application(3);
25
25
  const SEARCH_ENTRY = application(4);
26
26
  const SEARCH_DONE = application(5);
27
+ const SEARCH_REFERENCE = application(19);
27
28
  export class LdapError extends Error {
28
29
  code;
29
30
  constructor(message, code) {
@@ -191,13 +192,40 @@ export class LdapConnection {
191
192
  if (!waiting || !expected)
192
193
  return;
193
194
  if (expected.until === undefined) {
194
- // A single-reply operation: this is the answer.
195
- this.#finish(id, [op.value]);
195
+ // A single-reply operation: the answer is the one tag it expects, and
196
+ // any other reply under its id is the server saying something this
197
+ // operation cannot read as a result.
198
+ if (expected.collect.includes(op.tag)) {
199
+ this.#finish(id, [op.value]);
200
+ }
201
+ else {
202
+ this.#fail(id, unexpectedReply(op.tag));
203
+ }
196
204
  return;
197
205
  }
198
- waiting.parts.push(op.value);
199
- if (op.tag === expected.until)
206
+ if (op.tag === expected.until) {
207
+ waiting.parts.push(op.value);
200
208
  this.#finish(id, waiting.parts);
209
+ return;
210
+ }
211
+ if (expected.collect.includes(op.tag)) {
212
+ waiting.parts.push(op.value);
213
+ return;
214
+ }
215
+ if (op.tag === SEARCH_REFERENCE) {
216
+ // A continuation reference names another server that may hold more
217
+ // of the subtree (RFC 4511 §4.5.3). It is not an entry, and chasing
218
+ // it would send the next bind to wherever the reply pointed. Active
219
+ // Directory answers several for any search from a domain root.
220
+ return;
221
+ }
222
+ this.#fail(id, unexpectedReply(op.tag));
223
+ }
224
+ #fail(id, error) {
225
+ const waiting = this.#pending.get(id);
226
+ this.#pending.delete(id);
227
+ this.#expect.delete(id);
228
+ waiting?.reject(error);
201
229
  }
202
230
  #finish(id, parts) {
203
231
  const waiting = this.#pending.get(id);
@@ -248,6 +276,9 @@ function readEntry(value) {
248
276
  attributes,
249
277
  };
250
278
  }
279
+ function unexpectedReply(tag) {
280
+ return new LdapError(`the directory answered with an unexpected reply (tag 0x${tag.toString(16)})`);
281
+ }
251
282
  /** LDAP answers a code; anything but zero is a refusal worth reporting. */
252
283
  function assertSuccess(response, what) {
253
284
  const [codeElement, , messageElement] = decodeSequence(response);
package/dist/ldap.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ldap.js","sourceRoot":"","sources":["../src/ldap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ldap.js","sourceRoot":"","sources":["../src/ldap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.d.ts","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qCAAqC,CAAC,EAAE,MAAM,EAAE,CAAC;IACjD,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC7B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACnB;AAKD;;;;;;;GAOG;AACH,qBAAa,aAAa;;gBAOb,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;IAQvD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAEK,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;CA2BvC;AAED;;;GAGG;AACH,qBAAa,SAAS;;gBAOT,OAAO,GAAE,aAAkB;IAKvC;;;;;;OAMG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;CAwD7D"}
1
+ {"version":3,"file":"oidc.d.ts","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qCAAqC,CAAC,EAAE,MAAM,EAAE,CAAC;IACjD,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC7B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACnB;AAKD;;;;;;;GAOG;AACH,qBAAa,aAAa;;gBAOb,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;IASvD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,GAAG,IAAI,MAAM,CAIhB;IAEK,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;CA2BvC;AAED;;;GAGG;AACH,qBAAa,SAAS;;gBAOT,OAAO,GAAE,aAAkB;IAKvC;;;;;;OAMG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;CAwD7D"}
package/dist/oidc.js CHANGED
@@ -26,9 +26,10 @@ export class OidcDiscovery {
26
26
  #cached;
27
27
  #inFlight;
28
28
  constructor(issuer, options = {}) {
29
- // A trailing slash changes the well-known URL and, on some providers,
30
- // the issuer claim it must be compared against.
31
- this.#issuer = issuer.replace(/\/+$/, "");
29
+ // Kept byte for byte: the discovery document's `issuer` and every
30
+ // id_token's `iss` must be IDENTICAL to it (OpenID Connect Discovery
31
+ // §4.3), and some providers' issuers end with a slash (Auth0's do).
32
+ this.#issuer = issuer;
32
33
  this.#ttlMs = options.ttlMs ?? DEFAULT_TTL_MS;
33
34
  this.#now = options.now ?? Date.now;
34
35
  }
@@ -36,7 +37,9 @@ export class OidcDiscovery {
36
37
  return this.#issuer;
37
38
  }
38
39
  get url() {
39
- return `${this.#issuer}/.well-known/openid-configuration`;
40
+ // Only the well-known URL drops the trailing slash, so it is joined
41
+ // without a double one.
42
+ return `${this.#issuer.replace(/\/+$/, "")}/.well-known/openid-configuration`;
40
43
  }
41
44
  async metadata() {
42
45
  const cached = this.#cached;
package/dist/oidc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"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"}
package/dist/quasar.d.ts CHANGED
@@ -8,6 +8,11 @@
8
8
  * its own commands, so unlike its siblings it passes them per call rather than
9
9
  * fixing one list here.
10
10
  */
11
- /** The named connection, checked for the commands the caller will issue. */
12
- export declare function quasarConnection<T>(name: string | undefined, required: readonly string[], what: string): Promise<T>;
11
+ /**
12
+ * The named connection, checked for the commands the caller will issue.
13
+ *
14
+ * `isConnection` is the caller's check over those same commands: only the
15
+ * caller knows which client type it needs, so only it can vouch for it.
16
+ */
17
+ export declare function quasarConnection<T>(name: string | undefined, required: readonly string[], what: string, isConnection: (value: unknown) => value is T): Promise<T>;
13
18
  //# sourceMappingURL=quasar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quasar.d.ts","sourceRoot":"","sources":["../src/quasar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,4EAA4E;AAC5E,wBAAsB,gBAAgB,CAAC,CAAC,EACvC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,CAAC,CAQZ"}
1
+ {"version":3,"file":"quasar.d.ts","sourceRoot":"","sources":["../src/quasar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACvC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,GAC1C,OAAO,CAAC,CAAC,CAAC,CASZ"}
package/dist/quasar.js CHANGED
@@ -9,13 +9,19 @@
9
9
  * fixing one list here.
10
10
  */
11
11
  import { quasarConnection as loadQuasarConnection } from "./vendor/quasarConnection.js";
12
- /** The named connection, checked for the commands the caller will issue. */
13
- export async function quasarConnection(name, required, what) {
12
+ /**
13
+ * The named connection, checked for the commands the caller will issue.
14
+ *
15
+ * `isConnection` is the caller's check over those same commands: only the
16
+ * caller knows which client type it needs, so only it can vouch for it.
17
+ */
18
+ export async function quasarConnection(name, required, what, isConnection) {
14
19
  return loadQuasarConnection({
15
20
  pkg: "transit",
16
21
  name,
17
22
  required,
18
23
  what,
24
+ isConnection,
19
25
  raise: (_reason, message, cause) => new Error(message, { cause }),
20
26
  });
21
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quasar.js","sourceRoot":"","sources":["../src/quasar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAExF,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,IAAwB,EACxB,QAA2B,EAC3B,IAAY;IAEZ,OAAO,oBAAoB,CAAI;QAC9B,GAAG,EAAE,SAAS;QACd,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC;KACjE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"quasar.js","sourceRoot":"","sources":["../src/quasar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAExF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,IAAwB,EACxB,QAA2B,EAC3B,IAAY,EACZ,YAA4C;IAE5C,OAAO,oBAAoB,CAAC;QAC3B,GAAG,EAAE,SAAS;QACd,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,YAAY;QACZ,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC;KACjE,CAAC,CAAC;AACJ,CAAC"}
package/dist/replay.d.ts CHANGED
@@ -12,7 +12,9 @@
12
12
  */
13
13
  export interface AssertionReplayStore {
14
14
  /**
15
- * Remember `assertionId` until `expiresAt` (epoch seconds).
15
+ * Remember `assertionId` until `expiresAt` (epoch seconds) — the
16
+ * `rememberUntil` of a validated assertion, which already counts the clock
17
+ * skew it was accepted with.
16
18
  *
17
19
  * Answers `true` when this is the first time, `false` when the assertion
18
20
  * has already been used. Implementations must decide that atomically:
@@ -1 +1 @@
1
- {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,oBAAoB;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,YAAW,oBAAoB;;IAGhE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAWxE;AAED,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IACjC,8EAA8E;IAC9E,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,mBAAmB,GAC5B,iBAAiB,GACjB,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IAClC,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,qBAAa,yBAA0B,YAAW,oBAAoB;;gBAKzD,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAE,kBAAuB;IAKnE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAwBxE;AAED,wCAAwC;AACxC,eAAO,MAAM,YAAY;IACxB,gEAAgE;cACtD,MAAM,oBAAoB;IAIpC;;;OAGG;mBACY;QACd,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAAC;QACzC,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,MAAM,oBAAoB;CAa9B,CAAC"}
1
+ {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,MAAM,WAAW,oBAAoB;IACpC;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,YAAW,oBAAoB;;IAGhE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAWxE;AAED,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IACjC,8EAA8E;IAC9E,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE;AAMD,MAAM,MAAM,mBAAmB,GAC5B,iBAAiB,GACjB,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IAClC,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,qBAAa,yBAA0B,YAAW,oBAAoB;;gBAKzD,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAE,kBAAuB;IAKnE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAyBxE;AAED,wCAAwC;AACxC,eAAO,MAAM,YAAY;IACxB,gEAAgE;cACtD,MAAM,oBAAoB;IAIpC;;;OAGG;mBACY;QACd,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAAC;QACzC,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,MAAM,oBAAoB;CAe9B,CAAC"}
package/dist/replay.js CHANGED
@@ -11,6 +11,7 @@
11
11
  * soon as the assertion it names could no longer have been accepted anyway.
12
12
  */
13
13
  import { quasarConnection } from "./quasar.js";
14
+ import { hasCommands } from "./vendor/quasarConnection.js";
14
15
  /**
15
16
  * Remembers in this process's memory.
16
17
  *
@@ -34,6 +35,9 @@ export class MemoryAssertionReplayStore {
34
35
  return true;
35
36
  }
36
37
  }
38
+ function isReplayRedisClient(value) {
39
+ return hasCommands(value, ["set"]);
40
+ }
37
41
  /**
38
42
  * Remembers in Redis, so every replica refuses the assertion the first one
39
43
  * accepted.
@@ -51,8 +55,9 @@ export class RedisAssertionReplayStore {
51
55
  }
52
56
  async remember(assertionId, expiresAt) {
53
57
  const client = await this.#client();
54
- // The key outlives the assertion by a minute, so an assertion accepted
55
- // at the edge of its window cannot be replayed just after it.
58
+ // `expiresAt` already covers the clock skew the validation allowed. The
59
+ // extra minute absorbs clock differences between the replica that
60
+ // stores the key and the one a replay lands on.
56
61
  const ttl = Math.max(1, Math.ceil(expiresAt - Math.floor(Date.now() / 1000)) + 60);
57
62
  const stored = await client.set(`${this.#prefix}${assertionId}`, "1", "EX", ttl, "NX");
58
63
  return stored !== null && stored !== undefined;
@@ -73,9 +78,10 @@ export const replayStores = {
73
78
  * of a `@c9up/quasar` connection.
74
79
  */
75
80
  redis(options) {
76
- const client = typeof options.connection === "string"
77
- ? () => quasarConnection(options.connection, ["set"], "the assertion replay store")
78
- : options.connection;
81
+ const { connection } = options;
82
+ const client = typeof connection === "string"
83
+ ? () => quasarConnection(connection, ["set"], "the assertion replay store", isReplayRedisClient)
84
+ : connection;
79
85
  return () => new RedisAssertionReplayStore(client, { prefix: options.prefix });
80
86
  },
81
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAc/C;;;;;;GAMG;AACH,MAAM,OAAO,0BAA0B;IAC7B,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,SAAiB;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,uEAAuE;QACvE,mCAAmC;QACnC,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,MAAM,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAiBD;;;;;;GAMG;AACH,MAAM,OAAO,yBAAyB;IAC5B,OAAO,CAAsB;IAC7B,OAAO,CAAS;IACzB,SAAS,CAAyC;IAElD,YAAY,MAA2B,EAAE,UAA8B,EAAE;QACxE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,yBAAyB,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,SAAiB;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,uEAAuE;QACvE,8DAA8D;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CACnB,CAAC,EACD,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CACzD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC9B,GAAG,IAAI,CAAC,OAAO,GAAG,WAAW,EAAE,EAC/B,GAAG,EACH,IAAI,EACJ,GAAG,EACH,IAAI,CACJ,CAAC;QACF,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC;IAChD,CAAC;IAED,OAAO;QACN,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,OAAO,CACjC,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAClE,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;CACD;AAED,wCAAwC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,gEAAgE;IAChE,MAAM;QACL,OAAO,GAAG,EAAE,CAAC,IAAI,0BAA0B,EAAE,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAGL;QACA,MAAM,MAAM,GACX,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;YACrC,CAAC,CAAC,GAAG,EAAE,CACL,gBAAgB,CACf,OAAO,CAAC,UAAoB,EAC5B,CAAC,KAAK,CAAC,EACP,4BAA4B,CAC5B;YACH,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACvB,OAAO,GAAG,EAAE,CACX,IAAI,yBAAyB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}