@yaebal/web 0.0.1 → 0.0.2

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/lib/index.d.ts CHANGED
@@ -10,7 +10,7 @@ import { type UpdateSink, type WebhookOptions } from "@yaebal/core";
10
10
  * // bun / deno standalone
11
11
  * serve(bot, { port: 8080, secretToken: process.env.SECRET });
12
12
  */
13
- export type { WebhookOptions, UpdateSink } from "@yaebal/core";
13
+ export type { UpdateSink, WebhookOptions } from "@yaebal/core";
14
14
  /** minimal bot surface the lifecycle helpers need. */
15
15
  interface ApiBot {
16
16
  api: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAmB,MAAM,cAAc,CAAC;AAErF;;;;;;;;;;GAUG;AAEH,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/D,sDAAsD;AACtD,UAAU,MAAM;IACf,GAAG,EAAE;QAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAClF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACtB,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,cAAc,GACtB,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAEzC;AAED,MAAM,WAAW,iBAAiB;IACjC,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uEAAuE;AACvE,wBAAsB,UAAU,CAC/B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,uEAAuE;AACvE,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1F;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IACnD,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAYD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,IAAI,CAavE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAmB,MAAM,cAAc,CAAC;AAErF;;;;;;;;;;GAUG;AAEH,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE/D,sDAAsD;AACtD,UAAU,MAAM;IACf,GAAG,EAAE;QAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAClF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACtB,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,cAAc,GACtB,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAEzC;AAED,MAAM,WAAW,iBAAiB;IACjC,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uEAAuE;AACvE,wBAAsB,UAAU,CAC/B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,uEAAuE;AACvE,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1F;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IACnD,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAYD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,IAAI,CAavE"}
package/lib/index.test.js CHANGED
@@ -6,7 +6,7 @@ const sink = () => {
6
6
  const bot = { handleUpdate: async (u) => void updates.push(u) };
7
7
  return { bot, updates };
8
8
  };
9
- const post = (body, headers = {}) => new Request("https://example.dev/", { method: "POST", body: JSON.stringify(body), headers });
9
+ const post = (body, headers = {}) => new Request("https://yaeb.al/", { method: "POST", body: JSON.stringify(body), headers });
10
10
  test("webhook handler dispatches POSTed updates", async () => {
11
11
  const { bot, updates } = sink();
12
12
  const res = await webhook(bot)(post({ update_id: 1, message: { text: "hi" } }));
@@ -16,7 +16,7 @@ test("webhook handler dispatches POSTed updates", async () => {
16
16
  test("webhook handler rejects non-POST and bad secret", async () => {
17
17
  const { bot, updates } = sink();
18
18
  const handler = webhook(bot, { secretToken: "s3cret" });
19
- const get = await handler(new Request("https://example.dev/", { method: "GET" }));
19
+ const get = await handler(new Request("https://yaeb.al/", { method: "GET" }));
20
20
  assert.equal(get.status, 405);
21
21
  const bad = await handler(post({ update_id: 1 }, { "x-telegram-bot-api-secret-token": "nope" }));
22
22
  assert.equal(bad.status, 401);
@@ -34,13 +34,13 @@ test("setWebhook / deleteWebhook call the Bot API", async () => {
34
34
  },
35
35
  },
36
36
  };
37
- await setWebhook(bot, "https://example.dev/hook", {
37
+ await setWebhook(bot, "https://yaeb.al/hook", {
38
38
  secretToken: "s3cret",
39
39
  allowedUpdates: ["message"],
40
40
  dropPendingUpdates: true,
41
41
  });
42
42
  assert.equal(calls[0]?.method, "setWebhook");
43
- assert.equal(calls[0]?.params?.url, "https://example.dev/hook");
43
+ assert.equal(calls[0]?.params?.url, "https://yaeb.al/hook");
44
44
  assert.equal(calls[0]?.params?.secret_token, "s3cret");
45
45
  assert.deepEqual(calls[0]?.params?.allowed_updates, ["message"]);
46
46
  assert.equal(calls[0]?.params?.drop_pending_updates, true);
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaebal/web",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "yaebal web — run your bot on edge/web runtimes (cloudflare workers, deno, bun) via webhooks.",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -16,7 +16,7 @@
16
16
  "src"
17
17
  ],
18
18
  "dependencies": {
19
- "@yaebal/core": "0.0.1"
19
+ "@yaebal/core": "0.0.5"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/node": "latest"
package/src/index.test.ts CHANGED
@@ -10,7 +10,7 @@ const sink = () => {
10
10
  };
11
11
 
12
12
  const post = (body: unknown, headers: Record<string, string> = {}) =>
13
- new Request("https://example.dev/", { method: "POST", body: JSON.stringify(body), headers });
13
+ new Request("https://yaeb.al/", { method: "POST", body: JSON.stringify(body), headers });
14
14
 
15
15
  test("webhook handler dispatches POSTed updates", async () => {
16
16
  const { bot, updates } = sink();
@@ -25,7 +25,7 @@ test("webhook handler rejects non-POST and bad secret", async () => {
25
25
  const { bot, updates } = sink();
26
26
  const handler = webhook(bot, { secretToken: "s3cret" });
27
27
 
28
- const get = await handler(new Request("https://example.dev/", { method: "GET" }));
28
+ const get = await handler(new Request("https://yaeb.al/", { method: "GET" }));
29
29
  assert.equal(get.status, 405);
30
30
 
31
31
  const bad = await handler(post({ update_id: 1 }, { "x-telegram-bot-api-secret-token": "nope" }));
@@ -47,14 +47,14 @@ test("setWebhook / deleteWebhook call the Bot API", async () => {
47
47
  },
48
48
  };
49
49
 
50
- await setWebhook(bot, "https://example.dev/hook", {
50
+ await setWebhook(bot, "https://yaeb.al/hook", {
51
51
  secretToken: "s3cret",
52
52
  allowedUpdates: ["message"],
53
53
  dropPendingUpdates: true,
54
54
  });
55
55
 
56
56
  assert.equal(calls[0]?.method, "setWebhook");
57
- assert.equal(calls[0]?.params?.url, "https://example.dev/hook");
57
+ assert.equal(calls[0]?.params?.url, "https://yaeb.al/hook");
58
58
  assert.equal(calls[0]?.params?.secret_token, "s3cret");
59
59
  assert.deepEqual(calls[0]?.params?.allowed_updates, ["message"]);
60
60
  assert.equal(calls[0]?.params?.drop_pending_updates, true);
package/src/index.ts CHANGED
@@ -12,7 +12,7 @@ import { type UpdateSink, type WebhookOptions, webhookCallback } from "@yaebal/c
12
12
  * serve(bot, { port: 8080, secretToken: process.env.SECRET });
13
13
  */
14
14
 
15
- export type { WebhookOptions, UpdateSink } from "@yaebal/core";
15
+ export type { UpdateSink, WebhookOptions } from "@yaebal/core";
16
16
 
17
17
  /** minimal bot surface the lifecycle helpers need. */
18
18
  interface ApiBot {