@yaebal/core 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/composer.d.ts CHANGED
@@ -47,6 +47,7 @@ export declare function matchQuery(ctx: Context, query: string): boolean;
47
47
  */
48
48
  export declare class Composer<C extends Context = Context> {
49
49
  protected middlewares: Middleware<C>[];
50
+ protected decorations: object[];
50
51
  /** raw middleware. call `next()` to continue the chain. */
51
52
  use(...middleware: Middleware<C>[]): this;
52
53
  /** handle a specific update, optionally narrowed by a filter query. */
@@ -83,11 +84,7 @@ export declare class Composer<C extends Context = Context> {
83
84
  * (`Partial<D>`) since they are absent on other update types.
84
85
  */
85
86
  derive<D extends object>(updates: UpdateName | UpdateName[], fn: (ctx: C) => D | Promise<D>): Composer<C & Partial<D>>;
86
- /**
87
- * static context enrichment. adds `D` to the context type.
88
- * NOTE: a production build would hoist this out of the per-request path entirely;
89
- * here it is applied once at the top of the chain for simplicity.
90
- */
87
+ /** static context enrichment. adds `D` to the context type without adding middleware hops. */
91
88
  decorate<D extends object>(value: D): Composer<C & D>;
92
89
  /** merge another composer in, inheriting its full context type. */
93
90
  extend<C2 extends Context>(other: Composer<C2>): Composer<C & C2>;
@@ -1 +1 @@
1
- {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEpF,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,MAAM,CAAC,EAAE,SAAS,OAAO,GAAG,OAAO,EAAE,GAAG,SAAS,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAC7F,CAAC,SAAS,EAAE,EAEZ,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KACjB,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAEvB;;;;;GAKG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;IAC7E,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,GAAG,UAAU,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC;AAEhF,sFAAsF;AACtF,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,OAAO,GAAG,GAAG,MAAM,UAAU,GACzF,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GACpB,CAAC,SAAS,GAAG,MAAM,OAAO,GAAG,gBAAgB,GAC5C,CAAC,GAAG;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,GACpC,CAAC,SAAS,GAAG,MAAM,YAAY,MAAM,EAAE,GACtC,CAAC,GAAG;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,GACjC,CAAC,CAAC;AAEP,qEAAqE;AACrE,wBAAgB,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAgBjG;AAkBD,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAS/D;AAED;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IAChD,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAM;IAC5C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IAErC,2DAA2D;IAC3D,GAAG,CAAC,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAKzC,uEAAuE;IACvE,EAAE,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAUpF,+EAA+E;IAC/E,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,UAAU,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,EAAE,GAAG,IAAI;IAkB/F,iFAAiF;IACjF,KAAK,CACJ,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,GAAG,QAAQ,EAAE,UAAU,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAC,EAAE,GACjE,IAAI;IAwBP,gFAAgF;IAChF,aAAa,CACZ,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,GAAG,QAAQ,EAAE,UAAU,CACtB,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE,CACtE,EAAE,GACD,IAAI;IAyBP,4CAA4C;IAC5C,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAQ9D;;;;OAIG;IACH,MAAM,CAAC,GAAG,SAAS,MAAM,EACxB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAC5B,GAAG,QAAQ,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,GAChC,IAAI;IAOP,8EAA8E;IAC9E,OAAO,CAAC,GAAG,SAAS,MAAM,EACzB,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,GAClD,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC;IAIpB,2EAA2E;IAC3E,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IACzE;;;;OAIG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,EACtB,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,EAClC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC5B,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAe3B,8FAA8F;IAC9F,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAKrD,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;IAKjE,oFAAoF;IACpF,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC;CAS7B"}
package/lib/composer.js CHANGED
@@ -47,6 +47,7 @@ export function matchQuery(ctx, query) {
47
47
  */
48
48
  export class Composer {
49
49
  middlewares = [];
50
+ decorations = [];
50
51
  /** raw middleware. call `next()` to continue the chain. */
51
52
  use(...middleware) {
52
53
  this.middlewares.push(...middleware);
@@ -152,16 +153,9 @@ export class Composer {
152
153
  });
153
154
  return this;
154
155
  }
155
- /**
156
- * static context enrichment. adds `D` to the context type.
157
- * NOTE: a production build would hoist this out of the per-request path entirely;
158
- * here it is applied once at the top of the chain for simplicity.
159
- */
156
+ /** static context enrichment. adds `D` to the context type without adding middleware hops. */
160
157
  decorate(value) {
161
- this.middlewares.push((ctx, next) => {
162
- Object.assign(ctx, value);
163
- return next();
164
- });
158
+ this.decorations.push(value);
165
159
  return this;
166
160
  }
167
161
  /** merge another composer in, inheriting its full context type. */
@@ -171,8 +165,12 @@ export class Composer {
171
165
  }
172
166
  /** collapse this composer into a single middleware (used by `extend` and `Bot`). */
173
167
  toMiddleware() {
168
+ const decorations = Object.assign({}, ...this.decorations);
174
169
  const composed = compose(this.middlewares);
175
- return (ctx, next) => composed(ctx, next);
170
+ return (ctx, next) => {
171
+ Object.assign(ctx, decorations);
172
+ return composed(ctx, next);
173
+ };
176
174
  }
177
175
  }
178
176
  //# sourceMappingURL=composer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"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"}
package/lib/core.test.js CHANGED
@@ -6,7 +6,7 @@ import { isMediaSource, media } from "./media.js";
6
6
  import { webhookCallback } from "./webhook.js";
7
7
  test("media helpers are branded and discriminated", () => {
8
8
  assert.ok(isMediaSource(media.fileId("AgAC")));
9
- assert.ok(isMediaSource(media.url("https://x/y.png")));
9
+ assert.ok(isMediaSource(media.url("https://yaeb.al/y.png")));
10
10
  assert.equal(isMediaSource({ kind: "fileId", fileId: "x" }), false); // unbranded
11
11
  });
12
12
  test("encodeRequest sends JSON when there is no upload", async () => {
@@ -15,8 +15,8 @@ test("encodeRequest sends JSON when there is no upload", async () => {
15
15
  assert.deepEqual(JSON.parse(r.body), { chat_id: 1, photo: "AgAC" });
16
16
  });
17
17
  test("encodeRequest inlines a url media to its string", async () => {
18
- const r = await encodeRequest({ photo: media.url("https://e/p.png") });
19
- assert.deepEqual(JSON.parse(r.body), { photo: "https://e/p.png" });
18
+ const r = await encodeRequest({ photo: media.url("https://yaeb.al/p.png") });
19
+ assert.deepEqual(JSON.parse(r.body), { photo: "https://yaeb.al/p.png" });
20
20
  });
21
21
  test("encodeRequest builds multipart for a buffer upload", async () => {
22
22
  const r = await encodeRequest({
@@ -1 +1 @@
1
- {"version":3,"file":"core.test.js","sourceRoot":"","sources":["../src/core.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.test.js","sourceRoot":"","sources":["../src/core.test.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -8,8 +8,8 @@ export { Bot, type BotOptions } from "./bot.js";
8
8
  export { Composer, compose, matchQuery, type Filter, type FilterQuery, type Filtered, type Middleware, type NextFn, type Plugin, } from "./composer.js";
9
9
  export { Context, type ContextOptions } from "./context.js";
10
10
  export { media, isMediaSource, type MediaSource } from "./media.js";
11
- export { webhookCallback, nodeWebhookCallback, type UpdateSink, type WebhookOptions, } from "./webhook.js";
12
- export { createApi, TelegramError, type Api, type ApiOptions, type FileReader, type BeforeHook, type AfterHook, type ErrorHook, type ErrorAction, } from "./api.js";
11
+ export { webhookCallback, type UpdateSink, type WebhookOptions } from "./webhook.js";
12
+ export { createApi, encodeRequest, TelegramError, type Api, type ApiOptions, type FileReader, type BeforeHook, type AfterHook, type ErrorHook, type ErrorAction, } from "./api.js";
13
13
  export { format, Stringable, bold, italic, underline, strikethrough, spoiler, code, pre, link, mention, type FormatResult, } from "./format.js";
14
14
  export type * from "./telegram-types.js";
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACN,QAAQ,EACR,OAAO,EACP,UAAU,EACV,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,MAAM,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EACN,eAAe,EACf,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,cAAc,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,SAAS,EACT,aAAa,EACb,KAAK,GAAG,EACR,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,WAAW,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,MAAM,EACN,UAAU,EACV,IAAI,EACJ,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,OAAO,EACP,KAAK,YAAY,GACjB,MAAM,aAAa,CAAC;AACrB,mBAAmB,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACN,QAAQ,EACR,OAAO,EACP,UAAU,EACV,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,MAAM,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EACN,SAAS,EACT,aAAa,EACb,aAAa,EACb,KAAK,GAAG,EACR,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,WAAW,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,MAAM,EACN,UAAU,EACV,IAAI,EACJ,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,OAAO,EACP,KAAK,YAAY,GACjB,MAAM,aAAa,CAAC;AACrB,mBAAmB,qBAAqB,CAAC"}
package/lib/index.js CHANGED
@@ -8,7 +8,7 @@ export { Bot } from "./bot.js";
8
8
  export { Composer, compose, matchQuery, } from "./composer.js";
9
9
  export { Context } from "./context.js";
10
10
  export { media, isMediaSource } from "./media.js";
11
- export { webhookCallback, nodeWebhookCallback, } from "./webhook.js";
12
- export { createApi, TelegramError, } from "./api.js";
11
+ export { webhookCallback } from "./webhook.js";
12
+ export { createApi, encodeRequest, TelegramError, } from "./api.js";
13
13
  export { format, Stringable, bold, italic, underline, strikethrough, spoiler, code, pre, link, mention, } from "./format.js";
14
14
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAChD,OAAO,EACN,QAAQ,EACR,OAAO,EACP,UAAU,GAOV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAuB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAC;AACpE,OAAO,EACN,eAAe,EACf,mBAAmB,GAGnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,SAAS,EACT,aAAa,GAQb,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,MAAM,EACN,UAAU,EACV,IAAI,EACJ,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,OAAO,GAEP,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAChD,OAAO,EACN,QAAQ,EACR,OAAO,EACP,UAAU,GAOV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAuB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,eAAe,EAAwC,MAAM,cAAc,CAAC;AACrF,OAAO,EACN,SAAS,EACT,aAAa,EACb,aAAa,GAQb,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,MAAM,EACN,UAAU,EACV,IAAI,EACJ,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,OAAO,GAEP,MAAM,aAAa,CAAC"}
package/lib/node.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import type { UpdateSink, WebhookOptions } from "./webhook.js";
3
+ /** a node `http` webhook handler — `http.createServer(nodeWebhookCallback(bot))`. */
4
+ export declare function nodeWebhookCallback(bot: UpdateSink, options?: WebhookOptions): (req: IncomingMessage, res: ServerResponse) => void;
5
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAa/D,qFAAqF;AACrF,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,cAAmB,GAC1B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAkDrD"}
package/lib/node.js ADDED
@@ -0,0 +1,51 @@
1
+ const MAX_BODY = 1 << 20; // 1 MiB
2
+ function safeEqual(a, b) {
3
+ if (a.length !== b.length)
4
+ return false;
5
+ let diff = 0;
6
+ for (let i = 0; i < a.length; i++)
7
+ diff |= a.charCodeAt(i) ^ b.charCodeAt(i);
8
+ return diff === 0;
9
+ }
10
+ /** a node `http` webhook handler — `http.createServer(nodeWebhookCallback(bot))`. */
11
+ export function nodeWebhookCallback(bot, options = {}) {
12
+ return (req, res) => {
13
+ if (req.method !== "POST") {
14
+ res.statusCode = 405;
15
+ res.end();
16
+ return;
17
+ }
18
+ const got = req.headers["x-telegram-bot-api-secret-token"];
19
+ if (options.secretToken &&
20
+ !safeEqual(typeof got === "string" ? got : "", options.secretToken)) {
21
+ res.statusCode = 401;
22
+ res.end();
23
+ return;
24
+ }
25
+ const chunks = [];
26
+ let size = 0;
27
+ req.on("data", (c) => {
28
+ size += c.length;
29
+ if (size > MAX_BODY) {
30
+ res.statusCode = 413;
31
+ res.end();
32
+ req.destroy();
33
+ return;
34
+ }
35
+ chunks.push(c);
36
+ });
37
+ req.on("end", async () => {
38
+ try {
39
+ const update = JSON.parse(Buffer.concat(chunks).toString("utf8"));
40
+ await bot.handleUpdate(update);
41
+ res.statusCode = 200;
42
+ res.end("ok");
43
+ }
44
+ catch {
45
+ res.statusCode = 400;
46
+ res.end();
47
+ }
48
+ });
49
+ };
50
+ }
51
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAIA,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ;AAElC,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACtC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,IAAI,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,mBAAmB,CAClC,GAAe,EACf,UAA0B,EAAE;IAE5B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACnB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,EAAE,CAAC;YAEV,OAAO;QACR,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QAC3D,IACC,OAAO,CAAC,WAAW;YACnB,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,EAClE,CAAC;YACF,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,EAAE,CAAC;YAEV,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC;YAEjB,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACrB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,GAAG,CAAC,OAAO,EAAE,CAAC;gBAEd,OAAO;YACR,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAW,CAAC;gBAC5E,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAE/B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACR,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,GAAG,EAAE,CAAC;YACX,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
package/lib/webhook.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
1
  import type { Update } from "./telegram-types.js";
3
2
  /** anything that can take a single update — i.e. a `Bot`. */
4
3
  export interface UpdateSink {
@@ -13,6 +12,4 @@ export interface WebhookOptions {
13
12
  * cloudflare workers, and any runtime with the fetch globals.
14
13
  */
15
14
  export declare function webhookCallback(bot: UpdateSink, options?: WebhookOptions): (request: Request) => Promise<Response>;
16
- /** a node `http` webhook handler — `http.createServer(nodeWebhookCallback(bot))`. */
17
- export declare function nodeWebhookCallback(bot: UpdateSink, options?: WebhookOptions): (req: IncomingMessage, res: ServerResponse) => void;
18
15
  //# sourceMappingURL=webhook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAiBlD,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IAC1B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC9B,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,cAAmB,GAC1B,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAyBzC;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,cAAmB,GAC1B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAkDrD"}
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAiBlD,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IAC1B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC9B,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,cAAmB,GAC1B,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAyBzC"}
package/lib/webhook.js CHANGED
@@ -38,45 +38,4 @@ export function webhookCallback(bot, options = {}) {
38
38
  return new Response("ok");
39
39
  };
40
40
  }
41
- /** a node `http` webhook handler — `http.createServer(nodeWebhookCallback(bot))`. */
42
- export function nodeWebhookCallback(bot, options = {}) {
43
- return (req, res) => {
44
- if (req.method !== "POST") {
45
- res.statusCode = 405;
46
- res.end();
47
- return;
48
- }
49
- const got = req.headers["x-telegram-bot-api-secret-token"];
50
- if (options.secretToken &&
51
- !safeEqual(typeof got === "string" ? got : "", options.secretToken)) {
52
- res.statusCode = 401;
53
- res.end();
54
- return;
55
- }
56
- const chunks = [];
57
- let size = 0;
58
- req.on("data", (c) => {
59
- size += c.length;
60
- if (size > MAX_BODY) {
61
- res.statusCode = 413;
62
- res.end();
63
- req.destroy();
64
- return;
65
- }
66
- chunks.push(c);
67
- });
68
- req.on("end", async () => {
69
- try {
70
- const update = JSON.parse(Buffer.concat(chunks).toString("utf8"));
71
- await bot.handleUpdate(update);
72
- res.statusCode = 200;
73
- res.end("ok");
74
- }
75
- catch {
76
- res.statusCode = 400;
77
- res.end();
78
- }
79
- });
80
- };
81
- }
82
41
  //# sourceMappingURL=webhook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ;AAElC;;;GAGG;AACH,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACtC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,IAAI,KAAK,CAAC,CAAC;AACnB,CAAC;AAYD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC9B,GAAe,EACf,UAA0B,EAAE;IAE5B,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAE1F,IACC,OAAO,CAAC,WAAW;YACnB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,EAC5F,CAAC;YACF,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC;YACnE,OAAO,IAAI,QAAQ,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAW,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaebal/core",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "yaebal core — type-safe, chainable Telegram Bot API framework.",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -9,6 +9,10 @@
9
9
  ".": {
10
10
  "types": "./lib/index.d.ts",
11
11
  "import": "./lib/index.js"
12
+ },
13
+ "./node": {
14
+ "types": "./lib/node.d.ts",
15
+ "import": "./lib/node.js"
12
16
  }
13
17
  },
14
18
  "files": [
package/src/composer.ts CHANGED
@@ -100,6 +100,7 @@ export function matchQuery(ctx: Context, query: string): boolean {
100
100
  */
101
101
  export class Composer<C extends Context = Context> {
102
102
  protected middlewares: Middleware<C>[] = [];
103
+ protected decorations: object[] = [];
103
104
 
104
105
  /** raw middleware. call `next()` to continue the chain. */
105
106
  use(...middleware: Middleware<C>[]): this {
@@ -252,17 +253,9 @@ export class Composer<C extends Context = Context> {
252
253
  return this;
253
254
  }
254
255
 
255
- /**
256
- * static context enrichment. adds `D` to the context type.
257
- * NOTE: a production build would hoist this out of the per-request path entirely;
258
- * here it is applied once at the top of the chain for simplicity.
259
- */
256
+ /** static context enrichment. adds `D` to the context type without adding middleware hops. */
260
257
  decorate<D extends object>(value: D): Composer<C & D> {
261
- this.middlewares.push((ctx, next) => {
262
- Object.assign(ctx as object, value);
263
- return next();
264
- });
265
-
258
+ this.decorations.push(value);
266
259
  return this as unknown as Composer<C & D>;
267
260
  }
268
261
 
@@ -274,7 +267,12 @@ export class Composer<C extends Context = Context> {
274
267
 
275
268
  /** collapse this composer into a single middleware (used by `extend` and `Bot`). */
276
269
  toMiddleware(): Middleware<C> {
270
+ const decorations = Object.assign({}, ...this.decorations);
277
271
  const composed = compose(this.middlewares);
278
- return (ctx, next) => composed(ctx, next);
272
+
273
+ return (ctx, next) => {
274
+ Object.assign(ctx as object, decorations);
275
+ return composed(ctx, next);
276
+ };
279
277
  }
280
278
  }
package/src/core.test.ts CHANGED
@@ -7,19 +7,21 @@ import { webhookCallback } from "./webhook.js";
7
7
 
8
8
  test("media helpers are branded and discriminated", () => {
9
9
  assert.ok(isMediaSource(media.fileId("AgAC")));
10
- assert.ok(isMediaSource(media.url("https://x/y.png")));
10
+ assert.ok(isMediaSource(media.url("https://yaeb.al/y.png")));
11
11
  assert.equal(isMediaSource({ kind: "fileId", fileId: "x" }), false); // unbranded
12
12
  });
13
13
 
14
14
  test("encodeRequest sends JSON when there is no upload", async () => {
15
15
  const r = await encodeRequest({ chat_id: 1, photo: media.fileId("AgAC") });
16
+
16
17
  assert.equal(r.contentType, "application/json");
17
18
  assert.deepEqual(JSON.parse(r.body as string), { chat_id: 1, photo: "AgAC" });
18
19
  });
19
20
 
20
21
  test("encodeRequest inlines a url media to its string", async () => {
21
- const r = await encodeRequest({ photo: media.url("https://e/p.png") });
22
- assert.deepEqual(JSON.parse(r.body as string), { photo: "https://e/p.png" });
22
+ const r = await encodeRequest({ photo: media.url("https://yaeb.al/p.png") });
23
+
24
+ assert.deepEqual(JSON.parse(r.body as string), { photo: "https://yaeb.al/p.png" });
23
25
  });
24
26
 
25
27
  test("encodeRequest builds multipart for a buffer upload", async () => {
@@ -29,7 +31,9 @@ test("encodeRequest builds multipart for a buffer upload", async () => {
29
31
  reply_markup: { inline_keyboard: [] },
30
32
  });
31
33
  assert.ok(r.body instanceof FormData);
34
+
32
35
  const form = r.body as FormData;
36
+
33
37
  assert.equal(form.get("photo"), "attach://_file0");
34
38
  assert.ok(form.get("_file0") instanceof Blob);
35
39
  assert.equal(form.get("chat_id"), "7"); // non-string serialized
@@ -57,8 +61,10 @@ test("encodeRequest uses an injected readFile for media.path() (runtime-agnostic
57
61
  assert.equal(p, "./pics/cat.jpg"); // path forwarded verbatim
58
62
  return new Uint8Array([9, 8, 7]);
59
63
  };
64
+
60
65
  const r = await encodeRequest({ chat_id: 1, photo: media.path("./pics/cat.jpg") }, readFile);
61
66
  const form = r.body as FormData;
67
+
62
68
  assert.ok(form.get("_file0") instanceof Blob);
63
69
  assert.equal(form.get("photo"), "attach://_file0");
64
70
  assert.equal((form.get("_file0") as File).name, "cat.jpg"); // pure-js basename
package/src/index.ts CHANGED
@@ -19,14 +19,10 @@ export {
19
19
  } from "./composer.js";
20
20
  export { Context, type ContextOptions } from "./context.js";
21
21
  export { media, isMediaSource, type MediaSource } from "./media.js";
22
- export {
23
- webhookCallback,
24
- nodeWebhookCallback,
25
- type UpdateSink,
26
- type WebhookOptions,
27
- } from "./webhook.js";
22
+ export { webhookCallback, type UpdateSink, type WebhookOptions } from "./webhook.js";
28
23
  export {
29
24
  createApi,
25
+ encodeRequest,
30
26
  TelegramError,
31
27
  type Api,
32
28
  type ApiOptions,
package/src/node.ts ADDED
@@ -0,0 +1,69 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import type { UpdateSink, WebhookOptions } from "./webhook.js";
3
+ import type { Update } from "./telegram-types.js";
4
+
5
+ const MAX_BODY = 1 << 20; // 1 MiB
6
+
7
+ function safeEqual(a: string, b: string): boolean {
8
+ if (a.length !== b.length) return false;
9
+ let diff = 0;
10
+
11
+ for (let i = 0; i < a.length; i++) diff |= a.charCodeAt(i) ^ b.charCodeAt(i);
12
+ return diff === 0;
13
+ }
14
+
15
+ /** a node `http` webhook handler — `http.createServer(nodeWebhookCallback(bot))`. */
16
+ export function nodeWebhookCallback(
17
+ bot: UpdateSink,
18
+ options: WebhookOptions = {},
19
+ ): (req: IncomingMessage, res: ServerResponse) => void {
20
+ return (req, res) => {
21
+ if (req.method !== "POST") {
22
+ res.statusCode = 405;
23
+ res.end();
24
+
25
+ return;
26
+ }
27
+
28
+ const got = req.headers["x-telegram-bot-api-secret-token"];
29
+ if (
30
+ options.secretToken &&
31
+ !safeEqual(typeof got === "string" ? got : "", options.secretToken)
32
+ ) {
33
+ res.statusCode = 401;
34
+ res.end();
35
+
36
+ return;
37
+ }
38
+
39
+ const chunks: Buffer[] = [];
40
+ let size = 0;
41
+
42
+ req.on("data", (c: Buffer) => {
43
+ size += c.length;
44
+
45
+ if (size > MAX_BODY) {
46
+ res.statusCode = 413;
47
+ res.end();
48
+ req.destroy();
49
+
50
+ return;
51
+ }
52
+
53
+ chunks.push(c);
54
+ });
55
+
56
+ req.on("end", async () => {
57
+ try {
58
+ const update = JSON.parse(Buffer.concat(chunks).toString("utf8")) as Update;
59
+ await bot.handleUpdate(update);
60
+
61
+ res.statusCode = 200;
62
+ res.end("ok");
63
+ } catch {
64
+ res.statusCode = 400;
65
+ res.end();
66
+ }
67
+ });
68
+ };
69
+ }
package/src/webhook.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
1
  import type { Update } from "./telegram-types.js";
3
2
 
4
3
  /** telegram updates are tiny; reject anything wildly larger to avoid memory abuse. */
@@ -59,59 +58,3 @@ export function webhookCallback(
59
58
  return new Response("ok");
60
59
  };
61
60
  }
62
-
63
- /** a node `http` webhook handler — `http.createServer(nodeWebhookCallback(bot))`. */
64
- export function nodeWebhookCallback(
65
- bot: UpdateSink,
66
- options: WebhookOptions = {},
67
- ): (req: IncomingMessage, res: ServerResponse) => void {
68
- return (req, res) => {
69
- if (req.method !== "POST") {
70
- res.statusCode = 405;
71
- res.end();
72
-
73
- return;
74
- }
75
-
76
- const got = req.headers["x-telegram-bot-api-secret-token"];
77
- if (
78
- options.secretToken &&
79
- !safeEqual(typeof got === "string" ? got : "", options.secretToken)
80
- ) {
81
- res.statusCode = 401;
82
- res.end();
83
-
84
- return;
85
- }
86
-
87
- const chunks: Buffer[] = [];
88
-
89
- let size = 0;
90
- req.on("data", (c: Buffer) => {
91
- size += c.length;
92
-
93
- if (size > MAX_BODY) {
94
- res.statusCode = 413;
95
- res.end();
96
- req.destroy();
97
-
98
- return;
99
- }
100
-
101
- chunks.push(c);
102
- });
103
-
104
- req.on("end", async () => {
105
- try {
106
- const update = JSON.parse(Buffer.concat(chunks).toString("utf8")) as Update;
107
- await bot.handleUpdate(update);
108
-
109
- res.statusCode = 200;
110
- res.end("ok");
111
- } catch {
112
- res.statusCode = 400;
113
- res.end();
114
- }
115
- });
116
- };
117
- }