@kevisual/router 0.0.60 → 0.0.61

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,27 @@ 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
+ path = "main",
3177
+ payload = {},
3178
+ ...rest
3179
+ } = await getParams();
3180
+ const result = await app.run({ path, ...params, ...rest, payload: { ...params?.payload, ...payload } });
3136
3181
  const response = {
3137
3182
  success: true,
3138
3183
  data: result,
3139
3184
  timestamp: new Date().toISOString()
3140
3185
  };
3141
- process2.send?.(response, (error) => {
3186
+ process2.send?.(response, () => {
3142
3187
  process2.exit?.(0);
3143
3188
  });
3144
3189
  } catch (error) {
3145
3190
  process2.send?.({
3146
3191
  success: false,
3147
3192
  error: error.message
3193
+ }, () => {
3194
+ process2.exit?.(1);
3148
3195
  });
3149
- process2.exit?.(1);
3150
3196
  }
3151
3197
  };
3152
3198
 
@@ -17392,9 +17438,6 @@ var parseIfJson = (input) => {
17392
17438
  return str;
17393
17439
  };
17394
17440
 
17395
- // node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.mjs
17396
- var import__ = __toESM(require_eventemitter3(), 1);
17397
-
17398
17441
  // src/server/server-base.ts
17399
17442
  function createHandleCtx(req, res) {
17400
17443
  const cookies = [];
@@ -19255,7 +19298,7 @@ app
19255
19298
  10. **中间件找不到会返回 404**,错误信息中会包含找不到的中间件列表。
19256
19299
  `;
19257
19300
  // package.json
19258
- var version2 = "0.0.60";
19301
+ var version2 = "0.0.61";
19259
19302
 
19260
19303
  // agent/routes/route-create.ts
19261
19304
  app.route({
@@ -296,6 +296,7 @@ declare class QueryRouter {
296
296
  createRouteList(force?: boolean, filter?: (route: Route) => boolean): void;
297
297
  /**
298
298
  * 等待程序运行, 获取到message的数据,就执行
299
+ * params 是预设参数,默认path为main
299
300
  *
300
301
  * emitter = process
301
302
  * -- .exit
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,6 +308,7 @@ declare class QueryRouter {
307
308
  createRouteList(force?: boolean, filter?: (route: Route) => boolean): void;
308
309
  /**
309
310
  * 等待程序运行, 获取到message的数据,就执行
311
+ * params 是预设参数,默认path为main
310
312
  *
311
313
  * emitter = process
312
314
  * -- .exit
@@ -510,7 +512,20 @@ declare class QueryUtil<T extends RouteObject = RouteObject> {
510
512
  get routeObject(): T;
511
513
  }
512
514
 
515
+ declare class MockProcess {
516
+ emitter?: EventEmitter;
517
+ process?: NodeJS.Process;
518
+ constructor(opts?: {
519
+ emitter?: EventEmitter;
520
+ isNode?: boolean;
521
+ });
522
+ send(data?: any, callback?: (err?: Error) => void): void;
523
+ exit(flag?: number): void;
524
+ on(fn: (msg?: any) => any): void;
525
+ desctroy(): void;
526
+ }
527
+
513
528
  declare const App: typeof QueryRouterServer;
514
529
 
515
- export { App, CustomError, Mini, QueryRouter, QueryRouterServer, QueryUtil, Route, createSchema, createSkill, define, tool, util };
530
+ export { App, CustomError, Mini, MockProcess, QueryRouter, QueryRouterServer, QueryUtil, Route, createSchema, createSkill, define, tool, util };
516
531
  export type { RouteArray, RouteContext, RouteMiddleware, RouteObject, RouteOpts, Rule, Run, Schema, Skill };