@kevisual/router 0.0.60 → 0.0.62

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/app.js CHANGED
@@ -3108,20 +3108,61 @@ function pick(obj, keys) {
3108
3108
  return result;
3109
3109
  }
3110
3110
 
3111
+ // node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.mjs
3112
+ var import__ = __toESM(require_eventemitter3(), 1);
3113
+
3111
3114
  // src/utils/listen-process.ts
3112
- var listenProcess = async ({ app, emitter, params, timeout = 10 * 60 * 60 * 1000 }) => {
3113
- const process2 = emitter || globalThis.process;
3115
+ class MockProcess {
3116
+ emitter;
3117
+ process;
3118
+ constructor(opts) {
3119
+ this.emitter = opts?.emitter || new import__.default;
3120
+ const isNode = opts?.isNode ?? true;
3121
+ if (isNode) {
3122
+ this.process = globalThis?.process;
3123
+ }
3124
+ }
3125
+ send(data, callback) {
3126
+ if (this.process) {
3127
+ this.process?.send?.(data, (err) => {
3128
+ callback(err);
3129
+ });
3130
+ }
3131
+ this.emitter.emit("send", data);
3132
+ }
3133
+ exit(flag = 0) {
3134
+ if (this.process) {
3135
+ this.process?.exit?.(flag);
3136
+ }
3137
+ this.emitter.emit("exit", flag);
3138
+ }
3139
+ on(fn) {
3140
+ if (this.process) {
3141
+ this.process.on("message", fn);
3142
+ }
3143
+ this.emitter.on("message", fn);
3144
+ }
3145
+ desctroy() {
3146
+ if (this.emitter) {
3147
+ this.emitter = undefined;
3148
+ }
3149
+ this.process = undefined;
3150
+ }
3151
+ }
3152
+ var listenProcess = async ({ app, mockProcess, params, timeout = 10 * 60 * 60 * 1000 }) => {
3153
+ const process2 = mockProcess || new MockProcess;
3114
3154
  let isEnd = false;
3115
3155
  const timer = setTimeout(() => {
3116
3156
  if (isEnd)
3117
3157
  return;
3118
3158
  isEnd = true;
3119
- process2.send?.({ success: false, error: "Timeout" });
3120
- process2.exit?.(1);
3159
+ process2.send?.({ success: false, error: "Timeout" }, () => {
3160
+ process2.exit?.(1);
3161
+ });
3121
3162
  }, timeout);
3122
3163
  const getParams = async () => {
3123
3164
  return new Promise((resolve) => {
3124
- process2.on("message", (msg) => {
3165
+ process2.on((msg) => {
3125
3166
  if (isEnd)
3126
3167
  return;
3127
3168
  isEnd = true;
@@ -3131,22 +3172,31 @@ var listenProcess = async ({ app, emitter, params, timeout = 10 * 60 * 60 * 1000
3131
3172
  });
3132
3173
  };
3133
3174
  try {
3134
- const { path = "main", ...rest } = await getParams();
3135
- const result = await app.queryRoute({ path, ...rest, ...params });
3175
+ const {
3176
+ payload = {},
3177
+ ...rest
3178
+ } = await getParams();
3179
+ const msg = { ...params, ...rest, payload: { ...params?.payload, ...payload } };
3180
+ if (!msg.path && !msg.id) {
3181
+ const route = app.routes.find((r) => r.path !== "router");
3182
+ msg.id = route?.id;
3183
+ }
3184
+ const result = await app.run(msg);
3136
3185
  const response = {
3137
3186
  success: true,
3138
3187
  data: result,
3139
3188
  timestamp: new Date().toISOString()
3140
3189
  };
3141
- process2.send?.(response, (error) => {
3190
+ process2.send?.(response, () => {
3142
3191
  process2.exit?.(0);
3143
3192
  });
3144
3193
  } catch (error) {
3145
3194
  process2.send?.({
3146
3195
  success: false,
3147
3196
  error: error.message
3197
+ }, () => {
3198
+ process2.exit?.(1);
3148
3199
  });
3149
- process2.exit?.(1);
3150
3200
  }
3151
3201
  };
3152
3202
 
@@ -17392,9 +17442,6 @@ var parseIfJson = (input) => {
17392
17442
  return str;
17393
17443
  };
17394
17444
 
17395
- // node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.mjs
17396
- var import__ = __toESM(require_eventemitter3(), 1);
17397
-
17398
17445
  // src/server/server-base.ts
17399
17446
  function createHandleCtx(req, res) {
17400
17447
  const cookies = [];
@@ -19255,7 +19302,7 @@ app
19255
19302
  10. **中间件找不到会返回 404**,错误信息中会包含找不到的中间件列表。
19256
19303
  `;
19257
19304
  // package.json
19258
- var version2 = "0.0.60";
19305
+ var version2 = "0.0.62";
19259
19306
 
19260
19307
  // agent/routes/route-create.ts
19261
19308
  app.route({
@@ -296,7 +296,7 @@ declare class QueryRouter {
296
296
  createRouteList(force?: boolean, filter?: (route: Route) => boolean): void;
297
297
  /**
298
298
  * 等待程序运行, 获取到message的数据,就执行
299
- *
299
+ * params 是预设参数
300
300
  * emitter = process
301
301
  * -- .exit
302
302
  * -- .on
package/dist/opencode.js CHANGED
@@ -4,12 +4,12 @@
4
4
  function getDefaultExportFromCjs(x) {
5
5
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
6
6
  }
7
- var eventemitter3 = { exports: {} };
8
- var hasRequiredEventemitter3;
9
- function requireEventemitter3() {
10
- if (hasRequiredEventemitter3)
11
- return eventemitter3.exports;
12
- hasRequiredEventemitter3 = 1;
7
+ var eventemitter3$1 = { exports: {} };
8
+ var hasRequiredEventemitter3$1;
9
+ function requireEventemitter3$1() {
10
+ if (hasRequiredEventemitter3$1)
11
+ return eventemitter3$1.exports;
12
+ hasRequiredEventemitter3$1 = 1;
13
13
  (function(module) {
14
14
  var has = Object.prototype.hasOwnProperty, prefix = "~";
15
15
  function Events() {}
@@ -184,10 +184,10 @@ function requireEventemitter3() {
184
184
  {
185
185
  module.exports = EventEmitter;
186
186
  }
187
- })(eventemitter3);
188
- return eventemitter3.exports;
187
+ })(eventemitter3$1);
188
+ return eventemitter3$1.exports;
189
189
  }
190
- var eventemitter3Exports = requireEventemitter3();
190
+ var eventemitter3Exports = requireEventemitter3$1();
191
191
  var EventEmitter = /* @__PURE__ */ getDefaultExportFromCjs(eventemitter3Exports);
192
192
  var reRunFn = (promiseOpts) => {
193
193
  const timeout = promiseOpts.timeout || 5 * 60 * 1000;
@@ -551,6 +551,355 @@ class InitEnv {
551
551
  }
552
552
  InitEnv.init();
553
553
 
554
+ var eventemitter3 = {exports: {}};
555
+
556
+ var hasRequiredEventemitter3;
557
+
558
+ function requireEventemitter3 () {
559
+ if (hasRequiredEventemitter3) return eventemitter3.exports;
560
+ hasRequiredEventemitter3 = 1;
561
+ (function (module) {
562
+
563
+ var has = Object.prototype.hasOwnProperty
564
+ , prefix = '~';
565
+
566
+ /**
567
+ * Constructor to create a storage for our `EE` objects.
568
+ * An `Events` instance is a plain object whose properties are event names.
569
+ *
570
+ * @constructor
571
+ * @private
572
+ */
573
+ function Events() {}
574
+
575
+ //
576
+ // We try to not inherit from `Object.prototype`. In some engines creating an
577
+ // instance in this way is faster than calling `Object.create(null)` directly.
578
+ // If `Object.create(null)` is not supported we prefix the event names with a
579
+ // character to make sure that the built-in object properties are not
580
+ // overridden or used as an attack vector.
581
+ //
582
+ if (Object.create) {
583
+ Events.prototype = Object.create(null);
584
+
585
+ //
586
+ // This hack is needed because the `__proto__` property is still inherited in
587
+ // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
588
+ //
589
+ if (!new Events().__proto__) prefix = false;
590
+ }
591
+
592
+ /**
593
+ * Representation of a single event listener.
594
+ *
595
+ * @param {Function} fn The listener function.
596
+ * @param {*} context The context to invoke the listener with.
597
+ * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
598
+ * @constructor
599
+ * @private
600
+ */
601
+ function EE(fn, context, once) {
602
+ this.fn = fn;
603
+ this.context = context;
604
+ this.once = once || false;
605
+ }
606
+
607
+ /**
608
+ * Add a listener for a given event.
609
+ *
610
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
611
+ * @param {(String|Symbol)} event The event name.
612
+ * @param {Function} fn The listener function.
613
+ * @param {*} context The context to invoke the listener with.
614
+ * @param {Boolean} once Specify if the listener is a one-time listener.
615
+ * @returns {EventEmitter}
616
+ * @private
617
+ */
618
+ function addListener(emitter, event, fn, context, once) {
619
+ if (typeof fn !== 'function') {
620
+ throw new TypeError('The listener must be a function');
621
+ }
622
+
623
+ var listener = new EE(fn, context || emitter, once)
624
+ , evt = prefix ? prefix + event : event;
625
+
626
+ if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
627
+ else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
628
+ else emitter._events[evt] = [emitter._events[evt], listener];
629
+
630
+ return emitter;
631
+ }
632
+
633
+ /**
634
+ * Clear event by name.
635
+ *
636
+ * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
637
+ * @param {(String|Symbol)} evt The Event name.
638
+ * @private
639
+ */
640
+ function clearEvent(emitter, evt) {
641
+ if (--emitter._eventsCount === 0) emitter._events = new Events();
642
+ else delete emitter._events[evt];
643
+ }
644
+
645
+ /**
646
+ * Minimal `EventEmitter` interface that is molded against the Node.js
647
+ * `EventEmitter` interface.
648
+ *
649
+ * @constructor
650
+ * @public
651
+ */
652
+ function EventEmitter() {
653
+ this._events = new Events();
654
+ this._eventsCount = 0;
655
+ }
656
+
657
+ /**
658
+ * Return an array listing the events for which the emitter has registered
659
+ * listeners.
660
+ *
661
+ * @returns {Array}
662
+ * @public
663
+ */
664
+ EventEmitter.prototype.eventNames = function eventNames() {
665
+ var names = []
666
+ , events
667
+ , name;
668
+
669
+ if (this._eventsCount === 0) return names;
670
+
671
+ for (name in (events = this._events)) {
672
+ if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
673
+ }
674
+
675
+ if (Object.getOwnPropertySymbols) {
676
+ return names.concat(Object.getOwnPropertySymbols(events));
677
+ }
678
+
679
+ return names;
680
+ };
681
+
682
+ /**
683
+ * Return the listeners registered for a given event.
684
+ *
685
+ * @param {(String|Symbol)} event The event name.
686
+ * @returns {Array} The registered listeners.
687
+ * @public
688
+ */
689
+ EventEmitter.prototype.listeners = function listeners(event) {
690
+ var evt = prefix ? prefix + event : event
691
+ , handlers = this._events[evt];
692
+
693
+ if (!handlers) return [];
694
+ if (handlers.fn) return [handlers.fn];
695
+
696
+ for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
697
+ ee[i] = handlers[i].fn;
698
+ }
699
+
700
+ return ee;
701
+ };
702
+
703
+ /**
704
+ * Return the number of listeners listening to a given event.
705
+ *
706
+ * @param {(String|Symbol)} event The event name.
707
+ * @returns {Number} The number of listeners.
708
+ * @public
709
+ */
710
+ EventEmitter.prototype.listenerCount = function listenerCount(event) {
711
+ var evt = prefix ? prefix + event : event
712
+ , listeners = this._events[evt];
713
+
714
+ if (!listeners) return 0;
715
+ if (listeners.fn) return 1;
716
+ return listeners.length;
717
+ };
718
+
719
+ /**
720
+ * Calls each of the listeners registered for a given event.
721
+ *
722
+ * @param {(String|Symbol)} event The event name.
723
+ * @returns {Boolean} `true` if the event had listeners, else `false`.
724
+ * @public
725
+ */
726
+ EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
727
+ var evt = prefix ? prefix + event : event;
728
+
729
+ if (!this._events[evt]) return false;
730
+
731
+ var listeners = this._events[evt]
732
+ , len = arguments.length
733
+ , args
734
+ , i;
735
+
736
+ if (listeners.fn) {
737
+ if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
738
+
739
+ switch (len) {
740
+ case 1: return listeners.fn.call(listeners.context), true;
741
+ case 2: return listeners.fn.call(listeners.context, a1), true;
742
+ case 3: return listeners.fn.call(listeners.context, a1, a2), true;
743
+ case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
744
+ case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
745
+ case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
746
+ }
747
+
748
+ for (i = 1, args = new Array(len -1); i < len; i++) {
749
+ args[i - 1] = arguments[i];
750
+ }
751
+
752
+ listeners.fn.apply(listeners.context, args);
753
+ } else {
754
+ var length = listeners.length
755
+ , j;
756
+
757
+ for (i = 0; i < length; i++) {
758
+ if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
759
+
760
+ switch (len) {
761
+ case 1: listeners[i].fn.call(listeners[i].context); break;
762
+ case 2: listeners[i].fn.call(listeners[i].context, a1); break;
763
+ case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
764
+ case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
765
+ default:
766
+ if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
767
+ args[j - 1] = arguments[j];
768
+ }
769
+
770
+ listeners[i].fn.apply(listeners[i].context, args);
771
+ }
772
+ }
773
+ }
774
+
775
+ return true;
776
+ };
777
+
778
+ /**
779
+ * Add a listener for a given event.
780
+ *
781
+ * @param {(String|Symbol)} event The event name.
782
+ * @param {Function} fn The listener function.
783
+ * @param {*} [context=this] The context to invoke the listener with.
784
+ * @returns {EventEmitter} `this`.
785
+ * @public
786
+ */
787
+ EventEmitter.prototype.on = function on(event, fn, context) {
788
+ return addListener(this, event, fn, context, false);
789
+ };
790
+
791
+ /**
792
+ * Add a one-time listener for a given event.
793
+ *
794
+ * @param {(String|Symbol)} event The event name.
795
+ * @param {Function} fn The listener function.
796
+ * @param {*} [context=this] The context to invoke the listener with.
797
+ * @returns {EventEmitter} `this`.
798
+ * @public
799
+ */
800
+ EventEmitter.prototype.once = function once(event, fn, context) {
801
+ return addListener(this, event, fn, context, true);
802
+ };
803
+
804
+ /**
805
+ * Remove the listeners of a given event.
806
+ *
807
+ * @param {(String|Symbol)} event The event name.
808
+ * @param {Function} fn Only remove the listeners that match this function.
809
+ * @param {*} context Only remove the listeners that have this context.
810
+ * @param {Boolean} once Only remove one-time listeners.
811
+ * @returns {EventEmitter} `this`.
812
+ * @public
813
+ */
814
+ EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
815
+ var evt = prefix ? prefix + event : event;
816
+
817
+ if (!this._events[evt]) return this;
818
+ if (!fn) {
819
+ clearEvent(this, evt);
820
+ return this;
821
+ }
822
+
823
+ var listeners = this._events[evt];
824
+
825
+ if (listeners.fn) {
826
+ if (
827
+ listeners.fn === fn &&
828
+ (!once || listeners.once) &&
829
+ (!context || listeners.context === context)
830
+ ) {
831
+ clearEvent(this, evt);
832
+ }
833
+ } else {
834
+ for (var i = 0, events = [], length = listeners.length; i < length; i++) {
835
+ if (
836
+ listeners[i].fn !== fn ||
837
+ (once && !listeners[i].once) ||
838
+ (context && listeners[i].context !== context)
839
+ ) {
840
+ events.push(listeners[i]);
841
+ }
842
+ }
843
+
844
+ //
845
+ // Reset the array, or remove it completely if we have no more listeners.
846
+ //
847
+ if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
848
+ else clearEvent(this, evt);
849
+ }
850
+
851
+ return this;
852
+ };
853
+
854
+ /**
855
+ * Remove all listeners, or those of the specified event.
856
+ *
857
+ * @param {(String|Symbol)} [event] The event name.
858
+ * @returns {EventEmitter} `this`.
859
+ * @public
860
+ */
861
+ EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
862
+ var evt;
863
+
864
+ if (event) {
865
+ evt = prefix ? prefix + event : event;
866
+ if (this._events[evt]) clearEvent(this, evt);
867
+ } else {
868
+ this._events = new Events();
869
+ this._eventsCount = 0;
870
+ }
871
+
872
+ return this;
873
+ };
874
+
875
+ //
876
+ // Alias methods names because people roll like that.
877
+ //
878
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
879
+ EventEmitter.prototype.addListener = EventEmitter.prototype.on;
880
+
881
+ //
882
+ // Expose the prefix.
883
+ //
884
+ EventEmitter.prefixed = prefix;
885
+
886
+ //
887
+ // Allow `EventEmitter` to be imported as module namespace.
888
+ //
889
+ EventEmitter.EventEmitter = EventEmitter;
890
+
891
+ //
892
+ // Expose the module.
893
+ //
894
+ {
895
+ module.exports = EventEmitter;
896
+ }
897
+ } (eventemitter3));
898
+ return eventemitter3.exports;
899
+ }
900
+
901
+ requireEventemitter3();
902
+
554
903
  /** A special constant with type `never` */
555
904
  const NEVER = Object.freeze({
556
905
  status: "aborted",
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { RouteOpts as RouteOpts$1, QueryRouterServer as QueryRouterServer$1, RouteMiddleware as RouteMiddleware$1, Run as Run$1 } from '@kevisual/router';
3
3
  import { Query, DataOpts, Result } from '@kevisual/query/query';
4
+ import { EventEmitter } from 'eventemitter3';
4
5
 
5
6
  type RouterContextT = {
6
7
  code?: number;
@@ -307,7 +308,7 @@ declare class QueryRouter {
307
308
  createRouteList(force?: boolean, filter?: (route: Route) => boolean): void;
308
309
  /**
309
310
  * 等待程序运行, 获取到message的数据,就执行
310
- *
311
+ * params 是预设参数
311
312
  * emitter = process
312
313
  * -- .exit
313
314
  * -- .on
@@ -510,7 +511,20 @@ declare class QueryUtil<T extends RouteObject = RouteObject> {
510
511
  get routeObject(): T;
511
512
  }
512
513
 
514
+ declare class MockProcess {
515
+ emitter?: EventEmitter;
516
+ process?: NodeJS.Process;
517
+ constructor(opts?: {
518
+ emitter?: EventEmitter;
519
+ isNode?: boolean;
520
+ });
521
+ send(data?: any, callback?: (err?: Error) => void): void;
522
+ exit(flag?: number): void;
523
+ on(fn: (msg?: any) => any): void;
524
+ desctroy(): void;
525
+ }
526
+
513
527
  declare const App: typeof QueryRouterServer;
514
528
 
515
- export { App, CustomError, Mini, QueryRouter, QueryRouterServer, QueryUtil, Route, createSchema, createSkill, define, tool, util };
529
+ export { App, CustomError, Mini, MockProcess, QueryRouter, QueryRouterServer, QueryUtil, Route, createSchema, createSkill, define, tool, util };
516
530
  export type { RouteArray, RouteContext, RouteMiddleware, RouteObject, RouteOpts, Rule, Run, Schema, Skill };