@superbuilders/primer-tives 0.4.0 → 0.6.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/README.md +605 -153
- package/dist/choice-state.d.ts.map +1 -1
- package/dist/client.d.ts +4 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/errors.d.ts +4 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/extended-text-state.d.ts.map +1 -1
- package/dist/feedback-state.d.ts +2 -2
- package/dist/feedback-state.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +327 -168
- package/dist/index.js.map +15 -14
- package/dist/match-state.d.ts.map +1 -1
- package/dist/order-state.d.ts +3 -10
- package/dist/order-state.d.ts.map +1 -1
- package/dist/pci-state.d.ts.map +1 -1
- package/dist/session.d.ts +2 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/subject.d.ts +6 -0
- package/dist/subject.d.ts.map +1 -0
- package/dist/text-entry-state.d.ts.map +1 -1
- package/dist/transport.d.ts +5 -4
- package/dist/transport.d.ts.map +1 -1
- package/dist/types.d.ts +61 -28
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/client.ts", "../src/errors.ts", "../src/transport.ts", "../src/session.ts", "../src/consumed.ts", "../src/choice-state.ts", "../src/extended-text-state.ts", "../src/feedback-state.ts", "../src/match-state.ts", "../src/observation-state.ts", "../src/order-state.ts", "../src/pci-state.ts", "../src/text-entry-state.ts", "../src/content.ts"],
|
|
3
|
+
"sources": ["../src/client.ts", "../src/errors.ts", "../src/transport.ts", "../src/session.ts", "../src/consumed.ts", "../src/choice-state.ts", "../src/extended-text-state.ts", "../src/feedback-state.ts", "../src/match-state.ts", "../src/observation-state.ts", "../src/order-state.ts", "../src/pci-state.ts", "../src/text-entry-state.ts", "../src/subject.ts", "../src/content.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import * as errors from \"@superbuilders/errors\"\nimport {
|
|
6
|
-
"import * as errors from \"@superbuilders/errors\"\n\nconst ErrNetwork = errors.new(\"network\")\nconst ErrJsonParse = errors.new(\"json parse\")\nconst ErrUnsupportedPci = errors.new(\"unsupported pci\")\nconst
|
|
7
|
-
"import * as errors from \"@superbuilders/errors\"\nimport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrForbidden,\n\
|
|
8
|
-
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport {\n\tErrBadRequest,\n\tErrForbidden,\n\
|
|
5
|
+
"import * as errors from \"@superbuilders/errors\"\nimport { ErrMalformedAccessToken } from \"@superbuilders/primer-tives/errors\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type { PrimerLogger } from \"@superbuilders/primer-tives/session-context\"\nimport type { SubjectScope } from \"@superbuilders/primer-tives/subject\"\nimport type { PrimerState } from \"@superbuilders/primer-tives/types\"\nimport { createTransport } from \"@superbuilders/primer-tives/transport\"\nimport { makeSession } from \"@superbuilders/primer-tives/session\"\n\nconst ACCESS_TOKEN_PREFIX = \"eyJ\"\n\ninterface Config<Pcis extends PciId = PciId> {\n\treadonly accessToken: string\n\treadonly supportedPcis: readonly Pcis[]\n\treadonly origin: string\n\treadonly subject: SubjectScope\n\treadonly fetch?: typeof globalThis.fetch\n\treadonly abort?: AbortController\n\treadonly logger?: PrimerLogger\n}\n\ninterface Client<Pcis extends PciId = PciId> {\n\tstart(): Promise<PrimerState<Pcis>>\n}\n\nfunction isMalformedJws(token: string): boolean {\n\tif (!token.startsWith(ACCESS_TOKEN_PREFIX)) {\n\t\treturn true\n\t}\n\tconst dotCount = token.split(\".\").length - 1\n\treturn dotCount !== 2\n}\n\nfunction create<const Pcis extends PciId>(config: Config<Pcis>): Client<Pcis> {\n\tconst log = config.logger\n\n\tif (isMalformedJws(config.accessToken)) {\n\t\tlog?.error(\"malformed access token\", { prefix: ACCESS_TOKEN_PREFIX })\n\t\t// biome-ignore lint/plugin: client SDK — log is optional config.logger, not slog\n\t\tthrow errors.wrap(\n\t\t\tErrMalformedAccessToken,\n\t\t\t`token must start with '${ACCESS_TOKEN_PREFIX}' and contain two dots`\n\t\t)\n\t}\n\n\tconst transport = createTransport({\n\t\taccessToken: config.accessToken,\n\t\tsupportedPcis: config.supportedPcis,\n\t\torigin: config.origin,\n\t\tfetch: config.fetch,\n\t\tabort: config.abort,\n\t\tlog\n\t})\n\n\tlet startPromise: Promise<PrimerState<Pcis>> | undefined\n\n\tasync function doStart(): Promise<PrimerState<Pcis>> {\n\t\tlog?.debug(\"start\", { subject: config.subject })\n\t\tconst s = makeSession({\n\t\t\tsupportedPcis: config.supportedPcis,\n\t\t\tsubject: config.subject,\n\t\t\tlog,\n\t\t\ttransport\n\t\t})\n\t\treturn s.execute({ kind: \"observation\" }, \"observation\")\n\t}\n\n\treturn {\n\t\tstart(): Promise<PrimerState<Pcis>> {\n\t\t\tif (startPromise) {\n\t\t\t\tlog?.debug(\"start already called\")\n\t\t\t\treturn startPromise\n\t\t\t}\n\t\t\tstartPromise = doStart()\n\t\t\treturn startPromise\n\t\t}\n\t}\n}\n\nexport { create }\nexport type { Client, Config, PrimerLogger }\n",
|
|
6
|
+
"import * as errors from \"@superbuilders/errors\"\n\nconst ErrNetwork = errors.new(\"network\")\nconst ErrJsonParse = errors.new(\"json parse\")\nconst ErrUnsupportedPci = errors.new(\"unsupported pci\")\nconst ErrInvalidAccessToken = errors.new(\"invalid access token\")\nconst ErrMalformedAccessToken = errors.new(\"malformed access token\")\nconst ErrTokenExpired = errors.new(\"access token expired\")\nconst ErrBadRequest = errors.new(\"bad request\")\nconst ErrServerError = errors.new(\"server error\")\nconst ErrTimeout = errors.new(\"timeout\")\nconst ErrForbidden = errors.new(\"forbidden\")\nconst ErrNotFound = errors.new(\"not found\")\nconst ErrConflict = errors.new(\"conflict\")\nconst ErrRateLimited = errors.new(\"rate limited\")\nconst ErrServiceUnavailable = errors.new(\"service unavailable\")\nconst ErrNotSerializable = errors.new(\n\t\"PrimerState is live in-memory state and must not be serialized or stored\"\n)\nconst ErrInvalidSubmission = errors.new(\"invalid submission\")\n\nexport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSubmission,\n\tErrJsonParse,\n\tErrMalformedAccessToken,\n\tErrNetwork,\n\tErrNotFound,\n\tErrNotSerializable,\n\tErrRateLimited,\n\tErrServerError,\n\tErrServiceUnavailable,\n\tErrTimeout,\n\tErrTokenExpired,\n\tErrUnsupportedPci\n}\n",
|
|
7
|
+
"import * as errors from \"@superbuilders/errors\"\nimport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrJsonParse,\n\tErrNetwork,\n\tErrNotFound,\n\tErrRateLimited,\n\tErrServerError,\n\tErrServiceUnavailable,\n\tErrTimeout,\n\tErrUnsupportedPci\n} from \"@superbuilders/primer-tives/errors\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type { SessionContext, WireIntent } from \"@superbuilders/primer-tives/session-context\"\nimport type { SubjectScope } from \"@superbuilders/primer-tives/subject\"\nimport type { ContentInline } from \"@superbuilders/primer-tives/content\"\nimport type {\n\tInteractionReview,\n\tRendererInteraction,\n\tRendererStimulus,\n\tRendererSubmission\n} from \"@superbuilders/primer-tives/types\"\n\nconst ADVANCE_PATH = \"/api/v0/advance\"\n\ntype WireResult<Pcis extends PciId = PciId> =\n\t| {\n\t\t\toutcome: \"advanced\"\n\t\t\tstimulus: RendererStimulus | null\n\t\t\tinteraction: RendererInteraction<Pcis> | null\n\t }\n\t| {\n\t\t\toutcome: \"submitted\"\n\t\t\tstimulus: RendererStimulus | null\n\t\t\tinteraction: RendererInteraction<Pcis>\n\t\t\tsubmission: RendererSubmission<Pcis>\n\t\t\tisCorrect: boolean\n\t\t\tfeedbackContent: ContentInline[]\n\t\t\treview: InteractionReview<Pcis> | null\n\t }\n\t| { outcome: \"completed\" }\n\ninterface WireRequestBody<Pcis extends PciId = PciId> {\n\tsupportedPcis: readonly PciId[]\n\tintent: WireIntent<Pcis>\n\tsubject: SubjectScope\n}\n\ntype TransportResult<Pcis extends PciId = PciId> =\n\t| { ok: true; data: WireResult<Pcis> }\n\t| { ok: false; error: Error }\n\ninterface TransportConfig<Pcis extends PciId = PciId> {\n\treadonly accessToken: string\n\treadonly supportedPcis: readonly Pcis[]\n\treadonly origin: string\n\treadonly fetch?: typeof globalThis.fetch\n\treadonly abort?: AbortController\n\treadonly log: SessionContext[\"log\"]\n}\n\nfunction httpSentinel(status: number): Error {\n\tif (status === 400) {\n\t\treturn ErrBadRequest\n\t}\n\tif (status === 401) {\n\t\treturn ErrInvalidAccessToken\n\t}\n\tif (status === 403) {\n\t\treturn ErrForbidden\n\t}\n\tif (status === 404) {\n\t\treturn ErrNotFound\n\t}\n\tif (status === 409) {\n\t\treturn ErrConflict\n\t}\n\tif (status === 429) {\n\t\treturn ErrRateLimited\n\t}\n\tif (status === 502 || status === 503 || status === 504) {\n\t\treturn ErrServiceUnavailable\n\t}\n\treturn ErrServerError\n}\n\nfunction isAbortError(err: unknown): boolean {\n\tif (err instanceof DOMException && err.name === \"AbortError\") {\n\t\treturn true\n\t}\n\tif (err instanceof DOMException && err.name === \"TimeoutError\") {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunction createTransport<Pcis extends PciId>(tc: TransportConfig<Pcis>) {\n\tconst fetchFn = tc.fetch ? tc.fetch : globalThis.fetch\n\tconst log = tc.log\n\n\tfunction transportSignal(): AbortSignal | undefined {\n\t\tif (tc.abort) {\n\t\t\treturn tc.abort.signal\n\t\t}\n\t\treturn undefined\n\t}\n\n\tasync function transport(body: WireRequestBody<Pcis>): Promise<TransportResult<Pcis>> {\n\t\tlog?.debug(\"transport request\", {\n\t\t\tintentKind: body.intent.kind,\n\t\t\tsubject: body.subject\n\t\t})\n\n\t\tconst url = `${tc.origin}${ADVANCE_PATH}`\n\t\tconst fetchResult = await fetchFn(url, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\tAuthorization: `Bearer ${tc.accessToken}`\n\t\t\t},\n\t\t\tbody: JSON.stringify(body),\n\t\t\tsignal: transportSignal()\n\t\t}).then(\n\t\t\tfunction ok(r: Response) {\n\t\t\t\treturn { ok: true, response: r } as const\n\t\t\t},\n\t\t\tfunction fail(err: Error) {\n\t\t\t\treturn { ok: false, error: err } as const\n\t\t\t}\n\t\t)\n\n\t\tif (!fetchResult.ok) {\n\t\t\tif (isAbortError(fetchResult.error)) {\n\t\t\t\tlog?.error(\"transport timeout\", {\n\t\t\t\t\tintentKind: body.intent.kind\n\t\t\t\t})\n\t\t\t\treturn { ok: false, error: errors.wrap(ErrTimeout, fetchResult.error.message) }\n\t\t\t}\n\t\t\tlog?.error(\"transport network error\", {\n\t\t\t\terror: fetchResult.error\n\t\t\t})\n\t\t\treturn { ok: false, error: errors.wrap(ErrNetwork, fetchResult.error.message) }\n\t\t}\n\n\t\tconst res = fetchResult.response\n\n\t\tif (!res.ok) {\n\t\t\tconst text = await res.text().catch(function fallback() {\n\t\t\t\treturn \"\"\n\t\t\t})\n\t\t\tconst sentinel = res.status === 422 ? ErrUnsupportedPci : httpSentinel(res.status)\n\t\t\tlog?.error(\"transport http error\", {\n\t\t\t\tstatus: res.status\n\t\t\t})\n\t\t\treturn { ok: false, error: errors.wrap(sentinel, text) }\n\t\t}\n\n\t\tconst jsonResult = await res.json().then(\n\t\t\tfunction ok(data: WireResult<Pcis>) {\n\t\t\t\treturn { ok: true, data } as const\n\t\t\t},\n\t\t\tfunction fail(err: Error) {\n\t\t\t\treturn { ok: false, error: err } as const\n\t\t\t}\n\t\t)\n\n\t\tif (!jsonResult.ok) {\n\t\t\tlog?.error(\"transport json parse failed\", {\n\t\t\t\terror: jsonResult.error\n\t\t\t})\n\t\t\treturn { ok: false, error: errors.wrap(ErrJsonParse, jsonResult.error.message) }\n\t\t}\n\n\t\tlog?.debug(\"transport success\", {\n\t\t\tintentKind: body.intent.kind\n\t\t})\n\n\t\treturn { ok: true, data: jsonResult.data }\n\t}\n\n\treturn transport\n}\n\nexport { ADVANCE_PATH, createTransport, httpSentinel, isAbortError }\nexport type { TransportConfig, TransportResult, WireRequestBody, WireResult }\n",
|
|
8
|
+
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport {\n\tErrBadRequest,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSubmission,\n\tErrNotFound,\n\tErrTokenExpired,\n\tErrUnsupportedPci\n} from \"@superbuilders/primer-tives/errors\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tPrimerLogger,\n\tSessionContext,\n\tTransitionPhase,\n\tWireIntent\n} from \"@superbuilders/primer-tives/session-context\"\nimport type { SubjectScope } from \"@superbuilders/primer-tives/subject\"\nimport type {\n\tTransportResult,\n\tWireRequestBody,\n\tWireResult\n} from \"@superbuilders/primer-tives/transport\"\nimport type {\n\tErroredState,\n\tPrimerState,\n\tRendererInteraction,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/types\"\nimport { choiceState } from \"@superbuilders/primer-tives/choice-state\"\nimport { extendedTextState } from \"@superbuilders/primer-tives/extended-text-state\"\nimport { feedbackState } from \"@superbuilders/primer-tives/feedback-state\"\nimport { matchState } from \"@superbuilders/primer-tives/match-state\"\nimport { observationState } from \"@superbuilders/primer-tives/observation-state\"\nimport { orderState } from \"@superbuilders/primer-tives/order-state\"\nimport { pciInteractionState } from \"@superbuilders/primer-tives/pci-state\"\nimport { textEntryState } from \"@superbuilders/primer-tives/text-entry-state\"\n\ninterface SessionConfig<Pcis extends PciId = PciId> {\n\treadonly supportedPcis: readonly Pcis[]\n\treadonly subject: SubjectScope\n\treadonly log: PrimerLogger | undefined\n\treadonly transport: (body: WireRequestBody<Pcis>) => Promise<TransportResult<Pcis>>\n}\n\nconst FATAL_SENTINELS = [\n\tErrBadRequest,\n\tErrInvalidAccessToken,\n\tErrTokenExpired,\n\tErrForbidden,\n\tErrNotFound,\n\tErrUnsupportedPci\n]\n\nfunction isFatalError(err: Error): boolean {\n\tfor (const sentinel of FATAL_SENTINELS) {\n\t\tif (errors.is(err, sentinel)) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunction isRetriableError(err: Error): boolean {\n\treturn !errors.is(err, ErrInvalidSubmission)\n}\n\nfunction makeSession<Pcis extends PciId>(sc: SessionConfig<Pcis>) {\n\tconst log = sc.log\n\n\tfunction resolve(result: WireResult<Pcis>): PrimerState<Pcis> {\n\t\tswitch (result.outcome) {\n\t\t\tcase \"advanced\":\n\t\t\t\treturn fromAdvanced(result.stimulus, result.interaction)\n\t\t\tcase \"submitted\":\n\t\t\t\treturn feedbackState(\n\t\t\t\t\tctx,\n\t\t\t\t\tresult.stimulus,\n\t\t\t\t\tresult.interaction,\n\t\t\t\t\tresult.submission,\n\t\t\t\t\tresult.isCorrect,\n\t\t\t\t\tresult.feedbackContent,\n\t\t\t\t\tresult.review\n\t\t\t\t)\n\t\t\tcase \"completed\":\n\t\t\t\treturn { phase: \"completed\", toJSON: poisonToJSON }\n\t\t}\n\t}\n\n\tfunction errored(\n\t\terror: Error,\n\t\tfailedPhase: TransitionPhase,\n\t\tintent: WireIntent<Pcis>\n\t): ErroredState<Pcis> {\n\t\tlet pending: Promise<PrimerState<Pcis>> | undefined\n\t\tconst retriable = isRetriableError(error)\n\t\tconst state: ErroredState<Pcis> = {\n\t\t\tphase: \"errored\",\n\t\t\terror,\n\t\t\tretriable,\n\t\t\tretry: function retry() {\n\t\t\t\tif (!retriable) {\n\t\t\t\t\tlog?.debug(\"retry ignored for non-retriable error\", { failedPhase })\n\t\t\t\t\treturn Promise.resolve(state)\n\t\t\t\t}\n\t\t\t\tif (pending) {\n\t\t\t\t\treturn pending\n\t\t\t\t}\n\t\t\t\tlog?.debug(\"retrying from errored state\", { failedPhase })\n\t\t\t\tpending = execute(intent, failedPhase)\n\t\t\t\treturn pending\n\t\t\t},\n\t\t\ttoJSON: poisonToJSON\n\t\t}\n\t\treturn state\n\t}\n\n\tasync function execute(\n\t\tintent: WireIntent<Pcis>,\n\t\tphase: TransitionPhase\n\t): Promise<PrimerState<Pcis>> {\n\t\tconst body: WireRequestBody<Pcis> = {\n\t\t\tsupportedPcis: sc.supportedPcis,\n\t\t\tintent,\n\t\t\tsubject: sc.subject\n\t\t}\n\n\t\tconst result = await sc.transport(body)\n\t\tif (!result.ok) {\n\t\t\tif (isFatalError(result.error)) {\n\t\t\t\tlog?.error(\"fatal transport error\", { error: result.error, phase })\n\t\t\t\treturn { phase: \"fatal\", error: result.error, retriable: false, toJSON: poisonToJSON }\n\t\t\t}\n\t\t\treturn errored(result.error, phase, intent)\n\t\t}\n\n\t\treturn resolve(result.data)\n\t}\n\n\tfunction isPciSupported(pciId: string): boolean {\n\t\tfor (const id of sc.supportedPcis) {\n\t\t\tif (id === pciId) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\tfunction fromAdvanced(\n\t\tstimulus: RendererStimulus | null,\n\t\tinteraction: RendererInteraction<Pcis> | null\n\t): PrimerState<Pcis> {\n\t\tif (interaction === null) {\n\t\t\treturn observationState(ctx, stimulus)\n\t\t}\n\t\tif (interaction.type === \"portable-custom\") {\n\t\t\tif (!isPciSupported(interaction.pciId)) {\n\t\t\t\tlog?.error(\"unsupported pci in frame\", { pciId: interaction.pciId })\n\t\t\t\treturn {\n\t\t\t\t\tphase: \"fatal\",\n\t\t\t\t\terror: errors.wrap(ErrUnsupportedPci, `pci '${interaction.pciId}'`),\n\t\t\t\t\tretriable: false,\n\t\t\t\t\ttoJSON: poisonToJSON\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn pendingInteractionState(stimulus, interaction)\n\t}\n\n\tfunction pendingInteractionState(\n\t\tstimulus: RendererStimulus | null,\n\t\tinteraction: RendererInteraction<Pcis>\n\t): PrimerState<Pcis> {\n\t\tswitch (interaction.type) {\n\t\t\tcase \"choice\":\n\t\t\t\treturn choiceState(\n\t\t\t\t\tctx,\n\t\t\t\t\tstimulus,\n\t\t\t\t\tinteraction,\n\t\t\t\t\tinteraction.options,\n\t\t\t\t\tinteraction.maxChoices,\n\t\t\t\t\tinteraction.minChoices\n\t\t\t\t)\n\t\t\tcase \"text-entry\":\n\t\t\t\treturn textEntryState(ctx, stimulus, interaction)\n\t\t\tcase \"extended-text\":\n\t\t\t\treturn extendedTextState(ctx, stimulus, interaction)\n\t\t\tcase \"order\":\n\t\t\t\treturn orderState(ctx, stimulus, interaction)\n\t\t\tcase \"match\":\n\t\t\t\treturn matchState(ctx, stimulus, interaction)\n\t\t\tcase \"portable-custom\":\n\t\t\t\treturn pciInteractionState(ctx, stimulus, interaction)\n\t\t}\n\t}\n\n\tconst ctx: SessionContext<Pcis> = { log, execute, errored }\n\n\treturn { execute }\n}\n\nexport { makeSession }\nexport type { SessionConfig }\n",
|
|
9
9
|
"import { ErrNotSerializable } from \"@superbuilders/primer-tives/errors\"\n\nfunction poisonToJSON(): never {\n\t// biome-ignore lint/plugin: intentional toJSON trap — logging here would spam on every accidental serialize attempt\n\tthrow ErrNotSerializable\n}\n\nexport { poisonToJSON }\n",
|
|
10
|
-
"import { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport { ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tPrimerState,\n\tRendererChoice,\n\tRendererInteraction,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/types\"\nimport * as errors from \"@superbuilders/errors\"\n\nfunction findUnknownKey(selectedKeys: string[], options: RendererChoice[]): string | null {\n\tconst optionIds = new Set(\n\t\toptions.map(function getId(o) {\n\t\t\treturn o.identifier\n\t\t})\n\t)\n\tfor (const key of selectedKeys) {\n\t\tif (!optionIds.has(key)) {\n\t\t\treturn key\n\t\t}\n\t}\n\treturn null\n}\n\nfunction validateChoiceSubmission(\n\tlog: SessionContext[\"log\"],\n\tselectedKeys: string[],\n\toptions: RendererChoice[],\n\tmaxChoices: number,\n\tminChoices: number\n): Error | null {\n\tif (selectedKeys.length < minChoices) {\n\t\tlog?.error(\"choice submit below minChoices\", { selectedKeys, minChoices })\n\t\treturn errors.wrap(ErrInvalidSubmission, `need at least ${minChoices} selections`)\n\t}\n\tif (selectedKeys.length > maxChoices) {\n\t\tlog?.error(\"choice submit above maxChoices\", { selectedKeys, maxChoices })\n\t\treturn errors.wrap(ErrInvalidSubmission, `at most ${maxChoices} selections`)\n\t}\n\tconst uniqueKeys = new Set(selectedKeys)\n\tif (uniqueKeys.size !== selectedKeys.length) {\n\t\tlog?.error(\"choice submit has duplicates\", { selectedKeys })\n\t\treturn errors.wrap(ErrInvalidSubmission, \"duplicate selections\")\n\t}\n\tconst unknownKey = findUnknownKey(selectedKeys, options)\n\tif (unknownKey) {\n\t\tlog?.error(\"choice submit has unknown key\", { key: unknownKey })\n\t\treturn errors.wrap(ErrInvalidSubmission, `unknown option '${unknownKey}'`)\n\t}\n\treturn null\n}\n\nfunction choiceState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: Extract<RendererInteraction<Pcis>, { type: \"choice\" }>,\n\toptions: RendererChoice[],\n\tmaxChoices: number,\n\tminChoices: number\n): PrimerState<Pcis> {\n\tlet
|
|
11
|
-
"import { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport { ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tPrimerState,\n\tRendererStimulus,\n\tStandardRendererInteraction\n} from \"@superbuilders/primer-tives/types\"\nimport * as errors from \"@superbuilders/errors\"\n\nfunction validateExtendedTextSubmission(\n\tlog: SessionContext[\"log\"],\n\tvalues: string[],\n\tminStrings: number,\n\tmaxStrings: number\n): Error | null {\n\tif (values.length < minStrings) {\n\t\tlog?.error(\"extended-text submit below minStrings\", { count: values.length, minStrings })\n\t\treturn errors.wrap(ErrInvalidSubmission, `need at least ${minStrings} values`)\n\t}\n\tif (values.length > maxStrings) {\n\t\tlog?.error(\"extended-text submit above maxStrings\", { count: values.length, maxStrings })\n\t\treturn errors.wrap(ErrInvalidSubmission, `at most ${maxStrings} values`)\n\t}\n\treturn null\n}\n\nfunction extendedTextState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: Extract<StandardRendererInteraction, { type: \"extended-text\" }>\n): PrimerState<Pcis> {\n\tif (interaction.cardinality === \"single\") {\n\t\tlet
|
|
12
|
-
"import { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport type { ContentInline } from \"@superbuilders/primer-tives/content\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\
|
|
13
|
-
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport { ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tPrimerState,\n\tRendererMatchChoice,\n\tRendererStimulus,\n\tStandardRendererInteraction\n} from \"@superbuilders/primer-tives/types\"\n\nfunction bumpCount(counts: Map<string, number>, key: string): void {\n\tconst prev = counts.get(key)\n\tconst next = prev === undefined ? 1 : prev + 1\n\tcounts.set(key, next)\n}\n\nfunction getCount(counts: Map<string, number>, key: string): number {\n\tconst recorded = counts.get(key)\n\treturn recorded === undefined ? 0 : recorded\n}\n\nfunction validateAssociationBounds(\n\tlog: SessionContext[\"log\"],\n\tpairs:
|
|
10
|
+
"import { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport { ErrConflict, ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tPrimerState,\n\tRendererChoice,\n\tRendererInteraction,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/types\"\nimport * as errors from \"@superbuilders/errors\"\n\nfunction findUnknownKey(selectedKeys: string[], options: RendererChoice[]): string | null {\n\tconst optionIds = new Set(\n\t\toptions.map(function getId(o) {\n\t\t\treturn o.identifier\n\t\t})\n\t)\n\tfor (const key of selectedKeys) {\n\t\tif (!optionIds.has(key)) {\n\t\t\treturn key\n\t\t}\n\t}\n\treturn null\n}\n\nfunction validateChoiceSubmission(\n\tlog: SessionContext[\"log\"],\n\tselectedKeys: string[],\n\toptions: RendererChoice[],\n\tmaxChoices: number,\n\tminChoices: number\n): Error | null {\n\tif (selectedKeys.length < minChoices) {\n\t\tlog?.error(\"choice submit below minChoices\", { selectedKeys, minChoices })\n\t\treturn errors.wrap(ErrInvalidSubmission, `need at least ${minChoices} selections`)\n\t}\n\tif (selectedKeys.length > maxChoices) {\n\t\tlog?.error(\"choice submit above maxChoices\", { selectedKeys, maxChoices })\n\t\treturn errors.wrap(ErrInvalidSubmission, `at most ${maxChoices} selections`)\n\t}\n\tconst uniqueKeys = new Set(selectedKeys)\n\tif (uniqueKeys.size !== selectedKeys.length) {\n\t\tlog?.error(\"choice submit has duplicates\", { selectedKeys })\n\t\treturn errors.wrap(ErrInvalidSubmission, \"duplicate selections\")\n\t}\n\tconst unknownKey = findUnknownKey(selectedKeys, options)\n\tif (unknownKey) {\n\t\tlog?.error(\"choice submit has unknown key\", { key: unknownKey })\n\t\treturn errors.wrap(ErrInvalidSubmission, `unknown option '${unknownKey}'`)\n\t}\n\treturn null\n}\n\nfunction choiceState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: Extract<RendererInteraction<Pcis>, { type: \"choice\" }>,\n\toptions: RendererChoice[],\n\tmaxChoices: number,\n\tminChoices: number\n): PrimerState<Pcis> {\n\tlet submitPending: Promise<PrimerState<Pcis>> | undefined\n\tlet submitKey: string | undefined\n\tlet timeoutPending: Promise<PrimerState<Pcis>> | undefined\n\n\tfunction beginSubmit(selectedKeys: string[]): Promise<PrimerState<Pcis>> {\n\t\tconst submission = { type: \"choice\" as const, selectedKeys }\n\t\tconst key = JSON.stringify(submission)\n\t\tif (timeoutPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot submit while timeout is in flight\"),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (submitPending) {\n\t\t\tif (submitKey === key) {\n\t\t\t\treturn submitPending\n\t\t\t}\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(\n\t\t\t\t\t\tErrConflict,\n\t\t\t\t\t\t\"cannot submit a different choice payload while submit is in flight\"\n\t\t\t\t\t),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tconst validationError = validateChoiceSubmission(\n\t\t\tctx.log,\n\t\t\tselectedKeys,\n\t\t\toptions,\n\t\t\tmaxChoices,\n\t\t\tminChoices\n\t\t)\n\t\tif (validationError) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(validationError, \"interaction\", { kind: \"interaction\", submission })\n\t\t\t)\n\t\t}\n\t\tsubmitKey = key\n\t\tsubmitPending = ctx\n\t\t\t.execute({ kind: \"interaction\", submission }, \"interaction\")\n\t\t\t.finally(function clearPending() {\n\t\t\t\tsubmitPending = undefined\n\t\t\t\tsubmitKey = undefined\n\t\t\t})\n\t\treturn submitPending\n\t}\n\n\tfunction beginTimeout(): Promise<PrimerState<Pcis>> {\n\t\tconst intent = { kind: \"timeout\" as const }\n\t\tif (submitPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot timeout while submission is in flight\"),\n\t\t\t\t\t\"timeout\",\n\t\t\t\t\tintent\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (timeoutPending) {\n\t\t\treturn timeoutPending\n\t\t}\n\t\ttimeoutPending = ctx.execute(intent, \"timeout\").finally(function clearPending() {\n\t\t\ttimeoutPending = undefined\n\t\t})\n\t\treturn timeoutPending\n\t}\n\n\treturn {\n\t\tphase: \"interaction\",\n\t\tkind: \"choice\",\n\t\tstimulus,\n\t\tinteraction,\n\t\toptions,\n\t\tmaxChoices,\n\t\tminChoices,\n\t\tsubmitChoice: beginSubmit,\n\t\ttimeout: beginTimeout,\n\t\ttoJSON: poisonToJSON\n\t}\n}\n\nexport { choiceState }\n",
|
|
11
|
+
"import { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport { ErrConflict, ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tPrimerState,\n\tRendererStimulus,\n\tStandardRendererInteraction\n} from \"@superbuilders/primer-tives/types\"\nimport * as errors from \"@superbuilders/errors\"\n\nfunction validateExtendedTextSubmission(\n\tlog: SessionContext[\"log\"],\n\tvalues: string[],\n\tminStrings: number,\n\tmaxStrings: number\n): Error | null {\n\tif (values.length < minStrings) {\n\t\tlog?.error(\"extended-text submit below minStrings\", { count: values.length, minStrings })\n\t\treturn errors.wrap(ErrInvalidSubmission, `need at least ${minStrings} values`)\n\t}\n\tif (values.length > maxStrings) {\n\t\tlog?.error(\"extended-text submit above maxStrings\", { count: values.length, maxStrings })\n\t\treturn errors.wrap(ErrInvalidSubmission, `at most ${maxStrings} values`)\n\t}\n\treturn null\n}\n\nfunction extendedTextState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: Extract<StandardRendererInteraction, { type: \"extended-text\" }>\n): PrimerState<Pcis> {\n\tif (interaction.cardinality === \"single\") {\n\t\tlet submitPending: Promise<PrimerState<Pcis>> | undefined\n\t\tlet submitKey: string | undefined\n\t\tlet timeoutPending: Promise<PrimerState<Pcis>> | undefined\n\t\tfunction submitText(value: string): Promise<PrimerState<Pcis>> {\n\t\t\tconst submission = { type: \"extended-text\" as const, values: [value] }\n\t\t\tconst key = JSON.stringify(submission)\n\t\t\tif (timeoutPending) {\n\t\t\t\treturn Promise.resolve(\n\t\t\t\t\tctx.errored(\n\t\t\t\t\t\terrors.wrap(ErrConflict, \"cannot submit while timeout is in flight\"),\n\t\t\t\t\t\t\"interaction\",\n\t\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}\n\t\t\tif (submitPending) {\n\t\t\t\tif (submitKey === key) {\n\t\t\t\t\treturn submitPending\n\t\t\t\t}\n\t\t\t\treturn Promise.resolve(\n\t\t\t\t\tctx.errored(\n\t\t\t\t\t\terrors.wrap(\n\t\t\t\t\t\t\tErrConflict,\n\t\t\t\t\t\t\t\"cannot submit a different extended-text payload while submit is in flight\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\t\"interaction\",\n\t\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}\n\t\t\tsubmitKey = key\n\t\t\tsubmitPending = ctx\n\t\t\t\t.execute({ kind: \"interaction\", submission }, \"interaction\")\n\t\t\t\t.finally(function clearPending() {\n\t\t\t\t\tsubmitPending = undefined\n\t\t\t\t\tsubmitKey = undefined\n\t\t\t\t})\n\t\t\treturn submitPending\n\t\t}\n\t\tfunction timeout(): Promise<PrimerState<Pcis>> {\n\t\t\tconst intent = { kind: \"timeout\" as const }\n\t\t\tif (submitPending) {\n\t\t\t\treturn Promise.resolve(\n\t\t\t\t\tctx.errored(\n\t\t\t\t\t\terrors.wrap(ErrConflict, \"cannot timeout while submission is in flight\"),\n\t\t\t\t\t\t\"timeout\",\n\t\t\t\t\t\tintent\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}\n\t\t\tif (timeoutPending) {\n\t\t\t\treturn timeoutPending\n\t\t\t}\n\t\t\ttimeoutPending = ctx.execute(intent, \"timeout\").finally(function clearPending() {\n\t\t\t\ttimeoutPending = undefined\n\t\t\t})\n\t\t\treturn timeoutPending\n\t\t}\n\t\treturn {\n\t\t\tphase: \"interaction\",\n\t\t\tkind: \"extended-text\",\n\t\t\tcardinality: \"single\",\n\t\t\tstimulus,\n\t\t\tinteraction,\n\t\t\tsubmitText,\n\t\t\ttimeout,\n\t\t\ttoJSON: poisonToJSON\n\t\t}\n\t}\n\n\tconst multi = interaction\n\tlet submitPending: Promise<PrimerState<Pcis>> | undefined\n\tlet submitKey: string | undefined\n\tlet timeoutPending: Promise<PrimerState<Pcis>> | undefined\n\tfunction submitTexts(values: string[]): Promise<PrimerState<Pcis>> {\n\t\tconst submission = { type: \"extended-text\" as const, values }\n\t\tconst key = JSON.stringify(submission)\n\t\tif (timeoutPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot submit while timeout is in flight\"),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (submitPending) {\n\t\t\tif (submitKey === key) {\n\t\t\t\treturn submitPending\n\t\t\t}\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(\n\t\t\t\t\t\tErrConflict,\n\t\t\t\t\t\t\"cannot submit a different extended-text payload while submit is in flight\"\n\t\t\t\t\t),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tconst validationError = validateExtendedTextSubmission(\n\t\t\tctx.log,\n\t\t\tvalues,\n\t\t\tmulti.minStrings,\n\t\t\tmulti.maxStrings\n\t\t)\n\t\tif (validationError) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(validationError, \"interaction\", { kind: \"interaction\", submission })\n\t\t\t)\n\t\t}\n\t\tsubmitKey = key\n\t\tsubmitPending = ctx\n\t\t\t.execute({ kind: \"interaction\", submission }, \"interaction\")\n\t\t\t.finally(function clearPending() {\n\t\t\t\tsubmitPending = undefined\n\t\t\t\tsubmitKey = undefined\n\t\t\t})\n\t\treturn submitPending\n\t}\n\tfunction timeout(): Promise<PrimerState<Pcis>> {\n\t\tconst intent = { kind: \"timeout\" as const }\n\t\tif (submitPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot timeout while submission is in flight\"),\n\t\t\t\t\t\"timeout\",\n\t\t\t\t\tintent\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (timeoutPending) {\n\t\t\treturn timeoutPending\n\t\t}\n\t\ttimeoutPending = ctx.execute(intent, \"timeout\").finally(function clearPending() {\n\t\t\ttimeoutPending = undefined\n\t\t})\n\t\treturn timeoutPending\n\t}\n\treturn {\n\t\tphase: \"interaction\",\n\t\tkind: \"extended-text\",\n\t\tcardinality: \"multiple\",\n\t\tstimulus,\n\t\tinteraction: multi,\n\t\tmaxStrings: multi.maxStrings,\n\t\tminStrings: multi.minStrings,\n\t\tsubmitTexts,\n\t\ttimeout,\n\t\ttoJSON: poisonToJSON\n\t}\n}\n\nexport { extendedTextState }\n",
|
|
12
|
+
"import { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport type { ContentInline } from \"@superbuilders/primer-tives/content\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tInteractionReview,\n\tPrimerState,\n\tRendererInteraction,\n\tRendererStimulus,\n\tRendererSubmission\n} from \"@superbuilders/primer-tives/types\"\n\nfunction feedbackState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: RendererInteraction<Pcis>,\n\tsubmission: RendererSubmission<Pcis>,\n\tisCorrect: boolean,\n\tfeedbackContent: ContentInline[],\n\treview: InteractionReview<Pcis> | null\n): PrimerState<Pcis> {\n\tlet pending: Promise<PrimerState<Pcis>> | undefined\n\treturn {\n\t\tphase: \"feedback\",\n\t\tstimulus,\n\t\tinteraction,\n\t\tsubmission,\n\t\tisCorrect,\n\t\tfeedbackContent,\n\t\treview,\n\t\tadvance: function advance() {\n\t\t\tif (pending) {\n\t\t\t\treturn pending\n\t\t\t}\n\t\t\tpending = ctx.execute({ kind: \"observation\" }, \"observation\")\n\t\t\treturn pending\n\t\t},\n\t\ttoJSON: poisonToJSON\n\t}\n}\n\nexport { feedbackState }\n",
|
|
13
|
+
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport { ErrConflict, ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tMatchPair,\n\tPrimerState,\n\tRendererMatchChoice,\n\tRendererStimulus,\n\tStandardRendererInteraction\n} from \"@superbuilders/primer-tives/types\"\n\nfunction bumpCount(counts: Map<string, number>, key: string): void {\n\tconst prev = counts.get(key)\n\tconst next = prev === undefined ? 1 : prev + 1\n\tcounts.set(key, next)\n}\n\nfunction getCount(counts: Map<string, number>, key: string): number {\n\tconst recorded = counts.get(key)\n\treturn recorded === undefined ? 0 : recorded\n}\n\nfunction validateAssociationBounds(\n\tlog: SessionContext[\"log\"],\n\tpairs: MatchPair[],\n\tminAssociations: number,\n\tmaxAssociations: number\n): Error | null {\n\tif (pairs.length < minAssociations) {\n\t\tlog?.error(\"match submit below minAssociations\", { pairs, minAssociations })\n\t\treturn errors.wrap(ErrInvalidSubmission, `need at least ${minAssociations} associations`)\n\t}\n\tif (pairs.length > maxAssociations) {\n\t\tlog?.error(\"match submit above maxAssociations\", { pairs, maxAssociations })\n\t\treturn errors.wrap(ErrInvalidSubmission, `at most ${maxAssociations} associations`)\n\t}\n\treturn null\n}\n\nfunction validatePairsReferToKnownChoices(\n\tlog: SessionContext[\"log\"],\n\tpairs: MatchPair[],\n\tsourceIds: ReadonlySet<string>,\n\ttargetIds: ReadonlySet<string>\n): Error | null {\n\tfor (const pair of pairs) {\n\t\tif (!sourceIds.has(pair.source)) {\n\t\t\tlog?.error(\"match submit has unknown source\", { source: pair.source })\n\t\t\treturn errors.wrap(ErrInvalidSubmission, `unknown source '${pair.source}'`)\n\t\t}\n\t\tif (!targetIds.has(pair.target)) {\n\t\t\tlog?.error(\"match submit has unknown target\", { target: pair.target })\n\t\t\treturn errors.wrap(ErrInvalidSubmission, `unknown target '${pair.target}'`)\n\t\t}\n\t}\n\treturn null\n}\n\nfunction validateChoiceCaps(\n\tlog: SessionContext[\"log\"],\n\tside: \"source\" | \"target\",\n\tchoices: RendererMatchChoice[],\n\tcounts: Map<string, number>\n): Error | null {\n\tfor (const choice of choices) {\n\t\tconst count = getCount(counts, choice.identifier)\n\t\tif (choice.matchMax !== 0 && count > choice.matchMax) {\n\t\t\tlog?.error(`match submit exceeds ${side} matchMax`, {\n\t\t\t\tidentifier: choice.identifier,\n\t\t\t\tcount,\n\t\t\t\tmatchMax: choice.matchMax\n\t\t\t})\n\t\t\treturn errors.wrap(\n\t\t\t\tErrInvalidSubmission,\n\t\t\t\t`${side} '${choice.identifier}' used ${count} times, max ${choice.matchMax}`\n\t\t\t)\n\t\t}\n\t\tif (count < choice.matchMin) {\n\t\t\tlog?.error(`match submit below ${side} matchMin`, {\n\t\t\t\tidentifier: choice.identifier,\n\t\t\t\tcount,\n\t\t\t\tmatchMin: choice.matchMin\n\t\t\t})\n\t\t\treturn errors.wrap(\n\t\t\t\tErrInvalidSubmission,\n\t\t\t\t`${side} '${choice.identifier}' used ${count} times, min ${choice.matchMin}`\n\t\t\t)\n\t\t}\n\t}\n\treturn null\n}\n\nfunction validateMatchSubmission(\n\tlog: SessionContext[\"log\"],\n\tpairs: MatchPair[],\n\tsourceChoices: RendererMatchChoice[],\n\ttargetChoices: RendererMatchChoice[],\n\tminAssociations: number,\n\tmaxAssociations: number\n): Error | null {\n\tconst boundsError = validateAssociationBounds(log, pairs, minAssociations, maxAssociations)\n\tif (boundsError) {\n\t\treturn boundsError\n\t}\n\tconst sourceIds = new Set(\n\t\tsourceChoices.map(function getId(c) {\n\t\t\treturn c.identifier\n\t\t})\n\t)\n\tconst targetIds = new Set(\n\t\ttargetChoices.map(function getId(c) {\n\t\t\treturn c.identifier\n\t\t})\n\t)\n\tconst referenceError = validatePairsReferToKnownChoices(log, pairs, sourceIds, targetIds)\n\tif (referenceError) {\n\t\treturn referenceError\n\t}\n\tconst sourceCounts = new Map<string, number>()\n\tconst targetCounts = new Map<string, number>()\n\tfor (const pair of pairs) {\n\t\tbumpCount(sourceCounts, pair.source)\n\t\tbumpCount(targetCounts, pair.target)\n\t}\n\tconst sourceCapError = validateChoiceCaps(log, \"source\", sourceChoices, sourceCounts)\n\tif (sourceCapError) {\n\t\treturn sourceCapError\n\t}\n\tconst targetCapError = validateChoiceCaps(log, \"target\", targetChoices, targetCounts)\n\tif (targetCapError) {\n\t\treturn targetCapError\n\t}\n\treturn null\n}\n\nfunction matchState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: Extract<StandardRendererInteraction, { type: \"match\" }>\n): PrimerState<Pcis> {\n\tlet submitPending: Promise<PrimerState<Pcis>> | undefined\n\tlet submitKey: string | undefined\n\tlet timeoutPending: Promise<PrimerState<Pcis>> | undefined\n\n\tfunction submitMatch(pairs: MatchPair[]): Promise<PrimerState<Pcis>> {\n\t\tconst submission = { type: \"match\" as const, pairs }\n\t\tconst key = JSON.stringify(submission)\n\t\tif (timeoutPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot submit while timeout is in flight\"),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (submitPending) {\n\t\t\tif (submitKey === key) {\n\t\t\t\treturn submitPending\n\t\t\t}\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(\n\t\t\t\t\t\tErrConflict,\n\t\t\t\t\t\t\"cannot submit a different match payload while submit is in flight\"\n\t\t\t\t\t),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tconst validationError = validateMatchSubmission(\n\t\t\tctx.log,\n\t\t\tpairs,\n\t\t\tinteraction.sourceChoices,\n\t\t\tinteraction.targetChoices,\n\t\t\tinteraction.minAssociations,\n\t\t\tinteraction.maxAssociations\n\t\t)\n\t\tif (validationError) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(validationError, \"interaction\", { kind: \"interaction\", submission })\n\t\t\t)\n\t\t}\n\t\tsubmitKey = key\n\t\tsubmitPending = ctx\n\t\t\t.execute({ kind: \"interaction\", submission }, \"interaction\")\n\t\t\t.finally(function clearPending() {\n\t\t\t\tsubmitPending = undefined\n\t\t\t\tsubmitKey = undefined\n\t\t\t})\n\t\treturn submitPending\n\t}\n\n\tfunction timeout(): Promise<PrimerState<Pcis>> {\n\t\tconst intent = { kind: \"timeout\" as const }\n\t\tif (submitPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot timeout while submission is in flight\"),\n\t\t\t\t\t\"timeout\",\n\t\t\t\t\tintent\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (timeoutPending) {\n\t\t\treturn timeoutPending\n\t\t}\n\t\ttimeoutPending = ctx.execute(intent, \"timeout\").finally(function clearPending() {\n\t\t\ttimeoutPending = undefined\n\t\t})\n\t\treturn timeoutPending\n\t}\n\n\treturn {\n\t\tphase: \"interaction\",\n\t\tkind: \"match\",\n\t\tstimulus,\n\t\tinteraction,\n\t\tsourceChoices: interaction.sourceChoices,\n\t\ttargetChoices: interaction.targetChoices,\n\t\tminAssociations: interaction.minAssociations,\n\t\tmaxAssociations: interaction.maxAssociations,\n\t\tsubmitMatch,\n\t\ttimeout,\n\t\ttoJSON: poisonToJSON\n\t}\n}\n\nexport { matchState }\n",
|
|
14
14
|
"import { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type { PrimerState, RendererStimulus } from \"@superbuilders/primer-tives/types\"\n\nfunction observationState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null\n): PrimerState<Pcis> {\n\tlet pending: Promise<PrimerState<Pcis>> | undefined\n\treturn {\n\t\tphase: \"observation\",\n\t\tstimulus,\n\t\tadvance: function advance() {\n\t\t\tif (pending) {\n\t\t\t\treturn pending\n\t\t\t}\n\t\t\tpending = ctx.execute({ kind: \"observation\" }, \"observation\")\n\t\t\treturn pending\n\t\t},\n\t\ttoJSON: poisonToJSON\n\t}\n}\n\nexport { observationState }\n",
|
|
15
|
-
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport
|
|
16
|
-
"import { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport type { PciId, PciValue } from \"@superbuilders/primer-tives/pci\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type {\n\tPciInteraction,\n\tPciInteractionState,\n\tPrimerState,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/types\"\n\nfunction pciInteractionState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: PciInteraction<Pcis>\n): PciInteractionState<Pcis> {\n\tlet
|
|
17
|
-
"import { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tPrimerState,\n\tRendererInteraction,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/types\"\n\nfunction textEntryState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: Extract<RendererInteraction<Pcis>, { type: \"text-entry\" }>\n): PrimerState<Pcis> {\n\tlet
|
|
15
|
+
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport { ErrConflict, ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tPrimerState,\n\tRendererChoice,\n\tRendererStimulus,\n\tStandardRendererInteraction\n} from \"@superbuilders/primer-tives/types\"\n\nfunction findUnknownKey(orderedKeys: string[], choices: RendererChoice[]): string | null {\n\tconst choiceIds = new Set(\n\t\tchoices.map(function getId(c) {\n\t\t\treturn c.identifier\n\t\t})\n\t)\n\tfor (const key of orderedKeys) {\n\t\tif (!choiceIds.has(key)) {\n\t\t\treturn key\n\t\t}\n\t}\n\treturn null\n}\n\nfunction validateOrderSubmission(\n\tlog: SessionContext[\"log\"],\n\torderedKeys: string[],\n\tchoices: RendererChoice[],\n\tminChoices: number,\n\tmaxChoices: number\n): Error | null {\n\tif (orderedKeys.length < minChoices) {\n\t\tlog?.error(\"order submit below minChoices\", { orderedKeys, minChoices })\n\t\treturn errors.wrap(ErrInvalidSubmission, `need at least ${minChoices} selections`)\n\t}\n\tif (orderedKeys.length > maxChoices) {\n\t\tlog?.error(\"order submit above maxChoices\", { orderedKeys, maxChoices })\n\t\treturn errors.wrap(ErrInvalidSubmission, `at most ${maxChoices} selections`)\n\t}\n\tconst uniqueKeys = new Set(orderedKeys)\n\tif (uniqueKeys.size !== orderedKeys.length) {\n\t\tlog?.error(\"order submit has duplicates\", { orderedKeys })\n\t\treturn errors.wrap(ErrInvalidSubmission, \"duplicate selections\")\n\t}\n\tconst unknownKey = findUnknownKey(orderedKeys, choices)\n\tif (unknownKey) {\n\t\tlog?.error(\"order submit has unknown key\", { key: unknownKey })\n\t\treturn errors.wrap(ErrInvalidSubmission, `unknown choice '${unknownKey}'`)\n\t}\n\treturn null\n}\n\nfunction orderState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: Extract<StandardRendererInteraction, { type: \"order\" }>\n): PrimerState<Pcis> {\n\tlet submitPending: Promise<PrimerState<Pcis>> | undefined\n\tlet submitKey: string | undefined\n\tlet timeoutPending: Promise<PrimerState<Pcis>> | undefined\n\n\tfunction submitOrder(orderedKeys: string[]): Promise<PrimerState<Pcis>> {\n\t\tconst submission = { type: \"order\" as const, orderedKeys }\n\t\tconst key = JSON.stringify(submission)\n\t\tif (timeoutPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot submit while timeout is in flight\"),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (submitPending) {\n\t\t\tif (submitKey === key) {\n\t\t\t\treturn submitPending\n\t\t\t}\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(\n\t\t\t\t\t\tErrConflict,\n\t\t\t\t\t\t\"cannot submit a different order payload while submit is in flight\"\n\t\t\t\t\t),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tconst validationError = validateOrderSubmission(\n\t\t\tctx.log,\n\t\t\torderedKeys,\n\t\t\tinteraction.choices,\n\t\t\tinteraction.minChoices,\n\t\t\tinteraction.maxChoices\n\t\t)\n\t\tif (validationError) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(validationError, \"interaction\", { kind: \"interaction\", submission })\n\t\t\t)\n\t\t}\n\t\tsubmitKey = key\n\t\tsubmitPending = ctx\n\t\t\t.execute({ kind: \"interaction\", submission }, \"interaction\")\n\t\t\t.finally(function clearPending() {\n\t\t\t\tsubmitPending = undefined\n\t\t\t\tsubmitKey = undefined\n\t\t\t})\n\t\treturn submitPending\n\t}\n\n\tfunction timeout(): Promise<PrimerState<Pcis>> {\n\t\tconst intent = { kind: \"timeout\" as const }\n\t\tif (submitPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot timeout while submission is in flight\"),\n\t\t\t\t\t\"timeout\",\n\t\t\t\t\tintent\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (timeoutPending) {\n\t\t\treturn timeoutPending\n\t\t}\n\t\ttimeoutPending = ctx.execute(intent, \"timeout\").finally(function clearPending() {\n\t\t\ttimeoutPending = undefined\n\t\t})\n\t\treturn timeoutPending\n\t}\n\n\treturn {\n\t\tphase: \"interaction\",\n\t\tkind: \"order\",\n\t\tstimulus,\n\t\tinteraction,\n\t\tchoices: interaction.choices,\n\t\tminChoices: interaction.minChoices,\n\t\tmaxChoices: interaction.maxChoices,\n\t\tsubmitOrder,\n\t\ttimeout,\n\t\ttoJSON: poisonToJSON\n\t}\n}\n\nexport { orderState }\n",
|
|
16
|
+
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport { ErrConflict } from \"@superbuilders/primer-tives/errors\"\nimport type { PciId, PciValue } from \"@superbuilders/primer-tives/pci\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type {\n\tPciInteraction,\n\tPciInteractionState,\n\tPrimerState,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/types\"\n\nfunction pciInteractionState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: PciInteraction<Pcis>\n): PciInteractionState<Pcis> {\n\tlet submitPending: Promise<PrimerState<Pcis>> | undefined\n\tlet submitKey: string | undefined\n\tlet timeoutPending: Promise<PrimerState<Pcis>> | undefined\n\tconst { pciId, properties } = interaction\n\n\tfunction submit(value: PciValue<typeof pciId>): Promise<PrimerState<Pcis>> {\n\t\tconst submission = { type: \"portable-custom\" as const, pciId, value }\n\t\tconst key = JSON.stringify(submission)\n\t\tif (timeoutPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot submit while timeout is in flight\"),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (submitPending) {\n\t\t\tif (submitKey === key) {\n\t\t\t\treturn submitPending\n\t\t\t}\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(\n\t\t\t\t\t\tErrConflict,\n\t\t\t\t\t\t\"cannot submit a different pci payload while submit is in flight\"\n\t\t\t\t\t),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tctx.log?.debug(\"pci submit\", { pciId })\n\t\tsubmitKey = key\n\t\tsubmitPending = ctx\n\t\t\t.execute({ kind: \"interaction\", submission }, \"interaction\")\n\t\t\t.finally(function clearPending() {\n\t\t\t\tsubmitPending = undefined\n\t\t\t\tsubmitKey = undefined\n\t\t\t})\n\t\treturn submitPending\n\t}\n\n\tfunction timeout(): Promise<PrimerState<Pcis>> {\n\t\tconst intent = { kind: \"timeout\" as const }\n\t\tif (submitPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot timeout while submission is in flight\"),\n\t\t\t\t\t\"timeout\",\n\t\t\t\t\tintent\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (timeoutPending) {\n\t\t\treturn timeoutPending\n\t\t}\n\t\tctx.log?.debug(\"pci timeout\", { pciId })\n\t\ttimeoutPending = ctx.execute(intent, \"timeout\").finally(function clearPending() {\n\t\t\ttimeoutPending = undefined\n\t\t})\n\t\treturn timeoutPending\n\t}\n\n\t// biome-ignore lint/plugin: TS cannot verify mapped-union construction from generic Pcis — pciId↔properties correlation preserved by input\n\treturn {\n\t\tphase: \"interaction\",\n\t\tkind: \"portable-custom\",\n\t\tstimulus,\n\t\tinteraction,\n\t\tpciId,\n\t\tproperties,\n\t\tsubmit,\n\t\ttimeout,\n\t\ttoJSON: poisonToJSON\n\t} as PciInteractionState<Pcis>\n}\n\nexport { pciInteractionState }\n",
|
|
17
|
+
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/consumed\"\nimport { ErrConflict } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/pci\"\nimport type {\n\tPrimerState,\n\tRendererInteraction,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/types\"\n\nfunction textEntryState<Pcis extends PciId>(\n\tctx: SessionContext<Pcis>,\n\tstimulus: RendererStimulus | null,\n\tinteraction: Extract<RendererInteraction<Pcis>, { type: \"text-entry\" }>\n): PrimerState<Pcis> {\n\tlet submitPending: Promise<PrimerState<Pcis>> | undefined\n\tlet submitKey: string | undefined\n\tlet timeoutPending: Promise<PrimerState<Pcis>> | undefined\n\n\tfunction submitText(value: string): Promise<PrimerState<Pcis>> {\n\t\tconst submission = { type: \"text-entry\" as const, value }\n\t\tconst key = JSON.stringify(submission)\n\t\tif (timeoutPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot submit while timeout is in flight\"),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (submitPending) {\n\t\t\tif (submitKey === key) {\n\t\t\t\treturn submitPending\n\t\t\t}\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(\n\t\t\t\t\t\tErrConflict,\n\t\t\t\t\t\t\"cannot submit a different text payload while submit is in flight\"\n\t\t\t\t\t),\n\t\t\t\t\t\"interaction\",\n\t\t\t\t\t{ kind: \"interaction\", submission }\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tsubmitKey = key\n\t\tsubmitPending = ctx\n\t\t\t.execute({ kind: \"interaction\", submission }, \"interaction\")\n\t\t\t.finally(function clearPending() {\n\t\t\t\tsubmitPending = undefined\n\t\t\t\tsubmitKey = undefined\n\t\t\t})\n\t\treturn submitPending\n\t}\n\n\tfunction timeout(): Promise<PrimerState<Pcis>> {\n\t\tconst intent = { kind: \"timeout\" as const }\n\t\tif (submitPending) {\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrConflict, \"cannot timeout while submission is in flight\"),\n\t\t\t\t\t\"timeout\",\n\t\t\t\t\tintent\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\tif (timeoutPending) {\n\t\t\treturn timeoutPending\n\t\t}\n\t\ttimeoutPending = ctx.execute(intent, \"timeout\").finally(function clearPending() {\n\t\t\ttimeoutPending = undefined\n\t\t})\n\t\treturn timeoutPending\n\t}\n\n\treturn {\n\t\tphase: \"interaction\",\n\t\tkind: \"text-entry\",\n\t\tstimulus,\n\t\tinteraction,\n\t\tsubmitText,\n\t\ttimeout,\n\t\ttoJSON: poisonToJSON\n\t}\n}\n\nexport { textEntryState }\n",
|
|
18
|
+
"const SUBJECTS = [\"math\", \"vocabulary\"] as const\n\ntype Subject = (typeof SUBJECTS)[number]\n\ntype SubjectScope = Subject | \"all\"\n\nexport { SUBJECTS }\nexport type { Subject, SubjectScope }\n",
|
|
18
19
|
"type ContentSpan = { type: \"text\"; value: string } | { type: \"italic\"; value: string }\n\ntype ContentInline = ContentSpan | { type: \"latex\"; value: string }\n\ntype ContentBlock = { type: \"paragraph\"; children: ContentInline[] }\n\nfunction inlinesToPlainText(nodes: ContentInline[]): string {\n\tconst parts: string[] = []\n\tfor (const node of nodes) {\n\t\tswitch (node.type) {\n\t\t\tcase \"text\":\n\t\t\t\tparts.push(node.value)\n\t\t\t\tbreak\n\t\t\tcase \"italic\":\n\t\t\t\tparts.push(node.value)\n\t\t\t\tbreak\n\t\t\tcase \"latex\":\n\t\t\t\tparts.push(node.value)\n\t\t\t\tbreak\n\t\t}\n\t}\n\treturn parts.join(\"\")\n}\n\nfunction blocksToPlainText(blocks: ContentBlock[]): string {\n\treturn blocks\n\t\t.map(function blockText(block) {\n\t\t\treturn inlinesToPlainText(block.children)\n\t\t})\n\t\t.join(\"\\n\")\n}\n\nexport type { ContentBlock, ContentInline, ContentSpan }\nexport { blocksToPlainText, inlinesToPlainText }\n"
|
|
19
20
|
],
|
|
20
|
-
"mappings": "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",
|
|
21
|
-
"debugId": "
|
|
21
|
+
"mappings": "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",
|
|
22
|
+
"debugId": "7D25EB69305CCB9264756E2164756E21",
|
|
22
23
|
"names": []
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match-state.d.ts","sourceRoot":"","sources":["../src/match-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"match-state.d.ts","sourceRoot":"","sources":["../src/match-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,EAEX,WAAW,EAEX,gBAAgB,EAChB,2BAA2B,EAC3B,MAAM,mCAAmC,CAAA;AA8H1C,iBAAS,UAAU,CAAC,IAAI,SAAS,KAAK,EACrC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EACzB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,EACjC,WAAW,EAAE,OAAO,CAAC,2BAA2B,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GAClE,WAAW,CAAC,IAAI,CAAC,CAwFnB;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
package/dist/order-state.d.ts
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
import type { ContentInline } from "./content";
|
|
2
1
|
import type { SessionContext } from "./session-context";
|
|
3
2
|
import type { PciId } from "./pci";
|
|
4
|
-
import type { PrimerState,
|
|
5
|
-
|
|
3
|
+
import type { PrimerState, RendererStimulus, StandardRendererInteraction } from "./types";
|
|
4
|
+
declare function orderState<Pcis extends PciId>(ctx: SessionContext<Pcis>, stimulus: RendererStimulus | null, interaction: Extract<StandardRendererInteraction, {
|
|
6
5
|
type: "order";
|
|
7
|
-
|
|
8
|
-
choices: RendererChoice[];
|
|
9
|
-
shuffle: boolean;
|
|
10
|
-
minChoices: number;
|
|
11
|
-
maxChoices: number;
|
|
12
|
-
}
|
|
13
|
-
declare function orderState<Pcis extends PciId>(ctx: SessionContext<Pcis>, stimulus: RendererStimulus | null, interaction: OrderInteractionWire): PrimerState<Pcis>;
|
|
6
|
+
}>): PrimerState<Pcis>;
|
|
14
7
|
export { orderState };
|
|
15
8
|
//# sourceMappingURL=order-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-state.d.ts","sourceRoot":"","sources":["../src/order-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"order-state.d.ts","sourceRoot":"","sources":["../src/order-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,EACX,WAAW,EAEX,gBAAgB,EAChB,2BAA2B,EAC3B,MAAM,mCAAmC,CAAA;AA4C1C,iBAAS,UAAU,CAAC,IAAI,SAAS,KAAK,EACrC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EACzB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,EACjC,WAAW,EAAE,OAAO,CAAC,2BAA2B,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GAClE,WAAW,CAAC,IAAI,CAAC,CAsFnB;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
package/dist/pci-state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pci-state.d.ts","sourceRoot":"","sources":["../src/pci-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pci-state.d.ts","sourceRoot":"","sources":["../src/pci-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,iCAAiC,CAAA;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,KAAK,EACX,cAAc,EACd,mBAAmB,EAEnB,gBAAgB,EAChB,MAAM,mCAAmC,CAAA;AAE1C,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,CA6E3B;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|
package/dist/session.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { PciId } from "./pci";
|
|
2
2
|
import type { PrimerLogger, TransitionPhase, WireIntent } from "./session-context";
|
|
3
|
+
import type { SubjectScope } from "./subject";
|
|
3
4
|
import type { TransportResult, WireRequestBody } from "./transport";
|
|
4
5
|
import type { PrimerState } from "./types";
|
|
5
6
|
interface SessionConfig<Pcis extends PciId = PciId> {
|
|
6
|
-
readonly studentId: string;
|
|
7
7
|
readonly supportedPcis: readonly Pcis[];
|
|
8
|
+
readonly subject: SubjectScope;
|
|
8
9
|
readonly log: PrimerLogger | undefined;
|
|
9
10
|
readonly transport: (body: WireRequestBody<Pcis>) => Promise<TransportResult<Pcis>>;
|
|
10
11
|
}
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,EACX,YAAY,EAEZ,eAAe,EACf,UAAU,EACV,MAAM,6CAA6C,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,KAAK,EACX,eAAe,EACf,eAAe,EAEf,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EAEX,WAAW,EAGX,MAAM,mCAAmC,CAAA;AAU1C,UAAU,aAAa,CAAC,IAAI,SAAS,KAAK,GAAG,KAAK;IACjD,QAAQ,CAAC,aAAa,EAAE,SAAS,IAAI,EAAE,CAAA;IACvC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;IAC9B,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;AAwBD,iBAAS,WAAW,CAAC,IAAI,SAAS,KAAK,EAAE,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC;sBAmDtD,UAAU,CAAC,IAAI,CAAC,SACjB,eAAe,KACpB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;EA+E7B;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AACtB,YAAY,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../src/subject.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ,iCAAkC,CAAA;AAEhD,KAAK,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAExC,KAAK,YAAY,GAAG,OAAO,GAAG,KAAK,CAAA;AAEnC,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-entry-state.d.ts","sourceRoot":"","sources":["../src/text-entry-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"text-entry-state.d.ts","sourceRoot":"","sources":["../src/text-entry-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,EACX,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,mCAAmC,CAAA;AAE1C,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,CAuEnB;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
package/dist/transport.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { PciId } from "./pci";
|
|
2
2
|
import type { SessionContext, WireIntent } from "./session-context";
|
|
3
|
+
import type { SubjectScope } from "./subject";
|
|
3
4
|
import type { ContentInline } from "./content";
|
|
4
|
-
import type {
|
|
5
|
+
import type { InteractionReview, RendererInteraction, RendererStimulus, RendererSubmission } from "./types";
|
|
5
6
|
declare const ADVANCE_PATH = "/api/v0/advance";
|
|
6
7
|
type WireResult<Pcis extends PciId = PciId> = {
|
|
7
8
|
outcome: "advanced";
|
|
@@ -14,14 +15,14 @@ type WireResult<Pcis extends PciId = PciId> = {
|
|
|
14
15
|
submission: RendererSubmission<Pcis>;
|
|
15
16
|
isCorrect: boolean;
|
|
16
17
|
feedbackContent: ContentInline[];
|
|
17
|
-
|
|
18
|
+
review: InteractionReview<Pcis> | null;
|
|
18
19
|
} | {
|
|
19
20
|
outcome: "completed";
|
|
20
21
|
};
|
|
21
22
|
interface WireRequestBody<Pcis extends PciId = PciId> {
|
|
22
|
-
studentId: string;
|
|
23
23
|
supportedPcis: readonly PciId[];
|
|
24
24
|
intent: WireIntent<Pcis>;
|
|
25
|
+
subject: SubjectScope;
|
|
25
26
|
}
|
|
26
27
|
type TransportResult<Pcis extends PciId = PciId> = {
|
|
27
28
|
ok: true;
|
|
@@ -31,7 +32,7 @@ type TransportResult<Pcis extends PciId = PciId> = {
|
|
|
31
32
|
error: Error;
|
|
32
33
|
};
|
|
33
34
|
interface TransportConfig<Pcis extends PciId = PciId> {
|
|
34
|
-
readonly
|
|
35
|
+
readonly accessToken: string;
|
|
35
36
|
readonly supportedPcis: readonly Pcis[];
|
|
36
37
|
readonly origin: string;
|
|
37
38
|
readonly fetch?: typeof globalThis.fetch;
|
package/dist/transport.d.ts.map
CHANGED
|
@@ -1 +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,EACX,
|
|
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,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EACX,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,mCAAmC,CAAA;AAE1C,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,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACrC,GACD;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAA;AAE3B,UAAU,eAAe,CAAC,IAAI,SAAS,KAAK,GAAG,KAAK;IACnD,aAAa,EAAE,SAAS,KAAK,EAAE,CAAA;IAC/B,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IACxB,OAAO,EAAE,YAAY,CAAA;CACrB;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,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,aAAa,EAAE,SAAS,IAAI,EAAE,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,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,CAuB3C;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,CA0ErF;AAED,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,CAAA;AACpE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,CAAA"}
|