altcha-lib 2.3.0 → 2.3.1

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/README.md CHANGED
@@ -98,6 +98,12 @@ bun run --port 3000 examples/hono-example.ts
98
98
  deno serve --allow-net --sloppy-imports --port 3000 examples/hono-example.ts
99
99
  ```
100
100
 
101
+ **Hono + Sentinel remote verification example (Bun):**
102
+
103
+ ```sh
104
+ bun run --port 3000 examples/hono-sentinel-example.ts
105
+ ```
106
+
101
107
  ## Breaking Changes (v2)
102
108
 
103
109
  Version 2 introduces a new proof-of-work mechanism and challenge format. See the [PoW documentation](https://playground.altcha.org/#/about) for details.
@@ -35,7 +35,7 @@ function create(options) {
35
35
  });
36
36
  const verifyHandler = asyncHandler(async (req, res) => {
37
37
  const payload = await getPayloadFromRequest(req);
38
- const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
38
+ const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
39
39
  res.json(result);
40
40
  });
41
41
  const getPayloadFromRequest = async (req, cookieName) => {
@@ -54,7 +54,7 @@ function create(options) {
54
54
  };
55
55
  const verifyHandler = async (request, reply) => {
56
56
  const payload = await getPayloadFromRequest(request);
57
- const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
57
+ const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
58
58
  return reply.send(result);
59
59
  };
60
60
  const middleware = (options = {}) => {
@@ -35,7 +35,7 @@ function create(options) {
35
35
  };
36
36
  });
37
37
  const verifyHandler = (0, h3_1.defineEventHandler)(async (event) => {
38
- return await (0, shared_js_1.verify)(await getPayloadFromEvent(event), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
38
+ return await (0, shared_js_1.verify)(await getPayloadFromEvent(event), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
39
39
  });
40
40
  const getPayloadFromEvent = async (event, cookieName) => {
41
41
  let payload = undefined;
@@ -35,7 +35,7 @@ function create(options) {
35
35
  });
36
36
  };
37
37
  const verifyHandler = async (c) => {
38
- return c.json(await (0, shared_js_1.verify)(await getPayloadFromContext(c), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions));
38
+ return c.json(await (0, shared_js_1.verify)(await getPayloadFromContext(c), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store));
39
39
  };
40
40
  const getPayloadFromContext = async (c, cookieName) => {
41
41
  let payload = undefined;
@@ -41,7 +41,9 @@ export declare class AltchaService {
41
41
  } | undefined;
42
42
  }>;
43
43
  getPayloadFromRequest(req: Request, cookieName?: string): string | undefined;
44
- verify(payload: string | undefined): Promise<{
44
+ verify(payload: string | undefined, options?: {
45
+ allowRemote?: boolean;
46
+ }): Promise<{
45
47
  error: string | null;
46
48
  payload: import("../types.js").Payload | import("../types.js").ServerSignaturePayload | null;
47
49
  verification: import("../types.js").VerifySolutionResult | import("../types.js").VerifyServerResult | null;
@@ -36,7 +36,7 @@ function createAltchaMiddleware(options = {}) {
36
36
  }
37
37
  async use(req, res, next) {
38
38
  const payload = this.altchaService.getPayloadFromRequest(req);
39
- const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload);
39
+ const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload, { allowRemote: true });
40
40
  req.altcha = {
41
41
  error,
42
42
  payload: resultPayload,
@@ -96,8 +96,8 @@ let AltchaService = class AltchaService {
96
96
  }
97
97
  return req.body?.[this.fieldName];
98
98
  }
99
- async verify(payload) {
100
- return (0, shared_js_1.verify)(payload, this.deriveKey, this.hmacSignatureSecret, this.hmacKeySignatureSecret, this.store, this.verifyServerOptions);
99
+ async verify(payload, options = {}) {
100
+ return (0, shared_js_1.verify)(payload, this.deriveKey, this.hmacSignatureSecret, this.hmacKeySignatureSecret, this.store, options.allowRemote ? this.verifyServerOptions : undefined);
101
101
  }
102
102
  };
103
103
  exports.AltchaService = AltchaService;
@@ -143,7 +143,7 @@ let AltchaMiddleware = class AltchaMiddleware {
143
143
  }
144
144
  async use(req, res, next) {
145
145
  const payload = this.altchaService.getPayloadFromRequest(req, this.altchaService.setCookie?.name);
146
- const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload);
146
+ const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload, { allowRemote: true });
147
147
  req.altcha = {
148
148
  error,
149
149
  payload: resultPayload,
@@ -48,7 +48,7 @@ function create(options) {
48
48
  }
49
49
  async function verifyHandler(req) {
50
50
  const payload = await getPayloadFromRequest(req);
51
- const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
51
+ const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
52
52
  return Response.json(result);
53
53
  }
54
54
  async function getPayloadFromRequest(req, cookieName) {
@@ -49,7 +49,7 @@ function create(options) {
49
49
  }
50
50
  async function verifyHandler(event) {
51
51
  const payload = await getPayloadFromEvent(event, fieldName);
52
- const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
52
+ const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
53
53
  return (0, kit_1.json)(result);
54
54
  }
55
55
  function createHandle(middlewareOptions = {}) {
@@ -29,7 +29,7 @@ export function create(options) {
29
29
  });
30
30
  const verifyHandler = asyncHandler(async (req, res) => {
31
31
  const payload = await getPayloadFromRequest(req);
32
- const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
32
+ const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
33
33
  res.json(result);
34
34
  });
35
35
  const getPayloadFromRequest = async (req, cookieName) => {
@@ -48,7 +48,7 @@ export function create(options) {
48
48
  };
49
49
  const verifyHandler = async (request, reply) => {
50
50
  const payload = await getPayloadFromRequest(request);
51
- const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
51
+ const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
52
52
  return reply.send(result);
53
53
  };
54
54
  const middleware = (options = {}) => {
@@ -29,7 +29,7 @@ export function create(options) {
29
29
  };
30
30
  });
31
31
  const verifyHandler = defineEventHandler(async (event) => {
32
- return await verify(await getPayloadFromEvent(event), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
32
+ return await verify(await getPayloadFromEvent(event), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
33
33
  });
34
34
  const getPayloadFromEvent = async (event, cookieName) => {
35
35
  let payload = undefined;
@@ -29,7 +29,7 @@ export function create(options) {
29
29
  });
30
30
  };
31
31
  const verifyHandler = async (c) => {
32
- return c.json(await verify(await getPayloadFromContext(c), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions));
32
+ return c.json(await verify(await getPayloadFromContext(c), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store));
33
33
  };
34
34
  const getPayloadFromContext = async (c, cookieName) => {
35
35
  let payload = undefined;
@@ -41,7 +41,9 @@ export declare class AltchaService {
41
41
  } | undefined;
42
42
  }>;
43
43
  getPayloadFromRequest(req: Request, cookieName?: string): string | undefined;
44
- verify(payload: string | undefined): Promise<{
44
+ verify(payload: string | undefined, options?: {
45
+ allowRemote?: boolean;
46
+ }): Promise<{
45
47
  error: string | null;
46
48
  payload: import("../types.js").Payload | import("../types.js").ServerSignaturePayload | null;
47
49
  verification: import("../types.js").VerifySolutionResult | import("../types.js").VerifyServerResult | null;
@@ -31,7 +31,7 @@ export function createAltchaMiddleware(options = {}) {
31
31
  }
32
32
  async use(req, res, next) {
33
33
  const payload = this.altchaService.getPayloadFromRequest(req);
34
- const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload);
34
+ const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload, { allowRemote: true });
35
35
  req.altcha = {
36
36
  error,
37
37
  payload: resultPayload,
@@ -99,8 +99,8 @@ let AltchaService = class AltchaService {
99
99
  }
100
100
  return req.body?.[this.fieldName];
101
101
  }
102
- async verify(payload) {
103
- return verify(payload, this.deriveKey, this.hmacSignatureSecret, this.hmacKeySignatureSecret, this.store, this.verifyServerOptions);
102
+ async verify(payload, options = {}) {
103
+ return verify(payload, this.deriveKey, this.hmacSignatureSecret, this.hmacKeySignatureSecret, this.store, options.allowRemote ? this.verifyServerOptions : undefined);
104
104
  }
105
105
  };
106
106
  AltchaService = __decorate([
@@ -148,7 +148,7 @@ let AltchaMiddleware = class AltchaMiddleware {
148
148
  }
149
149
  async use(req, res, next) {
150
150
  const payload = this.altchaService.getPayloadFromRequest(req, this.altchaService.setCookie?.name);
151
- const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload);
151
+ const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload, { allowRemote: true });
152
152
  req.altcha = {
153
153
  error,
154
154
  payload: resultPayload,
@@ -42,7 +42,7 @@ export function create(options) {
42
42
  }
43
43
  async function verifyHandler(req) {
44
44
  const payload = await getPayloadFromRequest(req);
45
- const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
45
+ const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
46
46
  return Response.json(result);
47
47
  }
48
48
  async function getPayloadFromRequest(req, cookieName) {
@@ -43,7 +43,7 @@ export function create(options) {
43
43
  }
44
44
  async function verifyHandler(event) {
45
45
  const payload = await getPayloadFromEvent(event, fieldName);
46
- const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store, verifyServerOptions);
46
+ const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
47
47
  return json(result);
48
48
  }
49
49
  function createHandle(middlewareOptions = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "altcha-lib",
3
- "version": "2.3.0",
3
+ "version": "2.3.1",
4
4
  "description": "A lightweight library for creating and verifying ALTCHA challenges on the server.",
5
5
  "author": {
6
6
  "name": "Daniel Regeci",