@superbuilders/primer-tives 0.0.3 → 0.0.4

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 (42) hide show
  1. package/README.md +40 -46
  2. package/dist/choice-state.d.ts +8 -0
  3. package/dist/choice-state.d.ts.map +1 -0
  4. package/dist/client.d.ts +2 -8
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/consumed.d.ts +6 -0
  7. package/dist/consumed.d.ts.map +1 -0
  8. package/dist/errors.d.ts +2 -1
  9. package/dist/errors.d.ts.map +1 -1
  10. package/dist/extended-text-state.d.ts +8 -0
  11. package/dist/extended-text-state.d.ts.map +1 -0
  12. package/dist/feedback-state.d.ts +7 -0
  13. package/dist/feedback-state.d.ts.map +1 -0
  14. package/dist/index.d.ts +9 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +573 -0
  17. package/dist/index.js.map +21 -0
  18. package/dist/observation-state.d.ts +6 -0
  19. package/dist/observation-state.d.ts.map +1 -0
  20. package/dist/pci-state.d.ts +6 -0
  21. package/dist/pci-state.d.ts.map +1 -0
  22. package/dist/session-context.d.ts +24 -0
  23. package/dist/session-context.d.ts.map +1 -0
  24. package/dist/session.d.ts +16 -0
  25. package/dist/session.d.ts.map +1 -0
  26. package/dist/text-entry-state.d.ts +8 -0
  27. package/dist/text-entry-state.d.ts.map +1 -0
  28. package/dist/transport.d.ts +46 -0
  29. package/dist/transport.d.ts.map +1 -0
  30. package/dist/types.d.ts +5 -2
  31. package/dist/types.d.ts.map +1 -1
  32. package/package.json +4 -20
  33. package/dist/client.js +0 -400
  34. package/dist/client.js.map +0 -11
  35. package/dist/content.js +0 -27
  36. package/dist/content.js.map +0 -10
  37. package/dist/errors.js +0 -36
  38. package/dist/errors.js.map +0 -10
  39. package/dist/pci.js +0 -2
  40. package/dist/pci.js.map +0 -9
  41. package/dist/types.js +0 -2
  42. package/dist/types.js.map +0 -9
@@ -0,0 +1,6 @@
1
+ import type { SessionContext } from "./session-context";
2
+ import type { PciId } from "./pci";
3
+ import type { PrimerState, RendererStimulus } from "./types";
4
+ declare function observationState<Pcis extends PciId>(ctx: SessionContext<Pcis>, stimulus: RendererStimulus | null): PrimerState<Pcis>;
5
+ export { observationState };
6
+ //# sourceMappingURL=observation-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observation-state.d.ts","sourceRoot":"","sources":["../src/observation-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEtF,iBAAS,gBAAgB,CAAC,IAAI,SAAS,KAAK,EAC3C,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EACzB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,GAC/B,WAAW,CAAC,IAAI,CAAC,CAenB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { PciId } from "./pci";
2
+ import type { SessionContext } from "./session-context";
3
+ import type { PciInteraction, PciInteractionState, RendererStimulus } from "./types";
4
+ declare function pciInteractionState<Pcis extends PciId>(ctx: SessionContext<Pcis>, stimulus: RendererStimulus | null, interaction: PciInteraction<Pcis>): PciInteractionState<Pcis>;
5
+ export { pciInteractionState };
6
+ //# sourceMappingURL=pci-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pci-state.d.ts","sourceRoot":"","sources":["../src/pci-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,iCAAiC,CAAA;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAe,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAE3H,iBAAS,mBAAmB,CAAC,IAAI,SAAS,KAAK,EAC9C,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EACzB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,EACjC,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,GAC/B,mBAAmB,CAAC,IAAI,CAAC,CAkC3B;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
@@ -0,0 +1,24 @@
1
+ import type { PciId } from "./pci";
2
+ import type { ErroredState, PrimerState, RendererSubmission } from "./types";
3
+ interface PrimerLogger {
4
+ debug(message: string, attributes?: Record<string, unknown>): void;
5
+ info(message: string, attributes?: Record<string, unknown>): void;
6
+ warn(message: string, attributes?: Record<string, unknown>): void;
7
+ error(message: string, attributes?: Record<string, unknown>): void;
8
+ }
9
+ type TransitionPhase = "observation" | "interaction" | "timeout";
10
+ type WireIntent<Pcis extends PciId = PciId> = {
11
+ kind: "observation";
12
+ } | {
13
+ kind: "interaction";
14
+ submission: RendererSubmission<Pcis>;
15
+ } | {
16
+ kind: "timeout";
17
+ };
18
+ interface SessionContext<Pcis extends PciId = PciId> {
19
+ readonly log: PrimerLogger | undefined;
20
+ execute(intent: WireIntent<Pcis>, phase: TransitionPhase): Promise<PrimerState<Pcis>>;
21
+ errored(error: Error, failedPhase: TransitionPhase, intent: WireIntent<Pcis>): ErroredState<Pcis>;
22
+ }
23
+ export type { PrimerLogger, SessionContext, TransitionPhase, WireIntent };
24
+ //# sourceMappingURL=session-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../src/session-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAEtG,UAAU,YAAY;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAClE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACjE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACjE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAClE;AAED,KAAK,eAAe,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,CAAA;AAEhE,KAAK,UAAU,CAAC,IAAI,SAAS,KAAK,GAAG,KAAK,IACvC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAEtB,UAAU,cAAc,CAAC,IAAI,SAAS,KAAK,GAAG,KAAK;IAClD,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,CAAA;IACtC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IACrF,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;CACjG;AAED,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { PciId } from "./pci";
2
+ import type { PrimerLogger, TransitionPhase, WireIntent } from "./session-context";
3
+ import type { TransportResult, WireRequestBody } from "./transport";
4
+ import type { PrimerState } from "./types";
5
+ interface SessionConfig<Pcis extends PciId = PciId> {
6
+ readonly studentId: string;
7
+ readonly supportedPcis: readonly Pcis[];
8
+ readonly log: PrimerLogger | undefined;
9
+ readonly transport: (body: WireRequestBody<Pcis>) => Promise<TransportResult<Pcis>>;
10
+ }
11
+ declare function makeSession<Pcis extends PciId>(sc: SessionConfig<Pcis>): {
12
+ execute: (intent: WireIntent<Pcis>, phase: TransitionPhase) => Promise<PrimerState<Pcis>>;
13
+ };
14
+ export { makeSession };
15
+ export type { SessionConfig };
16
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAkB,eAAe,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AAC5H,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAc,MAAM,uCAAuC,CAAA;AACzG,OAAO,KAAK,EAEX,WAAW,EAGX,MAAM,mCAAmC,CAAA;AAQ1C,UAAU,aAAa,CAAC,IAAI,SAAS,KAAK,GAAG,KAAK;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,SAAS,IAAI,EAAE,CAAA;IACvC,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;CACnF;AAED,iBAAS,WAAW,CAAC,IAAI,SAAS,KAAK,EAAE,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC;sBA8CtD,UAAU,CAAC,IAAI,CAAC,SACjB,eAAe,KACpB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;EA0E7B;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AACtB,YAAY,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { SessionContext } from "./session-context";
2
+ import type { PciId } from "./pci";
3
+ import type { PrimerState, RendererInteraction, RendererStimulus } from "./types";
4
+ declare function textEntryState<Pcis extends PciId>(ctx: SessionContext<Pcis>, stimulus: RendererStimulus | null, interaction: Extract<RendererInteraction<Pcis>, {
5
+ type: "text-entry";
6
+ }>): PrimerState<Pcis>;
7
+ export { textEntryState };
8
+ //# sourceMappingURL=text-entry-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-entry-state.d.ts","sourceRoot":"","sources":["../src/text-entry-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAE3G,iBAAS,cAAc,CAAC,IAAI,SAAS,KAAK,EACzC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EACzB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,EACjC,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,GACrE,WAAW,CAAC,IAAI,CAAC,CA4BnB;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,46 @@
1
+ import type { PciId } from "./pci";
2
+ import type { SessionContext, WireIntent } from "./session-context";
3
+ import type { ContentInline } from "./content";
4
+ import type { RendererCorrectAnswer, RendererInteraction, RendererStimulus, RendererSubmission } from "./types";
5
+ declare const ADVANCE_PATH = "/api/v0/advance";
6
+ type WireResult<Pcis extends PciId = PciId> = {
7
+ outcome: "advanced";
8
+ stimulus: RendererStimulus | null;
9
+ interaction: RendererInteraction<Pcis> | null;
10
+ } | {
11
+ outcome: "submitted";
12
+ stimulus: RendererStimulus | null;
13
+ interaction: RendererInteraction<Pcis>;
14
+ submission: RendererSubmission<Pcis>;
15
+ isCorrect: boolean;
16
+ feedbackContent: ContentInline[];
17
+ correctAnswer: RendererCorrectAnswer | null;
18
+ } | {
19
+ outcome: "completed";
20
+ };
21
+ interface WireRequestBody<Pcis extends PciId = PciId> {
22
+ studentId: string;
23
+ supportedPcis: readonly PciId[];
24
+ intent: WireIntent<Pcis>;
25
+ }
26
+ type TransportResult<Pcis extends PciId = PciId> = {
27
+ ok: true;
28
+ data: WireResult<Pcis>;
29
+ } | {
30
+ ok: false;
31
+ error: Error;
32
+ };
33
+ interface TransportConfig<Pcis extends PciId = PciId> {
34
+ readonly publishableKey: string;
35
+ readonly supportedPcis: readonly Pcis[];
36
+ readonly origin?: string;
37
+ readonly fetch?: typeof globalThis.fetch;
38
+ readonly abort?: AbortController;
39
+ readonly log: SessionContext["log"];
40
+ }
41
+ declare function httpSentinel(status: number): Error;
42
+ declare function isAbortError(err: unknown): boolean;
43
+ declare function createTransport<Pcis extends PciId>(tc: TransportConfig<Pcis>): (body: WireRequestBody<Pcis>) => Promise<TransportResult<Pcis>>;
44
+ export { ADVANCE_PATH, createTransport, httpSentinel, isAbortError };
45
+ export type { TransportConfig, TransportResult, WireRequestBody, WireResult };
46
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAEzI,QAAA,MAAM,YAAY,oBAAoB,CAAA;AAEtC,KAAK,UAAU,CAAC,IAAI,SAAS,KAAK,GAAG,KAAK,IACvC;IACA,OAAO,EAAE,UAAU,CAAA;IACnB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACjC,WAAW,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC5C,GACD;IACA,OAAO,EAAE,WAAW,CAAA;IACpB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACjC,WAAW,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACtC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACpC,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,aAAa,EAAE,CAAA;IAChC,aAAa,EAAE,qBAAqB,GAAG,IAAI,CAAA;CAC1C,GACD;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAA;AAE3B,UAAU,eAAe,CAAC,IAAI,SAAS,KAAK,GAAG,KAAK;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,SAAS,KAAK,EAAE,CAAA;IAC/B,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;CACxB;AAED,KAAK,eAAe,CAAC,IAAI,SAAS,KAAK,GAAG,KAAK,IAC5C;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAE9B,UAAU,eAAe,CAAC,IAAI,SAAS,KAAK,GAAG,KAAK;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,IAAI,EAAE,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;CACnC;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CA0B3C;AAED,iBAAS,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAQ3C;AAED,iBAAS,eAAe,CAAC,IAAI,SAAS,KAAK,EAAE,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,UAWtC,eAAe,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CA+ErF;AAED,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,CAAA;AACpE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,CAAA"}
package/dist/types.d.ts CHANGED
@@ -173,6 +173,9 @@ interface FeedbackState<Pcis extends PciId = PciId> extends NonSerializable {
173
173
  interface CompletedState extends NonSerializable {
174
174
  readonly phase: "completed";
175
175
  }
176
+ interface ConsumedState extends NonSerializable {
177
+ readonly phase: "consumed";
178
+ }
176
179
  interface ErroredState<Pcis extends PciId = PciId> extends NonSerializable {
177
180
  readonly phase: "errored";
178
181
  readonly error: Error;
@@ -183,11 +186,11 @@ interface FatalState extends NonSerializable {
183
186
  readonly phase: "fatal";
184
187
  readonly error: Error;
185
188
  }
186
- type PrimerState<Pcis extends PciId = PciId> = ObservationState<Pcis> | InteractionState<Pcis> | FeedbackState<Pcis> | CompletedState | ErroredState<Pcis> | FatalState;
189
+ type PrimerState<Pcis extends PciId = PciId> = ObservationState<Pcis> | InteractionState<Pcis> | FeedbackState<Pcis> | CompletedState | ConsumedState | ErroredState<Pcis> | FatalState;
187
190
  interface PciRenderProps<K extends PciId> {
188
191
  properties: PciProps<K>;
189
192
  submitted: boolean;
190
193
  onValueChange: (value: PciValue<K> | null) => void;
191
194
  }
192
- export type { BodyStimulus, ChoiceState, CompletedState, ErroredState, ExtendedTextMultipleState, ExtendedTextSingleState, ExtendedTextState, FatalState, FeedbackState, ImageStimulus, InteractionState, NonSerializable, ObservationState, PciInteraction, PciInteractionState, PciRenderProps, PciSubmission, PrimerState, RendererChoice, RendererCorrectAnswer, RendererCorrectScalarValue, RendererInteraction, RendererStimulus, RendererSubmission, TextEntryState };
195
+ export type { BodyStimulus, ChoiceState, CompletedState, ConsumedState, ErroredState, ExtendedTextMultipleState, ExtendedTextSingleState, ExtendedTextState, FatalState, FeedbackState, ImageStimulus, InteractionState, NonSerializable, ObservationState, PciInteraction, PciInteractionState, PciRenderProps, PciSubmission, PrimerState, RendererChoice, RendererCorrectAnswer, RendererCorrectScalarValue, RendererInteraction, RendererStimulus, RendererSubmission, TextEntryState };
193
196
  //# sourceMappingURL=types.d.ts.map
@@ -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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"}
package/package.json CHANGED
@@ -1,27 +1,11 @@
1
1
  {
2
2
  "name": "@superbuilders/primer-tives",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "type": "module",
5
5
  "exports": {
6
- "./client": {
7
- "types": "./dist/client.d.ts",
8
- "import": "./dist/client.js"
9
- },
10
- "./types": {
11
- "types": "./dist/types.d.ts",
12
- "import": "./dist/types.js"
13
- },
14
- "./content": {
15
- "types": "./dist/content.d.ts",
16
- "import": "./dist/content.js"
17
- },
18
- "./errors": {
19
- "types": "./dist/errors.d.ts",
20
- "import": "./dist/errors.js"
21
- },
22
- "./pci": {
23
- "types": "./dist/pci.d.ts",
24
- "import": "./dist/pci.js"
6
+ ".": {
7
+ "types": "./dist/index.d.ts",
8
+ "import": "./dist/index.js"
25
9
  }
26
10
  },
27
11
  "files": [
package/dist/client.js DELETED
@@ -1,400 +0,0 @@
1
- // src/errors.ts
2
- import * as errors from "@superbuilders/errors";
3
- var ErrNetwork = errors.new("network");
4
- var ErrJsonParse = errors.new("json parse");
5
- var ErrUnsupportedPci = errors.new("unsupported pci");
6
- var ErrInvalidPublishableKey = errors.new("invalid publishable key");
7
- var ErrBadRequest = errors.new("bad request");
8
- var ErrServerError = errors.new("server error");
9
- var ErrTimeout = errors.new("timeout");
10
- var ErrForbidden = errors.new("forbidden");
11
- var ErrNotFound = errors.new("not found");
12
- var ErrConflict = errors.new("conflict");
13
- var ErrRateLimited = errors.new("rate limited");
14
- var ErrServiceUnavailable = errors.new("service unavailable");
15
- var ErrNotSerializable = errors.new("PrimerState is live in-memory state and must not be serialized or stored");
16
- var ErrInvalidSubmission = errors.new("invalid submission");
17
- var ErrMalformedPublishableKey = errors.new("malformed publishable key");
18
- // src/client.ts
19
- import * as errors2 from "@superbuilders/errors";
20
- var DEFAULT_ORIGIN = "https://sb-primer.vercel.app";
21
- var ADVANCE_PATH = "/api/v0/advance";
22
- function poisonToJSON() {
23
- throw ErrNotSerializable;
24
- }
25
- function httpSentinel(status) {
26
- if (status === 400) {
27
- return ErrBadRequest;
28
- }
29
- if (status === 401) {
30
- return ErrInvalidPublishableKey;
31
- }
32
- if (status === 403) {
33
- return ErrForbidden;
34
- }
35
- if (status === 404) {
36
- return ErrNotFound;
37
- }
38
- if (status === 409) {
39
- return ErrConflict;
40
- }
41
- if (status === 422) {
42
- return ErrUnsupportedPci;
43
- }
44
- if (status === 429) {
45
- return ErrRateLimited;
46
- }
47
- if (status === 502 || status === 503 || status === 504) {
48
- return ErrServiceUnavailable;
49
- }
50
- return ErrServerError;
51
- }
52
- function isAbortError(err) {
53
- if (err instanceof DOMException && err.name === "AbortError") {
54
- return true;
55
- }
56
- if (err instanceof DOMException && err.name === "TimeoutError") {
57
- return true;
58
- }
59
- return false;
60
- }
61
- var PK_PREFIX = "pk_";
62
- function create(config) {
63
- const configFetch = config.fetch;
64
- const fetchFn = configFetch ? configFetch : globalThis.fetch;
65
- const log = config.logger;
66
- if (!config.publishableKey.startsWith(PK_PREFIX)) {
67
- log?.error("malformed publishable key", { prefix: PK_PREFIX });
68
- throw errors2.wrap(ErrMalformedPublishableKey, `key must start with '${PK_PREFIX}'`);
69
- }
70
- function transportSignal() {
71
- if (config.abort) {
72
- return config.abort.signal;
73
- }
74
- return;
75
- }
76
- async function transport(body) {
77
- log?.debug("transport request", {
78
- studentId: body.studentId,
79
- intentKind: body.intent.kind
80
- });
81
- const url = config.origin ? `${config.origin}${ADVANCE_PATH}` : ADVANCE_PATH;
82
- const fetchResult = await fetchFn(url, {
83
- method: "POST",
84
- headers: {
85
- "Content-Type": "application/json",
86
- "X-Primer-Publishable-Key": config.publishableKey
87
- },
88
- body: JSON.stringify(body),
89
- signal: transportSignal()
90
- }).then(function ok(r) {
91
- return { ok: true, response: r };
92
- }, function fail(err) {
93
- return { ok: false, error: err };
94
- });
95
- if (!fetchResult.ok) {
96
- if (isAbortError(fetchResult.error)) {
97
- log?.error("transport timeout", {
98
- studentId: body.studentId,
99
- intentKind: body.intent.kind
100
- });
101
- return { ok: false, error: errors2.wrap(ErrTimeout, fetchResult.error.message) };
102
- }
103
- log?.error("transport network error", {
104
- studentId: body.studentId,
105
- error: fetchResult.error
106
- });
107
- return { ok: false, error: errors2.wrap(ErrNetwork, fetchResult.error.message) };
108
- }
109
- const res = fetchResult.response;
110
- if (!res.ok) {
111
- const text = await res.text().catch(function fallback() {
112
- return "";
113
- });
114
- const sentinel = httpSentinel(res.status);
115
- log?.error("transport http error", {
116
- studentId: body.studentId,
117
- status: res.status
118
- });
119
- return { ok: false, error: errors2.wrap(sentinel, text) };
120
- }
121
- const jsonResult = await res.json().then(function ok(data) {
122
- return { ok: true, data };
123
- }, function fail(err) {
124
- return { ok: false, error: err };
125
- });
126
- if (!jsonResult.ok) {
127
- log?.error("transport json parse failed", {
128
- studentId: body.studentId,
129
- error: jsonResult.error
130
- });
131
- return { ok: false, error: errors2.wrap(ErrJsonParse, jsonResult.error.message) };
132
- }
133
- log?.debug("transport success", {
134
- studentId: body.studentId,
135
- intentKind: body.intent.kind
136
- });
137
- return { ok: true, data: jsonResult.data };
138
- }
139
- function makeSession(studentId) {
140
- function resolve(result) {
141
- switch (result.outcome) {
142
- case "advanced":
143
- return fromAdvanced(result.stimulus, result.interaction);
144
- case "submitted":
145
- return feedbackState(result.stimulus, result.interaction, result.submission, result.isCorrect, result.feedbackContent, result.correctAnswer);
146
- case "completed":
147
- return { phase: "completed", toJSON: poisonToJSON };
148
- }
149
- }
150
- function errored(error, failedPhase, intent) {
151
- return {
152
- phase: "errored",
153
- error,
154
- failedPhase,
155
- retry: function retry() {
156
- log?.debug("retrying from errored state", { failedPhase });
157
- return execute(intent, failedPhase);
158
- },
159
- toJSON: poisonToJSON
160
- };
161
- }
162
- async function execute(intent, phase) {
163
- const body = {
164
- studentId,
165
- supportedPcis: config.supportedPcis,
166
- intent
167
- };
168
- const result = await transport(body);
169
- if (!result.ok) {
170
- return errored(result.error, phase, intent);
171
- }
172
- return resolve(result.data);
173
- }
174
- function isPciSupported(pciId) {
175
- for (const id of config.supportedPcis) {
176
- if (id === pciId) {
177
- return true;
178
- }
179
- }
180
- return false;
181
- }
182
- function fromAdvanced(stimulus, interaction) {
183
- if (interaction === null) {
184
- return observationState(stimulus);
185
- }
186
- if (interaction.type === "portable-custom") {
187
- if (!isPciSupported(interaction.pciId)) {
188
- log?.error("unsupported pci in frame", { pciId: interaction.pciId });
189
- return {
190
- phase: "fatal",
191
- error: errors2.wrap(ErrUnsupportedPci, `pci '${interaction.pciId}'`),
192
- toJSON: poisonToJSON
193
- };
194
- }
195
- }
196
- return pendingInteractionState(stimulus, interaction);
197
- }
198
- function observationState(stimulus) {
199
- return {
200
- phase: "observation",
201
- stimulus,
202
- advance: function advance() {
203
- return execute({ kind: "observation" }, "observation");
204
- },
205
- toJSON: poisonToJSON
206
- };
207
- }
208
- function pendingInteractionState(stimulus, interaction) {
209
- switch (interaction.type) {
210
- case "choice":
211
- return choiceState(stimulus, interaction, interaction.options, interaction.maxChoices, interaction.minChoices);
212
- case "text-entry":
213
- return textEntryState(stimulus, interaction);
214
- case "extended-text":
215
- return extendedTextState(stimulus, interaction);
216
- case "portable-custom":
217
- return pciInteractionState(stimulus, interaction);
218
- }
219
- }
220
- function findUnknownKey(selectedKeys, options) {
221
- const optionIds = new Set(options.map(function getId(o) {
222
- return o.identifier;
223
- }));
224
- for (const key of selectedKeys) {
225
- if (!optionIds.has(key)) {
226
- return key;
227
- }
228
- }
229
- return null;
230
- }
231
- function validateChoiceSubmission(selectedKeys, options, maxChoices, minChoices) {
232
- if (selectedKeys.length < minChoices) {
233
- log?.error("choice submit below minChoices", { selectedKeys, minChoices });
234
- return errors2.wrap(ErrInvalidSubmission, `need at least ${minChoices} selections`);
235
- }
236
- if (selectedKeys.length > maxChoices) {
237
- log?.error("choice submit above maxChoices", { selectedKeys, maxChoices });
238
- return errors2.wrap(ErrInvalidSubmission, `at most ${maxChoices} selections`);
239
- }
240
- const uniqueKeys = new Set(selectedKeys);
241
- if (uniqueKeys.size !== selectedKeys.length) {
242
- log?.error("choice submit has duplicates", { selectedKeys });
243
- return errors2.wrap(ErrInvalidSubmission, "duplicate selections");
244
- }
245
- const unknownKey = findUnknownKey(selectedKeys, options);
246
- if (unknownKey) {
247
- log?.error("choice submit has unknown key", { key: unknownKey });
248
- return errors2.wrap(ErrInvalidSubmission, `unknown option '${unknownKey}'`);
249
- }
250
- return null;
251
- }
252
- function choiceState(stimulus, interaction, options, maxChoices, minChoices) {
253
- return {
254
- phase: "interaction",
255
- kind: "choice",
256
- stimulus,
257
- interaction,
258
- options,
259
- maxChoices,
260
- minChoices,
261
- submitChoice: function submitChoice(selectedKeys) {
262
- const validationError = validateChoiceSubmission(selectedKeys, options, maxChoices, minChoices);
263
- if (validationError) {
264
- return Promise.resolve(errored(validationError, "interaction", {
265
- kind: "interaction",
266
- submission: { type: "choice", selectedKeys }
267
- }));
268
- }
269
- return execute({ kind: "interaction", submission: { type: "choice", selectedKeys } }, "interaction");
270
- },
271
- timeout: function timeout() {
272
- return execute({ kind: "timeout" }, "timeout");
273
- },
274
- toJSON: poisonToJSON
275
- };
276
- }
277
- function textEntryState(stimulus, interaction) {
278
- return {
279
- phase: "interaction",
280
- kind: "text-entry",
281
- stimulus,
282
- interaction,
283
- submitText: function submitText(value) {
284
- return execute({ kind: "interaction", submission: { type: "text-entry", value } }, "interaction");
285
- },
286
- timeout: function timeout() {
287
- return execute({ kind: "timeout" }, "timeout");
288
- },
289
- toJSON: poisonToJSON
290
- };
291
- }
292
- function validateExtendedTextSubmission(values, minStrings, maxStrings) {
293
- if (values.length < minStrings) {
294
- log?.error("extended-text submit below minStrings", { count: values.length, minStrings });
295
- return errors2.wrap(ErrInvalidSubmission, `need at least ${minStrings} values`);
296
- }
297
- if (values.length > maxStrings) {
298
- log?.error("extended-text submit above maxStrings", { count: values.length, maxStrings });
299
- return errors2.wrap(ErrInvalidSubmission, `at most ${maxStrings} values`);
300
- }
301
- return null;
302
- }
303
- function extendedTextState(stimulus, interaction) {
304
- const maxStrings = interaction.maxStrings;
305
- const minStrings = interaction.minStrings;
306
- if (maxStrings === 1) {
307
- return {
308
- phase: "interaction",
309
- kind: "extended-text",
310
- cardinality: "single",
311
- stimulus,
312
- interaction,
313
- submitText: function submitText(value) {
314
- return execute({ kind: "interaction", submission: { type: "extended-text", values: [value] } }, "interaction");
315
- },
316
- timeout: function timeout() {
317
- return execute({ kind: "timeout" }, "timeout");
318
- },
319
- toJSON: poisonToJSON
320
- };
321
- }
322
- return {
323
- phase: "interaction",
324
- kind: "extended-text",
325
- cardinality: "multiple",
326
- stimulus,
327
- interaction,
328
- maxStrings,
329
- minStrings,
330
- submitTexts: function submitTexts(values) {
331
- const validationError = validateExtendedTextSubmission(values, minStrings, maxStrings);
332
- if (validationError) {
333
- return Promise.resolve(errored(validationError, "interaction", {
334
- kind: "interaction",
335
- submission: { type: "extended-text", values }
336
- }));
337
- }
338
- return execute({ kind: "interaction", submission: { type: "extended-text", values } }, "interaction");
339
- },
340
- timeout: function timeout() {
341
- return execute({ kind: "timeout" }, "timeout");
342
- },
343
- toJSON: poisonToJSON
344
- };
345
- }
346
- function pciInteractionState(stimulus, interaction) {
347
- const { pciId, properties } = interaction;
348
- function submit(value) {
349
- log?.debug("pci submit", { pciId });
350
- const submission = { type: "portable-custom", pciId, value };
351
- return execute({ kind: "interaction", submission }, "interaction");
352
- }
353
- function timeout() {
354
- log?.debug("pci timeout", { pciId });
355
- return execute({ kind: "timeout" }, "timeout");
356
- }
357
- return {
358
- phase: "interaction",
359
- kind: "portable-custom",
360
- stimulus,
361
- interaction,
362
- pciId,
363
- properties,
364
- submit,
365
- timeout,
366
- toJSON: poisonToJSON
367
- };
368
- }
369
- function feedbackState(stimulus, interaction, submission, isCorrect, feedbackContent, correctAnswer) {
370
- return {
371
- phase: "feedback",
372
- stimulus,
373
- interaction,
374
- submission,
375
- isCorrect,
376
- feedbackContent,
377
- correctAnswer,
378
- advance: function advance() {
379
- return execute({ kind: "observation" }, "observation");
380
- },
381
- toJSON: poisonToJSON
382
- };
383
- }
384
- return { execute };
385
- }
386
- return {
387
- async start(studentId) {
388
- log?.debug("start", { studentId });
389
- const s = makeSession(studentId);
390
- return s.execute({ kind: "observation" }, "observation");
391
- }
392
- };
393
- }
394
- export {
395
- create,
396
- DEFAULT_ORIGIN,
397
- ADVANCE_PATH
398
- };
399
-
400
- //# debugId=85D227CDC0814FAC64756E2164756E21