hikoutei 0.9.16 → 0.9.17

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.
@@ -4,4 +4,6 @@ export { DuplicateChangedFieldError } from "./identity.js";
4
4
  export { EVALUATION_ERROR_CODES, EvaluationContractError, } from "./evaluation.js";
5
5
  export type { EvaluationErrorCode } from "./evaluation.js";
6
6
  export { StableEncodingError } from "./stableEncoding.js";
7
+ export { CONTRACTS_INPUT_ERROR_CODES, ContractsInputError, } from "./input.js";
8
+ export type { ContractsInputErrorCode } from "./input.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
@@ -2,4 +2,5 @@ export { CoreErrorException } from "./types.js";
2
2
  export { DuplicateChangedFieldError } from "./identity.js";
3
3
  export { EVALUATION_ERROR_CODES, EvaluationContractError, } from "./evaluation.js";
4
4
  export { StableEncodingError } from "./stableEncoding.js";
5
+ export { CONTRACTS_INPUT_ERROR_CODES, ContractsInputError, } from "./input.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Structured input validation errors for the contracts leaf.
3
+ *
4
+ * These mirror the kernel's `KernelInputError` pattern: a `TypeError`
5
+ * subclass carrying a stable error code and a label parameterised message.
6
+ * The contracts leaf and the kernel each own their own class so neither
7
+ * package depends on the other; message text is byte-identical by convention.
8
+ */
9
+ /** Stable error codes for contracts-leaf input validation. */
10
+ export declare const CONTRACTS_INPUT_ERROR_CODES: {
11
+ readonly NON_EMPTY_STRING_REQUIRED: "contracts_non_empty_string_required";
12
+ readonly NON_NEGATIVE_INTEGER_REQUIRED: "contracts_non_negative_integer_required";
13
+ readonly SHA256_HASH_REQUIRED: "contracts_sha256_hex_required";
14
+ readonly OBJECT_REQUIRED: "contracts_object_required";
15
+ };
16
+ export type ContractsInputErrorCode = (typeof CONTRACTS_INPUT_ERROR_CODES)[keyof typeof CONTRACTS_INPUT_ERROR_CODES];
17
+ /** Typed error for contracts-leaf input validation failures (identity, SQL row decoding). */
18
+ export declare class ContractsInputError extends TypeError {
19
+ readonly code: ContractsInputErrorCode;
20
+ constructor(code: ContractsInputErrorCode, label: string);
21
+ }
22
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/domain/errors/input.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,2BAA2B;;;;;CAK9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAajF,6FAA6F;AAC7F,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;gBAE3B,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM;CAKzD"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Structured input validation errors for the contracts leaf.
3
+ *
4
+ * These mirror the kernel's `KernelInputError` pattern: a `TypeError`
5
+ * subclass carrying a stable error code and a label parameterised message.
6
+ * The contracts leaf and the kernel each own their own class so neither
7
+ * package depends on the other; message text is byte-identical by convention.
8
+ */
9
+ /** Stable error codes for contracts-leaf input validation. */
10
+ export const CONTRACTS_INPUT_ERROR_CODES = {
11
+ NON_EMPTY_STRING_REQUIRED: "contracts_non_empty_string_required",
12
+ NON_NEGATIVE_INTEGER_REQUIRED: "contracts_non_negative_integer_required",
13
+ SHA256_HASH_REQUIRED: "contracts_sha256_hex_required",
14
+ OBJECT_REQUIRED: "contracts_object_required",
15
+ };
16
+ const contractsInputMessages = {
17
+ [CONTRACTS_INPUT_ERROR_CODES.NON_EMPTY_STRING_REQUIRED]: (label) => `${label} must be a non-empty string`,
18
+ [CONTRACTS_INPUT_ERROR_CODES.NON_NEGATIVE_INTEGER_REQUIRED]: (label) => `${label} must be a non-negative safe integer`,
19
+ [CONTRACTS_INPUT_ERROR_CODES.SHA256_HASH_REQUIRED]: (label) => `${label} must be a SHA-256 hexadecimal hash`,
20
+ [CONTRACTS_INPUT_ERROR_CODES.OBJECT_REQUIRED]: (label) => `${label} must be an object`,
21
+ };
22
+ /** Typed error for contracts-leaf input validation failures (identity, SQL row decoding). */
23
+ export class ContractsInputError extends TypeError {
24
+ code;
25
+ constructor(code, label) {
26
+ super(contractsInputMessages[code](label));
27
+ this.name = "ContractsInputError";
28
+ this.code = code;
29
+ }
30
+ }
31
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/domain/errors/input.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,yBAAyB,EAAE,qCAAqC;IAChE,6BAA6B,EAAE,yCAAyC;IACxE,oBAAoB,EAAE,+BAA+B;IACrD,eAAe,EAAE,2BAA2B;CACpC,CAAC;AAKX,MAAM,sBAAsB,GAA+D;IACzF,CAAC,2BAA2B,CAAC,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CACjE,GAAG,KAAK,6BAA6B;IACvC,CAAC,2BAA2B,CAAC,6BAA6B,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CACrE,GAAG,KAAK,sCAAsC;IAChD,CAAC,2BAA2B,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAC5D,GAAG,KAAK,qCAAqC;IAC/C,CAAC,2BAA2B,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CACvD,GAAG,KAAK,oBAAoB;CAC/B,CAAC;AAEF,6FAA6F;AAC7F,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IACvC,IAAI,CAA0B;IAEvC,YAAY,IAA6B,EAAE,KAAa;QACtD,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/identity/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,CAAC,MAAM,mBAAmB,EAAE,OAAO,MAAM,CAAC;AACjD,OAAO,CAAC,MAAM,mBAAmB,EAAE,OAAO,MAAM,CAAC;AAEjD,uDAAuD;AACvD,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,GAAG;IAC1D,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC;CACvC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,UAAU,IAAI,MAAM,GAAG;IACzE,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAC/D,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,EACxD,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,cAAc,CAAC,KAAK,CAAC,CAKvB;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,MAAM,GAAG,UAAU,EACvE,KAAK,EAAE,OAAO,EACd,KAAK,SAAa,GACjB,gBAAgB,CAAC,KAAK,CAAC,CAKzB;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,EAC9C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,cAAc,CAAC,KAAK,CAAC,CAKvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/identity/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,CAAC,MAAM,mBAAmB,EAAE,OAAO,MAAM,CAAC;AACjD,OAAO,CAAC,MAAM,mBAAmB,EAAE,OAAO,MAAM,CAAC;AAEjD,uDAAuD;AACvD,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,GAAG;IAC1D,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC;CACvC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,UAAU,IAAI,MAAM,GAAG;IACzE,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,qBAAqB,CAAC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAC/D,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,EACxD,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,cAAc,CAAC,KAAK,CAAC,CAKvB;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,MAAM,GAAG,UAAU,EACvE,KAAK,EAAE,OAAO,EACd,KAAK,SAAa,GACjB,gBAAgB,CAAC,KAAK,CAAC,CAKzB;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,KAAK,SAAS,MAAM,EAC9C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,cAAc,CAAC,KAAK,CAAC,CAKvB"}
@@ -6,17 +6,18 @@
6
6
  * boundaries. They are intentionally not exported from the public root API.
7
7
  */
8
8
  import { isNonEmptyString, isNonNegativeSafeInteger, } from "../validation.js";
9
+ import { CONTRACTS_INPUT_ERROR_CODES, ContractsInputError, } from "../domain/errors/input.js";
9
10
  /** Promotes a validated non-empty string to one semantic string type. */
10
11
  export function requireSemanticString(value, label) {
11
12
  if (!isNonEmptyString(value)) {
12
- throw new TypeError(`${label} must be a non-empty string`);
13
+ throw new ContractsInputError(CONTRACTS_INPUT_ERROR_CODES.NON_EMPTY_STRING_REQUIRED, label);
13
14
  }
14
15
  return value;
15
16
  }
16
17
  /** Promotes a validated non-negative safe integer to a revision type. */
17
18
  export function requireSemanticRevision(value, label = "revision") {
18
19
  if (!isNonNegativeSafeInteger(value)) {
19
- throw new TypeError(`${label} must be a non-negative safe integer`);
20
+ throw new ContractsInputError(CONTRACTS_INPUT_ERROR_CODES.NON_NEGATIVE_INTEGER_REQUIRED, label);
20
21
  }
21
22
  return value;
22
23
  }
@@ -27,7 +28,7 @@ export function isSemanticRevision(value) {
27
28
  /** Promotes a stable hash after checking the representation used by storage. */
28
29
  export function requireHash(value, label) {
29
30
  if (typeof value !== "string" || !/^[0-9a-f]{64}$/i.test(value)) {
30
- throw new TypeError(`${label} must be a SHA-256 hexadecimal hash`);
31
+ throw new ContractsInputError(CONTRACTS_INPUT_ERROR_CODES.SHA256_HASH_REQUIRED, label);
31
32
  }
32
33
  return value;
33
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/identity/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AA8B1B,yEAAyE;AACzE,MAAM,UAAU,qBAAqB,CACnC,KAAc,EACd,KAAa;IAEb,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAA8B,CAAC;AACxC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,KAAK,GAAG,UAAU;IAElB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,KAAa;IAEb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAA8B,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/identity/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AA8BnC,yEAAyE;AACzE,MAAM,UAAU,qBAAqB,CACnC,KAAc,EACd,KAAa;IAEb,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,KAA8B,CAAC;AACxC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,KAAK,GAAG,UAAU;IAElB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,KAAa;IAEb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,KAA8B,CAAC;AACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/storage/sql.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC;AAElF,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtD,4EAA4E;AAC5E,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvD,6EAA6E;AAC7E,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;AAErF,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,GAAG,SAAS,MAAM,EAC7C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3B,KAAK,SAAY,GAChB,GAAG,CAKL;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,GAAG,SAAS,MAAM,EAC9C,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3B,KAAK,SAAa,GACjB,SAAS,GAAG,EAAE,CAEhB;AAED,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAEpG,0EAA0E;IAC1E,GAAG,CAAC,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAErG,+DAA+D;IAC/D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpF;AAED,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3E,qFAAqF;IACrF,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnF"}
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/storage/sql.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC;AAElF,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtD,4EAA4E;AAC5E,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvD,6EAA6E;AAC7E,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;AAErF,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,GAAG,SAAS,MAAM,EAC7C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3B,KAAK,SAAY,GAChB,GAAG,CAKL;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,GAAG,SAAS,MAAM,EAC9C,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAC3B,KAAK,SAAa,GACjB,SAAS,GAAG,EAAE,CAEhB;AAED,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAEpG,0EAA0E;IAC1E,GAAG,CAAC,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAErG,+DAA+D;IAC/D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpF;AAED,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3E,qFAAqF;IACrF,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnF"}
@@ -5,10 +5,11 @@
5
5
  * particular ORM. An adapter may implement them with MikroORM today and a
6
6
  * different persistence library later without changing sync semantics.
7
7
  */
8
+ import { CONTRACTS_INPUT_ERROR_CODES, ContractsInputError, } from "../domain/errors/input.js";
8
9
  /** Promotes a raw SQL result through an explicit row decoder. */
9
10
  export function decodeSqlRow(value, decoder, label = "SQL row") {
10
11
  if (value === null || typeof value !== "object" || Array.isArray(value)) {
11
- throw new TypeError(`${label} must be an object`);
12
+ throw new ContractsInputError(CONTRACTS_INPUT_ERROR_CODES.OBJECT_REQUIRED, label);
12
13
  }
13
14
  return decoder(value);
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/storage/sql.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH,iEAAiE;AACjE,MAAM,UAAU,YAAY,CAC1B,KAAc,EACd,OAA2B,EAC3B,KAAK,GAAG,SAAS;IAEjB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,OAAO,CAAC,KAAe,CAAC,CAAC;AAClC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,aAAa,CAC3B,MAA0B,EAC1B,OAA2B,EAC3B,KAAK,GAAG,UAAU;IAElB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/storage/sql.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAcnC,iEAAiE;AACjE,MAAM,UAAU,YAAY,CAC1B,KAAc,EACd,OAA2B,EAC3B,KAAK,GAAG,SAAS;IAEjB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,OAAO,CAAC,KAAe,CAAC,CAAC;AAClC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,aAAa,CAC3B,MAA0B,EAC1B,OAA2B,EAC3B,KAAK,GAAG,UAAU;IAElB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AAC1F,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hikoutei",
3
- "version": "0.9.16",
3
+ "version": "0.9.17",
4
4
  "description": "Typed repository and safe write layer for Google Sheets-backed MVPs. SQLite-authoritative entity lifecycle with asynchronous Google Sheets projection.",
5
5
  "repository": {
6
6
  "type": "git",