@more-ink/irt-edge 2.2.0 → 3.0.0
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/CHANGELOG.md +23 -0
- package/README.md +39 -0
- package/package.json +5 -2
- package/sdk/client.d.ts +48 -2
- package/sdk/client.d.ts.map +1 -1
- package/sdk/client.js +124 -1
- package/sdk/client.js.map +1 -1
- package/sdk/index.d.ts +2 -2
- package/sdk/index.d.ts.map +1 -1
- package/sdk/index.js +3 -1
- package/sdk/index.js.map +1 -1
- package/sdk/types.d.ts +57 -0
- package/sdk/types.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @more-ink/irt-edge
|
|
2
2
|
|
|
3
|
+
## 3.0.0
|
|
4
|
+
|
|
5
|
+
### Breaking Changes
|
|
6
|
+
|
|
7
|
+
- PTE routes moved from `/api/irt/pte/*` to `/api/pte/*`.
|
|
8
|
+
- PTE processing no longer relies on `X-IRT-Namespace` exam typing from headers.
|
|
9
|
+
- `PteClient` no longer inherits `IrtClient`.
|
|
10
|
+
- `createPteClient` no longer accepts constructor `ttp`; `ttp` is provided per practice payload.
|
|
11
|
+
- Generic IRT calls from `PteClient` now use `pte.irt(namespace)` explicitly.
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- PTE namespace resolution is now part-aware:
|
|
16
|
+
- Subjective parts write to one namespace (`pte-a` or `pte-c`).
|
|
17
|
+
- Objective parts mirror writes to both `pte-a` and `pte-c`.
|
|
18
|
+
- `ttp='u'` is normalized to `a`.
|
|
19
|
+
- Redis repositories now implement required bulk methods for user/item reads and writes.
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies:
|
|
24
|
+
- `@more-ink/irt-core@^2.0.0`
|
|
25
|
+
|
|
3
26
|
## 2.2.0
|
|
4
27
|
|
|
5
28
|
### Breaking Changes
|
package/README.md
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
- [Installation](#installation)
|
|
13
13
|
- [Quick Start](#quick-start)
|
|
14
14
|
- [Configuration](#configuration)
|
|
15
|
+
- [PTE Client](#pte-client)
|
|
15
16
|
- [API Methods](#api-methods)
|
|
16
17
|
- [Error Handling](#error-handling)
|
|
17
18
|
- [Best Practices](#best-practices)
|
|
@@ -76,6 +77,39 @@ interface IrtClientConfig {
|
|
|
76
77
|
|
|
77
78
|
The SDK sends the namespace as `X-IRT-Namespace` on every request; the server rejects calls without it.
|
|
78
79
|
|
|
80
|
+
### PTE Client
|
|
81
|
+
|
|
82
|
+
PTE routes are independent from generic IRT namespace headers.
|
|
83
|
+
Use `PteClient` and send `ttp` inside each practice payload.
|
|
84
|
+
|
|
85
|
+
PTE namespace rules:
|
|
86
|
+
- Subjective parts write to a single exam namespace: `pte-a` or `pte-c`
|
|
87
|
+
- Objective parts are mirrored to both `pte-a` and `pte-c`
|
|
88
|
+
- `ttp='u'` is normalized to `a` (UKVI follows Academic calibration)
|
|
89
|
+
- There is no standalone shared `pte` namespace
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
import { createPteClient } from '@more-ink/irt-edge'
|
|
93
|
+
|
|
94
|
+
const pte = createPteClient({
|
|
95
|
+
baseUrl: 'https://your-api.example.com',
|
|
96
|
+
headers: { Authorization: 'Bearer TOKEN' }, // Optional
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
await pte.recordPrac({
|
|
100
|
+
userId: 'u1',
|
|
101
|
+
itemId: 'i1',
|
|
102
|
+
ttp: 'a',
|
|
103
|
+
part: 'RA',
|
|
104
|
+
score: 0.8,
|
|
105
|
+
calcs: [{ type: 'fluency', score: 8, total: 10 }],
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
// Access generic IRT API when needed
|
|
109
|
+
const irtForPteA = pte.irt('pte-a')
|
|
110
|
+
const states = await irtForPteA.getUserStates('u1')
|
|
111
|
+
```
|
|
112
|
+
|
|
79
113
|
### API Methods
|
|
80
114
|
|
|
81
115
|
#### recordAnswer()
|
|
@@ -361,6 +395,11 @@ See `src/index.ts` for default IRT engine parameters (learning rates, selection
|
|
|
361
395
|
- `DELETE /api/irt/items/:itemId` - Delete an item and its per-skill calibrations
|
|
362
396
|
- `GET /api/irt/health` - Health check
|
|
363
397
|
|
|
398
|
+
**PTE Operations:**
|
|
399
|
+
- `POST /api/pte/record-prac` - Record one PTE practice using PTE namespace rules
|
|
400
|
+
- `POST /api/pte/init-item` - Reset item by resolved namespaces and replay practices
|
|
401
|
+
- `POST /api/pte/init-user` - Reset user by resolved namespaces and replay practices
|
|
402
|
+
|
|
364
403
|
**Aliyun FC Lifecycle:**
|
|
365
404
|
- `POST /initialize` - Instance startup (verifies Prisma DB and Redis connection)
|
|
366
405
|
- `GET /pre-stop` - Instance shutdown (closes Prisma DB and Redis)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@more-ink/irt-edge",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "IRT Edge API client SDK for JavaScript/TypeScript frontends.",
|
|
5
5
|
"main": "sdk/index.js",
|
|
6
6
|
"types": "sdk/index.d.ts",
|
|
@@ -34,7 +34,10 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@hono/node-server": "^1.19.6",
|
|
37
|
-
"@more-ink/irt-core": "^
|
|
37
|
+
"@more-ink/irt-core": "^2.0.0",
|
|
38
|
+
"@more-ink/pte-config": "^1.31.1",
|
|
39
|
+
"@more-ink/pte-mockmodel": "^2.0.6",
|
|
40
|
+
"@more-ink/scoring-types": "^1.8.5",
|
|
38
41
|
"@prisma/adapter-pg": "^7.1.0",
|
|
39
42
|
"@prisma/client": "^7.1.0",
|
|
40
43
|
"dayjs": "^1.11.19",
|
package/sdk/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IrtClientConfig, RecordAnswerRequest, RecordAnswerResponse, RecordAnswerOnlyResponse, RecordMultiSkillAnswersRequest, RecordMultiSkillAnswersResponse, SelectNextItemRequest, SelectNextItemResponse, UserStateResponse, UserStatesResponse, ItemStateResponse, ItemStatesResponse, HealthResponse, DeleteUserResponse, DeleteItemResponse, BulkUpdateEvent, BulkUpdateResponse, ResetUserResponse, ResetItemResponse, BulkUpdateRequest } from './types';
|
|
1
|
+
import type { IrtClientConfig, RecordAnswerRequest, RecordAnswerResponse, RecordAnswerOnlyResponse, RecordMultiSkillAnswersRequest, RecordMultiSkillAnswersResponse, SelectNextItemRequest, SelectNextItemResponse, UserStateResponse, UserStatesResponse, ItemStateResponse, ItemStatesResponse, HealthResponse, DeleteUserResponse, DeleteItemResponse, BulkUpdateEvent, BulkUpdateResponse, ResetUserResponse, ResetItemResponse, BulkUpdateRequest, PteClientConfig, RecordPtePracRequest, InitPteItemRequest, InitPteUserRequest, PtePracResponse, PteInitResponse } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* IRT Edge API Client
|
|
4
4
|
*
|
|
@@ -43,7 +43,7 @@ export declare class IrtClient<TSkillId = string> {
|
|
|
43
43
|
/**
|
|
44
44
|
* Internal fetch wrapper with timeout and error handling
|
|
45
45
|
*/
|
|
46
|
-
|
|
46
|
+
protected request<T>(path: string, options?: RequestInit): Promise<T>;
|
|
47
47
|
/**
|
|
48
48
|
* Record a user response and get the next recommended item
|
|
49
49
|
*
|
|
@@ -163,4 +163,50 @@ export declare class IrtClient<TSkillId = string> {
|
|
|
163
163
|
* ```
|
|
164
164
|
*/
|
|
165
165
|
export declare function createIrtClient<TSkillId = string>(config: IrtClientConfig): IrtClient<TSkillId>;
|
|
166
|
+
/**
|
|
167
|
+
* PTE Client — standalone client for PTE-specific routes.
|
|
168
|
+
*
|
|
169
|
+
* It can still access generic IRT endpoints by namespace via `irt(namespace)`.
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```ts
|
|
173
|
+
* const pte = createPteClient({
|
|
174
|
+
* baseUrl: 'https://your-api.example.com',
|
|
175
|
+
* headers: { Authorization: 'Bearer TOKEN' },
|
|
176
|
+
* })
|
|
177
|
+
*
|
|
178
|
+
* await pte.recordPrac({ userId: 'u1', itemId: 'i1', ttp: 'a', part: 'RA', score: 0.8, calcs: [...] })
|
|
179
|
+
* await pte.initItem({ itemId: 'i1', practices: [...] })
|
|
180
|
+
* await pte.initUser({ userId: 'u1', practices: [...] })
|
|
181
|
+
*
|
|
182
|
+
* // Access base IRT methods in a chosen namespace
|
|
183
|
+
* await pte.irt('pte-a').getUserStates('u1')
|
|
184
|
+
* ```
|
|
185
|
+
*/
|
|
186
|
+
export declare class PteClient {
|
|
187
|
+
private readonly baseUrl;
|
|
188
|
+
private readonly headers;
|
|
189
|
+
private readonly timeout;
|
|
190
|
+
private readonly irtClients;
|
|
191
|
+
constructor(config: PteClientConfig);
|
|
192
|
+
/**
|
|
193
|
+
* Access generic IRT endpoints through a namespace-specific IrtClient instance.
|
|
194
|
+
* Client instances are cached per namespace.
|
|
195
|
+
*/
|
|
196
|
+
irt<TSkillId = string>(namespace: string): IrtClient<TSkillId>;
|
|
197
|
+
private request;
|
|
198
|
+
/** Record a single PTE practice (L1-L5 aggregation happens server-side). */
|
|
199
|
+
recordPrac(params: RecordPtePracRequest): Promise<PtePracResponse>;
|
|
200
|
+
/** Cold-start an item: reset + replay practices in time-ascending order. */
|
|
201
|
+
initItem(params: InitPteItemRequest): Promise<PteInitResponse>;
|
|
202
|
+
/** Cold-start a user: reset + replay practices in time-ascending order. */
|
|
203
|
+
initUser(params: InitPteUserRequest): Promise<PteInitResponse>;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Factory function to create a PTE client instance.
|
|
207
|
+
*
|
|
208
|
+
* @param config - PTE client configuration
|
|
209
|
+
* @returns Configured PTE client with PTE routes plus namespace-based IRT access
|
|
210
|
+
*/
|
|
211
|
+
export declare function createPteClient(config: PteClientConfig): PteClient;
|
|
166
212
|
//# sourceMappingURL=client.d.ts.map
|
package/sdk/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/sdk/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,EAC/B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/sdk/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,EAC/B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EAChB,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,SAAS,CAAC,QAAQ,GAAG,MAAM;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,MAAM,EAAE,eAAe;IAenC;;OAEG;cACa,OAAO,CAAC,CAAC,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,CAAC,CAAC;IA6Cb;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAOlG;;;;;OAKG;IACG,uBAAuB,CAC3B,MAAM,EAAE,8BAA8B,CAAC,QAAQ,CAAC,GAC/C,OAAO,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;IAOrD;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAO1G;;;;;OAKG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAOxG;;;;;;OAMG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAI3F;;;;;OAKG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAI1E;;;;;;OAMG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAI3F;;;;;OAKG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAI1E;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM7D;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAM3D;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM7D;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAM3D;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,EACnC,aAAa,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,GAC3D,OAAO,CAAC,kBAAkB,CAAC;IAO9B;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,EACnC,aAAa,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,GAC3D,OAAO,CAAC,kBAAkB,CAAC;IAO9B;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;CAGxC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,CAE/F;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;gBAEnD,MAAM,EAAE,eAAe;IASnC;;;OAGG;IACH,GAAG,CAAC,QAAQ,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;YAqBhD,OAAO;IA8CrB,4EAA4E;IACtE,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAOxE,4EAA4E;IACtE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAOpE,2EAA2E;IACrE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;CAMrE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAElE"}
|
package/sdk/client.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IrtClient = void 0;
|
|
3
|
+
exports.PteClient = exports.IrtClient = void 0;
|
|
4
4
|
exports.createIrtClient = createIrtClient;
|
|
5
|
+
exports.createPteClient = createPteClient;
|
|
5
6
|
/**
|
|
6
7
|
* IRT Edge API Client
|
|
7
8
|
*
|
|
@@ -273,4 +274,126 @@ exports.IrtClient = IrtClient;
|
|
|
273
274
|
function createIrtClient(config) {
|
|
274
275
|
return new IrtClient(config);
|
|
275
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* PTE Client — standalone client for PTE-specific routes.
|
|
279
|
+
*
|
|
280
|
+
* It can still access generic IRT endpoints by namespace via `irt(namespace)`.
|
|
281
|
+
*
|
|
282
|
+
* @example
|
|
283
|
+
* ```ts
|
|
284
|
+
* const pte = createPteClient({
|
|
285
|
+
* baseUrl: 'https://your-api.example.com',
|
|
286
|
+
* headers: { Authorization: 'Bearer TOKEN' },
|
|
287
|
+
* })
|
|
288
|
+
*
|
|
289
|
+
* await pte.recordPrac({ userId: 'u1', itemId: 'i1', ttp: 'a', part: 'RA', score: 0.8, calcs: [...] })
|
|
290
|
+
* await pte.initItem({ itemId: 'i1', practices: [...] })
|
|
291
|
+
* await pte.initUser({ userId: 'u1', practices: [...] })
|
|
292
|
+
*
|
|
293
|
+
* // Access base IRT methods in a chosen namespace
|
|
294
|
+
* await pte.irt('pte-a').getUserStates('u1')
|
|
295
|
+
* ```
|
|
296
|
+
*/
|
|
297
|
+
class PteClient {
|
|
298
|
+
baseUrl;
|
|
299
|
+
headers;
|
|
300
|
+
timeout;
|
|
301
|
+
irtClients = new Map();
|
|
302
|
+
constructor(config) {
|
|
303
|
+
this.baseUrl = config.baseUrl.replace(/\/$/, '');
|
|
304
|
+
this.headers = {
|
|
305
|
+
'Content-Type': 'application/json',
|
|
306
|
+
...config.headers,
|
|
307
|
+
};
|
|
308
|
+
this.timeout = config.timeout ?? 10000;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Access generic IRT endpoints through a namespace-specific IrtClient instance.
|
|
312
|
+
* Client instances are cached per namespace.
|
|
313
|
+
*/
|
|
314
|
+
irt(namespace) {
|
|
315
|
+
const normalized = namespace.trim();
|
|
316
|
+
if (!normalized) {
|
|
317
|
+
throw new Error('PteClient.irt(namespace) requires a non-empty namespace');
|
|
318
|
+
}
|
|
319
|
+
const cached = this.irtClients.get(normalized);
|
|
320
|
+
if (cached) {
|
|
321
|
+
return cached;
|
|
322
|
+
}
|
|
323
|
+
const client = createIrtClient({
|
|
324
|
+
namespace: normalized,
|
|
325
|
+
baseUrl: this.baseUrl,
|
|
326
|
+
headers: this.headers,
|
|
327
|
+
timeout: this.timeout,
|
|
328
|
+
});
|
|
329
|
+
this.irtClients.set(normalized, client);
|
|
330
|
+
return client;
|
|
331
|
+
}
|
|
332
|
+
async request(path, options = {}) {
|
|
333
|
+
const url = `${this.baseUrl}${path}`;
|
|
334
|
+
const controller = new AbortController();
|
|
335
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
336
|
+
try {
|
|
337
|
+
const response = await fetch(url, {
|
|
338
|
+
...options,
|
|
339
|
+
headers: {
|
|
340
|
+
...this.headers,
|
|
341
|
+
...options.headers,
|
|
342
|
+
},
|
|
343
|
+
signal: controller.signal,
|
|
344
|
+
});
|
|
345
|
+
clearTimeout(timeoutId);
|
|
346
|
+
if (!response.ok) {
|
|
347
|
+
const error = await response.json().catch(() => ({ error: 'Unknown error' }));
|
|
348
|
+
throw new Error(error.error || error.message || `HTTP ${response.status}`);
|
|
349
|
+
}
|
|
350
|
+
const data = await response.json();
|
|
351
|
+
if ('success' in data && data.success && 'data' in data) {
|
|
352
|
+
return data.data;
|
|
353
|
+
}
|
|
354
|
+
return data;
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
clearTimeout(timeoutId);
|
|
358
|
+
if (error instanceof Error) {
|
|
359
|
+
if (error.name === 'AbortError') {
|
|
360
|
+
throw new Error(`Request timeout after ${this.timeout}ms`);
|
|
361
|
+
}
|
|
362
|
+
throw error;
|
|
363
|
+
}
|
|
364
|
+
throw new Error('Unknown error occurred');
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
/** Record a single PTE practice (L1-L5 aggregation happens server-side). */
|
|
368
|
+
async recordPrac(params) {
|
|
369
|
+
return this.request('/api/pte/record-prac', {
|
|
370
|
+
method: 'POST',
|
|
371
|
+
body: JSON.stringify(params),
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
/** Cold-start an item: reset + replay practices in time-ascending order. */
|
|
375
|
+
async initItem(params) {
|
|
376
|
+
return this.request('/api/pte/init-item', {
|
|
377
|
+
method: 'POST',
|
|
378
|
+
body: JSON.stringify(params),
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
/** Cold-start a user: reset + replay practices in time-ascending order. */
|
|
382
|
+
async initUser(params) {
|
|
383
|
+
return this.request('/api/pte/init-user', {
|
|
384
|
+
method: 'POST',
|
|
385
|
+
body: JSON.stringify(params),
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
exports.PteClient = PteClient;
|
|
390
|
+
/**
|
|
391
|
+
* Factory function to create a PTE client instance.
|
|
392
|
+
*
|
|
393
|
+
* @param config - PTE client configuration
|
|
394
|
+
* @returns Configured PTE client with PTE routes plus namespace-based IRT access
|
|
395
|
+
*/
|
|
396
|
+
function createPteClient(config) {
|
|
397
|
+
return new PteClient(config);
|
|
398
|
+
}
|
|
276
399
|
//# sourceMappingURL=client.js.map
|
package/sdk/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/sdk/client.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/sdk/client.ts"],"names":[],"mappings":"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"}
|
package/sdk/index.d.ts
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
* })
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
|
-
export { IrtClient, createIrtClient } from './client';
|
|
48
|
-
export type { IrtClientConfig, RecordAnswerRequest, RecordAnswerResponse, RecordAnswerOnlyResponse, RecordMultiSkillAnswersRequest, RecordMultiSkillAnswersResponse, SelectNextItemRequest, SelectNextItemResponse, UserStateResponse, UserStatesResponse, ItemStateResponse, ItemStatesResponse, HealthResponse, ApiResponse, GetUserStateRequest, GetUserStatesRequest, GetItemStateRequest, GetItemStatesRequest, DeleteUserResponse, DeleteItemResponse, ResetUserResponse, ResetItemResponse, BulkUpdateEvent, BulkUpdateRequest, BulkUpdateResponse, } from './types';
|
|
47
|
+
export { IrtClient, createIrtClient, PteClient, createPteClient } from './client';
|
|
48
|
+
export type { IrtClientConfig, RecordAnswerRequest, RecordAnswerResponse, RecordAnswerOnlyResponse, RecordMultiSkillAnswersRequest, RecordMultiSkillAnswersResponse, SelectNextItemRequest, SelectNextItemResponse, UserStateResponse, UserStatesResponse, ItemStateResponse, ItemStatesResponse, HealthResponse, ApiResponse, GetUserStateRequest, GetUserStatesRequest, GetItemStateRequest, GetItemStatesRequest, DeleteUserResponse, DeleteItemResponse, ResetUserResponse, ResetItemResponse, BulkUpdateEvent, BulkUpdateRequest, BulkUpdateResponse, PteClientConfig, PteTestType, RecordPtePracRequest, InitPteItemRequest, InitPteUserRequest, PtePracResponse, PteInitResponse, } from './types';
|
|
49
49
|
export type { UserSkillState, ItemWithMetadata, UpdateOptions, NextItemOptions, } from '@more-ink/irt-core';
|
|
50
50
|
//# sourceMappingURL=index.d.ts.map
|
package/sdk/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AACjF,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,EAC/B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,SAAS,CAAA;AAGhB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,oBAAoB,CAAA"}
|
package/sdk/index.js
CHANGED
|
@@ -46,8 +46,10 @@
|
|
|
46
46
|
* ```
|
|
47
47
|
*/
|
|
48
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
-
exports.createIrtClient = exports.IrtClient = void 0;
|
|
49
|
+
exports.createPteClient = exports.PteClient = exports.createIrtClient = exports.IrtClient = void 0;
|
|
50
50
|
var client_1 = require("./client");
|
|
51
51
|
Object.defineProperty(exports, "IrtClient", { enumerable: true, get: function () { return client_1.IrtClient; } });
|
|
52
52
|
Object.defineProperty(exports, "createIrtClient", { enumerable: true, get: function () { return client_1.createIrtClient; } });
|
|
53
|
+
Object.defineProperty(exports, "PteClient", { enumerable: true, get: function () { return client_1.PteClient; } });
|
|
54
|
+
Object.defineProperty(exports, "createPteClient", { enumerable: true, get: function () { return client_1.createPteClient; } });
|
|
53
55
|
//# sourceMappingURL=index.js.map
|
package/sdk/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/sdk/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/sdk/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;;;AAEH,mCAAiF;AAAxE,mGAAA,SAAS,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,yGAAA,eAAe,OAAA"}
|
package/sdk/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Type definitions for the IRT Edge API SDK
|
|
3
3
|
*/
|
|
4
4
|
import type { UserSkillState, ItemWithMetadata, UpdateOptions, NextItemOptions, MultiSkillScore, MultiSkillRecordResult } from '@more-ink/irt-core';
|
|
5
|
+
import type { ITestType } from '@more-ink/pte-config/dist/exps';
|
|
5
6
|
/**
|
|
6
7
|
* Payload for recording a learner's response to an item.
|
|
7
8
|
* @template TSkillId Identifier type for skills (defaults to string).
|
|
@@ -267,4 +268,60 @@ export interface IrtClientConfig {
|
|
|
267
268
|
*/
|
|
268
269
|
timeout?: number;
|
|
269
270
|
}
|
|
271
|
+
/** PTE test type identifier. */
|
|
272
|
+
export type PteTestType = ITestType;
|
|
273
|
+
/**
|
|
274
|
+
* Configuration for the PTE client factory.
|
|
275
|
+
*/
|
|
276
|
+
export interface PteClientConfig {
|
|
277
|
+
/** Base URL of the IRT Edge API server. */
|
|
278
|
+
baseUrl: string;
|
|
279
|
+
/** Optional headers (e.g. auth tokens). */
|
|
280
|
+
headers?: Record<string, string>;
|
|
281
|
+
/** Request timeout in milliseconds. @default 10000 */
|
|
282
|
+
timeout?: number;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Request payload for recording a single PTE practice.
|
|
286
|
+
*/
|
|
287
|
+
export interface RecordPtePracRequest {
|
|
288
|
+
userId: string;
|
|
289
|
+
itemId: string;
|
|
290
|
+
/** 'u' is accepted and normalized server-side to Academic ('a'). */
|
|
291
|
+
ttp: PteTestType;
|
|
292
|
+
part: string;
|
|
293
|
+
/** Overall score 0-1. */
|
|
294
|
+
score: number;
|
|
295
|
+
/** Per-dimension scores. */
|
|
296
|
+
calcs?: Array<{
|
|
297
|
+
type: string;
|
|
298
|
+
score: number;
|
|
299
|
+
total: number;
|
|
300
|
+
}>;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Request payload for PTE init-item (cold start an item).
|
|
304
|
+
*/
|
|
305
|
+
export interface InitPteItemRequest {
|
|
306
|
+
itemId: string;
|
|
307
|
+
/** Practices in time-ascending order. */
|
|
308
|
+
practices: Omit<RecordPtePracRequest, 'itemId'>[];
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Request payload for PTE init-user (cold start a user).
|
|
312
|
+
*/
|
|
313
|
+
export interface InitPteUserRequest {
|
|
314
|
+
userId: string;
|
|
315
|
+
/** Practices in time-ascending order. */
|
|
316
|
+
practices: Omit<RecordPtePracRequest, 'userId'>[];
|
|
317
|
+
}
|
|
318
|
+
/** Response from PTE record-prac. */
|
|
319
|
+
export interface PtePracResponse {
|
|
320
|
+
success: boolean;
|
|
321
|
+
}
|
|
322
|
+
/** Response from PTE init-item / init-user. */
|
|
323
|
+
export interface PteInitResponse {
|
|
324
|
+
success: boolean;
|
|
325
|
+
processed: number;
|
|
326
|
+
}
|
|
270
327
|
//# sourceMappingURL=types.d.ts.map
|
package/sdk/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/sdk/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,sBAAsB,EACvB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/sdk/types.ts"],"names":[],"mappings":"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"}
|