@effect/sql-pg 4.0.0-rc.111 → 4.0.0-rc.112

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgTypes.js","names":[],"sources":["../src/PgTypes.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  /**
2
2
  * @since 4.0.0
3
3
  */
4
+ /**
5
+ * @since 4.0.0
6
+ */
7
+ export * as PgAuth from "./PgAuth.ts";
4
8
  /**
5
9
  * @since 4.0.0
6
10
  */
@@ -9,4 +13,12 @@ export * as PgClient from "./PgClient.ts";
9
13
  * @since 4.0.0
10
14
  */
11
15
  export * as PgMigrator from "./PgMigrator.ts";
16
+ /**
17
+ * @since 4.0.0
18
+ */
19
+ export * as PgProtocol from "./PgProtocol.ts";
20
+ /**
21
+ * @since 4.0.0
22
+ */
23
+ export * as PgTypes from "./PgTypes.ts";
12
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
package/dist/index.js CHANGED
@@ -2,6 +2,10 @@
2
2
  * @since 4.0.0
3
3
  */
4
4
  // @barrel: Auto-generated exports. Do not edit manually.
5
+ /**
6
+ * @since 4.0.0
7
+ */
8
+ export * as PgAuth from "./PgAuth.js";
5
9
  /**
6
10
  * @since 4.0.0
7
11
  */
@@ -10,4 +14,12 @@ export * as PgClient from "./PgClient.js";
10
14
  * @since 4.0.0
11
15
  */
12
16
  export * as PgMigrator from "./PgMigrator.js";
17
+ /**
18
+ * @since 4.0.0
19
+ */
20
+ export * as PgProtocol from "./PgProtocol.js";
21
+ /**
22
+ * @since 4.0.0
23
+ */
24
+ export * as PgTypes from "./PgTypes.js";
13
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAK,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAK,UAAU,MAAM,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAK,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAK,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAK,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAK,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAK,OAAO,MAAM,cAAc","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/sql-pg",
3
- "version": "4.0.0-rc.111",
3
+ "version": "4.0.0-rc.112",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "A PostgreSQL toolkit for Effect",
@@ -48,12 +48,15 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@testcontainers/postgresql": "^12.1.0",
51
- "@types/pg": "^8.21.0",
51
+ "@types/pg": "^8.23.1",
52
52
  "@types/pg-cursor": "^2.7.2",
53
- "effect": "^4.0.0-rc.111"
53
+ "pg-protocol": "^1.16.0",
54
+ "postgres": "^3.4.9",
55
+ "tinybench": "^6.1.3",
56
+ "effect": "^4.0.0-rc.112"
54
57
  },
55
58
  "peerDependencies": {
56
- "effect": "^4.0.0-rc.111"
59
+ "effect": "^4.0.0-rc.112"
57
60
  },
58
61
  "dependencies": {
59
62
  "pg": "^8.23.0",
@@ -63,6 +66,7 @@
63
66
  "pg-types": "^4.1.0"
64
67
  },
65
68
  "scripts": {
69
+ "benchmark:codec": "node benchmark/PgCodec.ts",
66
70
  "codegen": "effect-utils codegen",
67
71
  "build": "tsc -b tsconfig.json && pnpm babel",
68
72
  "babel": "babel dist --plugins annotate-pure-calls --out-dir dist --source-maps",
package/src/PgAuth.ts ADDED
@@ -0,0 +1,287 @@
1
+ /**
2
+ * Password authentication for the PostgreSQL protocol: MD5 and
3
+ * SCRAM-SHA-256.
4
+ *
5
+ * Message framing lives in `PgProtocol` - SASL payloads travel as opaque
6
+ * bytes - so this module only computes what goes inside them. Cleartext
7
+ * authentication needs nothing from here; send the password as a
8
+ * `PasswordMessage`.
9
+ *
10
+ * `SCRAM-SHA-256-PLUS` is not implemented: channel binding needs the TLS
11
+ * socket, which this codec does not own. Passwords are used as UTF-8 without
12
+ * SASLprep normalisation, so non-ASCII passwords that require normalisation
13
+ * are not supported.
14
+ *
15
+ * @since 4.0.0
16
+ */
17
+ import * as Data from "effect/Data"
18
+ import * as Encoding from "effect/Encoding"
19
+ import * as Result from "effect/Result"
20
+ import { createHash, createHmac, pbkdf2Sync } from "node:crypto"
21
+
22
+ /**
23
+ * Failure returned when an authentication exchange cannot be completed.
24
+ *
25
+ * @category errors
26
+ * @since 4.0.0
27
+ */
28
+ export class AuthError extends Data.TaggedError("PgAuthError")<{
29
+ readonly message: string
30
+ }> {}
31
+
32
+ const fail = (message: string): never => {
33
+ throw new AuthError({ message })
34
+ }
35
+
36
+ const result = <A>(evaluate: () => A): Result.Result<A, AuthError> => {
37
+ try {
38
+ return Result.succeed(evaluate())
39
+ } catch (error) {
40
+ if (error instanceof AuthError) return Result.fail(error)
41
+ throw error
42
+ }
43
+ }
44
+
45
+ const textEncoder = new TextEncoder()
46
+ const textDecoder = new TextDecoder("utf-8", { fatal: true })
47
+
48
+ const bytesOf = (value: Uint8Array): Uint8Array => Uint8Array.from(value)
49
+
50
+ const sha256 = (data: Uint8Array): Uint8Array => bytesOf(createHash("sha256").update(data).digest())
51
+
52
+ const hmacSha256 = (key: Uint8Array, data: Uint8Array): Uint8Array =>
53
+ bytesOf(createHmac("sha256", key).update(data).digest())
54
+
55
+ const xor = (left: Uint8Array, right: Uint8Array): Uint8Array => {
56
+ const result = new Uint8Array(left.length)
57
+ for (let i = 0; i < left.length; i++) {
58
+ result[i] = left[i] ^ right[i]
59
+ }
60
+ return result
61
+ }
62
+
63
+ const toBase64 = (bytes: Uint8Array): string => Encoding.encodeBase64(bytes)
64
+
65
+ const fromBase64 = (text: string, field: string): Uint8Array => {
66
+ const decoded = Encoding.decodeBase64(text)
67
+ if (Result.isFailure(decoded)) {
68
+ return fail(`Invalid base64 in SCRAM attribute "${field}"`)
69
+ }
70
+ return decoded.success
71
+ }
72
+
73
+ const decodeUtf8 = (bytes: Uint8Array, what: string): string => {
74
+ try {
75
+ return textDecoder.decode(bytes)
76
+ } catch {
77
+ return fail(`Invalid UTF-8 in ${what}`)
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Computes the password string for an `AuthenticationMD5Password` challenge:
83
+ * `"md5" + md5(md5(password + user) + salt)`. Send the result verbatim as a
84
+ * `PasswordMessage`.
85
+ *
86
+ * @category MD5
87
+ * @since 4.0.0
88
+ */
89
+ const md5PasswordUnsafe = (options: {
90
+ readonly user: string
91
+ readonly password: string
92
+ readonly salt: Uint8Array
93
+ }): string => {
94
+ if (options.salt.length !== 4) {
95
+ return fail(`PostgreSQL MD5 salt must be exactly 4 bytes, received ${options.salt.length}`)
96
+ }
97
+ const inner = createHash("md5").update(textEncoder.encode(options.password + options.user)).digest("hex")
98
+ const outer = createHash("md5").update(textEncoder.encode(inner)).update(options.salt).digest("hex")
99
+ return `md5${outer}`
100
+ }
101
+
102
+ export const md5Password = (options: {
103
+ readonly user: string
104
+ readonly password: string
105
+ readonly salt: Uint8Array
106
+ }): Result.Result<string, AuthError> => result(() => md5PasswordUnsafe(options))
107
+
108
+ /**
109
+ * The only SASL mechanism this module implements.
110
+ *
111
+ * @category SCRAM
112
+ * @since 4.0.0
113
+ */
114
+ export const SCRAM_SHA_256 = "SCRAM-SHA-256"
115
+
116
+ /**
117
+ * State after the client's first message, awaiting the server's challenge.
118
+ *
119
+ * @category SCRAM
120
+ * @since 4.0.0
121
+ */
122
+ export interface ScramFirst {
123
+ readonly _tag: "ScramFirst"
124
+ readonly password: string
125
+ readonly clientNonce: string
126
+ readonly clientFirstMessageBare: string
127
+ }
128
+
129
+ /**
130
+ * State after the client's final message, awaiting the server signature.
131
+ *
132
+ * @category SCRAM
133
+ * @since 4.0.0
134
+ */
135
+ export interface ScramFinal {
136
+ readonly _tag: "ScramFinal"
137
+ readonly serverSignature: Uint8Array
138
+ }
139
+
140
+ /**
141
+ * The SCRAM exchange state.
142
+ *
143
+ * @category SCRAM
144
+ * @since 4.0.0
145
+ */
146
+ export type ScramState = ScramFirst | ScramFinal
147
+
148
+ const GS2_HEADER = "n,,"
149
+ /** Base64 of the GS2 header, the `c=` attribute value without channel binding. */
150
+ const CHANNEL_BINDING = "biws"
151
+
152
+ const parseAttributes = (message: string): Map<string, string> => {
153
+ const attributes = new Map<string, string>()
154
+ for (const part of message.split(",")) {
155
+ const separator = part.indexOf("=")
156
+ if (separator < 1) {
157
+ return fail(`Malformed SCRAM attribute: "${part}"`)
158
+ }
159
+ const key = part.slice(0, separator)
160
+ if (attributes.has(key)) {
161
+ return fail(`Duplicate SCRAM attribute "${key}"`)
162
+ }
163
+ attributes.set(key, part.slice(separator + 1))
164
+ }
165
+ return attributes
166
+ }
167
+
168
+ const attribute = (attributes: Map<string, string>, key: string): string =>
169
+ attributes.get(key) ?? fail(`Missing SCRAM attribute "${key}"`)
170
+
171
+ /**
172
+ * Starts a SCRAM-SHA-256 exchange. The `nonce` must be a fresh, random,
173
+ * printable ASCII string chosen by the caller; this module never generates
174
+ * randomness.
175
+ *
176
+ * The successful result contains the `initialResponse` bytes for a
177
+ * `SASLInitialResponse` message with mechanism `SCRAM_SHA_256`.
178
+ *
179
+ * @category SCRAM
180
+ * @since 4.0.0
181
+ */
182
+ const scramInitUnsafe = (options: {
183
+ readonly password: string
184
+ readonly nonce: string
185
+ }): { readonly state: ScramFirst; readonly response: Uint8Array } => {
186
+ if (!/^[\x21-\x2b\x2d-\x7e]+$/.test(options.nonce)) {
187
+ return fail("SCRAM nonce must contain only printable ASCII characters other than comma")
188
+ }
189
+ const clientFirstMessageBare = `n=,r=${options.nonce}`
190
+ return {
191
+ state: {
192
+ _tag: "ScramFirst",
193
+ password: options.password,
194
+ clientNonce: options.nonce,
195
+ clientFirstMessageBare
196
+ },
197
+ response: textEncoder.encode(GS2_HEADER + clientFirstMessageBare)
198
+ }
199
+ }
200
+
201
+ export const scramInit = (options: {
202
+ readonly password: string
203
+ readonly nonce: string
204
+ }): Result.Result<{ readonly state: ScramFirst; readonly response: Uint8Array }, AuthError> =>
205
+ result(() => scramInitUnsafe(options))
206
+
207
+ /**
208
+ * Answers an `AuthenticationSASLContinue` challenge.
209
+ *
210
+ * The successful result contains the payload bytes for a `SASLResponse`
211
+ * message.
212
+ *
213
+ * @category SCRAM
214
+ * @since 4.0.0
215
+ */
216
+ const scramContinueUnsafe = (
217
+ state: ScramFirst,
218
+ challenge: Uint8Array
219
+ ): { readonly state: ScramFinal; readonly response: Uint8Array } => {
220
+ const serverFirstMessage = decodeUtf8(challenge, "the SCRAM server-first-message")
221
+ const attributes = parseAttributes(serverFirstMessage)
222
+ const nonce = attribute(attributes, "r")
223
+ if (!nonce.startsWith(state.clientNonce) || nonce.length === state.clientNonce.length) {
224
+ return fail("SCRAM server nonce does not extend the client nonce")
225
+ }
226
+ const saltText = attribute(attributes, "s")
227
+ if (saltText.length === 0) {
228
+ return fail("SCRAM salt must not be empty")
229
+ }
230
+ const salt = fromBase64(saltText, "s")
231
+ const iterationText = attribute(attributes, "i")
232
+ const iterations = Number(iterationText)
233
+ if (!/^[1-9]\d*$/.test(iterationText) || !Number.isSafeInteger(iterations) || iterations > 0x7fffffff) {
234
+ return fail(`Invalid SCRAM iteration count: ${iterationText}`)
235
+ }
236
+
237
+ const saltedPassword = bytesOf(
238
+ pbkdf2Sync(textEncoder.encode(state.password), salt, iterations, 32, "sha256")
239
+ )
240
+ const clientKey = hmacSha256(saltedPassword, textEncoder.encode("Client Key"))
241
+ const storedKey = sha256(clientKey)
242
+ const clientFinalMessageWithoutProof = `c=${CHANNEL_BINDING},r=${nonce}`
243
+ const authMessage = textEncoder.encode(
244
+ `${state.clientFirstMessageBare},${serverFirstMessage},${clientFinalMessageWithoutProof}`
245
+ )
246
+ const clientProof = xor(clientKey, hmacSha256(storedKey, authMessage))
247
+ const serverKey = hmacSha256(saltedPassword, textEncoder.encode("Server Key"))
248
+
249
+ return {
250
+ state: {
251
+ _tag: "ScramFinal",
252
+ serverSignature: hmacSha256(serverKey, authMessage)
253
+ },
254
+ response: textEncoder.encode(`${clientFinalMessageWithoutProof},p=${toBase64(clientProof)}`)
255
+ }
256
+ }
257
+
258
+ export const scramContinue = (
259
+ state: ScramFirst,
260
+ challenge: Uint8Array
261
+ ): Result.Result<{ readonly state: ScramFinal; readonly response: Uint8Array }, AuthError> =>
262
+ result(() => scramContinueUnsafe(state, challenge))
263
+
264
+ /**
265
+ * Verifies the server signature carried by `AuthenticationSASLFinal`. Returns
266
+ * `Result.void` on success and an `AuthError` failure when the server could
267
+ * not prove that it knows the stored key.
268
+ *
269
+ * @category SCRAM
270
+ * @since 4.0.0
271
+ */
272
+ const scramFinishUnsafe = (state: ScramFinal, challenge: Uint8Array): void => {
273
+ const attributes = parseAttributes(decodeUtf8(challenge, "the SCRAM server-final-message"))
274
+ const error = attributes.get("e")
275
+ if (error !== undefined) {
276
+ fail(`SCRAM authentication failed: ${error}`)
277
+ }
278
+ const signature = fromBase64(attribute(attributes, "v"), "v")
279
+ if (toBase64(state.serverSignature) !== toBase64(signature)) {
280
+ fail("SCRAM server signature mismatch")
281
+ }
282
+ }
283
+
284
+ export const scramFinish = (
285
+ state: ScramFinal,
286
+ challenge: Uint8Array
287
+ ): Result.Result<void, AuthError> => result(() => scramFinishUnsafe(state, challenge))