@prisma/orm-framework 8.0.0-rc.17-dev.36 → 8.0.0-rc.17-dev.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/{authoring-C0JXF22s.d.mts → authoring-D--mDfh-.d.mts} +77 -16
  2. package/dist/authoring-D--mDfh-.d.mts.map +1 -0
  3. package/dist/{authoring-Bv-ExMUC.mjs → authoring-axlemDvs.mjs} +138 -9
  4. package/dist/authoring-axlemDvs.mjs.map +1 -0
  5. package/dist/{binder-C54tCWu0-wFS-Dsru.d.mts → binder-C54tCWu0-VCDLfJaz.d.mts} +4 -4
  6. package/dist/{binder-C54tCWu0-wFS-Dsru.d.mts.map → binder-C54tCWu0-VCDLfJaz.d.mts.map} +1 -1
  7. package/dist/{codec-B-7ArtWI.mjs → codec-B6f31GrC.mjs} +2 -39
  8. package/dist/codec-B6f31GrC.mjs.map +1 -0
  9. package/dist/codec-descriptor-DUZmWwry-BVbguh8h.mjs +42 -0
  10. package/dist/codec-descriptor-DUZmWwry-BVbguh8h.mjs.map +1 -0
  11. package/dist/components.d.mts +2 -2
  12. package/dist/components.mjs +4 -3
  13. package/dist/components__authoring.d.mts +2 -2
  14. package/dist/components__authoring.mjs +2 -2
  15. package/dist/components__codec.mjs +2 -1
  16. package/dist/{config-types-BWNY2ea_.d.mts → config-types-z-EG3487.d.mts} +2 -2
  17. package/dist/{config-types-BWNY2ea_.d.mts.map → config-types-z-EG3487.d.mts.map} +1 -1
  18. package/dist/config.d.mts +1 -1
  19. package/dist/config__config-types.d.mts +1 -1
  20. package/dist/contract-authoring.d.mts +9 -6
  21. package/dist/contract-authoring.d.mts.map +1 -1
  22. package/dist/contract-authoring.mjs +47 -9
  23. package/dist/contract-authoring.mjs.map +1 -1
  24. package/dist/{parse-CJtBvEYy-BsdZXMKU.d.mts → parse-CJtBvEYy-CDKziSed.d.mts} +3 -3
  25. package/dist/{parse-CJtBvEYy-BsdZXMKU.d.mts.map → parse-CJtBvEYy-CDKziSed.d.mts.map} +1 -1
  26. package/dist/psl-parser.d.mts +3 -3
  27. package/dist/psl-parser.mjs +1 -1
  28. package/dist/psl-parser__format.d.mts +1 -1
  29. package/dist/psl-parser__interpret.d.mts +4 -4
  30. package/dist/psl-parser__syntax.d.mts +1 -1
  31. package/dist/psl-printer.d.mts +1 -1
  32. package/package.json +15 -15
  33. package/dist/authoring-Bv-ExMUC.mjs.map +0 -1
  34. package/dist/authoring-C0JXF22s.d.mts.map +0 -1
  35. package/dist/codec-B-7ArtWI.mjs.map +0 -1
@@ -1,11 +1,11 @@
1
1
  import { t as Contract } from "./contract-types-Mp9HNgyy-zkcDkGuS.mjs";
2
2
  import { $ as instantiateAuthoringFieldPreset, C as AuthoringPslBlockDescriptorNamespace, D as AuthoringTypeConstructorDescriptor, U as PslSpan, n as AuthoringArgumentDescriptor, p as AuthoringFieldPresetDescriptor } from "./framework-authoring-BaBmrcxi-DV-OErsx.mjs";
3
3
  import { r as Result } from "./result-BYCOANWy.mjs";
4
- import "./authoring-C0JXF22s.mjs";
4
+ import "./authoring-D--mDfh-.mjs";
5
5
  import "./psl-ast-Dho77tVl.mjs";
6
- import { c as ContractSourceProvider, n as ContractSourceContext, o as ContractSourceDiagnostics, p as PslContractSourceProvider, r as ContractSourceDiagnostic } from "./config-types-BWNY2ea_.mjs";
7
- import { B as PslDiagnosticCollector, V as PslSources, d as DiagnosticSource, f as DocumentAst, z as PslDiagnostic } from "./parse-CJtBvEYy-BsdZXMKU.mjs";
8
- import { Ct as ResolvedAttributeArg, Et as ResolvedTypeConstructorCall, L as FieldSymbol, kt as SymbolTable, l as Binder, p as BlockSymbol } from "./binder-C54tCWu0-wFS-Dsru.mjs";
6
+ import { c as ContractSourceProvider, n as ContractSourceContext, o as ContractSourceDiagnostics, p as PslContractSourceProvider, r as ContractSourceDiagnostic } from "./config-types-z-EG3487.mjs";
7
+ import { B as PslDiagnosticCollector, V as PslSources, d as DiagnosticSource, f as DocumentAst, z as PslDiagnostic } from "./parse-CJtBvEYy-CDKziSed.mjs";
8
+ import { Ct as ResolvedAttributeArg, Et as ResolvedTypeConstructorCall, L as FieldSymbol, kt as SymbolTable, l as Binder, p as BlockSymbol } from "./binder-C54tCWu0-VCDLfJaz.mjs";
9
9
  //#region ../../../1-framework/2-authoring/psl-parser/dist/interpret.d.mts
10
10
  //#region src/authoring-arguments.d.ts
11
11
  /**
@@ -1,5 +1,5 @@
1
1
  import { n as TokenKind } from "./tokenizer-i8RaVWVa-7fRwlCPP.mjs";
2
- import { $ as TypeAnnotationAst, A as NamespaceDeclarationAst, C as IdentifierAst, D as ModelAttributeAst, E as MixinInclusionAst, F as ParseDiagnostic, G as StringLiteralExprAst, H as QualifiedNameAst, I as ParseResult, J as SyntaxKind, K as StringLiteralQuote, L as PathExprAst, M as NumberLiteralExprAst, N as ObjectFieldAst, O as ModelDeclarationAst, P as ObjectLiteralExprAst, Q as TokenAtOffset, R as Position, S as HasDocComment, T as MixinDeclarationAst, U as Range, V as PslSources, W as SourceFile, X as SyntaxToken, Y as SyntaxNode, Z as TaggedLiteralExprAst, _ as GenericBlockDeclarationAst, a as AttributeAst, b as GreenNode, c as BracedBlock, ct as filterChildren, dt as greenNode, et as TypesBlockAst, f as DocumentAst, ft as greenToken, g as FunctionCallAst, h as FieldDeclarationAst, ht as printSyntax, i as AttributeArgListAst, it as createSyntaxTree, j as NamespaceMemberAst, k as NamedTypeDeclarationAst, l as CompositeTypeDeclarationAst, lt as findChildToken, m as FieldAttributeAst, mt as parse, n as AstNode, nt as castExpression, o as BlockMemberAst, p as ExpressionAst, q as SyntaxElement, r as AttributeArgAst, s as BooleanLiteralExprAst, st as dottedPathsIn, t as ArrayLiteralAst, tt as any, u as DeclarationAst, ut as findFirstChild, v as GenericBlockMemberAst, w as KeyValuePairAst, x as GreenToken, y as GreenElement } from "./parse-CJtBvEYy-BsdZXMKU.mjs";
2
+ import { $ as TypeAnnotationAst, A as NamespaceDeclarationAst, C as IdentifierAst, D as ModelAttributeAst, E as MixinInclusionAst, F as ParseDiagnostic, G as StringLiteralExprAst, H as QualifiedNameAst, I as ParseResult, J as SyntaxKind, K as StringLiteralQuote, L as PathExprAst, M as NumberLiteralExprAst, N as ObjectFieldAst, O as ModelDeclarationAst, P as ObjectLiteralExprAst, Q as TokenAtOffset, R as Position, S as HasDocComment, T as MixinDeclarationAst, U as Range, V as PslSources, W as SourceFile, X as SyntaxToken, Y as SyntaxNode, Z as TaggedLiteralExprAst, _ as GenericBlockDeclarationAst, a as AttributeAst, b as GreenNode, c as BracedBlock, ct as filterChildren, dt as greenNode, et as TypesBlockAst, f as DocumentAst, ft as greenToken, g as FunctionCallAst, h as FieldDeclarationAst, ht as printSyntax, i as AttributeArgListAst, it as createSyntaxTree, j as NamespaceMemberAst, k as NamedTypeDeclarationAst, l as CompositeTypeDeclarationAst, lt as findChildToken, m as FieldAttributeAst, mt as parse, n as AstNode, nt as castExpression, o as BlockMemberAst, p as ExpressionAst, q as SyntaxElement, r as AttributeArgAst, s as BooleanLiteralExprAst, st as dottedPathsIn, t as ArrayLiteralAst, tt as any, u as DeclarationAst, ut as findFirstChild, v as GenericBlockMemberAst, w as KeyValuePairAst, x as GreenToken, y as GreenElement } from "./parse-CJtBvEYy-CDKziSed.mjs";
3
3
  //#region ../../../1-framework/2-authoring/psl-parser/dist/syntax.d.mts
4
4
  //#region src/syntax/green-builder.d.ts
5
5
  declare class GreenNodeBuilder {
@@ -1,5 +1,5 @@
1
1
  import { C as AuthoringPslBlockDescriptorNamespace } from "./framework-authoring-BaBmrcxi-DV-OErsx.mjs";
2
- import "./authoring-C0JXF22s.mjs";
2
+ import "./authoring-D--mDfh-.mjs";
3
3
  import { f as PslDocumentAst } from "./psl-ast-BER6m646-c8XvWGXr.mjs";
4
4
  import "./psl-ast-Dho77tVl.mjs";
5
5
  //#region ../../../1-framework/2-authoring/psl-printer/dist/index.d.mts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/orm-framework",
3
- "version": "8.0.0-rc.17-dev.36",
3
+ "version": "8.0.0-rc.17-dev.37",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -16,20 +16,20 @@
16
16
  "uniku": "^0.5.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@internal/config": "8.0.0-rc.17-dev.36",
20
- "@internal/contract": "8.0.0-rc.17-dev.36",
21
- "@internal/contract-authoring": "8.0.0-rc.17-dev.36",
22
- "@internal/errors": "8.0.0-rc.17-dev.36",
23
- "@internal/framework-components": "8.0.0-rc.17-dev.36",
24
- "@internal/ids": "8.0.0-rc.17-dev.36",
25
- "@internal/operations": "8.0.0-rc.17-dev.36",
26
- "@internal/psl-parser": "8.0.0-rc.17-dev.36",
27
- "@internal/psl-printer": "8.0.0-rc.17-dev.36",
28
- "@internal/ts-render": "8.0.0-rc.17-dev.36",
29
- "@repo/tsconfig": "8.0.0-rc.17-dev.36",
30
- "@internal/publish-surface": "8.0.0-rc.17-dev.36",
31
- "@repo/tsdown": "8.0.0-rc.17-dev.36",
32
- "@internal/utils": "8.0.0-rc.17-dev.36",
19
+ "@internal/config": "8.0.0-rc.17-dev.37",
20
+ "@internal/contract": "8.0.0-rc.17-dev.37",
21
+ "@internal/contract-authoring": "8.0.0-rc.17-dev.37",
22
+ "@internal/errors": "8.0.0-rc.17-dev.37",
23
+ "@internal/framework-components": "8.0.0-rc.17-dev.37",
24
+ "@internal/ids": "8.0.0-rc.17-dev.37",
25
+ "@internal/operations": "8.0.0-rc.17-dev.37",
26
+ "@internal/psl-parser": "8.0.0-rc.17-dev.37",
27
+ "@internal/psl-printer": "8.0.0-rc.17-dev.37",
28
+ "@internal/ts-render": "8.0.0-rc.17-dev.37",
29
+ "@repo/tsconfig": "8.0.0-rc.17-dev.37",
30
+ "@internal/publish-surface": "8.0.0-rc.17-dev.37",
31
+ "@repo/tsdown": "8.0.0-rc.17-dev.37",
32
+ "@internal/utils": "8.0.0-rc.17-dev.37",
33
33
  "tsdown": "0.22.14",
34
34
  "typescript": "5.9.3",
35
35
  "vitest": "5.0.0-rc.2"
@@ -1 +0,0 @@
1
- {"version":3,"file":"authoring-Bv-ExMUC.mjs","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/authoring.mjs"],"sourcesContent":["import { a as dataTypeId } from \"./data-type-4xQlxYB5.mjs\";\nimport { t as canonicalizeJson } from \"./canonicalize-json-ZPawceQR.mjs\";\nimport { A as isAuthoringModelAttributeDescriptor, B as validateAuthoringTypeParams, C as getAuthoringTypeConstructor, D as isAuthoringArgRef, E as instantiateAuthoringTypeConstructor, F as mergeAuthoringNamespaces, I as resolveAuthoringTemplateValue, L as resolveEnumCodecId, M as isAuthoringTypeConstructorDescriptor, N as isTagEntryKey, O as isAuthoringEntityTypeDescriptor, R as tagEntryKey, S as flushAuthoringWarnings, T as instantiateAuthoringFieldPreset, _ as assertResolvableTypeConstructorTemplates, a as temporalCodecPreset, d as printTaggedLiteral, f as printedTaggedLiteralReadsBack, g as assertNoCrossRegistryCollisions, h as tsTaggedTemplateSource, i as temporalAuthoringPresets, j as isAuthoringPslBlockDescriptor, k as isAuthoringFieldPresetDescriptor, l as canonicalizeTaggedLiteralBody, m as resolveTemplateTagEscapes, n as TEMPORAL_ON_UPDATE_ARG, o as temporalPhaseTemplate, r as TIMESTAMP_NOW_GENERATOR_ID, t as TEMPORAL_ON_CREATE_ARG, u as describeTaggedLiteralFailure, v as authoringEntryType, w as instantiateAuthoringEntityType, x as collectScalarTypeConstructors, y as classifyEnumMemberType, z as validateAuthoringHelperArguments } from \"./temporal-presets-DEyPX8qQ.mjs\";\nimport { isInternalError } from \"@internal/utils/internal-error\";\nimport { canonicalStringify } from \"@internal/utils/canonical-stringify\";\nimport { notOk, ok } from \"@internal/utils/result\";\n//#region src/shared/authoring-type-constructor-call.ts\nfunction* typeConstructors(namespace, path = []) {\n\tfor (const [name, value] of Object.entries(namespace)) if (isAuthoringTypeConstructorDescriptor(value)) yield {\n\t\tpath: [...path, name],\n\t\tdescriptor: value\n\t};\n\telse yield* typeConstructors(value, [...path, name]);\n}\nfunction produces(produced, wanted) {\n\tconst wantedFields = {\n\t\t...wanted,\n\t\ttypeParams: wanted.typeParams ?? {}\n\t};\n\treturn Object.entries({\n\t\t...produced,\n\t\ttypeParams: produced.typeParams ?? {}\n\t}).every(([key, value]) => canonicalizeJson(value) === canonicalizeJson(wantedFields[key]));\n}\n/**\n* The arguments that make `descriptor` produce exactly `output`, when each of its type parameters\n* comes straight from one argument; `undefined` when it cannot produce `output`, including when\n* `output` has no value for an argument the constructor requires.\n*/\nfunction argumentsFor(descriptor, output) {\n\tif (descriptor.entityRefArg !== void 0 || descriptor.output.codecId !== output.codecId) return;\n\tconst args = [];\n\tfor (const [key, template] of Object.entries(descriptor.output.typeParams ?? {})) {\n\t\tconst value = output.typeParams?.[key];\n\t\tif (value !== void 0 && isAuthoringArgRef(template) && template.path === void 0) args[template.index] = value;\n\t}\n\tconst requiredArgs = (descriptor.args ?? []).filter((arg) => arg.optional !== true).length;\n\tif (args.length < requiredArgs || Array.from(args).includes(void 0)) return void 0;\n\ttry {\n\t\treturn produces(instantiateAuthoringTypeConstructor(descriptor, args), output) ? args : void 0;\n\t} catch {\n\t\treturn;\n\t}\n}\n/**\n* The first call, in namespace order, to a type constructor in `namespace` that produces exactly\n* `output`. The inverse of {@link instantiateAuthoringTypeConstructor} for constructors whose type\n* parameters each come straight from one argument. A constructor whose argument names another\n* entity is never chosen. `undefined` when no call produces `output`.\n*/\nfunction findAuthoringTypeConstructorCall(namespace, output) {\n\tfor (const { path, descriptor } of typeConstructors(namespace)) {\n\t\tconst args = argumentsFor(descriptor, output);\n\t\tif (args !== void 0) return {\n\t\t\tpath,\n\t\t\targs\n\t\t};\n\t}\n}\n//#endregion\n//#region src/shared/enum-stored-members.ts\n/**\n* Each enum member whose stored form equals an earlier member's, paired with the first such member. Stored forms are compared as `contract.json` holds them, so negative zero is zero, and by `canonicalStringify`, so two objects with the same entries in a different order are equal. Every enum authoring surface refuses the members this returns.\n*/\nfunction duplicateStoredMembers(members) {\n\tconst memberByStoredForm = /* @__PURE__ */ new Map();\n\tconst duplicates = [];\n\tfor (const { name, stored } of members) {\n\t\tconst key = canonicalStringify(JSON.parse(JSON.stringify(stored)));\n\t\tconst earlier = memberByStoredForm.get(key);\n\t\tif (earlier === void 0) memberByStoredForm.set(key, name);\n\t\telse duplicates.push({\n\t\t\tearlier,\n\t\t\tlater: name,\n\t\t\tstored\n\t\t});\n\t}\n\treturn duplicates;\n}\n//#endregion\n//#region src/shared/enum-block-members.ts\n/**\n* Reads the members of an `enum` block through its codec. A member written as a number literal is read from its source text as a column default is read, when the family gives a reader for it (`ctx.readWrittenNumber`), so no digit is lost; when that reader refuses the number, the codec's `decodeJson` reads it, and only if the codec refuses it too is the reader's reason reported. Every other member goes to the codec's `decodeJson`, and a bare member is read from its own name.\n* Pushes a diagnostic and returns `undefined` when the codec refuses a member, when two members\n* store the same value, or when the block has no members. Shared by every family's enum factory.\n*/\nfunction readEnumBlockMembers(block, codecId, codec, ctx) {\n\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\tconst diagnostics = ctx.diagnostics;\n\tconst members = [];\n\tconst storedMembers = [];\n\tlet memberError = false;\n\tfor (const [memberName, memberValue] of Object.entries(block.values)) {\n\t\tconst span = block.parameterSpans[memberName] ?? block.span;\n\t\tconst reading = typeof memberValue === \"number\" ? ctx.readWrittenNumber?.({\n\t\t\ttext: block.numberTexts?.[memberName] ?? String(memberValue),\n\t\t\tcodecId,\n\t\t\tsubject: `enum \"${block.name}\" member \"${memberName}\"`\n\t\t}) : void 0;\n\t\tconst written = reading?.ok ? reading.value : memberValue === void 0 ? memberName : memberValue;\n\t\tlet read;\n\t\ttry {\n\t\t\tread = codec.decodeJson(written);\n\t\t} catch (err) {\n\t\t\tif (isInternalError(err)) throw err;\n\t\t\tdiagnostics?.push(reading !== void 0 && !reading.ok ? {\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: reading.message,\n\t\t\t\tsourceId,\n\t\t\t\tspan\n\t\t\t} : memberValue === void 0 ? {\n\t\t\t\tcode: \"PSL_ENUM_BARE_MEMBER_NON_STRING_CODEC\",\n\t\t\t\tmessage: `enum \"${block.name}\" member \"${memberName}\" has no value and codec \"${codecId}\" does not accept a bare name as input`,\n\t\t\t\tsourceId,\n\t\t\t\tspan\n\t\t\t} : {\n\t\t\t\tcode: \"PSL_EXTENSION_INVALID_VALUE\",\n\t\t\t\tmessage: `enum \"${block.name}\" member \"${memberName}\" was rejected by codec \"${codecId}\": ${err instanceof Error ? err.message : String(err)}`,\n\t\t\t\tsourceId,\n\t\t\t\tspan\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tmembers.push({\n\t\t\tname: memberName,\n\t\t\tvalue: read\n\t\t});\n\t\tstoredMembers.push({\n\t\t\tname: memberName,\n\t\t\tstored: codec.encodeJson(read)\n\t\t});\n\t}\n\tfor (const { earlier, later, stored } of duplicateStoredMembers(storedMembers)) {\n\t\tdiagnostics?.push({\n\t\t\tcode: \"PSL_ENUM_DUPLICATE_MEMBER_VALUE\",\n\t\t\tmessage: `enum \"${block.name}\": members \"${earlier}\" and \"${later}\" both store ${JSON.stringify(stored)}`,\n\t\t\tsourceId,\n\t\t\tspan: block.parameterSpans[later] ?? block.span\n\t\t});\n\t\tmemberError = true;\n\t}\n\tif (memberError) return void 0;\n\tif (members.length === 0) {\n\t\tdiagnostics?.push({\n\t\t\tcode: \"PSL_ENUM_MISSING_TYPE\",\n\t\t\tmessage: `enum \"${block.name}\" must have at least one member`,\n\t\t\tsourceId,\n\t\t\tspan: block.span\n\t\t});\n\t\treturn;\n\t}\n\treturn members;\n}\n//#endregion\n//#region src/shared/field-preset-resolution.ts\nfunction presetSpellingsUnder(members, prefix) {\n\treturn Object.entries(members).flatMap(([name, member]) => isAuthoringFieldPresetDescriptor(member) ? [`${prefix}.${name}(${(member.args ?? []).map((arg, index) => arg.name ?? `argument${index + 1}`).join(\", \")})`] : presetSpellingsUnder(member, `${prefix}.${name}`));\n}\n/**\n* How each field preset registered under `namespace`, at any depth, is written, with the names of its arguments: `temporal.timestamp(onCreate, onUpdate)`.\n*/\nfunction fieldPresetSpellings(contributions, namespace) {\n\tconst members = contributions?.field?.[namespace];\n\tif (members === void 0 || isAuthoringFieldPresetDescriptor(members)) return [];\n\treturn presetSpellingsUnder(members, namespace);\n}\n/**\n* Walks `authoringContributions.field` segment by segment and returns the field-preset descriptor at the path, or `undefined` when none is registered there.\n*/\nfunction getAuthoringFieldPreset(contributions, path) {\n\tlet current = contributions?.field;\n\tfor (const segment of path) {\n\t\tif (typeof current !== \"object\" || current === null || \"kind\" in current) return;\n\t\tcurrent = current[segment];\n\t}\n\treturn current !== void 0 && isAuthoringFieldPresetDescriptor(current) ? current : void 0;\n}\n//#endregion\n//#region src/shared/written-value.ts\n/**\n* Words a refusal of the cast rule. The message leads with what to write; the types are named only when the value has a form the position admits and its type is still refused, such as a number too large for the receiving type.\n*/\nfunction describeRefusal(refusal, support, guidance) {\n\tswitch (refusal.kind) {\n\t\tcase \"unknown-tag\": return {\n\t\t\tcode: \"PSL_UNKNOWN_LITERAL_TAG\",\n\t\t\tmessage: `Unknown literal tag \"${refusal.tag}\". Known tags: ${refusal.known.join(\", \")}.`\n\t\t};\n\t\tcase \"unwritable\": return {\n\t\t\tcode: \"PSL_VALUE_TYPE_INCOMPATIBLE\",\n\t\t\tmessage: `${describeExpected(guidance.forms)}; this target has no data type for a ${refusal.syntax} value`\n\t\t};\n\t\tcase \"unreadable\": return {\n\t\t\tcode: \"PSL_INVALID_LITERAL\",\n\t\t\tmessage: refusal.message\n\t\t};\n\t\tcase \"no-cast\": return {\n\t\t\tcode: \"PSL_VALUE_TYPE_INCOMPATIBLE\",\n\t\t\tmessage: describeRefusedValueType(refusal, support, guidance)\n\t\t};\n\t}\n}\n/** `Expected <forms>`, the forms joined with `or`: the start of every refusal that says what to write. */\nfunction describeExpected(forms) {\n\treturn `Expected ${joinForms(forms)}`;\n}\n/**\n* Words a value of type `valueType` that `receivingType` refuses, where `guidance.forms` may be written. The types are named only when the value has one of those forms.\n*/\nfunction describeRefusedValueType(refused, support, guidance) {\n\tconst expected = describeExpected(guidance.forms);\n\tconst valueForm = writtenForm(support, refused.valueType);\n\tif (valueForm !== void 0 && guidance.forms.some((form) => isSameForm(form, valueForm))) return `${expected} that ${refused.receivingType} can hold; got ${refused.valueType}`;\n\treturn guidance.rewrite === void 0 ? expected : `${expected}; write ${guidance.rewrite}`;\n}\nfunction isSameForm(a, b) {\n\treturn a.kind === \"tag\" && b.kind === \"tag\" ? a.tag === b.tag : a.kind === b.kind;\n}\n/**\n* The literal to write in place of a quoted string that `receivingType` refuses: the string as a literal of the first tag the type admits. `undefined` when the value is not a quoted string, the type admits no tag, the literal would not read back as the same text, or the type would refuse the literal too.\n*/\nfunction exactRewrite(support, receivingType, written) {\n\tconst [tag] = admittedTags(support, receivingType);\n\tif (written.kind !== \"string\" || tag === void 0) return void 0;\n\tif (!printedTaggedLiteralReadsBack(written.text)) return void 0;\n\tconst read = readWrittenValue(support, {\n\t\tkind: \"tag\",\n\t\ttag,\n\t\ttext: written.text\n\t});\n\tif (!read.ok || !castTypedValue(support, receivingType, read.value).ok) return void 0;\n\treturn printTaggedLiteral(tag, written.text);\n}\nfunction findEntry(support, matches) {\n\tfor (const [key, entry] of Object.entries(support.entries)) if (matches(entry)) return {\n\t\tkey,\n\t\tentry\n\t};\n}\n/** The entry a tag names, or `undefined` when no pack registered that tag. */\nfunction entryForTag(support, tag) {\n\treturn findEntry(support, ({ written }) => written.kind === \"tag\" && written.tag === tag);\n}\n/** The entry that reads a plain string, boolean or number, or `undefined` when none does. */\nfunction entryForPlain(support, syntax) {\n\treturn findEntry(support, ({ written }) => written.kind === \"plain\" && written.syntax === syntax);\n}\n/** Every tag a stack registers, in the order the entries were merged. */\nfunction knownTags(support) {\n\treturn Object.values(support.entries).flatMap((entry) => entry.written.kind === \"tag\" ? [entry.written.tag] : []);\n}\nfunction textOf(written) {\n\treturn written.kind === \"boolean\" ? String(written.value) : written.text;\n}\nfunction messageOf(error) {\n\treturn error instanceof Error ? error.message : String(error);\n}\n/** Read one written value through the authoring entry for its syntax. */\nfunction readWrittenValue(support, written) {\n\tconst found = written.kind === \"tag\" ? entryForTag(support, written.tag) : entryForPlain(support, written.kind);\n\tif (found === void 0) return written.kind === \"tag\" ? notOk({\n\t\tkind: \"unknown-tag\",\n\t\ttag: written.tag,\n\t\tknown: knownTags(support)\n\t}) : notOk({\n\t\tkind: \"unwritable\",\n\t\tsyntax: written.kind\n\t});\n\tconst text = textOf(written);\n\tconst form = found.entry.written;\n\tif (form.kind === \"plain\" && form.syntax === \"number\") {\n\t\tconst classified = form.classify(text);\n\t\treturn classified === void 0 ? notOk({\n\t\t\tkind: \"unreadable\",\n\t\t\tmessage: `no data type of this target holds the number ${text}`\n\t\t}) : ok(classified);\n\t}\n\ttry {\n\t\treturn ok({\n\t\t\ttype: dataTypeId(authoringEntryType(found.key, found.entry)),\n\t\t\tvalue: form.parse(text)\n\t\t});\n\t} catch (error) {\n\t\tif (isInternalError(error)) throw error;\n\t\treturn notOk({\n\t\t\tkind: \"unreadable\",\n\t\t\tmessage: messageOf(error)\n\t\t});\n\t}\n}\n/** Take a typed value into the receiving type, directly or through the cast that type declares. */\nfunction castTypedValue(support, receivingType, typed) {\n\tif (typed.type === receivingType) return ok({\n\t\ttype: receivingType,\n\t\tvalue: typed.value\n\t});\n\tconst declaration = support.lookup.get(receivingType);\n\tconst cast = declaration?.casts[typed.type];\n\tif (cast === void 0) return notOk({\n\t\tkind: \"no-cast\",\n\t\treceivingType,\n\t\tvalueType: typed.type,\n\t\tcasts: Object.keys(declaration?.casts ?? {})\n\t});\n\ttry {\n\t\treturn ok({\n\t\t\ttype: receivingType,\n\t\t\tvalue: cast(typed.value)\n\t\t});\n\t} catch (error) {\n\t\tif (isInternalError(error)) throw error;\n\t\treturn notOk({\n\t\t\tkind: \"unreadable\",\n\t\t\tmessage: messageOf(error)\n\t\t});\n\t}\n}\n/** The type itself, then each type it casts from, in key order. */\nfunction admittedTypes(support, dataType) {\n\treturn [dataType, ...Object.keys(support.lookup.get(dataType)?.casts ?? {})];\n}\n/** The tags a position of `dataType` admits: its own tag, then the tags of the types it casts from. */\nfunction admittedTags(support, dataType) {\n\tconst tags = admittedTypes(support, dataType).flatMap((type) => {\n\t\tconst written = support.entries[type]?.written;\n\t\treturn written?.kind === \"tag\" ? [written.tag] : [];\n\t});\n\treturn [...new Set(tags)];\n}\n/** The form a value of a tagged literal's type is written in. */\nfunction tagForm(tag) {\n\treturn {\n\t\tkind: \"tag\",\n\t\ttag,\n\t\tphrase: `${tag}\\`...\\``\n\t};\n}\nconst PLAIN_PHRASES = {\n\tstring: \"a quoted string\",\n\tboolean: \"true or false\",\n\tnumber: \"a number\"\n};\nfunction writtenForm(support, type) {\n\tconst written = support.entries[type]?.written;\n\tif (written?.kind === \"tag\") return tagForm(written.tag);\n\tif (written?.kind === \"plain\" && written.syntax !== \"number\") return {\n\t\tkind: written.syntax,\n\t\tphrase: PLAIN_PHRASES[written.syntax]\n\t};\n\treturn Object.entries(support.entries).some(([key, entry]) => entry.written.kind === \"plain\" && entry.written.syntax === \"number\" && (key === type || entry.written.types.some((listed) => listed === type))) ? {\n\t\tkind: \"number\",\n\t\tphrase: PLAIN_PHRASES.number\n\t} : void 0;\n}\n/** What {@link describeAdmittedForms} returns for a type that nothing writes. */\nconst NO_WRITTEN_FORM = \"no written form\";\n/** Each form a position receiving every one of `receivingTypes` admits, once, in order: ``sql`...` ``, `true or false`. */\nfunction admittedForms(support, receivingTypes) {\n\tconst forms = [];\n\tfor (const type of receivingTypes.flatMap((receiving) => admittedTypes(support, receiving))) {\n\t\tconst form = writtenForm(support, type);\n\t\tif (form !== void 0 && !forms.some((listed) => isSameForm(listed, form))) forms.push(form);\n\t}\n\treturn forms;\n}\nfunction joinForms(forms) {\n\treturn forms.length === 0 ? NO_WRITTEN_FORM : forms.map((form) => form.phrase).join(\" or \");\n}\n/** How a position of `dataType` can be written, for a diagnostic: ``sql`...` ``, `true or false`. */\nfunction describeAdmittedForms(support, dataType) {\n\treturn joinForms(admittedForms(support, [dataType]));\n}\n//#endregion\nexport { TEMPORAL_ON_CREATE_ARG, TEMPORAL_ON_UPDATE_ARG, TIMESTAMP_NOW_GENERATOR_ID, admittedForms, admittedTags, assertNoCrossRegistryCollisions, assertResolvableTypeConstructorTemplates, authoringEntryType, canonicalizeTaggedLiteralBody, castTypedValue, classifyEnumMemberType, collectScalarTypeConstructors, describeAdmittedForms, describeExpected, describeRefusal, describeRefusedValueType, describeTaggedLiteralFailure, duplicateStoredMembers, entryForPlain, entryForTag, exactRewrite, fieldPresetSpellings, findAuthoringTypeConstructorCall, flushAuthoringWarnings, getAuthoringFieldPreset, getAuthoringTypeConstructor, instantiateAuthoringEntityType, instantiateAuthoringFieldPreset, instantiateAuthoringTypeConstructor, isAuthoringArgRef, isAuthoringEntityTypeDescriptor, isAuthoringFieldPresetDescriptor, isAuthoringModelAttributeDescriptor, isAuthoringPslBlockDescriptor, isAuthoringTypeConstructorDescriptor, isTagEntryKey, knownTags, mergeAuthoringNamespaces, printTaggedLiteral, printedTaggedLiteralReadsBack, readEnumBlockMembers, readWrittenValue, resolveAuthoringTemplateValue, resolveEnumCodecId, resolveTemplateTagEscapes, tagEntryKey, tagForm, temporalAuthoringPresets, temporalCodecPreset, temporalPhaseTemplate, tsTaggedTemplateSource, validateAuthoringHelperArguments, validateAuthoringTypeParams };\n\n//# sourceMappingURL=authoring.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"authoring-C0JXF22s.d.mts","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/authoring.d.mts"],"mappings":";;;;;;;KAMK,iCAAiC,kBAAkB;;UAE9C;WACC;WACA;;;;;;;;iBAQM,iCAAiC,WAAW,wBAAwB,QAAQ,iCAAiC;;;UAGpH;WACC;WACA;;;;;;;iBAOM,qBAAqB,OAAO,wBAAwB,SAAS,eAAe,0BAA0B,iBAAiB,OAAO,OAAO,KAAK,kCAAkC;;;UAGnL;WACC;WACA,QAAQ;;UAET;WACC;WACA;WACA,QAAQ;;;;;iBAKF,uBAAuB,kBAAkB,8BAA8B;;;;;;iBAMvE,qBAAqB,eAAe,oCAAoC;;;;iBAIxE,wBAAwB,eAAe,oCAAoC,0BAA0B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codec-B-7ArtWI.mjs","names":[],"sources":["../../../../1-framework/1-core/framework-components/dist/codec.mjs"],"sourcesContent":["import { t as emptyCodecLookup } from \"./codec-types-BXLUbk-Y.mjs\";\nimport { a as dataTypeId, c as requiredSchemaKeys, i as dataType, n as assembleDataTypes, o as objectSchemaKeys, r as createDataTypeLookup, s as requiredParamKeys, t as DATA_TYPE_ID_PATTERN } from \"./data-type-4xQlxYB5.mjs\";\nimport { a as resolveCodecDescriptorOrThrow, i as materializeCodec, o as validateCodecTypeParams, r as codecForRef, t as CONTRACT_CODEC_DESCRIPTOR_MISSING } from \"./resolve-codec-qqMjZrmn.mjs\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { tsStringLiteral } from \"@internal/ts-render\";\n//#region src/shared/codec.ts\n/**\n* Abstract base class for concrete codec implementations.\n*\n* Codec authors extend this class with their typed `Id`, `TTraits`, `TWire`, `TInput` and override all four abstract conversion methods: `encode`, `decode`, `encodeJson`, and `decodeJson`. The runtime instance carries only its `id` (proxied through the descriptor so alias subclasses inherit the descriptor's id automatically) and the conversion methods — static metadata lives on the {@link CodecDescriptor}.\n*/\nvar CodecImpl = class {\n\tdescriptor;\n\t/**\n\t* Variance-erased descriptor reference. Concrete codec subclasses receive the typed descriptor in their own constructors and forward it via `super(descriptor)`; the variance erasure lives at this base because the abstract surface can't carry the concrete `TParams`.\n\t*/\n\tconstructor(descriptor) {\n\t\tthis.descriptor = descriptor;\n\t}\n\tget id() {\n\t\treturn this.descriptor.codecId;\n\t}\n};\n//#endregion\n//#region src/shared/codec-descriptor.ts\n/**\n* The canonical form of the values of a column whose codec is `codec` (ADR 254): the codec's own when it declares one, else its data type's. Whatever reads, compares or writes a stored value of a column takes its canonical form from here.\n*/\nfunction canonicalFormOf(codec, dataTypes) {\n\treturn codec.toCanonicalForm ?? dataTypes.get(codec.dataType)?.toCanonicalForm;\n}\n/**\n* Why an enum cannot use the codec `descriptor` describes, or `undefined` when one can: the codec's own {@link CodecDescriptorTemplate.enumRefusal}, else the missing `equality` trait. Every enum authoring surface refuses a codec through this.\n*/\nfunction enumRefusalOf(descriptor) {\n\tif (descriptor.enumRefusal !== void 0) return descriptor.enumRefusal;\n\tif (descriptor.traits.includes(\"equality\")) return void 0;\n\treturn \"The codec does not declare the equality trait, so no value can be compared with a member. Use a codec that declares it.\";\n}\n/**\n* Abstract base class for concrete codec descriptors.\n*\n* Codec authors extend this class with their typed `TParams` and declare `codecId`, `traits`, `paramsSchema`, the curried `factory(params)`, and (optionally) `renderOutputType`.\n*\n* Implements the {@link CodecDescriptor} interface so a concrete subclass instance is directly usable wherever the framework expects a `CodecDescriptor<P>`.\n*/\nvar CodecDescriptorTemplateImpl = class {\n\tget isParameterized() {\n\t\treturn this.paramsSchema !== void 0;\n\t}\n\t/** Optional canonical form of the codec's values. See {@link CodecDescriptorTemplate.toCanonicalForm}. */\n\ttoCanonicalForm;\n};\n/**\n* Abstract base for a concrete codec descriptor: a {@link CodecDescriptorTemplateImpl} that also\n* names the data type its codec represents.\n*\n* A codec whose data type depends on the target that adopts it extends\n* {@link CodecDescriptorTemplateImpl} instead, and the target names the type when it adapts the\n* template.\n*/\nvar CodecDescriptorImpl = class extends CodecDescriptorTemplateImpl {};\n//#endregion\n//#region src/shared/column-spec.ts\n/**\n* Trivial column packager. Per-codec helpers call this directly with the result of `descriptor.factory(params)` — direct method invocation binds the descriptor's method-level generic at the call site and the literal flows through `R`.\n*/\nfunction column(codecFactory, codecId, typeParams) {\n\treturn {\n\t\tcodecFactory,\n\t\tcodecId,\n\t\ttypeParams\n\t};\n}\n//#endregion\n//#region src/shared/decode-json.ts\n/**\n* Readers for the JSON forms codecs share, each built as {@link Codec.decodeJson} requires: it returns the application value for a stored form of the codec's type and refuses anything else with {@link refuseJsonValue}.\n*/\nconst RECEIVED_PREVIEW_LIMIT = 100;\n/** The value a refusal names: its JSON text, or its digits for a number JSON cannot write, cut to 100 characters. */\nfunction receivedPreview(json) {\n\treturn (typeof json === \"number\" ? String(json) : JSON.stringify(json)).slice(0, RECEIVED_PREVIEW_LIMIT);\n}\n/**\n* The refusal every `decodeJson` raises: `RUNTIME.DECODE_FAILED`, `<codecId> JSON value must be <expected>`, with `meta.codecId` and `meta.received`, the value it was given as JSON text, cut to 100 characters.\n*/\nfunction refuseJsonValue(codecId, expected, json) {\n\tthrow structuredError(\"RUNTIME.DECODE_FAILED\", `${codecId} JSON value must be ${expected}`, { meta: {\n\t\tcodecId,\n\t\treceived: receivedPreview(json)\n\t} });\n}\nfunction decodeJsonString(codecId, json) {\n\tif (typeof json !== \"string\") return refuseJsonValue(codecId, \"a string\", json);\n\treturn json;\n}\n/** Reads a JSON string that matches `pattern`; `form` names what the pattern accepts, for the refusal. */\nfunction decodeJsonMatching(codecId, json, pattern, form) {\n\tif (typeof json !== \"string\" || !pattern.test(json)) return refuseJsonValue(codecId, form, json);\n\treturn json;\n}\nfunction decodeJsonBoolean(codecId, json) {\n\tif (typeof json !== \"boolean\") return refuseJsonValue(codecId, \"a boolean\", json);\n\treturn json;\n}\n/** Whether `value` is an integer within `range`, its ends included. */\nfunction isIntegerIn(value, range) {\n\treturn typeof value === \"number\" && Number.isInteger(value) && value >= range.min && value <= range.max;\n}\n/** The integers a JavaScript `number` holds exactly. */\nconst SAFE_INTEGER_RANGE = {\n\tmin: Number.MIN_SAFE_INTEGER,\n\tmax: Number.MAX_SAFE_INTEGER\n};\n/** The integers a signed 32-bit integer holds. */\nconst INT32_RANGE = {\n\tmin: -(2 ** 31),\n\tmax: 2 ** 31 - 1\n};\nfunction decodeJsonInteger(codecId, json, range) {\n\tif (!isIntegerIn(json, range)) return refuseJsonValue(codecId, `an integer from ${range.min} to ${range.max}`, json);\n\treturn json;\n}\n/** The integers a signed 64-bit integer holds. */\nconst INT64_RANGE = {\n\tmin: -(2n ** 63n),\n\tmax: 2n ** 63n - 1n\n};\n/** The integers a JavaScript `number` holds exactly, as a `bigint` range. */\nconst SAFE_INTEGER_BIGINT_RANGE = {\n\tmin: BigInt(Number.MIN_SAFE_INTEGER),\n\tmax: BigInt(Number.MAX_SAFE_INTEGER)\n};\nconst DECIMAL_INTEGER_TEXT = /^-?\\d+$/;\n/**\n* Reads an integer a codec writes as decimal text, because a JSON number cannot hold every value of its type. The text must be the integer's decimal text, with no leading zeros and no minus sign on zero; another spelling is refused with the text to write, as `\"7\"` for `\"007\"`.\n*/\nfunction decodeJsonIntegerText(codecId, json, range) {\n\tconst expected = range === void 0 ? \"a decimal integer string\" : `a decimal integer string from ${range.min} to ${range.max}`;\n\tconst value = BigInt(decodeJsonMatching(codecId, json, DECIMAL_INTEGER_TEXT, expected));\n\tif (range !== void 0 && (value < range.min || value > range.max)) return refuseJsonValue(codecId, expected, json);\n\tconst written = value.toString();\n\tif (json !== written) return refuseJsonValue(codecId, `\"${written}\", the integer's decimal text without leading zeros or a minus sign on zero`, json);\n\treturn value;\n}\nconst NON_FINITE_TEXT = /* @__PURE__ */ new Set([\n\t\"NaN\",\n\t\"Infinity\",\n\t\"-Infinity\"\n]);\n/** Whether `text` is `NaN`, `Infinity` or `-Infinity`, the text a float's JSON form writes for a value JSON has no number for. */\nfunction isNonFiniteText(text) {\n\treturn NON_FINITE_TEXT.has(text);\n}\n/** JSON has no number for NaN or an infinity, so a float's JSON form writes them as the text `NaN`, `Infinity` and `-Infinity`. */\nfunction encodeJsonFloat(value) {\n\treturn Number.isFinite(value) ? value : String(value);\n}\nfunction decodeJsonFloat(codecId, json) {\n\tif (typeof json === \"number\" && Number.isFinite(json)) return json;\n\tif (typeof json === \"string\" && isNonFiniteText(json)) return Number(json);\n\treturn refuseJsonValue(codecId, \"a finite number or the text NaN, Infinity or -Infinity\", json);\n}\n//#endregion\n//#region src/shared/render-ts-literal.ts\n/**\n* Renders a codec-encoded value as a TypeScript literal (e.g. `\"low\"`, `1`, `true`), or `undefined`\n* when the value isn't literal-expressible (objects, arrays, null).\n*\n* Valid **only for identity codecs** whose `encodeJson` output equals their decoded output type\n* (text, int, float, bool). A non-identity codec (e.g. one that encodes to an int but decodes to a\n* string literal) must NOT use this: it has to `decodeJson` first, then render, in its own\n* `renderValueLiteral`.\n*/\nfunction renderTsLiteral(value) {\n\tif (typeof value === \"string\") return tsStringLiteral(value);\n\tif (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n}\n//#endregion\nexport { CONTRACT_CODEC_DESCRIPTOR_MISSING, CodecDescriptorImpl, CodecDescriptorTemplateImpl, CodecImpl, DATA_TYPE_ID_PATTERN, INT32_RANGE, INT64_RANGE, SAFE_INTEGER_BIGINT_RANGE, SAFE_INTEGER_RANGE, assembleDataTypes, canonicalFormOf, codecForRef, column, createDataTypeLookup, dataType, dataTypeId, decodeJsonBoolean, decodeJsonFloat, decodeJsonInteger, decodeJsonIntegerText, decodeJsonMatching, decodeJsonString, emptyCodecLookup, encodeJsonFloat, enumRefusalOf, isIntegerIn, isNonFiniteText, materializeCodec, objectSchemaKeys, refuseJsonValue, renderTsLiteral, requiredParamKeys, requiredSchemaKeys, resolveCodecDescriptorOrThrow, validateCodecTypeParams };\n\n//# sourceMappingURL=codec.mjs.map"],"mappings":"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"}