dreaction-client-core 1.3.0 → 1.4.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/lib/core.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACd,MAAM,SAAS,CAAC;AA2BjB,qBAAa,aACX,YACE,IAAI,CACF,aAAa,EACb,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAClE;IAEH,OAAO,EAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IACvC,SAAS,UAAS;IAClB,MAAM,EAAE,SAAS,CAAiB;IAClC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAM;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAM;IACzB,OAAO,UAAS;IAChB,eAAe,OAAc;IAC7B,cAAc,EAAE,aAAa,EAAE,CAAM;IACrC,qBAAqB,SAAK;IAE1B,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,oBAAoB,CAAyC;IACrE,OAAO,CAAC,cAAc,CAA8B;IAEpD,UAAU,qBAAiB;IAE3B,SAAS,CACP,OAAO,GAAE,aAAa,CAAC,IAAI,CAAM,GAChC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,aAAa,CAAC,IAAI,CAAC,EAAE,GAC3D,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GACpD,IAAI;IA2BR,KAAK;IAaL,OAAO;IAiIP,IAAI,GAAI,IAAI,SAAS,cAAc,QAC3B,IAAI,YACA,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cACzB,OAAO,UA6BnB;IAEF,OAAO,CAAC,MAAM,EAAE,aAAa;IAc7B,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;IAInC,GAAG,CAAC,CAAC,SAAS,aAAa,CAAC,IAAI,CAAC,EAC/B,aAAa,EAAE,CAAC,GACf,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;IAqC1B,qBAAqB,CACnB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,MAAM,IAAI,GACtB,MAAM,IAAI;IAoFb,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC;AAED,wBAAgB,YAAY,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,EACvE,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAGyB,MAAM,CAC/D"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACd,MAAM,SAAS,CAAC;AA2BjB,qBAAa,aACX,YACE,IAAI,CACF,aAAa,EACb,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAClE;IAEH,OAAO,EAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IACvC,SAAS,UAAS;IAClB,MAAM,EAAE,SAAS,CAAiB;IAClC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAM;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAM;IACzB,OAAO,UAAS;IAChB,eAAe,OAAc;IAC7B,cAAc,EAAE,aAAa,EAAE,CAAM;IACrC,qBAAqB,SAAK;IAE1B,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,oBAAoB,CAAyC;IACrE,OAAO,CAAC,cAAc,CAA8B;IAEpD,UAAU,qBAAiB;IAE3B,SAAS,CACP,OAAO,GAAE,aAAa,CAAC,IAAI,CAAM,GAChC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,aAAa,CAAC,IAAI,CAAC,EAAE,GAC3D,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GACpD,IAAI;IA2BR,KAAK;IAaL,OAAO;IAsIP,IAAI,GAAI,IAAI,SAAS,cAAc,EACjC,MAAM,IAAI,EACV,UAAU,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EACrC,YAAY,OAAO,UA6BnB;IAEF,OAAO,CAAC,MAAM,EAAE,aAAa;IAc7B,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;IAInC,GAAG,CAAC,CAAC,SAAS,aAAa,CAAC,IAAI,CAAC,EAC/B,aAAa,EAAE,CAAC,GACf,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;IAqC1B,qBAAqB,CACnB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,MAAM,IAAI,GACtB,MAAM,IAAI;IAuFb,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC;AAED,wBAAgB,YAAY,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,EACvE,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAGyB,MAAM,CAC/D"}
package/lib/core.js CHANGED
@@ -140,12 +140,15 @@ class DReactionImpl {
140
140
  ? cc.command === command.payload
141
141
  : cc.command === command.payload.command)
142
142
  .forEach(async (cc) => {
143
- const res = await cc.handler(typeof command.payload === 'object' ? command.payload.args : {});
144
- if (res) {
143
+ const sendResponse = (payload) => {
145
144
  this.send('customCommand.response', {
146
145
  command: cc.command,
147
- payload: res,
146
+ payload,
148
147
  });
148
+ };
149
+ const res = await cc.handler(typeof command.payload === 'object' ? command.payload.args : {}, { sendResponse });
150
+ if (res) {
151
+ sendResponse(res);
149
152
  }
150
153
  });
151
154
  }
package/lib/index.d.ts CHANGED
@@ -8,6 +8,8 @@ export { assertHasStateResponsePlugin, hasStateResponsePlugin, } from './plugins
8
8
  export type { StateResponsePlugin, StateResponseFeatures, } from './plugins/state-responses';
9
9
  export { assertHasIssuePlugin, hasIssuePlugin } from './plugins/issue';
10
10
  export type { IssuePlugin, IssueFeatures } from './plugins/issue';
11
+ export { generateRequestId } from './plugins/api-response';
12
+ export type { ApiResponsePlugin, ApiResponseFeatures } from './plugins/api-response';
11
13
  export { runFPSMeter } from './utils/fps';
12
14
  export { createPluginGuard } from './utils/plugin-guard';
13
15
  import type { InferFeatures } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,OAAO,WAAW,CAAC,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,kBAAkB;CAAI"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGrF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,OAAO,WAAW,CAAC,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,kBAAkB;CAAI"}
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createPluginGuard = exports.runFPSMeter = exports.hasIssuePlugin = exports.assertHasIssuePlugin = exports.hasStateResponsePlugin = exports.assertHasStateResponsePlugin = exports.hasLoggerPlugin = exports.assertHasLoggerPlugin = exports.corePlugins = exports.createClient = exports.DReactionImpl = void 0;
3
+ exports.createPluginGuard = exports.runFPSMeter = exports.generateRequestId = exports.hasIssuePlugin = exports.assertHasIssuePlugin = exports.hasStateResponsePlugin = exports.assertHasStateResponsePlugin = exports.hasLoggerPlugin = exports.assertHasLoggerPlugin = exports.corePlugins = exports.createClient = exports.DReactionImpl = void 0;
4
4
  // Core
5
5
  var core_1 = require("./core");
6
6
  Object.defineProperty(exports, "DReactionImpl", { enumerable: true, get: function () { return core_1.DReactionImpl; } });
@@ -17,6 +17,8 @@ Object.defineProperty(exports, "hasStateResponsePlugin", { enumerable: true, get
17
17
  var issue_1 = require("./plugins/issue");
18
18
  Object.defineProperty(exports, "assertHasIssuePlugin", { enumerable: true, get: function () { return issue_1.assertHasIssuePlugin; } });
19
19
  Object.defineProperty(exports, "hasIssuePlugin", { enumerable: true, get: function () { return issue_1.hasIssuePlugin; } });
20
+ var api_response_1 = require("./plugins/api-response");
21
+ Object.defineProperty(exports, "generateRequestId", { enumerable: true, get: function () { return api_response_1.generateRequestId; } });
20
22
  // Utils
21
23
  var fps_1 = require("./utils/fps");
22
24
  Object.defineProperty(exports, "runFPSMeter", { enumerable: true, get: function () { return fps_1.runFPSMeter; } });
@@ -1,12 +1,23 @@
1
- import type { DReactionCore } from '../types';
1
+ import type { NetworkRequest, NetworkResponse } from 'dreaction-protocol';
2
+ import type { DReactionCore, Plugin } from '../types';
3
+ /**
4
+ * Generates a unique request ID for pairing api.request and api.response events.
5
+ */
6
+ export declare function generateRequestId(): string;
7
+ export interface ApiResponseFeatures {
8
+ apiRequest: (requestId: string, request: NetworkRequest) => void;
9
+ apiResponse: (requestId: string, request: NetworkRequest, response: NetworkResponse, duration: number) => void;
10
+ }
11
+ export type ApiResponsePlugin = Plugin<DReactionCore> & {
12
+ features: ApiResponseFeatures;
13
+ };
2
14
  /**
3
15
  * Sends API request/response information.
4
16
  */
5
17
  declare const apiResponse: () => (dreaction: DReactionCore) => {
6
18
  features: {
7
- apiResponse: (request: {
8
- status: number;
9
- }, response: any, duration: number) => void;
19
+ apiRequest: (requestId: string, request: NetworkRequest) => void;
20
+ apiResponse: (requestId: string, request: NetworkRequest, response: NetworkResponse, duration: number) => void;
10
21
  };
11
22
  };
12
23
  export default apiResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"api-response.d.ts","sourceRoot":"","sources":["../../src/plugins/api-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,UAAU,CAAC;AAEtD;;GAEG;AACH,QAAA,MAAM,WAAW,oBAAqB,aAAa;;+BAIlC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,YACjB,GAAG,YACH,MAAM;;CAkBvB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"api-response.d.ts","sourceRoot":"","sources":["../../src/plugins/api-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAItD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACjE,WAAW,EAAE,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,KACb,IAAI,CAAC;CACX;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG;IACtD,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,WAAW,SAAU,WAAW,aAAa;;gCAGrB,MAAM,WAAW,cAAc;iCAI1C,MAAM,WACR,cAAc,YACb,eAAe,YACf,MAAM;;CAiBvB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,21 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateRequestId = generateRequestId;
4
+ let requestCounter = 0;
5
+ /**
6
+ * Generates a unique request ID for pairing api.request and api.response events.
7
+ */
8
+ function generateRequestId() {
9
+ requestCounter++;
10
+ const timestamp = Date.now();
11
+ const random = Math.random().toString(36).substring(2, 9);
12
+ return `${timestamp}-${requestCounter}-${random}`;
13
+ }
3
14
  /**
4
15
  * Sends API request/response information.
5
16
  */
6
17
  const apiResponse = () => (dreaction) => {
7
18
  return {
8
19
  features: {
9
- apiResponse: (request, response, duration) => {
20
+ apiRequest: (requestId, request) => {
21
+ dreaction.send('api.request', { requestId, request });
22
+ },
23
+ apiResponse: (requestId, request, response, duration) => {
10
24
  const ok = response &&
11
25
  response.status &&
12
26
  typeof response.status === 'number' &&
13
27
  response.status >= 200 &&
14
28
  response.status <= 299;
15
29
  const important = !ok;
16
- dreaction.send('api.response',
17
- // @ts-ignore
18
- { request, response, duration }, important);
30
+ dreaction.send('api.response', { requestId, request, response, duration }, important);
19
31
  },
20
32
  },
21
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/plugins/benchmark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,UAAU,CAAC;AAEtD;;GAEG;AACH,QAAA,MAAM,SAAS,oBAAqB,aAAa;;2BAGrB,MAAM;8BAGL,MAAM;8BAWN,MAAM;8BAAN,MAAM;;;CAUlC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/plugins/benchmark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,UAAU,CAAC;AAEtD;;GAEG;AACH,QAAA,MAAM,SAAS,SAAU,WAAW,aAAa;;2BAGrB,MAAM;8BAGL,MAAM;8BAWN,MAAM;8BAAN,MAAM;;;CAUlC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/plugins/clear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,UAAU,CAAC;AAEtD;;GAEG;AACH,QAAA,MAAM,KAAK,oBAAqB,aAAa;;;;CAM5C,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/plugins/clear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,UAAU,CAAC;AAEtD;;GAEG;AACH,QAAA,MAAM,KAAK,SAAU,WAAW,aAAa;;;;CAM5C,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/plugins/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,UAAU,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,QAAA,MAAM,KAAK,oBAAqB,aAAa;;yBAItB,YAAY;;CAalC,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/plugins/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,UAAU,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,QAAA,MAAM,KAAK,SAAU,WAAW,aAAa;;yBAItB,YAAY;;CAalC,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -37,9 +37,8 @@ export declare const corePlugins: (((dreaction: DReactionCore) => {
37
37
  };
38
38
  }) | ((dreaction: DReactionCore) => {
39
39
  features: {
40
- apiResponse: (request: {
41
- status: number;
42
- }, response: any, duration: number) => void;
40
+ apiRequest: (requestId: string, request: import("dreaction-protocol").NetworkRequest) => void;
41
+ apiResponse: (requestId: string, request: import("dreaction-protocol").NetworkRequest, response: import("dreaction-protocol").NetworkResponse, duration: number) => void;
43
42
  };
44
43
  }) | ((dreaction: DReactionCore) => {
45
44
  features: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,UAAU,CAAC;AAS7D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAQkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,UAAU,CAAC;AAS7D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAQkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/plugins/issue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,aAAa,EAAE,MAAM,UAAU,CAAC;AAGrE;;GAEG;AACH,QAAA,MAAM,KAAK,oBAAqB,aAAa;;0BAGrB,MAAM,SAAS,MAAM,gBAAgB,MAAM;;CAKlE,CAAC;AAEF,eAAe,KAAK,CAAC;AAErB,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;AAIpE,eAAO,MAAM,cAAc;sBAdH,MAAM,SAAS,MAAM,gBAAgB,MAAM;CAcvB,CAAC;AAC7C,eAAO,MAAM,oBAAoB;sBAfT,MAAM,SAAS,MAAM,gBAAgB,MAAM;CAed,CAAC"}
1
+ {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/plugins/issue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,aAAa,EAAE,MAAM,UAAU,CAAC;AAGrE;;GAEG;AACH,QAAA,MAAM,KAAK,SAAU,WAAW,aAAa;;0BAGrB,MAAM,SAAS,MAAM,gBAAgB,MAAM;;CAKlE,CAAC;AAEF,eAAe,KAAK,CAAC;AAErB,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;AAIpE,eAAO,MAAM,cAAc;sBAdH,MAAM,SAAS,MAAM,gBAAgB,MAAM;CAcvB,CAAC;AAC7C,eAAO,MAAM,oBAAoB;sBAfT,MAAM,SAAS,MAAM,gBAAgB,MAAM;CAed,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/plugins/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,aAAa,EAAE,MAAM,UAAU,CAAC;AAGrE;;GAEG;AACH,QAAA,MAAM,MAAM,oBAAqB,aAAa;;uBAGzB,GAAG,EAAE;wBAIJ,GAAG,EAAE;gCAIG,GAAG,EAAE;;;;;CAYlC,CAAC;AAEF,eAAe,MAAM,CAAC;AAEtB,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC;AAOtE,eAAO,MAAM,eAAe;mBAhCP,GAAG,EAAE;oBAIJ,GAAG,EAAE;4BAIG,GAAG,EAAE;;;;CAwBW,CAAC;AAC/C,eAAO,MAAM,qBAAqB;mBAjCb,GAAG,EAAE;oBAIJ,GAAG,EAAE;4BAIG,GAAG,EAAE;;;;CAyBoB,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/plugins/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,aAAa,EAAE,MAAM,UAAU,CAAC;AAGrE;;GAEG;AACH,QAAA,MAAM,MAAM,SAAU,WAAW,aAAa;;uBAGzB,GAAG,EAAE;wBAIJ,GAAG,EAAE;gCAIG,GAAG,EAAE;;;;;CAYlC,CAAC;AAEF,eAAe,MAAM,CAAC;AAEtB,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC;AAOtE,eAAO,MAAM,eAAe;mBAhCP,GAAG,EAAE;oBAIJ,GAAG,EAAE;4BAIG,GAAG,EAAE;;;;CAwBW,CAAC;AAC/C,eAAO,MAAM,qBAAqB;mBAjCb,GAAG,EAAE;oBAIJ,GAAG,EAAE;4BAIG,GAAG,EAAE;;;;CAyBoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"state-responses.d.ts","sourceRoot":"","sources":["../../src/plugins/state-responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAU,aAAa,EAAE,MAAM,UAAU,CAAC;AAGrE;;GAEG;AACH,QAAA,MAAM,aAAa,oBAAqB,aAAa;;oCAIvC,0BAA0B,CAAC,MAAM,CAAC,UAChC,0BAA0B,CAAC,QAAQ,CAAC;oCAMtC,0BAA0B,CAAC,MAAM,CAAC,SACjC,0BAA0B,CAAC,OAAO,CAAC,UACnC,0BAA0B,CAAC,OAAO,CAAC;kCAIpC,wBAAwB,CAAC,MAAM,CAAC,QAChC,wBAAwB,CAAC,MAAM,CAAC,UAC/B,wBAAwB,CAAC,OAAO,CAAC;qCAGb,wBAAwB,CAAC,SAAS,CAAC;qCAInC,0BAA0B,CAAC,OAAO,CAAC;;CAIrE,CAAC;AAEF,eAAe,aAAa,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACnE,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAC/C,UAAU,CAAC,OAAO,aAAa,CAAC,CACjC,CAAC;AAaF,eAAO,MAAM,sBAAsB;gCA9CrB,0BAA0B,CAAC,MAAM,CAAC,UAChC,0BAA0B,CAAC,QAAQ,CAAC;gCAMtC,0BAA0B,CAAC,MAAM,CAAC,SACjC,0BAA0B,CAAC,OAAO,CAAC,UACnC,0BAA0B,CAAC,OAAO,CAAC;8BAIpC,wBAAwB,CAAC,MAAM,CAAC,QAChC,wBAAwB,CAAC,MAAM,CAAC,UAC/B,wBAAwB,CAAC,OAAO,CAAC;iCAGb,wBAAwB,CAAC,SAAS,CAAC;iCAInC,0BAA0B,CAAC,OAAO,CAAC;CAwBV,CAAC;AAC7D,eAAO,MAAM,4BAA4B;gCA/C3B,0BAA0B,CAAC,MAAM,CAAC,UAChC,0BAA0B,CAAC,QAAQ,CAAC;gCAMtC,0BAA0B,CAAC,MAAM,CAAC,SACjC,0BAA0B,CAAC,OAAO,CAAC,UACnC,0BAA0B,CAAC,OAAO,CAAC;8BAIpC,wBAAwB,CAAC,MAAM,CAAC,QAChC,wBAAwB,CAAC,MAAM,CAAC,UAC/B,wBAAwB,CAAC,OAAO,CAAC;iCAGb,wBAAwB,CAAC,SAAS,CAAC;iCAInC,0BAA0B,CAAC,OAAO,CAAC;CAyBD,CAAC"}
1
+ {"version":3,"file":"state-responses.d.ts","sourceRoot":"","sources":["../../src/plugins/state-responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAU,aAAa,EAAE,MAAM,UAAU,CAAC;AAGrE;;GAEG;AACH,QAAA,MAAM,aAAa,SAAU,WAAW,aAAa;;oCAIvC,0BAA0B,CAAC,MAAM,CAAC,UAChC,0BAA0B,CAAC,QAAQ,CAAC;oCAMtC,0BAA0B,CAAC,MAAM,CAAC,SACjC,0BAA0B,CAAC,OAAO,CAAC,UACnC,0BAA0B,CAAC,OAAO,CAAC;kCAIpC,wBAAwB,CAAC,MAAM,CAAC,QAChC,wBAAwB,CAAC,MAAM,CAAC,UAC/B,wBAAwB,CAAC,OAAO,CAAC;qCAGb,wBAAwB,CAAC,SAAS,CAAC;qCAInC,0BAA0B,CAAC,OAAO,CAAC;;CAIrE,CAAC;AAEF,eAAe,aAAa,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACnE,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAC/C,UAAU,CAAC,OAAO,aAAa,CAAC,CACjC,CAAC;AAaF,eAAO,MAAM,sBAAsB;gCA9CrB,0BAA0B,CAAC,MAAM,CAAC,UAChC,0BAA0B,CAAC,QAAQ,CAAC;gCAMtC,0BAA0B,CAAC,MAAM,CAAC,SACjC,0BAA0B,CAAC,OAAO,CAAC,UACnC,0BAA0B,CAAC,OAAO,CAAC;8BAIpC,wBAAwB,CAAC,MAAM,CAAC,QAChC,wBAAwB,CAAC,MAAM,CAAC,UAC/B,wBAAwB,CAAC,OAAO,CAAC;iCAGb,wBAAwB,CAAC,SAAS,CAAC;iCAInC,0BAA0B,CAAC,OAAO,CAAC;CAwBV,CAAC;AAC7D,eAAO,MAAM,4BAA4B;gCA/C3B,0BAA0B,CAAC,MAAM,CAAC,UAChC,0BAA0B,CAAC,QAAQ,CAAC;gCAMtC,0BAA0B,CAAC,MAAM,CAAC,SACjC,0BAA0B,CAAC,OAAO,CAAC,UACnC,0BAA0B,CAAC,OAAO,CAAC;8BAIpC,wBAAwB,CAAC,MAAM,CAAC,QAChC,wBAAwB,CAAC,MAAM,CAAC,UAC/B,wBAAwB,CAAC,OAAO,CAAC;iCAGb,wBAAwB,CAAC,SAAS,CAAC;iCAInC,0BAA0B,CAAC,OAAO,CAAC;CAyBD,CAAC"}
package/lib/types.d.ts CHANGED
@@ -19,7 +19,9 @@ export type CustomCommandArgs<Args extends CustomCommandArg[]> = UnionToIntersec
19
19
  } : never : never>;
20
20
  export interface CustomCommand<Args extends CustomCommandArg[] = CustomCommandArg[]> extends Omit<CustomCommandRegisterPayload, 'id' | 'args'> {
21
21
  id?: number;
22
- handler: (args: CustomCommandArgs<Args>) => any | Promise<any>;
22
+ handler: (args: CustomCommandArgs<Args>, ctx: {
23
+ sendResponse: (payload: any) => void;
24
+ }) => any | Promise<any>;
23
25
  args?: Args;
24
26
  }
25
27
  export interface LifeCycleMethods {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAYxC;;;GAGG;AACH,QAAA,MAAM,QAAQ,YAAa,aAAa,CAAC,aAAa,CAAC,SAkBtD,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAYxC;;;GAGG;AACH,QAAA,MAAM,QAAQ,GAAI,SAAS,aAAa,CAAC,aAAa,CAAC,SAkBtD,CAAC;AAEF,eAAe,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,16 @@
1
1
  {
2
2
  "name": "dreaction-client-core",
3
- "version": "1.3.0",
3
+ "version": "1.4.1",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
+ "scripts": {
8
+ "dev": "tsc --watch",
9
+ "build": "tsc",
10
+ "prepare": "bun run tsc",
11
+ "release": "bun publish --registry=https://registry.npmjs.com/",
12
+ "test": "vitest"
13
+ },
7
14
  "files": [
8
15
  "lib",
9
16
  "src"
@@ -15,16 +22,12 @@
15
22
  "license": "MIT",
16
23
  "dependencies": {
17
24
  "@types/ws": "^8.5.13",
25
+ "dreaction-protocol": "1.0.11",
18
26
  "eventemitter-strict": "^1.0.1",
19
- "ws": "^8.18.0",
20
- "dreaction-protocol": "1.0.10"
27
+ "ws": "^8.18.0"
21
28
  },
22
29
  "devDependencies": {
30
+ "@types/node": "^22.0.0",
23
31
  "typescript": "^5.4.5"
24
- },
25
- "scripts": {
26
- "dev": "tsc --watch",
27
- "build": "tsc",
28
- "test": "vitest"
29
32
  }
30
- }
33
+ }
package/src/core.ts CHANGED
@@ -203,14 +203,19 @@ export class DReactionImpl
203
203
  : cc.command === command.payload.command
204
204
  )
205
205
  .forEach(async (cc) => {
206
- const res = await cc.handler(
207
- typeof command.payload === 'object' ? command.payload.args : {}
208
- );
209
- if (res) {
206
+ const sendResponse = (payload: any) => {
210
207
  this.send('customCommand.response', {
211
208
  command: cc.command,
212
- payload: res,
209
+ payload,
213
210
  });
211
+ };
212
+
213
+ const res = await cc.handler(
214
+ typeof command.payload === 'object' ? command.payload.args : {},
215
+ { sendResponse }
216
+ );
217
+ if (res) {
218
+ sendResponse(res);
214
219
  }
215
220
  });
216
221
  } else if (command.type === 'setClientId') {
@@ -331,7 +336,10 @@ export class DReactionImpl
331
336
  optHandler?: () => void
332
337
  ): () => void {
333
338
  let command: string;
334
- let handler: (args: Record<string, any>) => void;
339
+ let handler: (
340
+ args: Record<string, any>,
341
+ ctx: { sendResponse: (payload: any) => void }
342
+ ) => void;
335
343
  let title!: string;
336
344
  let description!: string;
337
345
  let args!: CustomCommandArg[];
package/src/index.ts CHANGED
@@ -29,6 +29,8 @@ export type {
29
29
  } from './plugins/state-responses';
30
30
  export { assertHasIssuePlugin, hasIssuePlugin } from './plugins/issue';
31
31
  export type { IssuePlugin, IssueFeatures } from './plugins/issue';
32
+ export { generateRequestId } from './plugins/api-response';
33
+ export type { ApiResponsePlugin, ApiResponseFeatures } from './plugins/api-response';
32
34
 
33
35
  // Utils
34
36
  export { runFPSMeter } from './utils/fps';
@@ -1,14 +1,48 @@
1
+ import type {
2
+ NetworkRequest,
3
+ NetworkResponse,
4
+ } from 'dreaction-protocol';
1
5
  import type { DReactionCore, Plugin } from '../types';
2
6
 
7
+ let requestCounter = 0;
8
+
9
+ /**
10
+ * Generates a unique request ID for pairing api.request and api.response events.
11
+ */
12
+ export function generateRequestId(): string {
13
+ requestCounter++;
14
+ const timestamp = Date.now();
15
+ const random = Math.random().toString(36).substring(2, 9);
16
+ return `${timestamp}-${requestCounter}-${random}`;
17
+ }
18
+
19
+ export interface ApiResponseFeatures {
20
+ apiRequest: (requestId: string, request: NetworkRequest) => void;
21
+ apiResponse: (
22
+ requestId: string,
23
+ request: NetworkRequest,
24
+ response: NetworkResponse,
25
+ duration: number
26
+ ) => void;
27
+ }
28
+
29
+ export type ApiResponsePlugin = Plugin<DReactionCore> & {
30
+ features: ApiResponseFeatures;
31
+ };
32
+
3
33
  /**
4
34
  * Sends API request/response information.
5
35
  */
6
36
  const apiResponse = () => (dreaction: DReactionCore) => {
7
37
  return {
8
38
  features: {
39
+ apiRequest: (requestId: string, request: NetworkRequest) => {
40
+ dreaction.send('api.request', { requestId, request });
41
+ },
9
42
  apiResponse: (
10
- request: { status: number },
11
- response: any,
43
+ requestId: string,
44
+ request: NetworkRequest,
45
+ response: NetworkResponse,
12
46
  duration: number
13
47
  ) => {
14
48
  const ok =
@@ -20,13 +54,12 @@ const apiResponse = () => (dreaction: DReactionCore) => {
20
54
  const important = !ok;
21
55
  dreaction.send(
22
56
  'api.response',
23
- // @ts-ignore
24
- { request, response, duration },
57
+ { requestId, request, response, duration },
25
58
  important
26
59
  );
27
60
  },
28
61
  },
29
- } satisfies Plugin<DReactionCore>;
62
+ } satisfies ApiResponsePlugin;
30
63
  };
31
64
 
32
65
  export default apiResponse;
package/src/types.ts CHANGED
@@ -40,7 +40,10 @@ export interface CustomCommand<
40
40
  Args extends CustomCommandArg[] = CustomCommandArg[]
41
41
  > extends Omit<CustomCommandRegisterPayload, 'id' | 'args'> {
42
42
  id?: number;
43
- handler: (args: CustomCommandArgs<Args>) => any | Promise<any>;
43
+ handler: (
44
+ args: CustomCommandArgs<Args>,
45
+ ctx: { sendResponse: (payload: any) => void }
46
+ ) => any | Promise<any>;
44
47
  args?: Args;
45
48
  }
46
49
  // #endregion