@superbuilders/primer-tives 1.1.4 → 1.2.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 +5 -5
- package/dist/client/index.js +6 -1
- package/dist/client/index.js.map +5 -5
- package/dist/client/session.d.ts.map +1 -1
- package/dist/client/transport.d.ts.map +1 -1
- package/dist/errors.d.ts +2 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -1
- package/dist/errors.js.map +3 -3
- package/dist/server/create-server.d.ts +6 -4
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/index.js +2 -1
- package/dist/server/index.js.map +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,20 +10,18 @@ bun add @superbuilders/primer-tives
|
|
|
10
10
|
|
|
11
11
|
## Subpaths
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Every symbol is exported from exactly one subpath. Import from the subpath that owns the thing you need.
|
|
14
14
|
|
|
15
15
|
| Subpath | What it owns |
|
|
16
16
|
|---|---|
|
|
17
17
|
| `@superbuilders/primer-tives/server` | `createPrimerServer` and the four `PrimerServer` methods, the config and return types |
|
|
18
18
|
| `@superbuilders/primer-tives/client` | `create` (browser SDK), the `PrimerState` discriminated union, every `*State` interface, the PCI render props |
|
|
19
19
|
| `@superbuilders/primer-tives/contracts` | wire-shape types (`RendererInteraction`, `RendererSubmission`, `ContentInline`, PCI base types, review types), Zod schemas, the optional submission validator |
|
|
20
|
-
| `@superbuilders/primer-tives/errors` | every error sentinel (`Err…`)
|
|
20
|
+
| `@superbuilders/primer-tives/errors` | every error sentinel (`Err…`) |
|
|
21
21
|
| `@superbuilders/primer-tives/logger` | the `PrimerLogger` interface, accepted by both server and client config |
|
|
22
22
|
| `@superbuilders/primer-tives/grade-level` | `GradeLevel` type and the `GRADE_LEVELS` constant |
|
|
23
23
|
| `@superbuilders/primer-tives/subject` | `Subject`, `SubjectScope`, the `SUBJECTS` constant |
|
|
24
24
|
|
|
25
|
-
There is **no convenience re-export**. Importing `ErrInvalidSecretKey` from `/server` or `/client` will not work — it lives at `/errors` only. Same for `PrimerLogger` (`/logger`), grade level constants (`/grade-level`), subjects (`/subject`), and every wire-shape type (`/contracts`).
|
|
26
|
-
|
|
27
25
|
## End-to-end examples
|
|
28
26
|
|
|
29
27
|
### Native/manual student flow
|
|
@@ -252,7 +250,7 @@ Partial upsert of a native/manual student's placement-routing hints. Omitted fie
|
|
|
252
250
|
const { gradeLevel } = await primer.setStudentHints(studentId, { gradeLevel: "3" })
|
|
253
251
|
```
|
|
254
252
|
|
|
255
|
-
- Required for native/manual students before their first session
|
|
253
|
+
- Required for native/manual students before their first session. If the browser calls `/advance` without a `gradeLevel` on record, the server returns HTTP 412 `needs_hints` and the SDK surfaces it as `ErrNeedsHints` on a `fatal` state.
|
|
256
254
|
- Safe to call repeatedly. Each call is a partial upsert.
|
|
257
255
|
- Not needed for Timeback-linked students: `exchangeTimebackStudentForAccessToken` syncs the grade level from the authority on every call.
|
|
258
256
|
- Throws `ErrStudentNotFound` if `studentId` is unknown; `ErrBadRequest` if the payload fails validation (e.g. unsupported `gradeLevel`).
|
|
@@ -609,6 +607,7 @@ import {
|
|
|
609
607
|
ErrTokenExpired,
|
|
610
608
|
ErrForbidden,
|
|
611
609
|
ErrNotFound,
|
|
610
|
+
ErrNeedsHints,
|
|
612
611
|
ErrUnsupportedPci,
|
|
613
612
|
// /client thrown directly by `create()`
|
|
614
613
|
ErrMalformedAccessToken,
|
|
@@ -654,6 +653,7 @@ import {
|
|
|
654
653
|
| `ErrTokenExpired` | HTTP 401 with token-expired detail |
|
|
655
654
|
| `ErrForbidden` | HTTP 403 |
|
|
656
655
|
| `ErrNotFound` | HTTP 404 |
|
|
656
|
+
| `ErrNeedsHints` | HTTP 412 — the student has no `gradeLevel` on record; backend must call `setStudentHints` and mint a fresh access token |
|
|
657
657
|
| `ErrUnsupportedPci` | HTTP 422 or a frame asks for a PCI not in `supportedPcis` |
|
|
658
658
|
|
|
659
659
|
## Thrown directly by `create()`
|
package/dist/client/index.js
CHANGED
|
@@ -21,6 +21,7 @@ var ErrInvalidSecretKey = errors.new("invalid secret key");
|
|
|
21
21
|
var ErrStudentNotFound = errors.new("student not found");
|
|
22
22
|
var ErrUnsupportedGrade = errors.new("unsupported grade");
|
|
23
23
|
var ErrTimebackUnavailable = errors.new("timeback unavailable");
|
|
24
|
+
var ErrNeedsHints = errors.new("student needs hints set before /advance");
|
|
24
25
|
// src/contracts/content.ts
|
|
25
26
|
function inlinesToPlainText(nodes) {
|
|
26
27
|
const parts = [];
|
|
@@ -383,6 +384,9 @@ function httpSentinel(status, body) {
|
|
|
383
384
|
if (status === 409) {
|
|
384
385
|
return ErrConflict;
|
|
385
386
|
}
|
|
387
|
+
if (status === 412) {
|
|
388
|
+
return ErrNeedsHints;
|
|
389
|
+
}
|
|
386
390
|
if (status === 429) {
|
|
387
391
|
return ErrRateLimited;
|
|
388
392
|
}
|
|
@@ -913,6 +917,7 @@ var FATAL_SENTINELS = [
|
|
|
913
917
|
ErrTokenExpired,
|
|
914
918
|
ErrForbidden,
|
|
915
919
|
ErrNotFound,
|
|
920
|
+
ErrNeedsHints,
|
|
916
921
|
ErrUnsupportedPci
|
|
917
922
|
];
|
|
918
923
|
function isFatalError(err) {
|
|
@@ -1071,4 +1076,4 @@ export {
|
|
|
1071
1076
|
create
|
|
1072
1077
|
};
|
|
1073
1078
|
|
|
1074
|
-
//# debugId=
|
|
1079
|
+
//# debugId=EA813B14A6F0A81364756E2164756E21
|
package/dist/client/index.js.map
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/errors.ts", "../src/contracts/content.ts", "../src/contracts/validation.ts", "../src/contracts/pci-schemas.ts", "../src/client/create.ts", "../src/client/transport.ts", "../src/client/session.ts", "../src/client/consumed.ts", "../src/client/choice-state.ts", "../src/client/extended-text-state.ts", "../src/client/feedback-state.ts", "../src/client/match-state.ts", "../src/client/observation-state.ts", "../src/client/order-state.ts", "../src/client/pci-state.ts", "../src/client/text-entry-state.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"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 ErrExternalAuthorityRequired = errors.new(\"external authority required\")\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\nconst ErrInvalidSecretKey = errors.new(\"invalid secret key\")\nconst ErrStudentNotFound = errors.new(\"student not found\")\nconst ErrUnsupportedGrade = errors.new(\"unsupported grade\")\nconst ErrTimebackUnavailable = errors.new(\"timeback unavailable\")\n\nexport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrExternalAuthorityRequired,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSecretKey,\n\tErrInvalidSubmission,\n\tErrJsonParse,\n\tErrMalformedAccessToken,\n\tErrNetwork,\n\tErrNotFound,\n\tErrNotSerializable,\n\tErrRateLimited,\n\tErrServerError,\n\tErrServiceUnavailable,\n\tErrStudentNotFound,\n\tErrTimebackUnavailable,\n\tErrTimeout,\n\tErrTokenExpired,\n\tErrUnsupportedGrade,\n\tErrUnsupportedPci\n}\n",
|
|
5
|
+
"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 ErrExternalAuthorityRequired = errors.new(\"external authority required\")\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\nconst ErrInvalidSecretKey = errors.new(\"invalid secret key\")\nconst ErrStudentNotFound = errors.new(\"student not found\")\nconst ErrUnsupportedGrade = errors.new(\"unsupported grade\")\nconst ErrTimebackUnavailable = errors.new(\"timeback unavailable\")\nconst ErrNeedsHints = errors.new(\"student needs hints set before /advance\")\n\nexport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrExternalAuthorityRequired,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSecretKey,\n\tErrInvalidSubmission,\n\tErrJsonParse,\n\tErrMalformedAccessToken,\n\tErrNeedsHints,\n\tErrNetwork,\n\tErrNotFound,\n\tErrNotSerializable,\n\tErrRateLimited,\n\tErrServerError,\n\tErrServiceUnavailable,\n\tErrStudentNotFound,\n\tErrTimebackUnavailable,\n\tErrTimeout,\n\tErrTokenExpired,\n\tErrUnsupportedGrade,\n\tErrUnsupportedPci\n}\n",
|
|
6
6
|
"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",
|
|
7
7
|
"import { z } from \"zod\"\n\nimport type { PciId } from \"@superbuilders/primer-tives/contracts/pci\"\n\nimport {\n\tDivisionRemainderSubmissionSchema,\n\tFractionAdditionSubmissionSchema\n} from \"@superbuilders/primer-tives/contracts/pci-schemas\"\nimport type {\n\tMatchPair,\n\tRendererChoice,\n\tRendererInteraction,\n\tRendererMatchChoice,\n\tRendererSubmission\n} from \"@superbuilders/primer-tives/contracts/types\"\n\nconst MatchPairSchema = z.object({\n\tsource: z.string(),\n\ttarget: z.string()\n})\n\nconst ChoiceSubmissionSchema = z.object({\n\ttype: z.literal(\"choice\"),\n\tselectedKeys: z.array(z.string())\n})\n\nconst TextEntrySubmissionSchema = z.object({\n\ttype: z.literal(\"text-entry\"),\n\tvalue: z.string()\n})\n\nconst ExtendedTextSubmissionSchema = z.object({\n\ttype: z.literal(\"extended-text\"),\n\tvalues: z.array(z.string()).min(1)\n})\n\nconst OrderSubmissionSchema = z.object({\n\ttype: z.literal(\"order\"),\n\torderedKeys: z.array(z.string())\n})\n\nconst MatchSubmissionSchema = z.object({\n\ttype: z.literal(\"match\"),\n\tpairs: z.array(MatchPairSchema)\n})\n\nconst DivisionRemainderPciSubmissionSchema = z.object({\n\ttype: z.literal(\"portable-custom\"),\n\tpciId: z.literal(\"urn:primer:pci:division-remainder\"),\n\tvalue: DivisionRemainderSubmissionSchema\n})\n\nconst FractionAdditionPciSubmissionSchema = z.object({\n\ttype: z.literal(\"portable-custom\"),\n\tpciId: z.literal(\"urn:primer:pci:fraction-addition\"),\n\tvalue: FractionAdditionSubmissionSchema\n})\n\nconst RendererSubmissionSchema = z.union([\n\tChoiceSubmissionSchema,\n\tTextEntrySubmissionSchema,\n\tExtendedTextSubmissionSchema,\n\tOrderSubmissionSchema,\n\tMatchSubmissionSchema,\n\tDivisionRemainderPciSubmissionSchema,\n\tFractionAdditionPciSubmissionSchema\n])\n\nfunction duplicates<T>(values: readonly T[], keyOf: (value: T) => string): string[] {\n\tconst seen = new Set<string>()\n\tconst duplicated = new Set<string>()\n\tfor (const value of values) {\n\t\tconst key = keyOf(value)\n\t\tif (seen.has(key)) {\n\t\t\tduplicated.add(key)\n\t\t\tcontinue\n\t\t}\n\t\tseen.add(key)\n\t}\n\treturn [...duplicated]\n}\n\nfunction findUnknownIds(values: readonly string[], choices: RendererChoice[]): string[] {\n\tconst ids = new Set(\n\t\tchoices.map(function getId(choice) {\n\t\t\treturn choice.identifier\n\t\t})\n\t)\n\treturn values.filter(function isUnknown(value) {\n\t\treturn !ids.has(value)\n\t})\n}\n\nfunction countByIdentifier(pairs: MatchPair[], side: \"source\" | \"target\"): Map<string, number> {\n\tconst counts = new Map<string, number>()\n\tfor (const pair of pairs) {\n\t\tconst key = pair[side]\n\t\tconst currentCount = counts.get(key)\n\t\tif (currentCount === undefined) {\n\t\t\tcounts.set(key, 1)\n\t\t\tcontinue\n\t\t}\n\t\tcounts.set(key, currentCount + 1)\n\t}\n\treturn counts\n}\n\nfunction validateUsageBounds(\n\tchoices: RendererMatchChoice[],\n\tcounts: Map<string, number>,\n\tside: \"source\" | \"target\"\n): string[] {\n\tconst issues: string[] = []\n\tfor (const choice of choices) {\n\t\tconst maybeCount = counts.get(choice.identifier)\n\t\tconst count = maybeCount === undefined ? 0 : maybeCount\n\t\tif (choice.matchMax !== 0 && count > choice.matchMax) {\n\t\t\tissues.push(`${side} '${choice.identifier}' used ${count} times, max ${choice.matchMax}`)\n\t\t}\n\t\tif (count < choice.matchMin) {\n\t\t\tissues.push(`${side} '${choice.identifier}' used ${count} times, min ${choice.matchMin}`)\n\t\t}\n\t}\n\treturn issues\n}\n\nfunction pciSubmissionSchema(pciId: PciId) {\n\tswitch (pciId) {\n\t\tcase \"urn:primer:pci:division-remainder\":\n\t\t\treturn DivisionRemainderSubmissionSchema\n\t\tcase \"urn:primer:pci:fraction-addition\":\n\t\t\treturn FractionAdditionSubmissionSchema\n\t}\n\tconst exhaustiveCheck: never = pciId\n\treturn exhaustiveCheck\n}\n\ntype SubmissionValidationSuccess = {\n\tok: true\n\tvalue: RendererSubmission\n}\n\ntype SubmissionValidationFailure = {\n\tok: false\n\tissues: readonly string[]\n}\n\ntype SubmissionValidationResult = SubmissionValidationSuccess | SubmissionValidationFailure\n\nfunction typeMismatch(interactionType: string, submissionType: string): string {\n\treturn `submission type '${submissionType}' does not match interaction type '${interactionType}'`\n}\n\nfunction buildResult(\n\tsubmission: RendererSubmission,\n\tissues: readonly string[]\n): SubmissionValidationResult {\n\tif (issues.length > 0) {\n\t\treturn { ok: false, issues }\n\t}\n\treturn { ok: true, value: submission }\n}\n\nfunction validateChoice(\n\tinteraction: Extract<RendererInteraction, { type: \"choice\" }>,\n\tsubmission: Extract<RendererSubmission, { type: \"choice\" }>\n): readonly string[] {\n\tconst issues: string[] = []\n\tif (submission.selectedKeys.length < interaction.minChoices) {\n\t\tissues.push(`need at least ${interaction.minChoices} selections`)\n\t}\n\tif (submission.selectedKeys.length > interaction.maxChoices) {\n\t\tissues.push(`at most ${interaction.maxChoices} selections`)\n\t}\n\tconst duplicateKeys = duplicates(submission.selectedKeys, function keyOf(value) {\n\t\treturn value\n\t})\n\tif (duplicateKeys.length > 0) {\n\t\tissues.push(\"duplicate selections\")\n\t}\n\tconst unknownKeys = findUnknownIds(submission.selectedKeys, interaction.options)\n\tif (unknownKeys.length > 0) {\n\t\tissues.push(`unknown options: ${unknownKeys.join(\", \")}`)\n\t}\n\treturn issues\n}\n\nfunction validateExtendedText(\n\tinteraction: Extract<RendererInteraction, { type: \"extended-text\" }>,\n\tsubmission: Extract<RendererSubmission, { type: \"extended-text\" }>\n): readonly string[] {\n\tconst issues: string[] = []\n\tif (interaction.cardinality === \"single\") {\n\t\tif (submission.values.length !== 1) {\n\t\t\tissues.push(\"single-cardinality extended-text requires exactly one value\")\n\t\t}\n\t\treturn issues\n\t}\n\tif (submission.values.length < interaction.minStrings) {\n\t\tissues.push(`need at least ${interaction.minStrings} values`)\n\t}\n\tif (submission.values.length > interaction.maxStrings) {\n\t\tissues.push(`at most ${interaction.maxStrings} values`)\n\t}\n\tconst duplicateValues = duplicates(submission.values, function keyOf(value) {\n\t\treturn value\n\t})\n\tif (duplicateValues.length > 0) {\n\t\tissues.push(\"duplicate values are not allowed for multiple-cardinality extended-text\")\n\t}\n\treturn issues\n}\n\nfunction validateOrder(\n\tinteraction: Extract<RendererInteraction, { type: \"order\" }>,\n\tsubmission: Extract<RendererSubmission, { type: \"order\" }>\n): readonly string[] {\n\tconst issues: string[] = []\n\tif (submission.orderedKeys.length < interaction.minChoices) {\n\t\tissues.push(`need at least ${interaction.minChoices} selections`)\n\t}\n\tif (submission.orderedKeys.length > interaction.maxChoices) {\n\t\tissues.push(`at most ${interaction.maxChoices} selections`)\n\t}\n\tconst duplicateKeys = duplicates(submission.orderedKeys, function keyOf(value) {\n\t\treturn value\n\t})\n\tif (duplicateKeys.length > 0) {\n\t\tissues.push(\"duplicate selections\")\n\t}\n\tconst unknownKeys = findUnknownIds(submission.orderedKeys, interaction.choices)\n\tif (unknownKeys.length > 0) {\n\t\tissues.push(`unknown choices: ${unknownKeys.join(\", \")}`)\n\t}\n\treturn issues\n}\n\nfunction validateMatch(\n\tinteraction: Extract<RendererInteraction, { type: \"match\" }>,\n\tsubmission: Extract<RendererSubmission, { type: \"match\" }>\n): readonly string[] {\n\tconst issues: string[] = []\n\tif (submission.pairs.length < interaction.minAssociations) {\n\t\tissues.push(`need at least ${interaction.minAssociations} associations`)\n\t}\n\tif (submission.pairs.length > interaction.maxAssociations) {\n\t\tissues.push(`at most ${interaction.maxAssociations} associations`)\n\t}\n\tconst duplicatePairs = duplicates(submission.pairs, function keyOf(pair) {\n\t\treturn `${pair.source}->${pair.target}`\n\t})\n\tif (duplicatePairs.length > 0) {\n\t\tissues.push(\"duplicate associations are not allowed\")\n\t}\n\tconst sourceIds = new Set(\n\t\tinteraction.sourceChoices.map(function getId(choice) {\n\t\t\treturn choice.identifier\n\t\t})\n\t)\n\tconst targetIds = new Set(\n\t\tinteraction.targetChoices.map(function getId(choice) {\n\t\t\treturn choice.identifier\n\t\t})\n\t)\n\tfor (const pair of submission.pairs) {\n\t\tif (!sourceIds.has(pair.source)) {\n\t\t\tissues.push(`unknown source '${pair.source}'`)\n\t\t}\n\t\tif (!targetIds.has(pair.target)) {\n\t\t\tissues.push(`unknown target '${pair.target}'`)\n\t\t}\n\t}\n\tconst sourceCounts = countByIdentifier(submission.pairs, \"source\")\n\tconst targetCounts = countByIdentifier(submission.pairs, \"target\")\n\tissues.push(...validateUsageBounds(interaction.sourceChoices, sourceCounts, \"source\"))\n\tissues.push(...validateUsageBounds(interaction.targetChoices, targetCounts, \"target\"))\n\treturn issues\n}\n\nfunction validatePortableCustom(\n\tinteraction: Extract<RendererInteraction, { type: \"portable-custom\" }>,\n\tsubmission: Extract<RendererSubmission, { type: \"portable-custom\" }>\n): readonly string[] {\n\tif (submission.pciId !== interaction.pciId) {\n\t\treturn [\n\t\t\t`submission PCI '${submission.pciId}' does not match interaction PCI '${interaction.pciId}'`\n\t\t]\n\t}\n\tconst schema = pciSubmissionSchema(interaction.pciId)\n\tconst result = schema.safeParse(submission.value)\n\tif (!result.success) {\n\t\treturn result.error.issues.map(function toIssue(issue) {\n\t\t\treturn issue.message\n\t\t})\n\t}\n\treturn []\n}\n\nfunction validateSubmissionForInteraction(\n\tinteraction: RendererInteraction,\n\tsubmission: RendererSubmission\n): SubmissionValidationResult {\n\tswitch (interaction.type) {\n\t\tcase \"choice\":\n\t\t\tif (submission.type !== \"choice\") {\n\t\t\t\treturn { ok: false, issues: [typeMismatch(interaction.type, submission.type)] }\n\t\t\t}\n\t\t\treturn buildResult(submission, validateChoice(interaction, submission))\n\t\tcase \"text-entry\":\n\t\t\tif (submission.type !== \"text-entry\") {\n\t\t\t\treturn { ok: false, issues: [typeMismatch(interaction.type, submission.type)] }\n\t\t\t}\n\t\t\treturn { ok: true, value: submission }\n\t\tcase \"extended-text\":\n\t\t\tif (submission.type !== \"extended-text\") {\n\t\t\t\treturn { ok: false, issues: [typeMismatch(interaction.type, submission.type)] }\n\t\t\t}\n\t\t\treturn buildResult(submission, validateExtendedText(interaction, submission))\n\t\tcase \"order\":\n\t\t\tif (submission.type !== \"order\") {\n\t\t\t\treturn { ok: false, issues: [typeMismatch(interaction.type, submission.type)] }\n\t\t\t}\n\t\t\treturn buildResult(submission, validateOrder(interaction, submission))\n\t\tcase \"match\":\n\t\t\tif (submission.type !== \"match\") {\n\t\t\t\treturn { ok: false, issues: [typeMismatch(interaction.type, submission.type)] }\n\t\t\t}\n\t\t\treturn buildResult(submission, validateMatch(interaction, submission))\n\t\tcase \"portable-custom\":\n\t\t\tif (submission.type !== \"portable-custom\") {\n\t\t\t\treturn { ok: false, issues: [typeMismatch(interaction.type, submission.type)] }\n\t\t\t}\n\t\t\treturn buildResult(submission, validatePortableCustom(interaction, submission))\n\t}\n}\n\nfunction submissionValidationMessage(result: SubmissionValidationFailure): string {\n\treturn result.issues.join(\"; \")\n}\n\nexport {\n\tChoiceSubmissionSchema,\n\tDivisionRemainderPciSubmissionSchema,\n\tExtendedTextSubmissionSchema,\n\tFractionAdditionPciSubmissionSchema,\n\tMatchPairSchema,\n\tMatchSubmissionSchema,\n\tOrderSubmissionSchema,\n\tRendererSubmissionSchema,\n\tTextEntrySubmissionSchema,\n\tsubmissionValidationMessage,\n\tvalidateSubmissionForInteraction\n}\nexport type { SubmissionValidationFailure, SubmissionValidationResult, SubmissionValidationSuccess }\n",
|
|
8
8
|
"import { z } from \"zod\"\n\nconst DivisionRemainderPropsSchema = z.object({\n\tdividend: z.number(),\n\tdivisor: z.number()\n})\n\nconst DivisionRemainderSubmissionSchema = z.object({\n\tquotient: z.string(),\n\tremainder: z.string()\n})\n\nconst FractionOperandSchema = z.object({\n\tnumerator: z.number(),\n\tdenominator: z.number()\n})\n\nconst FractionAdditionPropsSchema = z.object({\n\tleft: FractionOperandSchema,\n\tright: FractionOperandSchema\n})\n\nconst FractionAdditionSubmissionSchema = z.object({\n\tnumerator: z.string(),\n\tdenominator: z.string()\n})\n\nexport {\n\tDivisionRemainderPropsSchema,\n\tDivisionRemainderSubmissionSchema,\n\tFractionAdditionPropsSchema,\n\tFractionAdditionSubmissionSchema\n}\n",
|
|
9
9
|
"import * as errors from \"@superbuilders/errors\"\nimport { ErrMalformedAccessToken } from \"@superbuilders/primer-tives/errors\"\nimport type { PrimerLogger } from \"@superbuilders/primer-tives/logger\"\nimport type { PciId } from \"@superbuilders/primer-tives/contracts/pci\"\nimport type { SubjectScope } from \"@superbuilders/primer-tives/subject\"\nimport type { PrimerState } from \"@superbuilders/primer-tives/client/types\"\nimport { createTransport } from \"@superbuilders/primer-tives/client/transport\"\nimport { makeSession } from \"@superbuilders/primer-tives/client/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 }\n",
|
|
10
|
-
"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\tErrTokenExpired,\n\tErrUnsupportedPci\n} from \"@superbuilders/primer-tives/errors\"\nimport type { PciId } from \"@superbuilders/primer-tives/contracts/pci\"\nimport type { SessionContext, WireIntent } from \"@superbuilders/primer-tives/client/session-context\"\nimport type { SubjectScope } from \"@superbuilders/primer-tives/subject\"\nimport type { ContentInline } from \"@superbuilders/primer-tives/contracts/content\"\nimport type {\n\tRendererInteraction,\n\tRendererStimulus,\n\tRendererSubmission\n} from \"@superbuilders/primer-tives/contracts/types\"\nimport type { InteractionReview } from \"@superbuilders/primer-tives/contracts/review\"\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\ntype AdvanceErrorBody = {\n\terror?: string\n\tdetail?: string\n}\n\nfunction isAdvanceErrorBody(value: unknown): value is AdvanceErrorBody {\n\tif (typeof value !== \"object\" || value === null) {\n\t\treturn false\n\t}\n\tif (\"error\" in value && value.error !== undefined && typeof value.error !== \"string\") {\n\t\treturn false\n\t}\n\tif (\"detail\" in value && value.detail !== undefined && typeof value.detail !== \"string\") {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunction parseAdvanceErrorBody(body: string): AdvanceErrorBody | null {\n\tif (body.length === 0) {\n\t\treturn null\n\t}\n\tconst parsed = errors.trySync(function parseJson() {\n\t\treturn JSON.parse(body)\n\t})\n\tif (parsed.error) {\n\t\treturn null\n\t}\n\tif (!isAdvanceErrorBody(parsed.data)) {\n\t\treturn null\n\t}\n\treturn parsed.data\n}\n\nfunction httpSentinel(status: number, body: string): Error {\n\tif (status === 400) {\n\t\treturn ErrBadRequest\n\t}\n\tif (status === 401) {\n\t\tconst parsed = parseAdvanceErrorBody(body)\n\t\tif (parsed?.detail === \"token_expired\") {\n\t\t\treturn ErrTokenExpired\n\t\t}\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, text)\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 { createTransport, httpSentinel, isAbortError }\nexport type { TransportConfig, TransportResult, WireRequestBody, WireResult }\n",
|
|
11
|
-
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/client/consumed\"\nimport {\n\tErrBadRequest,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSubmission,\n\tErrNotFound,\n\tErrTokenExpired,\n\tErrUnsupportedPci\n} from \"@superbuilders/primer-tives/errors\"\nimport type { PrimerLogger } from \"@superbuilders/primer-tives/logger\"\nimport type { PciId } from \"@superbuilders/primer-tives/contracts/pci\"\nimport type {\n\tSessionContext,\n\tTransitionPhase,\n\tWireIntent\n} from \"@superbuilders/primer-tives/client/session-context\"\nimport type { SubjectScope } from \"@superbuilders/primer-tives/subject\"\nimport type {\n\tTransportResult,\n\tWireRequestBody,\n\tWireResult\n} from \"@superbuilders/primer-tives/client/transport\"\n\nimport type {\n\tRendererInteraction,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/contracts/types\"\nimport type { ErroredState, PrimerState } from \"@superbuilders/primer-tives/client/types\"\nimport { choiceState } from \"@superbuilders/primer-tives/client/choice-state\"\nimport { extendedTextState } from \"@superbuilders/primer-tives/client/extended-text-state\"\nimport { feedbackState } from \"@superbuilders/primer-tives/client/feedback-state\"\nimport { matchState } from \"@superbuilders/primer-tives/client/match-state\"\nimport { observationState } from \"@superbuilders/primer-tives/client/observation-state\"\nimport { orderState } from \"@superbuilders/primer-tives/client/order-state\"\nimport { pciInteractionState } from \"@superbuilders/primer-tives/client/pci-state\"\nimport { textEntryState } from \"@superbuilders/primer-tives/client/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",
|
|
10
|
+
"import * as errors from \"@superbuilders/errors\"\nimport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrJsonParse,\n\tErrNeedsHints,\n\tErrNetwork,\n\tErrNotFound,\n\tErrRateLimited,\n\tErrServerError,\n\tErrServiceUnavailable,\n\tErrTimeout,\n\tErrTokenExpired,\n\tErrUnsupportedPci\n} from \"@superbuilders/primer-tives/errors\"\nimport type { PciId } from \"@superbuilders/primer-tives/contracts/pci\"\nimport type { SessionContext, WireIntent } from \"@superbuilders/primer-tives/client/session-context\"\nimport type { SubjectScope } from \"@superbuilders/primer-tives/subject\"\nimport type { ContentInline } from \"@superbuilders/primer-tives/contracts/content\"\nimport type {\n\tRendererInteraction,\n\tRendererStimulus,\n\tRendererSubmission\n} from \"@superbuilders/primer-tives/contracts/types\"\nimport type { InteractionReview } from \"@superbuilders/primer-tives/contracts/review\"\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\ntype AdvanceErrorBody = {\n\terror?: string\n\tdetail?: string\n}\n\nfunction isAdvanceErrorBody(value: unknown): value is AdvanceErrorBody {\n\tif (typeof value !== \"object\" || value === null) {\n\t\treturn false\n\t}\n\tif (\"error\" in value && value.error !== undefined && typeof value.error !== \"string\") {\n\t\treturn false\n\t}\n\tif (\"detail\" in value && value.detail !== undefined && typeof value.detail !== \"string\") {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunction parseAdvanceErrorBody(body: string): AdvanceErrorBody | null {\n\tif (body.length === 0) {\n\t\treturn null\n\t}\n\tconst parsed = errors.trySync(function parseJson() {\n\t\treturn JSON.parse(body)\n\t})\n\tif (parsed.error) {\n\t\treturn null\n\t}\n\tif (!isAdvanceErrorBody(parsed.data)) {\n\t\treturn null\n\t}\n\treturn parsed.data\n}\n\nfunction httpSentinel(status: number, body: string): Error {\n\tif (status === 400) {\n\t\treturn ErrBadRequest\n\t}\n\tif (status === 401) {\n\t\tconst parsed = parseAdvanceErrorBody(body)\n\t\tif (parsed?.detail === \"token_expired\") {\n\t\t\treturn ErrTokenExpired\n\t\t}\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 === 412) {\n\t\treturn ErrNeedsHints\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, text)\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 { createTransport, httpSentinel, isAbortError }\nexport type { TransportConfig, TransportResult, WireRequestBody, WireResult }\n",
|
|
11
|
+
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/client/consumed\"\nimport {\n\tErrBadRequest,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSubmission,\n\tErrNeedsHints,\n\tErrNotFound,\n\tErrTokenExpired,\n\tErrUnsupportedPci\n} from \"@superbuilders/primer-tives/errors\"\nimport type { PrimerLogger } from \"@superbuilders/primer-tives/logger\"\nimport type { PciId } from \"@superbuilders/primer-tives/contracts/pci\"\nimport type {\n\tSessionContext,\n\tTransitionPhase,\n\tWireIntent\n} from \"@superbuilders/primer-tives/client/session-context\"\nimport type { SubjectScope } from \"@superbuilders/primer-tives/subject\"\nimport type {\n\tTransportResult,\n\tWireRequestBody,\n\tWireResult\n} from \"@superbuilders/primer-tives/client/transport\"\n\nimport type {\n\tRendererInteraction,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/contracts/types\"\nimport type { ErroredState, PrimerState } from \"@superbuilders/primer-tives/client/types\"\nimport { choiceState } from \"@superbuilders/primer-tives/client/choice-state\"\nimport { extendedTextState } from \"@superbuilders/primer-tives/client/extended-text-state\"\nimport { feedbackState } from \"@superbuilders/primer-tives/client/feedback-state\"\nimport { matchState } from \"@superbuilders/primer-tives/client/match-state\"\nimport { observationState } from \"@superbuilders/primer-tives/client/observation-state\"\nimport { orderState } from \"@superbuilders/primer-tives/client/order-state\"\nimport { pciInteractionState } from \"@superbuilders/primer-tives/client/pci-state\"\nimport { textEntryState } from \"@superbuilders/primer-tives/client/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\tErrNeedsHints,\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",
|
|
12
12
|
"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",
|
|
13
13
|
"import { poisonToJSON } from \"@superbuilders/primer-tives/client/consumed\"\nimport {\n\tsubmissionValidationMessage,\n\tvalidateSubmissionForInteraction\n} from \"@superbuilders/primer-tives/contracts\"\nimport { ErrConflict, ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/client/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/contracts/pci\"\nimport type {\n\tRendererChoice,\n\tRendererInteraction,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/contracts/types\"\nimport type { PrimerState } from \"@superbuilders/primer-tives/client/types\"\nimport * as errors from \"@superbuilders/errors\"\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 validation = validateSubmissionForInteraction(interaction, submission)\n\t\tif (!validation.ok) {\n\t\t\tctx.log?.error(\"choice submit invalid\", { selectedKeys, issues: validation.issues })\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrInvalidSubmission, submissionValidationMessage(validation)),\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 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",
|
|
14
14
|
"import { poisonToJSON } from \"@superbuilders/primer-tives/client/consumed\"\nimport {\n\tsubmissionValidationMessage,\n\tvalidateSubmissionForInteraction\n} from \"@superbuilders/primer-tives/contracts\"\nimport { ErrConflict, ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/client/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/contracts/pci\"\nimport type {\n\tRendererStimulus,\n\tStandardRendererInteraction\n} from \"@superbuilders/primer-tives/contracts/types\"\nimport type { PrimerState } from \"@superbuilders/primer-tives/client/types\"\nimport * as errors from \"@superbuilders/errors\"\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\tconst validation = validateSubmissionForInteraction(interaction, submission)\n\t\t\tif (!validation.ok) {\n\t\t\t\tctx.log?.error(\"extended-text submit invalid\", { value, issues: validation.issues })\n\t\t\t\treturn Promise.resolve(\n\t\t\t\t\tctx.errored(\n\t\t\t\t\t\terrors.wrap(ErrInvalidSubmission, submissionValidationMessage(validation)),\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 validation = validateSubmissionForInteraction(multi, submission)\n\t\tif (!validation.ok) {\n\t\t\tctx.log?.error(\"extended-text submit invalid\", { values, issues: validation.issues })\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrInvalidSubmission, submissionValidationMessage(validation)),\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\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",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/client/consumed\"\nimport { ErrConflict } from \"@superbuilders/primer-tives/errors\"\nimport type { PciId, PciValue } from \"@superbuilders/primer-tives/contracts/pci\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/client/session-context\"\nimport type { PciInteraction, RendererStimulus } from \"@superbuilders/primer-tives/contracts/types\"\nimport type { PciInteractionState, PrimerState } from \"@superbuilders/primer-tives/client/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",
|
|
20
20
|
"import * as errors from \"@superbuilders/errors\"\nimport { poisonToJSON } from \"@superbuilders/primer-tives/client/consumed\"\nimport {\n\tsubmissionValidationMessage,\n\tvalidateSubmissionForInteraction\n} from \"@superbuilders/primer-tives/contracts\"\nimport { ErrConflict, ErrInvalidSubmission } from \"@superbuilders/primer-tives/errors\"\nimport type { SessionContext } from \"@superbuilders/primer-tives/client/session-context\"\nimport type { PciId } from \"@superbuilders/primer-tives/contracts/pci\"\nimport type {\n\tRendererInteraction,\n\tRendererStimulus\n} from \"@superbuilders/primer-tives/contracts/types\"\nimport type { PrimerState } from \"@superbuilders/primer-tives/client/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\tconst validation = validateSubmissionForInteraction(interaction, submission)\n\t\tif (!validation.ok) {\n\t\t\tctx.log?.error(\"text-entry submit invalid\", { value, issues: validation.issues })\n\t\t\treturn Promise.resolve(\n\t\t\t\tctx.errored(\n\t\t\t\t\terrors.wrap(ErrInvalidSubmission, submissionValidationMessage(validation)),\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"
|
|
21
21
|
],
|
|
22
|
-
"mappings": "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",
|
|
23
|
-
"debugId": "
|
|
22
|
+
"mappings": "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",
|
|
23
|
+
"debugId": "EA813B14A6F0A81364756E2164756E21",
|
|
24
24
|
"names": []
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/client/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/client/session.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAA;AACtE,OAAO,KAAK,EAEX,eAAe,EACf,UAAU,EACV,MAAM,oDAAoD,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,KAAK,EACX,eAAe,EACf,eAAe,EAEf,MAAM,8CAA8C,CAAA;AAMrD,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAUzF,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;AAyBD,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAA;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAA;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;AAClF,OAAO,KAAK,EACX,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,MAAM,6CAA6C,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAA;AAIrF,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;AAoCD,iBAAS,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CA8BzD;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,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,CAAA"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -19,5 +19,6 @@ declare const ErrInvalidSecretKey: Error;
|
|
|
19
19
|
declare const ErrStudentNotFound: Error;
|
|
20
20
|
declare const ErrUnsupportedGrade: Error;
|
|
21
21
|
declare const ErrTimebackUnavailable: Error;
|
|
22
|
-
|
|
22
|
+
declare const ErrNeedsHints: Error;
|
|
23
|
+
export { ErrBadRequest, ErrConflict, ErrExternalAuthorityRequired, ErrForbidden, ErrInvalidAccessToken, ErrInvalidSecretKey, ErrInvalidSubmission, ErrJsonParse, ErrMalformedAccessToken, ErrNeedsHints, ErrNetwork, ErrNotFound, ErrNotSerializable, ErrRateLimited, ErrServerError, ErrServiceUnavailable, ErrStudentNotFound, ErrTimebackUnavailable, ErrTimeout, ErrTokenExpired, ErrUnsupportedGrade, ErrUnsupportedPci };
|
|
23
24
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU,OAAwB,CAAA;AACxC,QAAA,MAAM,YAAY,OAA2B,CAAA;AAC7C,QAAA,MAAM,iBAAiB,OAAgC,CAAA;AACvD,QAAA,MAAM,qBAAqB,OAAqC,CAAA;AAChE,QAAA,MAAM,uBAAuB,OAAuC,CAAA;AACpE,QAAA,MAAM,eAAe,OAAqC,CAAA;AAC1D,QAAA,MAAM,aAAa,OAA4B,CAAA;AAC/C,QAAA,MAAM,cAAc,OAA6B,CAAA;AACjD,QAAA,MAAM,UAAU,OAAwB,CAAA;AACxC,QAAA,MAAM,YAAY,OAA0B,CAAA;AAC5C,QAAA,MAAM,WAAW,OAA0B,CAAA;AAC3C,QAAA,MAAM,WAAW,OAAyB,CAAA;AAC1C,QAAA,MAAM,4BAA4B,OAA4C,CAAA;AAC9E,QAAA,MAAM,cAAc,OAA6B,CAAA;AACjD,QAAA,MAAM,qBAAqB,OAAoC,CAAA;AAC/D,QAAA,MAAM,kBAAkB,OAEvB,CAAA;AACD,QAAA,MAAM,oBAAoB,OAAmC,CAAA;AAE7D,QAAA,MAAM,mBAAmB,OAAmC,CAAA;AAC5D,QAAA,MAAM,kBAAkB,OAAkC,CAAA;AAC1D,QAAA,MAAM,mBAAmB,OAAkC,CAAA;AAC3D,QAAA,MAAM,sBAAsB,OAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU,OAAwB,CAAA;AACxC,QAAA,MAAM,YAAY,OAA2B,CAAA;AAC7C,QAAA,MAAM,iBAAiB,OAAgC,CAAA;AACvD,QAAA,MAAM,qBAAqB,OAAqC,CAAA;AAChE,QAAA,MAAM,uBAAuB,OAAuC,CAAA;AACpE,QAAA,MAAM,eAAe,OAAqC,CAAA;AAC1D,QAAA,MAAM,aAAa,OAA4B,CAAA;AAC/C,QAAA,MAAM,cAAc,OAA6B,CAAA;AACjD,QAAA,MAAM,UAAU,OAAwB,CAAA;AACxC,QAAA,MAAM,YAAY,OAA0B,CAAA;AAC5C,QAAA,MAAM,WAAW,OAA0B,CAAA;AAC3C,QAAA,MAAM,WAAW,OAAyB,CAAA;AAC1C,QAAA,MAAM,4BAA4B,OAA4C,CAAA;AAC9E,QAAA,MAAM,cAAc,OAA6B,CAAA;AACjD,QAAA,MAAM,qBAAqB,OAAoC,CAAA;AAC/D,QAAA,MAAM,kBAAkB,OAEvB,CAAA;AACD,QAAA,MAAM,oBAAoB,OAAmC,CAAA;AAE7D,QAAA,MAAM,mBAAmB,OAAmC,CAAA;AAC5D,QAAA,MAAM,kBAAkB,OAAkC,CAAA;AAC1D,QAAA,MAAM,mBAAmB,OAAkC,CAAA;AAC3D,QAAA,MAAM,sBAAsB,OAAqC,CAAA;AACjE,QAAA,MAAM,aAAa,OAAwD,CAAA;AAE3E,OAAO,EACN,aAAa,EACb,WAAW,EACX,4BAA4B,EAC5B,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,CAAA"}
|
package/dist/errors.js
CHANGED
|
@@ -21,6 +21,7 @@ var ErrInvalidSecretKey = errors.new("invalid secret key");
|
|
|
21
21
|
var ErrStudentNotFound = errors.new("student not found");
|
|
22
22
|
var ErrUnsupportedGrade = errors.new("unsupported grade");
|
|
23
23
|
var ErrTimebackUnavailable = errors.new("timeback unavailable");
|
|
24
|
+
var ErrNeedsHints = errors.new("student needs hints set before /advance");
|
|
24
25
|
export {
|
|
25
26
|
ErrUnsupportedPci,
|
|
26
27
|
ErrUnsupportedGrade,
|
|
@@ -34,6 +35,7 @@ export {
|
|
|
34
35
|
ErrNotSerializable,
|
|
35
36
|
ErrNotFound,
|
|
36
37
|
ErrNetwork,
|
|
38
|
+
ErrNeedsHints,
|
|
37
39
|
ErrMalformedAccessToken,
|
|
38
40
|
ErrJsonParse,
|
|
39
41
|
ErrInvalidSubmission,
|
|
@@ -45,4 +47,4 @@ export {
|
|
|
45
47
|
ErrBadRequest
|
|
46
48
|
};
|
|
47
49
|
|
|
48
|
-
//# debugId=
|
|
50
|
+
//# debugId=D563F5C3F51019D364756E2164756E21
|
package/dist/errors.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/errors.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"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 ErrExternalAuthorityRequired = errors.new(\"external authority required\")\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\nconst ErrInvalidSecretKey = errors.new(\"invalid secret key\")\nconst ErrStudentNotFound = errors.new(\"student not found\")\nconst ErrUnsupportedGrade = errors.new(\"unsupported grade\")\nconst ErrTimebackUnavailable = errors.new(\"timeback unavailable\")\n\nexport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrExternalAuthorityRequired,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSecretKey,\n\tErrInvalidSubmission,\n\tErrJsonParse,\n\tErrMalformedAccessToken,\n\tErrNetwork,\n\tErrNotFound,\n\tErrNotSerializable,\n\tErrRateLimited,\n\tErrServerError,\n\tErrServiceUnavailable,\n\tErrStudentNotFound,\n\tErrTimebackUnavailable,\n\tErrTimeout,\n\tErrTokenExpired,\n\tErrUnsupportedGrade,\n\tErrUnsupportedPci\n}\n"
|
|
5
|
+
"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 ErrExternalAuthorityRequired = errors.new(\"external authority required\")\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\nconst ErrInvalidSecretKey = errors.new(\"invalid secret key\")\nconst ErrStudentNotFound = errors.new(\"student not found\")\nconst ErrUnsupportedGrade = errors.new(\"unsupported grade\")\nconst ErrTimebackUnavailable = errors.new(\"timeback unavailable\")\nconst ErrNeedsHints = errors.new(\"student needs hints set before /advance\")\n\nexport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrExternalAuthorityRequired,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSecretKey,\n\tErrInvalidSubmission,\n\tErrJsonParse,\n\tErrMalformedAccessToken,\n\tErrNeedsHints,\n\tErrNetwork,\n\tErrNotFound,\n\tErrNotSerializable,\n\tErrRateLimited,\n\tErrServerError,\n\tErrServiceUnavailable,\n\tErrStudentNotFound,\n\tErrTimebackUnavailable,\n\tErrTimeout,\n\tErrTokenExpired,\n\tErrUnsupportedGrade,\n\tErrUnsupportedPci\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";AAAA;AAEA,IAAM,aAAoB,WAAI,SAAS;AACvC,IAAM,eAAsB,WAAI,YAAY;AAC5C,IAAM,oBAA2B,WAAI,iBAAiB;AACtD,IAAM,wBAA+B,WAAI,sBAAsB;AAC/D,IAAM,0BAAiC,WAAI,wBAAwB;AACnE,IAAM,kBAAyB,WAAI,sBAAsB;AACzD,IAAM,gBAAuB,WAAI,aAAa;AAC9C,IAAM,iBAAwB,WAAI,cAAc;AAChD,IAAM,aAAoB,WAAI,SAAS;AACvC,IAAM,eAAsB,WAAI,WAAW;AAC3C,IAAM,cAAqB,WAAI,WAAW;AAC1C,IAAM,cAAqB,WAAI,UAAU;AACzC,IAAM,+BAAsC,WAAI,6BAA6B;AAC7E,IAAM,iBAAwB,WAAI,cAAc;AAChD,IAAM,wBAA+B,WAAI,qBAAqB;AAC9D,IAAM,qBAA4B,WACjC,0EACD;AACA,IAAM,uBAA8B,WAAI,oBAAoB;AAE5D,IAAM,sBAA6B,WAAI,oBAAoB;AAC3D,IAAM,qBAA4B,WAAI,mBAAmB;AACzD,IAAM,sBAA6B,WAAI,mBAAmB;AAC1D,IAAM,yBAAgC,WAAI,sBAAsB;",
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";AAAA;AAEA,IAAM,aAAoB,WAAI,SAAS;AACvC,IAAM,eAAsB,WAAI,YAAY;AAC5C,IAAM,oBAA2B,WAAI,iBAAiB;AACtD,IAAM,wBAA+B,WAAI,sBAAsB;AAC/D,IAAM,0BAAiC,WAAI,wBAAwB;AACnE,IAAM,kBAAyB,WAAI,sBAAsB;AACzD,IAAM,gBAAuB,WAAI,aAAa;AAC9C,IAAM,iBAAwB,WAAI,cAAc;AAChD,IAAM,aAAoB,WAAI,SAAS;AACvC,IAAM,eAAsB,WAAI,WAAW;AAC3C,IAAM,cAAqB,WAAI,WAAW;AAC1C,IAAM,cAAqB,WAAI,UAAU;AACzC,IAAM,+BAAsC,WAAI,6BAA6B;AAC7E,IAAM,iBAAwB,WAAI,cAAc;AAChD,IAAM,wBAA+B,WAAI,qBAAqB;AAC9D,IAAM,qBAA4B,WACjC,0EACD;AACA,IAAM,uBAA8B,WAAI,oBAAoB;AAE5D,IAAM,sBAA6B,WAAI,oBAAoB;AAC3D,IAAM,qBAA4B,WAAI,mBAAmB;AACzD,IAAM,sBAA6B,WAAI,mBAAmB;AAC1D,IAAM,yBAAgC,WAAI,sBAAsB;AAChE,IAAM,gBAAuB,WAAI,yCAAyC;",
|
|
8
|
+
"debugId": "D563F5C3F51019D364756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -11,10 +11,12 @@ interface PrimerServerConfig {
|
|
|
11
11
|
interface PrimerServer {
|
|
12
12
|
/**
|
|
13
13
|
* Provisions a frontend-owned Primer student and returns the stable
|
|
14
|
-
* student id you persist in your own DB keyed by your user.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* student id you persist in your own DB keyed by your user. Pure
|
|
15
|
+
* identity — the student has no hints and no placements yet. Call
|
|
16
|
+
* `setStudentHints(studentId, { gradeLevel })` before the student's
|
|
17
|
+
* first `/advance`. If a session calls `/advance` without hints set,
|
|
18
|
+
* the server returns 412 `needs_hints` (surfaced as `ErrNeedsHints`
|
|
19
|
+
* in the browser SDK).
|
|
18
20
|
*/
|
|
19
21
|
createStudent(): Promise<string>;
|
|
20
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../../src/server/create-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EAGpB,MAAM,6CAA6C,CAAA;AAEpD,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAEzB,MAAM,0CAA0C,CAAA;AAGjD,UAAU,kBAAkB;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC7B;AAED,UAAU,YAAY;IACrB
|
|
1
|
+
{"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../../src/server/create-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EAGpB,MAAM,6CAA6C,CAAA;AAEpD,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAEzB,MAAM,0CAA0C,CAAA;AAGjD,UAAU,kBAAkB;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC7B;AAED,UAAU,YAAY;IACrB;;;;;;;;OAQG;IACH,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAEhC;;;;;;OAMG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAExF;;;;OAIG;IACH,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAEvE;;;;OAIG;IACH,qCAAqC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CAClF;AAED,iBAAS,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAepE;AAED,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
package/dist/server/index.js
CHANGED
|
@@ -21,6 +21,7 @@ var ErrInvalidSecretKey = errors.new("invalid secret key");
|
|
|
21
21
|
var ErrStudentNotFound = errors.new("student not found");
|
|
22
22
|
var ErrUnsupportedGrade = errors.new("unsupported grade");
|
|
23
23
|
var ErrTimebackUnavailable = errors.new("timeback unavailable");
|
|
24
|
+
var ErrNeedsHints = errors.new("student needs hints set before /advance");
|
|
24
25
|
// src/grade-level.ts
|
|
25
26
|
var GRADE_LEVELS = ["K", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
|
|
26
27
|
// src/server/exchange.ts
|
|
@@ -513,4 +514,4 @@ export {
|
|
|
513
514
|
createPrimerServer
|
|
514
515
|
};
|
|
515
516
|
|
|
516
|
-
//# debugId=
|
|
517
|
+
//# debugId=9282F03BD8CDAA7F64756E2164756E21
|
package/dist/server/index.js.map
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/errors.ts", "../src/grade-level.ts", "../src/server/exchange.ts", "../src/server/hints.ts", "../src/server/students.ts", "../src/server/create-server.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"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 ErrExternalAuthorityRequired = errors.new(\"external authority required\")\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\nconst ErrInvalidSecretKey = errors.new(\"invalid secret key\")\nconst ErrStudentNotFound = errors.new(\"student not found\")\nconst ErrUnsupportedGrade = errors.new(\"unsupported grade\")\nconst ErrTimebackUnavailable = errors.new(\"timeback unavailable\")\n\nexport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrExternalAuthorityRequired,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSecretKey,\n\tErrInvalidSubmission,\n\tErrJsonParse,\n\tErrMalformedAccessToken,\n\tErrNetwork,\n\tErrNotFound,\n\tErrNotSerializable,\n\tErrRateLimited,\n\tErrServerError,\n\tErrServiceUnavailable,\n\tErrStudentNotFound,\n\tErrTimebackUnavailable,\n\tErrTimeout,\n\tErrTokenExpired,\n\tErrUnsupportedGrade,\n\tErrUnsupportedPci\n}\n",
|
|
5
|
+
"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 ErrExternalAuthorityRequired = errors.new(\"external authority required\")\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\nconst ErrInvalidSecretKey = errors.new(\"invalid secret key\")\nconst ErrStudentNotFound = errors.new(\"student not found\")\nconst ErrUnsupportedGrade = errors.new(\"unsupported grade\")\nconst ErrTimebackUnavailable = errors.new(\"timeback unavailable\")\nconst ErrNeedsHints = errors.new(\"student needs hints set before /advance\")\n\nexport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrExternalAuthorityRequired,\n\tErrForbidden,\n\tErrInvalidAccessToken,\n\tErrInvalidSecretKey,\n\tErrInvalidSubmission,\n\tErrJsonParse,\n\tErrMalformedAccessToken,\n\tErrNeedsHints,\n\tErrNetwork,\n\tErrNotFound,\n\tErrNotSerializable,\n\tErrRateLimited,\n\tErrServerError,\n\tErrServiceUnavailable,\n\tErrStudentNotFound,\n\tErrTimebackUnavailable,\n\tErrTimeout,\n\tErrTokenExpired,\n\tErrUnsupportedGrade,\n\tErrUnsupportedPci\n}\n",
|
|
6
6
|
"const GRADE_LEVELS = [\"K\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"] as const\n\ntype GradeLevel = (typeof GRADE_LEVELS)[number]\n\nexport { GRADE_LEVELS }\nexport type { GradeLevel }\n",
|
|
7
7
|
"import * as errors from \"@superbuilders/errors\"\nimport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrExternalAuthorityRequired,\n\tErrInvalidSecretKey,\n\tErrJsonParse,\n\tErrNetwork,\n\tErrServerError,\n\tErrStudentNotFound,\n\tErrTimebackUnavailable,\n\tErrTimeout,\n\tErrUnsupportedGrade\n} from \"@superbuilders/primer-tives/errors\"\nimport type { PrimerLogger } from \"@superbuilders/primer-tives/logger\"\n\nconst STUDENT_EXCHANGE_PATH = \"/api/v0/auth/exchange\"\nconst TIMEBACK_EXCHANGE_PATH = \"/api/v0/auth/exchange/timeback\"\n\ninterface ExchangeConfig {\n\treadonly origin: string\n\treadonly secretKey: string\n\treadonly fetch?: typeof globalThis.fetch\n\treadonly abort?: AbortController\n\treadonly logger: PrimerLogger\n}\n\ninterface SessionToken {\n\treadonly accessToken: string\n\treadonly expiresInSeconds: number\n}\n\ninterface TimebackSession {\n\treadonly studentId: string\n\treadonly accessToken: string\n\treadonly expiresInSeconds: number\n}\n\ninterface SessionTokenSuccessBody {\n\taccess_token: string\n\ttoken_type: \"Bearer\"\n\texpires_in: number\n\tscope: string\n}\n\ninterface TimebackExchangeSuccessBody extends SessionTokenSuccessBody {\n\tstudent_id: string\n}\n\ninterface ExchangeErrorBody {\n\treadonly error?: string\n}\n\nfunction isObjectRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null\n}\n\nfunction isFiniteNumber(value: unknown): value is number {\n\treturn typeof value === \"number\" && Number.isFinite(value)\n}\n\nfunction toExchangeErrorBody(data: unknown): ExchangeErrorBody {\n\tif (!isObjectRecord(data)) {\n\t\treturn {}\n\t}\n\treturn typeof data.error === \"string\" ? { error: data.error } : {}\n}\n\nfunction parseSessionTokenSuccessBody(data: unknown): SessionTokenSuccessBody | undefined {\n\tif (!isObjectRecord(data)) {\n\t\treturn undefined\n\t}\n\tif (typeof data.access_token !== \"string\") {\n\t\treturn undefined\n\t}\n\tif (data.token_type !== \"Bearer\") {\n\t\treturn undefined\n\t}\n\tif (!isFiniteNumber(data.expires_in)) {\n\t\treturn undefined\n\t}\n\tif (typeof data.scope !== \"string\") {\n\t\treturn undefined\n\t}\n\treturn {\n\t\taccess_token: data.access_token,\n\t\ttoken_type: data.token_type,\n\t\texpires_in: data.expires_in,\n\t\tscope: data.scope\n\t}\n}\n\nfunction parseTimebackExchangeSuccessBody(data: unknown): TimebackExchangeSuccessBody | undefined {\n\tconst session = parseSessionTokenSuccessBody(data)\n\tif (!session || !isObjectRecord(data) || typeof data.student_id !== \"string\") {\n\t\treturn undefined\n\t}\n\treturn {\n\t\tstudent_id: data.student_id,\n\t\taccess_token: session.access_token,\n\t\ttoken_type: session.token_type,\n\t\texpires_in: session.expires_in,\n\t\tscope: session.scope\n\t}\n}\n\nfunction isAbortError(err: Error): boolean {\n\treturn err.name === \"AbortError\" || err.name === \"TimeoutError\"\n}\n\nfunction mapBadRequest(body: ExchangeErrorBody): Error {\n\tif (body.error === \"unsupported_grade\") {\n\t\treturn ErrUnsupportedGrade\n\t}\n\treturn ErrBadRequest\n}\n\nfunction httpSentinel(status: number, body: ExchangeErrorBody): Error {\n\tif (status === 400) {\n\t\treturn mapBadRequest(body)\n\t}\n\tif (status === 401) {\n\t\treturn ErrInvalidSecretKey\n\t}\n\tif (status === 404) {\n\t\treturn ErrStudentNotFound\n\t}\n\tif (status === 409) {\n\t\tif (body.error === \"external_authority_required\") {\n\t\t\treturn ErrExternalAuthorityRequired\n\t\t}\n\t\treturn ErrConflict\n\t}\n\tif (status === 502) {\n\t\treturn ErrTimebackUnavailable\n\t}\n\treturn ErrServerError\n}\n\nasync function readErrorBody(res: Response): Promise<ExchangeErrorBody> {\n\tconst parsed = await res.json().then(\n\t\tfunction ok(data: unknown) {\n\t\t\treturn { ok: true, data } as const\n\t\t},\n\t\tfunction fail() {\n\t\t\treturn { ok: false } as const\n\t\t}\n\t)\n\tif (!parsed.ok) {\n\t\treturn {}\n\t}\n\treturn toExchangeErrorBody(parsed.data)\n}\n\nasync function sendExchangeRequest(\n\tconfig: ExchangeConfig,\n\tpath: string,\n\tbody: Record<string, unknown>,\n\tlogContext: Record<string, unknown>\n): Promise<Response> {\n\tconst logger = config.logger\n\tconst fetchFn = config.fetch ? config.fetch : globalThis.fetch\n\tconst signal = config.abort ? config.abort.signal : undefined\n\n\tconst url = `${config.origin}${path}`\n\tconst fetchResult = await fetchFn(url, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\tAuthorization: `Bearer ${config.secretKey}`\n\t\t},\n\t\tbody: JSON.stringify(body),\n\t\tsignal\n\t}).then(\n\t\tfunction ok(response: Response) {\n\t\t\treturn { ok: true, response } as const\n\t\t},\n\t\tfunction fail(err: Error) {\n\t\t\treturn { ok: false, error: err } as const\n\t\t}\n\t)\n\n\tif (!fetchResult.ok) {\n\t\tif (isAbortError(fetchResult.error)) {\n\t\t\tlogger.error(\"exchange timeout\", { path, ...logContext })\n\t\t\tthrow errors.wrap(ErrTimeout, fetchResult.error.message)\n\t\t}\n\t\tlogger.error(\"exchange network error\", { path, ...logContext, error: fetchResult.error })\n\t\tthrow errors.wrap(ErrNetwork, fetchResult.error.message)\n\t}\n\n\treturn fetchResult.response\n}\n\nasync function parseSessionTokenSuccess(\n\tconfig: ExchangeConfig,\n\tres: Response,\n\tlogContext: Record<string, unknown>\n): Promise<SessionToken> {\n\tconst logger = config.logger\n\tconst jsonResult = await res.json().then(\n\t\tfunction ok(data: unknown) {\n\t\t\treturn { ok: true, data } as const\n\t\t},\n\t\tfunction fail(err: Error) {\n\t\t\treturn { ok: false, error: err } as const\n\t\t}\n\t)\n\n\tif (!jsonResult.ok) {\n\t\tlogger.error(\"exchange json parse failed\", { ...logContext, error: jsonResult.error })\n\t\tthrow errors.wrap(ErrJsonParse, jsonResult.error.message)\n\t}\n\n\tconst body = parseSessionTokenSuccessBody(jsonResult.data)\n\tif (!body) {\n\t\tlogger.error(\"exchange success body had invalid shape\", {\n\t\t\t...logContext,\n\t\t\tbody: jsonResult.data\n\t\t})\n\t\tthrow errors.wrap(ErrJsonParse, \"exchange success body had invalid shape\")\n\t}\n\n\tlogger.debug(\"exchange success\", {\n\t\t...logContext,\n\t\texpiresIn: body.expires_in\n\t})\n\treturn {\n\t\taccessToken: body.access_token,\n\t\texpiresInSeconds: body.expires_in\n\t}\n}\n\nasync function parseTimebackSessionSuccess(\n\tconfig: ExchangeConfig,\n\tres: Response,\n\tsourcedId: string\n): Promise<TimebackSession> {\n\tconst logger = config.logger\n\tconst jsonResult = await res.json().then(\n\t\tfunction ok(data: unknown) {\n\t\t\treturn { ok: true, data } as const\n\t\t},\n\t\tfunction fail(err: Error) {\n\t\t\treturn { ok: false, error: err } as const\n\t\t}\n\t)\n\n\tif (!jsonResult.ok) {\n\t\tlogger.error(\"timeback exchange json parse failed\", { sourcedId, error: jsonResult.error })\n\t\tthrow errors.wrap(ErrJsonParse, jsonResult.error.message)\n\t}\n\n\tconst body = parseTimebackExchangeSuccessBody(jsonResult.data)\n\tif (!body) {\n\t\tlogger.error(\"timeback exchange success body had invalid shape\", {\n\t\t\tsourcedId,\n\t\t\tbody: jsonResult.data\n\t\t})\n\t\tthrow errors.wrap(ErrJsonParse, \"timeback exchange success body had invalid shape\")\n\t}\n\n\tlogger.debug(\"timeback exchange success\", {\n\t\tsourcedId,\n\t\tstudentId: body.student_id,\n\t\texpiresIn: body.expires_in\n\t})\n\treturn {\n\t\tstudentId: body.student_id,\n\t\taccessToken: body.access_token,\n\t\texpiresInSeconds: body.expires_in\n\t}\n}\n\nasync function exchangeStudent(config: ExchangeConfig, studentId: string): Promise<SessionToken> {\n\tconst logger = config.logger\n\tlogger.debug(\"exchange student request\", { studentId })\n\n\tconst res = await sendExchangeRequest(\n\t\tconfig,\n\t\tSTUDENT_EXCHANGE_PATH,\n\t\t{ student_id: studentId },\n\t\t{ studentId, exchangeKind: \"student_id\" }\n\t)\n\tif (!res.ok) {\n\t\tconst body = await readErrorBody(res)\n\t\tconst sentinel = httpSentinel(res.status, body)\n\t\tconst detail = body.error ? `${res.status} ${body.error}` : `${res.status}`\n\t\tlogger.error(\"exchange student http error\", { status: res.status, body, studentId })\n\t\tthrow errors.wrap(sentinel, detail)\n\t}\n\n\treturn parseSessionTokenSuccess(config, res, { studentId, exchangeKind: \"student_id\" })\n}\n\nasync function exchangeTimebackStudent(\n\tconfig: ExchangeConfig,\n\tsourcedId: string\n): Promise<TimebackSession> {\n\tconst logger = config.logger\n\tlogger.debug(\"exchange timeback student request\", { sourcedId })\n\n\tconst res = await sendExchangeRequest(\n\t\tconfig,\n\t\tTIMEBACK_EXCHANGE_PATH,\n\t\t{ sourced_id: sourcedId },\n\t\t{ sourcedId, exchangeKind: \"timeback\" }\n\t)\n\tif (!res.ok) {\n\t\tconst body = await readErrorBody(res)\n\t\tconst sentinel = httpSentinel(res.status, body)\n\t\tconst detail = body.error ? `${res.status} ${body.error}` : `${res.status}`\n\t\tlogger.error(\"exchange timeback student http error\", { status: res.status, body, sourcedId })\n\t\tthrow errors.wrap(sentinel, detail)\n\t}\n\n\treturn parseTimebackSessionSuccess(config, res, sourcedId)\n}\n\nexport type { ExchangeConfig, SessionToken, TimebackSession }\nexport { exchangeStudent, exchangeTimebackStudent }\n",
|
|
8
8
|
"import * as errors from \"@superbuilders/errors\"\nimport {\n\tErrBadRequest,\n\tErrInvalidSecretKey,\n\tErrJsonParse,\n\tErrNetwork,\n\tErrServerError,\n\tErrStudentNotFound,\n\tErrTimeout\n} from \"@superbuilders/primer-tives/errors\"\nimport { GRADE_LEVELS, type GradeLevel } from \"@superbuilders/primer-tives/grade-level\"\nimport type { PrimerLogger } from \"@superbuilders/primer-tives/logger\"\n\nconst STUDENTS_PATH = \"/api/v0/students\"\n\ninterface HintsConfig {\n\treadonly origin: string\n\treadonly secretKey: string\n\treadonly fetch?: typeof globalThis.fetch\n\treadonly abort?: AbortController\n\treadonly logger: PrimerLogger\n}\n\n/**\n * Partial update of a student's placement hints. Pass only the fields\n * you want to set; omitted fields are left untouched. The server\n * returns the persisted state after upsert.\n */\ninterface PlacementHints {\n\treadonly gradeLevel?: GradeLevel\n}\n\ninterface PlacementHintsResult {\n\treadonly studentId: string\n\treadonly gradeLevel: GradeLevel | null\n}\n\ninterface HintsErrorBody {\n\treadonly error?: string\n}\n\ninterface HintsSuccessWire {\n\treadonly student_id: string\n\treadonly grade_level: string | null\n}\n\nfunction isObjectRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null\n}\n\nfunction toHintsErrorBody(data: unknown): HintsErrorBody {\n\tif (!isObjectRecord(data)) {\n\t\treturn {}\n\t}\n\treturn typeof data.error === \"string\" ? { error: data.error } : {}\n}\n\nfunction parseHintsSuccess(data: unknown): HintsSuccessWire | undefined {\n\tif (!isObjectRecord(data)) {\n\t\treturn undefined\n\t}\n\tif (typeof data.student_id !== \"string\") {\n\t\treturn undefined\n\t}\n\tif (data.grade_level !== null && typeof data.grade_level !== \"string\") {\n\t\treturn undefined\n\t}\n\treturn {\n\t\tstudent_id: data.student_id,\n\t\tgrade_level: data.grade_level\n\t}\n}\n\nfunction isAbortError(err: Error): boolean {\n\treturn err.name === \"AbortError\" || err.name === \"TimeoutError\"\n}\n\nfunction httpSentinel(status: number): Error {\n\tif (status === 400) {\n\t\treturn ErrBadRequest\n\t}\n\tif (status === 401) {\n\t\treturn ErrInvalidSecretKey\n\t}\n\tif (status === 404) {\n\t\treturn ErrStudentNotFound\n\t}\n\treturn ErrServerError\n}\n\nasync function readErrorBody(res: Response): Promise<HintsErrorBody> {\n\tconst parsed = await res.json().then(\n\t\tfunction ok(data: unknown) {\n\t\t\treturn { ok: true, data } as const\n\t\t},\n\t\tfunction fail() {\n\t\t\treturn { ok: false } as const\n\t\t}\n\t)\n\tif (!parsed.ok) {\n\t\treturn {}\n\t}\n\treturn toHintsErrorBody(parsed.data)\n}\n\nfunction buildRequestBody(hints: PlacementHints): string {\n\tconst body: Record<string, unknown> = {}\n\tif (hints.gradeLevel !== undefined) {\n\t\tbody.grade_level = hints.gradeLevel\n\t}\n\treturn JSON.stringify(body)\n}\n\nasync function sendSetHintsRequest(\n\tconfig: HintsConfig,\n\tstudentId: string,\n\thints: PlacementHints\n): Promise<Response> {\n\tconst logger = config.logger\n\tconst fetchFn = config.fetch ? config.fetch : globalThis.fetch\n\tconst signal = config.abort ? config.abort.signal : undefined\n\tconst url = `${config.origin}${STUDENTS_PATH}/${encodeURIComponent(studentId)}/hints`\n\n\tconst fetchResult = await fetchFn(url, {\n\t\tmethod: \"PATCH\",\n\t\theaders: {\n\t\t\tAuthorization: `Bearer ${config.secretKey}`,\n\t\t\t\"Content-Type\": \"application/json\"\n\t\t},\n\t\tbody: buildRequestBody(hints),\n\t\tsignal\n\t}).then(\n\t\tfunction ok(response: Response) {\n\t\t\treturn { ok: true, response } as const\n\t\t},\n\t\tfunction fail(err: Error) {\n\t\t\treturn { ok: false, error: err } as const\n\t\t}\n\t)\n\n\tif (!fetchResult.ok) {\n\t\tif (isAbortError(fetchResult.error)) {\n\t\t\tlogger.error(\"set student hints timeout\", { studentId })\n\t\t\tthrow errors.wrap(ErrTimeout, fetchResult.error.message)\n\t\t}\n\t\tlogger.error(\"set student hints network error\", {\n\t\t\tstudentId,\n\t\t\terror: fetchResult.error\n\t\t})\n\t\tthrow errors.wrap(ErrNetwork, fetchResult.error.message)\n\t}\n\n\treturn fetchResult.response\n}\n\nasync function parseHintsSuccessResponse(\n\tconfig: HintsConfig,\n\tres: Response\n): Promise<PlacementHintsResult> {\n\tconst logger = config.logger\n\tconst jsonResult = await res.json().then(\n\t\tfunction ok(data: unknown) {\n\t\t\treturn { ok: true, data } as const\n\t\t},\n\t\tfunction fail(err: Error) {\n\t\t\treturn { ok: false, error: err } as const\n\t\t}\n\t)\n\n\tif (!jsonResult.ok) {\n\t\tlogger.error(\"set hints response parse failed\", { error: jsonResult.error })\n\t\tthrow errors.wrap(ErrJsonParse, jsonResult.error.message)\n\t}\n\n\tconst body = parseHintsSuccess(jsonResult.data)\n\tif (!body) {\n\t\tlogger.error(\"set hints response had invalid shape\", { body: jsonResult.data })\n\t\tthrow errors.wrap(ErrJsonParse, \"set hints success body had invalid shape\")\n\t}\n\n\tlogger.debug(\"set hints response success\", {\n\t\tstudentId: body.student_id,\n\t\tgradeLevel: body.grade_level\n\t})\n\n\treturn {\n\t\tstudentId: body.student_id,\n\t\tgradeLevel: coerceGradeLevel(body.grade_level)\n\t}\n}\n\nfunction coerceGradeLevel(value: string | null): GradeLevel | null {\n\tif (value === null) {\n\t\treturn null\n\t}\n\tfor (const g of GRADE_LEVELS) {\n\t\tif (g === value) {\n\t\t\treturn g\n\t\t}\n\t}\n\treturn null\n}\n\nasync function setStudentHints(\n\tconfig: HintsConfig,\n\tstudentId: string,\n\thints: PlacementHints\n): Promise<PlacementHintsResult> {\n\tconst logger = config.logger\n\tlogger.debug(\"set student hints request\", { studentId, hints })\n\n\tconst res = await sendSetHintsRequest(config, studentId, hints)\n\tif (!res.ok) {\n\t\tconst body = await readErrorBody(res)\n\t\tconst sentinel = httpSentinel(res.status)\n\t\tconst detail = body.error ? `${res.status} ${body.error}` : `${res.status}`\n\t\tlogger.error(\"set student hints http error\", {\n\t\t\tstudentId,\n\t\t\tstatus: res.status,\n\t\t\tbody\n\t\t})\n\t\tthrow errors.wrap(sentinel, detail)\n\t}\n\n\treturn parseHintsSuccessResponse(config, res)\n}\n\nexport type { HintsConfig, PlacementHints, PlacementHintsResult }\nexport { setStudentHints }\n",
|
|
9
9
|
"import * as errors from \"@superbuilders/errors\"\nimport {\n\tErrBadRequest,\n\tErrConflict,\n\tErrInvalidSecretKey,\n\tErrJsonParse,\n\tErrNetwork,\n\tErrServerError,\n\tErrTimeout\n} from \"@superbuilders/primer-tives/errors\"\nimport type { PrimerLogger } from \"@superbuilders/primer-tives/logger\"\n\nconst STUDENTS_PATH = \"/api/v0/students\"\n\ninterface StudentsConfig {\n\treadonly origin: string\n\treadonly secretKey: string\n\treadonly fetch?: typeof globalThis.fetch\n\treadonly abort?: AbortController\n\treadonly logger: PrimerLogger\n}\n\ninterface StudentIdSuccessBody {\n\tstudent_id: string\n}\n\ninterface StudentsErrorBody {\n\treadonly error?: string\n}\n\nfunction isObjectRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null\n}\n\nfunction toStudentsErrorBody(data: unknown): StudentsErrorBody {\n\tif (!isObjectRecord(data)) {\n\t\treturn {}\n\t}\n\treturn typeof data.error === \"string\" ? { error: data.error } : {}\n}\n\nfunction parseStudentIdSuccessBody(data: unknown): StudentIdSuccessBody | undefined {\n\tif (!isObjectRecord(data)) {\n\t\treturn undefined\n\t}\n\tif (typeof data.student_id !== \"string\") {\n\t\treturn undefined\n\t}\n\treturn { student_id: data.student_id }\n}\n\nfunction isAbortError(err: Error): boolean {\n\treturn err.name === \"AbortError\" || err.name === \"TimeoutError\"\n}\n\nfunction httpSentinel(status: number): Error {\n\tif (status === 400) {\n\t\treturn ErrBadRequest\n\t}\n\tif (status === 401) {\n\t\treturn ErrInvalidSecretKey\n\t}\n\tif (status === 409) {\n\t\treturn ErrConflict\n\t}\n\treturn ErrServerError\n}\n\nasync function readErrorBody(res: Response): Promise<StudentsErrorBody> {\n\tconst parsed = await res.json().then(\n\t\tfunction ok(data: unknown) {\n\t\t\treturn { ok: true, data } as const\n\t\t},\n\t\tfunction fail() {\n\t\t\treturn { ok: false } as const\n\t\t}\n\t)\n\tif (!parsed.ok) {\n\t\treturn {}\n\t}\n\treturn toStudentsErrorBody(parsed.data)\n}\n\nasync function sendCreateStudentRequest(config: StudentsConfig): Promise<Response> {\n\tconst logger = config.logger\n\tconst fetchFn = config.fetch ? config.fetch : globalThis.fetch\n\tconst signal = config.abort ? config.abort.signal : undefined\n\tconst url = `${config.origin}${STUDENTS_PATH}`\n\tconst fetchResult = await fetchFn(url, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\tAuthorization: `Bearer ${config.secretKey}`\n\t\t},\n\t\tsignal\n\t}).then(\n\t\tfunction ok(response: Response) {\n\t\t\treturn { ok: true, response } as const\n\t\t},\n\t\tfunction fail(err: Error) {\n\t\t\treturn { ok: false, error: err } as const\n\t\t}\n\t)\n\n\tif (!fetchResult.ok) {\n\t\tif (isAbortError(fetchResult.error)) {\n\t\t\tlogger.error(\"students timeout\", { path: STUDENTS_PATH })\n\t\t\tthrow errors.wrap(ErrTimeout, fetchResult.error.message)\n\t\t}\n\t\tlogger.error(\"students network error\", {\n\t\t\tpath: STUDENTS_PATH,\n\t\t\terror: fetchResult.error\n\t\t})\n\t\tthrow errors.wrap(ErrNetwork, fetchResult.error.message)\n\t}\n\n\treturn fetchResult.response\n}\n\nasync function parseStudentIdSuccess(config: StudentsConfig, res: Response): Promise<string> {\n\tconst logger = config.logger\n\tconst jsonResult = await res.json().then(\n\t\tfunction ok(data: unknown) {\n\t\t\treturn { ok: true, data } as const\n\t\t},\n\t\tfunction fail(err: Error) {\n\t\t\treturn { ok: false, error: err } as const\n\t\t}\n\t)\n\n\tif (!jsonResult.ok) {\n\t\tlogger.error(\"student id response parse failed\", {\n\t\t\toperation: \"create student\",\n\t\t\terror: jsonResult.error\n\t\t})\n\t\tthrow errors.wrap(ErrJsonParse, jsonResult.error.message)\n\t}\n\n\tconst body = parseStudentIdSuccessBody(jsonResult.data)\n\tif (!body) {\n\t\tlogger.error(\"student id response had invalid shape\", {\n\t\t\toperation: \"create student\",\n\t\t\tbody: jsonResult.data\n\t\t})\n\t\tthrow errors.wrap(ErrJsonParse, \"create student success body had invalid shape\")\n\t}\n\n\tlogger.debug(\"student id response success\", {\n\t\toperation: \"create student\",\n\t\tstudentId: body.student_id\n\t})\n\treturn body.student_id\n}\n\nasync function createStudent(config: StudentsConfig): Promise<string> {\n\tconst logger = config.logger\n\tlogger.debug(\"create student request\")\n\n\tconst res = await sendCreateStudentRequest(config)\n\tif (!res.ok) {\n\t\tconst body = await readErrorBody(res)\n\t\tconst sentinel = httpSentinel(res.status)\n\t\tconst detail = body.error ? `${res.status} ${body.error}` : `${res.status}`\n\t\tlogger.error(\"create student http error\", { status: res.status, body })\n\t\tthrow errors.wrap(sentinel, detail)\n\t}\n\n\treturn parseStudentIdSuccess(config, res)\n}\n\nexport type { StudentsConfig }\nexport { createStudent }\n",
|
|
10
|
-
"import type { PrimerLogger } from \"@superbuilders/primer-tives/logger\"\nimport {\n\ttype SessionToken,\n\ttype TimebackSession,\n\texchangeStudent,\n\texchangeTimebackStudent\n} from \"@superbuilders/primer-tives/server/exchange\"\n\nimport {\n\ttype PlacementHints,\n\ttype PlacementHintsResult,\n\tsetStudentHints\n} from \"@superbuilders/primer-tives/server/hints\"\nimport { createStudent } from \"@superbuilders/primer-tives/server/students\"\n\ninterface PrimerServerConfig {\n\treadonly origin: string\n\treadonly secretKey: string\n\treadonly fetch?: typeof globalThis.fetch\n\treadonly abort?: AbortController\n\treadonly logger: PrimerLogger\n}\n\ninterface PrimerServer {\n\t/**\n\t * Provisions a frontend-owned Primer student and returns the stable\n\t * student id you persist in your own DB keyed by your user.
|
|
10
|
+
"import type { PrimerLogger } from \"@superbuilders/primer-tives/logger\"\nimport {\n\ttype SessionToken,\n\ttype TimebackSession,\n\texchangeStudent,\n\texchangeTimebackStudent\n} from \"@superbuilders/primer-tives/server/exchange\"\n\nimport {\n\ttype PlacementHints,\n\ttype PlacementHintsResult,\n\tsetStudentHints\n} from \"@superbuilders/primer-tives/server/hints\"\nimport { createStudent } from \"@superbuilders/primer-tives/server/students\"\n\ninterface PrimerServerConfig {\n\treadonly origin: string\n\treadonly secretKey: string\n\treadonly fetch?: typeof globalThis.fetch\n\treadonly abort?: AbortController\n\treadonly logger: PrimerLogger\n}\n\ninterface PrimerServer {\n\t/**\n\t * Provisions a frontend-owned Primer student and returns the stable\n\t * student id you persist in your own DB keyed by your user. Pure\n\t * identity — the student has no hints and no placements yet. Call\n\t * `setStudentHints(studentId, { gradeLevel })` before the student's\n\t * first `/advance`. If a session calls `/advance` without hints set,\n\t * the server returns 412 `needs_hints` (surfaced as `ErrNeedsHints`\n\t * in the browser SDK).\n\t */\n\tcreateStudent(): Promise<string>\n\n\t/**\n\t * Partial update of a student's placement-routing hints. Pass only\n\t * the fields you want to set; omitted fields are left untouched.\n\t * Returns the persisted state after upsert. Today the only hint is\n\t * `gradeLevel`; future hint kinds (raw context, interests, etc.)\n\t * will appear as additional optional fields.\n\t */\n\tsetStudentHints(studentId: string, hints: PlacementHints): Promise<PlacementHintsResult>\n\n\t/**\n\t * Exchanges a frontend-owned native/manual student id for a short-lived\n\t * access token. Pass `accessToken` from the returned `SessionToken` to\n\t * `create()` on the browser SDK.\n\t */\n\texchangeStudentForAccessToken(studentId: string): Promise<SessionToken>\n\n\t/**\n\t * Verifies the learner against live Timeback authority, resolves or\n\t * provisions the corresponding frontend-owned Primer student, and\n\t * returns both the stable student id and a short-lived access token.\n\t */\n\texchangeTimebackStudentForAccessToken(sourcedId: string): Promise<TimebackSession>\n}\n\nfunction createPrimerServer(config: PrimerServerConfig): PrimerServer {\n\treturn {\n\t\tcreateStudent(): Promise<string> {\n\t\t\treturn createStudent(config)\n\t\t},\n\t\tsetStudentHints(studentId, hints): Promise<PlacementHintsResult> {\n\t\t\treturn setStudentHints(config, studentId, hints)\n\t\t},\n\t\texchangeStudentForAccessToken(studentId): Promise<SessionToken> {\n\t\t\treturn exchangeStudent(config, studentId)\n\t\t},\n\t\texchangeTimebackStudentForAccessToken(sourcedId): Promise<TimebackSession> {\n\t\t\treturn exchangeTimebackStudent(config, sourcedId)\n\t\t}\n\t}\n}\n\nexport type { PrimerServer, PrimerServerConfig }\nexport { createPrimerServer }\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "9282F03BD8CDAA7F64756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|