@fraqjs/fraq 0.12.0 → 0.12.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/dist/index.d.mts CHANGED
@@ -5547,6 +5547,7 @@ type RouteActivation =
5547
5547
  type: 'prefix';
5548
5548
  prefix: string;
5549
5549
  };
5550
+ type RouteActivationInput = RouteActivation | readonly RouteActivation[];
5550
5551
  type RouteDescriptor =
5551
5552
  | {
5552
5553
  type: 'command';
@@ -5560,7 +5561,7 @@ type RouteDescriptor =
5560
5561
  path: readonly string[];
5561
5562
  meta?: RouteMeta;
5562
5563
  };
5563
- type RouteActivationResolver = (route: RouteDescriptor, session: Session) => readonly RouteActivation[] | undefined;
5564
+ type RouteActivationResolver = (route: RouteDescriptor, session: Session) => RouteActivationInput | undefined;
5564
5565
  declare const defaultRouteActivationResolver: RouteActivationResolver;
5565
5566
  type RouteEntry =
5566
5567
  | {
@@ -5642,9 +5643,9 @@ declare class Router {
5642
5643
  //#endregion
5643
5644
  //#region src/core/activation.d.ts
5644
5645
  type ContextRouteActivationByScene = Partial<
5645
- Record<IncomingMessage['message_scene'] | 'default', readonly RouteActivation[]>
5646
+ Record<IncomingMessage['message_scene'] | 'default', RouteActivationInput>
5646
5647
  >;
5647
- type ContextRouteActivation = readonly RouteActivation[] | ContextRouteActivationByScene;
5648
+ type ContextRouteActivation = RouteActivationInput | ContextRouteActivationByScene;
5648
5649
  interface ContextRouteActivationMatcher {
5649
5650
  type?: RouteDescriptor['type'] | readonly RouteDescriptor['type'][];
5650
5651
  plugin?: string | readonly string[];
@@ -5956,6 +5957,7 @@ export {
5956
5957
  Plugin,
5957
5958
  RawPattern,
5958
5959
  RouteActivation,
5960
+ RouteActivationInput,
5959
5961
  RouteActivationResolver,
5960
5962
  RouteBranch,
5961
5963
  RouteDescriptor,
package/dist/index.mjs CHANGED
@@ -316,7 +316,7 @@ var Router = class Router {
316
316
  for (const branch of this.branchesFrom(session, [], { includeHidden: true })) {
317
317
  const descriptor = this.describeBranch(branch);
318
318
  const activations = this.activationResolver(descriptor, session) ?? DEFAULT_ACTIVATIONS;
319
- for (const activation of activations) {
319
+ for (const activation of routeActivationInputs(activations)) {
320
320
  const tokenizer = new Tokenizer(message.segments);
321
321
  if (!this.consumeActivation(tokenizer, activation, session)) continue;
322
322
  const match = this.matchBranch(branch, tokenizer, activation);
@@ -485,6 +485,12 @@ var Router = class Router {
485
485
  return params;
486
486
  }
487
487
  };
488
+ function routeActivationInputs(activations) {
489
+ return isRouteActivationArray(activations) ? activations : [activations];
490
+ }
491
+ function isRouteActivationArray(activations) {
492
+ return Array.isArray(activations);
493
+ }
488
494
  //#endregion
489
495
  //#region src/core/activation.ts
490
496
  function createContextRouteActivationResolver(routing, fallback = defaultRouteActivationResolver) {
@@ -516,11 +522,14 @@ function isContextRouteActivationRuleArray(rules) {
516
522
  return Array.isArray(rules);
517
523
  }
518
524
  function resolveContextRouteActivation(activation, scene) {
519
- if (isRouteActivationArray(activation)) return activation;
525
+ if (isRouteActivationInput(activation)) return activation;
520
526
  return activation[scene] ?? activation.default;
521
527
  }
522
- function isRouteActivationArray(activation) {
523
- return Array.isArray(activation);
528
+ function isRouteActivationInput(activation) {
529
+ return Array.isArray(activation) || isRouteActivation(activation);
530
+ }
531
+ function isRouteActivation(activation) {
532
+ return "type" in activation;
524
533
  }
525
534
  function matchesContextRouteActivationRule(route, session, rule) {
526
535
  const match = rule.match;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fraqjs/fraq",
3
3
  "type": "module",
4
- "version": "0.12.0",
4
+ "version": "0.12.1",
5
5
  "description": "Milky Bot framework",
6
6
  "files": [
7
7
  "dist"