@kosdev-code/kos-ui-sdk 0.1.0-dev.5053 → 0.1.0-dev.5070

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.
Files changed (35) hide show
  1. package/core/core/decorators/index.d.ts +2 -0
  2. package/core/core/decorators/index.d.ts.map +1 -1
  3. package/core/core/decorators/kos-execution-context.d.ts +60 -0
  4. package/core/core/decorators/kos-execution-context.d.ts.map +1 -0
  5. package/core/core/decorators/kos-service-request.d.ts +368 -0
  6. package/core/core/decorators/kos-service-request.d.ts.map +1 -0
  7. package/core/core/kosModel.d.ts +2 -0
  8. package/core/core/kosModel.d.ts.map +1 -1
  9. package/core/core/model/kos-model-component-factory.d.ts +4 -0
  10. package/core/core/model/kos-model-component-factory.d.ts.map +1 -1
  11. package/core/core/model/kos-service-request-manager.d.ts +77 -0
  12. package/core/core/model/kos-service-request-manager.d.ts.map +1 -0
  13. package/core/core/model/model-introspection-utils.d.ts +1 -0
  14. package/core/core/model/model-introspection-utils.d.ts.map +1 -1
  15. package/core/core/model/service-response-store.d.ts +140 -0
  16. package/core/core/model/service-response-store.d.ts.map +1 -0
  17. package/core/types/index.d.ts +1 -0
  18. package/core/types/index.d.ts.map +1 -1
  19. package/core/types/service-response-store.d.ts +96 -0
  20. package/core/types/service-response-store.d.ts.map +1 -0
  21. package/core/util/index.d.ts +1 -0
  22. package/core/util/index.d.ts.map +1 -1
  23. package/core/util/kos-service-request.d.ts +8 -0
  24. package/core/util/kos-service-request.d.ts.map +1 -1
  25. package/core/util/service-response.d.ts +110 -0
  26. package/core/util/service-response.d.ts.map +1 -0
  27. package/index.cjs +69 -69
  28. package/index.cjs.map +1 -1
  29. package/index.js +7169 -6533
  30. package/index.js.map +1 -1
  31. package/models/decorators/future-service.d.ts +7 -0
  32. package/models/decorators/future-service.d.ts.map +1 -1
  33. package/models/utils/service.d.ts +58 -2
  34. package/models/utils/service.d.ts.map +1 -1
  35. package/package.json +2 -2
@@ -8,6 +8,13 @@ interface FutureProps {
8
8
  * @default true
9
9
  */
10
10
  abortController?: boolean;
11
+ /**
12
+ * Tracker injection policy
13
+ * - 'id': Inject tracker ID as last string parameter (default, preserves existing behavior)
14
+ * - 'context': Inject tracker ID into execution context object as $tracker property
15
+ * @default 'id'
16
+ */
17
+ trackerPolicy?: "id" | "context";
11
18
  }
12
19
  export declare function kosFuture(props?: FutureProps): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
13
20
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"future-service.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/models/decorators/future-service.ts"],"names":[],"mappings":"AAgBA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAQD,wBAAgB,SAAS,CAAC,KAAK,GAAE,WAAgB,YAE/B,GAAG,eAAe,MAAM,cAAc,kBAAkB,UA+JzE"}
1
+ {"version":3,"file":"future-service.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/models/decorators/future-service.ts"],"names":[],"mappings":"AAkBA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CAClC;AAQD,wBAAgB,SAAS,CAAC,KAAK,GAAE,WAAgB,YAO/B,GAAG,eAAe,MAAM,cAAc,kBAAkB,UAiLzE"}
@@ -1,5 +1,6 @@
1
1
  import { paths } from './openapi';
2
- import { PathsByMethod, ClientResponse } from '../../core/util/kos-service-request';
2
+ import { ClientResponse, PathsByMethod } from '../../core/util/kos-service-request';
3
+ import { HttpMethod, IKosServiceRequestParams, KosExecutionContext } from '../../core/core/decorators/kos-service-request';
3
4
 
4
5
  declare const api: {
5
6
  get: <K extends "/api/kos/network/interfaces" | "/api/app/kosdev.ddk/auth/role" | "/api/system/lidar/scan/data" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/select" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/availability" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/availability/groups/{group}" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/graph/node/{id}" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/graph/beverages" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/graph/nodes" | "/api/kos/ui/plugins/context/{*name}" | "/api/kos/ui/plugins/contexts" | "/api/kos/localization/context/{*path}" | "/api/kos/localization/contexts" | "/api/kos/browser" | "/api/kos/browser/redirect" | "/api/app/kosdev.ddk/cui" | "/api/app/kosdev.ddk/cui/open" | "/api/kos/future/traces" | "/api/kos/future/traces/{traceId}/events" | "/api/kos/ota/paused" | "/api/kos/ota/artifacts" | "/api/app/kosdev.ddk/copyLogs/volumes/size" | "/api/app/kosdev.ddk/copyLogs/files/size" | "/api/ext/freestyle/can/read/float/{boardPath}/{index}/{subIndex}" | "/api/ext/freestyle/can/read/int/{boardPath}/{index}/{subIndex}" | "/api/ext/freestyle/can/stats" | "/api/ext/freestyle/can/stats/raw" | "/api/kos/state/paths" | "/api/kos/state/{path}" | "/api/kos/hardware/resolver/identityMappings" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/favorite-bevs" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/tag-info" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/rewarded-games" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/rewarded-bevs" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/tag-username" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/cup-id" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/points" | "/api/ext/dispense/metrics" | "/api/ext/dispense/metrics/names" | "/api/ext/dispense/metrics/{name}" | "/api/ext/dispense/metrics/{nozzle}/names" | "/api/ext/dispense/metrics/{nozzle}/{name}" | "/api/ext/freestyle/microCalibration/report/{board}" | "/api/ext/freestyle/microCalibration/history/{pump}" | "/api/ext/freestyle/microCalibration/cal/{pump}" | "/api/kos/config/schema" | "/api/kos/config/schema/{path}" | "/api/kos/config/{path}" | "/api/kos/config/details/{options}" | "/api/kos/config/details/{path}/{options}" | "/api/kos/config/value/merged/{scopedPath}/{attr}" | "/api/kos/config/value/{scopedPath}/{attr}" | "/api/kos/config/bean/defaults/{scopedPath}" | "/api/kos/config/bean/merged/{path}" | "/api/kos/config/bean/overrides/{scopedPath}" | "/api/ext/freestyle/brandset/nutrition/{bevId}" | "/api/ext/freestyle/brandset/grantProperties" | "/api/kos/storage/devices" | "/api/ext/freestyle/fcm/calibration/{pump}/baseline" | "/api/system/test/stop-animation" | "/api/system/test/start-animation-repeat" | "/api/system/test/get-tag" | "/api/system/test/start-animation-{duration}" | "/api/kos/update/available" | "/api/ext/dispense/ingredients" | "/api/ext/dispense/ingredients/sources" | "/api/kos/troubles" | "/api/kos/troubles/{troubleId}" | "/api/ext/freestyle/fuelGauges/{holder}" | "/api/kos/handles" | "/api/kos/handles/{path}" | "/api/kos/handles/{path}/{view}" | "/api/kos/handles/views" | "/api/kos/openapi/{*baseUrl}" | "/api/app/kosdev.ddk/door/door" | "/api/kos/manifest/node" | "/api/kos/manifest/device" | "/api/kos/manifest/info" | "/api/app/kosdev.ddk/network/reports" | "/api/app/kosdev.ddk/network/tests" | "/api/app/kosdev.ddk/network/tests/run/{id}" | "/api/app/kosdev.ddk/network/tests/run/group/{group}" | "/api/kos/apps" | "/api/kos/apps/started" | "/api/kos/time/timezone" | "/api/ext/freestyle/cartridges" | "/api/ext/freestyle/cartridges/{id}" | "/api/ext/dispense/soldOuts/troubles" | "/api/ext/dispense/soldOuts/db" | "/api/vfs" | "/api/app/kosdev.ddk/setup/steps" | "/api/app/kosdev.ddk/setup/steps/reset" | "/api/app/kondra.controlledPour/state" | "/api/kos/regions" | "/api/kos/regions/info" | "/api/ext/dispense/assignments" | "/api/kos/descriptor/{path}" | "/api/kos/descriptor/{path}/{dotted}" | "/api/kos/logs/rotateAll" | "/api/kos/logs/node/{nodeId}/streams" | "/api/kos/logs/node/{nodeId}/{stream}/blocks" | "/api/kos/logs/node/{nodeId}/{stream}/blocks/{blockId}" | "/api/kos/logs/rotate/{stream}" | "/api/kos/logs/overrides" | "/api/kos/nodeMgr/node/{nodeId}/blockedManifests" | "/api/kos/nodeMgr/blockedManifests" | "/api/ext/dispense/insertion/filters" | "/api/kos/logs/groups" | "/api/kos/logs/overrides/{nodeType}" | "/api/kos/logs/overrides/{nodeType}/{typePrefix}" | "/api/kos/studio/properties" | "/api/kos/criticalData/sources" | "/api/kos/criticalData/data" | "/api/kos/criticalData/data/{name}" | "/api/app/kosdev.ddk/ncui/plugins" | "/api/app/kosdev.ddk/ncui/open" | "/api/kos/device" | "/api/kos/device/assemblies" | "/api/kos/device/serialNumber" | "/api/app/dm.agent/device-mgmt/agent/config-value/{path}/{property}" | "/api/app/dm.agent/device-mgmt/agent/ping" | "/api/app/dm.agent/device-mgmt/agent/rotate-logs" | "/api/app/dm.agent/device-mgmt/agent/ota">(endpoint: K, params?: (paths[K]["get"] extends {
@@ -17,7 +18,7 @@ declare const api: {
17
18
  stream?: boolean | undefined;
18
19
  responseType?: "text" | "json" | "arraybuffer" | "blob" | undefined;
19
20
  } | undefined) => Promise<import('../../core/util/kos-service-request').ServiceResponse<ClientResponse<paths, K, "get">>>;
20
- post: <K_1 extends "/api/system/canvas" | "/api/kos/network/set-connection/{nodeId}" | "/api/kos/network/connect-node-to-wifi" | "/api/app/kosdev.ddk/auth/pincode/{pin}" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/select" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/stop" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/stop/{reason}" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/pour" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/fixed/{name}" | "/api/kos/browser/{nodeId}" | "/api/kos/browser/{nodeId}/{name}" | "/api/kos/browser/intent" | "/api/kos/browser/url" | "/api/kos/future/{futureId}/cancel" | "/api/kos/ota/resume/{name}" | "/api/kos/ota/cancel" | "/api/kos/ota/cancel/{name}" | "/api/kos/ota/pause/{name}" | "/api/app/kosdev.ddk/copyLogs/eraseAndCopy/{id}" | "/api/app/kosdev.ddk/copyLogs/{id}" | "/api/ext/freestyle/can/stats" | "/api/ext/freestyle/can/write/byte/{boardPath}/{index}/{subIndex}/{val}" | "/api/ext/freestyle/can/write/short/{boardPath}/{index}/{subIndex}/{val}" | "/api/ext/freestyle/can/write/float/{boardPath}/{index}/{subIndex}/{val}" | "/api/ext/freestyle/can/write/int/{boardPath}/{index}/{subIndex}/{val}" | "/api/ext/freestyle/fcm/diagnostics/{pump}/pressureTest" | "/api/ext/freestyle/fcm/diagnostics/{pump}/opennessTest" | "/api/ext/freestyle/fcm/diagnostics/{pump}/flowTest" | "/api/ext/freestyle/fcm/diagnostics/{pump}/electricalTest" | "/api/kos/hardware/resolver/identityMappings/{boardPath}" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/sim/card/decline" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/sim/card/accept" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/sim/cup/place-down" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/sim/cup/pick-up" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/favorite-bevs" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/rewarded-games" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/tag/clear" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/rewarded-bevs" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/tag-username" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/cup-id" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/points" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/lidar/sim/leave" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/card/cancel" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/card/start/{sizeId}" | "/api/ext/dispense/metrics/{name}" | "/api/ext/dispense/metrics/{nozzle}/{name}" | "/api/ext/freestyle/microCalibration/cal/{pump}/running/{val}" | "/api/ext/freestyle/microCalibration/cal/{pump}/code/{code}" | "/api/ext/freestyle/microCalibration/cal/{pump}/baseline/{val}" | "/api/ext/freestyle/microCalibration/cal/{pump}/both/{val}" | "/api/kos/config/{path}" | "/api/kos/config/bulk" | "/api/ext/freestyle/brandset/grantProperties" | "/api/ext/freestyle/fcm/calibration/{pump}/calibrate" | "/api/ext/freestyle/fcm/calibration/{pump}/preCalibrate" | "/api/ext/freestyle/fcm/calibration/{pump}/verify/{calVolume}" | "/api/ext/freestyle/fcm/calibration/{pump}/baseline/{value}" | "/api/ext/freestyle/fcm/calibration/{pump}/complete/{calVolume}/{verifyVolume}" | "/api/ext/freestyle/microCalibration/pour/{pump}/calibrate" | "/api/ext/freestyle/microCalibration/pour/{pump}/preCalibrate" | "/api/ext/freestyle/microCalibration/pour/{pump}/verify" | "/api/ext/freestyle/microCalibration/pour/{pump}/complete" | "/api/kos/update/install" | "/api/kos/troubles/resolve" | "/api/kos/troubles/resolve/{troubleId}" | "/api/ext/freestyle/fuelGauges/{holder}/{val}" | "/api/ext/dispense/pumpEvents/replaceLine/{holder}" | "/api/ext/dispense/pumpEvents/replacePump/{pump}" | "/api/app/kosdev.ddk/door/door/{state}" | "/api/kos/time/date" | "/api/kos/time/timezone" | "/api/kos/time/time" | "/api/ext/dispense/soldOuts/container/{pump}/{reason}" | "/api/ext/dispense/soldOuts/slice/{pump}/{reason}" | "/api/app/kosdev.ddk/setup/complete/{stepName}" | "/api/system/canvas/nozzle" | "/api/ext/dispense/assignments" | "/api/kos/logs/node/{nodeId}/{stream}/subscribe" | "/api/kos/logs/node/{nodeId}/{stream}/unsubscribe" | "/api/kos/logs/overrides" | "/api/kos/nodeMgr/reboot" | "/api/kos/nodeMgr/node/{nodeId}/reboot" | "/api/kos/nodeMgr/node/{nodeId}/blockedManifests/{manifestId}" | "/api/kos/nodeMgr/blockedManifests/{manifestId}" | "/api/app/kosdev.ddk/lockout/unlock/{pin}" | "/api/kos/criticalData/data" | "/api/kos/criticalData/data/{name}" | "/api/app/kosdev.ddk/ncui/reboot" | "/api/kos/device/serialNumber/{serialNum}" | "/api/app/dm.agent/device-mgmt/agent/config-value/{path}/{property}">(endpoint: K_1, params?: (paths[K_1]["post"] extends {
21
+ post: <K_1 extends "/api/kos/network/set-connection/{nodeId}" | "/api/kos/network/connect-node-to-wifi" | "/api/app/kosdev.ddk/auth/pincode/{pin}" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/select" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/stop" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/stop/{reason}" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/pour" | "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/fixed/{name}" | "/api/kos/browser/{nodeId}" | "/api/kos/browser/{nodeId}/{name}" | "/api/kos/browser/intent" | "/api/kos/browser/url" | "/api/kos/future/{futureId}/cancel" | "/api/kos/ota/resume/{name}" | "/api/kos/ota/cancel" | "/api/kos/ota/cancel/{name}" | "/api/kos/ota/pause/{name}" | "/api/app/kosdev.ddk/copyLogs/eraseAndCopy/{id}" | "/api/app/kosdev.ddk/copyLogs/{id}" | "/api/ext/freestyle/can/stats" | "/api/ext/freestyle/can/write/byte/{boardPath}/{index}/{subIndex}/{val}" | "/api/ext/freestyle/can/write/short/{boardPath}/{index}/{subIndex}/{val}" | "/api/ext/freestyle/can/write/float/{boardPath}/{index}/{subIndex}/{val}" | "/api/ext/freestyle/can/write/int/{boardPath}/{index}/{subIndex}/{val}" | "/api/ext/freestyle/fcm/diagnostics/{pump}/pressureTest" | "/api/ext/freestyle/fcm/diagnostics/{pump}/opennessTest" | "/api/ext/freestyle/fcm/diagnostics/{pump}/flowTest" | "/api/ext/freestyle/fcm/diagnostics/{pump}/electricalTest" | "/api/kos/hardware/resolver/identityMappings/{boardPath}" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/sim/card/decline" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/sim/card/accept" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/sim/cup/place-down" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/sim/cup/pick-up" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/favorite-bevs" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/rewarded-games" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/tag/clear" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/rewarded-bevs" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/tag-username" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/cup-id" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/rfid/points" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/lidar/sim/leave" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/card/cancel" | "/api/app/com.kondra.summer.2025.controlledPourPlugin/card/start/{sizeId}" | "/api/ext/dispense/metrics/{name}" | "/api/ext/dispense/metrics/{nozzle}/{name}" | "/api/ext/freestyle/microCalibration/cal/{pump}/running/{val}" | "/api/ext/freestyle/microCalibration/cal/{pump}/code/{code}" | "/api/ext/freestyle/microCalibration/cal/{pump}/baseline/{val}" | "/api/ext/freestyle/microCalibration/cal/{pump}/both/{val}" | "/api/kos/config/{path}" | "/api/kos/config/bulk" | "/api/ext/freestyle/brandset/grantProperties" | "/api/ext/freestyle/fcm/calibration/{pump}/calibrate" | "/api/ext/freestyle/fcm/calibration/{pump}/preCalibrate" | "/api/ext/freestyle/fcm/calibration/{pump}/verify/{calVolume}" | "/api/ext/freestyle/fcm/calibration/{pump}/baseline/{value}" | "/api/ext/freestyle/fcm/calibration/{pump}/complete/{calVolume}/{verifyVolume}" | "/api/ext/freestyle/microCalibration/pour/{pump}/calibrate" | "/api/ext/freestyle/microCalibration/pour/{pump}/preCalibrate" | "/api/ext/freestyle/microCalibration/pour/{pump}/verify" | "/api/ext/freestyle/microCalibration/pour/{pump}/complete" | "/api/kos/update/install" | "/api/kos/troubles/resolve" | "/api/kos/troubles/resolve/{troubleId}" | "/api/ext/freestyle/fuelGauges/{holder}/{val}" | "/api/ext/dispense/pumpEvents/replaceLine/{holder}" | "/api/ext/dispense/pumpEvents/replacePump/{pump}" | "/api/app/kosdev.ddk/door/door/{state}" | "/api/kos/time/date" | "/api/kos/time/timezone" | "/api/kos/time/time" | "/api/ext/dispense/soldOuts/container/{pump}/{reason}" | "/api/ext/dispense/soldOuts/slice/{pump}/{reason}" | "/api/app/kosdev.ddk/setup/complete/{stepName}" | "/api/system/canvas" | "/api/system/canvas/nozzle" | "/api/ext/dispense/assignments" | "/api/kos/logs/node/{nodeId}/{stream}/subscribe" | "/api/kos/logs/node/{nodeId}/{stream}/unsubscribe" | "/api/kos/logs/overrides" | "/api/kos/nodeMgr/reboot" | "/api/kos/nodeMgr/node/{nodeId}/reboot" | "/api/kos/nodeMgr/node/{nodeId}/blockedManifests/{manifestId}" | "/api/kos/nodeMgr/blockedManifests/{manifestId}" | "/api/app/kosdev.ddk/lockout/unlock/{pin}" | "/api/kos/criticalData/data" | "/api/kos/criticalData/data/{name}" | "/api/app/kosdev.ddk/ncui/reboot" | "/api/kos/device/serialNumber/{serialNum}" | "/api/app/dm.agent/device-mgmt/agent/config-value/{path}/{property}">(endpoint: K_1, params?: (paths[K_1]["post"] extends {
21
22
  parameters: infer P_1;
22
23
  } ? P_1 : never) | undefined, body?: (paths[K_1]["post"] extends {
23
24
  requestBody: {
@@ -83,5 +84,60 @@ export type PostPaths = ValidPaths["post"];
83
84
  export type PutPaths = ValidPaths["put"];
84
85
  export type DeletePaths = ValidPaths["delete"];
85
86
  export type ApiResponse<Path extends ApiPath, Method extends "get" | "post" | "put" | "delete" = "get"> = ClientResponse<KosApi, Path, Method>;
87
+ /**
88
+ * Type alias for strongly-typed execution context.
89
+ * The context is automatically injected as the last parameter to methods
90
+ * decorated with @kosServiceRequest (without lifecycle) or @kosFuture.
91
+ *
92
+ * @example With @kosServiceRequest
93
+ * ```typescript
94
+ * @kosServiceRequest({
95
+ * path: PATH_DEVICE_STATUS,
96
+ * method: 'get'
97
+ * })
98
+ * async refreshStatus(
99
+ * ctx: ExecutionContext<typeof PATH_DEVICE_STATUS, 'get'>
100
+ * ): Promise<void> {
101
+ * const [error, response] = await ctx.$request({
102
+ * queryParams: { includeMetadata: true } // ← Fully typed!
103
+ * });
104
+ * if (error) throw new Error(error);
105
+ * this.status = response?.status;
106
+ * }
107
+ * ```
108
+ *
109
+ * @example With @kosFuture (context-based tracker)
110
+ * ```typescript
111
+ * @kosFuture({ trackerPolicy: 'context' })
112
+ * async loadData(filter: string, ctx: ExecutionContext): Promise<Data> {
113
+ * const data = await fetchData(filter);
114
+ * ctx.$tracker?.complete();
115
+ * return data;
116
+ * }
117
+ * ```
118
+ */
119
+ export type ExecutionContext<Path extends ApiPath = ApiPath, Method extends HttpMethod = "get"> = KosExecutionContext<paths, Path, Method>;
120
+ /**
121
+ * Typed decorator factory for @kosServiceRequest with KOS SDK OpenAPI types
122
+ *
123
+ * Provides full IntelliSense and type safety for path, query params, and body
124
+ * based on the KOS SDK OpenAPI schema.
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * import { kosServiceRequest, PATH_DEVICE_STATUS } from '../../utils/service';
129
+ *
130
+ * @kosServiceRequest({
131
+ * path: PATH_DEVICE_STATUS,
132
+ * method: 'get',
133
+ * lifecycle: DependencyLifecycle.LOAD,
134
+ * queryParams: { includeMetadata: true } // ← Fully typed!
135
+ * })
136
+ * private onStatusLoaded(): void {
137
+ * const response = getServiceResponse(this, PATH_DEVICE_STATUS, 'get');
138
+ * }
139
+ * ```
140
+ */
141
+ export declare function kosServiceRequest<Path extends ApiPath, Method extends HttpMethod = "get", Response = any, TransformedResponse = Response>(params: IKosServiceRequestParams<paths, Path, Method, Response, TransformedResponse>): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
86
142
  export default api;
87
143
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/models/utils/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwB,CAAC;AAElC,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC;AAC3B,MAAM,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;AAClC,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAE/C,MAAM,MAAM,WAAW,CACrB,IAAI,SAAS,OAAO,EACpB,MAAM,SAAS,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,IACtD,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEzC,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/models/utils/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwB,CAAC;AAElC,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC;AAC3B,MAAM,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;AAClC,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAE/C,MAAM,MAAM,WAAW,CACrB,IAAI,SAAS,OAAO,EACpB,MAAM,SAAS,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,IACtD,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,MAAM,gBAAgB,CAC1B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,MAAM,SAAS,UAAU,GAAG,KAAK,IAC/B,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,SAAS,OAAO,EACpB,MAAM,SAAS,UAAU,GAAG,KAAK,EACjC,QAAQ,GAAG,GAAG,EACd,mBAAmB,GAAG,QAAQ,EAE9B,MAAM,EAAE,wBAAwB,CAC9B,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,mBAAmB,CACpB,4FASF;AAED,eAAe,GAAG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kosdev-code/kos-ui-sdk",
3
- "version": "0.1.0-dev.5053",
3
+ "version": "0.1.0-dev.5070",
4
4
  "type": "module",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "kos": {
38
38
  "build": {
39
- "gitHash": "c98a36c0d6454b4648b4e9d014b0e57fcd1d39a1"
39
+ "gitHash": "1fbd6aa02edb150d22e92ca51b7052ea5cfd97c2"
40
40
  }
41
41
  }
42
42
  }