From fa127c56276e5d52270456df2f357b1f61f47cb5 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 31 Oct 2026 00:25:46 +0100 Subject: [PATCH 01/36] refactor: clear the avoidable ratchet findings of pack 0.2.17 (#59) * refactor(metadata): look up the field and filter tables by own key * refactor(deferred-joined): type the stream operations it installs * refactor(properties): move the readable-field reads next to the writes * refactor: read class prototypes through a checked helper * refactor(computed): apply the row mappers in a loop * refactor(default-filter): take the column proxy as the filter hands it * test: type the response rows, the request values and the second-instance require * chore: lower the ratchet ceilings and the SAFETY budget * refactor(properties): keep the readable-field reads in an internal module of their own * refactor(default-filter): take the column proxy as unknown * test: restore the second-instance require returns and raise no-unsafe-return to 7 --- guardrails.ratchet.json | 7 +- guardrails.suppressions.json | 2 +- src/components.ts | 25 +----- src/index.ts | 5 +- src/internal/computed.ts | 12 ++- src/internal/default-filter.ts | 4 +- src/internal/deferred-joined-stream.ts | 83 +++++++++++--------- src/internal/guards.ts | 2 +- src/internal/joined.ts | 2 +- src/internal/list.ts | 16 +++- src/internal/meta-records.ts | 10 +-- src/internal/properties.ts | 5 +- src/internal/prototypes.ts | 14 ++++ src/internal/read-properties.ts | 35 +++++++++ src/metadata.ts | 35 +++++---- src/tests/components/cross_instance.test.ts | 4 +- src/tests/components/deferred_joined.test.ts | 4 +- src/tests/components/listable.test.ts | 12 +-- src/tests/components/parse_body.test.ts | 3 +- src/tests/components/validator.test.ts | 7 +- 20 files changed, 174 insertions(+), 113 deletions(-) create mode 100644 src/internal/prototypes.ts create mode 100644 src/internal/read-properties.ts diff --git a/guardrails.ratchet.json b/guardrails.ratchet.json index ccc8fa9..26c9ce4 100644 --- a/guardrails.ratchet.json +++ b/guardrails.ratchet.json @@ -1,14 +1,13 @@ { "pack": "0.2.17", "rules": { - "antelopejs/no-inherited-key-lookup": 11, "anti-slop/no-unsafe-dictionary-type": 3, "anti-slop/require-safety-comment-for-type-assertion": 3, "typescript/no-redundant-type-constituents": 1, "typescript/no-unnecessary-type-parameters": 1, - "typescript/no-unsafe-argument": 29, - "typescript/no-unsafe-assignment": 31, - "typescript/no-unsafe-return": 15 + "typescript/no-unsafe-argument": 19, + "typescript/no-unsafe-assignment": 21, + "typescript/no-unsafe-return": 7 }, "oversizeFiles": {} } diff --git a/guardrails.suppressions.json b/guardrails.suppressions.json index 5e36fc3..d45133d 100644 --- a/guardrails.suppressions.json +++ b/guardrails.suppressions.json @@ -2,6 +2,6 @@ "rules": {}, "tsExpectError": 0, "tsIgnore": 0, - "safety": 10, + "safety": 5, "config": {} } diff --git a/src/components.ts b/src/components.ts index 7f35ebd..277ab6a 100644 --- a/src/components.ts +++ b/src/components.ts @@ -33,10 +33,11 @@ import { import * as computed from "./internal/computed"; import { copyFilter, parseFilter } from "./internal/filters"; import * as foreign from "./internal/foreign"; -import { isFunction, isString } from "./internal/guards"; +import { isString } from "./internal/guards"; import * as joined from "./internal/joined"; import * as list from "./internal/list"; import * as properties from "./internal/properties"; +import { ReadProperties as readProperties } from "./internal/read-properties"; import * as tables from "./internal/tables"; import * as validation from "./internal/validation"; @@ -345,27 +346,7 @@ export namespace Query { action?: string, onlyList?: boolean, ) { - const readable = - meta.readable[action ?? "_default"] ?? meta.readable._default; - const instance = { ...obj }; - const res: FieldValues = {}; - for (const [key, field] of readable.props) { - if (onlyList && !field.listable) { - continue; - } - instance[key] = dbData[field.dbName || key]; - res[key] = dbData[field.dbName || key]; - } - instance.table = dbData; - Object.setPrototypeOf(instance, meta.target.prototype); - for (const [key, field] of readable.getters) { - if (onlyList && !field.listable) { - continue; - } - const val = field.desc?.get?.apply(instance); - res[key] = await (isFunction(val) ? val() : val); - } - return res; + return readProperties(obj, meta, dbData, action, onlyList); } /** diff --git a/src/index.ts b/src/index.ts index 6f15e51..f9de508 100644 --- a/src/index.ts +++ b/src/index.ts @@ -22,6 +22,7 @@ import { } from "@antelopejs/interface-api"; import { Parameters, Query, Validation } from "./components"; +import { prototypeOf } from "./internal/prototypes"; import { DataAPIMeta, type DataControllerCallback, @@ -84,7 +85,7 @@ export function DataController< c.prototype[key] = entry.callback.func; } // SAFETY: for every own key of def, the loop above installs the function ExtractCallback names (def[key].func, or def[key].callback.func for an entry with options) on c.prototype, which covers the members of ExtractDefCallbacks

; c extends base and declares table itself. - return c as any; + return c as Class & TableHolder> & Base; } export const RegisterDataController = @@ -115,7 +116,7 @@ export const RegisterDataController = mode: "prefix", parameters: [{ provider: (ctx) => ctx, modifiers: [] }], properties: meta.computed_props, - proto: target.prototype, + proto: prototypeOf(target), }); Route("handler", entry.callback.method, entry.endpoint)( target.prototype, diff --git a/src/internal/computed.ts b/src/internal/computed.ts index 5af6878..6908f66 100644 --- a/src/internal/computed.ts +++ b/src/internal/computed.ts @@ -86,7 +86,15 @@ export function Computed( } const mappers = buildComputedMappers(db, entries); if (IsStream(query)) { - return mappers.reduce((stream, mapper) => stream.map(mapper), query); + let stream = query; + for (const mapper of mappers) { + stream = stream.map(mapper); + } + return stream; + } + let datum = query; + for (const mapper of mappers) { + datum = datum.do(mapper); } - return mappers.reduce((datum, mapper) => datum.do(mapper), query); + return datum; } diff --git a/src/internal/default-filter.ts b/src/internal/default-filter.ts index c88cbc2..20c9bed 100644 --- a/src/internal/default-filter.ts +++ b/src/internal/default-filter.ts @@ -9,7 +9,7 @@ import type { DataAPIMeta } from "../metadata"; import type { Comparison, FilterValue } from "./field-types"; type ProxyFilterOperator = ( - proxy: ValueProxy, + proxy: ValueProxy, value: string, ) => ValueProxyOrValue; @@ -27,7 +27,7 @@ const DEFAULT_FILTER_OPERATORS: DefaultFilterOperators = { }; function applyDefaultFilterMode( - proxy: ValueProxy, + proxy: ValueProxy, value: string, mode: FilterValue[1], ): ValueProxyOrValue { diff --git a/src/internal/deferred-joined-stream.ts b/src/internal/deferred-joined-stream.ts index 491b0cc..5c8819f 100644 --- a/src/internal/deferred-joined-stream.ts +++ b/src/internal/deferred-joined-stream.ts @@ -37,12 +37,13 @@ function materializeDeferredJoin(stream: DeferredJoinedStream) { return Joined(db, meta, raw, names); } -function pagedDeferredJoinOperation(name: string): DeferredJoinedOperation { - return function (this: DeferredJoinedStream, ...args: any[]) { +function pagedDeferredJoinOperation(): DeferredJoinedOperation { + return function ( + this: DeferredJoinedStream, + ...args: Parameters["slice"]> + ) { const { db, meta, names, raw } = this.deferredJoin; - // SAFETY: pagedDeferredJoinOperation is registered only under the slice key of DEFERRED_JOIN_OPERATION_FACTORIES, so name is always "slice", which every Stream has; raw is the Stream given to wrapDeferredJoined. - const paged = (raw as any)[name](...args); - return Joined(db, meta, paged, names); + return Joined(db, meta, raw.slice(...args), names); }; } @@ -59,29 +60,45 @@ function nthDeferredJoinOperation(): DeferredJoinedOperation { }; } -function rawDeferredJoinOperation(name: string): DeferredJoinedOperation { - return function (this: DeferredJoinedStream, ...args: any[]) { - // SAFETY: rawDeferredJoinOperation is registered only under the changes key of DEFERRED_JOIN_OPERATION_FACTORIES, so name is always "changes", which every Stream has; raw is the Stream given to wrapDeferredJoined. - return (this.deferredJoin.raw as any)[name](...args); +function rawDeferredJoinOperation(): DeferredJoinedOperation { + return function (this: DeferredJoinedStream) { + return this.deferredJoin.raw.changes(); }; } +type FieldAggregate = "count" | "sum" | "avg" | "min" | "max" | "distinct"; + +function aggregate(stream: Stream, name: FieldAggregate, field?: string) { + switch (name) { + case "count": + return stream.count(field); + case "sum": + return stream.sum(field); + case "avg": + return stream.avg(field); + case "min": + return stream.min(field); + case "max": + return stream.max(field); + case "distinct": + return field === undefined ? stream.distinct() : stream.distinct(field); + } +} + function fieldAggregateDeferredJoinOperation( - name: string, + name: FieldAggregate, bareCallOnRaw: boolean, ): DeferredJoinedOperation { return function (this: DeferredJoinedStream, field?: string) { const { db, meta, names, raw } = this.deferredJoin; if (!field) { const bareTarget = bareCallOnRaw ? raw : materializeDeferredJoin(this); - // SAFETY: fieldAggregateDeferredJoinOperation is registered only under count, sum, avg, min, max and distinct, all Stream methods, and bareTarget is a Stream (raw, or the Stream Joined returns for it). - return (bareTarget as any)[name](); + return aggregate(bareTarget, name); } const target = names.has(field) ? Joined(db, meta, raw, new Set([field])) : raw; - // SAFETY: name is one of count, sum, avg, min, max and distinct, all Stream methods (see the factory table), and target is a Stream (raw, or the Stream Joined returns for it). - return (target as any)[name](field); + return aggregate(target, name, field); }; } @@ -95,21 +112,20 @@ function forwardingDeferredJoinOperation( } /** The operation a {@link DeferredJoinedStream} installs for a stream method. */ -interface DeferredJoinOperationFactories { - [method: string]: (name: string) => DeferredJoinedOperation; -} - -const DEFERRED_JOIN_OPERATION_FACTORIES: DeferredJoinOperationFactories = { - slice: pagedDeferredJoinOperation, - nth: nthDeferredJoinOperation, - changes: rawDeferredJoinOperation, - count: (name) => fieldAggregateDeferredJoinOperation(name, true), - sum: (name) => fieldAggregateDeferredJoinOperation(name, false), - avg: (name) => fieldAggregateDeferredJoinOperation(name, false), - min: (name) => fieldAggregateDeferredJoinOperation(name, false), - max: (name) => fieldAggregateDeferredJoinOperation(name, false), - distinct: (name) => fieldAggregateDeferredJoinOperation(name, false), -}; +const DEFERRED_JOIN_OPERATION_FACTORIES = new Map< + string, + (name: string) => DeferredJoinedOperation +>([ + ["slice", pagedDeferredJoinOperation], + ["nth", nthDeferredJoinOperation], + ["changes", rawDeferredJoinOperation], + ["count", () => fieldAggregateDeferredJoinOperation("count", true)], + ["sum", () => fieldAggregateDeferredJoinOperation("sum", false)], + ["avg", () => fieldAggregateDeferredJoinOperation("avg", false)], + ["min", () => fieldAggregateDeferredJoinOperation("min", false)], + ["max", () => fieldAggregateDeferredJoinOperation("max", false)], + ["distinct", () => fieldAggregateDeferredJoinOperation("distinct", false)], +]); const DEFERRED_JOIN_INHERITED_OPERATIONS = new Set(["constructor", "cast"]); @@ -122,7 +138,7 @@ function wireDeferredJoinedStream() { ].filter((name) => !DEFERRED_JOIN_INHERITED_OPERATIONS.has(name)); for (const name of operationNames) { const factory = - DEFERRED_JOIN_OPERATION_FACTORIES[name] ?? + DEFERRED_JOIN_OPERATION_FACTORIES.get(name) ?? forwardingDeferredJoinOperation; // SAFETY: name is a method name of Stream.prototype (or run, cursor, build), so the key is a writable data property on DeferredJoinedStream's prototype chain and assigning a function to it cannot throw; each installed operation takes the arguments of the Stream method it replaces. (DeferredJoinedStream.prototype as any)[name] = factory(name); @@ -144,11 +160,8 @@ export function wrapDeferredJoined( names: Set, raw: Stream, ): Stream { - const wrapped: DeferredJoinedStream = Object.create( - DeferredJoinedStream.prototype, - ); - // SAFETY: Object.create skips the StagedObject constructor that sets the protected stages field, so this assigns the same field, the stage list of raw, that the constructor would have set. - (wrapped as any).stages = raw.build(); + const wrapped = new DeferredJoinedStream({ stage: "", args: [] }); + Object.assign(wrapped, { stages: raw.build() }); wrapped.deferredJoin = { db, meta, names, raw }; return wrapped; } diff --git a/src/internal/guards.ts b/src/internal/guards.ts index 3170518..dd4774d 100644 --- a/src/internal/guards.ts +++ b/src/internal/guards.ts @@ -51,7 +51,7 @@ export function isFieldValue(value: unknown): value is FieldValue { if (isBoolean(current) || current instanceof Date) continue; if (!isObject(current) || ancestors.has(current)) return false; const isArray = Array.isArray(current); - const prototype = Object.getPrototypeOf(current); + const prototype: unknown = Object.getPrototypeOf(current); if (!isArray && prototype !== Object.prototype && prototype !== null) { return false; } diff --git a/src/internal/joined.ts b/src/internal/joined.ts index 12b7db7..7d10b81 100644 --- a/src/internal/joined.ts +++ b/src/internal/joined.ts @@ -70,7 +70,7 @@ export function splitJoinedFields( ): JoinedFieldSplit { const split: JoinedFieldSplit = { filter: new Set(), sort: new Set() }; const filterNames = Object.keys(meta.filters).filter( - (name) => filters && name in filters, + (name) => filters && Object.hasOwn(filters, name), ); const hasComputedFilter = filterNames.some( (name) => meta.fields[name]?.computed, diff --git a/src/internal/list.ts b/src/internal/list.ts index 0fb6caa..b335133 100644 --- a/src/internal/list.ts +++ b/src/internal/list.ts @@ -91,6 +91,16 @@ type ListSorting = ListArguments["sorting"]; type FilterRow = Parameters[5]; type FilterRowValue = FilterRow extends ValueProxy ? Row : never; +/** The filters a request holds for a field, none when it holds none. */ +function filterValuesIn( + filters: Record | undefined, + field: string, +) { + return filters && Object.hasOwn(filters, field) + ? FilterValuesOf(filters[field]) + : []; +} + /** * The rows {@link List} starts from: the index lookup serving the one field * filtered once with `eq` on a single-field index, else the whole table. @@ -102,7 +112,7 @@ function indexedSource>( filters?: Record, ) { const indexed = filterList.find(([field]) => { - const fieldFilters = filters ? FilterValuesOf(filters[field]) : []; + const fieldFilters = filterValuesIn(filters, field); return ( fieldFilters.length === 1 && fieldFilters[0][1] === "eq" && @@ -112,9 +122,7 @@ function indexedSource>( const indexName = indexed ? meta.fields[indexed].dbName || indexed : undefined; - const equality = indexed - ? FilterValuesOf(filters?.[indexed] ?? [])[0] - : undefined; + const equality = indexed ? filterValuesIn(filters, indexed)[0] : undefined; const source: Stream = indexName ? request.getAll(equality?.[0] ?? "", indexName) : request; diff --git a/src/internal/meta-records.ts b/src/internal/meta-records.ts index e07f1f4..3cf4c20 100644 --- a/src/internal/meta-records.ts +++ b/src/internal/meta-records.ts @@ -8,7 +8,7 @@ export function merge( dst: Record, ) { for (const key in src) { - if (!(key in dst)) { + if (!Object.hasOwn(dst, key)) { dst[key] = src[key]; } } @@ -25,11 +25,11 @@ export function rebuildPluck( for (const [_, field] of Object.entries(fields)) { if (field.listable) { for (const [mode, names] of Object.entries(field.listable)) { - if (!(mode in pluck)) { - pluck[mode] = new Set(); - } + const modeNames = Object.hasOwn(pluck, mode) ? pluck[mode] : undefined; + const set = modeNames ?? new Set(); + pluck[mode] = set; for (const name of names) { - pluck[mode].add(name); + set.add(name); } } } diff --git a/src/internal/properties.ts b/src/internal/properties.ts index 0c18438..c3d6f8b 100644 --- a/src/internal/properties.ts +++ b/src/internal/properties.ts @@ -2,6 +2,7 @@ import type { Query } from "../components"; import type { DataAPIMeta, WritableAccessFields } from "../metadata"; +import { prototypeOf } from "./prototypes"; function writableInBody( writable: WritableAccessFields, @@ -43,7 +44,7 @@ export function WriteProperties( const instance = { ...obj }; const dbData: Exclude = existingDBData || {}; - Object.setPrototypeOf(dbData, meta.tableClass.prototype); + Object.setPrototypeOf(dbData, prototypeOf(meta.tableClass)); if (!existingDBData) { writeTargetDefaults(instance, meta, dbData); } @@ -52,7 +53,7 @@ export function WriteProperties( dbData[field.dbName || key] = bodyData[key]; } instance.table = dbData; - Object.setPrototypeOf(instance, meta.target.prototype); + Object.setPrototypeOf(instance, prototypeOf(meta.target)); for (const [key, field] of writable.setters) { field.desc?.set?.apply(instance, [bodyData[key]]); } diff --git a/src/internal/prototypes.ts b/src/internal/prototypes.ts new file mode 100644 index 0000000..5fde572 --- /dev/null +++ b/src/internal/prototypes.ts @@ -0,0 +1,14 @@ +/** @internal @packageDocumentation */ + +import type { Class } from "@antelopejs/interface-core/decorators"; + +import { isObject } from "./guards"; + +/** The object the instances of a class inherit from. */ +export function prototypeOf(target: Class): object { + const prototype: unknown = target.prototype; + if (!isObject(prototype)) { + throw new TypeError("A class prototype must be an object."); + } + return prototype; +} diff --git a/src/internal/read-properties.ts b/src/internal/read-properties.ts new file mode 100644 index 0000000..2e1d109 --- /dev/null +++ b/src/internal/read-properties.ts @@ -0,0 +1,35 @@ +/** @internal @packageDocumentation */ + +import type { DataAPIMeta, FieldValues } from "../metadata"; +import { isFunction } from "./guards"; +import { prototypeOf } from "./prototypes"; + +export async function ReadProperties( + obj: any, + meta: DataAPIMeta, + dbData: any, + action?: string, + onlyList?: boolean, +) { + const readable = + meta.readable[action ?? "_default"] ?? meta.readable._default; + const instance = { ...obj }; + const res: FieldValues = {}; + for (const [key, field] of readable.props) { + if (onlyList && !field.listable) { + continue; + } + instance[key] = dbData[field.dbName || key]; + res[key] = dbData[field.dbName || key]; + } + instance.table = dbData; + Object.setPrototypeOf(instance, prototypeOf(meta.target)); + for (const [key, field] of readable.getters) { + if (onlyList && !field.listable) { + continue; + } + const val: unknown = field.desc?.get?.apply(instance); + res[key] = await (isFunction(val) ? val() : val); + } + return res; +} diff --git a/src/metadata.ts b/src/metadata.ts index 1270cd1..908e4ed 100644 --- a/src/metadata.ts +++ b/src/metadata.ts @@ -165,7 +165,7 @@ export class DataAPIMeta { } private field(name: string) { - if (!(name in this.fields)) { + if (!Object.hasOwn(this.fields, name)) { this.fields[name] = {}; } return this.fields[name]; @@ -183,34 +183,37 @@ export class DataAPIMeta { delete this.writable[key]; } - const actions = new Set([DEFAULT_ACTION]); - for (const field of Object.values(this.fields)) { - if (field.modeOverrides) { - for (const action of Object.keys(field.modeOverrides)) { - actions.add(action); - } - } - } + const actions = new Set([ + DEFAULT_ACTION, + ...Object.values(this.fields).flatMap((field) => + Object.keys(field.modeOverrides ?? {}), + ), + ]); + const access = new Map< + string, + [ReadableAccessFields, WritableAccessFields] + >(); for (const action of actions) { - this.readable[action] = { getters: [], props: [] }; - this.writable[action] = { setters: [], props: [] }; + const readable: ReadableAccessFields = { getters: [], props: [] }; + const writable: WritableAccessFields = { setters: [], props: [] }; + this.readable[action] = readable; + this.writable[action] = writable; + access.set(action, [readable, writable]); } for (const [key, field] of Object.entries(this.fields)) { - for (const action of actions) { + for (const [action, [readable, writable]] of access) { const effectiveMode = GetEffectiveMode(field, action); if (!effectiveMode) { continue; } if (effectiveMode & AccessMode.ReadOnly) { - const target = field.desc?.get ? "getters" : "props"; - this.readable[action][target].push([key, field]); + readable[field.desc?.get ? "getters" : "props"].push([key, field]); } if (effectiveMode & AccessMode.WriteOnly) { - const target = field.desc?.set ? "setters" : "props"; - this.writable[action][target].push([key, field]); + writable[field.desc?.set ? "setters" : "props"].push([key, field]); } } } diff --git a/src/tests/components/cross_instance.test.ts b/src/tests/components/cross_instance.test.ts index 6bf9614..eb90824 100644 --- a/src/tests/components/cross_instance.test.ts +++ b/src/tests/components/cross_instance.test.ts @@ -164,7 +164,7 @@ async function OtherInstanceListsTest() { db, ); const listed = OtherComponents.Query.Foreign(db, meta, sorted); - const rows: ListedCustomer[] = await listed.run(); + const rows = await listed.cast().run(); expect(await total.run()).to.equal(2); expect( rows.map(({ name, owner, ownerName }) => [name, owner?.name, ownerName]), @@ -181,7 +181,7 @@ async function OtherInstanceDecoratesStreamTest() { const stream = Customer.table().orderBy("name"); const withForeign = OtherComponents.Query.Foreign(db, meta, stream); const decorated = OtherComponents.Query.Computed(db, meta, withForeign); - const rows: ListedCustomer[] = await decorated.run(); + const rows = await decorated.cast().run(); expect( rows.map(({ name, owner, label }) => [name, owner?.name, label]), ).to.deep.equal([ diff --git a/src/tests/components/deferred_joined.test.ts b/src/tests/components/deferred_joined.test.ts index 48d7a11..8886e29 100644 --- a/src/tests/components/deferred_joined.test.ts +++ b/src/tests/components/deferred_joined.test.ts @@ -189,9 +189,7 @@ async function _seedTables(): Promise { ]; await bookModel.insert(booksDataset); - const thisObj: _DeferredJoinedTestAPI = Object.create( - _DeferredJoinedTestAPI.prototype, - ); + const thisObj = new _DeferredJoinedTestAPI(); return { thisObj, model: bookModel }; } diff --git a/src/tests/components/listable.test.ts b/src/tests/components/listable.test.ts index 3bbfc2d..ecce6a4 100644 --- a/src/tests/components/listable.test.ts +++ b/src/tests/components/listable.test.ts @@ -408,7 +408,7 @@ async function expectNameAscending() { const data = await readJson>(response); expect(data.results).to.have.length(defaultProductDataset.length); - const sortedNames = data.results.map((product: any) => product.name); + const sortedNames = data.results.map((product) => product.name); const expectedNames = _getSortedField(defaultProductDataset, "name", "asc"); expect(sortedNames).to.deep.equal(expectedNames); } @@ -428,7 +428,7 @@ async function expectNameDescending() { const data = await readJson>(response); expect(data.results).to.have.length(defaultProductDataset.length); - const sortedNames = data.results.map((product: any) => product.name); + const sortedNames = data.results.map((product) => product.name); const expectedNames = _getSortedField(defaultProductDataset, "name", "desc"); expect(sortedNames).to.deep.equal(expectedNames); } @@ -448,7 +448,7 @@ async function expectPriceAscending() { const data = await readJson>(response); expect(data.results).to.have.length(defaultProductDataset.length); - const sortedPrices = data.results.map((product: any) => product.price); + const sortedPrices = data.results.map((product) => product.price); const expectedPrices = _getSortedField(defaultProductDataset, "price", "asc"); expect(sortedPrices).to.deep.equal(expectedPrices); } @@ -468,7 +468,7 @@ async function expectPriceDescending() { const data = await readJson>(response); expect(data.results).to.have.length(defaultProductDataset.length); - const sortedPrices = data.results.map((product: any) => product.price); + const sortedPrices = data.results.map((product) => product.price); const expectedPrices = _getSortedField( defaultProductDataset, "price", @@ -491,7 +491,7 @@ async function expectAddedAtAscending() { expect(response.status).to.equal(200); const data = await readJson>(response); expect(data.results).to.have.length(defaultProductDataset.length); - const sortedDates = data.results.map((product: any) => + const sortedDates = data.results.map((product) => new Date(product.addedAt).getTime(), ); const expectedDates = _getSortedField(defaultProductDataset, "addedAt", "asc") @@ -515,7 +515,7 @@ async function expectAddedAtDescending() { const data = await readJson>(response); expect(data.results).to.have.length(defaultProductDataset.length); - const sortedDates = data.results.map((product: any) => + const sortedDates = data.results.map((product) => new Date(product.addedAt).getTime(), ); const expectedDates = _getSortedField( diff --git a/src/tests/components/parse_body.test.ts b/src/tests/components/parse_body.test.ts index a9f5594..2c72b57 100644 --- a/src/tests/components/parse_body.test.ts +++ b/src/tests/components/parse_body.test.ts @@ -57,8 +57,7 @@ describe("Validation.ParseBody", () => { expect(statusOfRefusal(nested)).to.equal(400); }); it("accepts a body without a prototype", () => { - const bare = Object.create(null); - bare.name = "a"; + const bare: FieldValues = { __proto__: null, name: "a" }; expect(Validation.ParseBody(bare)).to.equal(bare); }); it("refuses a parsed body holding what JSON cannot", () => { diff --git a/src/tests/components/validator.test.ts b/src/tests/components/validator.test.ts index ff5b06b..15b70a1 100644 --- a/src/tests/components/validator.test.ts +++ b/src/tests/components/validator.test.ts @@ -26,6 +26,7 @@ import { validateObject, } from "../utils"; import { isNumber, isString } from "../../internal/guards"; +import type { FieldValue } from "../../metadata"; const currentTestName = path .basename(__filename) @@ -173,7 +174,7 @@ interface IncorrectScenario { function createIncorrectValidator( testName: string, fieldName: string, - invalidValue: any, + invalidValue: FieldValue, requestFunction: ( testName: string, data: any, @@ -250,7 +251,7 @@ function createCorrectValidator( function createIncorrectValidatorEdit( testName: string, fieldName: string, - invalidValue: any, + invalidValue: FieldValue, requestFunction: (testName: string, data: any) => Promise, ) { return createIncorrectValidator( @@ -269,7 +270,7 @@ function createIncorrectValidatorEdit( function createIncorrectValidatorNew( testName: string, fieldName: string, - invalidValue: any, + invalidValue: FieldValue, requestFunction: (testName: string, data: any) => Promise, ) { return createIncorrectValidator( From ed7f23c90666b852987621a26949a224739bc5e8 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 31 Oct 2026 02:43:48 +0100 Subject: [PATCH 02/36] fix(metadata): look up filter and index names by own key (#62) * test(metadata): pin lookups by names shared with Object.prototype members * fix(metadata): look up filter and index names by own key --- src/internal/list.ts | 6 +- src/internal/meta-records.ts | 8 ++ src/metadata.ts | 3 +- .../components/prototype_named_filter.test.ts | 101 ++++++++++++++++++ src/tests/index/metadata_names.test.ts | 98 +++++++++++++++++ 5 files changed, 213 insertions(+), 3 deletions(-) create mode 100644 src/tests/components/prototype_named_filter.test.ts create mode 100644 src/tests/index/metadata_names.test.ts diff --git a/src/internal/list.ts b/src/internal/list.ts index b335133..02d1bfc 100644 --- a/src/internal/list.ts +++ b/src/internal/list.ts @@ -216,7 +216,7 @@ export function List>( { sorting, filters, db, options }: ListArguments, ): [sorted: Stream, total: Datum, deferredJoined: Set] { const filterList = Object.entries(meta.filters).filter( - ([name]) => filters && name in filters, + ([name]) => filters && Object.hasOwn(filters, name), ); const { indexFilter, source } = indexedSource( meta, @@ -283,7 +283,9 @@ function pageComputedFields( options: ListPageOptions, ): Set { const merged = new Set( - Object.keys(options.filters ?? {}).filter((name) => name in meta.filters), + Object.keys(options.filters ?? {}).filter((name) => + Object.hasOwn(meta.filters, name), + ), ); if (options.sortKey) merged.add(options.sortKey); const names = Object.entries(meta.fields) diff --git a/src/internal/meta-records.ts b/src/internal/meta-records.ts index 3cf4c20..381362a 100644 --- a/src/internal/meta-records.ts +++ b/src/internal/meta-records.ts @@ -14,6 +14,14 @@ export function merge( } } +/** The entry `table` holds under `key` itself, not one it inherits. */ +export function ownEntry( + table: Record, + key: string, +): Value | undefined { + return Object.hasOwn(table, key) ? table[key] : undefined; +} + /** Rebuilds the fields each list mode plucks from the fields' listable modes. */ export function rebuildPluck( pluck: Record>, diff --git a/src/metadata.ts b/src/metadata.ts index 908e4ed..9d5d0a9 100644 --- a/src/metadata.ts +++ b/src/metadata.ts @@ -31,6 +31,7 @@ import type { import { listedNames, merge, + ownEntry, rebuildPluck, targetJoinedFields, } from "./internal/meta-records"; @@ -448,7 +449,7 @@ export class DataAPIMeta { const field = this.field(name); if (useIndex) { const tableMeta = getMetadata(this.tableClass, DatumStaticMetadata); - const index = tableMeta.indexes[field.dbName ?? name]; + const index = ownEntry(tableMeta.indexes, field.dbName ?? name); if (index && index.length === 1) { field.indexable = true; } diff --git a/src/tests/components/prototype_named_filter.test.ts b/src/tests/components/prototype_named_filter.test.ts new file mode 100644 index 0000000..e47f65e --- /dev/null +++ b/src/tests/components/prototype_named_filter.test.ts @@ -0,0 +1,101 @@ +import { expect } from "chai"; +import { Controller } from "@antelopejs/interface-api"; +import { Schema } from "@antelopejs/interface-database"; +import { + DataController, + DefaultRoutes, + RegisterDataController, +} from "../../index"; +import { + Access, + AccessMode, + Filter, + Listable, + ModelReference, +} from "../../metadata"; +import { + BasicDataModel, + Field, + Model, + RegisterSchema, + RegisterTable, + Table, +} from "@antelopejs/interface-database-decorators"; + +import { readJson } from "../internal/http"; +import { getSchemaInstance, listRequest } from "../utils"; + +const tableName = "prototype-named-filter-rows"; +const schemaName = "default"; + +@RegisterTable(tableName, schemaName) +class Row extends Table { + declare _id: string; + + @Field("string") + declare title: string; +} +Field("string")(Row.prototype, "valueOf"); +class RowModel extends BasicDataModel(Row, tableName) {} + +interface ListResponse { + results: { title: string }[]; +} + +async function createController(testName: string) { + @RegisterDataController() + class _PrototypeNamedFilterAPI extends DataController( + Row, + { list: DefaultRoutes.List }, + Controller(`/${testName}`), + ) { + @ModelReference() + @Model(RowModel) + declare rowModel: RowModel; + + @Listable() + @Access(AccessMode.ReadOnly) + @Filter(undefined, false) + declare title: string; + } + Listable()(_PrototypeNamedFilterAPI.prototype, "valueOf"); + Access(AccessMode.ReadOnly)(_PrototypeNamedFilterAPI.prototype, "valueOf"); + Filter(undefined, false)(_PrototypeNamedFilterAPI.prototype, "valueOf"); + + await RegisterSchema(schemaName); + const schema = Schema.get(schemaName); + if (schema) { + await schema.instance().table(tableName).delete(); + } + await new RowModel(getSchemaInstance(schemaName)).insert([ + { title: "alpha" }, + { title: "beta" }, + ]); +} + +describe("List route - a field named like an Object.prototype member", () => { + it("lists the rows when no request filter is given", async () => { + await createController("valueof-plain"); + + const response = await listRequest("valueof-plain"); + + expect(response.status, await response.clone().text()).to.equal(200); + const data = await readJson(response); + expect(data.results.map(({ title }) => title)).to.have.members([ + "alpha", + "beta", + ]); + }); + + it("filters on another field", async () => { + await createController("valueof-filtered"); + + const response = await listRequest("valueof-filtered", { + filter_title: "eq:alpha", + }); + + expect(response.status, await response.clone().text()).to.equal(200); + const data = await readJson(response); + expect(data.results.map(({ title }) => title)).to.eql(["alpha"]); + }); +}); diff --git a/src/tests/index/metadata_names.test.ts b/src/tests/index/metadata_names.test.ts new file mode 100644 index 0000000..f8b5d53 --- /dev/null +++ b/src/tests/index/metadata_names.test.ts @@ -0,0 +1,98 @@ +import { expect } from "chai"; +import { Field, Index, Table } from "@antelopejs/interface-database-decorators"; +import { AccessMode, DataAPIMeta } from "../../metadata"; + +const PROTOTYPE_MEMBER_NAMES = [ + "toString", + "constructor", + "hasOwnProperty", + "valueOf", +]; + +class Target {} + +describe("DataAPIMeta - names shared with Object.prototype members", () => { + for (const name of PROTOTYPE_MEMBER_NAMES) { + it(`gives a field named ${name} its own access mode`, () => { + const meta = new DataAPIMeta(Target); + + meta.setMode(name, AccessMode.ReadWrite); + + expect(Object.hasOwn(meta.fields, name)).to.equal(true); + expect(meta.readable._default.props.map(([key]) => key)).to.eql([name]); + expect(meta.writable._default.props.map(([key]) => key)).to.eql([name]); + }); + + it(`keeps the other fields readable when ${name} is not a field`, () => { + const meta = new DataAPIMeta(Target); + + meta.setMode("title", AccessMode.ReadOnly); + + expect(Object.hasOwn(meta.fields, name)).to.equal(false); + expect(meta.readable._default.props.map(([key]) => key)).to.eql([ + "title", + ]); + }); + + it(`lists a field in a list mode named ${name}`, () => { + const meta = new DataAPIMeta(Target); + meta.setMode("title", AccessMode.ReadOnly); + + meta.setListable("title", true, name); + + expect(Object.hasOwn(meta.pluck, name)).to.equal(true); + expect([...meta.pluck[name]]).to.eql(["title"]); + }); + + it(`lists a second field in a list mode named ${name}`, () => { + const meta = new DataAPIMeta(Target); + meta.setMode("title", AccessMode.ReadOnly); + meta.setMode("body", AccessMode.ReadOnly); + + meta.setListable("title", true, name); + meta.setListable("body", true, name); + + expect([...meta.pluck[name]]).to.eql(["title", "body"]); + }); + + it(`inherits a field named ${name}`, () => { + const parent = new DataAPIMeta(Target); + parent.setMode(name, AccessMode.ReadWrite); + const child = new DataAPIMeta(Target); + + child.inherit(parent); + + expect(Object.hasOwn(child.fields, name)).to.equal(true); + expect(child.readable._default.props.map(([key]) => key)).to.eql([name]); + }); + + it(`inherits a filter named ${name}`, () => { + const filter = () => true; + const parent = new DataAPIMeta(Target); + parent.setFilter(name, filter); + const child = new DataAPIMeta(Target); + + child.inherit(parent); + + expect(Object.hasOwn(child.filters, name)).to.equal(true); + expect(child.filters[name]).to.equal(filter); + }); + + it(`does not take the indexed state of a filter named ${name} from the table prototype`, () => { + class Rows extends Table { + @Field("string") + declare title: string; + + @Index() + @Field("string") + declare other: string; + } + const meta = new DataAPIMeta(Rows); + meta.tableClass = Rows; + + meta.setFilter(name, () => true, true); + + expect(meta.fields[name].indexable).to.not.equal(true); + }); + } +}); From 3fedad4a8ce273119626caa02b29d6107f372ca0 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 31 Oct 2026 03:19:28 +0100 Subject: [PATCH 03/36] fix(list): answer 400 for an unknown comparison in the default filter (#61) * test(list): pin the answer for an unknown filter comparison * fix(list): answer 400 for an unknown filter comparison * test(list): pin that a custom filter receives the comparison text it is sent * fix(list): refuse an unknown comparison only in the default filter --- src/internal/default-filter.ts | 16 +- .../components/filter_comparisons.test.ts | 63 +++++ .../components/filter_list_route.test.ts | 224 ++++++++++++++++++ 3 files changed, 302 insertions(+), 1 deletion(-) create mode 100644 src/tests/components/filter_comparisons.test.ts create mode 100644 src/tests/components/filter_list_route.test.ts diff --git a/src/internal/default-filter.ts b/src/internal/default-filter.ts index 20c9bed..5ee6110 100644 --- a/src/internal/default-filter.ts +++ b/src/internal/default-filter.ts @@ -1,5 +1,6 @@ /** @internal @packageDocumentation */ +import { assert } from "@antelopejs/interface-api-util"; import type { ValueProxy, ValueProxyOrValue, @@ -7,6 +8,7 @@ import type { import type { DataAPIMeta } from "../metadata"; import type { Comparison, FilterValue } from "./field-types"; +import { ownEntry } from "./meta-records"; type ProxyFilterOperator = ( proxy: ValueProxy, @@ -26,12 +28,24 @@ const DEFAULT_FILTER_OPERATORS: DefaultFilterOperators = { le: (proxy, value) => proxy.le(value), }; +/** + * Applies a comparison to the column. + * + * @throws HTTPResult 400 when `mode` is not one of the default filter's + * comparisons; a custom filter receives its mode unchecked + */ function applyDefaultFilterMode( proxy: ValueProxy, value: string, mode: FilterValue[1], ): ValueProxyOrValue { - return DEFAULT_FILTER_OPERATORS[mode](proxy, value); + const operator = ownEntry(DEFAULT_FILTER_OPERATORS, mode); + assert( + operator, + 400, + `Unknown filter comparison "${mode}": use one of ${Object.keys(DEFAULT_FILTER_OPERATORS).join(", ")}, or start a value that contains a colon with "eq:".`, + ); + return operator(proxy, value); } export function createDefaultFilter(): DefaultFilterFunction { diff --git a/src/tests/components/filter_comparisons.test.ts b/src/tests/components/filter_comparisons.test.ts new file mode 100644 index 0000000..5a205e0 --- /dev/null +++ b/src/tests/components/filter_comparisons.test.ts @@ -0,0 +1,63 @@ +import { expect } from "chai"; +import type { RequestContext } from "@antelopejs/interface-api"; +import { Parameters } from "../../components"; +import { DataAPIMeta } from "../../metadata"; + +import { createRequestContext } from "../internal/http"; + +const meta = new DataAPIMeta(Object).setFilter("title", () => true); + +function context(query: string): RequestContext { + return Object.assign(createRequestContext(`http://localhost/?${query}`), { + dataAPIEntry: { options: undefined }, + }); +} + +describe("Parameters.ExtractFilters - comparisons", () => { + for (const comparison of ["eq", "ne", "gt", "ge", "lt", "le"]) { + it(`reads the ${comparison} comparison`, () => { + expect( + Parameters.ExtractFilters( + context(`filter_title=${comparison}:a:b`), + meta, + ), + ).to.eql({ title: ["a:b", comparison] }); + }); + } + + it("reads a value without comparison as eq", () => { + expect(Parameters.ExtractFilters(context("filter_title=abc"), meta)).to.eql( + { title: ["abc", "eq"] }, + ); + }); + + it("keeps a colon of the value after an explicit eq", () => { + expect( + Parameters.ExtractFilters( + context("filter_title=eq:http://example.com"), + meta, + ), + ).to.eql({ title: ["http://example.com", "eq"] }); + }); + + it("hands a comparison the default filter lacks to a custom filter", () => { + for (const comparison of ["is", "like", "include", "http"]) { + expect( + Parameters.ExtractFilters( + context(`filter_title=${comparison}:abc`), + meta, + ), + comparison, + ).to.eql({ title: ["abc", comparison] }); + } + }); + + it("hands an unnamed value that contains a colon to a custom filter", () => { + expect( + Parameters.ExtractFilters( + context("filter_title=http://example.com"), + meta, + ), + ).to.eql({ title: ["//example.com", "http"] }); + }); +}); diff --git a/src/tests/components/filter_list_route.test.ts b/src/tests/components/filter_list_route.test.ts new file mode 100644 index 0000000..42e6338 --- /dev/null +++ b/src/tests/components/filter_list_route.test.ts @@ -0,0 +1,224 @@ +import path from "node:path"; +import { expect } from "chai"; +import { Controller } from "@antelopejs/interface-api"; +import { Schema } from "@antelopejs/interface-database"; +import { + DataController, + DefaultRoutes, + RegisterDataController, +} from "../../index"; +import { + Access, + AccessMode, + Filter, + Listable, + ModelReference, +} from "../../metadata"; +import { + BasicDataModel, + Field, + Model, + RegisterSchema, + RegisterTable, + Table, +} from "@antelopejs/interface-database-decorators"; + +import { readJson } from "../internal/http"; +import { getSchemaInstance, listRequest, request } from "../utils"; + +const currentTestName = path + .basename(__filename) + .replace(/\.test\.(ts|js)$/, ""); +const pageTableName = `pages-${currentTestName}`; +const schemaName = "default"; + +@RegisterTable(pageTableName, schemaName) +class Page extends Table { + declare _id: string; + + @Field("string") + declare title: string; + + @Field("string") + declare url: string; +} +class PageModel extends BasicDataModel(Page, pageTableName) {} + +interface ListResponse { + results: { title: string; url: string }[]; +} + +async function seedPages() { + await RegisterSchema(schemaName); + const schema = Schema.get(schemaName); + if (schema) { + await schema.instance().table(pageTableName).delete(); + } + await new PageModel(getSchemaInstance(schemaName)).insert([ + { title: "alpha", url: "http://example.com" }, + { title: "beta", url: "http://example.org" }, + ]); +} + +async function createController(testName: string) { + @RegisterDataController() + class _FilterListAPI extends DataController( + Page, + { list: DefaultRoutes.List }, + Controller(`/${testName}`), + ) { + @ModelReference() + @Model(PageModel) + declare pageModel: PageModel; + + @Listable() + @Access(AccessMode.ReadOnly) + @Filter(undefined, false) + declare title: string; + + @Listable() + @Access(AccessMode.ReadOnly) + @Filter(undefined, false) + declare url: string; + } + + await seedPages(); +} + +async function createCustomFilterController(testName: string) { + @RegisterDataController() + class _CustomFilterListAPI extends DataController( + Page, + { list: DefaultRoutes.List }, + Controller(`/${testName}`), + ) { + @ModelReference() + @Model(PageModel) + declare pageModel: PageModel; + + @Listable() + @Access(AccessMode.ReadOnly) + @Filter( + (_context, proxy, _key, value, mode) => + `${mode}` === "is" ? proxy.eq(value) : proxy.ne(value), + false, + ) + declare title: string; + + @Listable() + @Access(AccessMode.ReadOnly) + @Filter( + (_context, proxy, _key, value, mode) => + `${mode}` === "http" ? proxy.eq(`http:${value}`) : proxy.eq(value), + false, + ) + declare url: string; + } + + await seedPages(); +} + +describe("List route - filter comparisons", () => { + it("answers 400 for an unknown comparison", async () => { + await createController("unknown-comparison"); + + const response = await listRequest("unknown-comparison", { + filter_title: "like:alp", + }); + + expect(response.status, await response.clone().text()).to.equal(400); + }); + + it("answers 400 for a comparison named like an Object.prototype member", async () => { + await createController("prototype-comparison"); + + for (const comparison of [ + "constructor", + "toString", + "hasOwnProperty", + "valueOf", + "__proto__", + ]) { + const response = await listRequest("prototype-comparison", { + filter_title: `${comparison}:alpha`, + }); + + expect(response.status, comparison).to.equal(400); + } + }); + + it("answers 400 when one of several filters of a field is unknown", async () => { + await createController("several-comparisons"); + + const response = await request( + "several-comparisons", + "list", + "GET", + undefined, + [ + ["filter_title", "ne:alpha"], + ["filter_title", "like:b"], + ], + ); + + expect(response.status, await response.clone().text()).to.equal(400); + }); + + it("answers 400 for an unnamed value that contains a colon", async () => { + await createController("colon-value"); + + const response = await listRequest("colon-value", { + filter_url: "http://example.com", + }); + + expect(response.status, await response.clone().text()).to.equal(400); + }); + + it("filters a value that contains a colon after an explicit eq", async () => { + await createController("explicit-eq"); + + const response = await listRequest("explicit-eq", { + filter_url: "eq:http://example.com", + }); + + expect(response.status, await response.clone().text()).to.equal(200); + const data = await readJson(response); + expect(data.results.map(({ title }) => title)).to.eql(["alpha"]); + }); + + it("filters with a known comparison", async () => { + await createController("known-comparison"); + + const response = await listRequest("known-comparison", { + filter_title: "ne:alpha", + }); + + expect(response.status, await response.clone().text()).to.equal(200); + const data = await readJson(response); + expect(data.results.map(({ title }) => title)).to.eql(["beta"]); + }); + + it("hands the comparison of a custom filter to its callback", async () => { + await createCustomFilterController("custom-comparison"); + + const response = await listRequest("custom-comparison", { + filter_title: "is:alpha", + }); + + expect(response.status, await response.clone().text()).to.equal(200); + const data = await readJson(response); + expect(data.results.map(({ title }) => title)).to.eql(["alpha"]); + }); + + it("hands an unnamed value that contains a colon to a custom filter", async () => { + await createCustomFilterController("custom-colon-value"); + + const response = await listRequest("custom-colon-value", { + filter_url: "http://example.com", + }); + + expect(response.status, await response.clone().text()).to.equal(200); + const data = await readJson(response); + expect(data.results.map(({ title }) => title)).to.eql(["alpha"]); + }); +}); From 4dad9372181ec071b3cfb39e948d23d9b9b518db Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 31 Oct 2026 06:41:39 +0100 Subject: [PATCH 04/36] docs: typecheck every example and drop hand-written version prose (#63) --- .github/workflows/ci.yml | 2 +- README.md | 2 +- docs/10.joined.md | 10 +++++----- docs/11.computed.md | 10 +++++----- docs/2.data-controllers.md | 2 +- docs/3.routes.md | 8 ++++---- docs/4.access-rights.md | 10 +++++----- docs/5.validators.md | 18 +++++++++--------- docs/6.listable.md | 20 ++++++++++---------- docs/7.foreign-keys.md | 18 ++++++++++-------- docs/8.filters.md | 10 +++++----- docs/9.modifiers.md | 2 +- 12 files changed, 57 insertions(+), 55 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 90ab75f..9ee1268 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ permissions: jobs: ci: - uses: AntelopeJS/.github/.github/workflows/ci-node.yml@v1 + uses: AntelopeJS/.github/.github/workflows/ci-node.yml@v1-campaign with: docs-files: | README.md diff --git a/README.md b/README.md index 36fa4da..196313d 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ The controller serves `GET /tasks/get?id=`, `GET /tasks/list`, `POST /tasks/new` ## Compatibility -Use with `@antelopejs/core` 1.x and the following peer dependencies: +The package declares these `@antelopejs/*` peer dependencies: diff --git a/docs/10.joined.md b/docs/10.joined.md index f6f02fd..c60da78 100644 --- a/docs/10.joined.md +++ b/docs/10.joined.md @@ -12,7 +12,7 @@ Apply `@Joined` to a field that should be populated from a remote table. The loc Use [foreign keys](./7.foreign-keys.md) when the response needs a nested record instead. The snippets below assume the controller imports and model from the [quick start](./1.introduction.md#quick-start), with `myapp` registered before requests are served. -```typescript +```typescript fragment import { Joined } from "@antelopejs/interface-data-api/metadata"; import { Field, @@ -86,7 +86,7 @@ A GET request to `/orders/get?id=order-123` returns the joined value at the top ## Decorator Parameters -```typescript +```typescript fragment @Joined({ table, localKey, remoteField, remoteIndex?, schema? }) ``` @@ -102,7 +102,7 @@ A GET request to `/orders/get?id=order-123` returns the joined value at the top Because the join is applied to the underlying query before sorting and filtering, joined fields behave like native columns. Combine `@Joined` with `@Sortable` or `@Filter` to order or filter by the imported value. -```typescript +```typescript fragment @Sortable() @Filter() @Joined({ @@ -136,7 +136,7 @@ The page-only benefit therefore holds as long as paging is the first thing the c A custom list route over `Query.List` reads its page with `Query.ListPage` rather than chaining the steps itself. It slices the stream, then resolves on the page only, in this order: the deferred joined groups, the `@Computed` fields the filters and the sort did not already merge, the `@Foreign` relations (last, since a computed expression may read a relation's key), and the pluck. -```typescript +```typescript fragment const [query, total, deferredJoined] = Query.List( this, meta, @@ -162,7 +162,7 @@ const rows = await Query.ListPage(model.database, meta, query, { By default, the remote table is resolved in the same schema as the controller's table. Use the `schema` option to join against a table registered in a different schema; the join is resolved through the remote table's class, against the default instance of the schema `RegisterSchema` bound it to. The remote class must be registered with `@RegisterTable` before the field is declared; a string table name with no registered class in that schema throws at declaration. -```typescript +```typescript fragment @Joined({ table: "users", localKey: "userId", diff --git a/docs/11.computed.md b/docs/11.computed.md index 47de358..5b11819 100644 --- a/docs/11.computed.md +++ b/docs/11.computed.md @@ -12,7 +12,7 @@ The expression receives the row proxy and the schema instance of the controller' The snippets extend the [quick-start controller pattern](./1.introduction.md#quick-start); define `GroupModel` with `BasicDataModel(Group)` and register the `myapp` schema before serving requests. Check [driver support](#driver-support) before using aggregate subqueries. -```typescript +```typescript fragment import { Computed } from "@antelopejs/interface-data-api/metadata"; @RegisterTable("groups", "myapp") @@ -82,7 +82,7 @@ A GET request to `/groups/get?id=group-123` returns the computed values at the t ## Decorator Parameters -```typescript +```typescript fragment @Computed(expr, options?) ``` @@ -95,7 +95,7 @@ A GET request to `/groups/get?id=group-123` returns the computed values at the t Aggregate subqueries yield `null` instead of their natural zero value when the underlying set is empty (a `count()` over a group with no devices returns `null`, not `0`). Calling `.default(0)` inside the subquery expression does not help: the aggregation produces no document at all, so there is nothing to apply the default to. The `options.default` value solves this by being applied at the row level, after the merge: -```typescript +```typescript fragment @Computed((row, db) => db.table("devices").getAll(row.key("_id"), "group_id").count(), { default: 0, }) @@ -120,7 +120,7 @@ Computed fields are always sorted without a database index (`@Sortable` is force Filter values arrive as strings from the query string. Use the validated `numberFilter` from [Numeric and Boolean Filters](./8.filters.md#numeric-and-boolean-filters), imported into the controller file. It rejects invalid numbers and honors the requested comparison operator; `parseFloat` alone accepts partial input such as `"3devices"`. -```typescript +```typescript fragment @Computed((row, db) => db.table("devices").getAll(row.key("_id"), "group_id").count(), { default: 0, }) @@ -141,7 +141,7 @@ declare devices_count: number; ## Driver Support -The aggregate form relies on the database driver translating a per-row subquery inside a merge into a correlated lookup (`$lookup` with `let`/`pipeline` on MongoDB). This is supported by `@antelopejs/mongodb` >= 1.2.1. Row-local expressions only use standard expression compilation and work on any driver. +The aggregate form relies on the database driver translating a per-row subquery inside a merge into a correlated lookup (`$lookup` with `let`/`pipeline` on MongoDB). `@antelopejs/mongodb` supports this in the releases that translate such a subquery into that `$lookup`; its changelog lists the release that added it. Row-local expressions only use standard expression compilation and work on any driver. ## Next Steps diff --git a/docs/2.data-controllers.md b/docs/2.data-controllers.md index 3fa4bc8..a6e27e1 100644 --- a/docs/2.data-controllers.md +++ b/docs/2.data-controllers.md @@ -73,7 +73,7 @@ class UserAPI extends DataController( ## `DataController` Signature -```typescript +```typescript fragment DataController( tableClass: typeof Table, // Database table class routes: DataControllerDef, // Route definitions (e.g., DefaultRoutes.All) diff --git a/docs/3.routes.md b/docs/3.routes.md index 7bb09a4..3593648 100644 --- a/docs/3.routes.md +++ b/docs/3.routes.md @@ -26,7 +26,7 @@ Use `DefaultRoutes.All` to include all five routes at once. Pass a route definition object to `DataController` to control which endpoints are created. -```typescript +```typescript fragment // All CRUD routes @RegisterDataController() class UserAPI extends DataController( @@ -228,7 +228,7 @@ DELETE /users/delete?id=user-123 The `DefaultRoutes.WithOptions` function customizes route behavior by overriding query parameters or route settings. -```typescript +```typescript fragment DefaultRoutes.WithOptions(callback, options?, endpoint?) ``` @@ -240,7 +240,7 @@ DefaultRoutes.WithOptions(callback, options?, endpoint?) ### Example -```typescript +```typescript fragment const routes = { edit: DefaultRoutes.Edit, quickEdit: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { @@ -361,7 +361,7 @@ Keep these boundaries when writing a guard: For operations beyond CRUD, define a custom route callback with `func`, `args`, and `method` properties. -```typescript +```typescript fragment import { Context } from "@antelopejs/interface-api"; import { DataController, diff --git a/docs/4.access-rights.md b/docs/4.access-rights.md index 4e6acb1..1fbf778 100644 --- a/docs/4.access-rights.md +++ b/docs/4.access-rights.md @@ -37,7 +37,7 @@ import { Access, AccessMode } from "@antelopejs/interface-data-api/metadata"; Read-only fields appear in API responses but cannot be modified through create or update requests. Values sent for these fields in request bodies are silently ignored. -```typescript +```typescript fragment @RegisterDataController() class UserAPI extends DataController( User, @@ -65,7 +65,7 @@ A PUT request to `/users/edit?id=user-123` with `{ "createdAt": "2025-01-01", "n Write-only fields accept input during create and update operations but are never included in API responses. This is useful for sensitive data like passwords. -```typescript +```typescript fragment @RegisterDataController() class UserAPI extends DataController( User, @@ -100,7 +100,7 @@ A GET request to `/users/get?id=user-123` returns `name` and `email` but never i Read-write fields are fully accessible: they appear in responses and accept input in request bodies. -```typescript +```typescript fragment @Access(AccessMode.ReadWrite) declare email: string; @@ -112,7 +112,7 @@ declare name: string; The `@Access` decorator accepts an optional second argument to override the access mode for specific actions. This allows a field to behave differently depending on the operation being performed. -```typescript +```typescript fragment @Access(defaultMode: AccessMode, overrides?: Record) ``` @@ -122,7 +122,7 @@ To read the access a field has in one action, outside the routes (to render a fo ### Example: Writable on Create, Read-Only on Edit -```typescript +```typescript fragment @RegisterDataController() class UserAPI extends DataController( User, diff --git a/docs/5.validators.md b/docs/5.validators.md index 167b9c6..0198839 100644 --- a/docs/5.validators.md +++ b/docs/5.validators.md @@ -10,7 +10,7 @@ Validators provide field-level data integrity checks that run automatically duri The `@Validator` decorator accepts a function that receives the field value and returns `true` if valid or `false` if invalid. It can instead return a parse result (see [Parsed Values](#parsed-values)) so that the parsed value is written. The function can also return a `Promise` of either for asynchronous validation. -```typescript +```typescript fragment import { Validator } from "@antelopejs/interface-data-api/metadata"; @RegisterDataController() @@ -65,7 +65,7 @@ The function: A validator returning a parse result writes the parsed value on both `new` and `edit`. The result has the shape of zod's `safeParse`, so a zod schema can be used directly: -```typescript +```typescript fragment const startsAtSchema = z.coerce.date(); @Access(AccessMode.ReadWrite) @@ -77,7 +77,7 @@ declare startsAt: Date; // "2026-01-15" is stored as a Date ### String Validation -```typescript +```typescript fragment // Minimum length @Validator((value) => typeof value === "string" && value.length >= 2) declare firstName: string; @@ -95,7 +95,7 @@ declare role: string; ### Number Validation -```typescript +```typescript fragment // Range @Validator((value) => typeof value === "number" && value >= 0 && value <= 120) declare age: number; @@ -111,7 +111,7 @@ declare price: number; ### Date Validation -```typescript +```typescript fragment // Valid date string @Validator((value) => typeof value === "string" && !isNaN(Date.parse(value))) declare birthDate: string; @@ -129,7 +129,7 @@ declare appointmentDate: string; An asynchronous lookup can give early feedback, but a check followed by an insert is not a uniqueness guarantee: concurrent requests can both pass. Enforce uniqueness in the database where supported, and handle write conflicts. `lookupByEmail` below is an application-supplied function. -```typescript +```typescript fragment // Check uniqueness against the database @Validator(async (value) => { if (typeof value !== "string") return false; @@ -154,7 +154,7 @@ import { Mandatory } from "@antelopejs/interface-data-api/metadata"; Pass one or more operation names as arguments. Common operation names are `"new"` (create) and `"edit"` (update). -```typescript +```typescript fragment @RegisterDataController() class UserAPI extends DataController( User, @@ -193,7 +193,7 @@ In this example: Use `DefaultRoutes.WithOptions` with the `noMandatory` option to create an endpoint that skips mandatory field checks. -```typescript +```typescript fragment const routes = { edit: DefaultRoutes.Edit, patchEdit: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { @@ -215,7 +215,7 @@ Requests to `/users/edit` cannot clear `status`, while requests to `/users/patch The `@Optional` decorator explicitly marks a field as not mandatory for any operation. Use it on fields that have no other decorators but still need to be recognized by the Data API metadata system. -```typescript +```typescript fragment import { Optional } from "@antelopejs/interface-data-api/metadata"; @Optional() diff --git a/docs/6.listable.md b/docs/6.listable.md index babb2f8..94beb99 100644 --- a/docs/6.listable.md +++ b/docs/6.listable.md @@ -10,7 +10,7 @@ The `@Sortable` decorator marks fields that can be used as a sorting key in list Fields decorated with `@Listable()` are included in list responses. Fields without this decorator are excluded from list results but still appear in single-record `get` responses (provided they have read access). -```typescript +```typescript fragment import { Access, AccessMode, @@ -51,7 +51,7 @@ Pluck modes allow a single controller to serve multiple list views with differen Calling `@Listable()` without a mode name registers the field under the default `"list"` mode. -```typescript +```typescript fragment @Listable() declare name: string; ``` @@ -60,7 +60,7 @@ declare name: string; Pass `true` and a mode name to register a field under a specific pluck mode. -```typescript +```typescript fragment @Listable() // Included in default "list" mode @Listable(true, "detailed") // Also included in "detailed" mode declare name: string; @@ -76,7 +76,7 @@ declare email: string; Pass `false` to explicitly exclude a field from a mode. -```typescript +```typescript fragment @Listable() @Listable(false, "minimal") // Excluded from "minimal" mode declare description: string; @@ -86,7 +86,7 @@ declare description: string; Define separate routes for each pluck mode using `DefaultRoutes.WithOptions` with the `pluckMode` option. -```typescript +```typescript fragment const routes = { list: DefaultRoutes.List, detailed: DefaultRoutes.WithOptions(DefaultRoutes.List, { @@ -120,7 +120,7 @@ Modes are independent field sets: `"detailed"` does not inherit `"list"`. The ex When a field uses a getter (computed property), the `@Listable` decorator must specify which database fields the getter depends on. This ensures those fields are fetched from the database. -```typescript +```typescript fragment @Listable(["firstName", "lastName"]) @Access(AccessMode.ReadOnly) get fullName() { @@ -132,7 +132,7 @@ get fullName() { List responses include pagination metadata. The response structure is: -```typescript +```typescript fragment { results: T[]; // Records for the current page total: number; // Total number of matching records @@ -170,7 +170,7 @@ GET /users/list?limit=2&offset=4 Use the `maxPage` route option to cap the `limit` parameter. If a request specifies a `limit` larger than `maxPage`, the value is clamped to `maxPage`. -```typescript +```typescript fragment const routes = { list: DefaultRoutes.WithOptions(DefaultRoutes.List, { maxPage: 25 }), }; @@ -185,7 +185,7 @@ class UserAPI extends DataController(User, routes, Controller("/users")) { The `@Sortable` decorator marks a field as eligible for use as a sorting key in list operations. -```typescript +```typescript fragment import { Sortable } from "@antelopejs/interface-data-api/metadata"; @RegisterDataController() @@ -226,7 +226,7 @@ class UserAPI extends DataController( By default, `@Sortable()` marks the field for indexed ordering. Set `noIndex: true` when it is not indexed. Both paths build an AQL `orderBy` operation; this option changes where sorting is staged, not whether rows are sorted in application memory. The provider determines how the database executes that ordering. -```typescript +```typescript fragment @Sortable() // Uses database index for sorting declare _id: string; diff --git a/docs/7.foreign-keys.md b/docs/7.foreign-keys.md index 3f805f7..f7af598 100644 --- a/docs/7.foreign-keys.md +++ b/docs/7.foreign-keys.md @@ -12,7 +12,7 @@ Choose the response fields explicitly with `pluck`. A foreign lookup reads the t The snippets use the `myapp` schema. Register it in the declaring module before serving requests, as in the [quick start](./1.introduction.md#quick-start). Controller snippets assume the corresponding model and shared imports are already declared. -```typescript +```typescript fragment import { Foreign } from "@antelopejs/interface-data-api/metadata"; import { Field, @@ -87,7 +87,7 @@ A GET request to `/orders/get?id=order-123` returns the full user object instead ## Decorator Parameters -```typescript +```typescript fragment @Foreign(table, index?, multi?, pluck?, schema?) ``` @@ -105,7 +105,7 @@ A GET request to `/orders/get?id=order-123` returns the full user object instead Pass the table class directly. This provides IDE autocompletion, refactoring support, and compile-time validation. -```typescript +```typescript fragment @Foreign(User) declare userId: User; ``` @@ -114,7 +114,7 @@ declare userId: User; Pass the registered table name as a string. Use this when importing the class would create circular dependencies. -```typescript +```typescript fragment @Foreign("users") declare userId: User; ``` @@ -125,7 +125,7 @@ When a field stores an array of foreign key IDs, set the `multi` parameter to `t The table-level `@Relation({ many: true })` is declarative metadata recording that the field holds multiple target keys; API-side resolution is controlled solely by the `multi` parameter of `@Foreign`. -```typescript +```typescript fragment @RegisterTable("carts", "myapp") class Cart extends Table { @Field("string") @@ -185,7 +185,7 @@ Response: The `pluck` parameter limits which fields are included from the referenced record. This reduces response payload size when you only need specific fields. -```typescript +```typescript fragment @RegisterDataController() class CartAPI extends DataController( Cart, @@ -243,7 +243,7 @@ Response with `pluck: ["name", "email"]`: Use the `index` parameter to match against a secondary index instead of the primary key. -```typescript +```typescript fragment // Match userId against the "email" index on the User table @Foreign(User, "email") declare userEmail: User; @@ -253,7 +253,7 @@ declare userEmail: User; By default, the target table is resolved in the same schema as the controller's table. Use the `schema` parameter to reference a table registered in a different schema. At runtime the foreign lookup is resolved through the target's table class, against the default instance of the schema `RegisterSchema` bound it to, so it follows the database of the module that declared the table. The target's class must be registered with `@RegisterTable` before the field is declared; a string table name with no registered class in that schema throws at declaration. -```typescript +```typescript fragment // Resolve userId against the User table registered in the "auth" schema @Access(AccessMode.ReadOnly) @Foreign(User, undefined, false, undefined, "auth") @@ -267,6 +267,8 @@ When a table class is passed (instead of a string), its schema is inferred from Use the `noForeign` route option to skip foreign key resolution for specific endpoints. This returns raw IDs instead of resolved objects. ```typescript +import { DefaultRoutes } from "@antelopejs/interface-data-api"; + const routes = { get: DefaultRoutes.Get, getRaw: DefaultRoutes.WithOptions(DefaultRoutes.Get, { noForeign: "true" }), diff --git a/docs/8.filters.md b/docs/8.filters.md index ff4e8ba..052546c 100644 --- a/docs/8.filters.md +++ b/docs/8.filters.md @@ -10,7 +10,7 @@ The `@Filter` decorator adds filtering capabilities to list endpoints. Filters a Apply `@Filter()` without arguments to enable standard comparison filtering on a string field. Query filter values remain strings: TypeScript annotations, `@Field`, and write validators do not parse them into numbers or booleans. -```typescript +```typescript fragment import { Filter } from "@antelopejs/interface-data-api/metadata"; @RegisterDataController() @@ -129,7 +129,7 @@ export const booleanFilter: FilterFunction> = ( Apply the functions to the corresponding fields in your controller: -```typescript +```typescript fragment @Filter(numberFilter, false) declare age: number; @@ -145,7 +145,7 @@ For filtering logic beyond simple comparisons, pass a custom filter function to ### Filter Function Signature -```typescript +```typescript fragment type FilterFunction = ( context: RequestContext & { this: T }, proxy: ValueProxy, @@ -171,7 +171,7 @@ type FilterFunction = ( ### Example: Pattern Matching Filter -```typescript +```typescript fragment function filterByEmailDomain( context: RequestContext, proxy: ValueProxy, @@ -219,7 +219,7 @@ Import `assert` from `@antelopejs/interface-api-util`. Escaping the domain makes The `@Filter` decorator accepts an optional second parameter, `useIndex`, that controls whether the filter can use a database index for optimized lookups. -```typescript +```typescript fragment @Filter(undefined, true) // Default filter with index optimization declare status: string; diff --git a/docs/9.modifiers.md b/docs/9.modifiers.md index b75fd0e..0a43175 100644 --- a/docs/9.modifiers.md +++ b/docs/9.modifiers.md @@ -16,7 +16,7 @@ import { ModifierKey } from "@antelopejs/interface-data-api/metadata"; ### Signature -```typescript +```typescript fragment @ModifierKey(modifierClass: typeof ContainerModifier) ``` From 6eca4ec389cb8088b91d7ffd2dd564b7c0e37ad4 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 31 Oct 2026 13:54:56 +0100 Subject: [PATCH 05/36] build(deps): prove the package against interface-database 0.3.0 (#64) * build: run pnpm 10.33.0 pnpm before 10.20 fails a frozen install of some file: tarball dependencies (ENOENT in the store index), which the campaign tarball pins need. * build(deps): test against the interface-database 0.3.0 tarball Producer: AntelopeJS/interface-database feat/typed-query-stages at 4939b45, version 0.3.0. The devDependency range ^0.1.11 excludes 0.3.0, so the suite never ran against it. * refactor: build the deferred join wrapper on a recorded stage interface-database 0.3.0 types QueryStage by name, so the wrapper is built on the first stage of the stream it wraps instead of an empty-named one; the stages are replaced right after, as before. The test's listed row declares the _internal key it plucks. * build(deps): test against interface-database 6bef278 --- .campaign/tgz/SHA256SUMS | 1 + .../antelopejs-interface-database-6bef278.tgz | Bin 0 -> 117250 bytes .campaign/tgz/ranges.tsv | 3 + README.md | 14 ++--- package.json | 9 ++- pnpm-lock.yaml | 56 +++++++++++++++--- pnpm-workspace.yaml | 2 + src/internal/deferred-joined-stream.ts | 5 +- src/tests/components/deferred_joined.test.ts | 1 + 9 files changed, 71 insertions(+), 20 deletions(-) create mode 100644 .campaign/tgz/SHA256SUMS create mode 100644 .campaign/tgz/antelopejs-interface-database-6bef278.tgz create mode 100644 .campaign/tgz/ranges.tsv create mode 100644 pnpm-workspace.yaml diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS new file mode 100644 index 0000000..5d86e53 --- /dev/null +++ b/.campaign/tgz/SHA256SUMS @@ -0,0 +1 @@ +b622e0659f1b0cd8a1a6455061b85e6e7e5a2a6fdbbab1add9cc576b65e7bda5 antelopejs-interface-database-6bef278.tgz diff --git a/.campaign/tgz/antelopejs-interface-database-6bef278.tgz b/.campaign/tgz/antelopejs-interface-database-6bef278.tgz new file mode 100644 index 0000000000000000000000000000000000000000..560d7eefbdd96cfc0d28745ce6ed25e44e48de12 GIT binary patch literal 117250 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 literal 0 HcmV?d00001 diff --git a/.campaign/tgz/ranges.tsv b/.campaign/tgz/ranges.tsv new file mode 100644 index 0000000..41af30c --- /dev/null +++ b/.campaign/tgz/ranges.tsv @@ -0,0 +1,3 @@ +@antelopejs/interface-database package.json devDependencies ^0.1.11 +@antelopejs/interface-database package.json pnpm.overrides +@antelopejs/interface-database pnpm-workspace.yaml overrides diff --git a/README.md b/README.md index 196313d..fa86a07 100644 --- a/README.md +++ b/README.md @@ -123,13 +123,13 @@ The package declares these `@antelopejs/*` peer dependencies: -| Package | Supported | Tested with | -| ------------------------------------------- | ----------------- | ----------- | -| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `0.0.15` | -| `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `0.1.3` | -| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | -| `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `0.1.11` | -| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `0.1.10` | +| Package | Supported | Tested with | +| ------------------------------------------- | ----------------- | -------------------------------------------------------------- | +| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `0.0.15` | +| `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `0.1.3` | +| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | +| `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz` | +| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `0.1.10` | diff --git a/package.json b/package.json index 242bf8c..53f881e 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@antelopejs/interface-api": "^0.0.15", "@antelopejs/interface-api-util": "^0.1.3", "@antelopejs/interface-core": "^0.2.4", - "@antelopejs/interface-database": "^0.1.11", + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz", "@antelopejs/interface-database-decorators": "^0.1.10", "@antelopejs/tooling-configs": "^0.2.17", "@types/chai": "^4.3.20", @@ -104,7 +104,12 @@ "@antelopejs/interface-database": ">=0.1.10 <1.0.0", "@antelopejs/interface-database-decorators": ">=0.1.10 <1.0.0" }, - "packageManager": "pnpm@10.6.5", + "packageManager": "pnpm@10.33.0", + "pnpm": { + "overrides": { + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz" + } + }, "antelopeJs": { "standalone": true, "test": "src/antelope.test.ts", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c65f528..444ac09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,9 +4,16 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz + importers: .: + dependencies: + '@antelopejs/interface-database': + specifier: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz + version: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4) devDependencies: '@antelopejs/core': specifier: ^1.16.0 @@ -20,12 +27,9 @@ importers: '@antelopejs/interface-core': specifier: ^0.2.4 version: 0.2.4 - '@antelopejs/interface-database': - specifier: ^0.1.11 - version: 0.1.11(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database-decorators': specifier: ^0.1.10 - version: 0.1.10(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@0.1.11(@antelopejs/interface-core@0.2.4)) + version: 0.1.10(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)) '@antelopejs/tooling-configs': specifier: ^0.2.17 version: 0.2.17(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001)) @@ -101,13 +105,15 @@ packages: '@antelopejs/interface-database-decorators@0.1.10': resolution: {integrity: sha512-frdqN199ExzpoeMu+wi/y0Zc2ARADYXSFJ3+YJH5sUSCKa0U4GXfiXC36XdvBCqNjG+Kv7h+C/vjpi+r0/vqDg==} + version: 0.1.10 peerDependencies: '@antelopejs/interface-api': '>=0.0.15 <1.0.0' '@antelopejs/interface-core': '>=0.2.4 <1.0.0' '@antelopejs/interface-database': '>=0.1.11 <1.0.0' - '@antelopejs/interface-database@0.1.11': - resolution: {integrity: sha512-uv6mB1Lghmlc9z+oWzntmzD1ZNBAmrj+2+7MItv6zClEolbqw5hfAt8+c3IPq2yLfWDfhpqWme2m0eTwsAm0RQ==} + '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz': + resolution: {integrity: sha512-iFR2hP69eGn4xlxYiOXOhbuvirLgXQ25LJk0/sP84VJ4xPgxfrwX6YEfrVbhvpUjWLlnWXly+om5qKgU1CQZ6Q==, tarball: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz} + version: 0.3.0 peerDependencies: '@antelopejs/interface-core': '>=0.2.4 <1.0.0' @@ -465,48 +471,56 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-arm64-musl@0.147.0': resolution: {integrity: sha512-gd7VX/FDVOw6mjQcu45iIcp4QkgybgJwh3a0OFG2NxmPCj628mQWD96QGu1kK8+mZF9qK4b/gIEyC63vQoB7+Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@oxc-parser/binding-linux-ppc64-gnu@0.147.0': resolution: {integrity: sha512-HnAzcfki7dSUNHf510Q2NmbJlz8Ys7rn8l9l588Pkx0tYe1BHLZnmELIgqizJ4WPhHGSwN8Ce+B/menVxS3odA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-riscv64-gnu@0.147.0': resolution: {integrity: sha512-qlkOL6wT44U+fT5s/+sR6Shx0OdwvQF83JyIPZUxG/ovqZF5/7atOtjH+JPZ5/7ATQLbFBBSmghcy/+2NVB/ew==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-riscv64-musl@0.147.0': resolution: {integrity: sha512-DlefD7L7sMXs/3hIBH23Egk0phj8kG0SA81dVGOQ3S1ekjOlmTLH2E+F2Thwfh1slKx6aH+lNc5fQYAw0GU7/g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [musl] '@oxc-parser/binding-linux-s390x-gnu@0.147.0': resolution: {integrity: sha512-Xqpagk/031IvZ4svrk2FF01YEqM/iN3MJV3SVZadKg/CsGlDCGoREqKHXYnoV5+8SfGe/m6RM1szXFLusTu/Uw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-x64-gnu@0.147.0': resolution: {integrity: sha512-QioQOeUbI4ATUr0S2z88uA3Cds2R3Mm5Ge7U8XNYtlTb2GJF3rWlcj70z0AJhhOlbdm0YgVjqPBldUNbFylDIg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@oxc-parser/binding-linux-x64-musl@0.147.0': resolution: {integrity: sha512-NXy1tv/OdC+pPTwf9RiCZWPK53V/Xq/2cjSnjOSyKopajdaDqMIkgtDY+jXZemp2e8px5FeWfY2L2LwhKZQovg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@oxc-parser/binding-openharmony-arm64@0.147.0': resolution: {integrity: sha512-GpGWZ6oKz4bjCWW9Mz5pCaGPyk2Aaze6zEoaslIQqpSLtpx5pXj/ap5gUNb5Jn2LIbqWyjkGLX9yv3NMuNcBVQ==} @@ -574,41 +588,49 @@ packages: resolution: {integrity: sha512-vDT3KHgzYp47gmtNOqL2VNhCyl5Zv643eyxm//A68J8DeUGXrvD1pZFiaT4jSfe+RInfnn1R2yVHye4enx6RnA==} cpu: [arm64] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-arm64-musl@11.24.2': resolution: {integrity: sha512-+kMlQvbzfyEYtu5FcjE4p+ttBLpKW4d/AsAsuE69BxV6V4twZJeIQZFfD8gh/wqglY0MkPSezWXQH0jBV13MUw==} cpu: [arm64] os: [linux] + libc: [musl] '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': resolution: {integrity: sha512-shjfMhmZ3gq9fv/w7bi3PnZlgOPG+2QAOFf0BJF0EgBSIGZ6PMLN2zbGEblTUYB/NKVDRyYhE2ff3dJ1QqNPkA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': resolution: {integrity: sha512-zGelwFR5oRo+b69k8Lrzun86DyUHzfKN6cnjbR9l7Z7NIRznOE/2ZvPa1IUKqAL2PzAXOdwkfVqNvO1H2RlpAw==} cpu: [riscv64] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': resolution: {integrity: sha512-qxZ1SWCXJY0eyhAlP6Lmo9F2Nrtx7EkYj9oCgL8apDPCwXwCEDA2U697bbT81JIc2IrVjxO4KX6WU2N+oN9Z4w==} cpu: [riscv64] os: [linux] + libc: [musl] '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': resolution: {integrity: sha512-sGCecF3cx2DFlH4t/z7ApnOnXqN48p5p5mlHDEnHTAukQa2P+qMVE4CwyWE9W+q/m3QJ7kKfGrIjax31f44oFQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-x64-gnu@11.24.2': resolution: {integrity: sha512-k/VlMMcSzMlahb3/fENM4rTlsJ0s3fFROA0KXPBmKggqmTSaE383sl8F3KCOXPLmVsYfW6hCitMhXCEtNeZxxg==} cpu: [x64] os: [linux] + libc: [glibc] '@oxc-resolver/binding-linux-x64-musl@11.24.2': resolution: {integrity: sha512-8hbnZyNi97b/8wapYaIF9+t9GmZKBW2vunaOc3h9HGJptH7b7XpvZqOTBSm/MpTjr7H497BlgOaSfLUdhmy2bw==} cpu: [x64] os: [linux] + libc: [musl] '@oxc-resolver/binding-openharmony-arm64@11.24.2': resolution: {integrity: sha512-MvyGik3a6pVgZ0t/kWlbmFxFLmXQJwgLsY2eYFHLpy0wGwRbfzeIGgDwQ3kXqE30z+kSXennRkCrT7TUvkptNg==} @@ -677,48 +699,56 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@oxfmt/binding-linux-arm64-musl@0.66.0': resolution: {integrity: sha512-tTkF2Dmx4nGAjmBlZb+UtTGqR/EK4ZrW9qBfzte07a9XWqzoGGKzpFFlyNDhQe+Uwql94+ReCTeNbhOXscw1Dg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@oxfmt/binding-linux-ppc64-gnu@0.66.0': resolution: {integrity: sha512-F3cKHUav4yXOHn6GFnwpBhSYsJOYKKf9eqO/9jlEuqPxNw9zb98E9ZFct79gcg8pibUGkbveEu9WDlmXJpDzKw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@oxfmt/binding-linux-riscv64-gnu@0.66.0': resolution: {integrity: sha512-K5fDaNZfDyQMYA/3qL21bqyN0X9T15LLwwbFPt2aHc94+ZG7bh0vZEsy2y7NlRnjjHFSwN+Hzg6ldJtbOriH4Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@oxfmt/binding-linux-riscv64-musl@0.66.0': resolution: {integrity: sha512-44Yc+I+qOmTElRcEhm5hUKIUJEQIOugymz4ua4tB0Wox7tGAfIbjzmXz/HDAtw1Ij6gmBwZlzh4hc9679RhWeA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [musl] '@oxfmt/binding-linux-s390x-gnu@0.66.0': resolution: {integrity: sha512-1e29Eg9hEj2kRBB19M0seIehPbbXHCk35GvImjDvb79rjjYjXCRmtbUNHJcgoktZAMIzXrTbxDBKmTc1V4bg3A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@oxfmt/binding-linux-x64-gnu@0.66.0': resolution: {integrity: sha512-vODY1UQo10gngn0+D4xHKU84F1Twm1LqrzV4SqPXvmQKSd87paehvZ6jqA5wKs6XQrlWul9clYMDVHcoW9CPMA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@oxfmt/binding-linux-x64-musl@0.66.0': resolution: {integrity: sha512-YDzXx2JsT4+HL4MdkVrYjO55NS5lUKNm8rLC4ZPou8+seu0v0jhecSh+ufoO6+xEa8gccEezMlI2WHJi4ApUgw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@oxfmt/binding-openharmony-arm64@0.66.0': resolution: {integrity: sha512-mJjUYd8lj0+j4JkYyEM+5qKBf1Rnrpgjn/SVYKJhicVDqLz566ooa7Fs8zflPqt+dnZDV7X054rVIQX6ZcQNlQ==} @@ -821,48 +851,56 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@oxlint/binding-linux-arm64-musl@1.81.0': resolution: {integrity: sha512-k5iAp3dNxW0/uDCBY+WSm8jKB2szu7SkEQZdgRRpDXvuDd69vvDcqhB3A/pWCfCwXyenjNjFn9Td1fVoyAc+Yg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@oxlint/binding-linux-ppc64-gnu@1.81.0': resolution: {integrity: sha512-TFqLja3uYmVSte6nof9GWrex9Z8WgdZrNiLC6Te5rXGDqXB2y4j/26iFhwosXiAFqDhE9JJVuuCkDKLwptTn1g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@oxlint/binding-linux-riscv64-gnu@1.81.0': resolution: {integrity: sha512-UEcySvGS0NOVo7h7n7CYyJL9+6gFAh7Zc/ToDXVScFvzHSTIxtzkMVU30rmQ6+nQ1LF+UdiRDdJajpDu+OylLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@oxlint/binding-linux-riscv64-musl@1.81.0': resolution: {integrity: sha512-H+diDbhD00+wI1IRP8Kz88x/lat+DgtoBJzoTthS16xkTJGNaEkfb8gzmd1rzc/2uDQQMl7GNl+JFUacVeWxIA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] + libc: [musl] '@oxlint/binding-linux-s390x-gnu@1.81.0': resolution: {integrity: sha512-8znJ/5TekjOKg1j1Acho4PJMdiAHLtlcXuWEiipOhAMV6rQcXdmDdXCbheyDczN6TjBwiNfjcP81k4AthrKRzw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@oxlint/binding-linux-x64-gnu@1.81.0': resolution: {integrity: sha512-Q2Wj70yFsvn5QjlmifFzbj4H+kJy53bwqc41o1fzoM7MpLV1NIbhg/LpWXRfC6KOkSAdUx1Wd8VJsdPmhp/HRA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@oxlint/binding-linux-x64-musl@1.81.0': resolution: {integrity: sha512-cPInHp/ddEe5qkyK2IiyQ8Q3Mp2oLLEhhsGgTK2oZx4L6+llGam1H1yBvJZ7qHfOXj8N3hxBS8sj4tO+gtFlIg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@oxlint/binding-openharmony-arm64@1.81.0': resolution: {integrity: sha512-0CQxSX4ajqm07AHBf5U33qQzXKdd7wtq/oTL/7vpY6RNNuxrRi8W4bqUV1Jyu/vj+9KmxQyDhxfeVX1nQL6kfg==} @@ -2787,15 +2825,15 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@0.1.10(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@0.1.11(@antelopejs/interface-core@0.2.4))': + '@antelopejs/interface-database-decorators@0.1.10(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4))': dependencies: '@antelopejs/interface-api': 0.0.15(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 - '@antelopejs/interface-database': 0.1.11(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4) randomstring: 1.3.1 reflect-metadata: 0.2.2 - '@antelopejs/interface-database@0.1.11(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)': dependencies: '@antelopejs/interface-core': 0.2.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..4d6f254 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +overrides: + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz" diff --git a/src/internal/deferred-joined-stream.ts b/src/internal/deferred-joined-stream.ts index 5c8819f..b8bfc6c 100644 --- a/src/internal/deferred-joined-stream.ts +++ b/src/internal/deferred-joined-stream.ts @@ -160,8 +160,9 @@ export function wrapDeferredJoined( names: Set, raw: Stream, ): Stream { - const wrapped = new DeferredJoinedStream({ stage: "", args: [] }); - Object.assign(wrapped, { stages: raw.build() }); + const stages = raw.build(); + const wrapped = new DeferredJoinedStream(stages[0]); + Object.assign(wrapped, { stages }); wrapped.deferredJoin = { db, meta, names, raw }; return wrapped; } diff --git a/src/tests/components/deferred_joined.test.ts b/src/tests/components/deferred_joined.test.ts index 8886e29..e0f4d0b 100644 --- a/src/tests/components/deferred_joined.test.ts +++ b/src/tests/components/deferred_joined.test.ts @@ -106,6 +106,7 @@ class _DeferredJoinedTestAPI extends DataController( interface BookListed { _id: string; + _internal?: unknown; authorId: string; title: string; name: string | null; From 86c842063a8addf9e290f66ed37027a7e95cfa08 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 31 Oct 2026 14:32:12 +0100 Subject: [PATCH 06/36] build(deps): prove interface-data-api against interface-database-decorators 0.2.0 (#66) * build: run pnpm 10.33.0 pnpm before 10.20 fails a frozen install of some file: tarball dependencies (ENOENT in the store index), which the campaign tarball pins need. * build(deps): test against the interface-database 0.3.0 tarball Producer: AntelopeJS/interface-database feat/typed-query-stages at 4939b45, version 0.3.0. The devDependency range ^0.1.11 excludes 0.3.0, so the suite never ran against it. * refactor: build the deferred join wrapper on a recorded stage interface-database 0.3.0 types QueryStage by name, so the wrapper is built on the first stage of the stream it wraps instead of an empty-named one; the stages are replaced right after, as before. The test's listed row declares the _internal key it plucks. * build(deps): prove interface-data-api against interface-database-decorators 0.2.0 Pins the unreleased interface-database-decorators 0.2.0 (H9 W2) as a committed tarball with overrides, next to the interface-database 0.3.0 pin it is built on. The devDependency range `^0.1.10` capped 0.2.0; it is in .campaign/tgz/ranges.tsv. The peer range `>=0.1.10 <1.0.0` admits 0.2.0 and is left as is. * build(deps): test against interface-database 6bef278 * build(deps): test against interface-database 6bef278, interface-database-decorators 9dc0781 --- .campaign/tgz/SHA256SUMS | 1 + ...js-interface-database-decorators-9dc0781.tgz | Bin 0 -> 95677 bytes .campaign/tgz/ranges.tsv | 3 +++ README.md | 14 +++++++------- package.json | 5 +++-- pnpm-lock.yaml | 15 ++++++++------- pnpm-workspace.yaml | 1 + 7 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 .campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index 5d86e53..6356618 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1 +1,2 @@ b622e0659f1b0cd8a1a6455061b85e6e7e5a2a6fdbbab1add9cc576b65e7bda5 antelopejs-interface-database-6bef278.tgz +272998659a764e7ca9ad3d9f91be493132cf5e2f7107709079522a0c7afde66a antelopejs-interface-database-decorators-9dc0781.tgz diff --git a/.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz b/.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cdcbac355823d4e33e641171b780f69d98943b9e GIT binary patch literal 95677 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 literal 0 HcmV?d00001 diff --git a/.campaign/tgz/ranges.tsv b/.campaign/tgz/ranges.tsv index 41af30c..aa0ca05 100644 --- a/.campaign/tgz/ranges.tsv +++ b/.campaign/tgz/ranges.tsv @@ -1,3 +1,6 @@ @antelopejs/interface-database package.json devDependencies ^0.1.11 @antelopejs/interface-database package.json pnpm.overrides @antelopejs/interface-database pnpm-workspace.yaml overrides +@antelopejs/interface-database-decorators package.json devDependencies ^0.1.10 +@antelopejs/interface-database-decorators package.json pnpm.overrides +@antelopejs/interface-database-decorators pnpm-workspace.yaml overrides diff --git a/README.md b/README.md index fa86a07..6c10ae9 100644 --- a/README.md +++ b/README.md @@ -123,13 +123,13 @@ The package declares these `@antelopejs/*` peer dependencies: -| Package | Supported | Tested with | -| ------------------------------------------- | ----------------- | -------------------------------------------------------------- | -| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `0.0.15` | -| `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `0.1.3` | -| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | -| `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz` | -| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `0.1.10` | +| Package | Supported | Tested with | +| ------------------------------------------- | ----------------- | ------------------------------------------------------------------------- | +| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `0.0.15` | +| `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `0.1.3` | +| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | +| `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz` | +| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz` | diff --git a/package.json b/package.json index 53f881e..3e17bae 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "@antelopejs/interface-api-util": "^0.1.3", "@antelopejs/interface-core": "^0.2.4", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz", - "@antelopejs/interface-database-decorators": "^0.1.10", + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz", "@antelopejs/tooling-configs": "^0.2.17", "@types/chai": "^4.3.20", "@types/mocha": "^10.0.10", @@ -107,7 +107,8 @@ "packageManager": "pnpm@10.33.0", "pnpm": { "overrides": { - "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz" + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz", + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz" } }, "antelopeJs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 444ac09..d1a1159 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,7 @@ settings: overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz + '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz importers: @@ -14,6 +15,9 @@ importers: '@antelopejs/interface-database': specifier: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz version: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-database-decorators': + specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz + version: file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)) devDependencies: '@antelopejs/core': specifier: ^1.16.0 @@ -27,9 +31,6 @@ importers: '@antelopejs/interface-core': specifier: ^0.2.4 version: 0.2.4 - '@antelopejs/interface-database-decorators': - specifier: ^0.1.10 - version: 0.1.10(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)) '@antelopejs/tooling-configs': specifier: ^0.2.17 version: 0.2.17(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001)) @@ -103,9 +104,9 @@ packages: '@antelopejs/interface-core@0.2.4': resolution: {integrity: sha512-2qF6/KwahCQvvNuC/piUvPWD4wq2Npmco941HMg2/bMBoJKbhMH16WcXXRvPYznNSkU0U+6vqK6KE+2N5NojSA==} - '@antelopejs/interface-database-decorators@0.1.10': - resolution: {integrity: sha512-frdqN199ExzpoeMu+wi/y0Zc2ARADYXSFJ3+YJH5sUSCKa0U4GXfiXC36XdvBCqNjG+Kv7h+C/vjpi+r0/vqDg==} - version: 0.1.10 + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz': + resolution: {integrity: sha512-oeVw+VOWfyqTYgN2uiYX66GBInculqpjPnegiJoE4KVg8uNsPcD9dJChc2T8LWSdb4gIJaYxsDcUOFEmw6VE8Q==, tarball: file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz} + version: 0.2.0 peerDependencies: '@antelopejs/interface-api': '>=0.0.15 <1.0.0' '@antelopejs/interface-core': '>=0.2.4 <1.0.0' @@ -2825,7 +2826,7 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@0.1.10(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4))': dependencies: '@antelopejs/interface-api': 0.0.15(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4d6f254..35f1f41 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,3 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz" + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz" From 1c5030cd274958f8195c6782773b0cbb61edb330 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 31 Oct 2026 18:38:31 +0100 Subject: [PATCH 07/36] feat(data-api)!: type the filter, computed, option and controller contracts (#67) * build(deps): pin interface-api 0.2.0 and interface-api-util 0.3.0 tarballs * feat(data-api)!: type the filter, computed, option and controller contracts Filter modes are text: FilterValue[1] is a string, so a request's mode and a custom filter's own mode no longer need a cast. ComputedExpression reads ValueProxy. FilterFunction's row defaults to FieldValues. GetOptionOverrides reads a typed dataAPIEntry slot. ExtractGeneric takes typed ParameterExtractor functions (Parameters.FromSearch) instead of converter names. DataControllerCallback gains a result type R. Query and Validation take the controller instance and RowFields instead of any. BREAKING CHANGE: FilterValue[1] is string. ExtractGeneric takes extractors, not names. Query.ReadProperties answers RowFields. Query.GetModel answers a model typed by RowFields and throws a 500 for a field that holds no model. DataAPIMeta.modelKey and modifierKeys hold strings: a symbol-named @ModelReference or @ModifierKey declares nothing. * fix(data-api): accept any class in the DataAPIMeta constructor --- .campaign/tgz/SHA256SUMS | 2 + .../tgz/antelopejs-interface-api-f206be7.tgz | Bin 0 -> 68619 bytes .../antelopejs-interface-api-util-cc740f8.tgz | Bin 0 -> 24320 bytes .campaign/tgz/ranges.tsv | 6 + README.md | 4 +- docs/8.filters.md | 20 +- guardrails.ratchet.json | 11 +- guardrails.suppressions.json | 2 +- package.json | 8 +- pnpm-lock.yaml | 36 ++-- pnpm-workspace.yaml | 2 + skills/data-api-interface/SKILL.md | 8 +- src/components.ts | 183 ++++++++++-------- src/index.ts | 22 ++- src/internal/computed.ts | 6 +- src/internal/controller-types.ts | 20 +- src/internal/extractors.ts | 54 ++++++ src/internal/field-types.ts | 29 ++- src/internal/filters.ts | 17 +- src/internal/foreign.ts | 6 +- src/internal/guards.ts | 7 + src/internal/list.ts | 3 +- src/internal/properties.ts | 17 +- src/internal/prototypes.ts | 12 +- src/internal/read-properties.ts | 12 +- src/internal/tables.ts | 30 ++- src/internal/validation.ts | 53 ++++- src/metadata.ts | 52 +++-- src/tests/components/computed.test.ts | 5 +- src/tests/components/extract_generic.test.ts | 83 ++++++++ src/tests/components/filter_options.test.ts | 6 +- src/tests/components/foreign_computed.test.ts | 7 +- src/tests/integration.test.ts | 9 + 33 files changed, 516 insertions(+), 216 deletions(-) create mode 100644 .campaign/tgz/antelopejs-interface-api-f206be7.tgz create mode 100644 .campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz create mode 100644 src/internal/extractors.ts create mode 100644 src/tests/components/extract_generic.test.ts diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index 6356618..b152740 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,2 +1,4 @@ +fd14fed7cac973b290c4c6d64172b598142623ab52b56b0c49923c44f58246ce antelopejs-interface-api-f206be7.tgz +2979fd8db286fa4e7fc399e0e9b13372b8f72ff91d85f89a12db75ebe9e4190d antelopejs-interface-api-util-cc740f8.tgz b622e0659f1b0cd8a1a6455061b85e6e7e5a2a6fdbbab1add9cc576b65e7bda5 antelopejs-interface-database-6bef278.tgz 272998659a764e7ca9ad3d9f91be493132cf5e2f7107709079522a0c7afde66a antelopejs-interface-database-decorators-9dc0781.tgz diff --git a/.campaign/tgz/antelopejs-interface-api-f206be7.tgz b/.campaign/tgz/antelopejs-interface-api-f206be7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e530590f215ea548b14e40bf725a98b49708eca1 GIT binary patch literal 68619 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Ä?jb7; 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

~oQ=xej9+pIyzKbcXW5V!2QTR@Hs`+k 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 z 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 JNnHTk1pwv7W3d1L literal 0 HcmV?d00001 diff --git a/.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz b/.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz new file mode 100644 index 0000000000000000000000000000000000000000..55e2d46d569ae67f5f466df6a94fd4f6c1b56cb8 GIT binary patch literal 24320 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 literal 0 HcmV?d00001 diff --git a/.campaign/tgz/ranges.tsv b/.campaign/tgz/ranges.tsv index aa0ca05..e8abcb6 100644 --- a/.campaign/tgz/ranges.tsv +++ b/.campaign/tgz/ranges.tsv @@ -4,3 +4,9 @@ @antelopejs/interface-database-decorators package.json devDependencies ^0.1.10 @antelopejs/interface-database-decorators package.json pnpm.overrides @antelopejs/interface-database-decorators pnpm-workspace.yaml overrides +@antelopejs/interface-api package.json devDependencies ^0.0.15 +@antelopejs/interface-api package.json pnpm.overrides +@antelopejs/interface-api pnpm-workspace.yaml overrides +@antelopejs/interface-api-util package.json devDependencies ^0.1.3 +@antelopejs/interface-api-util package.json pnpm.overrides +@antelopejs/interface-api-util pnpm-workspace.yaml overrides diff --git a/README.md b/README.md index 6c10ae9..a081f0f 100644 --- a/README.md +++ b/README.md @@ -125,8 +125,8 @@ The package declares these `@antelopejs/*` peer dependencies: | Package | Supported | Tested with | | ------------------------------------------- | ----------------- | ------------------------------------------------------------------------- | -| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `0.0.15` | -| `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `0.1.3` | +| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz` | +| `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz` | | `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz` | diff --git a/docs/8.filters.md b/docs/8.filters.md index 052546c..0946278 100644 --- a/docs/8.filters.md +++ b/docs/8.filters.md @@ -97,6 +97,12 @@ Parse and validate values explicitly in a custom filter. These filters support t import { assert } from "@antelopejs/interface-api-util"; import type { FilterFunction } from "@antelopejs/interface-data-api/metadata"; +const COMPARISONS = ["eq", "ne", "gt", "ge", "lt", "le"] as const; + +function isComparison(mode: string): mode is (typeof COMPARISONS)[number] { + return COMPARISONS.some((comparison) => comparison === mode); +} + export const numberFilter: FilterFunction> = ( _context, proxy, @@ -106,11 +112,7 @@ export const numberFilter: FilterFunction> = ( ) => { const value = Number(raw); assert(raw.trim() !== "" && Number.isFinite(value), 400, "Invalid number"); - assert( - ["eq", "ne", "gt", "ge", "lt", "le"].includes(mode), - 400, - "Invalid comparison", - ); + assert(isComparison(mode), 400, "Invalid comparison"); return proxy[mode](value); }; @@ -150,11 +152,7 @@ type FilterFunction = ( context: RequestContext & { this: T }, proxy: ValueProxy, key: string, - ...rest: [ - value: string, - mode: "eq" | "ne" | "gt" | "ge" | "lt" | "le", - row: ValueProxy, - ] + ...rest: [value: string, mode: string, row: ValueProxy] ) => ValueProxyOrValue; ``` @@ -164,7 +162,7 @@ type FilterFunction = ( | `proxy` | A query expression produced by the field modifier's `unlockrequest()` method; see the limitations below | | `key` | The field name being filtered | | `value` | The filter value from the query parameter | -| `mode` | The comparison operator from the query parameter | +| `mode` | The text before the first colon of the query parameter, unchecked: the filter defines its own modes | | `row` | The full database row as a `ValueProxy` | `value`, `mode` and `row` are one rest tuple, so that the function type stays within five parameters. A function that declares them as separate parameters is assignable to it, and `Parameters>` lists all six. diff --git a/guardrails.ratchet.json b/guardrails.ratchet.json index 26c9ce4..bdabea6 100644 --- a/guardrails.ratchet.json +++ b/guardrails.ratchet.json @@ -1,13 +1,10 @@ { "pack": "0.2.17", "rules": { - "anti-slop/no-unsafe-dictionary-type": 3, - "anti-slop/require-safety-comment-for-type-assertion": 3, - "typescript/no-redundant-type-constituents": 1, - "typescript/no-unnecessary-type-parameters": 1, - "typescript/no-unsafe-argument": 19, - "typescript/no-unsafe-assignment": 21, - "typescript/no-unsafe-return": 7 + "anti-slop/no-unsafe-dictionary-type": 1, + "typescript/no-unsafe-argument": 12, + "typescript/no-unsafe-assignment": 6, + "typescript/no-unsafe-return": 4 }, "oversizeFiles": {} } diff --git a/guardrails.suppressions.json b/guardrails.suppressions.json index d45133d..47b5e35 100644 --- a/guardrails.suppressions.json +++ b/guardrails.suppressions.json @@ -2,6 +2,6 @@ "rules": {}, "tsExpectError": 0, "tsIgnore": 0, - "safety": 5, + "safety": 4, "config": {} } diff --git a/package.json b/package.json index 3e17bae..b9cb4af 100644 --- a/package.json +++ b/package.json @@ -74,8 +74,8 @@ }, "devDependencies": { "@antelopejs/core": "^1.16.0", - "@antelopejs/interface-api": "^0.0.15", - "@antelopejs/interface-api-util": "^0.1.3", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz", + "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", "@antelopejs/interface-core": "^0.2.4", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz", @@ -108,7 +108,9 @@ "pnpm": { "overrides": { "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz", - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz" + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz", + "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" } }, "antelopeJs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1a1159..daab7ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,27 +7,29 @@ settings: overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz + '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz importers: .: dependencies: + '@antelopejs/interface-api': + specifier: file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz + version: file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-api-util': + specifier: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz + version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database': specifier: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz version: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database-decorators': specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)) + version: file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)) devDependencies: '@antelopejs/core': specifier: ^1.16.0 version: 1.16.0 - '@antelopejs/interface-api': - specifier: ^0.0.15 - version: 0.0.15(@antelopejs/interface-core@0.2.4) - '@antelopejs/interface-api-util': - specifier: ^0.1.3 - version: 0.1.3(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': specifier: ^0.2.4 version: 0.2.4 @@ -90,14 +92,16 @@ packages: engines: {node: '>=20.19'} hasBin: true - '@antelopejs/interface-api-util@0.1.3': - resolution: {integrity: sha512-nJ/WH8MOrsJpNFUSecgA3wRG1tcmHu40MhCY2hD3hllq0595WtUjeirRFr4/KPtj+mbjnQJAvPcxCeXuwwAx+g==} + '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz': + resolution: {integrity: sha512-W1fXHAPI4PIrX6uLvcgTl7xDVvUXC1eMHHvaKqvmpuB83rBLqibVfjISHnkyJlcDU0KzgLGcrk53juq1z5dDtw==, tarball: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz} + version: 0.3.0 peerDependencies: '@antelopejs/interface-api': '>=0.0.15 <1.0.0' '@antelopejs/interface-core': '>=0.2.4 <1.0.0' - '@antelopejs/interface-api@0.0.15': - resolution: {integrity: sha512-BUtZXJcLoVaTwM+q4KpefVuoR235HUpQqd5nqAfx7S6CA3SED3EPnFFvCLzaNZXq3Vq6ErzqJqvir0TaI/kpXA==} + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz': + resolution: {integrity: sha512-9RIXeQznFoyTCwdQ8WunN/FQfcMJ2ILJoONRg9NUFhhG1LYCi0sfL+5ttaQediUXxmJGBsdv3jjssu9aikR/fg==, tarball: file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz} + version: 0.2.0 peerDependencies: '@antelopejs/interface-core': '>=0.2.4 <1.0.0' @@ -2813,12 +2817,12 @@ snapshots: semver: 7.7.4 typescript: 5.9.3 - '@antelopejs/interface-api-util@0.1.3(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)': dependencies: - '@antelopejs/interface-api': 0.0.15(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 - '@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4)': dependencies: '@antelopejs/interface-core': 0.2.4 @@ -2826,9 +2830,9 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz(@antelopejs/interface-api@0.0.15(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4))': dependencies: - '@antelopejs/interface-api': 0.0.15(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4) randomstring: 1.3.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 35f1f41..cf9231b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,5 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz" "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz" + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz" + "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" diff --git a/skills/data-api-interface/SKILL.md b/skills/data-api-interface/SKILL.md index 6e1c25a..377fedf 100644 --- a/skills/data-api-interface/SKILL.md +++ b/skills/data-api-interface/SKILL.md @@ -118,9 +118,11 @@ This exposes `GET /tasks/get?id=`, `GET /tasks/list`, `POST /tasks/new`, `PUT /t - `list` responds `{ results, total, offset, limit }`. `limit` defaults to 10 and is capped at 100 (`maxPage`). Sorting uses `sortKey`/`sortDirection` query params and requires `@Sortable` on the field (400 otherwise). List responses only include `@Listable` fields unless `noPluck` is set. -- Filters come from `filter_=:` query params (plain value means `eq`); modes are - `eq|ne|gt|ge|lt|le` (the default filter compares the raw query-string value — pass a custom filter - function to cast for numeric ranges). Only fields declared with `@Filter()` are filterable. +- Filters come from `filter_=:` query params (plain value means `eq`). `mode` is + text: the default filter accepts `eq|ne|gt|ge|lt|le` and answers 400 for anything else (it compares + the raw query-string value — pass a custom filter function to cast for numeric ranges), and a custom + filter receives it unchecked and defines its own modes. Only fields declared with `@Filter()` are + filterable. Repeating a field's filter (`filter_age=ge:18&filter_age=lt:65`) keeps the rows passing them all; the route then receives a list of tuples for it (`FieldFilter`, read with `FilterValuesOf`). - `@Joined` and `@Computed` fields are materialized in-database, so `@Sortable` and `@Filter()` work diff --git a/src/components.ts b/src/components.ts index 277ab6a..9d9c9db 100644 --- a/src/components.ts +++ b/src/components.ts @@ -1,5 +1,4 @@ import { assert } from "@antelopejs/interface-api-util"; -import type { DataModel } from "@antelopejs/interface-database-decorators/model"; import { getMetadata } from "@antelopejs/interface-database-decorators/common"; import { MakeParameterAndPropertyDecorator } from "@antelopejs/interface-core/decorators"; import { @@ -16,23 +15,24 @@ import type { ValueProxy, } from "@antelopejs/interface-database"; import "@antelopejs/interface-database"; -import { - lock, - ModifiersDynamicMetadata, -} from "@antelopejs/interface-database-decorators/modifiers/common"; +import { ModifiersDynamicMetadata } from "@antelopejs/interface-database-decorators/modifiers/common"; import { type DataAPIMeta, + type DataControllerCallbackWithOptions, + type DataControllerInstance, type FieldFilter, type FieldValues, type FieldParseResult, type FieldValidationResult, type FieldValidator, GetDataControllerMeta, + type RowFields, } from "./metadata"; import * as computed from "./internal/computed"; import { copyFilter, parseFilter } from "./internal/filters"; import * as foreign from "./internal/foreign"; +import * as extractors from "./internal/extractors"; import { isString } from "./internal/guards"; import * as joined from "./internal/joined"; import * as list from "./internal/list"; @@ -45,10 +45,20 @@ export namespace Parameters { /** The controller a parameter provider computes its parameter for. */ type Owner = Parameters[2]; - export function GetOptionOverrides>( - reqCtx: RequestContext, - ): T { - return (reqCtx).dataAPIEntry?.options ?? {}; + /** + * A request context as a data route holds it: {@link RegisterDataController} + * sets the route's entry on it. `Options` is what the route's parameter + * reads, which `WithOptions` wrote. + */ + export interface DataRequestContext extends RequestContext { + dataAPIEntry?: DataControllerCallbackWithOptions; + } + + /** The options the route's `WithOptions` set, none when it set none. */ + export function GetOptionOverrides( + reqCtx: DataRequestContext, + ): Partial { + return reqCtx.dataAPIEntry?.options ?? {}; } /** @@ -58,7 +68,10 @@ export namespace Parameters { * (`?filter_age=ge:18&filter_age=lt:65`) gets them all, which a row must * all pass. Returns fresh tuples. */ - export function ExtractFilters(reqCtx: RequestContext, meta: DataAPIMeta) { + export function ExtractFilters( + reqCtx: DataRequestContext, + meta: DataAPIMeta, + ) { const result: Record = {}; for (const filter of Object.keys(meta.filters)) { const values = reqCtx.url.searchParams @@ -75,63 +88,33 @@ export namespace Parameters { return result; } - const converters = { - number: (val: string) => parseFloat(val), - int: (val: string) => parseInt(val, 10), - bool: (val: string) => val !== "0", - string: (val: string) => val, - }; - type ConvertersKey = keyof typeof converters; - type GenericParams> = { - [K in keyof T]: - | ConvertersKey - | `multi:${ConvertersKey}` - | ((reqCtx: RequestContext, meta: DataAPIMeta) => any); - }; - function isConverterKey(name: string): name is ConvertersKey { - return Object.hasOwn(converters, name); - } + export type ParameterExtractor = extractors.ParameterExtractor; + export type ParameterExtractors = extractors.ParameterExtractors; + export const FromSearch = extractors.FromSearch; - function converterOf(name: string) { - if (!isConverterKey(name)) { - throw new TypeError(`Unknown parameter converter "${name}"`); - } - return converters[name]; - } - - function extractFromSearchParams( - reqCtx: RequestContext, - key: string, - extractor: ConvertersKey | `multi:${ConvertersKey}`, - ) { - if (extractor.startsWith("multi:")) { - const name = extractor.substring(6); - return reqCtx.url.searchParams - .getAll(key) - .map((searchVal) => converterOf(name)(searchVal)); - } - const searchVal = reqCtx.url.searchParams.get(key); - return searchVal === null ? undefined : converterOf(extractor)(searchVal); + function combinesWithOptions(extractor: Function) { + return extractor === ExtractFilters; } + /** + * Builds a route's parameters: the options its `WithOptions` set, then each + * extracted field those options leave out. An extractor of `undefined` is + * skipped like an absent key. {@link ExtractFilters} also runs for a route + * that sets `filters`, since it combines them with the request's. + */ export function ExtractGeneric>( - reqCtx: RequestContext, + reqCtx: DataRequestContext, meta: DataAPIMeta, - dynamic: GenericParams>, + dynamic: ParameterExtractors, ) { - const overrides = GetOptionOverrides(reqCtx); - const result: Partial = { ...overrides }; - for (const key of Object.keys(dynamic)) { - // SAFETY: key comes from Object.keys(dynamic), typed GenericParams> (a mapped type over keyof T), so for a type-checked argument it is a keyof T; false only for a stray key on a non-literal argument, which is harmless as the key is only written on result. - const field = key as keyof T; + const result: Partial = { ...GetOptionOverrides(reqCtx) }; + for (const key in dynamic) { const extractor = dynamic[key]; - if (key in result && extractor !== ExtractFilters) continue; - if (isString(extractor)) { - const value = extractFromSearchParams(reqCtx, key, extractor); - if (value !== undefined) result[field] = value as any; - } else { - result[field] = extractor(reqCtx, meta); + if (!extractor || (key in result && !combinesWithOptions(extractor))) { + continue; } + const value = extractor(reqCtx, meta, key); + if (value !== undefined) result[key] = value; } return result; } @@ -157,15 +140,24 @@ export namespace Parameters { pluckMode?: string; } + /** + * The sort direction a request sends. Any other text sorts ascending, as an + * absent direction does. + */ + const sortDirectionOf: ParameterExtractor = + extractors.fromSearch((text) => + text === "asc" || text === "desc" ? text : undefined, + ); + export const List = MakeParameterAndPropertyDecorator((target, key, param) => SetParameterProvider(target, key, param, function (this: Owner, context) { const meta = GetDataControllerMeta(this); const params = ExtractGeneric(context, meta, { filters: ExtractFilters, - offset: "int", - limit: "int", - sortKey: "string", - sortDirection: "string", + offset: FromSearch.int, + limit: FromSearch.int, + sortKey: FromSearch.string, + sortDirection: sortDirectionOf, }); assert( @@ -193,7 +185,7 @@ export namespace Parameters { context, GetDataControllerMeta(this), { - id: "string", + id: FromSearch.string, }, ); @@ -231,7 +223,7 @@ export namespace Parameters { context, GetDataControllerMeta(this), { - id: "string", + id: FromSearch.string, }, ); @@ -252,7 +244,7 @@ export namespace Parameters { context, GetDataControllerMeta(this), { - id: "multi:string", + id: FromSearch.strings, }, ); @@ -268,12 +260,24 @@ export namespace Parameters { } export namespace Query { + /** + * The database model a controller holds under its `@ModelReference` field, + * typed by the table rows it reads. + */ + export type ModelInstance = tables.ModelInstance; + export function GetModel( - obj: any, + obj: DataControllerInstance, meta: DataAPIMeta, - ): InstanceType & { constructor: DataModel } { + ): ModelInstance { assert(meta.modelKey, 500, "Missing model key."); - return obj[meta.modelKey]; + const model: unknown = obj[meta.modelKey]; + assert( + tables.isModelInstance(model), + 500, + "The controller holds no model.", + ); + return model; } export function Foreign( @@ -340,9 +344,9 @@ export namespace Query { } export async function ReadProperties( - obj: any, + obj: DataControllerInstance, meta: DataAPIMeta, - dbData: any, + dbData: RowFields, action?: string, onlyList?: boolean, ) { @@ -360,11 +364,11 @@ export namespace Query { * `null` clears it. */ export async function WriteProperties( - obj: any, + obj: DataControllerInstance, meta: DataAPIMeta, bodyData: FieldValues, action?: string, - existingDBData?: Record, + existingDBData?: RowFields, ) { return properties.WriteProperties( obj, @@ -375,8 +379,8 @@ export namespace Query { ); } - export function Get( - table: Table, + export function Get( + table: Table, id: string | ValueProxy, index?: string, ) { @@ -412,7 +416,7 @@ export namespace Query { * and the third element names the joined fields left for the caller. */ export function List>( - obj: any, + obj: DataControllerInstance, meta: DataAPIMeta, request: Table, reqCtx: RequestContext, @@ -523,7 +527,11 @@ export namespace Validation { * other action, it is missing when absent from the body. The body of the * 400 is a {@link FieldsErrorBody} with {@link MISSING_MANDATORY_FIELDS}. */ - export function MandatoryFields(meta: DataAPIMeta, obj: any, type: string) { + export function MandatoryFields( + meta: DataAPIMeta, + obj: RequestBody, + type: string, + ) { const isMissing = MISSING_MANDATORY_FIELD_CHECKS[type] ?? isAbsentFromBody; const missing = Object.entries(meta.fields) .filter( @@ -587,22 +595,27 @@ export namespace Validation { * untouched keeps its stored locked value: read while locked it would be * `undefined`, and locking it again would store that over it. */ - export function Lock(obj: any, meta: DataAPIMeta, data: any) { + export function Lock( + obj: DataControllerInstance, + meta: DataAPIMeta, + data: RowFields, + ) { const written = Object.keys( getMetadata(data, ModifiersDynamicMetadata).floating, ); - for (const [modifier, field] of meta.modifierKeys.entries()) { - const key = obj[field]; - lock(data, modifier, written, key); - } + validation.Lock(obj, meta, data, written); } - export function Unlock(obj: any, meta: DataAPIMeta, dbData: any) { + export function Unlock( + obj: DataControllerInstance, + meta: DataAPIMeta, + dbData: RowFields, + ) { validation.Unlock(obj, meta, dbData); } export function UnlockRequest( - obj: any, + obj: DataControllerInstance, meta: DataAPIMeta, row: ValueProxy, field: K, @@ -612,7 +625,7 @@ export namespace Validation { export function ClearInternal( meta: DataAPIMeta, - obj: FieldValues | FieldValues[], + obj: RowFields | RowFields[], ) { validation.ClearInternal(meta, obj); } diff --git a/src/index.ts b/src/index.ts index f9de508..4d5eef8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -28,23 +28,22 @@ import { type DataControllerCallback, type DataControllerCallbackWithOptions, type DataControllerDef, + type DataControllerInstance, type ExtractDefCallbacks, - type FieldValues, GetDataControllerMeta, + type RowFields, } from "./metadata"; export { type DataControllerCallback, type DataControllerCallbackWithOptions, type DataControllerDef, + type DataControllerInstance, type ExtractCallback, type ExtractDefCallbacks, GetDataControllerMeta, } from "./metadata"; -/** The controller a data route runs on: an instance of a class built by {@link DataController}. */ -export type DataControllerInstance = InstanceType; - abstract class TableHolder { table!: InstanceType; } @@ -108,7 +107,7 @@ export const RegisterDataController = "/", ); RegisterRoute({ - callback: (ctx) => { + callback: (ctx: Parameters.DataRequestContext) => { ctx.dataAPIEntry = entry; }, location: fullLocation, @@ -133,7 +132,7 @@ export namespace DefaultRoutes { export type GetGuard = ( this: DataControllerInstance, ctx: RequestContext, - current: FieldValues, + current: RowFields, params: Parameters.GetParameters, ) => void | Promise; @@ -237,6 +236,7 @@ export namespace DefaultRoutes { const results = await Promise.all( dbResult.map((entry) => { const entryInstance = model.constructor.fromDatabase(entry); + assert(entryInstance, 500, "The database answered an empty row."); Validation.Unlock(this, meta, entryInstance); return Query.ReadProperties(this, meta, entryInstance, "list"); }), @@ -349,7 +349,7 @@ export namespace DefaultRoutes { */ export function WithGetGuard( guard: GetGuard, - ): DataControllerCallback { + ): DataControllerCallback { return { ...Get, func: function (ctx, params) { @@ -391,11 +391,13 @@ export namespace DefaultRoutes { delete: Delete, } as const; - export function WithOptions( - callback: DataControllerCallback | DataControllerCallbackWithOptions, + export function WithOptions( + callback: + | DataControllerCallback + | DataControllerCallbackWithOptions, options?: Partial, endpoint?: string, - ): DataControllerCallbackWithOptions { + ): DataControllerCallbackWithOptions { if ("func" in callback) { return { endpoint, diff --git a/src/internal/computed.ts b/src/internal/computed.ts index 6908f66..450b46b 100644 --- a/src/internal/computed.ts +++ b/src/internal/computed.ts @@ -8,7 +8,7 @@ import { type ValueProxy, } from "@antelopejs/interface-database"; -import type { ComputedFieldData, DataAPIMeta } from "../metadata"; +import type { ComputedFieldData, DataAPIMeta, FieldValues } from "../metadata"; import type { TableRow } from "./tables"; type ComputedEntry = [name: string, computed: ComputedFieldData]; @@ -36,7 +36,7 @@ function buildComputedMappers( for (const [name, computed] of entries) { merged[name] = computed.expr(row, db); } - return row.merge(merged); + return row.merge(merged).cast(); }; const defaulted = entries.filter( ([, computed]) => computed.default !== undefined, @@ -49,7 +49,7 @@ function buildComputedMappers( for (const [name, computed] of defaulted) { merged[name] = row.key(name).default(computed.default); } - return row.merge(merged); + return row.merge(merged).cast(); }; return [mergeExpressions, applyDefaults]; } diff --git a/src/internal/controller-types.ts b/src/internal/controller-types.ts index 3afbd5a..8749bbb 100644 --- a/src/internal/controller-types.ts +++ b/src/internal/controller-types.ts @@ -1,17 +1,29 @@ /** @internal @packageDocumentation */ +import type { ControllerClass } from "@antelopejs/interface-api"; import type { ParameterDecorator } from "@antelopejs/interface-core/decorators"; -export type DataControllerCallback = { +/** The controller a data route runs on: an instance of a class built by `DataController`. */ +export type DataControllerInstance = InstanceType; + +/** + * One route of a data controller. `args` decides what `func` receives, so its + * parameters stay open: the first is what `args[0]` injects, the request + * context on the stock routes. + * + * @typeParam O The options `func` receives in its second parameter + * @typeParam R What `func` answers, resolved + */ +export type DataControllerCallback = { args: (ParameterDecorator | ParameterDecorator[])[]; method: string; - func: (ctx: any, opts: O, ...args: any[]) => any; + func: (ctx: any, opts: O, ...args: any[]) => R | Promise; }; -export type DataControllerCallbackWithOptions = { +export type DataControllerCallbackWithOptions = { endpoint?: string; options?: Partial; - callback: DataControllerCallback; + callback: DataControllerCallback; }; export type ExtractCallback = T extends DataControllerCallbackWithOptions diff --git a/src/internal/extractors.ts b/src/internal/extractors.ts new file mode 100644 index 0000000..75d3f77 --- /dev/null +++ b/src/internal/extractors.ts @@ -0,0 +1,54 @@ +/** @internal @packageDocumentation */ + +import type { RequestContext } from "@antelopejs/interface-api"; + +import type { DataAPIMeta } from "../metadata"; + +/** + * Reads one field of a route's parameters from the request. `undefined` leaves + * the field out. `key` is the field's name. + */ +export type ParameterExtractor = ( + reqCtx: RequestContext, + meta: DataAPIMeta, + key: string, +) => Value | undefined; + +/** The extractors of a route's parameters, by field. */ +export type ParameterExtractors = { + [K in keyof T]?: ParameterExtractor; +}; + +export function fromSearch( + convert: (text: string) => Value, +): ParameterExtractor { + return (reqCtx, _meta, key) => { + const text = reqCtx.url.searchParams.get(key); + return text === null ? undefined : convert(text); + }; +} + +function allFromSearch( + convert: (text: string) => Value, +): ParameterExtractor { + return (reqCtx, _meta, key) => + reqCtx.url.searchParams.getAll(key).map((text) => convert(text)); +} + +const toNumber = (text: string) => parseFloat(text); +const toInt = (text: string) => parseInt(text, 10); +const toBool = (text: string) => text !== "0"; +const toText = (text: string) => text; + +/** Reads a field from the query string, under the field's name. */ +export const FromSearch = { + number: fromSearch(toNumber), + int: fromSearch(toInt), + bool: fromSearch(toBool), + string: fromSearch(toText), + /** Every value of the field, none when the request sends none. */ + numbers: allFromSearch(toNumber), + ints: allFromSearch(toInt), + bools: allFromSearch(toBool), + strings: allFromSearch(toText), +}; diff --git a/src/internal/field-types.ts b/src/internal/field-types.ts index e00748a..a69fc5a 100644 --- a/src/internal/field-types.ts +++ b/src/internal/field-types.ts @@ -42,6 +42,15 @@ export interface FieldValues { [field: string]: FieldValue | undefined; } +/** + * The fields of a table row a route holds, by name. The table class decides + * what they hold: a relation holds a row instance, and a getter's result is + * what the getter returned. Read a field through a guard. + */ +export interface RowFields { + [field: string]: unknown; +} + /** Parse outcome accepting the field value, carrying the value to write. */ export interface FieldParseSuccess { success: true; @@ -176,13 +185,14 @@ export interface FieldData { * In-database computed field expression. * * Receives the row proxy and the schema instance of the controller's table. - * May return a row-local expression (built from `row`) or a per-row subquery - * (ex: an aggregate over another table). + * May return a row-local expression (built from `row`), a per-row subquery + * (ex: an aggregate over another table), or a constant. A value proxy is + * invariant in its value, so the proxy and the query take any value. */ export type ComputedExpression = ( - row: ValueProxy>, + row: ValueProxy, db: SchemaInstance, -) => ValueProxyOrValue | Query; +) => ValueProxy | Query | FieldValue; /** * Computed field options. @@ -202,9 +212,16 @@ export interface ComputedFieldData extends ComputedOptions { expr: ComputedExpression; } +/** The comparisons the default filter applies. */ export type Comparison = "eq" | "ne" | "gt" | "ge" | "lt" | "le"; -export type FilterValue = [value: string, mode: Comparison]; +/** + * One filter of a list request: the value, and the mode to compare it with. + * The mode is text: what the request sent, or what the route wrote. The + * default filter refuses a mode that is not a {@link Comparison}. A custom + * filter defines its own modes. + */ +export type FilterValue = [value: string, mode: string]; /** * The filters of one field in a list request: one {@link FilterValue}, or @@ -217,7 +234,7 @@ export type FieldFilter = FilterValue | FilterValue[]; */ export type FilterFunction< T extends Record, - U extends Record = Record, + U extends Record = FieldValues, > = ( context: RequestContext & { this: T }, proxy: ValueProxy, diff --git a/src/internal/filters.ts b/src/internal/filters.ts index 32ca2c2..e3d4353 100644 --- a/src/internal/filters.ts +++ b/src/internal/filters.ts @@ -1,14 +1,19 @@ /** @internal @packageDocumentation */ -import { - type FieldFilter, - type FilterValue, - FilterValuesOf, -} from "../metadata"; +import type { FieldFilter, FilterValue } from "./field-types"; + +function isFilterList(filter: FieldFilter): filter is FilterValue[] { + return Array.isArray(filter[0]); +} + +/** The filters of one field as a list, whether it holds one or several. */ +export function FilterValuesOf(filter: FieldFilter): FilterValue[] { + return isFilterList(filter) ? filter : [filter]; +} export function parseFilter(searchVal: string): FilterValue { const match = searchVal.match(/([^:]+):(.*)/); - return match ? [match[2], match[1] as FilterValue[1]] : [searchVal, "eq"]; + return match ? [match[2], match[1]] : [searchVal, "eq"]; } export function copyFilter(filter: FieldFilter): FieldFilter { diff --git a/src/internal/foreign.ts b/src/internal/foreign.ts index 8a0a636..24dc0d4 100644 --- a/src/internal/foreign.ts +++ b/src/internal/foreign.ts @@ -102,7 +102,11 @@ export function Foreign( return foreignObject.default(null); }); } else { - let foreignObject: Datum = Get(remote, obj.key(name), index); + let foreignObject: Datum = Get( + remote, + obj.key(name).cast(), + index, + ); if (targetJoined && targetJoined.length > 0) { foreignObject = applyForeignJoinedDatum( db, diff --git a/src/internal/guards.ts b/src/internal/guards.ts index dd4774d..b3a4b26 100644 --- a/src/internal/guards.ts +++ b/src/internal/guards.ts @@ -1,5 +1,7 @@ /** @internal @packageDocumentation */ +import type { Class } from "@antelopejs/interface-core/decorators"; + import type { FieldValue, FieldValues } from "./field-types"; /** Whether a value is a string. */ @@ -17,6 +19,11 @@ export function isFunction(value: unknown): value is Function { return typeof value === "function"; } +/** Whether a value is a class: a function, which `new` may call. */ +export function isClass(value: unknown): value is Class { + return isFunction(value); +} + /** Whether a value is a number. */ export function isNumber(value: unknown): value is number { return typeof value === "number"; diff --git a/src/internal/list.ts b/src/internal/list.ts index 02d1bfc..50f85d9 100644 --- a/src/internal/list.ts +++ b/src/internal/list.ts @@ -14,6 +14,7 @@ import { ModifiersStaticMetadata } from "@antelopejs/interface-database-decorato import type { Query } from "../components"; import { type DataAPIMeta, + type DataControllerInstance, type FieldFilter, FilterValuesOf, } from "../metadata"; @@ -209,7 +210,7 @@ function materializeSortFields>( } export function List>( - obj: any, + obj: DataControllerInstance, meta: DataAPIMeta, request: Table, reqCtx: RequestContext, diff --git a/src/internal/properties.ts b/src/internal/properties.ts index c3d6f8b..2332ac4 100644 --- a/src/internal/properties.ts +++ b/src/internal/properties.ts @@ -1,7 +1,12 @@ /** @internal @packageDocumentation */ import type { Query } from "../components"; -import type { DataAPIMeta, WritableAccessFields } from "../metadata"; +import type { + DataAPIMeta, + DataControllerInstance, + RowFields, + WritableAccessFields, +} from "../metadata"; import { prototypeOf } from "./prototypes"; function writableInBody( @@ -17,9 +22,10 @@ function writableInBody( function writeTargetDefaults( instance: Parameters[0], meta: DataAPIMeta, - dbData: Exclude[4], undefined>, + dbData: RowFields, ) { - for (const [key, value] of Object.entries(new meta.target())) { + const defaults: [string, unknown][] = Object.entries(new meta.target()); + for (const [key, value] of defaults) { if (value !== undefined) { instance[key] = value; if (key in meta.fields) { @@ -30,7 +36,7 @@ function writeTargetDefaults( } export function WriteProperties( - obj: any, + obj: DataControllerInstance, meta: DataAPIMeta, bodyData: Parameters[2], action?: string, @@ -42,8 +48,7 @@ export function WriteProperties( ? writableInBody(actionWritable, bodyData) : actionWritable; const instance = { ...obj }; - const dbData: Exclude = - existingDBData || {}; + const dbData: RowFields = existingDBData || {}; Object.setPrototypeOf(dbData, prototypeOf(meta.tableClass)); if (!existingDBData) { writeTargetDefaults(instance, meta, dbData); diff --git a/src/internal/prototypes.ts b/src/internal/prototypes.ts index 5fde572..702b77c 100644 --- a/src/internal/prototypes.ts +++ b/src/internal/prototypes.ts @@ -2,7 +2,8 @@ import type { Class } from "@antelopejs/interface-core/decorators"; -import { isObject } from "./guards"; +import type { DataControllerInstance } from "./controller-types"; +import { isClass, isObject } from "./guards"; /** The object the instances of a class inherit from. */ export function prototypeOf(target: Class): object { @@ -12,3 +13,12 @@ export function prototypeOf(target: Class): object { } return prototype; } + +/** The class an instance was built from, read from its prototype. */ +export function classOf(instance: DataControllerInstance): Class { + const prototype: unknown = Object.getPrototypeOf(instance); + if (!isObject(prototype) || !isClass(prototype.constructor)) { + throw new TypeError("A data controller must be a class instance."); + } + return prototype.constructor; +} diff --git a/src/internal/read-properties.ts b/src/internal/read-properties.ts index 2e1d109..21721c7 100644 --- a/src/internal/read-properties.ts +++ b/src/internal/read-properties.ts @@ -1,20 +1,24 @@ /** @internal @packageDocumentation */ -import type { DataAPIMeta, FieldValues } from "../metadata"; +import type { + DataAPIMeta, + DataControllerInstance, + RowFields, +} from "../metadata"; import { isFunction } from "./guards"; import { prototypeOf } from "./prototypes"; export async function ReadProperties( - obj: any, + obj: DataControllerInstance, meta: DataAPIMeta, - dbData: any, + dbData: RowFields, action?: string, onlyList?: boolean, ) { const readable = meta.readable[action ?? "_default"] ?? meta.readable._default; const instance = { ...obj }; - const res: FieldValues = {}; + const res: RowFields = {}; for (const [key, field] of readable.props) { if (onlyList && !field.listable) { continue; diff --git a/src/internal/tables.ts b/src/internal/tables.ts index d3ed96d..e9d9e30 100644 --- a/src/internal/tables.ts +++ b/src/internal/tables.ts @@ -2,6 +2,7 @@ import { assert } from "@antelopejs/interface-api-util"; import type { Constructible } from "@antelopejs/interface-database-decorators/common"; +import type { DataModel } from "@antelopejs/interface-database-decorators/model"; import type { SchemaInstance, Table, @@ -9,11 +10,32 @@ import type { } from "@antelopejs/interface-database"; import type { TableClass } from "@antelopejs/interface-database-decorators/table"; -import type { ComputedFieldData } from "../metadata"; -import { isFunction, isString } from "./guards"; +import type { ComputedFieldData, RowFields } from "../metadata"; +import { isFunction, isObject, isString } from "./guards"; export type TableRow = Parameters[0]; +/** + * The database model a controller holds under its `@ModelReference` field, + * typed by the table rows it reads. + */ +export type ModelInstance = InstanceType> & { + constructor: DataModel; +}; + +/** Whether a value is a database model: its table, and its row conversion. */ +export function isModelInstance(value: unknown): value is ModelInstance { + return ( + isObject(value) && + "table" in value && + isObject(value.table) && + "database" in value && + isObject(value.database) && + "fromDatabase" in value.constructor && + isFunction(value.constructor.fromDatabase) + ); +} + export interface TableTargetReference { table: string; tableClass?: Constructible; @@ -58,8 +80,8 @@ export function pluckedTable( return table.pluck("_internal", ...fields) as Table; } -export function Get( - table: Table, +export function Get( + table: Table, id: string | ValueProxy, index?: string, ) { diff --git a/src/internal/validation.ts b/src/internal/validation.ts index 408b938..304409e 100644 --- a/src/internal/validation.ts +++ b/src/internal/validation.ts @@ -1,21 +1,36 @@ /** @internal @packageDocumentation */ import { assert } from "@antelopejs/interface-api-util"; +import type { Constructible } from "@antelopejs/interface-database-decorators/common"; import type { ValueProxy } from "@antelopejs/interface-database"; import { fromDatabase, + lock, + type OneWayModifier, toPlainData, unlock, unlockrequest, } from "@antelopejs/interface-database-decorators/modifiers/common"; import type { Validation } from "../components"; -import type { DataAPIMeta } from "../metadata"; +import type { + DataAPIMeta, + DataControllerInstance, + RowFields, +} from "../metadata"; import { isFieldValues, isObject } from "./guards"; type RequestBody = Validation.RequestBody; type WrittenBody = Validation.WrittenBody; +/** + * A modifier a controller keys, handed what the controller holds as its key. + * `ContainerModifier` declares its key a string, and a controller holds none on + * a request that does not send it (a missing language header): the modifier + * then finds nothing under the key. + */ +type KeyedModifier = Constructible>; + export function ParseBody(body: WrittenBody): RequestBody { let data: unknown = body; if (Buffer.isBuffer(body)) { @@ -29,7 +44,24 @@ export function ParseBody(body: WrittenBody): RequestBody { return data; } -export function Unlock(obj: any, meta: DataAPIMeta, dbData: any) { +export function Lock( + obj: DataControllerInstance, + meta: DataAPIMeta, + data: RowFields, + written: string[], +) { + for (const [modifier, field] of meta.modifierKeys.entries()) { + const keyed: KeyedModifier = modifier; + const key: unknown = obj[field]; + lock(data, keyed, written, key); + } +} + +export function Unlock( + obj: DataControllerInstance, + meta: DataAPIMeta, + dbData: RowFields, +) { for (const [name, field] of Object.entries(meta.fields)) { if (field.foreign && isObject(dbData[name]) && field.foreign[1]) { const foreignSchema = field.foreign[1]; @@ -39,18 +71,20 @@ export function Unlock(obj: any, meta: DataAPIMeta, dbData: any) { } } for (const [modifier, field] of meta.modifierKeys.entries()) { - const key = obj[field]; - unlock(dbData, modifier, undefined, key); + const keyed: KeyedModifier = modifier; + const key: unknown = obj[field]; + unlock(dbData, keyed, undefined, key); for (const [foreign, fieldData] of Object.entries(meta.fields)) { - if (fieldData.foreign && isObject(dbData[foreign])) { - unlock(dbData[foreign], modifier, undefined, key); + const related = dbData[foreign]; + if (fieldData.foreign && isObject(related)) { + unlock(related, keyed, undefined, key); } } } } export function UnlockRequest( - obj: any, + obj: DataControllerInstance, meta: DataAPIMeta, row: ValueProxy, field: K, @@ -61,7 +95,7 @@ export function UnlockRequest( args: [obj[field]], }), ); - return unlockrequest(meta.tableClass, row, field, modifiers); + return unlockrequest(meta.tableClass, row, field, modifiers); } export function ClearInternal( @@ -103,7 +137,8 @@ export function ClearInternal( } const plainPlucked: ReturnType = {}; for (const key of foreign[4]) { - plainPlucked[key] = plain[key]; + const value: unknown = plain[key]; + plainPlucked[key] = value; } return plainPlucked; }; diff --git a/src/metadata.ts b/src/metadata.ts index 9d5d0a9..6e6d540 100644 --- a/src/metadata.ts +++ b/src/metadata.ts @@ -11,7 +11,10 @@ import { MakePropertyDecorator, } from "@antelopejs/interface-core/decorators"; -import type { DataControllerCallbackWithOptions } from "./internal/controller-types"; +import type { + DataControllerCallbackWithOptions, + DataControllerInstance, +} from "./internal/controller-types"; import { createDefaultFilter, type DefaultFilterFunction, @@ -21,8 +24,6 @@ import type { FieldData, ComputedExpression, ComputedOptions, - FilterValue, - FieldFilter, FilterFunction, ForeignOptions, ReadableAccessFields, @@ -36,11 +37,14 @@ import { targetJoinedFields, } from "./internal/meta-records"; import { isString } from "./internal/guards"; +import { classOf } from "./internal/prototypes"; import { resolveTableReference } from "./internal/table-reference"; +export { FilterValuesOf } from "./internal/filters"; export type { DataControllerCallback, DataControllerCallbackWithOptions, + DataControllerInstance, ExtractCallback, DataControllerDef, ExtractDefCallbacks, @@ -53,6 +57,7 @@ export type { FieldValidationResult, FieldValue, FieldValues, + RowFields, ForeignOptions, FieldValidator, FieldData, @@ -92,15 +97,6 @@ export function GetEffectiveMode( return field.modeOverrides?.[action] ?? field.mode; } -function isFilterList(filter: FieldFilter): filter is FilterValue[] { - return Array.isArray(filter[0]); -} - -/** The filters of one field as a list, whether it holds one or several. */ -export function FilterValuesOf(filter: FieldFilter): FilterValue[] { - return isFilterList(filter) ? filter : [filter]; -} - /** * Metadata Class containing the DataAPI information. */ @@ -119,10 +115,10 @@ export class DataAPIMeta { public readonly pluck: Record> = {}; /** Key of the DataAPI class containing a database table instance. */ - public modelKey?: PropertyKey; + public modelKey?: string; /** Keys of the DataAPI class containing database modifier keys. */ - public modifierKeys = new Map, PropertyKey>(); + public modifierKeys = new Map, string>(); /** Schema name where the table is registered. */ public schemaName!: string; @@ -143,7 +139,12 @@ export class DataAPIMeta { public readonly endpoints: Record = {}; - constructor(public readonly target: Class) {} + /** The controller class. */ + public readonly target: Class; + + constructor(target: Class) { + this.target = target; + } public inherit(parent: DataAPIMeta) { merge(parent.filters, this.filters); @@ -464,7 +465,7 @@ export class DataAPIMeta { * * @param name Field name */ - public setModelKey(name: PropertyKey) { + public setModelKey(name: string) { this.modelKey = name; return this; } @@ -476,7 +477,7 @@ export class DataAPIMeta { * @param modifierClass Modifier */ public setModifierKey( - name: PropertyKey, + name: string, modifierClass: typeof ContainerModifier, ) { this.modifierKeys.set(modifierClass, name); @@ -710,7 +711,7 @@ export function Filter>( * Sets which field will contain the reference to the database model instance. */ export const ModelReference = MakePropertyDecorator((target, key) => { - GetMetadata(target.constructor, DataAPIMeta).setModelKey(key); + onField(target, key, (meta, name) => meta.setModelKey(name)); }); /** @@ -720,17 +721,14 @@ export const ModelReference = MakePropertyDecorator((target, key) => { */ export const ModifierKey = MakePropertyDecorator( (target, key, modifierClass: typeof ContainerModifier) => { - GetMetadata(target.constructor, DataAPIMeta).setModifierKey( - key, - modifierClass, + onField(target, key, (meta, name) => + meta.setModifierKey(name, modifierClass), ); }, ); -export function GetDataControllerMeta(thisObj: any): DataAPIMeta { - return GetMetadata( - Object.getPrototypeOf(thisObj).constructor, - DataAPIMeta, - true, - ); +export function GetDataControllerMeta( + thisObj: DataControllerInstance, +): DataAPIMeta { + return GetMetadata(classOf(thisObj), DataAPIMeta, true); } diff --git a/src/tests/components/computed.test.ts b/src/tests/components/computed.test.ts index 70d4277..05d5f89 100644 --- a/src/tests/components/computed.test.ts +++ b/src/tests/components/computed.test.ts @@ -134,7 +134,10 @@ async function _createDataController(testName: string) { @Listable() @Computed( (row, db) => - db.table(deviceTableName).getAll(row.key("_id"), "group_id").count(), + db + .table(deviceTableName) + .getAll(row.key("_id").cast(), "group_id") + .count(), { default: 0 }, ) @Sortable() diff --git a/src/tests/components/extract_generic.test.ts b/src/tests/components/extract_generic.test.ts new file mode 100644 index 0000000..07fedf3 --- /dev/null +++ b/src/tests/components/extract_generic.test.ts @@ -0,0 +1,83 @@ +import { expect } from "chai"; +import { HTTPResult } from "@antelopejs/interface-api"; +import { Parameters, Query } from "../../components"; +import { DataAPIMeta } from "../../metadata"; + +import { createRequestContext } from "../internal/http"; + +const meta = new DataAPIMeta(Object); + +function requestOf(query: string) { + return createRequestContext(`http://localhost/?${query}`); +} + +describe("Parameters.ExtractGeneric", () => { + it("skips an extractor of undefined like an absent key", () => { + const params = Parameters.ExtractGeneric<{ a?: number }>( + requestOf("a=1"), + meta, + { a: undefined }, + ); + expect(params).to.deep.equal({}); + }); + + it("converts each field with its extractor, leaving out what the request omits", () => { + const params = Parameters.ExtractGeneric<{ + count?: number; + ratio?: number; + active?: boolean; + name?: string; + tags?: string[]; + absent?: number; + }>(requestOf("count=3.9&ratio=0.5&active=0&name=x&tags=a&tags=b"), meta, { + count: Parameters.FromSearch.int, + ratio: Parameters.FromSearch.number, + active: Parameters.FromSearch.bool, + name: Parameters.FromSearch.string, + tags: Parameters.FromSearch.strings, + absent: Parameters.FromSearch.int, + }); + expect(params).to.deep.equal({ + count: 3, + ratio: 0.5, + active: false, + name: "x", + tags: ["a", "b"], + }); + }); + + it("answers an empty list for a multi-value field the request omits", () => { + const params = Parameters.ExtractGeneric<{ ids?: number[] }>( + requestOf(""), + meta, + { ids: Parameters.FromSearch.ints }, + ); + expect(params).to.deep.equal({ ids: [] }); + }); + + it("keeps a field the route's options set over the request's value", () => { + const ctx = Object.assign(requestOf("limit=5"), { + dataAPIEntry: { + options: { limit: 9 }, + callback: { args: [], method: "get", func: () => undefined }, + }, + }); + const params = Parameters.ExtractGeneric<{ limit?: number }>(ctx, meta, { + limit: Parameters.FromSearch.int, + }); + expect(params.limit).to.equal(9); + }); +}); + +describe("Query.GetModel", () => { + it("answers 500 for a controller whose model field holds no model", () => { + const keyed = new DataAPIMeta(Object).setModelKey("model"); + let status: number | undefined; + try { + Query.GetModel({}, keyed); + } catch (error) { + status = error instanceof HTTPResult ? error.getStatus() : undefined; + } + expect(status).to.equal(500); + }); +}); diff --git a/src/tests/components/filter_options.test.ts b/src/tests/components/filter_options.test.ts index 8669004..3a20d2d 100644 --- a/src/tests/components/filter_options.test.ts +++ b/src/tests/components/filter_options.test.ts @@ -21,9 +21,9 @@ function context( function extract(ctx: RequestContext) { return Parameters.ExtractGeneric(ctx, meta, { filters: Parameters.ExtractFilters, - limit: "int", - offset: "int", - sortKey: "string", + limit: Parameters.FromSearch.int, + offset: Parameters.FromSearch.int, + sortKey: Parameters.FromSearch.string, }); } diff --git a/src/tests/components/foreign_computed.test.ts b/src/tests/components/foreign_computed.test.ts index 0e64bb2..2ce40c9 100644 --- a/src/tests/components/foreign_computed.test.ts +++ b/src/tests/components/foreign_computed.test.ts @@ -110,7 +110,7 @@ async function _createDataController(testName: string) { @Listable() @Access(AccessMode.ReadWrite) @Filter((_context, proxy, _key, value, mode) => - proxy[mode](parseFloat(value)), + mode === "ge" ? proxy.ge(parseFloat(value)) : proxy.lt(parseFloat(value)), ) declare age: number; @@ -122,7 +122,10 @@ async function _createDataController(testName: string) { @Listable() @Computed( (row, db) => - db.table(memberTableName).getAll(row.key("team"), "team").count(), + db + .table(memberTableName) + .getAll(row.key("team").cast(), "team") + .count(), { default: 0 }, ) declare teammates: number; diff --git a/src/tests/integration.test.ts b/src/tests/integration.test.ts index f8e7ad3..33c3832 100644 --- a/src/tests/integration.test.ts +++ b/src/tests/integration.test.ts @@ -104,6 +104,15 @@ async function expectCustomerWorkflow() { expect(listResponse.status).to.equal(200); const listData = await readJson<{ results: Customer[] }>(listResponse); expect(listData.results).to.have.length(2); + + const [ascending, unknownDirection] = await Promise.all( + ["asc", "sideways"].map((sortDirection) => + listRequest("customers", { sortKey: "registrationDate", sortDirection }), + ), + ); + expect(await readJson(unknownDirection)).to.deep.equal( + await readJson(ascending), + ); } async function expectProductWorkflow() { From 4352b2cfed6bf751c25c1e0c08625ade8fea9fe5 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sat, 31 Oct 2026 21:48:42 +0100 Subject: [PATCH 08/36] build(deps): prove interface-data-api against the decorators' row forms (#69) * build(deps): pin interface-api 0.2.0 and interface-api-util 0.3.0 tarballs * feat(data-api)!: type the filter, computed, option and controller contracts Filter modes are text: FilterValue[1] is a string, so a request's mode and a custom filter's own mode no longer need a cast. ComputedExpression reads ValueProxy. FilterFunction's row defaults to FieldValues. GetOptionOverrides reads a typed dataAPIEntry slot. ExtractGeneric takes typed ParameterExtractor functions (Parameters.FromSearch) instead of converter names. DataControllerCallback gains a result type R. Query and Validation take the controller instance and RowFields instead of any. BREAKING CHANGE: FilterValue[1] is string. ExtractGeneric takes extractors, not names. Query.ReadProperties answers RowFields. Query.GetModel answers a model typed by RowFields and throws a 500 for a field that holds no model. DataAPIMeta.modelKey and modifierKeys hold strings: a symbol-named @ModelReference or @ModifierKey declares nothing. * fix(data-api): accept any class in the DataAPIMeta constructor * build(deps): prove interface-data-api against the decorators' row forms `toPlainData` now names the row it gives instead of an open dictionary, so the foreign pluck, which builds a row by column name, holds its own `RowFields`. * build(deps): re-point interface-data-api at the decorators integration tarball --- .campaign/tgz/SHA256SUMS | 2 +- ...js-interface-database-decorators-9dc0781.tgz | Bin 95677 -> 0 bytes ...js-interface-database-decorators-fcb0a29.tgz | Bin 0 -> 97336 bytes README.md | 2 +- package.json | 4 ++-- pnpm-lock.yaml | 12 ++++++------ pnpm-workspace.yaml | 2 +- src/internal/validation.ts | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) delete mode 100644 .campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz create mode 100644 .campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index b152740..b6c5397 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,4 +1,4 @@ fd14fed7cac973b290c4c6d64172b598142623ab52b56b0c49923c44f58246ce antelopejs-interface-api-f206be7.tgz 2979fd8db286fa4e7fc399e0e9b13372b8f72ff91d85f89a12db75ebe9e4190d antelopejs-interface-api-util-cc740f8.tgz b622e0659f1b0cd8a1a6455061b85e6e7e5a2a6fdbbab1add9cc576b65e7bda5 antelopejs-interface-database-6bef278.tgz -272998659a764e7ca9ad3d9f91be493132cf5e2f7107709079522a0c7afde66a antelopejs-interface-database-decorators-9dc0781.tgz +f99fcfc215ca50eb09931237dd7c53bcc17b5ac5e1fff06cff1d21505fd4ee4b antelopejs-interface-database-decorators-fcb0a29.tgz diff --git a/.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz b/.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz deleted file mode 100644 index cdcbac355823d4e33e641171b780f69d98943b9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95677 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 diff --git a/.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz b/.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f597d9b06cad9ef9d3ca62a533ea531bb3b8d0e5 GIT binary patch literal 97336 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 b|65L4>Hk-0l~!q$o@V-gs?xJ*0162Jmy`<6 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index a081f0f..04623fd 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ The package declares these `@antelopejs/*` peer dependencies: | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz` | -| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz` | +| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz` | diff --git a/package.json b/package.json index b9cb4af..91dab21 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", "@antelopejs/interface-core": "^0.2.4", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz", - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz", + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz", "@antelopejs/tooling-configs": "^0.2.17", "@types/chai": "^4.3.20", "@types/mocha": "^10.0.10", @@ -108,7 +108,7 @@ "pnpm": { "overrides": { "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz", - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz", + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz", "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index daab7ea..2e46baa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,7 @@ settings: overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz - '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz + '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz @@ -24,8 +24,8 @@ importers: specifier: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz version: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database-decorators': - specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)) + specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz + version: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)) devDependencies: '@antelopejs/core': specifier: ^1.16.0 @@ -108,8 +108,8 @@ packages: '@antelopejs/interface-core@0.2.4': resolution: {integrity: sha512-2qF6/KwahCQvvNuC/piUvPWD4wq2Npmco941HMg2/bMBoJKbhMH16WcXXRvPYznNSkU0U+6vqK6KE+2N5NojSA==} - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz': - resolution: {integrity: sha512-oeVw+VOWfyqTYgN2uiYX66GBInculqpjPnegiJoE4KVg8uNsPcD9dJChc2T8LWSdb4gIJaYxsDcUOFEmw6VE8Q==, tarball: file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz} + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz': + resolution: {integrity: sha512-We30gHUprK8OMccecBNp4MH81KNLa4MnXqwWCbLw6VPR1qwjER6nqhsV9unwEoBauxgtFXtVSSXX2HHhPk2vOg==, tarball: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz} version: 0.2.0 peerDependencies: '@antelopejs/interface-api': '>=0.0.15 <1.0.0' @@ -2830,7 +2830,7 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4))': dependencies: '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index cf9231b..7557cf3 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,5 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz" - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-9dc0781.tgz" + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz" "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz" "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" diff --git a/src/internal/validation.ts b/src/internal/validation.ts index 304409e..8e3e1a7 100644 --- a/src/internal/validation.ts +++ b/src/internal/validation.ts @@ -135,7 +135,7 @@ export function ClearInternal( return null; } } - const plainPlucked: ReturnType = {}; + const plainPlucked: RowFields = {}; for (const key of foreign[4]) { const value: unknown = plain[key]; plainPlucked[key] = value; From e070488fb0ed3cec5d991327a298706db1185740 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 00:42:31 +0100 Subject: [PATCH 09/36] fix(data-api): refuse a written row holding a value no database stores (#71) * test(data-api): refuse a written row whose setter writes a bigint A field setter can assign a value no database stores, and the `new` and `edit` routes hand it to the provider as is: on mongodb the write answers 200 and the bigint is stored as a number. These tests expect the routes to refuse such a row with a 500 and write nothing. * fix(data-api): refuse a written row holding a value no database stores interface-database now types written documents as `WriteDocument`s, and the `new` and `edit` routes write a `RowFields` row whose values are `unknown`: the stored row, the class defaults, the body and what the field setters assign. `writtenRow` checks the row before `insert` and `update`, by its own enumerable values all the way down, and throws a `TypeError` naming the first field that holds a bigint, a symbol or a function. A row the providers store as given passes with the same identity and prototype. The pin moves interface-database to the write-value tarball dca4c73. --- .campaign/tgz/SHA256SUMS | 2 +- .../antelopejs-interface-database-6bef278.tgz | Bin 117250 -> 0 bytes .../antelopejs-interface-database-dca4c73.tgz | Bin 0 -> 118209 bytes README.md | 2 +- package.json | 4 +- pnpm-lock.yaml | 18 +-- pnpm-workspace.yaml | 2 +- src/index.ts | 19 +++- src/internal/guards.ts | 35 +++++- src/tests/components/written_row.test.ts | 103 ++++++++++++++++++ 10 files changed, 168 insertions(+), 17 deletions(-) delete mode 100644 .campaign/tgz/antelopejs-interface-database-6bef278.tgz create mode 100644 .campaign/tgz/antelopejs-interface-database-dca4c73.tgz create mode 100644 src/tests/components/written_row.test.ts diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index b6c5397..2b7b872 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,4 +1,4 @@ fd14fed7cac973b290c4c6d64172b598142623ab52b56b0c49923c44f58246ce antelopejs-interface-api-f206be7.tgz 2979fd8db286fa4e7fc399e0e9b13372b8f72ff91d85f89a12db75ebe9e4190d antelopejs-interface-api-util-cc740f8.tgz -b622e0659f1b0cd8a1a6455061b85e6e7e5a2a6fdbbab1add9cc576b65e7bda5 antelopejs-interface-database-6bef278.tgz +a342fe24a334069ceea57718f8e8b545d2b325f6834adb7f42774816fd95bfa6 antelopejs-interface-database-dca4c73.tgz f99fcfc215ca50eb09931237dd7c53bcc17b5ac5e1fff06cff1d21505fd4ee4b antelopejs-interface-database-decorators-fcb0a29.tgz diff --git a/.campaign/tgz/antelopejs-interface-database-6bef278.tgz b/.campaign/tgz/antelopejs-interface-database-6bef278.tgz deleted file mode 100644 index 560d7eefbdd96cfc0d28745ce6ed25e44e48de12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117250 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 diff --git a/.campaign/tgz/antelopejs-interface-database-dca4c73.tgz b/.campaign/tgz/antelopejs-interface-database-dca4c73.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7d0d6944eecdeeba617a305532efddd74ad92154 GIT binary patch literal 118209 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⪙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 G2n+y!D$VBr literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 04623fd..ceb2550 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ The package declares these `@antelopejs/*` peer dependencies: | `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz` | | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | -| `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz` | +| `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz` | | `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz` | diff --git a/package.json b/package.json index 91dab21..d1f0ab9 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", "@antelopejs/interface-core": "^0.2.4", - "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz", + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz", "@antelopejs/tooling-configs": "^0.2.17", "@types/chai": "^4.3.20", @@ -107,7 +107,7 @@ "packageManager": "pnpm@10.33.0", "pnpm": { "overrides": { - "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz", + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz", "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e46baa..52cb8b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz + '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz @@ -21,11 +21,11 @@ importers: specifier: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database': - specifier: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz - version: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4) + specifier: file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz + version: file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database-decorators': specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)) + version: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4)) devDependencies: '@antelopejs/core': specifier: ^1.16.0 @@ -116,8 +116,8 @@ packages: '@antelopejs/interface-core': '>=0.2.4 <1.0.0' '@antelopejs/interface-database': '>=0.1.11 <1.0.0' - '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz': - resolution: {integrity: sha512-iFR2hP69eGn4xlxYiOXOhbuvirLgXQ25LJk0/sP84VJ4xPgxfrwX6YEfrVbhvpUjWLlnWXly+om5qKgU1CQZ6Q==, tarball: file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz} + '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz': + resolution: {integrity: sha512-63KL4cISVDAJ1Riq7SJtEbaRT2/OiFbdvOv+6vv4a8UDHkZVKlnzrC80irRJJBb0mkcBoC5QZGrAIEalh+z6Fw==, tarball: file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz} version: 0.3.0 peerDependencies: '@antelopejs/interface-core': '>=0.2.4 <1.0.0' @@ -2830,15 +2830,15 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4))': dependencies: '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 - '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4) randomstring: 1.3.1 reflect-metadata: 0.2.2 - '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4)': dependencies: '@antelopejs/interface-core': 0.2.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 7557cf3..ba2b088 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,5 @@ overrides: - "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-6bef278.tgz" + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz" "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz" "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz" "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" diff --git a/src/index.ts b/src/index.ts index 4d5eef8..b4142fe 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,7 +21,10 @@ import { Route, } from "@antelopejs/interface-api"; +import type { WriteDocument } from "@antelopejs/interface-database/common"; + import { Parameters, Query, Validation } from "./components"; +import { isWriteDocument, isWriteValue } from "./internal/guards"; import { prototypeOf } from "./internal/prototypes"; import { DataAPIMeta, @@ -127,6 +130,18 @@ export const RegisterDataController = } }; +/** The row a route writes, refused before the write when a field holds a value no database stores. */ +function writtenRow(row: RowFields): WriteDocument { + if (isWriteDocument(row)) { + return row; + } + const [field] = + Object.entries(row).find(([, value]) => !isWriteValue(value)) ?? []; + throw new TypeError( + `Field '${field}' holds a bigint, a symbol or a function, which no database stores`, + ); +} + export namespace DefaultRoutes { /** Receives the loaded, unlocked model before readable fields are selected. Throw to deny the read. */ export type GetGuard = ( @@ -271,7 +286,7 @@ export namespace DefaultRoutes { const model = Query.GetModel(this, meta); triggerEvent(dbData, "insert"); - const [id] = await model.table.insert(dbData); + const [id] = await model.table.insert(writtenRow(dbData)); const created = await readRow(this, meta, { params: { id } }); return { _id: id, ...created }; @@ -306,7 +321,7 @@ export namespace DefaultRoutes { Validation.Lock(this, meta, dbData); triggerEvent(dbData, "update"); - await model.table.get(params.id).update(dbData); + await model.table.get(params.id).update(writtenRow(dbData)); return readRow(this, meta, { params: { id: params.id, index: params.index }, diff --git a/src/internal/guards.ts b/src/internal/guards.ts index b3a4b26..d236515 100644 --- a/src/internal/guards.ts +++ b/src/internal/guards.ts @@ -1,8 +1,12 @@ /** @internal @packageDocumentation */ import type { Class } from "@antelopejs/interface-core/decorators"; +import type { + WriteDocument, + WriteValue, +} from "@antelopejs/interface-database/common"; -import type { FieldValue, FieldValues } from "./field-types"; +import type { FieldValue, FieldValues, RowFields } from "./field-types"; /** Whether a value is a string. */ export function isString(value: unknown): value is string { @@ -81,3 +85,32 @@ export function isFieldValues(value: unknown): value is FieldValues { !(value instanceof Date) ); } + +/** The `typeof` answers of the primitives a {@link WriteValue} may be. */ +const STORED_PRIMITIVES = new Set(["string", "number", "boolean", "undefined"]); + +/** + * Whether a value is a {@link WriteValue}: `null`, text, a number, a boolean, + * `undefined`, or an object whose own enumerable values are write values, all + * the way down. A `bigint`, a `symbol` or a function anywhere fails. An object + * is read by its own values whatever its prototype, as the type reads it, and + * an object met again, as in a cycle, is read once. + */ +export function isWriteValue(value: unknown): value is WriteValue { + const seen = new Set(); + const pending: unknown[] = [value]; + while (pending.length > 0) { + const current = pending.pop(); + if (current === null || STORED_PRIMITIVES.has(typeof current)) continue; + if (!isObject(current)) return false; + if (seen.has(current)) continue; + seen.add(current); + for (const member of Object.values(current)) pending.push(member); + } + return true; +} + +/** Whether every own field of a row holds a {@link WriteValue}. */ +export function isWriteDocument(row: RowFields): row is WriteDocument { + return Object.values(row).every(isWriteValue); +} diff --git a/src/tests/components/written_row.test.ts b/src/tests/components/written_row.test.ts new file mode 100644 index 0000000..3ee6822 --- /dev/null +++ b/src/tests/components/written_row.test.ts @@ -0,0 +1,103 @@ +import path from "node:path"; +import { expect } from "chai"; +import { Controller } from "@antelopejs/interface-api"; +import { Schema } from "@antelopejs/interface-database"; +import { + DataController, + DefaultRoutes, + RegisterDataController, +} from "../../index"; +import { Access, AccessMode, ModelReference } from "../../metadata"; +import { + BasicDataModel, + Field, + Model, + RegisterSchema, + RegisterTable, + Table, +} from "@antelopejs/interface-database-decorators"; + +import { editRequest, getFunctionName, newRequest } from "../utils"; + +const currentTestName = path + .basename(__filename) + .replace(/\.test\.(ts|js)$/, ""); +const counterTableName = `counters-${currentTestName}`; +const schemaName = "default"; +const counterName = "visits"; + +@RegisterTable(counterTableName, schemaName) +class Counter extends Table { + declare _id: string; + + @Field("string") + declare name: string; + + @Field("number") + declare count: bigint; +} +class CounterModel extends BasicDataModel(Counter, counterTableName) {} + +describe("Written row", () => { + it("refuses a new row whose setter writes a bigint, and writes nothing", async () => + await expectRefusesNewBigint()); + it("refuses an edit whose setter writes a bigint, and keeps the row", async () => + await expectRefusesEditedBigint()); +}); + +function counters() { + const schema = Schema.get(schemaName); + if (!schema) { + throw new Error(`Schema '${schemaName}' is not registered`); + } + return schema.instance().table(counterTableName); +} + +async function _createDataController(testName: string) { + @RegisterDataController() + class _WrittenRowTestAPI extends DataController( + Counter, + { new: DefaultRoutes.New, edit: DefaultRoutes.Edit }, + Controller(`/${testName}`), + ) { + @ModelReference() + @Model(CounterModel) + declare counterModel: CounterModel; + + declare _id: string; + + @Access(AccessMode.ReadWrite) + declare name: string; + + @Access(AccessMode.WriteOnly) + set count(value: number) { + this.table.count = BigInt(value); + } + } + await RegisterSchema(schemaName); + await counters().delete(); +} + +async function expectRefusesNewBigint() { + await _createDataController(getFunctionName()); + + const response = await newRequest(getFunctionName(), { + name: counterName, + count: 2, + }); + + expect(response.status).to.equal(500); + expect(await counters().count()).to.equal(0); +} + +async function expectRefusesEditedBigint() { + await _createDataController(getFunctionName()); + const [id] = await counters().insert({ name: counterName }); + + const response = await editRequest(getFunctionName(), { count: 3 }, { id }); + + expect(response.status).to.equal(500); + const stored: unknown = await counters().get(id); + expect(stored).to.include({ name: counterName }); + expect(stored).to.not.have.property("count"); +} From 85740093183bf72a832d9926154d55ddf7364ed7 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 04:41:12 +0100 Subject: [PATCH 10/36] refactor(data-api): register data routes with their controller class (#73) * build(deps): pin interface-api to its 0.3.0 tarball * refactor(data-api): register data routes with their controller class RouteHandler.controller is required from interface-api 0.3.0. proto stays for the implementations that still read it. --- .campaign/tgz/SHA256SUMS | 2 +- .../tgz/antelopejs-interface-api-11c035a.tgz | Bin 0 -> 69840 bytes .../tgz/antelopejs-interface-api-f206be7.tgz | Bin 68619 -> 0 bytes .campaign/tgz/ranges.tsv | 2 +- README.md | 2 +- package.json | 4 +-- pnpm-lock.yaml | 26 +++++++++--------- pnpm-workspace.yaml | 2 +- src/index.ts | 1 + 9 files changed, 20 insertions(+), 19 deletions(-) create mode 100644 .campaign/tgz/antelopejs-interface-api-11c035a.tgz delete mode 100644 .campaign/tgz/antelopejs-interface-api-f206be7.tgz diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index 2b7b872..96a0e21 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,4 +1,4 @@ -fd14fed7cac973b290c4c6d64172b598142623ab52b56b0c49923c44f58246ce antelopejs-interface-api-f206be7.tgz +3f8b1edb3ebf6ae239361e20d862512a89f737553bd9ac2c9c76be95bcfb786b antelopejs-interface-api-11c035a.tgz 2979fd8db286fa4e7fc399e0e9b13372b8f72ff91d85f89a12db75ebe9e4190d antelopejs-interface-api-util-cc740f8.tgz a342fe24a334069ceea57718f8e8b545d2b325f6834adb7f42774816fd95bfa6 antelopejs-interface-database-dca4c73.tgz f99fcfc215ca50eb09931237dd7c53bcc17b5ac5e1fff06cff1d21505fd4ee4b antelopejs-interface-database-decorators-fcb0a29.tgz diff --git a/.campaign/tgz/antelopejs-interface-api-11c035a.tgz b/.campaign/tgz/antelopejs-interface-api-11c035a.tgz new file mode 100644 index 0000000000000000000000000000000000000000..4ee3270ac3b730b0702779be613ff0cd1b3a6e6f GIT binary patch literal 69840 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

a%svxm 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Ä?jb7; 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

~oQ=xej9+pIyzKbcXW5V!2QTR@Hs`+k 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 z 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 JNnHTk1pwv7W3d1L diff --git a/.campaign/tgz/ranges.tsv b/.campaign/tgz/ranges.tsv index e8abcb6..546618c 100644 --- a/.campaign/tgz/ranges.tsv +++ b/.campaign/tgz/ranges.tsv @@ -4,7 +4,7 @@ @antelopejs/interface-database-decorators package.json devDependencies ^0.1.10 @antelopejs/interface-database-decorators package.json pnpm.overrides @antelopejs/interface-database-decorators pnpm-workspace.yaml overrides -@antelopejs/interface-api package.json devDependencies ^0.0.15 +@antelopejs/interface-api package.json devDependencies ^0.3.0 @antelopejs/interface-api package.json pnpm.overrides @antelopejs/interface-api pnpm-workspace.yaml overrides @antelopejs/interface-api-util package.json devDependencies ^0.1.3 diff --git a/README.md b/README.md index ceb2550..18db570 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ The package declares these `@antelopejs/*` peer dependencies: | Package | Supported | Tested with | | ------------------------------------------- | ----------------- | ------------------------------------------------------------------------- | -| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz` | +| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz` | | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz` | diff --git a/package.json b/package.json index d1f0ab9..847afcd 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ }, "devDependencies": { "@antelopejs/core": "^1.16.0", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", "@antelopejs/interface-core": "^0.2.4", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz", @@ -109,7 +109,7 @@ "overrides": { "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" } }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 52cb8b3..589db79 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz importers: @@ -15,17 +15,17 @@ importers: .: dependencies: '@antelopejs/interface-api': - specifier: file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz - version: file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4) + specifier: file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz + version: file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-api-util': specifier: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz - version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4) + version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database': specifier: file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz version: file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database-decorators': specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4)) + version: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4)) devDependencies: '@antelopejs/core': specifier: ^1.16.0 @@ -99,9 +99,9 @@ packages: '@antelopejs/interface-api': '>=0.0.15 <1.0.0' '@antelopejs/interface-core': '>=0.2.4 <1.0.0' - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz': - resolution: {integrity: sha512-9RIXeQznFoyTCwdQ8WunN/FQfcMJ2ILJoONRg9NUFhhG1LYCi0sfL+5ttaQediUXxmJGBsdv3jjssu9aikR/fg==, tarball: file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz} - version: 0.2.0 + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz': + resolution: {integrity: sha512-MDf6UAyZsDzr/0RARujamNM03VfURAkSetdZ7k/+H480oTexK6MG1uSLyIrc7emGNRaSb9I93I/uAW8vNLyExA==, tarball: file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz} + version: 0.3.0 peerDependencies: '@antelopejs/interface-core': '>=0.2.4 <1.0.0' @@ -2817,12 +2817,12 @@ snapshots: semver: 7.7.4 typescript: 5.9.3 - '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4)': dependencies: '@antelopejs/interface-core': 0.2.4 @@ -2830,9 +2830,9 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4))': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4) randomstring: 1.3.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ba2b088..7a5f1b5 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,5 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz" "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz" - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f206be7.tgz" + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz" "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" diff --git a/src/index.ts b/src/index.ts index b4142fe..fa16d30 100644 --- a/src/index.ts +++ b/src/index.ts @@ -118,6 +118,7 @@ export const RegisterDataController = mode: "prefix", parameters: [{ provider: (ctx) => ctx, modifiers: [] }], properties: meta.computed_props, + controller: target, proto: prototypeOf(target), }); Route("handler", entry.callback.method, entry.endpoint)( From e070b68cdfcf05c444020c0e96029c7e710a043d Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 09:27:21 +0100 Subject: [PATCH 11/36] feat(data-api)!: type the default of a computed field as a field value (#74) * build(deps): pin interface-database to the query value tarball * feat(data-api)!: type the default of a computed field as a field value The default merged over a computed value went to `default()` as `unknown`. interface-database now records its operands as query values, so the default is a `FieldValue`, which is one. BREAKING CHANGE: `ComputedOptions.default` is a `FieldValue` instead of `unknown`: a `bigint`, a `symbol`, a function or an unlisted object no longer compiles as a default. * build(deps): pin interface-database to the structural operand tarball * build(deps): pin interface-database to the IsQueryValue tarball * build(deps): pin interface-database to the type-only tarball --- .campaign/tgz/SHA256SUMS | 2 +- .../antelopejs-interface-database-724ff72.tgz | Bin 0 -> 120608 bytes .../antelopejs-interface-database-dca4c73.tgz | Bin 118209 -> 0 bytes README.md | 2 +- package.json | 4 ++-- pnpm-lock.yaml | 18 +++++++++--------- pnpm-workspace.yaml | 2 +- src/internal/field-types.ts | 2 +- 8 files changed, 15 insertions(+), 15 deletions(-) create mode 100644 .campaign/tgz/antelopejs-interface-database-724ff72.tgz delete mode 100644 .campaign/tgz/antelopejs-interface-database-dca4c73.tgz diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index 96a0e21..cf65fc2 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,4 +1,4 @@ 3f8b1edb3ebf6ae239361e20d862512a89f737553bd9ac2c9c76be95bcfb786b antelopejs-interface-api-11c035a.tgz 2979fd8db286fa4e7fc399e0e9b13372b8f72ff91d85f89a12db75ebe9e4190d antelopejs-interface-api-util-cc740f8.tgz -a342fe24a334069ceea57718f8e8b545d2b325f6834adb7f42774816fd95bfa6 antelopejs-interface-database-dca4c73.tgz +ccdc833729f50825d3567047a22bf9c68f47a38ca3527117756fbd80f380fabd antelopejs-interface-database-724ff72.tgz f99fcfc215ca50eb09931237dd7c53bcc17b5ac5e1fff06cff1d21505fd4ee4b antelopejs-interface-database-decorators-fcb0a29.tgz diff --git a/.campaign/tgz/antelopejs-interface-database-724ff72.tgz b/.campaign/tgz/antelopejs-interface-database-724ff72.tgz new file mode 100644 index 0000000000000000000000000000000000000000..48dfe0ad0ab34a265f5db31017344a4534d30c7f GIT binary patch literal 120608 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⪙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

kg5`R!_HN5 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 N{U4)9LVf^73;;^l2nqlI literal 0 HcmV?d00001 diff --git a/.campaign/tgz/antelopejs-interface-database-dca4c73.tgz b/.campaign/tgz/antelopejs-interface-database-dca4c73.tgz deleted file mode 100644 index 7d0d6944eecdeeba617a305532efddd74ad92154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118209 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⪙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 G2n+y!D$VBr diff --git a/README.md b/README.md index 18db570..8bf5f2f 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ The package declares these `@antelopejs/*` peer dependencies: | `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz` | | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | -| `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz` | +| `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz` | | `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz` | diff --git a/package.json b/package.json index 847afcd..493d50a 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", "@antelopejs/interface-core": "^0.2.4", - "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz", + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz", "@antelopejs/tooling-configs": "^0.2.17", "@types/chai": "^4.3.20", @@ -107,7 +107,7 @@ "packageManager": "pnpm@10.33.0", "pnpm": { "overrides": { - "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz", + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz", "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 589db79..0682d05 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz + '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz @@ -21,11 +21,11 @@ importers: specifier: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database': - specifier: file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz - version: file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4) + specifier: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz + version: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database-decorators': specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4)) + version: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4)) devDependencies: '@antelopejs/core': specifier: ^1.16.0 @@ -116,8 +116,8 @@ packages: '@antelopejs/interface-core': '>=0.2.4 <1.0.0' '@antelopejs/interface-database': '>=0.1.11 <1.0.0' - '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz': - resolution: {integrity: sha512-63KL4cISVDAJ1Riq7SJtEbaRT2/OiFbdvOv+6vv4a8UDHkZVKlnzrC80irRJJBb0mkcBoC5QZGrAIEalh+z6Fw==, tarball: file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz} + '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz': + resolution: {integrity: sha512-rn+0+nTMBje0Wo4Ysg5/HGm/gqreLSyMkuXrsKF+2kAxrNx+5WEzmJHqy3CwJ1SOZr65lb3Yhb/M3CrmXCVYqQ==, tarball: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz} version: 0.3.0 peerDependencies: '@antelopejs/interface-core': '>=0.2.4 <1.0.0' @@ -2830,15 +2830,15 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4))': dependencies: '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 - '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4) randomstring: 1.3.1 reflect-metadata: 0.2.2 - '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4)': dependencies: '@antelopejs/interface-core': 0.2.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 7a5f1b5..5a86f31 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,5 @@ overrides: - "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-dca4c73.tgz" + "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz" "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz" "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz" "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" diff --git a/src/internal/field-types.ts b/src/internal/field-types.ts index a69fc5a..a36e721 100644 --- a/src/internal/field-types.ts +++ b/src/internal/field-types.ts @@ -202,7 +202,7 @@ export interface ComputedOptions { * Fallback merged over the computed value when the expression yields null * (ex: `0` for an aggregate count over an empty set). */ - default?: unknown; + default?: FieldValue; } /** From 2748287fae5dc32d801e522577817da470306cb4 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 10:55:34 +0100 Subject: [PATCH 12/36] build(deps): re-pin interface-database-decorators to the post-#70 tarball (#75) --- .campaign/tgz/SHA256SUMS | 2 +- ...js-interface-database-decorators-e79a62b.tgz | Bin 0 -> 97396 bytes ...js-interface-database-decorators-fcb0a29.tgz | Bin 97336 -> 0 bytes README.md | 2 +- package.json | 4 ++-- pnpm-lock.yaml | 12 ++++++------ pnpm-workspace.yaml | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 .campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz delete mode 100644 .campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index cf65fc2..a36be14 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,4 +1,4 @@ 3f8b1edb3ebf6ae239361e20d862512a89f737553bd9ac2c9c76be95bcfb786b antelopejs-interface-api-11c035a.tgz 2979fd8db286fa4e7fc399e0e9b13372b8f72ff91d85f89a12db75ebe9e4190d antelopejs-interface-api-util-cc740f8.tgz ccdc833729f50825d3567047a22bf9c68f47a38ca3527117756fbd80f380fabd antelopejs-interface-database-724ff72.tgz -f99fcfc215ca50eb09931237dd7c53bcc17b5ac5e1fff06cff1d21505fd4ee4b antelopejs-interface-database-decorators-fcb0a29.tgz +89d427c5fcc3c7b3c3818df1a95f686b871e571d4134a571f0ac2be84c601631 antelopejs-interface-database-decorators-e79a62b.tgz diff --git a/.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz b/.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz new file mode 100644 index 0000000000000000000000000000000000000000..356509567b1794c261c9d4ade28bf0ba5a540891 GIT binary patch literal 97396 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

rmqUSLgIlZvU6@0@MFKCjam5-YWm^ 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 b|65L4>Hk-0l~!q$o@V-gs?xJ*0162Jmy`<6 diff --git a/README.md b/README.md index 8bf5f2f..ec241d2 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ The package declares these `@antelopejs/*` peer dependencies: | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz` | -| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz` | +| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz` | diff --git a/package.json b/package.json index 493d50a..e129eb2 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", "@antelopejs/interface-core": "^0.2.4", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz", + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz", "@antelopejs/tooling-configs": "^0.2.17", "@types/chai": "^4.3.20", "@types/mocha": "^10.0.10", @@ -108,7 +108,7 @@ "pnpm": { "overrides": { "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz", + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz", "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0682d05..34c3d58 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,7 @@ settings: overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz - '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz + '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz @@ -24,8 +24,8 @@ importers: specifier: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz version: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-database-decorators': - specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4)) + specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz + version: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4)) devDependencies: '@antelopejs/core': specifier: ^1.16.0 @@ -108,8 +108,8 @@ packages: '@antelopejs/interface-core@0.2.4': resolution: {integrity: sha512-2qF6/KwahCQvvNuC/piUvPWD4wq2Npmco941HMg2/bMBoJKbhMH16WcXXRvPYznNSkU0U+6vqK6KE+2N5NojSA==} - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz': - resolution: {integrity: sha512-We30gHUprK8OMccecBNp4MH81KNLa4MnXqwWCbLw6VPR1qwjER6nqhsV9unwEoBauxgtFXtVSSXX2HHhPk2vOg==, tarball: file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz} + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz': + resolution: {integrity: sha512-IO3ovOrBj5yWA39lNFqgr8+oJhjy8bzBTbgFvx369afjGO2J1i3J0+riEbZZzQ5fTx1qYV5gYuyx+BdoQBf+BQ==, tarball: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz} version: 0.2.0 peerDependencies: '@antelopejs/interface-api': '>=0.0.15 <1.0.0' @@ -2830,7 +2830,7 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4))': dependencies: '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4) '@antelopejs/interface-core': 0.2.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5a86f31..b720fe5 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,5 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz" - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-fcb0a29.tgz" + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz" "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz" "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" From 26c36e9c1b847cce1d07701d8a4fddc59770c473 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 11:25:54 +0100 Subject: [PATCH 13/36] feat(data-api)!: type a data route's parameters by the tuple its args inject (#76) `DataControllerCallback` and `DataControllerCallbackWithOptions` take a third parameter, the tuple `func` receives (one element per `args` entry). The default routes declare theirs, `WithGetGuard` answers a route typed like `Get`, and `WithOptions` keeps the tuple of the route it wraps. Without `A`, a route keeps today's open parameters. BREAKING CHANGE: `DefaultRoutes.Get`, `List`, `New`, `Edit` and `Delete` are typed `DataControllerCallback`, so calling their `func` with other arguments no longer compiles. --- docs/3.routes.md | 34 ++++++++++++++++++++++ skills/data-api-interface/SKILL.md | 4 +++ src/index.ts | 46 +++++++++++++++++++++++------- src/internal/controller-types.ts | 28 ++++++++++++------ 4 files changed, 93 insertions(+), 19 deletions(-) diff --git a/docs/3.routes.md b/docs/3.routes.md index 3593648..62607aa 100644 --- a/docs/3.routes.md +++ b/docs/3.routes.md @@ -394,6 +394,40 @@ class UserAPI extends DataController( The `args` array contains parameter decorators that extract values from the request context. Each decorator corresponds to a parameter in the `func` callback, in order. +`DataControllerCallback` states that pairing: `A` is the tuple of what `func` receives, and `args` holds one decorator per element of `A`. The default routes declare theirs (`DefaultRoutes.Get` takes `[RequestContext, Parameters.GetParameters]`, `DefaultRoutes.New` and `Edit` add the `Validation.WrittenBody`), so a route wrapping one can be generic over the tuple and call `route.func.call(this, ...)` with typed arguments. Without `A`, the parameters are not known and not checked: that is the type a `DataControllerDef` holds. + +```ts docs-check +import type { RequestContext } from "@antelopejs/interface-api"; +import { + type DataControllerCallback, + type DataControllerInstance, + DefaultRoutes, +} from "@antelopejs/interface-data-api"; +import type { Parameters } from "@antelopejs/interface-data-api/components"; + +function withLoggedId( + route: DataControllerCallback< + O, + R, + [RequestContext, Parameters.GetParameters, ...Rest] + >, +): DataControllerCallback< + O, + R, + [RequestContext, Parameters.GetParameters, ...Rest] +> { + return { + ...route, + func: function (this: DataControllerInstance, ctx, params, ...rest) { + console.log(params.id); + return route.func.call(this, ctx, params, ...rest); + }, + }; +} + +const loggedGet = withLoggedId(DefaultRoutes.Get); +``` + ## Error Handling Default routes return standard HTTP error responses: diff --git a/skills/data-api-interface/SKILL.md b/skills/data-api-interface/SKILL.md index 377fedf..3547f53 100644 --- a/skills/data-api-interface/SKILL.md +++ b/skills/data-api-interface/SKILL.md @@ -136,6 +136,10 @@ This exposes `GET /tasks/get?id=`, `GET /tasks/list`, `POST /tasks/new`, `PUT /t - A custom list route reads its page with `Query.ListPage(db, meta, query, options)` (`offset`, `limit`, `filters`, `sortKey`, `pluck`, `noForeign`, `deferredJoined`): joined, then computed, then foreign, then pluck. +- A route is `DataControllerCallback`: `A` is the tuple `func` receives, one element per + `args` entry. The default routes declare theirs (`Get` takes `[RequestContext, GetParameters]`), so a + wrapper generic over `[RequestContext, P, ...Rest]` calls `route.func.call(this, ctx, params, ...rest)` + typed; without `A` its parameters are not checked. - `new` answers the created row as `get` reads it, with its `_id`; `edit` answers the stored row after the update. Both accept a body already parsed (`Validation.WrittenBody`), so a wrapping route can amend it before the write. diff --git a/src/index.ts b/src/index.ts index fa16d30..64905a3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -350,7 +350,11 @@ export namespace DefaultRoutes { Object.defineProperty(editRow, "name", { value: "edit" }); Object.defineProperty(deleteRows, "name", { value: "delete" }); - export const Get = { + export const Get: DataControllerCallback< + Parameters.GetParameters, + RowFields, + [RequestContext, Parameters.GetParameters] + > = { func: getRow, args: [Context(), Parameters.Get()], method: "get", @@ -365,16 +369,24 @@ export namespace DefaultRoutes { */ export function WithGetGuard( guard: GetGuard, - ): DataControllerCallback { + ): DataControllerCallback< + Parameters.GetParameters, + RowFields, + [RequestContext, Parameters.GetParameters] + > { return { ...Get, - func: function (ctx, params) { + func: function (this: DataControllerInstance, ctx, params) { return getRow.call(this, ctx, params, guard); }, }; } - export const List = { + export const List: DataControllerCallback< + Parameters.ListParameters, + Awaited>, + [RequestContext, Parameters.ListParameters] + > = { func: listRows, args: [Context(), Parameters.List()], method: "get", @@ -383,17 +395,29 @@ export namespace DefaultRoutes { * Answers the created row with its `_id`, even when `get` does not read * `_id`: the caller needs it to name the row it created. */ - export const New = { + export const New: DataControllerCallback< + Parameters.NewParameters, + Awaited>, + [RequestContext, Parameters.NewParameters, Validation.WrittenBody] + > = { func: newRow, args: [Context(), Parameters.New(), RawBody()], method: "post", }; - export const Edit = { + export const Edit: DataControllerCallback< + Parameters.EditParameters, + Awaited>, + [RequestContext, Parameters.EditParameters, Validation.WrittenBody] + > = { func: editRow, args: [Context(), Parameters.Edit(), RawBody()], method: "put", }; - export const Delete = { + export const Delete: DataControllerCallback< + Parameters.DeleteParameters, + Awaited>, + [RequestContext, Parameters.DeleteParameters] + > = { func: deleteRows, args: [Context(), Parameters.Delete()], method: "delete", @@ -407,13 +431,13 @@ export namespace DefaultRoutes { delete: Delete, } as const; - export function WithOptions( + export function WithOptions( callback: - | DataControllerCallback - | DataControllerCallbackWithOptions, + | DataControllerCallback + | DataControllerCallbackWithOptions, options?: Partial, endpoint?: string, - ): DataControllerCallbackWithOptions { + ): DataControllerCallbackWithOptions { if ("func" in callback) { return { endpoint, diff --git a/src/internal/controller-types.ts b/src/internal/controller-types.ts index 8749bbb..be4afbf 100644 --- a/src/internal/controller-types.ts +++ b/src/internal/controller-types.ts @@ -7,23 +7,35 @@ import type { ParameterDecorator } from "@antelopejs/interface-core/decorators"; export type DataControllerInstance = InstanceType; /** - * One route of a data controller. `args` decides what `func` receives, so its - * parameters stay open: the first is what `args[0]` injects, the request - * context on the stock routes. + * One route of a data controller. Entry `i` of `args` injects parameter `i` + * of `func`, so `A` lists what `func` receives, one element per entry; the + * stock routes take the request context first and their parameters second. + * Without `A`, the route is one whose parameters are not known, as a + * {@link DataControllerDef} holds it: its `func` takes `O` second and anything + * else, unchecked. * - * @typeParam O The options `func` receives in its second parameter + * @typeParam O The options the route receives in its second parameter * @typeParam R What `func` answers, resolved + * @typeParam A The parameters of `func`, one per entry of `args` */ -export type DataControllerCallback = { +export type DataControllerCallback< + O = any, + R = unknown, + A extends unknown[] = [ctx: any, opts: O, ...args: any[]], +> = { args: (ParameterDecorator | ParameterDecorator[])[]; method: string; - func: (ctx: any, opts: O, ...args: any[]) => R | Promise; + func: (...args: A) => R | Promise; }; -export type DataControllerCallbackWithOptions = { +export type DataControllerCallbackWithOptions< + O = any, + R = unknown, + A extends unknown[] = [ctx: any, opts: O, ...args: any[]], +> = { endpoint?: string; options?: Partial; - callback: DataControllerCallback; + callback: DataControllerCallback; }; export type ExtractCallback = T extends DataControllerCallbackWithOptions From d7fa27557298bbb202acf74e0f0dd20bdcca8b45 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 15:35:53 +0100 Subject: [PATCH 14/36] test(data-api): read the exports of a second instance as unknown and guard them (#79) CreateOtherInstance returned module.exports, which Node types as any. The helper now reads it into unknown and checks it is an object or a function at the one place a module is required. --- src/tests/helpers/other-instance.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/tests/helpers/other-instance.ts b/src/tests/helpers/other-instance.ts index 2aeb127..177d9b8 100644 --- a/src/tests/helpers/other-instance.ts +++ b/src/tests/helpers/other-instance.ts @@ -2,7 +2,7 @@ import Module from "node:module"; import { realpathSync } from "node:fs"; import path from "node:path"; -import { isObject } from "../../internal/guards"; +import { isFunction, isObject } from "../../internal/guards"; class InternalModule extends Module { declare static _resolveFilename: (request: string, parent: Module) => string; @@ -26,10 +26,10 @@ export function CreateOtherInstance(folders: string[]): ModuleRequire { const owned = folders.map((folder) => realpathSync(folder) + path.sep); const modules = new Map(); - const load = (filename: string, parent: Module): Module["exports"] => { + const load = (filename: string, parent: Module): InternalModule => { const cached = modules.get(filename); if (cached) { - return cached.exports; + return cached; } const loaded = new InternalModule(filename, parent); loaded.filename = filename; @@ -37,15 +37,19 @@ export function CreateOtherInstance(folders: string[]): ModuleRequire { loaded.require = (request: string) => requireFrom(loaded, request); modules.set(filename, loaded); loaded.load(filename); - return loaded.exports; + return loaded; }; - const requireFrom = (parent: Module, request: string): Module["exports"] => { + const requireFrom = (parent: Module, request: string): object => { const filename = InternalModule._resolveFilename(request, parent); const isOwned = owned.some((root) => filename.startsWith(root)); - return isOwned - ? load(filename, parent) + const exported: unknown = isOwned + ? load(filename, parent).exports : Module.prototype.require.call(parent, request); + if (!isObject(exported) && !isFunction(exported)) { + throw new Error(`${request} exports neither an object nor a function`); + } + return exported; }; return (request: string) => requireFrom(module, request); From 3e63a947e6d78ae45a6b5644674190d9c3af3963 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 15:57:41 +0100 Subject: [PATCH 15/36] test(data-api): type ParseBody fixtures and mark off-contract bodies (#78) * test(data-api): build ParseBody fixtures typed and mark off-contract bodies Bodies a JSON request cannot send are built as typed literals instead of Object.create(null) results, so no any reaches an assignment. Each call that feeds one to ParseBody carries a @ts-expect-error naming the off-contract input and the 400 asserted; the suppression budget rises from 0 to 5 for them. * test(data-api): type the nested ParseBody fixture so its directive names the function --- guardrails.suppressions.json | 2 +- src/tests/components/parse_body.test.ts | 37 +++++++++++++------------ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/guardrails.suppressions.json b/guardrails.suppressions.json index 47b5e35..eef79b1 100644 --- a/guardrails.suppressions.json +++ b/guardrails.suppressions.json @@ -1,6 +1,6 @@ { "rules": {}, - "tsExpectError": 0, + "tsExpectError": 5, "tsIgnore": 0, "safety": 4, "config": {} diff --git a/src/tests/components/parse_body.test.ts b/src/tests/components/parse_body.test.ts index 2c72b57..cebd88d 100644 --- a/src/tests/components/parse_body.test.ts +++ b/src/tests/components/parse_body.test.ts @@ -50,10 +50,13 @@ describe("Validation.ParseBody", () => { ]); }); it("refuses a body nested deeper than the call stack allows that ends in a function", () => { - const deepest = Object.create(null); - deepest.run = () => 1; - let nested: FieldValues = deepest; - for (let level = 0; level < 50000; level++) nested = { next: nested }; + const deepest = { __proto__: null, run: () => 1 }; + type Link = { next: Link | typeof deepest }; + const nested = Array.from({ length: 50000 }).reduce( + (inner) => ({ next: inner }), + deepest, + ); + // @ts-expect-error a function deep in the body is off-contract input, and the body is refused with 400 expect(statusOfRefusal(nested)).to.equal(400); }); it("accepts a body without a prototype", () => { @@ -61,20 +64,20 @@ describe("Validation.ParseBody", () => { expect(Validation.ParseBody(bare)).to.equal(bare); }); it("refuses a parsed body holding what JSON cannot", () => { - const withFunction = Object.create(null); - withFunction.run = () => 1; - const withInstance = Object.create(null); - withInstance.price = new Money(); - const withBigInt = Object.create(null); - withBigInt.count = 1n; - const withUndefined = Object.create(null); - withUndefined.list = [1, undefined]; + const withFunction = { __proto__: null, run: () => 1 }; + const withInstance = { __proto__: null, price: new Money() }; + const withBigInt = { __proto__: null, count: 1n }; + const withUndefined = { __proto__: null, list: [1, undefined] }; const cyclic: FieldValues = {}; cyclic.self = cyclic; - expect( - [withFunction, withInstance, withBigInt, withUndefined, cyclic].map( - statusOfRefusal, - ), - ).to.eql([400, 400, 400, 400, 400]); + // @ts-expect-error a function value is off-contract input, and the body is refused with 400 + expect(statusOfRefusal(withFunction)).to.equal(400); + // @ts-expect-error a class instance value is off-contract input, and the body is refused with 400 + expect(statusOfRefusal(withInstance)).to.equal(400); + // @ts-expect-error a bigint value is off-contract input, and the body is refused with 400 + expect(statusOfRefusal(withBigInt)).to.equal(400); + // @ts-expect-error an undefined array item is off-contract input, and the body is refused with 400 + expect(statusOfRefusal(withUndefined)).to.equal(400); + expect(statusOfRefusal(cyclic)).to.equal(400); }); }); From 2d14b76ed5a2ea2c1d655ec58bafbca0b88cb03a Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 17:43:48 +0100 Subject: [PATCH 16/36] refactor(interface-data-api): register data routes with their controller only (#77) * build(deps): pin interface-api to the controller-only tarball (9b197e1) * refactor(interface-data-api): register data routes with their controller only * test(harness): serve the suite with the controller-only api tarball Registry @antelopejs/api reads RouteHandler.proto, which interface-api 0.3.0 no longer has, so the suite loads api from AntelopeJS/api refactor/api-controller-only (fb0bc81). That api needs @antelopejs/core 1.17 and interface-core 0.2.6 or later, so the dev floors rise to match. * build(deps): hold the dev core at 1.17 so one interface-core copy resolves * build(deps): pin interface-api (fc8048d) and api (6afe3e2) tarballs that refuse a handler without a controller --- .campaign/tgz/SHA256SUMS | 3 +- .campaign/tgz/antelopejs-api-6afe3e2.tgz | Bin 0 -> 75271 bytes .../tgz/antelopejs-interface-api-11c035a.tgz | Bin 69840 -> 0 bytes .../tgz/antelopejs-interface-api-fc8048d.tgz | Bin 0 -> 69657 bytes .campaign/tgz/ranges.tsv | 5 + README.md | 4 +- package.json | 13 ++- pnpm-lock.yaml | 101 ++++++++++++------ pnpm-workspace.yaml | 4 +- src/antelope.test.ts | 6 +- src/index.ts | 2 - 11 files changed, 92 insertions(+), 46 deletions(-) create mode 100644 .campaign/tgz/antelopejs-api-6afe3e2.tgz delete mode 100644 .campaign/tgz/antelopejs-interface-api-11c035a.tgz create mode 100644 .campaign/tgz/antelopejs-interface-api-fc8048d.tgz diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index a36be14..aaaf348 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,4 +1,5 @@ -3f8b1edb3ebf6ae239361e20d862512a89f737553bd9ac2c9c76be95bcfb786b antelopejs-interface-api-11c035a.tgz +abdbff87d78af3f605b465b1104c9a57fa859fbc14d8bb9ba396a49869269d99 antelopejs-api-6afe3e2.tgz +69dacfe96a95282169c2407bb8a44f84c013d937d5d3d438f63e708dba8d49bd antelopejs-interface-api-fc8048d.tgz 2979fd8db286fa4e7fc399e0e9b13372b8f72ff91d85f89a12db75ebe9e4190d antelopejs-interface-api-util-cc740f8.tgz ccdc833729f50825d3567047a22bf9c68f47a38ca3527117756fbd80f380fabd antelopejs-interface-database-724ff72.tgz 89d427c5fcc3c7b3c3818df1a95f686b871e571d4134a571f0ac2be84c601631 antelopejs-interface-database-decorators-e79a62b.tgz diff --git a/.campaign/tgz/antelopejs-api-6afe3e2.tgz b/.campaign/tgz/antelopejs-api-6afe3e2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..92ea1064cb6405c017bddcba690550c3f4e65e68 GIT binary patch literal 75271 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

a%svxm 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 H0PF<-eKOS5 literal 0 HcmV?d00001 diff --git a/.campaign/tgz/ranges.tsv b/.campaign/tgz/ranges.tsv index 546618c..264756c 100644 --- a/.campaign/tgz/ranges.tsv +++ b/.campaign/tgz/ranges.tsv @@ -10,3 +10,8 @@ @antelopejs/interface-api-util package.json devDependencies ^0.1.3 @antelopejs/interface-api-util package.json pnpm.overrides @antelopejs/interface-api-util pnpm-workspace.yaml overrides +@antelopejs/api package.json devDependencies +@antelopejs/api package.json pnpm.overrides +@antelopejs/api pnpm-workspace.yaml overrides +@antelopejs/api>@antelopejs/interface-core package.json pnpm.overrides +@antelopejs/api>@antelopejs/interface-core pnpm-workspace.yaml overrides diff --git a/README.md b/README.md index ec241d2..97ea64a 100644 --- a/README.md +++ b/README.md @@ -125,9 +125,9 @@ The package declares these `@antelopejs/*` peer dependencies: | Package | Supported | Tested with | | ------------------------------------------- | ----------------- | ------------------------------------------------------------------------- | -| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz` | +| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz` | | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | -| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` | +| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.7` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz` | | `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz` | diff --git a/package.json b/package.json index e129eb2..fd20121 100644 --- a/package.json +++ b/package.json @@ -73,10 +73,11 @@ "suppressions:update": "antelopejs-suppressions --update" }, "devDependencies": { - "@antelopejs/core": "^1.16.0", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz", + "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", + "@antelopejs/core": "~1.17.0", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", - "@antelopejs/interface-core": "^0.2.4", + "@antelopejs/interface-core": "^0.2.6", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz", "@antelopejs/tooling-configs": "^0.2.17", @@ -109,8 +110,10 @@ "overrides": { "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz", - "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz", + "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", + "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", + "@antelopejs/api>@antelopejs/interface-core": "0.2.7" } }, "antelopeJs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34c3d58..c4d6743 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,32 +7,37 @@ settings: overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz + '@antelopejs/api': file:.campaign/tgz/antelopejs-api-6afe3e2.tgz + '@antelopejs/api>@antelopejs/interface-core': 0.2.7 importers: .: dependencies: '@antelopejs/interface-api': - specifier: file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz - version: file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4) + specifier: file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz + version: file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-api-util': specifier: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz - version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4) + version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-database': specifier: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz - version: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4) + version: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-database-decorators': specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4)) + version: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7)) devDependencies: + '@antelopejs/api': + specifier: file:.campaign/tgz/antelopejs-api-6afe3e2.tgz + version: file:.campaign/tgz/antelopejs-api-6afe3e2.tgz(@antelopejs/core@1.17.1) '@antelopejs/core': - specifier: ^1.16.0 - version: 1.16.0 + specifier: ~1.17.0 + version: 1.17.1 '@antelopejs/interface-core': - specifier: ^0.2.4 - version: 0.2.4 + specifier: ^0.2.6 + version: 0.2.7 '@antelopejs/tooling-configs': specifier: ^0.2.17 version: 0.2.17(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001)) @@ -87,8 +92,17 @@ importers: packages: - '@antelopejs/core@1.16.0': - resolution: {integrity: sha512-dj1R8xPgLzkTksfenPNh3kX1fffRnWktielk1yad/4/1wTEMhkPSx1WQ/4QI98d95L6Th0EMGTV/U4o84p/2yw==} + '@antelopejs/api@file:.campaign/tgz/antelopejs-api-6afe3e2.tgz': + resolution: {integrity: sha512-M+L2u8CwdSJb/U/yCCqk/XXx3RmuNmYlUV//U3Z41w/05DrT79iIFViUBZhuy3gKrTOiEZVbJ5DVA0XEq1I4Ug==, tarball: file:.campaign/tgz/antelopejs-api-6afe3e2.tgz} + version: 1.6.0 + peerDependencies: + '@antelopejs/core': '>=1.17.0 <2' + peerDependenciesMeta: + '@antelopejs/core': + optional: true + + '@antelopejs/core@1.17.1': + resolution: {integrity: sha512-gul38oMJuiaLl5MEwinRbM6d08uPI2wqCmDDrI5V+VilcxJA025VF1l1CqNta3xQfszvRr/jt4RzOgUlhKJi/g==} engines: {node: '>=20.19'} hasBin: true @@ -99,14 +113,14 @@ packages: '@antelopejs/interface-api': '>=0.0.15 <1.0.0' '@antelopejs/interface-core': '>=0.2.4 <1.0.0' - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz': - resolution: {integrity: sha512-MDf6UAyZsDzr/0RARujamNM03VfURAkSetdZ7k/+H480oTexK6MG1uSLyIrc7emGNRaSb9I93I/uAW8vNLyExA==, tarball: file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz} + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz': + resolution: {integrity: sha512-ZdIbk0p06jBVvFZQZ8IvVg5Pg4QVXhEqsgWJbMGoau/dwtuNp/+G6fh9ILeRRrH8QtXhguj7XufnXhqmFG677Q==, tarball: file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz} version: 0.3.0 peerDependencies: '@antelopejs/interface-core': '>=0.2.4 <1.0.0' - '@antelopejs/interface-core@0.2.4': - resolution: {integrity: sha512-2qF6/KwahCQvvNuC/piUvPWD4wq2Npmco941HMg2/bMBoJKbhMH16WcXXRvPYznNSkU0U+6vqK6KE+2N5NojSA==} + '@antelopejs/interface-core@0.2.7': + resolution: {integrity: sha512-2zWWTxSMutyqVbnr/xfGtjgIcx2x4zLZk6wOQkXDgX+i0DVPw6DOE/nsUHGP4uGrVAYg6b1z4oLdTV1NMAyZjA==} '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz': resolution: {integrity: sha512-IO3ovOrBj5yWA39lNFqgr8+oJhjy8bzBTbgFvx369afjGO2J1i3J0+riEbZZzQ5fTx1qYV5gYuyx+BdoQBf+BQ==, tarball: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz} @@ -2741,6 +2755,18 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.22.1: + resolution: {integrity: sha512-oyL6OPYme/CmiFvNuGzeoxCJ4nOrZE2O1FwM9MWM1AsGri6nLXB2pg+lNA8aLeXMSav0J6eIVS1j6vUPzUtK9g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + wsl-utils@0.1.0: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} @@ -2802,9 +2828,22 @@ packages: snapshots: - '@antelopejs/core@1.16.0': + '@antelopejs/api@file:.campaign/tgz/antelopejs-api-6afe3e2.tgz(@antelopejs/core@1.17.1)': + dependencies: + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-core': 0.2.7 + reflect-metadata: 0.2.2 + ws: 8.22.1 + optionalDependencies: + '@antelopejs/core': 1.17.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@antelopejs/core@1.17.1': dependencies: - '@antelopejs/interface-core': 0.2.4 + '@antelopejs/interface-core': 0.2.7 '@clack/prompts': 1.8.1 '@types/proper-lockfile': 4.1.4 commander: 13.1.0 @@ -2817,30 +2856,30 @@ snapshots: semver: 7.7.4 typescript: 5.9.3 - '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4) - '@antelopejs/interface-core': 0.2.4 + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-core': 0.2.7 - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7)': dependencies: - '@antelopejs/interface-core': 0.2.4 + '@antelopejs/interface-core': 0.2.7 - '@antelopejs/interface-core@0.2.4': + '@antelopejs/interface-core@0.2.7': dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4))(@antelopejs/interface-core@0.2.4)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7))': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz(@antelopejs/interface-core@0.2.4) - '@antelopejs/interface-core': 0.2.4 - '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-core': 0.2.7 + '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7) randomstring: 1.3.1 reflect-metadata: 0.2.2 - '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.4)': + '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7)': dependencies: - '@antelopejs/interface-core': 0.2.4 + '@antelopejs/interface-core': 0.2.7 '@antelopejs/tooling-configs@0.2.17(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001))': dependencies: @@ -5356,6 +5395,8 @@ snapshots: wrappy@1.0.2: {} + ws@8.22.1: {} + wsl-utils@0.1.0: dependencies: is-wsl: 3.1.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b720fe5..0f32fa5 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,7 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz" "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz" - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-11c035a.tgz" + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz" "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" + "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz" + "@antelopejs/api>@antelopejs/interface-core": "0.2.7" diff --git a/src/antelope.test.ts b/src/antelope.test.ts index c867503..1afdc88 100644 --- a/src/antelope.test.ts +++ b/src/antelope.test.ts @@ -22,11 +22,7 @@ export default defineConfig({ }, }, api: { - source: { - type: "package", - package: "@antelopejs/api", - version: "1.3.0", - }, + source: { type: "local", path: "node_modules/@antelopejs/api" }, config: { publicBaseUrl: "http://127.0.0.1:5010", servers: [{ protocol: "http", host: "127.0.0.1", port: 5010 }], diff --git a/src/index.ts b/src/index.ts index 64905a3..7567fbe 100644 --- a/src/index.ts +++ b/src/index.ts @@ -25,7 +25,6 @@ import type { WriteDocument } from "@antelopejs/interface-database/common"; import { Parameters, Query, Validation } from "./components"; import { isWriteDocument, isWriteValue } from "./internal/guards"; -import { prototypeOf } from "./internal/prototypes"; import { DataAPIMeta, type DataControllerCallback, @@ -119,7 +118,6 @@ export const RegisterDataController = parameters: [{ provider: (ctx) => ctx, modifiers: [] }], properties: meta.computed_props, controller: target, - proto: prototypeOf(target), }); Route("handler", entry.callback.method, entry.endpoint)( target.prototype, From d5c10f09d32d781d8f49a204c70b35aecf4ec0f6 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 19:19:26 +0100 Subject: [PATCH 17/36] fix(interface-data-api)!: require interface-api 0.3.0 or newer (#80) interface-data-api registers its routes by controller only. An interface-api older than 0.3.0 accepts that handler without checking it, and the api then answers every request with a 500. The peer range now refuses the mix at install. --- README.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 97ea64a..5adba85 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ The package declares these `@antelopejs/*` peer dependencies: | Package | Supported | Tested with | | ------------------------------------------- | ----------------- | ------------------------------------------------------------------------- | -| `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz` | +| `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz` | | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.7` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz` | diff --git a/package.json b/package.json index fd20121..e5d9e71 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ "typescript": "^5.9.3" }, "peerDependencies": { - "@antelopejs/interface-api": ">=0.0.15 <1.0.0", + "@antelopejs/interface-api": ">=0.3.0 <1.0.0", "@antelopejs/interface-api-util": ">=0.1.3 <1.0.0", "@antelopejs/interface-core": ">=0.2.4 <1.0.0", "@antelopejs/interface-database": ">=0.1.10 <1.0.0", From 8823b07832f3d2a338777696fd892775b5b8646a Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 20:41:40 +0100 Subject: [PATCH 18/36] build(deps): pin interface-api to the f2a99b5 tarball (#81) --- .campaign/tgz/SHA256SUMS | 2 +- .../tgz/antelopejs-interface-api-f2a99b5.tgz | Bin 0 -> 70298 bytes .../tgz/antelopejs-interface-api-fc8048d.tgz | Bin 69657 -> 0 bytes README.md | 2 +- package.json | 4 +-- pnpm-lock.yaml | 28 +++++++++--------- pnpm-workspace.yaml | 2 +- 7 files changed, 19 insertions(+), 19 deletions(-) create mode 100644 .campaign/tgz/antelopejs-interface-api-f2a99b5.tgz delete mode 100644 .campaign/tgz/antelopejs-interface-api-fc8048d.tgz diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index aaaf348..4f4f114 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,5 +1,5 @@ abdbff87d78af3f605b465b1104c9a57fa859fbc14d8bb9ba396a49869269d99 antelopejs-api-6afe3e2.tgz -69dacfe96a95282169c2407bb8a44f84c013d937d5d3d438f63e708dba8d49bd antelopejs-interface-api-fc8048d.tgz +633ab682a1ede2ac315ace5ccbbb1d7ff130c6315267c6061a45d1949a0282cb antelopejs-interface-api-f2a99b5.tgz 2979fd8db286fa4e7fc399e0e9b13372b8f72ff91d85f89a12db75ebe9e4190d antelopejs-interface-api-util-cc740f8.tgz ccdc833729f50825d3567047a22bf9c68f47a38ca3527117756fbd80f380fabd antelopejs-interface-database-724ff72.tgz 89d427c5fcc3c7b3c3818df1a95f686b871e571d4134a571f0ac2be84c601631 antelopejs-interface-database-decorators-e79a62b.tgz diff --git a/.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz b/.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f7e4ad6ef08e394332e2458bbe4a628c1e17d2c7 GIT binary patch literal 70298 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Å?lCJ3?cmFyIz5;X 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

Ju8ct> z*DU{6FTbNysO0-Q5Rd9RI{RH3$~3DWm8iBT)dxKe7pk(W_pA_z^Fd+Ol%_^$>0}CR ztkMv4+;c7EIyxe1wOUXl-u!`)WbZNjtI|5&2K1T?R82*j=N)#NuIwNj|LAdDC4I;6 zNn9SlY8U15T;?+E`TnXV4XC?%S>Au7lt7ir1GVBN#$#vIjA}^U2a5WEH90C?_O)ZI z7rplxbsDKkLC1a7;8E6}44F?f*O6)|pbhSeO;q|1fm+IhN&(0HqC_Rb%N1|dH+eg^&WJOb)2HZ%_%70j&>|ha5jIQ3b0d; z63~?@*J7ELd4haH;sP8NOs89Jyw@%9CZD9zer=IrT!TYHQO4E@3FY-O1pmdo-efcx zVhAMkwO1pOON`kt!&8}>0Mrc~@iHFkwPkmQ?S&1Waw!X&J-ViYD*itQXrM$YEq1v8 zO}rj9#fs4+ml;jNNchs?BF>4_>_YE-ykQhAaSF&0dl?siy+g-XFazvzT?O@)=u0^k zy=*)Uc8neIttPT{)acYqGawD{rjC}-h^Bg2WMT|MUAWT##^73HsiFPSS9&Oo$!U2n z7-g4|mmxSYQGDx&nKLFjG`1kS;RGMTRA_)_%nGt4z@KOuwD(0bZ)99>q>gbeFOzJ- zTaKE}7FQ%1DP;VKC;TWp-Eb$irnIIq`6mB$Ue@N5t;|jwPLtv#ek0((D+#Zw6CHL_ ze~vSu7}1Z1Db2lEUra`$IG@g+{VkgDx#Xr154c5>#<7glxv5tH&j#Jlkt}1t?=^AG z_p&jE9$IF)<2KD>K|1)q>yrKFNqb`YYk6Dqz!BA9pjR?ns1D=|X#{(s~2U-Rz& zJNF*=_y3)Tcky3u=jXcgR{Vb|m%qTH1^t55ULa!k9>@4aAT8p(PNgjHEE!J~4Q7t# zge}Y{##dTz*SlB}F>+Z@B0i@%WTS7TSLeTT8FjW?plhMC>i8MH0B7Z^LVST(E*N|H znplNwAUt3dq26G7%?Wuua|?B(=qP-28Ri}C=y&G0W_5?XkK;)b6w-C~(~*Su2Y}gK zB@np)_;~pk?`zn9;)w$VIm)Kf@`71`$z2(+K{+%CL=cMe1(E>g{eS=G|B6@~zC00Q zum}TyjD#ZD0h~C zn39lJv6(Z7jVdz`g-vk)Blae2(&xE){EUGpu9ROH)cW~lrV7n4i`ZL|zOn#4=P}%^U92`-^=rdtiv!jo*%XNu(y$i8+6nXfW z?8R23Fq%@DIyWIYV+-4)yMC=uV%5~`sQS6cK}`=?u$vd3)|A>2un+eQk*j*~$hkrJHX3+Cn|e)&^s=T%sO>1uhf`uqge3Nb781>Q{rXbodD54m zcU*TU$@L<`x%Jx*=hp1u+zJh6=re=QC&9<;pB;E}h;hG{?xt<-CRj(=dCi9`(<$4t zJ7s%Tr!3Uso!@?7cV>UXPW?I!eZd>x*NlfI{~L(WSKjz%)YRjA%dEC2@}nxEdcp5{ zF40GA$q$>+tfjt|YoGnOb`$LZbhM?jremc<^49!L-%ORy{$#6x))&*$d5f=F7_=qn z{q}R0E1L6ZR%`5UqsQ*Y{dbjw|Cqmk{7nzSOqD7DR)g`mF24 Y-NtwKyZhb!{@}m=595z0hXD2k05y&OD*ylh literal 0 HcmV?d00001 diff --git a/.campaign/tgz/antelopejs-interface-api-fc8048d.tgz b/.campaign/tgz/antelopejs-interface-api-fc8048d.tgz deleted file mode 100644 index ebd0fd5c3017045d5c58a8cfa65b75dac01fafb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69657 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 H0PF<-eKOS5 diff --git a/README.md b/README.md index 5adba85..cd50197 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ The package declares these `@antelopejs/*` peer dependencies: | Package | Supported | Tested with | | ------------------------------------------- | ----------------- | ------------------------------------------------------------------------- | -| `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz` | +| `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz` | | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.7` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz` | diff --git a/package.json b/package.json index e5d9e71..587a49d 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "devDependencies": { "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", "@antelopejs/core": "~1.17.0", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", "@antelopejs/interface-core": "^0.2.6", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", @@ -110,7 +110,7 @@ "overrides": { "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", "@antelopejs/api>@antelopejs/interface-core": "0.2.7" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c4d6743..abc6b59 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz '@antelopejs/api': file:.campaign/tgz/antelopejs-api-6afe3e2.tgz '@antelopejs/api>@antelopejs/interface-core': 0.2.7 @@ -17,17 +17,17 @@ importers: .: dependencies: '@antelopejs/interface-api': - specifier: file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz - version: file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7) + specifier: file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz + version: file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-api-util': specifier: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz - version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) + version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-database': specifier: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz version: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-database-decorators': specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7)) + version: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7)) devDependencies: '@antelopejs/api': specifier: file:.campaign/tgz/antelopejs-api-6afe3e2.tgz @@ -113,8 +113,8 @@ packages: '@antelopejs/interface-api': '>=0.0.15 <1.0.0' '@antelopejs/interface-core': '>=0.2.4 <1.0.0' - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz': - resolution: {integrity: sha512-ZdIbk0p06jBVvFZQZ8IvVg5Pg4QVXhEqsgWJbMGoau/dwtuNp/+G6fh9ILeRRrH8QtXhguj7XufnXhqmFG677Q==, tarball: file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz} + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz': + resolution: {integrity: sha512-pF423v3AMpaak5uLd/Q7TXoT+CXqxZXHQmSbEeik7eGfS+2Fsc2k1x/IR1gX4Hje8QuqLMZmkgT/eDyGXl/p2A==, tarball: file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz} version: 0.3.0 peerDependencies: '@antelopejs/interface-core': '>=0.2.4 <1.0.0' @@ -2830,8 +2830,8 @@ snapshots: '@antelopejs/api@file:.campaign/tgz/antelopejs-api-6afe3e2.tgz(@antelopejs/core@1.17.1)': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7) - '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-core': 0.2.7 reflect-metadata: 0.2.2 ws: 8.22.1 @@ -2856,12 +2856,12 @@ snapshots: semver: 7.7.4 typescript: 5.9.3 - '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)': + '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-core': 0.2.7 - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7)': + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7)': dependencies: '@antelopejs/interface-core': 0.2.7 @@ -2869,9 +2869,9 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7))': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-core': 0.2.7 '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7) randomstring: 1.3.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0f32fa5..b9faf79 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,7 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz" "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz" - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-fc8048d.tgz" + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz" "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz" "@antelopejs/api>@antelopejs/interface-core": "0.2.7" From 169448ee3409ff37e9dc2aa4a15de7e8268a64fc Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 22:33:22 +0100 Subject: [PATCH 19/36] chore(guardrails): lower ratchet ceilings to measured (#83) --- guardrails.ratchet.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/guardrails.ratchet.json b/guardrails.ratchet.json index bdabea6..34fa6fb 100644 --- a/guardrails.ratchet.json +++ b/guardrails.ratchet.json @@ -3,8 +3,7 @@ "rules": { "anti-slop/no-unsafe-dictionary-type": 1, "typescript/no-unsafe-argument": 12, - "typescript/no-unsafe-assignment": 6, - "typescript/no-unsafe-return": 4 + "typescript/no-unsafe-return": 2 }, "oversizeFiles": {} } From eccde4828e36934f7ff80987b9815a8524d6d2e8 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 1 Nov 2026 23:03:32 +0100 Subject: [PATCH 20/36] build(deps): re-pin interface-api-util 0.4.0 to 639f38b (#82) Pins @antelopejs/interface-api-util to antelopejs-interface-api-util-639f38b.tgz (interface-api-util#32, sha256 fa0a3cfa243d0c78cd29d45839ae61bbbce5615a7c8d8247755b0cd91c8bedc6), replacing cc740f8. Made with campaign/tools/use-tgz.sh only. --- .campaign/tgz/SHA256SUMS | 2 +- .../antelopejs-interface-api-util-639f38b.tgz | Bin 0 -> 24797 bytes .../antelopejs-interface-api-util-cc740f8.tgz | Bin 24320 -> 0 bytes README.md | 2 +- package.json | 4 ++-- pnpm-lock.yaml | 18 +++++++++--------- pnpm-workspace.yaml | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) create mode 100644 .campaign/tgz/antelopejs-interface-api-util-639f38b.tgz delete mode 100644 .campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index 4f4f114..18e144b 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,5 +1,5 @@ abdbff87d78af3f605b465b1104c9a57fa859fbc14d8bb9ba396a49869269d99 antelopejs-api-6afe3e2.tgz 633ab682a1ede2ac315ace5ccbbb1d7ff130c6315267c6061a45d1949a0282cb antelopejs-interface-api-f2a99b5.tgz -2979fd8db286fa4e7fc399e0e9b13372b8f72ff91d85f89a12db75ebe9e4190d antelopejs-interface-api-util-cc740f8.tgz +fa0a3cfa243d0c78cd29d45839ae61bbbce5615a7c8d8247755b0cd91c8bedc6 antelopejs-interface-api-util-639f38b.tgz ccdc833729f50825d3567047a22bf9c68f47a38ca3527117756fbd80f380fabd antelopejs-interface-database-724ff72.tgz 89d427c5fcc3c7b3c3818df1a95f686b871e571d4134a571f0ac2be84c601631 antelopejs-interface-database-decorators-e79a62b.tgz diff --git a/.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz b/.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b010ec8ef159842a9ea154fbe9483ec2d544de72 GIT binary patch literal 24797 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 diff --git a/README.md b/README.md index cd50197..dc9eb4f 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ The package declares these `@antelopejs/*` peer dependencies: | Package | Supported | Tested with | | ------------------------------------------- | ----------------- | ------------------------------------------------------------------------- | | `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz` | -| `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz` | +| `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.7` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz` | | `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz` | diff --git a/package.json b/package.json index 587a49d..51c98d9 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", "@antelopejs/core": "~1.17.0", "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz", - "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", + "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz", "@antelopejs/interface-core": "^0.2.6", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz", @@ -111,7 +111,7 @@ "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz", "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz", - "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz", + "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz", "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", "@antelopejs/api>@antelopejs/interface-core": "0.2.7" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index abc6b59..eec9085 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,7 +8,7 @@ overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz - '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz + '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz '@antelopejs/api': file:.campaign/tgz/antelopejs-api-6afe3e2.tgz '@antelopejs/api>@antelopejs/interface-core': 0.2.7 @@ -20,8 +20,8 @@ importers: specifier: file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz version: file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-api-util': - specifier: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz - version: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) + specifier: file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz + version: file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-database': specifier: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz version: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7) @@ -106,11 +106,11 @@ packages: engines: {node: '>=20.19'} hasBin: true - '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz': - resolution: {integrity: sha512-W1fXHAPI4PIrX6uLvcgTl7xDVvUXC1eMHHvaKqvmpuB83rBLqibVfjISHnkyJlcDU0KzgLGcrk53juq1z5dDtw==, tarball: file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz} - version: 0.3.0 + '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz': + resolution: {integrity: sha512-DeeQHOcG1qbfJdClcju3UDnWpVU8WUR//RKfUuX1BNylbiFXoEwqtUdaiqd15+97Shvrj1TVwr6+r6RLdQsTFw==, tarball: file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz} + version: 0.4.0 peerDependencies: - '@antelopejs/interface-api': '>=0.0.15 <1.0.0' + '@antelopejs/interface-api': '>=0.3.0 <1.0.0' '@antelopejs/interface-core': '>=0.2.4 <1.0.0' '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz': @@ -2831,7 +2831,7 @@ snapshots: '@antelopejs/api@file:.campaign/tgz/antelopejs-api-6afe3e2.tgz(@antelopejs/core@1.17.1)': dependencies: '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) - '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-core': 0.2.7 reflect-metadata: 0.2.2 ws: 8.22.1 @@ -2856,7 +2856,7 @@ snapshots: semver: 7.7.4 typescript: 5.9.3 - '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)': + '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)': dependencies: '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) '@antelopejs/interface-core': 0.2.7 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b9faf79..0fe766f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,6 +2,6 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz" "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz" "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz" - "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-cc740f8.tgz" + "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz" "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz" "@antelopejs/api>@antelopejs/interface-core": "0.2.7" From d20fad6beb999bccf49edc7113803b7a9eb9c002 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Mon, 2 Nov 2026 12:55:02 +0100 Subject: [PATCH 21/36] refactor(interface-data-api): build on interface-core 0.4's typed decorator targets (#84) * refactor(interface-data-api): build on interface-core 0.4's typed decorator targets The field decorators get a DecoratorTarget and read the decorated class through the isClass guard before they look up its DataAPIMeta. RegisterDataController hands the parameter and route decorators the class prototype read through prototypeOf, and builds the route location from the controller class, since ControllerMeta.location may now be undefined. Pins interface-core 6a8b526 (0.4.0), interface-api 2d1cc37, interface-database-decorators ca0851d and core 68d5ce0 (1.20.0), and drops the api-scoped interface-core 0.2.7 override so the tree holds one interface-core. * feat(interface-data-api): type the decorator Filter returns as a PropertyDecorator Filter returned a decorator whose target was the filter function's row type, while the factory it wraps takes a DecoratorTarget. It now returns that PropertyDecorator, so a data type that applies a filter to the target it was handed needs no stand-in row type. * build(deps): re-pin interface-database-decorators to the 1234214 tarball * fix(interface-data-api): make isClass test for a prototype object and prove the field refusal --- .campaign/tgz/SHA256SUMS | 6 +- .campaign/tgz/antelopejs-core-184eb90.tgz | Bin 0 -> 337658 bytes .../tgz/antelopejs-interface-api-015a93a.tgz | Bin 0 -> 70991 bytes .../tgz/antelopejs-interface-api-f2a99b5.tgz | Bin 70298 -> 0 bytes .../tgz/antelopejs-interface-core-f7df541.tgz | Bin 0 -> 89260 bytes ...-interface-database-decorators-1234214.tgz | Bin 0 -> 97619 bytes ...-interface-database-decorators-e79a62b.tgz | Bin 97396 -> 0 bytes .campaign/tgz/ranges.tsv | 8 +- README.md | 6 +- guardrails.ratchet.json | 1 - package.json | 15 +-- pnpm-lock.yaml | 91 +++++++++--------- pnpm-workspace.yaml | 7 +- src/index.ts | 26 +++-- src/internal/guards.ts | 9 +- src/metadata.ts | 13 ++- .../index/field_decorator_target.test.ts | 27 ++++++ 17 files changed, 126 insertions(+), 83 deletions(-) create mode 100644 .campaign/tgz/antelopejs-core-184eb90.tgz create mode 100644 .campaign/tgz/antelopejs-interface-api-015a93a.tgz delete mode 100644 .campaign/tgz/antelopejs-interface-api-f2a99b5.tgz create mode 100644 .campaign/tgz/antelopejs-interface-core-f7df541.tgz create mode 100644 .campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz delete mode 100644 .campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz create mode 100644 src/tests/index/field_decorator_target.test.ts diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index 18e144b..f78f4a2 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,5 +1,7 @@ abdbff87d78af3f605b465b1104c9a57fa859fbc14d8bb9ba396a49869269d99 antelopejs-api-6afe3e2.tgz -633ab682a1ede2ac315ace5ccbbb1d7ff130c6315267c6061a45d1949a0282cb antelopejs-interface-api-f2a99b5.tgz +0a51c9c2da58c2586bfa5095b1da92a7b74130acf1e64820bfd5f98eaa4200f9 antelopejs-core-184eb90.tgz +8e017528574748687b246df07affa6cbcfbe931cc6086fcb5dd2c7a28c1f0d8e antelopejs-interface-api-015a93a.tgz fa0a3cfa243d0c78cd29d45839ae61bbbce5615a7c8d8247755b0cd91c8bedc6 antelopejs-interface-api-util-639f38b.tgz +30391718e65481815db5b5bb10e7eabb1feac13165005ee46e54b592f3676c69 antelopejs-interface-core-f7df541.tgz ccdc833729f50825d3567047a22bf9c68f47a38ca3527117756fbd80f380fabd antelopejs-interface-database-724ff72.tgz -89d427c5fcc3c7b3c3818df1a95f686b871e571d4134a571f0ac2be84c601631 antelopejs-interface-database-decorators-e79a62b.tgz +5ed284901d3e226fd30ec1134c7fe2c44d5637a9c0f2bc198d0863c6b508ae62 antelopejs-interface-database-decorators-1234214.tgz diff --git a/.campaign/tgz/antelopejs-core-184eb90.tgz b/.campaign/tgz/antelopejs-core-184eb90.tgz new file mode 100644 index 0000000000000000000000000000000000000000..de90b081ce1923b71baf6e9be2cc04259aeba340 GIT binary patch literal 337658 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%0A?1+caWY!=nm$GwA%8RK$gWj?L~ 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 z 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 Q3+JAF;*%CFMM% z>S5>LsZHrK z{3bk2OD^|tkkItdEnc!#ZLCTMIgCoKlXNub0G^jDf zIPH#yXPnnk<1DvyFVgA>CaSysDOl#h6VWzG%dMJafUwm&dc!N*zvs z0&{d757GqW8ggmy;`?yBmAJ{9)X~7JqWngK+WmI2sz`m=qwI6h zts1Z)J}A~LtMS*(2a94%AFMDXt~f(m3!(;0%ZisA5U> zQN*K5rxQ8HU^U}rbmDWsgXIztyfmAq;iJxkajUkxUcuL0Y_A$T7wz6-B0A9_ec|aQ+Bs9%&_oN zqunURUb8YR{*dPb7H8qK6QGX`Or+5;S7N$`*Q@K{h_I9dPD8CbHqV!AKVundWph5N zF{;Q`BZA9BKUZtBa_5vI1O#Lftx2)CwmFYZjIpQB2eF z0R^o&V9;L!Qy@qX6|~;$THN35pbi#O?ZQ`{`?E`oOrGC)St%Nj8h%$PxDWVQDe62R zR>{0pv2_l^OB z$F(WXD~i2o)*JP2lw(7)@U`eUT&g=MoLbtei%aw7-!;EIbGcg zR;lg&2{;?zSwi0f>p$l%S)kj_MGvUzzMBDYqy}A^b!XRYV$>#UUb&WZP{zukfhTH| zKb`8}H60^o4?}Lrj=X%hZA~B+;TVwC5-;qD2nTC}Ved#Z07sXGI$ok?N|=xtMy<6u z)Bl1Es|4fGfxsqT>}EI@HDDs%WwBkGAXO4yi#L*C*qA4QyX9r%!^jCZ9h*_%~a z0>WueF_v44FL<6;ev=mUa^`tuS+c0cEFK*24(7NVYWkVXv651EEoWsK!Ds=8m%#E! zh^)onD3yy)|N2hJgARHB?CoFjC_j7Wc%S=LNe1V-P7^kbl!rJ!Ymuz@zNRCzepuB# z;x$Eto`PY*a?dSAf9NYe9!$b^VOXySW#N%vG8!lmhApvlYAI;zedOwqT*ZmjK5 zXL%u+rem2YaH{cjBMOVvTFsD6bX9S2!74*j3RYQS3Apr!|I=E0@i2PL6Moo36NJ^Djaz{dOu=9OYD~6nEkR)7zn`f>6Rv2JP&CBJb#~)uqd+8I z7cv}-l6u(}l?-QmZ$95nxnGH zpnxx)-&y;7^5S&}#;2N9v#0*M`x2(Y%FRS0aS0YrNpY5(6@k*yH4Sw=CxaeH>OE& zYOmf0agqdSg@LpK<8)${CIJM*B(pgU^={6?1_;{US$_4r8>hkM)8HbJsp@^Kh;z$1 zC!X&m{YW_FYlNNQ*=g;)w-%v`l65HR5C7`o8^=pmX>j_TIQB8m_O$- zxMH`4j?pq%s#%i~Ge#4-OWM?(h`8X#oL0x`Cw7SN0L3_7rK%>!2(90A*m`O}M#y<8 zJm+-00EbwAfOvF4fHW~$0}^2?RL1rw(%{JS?;gh$;<7TsS>?$~MgC^z|1HK3%>Xqc z{`2zNH_NvF$GbPLpZq@_wkW(kI&yEaYnfh;TtLDL zxKWI0#7PV!+723BF51({@L+VBh=PW*lyzzHyo6m#(jYBW)<$?N#wBZmrI3*olEV*54MUC0X&c}}x8{U)uZJbrh+WV z*Q5OY=>A_-K43*$u`Q)hPeiNV@&aN?Pc7Hol&l($FontII7alU!0ABcO#*UBg|{PBRR?!k36uTLEbYn@+Q zq}j#X&Ujega>j$Sv{gBWJD#Zc;FzHX=&wA{xNRs!L}ka9Pkh$Zz*wWaEh{#3s_G(L zz4Ny%NISLJ>2(ec_6~y8K)vjnosa8B+lRfK^}qExzjk&Hd)r&x!_IE!pc||PKQ6!j z3&gk>nTO?oC#qSMaY02C40RIW3?A|WDnzX+Y-?$r6&WT~T|=@Qk5+CY$%6TqL3^g37c7aR&pBHP77@7A!8cQdC~X zwb&I=GzlosTCr>Sx!|U0l}0~L7|*bQm7V4h)Iduj^Uy{+dz(kwTA07J`|JAl*5>+Q zXOnL)bBYCnBjTSXXb4(?Iay)fIUO$^RTc?OEA52ws))A5zak}4fMF*v_ZxUe^79}D z+OaC~Tb4+!`vUG`9{c>gqzPd$gDb{HB~Xf4nq9O{74+}vN(qk!f`q9rl_HgE*Y^j0 zRQasnka4w0Qp7izK7DkbSSG_<(WKif5Zu%l$aK@Fg>^~6YI;8Up4+hWA4BftS${&O zzP(OE4YPAM@L#QI6wAxodUGUln?5{Ta(pER?4LrK2Z)e&!=jkL zzJh{u=D9rXjSHv$cEh>~7Q=>dVJ@<}jYm=XQac-6I$!(uy3j;J(`QbgYo{v=Or4rB zsV8o#K|h5XR&jY{LMIRi?zKGazl%c4d+Z8kJEL88cS}C`xaeJxUeC+8X2^*IEHRP}@Y1 zu44c?-9p*KeoMdW)?s(pMH?F|yEYf^TpABkE+&FlV_=Zp$}LBxvrwUc@^-1*O4*D9`F@~%tU+(+jxwyIdvV0*lSK&-bE^s%U)HjcR+x`JESx{fnW_$l|mxA*Hza(u*t} z7@sOu41tuQ-|)(jpXS5FT%eFd=n59{O#?$dDroTAgzDCOcnkAuRupN%_5XL1R&W-V zZ01^7f+cP$4h^}sUiUbed6TO9<@bDz{%(J>?|(=;T0Y1EV3z)W=g zBr|-mS4BnvRc`$KAEW7=Q-=xx%soLmIHjfHHHZ)9s3w zw~fO~7Rb5F4T1K@RdB{w7Rbp28}VQu{tBDHd0LcJ)R3X`>W%5Ecrz{$-L}KN{cLg4)P>e>L@O)xJzmj5MQa2?qyw@A!n3C3&AQ$ zgosWiw1*n*(T>a#;O6%w6u>A;{2J(rZ4ox*X|elB%LAd5uI&kT7FY6keb9s;Qf^&4 z5U1FR!P=V4N)nGV$XY5Mb*2UGAI6!!_c1%1|$=xJ=v?C{dm;+$c zkE{MA#xwOLbaMQ@)NJYGE!PM9I=?E?LZoN*0(5x`m35XYO?ScNLi+GD70{X))?-A# z$WI!7c12s14mU$6aNp1fKXvd+Go+VS%X3vVeIHxuI%;u22|4|CM!mKz*za}yWYo(Pv&Rt%)*+>6lHhF}bKo6`ULHs`!6tYHC{8s6a)2N+`!Md{2r zd%QM9U9jjfV2Gl~ShQ$dD&NM|^qS~=>DE56--}^dmf~)Za6kmgiWM%s@N5Cf1LDHb z_LjpNjyffIu;bGtQL4$bGPq#{d`#5+ZhkMZq${dO>;Z5PY zj&HUYcdf~C=jVXRU|qQi>wbbWcAgh3=*NQrcM(Q}G;1(VpHj)sbA-T-^*dfmNd~tY zlhtRfnjp3;u|w34N7cCCeztJYe@R){41FGjktEPMzT zh=g^{P!;y#fGU?|%baTDR%N~^ol&2@djm+^H5;rb(f$ti!~%BjE7|S!HoyHQCvS3& z0RQQf?*R$<#jCXng0JK8zm)8cPySPHTubzHo+s4ffaO*J%1a_DgnYyQ{B4!E)jUP3#{WILhMFADFq$GQX?X@>#{rq@i}72Vqyx7;!8X|^B@M> zfIkK;<6jg73GVhvp-DOrcPmF$iZE}?ouR-}TLTdt*<`iWvSL*ssTBipcV(B8|FU1& z1o9lUslM=}&^edk=-();EsdVeE~>>CAv+K0DvhKV^HEphA4yjU67een2#XxEtlN1G zLGA_CHT&dHX-E8LJrCmjWtHQUE^HKW(|x!1wGZvTe#fr>eGepLAojhQjK5o@aRZpx zT(!^L0sM$>QeS#8%ysd|H9n1NUV5&_U#RXZsbg1qVkBAmCxOQMeYJVUH zTqbQhFdF*l2jU*3ZfL;W+S%D@3CPY? zizBJtdpK2Nz-b9+fE!Spa(VycNRoxSS;Kl%(5)N1g}AvJA86%elm z>aYYiMKtqhA>j(ZliS%$O5u=>@M0aSRE+;6j!JD4AbC6fp#d{tz7=HKK}zI~M_N&= zUo4SbaXDl<9#Jt_QJ7GAuG+!O*&;}>y&vFo8q+k!jCf!pVaY?s19Vg!lLLM!-W~OlCfFAX-5oXA#B%(YEeR;V{Sfqk3Xa*~fO z+%2OPy+OS%2IC+X&$cJR#!jES@nzA0GwvA(*6XJ6hR^6D~DFxrQqI;A%BiAWKw0GD62{inadDPTStHi?3Y(DYT(1}(^jqrz@~ z(j%kz*tBt*LH^4-6T9}hyY;17QBKhkgUGy{+N#bZ%6S9g}J=YiSlf0^a~xjasg^_2|9-4GXO zukz}%_4_&rXVn82M9sLni(M|eZGcKt&;>b-z8-n5D#xz#D|VbeoX^-eLv}9dY|Vvf z4lF#x)UsKy8zuN=S2A3A)3Bv&fB~7_GOd%6)20VLhppVbt}VqX2xz<-+3nO2h^8LM zpF@C;2bzd~S--Io_sH*JbLD;R`#8nrQ1*=;)!n#di=(C#bVvzPT^fh!N~U?*rbqi_ zvm8|mKmzU8otDeJlsO|6I&~#(fe#1D|N33mDSA`3pV!c;ASvLwB6#9V*ew!5Eb+AF z|IVyA;^hV_CkI+L+Qz6Hg$)+lpvF*Y0|akhXR{0I?Is!ap-*Lu0dQ5{<}HRI;1k?5 zY?B=|j|U(12fTg0;r~!!2jo{{ISRFmZk)TVV`1%_WB;IFVDv|k8_BOl+8qn*Qv#}f z`w)yulEVUQ_ziLv{dKfqv7$ZJF3WM^e3-YK+Ot0ds`+MReyhvWbT|>NsUN=RI5!!n zLZ$l^$NQ5rJ5olqn-irb1KmGSJ30C#pMX7-~gKZavZy}_u#M&{)KM&6#o`GD4%glhokAe*;UW7am(E8%!7}nwI z|J6T10#g(XIBGioqu{(de4L!dpx2Y{T$!gWZ_gR@8(_CjHduQbx&tDE+`rbiwlv~? zZ`9i^11Zz-cTKZ^-Z&)whB$ziJ@n>6lg-@@P8wJc7+@vUFL*e9#7z5iBJ z^##afvO(_dv(euaqAz5Pi3X)K6;tzS+Fn-X>_R$%EvQYyj?<4+mpH$-S@(la^i1FO&0S)WS@<14gAAd0( zMno8;pvg93hod}?6R$v5DLQBF0j}^oCd=9xsC6p<=p5RFjRBFIT%n^d^ z{+d)1Snq!mAWRHYX|X&+cHI6htxbl;bdCJXh`mQL0iQ9TOq{H`%N%|Amd%16Cyr!3 zy4YWwP(l!*%&8|LMX4zQW}w#WS}}i=2v=M$oSN$kPP_*6G#Hl0FJ$Lr?wI9~kA9Q& zyi6O9qHwX7v01DH{mWQ1M@dC2a_X_=0OT;O;d%MJC2O#H*|NPQ77Zd2=1*L#XFkx= z`E&7AKxZ=Ch`(|SdeXOLO%d>&hnodg%f?7A6BvOs%tJ%s&-txhy_Dm0H%m&X$tIHK zV9zadb?sEHA)bEuPTCOIeIU9a>+GtiEO?`?}#p{%a zsc5P7`j5t)Gf+?W5Co}DKRHCn%I|2?#{G89QL6l#V5^~1HH&teGwMo+Fg(d0(4U^B zcm>^({_i9A*o$!|u z_`30oW&!R2SdP>4uO~x(dvJ|1IgiSDL(ponu08(CD2JQ>>>s{m-sUwu<330!TlfBe zlQb9*hPJlq$AAd zo+1$=8KZ8KWEqrc6SjdN2iu>=LR(DQe%ojCXXOF`gjT2-R0`owXZ5$tHB&1!5{Xqs zW+maw2QCzKuJ7(=Yuab(B{160w?h0q8f&ljW$^*%@rVF?arE900h*UZNYbHPSe=Up zS~^jO@>}?j#_RUup#lsK2Lq1=LXO2x?Jv1MHnX+pRn)+xr3W-94b2ZD4J@Jc|Dun& zx#ijB%E$$Dc0L8lZ;u}Z-}8#1T-Dm++FbcA1eKK3(eKGxLBj8FG8*@l#a!hPnxg+C zfbN#K&czWxH%=ixj(15g6Wg;2&{5WQ)})Az6qtQ;9+8l5@t{v;9* zGR2+HRAag0ma+6bt3Y+3QDl9p$DN!C!H({?o`~&nGP>>4KpKe^Kjqj`myneiBNV=p z$Ami5(D(UCpLc}jkX@yMDK-=ZCp7WPGt-n?n#W~z@%i?@myG4A4APsi2KF5;523G@ zE5e5}X~A<3TMaZx*@}Ngq;PsJlR}`Z)0W_>%c$o?gf|VHF$Sa@5bBkjlU}T(iO&<3 zly1-L6KXU>aOq~3gC=@vb^HyYpV{$_@1 z%|yxC$zT=s9eV(dq`WD>V(nizPlvQv^k9(_OeP-a-^b5Ew264w#V9JEi?4@e5B-rq zx~%bz#1Q*-XUPQo*bd=NEc{nzpi$k%V8vIE{C*FHKEkr&@?Uv}6Mhv)PLO1tD{w4wT>)VKkh9#dJBG>cLjn zgrLZk*&>|}xmi{4aNzO;PX75>o+rSIl?t_t2gfawVkaQTcfndG(B$O7j9}%WB1RbL z+vv1q$bbl$w)7cG)WAJ}rL#lAL)omRLWaRIUCliaoUjP|A&$U&3DjIg&{g#_{d%hH zXEwbxQE`HN%uV8qawV~TAU6&?4F|l=!6`7m_OjdW&~3iu`g(sQ0Ui{6$pCJ+=z_K6 z1tZ=Pra5qUviNd@zxJ$>owx`^h$NH1tOY6T+ZayoZ2u4MUh&c6X{t*J>l6D)HStXgxj4-L-*)${e;^7w~=(S`aaj_d!h?mj@-L!gXl z`1;)-+f!b*F*k%c~YK-DcBnStLn37tP%&Af{2?KGKzqRW0!Z@3=w_Q@vrL(xhJ_rhq}eRCCo4K5H>l6 zspCY;xd>0K!L2&gei>;08^fG9rxlXFWlshS(n#Bbi5bxE9xYfVhy8hy@eLLJf&JRR zB9OYi_(lIeygStxPP2Z-^K{6acw0!`58}f};$IGk);2sJ9SrIMS=Q9I*g=y>w#uiv zeeg&}WMdF&iMO=R3Uc*u;1$AufcGHU##&62!tw`iL$~E?#l|`fj3BJv3o7xGsd8(2cD5|&|aQSF6vsW!hwm9hM#$n~CY`z^vt^CGG z3lm{skoB<)M72<)OCQA#KmKZsd7dY?aY27M>`u7ATdcsy$gokMLTTiF{mai-v#@+* z5oe-(Vj#oag@o}q^Zxezj|#7LRacW5b#{L{i#=;;g)fwSpQO zaor`-G9XMY!U&Z?sGX&-@o36qD!ba6yV6kECyG5WX3&F@(GejFD#T1bjwd6VI&gAD zzr0_Wu79P^JZp#{qNQR8g!##-r+f)&1_nR!znFlTtpm8<^z~_fiwm18kC>(6Y1zC9hX}S7x*X*| zj+kF-qFcRR6fAfZ^vZ79rR2Hrn$-jB7B&$Dq6QCCDL22e%5~NBdVz3?=oiZmg3?>} zeb~UIgrj9WyXn(PT)oKBLa?`*g1_%=`&pVVA<_nXwS+6G3Qk4K^CtnWby6zR;Fn$Q ztZ*R`?0;1MGSUL2w-o#wU1rx{|L%VwrL4U=~HGhIzX>M+5 zNo4QuEj)xx({=axq!NUc@QG7#%gs#0m{iKx$;WSC;qGZmSj zcMfKV8u}2Uw8aiX49J=`79Uu!S=>jx##0N=v-hSvQm28*((nvH(Jd$-8HSAy`)7$7 z?cl(AeKC>OG8gsEeFSzUMAhEO6h(-;%|2iN<%=hix@gMOekI{W z8i`!GFsC4zEA7c03mVg8GeZR6tZgwZ&+%j6vbI@5K!*7i15HiQ68yd8!OD*dqhf;M zmA0Dh!EyK@%V>7XCJ*&U6sUlz2RxamowPxO0Qum);%GChRPY%F?6*#YLhV8h=A-Y- z24eZPx)a*GP#DT_VUL0Mgo*4TN(Xh+je2h;?Yne4(fz?N5Ry59@Cz`<)*N43`;;`> zuo`1rz@$<#EA}*0A%93?;RtOQ{mZfi&Vsb~Ci#NR&>v3}jeXU*+i>Mm&c|!ewJdWG z%gL?BEJUi>tn8h-faT8ncg~~U8J9&Sysnd8^(xwgauz@ovi<}6=Jz2}uZIE1T>2Zo zI?mh8MB*3V@Uut$dv@|u%p!V-Go*-fr4&$xlV|oUuh`_c#Jjb5epQA4xxncUlb^?& z2``)o%`%NyDeXH>x*!K4(Z%cN!2X#Pm1t4?*2Ekc&@?U4@6=C~q>2em6P)?gs7kC! zJdhWn1q!MYZ^G#AYcAsp60TEMzMlnu6Nw>es(@8WraAs26U0PHJAh1wQWCl5UPm%1S^QQ(m8Stvo-$f#vjn9FoTWgm335($p_2`g!Iu@tm< zY1sJDuV{E?fze?xW#dmfSL!!QS>|T|nLTzMcKso5x^zT~GJ+?|!+C zE!G$keg(WZM6lw`b$xyf{;fkW1?o9m7uV<3)nDA(JEzsUa(u~f7|!lwDAY8VFAL&~ zZ-?A87&oxqTgC5jiCV5*bibC53C4x}&Oa&b+Zy#8A08K@RMyGKEaK(PRd0hn}hGavsb!D@dNL{KyRQ3HCVrjJf5DpYP&egw< zU^?d#$R1JPVi_HRc*p|oRTt>;R*yye5rvN8V!+O$kbdV^2YP_oC9MkmMBITkXsXOw z_ft+RiRO71_V^W+wb)`oB-(ZU7)$z!Pf(s$sy_yob}m$062h7IN}q zYTziv+?;^B1hND?ggIydma&g4-GZ&C&~Bx-bDnT?Q*^3X{Qa^ES8?1((#z$0jUAog zU0&%sg4o|VavEXQ;P5Ep$-zu?W5q#oO_}8XjJXVSzX@4pTbBZCBvKRw=tsi$_~{%> z2GAUgEW!9gf@D}shQT*YY?k0|$f_|n8%%*w#$B|sIFq?A`?ty)RpoPc<5dQK%ji=p zGFj%#m>I%nJn!>V*|+-2leyBp-GJf(nZE(LeZOX&0bVZ`*l9& z*S=pe-vF}ppQL8Jc#|ONcZ{2O=S;nKSR^j}p3%CE2d;GHeP2Y=RIPkqSnWow^ud7y z?4*$aE|2I(XcCg1z6fs^$;E{_WleA)Kl6+P0V?=YHarle=iQT!(s4=WZzolj>Cko{ zEeLN`>g5W@+d%N#QEmCSDnGsA8Ia!LpMGZyW_IqUmU8vUKgr+Y@$%E?Ms9w(UI8HY z3_$)42>%8!F9HB`fZm%ysG&d>y1|jWs#65CKWb&R`)yS291toIvHs(TjPSFgfqyS1 z6nvYiZo7(AM9Jf>D%%Xg9drr0#NNj2pnE}MhEvA)<4hUp6n}jjY)dT;By;$R*ZF)& zby6C`)~I&kobf6jzYQE7vgy)LO#IG#`T(SV;&%c6mq0@3rTITO&=P-2h$EVQ-4B@y zpzi@6to8|To0Na{i@pEgy8}3m{tJT_9t8ODacymV*tWLTZ)@)IZrtGhhyk8s5WKiq zB>kt}%B`@QO&0tqT|JgERf2uA4mLL#7c0r5Y^*FY1anQNA?@Q9uB}DeS=NDGMx%ZZ z7D#DUi2r1BzhG?W11`#;e5Nmr3f8KxuBz?KjqTkUH#cu^9*27CrLU0sz0Pdi_>Ax? z%Kisb7q3{kyZc{Qfuzi3^wW0q%(JWcVvP0n_Pg^M=Nh4Er#Lotwq2^43f=<#3j&)3 z{;t_j?4|amI3(^(*!GWA@|tiKXm$PA7k|vnY@6zoULSiLZP=~V0z73Y#cwLIr!_64 zIW*HPGh1C;GZ|qZXc#)~$6nDVr=u%2_$qBdiw1=#5@AgQA8Gxe8T;b) z5@`dU_piY8P!9})lRY5Nslk4pEDwA*1}A@yjNJRL1i|GF{fr`;b?$LALk*Lcj-?9K zO0{Y&7bGP^7Lsp1|H_EqG%uMZMRqe%wlU@)3WNY0`a9JL+Q>G=McXAT~SLCvlf(1j}$V(Yx-zD$ciJ%Y2;0 zZ#*~t%g4?jCxKpMcjGV}e?ktFOZAlphac#i7m;Pr+O3HO-u|0AaUOg4g$fs!Y!1 zXdwWhmq%tdWtGiyf`}BS|8=neic$_Gu3m};s;cBiAKQRd`jat}164?X+YE~rF_dz; zr|14~;NF8_I9{GVb`rIIp%|<{jHNZ#jdnDHku+{UQY zt0UE`h_h+S(NZE1k?!ij^K79r(Modfqji~wrhNT(dT^71%0uzD%VXZ}uJDK{{taT` zggNitrk^+*<4_}F7#_sHedyl^48(E{CVMN<*i?d@=7Fr}0!}?Hb_}|yWUUV=%TpCJDr%pRK-<;KqO96z>xC_|aw^0Wp~;in z(dE@tP-~=U{!BVT8%5r;vHwR$cHZqGeC|zS{o45B%x>^>Dv;$gXnHNMJEzk)lpgN_+wfv3tIR?Kvdc^(*)W{g9M$+=HMAo>__d3arb6tlB7UZkUZ{}#nu zu!PB@q)eu(R%cYME2^aVIgy48JrDHwtc}lqQ^3*a@Y^4)5_PgCHX==9F193%v5s6W zs+tQvzP^$1Z0%r7DM4L68-AL zFVJnNku1g2@b)$qG10rRh<7<(wy28zu?J|HI4s2wx||RV9`As9xzhOpeVnaJ&yep; z_xq-6vFQ%Wx20C=hbzFIZ_#@hl!DVg03MGP>y2LuKCh>P8{mPHFZbvhvY--pxlb1Q zqeGzy(!4A*6T3z}f+t6*5tKwvU01Ut+7#{A5Cc67Xe_lu8*0r<3jrHQWFtnUBO=pn zoowQ67^?bwcDZUp1p!o>Qyvd?!T|@pqWYV8?Xd9Q-UOa2E z#;VcCEX7pa^x>0$HTIncTP`xdMEF+jG><}lHGt|y9b7f1y816WgY?8Xdmsnq2iJ^k zu3>9!o5N$0-dsd0oioYjpZ1N;)`!B)%8WPQ$&{x4QAtk8!bx>S)&`xR%xj3wKd%jn zsLERcg~zONP~owK`<)?^kQucCFCvUE1}ac)pk#&t6h!4p*{zBy4TiIK$$XIuUx*Y`NV3cCcWHeNpT7j5QA&MD_&v}d5N@jZ50^^7)%5uadxo9PRM@r4h z@P;%Pe@wmQSBL$sSkUsh*3jj7FVqyKr2zOOLB8?;Vn-)q;Q%+}zpnrJ@y(vj01p4J z20I@BZ4ZD~@@K&7=!f6#)_Gvg#&Nv{mwVoY;M1f45?{F#)yV3HM;rA3sP6X*h@E~% z5d9f|1rEv6!oLC+#RJg=`dI-@2kDRet@u*tA)HpfyYhDRbl+yCS&mhKd?&ADM8kV` zQ7(oMGVl}5dn=qhy5+alCrpF`-vQMq(xj7kvL0JT+}E?JN>b4+`K>u~rCmnUUtE$6 z8Qmc0Fonr|2}mL#r3&DlgsLhD6wtcGgjp!jHoSPaTG?(w9DF?YQ{n_e$&^-zgb@u# zpt|IeoY=$0j$sOOl504YfKbzn9lfTsP(!TLy@%ehV z0X{LYm!IP4QeSTZUb{=jx}pq6JSAcbI)UVRqn!yvT9EjEU!AQRl%Z&zRO9t^T<0&e zJ7RB7(+nKL~_S5rGtpOx6+PD;P5JZWJ3HB}R`ugxqDcn+&= zK%#eahYd)c=-YwF)jkLr0!6#6PJ({4W!!QpqepReHEUslc7HMh18`FkYs%GgMV2l8 zPAJHfYhCU<{O#doxi>Q=W6U^HiwNT>owDK?moryqg}sNEDI_AUzeXd-^3l7x`fh8V z-~7>$1pCMotzn23rykeMXOkipB*Dl_j@uoN7GWK4=&o>hia$fqs3SUp={R78Xn#ZD z1hL-vg4I;cu2C-;t;K~^J5O7?BOW}Lah z^J3K}RRCEfF{MvOX<+R5K=oC_9l!Uu-9!ZZOi?G05v4wOsCYNv!UMh38JaGM2T#T5 zd^o$m!M^Q1nCF8{19&b67;`7QBMCZ1d5x_M7|xHx;%+B;a)&}@e>LV}J7z-+rm_Zqb#UAYQZUi-!wZn3PRC9r#E{IZs#T;`3kkZ1Z=^PhAjL$fH8DM)X;!Y$%R|p+Z0S!AHx9J7qoj(z zQ&_F42q-Pnxs=S8a^eMWKcev#iH}XS<;6npTo{S)YjS;ilvE{2CYNnMvf%K)`%BEP z_E~IoJEFLb%TwW;yDTHIPrzm<60_hjR0}hA*Wz)b>s_dxTW;W&hdBWs>ko z-%Nb6Q3gfLu>z&lk0fm|>Oj~o;u~t)otU#48Bwd0)ihkbE(xiv?OOe#1u zH5PJ5 z+M=w)dDr$P=3J6-f~gc5Vlic;9)z25fZ>9%eu9U9ONA2OEmjmftEVO>t;Mq&g!~jM zu%zTe=Fr@bDIcu`_rC-2Wkr=j5E-!2(SV=i7EVYr0G>XB&x(ck043`-C6IZ9!T)&doZouNlUNJIs zbl%;`<>sm_Qp=|hZ}i_S3^RH zsg{JFg25&ARt?6ph-J8b+yFMk%mq_An3rZcy61E34E4N+TYGl{*z{w%{^~~s())A+ zOuGY{|8~F21;`(QKS2exd^g^ec&Ezj4flT0kHEI!`J)5A0RPzRIdV!U`;h_9z0{-; zlp0cO-(UP+nfG;BB$^Q6Gtbz7Z~braI{&v9zNq=r&g%4MKPSG$i?1h}8Qa#2ZsR)L0+esJCm66h=qKGAX1lt_3IzhGx4A3Tq_Io+StEHK5=wxu7DFcl=5X#lB^j7MaNC)#t$06_sbn>Y3eQLfF!0 z-N68Vr_pn}qBBMK1A@Hd*d-EOu7n!uaUmC`xh>xYRF-+WQFj8mzWiKV-op0*o%d(+ z+i!peZ@%&GU%({<$cGRvUMeE~f?t_s-jKjjI0=89af5{jurcIyMD@wF+E>FX=cq44 zE0RrSS?tZug1MLn*$usMWeW~TWGjNwE)qzevJ+bH9xgIWHN^}RBkCC%F}$jV3T3B= z7ES(IG>4#_zUj4Xb8l^7{#e%GS}mqlYenZ)qgTE54V>Ig9d7^BuKKliHWLocMKDdR z*ZnMYJ-x(h<+c49+Zo-@c^}kFUEi{I41X2QvhA1&JuGd)esm8$?W|m5dpp(t=>lZC zf0)@j%>{O5s&{wy%PRo=9<8v-*>9qFICvTwJ^L8xaSFQH?i_Gi-QPTrxZuzbnGjq9 z=tU%BxRjISQQI{%@9UkfT-1bpls_y>CKa*P9u(n_*Ohh-j4t?>(3c>sNj+8uh#1!# z3Hg9Ms1-{OGZ%U@C4=|05IY`dLlu@a6?GL~Dq3nm@W@Q`@0D&?gf?{p!KSl@dT`;I zA9r zMLjMe=L5m`6wdv+Z#qho15)VEJ|scX{zUar)DOVj>7A6W;K7D^T!KBfKzEtRx+!eL z^|80d60z=RpXc|ggv5e zqLPT8R-!y=8b>E3mpUv^-`bieEJ4wg$W`ks{w8oLGtRbMRzDal#Z7NaQ9J*4a0!qW zidRXEI75a?42hUEkpZ|(1sn~Ois4oxbu?zFO2k5p`Q92w@IpGvuim8dJ`=Y%S&OVK z_Hp1n+mj9T!lgS&eF%L7#YCW9HuhZzU3k7YvC4<4m>2EhvGV7^|s16`ETVWi-*MPlhXEGF}KO;}~ z>mrLlkFSGBnbGm!kufyk3hCz5P#CaNqutWw=%~)d31Kwe$HNAmf8fcUp~Cf`F2HSS ztfM)MS%@?TQ_@N)I2aF&OYv(i7%n^_M<@bW#SP&MK(^zz5e?jJQK}c9;_Oy_NMu&1N6Ab}%5!Ce2 zaDzBm2MtvttM=I0T1(u&COrhMZ^AG;sB)U~Rflk5v~a#m(KiVWlaQhwW<-V_n|{Vm z45O?yvw}NIcOVUs8E|*Ffj`x1GAJa7B_`BGKfaHpv@{TkIMB%GNafrh!=qsy6D<`B znvdQd$>q$dIOb1tu&0tfHWOTYPFEk6A(^)khx6g;^!E{0GFhSg!Z}#%c&+Dx=VF*x1!?^`0=oG9GpNs{*iTji$ zrZK_>Qw9?+2}l*s1wuQp;Ii6X*hmqz>9JzGTXeBnC~`XF+H*jvZ8Y!R^XeOqftuSB zRE!#1vymq!`g%2ToN5{=iP~;n_Y)^Jqhva5G8IsZ)j%w}lc*))s~ zzq~h>{DBpT_>?oTPIc4-&6gRd3Cyw3;1UJV42P%#5>U;!5Bl{pJWu6(Xc|3hSd*2B z7uykN+xl}l&Er4qxTCss>zkcqGFz2l7HqLRjl=}QNchgH>ZV7|V>T#+bNQNIsLB+= z3oN6(N0ManN~$R3Y6jF-bqn9M#bwR(`J4udpa^L^W4XU0ok?Sg`Ir3HGCo-Xo}EX4)gN5|lC178&orWrCo!n19rV67r(-q$X{FFEcBZEjx3 zoRThWKY#^dcg!U^m(I>g6DeHDz%%)8(Ea|AKF-OxVBI-P+9xm_T4DKMX9KI-=ooJK z)@m-Z$CdS)i}8!2DkjiUNjY8D@J$%&tFVReOazSnG`N{9J${@9-hhc>W_x*Kt$q{rLn4jun6yz>f9sg%ptEQfM^AEr`dOC{-h*Y}s zPf}GMLTS#SEax{MXRbP7P+NkA5E*Ta-h^Uvd2pzzLo`ngeQ98!F?QQhdp`+m*!bn? z!vSk=AG-AC7YNCHn#`Wt8#~5PD}3SW%)>N#=q!7yr$#X3X%LK{s#P$%n;wqcKi7}Y z+7|}LiLweZQ*%qnkYBJNZ|;;cp;^4m$%qwUz+t4%D)24!@hD(1VyQx~70TqYkbNb% zK_wOA(hUlkw^bt0xV_+3nbT;Uz@>_?P0?9G6cc>%bTV%TPzT*)G*eYj_NWh7v|;Gn zf0YS`YQVQ#*PwUfRYlk4Sjr~^v#Gmu>W~9TFi(#2BE#PMl%W1;ki_W|2acMlq0`of zD`lov8oJ|qg4Y_!Ql3E__}_<}2faSsq_^XvT*4cGblm%kDB?z<)2+mx>`rE zRC$KeFc1w6VjwpVf`Z9g`r(+4hZmeB;e?W2xS!k+5k20y9b?fQl%D)i%F@0Y={}zf z$!Lonb7d5A6V_*wgx+^2b*8d30{XSN?ir71STBFAJDyU*8Gu^r=t`*0&i?0-!~KSY zka7gEL|R2ImP8Ql1DW%^FOQ+da;fa8Oq%$5x0C7ZoOL!g%+lDg(B#46cs`Ah2F3}N z`v*%+B5&-VVzp-nJPw_a^f3iBFJZ{GGB;m|6Yy$DT=Rz>c$Of%5W?~u8^H4Bw){J^=w`jt(aQcH=X z2OqL7rM3Bwtp1gzX||`=J2Y;UErxmXTU((Z>0Ud3*3$6s(<49Qnq?!DyV&XX$BR9@@8Uz%@tG8 z7E==Kmt!1FL{Eg*#Lcb)?^BSM8L#wEzZ*ZkEXeCPPkWO`C)GYvL*>=3XZ&&xA0$6} zF)9sCB)767^&Q6CoY%vOrI`yoAJL4sJZ9+Z6&h)7 zhq^>h`pW1)AJc8mBH-KX>on|3(6q<1r=-%z7-3DMR>e3AA**!=Zm~+r*DY;HRhY0* z|Jm%o3EIg(Ma}rDB)!?Jg-L3nzL`$X)mTgDzNwb-FJoTv>qK)!0vgBY@UK95MgcE( zfuU%C-bui7I-lFy?)81|_Oai?|BlYDPkXRxrO=9D z$$9os?T*pL(`|!`PnmyL(qR1xIE`b2X+TkDN&??|X{Z`oqoUFuKalxtnQS_HdP2!! zKd5o0Uy0*I2mAcp15Gs=y<=!^Z|@d+Vf@&JT9)kH)7d;9xT>OCzHRuo;{H~Z1LN_T zKzL$d6G(OAW)d2cZ5QI3{`jN9W=DGgq_BW|;Gr&(Rewg20uOIQQqZLZo)@FQ@uQ`? z^Ukx$fnx=Kvb&Zf+FBq+yaR z33yOe>s70S8ftifAvdMsE@tC>f;CnAd_IC1m_agb{WNfeWyXxcRKb^J77Fb~*5dSU z`x}+Hy}z^AY!!94dnYcrlWaLHqjyS+Ij2zz*P3j17!!$d@J!mdF{8`$awx3JmFFt; zA?hLu>MNeWyh@?Okex1)ZbEOB=6Z4Urzu)`yKreeDG(Rzl!!A$4<}mHy9)M%Sa9x5 zJ;DC6G$2v8BuXP->eD|Kn!QZB%0T}+fm^p- zVFR_nW8c&buj zDn4vy1&${YJ$pFi?|co{Ul!DKiBf6ySAVpf0k?0-a+)l{#I-ExP#8Do?zs@f$3=tq zyKo$eKUHv>o4UD6g{Nl&bPMAZjbSgTaf%cFPCJ~I3h>ThXDDM4`n670OL$^w9@|?^ zbob+Tj2!6hR0pB$AA=wz)kMn-$YY@!aJ>oKu%;dqZS-s!#s(+g zDG&_}8EC7HTFr>4jX|z}p_d3y^YZSf(fisBa@A9?6Gur|!T+i0dO zFC^T>?lAQGKhsB8Fm2G>ttdC0E_GfudjvGv>BaHBtKfJ~xwGO`)XZ=#@r=8cnylOE z=Uc`LRjLUlWV?_Y?gcp6pNfm)Wc+CfEw+}qzb1@ijHDm-(hNoSxPW<8cV!t47bmBg ztWO|DSfLo>dZ2%e-_g#&hNxL%pie}DJ=)jd|F`fLo{y(o;x224nHtQTiG^&VU4~E~ zY5k}iO@d~uD2v*6IyI6{go)XdVtto~@FKa5U#9RV*IA0K!BkaJ`e|wc zyW*sw$lCWcK@HnbQ6!Z>tWSTwW70dO7c>!EBFJJ~DMR>Ya9SS*pX~K%vGPp#=l~DR z(A-`HNjriMwSP6!(&V?LBY-Tk1br$oGjypo8XEe0)BL!|6AN!`ygjx9eq z!3`ly7gmk4Kc2`c+?i$_=Yr2$mtS3mGR-lSLlT08i0LWzyajsm{%tfO+nhlMKOLYx z#l1;AdJFbY*3Av>J;&P1@G@7kYYoC=_`u6^0UI2>*V1LL9tA`|X}JOAgEzIKzqG$J zc__1eAl(*acKi8yjlvaV(%Hq?J@*Esbokb_g+6QMHZs8}|4=sqUMpI;+>kTc5K;xc zY@>BGaN0%??}+VRhB~MXcBZKX>mgG$t7-v+fIfprfV*ll$Qhbka8O)U-=tYJnNnRU zJkjLBRUkV|kFb1h_W?9Z$R5VG{pW8Crl=&S-d2}eX)2*Ivc&|Ja%I84E2q3a8*DT3 zq~ja&w5JI|iUHaOY`Phjsk4e6D0|z$?uDjD1^1bM6S~l7Pm@Ln_@=r}2#CT#dRp91 zmVZTNL4f7PmB+kvvIP_Zn0@lx27)pbn*;~;;0$EuHCVQB)1q@dlwjV z-LRdvjN4kl+gOLnO$;I1*4iQ1v$d^&d!fzuzXD4xg6RZy(YEPKBr6#( z+8@FDE&TF!BzEjlzir? z%X#CGOmKsI^;n0JqnmJ4I~dc`KE<>&wZJH-4$J(vPZjM6D+;)@oQisVU3|88}Pzk0fxgS!e3}MCgj>D7$8m6}xH1VA} zg(L*K!u$4rBOa>vS;t_$2MsPb#~;d;_m>Fk*hW^|Q@0B&zfw=YXXmfth@BfSGVXJB zzGje8Qn+=T;4<5;cR<$mrq(2nv7P|SsNsV{T-OV7%(((Am?Y^x^5C|3iACdwicmT_ zviKd_I_?_x(ojlG0^=kX6{oYiRH>G{g@^KbV7v?Wyzc(}>w0i;ok)M*u=MMrtcC#4 z_wX)>47y82pa4+JVt)y)Couo28K|+# zKoOQ-L000|;=bn_swcuFeR3&bv({Uosx%q-obGmU7|6qop5mNiEoJRtW+Q11hzxd1 zMKKm}kN@KJGFwR549R3hY29zJ&Vs3?6`FdVqFFf4LU@~xfmhXKB1eoMW zDB%YqjL84=*6jd(t)ksO&qAG~dD|vfMRVKSTg6_3oqY0Z^ZB~@VxIiQADE6mP~HU4 z*V57RH~a&rU*G%rq|D~>enZ-bdr6E|kZ16$Ot-WjoeC{`L^qQiaa++{+%>K|K*pVYZ2N^0B+PxhH=ch1isc`ux*~?ySiA}%^KN#+zqMBWkmYP6Hx_tin z#<>nMycLdnY6go~AHI^EeU&{`iLQ>uL3xQw_s0kgvCTf@DOwkDd1uc$j^7E?8M*zF zaS~ki_PG=HKKH#*;j=at1^8qb;A!#!;O)O}WuJPV-TwAF1-Sixi~WWJHBzz8K9t&O zsGlNIGXKLQd=!vZ7jF5uc}y5xbLgBH>Dy`2?*_NqvJEXwDPnsvya)0=VBaLKrPmn^ ziGlW7cgza$$@g1kxgQyRYEB}EaG($4$~&oah`Q83@C4mNh-k|%BialRwY0YH^ZxIx@q zih^=F9!JHc-+;h{FdS-e2PR|el0z-c(|{nhYHL73f@&n*86ncDQB+y(8xx24*a+C%mq;dE{5e<^V+RYjDQX+$F&eaiFS%F4=vRpb2kWaYtK{O8Z|`6Thb zIPH+$1sS3(IbJK84;>YlyMtPsJu<`$V=w1w3%Q323yMS7P|{>rna<~$6*ep4s*n75 ziaZ?cmg<|4CEGN2uH~rja>D1X`fbAze^H11z25fjpvPh+QxpH7h|awu-(TzOzdipd zXdisldAsy>>HYrObNKNu&A0upnn%2W?ah84B5n5m-s`>|gzFfodCA}Z`EA)b_^R3Q z{Iw1j7Mg2duaBl$@9+EjKi@z2s(GKA@fT#6pJw0-#Z2S*g`)6`-{}qB?CyO}?^W@N zwT}+<$9`{Tckq1o_0GooUbuM}z6dvW-uJq@J3D*5=db&{4gRCw8@%rgHn)2lyRQe$ zx5rD;(ZAO{9PEWV{VmMq2o2MXOtn8_o50e~*<|dUCFI=m0T)Y>w^RPt0ib#hmmj`8 zR^HJq=NNKD@3+uh;DGMn?%>3)m|wyDdsk5Q`o1TS=jC*V1Td&6Z*gfvLe+dAco{Fs z%5wtVBM+A!c4!k2Up6Vd^CG8Suket&G$f@rDUvft%HD8CK|bn^$nc$LspAREFsP5T zn8?gIp;eDrf31^E#_uQa-(^%}&9|iky$(un;`y-U?St=RJQLN8Zj@09jD{l%u?;t3 zj{vb5sUTGbt}(){4oK|z_pYGN>t;|BJleW9Xiz*}=F>tnI?S_-pm2s!#xG#{VmX&3 zsUUVQ#OEE64DVIYam9f5hWI~CDksL5x{%e9EmRaSy-{9P@1<)k1NVJbfDMUArzMHi zN8qd$L#sl0}4}h%(C}G+u^!ge*e@1;TC;SWz~U&&B+oWTmXO%lnC%n!N>uY= ztOxipAyTo#vD1)bD7$6{>4fHcu=o%64Ftehtf8O!gWfjVMh)=?4c4QHPr0GwiH+XQ zZf|FxEDt``S+Yzu(rIAU80*G4V@&FrVvlr)2OFDvHv)MFJxhh|;YKh6D-|G9b(K_N z%z(Jj3%lK3ztOVDNtSrk+uL>*(DZgmN$q;6GpYLCLndi0_mvLA`odD#crfroD$Gd@49{7qPq2&n`6J>`^h2%E6!9C+Y zgE9P8n+ez(&EAxUS~UC+)(V)h2V&niTnQO2*h0 z`;K=q^3KwY0(RuLY2KoEp$!NG+Fbb%>u_tj09x(O(gFm+=U`8~tAhZh%c+qNbRrt- z@|VpTAYFXH(Piz%fH|u9#KkBbG#bsdz|oye^L6S@U0e9OS9{)l*vHoY()*XCs%+D5 zc*FHk8sK^MzmFf9_PxL$q~=P(Mi+trK9Mh)3BLMrWNxxm%)(X<=F0}wt@nnWeg(!Qhb zgN_60YjKj|`zm&+S^H>NL%Pv$OKvtBLK- zC+wM_g@9sEsj3Tkw2Cm<5bo@C!8w&Bp@BmbpGfz-uq29-5OLYD@N~WGtm%wo!UK#b z@M}XJO41PHUVvy6*jf!u z+x^6%l(zpPu9m>gtbIC-iuhwMe%WVU{->4IWn=$;^l0VD-TwbMKA+_NmxoW=Eq119 z3d#lXf-getVgGV`oa^P*^Bg=Mv}Zfh@iDqMC^bMamO8guOEB;lkqW$V-nxe;{Txa|LDo1yY>HBK6mT?pZim9|9e}j|AW^5 zqepk=zt8fyTmS#upW5|5O>SrL&(Ht5y8Ot}|17UQx?BIB5gK%@}aC2v)w=;luo~PW7Y`xyzIeZbmGF}YA^}~MeRk#-pFbQ4bZKX6w z702C|;m%GEtoR!zgv1acR+NG42&_xI#rK|htJ0|c?}Nksp!ceOIM^JZ^?qXq!o-vi zn5`kr{C5r+d~Y^4FeTl}WA){mz3`QIwJPG|Z1utouvqNB3cJ)?|7Y*7!tDNs*PFe; z;a2a*-WFQiHBFEP@pMRhzsf6cnN*Z|@WA_uK52Q&Mo`N`dC^&v zr09^TT{)F`QQ_?ixMI?>2LU|v{gj+kEw4yUM|1%2+iSB2+6@kL^c->(J@fn|i^&C+ z-;SzLaFXVE;rpU@uZ<(8-3Dcv3<P zN)rRFr2*FBKv@BqSaCqIIx6vAZ3VcYHCj=U^#HjBR0PPLC??nqqF{GHNg(_wRS$y? zr_uui3wWI+%uY{hjiXXSpNc~0gmYfT&tK6xMjyjG%?ntFP_JoNQwp@-v^ic=X;2HJ z!Ql6YqbSP==&cPV>aqe;2foj0YI#0%rZnbA^j?c?PCUHx#3dal{!MHsf% zB*M}pBXiJ&Mbs>otTD8GR+>6VE{v8eG~k8~5nL}?x>%%7#)w21aD(phb{fFdjbf1vfc<{f$Wt~4YeuPFl{lWXtZm5NNgq2~3G)>g-BG%V)CV?uB!_=D|I zkA!4E)o2(^t6&@%5HtG9i|cz=+O*Oy8?4KwZ-UUgKAJ&KLY{AVNB6F1U6^uMi`VzA zI2x|+UGWxcngh8W<1I4)GX9&fVwHXvcko$a<(9(p#KJMCiWSuoIDmm)-G+5blxOV5 zvV0mHlN6Vd_l%0l2N^NZe8YMnXwXSsupa}u^u(H!bc|y@$Lk3lwHcXc~eA_ zi9`-gwMuImaFZzhk;12e)>4MtY+m2Hk|)aRBbMEoX4KJHEaXq~lZuQ>b4u}HZAOmS zleQSkr9BALz|R`YNWN;WyW?q^lIq$!YGHHw;LvZ(FY z!ojN0hxCW?oMICTH;ocwO82T#O;q0PoC=+t`Yr1kISCDHEDzIMPLg z!T}q`05LlULBOa;5mfo>$%GW$s3d-~*`fo`=80m`+~sQrq==xjK7{Y_&C)Yj`5ERC{vH|TMJy-9lvr>`Ag;Ycp2KtHc&6hUVW z)hWvKCmGkeAfB4a$yVRBU6VlPu1muaTa1scUcRR?MFitd0e`zDl{HrII$ox&=r8$> z@mEjn-D`U*_F9^WL8>nMaIv43zVb+#CX+HLy=yU2RXHS!MgR@yNd#rV7k$Dgrz5~C zDg26T%sn|<^t#({^(y(p{L{VckE(8;cSqes^uB$Sb;~%#i;Z)g`koqyZIm? z=)=xT=MJHjLV;L-uk#o?lo7tJjw2*p=Nte!i9WxySnM#O9g59+1hq>Fx*#6`zI`&m zcZ~QQgySr>Fmtf6jdB`dN{I(ouWWH0$285wwUpV1mr)5g*9cJBTR&8TtxRcb!aKws#UJR{_;zC(0r!fWf`_#C#f=IGTSN~AW25Yg2=N3zxou#aF3b+;! z+H~@|t(s9=Q|E4TQV`VFQ7m&r^2<0I)p8!Z#sUg2+Ps5kqsbuWLbrrQoog;*>bsP> zQyA;moU99`uvlY*^g5m~hqz5$ADMhyabx z{d;%R2)EM7rRSyUV$m|?tC%7r({*^BAst9yYNdl~lVj*h%PH8^w0^|q=-w6Y$JSz6 zLy-gFxKS_anfZvXIDK9lck|*3mb+r|Cu?g+hq}oL#8L;l1bQi5HubED#(gbsQG2|$ zCPw6FJ|-0zR$b*`)4#&YvszF@;Y*hDwdproVqDynkdYe1^x+rkb+^?VY`!BiL@2f| z{MFtxYx>RlFt%s~c4xWw=l#^@e_;;2A~^DN0#Schtmzxs2F{89ySnW0Meemcm z|I26jd=mRVN-8pwy!P9Ob>I%=&!hRX-~)POewO}rW<^<0R%VnurzR`aSS;s2UD^Ry zM(&IQ0S#8H<{JRDq7$rg6cr?1!uLvXa#0=PfqYgSa#6LZ0iYEu!W~0dt<7UcSYee} zNQJ}x?(4m7?{M(bD>OG`Y^0%uFJs|v`?#t2bZ;@t_~^p`Y{XHhaWrp77<-N61oxU} zjHWR16g-SuB3S@?Wri4|$puKPgvVo4&+hnqvjIEVJKn-UP&nSJeK25g<6-Zilr5P{4@9ZP4*FzCp4TqT*BvscQe5=Hy6=L5^?D+pMS3tg{GJM1`uLy8Iv zC_4t^87WGP%ny=>Sb4$mbUgWyzUoiNkl%f>L;?JQ6Jm9hrZw5M!xoH3L45scBOE}4 zkL~S{8tg)pe@4Z;d&Y+pyW1b@YQ*GBrDaU}$L56LlTC_gm&#~~nx~2~!UAf{g5Ny* z*3fO^x62a6LqA13Lvh|=UY(qwf4PQ|R3me=69 zJY*;hcTw+KU6IOl^}>n*mGxTpr=)sC#opIR({I{Je34LxcF088xVYS#W*R-Lc}E+? zB_vtFaKJFuYY1uR9TSF}_}-Oj&%t+`V9@8WV4iPo^{%~X2FH<85}QUSN1|QUASAY^ zZ|KMj)y4)fgaDY3*chk7)IPHTH+J%B1V{NQXT5d2Ea!}5m_ur*6EGjnCSy&N#_AvS z&PZ`dn@E7xp&<JDZchwZ~pUym*WJq}pAlzZoP`H~#&D8tmyL z;L^cx9qYc%2JkYKHNsZn0ljx=cnw=;p{Dd)fi0Hp1g`uk8b!rP zIZ30-J-p&E35vzhO6IT=&EOt%vnb&>$O!Dh&{F|S&A6+AS{n|_vns#A5Y}u*fkvoQ z5^IgfYm8~a6}G-O&+E&>VOlgz0>dQv=-w3orW(`X)r}%nn1*)R28(Z}iBMxlMUkJw zvya%Nr8*TFW;TnG0J)i4r)I}e!e0wxx(>&Vd?bqrlebPC6Jpl=y3YqSl;5La{z=TY zaYnL2kSursot3eN^O%_4nj_-w0`jNchVIgl<<)acAMs2ADufH1exRE#6rpnzmGp(O zne$d^c5!Wi(V(C{=1Mrp(=$^rRpq+!7=jALuZ`V&@xXLy1`un*s>^ zQcdd{7HHEy3WZw?>vm?l44dyDQ=o}Ttt+N|3&=%MLBw1UHu!KQcph$Uz255`_Wr&( zz~mIxZZRtkFarU0>mHj_Wwz3&f?1c-wdmQwI5o)3icosZ+eafMzKjnJypG&csfy2t z`lcPrxvXkAJa8>*1WrUDh?5%-{W;6eb#{Bjz%>HKDL-h~HVmWILcx#*T2rIP$#}jj zmLLlvClsTc5wi+X*GaN7HL5eo&iI}WM=F&llvmB#_3T;$jh$Q&enKPLQ;87cV=4n} z+!mGD41`AJ5jp#q97-{}h3|ZLqv}b5ojfKG)sKb^_H~ZJPrI}UF)6ekjN@nHTp6m? z7G<%5w}Mxco9XJE27>hXv?vp4v}yBP8%KOg)hJAEZYa<0vNF6`-|R<%;5hTZ9rqXY za;d4MkOQ>U6gmnN!jYhJT@t-zp%ok}fl`BR0j`Tw5<(7;cpw0iyhu3{betz(6J<(k z6gKzPF4+gTIdZclqDFyZrBW`QL9p|NHML>G}uVV$MmPUY9?eiGMX!*xSY}JsGs|hz&+@rD|J|Mc?#_SS-TCkC{P)j# z{xeQ~pXW>lQfhZ=6Aws9ReGmsehhiZ)9GmfXTzG~n4>m5vC#VIrE)QspPVGaL^Rq$ zaWp!qNa00UUX8%fSQx4>ImjDFS#(MYuNp;_(iZD5@cLCgDZQw|Cnrf!(vsCaI49e8^pojFGfYmtUOVn<8>r{=sz2aIRET^$L^nGf281oHU_ zMIl;_HS9AJI~CFT&im>su)$+9Bd>KosNcd=bL}W(AC&*=WQt?Sj)mYyMx~0t8g&r?d@RUx4s|zwfVMrZ%K;@ zzP{HBzc-?SzwB+jI^2Cdc=ei^^7NT})F+isw-hOr1tXG980R;hZcvL265Fr2s=D=; zgQn)2fCV4}Cf~#ip9JeL{khPhF~T|*?-j$zQw2Twih;VVjF@Wla>x)fSo7fH{y~xzyItmUHmB5B@H~2u{T2R%X4*as1Dzs7*7~Tk{R) zK5H4G0j$h+@5=XzZyjcwuzWdp3c6`Rsm(!vw0VmR4f|snMy1QwGp!2xBBhYUCCw$x zeo84FFu8k1iXw@LPa!dc^lDVVwZKdaa%ow%D{N19Q6BKGnBa_Hb=;#7;x?yEu1prj z?bi5ah^D##awnjElF#h?kC+hnQ|Ett^4PThg8Ywn`CmTE=T85Br~kjx|9f}(|2zHv z?^gfMw7*PrgA6g+16i<`W}EaClglt3w)Id}AQzJ;i(lqrLbIx~AL7mc>bq678Hn+D z*=WwYU~pV4WFQ2>p@;+ICmMh%m;1u~%B%AmW)H)nh%SSq#J^VaYo7iDJf-v}2gd26 zcR_|i)^{E}NKw#Mvmv38A*hyF)N~&_Z10t_ilMD%p3x$eu-D)*KWca#kEW)F-t90^ zHVnS1x~KYX@t~~YdNk zpelcia3|FESKjbE?y%;>LBv|2cnGBKUK)2?t4SZxsl_C9E~hMkUx{67-Z#Uj8jg@M zTp=^-Xvz@TmFDGVG`oVMsgd69XvTR8_ zqd(L0U2g1tl1-*YOodTCCL0NCIC&Ysk2ooO1!Y(zKtH|mO;U~g#=kaPS~T9yS01au z^tWbI5BgRlHZxn}8rPyKQPRPtP&o@Fb=t*J`^yI^bPSA|%ru~UW+kqdKzRubtQ-gh z=+e(`m%ds;B`lBTBB58Bp>T;>|GISA;s|KU$E>X-JzlxmM7{QlXZ_kWKp`_IP@AFkf%e?G_OlidG>TU&=)yDxY~y*@o$;Hw{dd+WP>hzZEU#>QX8pnE$Thr7=YcV9u8pgu*68u^VG9R0|-Aqzy|8&da`7Zs;x z9bumYzc5aMd_=M{<5J6_KcCxh8Lf-wD6eQU`To7fU#h#{T#Or+Q?)b=T^pf52umXj zf@g6G>WP?K?4I~KDzyt#>Hx&zpUDPj4q-OF zBiY&hBJ1d&X~M1XqB_!4n1+<;>M+6i)@|WIgHXc)#-FELF-Xc@2CC-xc^aKIortOD zXa_TbW2++4AN6|D^8aC0CT$G=aU0%0bK^fhc<}hK>HqWa;mV!-_c=bU`#-Aht-l}A z-Z%C84&`EiuiTo8fi-yIb-XL7qVM1%*d%XF6s4B4)Qi`a3d<2h@x!;z^MXa}fv`oc z=Snr$X!VxOM~YG&W73HjX3UhAM;0`mixAIwOb$<|OlKh6(7~UmI(V#>8=|04)oZ1| zZfAk!p_tM^NycZ)*`T%_Ei?aSpeAm1K@J%YG9_Ag*A@=jyat|>t;X@GEaZ+4Y{UcJ z>%G|Q5B7dKe7(1YIhm_!Qg)V>3UZp17+-NR{-q4^;#5@G3J1OZ;BaHJKR6sv!J0aj zixSU!gYL`2!RB^v_x0d#8$`^N<>h5zd>D3L_6`SwE&6Kpq4!ts@iPC!(2GGhS}4I>kvTKZrM=?rs{z2maU{llHzLyoMMz3%t2-A%1%cTReR3*WK|3i2xJf@j?e_0CJgvc*T#BZeklZ-FI?D`k{8zIHjP!j zm7j}*ttKR!88yaA@+?X>v$K2{QGX9b;8)HcR!(REk~ssK90=+;O)|r#P=15gD8C!@ zpw&0wc5-Ge)78n0N!iDXES};?L#RF{s&uH3{6TZUI_9#nD%PQ0k#9@Ajvf+I$=kvY zooZEf=u|-B!5`HVNt7mWHyVzJn+9F$pvj9Wpy}myrsHE$uyQ=4bXe&%=u65YS%g{L zj76mttf6;8?>n2WcC?Q8hi_Qii4G#OC$YP_Skwl>3KB7FsXF&rHDJ=Z=)@*Oir^X)u*E%y4V+VclW^hoF+op3AcMt#*nq(UhRr?FOY{OBfR?{f9JTTaxV=Uc$Yya zuT*(Un3-I+u&_l6ULC~*H{0SxxHE?|xL))88eV19fqY)_s#eiJDMP#d%P@_~(o;_< z6csA%&;e3iQhpW|jHghk9_4ggVUGdjRuCiAtFewk3Bw zmvn$RNHBms*Vk~v3(Wjzob+4DnO;FhmY>U5%B~@qDk(+lZqAF&>|~$`9UW%wu9-(M zWn+W=LWM(P-*wxUX*%T6micTPTz;cc9|x221bnm>I5so~8)1bVix&k8y*Om*s@bx2 zxE$6prcsR5&S|AHo|ZSG%^M|0@f0JQ`s^fLO)dtezLWvx?p^7C)g>6=DM?NXLNbG? zUVC~anp`^=C6IZ^$j7d0@|sFM;QCt{?Ly;^dQw z{^!Z#mAm_&&+_>s_CHDadNRm2=sk!0AqyD!g}i5;@kAD_^5+WUt z<%oShGS_*-xFP9oZT5Bsa1lVW(J>pN&EA{CaPP(IZT9jkA?FRn0;#{byCVuvRXtbm zA1K!ec)sr&1%X4gE3j#D+yZpNy`ExB)cCnE`{rj(X2|~5?i+glaX5In*XzIB-P&Mx zH;)dLJDKh9?}vN6u)n)=xYgTvF?b1AIP&#gxbvdNpwi+>?7#i_Uk{eF`w6~CxaQpNaAs1zNp?BA&sjv{f7h+SOAzK?og4{d@4HskX1Cf27sKt;gKnlz>a3n=-1B z@&q%YQ>a@M99`RLaDrL*;8|_SNpc~jS|}Ne;Yj4WCZM?%>@OdH4yDo16go%uu4q%& zU`Y-A7@;S0&f}lyM?%?(N{rW-unh&HBZpWE3xuhWe6|(uU=pX3gru>s!g8zG2>J`4 z6lUi56q+fBDAp6@n!d4u^;AFwGR}Q%8MizQt{@0>&<@lV3=bU*CJF`WFq^&vz2(ts z3#Tei_1XEtG}Wh033DBtJR19gx#}3Y1mbT`dyhT!`2UC$^DfBms^Uqp{dkjDPPq&sHHFmpEZJ>6eZ?RQZ6yrd{9?0tu#ws z#|Y8BJff|^6@{7Yj=hk{%IcG-u{u2AorYv*hBL>ut|OrYHm7jcTDC|Feo@N+ZB83Y zQAE*BIp#W%9jvOmshR4_adsoo>^?gVWn~?+}AbJtS5gRny9@C_H7 zm+r$UOaOd+|7eD%pF<0$vTZ7>Cy)%+kTS-}wj1+zYwX6-{6~r~gzytGaXx;}ch+~bS zYBr22D&N)X2*9PO#FWgSIP#BBSp%L;_34AvF752m*B)3FPsT?Yrzq3>{7qD3G`57L zG_Fa(cTQ_GeU`m|CsLq7HBfXFA+TwlvG|?n_=E|{IwDO2H|6oh(Iw=G24KM75EReR za0DAb;5EFjv~8l%CzZGJYFp%bMn(2sZ?L!7>pxqDn3~`O=bc1l6$oFSR-F{tbX_p= zds01gCU_C)-je)Pl%{=BRbYOgO#&K8YkR}9Zx>yWW`rllDo|s1?jI=S544TZRxxYp zWrYM(U4K-*3*w|4CuQj?S{;WG50Zd$Tjd+5omaiVhTPCsdQ@buGj?0-WI5CY)>ufz zG#j!MgBqFg7foM#%wt9|*Gb?#&?q=hrX^_x$f8^JaiX6+0qpiswJmC1wmsTe5g+0+nkaBDKGjH4;XoRUo!GY=Y*q?ZZ`5>JQ3_hoWK zmdO-!jt8oxf2~J2>t`Q}9+-;GE2b61=(NzNegP;pf~cC7lvWDz3v!NzdEw)v7uq_P zy7{OBMmf$f9DJ;<3mOF`Y7GY2CY2K+>+XzehSjpx6{W~tIhmFt|H`A7Wk;osXSPL& zqNBB`nI>4SkorijTfi3_JC;lNA#={Ub}OAqWXu&VIf@*vLLAiCgCbQK^kx{c$(@?= zy16kXRN53}C{eRDsEY8o%HajD?F?QvL-2u$;|9!ap(D46QU4Hmz`A+};IX<66|Ibv& zWq(A{RH~HeZ}k=+Nn<9^NK06}3~;@0yDzxh6?jQT+=nc({vqsrrc(hc!y?WXZ73sK z=)df3Z5{Tzdz-HYhrPcKdOLk#vK|b_G3cU$9*S+WA>#YH2O^4V5sGW!7I3O2N z$E+1N?7!I@bYC*V`6X<32{qkIL)rFrZxDj-;a=Ds^!A|alE3da-yZD$hcA9^9R2Ov zFW*0Hd4F9yXfB;xtfaJ}~&Z0>$|y*ub(yKmqA zwb_u(4EDm!t<9Ymhe{<;PKHO`+1=U{{QMN;PT#5@>DgtRcJ=j7f#Zs0vl@SJs9vu>aHbq6bH)0`fg zjvDu_cm;uT0Ye>Ww!HiIR_?95ecQO-v}?JD6oVH-_~Prvk*2Uj-~bW|(xSsxu&Ry{ z0&~$87i$PSooRXFScQ{8iQYUlNz*6Dw1PK4@87!_j&Y;nVy6xr{DLd%i}`EQ6(Huy zGkerSV=}d=iqvN|LkU2@R{GR*OENW$)SBq)L#Zg07fj=?dzj-wT#Uk5Q_77&O;~W* zd&ih+2@JJ`+Yf@ky+gEc>F}^njUy$#Hj~-FnL4VHvACn@m}YNI;kZWP`)8Ms|J)xg z|CjHQG%c5+U&?kgtwwp#PO^#=C()2B!A4Y~3H*okF;D(qeX?T8|0@sf?0-JX2Y8dP z!RUA^z$6+t;SCy~7wAE}CyBT(uDmhh&0Wo0gYOw=J|LX%Ew+aqt&aKgKdI%|l&# z7?sl~y&(pTIueB=io(R3Oe=4Esi2QVO62JKLt>ANk4YSpxP4Z(0me8=^X#^$?+xaA zD`|?Y#~o`gW6`FBQ@c~(xxM6Le8SiWUK6}Zd`1(7Z9 ze3T4Fn5U1DaWZ`OCqSvI-!|Mh;>B;=&PZ}PI?kuXZJ~F3$<(SI4bf0a5^cv(6&*(< zK{Cdh-s!|Eqs!8h5Gjm9cT5os1`Mu}n_=F8yBl)}wF1QQm@%y%Ixois!HeWJ4MBTL z>}AtCk21{sSP;-Xc#$_I)hLhQiaehd3dVUlNSL3v$S1&iXk;r$EEqxW6=aFrENPO; z$m1ZhsJShyI^x@DIZ7s8Qel){aMY5e>4X&J+Gkop7{9|^Z#*rlZIV?~3fXV`OH3vO z!J9{OD*xhn2YpPE%k``UE>8$m+fMjfg5{!l$X_QQw-&~Ap`5XK4dCLVgd*v z7fFdZ9C{a%f|Mm3al<&zlJdL0SCZn46gQK%Z-LoD_N{T*=5seo@TPn49>v|lr>J3? zw4sNXoPF?Vc44l)vE2u;Agc(RkjNRsDosNI&Rviq9iHO}msD7(BqdromSk9v3iBl- z)#4KYgX4WJJ{ypPz5dL)sNRbs7_af#NO~}p@h#zZp5{yOmg7iOpCMF`vI6d`WAFG< zdyCN01F6*Q(7*xSrU$ksN#=DoKh=tuMd{Wc*!t07|FfSyUFScOe|+p|aBlwhl?Uei z&+3y0cjv#)@wxf=&q*S{kj|3$)%=$s8jxqQ2lAy*iKze`DX+y&IeS?(nfD|=vH#>ZC% zo>*Ej8KzM|m=ZaQnO8`JiNrwq11$osrv&8#L6{`|J+3B>Z#85QH1UGS^|i^eDSph- ziYCdY6LIN*>qTz>X)q>vl2uHqRRi$R`$zD~rLl;`odC?XAc`Bz(ImO$xiRG2dCH$Z zn@sgb`k3;cnBrT!0+?t2v$FcY%>T9e=<%KW_c=ZvVE;q6k~Yn@d25GIP*}55sF}}G z+i*T!-{d|Xn!Jt)4maC`c-t(Ee6XMpr=#??ZwUak_e+*y6*}-v5><)%XT&Iz-`c}8 zn#QCJ0Yq$kav|?Sc4}4^v8w0+DOOOafjxVW1NR17@l7!a8YZUQix$%+3C!d%xu_+z z8K|ixG*lpsOOAs$&ni&$oO{y=AOt(SWlXT)>j+sC6S51`T~5FY=(Z(0Y4<@zJGi8a z;&B2#(5Hk8cQl3%mFvELwdoC`B4+w_Pmo=FE7iAj4{^L^mGIf21_<3`d5;BLG)@mnB(bbDfW`av`E#er%5%M9z)?JDUzy3`lKwUq=f!)n{Gge z^{mA1!wG~eZ?E#%g?QU#Qsu>^><)$iWlx3WFNfeXslHkiiU6t$5RUQW!8(Y3De)L0 zViABTB8GGceo?@N*At^y#yEK{AxWELuj|}H_W0to&RGB@ks67#gX8tN&deWEEGz8aB z;m|S^#9!oRBm)I&gL)i_hSci-*^bI?6qguaJRPs`?X%_JVX*A|Z8>I(eE1FzyHM_7uo65JE1o(zl7cqzAXt%oBw2cij~@lg zvgKcrD#53#!DIP!oDWA4ZDS>P5Y~Nl zF&XAXRIxb)xK>tXS0&>pNoNkC%JUSx4RDQ>^Ra1EXg^tAezbgYtl^Wcf#E1h7;QZW zR+o*p3gIpTnVat+WB?`i)nMhDVC9kV-k?Bp0hUQddCSi$Pl9D--F?mbTnQeChZ0g{ z@&wbkY!8cRQu4L>b?`(MB4wInReO?7Pm`=YA;k$nr+3&B=n7a-Fb@&>Xz(9+`7l^n zmP_hgmQ1k95&&eBQ3g)0`Lh z8E~_@yu2b;eoBDU68d`On_yMqPQGN$DQSL6G6sRtQIU*`=!A_$L9;O@Vjxx77PGyw z9DEb3N|u51#kd5yz`TsgiL_A`!==Ceb?L8kQ~HZ?hHS7bj?U6%S(@FW9Va-&!~BdC zk?_4?Z*lrXQ;=gsZi1s~oU#@LVupk7%FX;*E=pS-|c#lcVt-q3#MB)L#} zYq#MyU$B@flfFF}S6-mM=!msUU$^Pvmc{s@#=o503FQqqCX9B+2~LcZ8nq#wacN+& zCGNGjR7|s=Dy{cCln{5UQp#bgZ6I(6k#Tui70_^vdxzwDvdkbWbs0&RT33teVIqYyq) zUQ0G$6yms6#bZ&nD&c*W_r?k5sa|^`SS9q z1t=6|)InaCa#Q~_IU&Q#VJZ zh1|`vm$K!*V4UB7v?lDI^P|Uq1kX=;FvcS^TmXrDP~dG6A#1v6P@viR-__NXherOV z)zt@2?&80Emd}+`?>=ZXs5+vdO?9KyprNAn^1Nzv8sc}^=LgF7t_={2zT;;b= z_Y5r^v>Ia?i>hpN8c*>PhUYtB>$DqQu6Lh?;n(XMt%n=oPw@S0Z=>~9Hw@oxJPpHc zy3tzR2*bzgPs6bHWWAMdgqsNz>;BSheZ3KGm-wUVLjCYD)_JngDmTLK-{G6I3w7Rz zIuE;H_%;6crrSE-2*Y!%bFtBS*9*g6d+?*^wH|lFa0)+Oob_7UVYuCTw;qP?)>|*a z@I~uQ7`|zB!w}m!>(T<#^)Q^W0`RW&eHeaEzwx3MtmyK37%rwEQqP;Ne(UyJ)yARe|yJ5I1 zUqc(!I{(^ZP~(3Hh-_y&3@_JZoekO$mc;k?6Je3h@SE|BgS)9f1|+e;zxFohXoq1q zgszHpS{sW?Jgu&W;ZSK~GwhC7j|N6hyGTA-(UmSm*{@xs9K_iV40}EEKM5^N=WE%L zXztMlZEm%TR4}_at>%c;oOThv9}CDgthsSF41fLj=2qA=V-tL;(sgC3aHYM5+CY7$ z@T&U+sca10cQc&562DjLuzbhsKxx^!Nookquj_)~T(hjwAJzmSq19z;vbH2l`3>6= zTtqa;c@4gi4PqI5h7B^7z$+~=C=dzyAXxK&ST`IqA(9i&Q+kjC(`Y%PiyGGVmiYEc znf4*aA-q^w$Hr)B#{M96=2NIu*=4Cy}e&jQ;7`h5>ne(qdBf)DVG zP2$G}AlbeLDGFRa}jmV)VXG4&^=c64LOhUzt;-m>wcq-A4?;l zV`aIVBw(_#SP-}%8EeIdI!e~{9hFUjR=bkK_0maOLKXpdRq8Te;yn!!If%wnisJvyOZsJ(fwQR9Zoj`W#2KllZ|;6 z3!x@}oe2SKTO~Fo9>dLfSkT=13oM2?bi zCTvLGs1ecYvK=6hm*x&Fmvt>~H@G~=%^OO8`r$$^Sgk8^v2tioCP8jc_P)m_VN+Cj zp-&X;V%FYxBDau;ZXuGEco`-!n1mu(oV{vR++4|!27U;`hbRO5Vr(?OuA76G|4C5f ze=b%nrdVac`dpc9(H+=0q!=V-(4H)!ay5|CB?0P3AHc~-$i%zb%IaZFFh-pqqyA;x zUO$q!Kj8IwMa6IR$njTE}NkU@80IutxGetg@8x8&x zCk1W0G62)rXU{y@8NveV8;*c=0GTu;8SqRY4_ck5lW$BIma$g4q;q{+#54a7Px~Nz z8zg9vu1&Als(1#iEX`Q~Y_%H`XOOqCum7YMz8L%k)(-ABRHCCzeN#3n9gLaqF#t1Ib$ zQYWgYY$S%|Y*OvY3kQ3_X0afhL)WOnu$w(M$(aeIOwV(UJKTl7!_8imHKh2BDx&bQ z{YPW1p%UZiPhnSGEJC1h_`?Uyd-KEyB;)rY#TgMfR!F3+U( zJG(@zBm!Lp0mFG>X~X0$Q@h{t%IU_O*~Np>x+30bJZM|xxN^|)v4y-`h*?Ui=}R5%_hA^JbfGRR2?`(0$wEpZote9ZT&MaRE@Mq&3izM7*gmA?2qmFvTsEk%JU~P;eRVa3z$+Y6t`n=-G!`T-X4si%}n_|Oc7ILu=hWIWY zq)U2WNCA9E#tS-xa^0c}{z`;z;#@SXiEcjAa?Dl5wScH^q%YL zsh<=G4K0oYU@UJ@T@c7!ROfg-rzT9fl65dD6Kk#_Lf}JntUAwF8iye@h_V@cq3IWA zLDNIsQ?e0;$%c;22OA1Db(Tv1qfrX^ega;%`I&x^Fplw z@cA!YdHKck$M}4ut0?E$^9UY)N@i|zpGSWR?$iCO+{Yk6h0)+8!dwzWvjTWHS^wkG zVB^lR?|1yUk^SEXW&@lP|7qpPs+s>8e8TVS|31g3&i?OH82&9_@i+SuhCkqeD(?cP zdDPu#U3SCpA#QVz(1I_VZm2-p3w_3K_3{|(*Z+<`JH>+V7V_fV)3 zS6_6u{Quc|v$ZyorEPTIkLe$T0GY=}HGySJ(`wp-`V1S)U?GGMZH}c+(kLI|N{=3X^Ky$rz5xUFYP652(x5Lwe4P*U`S~0>$AL9*!;JqpMlNLT!}a%URqvOW}b) zbEmZ1xlc#INKR_4a(G%kChI#U`v=#k;!#S4BEtt+1*8j?#iih|N737|4MyS@w5WSm7@7Kv4JKJucY!GH4y}1x+3CV)cWtz=u!|@^Dk&T2WM! zouucE7hD3z7=vPU481%lMep~#gT~ujuc7ZZ<>OXM2B7(WL{QybSgYHrC~kv}M`N}E z+mwGZyR^gLbg`F~CJjD8do+g>spN7Bc9ZFIg2O6I-$VQKxj73a>#M3LuEGeRm+)64EE-NtVd~Axu}r)~Lu3Wff7*>;Xwr>Qt$J)LEkT=`rd8 zj`6Hfk1*dMJq$Ca_8fO_WS5UNE3`N$zI%76rsCZrn?yo_GSLuTvSDI zL445IxA$d8#&Ndp`D8UXOq*|d-qcxzUxQPT)Pu;6Bc&L?jyVA8eg$0EuOBc)H@spB zan6@8_*JkCZ&DQKdoPy{!jBh@7 zecjtk9*6#L<&yb0og(zEC_aNU^~os;3(5b-(}T&$Zx_?Uqv<~(|F85qTK?ZyUwf7R zU*c+&|K+;>0{Nde*e?GU#d!_l|4&H$?9?I3LO73yk?~wnyv0x8TT^bcv4RPtk5@~U zcyOltOY6)p*32xCTGKGAv(jv$Ei&t-Tx5{qk-P8+$s81+o_&}GDdV2_J&SgPS{S01 zkYtOIB%!8q2wbXVMI2)Z?V#6D^<;tNtl~%)y%|aNavdip1Y;eL8gBY-&qAZp2*YGFSZ4zJwFykXVZjZG@M(o`~$<~bmAmbcD2xqCq zQI+&rz&+vPu5BiWp_o9)o%o05V6-_LgJAYhs%SX(<)7M&5@P^E78|J%>Ca={B7XVT zycUT*!IwKuaK%a6GU;pD?T7NEiRS?PyVf}+BZ)dfN@guU<*iDNnd>Z1R~K|UQU2a#3?|F>nd zS_77VL%tD0r9?3bPjYY`5g=>bxLoQMQB3_nL}6CR(y2w} zL8Y*4nR;s65TzE(mHL<}J>97EsBB87K=hf;qwL`Kp#MC?7Y3XhJzJRBv|gG^OVQwz z?n*5PopVx~E$}qq);4(HwS~V!SW7o@;5lbQHWzLF@WLsl03R3l<>>%s>OoF3sEzJX zc2-E;Q!gV_3w#+I=~*2Y;V+$whW44Wa#8PA-1ME$#bJ!%Qr#gMr`&N>a4U>s%ysqN z9|`K6vW`f{u~TGkWb}B5C}PXW_eCGGg3oGwK5}-2G-F*1#7<|$q;_@m++hDOeeC3( zR4@bB;F#|rnhNW=3ges$Gt-qepm@PeDWC(?Y|BN9m<@Dz(qn|7eJAn|5ztBEuUlX- ztR#-s#Q-Bhf|OuUX>~9M5Er0auaHPJgmI`1Laya#7IZgu=iNw2Bo@)6pd8a(`{?a% z9Z$8tX;ZMRr>3gaS+B(d+DS%0Bpm-_m1$S2@JY*PNB^i5+y{fNIs#VH5sKq9q&?=E zgzZcmGj929E9N0ielMXlYK^$9tmSvH?nWdNMUc*5Rqtze&b+NzMlDfKEPRXX@ggxp z?hj7uR3L)YAT5E>AP<^QfnBOWD||vxfwsdvZrG8a-YB70hEIT$%Myej)g&avzd?*i zM@hq+1)l9=%IG`Qd{tD3E;(h(HUC~8MLhj~iD@KTf7pfpGX{vo_5UX(f6UeYySveYt2BcrikIRwk0~pp)@@^$Xq0{w*;UCVB(Nxs zY=wPVa-8z`7ldk4L`2PiAkr^}yYKqN*T172@C6*1q_cRl33{qhL&&l4WGZ6=-gM6r zk9lCTxQU@8jjG)1-q1~(RnCfYO*h?CT8+e;-m=%#EG#zH(q@(Gc(et%1f(G(c!NXp z-JmGELlZjrF>V_O+j2}^36I2Fvn<-mfKl;*f+w%rFM;n)D`P_|a11XykmO8Kr)pLx zuqO)%v`X8y&><|@1mBd%?gO6vP0q~#M(WWORX~7n$4(MUUc}r!T2fi)G-efKom!?a z42f(SmOFR|mI+HsQ;6?_Xt>hGK#EOJGGbz8a4}7bV-n7bDosUF7r%}@+|uE?QMS7Z zMwuaq*Vc@Jam8B!E&B}Wj>3a4t(C!wsx+oJCinA?{Hyn4;6fbE`@B^(WDkfv6}X6d z&&T-b5A%&2RYyQStylAgN0UPr(p~Uwj4oj6E0#sOg(n0+D*&t%Gwy8IY}5AJwvxE zP~ss)Fb^VeCu9F7?vj~Mg$Py)z|GbraNZOpTCCqsTECl0S&f*gt&E3s3uSOd%AVvb zSWqpRd(!5Y8x$sSTI#7&-BZX%3(sV1)#LurM7jkD!B0<+2UP0EqH#}>*@wPomqcYx zEM`<|)XY94z?{n5PA^rfFT==uix(bhqn&|zlrUn6+FYgvCy&#V=H|U#Rv`!NF_L$H zXQ7j*IaUyuW%hwi4I@gCFs;lQ_EsWB1B~K(`i8(2V1)x}#$w?{xeeS8hx!K#VOG+8 zQ~FUUl7d5yX!su%8+}Gw`V@yYvTsx*UNLKCW`7*pp=`T0wlhrtT(g@aZqeYIcaMLK z4J9^Q)db^n7J(sBYdn|tDZB1;?KC+x!Q!w;lXVbUNyts8C<$;rtY4l%u5Dz5h-+d( zPgB5@3)LDS&7;yfjL4UKjU0i8V9Mt898yKecJ) zK}ehKB~02HquTiK2;Y%jMUgT56h4ySTARc}h0!h${qwt^n{ZF`(T-c({>IF?frKq* zdIhaPsA*46%1Mixu}#>r8}tCz;cq5jaAqff)sKa+{fk(=XzQ}%=|Jl6qYikIsQ=>U zAIuU2;=+C`PQ#*=RCiS;jix2Bnb@f)w5ll&AM?!*^NPX@=AX980)cZHVh`Z`lyd9Y zqs-=di;iw`LfXD#l}4jphpl8P>$EqcT6rJKA3EqyHYD_)?3;fp(nLg z;BcP5vG51Hd&I4IT--yz+3en_z@P-(-owuuAe7hCNtbI}Y?w zD9~euSydR;Cg0B4i9P=i zKh@?E(OBtInxNTB$em@0QCm(en^J_@7Gl;g(+b5hYGaKhNw%|0e0X9{hKizuPicXQ z5#O&$>!FQc$F|DEYB=v03V&urfe$DO+?w$PLe{K#R(4A7n^nfFImrmwahtKOG+(6Z zT5eNIKUBtKqNo;Pk!o4=TGVn>m9N@&%z!HVB}A$%6h&<%)qf>iS@Dc<%Y`n{Bk1xS zmHK^I-6FfO6%C-yp=vm5p8pcu`x9gDb2~g%UJ-us1@aJRvJeOi1?_KhIxjm4l46x# zL{%J?Ri9Cwg#j760P1Z()vv9w5ec)7vN|@xI6mV(u3Rv}J6(Y?`#zc?L9^ERD6x9f zC@(LDF*iS+&pK7!0-ooy#W<%cj#LKZOt!?06rl{`bIY3*R;?D2vfVzQiLp1&jw4RlOfEG?UNygh7pSV z_UbdfAp>%zPLHxbUHE{h$Oqwz&w77aY*O+X@L-P=#U@k3hsRB|kVL-C(WX->a6=!N z7CaXna@KM?>?XHbo$}o+q=s3cu>36AN>~ z_%#@(ZsaOge=kf%Q;n9f>q%0Tul*dQ`V_!*RLO)Xk>3irvAB;CRFeRZ80R;XzF%uH zu!mFb?rc5x+NV39#Gv+x&ZzRjA*>7*(6fI)+@qBgYkt8(#FMwuF$-DC%0WT(v%O#C zQ4z|5IE)M|nd)~Yvr`LmJz2sd(Qanss*g_?PS%L~4|Tr1qsW zRV8Rk?N$iuA2n@>TE|1mINYq#O5y~L>RNxd6T3QHysdgZw>u-PED21{)o zn)2iV(ROMgLoSS(XtmKF)7XUP6DHOdAwwTP$durdANA%mxtfbU5i2*2w**2bNU zn8vf!lp3x4sC|;YEpkgIR*_)!gBEkhNs4bF0N$j_d}L%^QHj@NKvJZoA3afiZsWu6 z07NRD5D(a-jGhtYf}-}kaXw&DnbseHZ#1f{>Z-pEo?;>VhspHf=JfDr`Xuz%x%iLW zwa&W6e_h*HdBuNtiK`X=fv@{7z<{9U=GJ~|3V(_@iUXa=qG-DRAd16ws2OwM+u3%- zVz&OyiF_Bt?H}p@0k8+2@1IgvYN%BQic+FMYd}V0C_3YWNV?@;$cwP zRN$kTSevdcDv&5B>g1$~>?jb8$G|U|2P+rT6aqN0OIxbPC`O{m<5}+* zVKnhUF|IENz-M*s>JXmR|2vpp{7U7&i|g6sdba%S;(B~|Fui{|>{q8*5L@xNZ=vgJQo`^SoXdiOlDm$tE7L4(R7L-)gmUbq zhn#d6U{@vDo&qWhP>dM-1>$2MH9if1P_7C9M*0blFcmiNqvMK-qZeTH3?Fxc$U;PT z$JhUi8Pi0nfS5yPGWzXixrly?9QeGFH=-z}95lpMBwGx96oN(p)PAreVUIlRw^&xJ zoEt*!s-zKakB^MpLb+8|h>McT@yZwmf4+qWSjesahrS;3U{O~V@hHB1Rk92 z+mwmmyaI_|85l!0NfU}9^=kdtQGk)+4~4P9Lku>lD4H#1?nL`x2jul@@Vwl>gn)@A zrlyb?Ex{e8@soiAE%%uuU#=cS$f>@>Zx@^PZxeJNX)A)osokt>j4%#Y)b=2z+|bk0 zAQvn7NZF@pl=Phy*r61IqNp|-{P<~?Ekr2RTVal(M<;y%^X+O}`-Zzh-Vt0-stLps zUGVKKCiRDQc9M&zeen2>2VKo9k#QvdADu3Lzc@cX7$06OPo@`VN8e}5->y$bhrblar` z=XFsWJHfp=*>b|b&RakS-7J?b>!P@H{NGWCH+8Xd4y+mRunFOWnXf^P2sZ?J>~E=n zvm!y>v}zgbF?Y@$fC4xaNUGZLk;NPhT*wiTAK;Jo6(D^yIm$$4`YRzDB)|(kuftl|gjX1Xv|61E~nIMP#DO@13tAp>8BzBfKmH5YjJf*oyUFix0K0 zy-ZJ|HT_3Ri@xeZiA>slMHP(eonTyVVv&R@g4C#qCO$x@cizbqXZuqSC7Y3*MDC-> zOTtCZcC8OaFclkbV3g+~&rT{N62sxaC z=dO;2FBKUoe+7JSb&OnX?gQVN5e5X$Z1T?gV-B{2(rtn*ad!L&;@Xv)ZzN8`5ad!gB8vk|cQ#LFi=#@7<8z+h)>Y z@>6EzK2RVU#z8oy_9!xxbaaI*dpbM)aqxZi95c`y`EPxFy{GZtS65!^zrD!SCjZgWKh_GA*+X-UK}E5) zT`XNxzTR6?yA*KzctIcER>dHgU5@MGQ~360uoC&l4(Q%J_i=NlUV2*>#VMTjvubIj zhOnEW*zT3i0$i+t?6?k(6mQ`1 zR7b|(^`H%2+Qe_Abj&O2(kGCGz6?<1s4%$@lZ8xh!led zY0?<)e`BM>Dt4$|N8qo8h`;)-?bWKY{Ef=5FA5Y1k(AEhlrpq29lC6%RdFs%Cb`v)2;T{>0rjNk|kmp@x@5N@6vf_!N-TmQXfEe0Gzic4YHA zQ^U4>9gF6x6kEge(psu$x>S-r3ER_6$ga~AK3j3}A>ff_z=~aZxZroM}iu6%sEK#w@>O0YX zH))?X(gN*^w$75aSi!*%;#>WlkL|G%KUE3>)i%p7XqKMMUBt&Oic-62+;mncvN_eA zmlGHqOW?u522bI?P`NbXKd;BL)AOSsyHAgPOpmUfQT%JZ{?}VuUDNvC%KGZ7{`V4B zi~dJT|LE9Ha|_K61t^N+x^OkVhwjv@Y=P3ZQlhHYc&)GZu}+k?{&^YL=51B%T)-cb z(m4yZ@8ORJ?;rSC2g%W?b=MH=d6N(jhh=aX5AU!W!a<#(aTVC9_dP>lD9441DUis^ z($S7v#0Eyx(f3QMO;M~iCVspk9~>yIx{FyR?@vAZ2a)SAHsttkzne4%V{o2sOfKwG z(T5Q9^asr5o)D-+y-SqQn;WjqLHFD=tf)#i7^;}nmsA_FS`x?3lnFS_N_)b?e`6Uci%)6AhC&UM*-t?Hq^UfH9HzA1U0ugJ)ZY~=A|fFyNjc_JB#{-?-D27h&0g61 zPf9%|l5nlqkh~70V_5ko&WT<23!0kpvQ(v#$+g853P2x4rgnlT4}X$ zt~f#w9cin$NBizmo8I$8+8GLZ*P}<0^)?7I)>gNS$^)tj5z{L@R!BeK^M7DFigqt0 z|6MXPIbRHs4Dr&==x1r4kmO>(f80pAYV|uuPZNWr15V&O30blekjYG#&{;C^5uLt? zihlKHdeE!GdFIp#xG;_;1QV)Sd`6;dh>EqBP1)A^gj))E5h@x7Vn_yVz-Xa*&&*rC zG)N5QYZHd$9 zxSVZ0ZXBd#-$7btLt1Vt%4fC81mUtEP9Uu^Eoj#0yr4lDy&x^~Lr+@5+W%?{ycBm`h9Yi`ZSBJgRcJW#z$k}N#wC4IwIhuvv$n9%^dZPK z3l*fYja5E?q~<}uQaQ$!N^B(x3@L*YRpQ%HdngnS5l>G-yUL_P_dpTP(o}xQMlvMV zlBz|RbKeIjX`D@-CafSf3QDLYsh$|^8La#%JbRX)Lob>m%gQ{?*$+7UtI|va_ZF~h znKzlV8r*%B`$UQCBnYX^Eru{vP#vpffZ3t#luA@L9DXoG6-C<@rR2_CSK+KHK@&3kQ>E2v{d@dYLHm^T%4amaRRCOm?Cj`Nh#iXz1kYEsNc1EWuph7|7!2eVxb zvYI7WB$_Jsu5W1Kt^Q`u!FLKcN?FB8%pOKvOTV7{ibgZ6#Ifws4^v|TX%~HYP^vp>{;5i zJ4b|mcWL^AEL1M^GtffTzLp zL=}qBf#a(XFQ4BSB67Y~q7aXZnk0B3%y5AA<6b#GIx7?imPrM|-Y}t!yd}at5d6&I zxkA}r=Jp|^CSTci%GV}f7tpwVh=&f|4&O>g8jJAC#759zT9?{7>F6r+kWN{Wd(x(; zQ@IjB6$VB1hyPQpsd9QO({6Zg4rHOIorY!8SP7M6{+u^Jg)?dm+EyYmj;0x`R*nB@)R3n+eItX%8vckS>jB!qO`jG=nf`$%>O`)Er`_Db53 zl5d03y8yfPsY~bn3{DtFoRFL(+|$6b#+)SD(vl;41S z|BQPI_zh@^UFR169cTWwHbr7THkLtvF(^7z5T+1;5>VnQOcNs%mR}}3ygNY|jIu)~ zgfkTY;E!Qbo$#_FMEZoT)(KikKb}R1E>KWcK3vdM%vlY63dD#uiKF`e9Gv0n^~h_% z{QrM4{;$*NbrbtIl&-+;#`_s?i)SMqXKwA7`Av{&cWF6u#djPxF+}o-NXUCUBI}YOvLe&;fXzN3pLnsK zlmMnk4Awy?orY=3CRe}G{C~xj#ee&LF#dit8XY_x_9b5P=>N)Ug8#PBdCmWQk;|n2 zYVDth0Vi6Si}<@oFmK+&w+-+wW$i%TigTdv-8o&Yr~(B-eO7u@}K;T9hLMg=r{ zO0N+t!-JnyJY^)h5e>~wr49CZsj7M_w3TkV7GKY_du4r&Id7rxF)KWK zCFVv3bK`b!z(uewdQCKbfls^CKP!C8lccD)iee;MFDF-)dYHXdyZT*2jR!50 zZryjRWG)#P1AMiwh=XRsukdE~=`h%-oX&Drg3jXYTdJq$(YTrPl}8>n0n(Et?Qa<= z4?ZlT0X=VrIY(8>h~*ee3!IHqMiEC}%7l=N=Am2|8CiNUlr$qCL&yP38@*c;aOHZl*q&ZPQT}ow}Qs zQ>tP}GPp&{rQSwpxbx&Mp3Ys3lccD;6<47gm#q=`x=06h@MKGNP-C0$#2*R_Be{U* zEvcQXV%9`i`E|ajXn9qnlJeVX@}M?$BBxYm!EHt%bWeFz>NZyE>;O`Y@QHyssGM@# zJ>pQQSQU!8Q4>txrD2wv+?HU)gDIXWEDbjan~SF_IOmA%x1TW<$VwLFVC@yg9(@1&T$}G@1Mux=yuB*D({I0a-)@I* zFX)Eb@bP5Zn{=;T9jL)gV+0~b1#r)+b_W=~*8kIyll^!7;=|W?~7C4DsdHWk@SFzG*F|8u4 zMmE6McYcpli&Bi24E7W@*r_y;wd^XW(U9Q>BNg$+As96anqVjsu-gl+;H z@U+(NCOvJ4-Gwd6!v@rl;;t*rZA{x!Y1TBE(n@bkFrq34q_{~9#Q35Xda9V5BdT-f zqcO}HBl#@Kf@*TIR|q)GYvC%Om4lX4Ej{`tn{_9@3sBT^x}QBl1=&J@br~~sjb-fq zbKTFLse)%b#@VNvaDhj27ud3i;43=mD-_4@kt%auk@lULcZbrM>jPyvNeS(}n080s ziQzKS-$D-?>lAjYf@!lJHc(?jx0O+Jk4TE>_uM^;r+H+;o8;oZ9csh)X!;WJ|EdFf z)$)IDuMkq%4`u;WisQU4gVS2uhyZg@wd6LrE~FOL&I;-GgN9 zvXn>Xy;+Gd4b8eLxSHf}UQ{u?O5#@anGIJkbb=3SD>P}1GkBILBT@l9Dw!inS%Cqp zu;M37Xv*d-QgOWrISiTL)1!vEY-3@?rv$)C!3Bg35d%B8^oSK&Ija`6+{4bP zZc2*Te@)T)Z@=>PKTpPgg#a*z|8K0M_P>qJEB}9ytBwCZ!vGi>m}>!C^?+Ys)f?7M z5P*-THGDn@D%H=bxCEi#n2Ri>V?TN5X0%|rFaHp6i|}n# zRD;+QA^{U}3Qv+aEj=RBfgA5934i}UjAlO|k0a;X_u)F~PYiO{j|SIb2n$mNj876Q z@FzZDAtT+2xDX=9x@|oba7gQ=R{Lb^2b*~xgr`hZ>TUt&(0lsbWW_er-o)%05f)rK zf0`yWW$~dmGuvM<_KeEf0jc~%5IqG`<>%x=RJKy4QWgBt5}PE2M-~dug0+9I;hjT$ zQuS&T&BHf8zH2=m=@`>M(8FN83(#oFMr;N56d=f}t_vXJPa%FpnSa!uO7m!sYZb6> z%m^)t4X87~F*C9t*W$akvVP%N9Px1}BYG>3TIS3fzG{6ei?FLvpJ;GafL)|s9Bd9x z&`*fqUN6muj0!{$?_E9eZWY9(X2b%hHvR!9I-*BgY?*1}3?quNWe*CdLQ0c>-<4?y z8=EDi0O1je*rHJ>Tb*nxcKb$SU2EkgZb0RGj}b#()aeTP3hfhtc^COKyoh6T0n_Wtx#n2I4ygAvuKar{(~#2C`+I2f^VdUGZ^@{aEiL4Q=F`b6W> z3#hGVbjHZmhn(eMFNBvhcZpWb6-b6y&Pf9OnF285bP81Z0_3wR+gu?YU$6hQ8vxA% zH~jFUrak3+12yd*K2JV!Mfd0D#kr!peJq3L=p7+Ka38`48wtVkBKz&t5b$4hnfCu@ zXZ*`+4*vJXN=M;;ch-7qukk-Ga%J`Zg){%T-G6?f|00(IVuNJR?~d;D>!qKeR@s{m zU<>$yAOZC8CuM^k*ReSGMP2m6w<~n-ZAc=W?R(TW0FrU4&>Qzh6G{PGdTbN#ZV=_> zR;!|a3q|Gbpu(I7pJ^uEUvUe6+|}NEfWIVpnj%L9^FU*sCSYGSMR86l#w^fsCz8K~ zdq&mL^;S__M^o)^yv5AvqLe1b{W^eDCFp=GrMa0nAC!#1EzcsiQ)NrJP@;spTEYIR zvhtv4I$X{*#8N3f|Il{&tahW=*^nYi;bCRAY1fLxBz1^un&^)1pCaD!*}s!z7qar8 z%!$o2f?YZKw`90lZi2MO;rVt$lENJ`3HU+X8rgs+EJtFVFF#npP(d0;A*}kabmg)e zx1BKZpv1u_n=)Td%{C{hjh#|#%|1h`Y}=;L1uEMMe{!ixF2=4S1o027d-uO+{=kQN5J4W z%nSO7LEVhzidi4aYt z1shB2L=Ds*KSyf%yScvj>nvt@VTCcZw7BcfXlk}}UpOARu|n~|O&+SKu#Z{jrm~|E z$0lHN6=~3?@@bUSOkRgMJ19PgbMx3&(0{&l4HHol=2LD4kzU^k^#PbhgWkD z=SJ}*4h&ut%~@(Q-3jFaLRpkxrrB{Zqy3`!#!f6rDC#>^0ELBdXJc3Tl(|Xi+uC@X z0gad>fxC3#($_2}uR%g&<7SC>HJF#a@IZ2KEv+qdlS7+*&an9gKY_BXTf(m7!=-*i zQbCFdmg44w->5`h#Mhm2fCsg`iKD_Nh2N`;Y}S~O(2Qv;TWpoAL<8kRq4kM}G9d~| z=g7_}BfP?Nm`vxum`+BpEj1L506seXBl=Q%51(8`n4K}B)AgLVU$aSx2!;Kg&&>XEi%x9@1>g_rb$(?>2yDbw z_>(7AW}&G11op4CX^JC$$GxDZrG&&FaUoba(m**TmM82sQ3I*R>3}B*7_cbEMAFum zh{#XlLg1HOo&^Gp4sQlTr+>>7Boo|Kvs_vf1*MsDk#}f%|o=i1wI|* z?MIoNXi3atMJ!c9-?c6qf!E{<4S`ODG`kbGyNxtC)pfBAAx=Mya5y5oQBceEY=$BrL>8=T9Gz(1dhU@YL=>{ za?3rfWUK*Lv!GSi#eKcW;UASBn)1gU7e^N7kD3aIHa8odfDmwX+~y)H#y?>#<@*Fd zct(ryw*2PEtno~i>U;F^`>ytE_-j8n&SF)9_{bH2R+?3R~K6W64jE zjz*q*#QZ1ok9a#;?{Y|6@x8p)5epHnlk!{Zo~sede_#!`kff%c z{ulrv(`R=1$~pNT3c- z4-QG9`CI#q(!<$Rp&}dNaMECvtCQsW*iefLT|{S4y0KSuN4CioZdWL|^nPWcHv+Mf zBmg4u>R8bayrgm(awS(;CW35-ks@W9f=}}l?Fopb^*8gSL-%Na3ZTa7KsH5Rc~q3w zNNKVL*0KPDw)?$+FP2o!xh~CEiL~8)3cpekUY`OrNHr93>j{QZo4azFIK8qhi097! zRc_97chY(*3xnESxw#=mmJ|k9^u^Rwnpd@>v!PY8TX2@C*7_6tqRLHUo^RECYDJO? zU>(gr=3+%BKKrtzpVe1A&6ZyjewBvdMfL%{W5gw_MV*}1GMaTTM2Ek;W9ZVvWd1pC zF@d9|+|`d_1>=AeD!)DbxVCh=3P)->g?=2s1&4Y`$vJY(WFeUk&0ib`B>D#xjs97#`79uh!IW z@qKTx53$-e#=gh9wG%H{cdOE+H~<7(x!q1$sPWTCUBdx3*tY)U%&6quQ?guNh1 zxc#H-WJt1aIDV6*mh&C&Y=HEongnI2UEthS;anw9u52)fZS!L;9oy4l6CK3G`1>SL z94zjX#*p_CYN?)+bj`%r4-mSG9&*LUl=@7#Sc|kZPkiLrDFMT)GUR*LpxgO}a=3py zjn3GWP#?Gc|3{<@!M(obxk5YlRaO;6J5s}9hszd^Aj_Cby|5g_+1J9fJeb|_`AqNw zlb$MwU8x{T2>Y9;4{F}BrC}|V+?rLje8PMCi5KS#q_c_fL>y1y$$Qxn;|;2o*o_yE z<te%_KR{$>Dugz?3g)v)l+xLznNy{M7>U__vfM#zhSrup(@W`-Pf4)XI=B+ zzeg7bhtDkoGr#`hMjHS9ivRv1S6lpdT>Iz6e}`tC3k+8jdxeVw-?=P9q_x9dTLHYb zPP24cGgP)Wb%2Hc;!PzUtL0t4*na=6Uu^x&Xc*AGH7tT2Q6`PBX-UgCTD*FoasT)jFS@cB#}W|6iwZ&VifH+mYS^c_69{0 zEYLJiBL693$Y#kx&fpV~_Mw;>(*!px8VoGOIrZsR`$?>~YF9N`MLmtxsduB{1twKO z8+`{IclfQR^k8pZ;8bek!tgi(rm@1~YzSa{?Km(!xSv9kmDdqIk)X^cG-hCPkQ(jnM4>7ACvhdRUKzo`?)C1Imb%7JQ*R*^RnpI@%o_*D8_X1_Gus_hvE z`M{lb)z|2^`4-3iAui^7y@k|BXb|Z}SPp$OaU0p=Bvjti?3h^wg(Fr1&cz<6uEV)i zq`-P32PPVVjf8rygRleEAz@(f8}zwxH=pqi^PBeqma#zG&)h&%11Rr41zh7m-^bfO z5?S(Az?Q-63rwM?go-+xL@n3L#ffj&7>-=2Tmszk#nJ}F_tMd`&K4hOEahRJ6`Cnp zqSOpV-iiSqDmCfD%00rLMe(d&wgGtFC~b7ONQl9Ju#hyIl;!Rk626MCubmJN$beHV z+8X06mXlj8m{NbS4|lchjx_<9E_GC>#&%apXO2&jfdLDDJVm z1(>vNwuH(wPyU}AOt1b~`M`G}ig08%QY&)iUSdhd(D8lF1gv~VGGQr$%>W`Y zRhEmo+mc!P(Uk2OI(pg1AbMTY!Ca^`8bW3wpHBm&Vg^Mss`QSq0(Y}J!U`@Kl3Zx% z6!ec`y;fF(e2G(|MsvX!7ykK_Kt!zM9FXp7Ju_;KES{+Z{L*Z~vgTP$3}cx4JJ;Xc zdBaovFU=jM0%0wq;!rS8t|X*(&yy%`(x&u-C4=v(7rip8m)S?71WGfD(I-yVL&f@= zl}9o!#Z>KVK)99GWcAQW2awW9t-BdP#}8WP>e@-tE~L#;l=zuUmusW zqudD@;`M1HQ6TO+$5q8FPy%aEcXl2=n++C>?`D=oD~h4chkgP%o^l56P?6+Z?K z{D|FqulE9te!x|K{VUtE#|p(C#Hed6!Md4YQtowErnEGT`Pm&r!R2Kkh z7n0co;)TFg_?KI`HJFWcGpousXGKxsEZ!tM-*QA{se`JPhLdn-d)(A47=)m*wkGVN z1}z>92GvtMpGD9Bhd_A0v*FYW{t$*ilY^V2uTvP@rts*ig_Bpena-^O9?~~-Nq1kA zt!{Jt_ML!F(M>Xkt(g#O^q}|g<5*jQ5uh2`WG+L?ckIawO$9|;TQ(;iowSH|^M?&a zX!^Jq8zU0ZXKwta=HRNZN>{aeYNm`#_X+@9Y*)2}3!G&muo%pf>aA}|N&3$C>avu6 z)eEJr$+_RGqCN8~o5O{TS+0$#cDMtx`Nrk|UU5-|06rF87VebtuM@GW?`(f0LyG$& zJP%K~kH53i4{XML`B|8=!ZZ|`FaTcdSAl5Q_juay}|ChMh?f-u5 zpKJbit;~=9DT+@}^l?aK8V{(t;xrbWE%` zg)&YPCQOKA;viQE{C_j%yupeXu|(DZq1fc?r#df60ljI&XNU)CogD>B&n;c#`%!X+ z14^G;;mUH|+*hEX`1yi?@PZ~W_gcgyEP@euTryz#GdW(U0^%A%W3joIbGAl|!|?r3 zPJ2ole`TxxbJslne{(SX?Ra`HIeCT*Fo*y5x*Zk&ySlRa>i>V4tBwEjwSS%rKrOY) z0j}sz;VL+v0|@k4T|*SWtqbx!x(limkBDUHQSO#8(o-HOu;*ThOE+%!hqN?AWVT9EQWYrlZS*751C z3|7mIwki^woDdC0A!<0!hiNm_UypbVF>DS}VkW1hH5tKlvrmPn+Lzc`IufjCsQaMV zFR*6}!7287v(&~W3JZiADL{}0PJfD6k52rE$({=2`DYo;U+1NrQ`CmSEX;7ZOv`sx zNh2#BhD*fo({WQ2#|`!w?>-}_^dyy;fMa1Ci$~FTNTA>@=_N~yy1oZT|EQ~ zjfSObe_<-Zuqduz{bntjn&^jEup6Z;avQYMlXPh=-J+N>9qP*cO^TK%(n~}#G>9=S ztQl)BDmR`LUWH4CXqr~dU$rBsea^2v@I0a^3?jx8ndfQnYHo%K>5aBis1Hf+&e01q z1`#J~N}Zz2hdLXkolbY=SR3;hn7U=SPH|ACiRMp+0g<1paMs)}JB(T-I~;f6f!MA_ zhH8eYBLok{Ti7>7&wRS=fxh2*CK|Hvl{wworqb5V_Mt2=YwA!EpJJ}H=X0qP*eI7&nwD|EmX+EZhi zbqmej5F{)*{?Z}%IUj+;y(EII$%s-fb+uaP;(eo*ii>gUZ?SnM0X!A;Zd$M?(^ub= zW;;V;3I-eqzz%dqO5$CCujZ@AUyIm(u4Wh0qkqo+v%1z@N$fxCul2uP!tIsGViCy{bOq?)RprDl z)|w@Xt~4$eAL@OP2+D;~%SxnpER9&@&kCWEDxqw18HAZMc8lT`ryN6kectp%xuilF zsYgQnIH}E1D!o4R%jy2uJ8pSG(4P0^;1vh#Lzo~w93|!I?^JJxymnjE%}#JuYab}B zo%Vtu#V~=(@&K~jm|vncC)yFc-mMYI34EieU}a0u#|fW=k0HLKTY=YkwfY~DBo^TR z&kg^W>;GBX=;-*5?koPw%UpB#|MSB?ppkiApW_Nje>MSR_c+9RY}Zr}^i#cbQ5UE1 zdAj8*f?hd@ml#A$F^iO6Q9w)rj}3s|BBGtY1@VKOXa6ePvH_(s<1Ibo7LLN;zCBT> zbgaD39S4agRsx@745fS7L;SdHIka}2UBb1R*lUTe5kt+?gX|=r$HYss>MSvp>@7ks zo7Krc7-FC2)BU2kt8_GnkmueK;KM_b@RTv!OpIcpDXbkDZ+fL^<)@X&SoM}|EPIQ| zr@k?fy-%+v1Xn8`DeS+TmG4hG1ElU&;^4H7$15cQu|hY z73!EOmZR**Vx#rq#|RA>gTX@0id%33`K@*hAvHHVd2LQS{(!(G5=W(q`i&=y=HZdB z5#E*#_s|w>d(}hoDxH}!=QU3n(;^mK24%eq^tZt>$8imm^~kao=C->ie%hXp+9xtk zl-RPes*k?o^_M%1&ARu~v}M@l;h;o9o5$A_O*WEhr5| zp}<CHGgW+R9J>u1y%jRx= z1#Jj5d0H|byo$r{cI;VIx)fI>5KGk~1DQ#d0}6Cm5K>SEwNo>VoMWA4#75_5o}8Ju!}c*e~( zW;kce1wTn$Sr1yf5SEW1pQdC^gxfOkZXWHYD3T&UIZ_1zexxtEiQ0;oj-EhaZzheY zqnimJiqU0zh`o8Jliskj{Yv=H_8yg`l$ze}65G|h_^YVtTCR-r#x5_Yt#q|C0VV() z{MV89xtE~-v-`=>RXDc)5B_+r=^w5+^naz(TUYdd<2C>Dg{~I*A9uhawn_N#nK8AMgBLFTI5vl6OV1bJ8r`Zn0Vs zQGVR+l`g!ce-6UrxODDD2R~Lokn?I?6l*p7Q7_%s&f4m#P+%Yr$(&UExB$;n;&0^P z!`sV{Zc{M9MVci*%uAA(V>WNd6v{qb#klL(rS}Rx*Xh#xu7qUpl!-`^t5OQdWO!TW zX7aR%#E*Ho-%1Lju_>djC8$|`p8;UiE8p+j3_cFVq+=1AMd0UYqL@QXI6w}pZs~^O#(?)p_p2DT%-@_uq!K_!b(K5BIA^n z#XSqo>Wx#7WalsD!@}|t-t!I*a!aI@@2UJtB3G*uwXJ@54?#lsg>+c8@Be8Xgl3&ni7oasu7n<)koFb+#1T12*B!y~UV*MV15z351zNcW>A^cov|HNxO2Ox- zPi$gj_}8qexTk8nFR+AWdi;qd@LzmSIbtBidgy15~rsqn#7wB%;QwH%&lh zz2j6(?Tc(Njv=A-DzaH&D+s{`{-phnH+B*eDm`Zt0M}*u8LO3b z%M?1h8kaDmEZ`gd{)?SuDD!^cVUjWVau~}bB~`erSgT>toG9prQ~%;KzLavh;P(#S zu-Rl<3G+vrt6Q_DIo(l@;#N6p^zf{>2Q2k=Vh4IFc42upRjE?=q^i83)HI@vuoY=c z0Z2%fA(oz|y=4KMZCQm)s4lDisLmT=1FUQ}E26Q7-kCfA3p-I_5>TzqmmUi91=4OC}l`adg^J>XSN$zQCGzA#P22P@)6-PYMUb7ameSC78a#Geympt+F9#X;_wK%IB>~HZF z{@4r$C}@L{cSGec+y3gKtooj!5{2MOB~qucf%?hBH!$+@bOx}*@#-Q#@`+^H)e~Ju zBf|X9_ba?nx$7%nyV!Cf8tM=-iSok!X%9*jKo563bCR{4jb^oe;Bc&cFrtT#LPr|J z`YG!EO)@$Cmj++`3$E1vcX2(NT+fyd4`v51L;qLSS5o@ldyW5kk;|n2VeKF5?&CXW zUdG=LMC@I6x_?JnDttVYf&%!r)hNN&A!QNi$cVdkto-fN${Lb-Or*MY&69w9|1Z-e zL;gEIKNufgEl;KwXGh;>%ZEodza4y^JwqIvSO0Z=t*h}rdh4Cn^Zyc;eg659FGvN1 z44B_SzryLi^1g7fq34x5gcnWiP~%r2F}V9j4PN^V@Y?t4rSrNdZtIX?Bf>^c>!LV^ zU&j8n3;1JFyI*$RLJ``{(x(Bl*7|Rtf#q`POn?%0Vqy%CrS4 zi}@E-6J*cIi^QhzEHs&Jg5k;^k7L1PC31bmj0&(or1*H`mQ=ni%Q5p^R|jycIPr;j zLsz5CO_o*B!n|_>BZpeI*3Vd`EGwVIFbA@KqO~NbII2O*cC2;}4~n4Hc0y}tx2>X6 z)^e9~Z{$9>BKm0i+JkaO=cP7gDFsbm+r?=)YDq?-C5)Tqq>h0BAFaR{9~{7KsB)7A zh*Vma^znz1`DNP|OZuneTTW`+_NpOTE|qG?wh^zJX&rNgrdI{)Wv?29WU+X$O@Bt1N9N&P(H<05Sy5arWr8FTfidfNB(FarLK%pnN z7^=gp*Z|a(iwT}*FbG!0Ij?sH6 z>00n9v>m6x7bj(8gXCnZSyu!H8J9XXL!qyTado8wtO<_KYf8km>ns!kvWF;|4-6n1 zJ3TF^{Fw&D39*SPN{JL8e-vn4g)p;6EL$zxd*&)r7!P9dM|^{+Its%Gm8(}E2|h`8 z8v>3)bF8iyZTiyeBF!5sZW13lX%-(B-N*$fZ0UjbFKAJE0Mr5tm5X~|X69<^Q;Hp$ zmh6lOz=Ubw>(;;&!R;3awy0OTo#PN85u5R@txrl-Qo(iVABs}5eib}xy~+Cu#n#S=1EKr zFl5bz4!*Ta))-37F+_#I_a^ZJ@UX4^q|)X*gcm(aNUX9|D!!fyB~wDVpp2qJO(zqc z(LjnB04%)W+!1bM;A27klBCfm-~gt3;Mo0Q=Z|;&;=|vOET30WYVB3R%OO;;9!YaQ zOH;-{mULGKTa}Ynzza89-&##KL(=lTUB~JC${tSMDAr)vP=(VqAc{4hB8xA)M0;{Wt(GB6E45f8y#i?weuz{yq=uRC za8_x#EZkr!E#B0u&-94vy*}XHDr#BQ+9x;G(XOonk5)#X;2}9c77Q*J>#LmMRXI!t z!eRQJjo5A0@H3j7KeAI{4Gf%1-cqZ4AL>RjOj53%PvEe;KYO7n=!`o0!R}~w4=GqV zi{s|VW1OdxM&FYKSX51?rtvck@a+cmgAK~uZE(NV<_QoC9KQvagRa$a8 zlWsPiX!?{bEbv2aM)DcZ_7eHwF5)YbAI{c22z1ntl^>1+zmbvrn0+=YQB17<_F|&@ zxS8bgifk>OTWh;pBl>%5+EvC5wNU)$GvmPL)qmUQ^)&wH`pPT*(~Dd=`_C^6{Cuvd z$Aw=Oj+^ZVr^8z50YW=X4Gx4g#P2-iL7Xn4^9|xoyYkDoa2vWUmABR%`rW|!4JXUxgb~yb; zI_^G#f~8NzZ8eS`V<;FYlACaH&avcxW6TdpBnWJr^HNA)N|=V8BpP`-MctB#0(6gA z;+$0XOUkuN#0!$VRpve>?9PIq!9aj5DFFU)=kg$)V(!D0==DxBk&GIq*L6GyO^G7q zYg)DN^v7JO|HtF>T`eD;9vqJ^u4bp-pNj%JH~)8IHNpRW<^L~p+5BHD{bT(;)&`oJ z3A|bsOKYL*o5TCQZi?bf13xS`f!MfncUuN7#c>=CAXB&xnZiV_Nnut-(IN)tcv8k) z%|NE&i^9z{Lzlb}CWa5Misa3hjZxJa_Kpgns3eZ(n zOYTPxrc$9U%bR(pJeZoWy~>+a&hE5%TsMR*PTtJDM^*G5{mb3y|L3l3{_oLrdhz_y zpK#5g|7)F=&zN4{{UIQt0ffpgn|##2D0#qd+^vl zG?0Y{;JYq&;T%2o+o`|Y%$wunlu2Lima{s|+`9lhGO9t#q3rm;QOtd;Ch)Fb^kF%1@x#k13i}>Sy}=7oUO_Dwe4rQKbW?k#N0I-$-5t z`EUrI5c0x!d7Q-DBd#tPw8B~z+sI)_#jZi!_t&-P6X z--S277qlU4Oy=-19i5ijRy`Kyw`TJ&bn03V)fO0s(IgGQX}6mV0m2!B`^(JTQ1Fkq z5h*0mEHV=}+ALAmv%5fH_t8HVQZr>j_W|RO0(j|2QGN^hAg%R=o&kx6Pj8%!4~#c= z+pI0sYs$`$BMFvs(h{82?kE>DycYtMju5HB@9>aF0nPh~WYvVLLS_6~5P&+?g9y0_ zpF))-5af@wGmGtnW!(+dh9kkDs+-E2w&=w!(4W`N)5%xt{f^Hv(SDq~|JJ?#RUrRA zeI@>%qr0Q;*Rz9fqodzO7Z*RTC(l;_=E(mWt6eSs_d4+VFC1s~dX@hT`QO+Bj{$*8 zpP#D=9De{+U=Zlp+p0JKK#!do+%T7Qu#ep1AI-D|zs^ti10zdbF zCdp7?m~rI#O`dNaf>nmYS%}EqQMiGtB0RSEr*jj?bQ&*%M4t;ZN5#zUb;xF9Hc50! z`_DncQi5~LS95lK>_+pDlp;{QO>>u2*f1>uI@M=(j9VX#T)Rt+Tt|iBG^A2*A~f<4 zKV{<6gd7mVqPWOqLMiYB7w61>*C!>Ca(<|fDyOp_vsQFVe6dKR!ytuO&3qg*(Ole$ z!6Qm+k-#BABMdZIjz)2VuI6UDMeeQHd;MZg$fO!*+zNcSx*?@KU3j6D##ZT07!Nx zS7Dz@dQd;$e4U3xFH84!6^h|YQv1@>_)eLIxD{1GI(25AAp?(U9oCA!oRyF1HoC_A zPWu&|>r>|hrqh(yi7^ri9p(IjAksdaG?spb+evG-vcCtQpj$W6&QrO846R>~q73wD ziWY%YTL>egk~%8UAbKm{UD>@$kfP?3yXT0iicH5-VnrFG5?I z@C~odE)G4`8L&Bh|86AlpQ~%H_@6IwW%Pfx_D}TzQX6xXfA3wB zfa^j=o|Wx4?BERq?ZbcGorIr%I)j1ftT7aLlAsGP@+JWuq6ee!iWuJEPr|~4Fo>uM2EHVa{3Jz31(hL` zI?ulm-XH`w=b^wc*(hkiP3n<~nM9uHjT$4!$>*GmdCtSzGI*}+8m0SSYNB6MzQ}`~ zp?riC@e<+$`-JPeXbYCrL#$6HiSyznq&Nu=iHSzc6pzGEf3nDn$j>k}f3e`Jn*>O< z&w*rX#!tzwsG?mKn0B~DZBrGZhLhGy+ze>1^YDvnATwY=dFTa3wI~Z!m#?Qnx5#fe zDL~l!jb6bc!&N%0S_L^~25hP=QObm-dLc|uqhx~#*t|=O%M;t{yX*xN$@I>~w2B`)`J0;fPJx+Rwuf9o8VMSf^V?i)kMDD^9(88ScihC_Pw=Ws% zR?+f4Z``I;A$m9_obeg#%K%Fi%3&?L-Zb!tRY*SU?`UKgNXdaan{epM+zpcmnMpS> z2t4g)^`|*~5*mv=MoYz4&MgJ@Cm@>WUbBBp2fRMzV!M4oqf3~+5PKW9`X_i-%-Rk0 zaD2sQzKA^Vx%#S^Opxd-%7h-|AG*Wsb7W0px{pUq-h`6|;-`o&*tv%?-!a@+H_5!~ zAY?5qSvhG4>rxw{+!Bv9eYI#==uJ zQL(L0v>InxIH7BlRWd_dCR}!eU+gTNB34|_o80pFzqbdo? zdH%ni&i`9odCmWRq06@ah(&)S4ov$Vn(qrNz`S!0h__yaKk!IhfYi}8;t4vC$gMZFLN!28tMv3LY&JTXS+IVFxu;VLlG|GvzXKmWAozlH!{d(VabmL$Si`J8R| z7%adiwR0yHKOsAKRDn?yjK0TZ*RZ+LnS+P%N!M*=B^v2ZM8kO^Kq|6>#55DR0Dpbrqo{1u1T&B69^oak#}YW@%3~Me$ZB0IJp#-gM0XI;z;xs&XXXR2u1wR?5;I*DGxU z!uNfmK2>^c@SaPSJznKHP7R$@I%5Lw`B}~zft-QO>`nJ{(+Q6-=f|OeDnJ#m>QKpX z9|i+0c`lxuz}mw~B~k}$urI;9@OxzFr`S(?=LcE-$D@s{^POe^&8D0Egqq~x?nA_g z-{iTSR2a-UuqyC5Rp6#IdlwNVEO~k;FnOpf=8!ZGl&-=z4-8u1=xK z3$mP1R`SJwj;sKt=7U2!#y2sz0mJtrDnvVLCr0MFfp(K9b!*a7Y4VO6suq8)8MnNT zmX>D3lw&C!NUX&-Gy5pJLx%+-F63e3x1FttG*~4KTOzpSe!|!BvUa|{+z_krnyp%G zr4!Pv7MVk`pIKqg%F1e0ca5*(+nG)^y-qo;MczwON4)Z{ERIMW2%N7oyTF}wGP7B2 zL&{;dc7oMynLpAk)l&JoqvUq?HBVDCL5TR=S)yW0%F3#i08ZpZ2|QEvRC(UuALVbP z@6-@(OHj{X9$o8UBHc$j3O~2sprt#$gVjwi0C&^0v~Ge|e#@VJ`b3kZHv5H7=gBe+ z>lwE?6W(jKW`@twwD!sM>DZ1sE{D@o>M*$X&T6|i3v5p-+-*oc;b9zr+;8xLZ)UG~ zQgXJ}LrUJT6Q-Iv;`D#kCt3xmcvmkSVUppk@yndt*qdJB1Qr^|h_btqWRc7xJk?ht za%kT<4th`SKPvd`?KWpE+JZ%W;nI)vqPbSWmKt`O`q|kFf~=}{l^xBn4-?r zFgmtUHHmH!dprA53aAmUzpL2XSbd7di+?_l6tB}XB6;WP&1o^p_#S9)v_d6%W%I! z$R5VX5>rF7XwhQlZZ0iSy(K=MDs^L9hkUNSD0?)k7TYz$7_io+)3&*gvg-1HWN%B^ z65YLNDaV#|V=bobV)`!~)@;1xP+?4}N`8t_(08eTEpm=|P^jg&W3$zMdAEHR^Z z+zZ^4jY@`h(7tYM96+!c)q*tvIP7IEQfU>gq z9(#050W$4gl+O)sq*vwTbn9LRx&aRfs-0yT*=1?keH<`vP=X_+B}PqM8(l?ROe z0ruK1XvnnIdZI<%6|Eo-ld)~9IEsfpB<*(=S(Y8LI%o3uJJ z!7STCO&7Cd^(wit2lAAN6dExbpYwvBoPu6UE#CzwKDez+Xn1g7d^V-}Xhv?Am{})j zCEn|WP}u-V=!QUqrv@Wh#NK)$jZ&m|e<2(T!AOMs_~P1&@{~yUZStZXvE(mSyLf?M z&ukd>04ODGHA-Si6_hl7!4h?>Iak?>avk0cC@U+gl^}lJUAd$J7~rHfoQj#YJ;MRn zqKE&7Y| z)`Bz6mM-=4vOu z&yh*Vnunoq7=wwkma(;A3-fS3V@x5Tp!>OY_-L!2Ujcglhc1!-F}t4}T|u<|)&14% z==}e|7ymf^5^z+{$F=J!GB%bc+LNOk;^{+xb{ya0RH)T6yRrBxO4vnYd)2}66_Ev%k78kxr;y; zcA)_2r*JBNhHqC&_@_?d%diyN@Rs_Iog zxxvtB11dKM^hqGIjrUWgLIHV7nz{}UzZdQQ!VOkHSj^BeV>2kOcdE9eG*?5=A74J{ zu<>?t3W=v*-6tNBqJDPYz4PU2=KS3L>g>Zi6mzethwNibN{_e$Y|!~jRMMJqN7ACk z5Cmu5Ks+;YCMs4*1_=7c3K^m~#6G7eQMB*?l+010R6?g>n`E2fL5^`FG9vY2rIBAS>!?Iwa96uaq@q?Kcm7I7LyrI=wDCwa{75tGjj;=+ar zbuFI6u)ZPRC6td*XA-Ix1yZ3(*3hRkh2}(8DDzO;G!e>(pR=|yrxN_2O!e|819(#{ zw@%yqBmic@+E2ts5Qn=+9HP)Is&@@J*rH{!CmdA^9B)0LJ;FGBL`f@gY7T5NV7ROF zKgt#BQ)f6kL-()%COBlPpiIJa;)#e`yGC{p_-L4VMU5dhRK0|Do3fYpsU)(s#|(F$ zo(uJz3Wp*2A)UBRV|FvU&(xc&;h2@;iFWK0(mrm2DXUfHpcucgR}+BXK9+g2VIM8G zg>sOn`>dU23{rw@3=|bADq~lV2&bs;`u(Tn<#a#%&`KG17LgW4TA zG&j6Nf>A+>E1us+MpVXQWO7T_6UXP=o){YmXj>@g>rlf9H!a*y(7-dH|+qEGo zdHlLi?ZOf@@nk87RrR;Rdk%s!4$0T94Iw0Pu| zT!}b}6GJXA^^9QA4=-g*`9FB2^?$BMqu;)dPJdDDpZ{-x`rm6Cy8iciXJhTv{__%- zZU3P?@Tl59_}F}iucFv!01o=J3`Bda^2VLcwzt=8Kwa-1*lRxBmLMXQ&M>rd0e?)& zrHh8)eu+O$n_$*)K?#>ls1oj|%$qt`e_VWwD-aQ%apfki>!7Dz*G2Ib{@C;tCRU)1 zM5jqj8iLfI%_ih%r#731MU6V7p1-XK6RLo;Znz?W@F^rOA)mSdUcw*qN?-`8X3u$4w;dPB;Nc$Cb1U9<=cBFk z``|er&Jf43rO~JnW^7hzeTGUbB}z~dx26CrgjH-=i6XM3`|%~Bxu`N=PaqllF6tALr9OEOO<}vxf!p><+lG9KTNLR zhjXQGfmu|kaG{S?ZwqCP>i5`}EoKNrS!TrTeJrjjEw?)6|J(a2_s$>Eg_t*wbgIJ-RSR10~=5Uw~tGb%-s_n`dXwQ z`1gEg19Uabx#>Mr;bYcr%l4@hOB$kxYP{h$M#|$Ofi0UM?tBb)+==0iRy_~yo!!Ga z1?x5;TV?zqon1@?NO5HTHi3B3Fwo7C_|P$bkEQYt1kyi^@Vy?PUritw32L|s?u9>t z;1Zb`H=DsYV6)SXkF$0c+B+^OHd-b&al)c1*L$}L?4Vf0gV~zYbJ4Ww3%cGXi(;9! z`BDc4;;bgh zL=KAPEF9KbtKQkuda30HU9Vd+QzH?{}Pv}|BE$$B>H#z7MdFpQbRdN z2;!L3wbRgd-j*R2;T{xW_@jcVL2FJ!-(9aYHRZ;|qG+a-)&jRZ8Z+k4dlD<_iH%BT zljkuSh^^VvS)smt=mnXSBXx6<$h4MRBdJU!lHb0N%{sEv-Jm)u4yPPDR{k0hJ+dpy z`~sGZpt&$LnDf4Xd4&s;BrISRs&0v+^1i2YP*cYxj;r}yDn$hdyI+_kyOO5#0fnHz z?XJu+G6-c@5$JU&RuGG(Hm(!dRwlp8co1`H(_UgGo7jM=d%eWNM%sHer?`(Qo}a7W zj*YUH7eA##$?p*AvXq+MdFV*VA=#hwoyyZB4OqGx+_s;zZ+oiVRPZu9m$B3icfqN{ zf!j!QjeJBZXjI)7g*R_6`Y+?`i(QNG|L3{_=J5Yc*YSLr|FQZS|M@akj{pBE#{b-M zA4M?$!hQ~Zf^O-Z15gQid*Utl7j>xJ=j`-vuy z^kylv^nN5o@Do!6xf$2dd}!mgb|L}Vm$^rkNHiy)F6EF6?vPVRM&3&b)+E~uXnxM# z!R`7Neoco|LCJp&s;C>zCRq2kEI#r-Nw$C4mC*m=)7ftqlcVW@lh=Pu0#G~s?{vDI zP7?qBTL0~3E}Q=AJ@6PWuzL8p<(_~CTs6hg&)PePuc~_KqAo7caeP%5Z{hPr3E2W0 zo>TlD_(2`am~S{gaHgc6RVeknQbP^LqS)@0z&4^6Sg;LJXh?0^i(V1bC~sPHi*usD zN*tBR1d*5`nu3Z(vH&xrF4Pa|0Nq4gQR1+8;U*DRZb_!0V`%HNjB#?o$RG5&Pr)Bt zd00*7s%m~{uceBSgMT2Dhh|OvDy((gnmMPvoz^-0PaBy=1l2EUhR#MBABfeS_M<94a4vR}obfZ3d4WDJ zG^wyb$WB&7Y4n|=FuQESbJQRtxZ}k7M?GZrBa-gT-dH{sT4&{iQYVF>)Kes;xix4u zNSekb)?2_3B^r6d2qt|pRx!3cZd7z7FqbgN%1uI(DQNCYdq@JqrNtq?agSI3!W5N= zvrG$R&Jl4Y8diFc(vpeRL6W|qryZmbi~WwXG3LdV$ni}i1Vc?uO19`w18^XayZx ztV9eNdF1NNW{|eLGcEW$)FynxvN=_NkgBGGJzoxM6o2+q&{pBozE za{_3=pjMF6H{9G^KpXI?}z;$FGAMsFuqSzaSh(A$j;7cfeOUKBEogMjHlM2riQ7HJbo*O;daVEWZJ2*6t_8CDSd<6<;UAxxmh z;{@=NhS4(;p!OvI#x){D@!?tFcqv2_;^bI&;qtL9pJ ztvxl?nNt5`&BuK(Pr-C0B-bLe1t+w7e8MnrU>1spQj`PWpM@G@F{+)QzueJrr{vJ2 zDbyW{ZLsr82At!NnKTJ@!}P*4oqjm0{^M{6)Vo7@@6lY&P+ z7n|=GOtMZOtEgr$1x*BbNRbW2l|=71b-^6hiCXg$SZ{k)gAajrSJ>YHjsaKIvZ!VI z#jt!R)DD9UvCm7AVC zbOiRTMP8eVsK}tU(|VT30*ardB0q`&6e6PN1o4=~DA_~!l2E%+zvM}!#~KX&k9ZFg zJKpPsdp^-4Dr618tD1AR&_7G&6jmfqrC^1mNcYH)1BjYRyGvQ~n2RmS#Au}n(A+gZ zI~CP~<2>)Bo^$o=VP@iZ77=uss7PgKG3cW)hnx;TEAA|by_HEFX}**csXi&qD5V)E zi7G}ZoJ7PGowwepoag@N$k-vBA*UuxO`YiGEP=bF-Ymck4Wv8^7WJ4JCfp_+fI+80 ztJF#ab!yf*Csy%l)C>4$wT!W?ID{_exaw(o&^s!_GcE=@DR73K{>B~uU~fP)OO!Xz z>Ap)q#YhS;ZdbABKpt}BJg)Cet&v&f&q+-^+6ab}5uck?X0HGq!Y&m$AUr80+_cO2 z>XROv#jv=)qCT(&R)~ik}FPg?h*b z976TG`5nCz)0t;6j0g!S)m~Sf3%Y)0!q$F6k|DeC@zwJu>|D%g< z2czG@_rIMVj1P{FrqA*M&cpv)U0K!nzrEM|ua~)O|6gtoJSrT(Ze)&EuqckVilw!h zfI*KNU&y6_IDuFeruHBq{^KBg{29J=MPF8VHn0m1yGH2mdmzW)$AdiK9e@{Y?viLk zUacgOV2%YsMA8K?U=(N!klmh^UguUeY@-G*z%8=O`=$J4fiN_o&ZP=g@HVhmvL7 zcYo?vl3FSvI`BmlBI{8OD6cx z^wAGhP;G@q4Ldmck^>ZDR3X2F;%N?FR=I|tc`{3-Id)W@TbSk`i9)3i^?3@Bc9tHO zAh+B?|7M`x-NzYdx|JpZBsWt8xD^FN|0oxXUqQMtwQ-!3tvM!Dk{U!4d{Qylin>ZF z>{S^mz|RtsHK_``h>jYOT6vueTcYbbyj+Me2Ye#;Ftg!~p9~B3QaK9Lq04$R3y9hY zA9r`PL~3n`cfmV`Q7tOL7r<$*5?n`Rd^Ls@oY;!?K$CAN zZk{N=Z32duLA zWLz#-4t@?R$hxpH3$RLu3Jo&}HM`eK047+uuEPj?}uR8pH z_{!FQJvkapeo+#@y!x-JYa0J+qqF*2|Kmk2Q~wWZ|HSIA@bp}u&kBhCcIB%eVfkkO zia>S0U;FhIbpQJb{uqQ?F2cvl5>$R~ADDcsLAM7$u!Bh=yi=i~g1n);-f1u~<1ORF z=q<5Cqivp$Mo3!nWd_yH+(Zy<2y=d>G*a<1A|@|fj#Wroh@~9-JLwH)iK9(4|B#qR z#Lsuh+lBQ6=bnc|tD+Q?dMVkNTYisu_W!eYWo>QbO8fgiVIDBXI6S%P4dM{Oc$iG$ zxg&(IFEL99zy5nvQmGb|y3G>ioH_1`#Ms?xt))`cTW^U(2s_XW>Gb66Fa|c;gpbj$ zhJ#S%978F~@_c}k$rckELzi4%c8qChM3ADiJMsy5IHvaYL{XG!rC7CcC#p%Bg&gmB#D z5Ng_oXr<97aY~!k=0rDFF-aYj@DTZL%8dJb_HQmE|9+kYf`3CJVM2o~k>f;cC)TAj@ zaJ=rK5duLDR^_3hG*ihSp;|>4&HI485N^ANbj|OLP0W(0GBr`tvH{< z0{O;GqxjHet*2U=u1-m1RVDgPXXjx`-`qm~kZ{f_^R=P~yCE&m;lw&C}Gi&RS2|Mcek`si$b z@yG7<-r?fm#r1E~eHYgMcp1>K{#RC(R(1ZTmDQ#B`hSTlv;NtjKQIkM>lEq)e>qPS zl01wsCXN#hMg@i&6_x$SByr$w+9&|v1-l?S-i(UzUrtpi-i(Sr*4eR*blrv{Oa`Sk z#HRNQOLhRy+_P531Iq~}YNUb*$mCHolcIviM6eIJFu7g$9Cg?F4iq@(4ni&OhYX9D zEA_9aLccBpEdsvd9XmdGnz}JTt*rBtiuYH_r4K@)=ag;6I*UyrErE|$MSZh2k0;q; zbo`nkR~&I@N(g}QNF>!#m0)Y)w0#0vtNTPN?vw1h$`UvxineU~()?c2((F%l<4DlI zZO61_=gCl#i&_n@9>w+{p$4jONVH7$ySl?$FR412_9G%(A_5J>*fnpzOk5Vsy`8N- z?V5;|FGh`#E9Y$t7E1=0#DZEnj{Xya6-gSY5bE}0yDQ?}{$2H}yK`DHJ_PDr$tdyW zq9k9CH4oJp-xZ7u1nzUKJ6*-4SUurhIj}3I%Asd|luGhgB16^Hy$6NDMJWe5yU-3w zT4@s=*YGy}&L;Su=G-AEKNi7_G2l{6V5&+K(ATzYt4%l#k}0Z&lq`qo!)sA&W!N_+ zk$po6N6t7&&nTGFm?G0Uy05dQ1RKTPbde-)ilW!l?#Qv!{A+ai$6THH-;U0|?%(~| z^Z#&pke>hN@gFa8nfgDD`O`DN`I2T}gxrQKZ;;^Um?wE_E-PSqTP_0v;=+Y>z#ogH z{N;qPNV?_TusxS$b0b*74hU}A7hD$YRWc!8^K5QQ8%43S0clJ(d^R`X!77}=IOIRU z=clEA{xqj997qe%E^}h-0 z9{^ro)bfw(+G)d2UgR9`wS&;|u*g@}i((a0Hm;H0kalF5G z{R{%2EB|Y6(9`z6rRBN(??tX(wf^PonLz-21Oc!M(VJQUm|@R%vSFo$c)kM8yzY;f z@6XmCn#DE|LUxHAL;!?e0`*W@}9eA&?P|c zdDK1fT~X}y{xiki{0djM{6D=oI5;|g%0aMG|I_^6%e}e(=Y_6klK*X6fSf>2(*+-M z;L8j05Xc;V7!Xi%S{o+GkvzUts1JXT5WKz!ipOuDWL$_xyRYZ~(Fn0s5h+YT;EK za=TvyuMSbVnvm4GEczUf?PcOmKJ#VvFs=^=Q>1A%(aXbA9 z49$JB@Ld!YtVGqqNmCRDkSge~mdy}VT+&veIOJzD4Ed^4M*P-UEi5-h@v{yL9pW~p zf2=~em+K2ZM7b9}&az(k(GkCVw z-0xL*;Ac}5H}Jr1E$b^MFMs{3jZkj2xW4ec38-8bg7La8itiiljf3@tgLnLmp%+!< zpH|}mb9=_e+cSoNYAViCJ^ zci*8_gIWoYpJk|svqOeIN@!E8;t@BPy6G3@nfm3%WzB+@TsI3V8>nO+fbLtk@0*41 z@HObh^yL+NiO8hAFxYM!R;nP~gv55!>qm_fq>4+vls)SfU|4A-sQowaN67w1&+v8& zF(C$4wEMMN^-zPgx@9*JzkJunivvWRUcqwtHz>*}{`W5@iE@}h#}y7djJkNY~XaY5iP<>lE*b0)JXW5^3({5y3^!o5nj|w7?03|I#O(b z_{jEU6@u6U%o!iplcbOsr!D1%7n1uSTt|dUsCzJ&<38bRRgXwkV znT6`trU~(Uf>R}Xe?ct;O}AQ zNr@^KtvypdBqL7D(ZbStNpO#f)2FhM-72JvP4eW9VxC-L;ekg^N=kadx;{)v(e?K{ zf`;cxx7ZYkS_zT-(e<36&AGU9;IQxi*zX0iD_zx>EWlKp zdR{0Q@Z+ZJ*SLhF4``Z4qyfo+kc#-RQ_5TM2{mkeG z6oyyB3LBgj;um4%7G_-Whp;z`0)#W~NW+igGs0Ya1FnnzGNG2P|F0K6&K+69{`4uB zFMf6N|LF7oaCvne|MMc(v#$Si>O7Ya_yP9KpgWxLHM|7&+Bcqo_=fv`#Ikjswu?GA zTN4jdbc(K43|_X%U3KC;{*V8%rEXp={9n(e0d%eZi+Owhzc`BgvCY5P+QPV+5%giYf8G91oPhfEiPE_#yxgzEal^V@I?8$&`*)itV}DnS*q*IMsFfAI$~^xFX18dFMp zdYhG9Dt+6r{Wf7s_C40ONqUqC(CWYm#V`nFs;~G-Pzg_B7DYitMAq-O52*31RUAdi z3SF*nOnr*;d6F2i)4Mlvvp=)EMf#8ZIAVSsB(GA*LNeof89oN4p?(dCY?kZ)K#OO( z|35w6OJ803|7ybjv%0c0obUfHaXst)|G-GE8PEQCB&o2)xwC(O5i9Jcz>5m2fUx=H z?Sy%}XdXN&>L$zz`2v;zI{l(TBAfs1-rZ{=ed@D-XtfM zviL)+_#Yg8pEvypytydA1-`_{Qc)dY6qIm$UYhVGhyZ}RKf@3V0cI~i?&76}l_buHz4|Gs~D`n&+pF8#0H*Y@AR>Tq=~|6k&IR{77S z&T~ose2i0GE%Z`sE~{p_to46&ae8xobaDPd_TQzIRgM1`_EwhX>;EOLXI}qm>O9y3 zBs8TwB18NkLI}mdPv}tMHc^03sPYkjzJPz3Sjp#qc|rTnV3^o{mgn}L7rCBy{fnvd z>j7Y56^q3#4l?4lyxNdIiwU733J}kTIPdT4A%NTEYJANjqeW@LYW2#6R%XZ%Xj4NIL z*ZWt`YWw&{hv*p=i2;*901#^+Y$>$a|9eDn47V9<5M`Fa7L8` z-|dNPdY;j5cP>!W`u_#oZ~r%g|7T^W{l67v#0S4V)mwaUB?lAhb+#6+s9diiA_Iql1!PELICg zZ{bMc!`$$uzIUA*0Tt3+y|BCySkL!a;a=WA_-pub>lR?)o8U`%cU>+V30fp5`a`Ix zsMP0$A4y@=m+%I_n}si%!*b!G3Vdb7v|6}HYKCz16=>mkz3?4c=(6N4#TGUWPg@21 zN8yf9iSXR`+m1<{ja=m?k*o9xbyUQpi#+`zfppTS?#q}CUc|^gk?cj(XY!ExoKt;j zm^J$Z0s2>LA42{=o$B4Z+U0+5rLXgU^ad;ax&P-yu4m!@d?3TS+YNpPc8`4^%>dEf zghjSedFJ=wA2qnjPn=M0P8*k5qk&ywV_G}6&?vgFon(tlhDSBaBA%oV{$2uo11@g_ za0Uhe8PWfSWf%_6r4%A}l?abl*&Mx*NRdxKkW!Q@8*8-#Fc$HKW#F8x z@#Fa2XZD?Yk-pFR4xX)w>hD;IPreSwYvAj!W+j#VLj|(?sC?o?!SDVszf;cwgEk7- zPzQ?OzbHfWK4C3gneNLkew&m{@}KAx1i__$jPC-oM9d%RlfBZe07r_3D4>AfVx2Y5 zP19Gkyy5skH#knx1NDkieuFb0zE&k1uCrDrH*6Nw<+>+IAo8k^CYtdK6vh6!oS-LF zn16~pM#0!sU(<{I#K}HPm9ZXn++4Kfh901`^`n%G8s~wK01139O5m`#pcRh9E1-XE zz$)j?WLf$7u&9n& zR=oS0zXeDBqRf_iSTp7gn!41>+3Kegu3ziy%N9437^3S^lkw1v6pupB(XaG`YW@To zm1Ra!Eu&t{7EKj~EY0;S&&1m?xdQxT^`LrY5_fHu{dqU$RHkW|rb_NV{8ekd;_g+% zM9HHx;C);esa0JNbHpex}!$00U`CKgl#gr%w%eM;jY`n&|_0+p{kD<4$sjT_rREKd|q%Gumt27}f4J4^8@GI@`SQX^Bdd$PkT39_+ zm>YF~==ZfGNN5y;glHbAViXykdXx1|?7@Dmd(cl&=(m!MrqVn$4-pgFLB=L}x{B4I z9u%`+7`lv|4A?wP`|Gxa&}x>gLj9~{fe1ybxPVvFS;g6f+KZP>Yg3d^XQ;!9S5vUJ z-|Ef|L*tC>JCHW3!L842m(4em1UDlPaLcqb77`6IT#Wr={h&^Ei*eq3GW0Us<8h_# zgv>g8vB7ug`aG<)n4mdJRX3s}6QMwxq>}C6D>XbbKAb zU@93%G_Ps{8G!iEt zagOD9KJzv9TRHBuA6UIk%DA6eO=Bk);IQMzFzQ73E+(QnE8VeeP)m{dUXKB7GP4oshAAdO7|i76(O7-v5XBdP1ao?x2FipNdt0+3RXKTOQw4t^@ z@#5Rse6iAdGs`3NSNwY&-k9iVhRR+Flcpk`Jh5yAsrRI(ls(0ZyoHnfv|-9nOk=m> zr7{_jRv7Q5(bPJf+9OCHzw99C;P1LrpO zBPp_Dh~M%=w`k?skfQj$OvXW5Jfc>)8c~D8vuaXp5-P{wsWS zzv2@9zw4iu&l>n2u1@^tN)rFo8_fB?UgUZf{~w<>&w=y|pyzoU*RQ|C`oFn8I{hcs z|7zm@@2$-7UoUb!%lhZ@=E3VZ@XS{}|GOu1Sv)#Fy8dl<&js~8 zRwlHs|K;IQKZ*Ys4(9P+FLGtpKOgf4MuBw9p=SYxzy1pOftO1}lLq|I@S9J)8WWa& z#|)RwAiRVb;+r8*U3@P^vdLw*uivT;WGJhul#yukmcG)m`5#hGE3 zVmVCt73pDCWZ)p>pFuvy9$4dwof=8mLXpLYVah;AS4>p-Q4(_RRsPCP(k>C%kuhg8}&!DbPp+i==-pK%OI7QX*QVn2}&P)?qhT`79dVO zEm&#I5_n8B$YoQ*MPIB7zxWvJnQo%&20UDIoml8c7`1RzlG7!SX(}vSbRqa};$ZlJZ-PU@O- z^lLCOb@c?My+Sg_IRrnKT|ZlCD&0W23DM`{x{1p;&Wg8rsDeszNSX%bVq<9)Rvj_B^hS`%L^3IbS1ju#=`l2~IL-sh8yauj zCYcQ#X<=2BTOMwSNdgfZ;ib2N2p0qqwsVy_L6j3v+hBzn6%9I%Nq_CGC5K5WoPg3v z6s|Rgb*Z%B*DfMczT8w$7z$`=`C(@ z)giJ6ObMn0bzGGRzB&t;9uusxO$+0%#&K9FaKl;_>OEp!oYs0`q)MVsj&U!vL?1gn z1__}JE`B;39C7xYnM!3=~?>%VFCTOPZ4dCYvTx8D1VT92)m;T)V3Budc>XCx_JDz0pC;E(~j zhZ9b<(4uI>;6GZA?TUs{3GIx;X>yNVD4Y&yDk+MZH`tly_9-(ek`9aau-@b+&bBlA zd8wzLY7%8`!M=$)Ku~+6(r`V7#eHrS?nLG`=-*2yUuTzw8uPxsyzcn zAQ98i769){WVdTDTXanfKql`3z15JuY)>UiU%1&#tZ0w%0tJ_%)p+<5O%#W*$<-fN zjq3NfGX9K5g|E6mvOn=ilM1~xNs(b?RBzd@*mr;G!pZ5uog~>cV%DVZv|&!Zod2&BIBd4i6$8wk#<01R7ya5-gj#o-k~H% zsV>2>p*q|^iidEzP|9grY*WwPJZS+z)7;WaPQhxX=*cCvkqN7Z$(^t}?~Jdl6V|+2h%PMorJ~qF_Q5Z|OI>Cn!{$UNVWT5ko`_;$5bihr}hT*9P(RftikR{6;zzA7D{P_F(d7hR-m(Ef5LT^M_TA;G2mQ~N@GVMtLOrh?OI>sv%4A; zbfz3qBnnA)q#r~ZPLnoJzeXX=#`4})9HaG+d(Lhu<^)Ew-pd`HACuL#r>93E zOh(XPu5FsrqgS%Uu}b@$(y%ka;JDUrz*DRXX7T6<)0N89k{RR_R=K+7iZx$zv}D_4 z-Ms|UWS>lxhPA{{nJAuPl3;3yrxMqi4bt2YNEmX?fjBKxtH=1gT$qFo+E{x|KLCCyy(|DASaYZ|0Hi1m z#)XUbI)U(xV@Cwb8D4c52j%HGs*8^zq~ivNU~g*|SGFmFOo1-@pd1(+u>w$ZX+$>2 zC<`MlK}MkKxP)Ru;3*2?6e2tcIoUmj`D~#R6zRci7ol%tE1Wv#y5W1Ym^cMRop_m9 ziAQkITYPLx+>Oo~rUVAmG;A#300?IP6!t4l)%+lb`{9&7RoSO%bnKaSC+RMTM;7c? zWknbFOlL&sh7OOmWVnH$l0uY0puY%n0W_O{qVVT32c9^td=P=?g9NfGut%*Y$&>)- zF6q$ZlnuqlSx8ecar6ix3U6AwdogFd%lUNy&iYH~tgqgM&>yEbPG@q~$2I9zta2|) zuMgSP74A-)x_jJ^?PH9{CKhJd@(kc(=DJskvGpC`s>a|VrT)e*FB7QVW`s<}{(s8` zkIsQ{&4iR7MV09y303gre^>0NRNGy$wW%|iI_#6o=Ilhf zfF)ASJnL~1ELO0O9RS1tJ!^@}gk}PLqLrRE^^9QBwfDcUObe8H2%^{ueBmLQ(S7`& zKC#)nRwqNHF+QUhWTu*=?8^mbcgp)>KCy#u2#ad|_GJkUA+f6jqnD`EWy7Abca>&f zAg*bL*$*w(B36euS$ zyZ)7q0dCQz3Z@p?p*9l*okU4+5>sfDJ?8>V-k1RO0E4?30{~-d6Dy?XrkH5}0ekOF zj0lABbdWNK+`~SJUJHZ{Fk#RhiwnbAYykSPJ0y{oYxieN?Q}j z-4m>53eY&l;OMby#h=O;(kzmlf+(?jI;A8SYR~b1_TDQhDMtRug zPZPm8r`&6nL`tcyq6s<+ODsyvYu-ovEQ0_%;YjkQ1m#Hz$5rxt#)h_dlE%uDbX5i^ zdE2!~F;`h~4hs_g6B|_pXBQf-I5c<}7aX2)Z*^aOGml^><}W#zor&*E)YW~}b=2Z5 z-`z3~qSqB0x{naphYm9|J9WVFQs+W1@i5UTzr!g3&ndf(v@A4hl{5$_lHN>b!P4CS^CDN)|MP6bUr%NH zDvGVbAr=oRC#X)n5xYzZb>L?_d%6-TheTpe*hmz!HvYwqYEVLUW2YU6=Mvqz8H` z2lFNZjP3wT&b)~L+&<>nyh#Km^fDz0zL7!ZCfzzTLj~%ZA9T(m(gpOqZdQmK|1IlbYi!yu4#yy+=|7jaQr~K~^wftXQo#%gjk?R-9e=&KU zX#=={4PY2HfS4ovMK%ELu;0NGXxIQwelLm>*Z|Ix4S*InBWCep07WEbN_DT;@_+Bg zLtltSt^&hMweDZ=Ke;Vn`q+nU3(T!sOY`irZVVnP;TmxMppC&t5r9F}elD{yylQ~h zbjRh1eagnrE&shL=jffUu6IvQ9{~mH;Q#Fp`%4P{)$jM_`u~eu8TqeM8~sU=M8qAo^9RmjKvx-Pb^ zJT9to&ljt(eGKb`E4SEy2Kcsd&+Nu$R`@T@vG^MPSZmxboAI{b8TW81hd}w>gdjtg zvFynGaaJBT0k+HIX*Q6ZbC6)9EWkDWqo{`zMuPs4uGZQtpZmEvWLP-}1o*7aJ*vK4 zMAtP94GTOBfrYmD%-*g#0b`W>#;4e2onvN$y)J>~2^!_=1hAHY#bs!Z@5>oqz@dFJ zFe97zK{Dj364F*UHnyuM>$euO9CBkxy%~q$qdU#IaX99VXR^Y^i1s*NE-MyCLb_7M z^N7KEyMCvx)@K8%Sz(2KyY+{=XnL*&Z{xdy-%*Al=d&700MeAZ2RNl9dN2fS5IVxY zGEabeZwN%AlB{fVqz+jgx(ST4>J>v|@c==R2ZjUwjZRvqL>tXl>7vs23C?rMMEfyA708#& zCR<9p-^Kyt;^us#VF%=&s3>@LTkE~(cv2GH`p%kDG)CkerX`7J9SreP%S&PequP6# zut6j2!ir-Ydw}OkKZ*~MQ_C61 z=%_`2$lWO_a^$VqpwAzK(7@x$8jm-ki1|r$MdMg-;bk$aQfLuQehNR*anD8U*T3|f z%kr8gvx9ZzwH`9I?UU#k<2ItB_Sq_gxwIMUE*jLld#=hFzr-s3r67jMOqTFg-BQWv z@n+1p-t!M}S2^|och&12NVr^4D6EzFJ~2p}0ziu@f_47P{P?PE)(@sOis453fQo{|Q;bCp;oB8NEQ7Ok0PYg5DZ( zYp3BrVrNTIm|r6OkDtDm3821Vfci9gd<4)B$vY3&ou=CgLX)*Ly52^LFS~hhq7tF`@rx$S@rs7(%QynFm5T z#PS^hjC)Vcs`QYe@=L>mEYcN=5bFO)Lhwd_KF9L<#c97^l2sNeQgVsH{C!e}rl7;-{314|6sN&56m140N(EvUvMO6%}kci;9_P z=QZ+a;uSN#it`u~>`ufH8VQa9(jXQUa(z&@P|=vo=$zXK)XzKc^V8B1AtQYQ=e0x-Ri7Eo`Ki_FP)rRuDJk>~ zEi>L$(OJkc!MTFeU}T2nkO&+SYP-na5cX<$SXI@+m#i|SsMg9_PCkcFD|HA~3xk?r z>8R?@MDrel6-AY%%2hvPZ>D!~)iTdCd}kQ&MCME!fbqY707i7O6Ps1{nIG1)1j86f!9bWRMhC{v<8a*jO8vp5m$*v@+;1mF!1Zs>T$i{@gFNrUJcq z6LfH#*2%G7#+JpshEHvE&=1l+vss`Mk;Ul;W2RDBqJrw4`rDTH^inHB9_+Hw+~d7n zNyl0SUt`iUCx*JOA!f})Nh2HIMA2M!G>02!v_=KzL`_KHhVgf{9YIkKN-sseUpYa{ z@JF03cS%Mi9XmVAjDff2=1bS{FRogDzNVWa24QzWaSIso0-OT13Rd;NNy6O81;PXQ z1oiSw8T1+D_@eGp76-=9trj+^l~glz%Dt(g?>cE227)Rt^xtfvD3^STZjzGi9yX@h zV+W|Irlcc{Cf-@q)cZtasAj~y*o=<6Zr3-BAmP^N$>20piNe)rNB`%H0l`$dW{-J9 zM8JdbpN|Ly=)(W6tn?NBb9t%XpW{DY;%dWx{wm<-a|Hyf0M_$V2LxQyf%wm%w;ZDL z1pYX!AsyT@+}58hAV9#^&$++|iD~e+!V}YR}c_z`+EyseFy&W9S3O z-e=vT=K|xH+s~_C5?u9Pa7p=pG2LIB?q6M;-Z*5oU$5tT`@ij7TpsOTJvIugL;kO> zE-xqiuglAG`Tr7EUjB=5pK%|69iU?p%>eg5*#Q36v0H{4wfhLj|Lq!Z{O;pQ3CRB) z_xW(Mc3z#GqcUWG7Rdh_q=Eg2SYFEbB9^<#bt|!`uCV(`b7)~UvvXx(4yK_i^5M6c zx~JUtDB#Jz`*KXKMa$qPSi<(AUX7655#XRa@JiKJ0aTPmj_)3n`I_qVU2WxDR{1s{ z{?=P|_q?@;Q~PW~?$%M!Tqa~93Bet=h$UxMb>3`G9xM(e_g%K_?u5*tJ0nx=jy{gU zKkcl3Bg!I6#u02<5r8%-RgN~hP)$urGRyBA4d^WdX6o+rptaU?bX?9x90F~^$B{Yn z17y}hGbr!<38iCGQ)Wy>P-E2app5{{5rP3|N6TPGNd4)y5r9W(; zS;K_y#9pJWqh5;(sMKp!nKRUc8Ar{{biLB6WXA@qld5g@Rp|;{Gz8Ty#!`^W?Xb#s z;hDd297wmK^LK0J1us)V8$#f^?&wYRuzE=XoRNM6U*if*mt++l#>usjbO|T@zN~*$ zt7oX%Hdc+BuL5su49+6dga{)#4d<71ULaD~l!8>>EELqrcc=5$DY+K>xG|MH6sA)1 zrkJHWqIny|+EZ%V1o34p2IXH9t8&^}J_;{ItUE3mFhBye^{bM-PqydHh)3z95=?pc zCqcECWkbwt?CAcYU4qYOddM(K8=Z4nvsTf=mhhB-F}b_kR>}J5n0Kmrk6dG8SpGN= zMnb)&x$d_y9WxIowN}!!vX+VWE%E{C*x>nOo4NaydmG=&GPmk( zeQ9$;dj7w-xxTz{%pKSJ({HWdbD@_tIq%Z;c_oI|M%wS{};J3=YMPLA8G?= znMmz602h#7EF3h&5g2&an%al6xIcCf6~UdUfxI~G{=u#rk;zUUIN5M^g?P_YdbOl0 zjwf9S=sbyP;hAA5Fpwv0X{J@WN$r3c(kGuKqjRW2xKY!^TG+~l>pE-kW0KO+Bkv9b z4wJmcN=eLxgxOKLh_&x=tbP229bCxH%Nk{6lt!~JkCl>%tB-jo2UQYeJw>6AXB^~k z$aSmoP*VNywZjcDRL1=QsKv(&-bzV2sK8CG%%%7V#Z-ELShw~OO2-9Zzcen{cCtsP z6G0D!M?yAR>PFEy_YnaHH^6UvVZax>r-NzTMURZ~-M}a6PT(Yn+2XU^U>#)SsWcQr z?Sz#HC4^?sn5igKp+r_Y4y5ji(0Bc04l?;lf?zb#q0XKDqIg1J5IVHDe>r!sgV8{eZ0F zM!5UTKssKppviSC^I&`_FJN-~V6a>e&DJxIfG0PX%^^01GG69dF`K z?;SCAdr1A;T>AvS%kWE@rIVaG%xuF06?uqXL9yDzxW^4HyGX4|vKf8O$B92FW*S2- z76X{T4cs8SRj7^?$DhH)pC+-W*1kQVyjWI=DnZDY{Oz_I01v2QTLNEIk0%*oP(r~} ze8+Qi3MAua%R%CP_+t7?(rmShrLH4CMB}Jox>^Mk#}-dhU!N6PBn?2Z>+UN8l_nX3 z)YB^4DuXKuK>0Bphq)PX#{54lFuK-=fr29ju**Vqt8ZYbDnlsnh_jk~Wc*_$k(;8P zBh!wk+G3?Gcr=fdpM{m(KG(<5Mv_Zei``(V-lQX?X>$mL@(GL@yL6)1`^yzvycrc= zKQq!C;cjQChc0WKyA*F?bUK4dM~&c3D|FLgErk!=bV4_+l}xndZW{1VC~?ydy6L{k zRXlP*Zk^W)lcG9)% zRCwRHl@+yar=Zs%Zg3Y;mrDSI^Gu&7dTzlIM_4HEY+?2P-9)l|xqj;JGO+z??|v0f-KfZZe?W$NU89nF9a9-J~&4 z7pN2Wgpvgc@IkV%SsK|v83VdpL7!uhEn}}B137ROyRSXWT{PvE1LkBs|D2^?ROe%{ zAqefwQ5h8{SL6q?NHw0Kpgzs7NH@udCpm}hM&M98)d(b3Y_2~79+-+1b@G{G6XcY+ zVCY?{OTA)GZxEIG6rfY-VPWf+=+<`M+Q?fopxV9qFNF|( zGmfNOV+nK3_NgeZr<=mgT*Q#aju05~HIqysF`(+Dx&iJZTO(H(WH4B6ZpE$DZwa^7 z`T9R&nq}p=)sy(#TB%=}+jcq1JU=~YBo*I*>V83fIf^eht~;KiI`KUqihnhf$U$i# z@6#j47@f?&PRGJ{$nF&j+ZU?6t#j#nWr-d;JQ{pYx0S#{GBZuI4oAEtd1J>dQPF=?}DCMt!x@FNvu>NrF@8+(4#KMWV*fyjN3D7YTbHQ=U^!HK~2nf;}8)hk?^_WflGT1Wo6MM0=a??r@GP7 z9xRIhE(!Tt0 z0bP>~C91a@3E7ZE`Jvim(fEipamsa1HC3XLD5q9xB{-&!wfXV{;qSV~8vOLenNNpJ z=W|#SpD6{hSsqZ4_3Nkhdmg7Yw7uCDo2Xa)9Td zD27`QRK2=2ch>)}U#b6}$Xd{6JKaAxy1JhJ{6+B}gTBuHzTE3A4d?#i%z;M;)&J!V%H9o}$_5GUCmh!R#JTW)kp%Z>X~0Z1{Qbb_fxf(7`NBj8=x4)i-E-7$DUs8-6T{y_qa2Z8j~q;n$S2Z-G4+xs3YU7Sj4j;=5X8%O1``OGdoVuZpkABu;6LdAsU^J z&0?e=s{R)K>rajr3i7$tQ26&+d48M{xu$sJuaskBkQglJoT~5}sd3^oA*t^;>3E|A zr=q2IU@-qzHY(}l=5(r1@vgI#Q?(m-?^`{Cg(u<{i z9GFbBPQBRnzoU)gPu<=p3=;LWKWNXXKRZ3 zQ_1NuMJ=R@{_Bhahnx?S$Zo6~9N| zk@6TMb?^$7_@>Ez=J`!%gqW{7*zIg*{3mrd960f zrkYs<2yiohv-%xAg`uV2)t!zS_=-ah$qXIau#F$L!$I|jkM7#R_;F9kLitg=LHLb4~8!e+DMc`7ZuXTr6z2VY)|9^>V=KcS< z0>D^_T`WM326&||mTHLnepf@p*Q)#DXWUmQjO%9^_FKt98sfX9>F7t2u% z-^H;E-Thb;7jRU@=rJo1@<(QPl%7@+v2?^#*a8tumd_qochLDs8d4o5MW$T^rJ=B2 z67>Zq-@`3DGQBxKJh|Zaf^F0}ANPRy#hJ@P;noIcfiA|FM0i_gw-okii6blG=iQ(XH;0BsP5XW&*|MWbYzI81j)r5K%Ta}gNm~tHc66iSrcrA{ zqLz9>lQJK`x1Ey}!-lJ8T~$6|wn5RvYHp$amEDtmc+f40oycW8#9FUQOvaMRN{50M zt#$hMUiFyKrS7q8WYnaIkrmwsdBENFzzJAqIJxn>$}}uA`_CyQ@LQd2wqZtCbY)Fs zNRl+5tM?uz&{Z{&1H8;2V+CZ|XEr}%%p?3fmHAEK;1Rx;Ffxbr!)Vgjig0R6LOHBZ zOsauV7lC#%+=TIsmoz6L!n8@E@W$Glr~s8dBS~IfouB&t*(;y_%dvGH9W0*g|9mv@Yq+}Xze|0^|Ir(+ ztoG*Tzn8eo^IsVA*^_@InZNkt=``>DC<|wBY{Eg~sxCGIz4TID?75HAx?VV{UBW65 z9StzPo;h^T4#sPkyaRMU9Zy>?dMv`g8NALU4Q_On)Vc}}MD6ZDQ+qll| z_C%3RpS}ayFrsc80VQa`&WP3y#No(z$m*jOuA&7;qox)O*^e zz_>u?$)o783vrd?dwyMl_7Csb2&9dD?t=sco7F96N_72oSj)ObJ8|R_57eR+GF&+>-r;Xo``>T& z&-eD9paXR9e+`#bH2>F9e>ms=dXdZA|I?v=u<185iJqAG)3btouM3w54${LNy$2M? zMFpuq|EL{pe6b1%KZmvC3vMB5AB3!&ryZyQ<+NlTO zkGLNPwUHYr$g-mj=pGXaUz$8t2H3f|ub3^E5V7u4Fr1TtIOw;NNPw2SO9g?kr=k^t zYiX)`fL+^QDj#oYnj`8VXPnuMka{wSK;KaxE4XrEJwnB=02bh*5Qs&MNVPvq20_|5 z?_O?_3eZI#<8>B_<~87^s~8st7E>A;oD1tJsM=%XNGa2)y@N&cQy|p%%({bgK4}&X zJbrXzXc&ABB(kAXTKO~i<3mM5E`(mcW?&t2J@D$%^GnP{vq{$SIQj9<`!byU!V>si z7C*}YY(VRV18p35AzhHYicNt=xzofJM6`}9UP}_E!^*TRVlK_EGf!1SjsIni6`fH&OIXTbh;Pbbcg?NjouEyH zbSHA?51VHj`s}E>5bq^>=gW+5@4@3MmhWLRYv-a~lS;*irCm8|FO_fDTT_RWw(0k%uzrbFt+(t~koueMlhVCusL3>{ zhz9JgZl;X}3VHY3zFr2g5jFokOLCdUCk&L1|CUAF`1BH53$myZu(bPFqihz<>YEAn zP`DRns-;sE-@L3!NdXh4cN9le?cr>SnOwO{UbZp{ zLcP;8Ai)@4bIUz0>9XXX(qQ=^S>Qq~6mR>O==IgCRgZ`sWjSGMJ>{Vi)`F@ zbjRxRL8g9s(3@s_U3}+llb+nuNwb#F&_|!37N=f_-q&pDy2y`%Y}wj3nibSXnCVFg zB&9PH-1)m@&T*~EZn}*KH1i~36fLVOrj=Q%QgKaKDG?MK(TLM-wy6~={^D{tBsJLQ1{^>?zT*4lC1)0@wl(?9%co0$Biy%n3CdlKsP|%(xSVkT|t#!u`()_+&_z^&?o8gE-1ZN_#go^u- zI)pwds++MRDAD{!ZZ<}<*(q!R7obadojAZL$IPBiDmB3f(_II>&A}oqe#4WDqSFyZ zKQ!F?^Fo;ts!gfmxdqTTi@q6g{W)mt^WEyfmlgkgc^a1P6LJ4|b;$pv!Ei~*|J9|H zIsWfOt`_Y!VKh%P8m^w8e7lTFymfEh2zj5&7@_ za|Bfq|8u%~|MR!qy+=|#m{-^OUl|V6`X3CJ=KN1Da%I*(p98Z90So}*Pj(4_ox;HY zw%xk;9V0)G;NRoBRzN*LQUD|=SfW7lpJ1dpRHmB^raEZ1nQ|p4@|%p&^jK+J|Dr_a zdH(Oyqi_3rKle`ef4e$5INv>e{2{Pw{STKl|I5cUo4LTo@Pb z^t2IR=Sy|58KbD&BqsZ`UWbp1r_RU!UQREL_xG;ZKwe!xPBG|+|5@tw z6aJ^wrPcZRe~Bxz{`pYP9tLbh0=G@0P6DXS!o}t^$p3Uv7sU+(;M@Xf97W??)Wy~j z@(MU0V7$%c5rEK~s}iAL1lr|%wguS4RRF_=3H1^X0PgbaLkLNcieQ%J~^r(w|IE#E@9*RMCt|ttI@sfZ{+Y|-j>^^wgqD)rfoG81>Kfn;4*hDcHR|SrrFjC2&QlC zJqHn(HMO{Mpq(TqIv$piFqyMxkoHz!s8&NPM{R?UuN##4fVw$sO19esQ0ofm1g%9) z>X(FOg~K8tQq;IvAWmH(ncayqE13`Kpeg~(^f743id-?OJt$I*DFMD z`ud*zdisuDuZC4R&XYG=#PS;FZ@rnE^0U49lE0bI7<6NR2zkjzWzq=JmZaVj97mg= z%ve)b;Nw>jF=XvRYD{UfQ64ASfGEPpJGoR@)J=~sbuB4X@^{W$YV1|#g`>VgXq8a6 zcoYTC3e-3?VpKFAw0ABGW%naW^-+(&4?&%jNDtaw>W;@l&4Wsr77(D1`b>Yy>%ctLEWFsXJUO09#}fz_DBXTa4rX1J}dse~)tkbm6~N`b#?hXTLx9 z|GmhSwg3GR!{1Z+e~MxoVr+kwPSzY&J~QYAV7)FYX&-dyJx=Nn8ul9Leww}~Lh)dL zZ5}~S`xnUFv$9AmJT9-sVWLOiFQ1tN<#}axAo>s^oc~(*`MxNAz6b2Wd-r3(w110H z2MQ?do5(!5gAu>!O`?{!(VBrrZU?OU$m~LbX(IsEolBPIGs?*veeyNN%LIiMKVoDMwvV*=(l+Ia&1;*J|$z>DeUJVY;KJ*Vd`{Dj$YCl9xK zu3MYu|IY4}`hUM({5U_o*!{Xcy;?lI*xNn*?c2ra*Zqg5{fbwI{O|WxwftWi^yd7p zFLK%PUk>|2UBB5G^knIOQx*$XO>qMmL3)j1dvlWF#N&PqPPa(o=8$GLaNBJKVTeCH zxa%N1Z z?@L@|;&=C*=iRq6heJ^1Zk(B{rivHHb3X9ljI2t~;t*3<{muFV6}-2sY%7;unz0qx zGscna-{MJTy5GMGGWV~#X3+nh3JfcM(Je|n z8b3_wpmMCYD5YZ@<7F&WV?@@cxi0aGt~CDVV(;X+0)N8Qwg2~eeYO9u^oMi%&x>5S z{r}{lfj{n%&fUH!J^{t+Yp~znS2YmPy{bbz_xCDn=ML5yx%(Yw$5j({@OY9ByKaK~ zZ>}ri{R*7+AYn}U-w~2EgUKQIGcCdxls(r3EZIuI0fE#x;z=gpM~(3T4esI`V61Qq z@G0Rv7eetgak!g2CrW0U?N_enP%qW&QPCVXy3;Obm$#DX#fWfEpu3|?{Tf_l9Q{LT zoXCK@%U)*ro=3zQM!7eC#^gMD`$Qdvqww5*&53;I5%Ty@qI+_^Oo(kt=q7)%f!PT8 z-@obaoJ*-ZF?U!Kge&Rai;hCheDI3E9u5@uTo|O*rcjVT<0% zB{AQQ|BElN|DRqQ92}h=xc`5<-aorM-MxNF-XFX=_WzaMauWYP>@Cmt|ChKj`@b0f zS@i&O`gFzkEHx10^U;Zt^L6IXcMg)}su=x%^a*!HjA zB$VRf=YH~Y1VcHU<~(^fo#ZN)IS+VWYV(v!n=gE#%|Y#PaV!1EAdyzkh_WguUkPMH z@x(Vteqsk&PxzE|bx6$S;$0-NaNWx3JDlLv(<-6&iUEV!QL~RG#u$mI*keMMzHf1~FbY3@Zpd|w6*i*(p?Aw8 zk07%OJPn)C;IqwA)o^p1@Yq@z+{Z;=|J-InL=V#^EBHkAz7E7-kI<+YKz`$>N0E=8 z5+JQU=xysPJ+uKN=R3C!VtS_NE&D|Inl^Q+7B@>3hBv{n8*t=!DrF%#>zxxt?O%H- zid;=25IfEM5b$4lb>n}TR_Ffz?dx>++rxmsUG~5Jin9ML_m@_ObN&A%uAKfahWdGc z!1hGyJRek$ieWd9tDl67;Ma}M2)+!q!+s48pC9gz{kyPBiExG=g7{x~dr0>*L;EP8 zFFvAkq_r|ohunTqk~+J}SMy;bNXFfK$F&B!2fiaK&;;5y!;L$xL~n5-Rh241QR8S_ zI^|#^1;e5nH;KPdq)NlhljRA7VTg3kZfjfeiK@c*MEV5$`G`ZOvYHM3!*@$@2Ebq? z()XeXcqe!|!**J&L)vqQgNac+R3HH6B40b##S#X%{aiL7?5kn?xMg;h@1T&yW{cHn zGZ4===N5)NjfY0{LQ&t}*%8);Uep>0DF_I#>~BmVOGd>QfOBK;xRw*Jhc@e;&`G|| zRg&&2#s6H~TwmTqY5m*H_0bckzu;=$|Cf798vorJ4hM7o=NGwJ_kSGwhvI}=^pG1!Ly8Az_w!|9>EuS(2CXSp=edvXJtP(yi!tjV>)*&3 zBEju7!c57o?X)v~_T7WG9CGW}Pl_gr>CL*VWwA|bEh(cmLs}Eubc}S~Y-hL3eZ?GkkBYXqVT_kVnRZ{xY0r|v3dz;H4|=blUYw9UEO=1VBDCzn zYB^f>skNK2Y0(mmS~(f#*GjGBlXM~PeD+s-2iaD)>!b%%r$TI*qlZ0`Iwu%vP%l)tZY#iW|L{|ygM>qx($Jrx4C3{+f$6OJLMN=ES zscO%`pD{$3p5{M~r=>QB(`1c6Wda_F2`!;a%~T&5vwG6O}{| z{z;Ql;+|&s0o;7~LyHl5vEeN8Pet`%>c^W;Vg)h z04HUaa zYPmTkgvOIKSh11V=EEd!sgM8@J*i)~#d2kLw0Et3Onb?2>BC)P(8vx;H>89i)EDZO zu`HstWjjGpN}bY2?Jl>Rzk$1rssZ7cnlzVoFQuN#9kX?=Z$?!XJHdG@vYnvl$5m@- z4XUiWX}8^4D*4~KldNLY#*$9ALzxbpv*+geiIIGn^qZn#y1!0q4JnW`w+^~$9zb}9 z(OOLE+f{R}HOEuSC&_GT*BqnFXh&8rRP7S(iec40hvSV??EvtZI^hvD6?GE>(VudM zSvPL-{Fx$L*f`$A`|dcPTmjCNccD$x^y0_u46hl${d=0C*UMR&9zvHtP3~5ciEw_N z0TW?&Hk&egP&h$OyB=ge9}!&MDz~kt*Z3ld@{~Pn2{Te8)fVolWL1HxGpPk*j@T6V-O?}+Y>w$m0^5dV zt?YO>9hUp9N77;Gbv=^y@!)}vhz+Y*XJ;|x`52))okI+iWtLv0Zh=o3T;rg&-e+!z zsm$upa&5`c%mtZeH-ogF^#W%(-YAN*8vN@}p?%LX%Pmt;%DFUq7DnQNoGg~1k!_Mn zu00Yv-eF?N76vBMAgB*m&RCW(T-BfA_-J2}vpZ_LQfqm`GK%l;4e5i?g9#>>LJa(Z zRVF#wtf@k3%ap>j5tSqx1DT@5R&-jk*`>_Yg!)uA3@P$tx6oZsIgK%u_}p~+leyoz zgBz+-u2>QniJ_BeRwg0r%0r+uPqisyolp6xjkiy93o5*1+lg~g_ea0d{Xt|3mh*r{ zBlv)0$0oQYnkqR%Do=2rlnwm(xYUsX$zeiuA2z3-2oY)-N3k~pwg{cU;ZMETNh6U` z0$_DzzS*iyESa-qDY3LIcy2<$v;wna3o=@zsy5axfaRa_WtKJC(tMzag)Kuv zi4#H!6g5Url#b%ui5U~Do};a14yO9IUHSZv{{P?hcJ~gS7zEmZ|6Uy?{13y`{yhHk zMJ^NnrH1~osUJl#Ph^66QvlAV4m8eg<6QBfl|HyLGC?^Z?6vA z|1OH#amXLA9rn8Q_<{@EtMO&;)ZXi!{DVav$vw>6s1;tMlZ)Z9)(Wb%VOZtM=s7sV z^WBDYGNDDGEh5_}+8M30mq)|X-sc>$Z*^=|wrtY9l{3^8b7$AyGS*w&fz`W@3V=|` z+#7!H=$=W;X5kHMa!)6Xo{={_`>;_;3iX|JI77SDpfbCg)Fg_hwd{nJIU#2;gaZIg zCyfx7mfapV%h5@2D|m!%lT3{5CXOwxhTYqTR%ND(lQtV9dzi0dJgV&zYfAn##v%5! zn!RjwUQost^(yTCTWu;}Yfoojp@U{>T{z?iNX5!h1=g{^X1pDu&fOtl4Dr5W$f=pF zfBSMs+axBl+7Kp@0nM84N{F>f;a1}~OH=7Vd|8XzBr-g=?+`Q8NWA@=zdiM^93}?u z*j>zIZk=+h;mCHJh3zHM1wCEFq99t{J68#2r3&T)or; z>eu?DIASM7(Q_h~pOOv7bzT@)%h_zB+9!zvP}fAng71aInM%f6!Y{6x@i4S6EZU%#Z2u`+=qO96(>NZ+yM<-qT)GFkV}EH zQ9C}pgN?_UX43Qj-o^R1qXRs=ecj(X-JR~bbls1R0_);`S{)?$pO)t5|ChPi&i`uc zA8H0@nMhBjg+6exVs-J!o$FUiNcOZ7utZCBF^2RY8}-5~o(Vo00-Q8GtBc~I32>h8 z?hm-_(npma)PYOq3^Ph?-TELgNkVBD>p9sJ1yOOF>j*Oh~i0<;I;L z_>8hYZ`!%dw>SZ5bO!|v<_NV^Kz^)u0cmRX{2U<^wK7#nWqR1?vlEr(@|_)oh&yt^ zTbYirwDSbegmg8xNwB?AXGqIa=YGpgOw+-N!@?PRUq=wkTc+e154+*$#X~xQiP*rT z3D0*K5Ox$|h?>I$4o^C*GA6~whO>0%sIrtIn6X3*E4Lpd`DCfMGZG{;stM_Mm0{9X zN@AL}M-UH0&D2@MDBbE>ppgY=Lo&ls9rwOs^}isif_lbk$tZ@#$uHkB>zM_@ROmSc z4<1nlI`a4zZdg#l^EAUCbw_}6a@Ov>=)!Np&Vmo|)gSXwxz_W!MjOR8+b9$+jP@#t z58$D|m6Q`|WD`y^x8K45ye26_zbiwT;oD`KDqrG}$x7gdc~4L>hJM-;uKAx|vh|P! zvYfg3*h=C9`Q_xgUHbq2`StYY6FFcz^#7&hrB&_!8}#P+Uti>E)BkbopQiZxQra~B zIjZ2FyE^^<`_t*g^l1bzUHPAv`vaZ-b7?rw|MVhP>-xu`e@8S<(2f?7bxB)iYts95=8XuOq^Y1pJmgFH2JAw1tVE_as z_ASQ9D+6rmt`s?n;TH~vPVYzihKeX4SG*NJk`{B#O%dUfh+Pn-tZ%w#+RYS%SZ!L$ zm8_1ss&kZ;WDH;%6+rMj@65bzu~wTBb6WEtKgrAxVwYi#K#*d><8y(epJ_G$tJ>KH zU_Fl$LaIu-0O=D#w$5z}7u~3sS3MSm;>+j}_nk9X-s%0=bQgGO-zB`^%UTN@uD3*bA(_+riRJ>ald}iOGMQV-6CrxgZw?D zNx|&QS8My@;Z7>R+3|@wF`*-f^1`pTqn6ZbK%`P?whm?MOTvZlpnzO7a4Q%Y<>IN1 zyNEa_g9iK%Bx3b7cr5)-KboTW;jNQ~&*EdvxpzW_1HO~)0KR%e>E4B{-%~F7t#(?8 zzN5v_M4X`xj#0}^PD1DJP?9OGHdjlM2INan`ySO*E@BQr;&rylz}HNZ6cdDZ6G54g zHIDPlM6rr_S}o@#4MHz&xq{P2O^|-l3Ce4hY5Fa9JlkW2K+#t2mRSl$S1>hiJ zURX!h=Qg;jIxuOzu8K`K9B!b36}Al!e`fwu2idcMv@E_BCEvzjS)TcXH7<+)9C7z?dOo7q4XiWnjDkecry{!vPR;Zc z=QV?vQt-2-!78$$bbrEdYwAub)$9cG({Gz4rrA!9ljF1^g@GuseQyih`rrb@-fAQ) zx~orU>%FX`PGsJ6UNKZy?xubcU4u7$#Cw|KI%F4yiUsn9aZwDc$TDD4MCie&*tq0p z7DO&{vj}^u0EJVUi!FtxM|ETjZ}V7Vr6*d$nBq5tjYaU{Y?yP0Pby@zWmBXT`NMvt zsY-$2p>murdA%d#gEaX#i3w=Kq2bxs89Fhv^^%A|vlv#}0#~jpRZn&Flq;H+%f`dU z+=_DYQ2i`m$ZCxeA8nCF)5a_-D_*_5C5u(3yQwy*Na=@)(JZ2rehL8TlSOAoUKBgv zbH|$es!o~lK2Km)RtJhIp4z4c>xhky49jR6_|vR*wkxe_kK$tX6OYN__KvKzI0=>gPnn&bm~=+wI9@e88jf13491BveJSv13_j)^iyO}y+Q zUe}>M0sF`}vYb+9sG(D}QAV?gifWv>x$Q4iOq=OT*B# zMv>!S;fIZ}ZatvyB57ls1Qlt>CtO2r3<&hNkSx?Vh+oYyL?vyQ=M*O$PSzmZ(a~NM zf`|s|fU#IvpBr`l=dMos&*{;({k@-ir%&L3X}ACMmX?-R68p~_|M@akoBf9m{S)m! zR8(ggu&P)%XjnEbXW}_%LXzQERWSk+PvcEIbWA@4t9tQfRD2*}Vn~h{gIPCXW<@e| zP@wvK6%8HV+nHYOf$8O=NC3SH9-?tk9|KSvjuC&v%>_by4!tJ;0-e6Z(1VLoQrkA~ z=oHEfJcddUXrJ-9nn4J5AkV=V_hufro)EBchRj-G1(u-&2jog`Vw&{I^JAPrr=35w)3S?bOgael;VZ`XsR&_w zOhmS+*0HYv^@{E}i5gK8fS1@0@61_*!CO6}L+Dje@BF0H*PaFi9x5XP8HlMuenB#kvin7{AUmVHAn9k92?Hgh_ZIoIGzA zE#b81R@dXF2_A2+6Yc;S;Us%PB)?`OOrdBqjPICe4f1nQY!v5wI*cMU)WfHPfdC7v zztlZw2Kw@k$&W+~x*ay#CY~eBjpXB}L&zRbO%u~pj^ZP@FRaN!wG=I1b~#eW zL}HuX6FQE}5t=m5>PX@&^GtRYD%F+q&GZ4Lv@a>K-8d3d<2^~8EUil#+v2>>RBr}5Xb%d<3iX06^u$4=(7&ENg33(f4k^RhCO}0s8Y_;646Ey>41*8x;P3)ek z><#OSp2kM z<)e52P2L}rkon$nYFV~pi`G4^-^3}QfS|KRpLgtUD zIlb8Z`rEhNqtlz|V@-e^_^)O6hvI+gEf44Rzn8dL?SFFUpBMooO6!UNIx7nY=kh^7 z=T+_G_U0KF{?1E{R~n#k&-v%#H?hY6h>l`A_r z=-dk3Gi#@Zoy=lkv_iJjp<7|C4dpjB=rV~m8cEB^QR&-T9mBTI5BNdZS0h5|$B9br zrf@#7mw1_Cq6b`&Pi)k9S(KRQ2n3IRZe|7Xx&O5#74dvpH3 z7rDCRzaRQ%5dE&8C)55NRmH+dT`ZRYxXSnfPMTsfeEd;I>VS*7*vD_H;-mX`whkes z6XF@bk0+wE1ANI!6~A7o<4X>j;t20Js69c!?H}-cvFdzR8^c=W9{AxP&EUwoZQvY2 zWQ0wzaRh%HR}0H^u>tsIx58i5MX?0<=3WhaP(NJ(pY9VTwkVhq<^y$nba}Qb1_Gme zy`EMK&no;JLZeWUSL|u8$bi!BHef6k5Uv(8$^lVX^MU zVy<;8uQq#*K<~3an$o-$>DH*E$OtCR`RX50o5PyzxsFh8^+AshYB9rkT-9s^tkq0g ztPFLJKBf7!uOpdC zBrtJ8Y1w-HCl;wluLLI7QoobN8Q*kUn~fFxno0Dyr@E^MbCr^sOsk{?AtJQ`RNH=0 z{Hz1I00slS^;bM+p_t~2+?Yhs-?;SA=`K9Y1mJIKW_MJ2yPRk?MB0jzroE=kfpK4( zcypzvTWM_R9~B6qR)J5vIYSK%l^Ir`aX4z;>h3J4JK3nBF>?Ts&0;3LQFOA>MIVkw zG?3!lxWn#-The~LY}mtbatSCv9B~*^&Y!CesU#09iVAp4Rv?zz<3Z2#2r}6oT4E)P z6)lK<>CLKcN%v((D#a(8sfVQ&v?hWjP}Paa;%OxH#(*iy6+hslOC(9c5QMD6&J$Ms z{E|J*$#ZYeVaF$%=Pg4EhqO9TS=s9;A?}#fSNyIFF;D)h#Yo4J{rC)#^IGztNII-Y4kQj3Bn4dpalgAQ7S0*1z9ApvbI;WV)Op4%v_fs1e|K86<2GIhGj$A#vH zQ|{?fcPrCO6;h)HE(IfltDnbRdJHR-rf)L-pR#XHy*I> zhbc%ww3cJvl8^ES&eNgfV@$KK9aNMcp?$hB<&x#cLG@O+iCoPM9Cb(`gHOozB+SQj zoVHbA2Jfua^;}hZ0LFt7q_==(hzU=ul|?WV@iU0(U>L0waWmjjI^Can$|*j89GT(n z`;)yyHOVlREAbTWwyf$bLO!CL%o5cO`V=jqa zg=#1Wd#tKJ$LmE|1-{}Aylulno_2wkVFbJkFkF#+A^f_l7a!;O$%B;Pp(J^_Kj6k% zrj8?ZJmGc}EWFpS!G;QO)(3N)Sh9d`*0d*CFBBAc7A+s%IM9R!YDMyqQWS)qUZ`K2 zJ6ytQ!SsD0(&%1g&{Y-YxHrF5opR9?c?qK955D$BHFq4mo=M~rA=1E5d0RLbN2C*| zqX^BUf{=jfwM(Uoqkx@Ht^v;3D*#|`P3>7|suXU4)ulefVgzv=J4VzFiSFuf9-}=l zjRfWK(2y$HkG+5>qkvGJV)Gt(DgwMTc;kz!D##~n7~!xIX2yasGd5kcSW=el<_v1V zkT8cUJ?ZL<|2x|~-#yr${`TeQ-1+bx!vfsy|6T46Q~b|xb&mgek*m%BYYhDp!vK>K zJEH-Y>cTl-SJBma5?rm`w~Kz+B_fMIAs6jc{pv9ehnx*K+Tyyc?te(1Z;KDKcQq*<@>WR1?(yX}+J`9R0*+tT@mT^yUs z1y^|ns<1bM#AdoZ;G-JDnEI(GUW0dGjR&kDVddZY%mxarVc*sF(LXAMSaKW*`&u2- zrF~&HKAd4UYqQN+LwyxC3O1NV_5?iRc=)$$a0b^- za8=4j-T;HMvLpGi4E8GZ8^jB+6meuKqvJ0(cv6*Ag7*=4i??T_cU4gwRzoFAF&ing zdWO`|>>j$&vNc-hc-0(IWYm4`bq#~5tA^#^_WE4%@T%h6KlI*4_wh4X3zVmZ-ZlgI zutzhH3x{qb|BQ4Ux_NTmmX{)`(#@JYY<>zD%jkwzF8^%pQ|H=U5?vu=#AiPRN71rG z3Z(!Ij>Nf6s@MiaQuQb5{na0Fd4EAOiqE7eGoV+0v)4%WUKuk;r*&9^smAm47g$ub)W@8^|?xx5e@_lc$xn+hBk1>VadzeN= zr{P=*lYqUz*{K)`L+HLo`ijtA?p?u$hpF`{t~2LFRECt8E>nfG@wI8qX(et{2%b0q ztu;xF0(Zg2FnKR$mE@<>Tu&4W2R^VxKy&-@fUIWVP2_Q;Cj_k=N6zpwHr_1o2P(#? z;AqoW?cIP}?mzzw)^{1X%2cxTvSyEJ7k&y=)6is zgH1n6OyREaiWG}mPN=2yEfsFaiP@#q&O(+aQIrN4(A)^g-iPHcCUIy)=%^#)vir~k zTt67i`#Ba~n;0}r;pu0kWuB%#$r?-6GZucCwN|-M%4uop98_8s{W+nT7UL_WM)7u* zu2+5soF0r8Py6mN9)%F4rwDS{JeV=Gz<>9eLMp9@WU(IZQ*rENT<`+4pOUQAmvA&> zwB9fPCLj{NgNgGx0?xodk4lB9wRwr?mh!bePGnS=s7hEAzcis&GE1MB@g18w(S-Pu$9pQ@8Xd-VEOe`y&aoYM^5cWjx^8B)W$Zem__A&KEMfdfu5m?IpECr^piOznWq8d;z z#yw{YAzL0<`eN5ar9zSTlbb|jWh1pGnJOX1gukldFgUaH&Y91T8e+lZ+%VA7Ic=-` zT`KCuAIj|w@j*wxu_9CF1=$>ZqDGlhB}>wlngruiXngvO;Hq&kKme3Dt%a*bOns;b zSy)&Yw7~iS$NZapb^+GvAK9RN7rbBd9Z_kiDnW_G!rL4lg+035<>~zn_Cf$ zkZKUM$~x)r8pjYd0LNP985&IGcpD2CjggY3+l0OET#zu|8$I`bRv~CN+m#e6roAq+ zPDd3;mTn3CoL!kZ(<&Svzc&UoQ=hmRG|#I3hm4SEcHZkmfu{G#iiJ&O7w>UTf9M$g z_9}_;`?Jl9sEIU(0gFzM=)^o@y6{G#hDKiPR3ng(bT-;#wrBb1+O3|lOdo8s!XcFlw5oX>P=C@ zrO5v~u5?kt7&QyW>g3Cjo8%Rtu53$Ja+eUrkjh~k(k$q-Tpy=(N4Gh*$4OEU{KSF4 z)!KTjpHPKTS9 z>!Mf&gL#k6RPS2GI}V6rTu#P2c!kvoh#&kE@JRus&2v$M z$kV~EGvhz^cJ~e+NdVWu|27y5mNou!d1cQ3^CH(Q_)i@AX99ov;-1U}v{yLfN<28Hr0ssl)xiis^e!z zzSY>%zar^sRu2%0Sg$lu5+g^8=ch05`v<@Ryb@q16P4D?rrDv_Hx#Hg!AR5erQ(3A z8V>((rg!XQIw>gVr)cO}5{+yHwmwkVj8n!*3chkD3~Kx_cs?7{+N=b!6%x$%8>4sU{)YM|Ng0RJOP#>F&Oq)e< z01*d=31*5qlIpdi45#!D8Gh8dC9I6w&BNK)6?EKKpdY5B8>PKrNgLRX9KKeALlQ&1 zhpc;vb<}MN((cFp$^L*3-@|fUk4>!2H!E0+WuaB`L`|q2@ZhSA$?&J88`F$4Cr-V! zU$A54_ytVMu4S1|<;~@DN&WxSFvZ!=e;4Oh*VCK5>!XYF2Oa}E;{TRbmo@+E@^E=D zKmWbNHPiV|4*hc-19_>l@PS`c#d1Z*y%>MDR26#|XD1{6*nx0`Md)F0-$4@}JgEIS z(SKxR998r+M)onv*emgFIE)^DRB?S*RWSnUatBm&B!SCtqU_fY&kcmGTldYvPZ#6| z^svVbi}*t>OW33#){Dio8)-#}W!m3uyaKK7GD?z6+Fm_6$(VFeIiGl^{_lV1kH`pDug&FP#n z=~bXYM{Yq@kZO@`JYW;pQHp1Z;?{NP5HX2YqKVlD`>Bw_t-w}zT55cN4HZ-!*Y2;_ zB#6u?f+^IL%qRkPh8GiC6l|-?;T6h_G!)9!t8@nC2{c0rDnVhjuGcAz^Xn>%o(oqy z(ut=Kf6`BQMXc&@rX5BwfxVZ)v`$Oy;j;umGQqH1LDEG7Z<0<>&EZeMbu=uE*_tJs zB|DcV&jQGMgU5zP$ikNwOeB4&gDNK(VBYS!ma8+6Ma~TKXPKq=?zVU-yrZwvE>Mvx zbwBe$9hjEVrtzFi>zS6O8RBMrvBG!D69w%-aeV)a#jr3H@dXgJqUM}Kowh*L7=fms zCNzoiN*-HNvnm~3+B%K}*w83&(;ePAsO)>;%x;;N#M9Hv(?I~(a*sW~n0cP8U@4O0 zRBtW00Z}}^fqg5=B4V$J3p9s=uy&m6-h=f#x8br)49pjS7*b3a!U25EHb@+H`Aw4M zxXj53X^Uw#OF0wxNJo%cp)L=X5Ne3qO_!;_=&4K!idGauBbCcN0d+LT9MnN*yEZc^ zD)FRw<^n|3gn*bQJ6?$IUL-)(d{V1_qO#2?+CB%g`=a8L-7{a~Cr&kH#Kgw?zUe9x z>hpVD6yG)B9s~<)*h^XI@Ds(ErEH?vP)vOIkPAJMcj`t63Q%oO``j#Sxz_Twc35j2 z;1ddb*rT9Mo_=apBHT&QN`$LO%-oDP?(!QNiw+(f*u!MuNN{k5w0|ZMt2{~%85^@A z73J2zrh6lA%)KGHf-bP7#aM^rP)AVLSS0U z>{7>)$0!f<^bOm1xnSwg-Nz6a{@!``P`#PeU&MqECs2E!XDp4T@~p=Y)OzD<8xIJH z?62GIGa$`N)3cM30WVr4AW1i;UY0=%5(OdwENlQ(iSVbhPgU`PZbOLEk{B(s!W@WiAj z4j3jlF=1HXF%^_W!$M2jh|z(1&SV}+H}~o|nxqLzR zBD|KsalKAD6S3a8?#<^c*Tb!Yl69c6&MDSvR0SyUj{R`SHCY=v858PejU}OSQQ$*Z zZ-UNOpA>dxq>f|CSV5Afk}6ZXZl0b`(%cqGIU+%nvnM45S~ZLtlpT;ei&+aMOtg4b ze|3yPsCaX%468ptzrIVP67-?6uIA2aZ${C*^cd?ZXuC>lyR84U)>S?#Xkk75FIpRx zW;nxQD55&{!a$*i;D4_7@2(#c0n(BGd1a-)s^dRaS6AlvpO?61#Q%h$e?I6B6!_#A zkkyY61Ojy4Rqeto#_r>lhvS^ByFUhBfpfdKszV~t*EK*>3pjPGG{B7QQ?Xn%E)P;L zAc$v99B+mDocGF7S_24MjO2?UogmA!OGT zrsPp(L=r`olLbW>5>cg;Zo&R0h^tQtWsn#J>8L;&!GT6ND0M4pvrWFbP^q-y9qEfO zFO@(ZOyfRMeZay41Fj2@1eVgvGIHa-Cwr`iRmYxk7J&VYU60yKgi^O03maHHJhl9rNSnYjCr)I*tWbp&sqmRB(N)(}D_aE{F>OBdaFX~#Z(FejdTt-O0mXvS zS?RH$m$eY}sBD7dpOzg;vPorokWIxbQQ008Y`{+((XGzSaPv4aZ{dt}F6#Ni`v68j zxxdOcE|u)DaYyx|_!TZb+X(5ovW=i6_5tm zOjpsS|AS`wF`a(Q&U(xVddv#*Ow3f4BLe0YxOo&e`VTJTmBj_0$#*m|AzAJzNS$9(>i`!uZk`Aacw7;jkogIczx8qW2#r{ zVr!!WP`DC8_^%*pf6*)*H%0N){j)pgA^aycGHf6=4TgmVPJw)_WW21a7Hi@bLi!_K z9R*DxznuaCa7;FY&Ja3(=B1sy2&rX)mLi=e-*|`D#PPlQU8iztLhQ*GBXd{vyXnpn zRAhXv1fcAi29)*1I2Y#qm9t$z@1ys=PV}ey)$C4?GWdFk?wr46&TgttGNVIu6^k&R z^vC-ROB<*5Pos`0uY45;Ebl!w_zB^_t9Mcuyya5&u!wOu%87@Pqu$7%nmvZ0tNd=b z>}Kgtj8Vfu<~W}e2T&C!Y3$w z@+nrw!oGy+iy7fVU1;CB*HLNcR&B+7}Xw!PO(0{V0qeLndvfzHlWki?LvD= zto&t_p;z>3TkIenywe)cG!?ocXJoN}NZPHeMPj7|;%=fE6|bID`rHvQR4YbT2UV_J zsA9dCh3$zB5zmsznn(|kj9+wlL~lbqg#T>u5{lDMJe~Jrp)Oi+-Xv(SxwW=fJ1b)l zF4h|{Yv&0jth&gk8o_wXO4Guq7I6}J3eEc|A=h%NSLXn)_|1F5lc!yp>0oL7C;Nj~ z&CNuxA+|v|{95sM_u>^2{vZ&bhB-z>jtnG#1c)}5^`oO@_+xq5Dyd_eBIe9Mt>8qd zGp|~rXgn@=&u4Kv?e6r2{}~?9l+`6 zV4_lz=k(uuIG^F^eg4CXR}Y{79roXi^|g^c|D%nU^ZzVQpYzX_{)s3+tg*}b`?@S# zye7h}uQbI~nHq6V>*5fZpb6s4scOo=Ad;PR7zQgC6-|D5a zswiH;56fU9-j0dGBFuZ^Vcxf{-9NiGrL+WtenvT?QP})`Kqgjgmw$Y5Bk%(lHEDB+2Fx??@q*E!|Jzt#o0?^_`HK5Ds za+z3*NtEfx$=zhng>%_o7?OTdU%Q7-Zl9AH^R1U?d-TfwP2`h&jhY*Z6N9#QmoL>{9SuQ znh4z6zb{FoEA8jc__on~$)}pxicrDqr=-8${HCiS_);JQ@j;L{)GP2%53f z^=i<{hj^ErcFJwD5wT4`Vu)qH3N8-%e5Y7hh zg=eTN(v3&|yo{hGKTF>BA*aUCgSql(iRlNbWIGqMo!QQaM8lzw^D};c;dDn8(+5EJ z6*PG#|4-w|rNRaaY-3i*?al2~rWePiT_v|hhbkQ`5glKu6V*0DA_PHglLFy<>6Evu z`vt4Tq#1j0c_$7HtiK4CRyj%%qY?HYs<8~E`U1fHX3K*w-@4=o-T!E;I?QU>L@5r^VHN^sBUM=3VQsTUw-h!X0=&C^O zy|nm`?8-bRZ)dtP=Ustcl-XZtU=&!XCGPmZb!#t>|J!jz#{^1JP`~6a;$9du$zBlf z&zwGvb;Jk_Ih&DNDjy+!*zz?iU{XK$%OID;CX`k;7hcN+bbN0~Ic#!fmo!t>1W$q2 zOtn{ku{#i^-`!;(eeyit@lJ%y&2X)M&u-QK0ndTn_W$|8=ZpE5hnWAn z?Efo+p^pC^Y^-j)*#Dp7>0|$=rGFyxKUUaf{hvViQ8euzR>f=l{EdD8t%}LpPb&`w z-2g)VHobt+;TLuMc0D9)_upc%6{_L1Dt5>RV4FVfL!S5T8sfE1-9M9Am8MwPcA@1) zPVLBYC02mcCvl)WT#rFlvBpvGRnTaZVnf6!T}al8@GD(FIvn^>g^BsI3d65f;cb%4 zRM3!h!=xImW!s@van_cGMO*=tNT*R?+aZ$itO1QqBaNFnI5-nakHh^cV()r~5!3iB zql1;*#8MpfD4X8mw~aZVsz^QJvz^KAc#r?meq7Qb!oQ(Cnwof)v>M~AP5Yj;>0{2? z^f6~``k1q}r&5RB>#VUHZpzr1J6vxj%Cc_lMQgE?TaI7zRv5*2tZt(oscFgho`fEZ z3Anm%KEJl4b(=i17B=uDeySC^gG8{ma!yYmRe=kuP7E~G9*170$np#OZ$oJ!50QodVLHKmAQ)e8CCq_ayA z7{WT-vQZ1#sP<0T3W*__g&o?ed=w^_TJJ%-qVMcX?ms&sKII{E0>b1NvsLbztt%gj zf*{UWMPW*s8)(x7WH*20tIUQi7BnDxvmUW0|%2~7|&Fpc{Wp6hxQ>p{5QVr>V+TL=P z48eBu>UDho1B$eN>C;#L_n^SP@U-jy*4EcIbo|fC>R{zX|MwhE5B=Yh>HWGR{;I-- z(G;s57qME}sEe)F5L2^RE`6_y;%gl;sC{jU325FNXK`H@#Too^UN3#EL$r-^rg??6 zId6mS4$27rS+FvD-u-dk!z_%Q)d8v8F(#MBFC6>W%u42T;j>cCiN6AV#A*Lf8uXPc zM`kG10bP@Xx`-gd$!l9{k<>Q(*n_mPS5(~)E5SS0rH zTM91ajP9Jg6e!#x@r`J&!YwzKJ-(F!wkOsrm^5;6VBJuxS}N5F@Bd^2@o%YnS5=w| zZH;%uGRzVLCj4;@?`rx_XpL%DWh0!9NLG=Uk8dUjLQyPjRJchh#@#77rV4`i3FDB# z)c6ZyG^PBjxJ0yl-}7~jf0Qi{;8R?YS*^Kzs{l|a_qs^&lzko2thv{R(kU-nAc!O2 z*e=n|vqeHwkSnsNpJCV}=wx39eJl*S6mH1b0wJFsES-e$&lU*@^q^DRaWq>14ASoP z%X=>!xm{#mhxBhD9)XPG+1J6l66U{u?fcI6#hoSQq5^gNs*?68g#uXQZ<7Rl(kTim z!c2eebFJM?jY=0uk~*VO6jXmmrRZAFIVD6N6@gN-qF#;-4(lIKW8$Z4*I6BjXsfUH%W%C^p)q^C4n?QKPg*gC4cQ0tZ`9Oa9rq zRAA(?#>-kePxh!$p}WZ%H-7{roKjM7;pbeTJz4qv860@T2r5|;J{212c$Mp5- zx75Goc>b7G(gCTt?JxXFl1L(1?OK{G{fX`Ilsj29`Z)lHYi z0-e;X0Zb9{Tkrs$fCq4&CUS7-A#@R&*o~Q6E=fCo>XhWoyzbRdjuDKl&G>-C+gD}q z(0o8UxdC}?h^zPaUezj`01t~zm61gN{D~$2Ti>T%QLvHS6)n)Xu!Wm`Er^1ug%NLo z6A^4<)UORyRJC%>SC&A@zVxcvN&{hZ`yNxSDQt3@;%Hor+-oS%g1CX%NSa+@1D%gK7WfV=4*Rv3XCz~b zcf7@@xpZe73mgL#yX;5B^14r2;fAfSh+CfqPtp5PauURfwJ2nP8J|_oip8N0`kfC|Rt@pC&NS0-aFovwhI0S* z=<-k9#|CN3VDIg>T`d3oBa_s~FkvNB;DV0(}}(WwYR< z%`U0?os5Bp)AJ~cey2NcFrX`@VJ*@!-95=N?b2>>HDVX8fhP7`p}d$9TfE^d1~fbA z2i(?x1#x-Dw;HjK(?Ii%`pu3)#vR85Sh`*XD&Wums9*OJK!V%_RV%k#A8OvG2^AVL z=6Dpz{HRgf^&5pKsm5?*k6|}}N&VTY0dgmaQ)7?eLtx-3UJQKb@lc!yh{#nC0)hUw!+DPwjyB4+lHHhqRp^ttTDeL)@=EtppF4N_zPj zhJVl1&S|H1(Tmf^TKB0jfv6Qp!J~dA;BDN4ClED?qwW>*_fYp~wSS^RBDK~G=BNQx z+57tlGRa|z{0kTLC=K{Bo!1RGuSflOh`gwmoBdkMTf<_DYrMs1=BkF& z;tI4l>epi4P)0N z?}MwwBLaXs@c%{|D+3+>yEa;TiT{0$rz8Fsm;Uhqz`mxA2;k1AD9*MDm$dH~sNDHG zkHL3_7!EEfa2@_}{$q7O=i8c9E+d~$+_&Qs_qo(5?sC1UR7$=eGk*tKj@oFVSJKzP zL{C8)h8G-BqF94h7%S8cc-eqn0Ytn~linhFz7VyKj5{c&D9sN zvI?=BrvG#Bx41KRlDT4}fX=QH4U8(V)@ce3J(NR*rmOu7#9BiFQnB(svySkc+5D>W zCRn>1HKn(8?+KwTtj=bb8nm_Cdv50C)6Grwj?%;B=LQPXioz$lDd1lsoOt5r$t_Os z9~PmKMs@#3L)akfV$OR3^2b5I35gHK2OJ} zVWL8~teDU!z6j?)UmdJQ3-W#p5Zm$T4B7qYF%{MFlq_EH_#xoR_ySmiJO9g#QP-Nlc zQ=aKye^s5zUMqC(P5@DgiwCYPx)zcYOV;^RH+>4Ybe=E*&@}^!HCThJfzaE$`;I6m zYMqEUR5HzDBz6EHa}kZ8!aPNI5Gw4#JghfcoN2BpHG=A7_|7d!*S_C|6Aistjeug{ zgkxtvqysAW6`enk7KMw`Du5ho;FZx~Vp243O+FH*@g&(!xLaDj z3!SX~NbzW^FSwr7Tl^KJJOIvDL`JFd#L2}_V3D$FR+`%)^})K~XQFd^h&-_^tc(;G zgFig{Y~#dPb#N;guF|E>fU9+$G*l_HNOt_TVrn>=lfY~kqD(L$VK-Dhu&YwjPM@z@ z^^GQl_bvKl!zLuVmNh26rNw}5z^j@L1zBacydq|x)zuXQJ4ZjAG?>t~`6a+mo;VU}c#Ezi3O6FHWb zb%5y4!u2TnGgaC&vnMtIHRLK7c8>g6&F^s!D$=p;)Do2WbKtFDy6?-kUGj5ACyK?( zgn5eT06CFNv&>i`Jj+bna(QJn(>QnY(p(B-oFRz|t&An*Dou#ui4}*SF0v3y4R#&( z`CW&4lE$$g6KcnvzPsmsq_@>ON~=o4QrfN7VTI%(ftuv@ejE&!>)nQp6a^EaD#%v6 zu4i;1Cs{TcO#UY?>EBbuiV#`wy8hL?t`#VJ?uhW~I%6Rcu^>Ak?baWr*pg*Hty7~$ zBF@ikvHOC_E)TjEhX7QTIBOFS9AX_VaBiNs?ts?@cFtSX7e;5li= z?ZO=_YuqmAa}|7bZnhyO-SzfA?@7|>|1m!}Jic1YzyC1*59jr3dr1Ca-nuArpcuVDb^ljGtCG;{!*Jjdx}Z%IrLji~th6MF|A& zs{H2(-peDNl>X1J&lksM2Xu627yDn1&krAd0d&y+jp1rS|A+AY4;XLqywLv^`cF%L z-wPnSi@I|DURTA^MN@24&T4dBL%v*HF?+w(@1rpNFAvDVgok|4{$?d((DAwzdk)##Z zS=m0hw`(nbR!$m1D*M(n>_W{#S{Wr~6lH}@lxx)|P$;ej;}`|WP$UbfAkgKE6q*Go zG|7_7^@HRhFbN4gT>LO8)0DKD_8CpRs?#pT%l9xwXw-H>GQ8D<1KN(cpN?Rh0GH-; z<$Q19D4L^Ei&%6`CfFh3zMa=vyb%L7(t$OJFNNhiI;P~K^dfaC==j`qPhd&hl>)?<>{Y zf~e!I>$D@V37+{iQL|GWPzL_EHa;3l%hSU6siBo7E=}-eYvqp^9%XglE*SCD>@rN|Lc!>~E2KkQ@ZI(d1|TL@W?(~1gw+X;gv zRPC;U%o0UZ9RZo43G@EFk<3h(Iq=wrihExKq82=BkCma%+(rs#Zvw82Exw{vl0BK6 zWh$x9GUhB6yJ>Yu?YAQhjK+A|2sdJyUUDNklGD4*xB`#e<&#UnSb54Waehw{io{<< zkLzKXIYzWA=vLx8h1sq|Qtkv$Z;EbFIop`kl30%;n&LX`tyluQM#$wlQIFH6qVE!; zE35LR(Yr_oBBx(q+4H(%2iheC>_gjrQ_kZ7{csx5BH5UD5F{DRrV-qStpL{l>r;?A zVlNvoK?L^4UUU|tXfi$gxTpcasSrLRi~>+=X>7@`eAH>r&jHpovJU=^dGK!%x*A0Q zVC91Im*joKs0ec*O(1*YJO6LfZ*=N^7xVqkr#~|P=gMGpu%71s9K6W?&+)X$|Frav zRR3Z{o!Va)4&`!Ky1bl|WtErn*PJH!Yh-AfTdq;vj>wo@s^HXGbX)SwjLNMu!-Ons zjj0m7%xcl&ZPXD|caL#IygJ|^T3a1P7nQ1Rd9xvmj6na8lq)vn9-86v5ViiI8UAOU zF8co%x{pr>{U5DttV#Mm*cgsp?0?Vlw9x-Y)BPui_O6Ph!v=7M3P1-sY>F|&cRQP( z(*_?p1+WuhURA~Tx&%&)rHbC3*QO_wlbClku~K1E1wbu9!Juw}@)Y}0kfS^KS@QDD zZOJ%Mp+ELI&o%BH4}ZQxa4wM7YjL@pa}Nn@{u5)~;jRRQ^0?T8BEP*E7r&Fh1(6V! zGR&g+J8FtOk3THq7pG-#OeHz$yVpHHOu}jDp{Id`hUl>C5<~OqA$)`zkJ4!$BFNpx zFy>#PjshT&-I`iq36{f&5JW}~3jvTm^kz0`b?4HJY+ZIy=;4}NCM*XZ>zt2|cUGhu zQ;mVXm{B4(7G1FhYu6eN&h z?IC;H6-+lbd?FWy?7~b5OK>V%m0kN}I;txw2npS^kG5-qSVtc5iVGJ5p!PI`bDXJz zUr&KM>;LxFowMJ9x#?`>YXLjROZ*cP8Kfo*ia zY31W4j5?*<;uHl)VgjZy7Fo~tQ=de0zSTQ4bO{0_=lia8z7wR}Kq0MJ7TpQZBYGZ$ zm-9Pa16f#Jnf~Gts<&2?q+hgF&cne4ybHuDQL@$~2PozMTSLRn%<4sab9AFU#4NevS97twFdCDdMx{2AVzR z_|8qd;|0Hg&56oy(T`mlzyJOO%w1#@eSP}`)TZN3SCm|A4{@xJG{jnJT`KBn|Lq4ym4_Wj~C;q;qEb(|?>4<3;&G#lj=?zq8}z&lhKB`{!S-mamTX=LcVw zVeKAA2D;8aoOyBnM;n8Um-GJ|k9q!a&3meUQ3IUaJzYM(+l5oNZ8=5eZ}rk~4XJnv zfS^{sWyEzA#g^Aq9&#s_?SKz+S25oZa;I2{UUnj_6FDImOcvu(NfuDi6Y7&H3!hYk zeGz?7|5;Mhef|$_7e8Gs4lW-~1iI}18>0^gr%^zLKBVI9=S{PT|}u8@H1`fb$Q8cYUm# zCT<;I-S=wu#wmRMTszu&4WFGB%DK3{hEuRvIitS^b>CjD0&NsJ?0wGQ0gYKln52Yr zqm!uAix#DnydLxa^n=o58oP4Wt!-ycuxP6nCfUE^r&>p;QTHr=H7vHw@hqTfB2(}k z6ro@FO&F6rS|HuqF6UB6FG4t%sKx$SA(g!GX>lcVjE_bm%MEi3uanet7&}9Z> ztUV77f)jFuF#f^|WQWmgW#1aZbx-p`dfn8!S=eSt&5YnkXzNEIN4#f8*tA3cH+Qs)LCsfl4tBf)OV^wbMi0P4D+|JEQdr{7*Ya}&4w6m6qV;S1ag$H1x*4pDU@Yy4Bqjmr z1wQV_9X5?S42xW;sJVr0qNRPE`b3@Z4v4W|lIfaXHC6+by3itI7I`dUnu4d(85;N> z2Ui!f>&5ZK`SQi5tAqK?{wK)bbos;df2(Ur{Lg6hMgR9KPe%Sz>wa(akL(`mGzgB1 z81-`jygg8pJrBC)Vg^U06A(6lNxSe~q6S_LlhFAP)wGy{woZCrICy)-JMW{JI_Za1v!Z4x*gK za<;U`fR7Ox&&LB@zr+JQ&y(1HE-u}%eHzD)@O0__27^_t{~N5m*ngkpvFU%@1AP^M zeCKpW{S?LNR^c)-ZUwW(dR0u_$D5$wI|dWai8B7IRxA?e!X@nRK{}QDW&2whB5st) zSOm->}$Z+z$6cxI|RgxloMX8C{H0l>1?>Go<8g1L{|- zVNhym_CD5y5V}MH)flEDFtw}ojhoB08k}*$_a1rZKn5V31}|C{s1aPfy$nX!K_kd- z!ue^_9A#LP7$eMZR$Xm3Jj$2hw7B2y$|dPn%POQ=%{~|+PY8+nC&l7WL<220_#HOf)RFslyV7RBLP&=tJZ6}lwc zD{AuQW!vmcqk_Q&iJgLK=9~(DbT5ppvO`|h6EN_O=4D&GeLHp6Dk%KFTe zM&YAMExFxq_x=Z~{H&74`zyp(1`l(XIV+L^EB*rtf3_-KaAdJF$mGjH*V);8O)0Bl zy_Y>#$yxR`i!*XtIcS8zhYxUBIs=lsi5CBK&7#Nm{DV&%Hy zweo>QV^ESqIV!9OCFenuM%)T=!BC3jTI>Q#(Wgv~?RKd|>*!MD$+Pext^GTnRR4Ez zy|}zyEQcRl>h}G^gZWR6pMRiG*yaB_8fyLDU@&;W|9zInl>ahoe_t(N+fM4#1AZu$ z*6U)|k(iTm>gaGG@_G`3NCZrfvJXh1#&@+Z9nVg#&fsQQFV*!K!0QP;7kc%rM685aVt66BHVPiz0DQu;u#&J@ zMDvJEq5GcyABX=n7_MxL68x`~7yPehdHS6HCp-Fm+<#Z!7f#mwUIxv?MN=H&=ar_o zuEOWnb@3TLR>42)BfP#HzW!EwC$r&Ry>wLrc!_uRjY_4hQRxbM7cwVIeg*tQc&%DG z6TZexF+TL}B3@(!6q+ia&_sO|&;+70TY!#nCA`FhHvhX<1JqjU5hxve!Sz!fyix^q zi!^N_m73NLI4%1f0dv3A%CKu>`l&n9Af%k|dNDi4CI1qzUn;VO7R51US|TR_FMr19 zTF1x7=BvGs9s}y+5x5mudVyA|DH+knz){Qec=$)75h$KJLFa|OlX$d?$%iY=wkxLD z(q$+WUJf_PYn~Hn%yj9T%TbK4`psj}8 z{9E^uL^$d%eV6T}HM@bRsbuA}B8dnss^H-fs$%T?<+izaS?=#!6 zdXL+&`h)5D1f3*>7E#QZO3V1p+^3wLs_uPNdNnqW))+a6wKYa)$(nKNJ1Sw5YmUI4 znb5_KK083O!)C>`zAnQptHSY2Z)?X8T(j$z)HM+wyZYH#tm3>Wiqvk1A=Z2XcC6T( zQ=nHx#=Q^Yp=TUS3iB})5dVD0;u_g8=8)lv#7W&&tn;R6b5alq2nb5d@=;Hn_V&bn ziz{=f8PT@tf}Jh5lXY7K zG&1r8Q;9nTYp_|ec_ReDAo5k{z7~x`T+aLuX0^FVJV!_unT~y!M9k8^RY4XLr&_0a z6qA!AK6l(EX|0KVGW(l?C!w9mXVT~75LrYN3uZ-A;B+1lr^TVc<5qDz$duswJ&(E% zW+AAI<<=e-&1QoA591;T$d19Kxwc2OrXjQq)x@=B$v#RPb|&PoGl>Bs6c~^=!A5K& zYC4ky`-CSbNQ1PCpzv=Bjfg+sr-QB-kSL}EMND&s&2Tp&-GYjDfqxAMWkBTboTO;Z zxlZUi5$`EX!4up9)94{BC*sJSh%v=0WNESKuw{BsbC~=@$i7buWd~nuG_0JfPsHzMpvRxoVq`h?2L;>kR3NE zVVlz7=W;t|m8vCeunZPuJ_~XRca7{-);6OcY>Pe(MMsILq;|QL4UzjaKDj0zoO9Pc z=fqy9TMwEH=yqbTw=_|K;&Qz;Z%gokkjbfPlFl)X$#rSD6g-s89vPen#7*7Q$f-ms zGDVUna0s#IQQz%!EQ(sFOKiDH$Ho=a_}*sCmoNkpRbQCNUG3hgP_TnaLd3-$s>Lo` zGER8b}F(!g_a1+vM7)@)F# zPwq|pG`;vClYioq#$F9(>!FGd|Aj&*schDzmx4M-nDQ*thNqGG`JJEC4Or zpgel>N;oTShZL1}iJ#-+XIyZHTY><1j&Co%qlzBJ-_r`bK4Mrv<1M&5V8Go+D{xhe-Nz{?PxrzLE4BZ&fzSXb zcIH0UF1JuH2!|*G|20^TN59ly^o5L5PCvK7O}ircz`eE(uMKN(DFs9EMTtSWLO!PC zRHr2C9R-Ppd-ZW*K8b*K-Z&I;N+mg@nb^B1v9|PTSc@%_FJ*-o9e4|=;D=FKhD#d} z_UbYL+%i4t(}WB|u3&c(a2(Kdj*>6MGT=`xUE>d0Ch8s-demQ)tOk)&_m2d#v#GP`@_EiRnjsju8u(mgE8$EJiS_! zsN2f(@N7P#RkxBW^^tr<;ut`1N8LUjNTfkrlKFs{iEa~gP-;ne$}Wob@% z!*VK<<=VZc0AE@iUipU zJ?DA~4C}a5pi_oE(*)=eAYpp6bTOF=n2FV{I3gE`b$WNSc>JfzDC-qOzM6AGCv8-5 z$qh?W*r#{4d5mIe5?2=hxQ->3IjKYnxtK&sVN+{Pgi2`yg?4#lq>z7{Nru_SL)anQ zY_7z143pyDPQrn2<_Yis4axc;1v9&?9MXEX;-5PFx!e|)+4c0Rk<|8g*oTAUxN{~N6) z`F}^l;Y8D<+c}Y7@~C#j_dBM&W+mUQ(#g2KsTSs}*_z9oK)8 zxV1uCXJud}O?2jx@ky2^RFq%#m$E3N(p@EB&q_Yt#9PcEs)i#(V<+1;UAiZr;tG!I zguyx1-0e=>wk%pnu{G2YI)TKp(H4wx{- zNQ6o#5C!@@rg2l$JKp$QKboPqJAf(GAXX)iLAMf9=b8f1<>9Cs3bvdw7zJG8#h@P` zDx>xlaVS<(>dsHE^2^5DaFbj%R2At(%#HevHfws&hfS+#u1avssd>vkKOGb*Lg*$_ zTW%*mF;b(=b^2@vW_@}TCGZxfM1foV4o2^dq$27y+`8)5V;A=9O;B{tgwtgKG4rLX z{%{<4@vWsvw9A|~x^nW-C&Dkh;wv5#ge`tTS6$U&;KbFp6r6cZ*nyFBYz5N699tv7 z7(JQN|L_Tv{xp?jomSWto<&hwFUkWV4U|e_TpQc{Pu4s!tZXn=B%nG(G!yD&i=hyf znPqN_BbrGTfRUt=#IZI~F{Ic$S~}$g-hPp>8$`K*s&T4?5;e^2=pZ6xIcEjATJuD2 z*@tDM@B;D#T~2yHw+ruqQ=DUU!Tlbpv)nfrz?!(G5WlJ9 zMP*a+ltnqASXT)(O3Uh1!`4xx_AGlHkvR29QrlYd30a|#g_J+MyBnbB`@_+n9SMdp>FTlvYRy zD<0Kd&1QRrDb^ug-8g-glpOunl2D9{Ydd`+6JqMcb3#YvtvTg3n?h5a8Y(cBS#is1 zccu5YPL-8hfYJck$<#MTjX9za=5~+GbJsxHJ#SaO_lB@pv5yvL=6fSb4Z zOKpoGEGL33^({?fgl0*Vqev~KHM)epaAyzuUgA0qCDvycyPHPuldMFkIx6>5Vi|yc zxs5>$J3H7^JYM6N9)evvvH1#Tf?l=HwRL)?AoVME*9p11a?YwsbcEUEv=*@-H8`^x z6I<)Ulh%8;Jbgp=Asag?5id1B=w1~l||C3iO{QIrc3dDG!Hc`g|pTg#@-W%bnzs6>G66F+(WI*mG+Aa7c_UuWY)c@n` z;>-2yz?ttCM=oX4<>SCVyYYWlH`a9i=h5&5|Mz*GjQQ$!w&Fig-=Ibb6$%TKWaiFq1EK&b7Nj9a5m%-5n}NQeq0mjw zyN;F5tARuAyXCTW5t^@_GxuF<{!gIb7vIhg=06>ue>u4QG5G&$gB6YcJy>0R@&A05 zCx8FTb$>(#(4@9b?0<*VUlrr8&O`I8oR|KZ44~87<2U2t{hXrgF5s%aDVdc)c-ed> zRl;p8^}_|&p$~zMklOpU4jD%Giel9r-oj%P1B&AB@d%$*^7b7z5vk-iP1~SBVLIC6 z6v`4GvCnI<`y!?A1ak!3@`|_`AWC!;IF~d>^gfey`8?4Jv=@#tD1EeCXhL1tFiR1x zb6NLk-twaH!8=)IY+N*m!xGemsR_Z@A``-rrEqjh(XS>^BW$T6(qa=7K-p?VG-I=y zgn;{@r>1A02IGKnzhb(UNq2oLCXsG_at=@nNvbd$I9}a*25YUf?=tv-y`ngRz=&`p zFLEnTmL0ySqAB+f?sD3VbSkGbrTpr~n?JjQ+~D6#FuIT*d&OAMuhROh_p_RiRAoA- ziS2d&|0ca9#TpwHLx;P#(EbDcO;s2iFvH8Dr58Njaa8kUT;VX*QP2m83K2|=D z;Z?}{bhA~v%)S$u*>|G^-b~$=Ed2^0h^pkj%cW^3!=Hxguapi)pDDe z5++_)0%F(vl)GyMotC$Y>YdkVsXnblc1uKIXS*7&ywILEW3jdk9ug8HcXh;BG!6m- z-FxIbS*#lQ32%@aE-)#9LInvB5z_RjJ^iHrzkY>uIR@lT2#=#JlK@r3Zrmo_P>z<5 z=!Rx%lB%4!%3|+%T@1@A_25_78=nJgR@UoMWhu^WI=NoS?2f@UPSa+2R9PIa`jr?g zfrzqap>N^fX0`UsR8yb>66}~|%Q2Z?svSw-J{8K(qKeXqNA6b01oC9MSMGT3JD!qC z|3+=7MX{WW5=5!$u68HT02A7M;wiPvu*9>gJ*WOPCOlTXnJCUl)k=l4jw56R5lVnT zYf_IYiMFx&YSG;6uq`J$!Yh4|82+C;IsX6i#o6Wl;`r0??0E70$J&3_S4N`*|8w;v z|KqbfZT!F90}qe^WEDLSK)+VS(rH7Oo$Iy7>|CkqrPI3j;64w=0O0A&p9MGqt~xDn z12J>W(lMrOY|d+!sD8Wxf&PPX>Ds}0y4P0AQ4=nM;I8I#1$-=AuEqw~hXj>J-AnP3 z-08`-&4E}{22uYHlYfNW71jtUF8Y{R_gIX;T{5Oyv<*iqjgx9S9D4PPNVD0Z{%W#Zbk4ivHgwAwZA`(= zB7V9EGNdrtpeW_{oN`%+3wjom#njw)kN4r?m)~lSJ?Jj{35U=cju%1L@36dwF@^Ic z!*XzvlP!3uT@OJ%(T&T`rC5RXak#L>-n89w;5)M;wB?m~h|GBFrpFx$Ka%?P0b zO7}n$ntCZ-ma4LZnyN!Uuz(|?G;b9lVohc#U!^d7$vlM=YR)CSsUx*AMQBh7P**vY zXSN4bP)*DmvM;nx?VBoQ#EOc9!;(OoLkM{8B!h*r!MHl!N6WXrA~6UYIVlY#C25hn z>4l5`*FQP_-)HQ0>f6T~06Or$*48%?|Id|;7ybXUJZ=2H*aHt>{#p4h3&6^|!Xb1` z9C3M70ek-uFDqpG*X!B^@qY!;;BF6W10TUQ;8eI@>!P@*18xS$03Z;YH%qH^u>&an zPGj}8DRv`T*l|;A#iZ_E>tc(G3frsh0CGT$zn|5p_b1g55%Z#GP}4|O2h0&pOo)$l z<9bQ(kN-X{itl64ByuJJI2a$c?%9e{=jsY-t<6SjmNPN#J2G$F6$-H@jc-G^5y%BF}1ER<# z-$3dez}xniJXtmv7vZK%WfeLoOdH?^w^ru{$DQjc@Q)iKN6TUT*}Mh^qO3pwGoX&F zN0)J1dC@TI9o5g4g){6{{ZJw04pp*KPM&gY4;i_Q^YKpZHlI#qR%`O5eA3!wBCCBL z(4SQ+-K*BPfr1m{6V^&HG1h$IU96R8P~!Uz$SD8SG8F8FHO_MO*0 z%R~&U$QMZmI@SvA;!0#>3`dY}^_Z(-nZwVnGu@=e%c|k}lk%=BncEQ9KkL4||Y866Aauu-%aNTu8qT*(^{IHyIi;=}e5$Q3nX(6q<=#Wg^z zA97YBS?IVz8&Va}0fcI?0KC5oy}N)$R_v%!C-5RzBeCX}{EOQ$ZYuWnogaeo%!b)o zF(MX5_D%^Rw#qZ4G|R->GrtDIB|LciS!+jzl1pQi6xt=HoCd@PztBAA9n{>>!O%It z{H8Z|55~yP9%F;|0eGdydCc9Ck?0R>qMzX0Qc5e^_!8(*R2zidNPP;G*(G5t+SHIZ4mm$+3k zLywQb0?=`y6PP_tKILompEP*o>_1PF`NcmS{$HaNXY-NqA8Rl9pP%Pxv;W*L4U97W z^vnKI6j$4Yv-TXgV>bWUXI8!fJIOx*kZw6vvszUfQsUSn^ir^Liaiv@mR+<2c&ZOwLEOig)DimSEn~^U@ zW`a@_b0v6+xv}Vr_1lf!o8%aXnFZ8r|9=4rC&8F*M(&iT;->s|S4^4i7I*ib#8fhx zC0B2qXBo9G_I|NF_6_#!L5VJPYgwhN^#kTbz2W?Zu2E?y=#TXS)_7EF%@uW-FPoYM zlF{?x4TGEBW8w|q?1APe$=w4Tjhj7c-)L8gY@vSeV?TH@L8R!o^QXzoEKkwWO@QJ6pt_E>BQ>R-hth#KRpzL=tvG*=t1Y zdzaB{S`|{O8JcEr%x!c8kOF_A?>GTaAQfW$?rg^j+HXfS^F$yVPPGOE^PeVoMJErT zZk#76gVY_urb&eovGhcw4NG$h+;!&jQoAx9fCQmm?2U7N$J5>*FxiFN8ywC!Iibf< zVZ|M&IdT+3v;_|wKx+D{lVQyK&dxi!BmH#hgpkuE_#`+`NClyXU7 zJ#%%gn0L$!){)4bC!0Jic1Y9~=4yPZ$2{>T06@*%-X| z|31sprvG7k-~kGtSh`CC^t}Xo_g1(~PwQfvJ~rvc*TFaVwgwmAVikh@*6Q>!<>YRP z+L{nmlDe{;1z%V1=>uUNP6qVx9}>V~r3}^+;*UWfn>qo4sIR|Pzah}+qem6%p|b0G zsPu76sUExSCiaWwlM82|w)-0ITpv_-t5rDpXwRbHPM`Ok0TrngrHq!81c=eG#L`A? zk^2iY76t|U&YlIOkb1?;LWS3ud*rXw$ENy|{DY#oTIt=CHjqTX23!R&WzH|)*6TV~ zm^R(WkCZR`$g@A0`~OMoKKOLR{|rVOI{trsG~9T(|DWS&x&I$@?RVRICgARN1yMZ1 z-;5}p!zM^4&c+k*-dF2loZ5Jt65xAXYylL2)8oaE9w+%-*Top3c(zjTE}^nVrwiw8 za8+tsf)gm`DvDseWTLF$dJLgKjRt<&4SxUUoLW+!ls8C085C`_BdqR*yT2e+=K&4= zQy87P=7l}|gd$UZWgf4<3~fiPNbKIvx_9Uj<5BFT<5cjN59x`S$5>W55dm>XA)oU) zW4@st%#7>4+Jc;d1&YS1!h`7A{>-!ZEY}@fp$PEh8fzC}JXAaJ3$!%MX@d1FD(v{i z>k%0glziyN_eDDqDRqbkh0A;Y!cuD}V#WZelR;Cc5<3@^$(`yYCC{3SW7`G3+ij@Q za-9u8$jo=PnkUXGpy4M5DJ)?$kkOYoFvvo5)DoE_o#KKiA=~Hs!V?5xgXIZ=Vj%XI zp%`y`jv@s)07|(o=Qulonc^nhbgzR??OG0Cpfy{$IWrcNToSV%-Qx%t3n@ed6K+Q* zR&yIeZapj>6HbaV;C%DBEo&BvOe02f!g-7)u71(fuo7tz-X@e5u;^aS?H;~ko!9~Xig}Qi-c{r8Zv5O zpgrvgFo&t{6m8{%DaP}03RZm)mn0DnzU)3~p^ZzU@TkE(hHGzhw|=insDn6YYnbW} zn&CyLr&SK4?$61i;;kaoY$EI_38c-AP!irGoS=Phf?M#iXx;rP&$uE1cErEMgN!L$ zfv#%nYEy{3%EH-p$>Ft3bH@cNlRR00L!EOyi*qdu*L0a*ddykBsqKIWBmKx%iVe&F z(ULl$dlLr2q_}QHWmIOibV?C4dY=bq-0);Is$;~Mq<;Ab+M#YU9>kH7__buha;!<5 zCZd=yT%nmEN-`&Jo40yfi#hmd5Dl43$rLw`KCqDTEm!CGSS zPxQZ^FV4>P&%ay+ecshi`=4DFr^hISJM6!M)xoOD|K&1(zUY6S<7v_VvZcRI_OF&b z)TtXT0R;*y!8c{?J{Mm>8$53u672Z3Q|9h$mW;Ft)X-~60KLNaE{J0$W%f2G`oy7E zO4`Fx#H=;}@8*Wnz)6r+d~Xj+(G|x~NUT=>N#%ed)t{f~GK5)Z`{#=n(m(lh(*GZy z|7S2t@V_@k>o55qpXF(z|Bom9kInn+uY~n7;DO&&J|ye{fxX-Xu?`o+umQdQx)GZ(pzTH!r%S``^3RRVCI{I`iX!1ysIVqWzW6V?bQI7?0z~%6G>Bey8H2?3x z*{6dqUk<)3U(OFM_vZ&c;TI3S2|DQi#>QZ%`TyZ??S=k7$79p~bmi}x|2Myjy03(y zc(nzZY)|!1#`V&QOWgqJ9!4ebz#HCg!(Rcf;Gbnr^4<@GvgT36&u7+iY)O3kj&3a^JUEu3szHl zI#kk-o;qessy<=A;aiV3>1%cu=C>MjM(-GrRZ19&`qMcA)xcS#br^T`ms2~P0%f1k zq&I2y*s4g}M&I}}#oY6=>YAQe0*A!b)iSu}veAK$Rz9Pg>)2F*&g&E)(%U3hg-LLP zRexO)Iu*Sy0DI0GS!m1-hANWI-;lfRsKS;-Dd%X!CMIuc(VJjDD07`}%5Fe~Zk9`} z{Zz*?T~YCVn#P5$fBF+o6WK)3sf5m*&;d;J?2Re3jEa!TL`|mBrAWPpo=2i6RuVy` zdm&4J<&*5Sw^W7d4fhHYo8qKm9$QD4Bn|**BXOg+e+0#)N%&Sqn;oG@5R{pROruXU zcvzL71fo?7PURCYywJ-cS9zp#J_EF_a%xvOg(?ADcWMuXgkJhgiwx9V=#8b4<7hwq|+5mI%;=Gv?0QvOIfDkn);YBE?uVKz*`kz?fh_ zRb7ec)^*0R=PF1uYK2IU&@|p9Rud6@$qQR|gSU%4fRdy%^)9)<;a_$tRM@3jZ3~Vu z-gnJCwu+i5T$xR7U{NPotpv42lSy}@Wxq5sI31Re=#R>D6NdYqJcWe!>Je856JcFd z^m{@+9u&CUhh^gsS#be_t{U70k*K_7E()0T<_|VO@>IBAZ&gwsd7E<|*BJM|QIbYm z>Qi(UP@$u^tzCN@xkM>J$cK0uQ;xAopvt(joT1fWGd_h2h|ZHa+0^M3257QJ*!0%KLA6hS6H9jT0`+QLqpFuCMT`wIrMX})o{_&`W zym(Ooyjq8xkj-V|yp|`B+a>z02uFi4S0E}5m><*z12RK|UV;f$p|Uwhl<5n-Ye04N zDT=s6=$y*qH8LDJyyFe}tNZHSYM(?#?ZQkc?YPf2Ln3X$abMLAp)Jk{CWoQe8G&F> z6kBt=620p}(5-X-O~vI|%zr^}IwV+eUx)+D#c*T3(!j&H? zv|3vB9ZP|VABt!`ETu0|H1`}Z1G<$%Tqz-4Ju}Yv3K$&3n<5w->ZRno0+Nme?cebpZKwOz~O80D#a4_^a4cw08X7!JHbMFm0X+Tp<9Zxa5@9XOsY&DKS;K zVvh+6dmMjO;f@oAdeh?On?NhIcSMB=_`d(Zjwm5DbA z8%#yrneD>qBm1JUg$cZ2p%i$MwNO(9)QzhDKm3xZ8XO?#q3wyCfTmS9Z)1nZGVqSQ z6WBkRPjS)5d>t5FGAPBO?`V@iN05YCf`er7X_xn2l@<=l=ZT0|;~PPCPg@RF=KL1h z>^DBe<*8N}j-_9M7gw@-JSqM|klE(f=jR9W=fMA7Utb$&|F8A67yJLSJgxG7+ynQ* zfslneGrw*@%FAzH>Yt4P=)q+bEZ{Eu%Duf-t6~gD5zVcEoJdp+=m#;hNa-lp56xcW z5YWR6cvi~TPvWXWwTCro)2UmST>+VtpFt_8a3anP3B%#ha&wyjQf~GasUn*2!O$~_ z7q|a&SdlXUzHrM0B$ejlHZf~+4rfeqRAhwD$@O=fdZ)$Q4JsIR%wrLgs6F~)v(4&{ z8UvxZ;utVAd=Bp9(K0mEVNS@KTuH}iWm&X5wsE94WEuN~U2%$ovrxZN-4R=x4dX?TG5X_?opBbeY)ZDIH#i{%+SgvR2G8=VYlS^2E<{P| z6VlHS?VtlmqKF|@*5(3BhDV!Cy|MPQl;Ea_^K2%sWRku7@?D?y>6E5=iu20u2~D1& z3Q4{~IU&|={y8P9EPjE9)KM_!O-Muq4mBkUuX9=&3a`@$KHS%Vuvm^|vYL|wY1fBy zBa%*N`~!0nZK6*m-AHPaA+89;nN>Q4u(~%It?crBQ?gKClm(T&x}u0D+(Ix|I@>v^*%DEthOSIJNUqOJ)#OjPlbbHjU5;^14+}D@5;%a}WCY z|7xP2%#*kOT^(I7zFd4ej||;ne({mVvD|6F_N0Ni~q;U%9dC<2a=(L(63kgp@B z3Gp-H#Nq{iQOe(s43Aua=YkhaE^$z7fuqfdCT@%xIF-66*Gdjm@y4fBQ@T_c7Z9KZ z$O5ph^kWA9;lCqdnpLLm16Y9Kh^@LTCAamSUJT7wV4TG2zupgB>}Q}$4pKK6qBA{VS-r)_SIRAv1126Pvn-or)AR8Y*ZtyiMvL!urTm8%nMu zvS159xGO#Qbh405ie^> z=#$|V4LYI9l+hKLl};KrWlT}92IFX&jZHaCTtI8D%dmP;Z>z?aLO({+%| zoOJI=d(aHX31$0UZB7R2YEyeW=MPxA2NY>n56VPQF&Ep9UFgP&jx=enu1kdgz{@&Z zG&VSB*fj&MiU}H)jBF86rDo|ny7K9AvHUa)CKvd%hOJ(u#R#@(sHdtO8XV0v-7%JG zQ_epPx@L=DEw#aI{-`tkLv)gs{r}4~z%~8kG-Hb&kN+|ptfcraqnG?o&+_E-e|itx z(*r;j?+p1bif`We-=~FWAb5Y`KJI|ZZzpK~4nv~w**gXa;3$DZg}H*F3-A*tRsa=d z08r^WF}=h!2MgH1+)*FajNA&_!2rMD(pyHryp_nPIn9kquW4~cV@hkOs2Nc>#fed^ z>BYL>S0@9rc4)*|O4q?xprA@p3{KT7VfjR7{_L70(j`+HQF8qOFRJ^uVpd ziG}vWg$Hz$!EkC0SrE112TKa2)e;YAXL&d*nk9PYW0=Gvy9(SSx1|}CyB{)_%yUiz zJ4g&jB$@#sx%M1AN7y<=)OJp4f|iDekh^Y9)2};ysG=$`IOGRvWLa^z2W-kd-o}qv zg>1tywyfJ{E9{5^z2OAUz2FK134Xx9Ioc8m2wgAVWGesRXCC!Nl7$_1g^i374Wzh$ zye?bEH(3z~-#RwEK(P)9#l6}dhmobLV5;H2d$wipC6CR#ZHJ5(#uxi16)`6dPC$TST=^(#nn6G(iOc%th!y z$P(vX=Hhw`a|}DD(jB6+qLM6O@0#7qpy_m#S?AMW#(X&3T4saH6OFQpI7?sBT1OWMUY&R zru*CMr9+2SY!`BI-EAi3_X!ysCNkGVjv zSp%Q4s;jx0lC7-0FgC>`BJO)>M3=_j`akBcvre}!-O7&35IVZ_9CLWXG{k6nN*~+YjZ_l~kZ^jp8V59i; z-Mz}@j6e8vwG(aQHAq#0Hc0;KJ+`(Q&lKWZEXVfty5KuuDH|kSdD(fuNgEJd{O_{6 zM*Q!=u>>L|xd>K6jETUrBJpnBs7s}N&s-~s@ambT!EK6c?{u@lYZ82Gs`IC4Nt z&{_H5ckcolQt!G7%?IIcM0}fQ80{TGd=un zfSq-U5UwBGcd&SFAVVHOL6>$%Y8{<*Ja+d|yFm4-E`iUmt#+{Ux%G$CTcL(97w3~K>m$R~uT%^G%@>cz z^nCcEs!R2ykE)IbF>XV3V%sFTU=?*E?WMs2%){V`X}5M&WK)wAnR)r(Jb{c>ksvf+ zI<YS5SGkf5PFC#IlbP#cNX#`3VWzzeXhd7}xC0*|E`Q{u0x)mrW;IPBVc#H!pr59&>| zd%VG#Xa+7-*xwfT?h5k*F;bz#$~HM5ujK3G6gt1kB6KWQ3V^he3?so$1K30r@KBnj;)s|4{_BR>ah;YE6B(#fwK) zyk`qeHOiB#?_;%MhUQJ~1K~NkFN3iQE=yau(SnG0$4w&7{#iv42}_! z&swg)63biDK<~ErD8DiSi+Wq0~F&34%b@c!|yJM(}$hoPT}YQ z@JBbl*MwA7YA-dEZ&^(}?n#17$za)YkBWvz&|vV)1LrIa$h~WsGsUEO7X`?pP5cjS zjhn;^&*H(XSOs}&#R^Xv^OUyT`Gc0ot7s}{z0+0khDMyYgfxRl3=thojtH z*<%X720Bsw8t3e-ygLu{5otd_Sj#P=ZtNRH9{RedAQ9iFa8gt@zOdHN)zZrDs@a9M7(t-u~?P>S0i?=F{Q- zGgw_&Rra6ZaOK7S=UJYd{U_{zzOWB+=XAyPG{D?U0yl8s%r5TpphQbNvRjux;vmCJ zKqoqboBQ12`dJ$5H$Fo)scDpCfaLB{0}q)mQmQCZd`WWoG|YWFnvK2@lFUds6|9!6 z1G%jezvkR{5+J2sQVKvSqYc!IQ1O8%}A;Cav}V)Pip_a zxL#adFW@X+J_Y(uC;cC-43qpn!@=N%{y)c)rT>?GQGdAIU+$g9TKpZ+1baWE{yiIm zS134$&USo==T#lN7QZ5v&#@y!6Ua?QdI@ypvQvPEq!9%qX$+~#g9o7{abYys5f3+$ z>bY>W5Ydz&7LE?yaP_RxHNhvxUQf8fiMxv>V-VUdXrrQBiAC}8ZF)R2BdQ^M@S$ZZ4KwE6K zJ*867?x%dt-HuZZxTvf7Q`>Q4T_Nc$olW`~RGJ=Gi7cq;&zIpS?xEh$b%i``ZL`b- zRHs(FP<-jbeTII=D<`GL)am9rhWILd$4_y)Ae2FOPs8%kz1==)>LyJwF8;!R)o(cZA9n6Mj2|?= zzzH3~TpT5HLDq+KE@q)Zx)am%O@!1y?b+1f1^Dh(FKU|q?vv_&4$eLueEH%Ln{L1Vbn)%{V19LUeED!y zP*?o#aBWTDf2|CMFYzDG^5pbCYUS^%2+D4vF4Mr*3erLQ9B(HM;j1ae8{UJxf-r&a z?w@V+Hoz=x*ENWf37>3fDL#bkOv{NUul2TT!I4ykR`k|$7(_R>gO3ZsYb80FQQy;{ z={Tcs3tl?)?-$P3p!lHt#@aZcpqhRDpm}1XPgt+u;8`-W^J&155fdct(c98wCd~vO ziKV$I+>7fr(_o?viA10KQReVtJg>7ro@yP!9e%%sFcdTLIvyo%+$omRVJV!-cLFAy zb2ub^mRwO*qdu@90V_6m+XcX#@?pQT9e`Rz<#<3Tqnd=t6Gvd%oUrT>qdjab5Vn5T z=w8E)Q9(r6eyCchA4%8+o**4|ppK}TTggagw}ZKX!XK6qFxcUkQ}M*Pd5K9+8COG2 zx4Id)QBr@ov_S7P^bk${6f~&eW5!9$Rq?l}s!c1K$I7Z&9^7rUm*e1uNvIUKX(=hr zM6Xft1L{So65!$%Q4HF49<)t1v8EmB75V*_aLfk&i_73}{b_dm`KdfWI{3fUmG#8` zV`KP||KnL6oBzY*zc=&??VS$eUr|iJv{ziaL>mhp@C}Y49a4v%p!QDxmT{B`cb{~4PF5fz$%9?f#%Sc z-{DKRc4B4F-Zq32zjx^+x6ljlj5>8*F0F1c^CW(MlK(z!syTsv`^e>=Ps*jQ@CwjW zEcmA}nCgo)3BTLL(_uG%xK{U|)!$A^d&MqGyJ7RoYxoirVEE-HyNg%wCEQiv%kdXj zJ4p0WoHX{@rNtcQE4D>Cc!v&}cI>=zR%V*>vt)j%-@^V(*Kj4>E`NtcMCbkr(~ed} z_vNWuAp|-qhGxqr9*yudyfUxsehmCe>o8;IO&B?7v-HSgr~W0^*vs?4C%yk&y7t+{ z{+EOK)$;t{@c3#m|Nb~mpyU2uAFi)!{m;tk@a6u0j>o+J*|Oi412A{b;~jyjLc)6- z){t|hD7I!^D+Guh%}rue$isFh`GGW+3|B0KR=l)IqVsJX zBXfRP3JIO7zrfxK*`q?9>uWG>-IP-LzbJ)uR#||fv{aiGqaJ8S-rWFdBwW~Rgq@P~ zqC~{ez=eQy#B<-0sHI+Xvg8SaID7N8WT987aIN$&D&AaavRqx~HvY3^J4%DV@91M~ zPEFQdiR4%veH~t`-iqj^Z5C*rbw5%|-@p!7%`&`?Gyrq(dvItkKf0Me8+aJa#YA3C*`sjHBCvtn(Fv^ z3Cdgb6HnR1lqb{~Y$*lSP)gb(koG%B|BnN2)V@Q?L_02IC94iZqencyrK-_ILhQqG$H=Ze65{-*%nwtRN+<$8AD zxVf{7n}eVBA+hVd1cI*oPpdopS!F6v@(j3@=`s19-D=e6@vhSyGNfO7Z-|J;Ikx%k=uf^sCn1NE58kr@a%HSM1(4$%mw0Z~G;=b3(5U8E#ef~Dq z^0uR=$`7|-sWfmuBT&z!Tvfi>u)>fqE(vDof@)fmPiLkwu=lm(Kz`jmY#6J;Gh=~8YkpHi;KXIlM*6na7s)VgYgO{=)ImQKri88 zy@A#{YNl``oO%nf9@L5}NiC(^n+e35a=1`DIRhE*ac0|y>0LrWeEK_i#%FfIS)MzY zGO3%W6iU_SH!F2}Rl54d(s-Gp|JW9*ElWOV&ePmfH;vvJv?TpJU2ZGgB~l!Oens#5 zH2mXty+ZBl*TETp+(mmLWB}uEzn|m0lDB;)63Jcj(B(#z14-lr9YYYsVKdzBaK^lhXmXSbkri*i|F8tqeqFK@I?QIt;&B+LQ5j~9w@90S z+73jDeCDCjw`{R38W{I4ha^oRjJQ6VI=vl*ZAGyEe~Z%p%ICiF{}0IjJXl{DCi$N? zUi^Qa=aJb>|MlXRSj970PDXQR$e^-()|sjg!U<&9i!ot0ITrY z8W2y8RYlkISt&0lpg?;-!wigdA0tnso+p9cgFq#Wfc)tO-Hf#rwCB?fx797^g+`!EvJ-G2A;O^<61>{)_;eQD0UDgax2m zxMBxEQ2rxI5G!Ti|4|Zo&n|*JAZ`GlDGIW z2rw^OA*#qb{kF0|Mrl`CyH3j5p`;#{|J%g$U-;zt|B%LWesFcLc!<@Hp04=MwZTC1 z|AUnm``@!X8Tv2QyuTEXhyd0m>azH~t^jiRs>J-S$8|A&4e7f!A?54#75uX(f!zkT z=pFR`A>bi~ULIlxRm>Q%&;@$m@$zKd_t|3;m~u~aeV)kWq;{QRTRCe;(1%D@hk<5W z&?^%da;T#EdFho)z2vjzyk!iyE9$=dVmk96df9o&x&YLFJ4Lxvv5G21);{xGgwO6O zx#O^BG!aTe71Apz`AbFLYF)ZSWzYZ`DCTT(2c**yRa@>S1au=YgqlswPoLPehqLyF z`p(q7tK3!8S^7bFy(t5gdRa!Tfp(0K0T=7HxLDk#A<~J)bgK7UB03bzDp3YCHCv

PoDpKI>ztu8sBZu_N#Gcelm-`jm#=!Zs5eib_O3cz3 zxtE4jPK}x*^m#_#+m~d*XT>_=^(tKlY^hU$WL*UCeF{ z=0ANoSX^AsA8`eA<^NvU(Eh(G>o5Ml&-3KyzgqhHs(^EwsHY;>IU7b#-k81n03E7) z6p{DNL^bP0DFwy_52W$Ie6#4x5WhMnkB!4Jz#U;=Abb%+3Q=4j+|yGGlu(gMxlo9X zOusSi&Ge|6654GR&y$)X|I^6mC#q@HL#60dz_U>Sp@Dmar=y4q0!*w4MzL{G&+3TG ziu!=5!XB;#r8qRFuy!=+%dU~}*Xo>ddsDckVxBi`jlHT%UGZ3W#sxl@s;^}%$OGW0 ziDT(Hb=&C4W;M`^shxtQ?~FgT+rUFYY+qhI-oRg)>aw)^lBwX-;P!ONcl=a-P(4h_9blX}`0uv)Qma z^mQ28!N5JL5u5xZq27JFgdI7t!G*JhMf39>yIWD3le%k{5@{Jn99h4QLg)jtnD(V} z`a+}_MI!Y{V!8<^ozw>FLl-p#uv%jgKs22i8_W+I!@VJI=YdbayTby%cNn&{@&s1r z+FDxC1B~$|dj!!LOqDU>=}&2B=p=MWYyDOqF#1>JwVW14-U3PDdTz;As;nI_s%9ZvoIq_ng)=kS?HK2gTH$SmzsUDt6m!^!?lC2x&gLh~eKRiztOH4yCJln9D}`1ePCajjrwwYXC-m*L06NkLUems8tr8L<->&mILi z$55H-Q`_02Y&hT#(%e49IaI?Vl?@H_Ubn?KD!r3L0iPjpd4o8#_Z=qjP^xRzFgdM| zq%TV=RG1lq&NnWNdtaePoW!eIX|vPFtXkV9eZ(gnqqWXugqE7>e$y_@Wue0qAGKU* zDkcdZr_xz6iRpZWFdI%5GX+5i>8f<3Pl#u|BPKc1Vo9uWX&`e zF30pSR)5K>r+FL775Er{4Mfss1FGgk+nIxbPi`#_(jV=X9&do?DDyhA+9J1HpHG8m zrp@FM%?Mg#96HaOf%lKkPRx&ffQ%sq$70snB`L)mWxvBg9W{nKgbh1FWSiWrrx<|B z(|ho2+U>MRURJ@-DyyH-ioVN}4eF{Pu(KbiYR&0}bmSq$oFUc-h>2NFG!bu|C-Fw< zJ4cm1{puaB`=X9gi17e;nRswM1XjHfMs_7#PD#!4AZENOQe}$Aje0oC9b6OBz%i)p zJK}B;ym*7~U!T2i>DJFKC)zu9TxdTqVJJ@GdF`gz_P?@_g=1{1f2x%>+?Y4$)tyr&p;9EA}@3p?<5!^85x2bSkzC3$y#Y4 zRgU3?xK!Ov8|gbC)AMYIQX2juwDl==GRpy@mR;Rv5&DRm z16n%fglTLc7*SNyPD8)|Fs50~=|vASZ}6w(Gq2~O)oD9r7nV?~2xD9+6TD3zEpXJoTZkuvb%=9>fq zu|zVrI!u$1>V`(~<6a#Lk9j-e;JSr$+j8BaK~f8&Yjt0vt?p_`8Xf7{iIW7GN+9HVe zpVM{TsTnnjOS{H(p4mCKHWm(hln5}^UP;TX@!hOwTWXIE`5RjfSGLvE)_hc%0v^_N zVyA&?@kHE>bE~~APGKj_s(2|imx;RIQPfYJ7$Vd6Jv%22J3GiGF_^a}K1%t8eCTc> zZ&eak;g9kbw3c3Ac?;`4CdvMleJ9iiB3HNQqCa6G75KfV8mzZS?!KA82)epLrbW4D zGklk!5CEp|#;^tD3dD&z?_z=Bht%b;`!HKKWtJS_CE{a05xbID5Nviq&Pac!^l@S^ zVSN35`54(o}nP6&j%EhmVxpq%%VcgMc@ zt!HZk+RSUlQj{1+^vmH*iV))(Ou>UgQWxJ&a@g5%D~u@T05+vk)k2>P$Ma(i3YAW` zmz|lIgTv21>G-R^@-LHWEkoiy zECU1ikQ(eJ0Kc8jlF*SPu*GVY1dVl4?zfO6BN83c$Q6C;Qo)WBKtEbQGZN$UJ^VPq zK5iJ2P(VyxpKK>=XySv7YqY@q2d{y5hQ{R`#hGIn^d4g^6EYVZ7P%`f2GRy2pi`QG z>OBv?<6wCHEXF~0T=nsC>WM+!Fv>HuW>*UHZcx#~vi5L;T3Gdpw8~(D{WYO>r_|+# z?pK&^SPWilF*p4qsa_fL< zyc+))*0M)oXL#xyQ=rj9x%3gnvF0&AtI1Y+M5Uv{-QAVJ2}!gw^cQb7lLkw0CI1oP z4x(Pr#CC`*srNXJzp*amrt6WyR0QKC(?X3+m{p*{chm|@rQ(65H*Bt_feBsjvEe#i z@$Mu`cy-8sq#wKm9#Y2X%^QTU(@~^?3%fkSASD2)OiF>krI0dTS$d17Y9rO&1d4{V zrIL(d*6IB9lb)^uw?dM>*^JSu%;tjivo3*?d;1S=B7pz?7grNYGjt?gMw;a!_ zJRrs&hoo+F5q2oln5HZdFEv@s_67TtNs~GuctyoZca0im^1CY?y;aV6QAu%(cupI>vFm;8ek64Gnp-11Q=N zVn^vQ8VE|)3U<^e)&_(jJ?9DpBWnA07GVRf@#%KFlzo2 zdHzfUGn1Dk{OXKQ_|sHDl&1}qP+a^=)Ilun|1zCDv;)8b{J+hetzDh~TR^10|G&HS z)c@sCK63v5?18Y)ly(-uJ*R-}cdRmde{MjY#x10s-x>Tq%;6|pMW~nN=psw%OPWik z4LEQpI(JL*^XlzE9N!)&B)i=wC_AD5$81~=XqWh<+MHdY%Z|i{O{McH#z?M z=H?Ur=c9b8&VR7=_ih4GNk$7Rg5r2HjaQ2_es8eH^G3W`H-8tY<`pS4a_-<2Eqj6a z_8oM5IyK+!m~W@=8mr%^A|j|8+E1ap$aRobxN|dIZjku3Mq8?#H1vsnnXVQJ&l&F7 z)orB!akOPi^%;JT8FXn04 z#CQu1K#Pf}*I)7pdU{expmjd6_*2cO&n%;((#`Tx?g1&KfU=uo7g8a>^%&C9`0&@z zNB4&2weUp+_ez}Vzu^>=<}W{2Idbb2L(NvedpF4YOo`R@sC| z5R4V#FHY*Tojf^y_JR#R#3qFn?Bs~=z2R{T?}^3<$xjevF1Q>`7Zl@XoddV2{UK@Y zG{8ZlS9C@dc$WJOakoO+L|;4`&K*;_O5u8q1!k4L7T=aHq@w;0i{F+`PdbyQuIO#4 zw>AC-HXLD%_j}v0lShwGqdJ}$z_2u-&k1t^Qli8a3mIX0}*=Z?^dI^4*@cWK?1$8cVg$Qw(O zX=1qVlsdG2u9^{HKM?n528~UR!mA@aa_$FdKTbD1;G|E|4`?T8EAp$M=7MSa^)N;UNWwqD$_nD*d;sE$VR@?1k`u5xga>y#K^Aq9R3)U1AMd$N1mtxgZil^;~x8T)=72q@DZ7mtBV5s?BtEohy!Ub9v46I$O@>B4!4s zzo(Hwj4n*EKTsgEz?bKcGN!~6H~-iDEav~^?IbH66aicm|Jw@szi!r^`hPvnXDvprQ-Mv2=|F2ft+^+HX|K|2n|EEX!%sc;|aqI0|l?l%EAUM}2!MSw50a3SWP=Ia{$f0wQy6Yr9%AqIpq`rFFP_6mY zKc?yGtN}5UIR0Qu=BO)h6ad{xE{lQCEHDIsjX}c#9SZd_-Qi>gj)5yv=F(JUE>a2- zdjf{FmaWh*m2hH(#>46`T*VU$g}_QVx1@SSwPQVZ@!=Sjw5>bGG~?sLSIzi`DMlK! zFY*q**s@<(U(AWop6zr_NZT*kr0W#i+3yX&1NeO6349IFqaWQ9_8=o(uSYeLPz{UYhWShvh00YJzyxFX(f=kr6pO5|6=3(5~!0O<88H zK2}y@ZH;~ceb{F<7uDK9n5;@lvb0m1CEQ94LhLA42_HtCF_P-Tyx2hFUM0oEjd0jt zbsu^*(g-lxGg1ueilGl;x zX-PmVEI)-s`E=>&{QCr0H`AFIH--^YP$RDnSfwVwp0`NhkSjcFoiQO4CLOBE*ab-c zaLMtd~ z7dgiP3it(-q@Hybq+BIRVi@h4t*5D$!J#Dr8yv*(;DFz1haO@D3X-2AI!_+kDK}Sb z1$J2HQKkO8B28uC=O7^G%58-6wVR0N3myTtOLq%hR5IxeVN!KX9uSBy|I#h@xw z=++0pjhZx%?*pb6b?iYMHpJ~=XB6u_7*Tl(GL#FpU_s!PQ8SK5u)+HQS3%J&K~dOU zp4FuyG`aKq@@r~VLC0}NCXS1FaGIA=+Q1XbkhWT`Ns>Esxb+8wrjU;@WvA&xiVVQB zG*vVES|S=eqMH5r3PWJTc$@uOxYvG~j~ghg!t`P|9)=vL)v6>*pXMrh;Vd-|Nt-0; zLAD6#O+yLI;*AHpZrhS=dzNrBPAyQi0+)yc;fgWg7wm22%z zImkc13T#3AXKQ;Wi2v;FJ=K3b%18A7dVBtWGO&<@78QeS)}a&345~dY8x837l|!k; zq_KLN#LWWyyk%WUhoc^pXY_*vK-zjm<+QSrheIbRp+349c2AB$Vf;XZF4HVp2pJET z?-2B|ASH{mT1zDS1nq#EaTzZ(u zY#q6T{55ad8&p{1TkB-NL#k%f0x({tV&XqTMT}%4%PDkCo5RuZpK3J|d@9-iVNdi4 z1@ysuXKy>M>Y{GURslw!)#WTFvV~dlEE5;0pke}dCJ8quS%BfjOasDX?;Mt7Y*VsV zc6P>74DBpm%4>jmCh#4s0rUO1oYw|fF{3`AeeRMVRl4RCZ3y`9S-BbvEYQ*n0>!vVsD~XRjseiO=H398QMe9UJ z`#6^jsCZ)0h~omQFf0%}rm_=wc8G2_c&X+gEh&N-n@f!E3Ovs`II3dYw+;9Ql(wpB z)C57@<2XGc65R_D>K0rg8m$$LsZ(`O;?C+`wH?aq2G)9Xc&SI&dtyjMApS)WOS!a8 zY-asNgZm3omo7=w02{-A0-P|QA4AxGL=)rb9K7ki3_!I|-wEWM(;`@y$Loa_bX;RD zOnKeX-IVL6^d;!>;R{u?klSvAt&}~DV?!t$B(O)ZiDaj7==GB-)^w~59b{6qi?j&A zzIsII$$E=97rPoIPm|SI7_L0ynBXH(tfZDnM@WZtzSujwk||tP(#k$w?O_a0^4OAf zVe3oE*j&PJ@*}S-nzKHN2yJs2+`R*)JF7+ejjS1{WZpxpPxjbWhu={P0==PvvzOo` zNkBg=1fm%@n+hY)&APFD*zuB0?`qLCO#})7PK0bsdbBVJA8duOPxfqkW{0#2 zN7*og2B3I0=8+!|7E~nb5paHb?bWH>W)$)I>Ft+$`@}LkMVN-eGLnWma|bJm$5m=R zTbZ(;p(EgC%$d+tYPbu2deSlvVE^$0(TszFu`BD!2#_=JSvh6k(!`eIx?b^_MyUmz zfa*PT&vjh;mF^=Z@l}5Uio;S=&}t6LChluGbC@VANe|nSK$gc9eNEkz+sK@y=)2{g z5Z&dBok{60V*eRPV0OU=8t^dRnRXWTrZP3!gnt)&Ii%j{J(WY9D0N}l(CPxju6-DS z5w|V@ZZFs&-{uMQE52`4f`yWF;JgXe8(sw-6o_~{m~os84?_=4Fc=&jdYjTo@K^ur@|}+yzY)*L%!Q#y;+u>kgeo|iB7+2z z+}w;4ukL~!y((;YWAE9mps*mgxL9X#xs3WLIlR6>x0MiV3))uWH4J=;cz-YoId3Dk z=_oBTyfTA6rAxCfFpy2w-&o>>=Fb7aP>x*R zTt^_XeX{K7`;0A9cz|0rwF=)1oA#A|*jBL!?7VH6Cc(DQ{QG%R#?8Q#(HGxu)cfusSu(Zu|U&iV;!U5ym&KRb4ulA6GjHy=;MvD>#HX_4|rB ziRuXPNFE`4C-$r0$}&l#80kiGXJ@5}W__3#VL3nRsommpVR3#fY!^OvilinBDTL|Y zs3NuZRgUKX;1cKP+ZFPC;Tx5qHvw4fA|DKn6ap8PX;p#(J|}tWxX6;vanZ8m4j21i z0q^tJ^$jIC(-?zbT$$X8d+6m$vvVmqC#bZk$ZQsN*kA6uz%6VGI+t8oDb980G-yM` zPk9snCZGG|f8>*F+E&5)djWzhs{h~H++z73+uOCL`u|7yROWwpTm9v8K*;cmQK1q@ z3I&LOTb=g~2vHmFASVQ&xRpl{ptyT3R1A%KKc+tCr{iGS&NqHgHy3F;K& zm!pd4iyNU6l@%2)1DI`FM0W0n)OxzK927BZCOZI~=Q3zJ<>wD@gAo7Y*%U8>mc2~V zZCM0{px>gDm4W&*C_I9S4JJSSN!`-+yPw3zu?z?HI4l`qkBceDt6gs_0Y3Hsh%*T8 z2Av*R<|R|hS*X<-TGJry#^0q^P2c?%5m7%F^^@L>mW(lI!*s2Uk zujM1@;j3X{%<^+Og6**j{$?r4w}zCulTk>eV*_o!kUsjs)uA(E$U`t9eRyF90%YEH z^x2^fDYUj(@|dT!+hjUqo#@zHDxmH=F@4mGo0Kmhvt&{KoW=1Jm20k=?M2a`iu4) zA7dP9UZ1pm`S43Vg)q5qSYMhWEahv!CjfckM2~2qU&s+m=*W0Y|0Mg)&ZlJYhbwBk zR4)Ui{|8Zt@mhIQa<_;|Bv!!=EFz&ULoZ8tHW-ih=w){fy%0WeM1cHH0A#EQAY&-O znCi*e8?s*+GmTwrnnWnAG|_o@QyTANx}o*AjwyOUWr7?ox+ft6Z?fGDgX8fzPiDk5 z|H+~Bx(uqimVPqr(&71}x2w<+=!+*4g4gglkEh)}yvOfWJ)XXOGJW9V8G3*p8ZoON zZ2@%$C*ucB!uN!S3Af5XW%n^ni}JnX>fdiVtk=W5>D2zUro*H|VC|}KzLcjUDWE9G zskl+8DGBXyVI3(Zd|{Fr{E`5g_KRo57wg1?7W8Jm7$~WHSqLIQ|NFn&(SASw@2qI| z?hgpNp#FbnOZj~L`oFF1y(j8BzxBd;|LTp2fkDdCtoz6emV6sQ9o$+G*;S}5T^b8CgJ{T?PuPnCDV|kfi@ay z)lkM>_Y^4|aW#pqRK?MG`Y;R)f|{I*Ca~)-@-?pCiNSgG){49g3MK%SC0(~Lhu4RD zF#dx|pZPVxXJc>zqW+FOKBY*(H3=iL2eAOUZYT;9_GHe;+66FUyvf(##X={^wDeI? z-Fso&_nn0hV*PnS^!FlCOElc*EzB%HFf|DRoFgTGaD#3I>tIqx+5}c1j>=Gp> zGI_H5tn&g}fm-myFpY3Xo7kc~fD7VbBwLS;+$T(OVTMn<^Rd=bN`yhPzyEFx_}}}p z4F1gquf^To=YQh(9hBc^iepUcfB_cgAPOgm zj}A7n*&izTLzNZ?Z{}HBcc1Q5*iz{)`?&V8zg2_c}y*@{cRisl!5n|n9Iky zpehLoz9t@vBcam)D@{&f*J2aempeEnP>hr60&xY8($@0sF!o&56gHIRHoPGL+)oCs zoR`0D*Oio}l|~B3{G)Dt>?O`?+?Eri`cz8hCz)Nw^Yd_7(0dKS05Sn5ueC7P0WPmXFO4{!fiSpg036dt_{XrJOp&I8dirE# zMmlNC^9!LN0$fxvZ(~fG+;nHMS>e!v05x(z{hMNPWkTFU)dL$u1o(}*ds>hgf&-fZ z+9MmNm_M-cqPUTjy{I{}i2_0KCJt@9Kq}V$CmVWZn>DH1|C@$pwc@m{ zsrE<%->o9>9a(Bqifpyn-MY7?!pNppR6~KOCUoC4Tu(Jix=a_A360j7q4u6&uQ0NP z?xAQT*cso5$&cEU5!Laa!w9RTx2A$c?0cB4;01((M9nAt{jc&_?EmTK*AE1MUxfd@ zyB+j@-{0MS(*GahBkTX(o__&95E*X~>Z>aDv0>kh1ZsMYUeryw2{?ZM&2^HZi|3ui zm_V8AW#82Te0a>@j^osHR3cvS5FdUcNTBu{-oJ7s!s{!RNPVX&5aw;7a16>qE~m=- ziJ=e$qF~y-Am+s-EEx#@o%!$&yQ@A!x(7b!4VPL%-_!zXN45UU_(vII@x=#`Z zkdbcHw^J4gRA2r=zVmjJj|$=YAfp^aJcD_{Bwn123w12Qc_%ubyQu;SQ5q1cJE0N&O1+*T z#rg{UB0P{Vu6^Y4&=IBqQj=M!Q(os2VS#OlFcHx7ub>6p!~gf$iogQ-zq=Fkf7#mG zeCq%5D4#DX|CjOu-a{A24`b!K16^RE)4tHdx6?4a!IkxwH{v4?8h!>^!j*W^GBjWWe)n{~YPJ=dIA#R*mlIm%1;6IfA#Cb5a!4b_6^ zm$C*&A)stISCD({mVo;!#Ub%8VL&K6YH-Doso}UkOdw;29)@KmtR#5r8lp~Gsfl`9 z$LoM7gq+cflV7vz?>+zV}fQAXNNn8(*yLgVq zFfp31fgFKlqT~jWYhX+&6+beIl^j?K)TN0*ZK?`J;A<{znb|XZ{!q(I`8cFXGbt|` zNCUIkLlbVojHu9rqp^f46YgrE2`6N04!++;Njd1K!wnHZA)cFI-4RjUbmMEgSg0=bfVo7>43>E zt20&64f5yaa83{x4aE}-C@+`Ar`WQd288Bp>I&7NsHZDb%qwD<)p>nfHoFW4ujG?L zkRQ41LB`Dg<+Uc2?LYDV$M}31{=cl_?@P&oTj&YdPna;6 zn*pfcy5l(A{sO`PEmx0||4O6;ZRL0Z^))CZdPi~GI|BXr=#NYFc{F)L)pAeXl%FMU zcpkYaKRsoLz9ugZ))wq=exHK&{|4^crT3|*@cU*D;y3SkPH<)j?6&b!xh)ms8dq9 zCUF(fBzqVgPc569Ys=-OrU~elWdRSoF7yJ0h^qu;u1OL`PdKjUQ5@f*)9+=FpyZ{P zh$#go4;#VbkZ{>-rJ7>&$#ZumbKwG#Pi1K}`)B2XN&O%E2XP;*b0N}1RSzd?fsoNBzYZrJnJHb4Itngecs!8j<=@Jy%ita zG}Q3WsOV?6^My_4A6PHxZ*IB2vHjIXHsz=5-fEMA!>NhA@k7dXbz8R5;F1CXF3}gH zA_}qV{!ANwvdy)AOc3N|2U$YaMABl;Ue=5kv1+|JAv$K-@Wa}=i^L7>zCoL9vX)k@ zIK9FIzb0o(aLp+~F|cdQ5H5b)GEFvUP>{(T?Y@x$hhYZeZk<1nEi9X83z%BvM4LF# zrkkkE2>XfO=b=0AyZhdeh`mnjtGbU^XdakB+ORz$HG~gad^pqWI~E!}b?>Q$_*q|QyMQC24%Xm8;-L!$VOoMDX+~9 z?a{T|<)X1j{Tg2Pj%BBhY>!*@saXkPHnqubBk-z6T;Y{xnBKF_(TZ>-0sD` z%);IasWFa1s3U`&I_j;cs0r&M*&g$E)T>uEs#mWH(cG=eWx`{lxWn*+@@d^B{$k$A zL|rBB)GgCQROuEiz!%-Q;6;<4$%|_AGtdI5mk1Z1NmDIvH<(7MG0EFnoToulJAKGkyIPwW(K7nDTv0P1`Czsk|o6 zAJ2jsI$O>&LB0355L16|T?i|HR&RMp&*t4#97bWMzJ=~tTW?*2V{!af`Nzu#Re&z4 z|J>i^_`kL7?I--NNBPM9e}Bs#kOw3Z(W0`CZxRyZEmPgsZ3Lm*F)0X5Uup!67pcM1 z{-zN(M^F$t4r(*JiqBy}Q5{SoB?F+?0e9{$ZC2rusEISeGOZYd(JVj%5K^F3)Ny-G zYa^Df+oqIhzhwTF}Q@^WOI+lm?#C3^GB_2!yM7; zX)^A-jN}^%$tM}muG&^j_lN)nwn<xtgJ-WBV_>c@Z#lonCt%0t5>21MP5C-QYgavPy$(&&- zN3cGHK4l!@dbJ?-P1j3u_k`;;p0i5$G};==t&5)vvE1YCmU`S)J#^Rz)N70HnY@q^ z4dhKprx>J!vGNArixfzz?Hb%0uAIDaO#Mg3HP9PD>$r7g21Lx@O$Knqu&^;R@G%TJP_a+B;NRnmyMYHjZhuUUbq%xujef@jZfkbc?6^DvnR=rlIV*0n^u|J}=lb)FR+9pAh`k%h|IY zQq*$1{e15(9MhmELJKWV=!%z0VS4n4V=96lQA}Kure6tTWe7Jcbnl(`shq}FNzD=s zH)&S7aJXFInKFLq-k=}?A7(R7Z5|#|dzi-K=X}bXd;SP+-gP4BykUhPr>DK-+QV}S zE&=@yh}zHui23uv^dqC>z_^;18*x2@>OljMY!~=Vu)x?S@g{&}!k0o6@jtg`AhiF> ztSFha_Q&EsY}GjaZ*6~f>nZ;GD4!+l|Ie`dB^sJ*>Bly}F@v*aVY9rhuGeWCUjxX? zjcp@j&)U0}Mws))q141=Z5Zt_y$O)7OnZ$c0zY_`YS$_l$$^e_vK$^iOImph0oQAu z#foiE?}A(*VNBn|9w*$ifLmyah`n^*ybq=e#+Zc?HaFFauqziFu`sfWu-1tgwKy^J z$^^W;#HTU#J)xj|s1)L)%e}9+B|GmAvr~Y4$ z@{#4g+xzyzK>sSt&>yOQXIv} zuiA*hzRr*Z_b;{j{>8!yzN{}=LHp%}pOV&8EBKo)KR;;tw$6e)pl@fy_Up_8puVIF z3pJ78^}(kayWYFbe)lUMFHw7rf?eCTD8JuZYyjH|jD;ZJKO<~tDph=wpFM!$m;WZ% zihqSqrTj13#m6rq{TIpqt?k{tZ7%<}x1Rd{JjzFu|90;`Q~K-M7s~$Pw^$V;9D)Jg zSj~+ZaM*B||A!6bZG*V~Mq6ioUjzEfO?~xK62~LR{2uELga8H8uIVm&J&WNFL4Ea) zUfp8U)4Dm&VQ1?VU0j}{xQqi77w`VCoX!tDRF?tKpYd+bO5YDsh%uckj?;}gk7igf z`F)C<&pHR`J_XGBw-d-HI9jE9qlxzGylZaiqOA3^Uf_-iZoW58n73}J-y2weV_v6kNH#I(v<%rmsQG#2 z^=Pogt5|DVIRes&hpu2FhDa;~BZ0+F1i(8&7GVL>ya1IcMS5?LT&yDVi`yj7S7;Ws zm-&JK6PH1Cq`jtxevC2VL2GcAo4PwA86{r3NtgKVQy2hKCEgp&%pUEGLcxR?*<%`W z@qW2*OZL(0De4E1^p(gC=ntx*0My9$u4AyNVPy%fEJlfLsXf2X)2kMCgkbsWeg^ur zX-VePRTc>k0%AA=_zq_1BWq{Ho zU|Rk$m#a$5(|T}iJ**2pzruzf#Mrfbu1AYM;V%jO1P?Jkq-=|Qn&Nq0Enrbn`i1@Z z!tK;s_HIO6v+vl`@j9<~wicA6%^#43e5;lQ0{RV}sDA&UB@#Qu65v1S&|c{x4&A4& z2&Ony4hT2vY6*K99E8U^dKwIQB|pNsa4AGviNP~_2XXaQoYv%AkV>7z5+OzHA$8X% zS{dVJRDK$}reBh82-8(g8RnNq!(Q$n6B76zX*DY^A@mB5!kK7al=*XB4LQs6VC+Zn zL=TinnqCMnW3|zN%jtoUeyHXYr`Q(t)Uh-#8xpga90-R;MDMVr$B|2xu{4qe%q;{u zI~S9Gm@?~)$~a+3mxq~pQmH$&8%$C& ziuQe)Ts+%XxJkloOKJ1?cV=@uF~SZe5qe0j-fVvr4_!#_)A_=RbmpbAwJ>u(RGL!8 zxWrp5B+NO#g^4wxT+w+((`t1L%?a`st;{uEC`0c9FWMGi8)Equq|Xm*(Z5u zazbu~u#R@qOn8C4$2}J7vu8Wa z*H3MyVwPCJR*7Uwx|iotV7`oC44IwM1v_r@MK5?3F=H;3uPkv7BIB?wozY3i6TKtB zQi?gtM4rKb-XwL9X`cbK)+yk~R%&qG(oTb<7o4ti-uWA%87Do@URaag6$$#3392vy z`${-l$H&@-C~{Z!7Zb;+38#kaK-?8%eVy^16uk+Gc&8{IN@Wy=m& zMGyrkA8@`7Ie*dFu7&3)eBAu~q(pChG+btbQzq1`byLz7cV+kqCu9!H`6&6=?c=VH zbOPu~X+Q8_NTP_HZV6kS``LwF0L;$gaDODbhz(OgeJ|z1A57abYt7s(Z=2tF9Es7c z>!l0{S`neDk^JXZaeVV*Lt$rJ|7Z%oXs3n4LlqJI%>@Joek!$sVL1it%N7WHV;IL* zi4Y8hUL-brp-`gIMVr;?*Td?ykTnh^bxQbG6~X*iF-7qO~#L%4s!x! zN&dvZw^HrT5;YtQ9#tL&Yy_gG12GuJlO;Qp{f9A`fT@JcPPCtoeSm<_8R12}y^iRo z0i{TMV}Wm|l0R22wlAFByS&6d@B3CBh;rM!RizW0nZ%wX?o(iQ@6Bl*rS#%Q72kVBT6g=^EtTf88u~5?hBg^{_VbRhRT~1;9opJKd&w@pL^&li7?NWJw(G@~OnBL`bZD8NJX*9{)~b1;n14T+9Y zQen(XUvWFoi5WsBj01EQibCuNroZGO!c*Ws1`@JGTVN({R<94@_!_FXYX_vx3DTJ0 zK6Auh9LDhrC`P(zLSyN|Dtp>Bppqd{4^te*QIL`KO2|kK9F2`6rqpL=&az1m%RzOS z)HxRu(PhG8W4RkT1gw#vyPMj4Ogz=@&Y(+~ccdm1ua2Jba3pM`5C(a0^zhW$?0XrQ zI&_#~3#`PjF@~1zbj67~XowH8i0?^H=H9KQOD;#BG_Lmm^Mp=m3Wsc%kuAW%!bQ52 z0i?Zgu27WS2P*pM^Dp?Rz<&Xat&@+-?B-$E-~X`;{`Yo`2^#a2e>4xE=$Dq7$ur18IKE>X?^5NH!qyV1;lh?K`%U1oPwtqhpA+ATmqZddLn_rra(hjg=Ls`F27qRqUIktCE#1m~?F{Gr3UDQ6Y!)!p~Kp zT(=pg+jTOg7wGw5B3Y~)kyRE+nW04TAWSGmJVLR#8)OZUS=OFz^>Ras97vxFo*Vz5a94*FlSIFD%Nvjh^v9if14zjmfg{{o1(7d%=Dw+8D?)t7!2hgTk&y5}0*+jv zZIp~<06)7DbmDss`t3?0QdVt9L*!s3aNCGepZjG`ZDJvGD60ZAIQ0m(g^ zLD)eOTBiugfnE|)t~9@p6{#l&=Mdkiuqt@Mn<0~*SsV9frn2Id5YeYSi*mM1PRg8Yj@{-0ZO;^9Ai3W4dZVpIf^V91%{`4C7 z=xZL?EDqwhfJS~-2TMmM@kH$VC*qj2yuY8_hjfD(yTrWZB{AV-%VWCig}kTOMT!h^xo zJ0(;MN+h7AG|042i?MaNqE`=>r5R8OFv;(8JBaRsJe>#w+zNwYQt3+bz`eLN3-@P=4Q7s z-|(H6^D^~fW-Mi%)BSE5`@x7TPx5QuZ_DML(M%=7u`SNDz;F@$1y@cx zrSLoI4aaw9#Dl~Yx*+x&BG;F^pxEw?A5#Nu;4y8hxMvih@GkJ%u!=d|6WNMJv9^Y4 z@~p%#ES{}V%?iB{9;$#782S+^V)YkpYZcIZ51+0%HS0Tvz%80IqA+yd5OY`&`rwfq?C!{YdzsT6T~tVzqm z&O>)tWAmGK*+N!~cK5wX5Go^%(<4I0Mi?j}&LEG`dM<1A3eGGNF20qJ2^v%zGS4C^ zNk#F-c;fV9 z2Fr3c4;v!;Rz^sdgL(RnO~w7#1-eijRa`=6ixWrkRs{{`(IKQ2 zw*2}H@ek<~G(Rmw+fqs*(2$6J5tG5g}Sj_|P#j5gwU07V>^4QwUfz6!FSFgRx!ZA^2V zO@WB-FIT+mMHs=Fx+>rB9`9PC@2av=zp0xl3w)^l8ile!*TpO;Wy-u=-AUtk2NEjxQ*8ND{fZVF z@Ul);b94~LBS4s#9xQl47K9X1R_ME_{#|=@lV^hO26EHckp_d7zgdySaRG03wbYwo za*?lGkOO2+ir_b-w6)ia<2`_X-QehB$*W}PN7ygYr$$;pzY_w$&HKSvn<$Kuos0GXm(;iXPI)(EG!707J_>v}A z>$b(Fi?L;ZvEU+;_73B=Arxpg@{L=N1HY^Bfu0m9fk%L~Lcm~H@>5mLrKz8@<2F1% z6@TQ34pF>niLdKTg`6oMyx`??uo&FiVcgJ*6w~ZPRJkpw4otOyrV`5ueya9-*p2%o zq~yxk>wRXkS4s4?-{A>Rj6}D#5y8**n~@3j%$w1EFeBCR?gd&HH+)9io*)|xH3mT< zAH5*K3+&#!_V9~Ly~9iwV#x_u2!rUKN(#m(SD7U&0dceLU${Xd)g%WRSCBd1V$799 zlE)a^c3quKs1z`%$0p0hpoyhj9$}SSYRFx}B)*#<`;R3ru@S<8J+FV!sh^)t!HJEd zE}2^`Vs=qe7i#k8Z@M^j~YrD149yV1fO=RomqK-}m?Scb@G3$N0$hKi~WNdH`e^ zS_1m>QxZGd|7FquQ|+UblAfQ}HFj6(taAG9Szh-|!kxYzI08{{V=P~y5DQYydyt_Q z$HyB>K;zQ{Zrfclh`CA8x zP!tkB=*Y$a?a&SkH4Y17$;y0LUZh*d_qrYz-x5Y-RjR&)%Cst4#)N{8C9;3;>t%y2 za}}OOO;{rN+|Bte2tLe7WDcZEx`A*4UU$)oA_2RX_(;5lRR+MYn{`h~bF;=Whm^8B{NLQ)1yrqQcHke`r#zF`=cZN=98g zOg`so%ye}>kqGHHBNDSSemOb^So+o#;-&Dznfo=hk3i3P4#9zoCz#C z|F!*HuK#a8<$pZRr}F%NPT(&jop~JKNptuUe8Tgejn1=fH|u_(!@tz|=lNfIyIW8A zkB{>CqUWEH&eP%l^M9)If4Wo1y%% zj`p}|Hx^(ddf`|*0KLHPwURwJjRLB&CkXn7-my0Whb#k(%c&hLa~%bb5APAIt9TkIgc0|Nv? z9hP`6E(N_qRqERpc*ASj@Mc?uzFX(JDm3jSBcM->`m|irYm5#tm=*RP2^>dCak2z+ zNpnja$-ipGC&#uh5&rWF2HF6);aB&hffoikgl>jjZe)y|>Mt1Hvx@Q!UFa=6P!*7) zx`yvk@v0J#B6SLf^G?RJ0BViIFs8`;e~7=@Vbhn z+)u)>lHcrD$xmY4qEv7lbs zo~^dS2+hQHW4|Ha1@lUN=Ie!*u=c+*DJ7Rdizn_?bh^Dn^_W>BEW7@W{l!vYTF@Q` zhepgQ91F`b!aSONnF_4}r>nef>#k~GLuSiTmMU8lyu%~msVv5qAmI?UCoHGK`|KXy z1$lH!KtXU;fUg^vB5;{FNWN(_u^~V?WS2` za5IHJQ)$J)>jUJkt-4{-#k2o1BVAaP4Wl8CK%};L6}@>yVIzTzAft`8Gr%-Y9AW481(&T2rIRJV|;xx&hMFPY5ReDd^#mqm9(?ds(I~H%< zxjgoE?t?WC_5*Lle0?0<6Q1gSL%ZFeuxCOIcS;ZpaEcpbzF2LbWw(R=JtBX&sp5n#Q*)TG8VC*(^e2=v$GgCg6M)gS!S%>yTcZF)%!@kB6es+ z^9XJ`6)%+B#-T7MWdf86gYY_8g=s+q?lWnh^?IlZa+xq6l7x3($KBVaro;VqR??4I zeYD25ko;{3c?{2!`q@k42Oa^{5z9VG*1x6DLpVO?!h!!xTH_X=D@d00{MQRD zU*(U1FxP2?@Y2g&lb4%0GNfScd{u`%&b*0Q5OW`DSKhjNBE-7C-Wd^cvuLsgxjH#_ zkTO3kvrLv0w(H@Xj*s1whW^H3Uu)d9mWsj{KV51eUvc%MKzX%c<84%*zB`H|rm!=O zg^g9o7X=5GY*ymqkQ!ubNq&Ulbzqt&twT|Ns+_@QP1 z`x-_{Vtj75C>T1Mgw&NuUV?C=?4Z-dzA3dp9ol;Rn3zzEbK8R2D|~|k$K68xnVoRy z{7Wp}O{~FR3tyV?bo%D1+*cw9Z!0yc-j&x@a*tKG#A^WxNefX(FkC4yL3YaUIxqAz zk#!083N~v;ie|CUWk{V@GJBTX+Ke;W_q#!@=QWwAw{8W=P@p*m%RUu%cwT5_*jTUz zVOY;%ix_xj2Wo<^`QCOTPHDpuNvXl@gQKulH#u`D-AS4*=W7|Kc5RGlsxb9z3t-P+ zj&&|$U60Lz^td3}y!q{x7e6X zy6rMsYj+f&{Lj3=&?b=iR@8f*r{9m@!%L746SkUtcX;HH9&Ku~KJxde; z@4jsST-yvlKd;i&9l+a!tk#AC^J_Y=kh~Ee4|Muoq98@$7q$n}i^KqhDmzZ04MT>p z(mp??ar{XQ-I}H$atMX?QJvFSXHDo_W$=mMII=)JFh<&X+;8gM@G7B|EK=wc4G0H9 zej5NHDa9m<<4+C6ucv-vLyk!&vs0X~$8~m%fsJYh@*ht%*$=c{w524ER;WCA39AhH z!&}Zk%k_ldM&eNIekF1nXCuwQ<{Ms-CTOHlKx!cpf8Z&r?`$_*&*=xuR)I=oJlZQ6 z!suXaD{me_-fR-ALDI6O!SlEc{;K_b5@5FxuluVwes8JNYq53=SUIX0VnC=8!FU?v zaQUDcS}i{1tAoatBX(Pe2f=F_s}EL9@{ValloM`TF}F7J{Mtpg=5ghHNYUOQ@bE=h zkc=37D1bdjdARPrifs%KTz$kVG|@XumC;!;poVC~UZ#)3U2v*qVSl!lxDvraEQ67_ zmnc$lV_Y@JaQXrOshzV;sLP=8?xD=QJm7>ObKLpcSn(d0LBf~R9lmOt{IP0*H3}E9 zj);{9tSa}w_{_jjr<%6|4@x-;+QfWkmaE995Bhmix1;W5su1^MeYJ9tYwGxo30B( z_k%QWmVM%p?S5S(|Anbe{e%w- z^z)|vhDljD z0smJM{9nG`VJ@$;rB&{g0Q@z8bi0=>DUdKNm%_A4Hbutvq}ZRNR7yDuO+fW#w(>mD zePhH?$9R?BuHH7{__l#TjSrf@Se!Tk#D6==fxf(Lrk~jD;)5_7Kw7oXC2|$CsfTyj zB)T2xIK2Q!mnA^yi~-3%ChP|-MVPPehg$w5P;#XINM3E}KOU>QVTn7aFr(O@n12=- z`Vs@zE=r>gQW-R9Wztw=w5h8xfj9)_0}+Hq8y4{F4Ri;6suP*bcv)58Tus;uqOn35 zrm|FC$7Eau*QhnT(-J4En@JpRvf#xeXoEb5V7&&)sRYN|G%_4tfb|x3dr<}!5{|}R zUs_`ZBi)3f2RGZ|-b2ENcZI-=>%;15E(sDRT*$i0wp=o!xDH|4J&jGB8%pu5cOb{c z0`6BC$n(Vmb)Pd*VL3o-5j;xRZIFrQ$Oom>_fNc^DW5cmplYdzpH)GBBcO4&Wnhp&8&toiqbXcXc<988~#Wz$2{Sl{G4Z^80S-CVI(IP4v7n;UQ&WJMcvJ z+q6NN==I*laqlhY8*h0NJ@f`>kZL!=9c`jFsQcW~UR0~g7dduqn(o=GAyW@!dmMV^ z`L&8hk=*B0Pu2SQ?%l5s@w2IN=9Na?(11TipO^2~r@fz$rcC8Xq5FfWMu&i;y==ce zy@@(A_%GA1?@NEG`Tythd;VF(|F?E`0{p-2r~ZGB^7$hCKj8ddiqkiN(|-g`Um8xI z0}G#!I9__$cpyL5j!5@gpYrp;PjNi>37F(hoS&mYIe_kiZiK5KvD~V>nQvbAW!xQ@ zzvisQ06C;;_O@(rp%sf-zNBFLU%ve;W^8=7r)d2-H@+4_Ivj^~7GdE$|ACadC`Npj z{yTEw|DI1Z{#()RWoy}Vnos}W{;%6xJ7NEq%_sclNBPM7-{1SsMS`QFEK2j(YQ&16 zA47xhw4q?&G^baN#68>5<RjVs`HYd^%!HrZ&@H1lM;!hFLiTc9xo}fVp;iwVn0-cU`T@x5|cpBZ__|r z*+?++npQeh6%++dMLJs+4>$!(1N2Xu zBXXiLDYTw|8>Cc(OsN4iOmvwO4nA_Jp1AeaCn~q;o12+#N|!J<+-@Lk0f{f7Q>S4F zxgVb7(D#&^Vanf4hvd~54pj2^E-^W-tgO~>AmijbQ7eUR+=~4#DLf>*CM4V|I^PrZ z_UMCV%AJ{b=%x?VRYp4Wt?a^>~hHgt+FGzWZH2bbWEO5{DsrmiOeqB&hFZ>0!Q! z&0F`WzGh$KoV=1$(Z*5%nK~*cJX{G3BG@Xo35BShr=8*$OR0Zkd8V(RnW5E;e;}HP z4mB&S;f9G3nplG=0baMpCMnT;M@y>cvfAmr=1asfn2};o-NbNbsKrf!JPp6>+|&f) zvRcTDU%85g%g7TB=arl6x<5TwSC49R^p&G?R45E%T>IB#?X~*i=^Sl0#K*chj-h6i zT!My3ix`cfiAt(^Ar~Z}ITXFR zNi_M@P@$*LtG8mAq0|hKHb}zLps8+Zzwi*jUn&9RMV(m^6iXnq(0X;h5Tgy*Isr+| zNoY;?0|+}Q@l0Ax@_;!gg1&KXpW5IL#kHwUC}hdS(nG_n?v3F6*nbw{I$lzSjSQf2 zKq>zRcfdD+5u9p{nu8?5{S5R~oxG-ZiN|s?uv#r|x+s&?OEosr1Ye zhz&-fFXyQ`)M6eq=u$ga1zVC_1D$TCZsHJN||(c(R}1|Jh(Ki(Q#@iq8tEh)(VGU8yZ z)6Y5|AEW^lzUX%gfR ztm>WtP1j$Fi+Ym_)WYb4)QSQp!0OHrk88nw93ItxNx;A9rU*(1eF%r|{36x?ZGI#X z4W=a=8IlewAR^v9mq*VnYwPy2b>(pR-@lSo#?>Yl`s*JS>kkr z${t`DDSZ|ax@tO@Cv^UtRNFy7M1MtvH@0Qp3|*-S9N!;Txo0Kb0;(HAj?c^xdHBAV_B@7No$4zzGNeB_`P8 z0R-b3NQKq*mI>yZQh;xCxMBS?dnvAANKckh9vn^6fSS$Mc*BQb>tJuLxdV~%u#-`7 zSrn1Q1*I%i7Vwf3siE96(*8_4|ER@%O_&LuRb)yYMlBPmDF8x9t6}Reuj=kWhPkv| zzJ$|EhINq`ef4FW_-WfszV&RwPu=O&qQ?Bid+z?oNvnrRJb_lAGzLzUB5SsoHr|o4>(Sy;4^vXQItFfG_Y6(XPybfm zL2d)p5r{CmC`n7@`@J5F3Yr z^@f_B!Q6gAK|_%h^qkNfLbXc=$QKI{n(W~osk|Z`AA|n|Xap~5te!1b6GQp)89M=- z!;^>q6vZY69sCT#hM4}Ll@S~VIT~_-iV^oIud{qQ1Vs}8>ngJ`TyH0bc$6Gi7X!?L zX^)JLN|KMs8lT@*7q&>%E%E{<69lm1*qTo{1@05Z|1DaB=g7^b4+sS;!hhc1Ve$X1 z&F%foC;$Ird=~rvVe9Xk1yDsqi^>3tBvw|~2}b=7&7apM0bsMcWgR% zBYvm;+&Tb|=nh^1p@s3WP8Wbe!gNCyecSqRHDqU`!T~L-Us{LsjP%{3?tZ5E*`N1? z0zzMcxl65co`Oun1?Y|qo!ShJo~H=h1;LC8%wQA53}3)T1n3LUM>ru$9sV@pVX(2i z6u=KoM}QnlgE)=S9}`(UsbfJ4QS)w6zlhW&!}Dy00AF5PF9FkpWT00+73<|Ws4YhF zy-gc350V$D7S`r6nus!PWWX#n6L-?m6_CW91ZD_ zDGxEY#>}5b)PrN|8E)!s4b<9qpie?-)iD5jO(%7sY*+VNxSofN#!57q62;0NJ;n}E{7VW4GbI=hJ5FmaIsPY*!HmsDV3!+kFiEB}C}R|x)0nlI)` zLf)?CstynuS_}^X59x&$Z*-=wo`q5QycOJ~ZcT9bAv2M}$fqEd@fRBj>({v-8#e}t z*V^VAb+1lELXA&M+$}j!&usW489+$;tHrtGiSKnHBJGq$EvVBn4AIx9w>5NmUkWkI zlb~h6k*#&J2zHh7k5#i_;go$!*gMAQgGz5^e8zSBfN?#fV{8EDz_G6pXT3_Tb)M`= zf;>sB!uU<}UQ9%hG|dNO-~&0$0R-*Y$HFr8A#uBG{HTh>tF zj&*Kk>d@T+ENpwpX_*@CX5A{=y8R&NbVE=kcQ|%}k_tA-0ZWo*2?o%e@~{X`i+T1u zxA6yGB3Yj!wPl!73w1>+u=_OWC9uV`v9U1+ZOqHc1=pvoTvBVwvka??p)pF&%!?S& zu_cVN7Ov?jBom6BNw*Wq-tmkyLpv}4(#{F4CR~-fJ`?nupkuI!;E7BPSoSsbv{{m= zv`~x3l5UeEwoW`Yd3JE6lvs_P4OaVr8OK z(Nd{)D><9(@{%6fL7XUn?qKS=z43qKu!_HMK7rN$eoEuUyL5fj{R5t{ zApXC-zs>qT*S2b#+fVx6V|>2r4z8m1aL^n7*c`cY{$cDyE%(e6_x@ z-W!zt+4)AhD6+EH80NiveKPKS6}5-uKfa2`Wj4$w*_)F{{qj|GJ?NJGe|+`gg&wG1 z`yMa(Zlhm=Zztb>SCrFy-247@cGK?V!jc)VVG|I2X zQ77+a>)&mdyT03)e7~~tT|4Sevx|Rx)i29Q@$JUO_4W1ocrv;y);sxV!_xNuYMTjM z7ND4Z^*y{EOn*EXeWhR2jxiYZ){Fii8+MEJLB27bj5e-WT;$WWvY)M; zx4XUUKZot}Y?$Q3eEJVf1^?M0|M=?r?>5@sC-HuMGarwKFIFqf{?UesRH>i<*G$Un^Z|0&IQ znfYBz+oS9{pMG4&HGm!O=AB}rmz8VkP?uSEV=ykKd3Oe_#=RHFJH=A7&pU;k`jWF< z`EH{-xcYu&g`A8*5w)YAZztJFXF8aak$ZutJ?=)y+h%l;Pop0ciC-2`domdgI&C%Q zVm)e>QFc>i<8Bd^{VbZ~)3R7oc2v9Do|M_Nh(>ug8%7t?eB>XOsLbIOlZ>N&j0WSP zY!8RuM(49)FwTm?{o2hY*|;0!>fUiVZFkCIHJVKGt3fxLx~m4G$uJvb<5G=0T7~(m zXOKBZlR@WW5ncBOojwjQosEn2m6h)%_v1EpE^F|T>&2DhJNymI3l!=N)Qr0AvVGnz zGWR;K;Olq!xR*ETF!7(VvOgGqY}AF<89s`@U!Y^|d8wy_9e=a4y0v&sL*xc9l(|_Bb#5ZnytlM9Lvhti$Yo zG&`y3sM8)t#dUk4X7A5vq*kVTzHl1mx@WKx{t#2WFG~#Ku6*WGW>mCCA_<&@dwLdi z`gvYtigL15eU8SH(Q0%!D5HEDwWDF)X%C}|eAvyVdNE=}&*fm0MPBlnOhV?>-5{>Ue>j=dp#)o`Am%oGZ>6} z@ESl-=8?zaOmRE=fU~GG&Dv$=o>ahW&0$=P+TAX$Q?aUFz03-Ag4BiQv%#>d?}0}a zoD~80RHWJ-7P-1T%0}l|x0}H$x1)YulpgCU`_p{Z>qlpLVn69kK3iW|iKA&Y8MZr` z#N6Htv-XwRyL?>CM(UM;@y^C}ZSwK(HoER-<7iMu#cZOFciBgpjEnCJB97f|TGip@3EY;=t zcpX?&Q;PymP))N>GoWQFi?%k`YcJI)7`97AtNAqA+FGw|xv$po(i+TSYioT|(YU&- z7PY4tFgx?=S$Ew&7ZyQ@zTPlDZx4sJ->$5jot>Sxi~h=FJQ=CokJfq-*K^cGF#pzU z(D|r0eq|+r{fgR-W)(F??dW1KElNXCtLl+sAcH~4XdZ+pnE@sL!FW(cquaIiWU|uf z+P^9eh@M{D?drK`DpAtCJtjN=_QRZ;S)piMt!GxcMY$M&EY9Fo%|T}4X;$RJDqlx|oMm5gds5i}LlS1vcKG1L$ z`-6#+R7EyvPt~sI9d@GZ+m)5yqr?mlMZZTs>K~#9e}0dCoJ}WrvD8q%ulydZ*-u3N ze&FX`L%}S7*>*?8S@b)TgxyiGb}`MzO8;9Z4C%$sqTi#2Cht|vCpC-6Cd2#|sI2ks zB(hgWzpt!(P-mlUHd)D>(V!>>>z&Z6OVJIT6w z{8h!Xa-5aYTGl(m_N<$2*ag-vyADq(HgMUkjiD&ET@-_&Y>&(6>)@cY2WQVBt(>Sy zDMLUhTKTmhh(_L-!Dc8Ks8sTQHi>zN3-Ed7<+E?2>;5e&pXd2(+-*;l>>eq}JB`|% zXHej-GXOI>N7zxRXsvVh$C?t}xQ=-UFHYo_!m2 zvx~u4FC3Z}?Woh9w9f~_K?zg#G_!j@tV8d9_N_58t$tu)tS|$6C0YkSDT*I<`dPb- zihh|sToM5AyYYFY`NYrVU?P1=-C*X>+M?Cx1XY7s`?0FtcIaR?LgXl?C#rBKXOB7ToftOAN({hSr*-ylft zt7xpu7xID*@E{FCs|m85s9t*M4!nyS2Ao_U_JUVC|8hr0aPYINOK+Tm0gXF#51`+S&1?eqL9 z)7r?oA;NJv9h}dU6}z(XQ`YWA|4fd5`1z-1{r%6)9}d??-T(S}eS>}VEIQ9Fln_=P zl6<1|so8J{W>r>{`c<_z0V?7OWgl_7$139RkKtfk>c5oT>y&fjCtg|kXFO?l`q|pn z`lgzYaVbArS=Rq=edI>kN}9&T$x-v|+XsY(7RGby+F4az4%4AN4c3 z##e1s=Q5AZXQRpbidvkNzeTZo;s2!Xi;_>dP{<2|xBvNbb7|If^M3w3vPyBgh|d1k zcSR?kWZ#oj_)hJ`_h(GG{lEX`|33pqfG1G%aaKH29-mq zZov6;78SGeNxSTW9j5J{v-K`GLQ7>)O!9$pqUP&SqE<`$@!D?D)$4We2g17l@BjJ# zqEe}uo@Jq<-Rd%4Gvp7qH{qjmJS2|4Y+%hjmzn6 z^fk;U8+Y_@W*ycqi+t>voaz>sCFE{Chb@e}g_sS7rN2Gb+N}s?=Cp{~opPpJZ&7(W z$#ju+)b6#F1XANF9WhXS{ucFB^yzv!Q0~O2r^a{zph*jV}M8BXr-q(dj>D8y#|`Ac*LqXL9r6~3rr@42j*)y zC}(PsieL1pEMw9XueCWa}tTTS-9PnCSfBxJ$;h#TOLtu!~c#Vkqr_6kP&aEbVio)*?N@TI5ia970TDpZ4cE^J`35j9Y>vbb#d0o zshMa@+sPzrs|d(Ss-iXl9|n0bHlaU4>yrV9B1Of@(wJQ)3 zQuFNO{j3;VW#DO_C_}P6zKyaQy9Pv{7X9`lQ_I+n%4{?l!cnnnXS~hR=<73LG<=Ku zs#hWUr;rvgggVCTIsL;{Z zMV8@0!Ov%E71p9NXLcXV#^7W6?qtv#x0QG0`>&s!Y0`kWAy_f$p^o;{L=E+~%Tn10 z;JdZHGz{#|3UcJMIx)?P*%0R49$vR^i^v5Y+KMUnr};Ra6~o);YaO$M0H%ptlBkD$ z?z7dX$fIsn40=EUg(f*Q)W&3*j|N4yHqFY}6x1s9QYIQ574~(JGYo)Vk!fI(!kYGu ztXV&r;&5tI6?;5Oud;FZ<21jyJ&QJ?v!AlwpeQr7pXN*T-0TXRJIY4}zfa8xh8NL+ zKcyTM)|E#$T|FhWoC##b*#@$VvyHRPuw4}TIW|8*AHc#y`-CA^>a)`4v4bLd{#-@W zhKho;e4MB^FjIT}9G)=HanG;SyW|&2P#67tHtasr(V1zcJu<**)`~$l)4@hfr}-6l z@UzjkN=y#MKwS_-fG})78&2SltM+ivwZX`Ie3gv{N^ObYO*7+gK68l){#%Ulq8#2v zXFsda&o<6lvut{MwsF>Im$T8C9m5#xqpa-bD%7jpgjod1Ghj&%Z(+kA(ApoAngDNZ zqp#0?nvM0K&!VQu9+6A}_{&FQc!z>FyK`}wyP$E z!u)%!n|1POyUeHNFe@!&l4a8dao;Od0s?Bv6V%OD_0l;9|LxxkXKkKmoqVKHAe3&D zU(ggT;s|xtm*)A-dNl^ES}Uz+UF1{HMU({_sc*HF^$Xgqo@}z}>5A2Bfhc=Q{b~1# z=-aCwqR&>%yoPxXNJ6U<_L?>KV>UKAz_axz zQ3rl-acfA=yx93IC~eurg;HelG3qgn@^m;^U;cZP>MMjfJDH@bu&=33fP#zQ2PUP!p684{jQWW5b5x=pR!SYm2FHjba;Bo-)?`apFD7Z-*WM*8n$jWw4rJ9sVpeTFy zOr7!Gpd9qZxiUM|X2Cmxy>Omgm6e?XWs}J>5Z7M{_NSzC&I(%_jNx`VGHR%e7Xvd*4T| z)3_0>t%1W~K``TQhLxL?rDC9DxO(=mU6l6RYCX7lVSG9l7ts_*987&MR@}(8E_i|!l!Xuwr_j~X?cA{8WBR!X@fB{s`; zkMp;wQMti4Y^Jl3laCW|H*YGgHg^;f7q_GO(`FqO7bGtOaOh;d~Oq zjG{CgEAUcKibA;4PgN^kDwvOu7u;Zy3SdeG-gT0^1FxH$xgE);=1Jmp258N}9|p@n zn+BTxt`HA2flzK-=s5hGHw|AFvAF*W_cA2K&#>*3M(g z{UB;`+Pjf5r(S0-Na8U2+j$o>0;$NduJ^*v^6=_*neGA0zZmKMxI&LM_UClC)G;{$cHVFh?E`hBVRgL$ttSavuw4dSGDQufuOA9r(o1mFJDbMH zTF5n`DeUz?5kZDAMGPa5T9Af+@ZsjlKxz#$rtU+y&S|WmK)8yM_t`4A^OKqjDD%pS z42FO(t6M(>o<*vyS9g$YpO$v3XOkGa+^s=~=-S30VWy`bQn#W!J^#K?u93{;xAj)-si-rnnr!{d|F z!@r%sJ>GlsdjIFQhp&Hev=tijbar@ptU0psi!c-sIEE~lbNm(#zGT;v6ih5vKB!JN zHg{InSJziJ`u}rt^M9IMAfCXvRNlXPrNttv99m}Km97VtH{mI7t2L~T{)^JL(HNOr zjK(4#!V_paNqHvlfX-cEh)l1SimOy)*Q`$k6Do^tDsllH`&_%xUX-9jh`RVsnaI7r zcsHSVzs75?eik_p&WxmrK_G4ho@#@RI7igTqcBSSiS+kPr}3_gbMf+Y3QokJ_JhEQ z0dZDz-|!z`6y&$j1}yj4+WrwJdi3a)_tznYlA-4`ini1_q)1$cKLocuZ_pcdy&g;w zQJ>+h_mr%l&jzdfa%nOLaB1WuvXD+;@OWUDC&|B0Mb*F@g17~A%UrU)WI-{kVRdO~ z03>HXmm9Q!K1V3gqOb^-?;8=_?!qL{9Zz$;f8_ab_MUaV)HNccok6b$v;atTFJJ5R zB=Nxqg`Y^~`Q1x;HW?!sr9Vbt-os9Y>IpyQ>k_n;WUnU5{Yqmfl>cjOBn8?;%Yt)hy?}@l&694M z9X|^FtnWqHuGjkq-d2A*KY6`e8L+_?&1`jb^%*w@(5_&)<>X$mbF>FO}F_%~H zr%{-HLb>2m5T?6wmX+G{N4VeIogl&9>c?N?V>V(T36Nt;$Gcwd3c7&mM|ZVsivO*s z_IL797*C)t>OJB-LW(cSRD4wCb$Y!Zz3r8*A}fN$UL)U(#o=>RA6MgbdbfRPhRWV8 zGoA8-fJlgpc7O?|Z49Pp)Z_g1srcXz^H1nw_z7e?RLBf=m72o$;J!d786f2tO6R8{ zXSYO_rp?hqBvSSQ_0y$>&3g)%rc!BlB`c+gbki|n89Erhju!M#{vb1y*o8B9^|6vwNfs{2O(0~80|Gf;I z%p|`xgdlD!h*K)R*=f)rG<818j=jJkXhJAN)Onwm2SlsNVoDcP=dju6mIhloU+~GK zBfpc*B2joHhPOjx$78P;myhCJI4lf$%b*A!CZjm~7oHrxhNSciB8(~Fu|U&DlWuvF ztPJG2o8^$2IWA{>1AHesF|A{?PY6a?9|q)zww+v-cU)d>0Ac8W;~gkin<}bVn*KNu;0! zPX@gOePNsg;;m|3iyxQfCAd>c$9x&1opH~-6SoSv!Jlx@H^o$|hF0ZjU#lQ)SZ4j? z;7y$2%J;o1KSE1pmK3Z8tP~SqP4wajNFFbM^8(RY|kDo4-_3hAr>*?|W`~?sTz1!s_Yeu}^(CQCg+)V1>Qbn!C&qbRQ8IkzbwUjy0Zg4F6$K&)(Lkki`y(wTJto1lJ<7iopB(rl&c(e(fJs2=X*(eFI9JY5|%ySR$W zyBY`u^@$~+eW`k6CFCzYICOMavbpioklcba9R%B$(4$TJ>O}~v(IIXyl2&D@FQ34z zroGKAEDt2c!+0`fK6czCFaIQo$e%{lp@AA8#0GN|VGcdHWEu>26?lji*ZLlaXCjj< zqx6x+u9|VqIYmQv(a2<4#*lm$g1%ZRHcVwJIIT$@GXY^U4>S3va2%IeJE1htCujvWf$^{NB#mu)>e-9YkpWkkeKY=$!0yJiLbASOzDjIhS8VdYXn0bRyn3srBA!B-P z&W@K0uYKn$N^=E*TgyPi3;?ch5#l87sbHQrXUATihNBUZDet|H&akVVWTL%^NNxMa z2rfYI2YEV8BM2HoCHO$og1hoIjD8j|~HwPnsrahHHzTfT9s`*#@iLX)$Zi^$GGF zy!nZ1plLHYaC&y~x5NDl>VSYxM113Tudp%DtN(yk>B?mcGW3a*BlS9J72v1HUb3bIXqZ-QL((_->CiaY`6J(2*%9eWb9`#S3zoE%1zyRD2H16>*S?$gtPOzQULLcWqwu2;>(W9$Y|+ z>bOJQTCX<{<&=*^sEoYmcDAMrC(>hrUGIougA!iqHuZ=JLSLI`O*{rpWP#72-FCVL#2Lm(Lyn?~kSzVzPHqeD(z z(Z87#Ti{sgm$MNoQr09ud-C=E+s{~8N>-oCTaU1-R=pQCN+1yk5W*1u(_2|llL0Dk z_FSgmd>p3==+_X@s3S~WOkY!qYXPxyprW;J`QTB@Xv!otaRHB@DI_Qq0ys1B*(Yjh zoI+YdbrDeT+O5#g;b1IR7%-lpgBC$H_-q^iP7e9yWg_e7?gdgLzE>EB2lAh&ek+dD zU$p=h+;SJ!M8U5?kqlvA{gstMtwGved1JT%af@IBZA+4tfg-(nD(*Ob$KkzN3}J#u zXhz_45delddWGgTM4xaBMI$o+RRcV<3Qb$}jxcKI2aGEpPdF%0DXOz%EJ*pmD%&i) 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

kIwQT#Ca} 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�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 KU*3BF)*k?wX-`rB literal 0 HcmV?d00001 diff --git a/.campaign/tgz/antelopejs-interface-api-015a93a.tgz b/.campaign/tgz/antelopejs-interface-api-015a93a.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a14002aa7381a013df584a0655beca9a78ce3f4d GIT binary patch literal 70991 zcmV(?K-a$?iwFP!000001MIzfcicvfI68m(Q`Gd$FJfn?*2A*1(^|z*Y$egIZFwbm zvvYlX>=Ies&4^9*kZj4liq5$o;(o&WN$vqqZ<77cD~ZQCIk7|*t57Ha1)xyCgh%Im zC^lXmK0kPUa`2b?_}Sdte7dv4;NQ*7P5C$l0Mjw+U4W};wu z!9-Ri)r|3JHOh$YRFRRCbeBBOw7yL`g$Oc~%v98Zur8^+$?8hcFv>I?ZBHuqYpo^Gx<68?wu! z8c{zqV2}Nn7YN5>T1@g%lm@GM!POddWG@|@O38wxOP}VKq6k@>6e6ksh$N%mLssQ1 z;?q(-=Wz-6hC z+DSewBGCc%8vB$sDa1e&g^20x05N_JLyYq{86*)$u2Kt}WKlXrRGdvKmgN;olW_v0 zS2-*5L3Ih_RpNjw%3~2~-ouV$H`E|h{69#B(*obKL6Qnfd>ozqDx#_mI?rbGtPtfi zMgABR`IwDGG~!tjam652!Lt%taz#-1B$a;-7-xhY>@IXCDEsiH8Rg?i0t}TSaB`YM zk%@vs6KBG<^osKAf~0o|{SfbtMVxR}%_jD=f60sUnozjRi*tk+#z$f*4ZJ z$}R$)G4Y9yC#irBCq;gd$Pc0A{$wJuIQhiRM4DfA4HjOABDvsIav>NXr0n<<0An=c zK+azFL^x1@pYakFFGE(0VGN-DA|I2if}wD^fEO-DNi?#AfryhTFM!<(agpFs0u^U@ zCHaJjl%M5=`YSKgGTYoFJA++Llp?DT`* zCb7?e3v8qdgDAjLRT^eN{FmX}tw_r*dyG7@U}9sQr0{W?lvNqpTb5RZ%2`>7acPV2 zq%5ZbwvY(-NZEpxA9g;{Rdk-wnCGh37R zq>$jwRncRVXXPY`runo?XKc)ia}a%n(Tb%Y?#+l8l zy-uBlJ^flwTXEn*mB&UP$j7laC>!yToe7b#LPP>3`Ps}F$1q_j{y7y{mBO%5UQBY@ zu0i3o*pCF!c8~o8Y84FoTu)zVR_tU-o2#VNMq|ceGg~SP9*vlVAO<4jY(`of>IMJE zr;LM!Hxbp8r;7Y8^CFEe6VNrXJX^<=FOv)Wb3GdIVhDy)KI3UMTOSlcge)lvagj$L z$ZNZ~wEtj0Wo?NN)WHeRaZS=0aXy)zrAd^|fKVqXpM~bhL=?2umiR;}7Pj4HtNB_M zqq1BZv0*z$*+L8S*jk`B9E9#?usVVG6p2X%3|3Z(84QZP63ES(XS zL3T;dqLe4&Qns}wcQ&I=Z0u^enTbf0B`*@>&Owo6LuJv3MD2Yx;|FDz@ifnb+!3RE ze3oQdtH;m$57dOn!j-#il}jbh1x^le2}_~&x*j_m!1`-jsH~C-Xj(5yl?(|4KIHHk zg`70p1G8ai-MYxjavc!{(}?mZ=uh-_k}=LwepybF3Z|NhA#DP@(!d*?z>|ve1RU-O z1b8V;ZPQO=7H6iWrPgDNnrbx?q>8zes8l9pj7m;XhKAuWx#cOXigpKJQCK}iE4)++ zTg)p>d>Xq+iFRU4qF|@Tj)mfz91J~NWdmqJlKNtABm$fG%09xe%}jUrB_@$U7G2%tk@9X1@Oq; zC`6P@5&=TXR(-W~2tT!na@-$$OJWzdQ8nh7H6}T3j4BOw6xi?N)G2_3ihP`8Kqq89 zme%kf;xtJ^pJ2KV5gCH|aYv4cQ);KnISt6i;Q)-yS^|HEBrYC2G z;4#{mhUi2iT0tmr@bg;TNTG(3fhK}e2$#XD)lD;o8}W+7#w(TzUV=Ggd+FsThFd2o z7{Pr7CRZ>TTpJ8IR8`J}Vb>Ps4w2b>?K+@XGB9!mw#=c~0qgzeMOeo&SGu0%<&w5R z1C|CJr=S9HAqrZoYLpc5I!tn=*Cqr1T$;{6u@JoIvC|P*VIaTiXtvfHl?O7VwUdvh zmhlQ2iVKe9EtFU@$2YIH4Ianvdja;2O_5eF3UrB~WjG-u?3YRGkPg~Y;NFO1k;T)o zQd=F0QG$i+Kee2`OhW`KCk9WOnF+mB>`agzP)vRLBgC|wTQs7`SQV(YqO+b90MGGd zEd_KU=V5~kF1ZA>R!7Ti(BO@0ui?muy0OlR@<9VMp<$Z=8jG_QQ^fYpX;#AiU}(#m zX8@?3Ryn({*1Ex$jH)!yk>i%pmWpQyI1BOwjU9OsK(?yU0?QtIo28;GanZ!5Nt#3n zn7`PgbwHy18#7;vw47O%8>`iIWi)*l(RbvKs&{64pI0%>q?(0bS_DH~km?$%(?|OL zbzZ?o`t%0(m$RIVGGN;wns=~`AZX=uB8pPPf)0X!4Xh=R1Ce$?4$?{(lW157BK(=; z5VXj|ClOg99tE#PNFj#2pmQbP_K;@*PkZcCDIg_?MN5y4bCjGFsod6y5FlP2sFC`j zjxqQc{AOCC0k4-RF2JWR|I7;}X_y)-qE!$pN-<_?A^tf{|bEDbaL-L)!uSg%^OAnPvhF z>e-A8ShT#s#4=(4R}qaD;{^-Nf=S*l4X6RY3QhyxM73Lk`_ft5F8H;0#ya~a?C_++ ze%L=bJWdZ$%RiQMLsDKP|tC~12#opDbk;jxR$?^yp3f!9iy$H z#C1}lWH0k5(PlCUb$QN;-dOvfwQkH3?fqMiz0@d$k6tGHEJ^Y3{1A3tCN6+>0S@XT z%UO!f&T1s`VrIEo)JayA7nSWY$iy&Bh9ZkZH`J%yq2tQco}Y#E9+08{KK(Q~Lxm23 z8-hPVpIfLQD~LcS@pQbIKS+8y+Xpyh)RLtM4lF$axU_uChprDFzE&XtCODv+2sm4} zPM?z)6k9q<00oA8x^N&TJ5>@Id~Q6dz+GL?nK|s@das64W8ct4Y)-X|nbMOalZ$D| zRoi0_%smrVP{Fj*oCtQ9=kaBd+P=ecR#y3B!of=jI>8hGAMhld7PK4jbTG|~a)X;- zLnH{C0s!&a_@IGB*$t5nK|%K&ak3BXOy}`Mf`_C78NN}Li9~`5Zjjv*2mHOq_9NI6 z01Ha;!pQq(qqdmhml3G$F1z}Ng>#SFlolF|@|?V&=;?G0+tKIBI2#C*Cn4hqA(TeA1CZo@G*WMmprzVT{p%rv?KXg01b4oTz40`P>Lk1Ajuu+_f+~D6z*YW!)``6_oL->)X9e{A3x`s%_Jd!9tI0_mYDz1sl7Z3ky{+wUdz-z@-d6v~=GJB> ztbGUm5>b?W_OA8{e(D410gJrKqg;*E(6#y*}p9SzEyrm&8E2B0>#xvoEc?>@3x z$Y13@u(&qj25NCpg2CIeqdx$m+}QZPJlSz^d-yXl*^Cewx%qPD$EB-D&j{HB% z?@q+grUlI62w>>45FA&Ko{U za~`wPJZCS#knik1+W6+1N9-H8W`z6Jn14#f(=j`n;&D-oV2QF~z+bFP{uh1DXR`{N z6zrRgvR}Z+37njiY>#E)lKmq1`71sNx*D{fWYh*ifM<4`9n;rf zy~0Tz-5CIY;Dhhs6k$xx?N60ztNylHpe4axsVUcHh)oMoO^d8#xR8VvoVfBF>6H)U z0HN%6k1fVcSMCO>kf(f-5FE_(hN4oPlMzepNBK03j|B(;7;V7QQqb#Uzyj>9Ywb3K z_X&j9=hO0~gb|zd5aM0k)OyJF*ehO*dSm`6upY}vcCBw*a9jlhKa7+3;8O%v>(^h` zl>lqV?>s2mn~Q8%jo808Oye5=FVa$2C{QTAk_!ns$9uRzB?0Rb5<^BE_t~ae%xg2z z`udb+eL@*BAo*k;K_C|oPT!$7#IVoC zQ7U*goq(O;y|=;52ZNv!^NM#umS-<`#Vycl4Mi4XyMrvA+pH+^f*QhaR@3WU4@w#n zfQ&}d?7RU|YDe72_Sg^jOD`$u7xmdQhQF}BY5?1Se7V~oX{22E+n(%MK4@wx1wn5z zEk^8ogb^_ESo3(R*X%mSy^7q=b(!Od3YTH;Z%e5=~no;D) zJSoT}okw{V@hWggHFStv4&=08d+go&U0c4Kq2g&lGFM_tfPnB(+NVl-)(9RhgKn`a~N=J3>{d{`*Mz(F!k;8Vq7#C<&O_O4mO4RAW?~jtG3~_T~9Q8)% zXT-BOg_GwBPlG8YC&Q>ctzTmRR3FZ+QS~HkLtX`tmz%!P9i8RVEH2q4-b1S7!A#j> zCveP(*V%cI&RD?N$FoB4^N)0_DVGUmq(DpaeA2~RQM`yL^r8SISsr2#HIx)<6r~XI z%*rZBQ*|S#RG`U|F`<<2V?+U=5O}7q69>?h3&a_MrJi4XkJlfS8hyQj8t>@lvd6O~LpjPbyR}04Us^@_`luwB&gaTtR?N zRphgy>=>byIwrgBb{&y6OGFw|M>fk05(*T%S|n+JjGNp=(lPQGdWjtW4|>lwB3?zK zb)Keobqp}y|FgCI^y#;r|L5t}7ytjm{J8#~3tq4fA7T;V1s%{SP~d$1H42`ddDR7r zOK&}ae4N9^TEV_kh3s6+LJX`^Vgfpk*dF7>5QD%=xhIAUw3mqeJA2HY$IKH{O+Z#y!*^vbA&ZSM1K#_5z>dWLZrtJkom}Q}fO$Hv zdj=KIPEEMeMUeeQ3(&A@tZ9&a0pKHHd(3>Ll!SG*waXIr-5%TAWy$(_7a@2sB9r+93+)S6ptFKn@8d2wm$h8Ubro(HzKflrO|bs(x} z^a1u1-&c!o=-3Wgr@Sm#+tA`uB|v|Jqd_@r&%Eyj9ooNmnr_Iuduc~45sYvu9|mx4 z*L73^Tt9ehw1LHlXnC{y$Oy}T&g5)}e-agd+V8_~oo=Wb*huP~OlGe{HOk{|Ae%_K zgqC)9Z{Q(BrFMf3^{Crx!tc;c`aUpFCuBcLI&E)=BVqcNPRQP!RB+YueS34lpX{B; zqx4Yfp7ZAesDuhr@2ZQ93Lk1`K=q`w0yOjvGS0RE8FrEJe z31PcN2(&cIk-_6t$Y4?=c>zhy972FFs3>S4f(~8-jXJg^0bjhBWqh1OK@vB7^f9Kl z{jaW)`1+&&t(rj_;eAxV_P@Gl)Wcaw13?DB?hBVui$?&eo>dpx2ah;%O9W_BM z#gs{W_Z*qTe|&zdqfgTNiun7N7HV}Qsx}6T^3IV6I{0pVKTX+j4!I9Hq2oF>4XrKG z_bu13`y>1T&~<~(Ns-=b(LP zGA;X%_0xSpjz)+v@;bb>+`n_@@CuUYP0TFHRi?o=&NiaEoQB`w($jb$#01rgRltw) z2;;~$F19zoJvtV>>Qi->^I15;wdIUw4pHju`W7U~&cqfuYl}>5_7V$|n1*iM+(nQYgM)TU)+*yVQ-ze2?RWd}?fMBK! zkSggYM9(wr3SDBBO1rcbsXJUosf^x4&cRoX z_VJT1{{IL0Y4ZP58nzcE3g2^$I`2If={S!)hbTOPkH>l3GpJ%e7!DTo9~_%WD>Al2k@Zrs&4EbWx_wq-||Ak@HF@IGWXkULp#gp&|LmXR2+QK zCElipS(=;+<@(oV3>yoG8}n_GqzXEP7{cw+0*>=#wk^yr$^mLzHra8NlbO}9NfSz7 z-ZF%>?#cl$1A{bcTRvJm^>>=@`M#!j1JYjeMmcFWEKQqb`S{dQLZYQS7B8&UxlG~4WUL-ua_ zy{9C>5}gY%DQQ7~jGC7RS?Fkh*CFZFu*Cdbua^v5!fTEQ(W zR$C)t!D2Uby>P8dYn|0N&w8t^W;bM8D-DF$TwxMD1zCM&b;7}$_NqV1W1z!nh;~N2 zw2ou{d?e(;-w7dTc^(B>*f8{?QNCXkd{*mpWg%e(At|B%Moj9zp7m}_WgsxN-meUp zCbmU04%s{KcD-Lp&uvyaKf{=tKhlq*|C=Sa(_3JR;(s>3-S+SQKHmIt|LZ}1?&bcM zr(4$Ve91&IT6|#8p!=w)H@3&jAErT4ny1h4uyBvno|)!vcmZj7oNjB+^v$W`DP&Dx zwQbd8wSfG#=4!{P_owLps(T~VAx#Waz0eKwvtO;*V~%IYu7UBb>?4?FA2BVI(rh43 zR;%L?PgD0Q7Df9uM0(a%!d%NiKth1T4%qoC!S~y5jDFMGQN#JB)-~*dQMib8!BYqg z!+21)mmUQ2&Vu~x*O0xFpr{Q6_F?-HXQaiszK8TA+*%{mTgB}@YD)- zex>4%i11`WSe4|;kCRyS2pL~UnFw_y8YQebuYwwttag`Kbr=?mZ9IQsXNO_YR}VJGNaWJ)LfnUto$IX_Di27b>ArmYwAkt?JR2jo}A{v{!Vmc&LAM1QFSZ4Ew$ zbQ&!-6BuZ(B*El7ea;gZ>`n{`$#_!I>>^)MAmZ@;*(b~@Nv&F9_wc@wZKJ)rK^j_NnvJb)F5w4zNw%HHsw zn|Oa@zH^Mp7UAlNlUN0Rjz_ zI~4h#E_kZEPo+4_DtHjGtxfMDR<96H+$0Ei$jPW_y0DxE(%U&R( zCGJCqNrg3F5}7Vr+EO1C93RoL`A8G~ShI!*Z!&X>Mnuiu(1?zp0bf>Pjt-6K;L1o% z8)tGgyh|_c?PP4C3C)9K9ueSiuOR{rfjOf5_|=tTyj*X5b)|p*Xmoe#F*MF!wWiN; zIcR6Z9LdHiRYgCirCJ|87RHL@rRQ{!4om5G!9?^F05X`SkheOcSdWr2dQVck^9$*u z*;vJGQE8w{%>4_6lyze7Z)k7}IO!hPi0W2qgX>3r1nJzIP5|AH+%3g@$z&}pXYMY= z)m&DA8NplZ#x^~}+t!D>ZC79&-|!cw{O9u15dTA!A;3@dAoqWFwzr@9@jp+uzr_DM z%+HtmzhCbET06y;`@g^c{ol_g2+zK;cA$2Z_PfXpP5jHq4NdB|k#8CGho4i96*rg< zo6`#u#%DNk>5Rwblg?_PhD+a|zFlBqjz^2yX(sb9+Y{}*;^*doa6gNUAXZ!vxMZFX z*C2(UKfu1=bz*r-)TrIY?KjaQWJNFl{A-@Z zqgC_b+s=gMyPYjG-u9~DKAyjVLFeeav+&Lwg*ED1ZB1i2*V<}%ze*8=}U_evMe z-lmOJu14PIHe~aH{;_UBE{8G27){r^8|DAaczE0AVMLpZd<#BA)hF1JuWK!i`6Xt! z`ao$po0=F&g{z|!g}F_C#w?r5wf(QDC}wk;;(fE`zRP94ut#Y5;Flt)1ZDiHi!chW zfO;u{2yxeY1%9V)O(rT7yD8~xXW`L#?Xtc5)tkJmAZ-IAu5$rbhYzP%EIu#Xg;^+I zx7!8mQdt~seaG1j{k>zZCME9fxVoOP!Q-zb#UU)_9bitf?0sO45=cG-=Hw(+x?|ri zls5Y3Vs^Lp?x922^Wo8-VCQMaw2P^G-?El z)e|0oOz~{|A&}anGyNe@dtdbWJ7MIR*mfNz?5y1izJ{oDspJ=|vE*iFBOpTZJtjY!r8TQ@+v9DRi7 z<@@;672yekj;_x?{u$SyW|uDM_*f>fU6bSEvE%q?va;>Vl2+RHn!OHU?lN%W_8AzVB<>RKg(mf^FrKI;mc?~Kcm!3x@k>f#^+2&nISMRDDw7D}w2BXyG9Jvn9 z$^k>@FD26-k=mLEm}-5VohZURAb zokt#dI!Oa{!obGk=8ZXrF`zZ;Zd%d^Hl`4qp<1;mXDTQ2l6}Lej(H@f3syM z1YBeelB`~+5T2s+@#G=VHyWx`AS1PM&LaOKry31?GEt4{;j=20nKHebD%*v~? z6qzZ<$V$M-kM0K|?aWvSB=yzuFm0^>llDNY1k>%rtmZ4v5xa=Bz)>qjFxQ{DY~^1v79=Cu7M3{#WB|+UI}*R(>t2Nov-nhwa7Ge*0$C+ z>3-X$A(?pLF8hCMgD;nC30k$&CF_mD%VfHMN@PZk{U{RU3UX&lZLl)D{6R@uZ&){k z+JtyNB-o8dIX7U&S`T+T3A<(mDI9)I?S)e{VYV$b4HoNcx(la+o76aH*U^}FSbIyo zOo3e2#dd4M!cdJuqT7-nH!1z(xF9t{rf>}@1-LG8ZC#o2M_weFrbXI=@;{I^Ib3b2 z3@{3gx5qD=V3;#|0Kt^ywz`xzEWO?=3u^hYF*=m_#?-01Xr|6LM<>gZ=NyZYDXS6- zt?#i8%%IbX0rrs8u267GYNrVHUQ*I8imK_amPKbvkg;RpoXTs5OHfXme|G7TL^4L~ z=AMD_nmRngRvcv0ECWD3;y?Yi9_u#&& zPhyT|nXTwuUU~rylQ*nj&9k*cRe)MDnlGt`?)0Z2|BuNfa7R@D7S#WG{Oz~jdij5z zJl^^COa7mS`1xGxf2qjJx5qC({IGv=VC50f@e&P%2~gIuJ%<09$9k(_drbd+N9jh& zB+Ik;A7T^hlRL^eQce;bMg59T0t;<6jvAAH(A(B@AF)ozWbFZJRIs(=tW7PW$t*A* z^(e!Ky}Ovlv^-XRbt?e(L{15(hWQ+Wxk;+1u=G^`C5RZFa0_Y90v4kC9K{v34^jRq*kvD|mI? zXJ1{(w>{FMU?otKy0%`SmUjIyWL_&JfL-poZnYF=y%_POIxejIsBqV6wmN?dcEbkq^JQ zoN-VTc@cd4rO2}(fHKLmQbM+QsSJxpM<`w(u$_#tmh2^7ppw$n_GrHFw z8>epLm`osqx;0PzJRR5{GGuPgA?qAwQC<{~Axuy43>_wmV1rU9&+}ph_MTz|UNOdAdnD)V3g8LDP3Ar_*XLx^}nsn z$G-mecxUsA{`Vk1_fr2UDakvCb(rW^=Oxywp_lmUuAl0eQ`h8mr;N~Ec3pb^-}rw> zr7z0LNvL}YFk$vzNTXZp%}?HJE*egSr@zXCgHrXFpQ75TsR>EsX+WH!2R^*D^Yt$= z2d~5045$c@rEa+JW2qp79vgOAWrP+2Uo7o^fu9EZAGE)9+Gp3(d^iN=yOlR!f&72^ z^of`McYAZ|+nq1+{~>-pSNs3>GR-B!ENz#|_8k}GOjHf2M>A1*?SNGq8p31KGR5#B zQOuvnVi-46N2^vy|KaGxKR&!X`su^V!&ir=Y>#bk?);l&O{(g&q{g3A)3d-enbmnW zxhkxg_rMAmC)x0oC`&#Rfqst|?49J%xu}A!wtTT4Whw5Fq3FJw7ND7QHqP>V+;I$M zf9w-cT;TB>f*r^XytpCj)JuR}rU=Ayk89$w>z_#H2A@>ZLcGjDoeI)?h@U}IDvSe9 z?Dja!OX?{wZ3jsT`AF>!da1Y&=^>So(1hE2DP{gkc-uQTK0Z>llh4E;FT??lMuG3! z$1!C3YDimcUTEsmhLtK9ADF3m2MT;piK2O&dUw-oafeXL`b92EEMSP43sI-SgMV3x z39y%AwLfJmKiS-Dty?WyqpjWK&H^HqZ9>+;HL*?8s+f6(pY|M(%xy_8@C4EeT+tf$ z!3eHIk@2+S9GNnG2x(pGf8t#0pJVT4Ii4AbII!o~XweRmjHhYSOw?y!uUB~?f<`M< ztqf8t2Yi#y%8RpMc@_z%h*3h#lPVdD)@8X9{At`}vF7e38MUx(HaRmiLk3-)@qTe} z_u97*bgqx=)?iMEu%8Z2849aDyOMO)H}kq)YhVN$-C$k7L?Ikf%?`{A;D|v|l!Wv- z1>El%<2E3l71p)*N%J9CaU#kkHG{}0!~_czA-bE6zkgr)zTGDev8Ju4&hl&>mQ1+` zZ;o8b?UMVsQ~scc*=#_}X)(LWP|LUrBlHKcGugBh165;XtkJfUuMmx+gz3<5zv<%7Y_?pz)tYVbp0E!Os zI8MMM<|$KmSgcy{7FtOnOFIQXlopqYWbT+FZjn`|P!n;_$=oH+w-Mj6Fp-peLjjiY zfTyLP7j8LQ1)n~3lYq)5RQ^;xt9`G_{=vp!O=nQ#W2>wm&LW3$zTzUur_Rg)O|s%V zggV9+qF6&MS2&9OL3U^Lvd&J)&Cu&nT|wTjtrhfx=XA=X zZ0SMnIAoYH`A?L`c#;A9m<-4#0!Jt{Tm|xT3_9%UuGOKzYqvGpQ%HLg5kY`p+_+$} z1}3zoi&15Ohm5jq=)sH>*O-)#c-{*dwcvS%@A}@P0;hYppix@;HCD@_5#C{d#syE` z1Mf+3C9(>NdCGh2Wv#-t+|f*iIn_y{QEL*}P1DLwKWEXgT*$Jvf?fk8YqXkKrW+n(V0~Vtc&^|Cr7VWqOS&0v1SbM3bdct zVI1J@hiD|Vv+Bd%E;g<)A0kX{OY^>C&uGSdy?Hr3xH}n63j%#=JDSVOSZuEy9za-+ zu$v4B4c+C(22r0-3Du2X%e)RjD}^?ZMk|>j3BWx2Qis5kb=)YC4B#P5gpsQZG?E$1 z@i^KNIGVKE@|kM9EZ{Dia+jV%D+Lbe)~3X6D_qtJ*x(IC^=ex2vs9=}%ctMJ;^%5( zXd(qGqsaA~?Z9r^f}#C525qpW!};1k3%^6SoVt|^zk9EV+wEJ+4kFFwMiF^VB!ix8 z1H#@xdnlETU$ji^Sd8-v(L6h?yWMPl1b%@7STpb!a^5<|A{FS+H%(|(OEaV*f^#uj zCq$#yx|NUQ*;wC+GNzQ3axnOu>&9|X!*1<>fueGe?Bb=;6|<7<%K2R(IuSa zYI#SzWM@L)%8MA976R0*3lTf>o(OTiXyWtv=R{Pp_PE|INihcp)q0v-h#2?JA+&={ z6t+IVqBLXFeA(NQhyfKx{J5BASz<*)mMl%q1)~$Z^%FqG!3C70h51o$&>S+@wNP_y zW5vOwfQDO8MonKco77s@>!wX4nVO5_@PdX~hhK!}7P^Xu_6(U$>B8 z;MRq3T?63mF-^%XlepG+S4Y9$&GW4|AUuN@cJqCiCXoPranAR3AFI=2-`8m*3cX`) z87{5;yA%Ljh<`q_Bg&s)xVnA=Q3CQYxPf5|9Twdn*s|ErkP_ia5uD?=&|KZH&(w|& zJZiwXHxP{Db$9SZ75$)3n~ePXl)YZhmgVlP$BvYU>%g;}evOUoD}-*ZR>?q*mKVqu z|I3!0-dTfNpxj1x$oN@aR3}Q#q0emPHF#jOx8fLLwEk*MXdccd$wYWFnQL^xG+~`I zLpChfb+h}}{IU4Vwwj zJAIhg(lX2H#`we$A&?n|FP;o3PsC9R@UE~ZasC6~{0w3J=z`aXE1K}5|&xh&B&jrgqh zPWSe{-W|=@oD&(b;JNRYqmkx0tD_CmlRC-h{Li{PE$F~84MKO@x#|wx+1k`{g2gBC z#7`a<NdPHyay@>zg;{*018-c;gm19KShbklW^=0hnUCmJQyI2r^ReB{5wY$RYG zi-8ZtCyM@YL#3@nkf$cJ2ofiqc?9Y>WmMh7Q8iBM#3k>ofaq>h+ZRO3%Jw~_&en#& z;DJ3olJPqAFwEcNhug9=h~t?F@n3Az)rrBi_6(1gW!T!xq=W2v z9t+qmwpZ;(WVI<{Z2t}R4w#2S8lj<#6}vFB_`X>HF7CvkxA#jb-NfcUAMC%-+ksR@ zfS02*hr=>B_pK@(jo^NQ%C>k@2H!zdd6?yeh+DZ_pB)({w-2j`mjoQyt!sd`H=o`a zW4VF(|FX>W^p2S8jtIKG>NlRJIy*kdViAW(hRec6F7WmaZ1y?;?gI7!zq;n0`eD!{ znba?ZF3(kUBK8>O0d|~~khqBOHt&e=I`=^#%U9Vgg@{Ij; zY#l$aK0ek=4qxDdD9;ATa9Y4aE0$FPbHzk99SeL*x=RRgG<|&l0`7I?{T{zNf4|GF zm6w;!Ih&6)azGDdO+?wk`nSbk{_cDmEENRe(KR^cX>m(Y5enMRcl;(xEb)bctaX0+ zkSA=!qCCI3kiwN&D7CxK-|2oZW|0K3eQb47@uKz23SQD|>KO*1ll(IKPcZ}I(u{7O zgPZq_WciwpMd_Z0<^C}`41*B9^YU=xEeCje4n&)GagpUPIx%E##7k>HOge|u)9o@| zyyJxoym@aZ!EEA4mAtTy-fNLja)LpwwmRoLr}3Ci(PPUopJIkQHiN+|wMuj4OK_aWA%hPr zU7^kecJpoxan5xSpi0o6?&vxl>2N>LIg)y~AICajx61u(C%F}-5Rb|VZ@q@VQm?}| zMGobDKz};p(Yf_zD5_(bVMD~nkgl?{-oDl8H}I7+Nb~c0f3oP4-R&D*R0&T_qI2tA zK<;;o3R z0b+w8&Pq&aqpD_#!>OgCFHsG+<9s&g00dKanl0 zZz7vZ+CDRltS?QX{yAS-hK@fq;_hM|MzGy_AshM~=)BSkk+g0nwl?TeT(?w5y0zb# zyz~3LT6VmP3%ikeu=~hTB-BH#q{+WM&X5bGY3bO!#eGB57^o=?glGMFg?imm6pT>< z?JZjFZW}`A*>QO7Eaoh~|K5C9V_GW-w)@U}(PsrY(c z(}!*&^KpazXh|jiZIdi(lVi?u)|6W7liF+Z$-XWOs;^X=m=`F|her^)}TDu^_=(bOw1>f7ke zA*XK>;(4*mv?z2LycQJnP~j7LJFHKK}Y^R>1$7{a0SMA#`!A zXlE=c4p&VZXh*&BXy@E=@2Xf)|+p-5#2dDXL8JreVSGoSk%`aqUsZ{n`uDzF5P>X zZmpztbaq=tqwnft9b#P5F+$xq5oMXGIEuFEP)G5cp42+E_H;OwvAp)3Rf=C~xS3-| zE`C~5bFYiCk&nf*x_cp)Xh zC1jJQhK*=HSukg>kE62^?@`UAKfRXaD4(V=rmj6J1V7gkslzHiQNA@vSB)TR|J^!f{FSRTtWfIu&$cQ6|HzUs0U#k5Ub2Z-^=f zw1!m3@7}jJBm$EC(q7$t^ge8vhB>8{C5hz{b>!`)1=Exrb}4WpWd4k6b&+*p!)~Cb zfK!8({x&2&;q}D3Mjk0h_lH7vb6XOVL@=`Ez@LX)ke_Z!EY58Il}Tk4EE1t4md^5L zq8D4&x+&Q-&3!5A`QxLfNs(NQE`0s5GoN?pu;4yerylWqk5pBg^-W2u4ShG4PM-&c z8?AzsD6?{P>_3yx^2~#q5?2cbJ`>T^VneM&BNJ(T0#5Zf()NJovL2%&sTu=Ja&%#ddCT?HPpXlQrdzJuLGS?^R=-SnXo0;qFKH z;}lb4X&-OIGw|<@QT;UzUOUkZhPw1wL$8@(6QwN)e6uR4Q zbmW^>lR`{*;bvxUoN76l9SyocGs5R;{$03pDXO0nNI5cda(P;C}7Wau2&*pK?V+$u@fQ|?30zQI)w<$p^#Toht5+ww;OM)Ed-?I&>S3% zr+AE7BSn?;qElZ9b+vgZLMLZ?tZMN^Bc2U!Lh!z=b4zmf4{+{@*4u2D6{-D!NWB%> zW*WFQB2ga`%THa22zTI*r&-DDmTWp17CaWL)SEUhXIa#8`MsQ|+95aP;F^|T&8nQt zT31AcCCH2Sww@S#{OZa9=k4*!4?pam99%cjuvXeWTHW(Yo>bWLn<5`4kYuqCWu9IL zNVNz%o`(0fR%7qB>2+BA-?U#x19a<6_Dz zC$k!IBOR>_3z2g70{>FUGMY0}CZ)_usnrtsu4{?FLPR3Dz(jUl&Eci<22gWKk!~fr z2w6u{oeH^7^ll&XjyToTs8xu*EPI%JC0Krq-c4lnD_*`yWswg_bT%ve z>wZlWtsvY^OS>!i*r2c6gilxJ)!&<6S7IM`+tqfqoT|0i%3`dI`|TQ}*#u8<~ z@_ZpTfn~YkNfTGJM=jnjkI23HkHH}|#o=FvKW?+9wJ?b+f!n&Ht;CkKU9E{y4JeH} z*{YmL(GI2F9%Tq5IZ~E)u{n_?x7)gE0l)XloNldUIU|6&Vpxe{z$5V?$_wFM2mGFAl}Pi6__f^7 z?be~4xff{IcG+(??372U8&#v-y^TmuO)JP(;J2YfSM>~3emgtul+LqsBC9diQJrUu zGo?xA1=INtA2G_%B#ZLW-Ek|u23}dTTAYiS?gxIi`hvf$mKfE*4hL*nLfK;gK-&7D zN%TOitgj{t;@TV}qz9k)c#?`f{QmLd#|nYl*kI46WtER%FsK)PE;6`K3FWAA_|n|% z9g6C0DGFt2^_gc<_M!T5!G5D#^H=b#E{BBO?kStESMW>uu|6~A(`u9#$^W93{j66` z(xeL3*jkqomw#iG(8bQ4u?tZogBgr@3Qq!j4p+@#eEj5E&fH8=lN_r?yn;E)y3Z4X zD+#mAtdDcrW3TwR$-ttMYy=G#s=>`k@HX*i!v~?lY!^Q3?#lJSj9(i0i~CCGa=4m^ z9T?*CHpHpEQdi<-FFl-fF@-J?IipL~hOn6a> z!>kG}cnSr~RQa;4&2EhwD3dPt`9T(aO2CVuXDIn$za$`U$P7(;Pa`uZWX$7+#hpo# zv{vsP8G^^LhN5kBizketpx8(+IQxOhGE+NxTQW{(w^dGs+4&_^ZC6e@Q?c%c>0lrV z_@14@DkdcmI~<=t+K&n4FT!f{{1VHuvq6!MsnkxIh^z|X$Ylhb4U$x_=_Jj0jN}X+ zJ1Il)ySy0ls`S`3O~y&ZUhz-KcseGy%H)3qWEDP}RZ#S~onO9(^lJgGI-UH|;6Em* z2)y?)9fnx-`HR>HIv4VjT(nZ;E1wbK2M$%*)>6kUo`2}6*ZtETj}XJT(O_U zCPR!$*U`iwp+wrARBGmAO2h-Sr8gDr;f1dPS-cT%@=$Ur?W&a!bgi_LO%#d+_8Q3) z}ku32;DCsg$^o*;73jnl88CKee7DY5P!)_*gh7<`D_2%g0G-Pkyo>K9ryc&r@ z`o)l-NTNlNm{c}Qko@o-sh09QqoVY^R`iK%uUN*%qAvyWE)!#(r0P$0ZPPPVnk*Sl z3&GC5&w5Fu4(0P2xF9;GRars3q&z|D=t|gr`;9fj(0s@x$z~6kr-y%GN4+Yierv%Wwl2{K zVl9Eh+YEymtDHWk_iw{PP}$eLl!e8*qE~`whA1cv5)(}jE5Cv z`v3R0Nml(EmM;44BOH%$U?q|fLZ721&>FG@CKU@xA=uUTX_B2YlNay0+XEX18h~h$ zyCX}1^a?3*GWD6IV3M8$wZ_{CIVm*XxjtzfJiTtlFcsdLp;}ABw1G6VjZ8!9qqDrvvnFu zFz2TWc1=aW`kh%^w6U?yaFPvEVc8()+%l?}r0*VWj}gz<8NEfySZ9#N*GW?=sf#?l;p#;hLG)>M0dsgw`9{(Etf7Zo)OL3j+ z|GV~fdf0y%l*(ZF0B3D*UggT|VYR122KLKH6vArZeX5s&v30hF&)515t3oqc+kkDh z+~_Cq8oR`v*WlNrbi3{99uWs?eQSwYdwrI~dt2L&m+Y9ogaI7LABDS=ERajMwf(rOTN4=a3vZcN@QhyX0R@Jr_?a&Oh`wQW z2U@urO9ULVBy;ATZ8e!jb`33s+6e|lN?7(Cf zHH8-Y`0BUcaF299zit4ONMk;v+jG6Hh=g91zsxU1@ti}*_xo0`-4c+{HzaX{f8TAs zC)l^!fW9`tq08-;((|>z6#}WTF%`WRuN1P&Q4)<*P*Ke{& z4Y3d@CVopY@_#@sF?&}urt9TMWNemCStdlx2C&ke7e_)Ii;5?y+!A>qvNha*_ytc= zQmkb$d#sS17lM@&5ha5pvc!wpjm!C}Bgo<|?YN+SN?ZrutFx@A`c(7kyN-PF5*@w) zs;WNO6h)`?y+VxhO6hVg|2l|oQzWfR)5Y@ReL1kqX zmm$8@;IDHCR8r(#%_a%Ntjx%(4iT;x^a2$YbbxA30L-wrK>`&-becrhyQWTA=P%KH zuZyX+yGU3`)S*!%4aNE*FvQ_Z80S&j|tPsiJ4*AQk6^z|C zGMzeK>9e0iCW<6tr{-`)5%4~c4sx76c_EQ!owRwj8zJ>f3}9zXs zOJOFwYJrksJ~8=tRsDG2DDz&jUTJs_^_ddY>MEy0T=2#~CG*z4&55SmaiKRE>R-Bh zF0+rDEa+&j>@~W-z#Erm=?rux)PN8e1-e>D_56E3`^$WN-ESSNMI&CVSt|VV5w8sD zQIl6tn+aI!^xVyi{7o$_@|r}=TF3&bm|$;x8yhm#0xYW>br0EIwXk{vdm_WnNpmo(Bg`?5mvitcSU0?=2nFwB(;Xv&w$u6*sZ^e`~f2L;U z65O=tu+3$6>$DH3h%q_C6LV5y{JsdD^wy$|L@xHm{r4f9!mGG&!K?jiiOy|4N!Ij! z{ci17^n1d?_scqQ5uM)JFQKTTLrW^^_&e;RW$?Z0UJuqPK3waviVsWWM1A+(-avmu zDpNpJIoqJ_yh-Zz(37@7oe3}H9#FCYy3raCMH+x-Hpya~#}BhpJ}d)h)mwXUGNmVlz#2=Rv%^49g~(@ z3SaJ;+~mi-{~^ng-bK+j>u3J`kIn6!txfO#$K$7)-+sCO@en`va{uFZDh1w9QMp!Q z>b5s5aB3e^-RfGwCa*mF#{SAsE+&Oq%er)MRsW~R@9aKS-4&8P4TL?LSGsQMd(x?}+WzZRDZr|9$h z>Qi(JuQy8LpN?Oyx$&Zic#WVK-zuTaQ=$7>gQ0A|QzlcADo55z

NS}ue82%L_lo@wm6U}G*_dPT8|#t)ZxDw`Q50WC6GUN7@J&;5J9|&Pduv983dhE zM4&dy?n{j9+?>Qhwlkl~RE_3)mLdKyHy0kqv=hQn5k%R*y}4Kg53RqX`%p5vg2yOa z)HZz|@(XUPRsw;=xzE2d(V1dm4Y79@{~yet8Q%IgEzoR05@SDw^XZ6bQ52FosvOVb z<%QsgN2B{==sInzz|sHqJ1l3z9=FmWE=Q(!B&va>bpVE@L(S|my)R@6=0%#I!u=~n zg*=4pzIXOrnVIgG0`G~sRwjtnQ|6i%^z-x*H~N1akJarRzzfcQcXqaG{@4t6P_m*J;a%)I<9kh zR8^CPhVZzvnjg6_>7Jc+PacX<+9?7(Bd&WC8;iLx zu4{9xN8T6tG>h>CUSyKtk{DTUE;U&Pm#T@Hr}R@`XO{(^l#STXEdVQ^42&n$Ox{xD zIKJ|iQh?hW^hhdGo^qeigRX}@D=oE-%IaI;oAyhZaleN06FkFJ@AaXA`5N!;!B=mO zUj`lcs=u+Zwf${xv$xsX>Oa}s+U!`(z3aPuc6IG!xVFHkyVF(q$ZMy5SR>z3BwbdK z??NHQId7@sPil7q=6=ooy0>R}CT+ZWp>7@d-8!X^>AY8wajGl#rlgKmQwwHzP~W+j zM*&^Jgd%lFP+dZpdofc2Ag2556y#C6U0ddi%d0c!E5_hqj?to%8OwN4K%73r=vO)* zq=0k}(7enu|7f4O`fvO{gyf6TjrKSNF^^ZCpeJgbH1MX&1HP1{dnEoDA>2922eMPR zmffM-2p#tI*LuC^?O)ZUZR<_Put*1d=G4;v)CzC3J-u^eRDBGYvVGAY@=9XMC@xz% zgG`HbUgy&ywL67KW(P!!!7kIs`>I2aVr#dr0O%J;Rban`N-w zfa=DRyz4eK-&b}&Pd&fw$I<^OeC(8`uecneLHhOXTMreLJ&DD=DaGRVcaqK%%$tItJAZw=Q5PeD!3iP$;eh*X|9fUL3qUI6YVbQ^qt<84f_l z!THKQRE(oKm6Rzv;80S|wr7n1{!7-R-PM2(-dvK5mI)0AL&z+4*} zGFTRpf!%(!bqWBsCYvp|{!hG7O9VyE%otx%%FOm$P+ley`Y6`9E=?yt%nsuqiPg!#~Ff^vmI+*+$%C`-`*Ly$rx*Tnae*)qj zimH{eA-C}DNE>@tlD4sJJ(&(Bn1B&rKfqvfy(eHr=d*EARXT@El>^Dk9N!}TGw&9d zQ<+GW_6aAca+znXNtMIaq{`B9DlTO~2h-(Y26O)`N?K$)(n~_@CGik;4eMA3s?S< zRHI<+2f+(bu(j?IrpuOPx*!;4?X+8et!Be)Y%s4aWx%4Ngd`)EyuC#2e5kx9w`Ij% zuO~N_+cI8<*r{Xn+01p)6?7A}qj;SaxX#UwSYta%mMHf$O6eD}C>0#~P8pce9mu4sK@ z-cZ|wsXzo<$B-9bx0Z0oD9Zz2>PnuZ(}Gw<`D`6l$ zEk9qApT4Bcy?2-m^57$Q8B7X$w*DRa>WYB4X2Dlia)j&d$9XArv@8A(#14|oTiHP$ zEiCU$pG!{dq_SMzw_3KhJ_vs&ubZFIZCnm(Nz@LaQ7%1bL>qu7^&UIHL~b8dBDX&K z>S|mLuRpe>Zkw014X7|rMK8^V!P;{_Z`+#NWlK8K`U%fnY5sRWMB0Yyw0f8t&w}g6 zpP&6l`pg5>c4vB-TF7g60#aw zs#qWBJc6U5VmKXRGEa)L3K_Zr*}t>L?3pSy+Q(1r3JvtP3NIOo>gX~vIo=fa+ftz` zdkI-=V#8$g%dr@wknPlqcVX`9o+aS@AMI}nRL{`zZ% z_0*cf0laQQ=;B(@&R7=kY@i+W%A=k0kXV&>g#30ioCWZgWEaZ?DeGA) zYTrj&Aun{;FJ_Qp>amp@N_?uo_v_pmF|WHpXM@X+I(B#_h=Ee-&&_50I{A6WFONt6 zHaK9R7*9n<*8%Cv4tbOT3&8peGfvo?}0rB24;ESJ?!Dg@r7k__Obm}}$DbU2B~*2Az_*j-%Ji+EqyQy) z^Lk;e_o1-tV;T4y7<$V|rvx3S3x?$(JE8Mhr+=!T6|9Iz1{?7;b`J(@S(f`>O{r`*pe_zS&WL67E#R;xE zaFRpzZ&CKXf9Yz)e$%|IhSI~?chU^NL9@Qd*L;&so*Vw$iUnPdTxZe0 zvcZ;REoi)sZssBbE7n+3zTRCK!4PRz$FMphZbq>FgEaOwe5=1^eQTPxTZ9^ZQCU=O z=r&tQP2aMoY>?@ws&B3;(VD%HFM2;8{`7Ox8mn+yyrp+E2uwX;m(ca|XFavB&w9bU zoD|;qmb{0n2QIO8-j7&6_h=AEc38+>eZ`Z{dhGuQ4e@g`zQHrx%my+M*f^hsb2!zkWBpFqJTrMuUF%5A^N)HI^b zHI685C-Chh1)r57xtC`O)Bt0?^wK$BN=}kOnsRhpvGXJYhP4b;s|Ri05Ow=mnVMmF zn-vx`s{k?095CF`Jv)@pbHJlf4MkS}QriM8tHFv*1uyC9Ij+PR70ygzrqD?%MARYT z2J2Pst8p!1iuHXrFq@XOvu()n>PAWGW z9<$UEq9nenAvZ(TImI$b^h~Z%QnDe`yVqruCeyPtiO}hlWW#0iB{mLkAueQFA?qAL z!7&(w^kEwa1s29cSnG9;Nj@QNVku~1Atnb1kwvt;3f8x}panMbMV}?Hbx$1_6H$d- zKvsu>u40(a@N&GaEehdFH6jOE5;4oCP8ztmi>+sUXGq^{bvD(aUcm8#UKuMWm~ul9 zjPS04vXHG@JJRRc&3u&Q>!xoTDH|K?`>I?QpC%%z)+x9n9}K89RH#xttF-$`Rhs+$ zrq5k(3C2@QT2WvbMD5Xn&~2IbUPd&?AG$Q8D`#5$`qG3VK=+o}-_$-ee?6spj_|rz zKy{tm&9$`5W~$cRZ}_3i$fA_Dpx?aC zF;$*IT%sr~37|_pz`d;`X4Pd9HMwJNv!PL+-86s@h)2^LyU5-cEs6&?0Fi2uM84Si+Hfo;e^wVJE1JiX0#kNJT z+4YUdB*dAKBe(tSJP<Qs#09$T8pv1C0Rx^E9S`6&vSr1I*(DGy5s1tB~we1*-=*@GVx*Z!ssKv{A zBQd1JnYETu5H;G-$}r|uxpZ=9=+ZD&5JxPclou$snv?`=_yXG`+3;qEI~#J0xKnen z16Vc3JF^0r^ryQ{6Ti$XYYS~+P2o+HUCmC1$X1PXYWbi&+NtG()`%xYQBMu1cVeGt zCN%+n2RfIf1R+uQY7L#!Hmvf7#O}?tu*JK+r2#f601a5X5$Dy1sp$gCn!&H}Zg=3Q zuH6Ry6`#l-0co$&Bubzdi?Qz&EBh7|Yf;BXO}f10XS_=*ei?JpCbKdhifR)Y|EzSZv0D) zKus5%6B$~gsE7JjcS%f3p|8%kOL~ynNWgU@Er<`SMdRI7cwj^RM^#7l&dPuzbtQGBV1lm z^{*r|kxj>Vm0D^RG8-DE8v~^%FJhUiz>q4=JA+U(MTOiW0x=UOHt5L zlpyvnAqE>I!;uXEoPJ?OHksp$4U&Q?f^T3ToVO0Uj{+0s=Dkyj_r^DHbryRoWp~gU zyz;(y=l|V-_?Cl{Q%teF3IEeic9-t}zuwYc%TEC;70#!ozdT^CkB(pMzr>!mv1j>U zNw8iX{es^<#&6-T-8!yPz6z>d9{r*)wWE3^L|u3NrGfCopq;hqPp+=Jc13YlT{KjO zyD3yUn#o)Kbeaqn@i>8lG37ai4KxvWfqDd)%g<))>iaaw&Y88nU-#IXVwws2wIwpH zA+vc|af|Gszc|Oc0z8VQ<0;g@RHeG4Vp0g$SG@x8j?94&x>tPS7I`lcaUq($^ciMI2DCg{KYStU!(nMfbC(=Wi3Xw&StQCHJB5%eJ3C>3F*xe0)1#w)*VZbh6H)ZsUhGq)`y-{o!->;Duk{L9h%3BoD-Ku;7p5jG<;Z7ui zvFWTJ&RQtw;z-b1AgDU{d5ssk{Ntb==9~TPH`d`8$>;y`21vUF>O?TnHzjq10&QVWyunOzE1(wqEXRxvwEVGrm21 zfiEZ)kzMI1!fW=6pZHq`i#EY)(0uJ~p$<*^0Y{imvVO#1Yd;jq2^xZiE%^AHXE1-Q z!+v$;?uflAe><7LxglHvy0+e{J@vZZ20sNRQ=I8XM;Wx7*hCF~``fPdLS#jPb#C|A z6=dboXBujkBY&%>*#4vw^TBDayayL_)qNq&r#+R}?1ea+4k5#pR%E`qQbV^+UpLV6 zhxBLq={yZVCP$N30+1OUAGD=9J5@(j=PGG{$8)wCTZ(GY*CvEa8&5_E>dOa~c8B_> zqEwp(uQgMWqKZlSAO-AYQVI+xG2!wm`F-NqNF`Mj%VroH4V_WpJ4jwxP!;3>=$jDc zSZT}q|NDRbU&h(ZBZ?$ z<86?ZarpnU_wL(m8%g8f{;j9LGIM^P6jPL_Yb;G>1_WV=@kN$p$I)c+4IvUDA&~$L zfVw!zIr}vGVEZI{s`^shjRpxyvT_s8i9>;n?&|95>gu}MiCDV<>eirQ+~i3(fVk{s z44o!M2HRV$)O9;POGYcpEP{A8L#uIy)=T26Fa=cwdz+_+glgLSwo}tM65ke=;jKlf zP<|}&5_qMV0C{Y=nbSdOaT!uV$;^i2III!N3@J!3^#6?EZ{#RoyzcF|&|s=Pc|6AR?+~gWZ$I-r2>a((EwPI2R8~0Tx14?(_)9wNAX7h6u0zx_;o<7xY=nHa@3J5W_fdv{TQcr7vpEURuB+9U}UXuP5> z^!ao&dL`XXoUR6_7F!$(idF?-I&(;QYr?ytp4{%lWv1iDJ zy2eWnVkPB={*06+>MZm&f=2bHs=5Qv3+6AG7#)>5I4R>LMfZU(fjS&2;rthV$&7I= z;nJ#NL`{IB1lpD>JpK}iHh-s|lKej)kl#D+kNC{i|7>pVZZ=K(|L*2f{+~zrJmvp+ z%Kzj1mGl2Fsl5m-J~u$cXC1JGE2*vxy9u?{DDh`{K}R6?LjA(BQt#TUrl46~EWYjqG}QKNay-Uca@qS9NvW9J>U+ML&5V_t*iyawxqinLi2 zC-LmOP1t17j7{fZ-W&cG&T>;9jK8eHFW4Gw)+NBsciWdv`p_TP61kiYf3k`+htXhY z{oz$|U3ktUN%JwgHQPF3zu0<$5&R$>-M+(}poI;HaDk&s2baFWmX$g9L*a`y<(I|WtD}#9M#Q~J zt}EhA-AI2L6v$<-L^+JLJ#9Mm1pC6c`}1u(dBop?Un%E#?N5dtQ_%VAa;GOGC?e>6 z*o^Gs&xIO8(k2YexB@jRT!FaWRPoGd7H&lrk=}X}C=>tTx8e)a^7hkW^EPv?EqR0e zT6oEuW_dC$9R{LOs$NN&Wml5spM9G)?|f@XG6+CtclAFN0^TOokud$U;$T`81#ENv zIkCVQPc=mF_;O0i4f#}n2Z??4=fVx+zLid@4S7RWQUElHLFr}4*ECC(7*YIM*n6d^q1-T=dZzpy{UOs zV{L(I=7br)&OtlnTc3w|UWZJesAM<|Prdwxa61!G!hT}IRH5<8@(chplGS6^I6LY7 z?dPcf>)zjfMoSjdJD#Sa#w5sx=r`20GnyGDpIJXwq59fh)L-bpKpKaZ2AX&({^c6< z_uzYp`HkIiN0s5{Zu^QGr`#v+iv3;WZ!AH=zHG77Tc9VW2xMah6~1JxCo z6<3%rk&LP_+Mq2;duz>&&HLiGxv{x7yX(77EsBR>$}+?$u*j^Q-?5LTs zAr_#GBMg|z9%!CNZ{K&0-kezGy0yMFf3E9acCLqz+vZ^=dg#0D$^>8g%~u(2dJi=7 zh0a!C*;@qE>4QP~VKG3b3&F|M`VRzZ+kfT1_ZNXySQQpH1yI+H06WWX-S^(%$^+mS z`dJ9e%$l(PJ)i@Kqqqi@+{~!Oo%pXj*!K#_aGmng9rp7P#HY?Y-HXQiqO;;keX+w# z?*iP1?%o4O++F1hzC`Gs;z$RTl4a7oSnhrKWA4q1OMRut&^@W-iBy@({+Vf2kjY)? zOmPytXCFxJccoUoN{XLM$tqEcd()|IN92PRGH)mDq;0O@y4|6xf2ZdIu1 z*~Y1}Lus@&d$LOP6_Z3OA)5;X(^}#`vpfxh@#*cL;qYXl!F3SjBBdyH2#I}EOAO&+Wf|EH2Xtjc>kP+6fLKMo*7W>5 zOj)8ze7<5Ydhn|@F&uzng!NMk&T6w8^k)BV)KXy+=J=^rG=NX*B8g(OHafN7Ob)6R zt#BukQN(hVo#FJuzB7u(Sc_*CHDu9eu!Kr)GXI79;nn;9zVnYi_$TlG+d68W{`Xbq zb?3eF%xRiSeHT)K0TrA;zPU8)h0#^mr?T6>H8n|yo_)*uYMkBX;VYxc<~;i0bQp|A zNsrC@3sZ{#yY47hR;i>NWj)B+Br0#^fFsFGL<%q*6g8d6By&P`Pxz8N#j>+7dAz#2 z3Tyn|`z-QV8U~jpt@YCYQu^?;;BV7p9A#KoCQC+Fq0}fzNRzl1F4w{ss=$awvuBlt z`lKon0SBxa5omqFN~IbPm^27Va!_cy0l=%-(xAzVAqA1mK@S0 zN`krOS;uQtgiwpz_>|S<_x`cS|1u}pLuG)OBmeL0tQX|}jm^y``TsFKPx)V-^1nDw z`Cp#$zkKQZFCWFJq6dQMNl>n{+1K>zOu3!k^K$>2CtQ)j^v9ETOqPf3Y$~O*33_h8 z)rqw|K`g4SnpV`#chi*Te0juTFNx!jxizZkA{98W0=#IX$=Li^BZ-%5<1ovD0T78k zUrU9K8MIRN(;OF1`3l#&F6QrP_4W1$FUt?_=ncC-tp6R|L~UrA;p$BqsgL0qTUbLO z1@w2FX?avfQ5fg*DHm@xkfeE;^>>~9v(XzRkilEIta6N&UOlffep6GCv)ujL&)Nch zc=zhRE%(I#)lS?f;C7W8*L7x)r#`8|-OP4XgzF$iW)xKwy!&Jl#>%a6-_|CCq^mXA zm#TNDb`!kL@cwsulA}MAil)ZVTmMbnsd+d#u{XoMO|`_^tp39}3DYYyQj{%7Bf~hd zqsv+)JmLFUn7@z4VKU7Lea&_CB0a+>7xs_f5^iN7RW8c(QUgk`frY<;ss}e6Xi3_Y zIazS?_tkm0Q5ocKg{4wTo~ePFwzSkIY?*E(H zJ7)gZot=%R`ah5Ifelx?3eya3O?yrgq>UP`du`8QvXt195Y@Kl)R>wtiU+GHtM5U^ z`dW~N0kk=XP&n|KrJu6=b`;jotu+kDr3LDuk0)^Js2wKPP~@>A?krdufDPq{q5erP zCTTQ?0Ondh>1C_nD+`6x$o;Ao-b_HG*i*PljnO&Gt)|g>O>r!&1-)K4$w8IM8p^6a zTC4Fi%U_3a&M^05?PD6{AyY}$e&Wqo0uAnVF&B}my&#(gqXqG4yh8|ulLwH8_hS%) zqIjB2v(atc86vJjUQ|)<`45j+ZT!_>nh#gwFd7Wcl4<(Tv^ogm5EVp$144P&ck%?v zpRl?qF=PRaQdWK!YL=!>5B!lB+M^uGkT4hXt6&uM|5+WyFsVgx3buV>!A#@KISbE|G=w^$ z=`AnNfi+msEyS;{Y<`OC>Ed>(hQg@ zu;e&DE&aOmTOatwN63Ht|MwU6ET4J)U%T7uX8p%zbL&a|dyEgte-KU&JJnv_FqlNR z_Y^U)w%*umth1-0hz|e74J`uUvIZ^J*w(1HIc= zv%SqpLfAg^Ru>4KJU*d9r@|*$bM1-5!DM z40MgzPh>~^@Twh7AdEcjMWHfDb+ZCR?J>mfHG08#5=4V|EgyVdqeie!t2@DYxEXFV z^1){@wAv4rGTn1(|J!UdcRA%aWqd(2o;|AGe)W8}f4;rdECV1wG zHX6-c*&5e#ZJhLm0RwftvEFE|8^43D2Y=q!Xf&TUn%l5#OTgK1VZ0K(q z&2Jh_@mrXUqBvijjHZJqUY&&LIpab=-_Uxy(QFdZF5_r|k9QiITl9Dop6A0Pxn#gK zHX0%>zn0vbk8?ibogI23xq)Hfhi2oOrulp|&jyKT@V_vZjrH{=F)yt6xEisao6j2? zG*|j@wKojnK{!eVVay>=21=uG8l3aFG#i_814|rkz#7Q*h(bIQI9i_5I})+*in3k8 zFr824McVtvx9g3q#=7(OW<%>wy!4&Y6Pi5WTAcPIfigv0Zt^6-yKu`Bp8^R^jKC(S zbbmIDMkrM?bUDCA&|aI#UCwI7LmOOcry+?Vit{~?+V{k=I;*SjxAHsvW~?7_lXxV3KEy z?>_J?V2=F1zPW44|63c|PxZeZQ_#?$_P zjL*+>tKY1nC|}#FnRHOA*O)C6(tp+VYVz-_wkNh&QKb5*j*10n^HaSxW@gZ=wpZKV zcU{-5f75o|$lrHe|H7|dwp=%?ci{P_mg}C@eb@E&JFeGk!P5@>?bnl*>n1J!_@nE7 zWRIhk>qhwad8>Zpx<~kU|Je23)(>3wfc<&udWZGbuKSw3g#S?2@-^kzH!auwrX}BA zYt!rdgO=;PsRynbu(s2d>rPwvIQJAFl9ube-M?U+h6lp1STSv`bt2p6k7+d#>x@KQ)vI zwEd5+`wwrGp6CC)y|HQP|8};X;y)kdW8MFp4k~SX7Va@~x9`I)a_d_y_qyfnyY80X zt`9u-1AK3G+Vy9i>u$gw2b&(F-0PO>UbooZ#eaZcfm5Ws!EMWRZ+U}p%XP;s*(7i8 z?;p7S!M^KyA7IP5_4StPuJhKoQRo|g>m=uUo3Rq5f!N83Cr4=d`}jFuWm8y^_Ar<^hyU2a*}>YMyce;Z; zalIS*+EyqH+t36NC|YlA*kRkirb!ORu6NTiyTvy2j6kF&GzTfX4Vnf6}_(vq1}YnDM)gRk1(4i7&Tmn<0h+&v)iE?#vsct0`{B ztCqPrUJLp$aa90ETh*aox;rg|GxV%0NQ~(i83>JQ>7r%gl_1|}x$Z_w!J>fjsx7|y zd|36n0XcQOZTl;wjO7%0o$VEZ+u)wZl0C@3 zUoc4UA8pXArA+t~x2w^Troj2W#t@BvY(G#3v;m5fjD0KnqnG73X#HGembSfCMEqvU zWT>S~mM9Mx^N@`IeY}^w*?AIC^eIs^^>zxUQz@07B9+f0>to4M&BZ0&uhHnmJTQpk z+4u}QDQ)A?o)9me>a?_GADL!YJVS>q?Qj2u0w*D&bblS=GTZ23=D}@$W!C;$Ynhyg zCfPy0P-NGyO1L$HZp!X;DpeZW&xSYK$!p*Q&fvEBihAlvkcmSIkozXc#`$zA#}2R$ ze!?5ukj@80k_8?z>V32T88%N<%wYECD%3-=sp9A+J z%D$?cLQDIBbV#L@E>BuItouZ6D-N@6sC4T3# zf#Kg*p=fpu@Z`1n5A(6afA_%pu?lYg52Oa1@Bd@!|8{ns^#70ZvEKg+6fjp4z?A`3 z0-B>7P(P>_Ogz`k+UzP{-|<{G!9ON=Ll02VcHIJwbIkOGmo0t`@wk3aY|evCrv8Gz z6O?jJVM8}PlXG??=L8kmzU#he*Vo(bYuMI@@be3g4fT;94<0c*_A>sOwYb3J!$VZ( zx$Kvy#V?n}DdfVWH`=cMyanoy!}&9Wua`8#&%WfH$_#HFVupBy5igHgwkf(*r+C|T z{q3q#EG{BU5$5%dO-r(Q4jKR2X)~3uhZyqtJ1NHnX^S=f{aJl|2C?8zbn_IiZ?`n8 zj#`M;OH^~6-wm$}T?aqxyKbj#?Lj*&&ut6i*%wB;Xyd}Hw_Sg;RX$V&BDfQs(@D(< z8nH_9In(4&E7CMj8zw3#5c$g0T*%tZmU8$rJs=AI>RApA;Nh9_42EGED|&{vos*(4 zepmp4t0V;wyT1t#lH#F@R0Uy!DO^uoZ`8g62ux%IATA8`$1793?*L%5jAQ`OmN73b zqhWfvQEw`Ie0Gys9DICs;(Gs{hrq~l-N=(LY^pG9wOn@#VTix%Dqef8drd%$+6oZR zENgKJs{n*C=?V*0ec!EvZkynosBk`Ox$ZNBGrtS6034*YxyWLKO+?>*xD`Wv^a;}H z93a?iB@mwxi zkMgn0|8@#k@D^a}WbR#nJOfbWaN*%~U>zyC>D8xg*S*E-z-NAPA%`Nh4V^HCiVa@j zVmq4InLJ}?uw2+~h6)9R&kpGeOIs7yyhSK2GR>80(-^m1cU))%dbhTz?80xrVtR(Y zM6#i6Rk{;mu*$#5yj6U8qDleO(6IX{a=F>BrUSh4(S?Icf5P-KX(>%fJ8FmpgdM^r zKAQYTNA`nyfz6TscGtJe{2$xvJ5TLH+; z8cpX5(X+V1Vu#0EU8)-9i5*M%%QFF~Iy@bVMLcAS3g3y3gRj~TIt$ldu0AC8^Og^DWao1BjgkhkY4NvbP_SIH+wj8(zBi*v< zzhx?3bp7C-B19WFEJ8>}as^)x!n<*%N~F^GZQabsfY@#+K#2JrDC#9wVPAN?Q* zWYbrE=J;T`hO}jN3qPY4qh@t9pf|V%F&53JwcY-W;Gw&g!Thwd;KDb+J91xg z=nO~Lf#9XM4&)HFFm>bpSFaE=36lG@QEQF=y)B1^dL=#`pb^nH772qkm4)qB(bt;l z%VvSle9z{1ZMaZ$s?sAbAQ7KXxpE!+k*yt3VAn_20C>m1(tk8$_6{iFE` z4QXa315h1&_Feb+!6DdIo*jVD(ra@Ue&M)ugS$xXt`3}a9oIiMy_Pjxes8iI8v8`o zaOr_SCXr|!x6n>!+gPH1wxGNc{+lX#hn z4y>ykuyGLzN3d-Yc8L#R*pzhvA{n(Hc&FbY1Y!@FGC_&YZtM?I({d zKbO%KUI6YnP^yO`$Ym4mw}F9SFM&sCOZ7^_A-@eB+Yt#I<^xzyVfn<(g>*dhjleVX zR4(2-yuY$uVFCpu$bk~czpr? zzk&e}?j$>^0Wbpv{tNu$1(*g0txIqz@<%Ofw*j_6Fra~<@DmyeQ+}7>nj*o8T~IJF z_YNso>c)3PKo;LV=-TiLuJqnwqP0K24@2vsg-vlN0Ol7=adOT4v5Q`EUfvdt+aBsw zI__(ah5C{lVhOO))mELh^zXWDF=ur+L)*p~%Dl`x#m()a)vj-~-3Z;>&QA6_Zu@O9 zM2ksUS)0AnNn56eneZTcW%GgCD)oUYf34$s2h1DI3QS#iqV2R@f8r_bh>IZlz*8bl z(I=3(3m!F9~ey zqh8AeT2Q(@d~QTTwJurlu(wT60j+N3_XaUiPaYElkfUXJfPkzen9yQ z5N1^;HYz>riTO5L3iri$eA14Uz4KXp$8gM7-mxgG;O$-e+oYVLi*k8COruB-Nl8S6 zR6K}8G~?tlPe`Z3)ts-PtIb_mi9I~8; z-p*~YUZus$*)6VZeb_j)qPK%-|1g6m!)fuFZ6(Iqo_pmmbX@Oa)xMs!-Iq6ozA8Zb zebo^%-}TpEgw9JiOI}qyJuh1`<-^Q(U+4S+g4E7E`5A|t6-{z%M3ZD~43>k(g;0)T zi$nP_EETf)Q(*Oq(-q%6-uHCCykz66A;QdoopvJQnvj<&Ha98z$LBo)zwo|Ow3H%n z>saosms)-*=DKI%B9T{ZpF3tK!b2Nl1r-n43b@dj8jHj?V%-g!yKx4HNvzR)+V{aQ zu%aC+h9{4L;aSwS-gez}#PEgxSD-e2%@nwZRhGh>yt&co3sakM7?KdF`*nDCq(JXb zKl30@)upExOLTAS0@kSs7kP!8SDKMRZ@t;N_ev>Lqb9LpbMsyIn%QK&4Aq+Wlece~ zBIK_4D@)IzxBk2k{>oBrprW97`bc9u%1|mdV4MmbPYS_IHoU$x!_O@1sAX@wP)B1# zi9kHqXqxqHq>eWBTzBkoJKpbZG)bW(x3f^OBCVFBlQS|b5i_BKjog<6J?*xuZ%7F- z*XJp+814?m-dSa``b_{JIGYCnKRg5sxfVi-QI&XX-x-EuSn>y21cRf~BG46*T$^J5 zL5HBr5)Co=!b8A%_*J+QF-{8L*Fvg37daN^g<|11RpR@E)_pa4Nq7_7Hk`g=Bo#)%fymz zb-mK5acJMP^ix}IH5ubO|J25DVm>9dV??F}7f-AKHwzkGRXn_1@8@~jE^F8{g(3=S z*y2cnKeoN%B(Ucf1puih3gs&V4V{uqd7|%9YvA+3>xj0DQ?TsV*3poaVIHcmY)J*i zU6{q!_V0oeh$$NWfkX}D!AP{=&11ku(4;P3W1hVkOUD_qdVTOMJCh`qQ$u38QwoW@ zE{8OQihL{gSPmQ$wU&x3n$8DV3p6EJH^V8OP&Uj}NMBL?3@T5S0&XJTcs!lN9VmTa zr3V?@Ri($L76nNdD4whIIF(ny#Zh=Fvl(hAY_=3HZPC}HJiR0R^W;+ad-_=X|IR~5 z-}ZndK<4HD*fH~eGj%yA zk0Z-nzC;_5GF8UtS)~vodPPIPE!n)D`*Xs;iq`t)1>Y?L zMaEg}Vx&yr2=IlAx;X!0bWlg#3^zryc+RwCV%0W0p^cO;#srE}$=i16gI>gcq&uAQ zYCJpM^_0;SMRFJd7Mb+EV$srreM5dlU5T3Z+fkrBzG;xhl- z$R{I$FKHc12hi*b&kKbLifODTYL;JWV{8K5dZzqoi-JCu(Fn}4VUUOsY7LiIz7RIV z6n!CX)ZlHxferE6Oh*M|c|aCSm2199T!)?+VOa(y_*mZV3km6W3KEQkAdrh;vlk^- z$=O5Ore4SoeJs;!SfMJylD8B_X+(k<)M5+$G9a579mez6EC!rGyM||xjdqEPl+bQY zpcmwY_WBe{AkP)qi@Fk5&GYbWkbx2X8&E;@fMC zlkkD)kK6L=sMY4tY%guKl-SP0>=7c7F9j!9Vhu^=nAh!ri0`{n`z4`6>-XYMdv&$k z|Df*sY8qzKQNB7#27@Rb+%FPrUj4WA-3>GU1l4L+HY_#P42mg**nv^Kd{ZZQ#r}WDWzv~$$Rb7VV-WlYYyiRH6ig_thg%K)D zk4Fp@t*AGienl{xzQsk9(#{Dm3wawYQD>Ix*syKN#j3LtC}3@QL=1t;5W)x*h*(&R z!o{O-5BIm*X8t>&;_RC+SlrNCNF-`@MB|DoFOdcDw8QVkCzhel)NXB|+oIdzb=ydI z$oxYs3S4n1Jmo&pss_XGNV7<{=)t0Bqm|;SgevJlA6i$AE@dAyf|DJJdaH&gZY)EU zTSd`JT^Pp(Et%&7>sV1s<8FJbhCUP}c?0cpbGtqemW~Z95%_9eeXV`7fIgo?KZX0qIpgx%Ly-{$U9{kKQ?%)9?rRRXH7%*_A{0hc1F zi{JFnQkK`#`nDv8!DMT z{IE$m`$CEW|7f|!Z!0-&$$rF&zB6bsUE)z839d-Jc7+qo7#GJ|h)iQlMWwk*t{=Cw zb5Qt-BJBEQQ8^WDCkQpBI^)Ib?iCl~2x{9giycxEnj2b$mgW_6Zt8R zfI#rpc8b=1gD!*&70Pb`k9IIF!Zf`SvFo#{w=lw(HPPpD34|T}tsbAOO%b8Z_-bZ< zOq*dO1=8M6jrV0nPopfoP#y^!S7XnU$6n70ZWV{7JP;Pv-kQ zPFjWH#uU}A=ZEl*xTv_#^5)vKd_`w~QOo?<;JL@rXHeP7mQBZ%pJgO!bF2{QtePr_ zN@R!$eUX)a_R7#l7Xncx@_9>H&=PE16p(GJt}T$UZ7Q2AaEJsN=Vr&|Joh`4ak|(I z)On?V3fdp!I;t~V?$KeRp`x3`g`NB1GsSCIpl#$S+6&VCKSpfBUZ3h!YW-`^efpc8`Q=n-|qOUK%Quz}` zXf6kufY&-Y|fLmji|6iV^w&@o0~US(&hTilaA;Q@R{xZ@h};HXX}5O&7Cb% z|FgTf@#O#YD4)6dpZofKJdD4`EekhvU4PRfM-E8o1&MwyQFk=J-YE)so6kRmWztoOdDnWDU_|d zbZn~y99YP?%~fYNWi~5XBxt8f#?*Y*`wOwIs_hiHjw+!`*oc!x9`=7UrtD?T}Y2CpZl8j0Q(h z&+rVVbuhB{=y(R4Jueg$x0(X&^beBsv$pF#Yhyvx8FoAaMV~N7x&=idl^ktP1v^4f z{n;}KkLK@#YRZ_fO0QmDa6T=sqK#QwiPTW29wYO&?sl8Mf0=f>#D;4Ncfo%|@^r8$t`c}tp3=kcZ0%7&yqleUk zp$=tch&xP}dbCZrgAQ?X7&&8Y7Dnzb=z?V9R2nYwMUiiFsjx8#<8;#oeLiCWs0bO$ z-(w?El41(wqNQ|4Jk^%?qr{VncD+#n4#>11Hc}g7|9I}K%n;I#)J&gKFejC=RKu=R z$e6|4dFC)S8;i5}`<9$Cw#+WGCtq@aY?lmRG0>FoG7uH#bV0+Gbg?_P3nKSY(fRYd zjm;8hS~m8@q8ppGT*<~RdfnP~u9ErGb`rN2-b<d^2}98FXC8 z12m%(+iZ#17Zs+Hx%bi1w>#2jw|qC<%~w)8&{F&5SR$gJO}YDFQlcCvV?4hxWfd99 z#X}H9M+OHg4ngsC)KEfna<8p>bj*gN2z1fwXR#hD!$@~pYDh|V1wEA; zss$CPsUq`Yjp4T0t14q@{fdPo`9f`~#pB<2=C)9qY8zwQGxI*FP3eN|ii*7p!Aj^? zn`#R%DbT0dRHM-6i^IAA2585tO|?BQR!d!4Vh_gBt`$I-!<)EQn$c7(&EleDRbY?A z$_)0H`zDhxq-oJGEwD#wsIkY-ydg)CF}%U>Z`up?YUs9$g#DRsYhLE0uv%(;G#8cq zcWF*5MqtPVdGgx$D}5~fALAsB@+5tz>d$liKX%tQHqHEx+v`v9KacXU%KruhEav;6 zy?lq-&yXv811|xatr;F6iRXUQN($DHyqG#vxg=UZ!i@+vInlos^6n_C~ zJEpc8j9S4tmQ=!*PSx+3;Gl&QktcPht>{i|#e@%Xdu2vaIVeY>9N@X93_!=Wb%2Rz zp+t$OAqgGT7ri5@O`^G^HK(;v0`V9I=Q>K8f|Kk=1^X^Yd^na-AoRHknOYQBj+NWT zvie0*L%Ko~RNKcwny3zchr&t_DeQ>eKc<)fqdwiHIxX%heN1U+3<}^W2et98+DZ?M zMEE3eJXMg<%5rwvVu!p`LP(^~JdjWi5^1?F<82Z{=MA626mBP35 zR-vYes3~|nv!vial$<`u3xySZjijOVwCx`Jy9!)d1jv;YuGcf+0uIjLn%Lo@3kYj{ z5VxuTMz3{5_>EaYKJ!@#`C_F>wa}gDbz+2bMKU;Wx|57wgJcmCs-fb zzp6x1TK}8Y{TR)zJ$fq{#ag>$5*iB|_&D8%;bGxS(54D#73!iYxl?$g--8wSVy7C9 z!xOip4RmXB>e8wT*-Ck- zZU%q@jvDU`rO1|^o)0w!H{N^SS#lLESPc?aUsA@X{czQ{C=B*^=!Ilu@xF!XLNf84OZ6nLafy>$x}@I)H;x(+_SM1U;a93rw}2~| z_JBl55y!1c_n$C$oHGfn`&u-@zi~gVL6(rFiYPISm*~m23T&EwU)ITV`Lp6 zg~}@EC0v|^>9(!(PZGK9SN$&3o<(@p>(j20B2$f{tWY6{IjhYrqh_R#NHAB30lUpR z#rwXP4c8%ZJ*Xg*tf0SbMS}VtE?=`(l;{Qhvd1N;yQ)XX(PSHJ)~Q*-qEG@xC)R zITEMX?$28yD8!??e~Ht3kzc6jgp*fRmxYtDQ1E$n8Z|S9%c2)4Ubhh|T=)`u`LoKG z*j`c{xfT*^PI)SeNmYSYQN@+80=@nM2{jAwA9E1gWd33_dwOr0J$)FOJ-zGc1p4hA zq_5{h{tL*%O5SJgxlUxm2w4s6TZn8(w>a`D5{{`-wMoPGCLCJ{#^(z%yWbh%EXeGN zL{olIo5SoR{ea~~T2N#vfyIbXiCE>DeMMt-mqO_DjMTu*s$9%8pIC@-(@u={xSHvM zLRyLncr19^cC0m9mAe_g@v+aUp)ZbJvRiCczWYkWyD&1C2$ng1O0i{@9kTQw zc1KAMyu9YDMgClUk-5+YC*`a`Rg;5{8kwq-^hH&wiW8ExWoHu*x5d%4T`J-#|9Nu% z_)C2>|Bp$K2IDXf)75_1OVS`u(ub%9HOK#By}47!{{b%HPyQc|@Ui-Tl+ZyXcW~>w zb2Gwbo(n3NkHC|rt+xCgzi49ss7&{f`EKVKbIb53RV+xfa0gpQACRUGvd_y5y+iVr z)!+QU{nXMbL&=KOG_%;0Q2|A&1>$vtQE5$}&3*MI&+W+Z<8ccmE}xDlJq2h%ARLHkDNxMT>8 zO~*o#&oRy!X{4noL?GHwy=2brMiq>eKH|1CX&oyPJ-sXrYSiN@^L}Al$4hPEn$M^@ z@vD1G9PPXdPh82ZCT6}?n7Q#bk%w_f>Oe$?0ujrZVx$~1{zS2jRAII>hctjDAa3#~ zYb~N$v$=>KOR~<=fCPj#g0LouJL;+OvMuybPpl)mnG_NlA5%hOs()&@w?KZRTSHH5 zq(~8I+FV65#brbrB_6n;N`;!suu6rWD^Z~!m$Y^7%_i>85qaMkDp9y=_@xso?zd;! zelrS0(@asw_M}}%{|2#FeG#oPKJPsi9FoCWGH@m0<$>vpcFM>XLV9-_i6K1=aEa||#)>cGIwyR7F zHctf*J2LWE%y8m8h_GXuqLBewOdE^*%$9iA%(Df!@LbS8Qc^s5^t2b4x|&KwYFB2g z+<`l7{cev-8+Y@_8)?oNdEjnnQ`3rOs#DvoG&Rc5eu91<#@W_EP26vJKH3g4y8RT- z%r&plVPiWp?{?U1&Nysz1BQ8KR(Ll12Mv?tD6!yq^rT|^{d{!&Uz*%R;e!`|pI85V zcVpem|FF5U{iOeUjE`OaC+VP?%8xg%Qupau+dV*)-NA$<|GV^gq*fv97CB)gtfc;g zPT}vw$@E%1m}H`YgP}0Ycp~7Kj=J2V><@*=d70a&om7Bt7l37_Msv`=jH!i-z>y`?(96(e}9yZ zb^jMAV6g~LNeiCn2OBMEA;v$9gDw$2PskfJa(A~wji94JMqdD=R{XIrHHQbsofO&UbMd~kOl z({Y9TOq67NLJ0g^GEMq6HwAB5D%XNjis-_Yuq`(0NC7JPrE;n1jHlL4(%kVhw{5jB za?!_jyKQQi5R+3+q|zxST{D^vY&z&-_ST90XIrjE@yf-#SBh!bZc0+W(q1xjSw zA`od?+r*_)tdjXoO~GDViW^(;p3OBW3K&VoPdG6KU%L zH+&J$vSfWWswh>58kAC;+inS4uS$Ex9?OygYCTq3t||j|(4l=c1*^Fmixm8PCNuGM zV8kTzMQPA>+#DOl6K$(lj8$pgi5l;<$VDKYdk@E8cG^&$wrqJeXEGQ>^`%GoCkiO` zW1miGs9{gB9GUZ`cr`+^7MBT{rhl7SK?wna4%JzC(zdDK<= zf*i@vA1}OqBD&B}u`k@u?mRjuo_L#Ig0uB>CmLg!i$HvC7b#1x^~}AhAB-4yY+MO3 zjOO#d-|%>Ph(+}7dps3@@I?^b0zBV>0YbwAiqmir|E6@cw-*wpf5VMBe~o3Q9Q)74*4DP^|Gm-NdD8zr#-~L8 zYf`|X3Sj;H*&1Ni{pdng4j=f?G5UUgfUigGde(Md!`G8Gqy>yx@ICk2c-&lyWW?b6 zxP|)R?KXzaZJ@LGW*bv|VAgOy^;GMP@Q?<*6wjkW8p91E=};szB)-ltH|1CEy(}y| zR{!e{7)CEk0l=Z#q*B|jl#E2;S=>@Q01y(TZlz@ET-GDk2s+HLp_=ZHoynoB`yds) zEwdl_voI;{>G5$i;Nqkj=7#6Cp;Wwi| zwwj^WC|B7b=dljB1=2BY`=+{`SQPO*A-lfn(h4b-T?Ou?>-NwUSN7+Ptvh_!5#7e~E-W@ls!T2k|WH zqjMRC>&ms4c;uz>DpH(2SI_#hnDz6PatVKJ5tBmA_@Mm2T(<@JOn4eX4Zc{#1d@w1 zXt2;t&!F}{wIrmS|7kMK!-tLi`oF5w|JX6l|DBEX&8PGKF+TS5zeop_96<{2Rq+VP zeAnIbnWqFsbYW?agH6xw>5F?;xvY62CdI>`Sk)$p7Gt|hW73-8JuLf#n_a2PKR>a( z@1YMg81ihcw=J2uVWc|!%QSmookFS%$3_wZ$iPHLnqgXSWrB@)zTRdqm61Y$COr8) zOjrwEGA2B_+l0+4zMOFSdzdh_D^57BHsO6Wrtz<`%C<@0b1#c%lnl!hfA;S@QQEZ> z;G)fOtzB`BbHX%ehBuEpLnCWZafZXHtN7QOp;}CjLvDA;JOZs%Iw*NIt5MK#y$-$w;Vkb=ufb#CHHgV{_B-x( z@Jtx$K62p-yt|XOd+>_c(XbD-Acji?F(|Dr&r{W*k`AbfJa&DS3aP_VbrK&HPlZB(Y|asvuO+F*-)J8a67dG^j(uz9cQJHG4g_yF7R#T?lF7&f(1 z{y&P&!`^Lg6y84yV1E6lZIk~un@{mSkMfzp{|gjw7xr&-a!>C6Q40#dq(H}?4S%44 zp5e?FSuMv*xoRbB1EEl1<>8D5$fQV@N6dLDT!p@g*X#Gm#tAxY5#}qSV!9%kc1r@%xfP zzLeOgd?jIxF%wTpAzdl`eH=^d``C};DjE!NSo2chl zhIShpO#b{{1(c%X4L}8SxmN``%E)P~hZyv^#c{1fA~X{E8a$NTeER_nSl9u7_q~4Jr}FyacptX$SKdHqhI)XSv3CKbZ1}xo1>Y4so1VlC8W`!W%^b z;HK&*#Rm;$V?SHqmT$^#{M3+s#8s|g;^nIns-zp4q3h7zF3VO> z^*%R)ebS|pbZpeE#t%|Y*TYecQ>B(p2}`i8n2o#AAxAKGDD$NHur$nFJL^+_z6M>n z=FJr}IjdUt`JgWB1_jZjymQxu0u>5or#Bi?atkoEuVpD4#pm}st&7?37TfF#_Z<0;< zsX!#4SCF#q*Q+X*@86-9!qewVeJt@mX*h_oJiUFeG_dpHe|Of+`cK=t>reh4kMfz} z|Dn*q0?|M6t+}y3>j!Rq;Ipvb0a$O^Zh{fM!LJX(Rr>VUd3{fr}fZ1`C;F6 z-?u@!I>oCO_oiba16t5q=n#f1--QQ1p!3?X{QDg*qsI+@w{3pV;E&&DsekzE6!(Be7!dhDJw!E0s1w`Gvk4&#nI@2|;4uW64i=5<#)=oD`R zT+)$5fxHTnr_;$04@=t_vUBka$;scw1ot&4R6lZ~$}uGL^@n&EebB|J5Bn^Woe0F7 zk*2c{&{`&_a>r01WgVN5!ymaT2x(nQ5oE+g%bScy{$a=_6sAV4F?oBn37%>f!bAB@ zH5e75ptWf~=dXj?KJ2Mh8$_2uYev92cZ2D;A1=NSN$nqV!I%lOFHFY|Dbc7VLgQ!Q zHj=ljmuy2@iT?-(rBU06vnT4|VaIcRzALydB^m15=FM*|a23!02T%V#@BH7~-P$$t zzi(_l<$r#ZPx<-3Sk&*lSYJ4-&|R$ugx_n|*LlK^trmXIJouw|*anfn-D&e&3m^tO zgW%wUHD53H2q{3W@sAspWH7?oj~6~1@-Nr1_M^z#XLI&(UH@DO&pIh229Z}zcIIES z%k{>@;#pb*O5h|^gBOCk+U~Gso)3eW!Az&9BiuYNln5-Tg`pJC6~X8N($bA}nqQjk zkSD=#8M^sRSL^P%kH$W|V7T`K(`?$TPR9HU+l^5@rHp}#1@xX17TBHmqxqukZf#L( z^W5AUbRH9pEYQV`XNX3IQ=k?G_)()XG8v!%#5((Aa{`>Ll6HA$q|1}#7!IEY!Z|W0 zq-tdjE%WAP>;fs1e}{&In8>58I1CBs&K5xj_|cTrEB(NA)W94>P$q6r|3>wzERC%; z)=-b@8vX9$=j@jp>Kc&O?hbK`%uH;VN?wwvou^50{8 zO65O=0v3<^kuO(|_mMF_mu*yRxOk&VJhz82KmMqNQXb}Z^O>J?fXbd}iA9q3Q^)l` zw`CG2Srel3o^cHAS=^Ed$>`yTUp2Ld7cH5&iXKi{_CC4ph}ky`b7+Ump&hr=X38vd z1~bAU$xV0vDV6#0uF?+x3oNgvp&o(B^($>?)@eCGIo38~g47 zsAN0sg)q6(zSC>#w%1Crqv*seeMKDdgTwhuMKMV4cie+*3UVq$Yj>2`w@zECiQXt- zU2=ic%}V0OoLw#SQao^769Cg04XvDq@BQa3-2304nsBq_Ewm_?wnaJRlDKNKMQ2z` z2U#gG6g&9A*1;!R2Sn0Z2Yp)y*R~Db=Lw+HLq5WU(cOm%S(5e-+;Kg|0# zoL-(uW!jiSeF@*<3Le1%9?s(32d}EoJg}#o7FKG7t9OgQQO-E9j_Rh(%#KF zI>clOYb+_L*;cQsd@jN$@O}nEuChooS>iK-5eFdaU0){mehJ-15nQQan zFbK2D`8*hu(2{*tnBwkusDk%(@E`Kzc$2m=9`oSYXNiv&pEKjr07YJKFDuX*Q|d@s zQ^BCi%67{{sX>A^F!<{)r490q*tjPZMp&4f`-kE7IhC6fxWUW9`kUc3WL^|%nay_L zea zbt{4X@tb1cRn^7B8NQSPu+(p=%f z0{Bq0tM4oMw8>&)yrR<@VCnPR?JqBl++sC%CL({yMeFxA6=_`BS8}7zno3nZCi?vT zPdPj5jQBhJ8&R!G(QE}nQ@MIlh#a5s=6il7&|?ywQ2zcW9+Q9YNa%h4g}`$ zUG*bs)*|wxe8-fOZy{--|Azr|7Lj_2IJMUq<{M`HsE>we>*!Hh5BFH8&CG% z$M{(7zZMEu%m!TOV6Gk5p6vJ1=hXnFSmT|!!_Q%3?CM9%le^DJ)=j=a`^V&IvOqmc z;Z3OK8c}p5y7QAcqQNF*;fN4$+r<*fu?$j02jU>4BeRVa;oWkbCjV zE35P4oC=q-UoreKl{A8jjY3El5Bu|CW^Jikh(5Ga?rL6ytExjOlGkU?Brj_%@O@Uk zc?KmGHTp{EV@L5;(|*4AEohP)vMd1_2-Tg*?6qZCjrdE^Rc?jx!HCHyn5WUqnnheH z%~NfmnT1O1&Yom3htZ~erD?<}D}AbJ8a4~X{tPc>dRgjK%HcG4mb^z>mU!E*OfKS; zxs}}SK^4q6SLmDTF67WY+)kkARpxVBub`VkVE7}5#TNPRIy}pg-es6Sln3Cv`ftsR zEmQtmU*CF?{~qIGmH!G9u$c5`ynY8CK*$}lfj)qnEs_f1;4r-d-2_X=O?>nY9HWRR z(hTBN8W|F4FN}~pmLDAVsdVfuZ$zSVY50OIdd!}PT*FXVH#p*d~?Y*ylIargHj_#*(o zPgr@2E00;RN%p3o4o&v{Ou3-R!%zegR9KM?uE@)hpOq8D$f6)#{@k*nvUtp1sX;J; z0@S2@pD;c`I=`s7gxV%VvlouZJaojC9*u_afhF{_4P}coa=wX$N)EXqkCDRI#%sR9CRgi77&e(p{rGd6p6-qr6m;RKM@1>~{Kai$#Y}8AGr=x94ro;*P#)DQl(kJow>F+m{P@g_u@+0N{q?fHV8&RC6Nq^eQqa<#O`wuh5Jo$gOkpE?C zcjqbo`%yk$Ijw0l>N|(;-@kRjxIamvIM0@rzWT~Jx(d^)D7;=;`jCZA_g_JrhofW? zUSw-goQLUo&o1%l*D{0S(sjh zX~TIpjh)+MnyRolQJh8n&z(r{je;RNx;X7WFo6W&A_#B{0C z>?Pw#GzwEW2|g!=z_jmt7hDB=J(c162_ib1P9{m3!!TLsOoB8Rhk2MPE&0^W;g{xmZtbgVNX)=xbPCiUSz;cSH?uC;)+gn;%b-w=EqZRu4YbQwuK^%P!IZ-;(xF4pl z(8C}N`_5T_k_fCoFE-cfpB1TzWU1P#91DUM!51zOWkhwEXamSlXxx2^ci)L} zr=NrwBgQ;Paqr`HbCOiqn1KVZG;nq>R?^E>d&97IxfC%de|Cu8>drx!JHIkWYo*h# z?Jq6$MnRT2hX@XJ;Dk4M822-!&*d5iy0+r{yyQ4QYs5u zP~>nn4w=5f)ah~v*BC(EhU1>Yb9iZzCRY*cI7D*hjF5Fj@t`j0O}yT9k{B0MV!sb$ zl!jS`<00Ce^MrK_)a`(Q(dqu|)cBNZV$NMgpzLf*rpRdIep_1l#d#lOm(JYJFU~tS z!s75IpVO`#_99TD!R8(Zm*M=rmA99EaaOB*oCj`K_V&^*&Ow??Cklsx1%N$`d`Ox1 zj|#W_X}Phs(NGWXaesxk^M*;1!FJLaZg?{pMZG9js4;8U@biulcfg6h4n*D$)2t5L z6`q2@8Q?+Aiu@{y2LRD#W0>cYRq+U6Qu>>Wf+%*bg3&a@u41PPUAzmk=_v0OU?F&d zKD-^|!@Bcn8m6}bB!mbF6Y(Q?GNNazA*yA6ddCco3^UK$3u4mUgVx-`wMb3TpnhU@gOd8W^k9nEJ<%1oTVNs}aZ zMoEtijx%NQ!0jZ=P{RF#3Ij)RFJuxG+)gCliR{O;DnKWHcjd9H;1SSP7j5>U zzGxOWX$UgoRmjfZOgQNb@KdsW(I>!%xy=kOpJm*F6poCuF!W zPqXlRI$}EjU=Jp6B(mQJX>y(I!{b|Q3(_jAM+CA_7Ut6lCwoGPxVqdfEvY+u*3Aa) zQpt2M#NoS)>be~L4aX09LnoV_ttxnr;$fHqLgBwjkcKf_Ht|$vw-|Pt%5lcyaD2ut z<;o^p7W-+X>zsj*!0Qv!dm4*)NNLUDv z7@4GjUG6!yk?T$?$ikJb!kh|Rzy?bfUhC4sD$Jl7A6Q#+4w1M7r8+_GtigqeLE}!M zdF%mtVmx4N4R&y$72AU)O6sn^SkYHsa@1YKn!*3xG30RdmuQAx7ZB5cY8Kf#jOfn8yf=hbm!tk3TvwxbASiEb z%{gJ($WbzgdO9^m{W^+3drr;gIxXm?rfe?;*HPM^4_E??v`x(;`%U6e)nRv(DBroPC77<&E`bT?`h7 z*Q>Y_qdpDzCcGA-t@oA+|w^qz!{E*u-#z{Zq0w~DJ{F0P8{pkEWL|!#i zTZ#>i3&;dV*xAG6n$#WPP1xg?OsVsPm*J4S9&(vS^a?5tv*^*Qe;cfIXnq-An8aVW8y_2`-0}*OQgZ}|l0uWRw!mUGF z704>W-!f~T=)~<`OtT#2E!cd(Zf6e5ht87;-0{ycKv0|u8zM1q+t9DMZIO3!bcO~n zF*4qeqqsMk_JMT5G=(#wF!cMOIHovl!R2ZYCu!I(nfotGOCOm~z;*_nu+EPH{gX6G z(kQ?EY56PuXjME~fvtiEvoj9z-VorT8KT`fn1Y@>7YdXl1*oDv`wO@481Q>GN_v-k zp%_VlktjJA_Eu)#{7TRyowCLQFgcb{BZ~M;Zxi*yfXUuEe02pn;Tyrg0h&*fUYLQT z-f%kSU~JIFHg&3XHa)foXJIcH+jc==%S0LOj7iw9tkkS?wA2+gyNIH5@sp8_w_F>9 zIh=O-Nx)HvXMqnFemXHpBxFB0-=Z3HA7oY!&52;_21OAzkItRt|C?HiUdm3Et@SN9 z&v0k#IW-s`HFW2oIu>Ub96XMYk_8`*lN^aR7>$zajGr0YdMK5Uc~V%dFMPPm1M(}$ zmK4f2o*?N5($K3Bm0(_(vIn#aD5uDA(g#Hmr~gqh7yw;BqQ9WZ8I>lZFo;pV`48vo zuRjKexV^8x=37Arrnnb^(P$PwM2P0m{VWj?$RDqiOfGz6De=q6b>-V^lnmevw+BpV z`CohwtnlM$PeA~I0e>}ue*X|Hqsz4)R@v)ef7OK{U_-ToJX~IBaZ~{SEV3Ny)V~r-Z04LQCe>pPpZ#J37D@W+iLUas+lsMVciIPggU_w7IA8LzyOp=rbK4U;{m<~&0oK^*2Q`%AVF zdZQ%6{>?rmvD64|2V3`RN}u-osStdZmJS6$fR6Mmbb>641~F=xunFEfuyb(epS)M}8z3mUn%r&(m{F$u9QK8jNiwC;V7_44)C9{IZVgEann7Kx zhdf4+um|LgcdpXHqP)NtyCqc8b$)Ty`N%%k{BXAdr~Jh(d!fl+ zJd6fInrqpMZ;sx*c3*Yjg$@2&`MBT-3VLD?*A=%VV${o6PggLB2`wt+lPbJJ$GAJ!6IMgz69 z;$07uk#M_rM$vhgM`K{I=xg(i>%>v-zs$MvN|&o4S+C&n&tJof{V++{{VZUfwbG+s zb`B;!x;(|xahOIur_)ev0@PF(u})xso?5Ti!OKM;kGRv3=riFc$M+F zF3dNXFiUvD*k~}5EE!$#nM_Auod>#Nnl;uE^`lba;#NsL#$d|4DFc9MHDj9MK9WC3 z=iW5Sld;7l2htwA+I`EevL46Mavr1u(8OJaw{@q_`D2pSxki=sRF?$y&${II|6J+f zuIFA?ay6t+HW@I

EAk@IDUn0OLd`o+|@K{HPDU_YiM_G*Sf^Fytkf>cj&pN?tsK z4pkkkm@rxR4Crs6ZJ*0v>g7jTOEJ6=Bw)tiTL}a|sL$jnl`%&ITICcBw3->4;?bl# zh5#fDC!?Sz?q;fUCCV=^#8FtHAm?hOlAnLe&-_q@`^6r7(GQby24OCCc-Tj>$iP@F zCg_|@$KxQqb;1~2Z!+P{%x;WMHv$%>aW2W&BoBKNjFIJO>`P}=g5M}?i19D^LvoG6 zk>EOwGU&z45GL^paWDPXAAjoZ>64JmQfS7UEOKRhL9lQ!J+7ctT#4Q}hs*)&Iw)UdC!7hPw|9A!|j3c>q|1#b4i_R~uy5vrU)B4Zl5fbHW| za58T=K3~#)lm(MX7^GZZC|wDrvF4r&nmpjpQW*_`ZWby`f^pt6U2^0w@o+L2KZ?1E z5sWwq*fm$LA#zl*7VdlnxDlKpYuqEOqw+_K|0ssaJjfVx;y*UFnr8g>_WJr${P&}L zz7pD02w4)YN-{EgX~`NVbZ~C4i~FX5LovFf_n3euC#-RLHgOTd@)fwHM?Gf>8q1|6-OY=;NaC7k zKJj(V+Zi&oIW6R!$b9Ak29W%bJHFJ25cqbD1M|73Q+1 zMog?-WJ$cDTP4`y>^U`V>Z#QorUd@6S$8(-&SueV3TUpzfq5U^%mRq50{VIzV8OFB z{8aVL^*i{4S|b*J|CVe=n{ z;b@dNACq*{|NGjo`43Pf;uMDYctp;UMUx%_ZIwNMxA<)aHF1WQC40YM3^}3wlPxWs zggH;Xpgh)sRB%q|vw!p0**S4zo!QMz7RbKcuW=X!uR$zNc+SOLH2BT##j z7RyPKlHavMZlR_2h6gWJ>8Sp-fJb?8K-)Hvxv#7uEaX= zRe~%M0(2XLdKcv3>Z@oRp?Rdaz78+WZn*j`1c#O=9>6QlpNpa1G3{o+#}mCUR9Q#l zFGAc7NcRFxPDSi5=Uc&82Vu^7K}$6oF_5#9`UTWE3-!WynxnNO%ac@)rwDvHGzXZ3 z;iWQyRq_+P>9!dc9ma+ zD}fVU!Ns61!<0cK^D&L`ko7xP`Y7}DQ5<}f?(XXEBgqlsDulElUW~ys!EPOjF&+P& zC$;mptPurQiheSL*XwFWd@n7h*(PUB1GZ$C%B{wMBABex1Wx|gu|O7$CqToIKy%A^xhA^fO> z@T8~*VuWCSnj|1t8S>XINn_m=mgXf^uclH0H(nE5P@Em+g(wn&+CxMI7Pr2W6M3ye^A`~!ZXhK%K7lpS(97==ZJ zg#*l6#=3_iwyT5KoyM1Oavc|DAR-*3lI)fxNSg({iQ!*#Io{U2j%qw;xc_%=6v1EA zJ^IpgwLWG*@1s{ET%NCEr$0@VvkmbWorB+;(mgr0bt`mFE{pUY>y%wJKrkibpe0UC z3dxj?l0^i4Oj4)DKL^}K3FN7*0@?<n*u{%7O9zpLy)e208zT@xc++E1TthxkT{K|ZXsfyD zybW$gNzixRCyDb4`mY%Ok6JjMx^K}4i^T#gN<;cY=D_6@MEf2`wC*p4i1-$7pbgyU z%dGTMqB(S%p28vquvT{(jRy9i2O@w_Ci1*tiWM}4Q({Ai8cmsdH+YM1?O=8r=fMrL z!Jvpg3??DCdh=iyaCM9aOqJbmTs84%5XT9RMVEI9mUd1}j<_#FPT=yvqkq`pg<=AWYF^%zm4@TS zJc}Q0g$avS%V49j_}zYa;H!ng1VVo+5)cF8O>&Ym!I^OX ze6fv>8}YsW=D)8ytxoIoy?^3->onJ$ubt-l#uon{E#Cwf(%c2aR%J`bekBf}4Q^)_ zaEDmCUXb=>cwR2J6EhuU+QFaY(P#uF03)!pl#tlYQf>zNz3)6zuZKX^cu3pt zhO*rxnuH@r3}9)uHeq)swc{nnA>_rq}*w~TwB`% zj#4WUuu2A;Y+Y#3$-@+o^Y;%?oPXnjo5DW?C9|8OK+CegV*@6Er{7AwxDv~?wR}9` z+p1=qigxV^H(E)@zd}Zuqjx8I4(6pLmR1G>ea@r7vXbIT^g z#FWf%qA5XjsVX@!x2H^8$MN9hUc3(aS*e~?%znwKM#jBHX=u-sJv05THrKkNO=A%U zVSWCXxdoy#!#+!+1U{CyS~YQY2a`#IpYL#D*O)S6?SI+t|5^Lb+9VAjf%@uy`p^C& zn*Imc{%s8!qst~A!Sy2$s3w96?4G=H`V?QD>0c3^>XRmo60&PPGUL z8}`Sa{CDN;!L}Z2Y7VPk_0@*#J%|!aJ0q^25II(@N;4DutMp*ijb~)N>2+S2_a#7 zN>%W5<0&LzR5TJ0n=pz7!`wj?yAn45iCB9{eBbr?WogMBjl^vTuHock4Q@ix=`K&F zh)qTzEJlKGNz0ZsQNl-erF%e|If%y z{ZM1f_W#>l-)^p(`JXp;cb@$J9^=FHap(*z@``K9j-@5nR-ePkM7A3|SGZX=Lo`Setcqk=rt`qab#A0{$?|YQd2{ugN?8Jj3<@ob;X(+M&?7R{kH`Z2 zX&Ut|g{G$NTujFkn8=T6J&m81zmiB;VYwTBZ5SHFMl<6Cy$s(j>qJK*=my=gdRQ z6V8*&xl61Fkd&>I)1BgvObdt|vD~=#yWdUYwn|qtac5MljCd2XUCdNinn^BELN1b0 zrH*1UVVY0XQ538Eu{cDh;kRP#cv11}Kqrt4&K@+SQ9cf*@`joDRgU#_(H6%_pUxLo zt!N)d`A0=F*Y9C2M8jiIe+Qm?zbJ%>S?z$LkWilm8O%wn{&d`8t~bt6PG7X3_F76} zOp5BCVtUH#b?n7q>yn*(eCx-oCpJFbN*sEQTz4?AIybMPo`anb-ACJBue#D-X) z6+#;K6!d;NrafOQGRuBZNa7_#-X$+%%Lh;aF?tmj+$uUi`@5jFhC?uszTp7rn}v*C zHoj=ilMc%?JDpXome`%CWfwcKOv6+rE&Wxv{5XbT1*0`0H`)@ zl>*?9yS*~!3c%bVMY@fJIs zv-SqFw}3@LFYiwM!hH9>-w}VeR|mWA+e@rK(?TDILk)(#*xs$`!RU9yueM~x(xC!~ zV6X?obMVfgJ!UuxAjWPp{WhW2kXwI{jmJ^Dpnxtw_dw0l%S@T!)PSnLtr9h8NXhih z#uoqx{JsWv$hdd`K%%+kP<&`v+#v^9Lqk?~{sfNQUFBHD_6}*ap_B`&G6C9FGVt@a z|MWhCKl-WY*V<9~93GUhnwpNX#2|ENZh#{sg_uCb+=mPqXpO^49FyFRD5Mnc@+!V0 z90u&K=ozYDW|VRcuGcbWxpQWEJ@QL3OkUUWIt>|Kzs7C_h)6WPA}UfNB}q}=V6{FX z7_&1hv&qT-b(fxZ;7;!DO!5O4&=`ervA2fjpwV@&vfPb6X)hs^hBnFq8Vd_3_uVdwvaHB3U(#UMt2#jY{nh86Uc~lyaZqaN6XFJd@vI)CR~q z%}3U$;~zScp02AUrunF67ZCcmjF!|g0D~tNep&}==>aQ^XkE@G>_;^%NGVj|yMsuc zpr)HGhr759wpfMTy$0hQO4*=uYwIA>80>``UI>D%_q(GKMJn`fJC(HAG5D=Q82cmB#C{Kg*f)#=50b>XC@nB} zTeMzC0Smo1oIuP*lni9p#;hvF21$v&b?J88F9s?I9!A zM8R-a4S-=d95>`iHkp!xj&JP4Em8vKkG|Zc7fS^73ZJ4{!w9t4&WK!Zx+$dG>0*Wo z!oX?y*XW?4N%A*2gHw=IGfm{)OD^y}fiM4}1z+O2u4=Ig%LHL%hc|yQs;!-s>ef2M z;8=*T@(yt2)n=2;_QX>{p)^1#)1l@yTPi8dfD_cGVFJ{A(KN0`zZ;(d2GpHOB#(rKVgC&rq5vOy&rLKW%I)VEk z7g)8>c(yJ+`K)VH%vY!~DM!{Firx6kEh=cL0ZSP>RJ6DyaWMWbL{@m2l@h`#AUT)O zM>E{|Jh}j+PBbV-GdDQ7;nx$-GE(SICZn0VfuU~Q6iSNf5nP04=%qUkaUZ2*xmPv% z)@^N2cMR{AwHu?8MWUD$r5uAcV|`ucSzpIo>+3q-`Z~0hJ)^AYsRF@N>vfS4dSJB5 zpF*}_OgGz>>%bxKxIdPqF8(zak?n^oP6|Bek!5B+M+bvgz?=BwN_LG z;M1a1SE&1sm;#mXGYYniWh+ZWAwEhu;mFQ_U(Tk57!%MIyrp!N(daUo70TDm%Ro)E zRcAesMtPoHf?_vG3t+#qd$54~cR!9R!_%5G$+1hp9PS&F=Q~b)2ZY$GHtvyzCTL~m zW3j7eGp_=D(=aL=1qpE~(AA#GD3|$3_EFlE>d9AA>532^2Ij&>RkT)!rx*q|J5xp> zplDd7VpheTB4S`LW~2L`Pq6`_+Y+m*5M;w3E_558nl@g0XQ3+dC;t`pB9@AAoj}NP%BP;xo za+5`eD)Brj^;6z7C}smo=D8%}c~mMdjLI=*9jNv(r2%x_dtyWMAd6C`fM{zD+_#Eu#U6>ibsU`{F%xjO;NgOisoP0vUAukXOL3M*2xGiy zjNJ7Y5a;9M6!l=``tZaahz4CJ2*wh;5X9N^bOiT+Bo^ypE1+^G)zgVu*Oul9tajG( zNFjgCimNVsR+uUWXoY;3WChyppzvfIjl|J2#erc$+W#5*SR z`B5ns>Z+4cj>C}Dp)8?*zzWl!yTM;;!78h2OkP_N=-{9O&vT>rAWTi<#HqvM5GN8} zBsnZ3g%1Y-5vTNu5@ul6eW!MGvH9Npdkg>WbUN@qU3FJ^*BR83b6zu~uFO;$T;x0> z^ij1pUmieTB5)QRNIOdE8B%pIyIE2oD;#MdEhtEbR1zi?LKGnW-U}@wK*+x&6&`7K zEb|@OHi|MD033ZJhtXhW9R(aLH7UetR>F-M>dq!`!C|TtiUwC;U|lo=;fJw0p=B=+ zaDG_NA?5$`=5YVni^Cgq`muiV{eLzd+OjJ~)yFH3B5|I}vt8{6eR+A=Nhf3GEm0Gy{uF%tC>cZO+j4g`os3sSkq=B^ z$#~c)&e3PElVsg=GVWf~m$g@vvyt3A%kp-4F59P3Jd{6;qEk6K$VOSdOCRH>f%V7g z<44`d>P4sf{OI8D0wwdpwvB$*wyBDNFCxq1&T!Z*e*4?jzy1B!eE*@{ z-e;6xetWS6T~6BG{I|`2+kCn=%7)o4m;Y0!#mlsBF^i4U*lbWN)lv}IxS7kgtQ#j6 zk68uGE%|r$7=>dDEK(>+g2ZX;rr@mAQ_+E}z!of-QoJraQ0x-~-T|79)mRYYiVhX! zM66W6is+6!?177fblLx4x{wU+_yu@d^^M5V*GfT9AluJ}c{ZJ>Rv`;MFxfe z)P=#nmD!TQyY?wAZ;tfX)c3YyB&ZlJZIgh8Wl@<9s)HmV#{-T8e|0izl_pkc!-72e zR~?A}t3f1Rc7~2V3iHzr23V~aR=Mh+Ngg#CS`%YUGMWrWj_Y{=jxroL?Yh4&0&F_P z5-FDm=ku+eG|HLgUEkg)0eEgmu!c!_K0U?#!Yo=y(^L*E?s6r3O^dw2HB|+%%N;?m zgV6{nti9!@;;CCpRR;v4)kLE8X;hrAOw!31eNgLAAHXm{4qUsME>6wy0VJR*Rb^RN2`=qfSSzs9N|l=w-=kS^`>@a*O8sae>J`RK znFbKOBT$zM!P2~yK@+?X6kZy~kzC8@M0jbd* zn?D5AavR}H!5AgR>$78I6ryjGRzrEfMu!kRB_Ol%iMx>N{@V?sSpQ~s7y|i z5k^5iG3!?^U34{>NHj@hc#{{RVv zlIlH|ZvZPR@AfB1OTN|FfX47;q4~pJ_`RRHt`#4X(TE5q_1Enl|Ly4c^KaJ)%)kF{ zZf$LBdH4SZ8(a79?*F&(Yq#4geaQ%FaF!q= zYL?sAF(vb~eRE3}4)5;kY1yTFNS8wSa_smnUog6Sv(QNWmSvyRYEscKl8zC86wIWh zA=M7l+5)jQo$yy0-`&zjoJ+b#oJK^K24v|ZpcV6kDrOXh4XpS`>Q5FVaah$gt0mqX z9-q*;+(KZ}z#26(*gP67h9=9ndwhJT8{X3Qq;V3*BY6oo-Nu9lmR%p3*dkY|PLS%< z`gkn3n#LEi@hPw|p@G+uJ1h2#3TW61;tVBnTyJt_?yLZSahT<^o(P>jE93?I&b(_0 zkTzNZy?ifKeJy*6zF&bUzw%cc$s# z(~M5PXi!e05eLztFq9(#>0mQg^i2iw(Q@3;k=k2=_#;(&k2rpuexX?-aWSm8%#nS< z2&3q2?p}uckz=N3MWJp-pJr&^C;_3gQl871ffk_*{@Ue<#4rr#-5$7eftjEz;lPgd zwHnsp%F5w|%xA<1gl0(=>NF&e4?>Y=St%N628=PFPbr$cg_o|1lE!oYu~4eCv7z}; zMJ}h^&2tsvJ+2OH&;NYQv11n^q}@B9+5~;i5_Mm!dY@=yzh?t=@0nG94w_Ot9MvhM zUugbLg6!B2mbsl8fHEw533Qe><$6*YhYZx?I!$3&*D^>*H(Q&J9(4^ARq2mxPq7u$-JWxT!yRXSOazwbJ zO9D&?Xh|2Rdlxk2T~?Dftbq0qA{&C)E4uL&VO9iM(<#2SQkZv@w!EwKuXEN9EvLQb=jXRzQujqIWBc0PsYU?Z8^idP>?W zHmWXGD22LaL>Z8aEQ2`&)YH282H-8bhRmIk$XR>OuTU@ot7H2l6H4Wpi z=BjD_-NtH~g%Zi-Fv{Z*1{FVB5sD;S^*vE-P%w-_B*QezK_~)Ch$}qwX}%Y@sANf^ zqo*Ydr3nDb2#c%}DO!Udu*h04Tn1n<@mSO(mZe)9V z*~nnq=?mflgxG#`pP(e&L_2Pwrg~awn{ae+U+XEWmb)La-w!ZgL!5#L&J*qY+DDoo z*s7sEZL@NtgW+s-)(K*GXj&NPuqM1}d)Ij8+p1c@^d_iw4{vj)VHmQVl(J$=W;pR_ zn?f2G&~{HJ!#s*5TI@I|sR2GArZXmnQH*9}jxee@>`2pvVF@FK8yfc1er!RH5$n@p zfK!ByvnYt5*Br#VoM^ALvIjkXK9n=j6s^ChbA4v3LnE>6`*0{b zCPs73#dCy|0qT4rnOG_li`q<^J0b;wTUfo8s7-1l^xJmIvE?>^Ja;J5&TB12BF z?Q`o|;k z#+JSQEm;4X5AXT--|g+qJNw_Q{8$%?!ro_3fva7fI$fhKSlwCauCK3%b@7as_&EBM zjHhEm(&+F&7Rf)+4*v?wg^ZwiCCm-G%{{8LY@yUm$ub%zy56_QY z9GxhK3tjOqe3`)V&nR}f*K)<;CNRSjyh3W?c8}@ZN3*5{K^U)ag*S zw5N~nOJ4Q#!D{!kV@XeVqVM&4?gYEb&WO3O(3G1{R*-eGj&idH*Jm6GhjOz;+NAY` zf$)yYY%&3vn*!j$4fZsb(MP6wU{4^rG_C7!dCjkhl&7yA+%yB?q{%?>E*RyRg2F*z zWKljY*b>Y^bK&{tC!-|&sK4XYHKvs_SLh?moh#MogB7j<=J@P{^I~FCy!_gdc0HF=+UlHQ-`*-%xi=487ux^z2W*ceFo}QbDX{4Nzp=UP?f(z&-^KsBo!{Mx`E&oA z^=}!4Z&C}e0RMY$^Wg(O{@?xkn|JH~Hh%8?|0o?~V2XS}bf^$b8LS_QcG~3(2B@VW zyx|g1nrI1a2|Gb{nQOD&xP@9kT%(dezY<~xSk+<+X7FVjutmRt(&I-uHf}n540KkU z;Ia5gg^+=ZHvHDb0iuos#*S-S@Xd(s;KKw!G4O7rNlhuIDuAh5dg^aNpYb0gSiP7n zK!Qc_I7wF(q)Dvff4f~GSFsv}z(;IX7qb}j5a+w{8mB={fd<&E(qJcG;{S?;1B>7NF*2g|#EAjjIK;mvJN}gT z8T?Fi%TN{J^uFV?z%O)X`Kq9lC-+S zFN$9DyiK866nE|Io9AvJ$ol{G&GXtE7AY(fkJt#^N_l8UHJ)TWf05Jw9|!wt>nM9w zW;Wl{T$BitKrD%whG5(#*bAU9S`5F5N-;wIHF#JMtPhE}ixN=H6&5#DTAj(-?lL^t z3+M;E9`c51hd!W&U4n+}6kO2(=9a2B7}n<1RrLJ)vCZCFspSwUQkX9#p5}HuQUg|M zAxJ9qI)d~ndz#&-QnrSf*reu-YK(5MW9zgw#kE_VDa5YxO07nS8fIXXR+vo_x=<+| z_1hk60fR(5olfU{m~uxL5S&sYmU29S8AG8^DbD?3*3fHeAgOG_v||zN0n{;puaN_hwD=_ z3h^ex=85RyjH4J_!Eii4ENtm7fX2~(+#|oYlgqZ?)r0+}{Cn`0bNY0$0t$nUdf)}Vk zMApv)NYV=o(iZ_yx?0fqo>0you*M$wBAI3UQj<^5A{AhUq;?#{h}^57@6Mp;kl|sA zqY4GU8KB^*aP>DiW9K&KC@D~h2~?Rqe!YyCXfuB7STX>`0i_1v32k*FPGVIe;Hbz8 zf}{)%ZwjBe%#hI%Y=e4$E~C*$#)pZd^iK9DMpT(Eo!U&ll^z{beGXK=tOhrtizpdk zP#xfj0go%S=QO?Jn2P%V#Tmg(ZO?y`=%DG%qNS&r{G4>$SzZv_xxKhlb^CD2XG1^m%lp?n>{q*Rr;z-ztzQsM7gy4e3Y~B zZR(?(DW5U?ca{r%7Me`%W^{B$;bO3S?OkfS+Q#xz;g4tU^feNdx9Lyucahh_^-`Vf6%C$bWth4B^g6hO#M z_{*vXc~fz>wGS=@GtndSQeIlQ<_bfWZmyy;>Qyw4byn3tah95jb5$y639{)brDdSP z6C*AC<6JURvb5z3!O#@H(VU(w{j+vnTKgG}TMGQ<-=Z^0~CNlh~>{M@!|`W+Zv7 z)x(0l2!P0bpxiCNhYS5L+3`{n+9S#xg4;r*!Sg6*aTUt*h~U(%pc`=T4BRI;(^Hu8 zKDoe(yY4;a0bYHslj*$AQgL1lOjgr`(5$SPs^8oCarX<@|K%q+nBrc1JNU2dt<8Hr z{_Fn69sd7Te%A;Ms*~CzFL-X$!G=5J545@yfGi!VS@wJ4%tDnoprzVY7!A^-3Pe)! zPzcFnt~D$uE(PEUwBzQXX`xCMjYb8Wrfvz!x&K2b#I!B!+L;tTzy~tBkolrEwYizV zKN=tW0bP)b0}Ed_+uy-ociCL7^RH85VS+d=ncc2=ncTK}FE`g(#q}S7-PeQj+Df4! zK7Yt%Q9BUoeq$U@YesI#S%34m#ZV=SW_<;@2&3g&!VrZD#;-rt{5Hs_Gnf(CLIb~z6<*tKiIpRec2ONX1D2@7Blc;8cLk-|)t1>i$mVzc1?0ao z3HbjTbOBw2|G&54QIn7PSPwrp3JleSHOeS>h6kL`0-@+0$E{t zf?}vI;WTQYyqX=#t+nL!YLa3ydv&(p(y0YDQfBl3zH`+gJIzNq%g)4!_{p3~s;f19 zd;8}3ho}3;hhkS?l!9KjySeoc_;EX%z55%R8z2yC1LV)JWZ*0zO;n*6s6aX39g~q6={-SB z!0sap7iV+=Va7GveWkPo>fd8b)To5M)8(k$u+r{{WijFk(KzolAKu!=r6u~{6}YGe zm?&g7;c^sa;Cp|0`UT`a3s~JAWy2xNfp3xqukHV{wQ+CbZvEfN@9rf0bN`(6Z>{{B z6ap5k|A!B&{yz^M-rfIh<#&DkKl|h?;Tgnd^uFO7B(-m(C3S?MM_^QC9tb+;`#|*C zp+w2qtS>G>(^)`De8Wfjt5XUYjKrv_P(pqPFg8c!G)J~cT`)ygKb--)TVG$_`e@xQ zn5_aqB_ra75XA)D0UG_!5JZ&mQOE$E}g4hKY{hXD(KOu{yza|%Xqx}n&RnBynG zl$Y3X!aPQCoG{LV!?n!;cUmrEN->aJ04#v2*>RqoVn6IB7UAZOmmOBap8F7;8J=gu zVE{R~Z(6OF0XN@)-l($p-Ch;!Xya+D?rHxRf-MlQiG>xnk}7Ik27krYIEDa4;PLX5 zi?d2;V~7F$eKPPTNz%b+3MDd_-Qvu(OH^U@_A8$fqhCxW#s#6K1f~-s1-sz?Ays0T zAwy|$MxYgny5NmfL-U($ZEQ4k(KZgqO0A*Y#Y7Ik$`J>@90Oq>HEH$>Ut!K+?EHnL z!w%MYF16h5+6+N++;VuNipmgq32>&ovA1R~fp(@;>(FlQ=lO`!%j;exBb11do6L_d}WQ7WZR6Zh+72DThuP?k60OP z4XiUZAzSws7y}i5vchT&IA(iWtQj55|J0EAR*qRZ#?*nshw8PyeIdzAMdx{VZo6N6 z!T5&yTsz2E7kMDi!GT91Zhy?%Bq??Q5n`eDnaEI2V9j#Gsdr89R@>LzL=H(X6KzHbi5#&w7;SH+i1;PK{|IT8~^RSrkTR;@edy;%eG8c z0n6%}`Jeuc9D{p8u<`m#`?}^UPY0+V(7;8LQ5{Ji<&24z(fzabBlEXmsmA}z>P%=Z z@1IH@sHP!sv}DuL9Bg0H%7bYR{st-^t`y^kg4(V$Qy<_wD#WRz(54^|BcXhr$O{=e z{hLVn(di(Gm5;(beLUC4gkk$hVR4kBa52i#VH;SCW84OZkPh}j*ul`zgM>2GbBx4= zz2pMzEO`S%_6h5ju&rmarH1<7p(Q$XmQ8uKniB8FZxka&~c#wEK`99VG z`PcKJ_D;bR_dk_}#6I_8T({Ra4f=-q=hfW;53szXk=xS)XF+ln>3?qq0eXG@rw0!o zY~AU9ZsT{S|NV3Sob_+m`){<41?&I8R%QKf-+ORp|GAYPD|Of58faLBS3AfBZj`?G zo_$?Z3i{Ja1MwUaD-r+grLz20f(+AkS~!kuRab@jsnSFWE1J*TmbN*jd9YW{OjHdw zQ;3y{I;v2+fvoynFuUg3)}cFJV-U>699h*eppDAs@2bAPwi5Ys)e*4eJLj~j4vej; zqi8k6YYkzzTfJ5nEW_pX8G_Yimok2pC&L88lc>;;R(>s4eC2*>l>c!BRFliYG=r zjk?$+S+_pLj#rkYz}&T#VaL`zdO6(4Vq(`_kR9*6pWS0**tLD|+;@J?V02NjtG1&~ z@V#FM2Ol=M=s~b9Jqf)!)N?=6aZRSG^z4}%uS=_jdt zEOLf{FIzoJI{enpq(WfUt_w|395AWhX-OA61GaT%dEKRMNS<5JTnaj!lHkQl($87kzue+V zAGoC^R)CHZunzS490VOn^vmp{OcgUaLdTzAfsxS(`mTMJS>+IPuoCI+BXr z)zr0yHol|qq0zKF&+_D-NENl$L8hz5npkVT+XS!Ebwt}BZ!s0NCoW{3oXw!l6L`|V z=S|VW`Z3ED_uO<+PbH%1Vv??;u&58$xy=k_!9MMZa1i!JgT6cZ0Q1KI)hV?%bo~ir zXsMA!s^#X+ii%k9G^ zm8q^!+}>o5;+QA9p`=ukeZQbae&tLL-OPhCT@A)Hruv++zjdlxpMM^oCeL=G345)V zh+^A*N)R8LD4v`>ibBIAy+9gd3&kL+~2@-s`U8SL*q<;7i8Z+`1NP#G-U6I61-`z%u1-6R5aPSRXx#gqvAR&z+Xc)q2`^Q zmEx!Cmr+@Ib0;8zkb|=jHVhis;H<-pfOVXx>B?Y0Pzt9*E4*=NPU7AQ$*`D7G{Xr8 z6Xx}+rX156{`cr2Iv(W7q|`V%BmYcEh=?wuq!dMTK`nvenmhC7 z`DP0XS1JHx>N591ggLFnnzk+i}XKkhFMRGpNfQAnv`GaEhf zRkMQt;H1R0z`Ly&!4Z`698YyfXWDG8L~))?M==Mz?m1OT2qrL)1UZICH~8&3^Jn<9 zY^-*v?$yfn+jwHEZH*?+^xDDDbDSpVB$>!jlF9~{03dA#jvJb;EnZ3vu9v9i7ft1F z*|JSM@NpA z@E<7P(z*=E>mc4Q&`BPYKpT&j^bjirG}*`=*ixkJZ=wKy5mg&8V8*d z?<3Yx5ADG9k-MK#H24#4Zf!SpYH9}O@II4h?9uC8n1L-6FHBBoM9(aDr?vbwme^I3 zc=@eVk4;Z_K2Ph*j(i{)-y3`XdSwY9l^yBPZ2d)Hqily3o&5UaA&h(=P(5Tg&fPZ|M4IY(4?3zh`=HN>Jt_0Z?5Rzf;`rZC(3dcG8wqq zLAt{py#@tg`N>uelI@`bZg!>IkKXaFCJmHd9X8BBdx)Cjk zA!!x7^vXI=3Z5TELb2eN=Ds&ihvB*kwL}ESS-2;WO34XFwZc&%EnmAzd`PwAaPU>- zFEgMtRCB+aO%h;tn2~BP0oC4w!FNi4R>1~mSlU@)Qz3*I97qv>UH|Iub=^&fM*&4= zzD`uf+jlvvc-RR<^;8Bwhnmu3OJxV zmfYa%0wz>4mXy>~-9g94#@fO8H2o+x*R0*8kmX4-mf5sy&|Knr>a%aHsq2!H2ErgW zcTkHv$_i<>3pf8bOSxTFp!?m}uo}_rikF$%=;#^&=Y;aSouUSj3M-b|(5#^b_D$P; z^V`LMWmeA%9qs5BnaVsF7%-)|P3^-Rz@?-0xwH*gDtJ$7r_ni;XK?f-~h=R5%B^itecBRR-*7?N!oJ zQ_B5C=m<(~u+}KaSUKF^h@pc_6!Ba;hfBG*(9$uL^K2coPb8%ryZ4KuQjQyyo5d5u zAI~kN+Xj0dJF-7~?=-svb{A?Q#J~h~5k?j@H-;M&%XRBurOmfX{2;=G0el&p@&ft7 zWU)drGm{f6JoBDcXknHpiXsJy#~70f^jrgrVJB3!v77J-3#E-IetF@ZvBK7RTdkwB zu@lsffVu`LuudfjFW4B>bSpjvTA~3br+d_OyKJk48xlr>S3{{%Sf#;uH`dYi8= z|B5HGIwG&EQ_gGA0FFs$PhDHAPlah?yU68)dOcD4q8Re!r5VQ&s>g{W^T9y@+mm$moO&;p>GA@oON-W~G z6-4%E{h(0|V)Iy`hf)z~VS@+tZRicJqvZp|=Whk-Kch*qrVsXaYrmmt3?9B;R?mmS z>3#bpL~|MCgL4+m@!xRd7L6ya2DY(QM#HtHD5IerYsNZhf5us+8dYYZOT~Ge)ajul zeSvg3ywpWs?G8|k7L~~43Cg=9jj!t;hQz{lXy)KN6&nun}Y7s@y81#_h)s;6pD{mvJ3f9{D; zM3qq}QfEul;YwkgRKN}^`0Q~Rn7AurCh-reFwB(LZ5_@| zhmFAI;iY247lBs$N8WSOVr;1z2W?N#m6(_^mb>_8pFN7I=W7*dM$}ym>{PFhI#f?m zh&U;bPK)$R*%(M4lxAA7dJP z_dY;^=L$m$D^eL7`#2J9p2cnKOq)sSnjMh+^fs*;;$B>CPF&E4-hzkvTQK=0bJ) z`2YUgzu@{O=!^0P`{oT`!TR6Y*xvBh|APnj?$-Zp{Pf-Xh|K~oNY5V(=;B?}7m@&| zD-VK_Q6)W1S>-Qdtx^_eaD!pYQ-3lo&ie!=jRe_H#3g{UD}tiBA)uO6Q&$&gP)##J zn$Ki8*MEud(h3&U?D@k`?L*b-n`cvqP6CkikfugjEV6KghTzPpgtKt(vk zXMr)V5BW(A_bO{JHUD#&4iPn~Ijg;d=4(RG(gMtb`3&2UfJy?9prqBQpbM=aLg<=+ zb3H;G`(!54D9^#Z3AWABkazQaDk`$nzX^PG7{$Dz6Pg!|(EG&oaTWa!^u70`yWj2n zob%tOJiV3p-<$Uy-1FuC`w#B;e{bjKD)2pi&MGzP63nOy3?|cfk|k*=8kn+aJf6L+ z5J~@)!XN)=Opw*FWqFAcrnDt46|kadmq3x#EXAbta+ERf^-wiPJ+Tr^6l1Ashk7sv zpGv{K8_?ojfJ1i7q0yD%MAaHZ>9ur)5H-nTQTtQrZ4K)PIv(!#Mh&;UyU9EaXmU+O~&MCpUIMSBTo;|Mre zefwn7NLjJQ$rhkwi9@yGU_)+zF}@^+*Loit4~S2hV(qDF3VAv^iW^C+06EE-X#9m! zH;r9AYW};NM%;22bMx9azOX z*1|7`C*QUZpnxS;!O=1H0D5s7UB1+!(YUapGMe3Jk`TmZ#r0jY-PVdm(}Syq zk)N2cC*E~Bo%hS5M}7fHi$B`51&97`o3~iPk`ouxR=qyRB*&qtV93o@4$ckJQ!ut^ z4+)Ct#Jm|Y{*gC%Br>3RNZY%^WKd*jEt5g3mdSu7TPiP^+sG7ol!6xmFcvOLPVkv9 z)Kpd{iCYlF7WE>_J0xbsA932h{nlCkcKJ#Fwr2FfAKvlRS&3gVGXtsEe=Z`SPB{diijP)fF_!69BQW697(SZxyN0 z-E|wm@={9`y#zM`m$dY%nf?J6jk=i8$7j`HWzp=HWi&W$v1nR6RF_88!w^{@WN@$s*aD3c&_PY6rS{r^CraHl%7#NVJF=XebOBR|=@`Sz zEFR~8V@_)ui&PDxQRV3QeQ%L-)(wtPV{IMqvV2W2<5ImQ%y*iv+#c{c0B^*XF9QG3 zL8L!PXuV6?g4_wfA2i zwg0Eg3tp<5osBhf+=MbHPvkcEtgf{v@Blr6CynNHB)1=JeK7U>H>?kJUKn0JI75a} z4%bRVyD`ZTx>iTYXqwY^6+K z=l<2M|50)#2eZLQeme^IE7t%0yZGO?^SfLBf9_uZ|DzxsH|7SsDE{~T`xX4p_QSjN ze=ENm_WxZJSb9OE7yp_oWI9C}HdPKAz|q2t^fP(PIxu~2N0YQ>P0)|WQ3Co%0zRVpOAa-j}c5yx4y(cEuJYe*WqoVpnXps&$SctIFrE{y{a~ zGv0c(fvD>CS}{`WidC{BAWZ`6HHk8TQsKW@pM(F_mL>DKiHTS11LCeg;ZVeMe`%OG9R66{Hf?7Ny2uz~MqwcJ-bW z0#QCJ%$m}qB^{kip^a4Tvti#7(R(*1Ni0|xjd7(Ob5Qds!0Rtu0fW^kCYOqQhA_O+{F0XSv8{? zlJ|k4{==Fa6)*eRZ>$%+*Nr-jRHdM!ST%T@#nTZpedan+Erp%IeX)f~{}GTrnIIP}iP6Kya-L4aiM$G$9;;r|fd#vLW9d1rR zp>VWgd4jX~(@cP!dYpi+RJj(*w9FG^0utxouwVw=a^t<~h}ZcvmG*0k6ypjU8j3Qq zPDm&(&Jg?;4F=QkbcBJ5(AQplkz8Ulg*l$e)C8bz=!qB6M6WG-IBYL$=*opGY+mP@ z0jl`_?4yAaNv_!C0yOdZvnf`L7P-u5f<(fX7Uxk;bYtgw@8b=l=!g?Qj@Zk%0PGz) z#)27OhwCb6v_vfBL=3XYEI2TBjJBG{){SPbW|{$MfH!rtghm9?qaqU%_|%0v4d5GG zi7YjQT>456r7>+R?*-%RLh>>MCnkz--C*X7sSb@T$Zj~rhcFeI;2E=mYzgoung;EC z(aake6&yojlFN%EoAQ>UrnAN3h(-z-edGy04o^4SiLEKEsZ74ff1Q`L>9UpCiNk49 zyudyJ4!n}^syfkOH}&T@Q+*LJc$jS5oAt$XJdX0&;@RJ!8J|mT8ZmTR1ZEs%NS&K{ z74U4(4IRre0{mVJ=lmd>a8RJ@On02;bkK))&#>SVlB<+d^3o0u^mRhTS4aelPT%Ue z^hYH|sNVl?oc?Rk{eSzxrXT-%`{Bm+-TnVIe(nYSX5+tByooAT$-tu}y^Pe(A|m%z z$Y@BQK;oTKr7ZAdn#>g4WsawgEgC6iS6aPSJ6IC&ds)CFKJ__Fqi^$9(u8xhbvAGy zf1#7_=o!8M*XPSZe1@1U7|HpHIErjoJs=;U-e7ypd3!Z?Lw02HM))8!JU%?oZ_VM) z$`kukz;i1o^6TNJ0}jy?0NT4uAVLA~?y^u2YbS!l6D|sJyG>{1IkW$g^D`iga%d0; zG!)MZVD7MD_SP8-w{wz+cEN=k7V6=ImB5~4;)CFIkb%4IY-$M6C$ z{joe0tEb2{Z4P(5q)i!icbb6ElaPqE9_9ko+^ISc8#;_Lm&QSTN z_4CV26`EldfwvNf%yQq)htn~Npu6JT9Q8{pAOf@;VPVgGTz@vNRAuSgOT{FFjx} z@j5YSO$|K(dva{ZTh)t4&J}G{38Sm;AES#!POhQuJa6_am4PNp(^LxI$pTkn{{;}% z4Y5Bh=6~II=*xc(Ht*~|xAVI$rHdCAK^Em3nl5G|-1q=KN<9sH>NvKZX2+)&W$Mu? zqbuIVp$TvH;wtSJ&|JB;$t zj2IIkiG87kLkcKkTIO?Z{{EkHbN=Vt41LZ}H-pco!N=^M9e8tq z5xK8DOj|rmu#U2`nvPs&P`2g|%GSI=S*pd`zyF8bp5KS<`gI!W!E4~xj7BE^Ylxm# z-gq}^>T&uquPuuFsEVjwvR}VQ^ijKJ$L2KaTD|4k=Xcj`qWu9KZRxz}SSgXbHNR7z zsq*<{bpSxVqg05MuvHM1k-Ok-1#{N6~0`fmap}Ro_*stJ! zeYknY|9UIGyVd;X{sq>*)+5~(|MNXq^X~e;_h9pG{olrq@Bb$L9^Lpai{M>fJ3#%O p*TYaHj`&jB3R@5j2GO&w7k3-q-S6&q_xqFo{y&U=l+*wM1^{>D>OcSh literal 0 HcmV?d00001 diff --git a/.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz b/.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz deleted file mode 100644 index f7e4ad6ef08e394332e2458bbe4a628c1e17d2c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70298 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Å?lCJ3?cmFyIz5;X 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

Ju8ct> z*DU{6FTbNysO0-Q5Rd9RI{RH3$~3DWm8iBT)dxKe7pk(W_pA_z^Fd+Ol%_^$>0}CR ztkMv4+;c7EIyxe1wOUXl-u!`)WbZNjtI|5&2K1T?R82*j=N)#NuIwNj|LAdDC4I;6 zNn9SlY8U15T;?+E`TnXV4XC?%S>Au7lt7ir1GVBN#$#vIjA}^U2a5WEH90C?_O)ZI z7rplxbsDKkLC1a7;8E6}44F?f*O6)|pbhSeO;q|1fm+IhN&(0HqC_Rb%N1|dH+eg^&WJOb)2HZ%_%70j&>|ha5jIQ3b0d; z63~?@*J7ELd4haH;sP8NOs89Jyw@%9CZD9zer=IrT!TYHQO4E@3FY-O1pmdo-efcx zVhAMkwO1pOON`kt!&8}>0Mrc~@iHFkwPkmQ?S&1Waw!X&J-ViYD*itQXrM$YEq1v8 zO}rj9#fs4+ml;jNNchs?BF>4_>_YE-ykQhAaSF&0dl?siy+g-XFazvzT?O@)=u0^k zy=*)Uc8neIttPT{)acYqGawD{rjC}-h^Bg2WMT|MUAWT##^73HsiFPSS9&Oo$!U2n z7-g4|mmxSYQGDx&nKLFjG`1kS;RGMTRA_)_%nGt4z@KOuwD(0bZ)99>q>gbeFOzJ- zTaKE}7FQ%1DP;VKC;TWp-Eb$irnIIq`6mB$Ue@N5t;|jwPLtv#ek0((D+#Zw6CHL_ ze~vSu7}1Z1Db2lEUra`$IG@g+{VkgDx#Xr154c5>#<7glxv5tH&j#Jlkt}1t?=^AG z_p&jE9$IF)<2KD>K|1)q>yrKFNqb`YYk6Dqz!BA9pjR?ns1D=|X#{(s~2U-Rz& zJNF*=_y3)Tcky3u=jXcgR{Vb|m%qTH1^t55ULa!k9>@4aAT8p(PNgjHEE!J~4Q7t# zge}Y{##dTz*SlB}F>+Z@B0i@%WTS7TSLeTT8FjW?plhMC>i8MH0B7Z^LVST(E*N|H znplNwAUt3dq26G7%?Wuua|?B(=qP-28Ri}C=y&G0W_5?XkK;)b6w-C~(~*Su2Y}gK zB@np)_;~pk?`zn9;)w$VIm)Kf@`71`$z2(+K{+%CL=cMe1(E>g{eS=G|B6@~zC00Q zum}TyjD#ZD0h~C zn39lJv6(Z7jVdz`g-vk)Blae2(&xE){EUGpu9ROH)cW~lrV7n4i`ZL|zOn#4=P}%^U92`-^=rdtiv!jo*%XNu(y$i8+6nXfW z?8R23Fq%@DIyWIYV+-4)yMC=uV%5~`sQS6cK}`=?u$vd3)|A>2un+eQk*j*~$hkrJHX3+Cn|e)&^s=T%sO>1uhf`uqge3Nb781>Q{rXbodD54m zcU*TU$@L<`x%Jx*=hp1u+zJh6=re=QC&9<;pB;E}h;hG{?xt<-CRj(=dCi9`(<$4t zJ7s%Tr!3Uso!@?7cV>UXPW?I!eZd>x*NlfI{~L(WSKjz%)YRjA%dEC2@}nxEdcp5{ zF40GA$q$>+tfjt|YoGnOb`$LZbhM?jremc<^49!L-%ORy{$#6x))&*$d5f=F7_=qn z{q}R0E1L6ZR%`5UqsQ*Y{dbjw|Cqmk{7nzSOqD7DR)g`mF24 Y-NtwKyZhb!{@}m=595z0hXD2k05y&OD*ylh diff --git a/.campaign/tgz/antelopejs-interface-core-f7df541.tgz b/.campaign/tgz/antelopejs-interface-core-f7df541.tgz new file mode 100644 index 0000000000000000000000000000000000000000..fd9f0fa8f0846c980241ea75a15f4d45554191f9 GIT binary patch literal 89260 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

rM&B8{f}B333jWi7d`-BfuAl#V`_Y33U+uql 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 Lv@ooS0F(y+B+YGD literal 0 HcmV?d00001 diff --git a/.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz b/.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e5aff0eefe94de1f9400f74da926132dafbdc767 GIT binary patch literal 97619 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%0Ag%^|X&2#qUEHV~-=@}A1T3lrO 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

rmqUSLgIlZvU6@0@MFKCjam5-YWm^ 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/interface-core package.json pnpm.overrides -@antelopejs/api>@antelopejs/interface-core pnpm-workspace.yaml overrides +@antelopejs/interface-core package.json devDependencies ^0.2.6 +@antelopejs/interface-core package.json pnpm.overrides +@antelopejs/interface-core pnpm-workspace.yaml overrides +@antelopejs/core package.json devDependencies ~1.17.0 +@antelopejs/core package.json pnpm.overrides +@antelopejs/core pnpm-workspace.yaml overrides diff --git a/README.md b/README.md index dc9eb4f..c4b3df0 100644 --- a/README.md +++ b/README.md @@ -125,11 +125,11 @@ The package declares these `@antelopejs/*` peer dependencies: | Package | Supported | Tested with | | ------------------------------------------- | ----------------- | ------------------------------------------------------------------------- | -| `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz` | +| `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz` | | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz` | -| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.7` | +| `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz` | -| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz` | +| `@antelopejs/interface-database-decorators` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz` | diff --git a/guardrails.ratchet.json b/guardrails.ratchet.json index 34fa6fb..4dbcf74 100644 --- a/guardrails.ratchet.json +++ b/guardrails.ratchet.json @@ -2,7 +2,6 @@ "pack": "0.2.17", "rules": { "anti-slop/no-unsafe-dictionary-type": 1, - "typescript/no-unsafe-argument": 12, "typescript/no-unsafe-return": 2 }, "oversizeFiles": {} diff --git a/package.json b/package.json index 51c98d9..3187272 100644 --- a/package.json +++ b/package.json @@ -74,12 +74,12 @@ }, "devDependencies": { "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", - "@antelopejs/core": "~1.17.0", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz", + "@antelopejs/core": "file:.campaign/tgz/antelopejs-core-184eb90.tgz", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz", - "@antelopejs/interface-core": "^0.2.6", + "@antelopejs/interface-core": "file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz", + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz", "@antelopejs/tooling-configs": "^0.2.17", "@types/chai": "^4.3.20", "@types/mocha": "^10.0.10", @@ -109,11 +109,12 @@ "pnpm": { "overrides": { "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz", + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz", "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", - "@antelopejs/api>@antelopejs/interface-core": "0.2.7" + "@antelopejs/interface-core": "file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz", + "@antelopejs/core": "file:.campaign/tgz/antelopejs-core-184eb90.tgz" } }, "antelopeJs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eec9085..8f5c19c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,38 +6,39 @@ settings: overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz - '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz + '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz '@antelopejs/api': file:.campaign/tgz/antelopejs-api-6afe3e2.tgz - '@antelopejs/api>@antelopejs/interface-core': 0.2.7 + '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz + '@antelopejs/core': file:.campaign/tgz/antelopejs-core-184eb90.tgz importers: .: dependencies: '@antelopejs/interface-api': - specifier: file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz - version: file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) + specifier: file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz + version: file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) '@antelopejs/interface-api-util': specifier: file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz - version: file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) + version: file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + '@antelopejs/interface-core': + specifier: file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz + version: file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz '@antelopejs/interface-database': specifier: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz - version: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7) + version: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) '@antelopejs/interface-database-decorators': - specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7)) + specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz + version: file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)) devDependencies: '@antelopejs/api': specifier: file:.campaign/tgz/antelopejs-api-6afe3e2.tgz - version: file:.campaign/tgz/antelopejs-api-6afe3e2.tgz(@antelopejs/core@1.17.1) + version: file:.campaign/tgz/antelopejs-api-6afe3e2.tgz(@antelopejs/core@file:.campaign/tgz/antelopejs-core-184eb90.tgz) '@antelopejs/core': - specifier: ~1.17.0 - version: 1.17.1 - '@antelopejs/interface-core': - specifier: ^0.2.6 - version: 0.2.7 + specifier: file:.campaign/tgz/antelopejs-core-184eb90.tgz + version: file:.campaign/tgz/antelopejs-core-184eb90.tgz '@antelopejs/tooling-configs': specifier: ^0.2.17 version: 0.2.17(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001)) @@ -101,9 +102,10 @@ packages: '@antelopejs/core': optional: true - '@antelopejs/core@1.17.1': - resolution: {integrity: sha512-gul38oMJuiaLl5MEwinRbM6d08uPI2wqCmDDrI5V+VilcxJA025VF1l1CqNta3xQfszvRr/jt4RzOgUlhKJi/g==} - engines: {node: '>=20.19'} + '@antelopejs/core@file:.campaign/tgz/antelopejs-core-184eb90.tgz': + resolution: {integrity: sha512-CsiXLalRIIxX5YHjMUVDlz0+zBGSeNjSNPdBTgHwVsWpT1bIeG8izJmbCgpi5tIs8rvxkdlEZ6eKa7yH1GK8CA==, tarball: file:.campaign/tgz/antelopejs-core-184eb90.tgz} + version: 1.20.0 + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz': @@ -113,17 +115,18 @@ packages: '@antelopejs/interface-api': '>=0.3.0 <1.0.0' '@antelopejs/interface-core': '>=0.2.4 <1.0.0' - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz': - resolution: {integrity: sha512-pF423v3AMpaak5uLd/Q7TXoT+CXqxZXHQmSbEeik7eGfS+2Fsc2k1x/IR1gX4Hje8QuqLMZmkgT/eDyGXl/p2A==, tarball: file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz} + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz': + resolution: {integrity: sha512-G7BRef+991Dn+O4zmxGE8f8KN5Xfj5GQa+W3LQo0f+XHhRUCz2E+brTIonhjV7HJ5Z+lFNrm4StPytwNIUxA5Q==, tarball: file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz} version: 0.3.0 peerDependencies: - '@antelopejs/interface-core': '>=0.2.4 <1.0.0' + '@antelopejs/interface-core': '>=0.4.0 <1.0.0' - '@antelopejs/interface-core@0.2.7': - resolution: {integrity: sha512-2zWWTxSMutyqVbnr/xfGtjgIcx2x4zLZk6wOQkXDgX+i0DVPw6DOE/nsUHGP4uGrVAYg6b1z4oLdTV1NMAyZjA==} + '@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz': + resolution: {integrity: sha512-ur2KLvtD8h4SCZ0VSoQDc1pg+E9Bk/py3EW3qHHdoo3i6RvKWrrDKsX2khVdqQESuF2QMc1sJ6B+7ISjx5TvpQ==, tarball: file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz} + version: 0.4.0 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz': - resolution: {integrity: sha512-IO3ovOrBj5yWA39lNFqgr8+oJhjy8bzBTbgFvx369afjGO2J1i3J0+riEbZZzQ5fTx1qYV5gYuyx+BdoQBf+BQ==, tarball: file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz} + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz': + resolution: {integrity: sha512-vHjhTLclmWleAEamSNcic9sl8/tZRP7xunXdAWy35dOF2KHn2UYcguREtGAp98Ph81ciVVc9ir+RTveVCaS9VA==, tarball: file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz} version: 0.2.0 peerDependencies: '@antelopejs/interface-api': '>=0.0.15 <1.0.0' @@ -2828,22 +2831,22 @@ packages: snapshots: - '@antelopejs/api@file:.campaign/tgz/antelopejs-api-6afe3e2.tgz(@antelopejs/core@1.17.1)': + '@antelopejs/api@file:.campaign/tgz/antelopejs-api-6afe3e2.tgz(@antelopejs/core@file:.campaign/tgz/antelopejs-core-184eb90.tgz)': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) - '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7) - '@antelopejs/interface-core': 0.2.7 + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz reflect-metadata: 0.2.2 ws: 8.22.1 optionalDependencies: - '@antelopejs/core': 1.17.1 + '@antelopejs/core': file:.campaign/tgz/antelopejs-core-184eb90.tgz transitivePeerDependencies: - bufferutil - utf-8-validate - '@antelopejs/core@1.17.1': + '@antelopejs/core@file:.campaign/tgz/antelopejs-core-184eb90.tgz': dependencies: - '@antelopejs/interface-core': 0.2.7 + '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz '@clack/prompts': 1.8.1 '@types/proper-lockfile': 4.1.4 commander: 13.1.0 @@ -2856,30 +2859,30 @@ snapshots: semver: 7.7.4 typescript: 5.9.3 - '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)': + '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) - '@antelopejs/interface-core': 0.2.7 + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7)': + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)': dependencies: - '@antelopejs/interface-core': 0.2.7 + '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz - '@antelopejs/interface-core@0.2.7': + '@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz': dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7))(@antelopejs/interface-core@0.2.7)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz(@antelopejs/interface-core@0.2.7) - '@antelopejs/interface-core': 0.2.7 - '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz + '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) randomstring: 1.3.1 reflect-metadata: 0.2.2 - '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@0.2.7)': + '@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)': dependencies: - '@antelopejs/interface-core': 0.2.7 + '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz '@antelopejs/tooling-configs@0.2.17(eslint-plugin-perfectionist@5.11.0(eslint@10.10.0(jiti@2.7.0))(typescript@5.9.3))(knip@6.34.0)(oxfmt@0.66.0)(oxlint@1.81.0(oxlint-tsgolint@7.0.2001))': dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0fe766f..0e3a33c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,8 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz" - "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-e79a62b.tgz" - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-f2a99b5.tgz" + "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz" + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz" "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz" "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz" - "@antelopejs/api>@antelopejs/interface-core": "0.2.7" + "@antelopejs/interface-core": "file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz" + "@antelopejs/core": "file:.campaign/tgz/antelopejs-core-184eb90.tgz" diff --git a/src/index.ts b/src/index.ts index 7567fbe..9b1c149 100644 --- a/src/index.ts +++ b/src/index.ts @@ -25,6 +25,7 @@ import type { WriteDocument } from "@antelopejs/interface-database/common"; import { Parameters, Query, Validation } from "./components"; import { isWriteDocument, isWriteValue } from "./internal/guards"; +import { prototypeOf } from "./internal/prototypes"; import { DataAPIMeta, type DataControllerCallback, @@ -92,22 +93,21 @@ export function DataController< export const RegisterDataController = (): ClassDecorator => (target) => { const meta = GetMetadata(target, DataAPIMeta); + const prototype = prototypeOf(target); for (const [key, entry] of Object.entries(meta.endpoints)) { for (let i = 0; i < entry.callback.args.length; ++i) { const arg = entry.callback.args[i]; if (Array.isArray(arg)) { for (const step of arg) { - step(target.prototype, key, i); + step(prototype, key, i); } } else { - arg(target.prototype, key, i); + arg(prototype, key, i); } } - const meta = GetMetadata(target, ControllerMeta); - const fullLocation = `${meta.location}/${entry.endpoint ?? key}`.replace( - /\/+/g, - "/", - ); + const controllerMeta = GetMetadata(target, ControllerMeta); + const fullLocation = + `${target.location}/${entry.endpoint ?? key}`.replace(/\/+/g, "/"); RegisterRoute({ callback: (ctx: Parameters.DataRequestContext) => { ctx.dataAPIEntry = entry; @@ -116,16 +116,12 @@ export const RegisterDataController = method: entry.callback.method, mode: "prefix", parameters: [{ provider: (ctx) => ctx, modifiers: [] }], - properties: meta.computed_props, + properties: controllerMeta.computed_props, controller: target, }); - Route("handler", entry.callback.method, entry.endpoint)( - target.prototype, - key, - { - value: entry.callback.func, - }, - ); + Route("handler", entry.callback.method, entry.endpoint)(prototype, key, { + value: entry.callback.func, + }); } }; diff --git a/src/internal/guards.ts b/src/internal/guards.ts index d236515..573881d 100644 --- a/src/internal/guards.ts +++ b/src/internal/guards.ts @@ -23,9 +23,14 @@ export function isFunction(value: unknown): value is Function { return typeof value === "function"; } -/** Whether a value is a class: a function, which `new` may call. */ +/** + * Whether a value is a class: a function with an object `prototype`, which + * arrow functions, methods and bound functions lack. A generator function + * has one too, a language limit this check shares with every `prototype` + * test. + */ export function isClass(value: unknown): value is Class { - return isFunction(value); + return isFunction(value) && isObject(value.prototype); } /** Whether a value is a number. */ diff --git a/src/metadata.ts b/src/metadata.ts index 6e6d540..e7a8bc2 100644 --- a/src/metadata.ts +++ b/src/metadata.ts @@ -7,6 +7,7 @@ import { } from "@antelopejs/interface-database-decorators"; import { type Class, + type DecoratorTarget, MakeMethodAndPropertyDecorator, MakePropertyDecorator, } from "@antelopejs/interface-core/decorators"; @@ -36,7 +37,7 @@ import { rebuildPluck, targetJoinedFields, } from "./internal/meta-records"; -import { isString } from "./internal/guards"; +import { isClass, isString } from "./internal/guards"; import { classOf } from "./internal/prototypes"; import { resolveTableReference } from "./internal/table-reference"; @@ -504,12 +505,16 @@ export class DataAPIMeta { /** Declares a decorated field; a symbol-named property declares none. */ function onField( - target: { constructor: Class }, + target: DecoratorTarget, key: PropertyKey, declare: (meta: DataAPIMeta, name: string) => void, ) { if (!isString(key)) return; - declare(GetMetadata(target.constructor, DataAPIMeta), key); + const owner = target.constructor; + if (!isClass(owner)) { + throw new TypeError("A field decorator applies to a class."); + } + declare(GetMetadata(owner, DataAPIMeta), key); } /** @@ -703,7 +708,7 @@ const FilterDecoratorFactory = MakePropertyDecorator( export function Filter>( func?: FilterFunction, useIndex?: boolean, -): (target: T, propertyKey: string | symbol) => void { +) { return FilterDecoratorFactory(func, useIndex); } diff --git a/src/tests/index/field_decorator_target.test.ts b/src/tests/index/field_decorator_target.test.ts new file mode 100644 index 0000000..40656fc --- /dev/null +++ b/src/tests/index/field_decorator_target.test.ts @@ -0,0 +1,27 @@ +import { expect } from "chai"; +import { GetMetadata } from "@antelopejs/interface-core"; +import { Access, AccessMode, DataAPIMeta } from "../../metadata"; + +const REFUSAL = "A field decorator applies to a class."; + +describe("field decorators - target", () => { + it("refuses a target whose constructor is an arrow function", () => { + const target = { constructor: () => undefined }; + + expect(() => Access(AccessMode.ReadOnly)(target, "title")).to.throw( + TypeError, + REFUSAL, + ); + }); + + it("declares the field on a target whose constructor is a class", () => { + class Target { + declare title: string; + } + + Access(AccessMode.ReadOnly)(Target.prototype, "title"); + + const { fields } = GetMetadata(Target, DataAPIMeta); + expect(Object.hasOwn(fields, "title")).to.equal(true); + }); +}); From 65afb353bad92ab79f7696e154856cb5c61ab85a Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Mon, 2 Nov 2026 14:14:52 +0100 Subject: [PATCH 22/36] chore(ratchet): delete the interface-data-api guardrail ratchet (#85) * chore(ratchet): delete the interface-data-api guardrail ratchet * build(sync): drop the ratchet step from the managed files * test(data-api): parse response bodies with schemas instead of a type argument --- AGENTS.md | 7 +-- guardrails.ratchet.json | 8 --- guardrails.suppressions.json | 5 +- lefthook.yml | 3 - package.json | 5 +- pnpm-lock.yaml | 3 + src/internal/deferred-joined-stream.ts | 1 + src/internal/field-types.ts | 1 + src/tests/components/access_control.test.ts | 15 ++++- src/tests/components/computed.test.ts | 36 ++++++------ .../components/filter_list_route.test.ts | 17 +++--- src/tests/components/foreign_computed.test.ts | 25 ++++----- src/tests/components/foreign_joined.test.ts | 30 +++++----- src/tests/components/joined.test.ts | 56 ++++++++++--------- src/tests/components/listable.test.ts | 53 +++++++++++------- src/tests/components/localized_sort.test.ts | 10 ++-- src/tests/components/mandatory.test.ts | 5 +- src/tests/components/modifier_key.test.ts | 25 ++++----- src/tests/components/parsed_value.test.ts | 7 +-- src/tests/components/partial_edit.test.ts | 18 +++--- .../components/per_action_access.test.ts | 18 ++++-- .../components/prototype_named_filter.test.ts | 11 ++-- src/tests/components/validator.test.ts | 5 +- src/tests/index/inheritance.test.ts | 16 +++--- src/tests/index/routes.test.ts | 27 ++++++--- src/tests/integration.test.ts | 51 +++++++++++------ src/tests/internal/http.ts | 34 ++++++++--- src/tests/utils.ts | 22 ++++---- 28 files changed, 294 insertions(+), 220 deletions(-) delete mode 100644 guardrails.ratchet.json diff --git a/AGENTS.md b/AGENTS.md index cc015cf..0764a75 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -30,7 +30,7 @@ The release commit writes `CHANGELOG.md`. Upgrade notes for that version follow ## Guardrails -Finish every change with `pnpm run checks`. It runs typecheck, lint, format, knip, tests, size, ratchet, suppressions, and sync, and prints only what failed. The change is done when it prints no failure. +Finish every change with `pnpm run checks`. It runs typecheck, lint, format, knip, tests, size, suppressions, and sync, and prints only what failed. The change is done when it prints no failure. The tools enforce most rules, listed in the table at the end. The sections below hold the rules no tool checks. @@ -68,10 +68,6 @@ Verify a boundary against the imports a developer or agent would plausibly write `guardrails.suppressions.json` caps the suppressions in authored code: lint directives per rule they name (`*` for none), `@ts-expect-error`, `@ts-ignore` and `SAFETY:` comments, and under `config` each rule a lint config (`oxlint.config.*`, `.oxlintrc.json`, `eslint.config.*`) switches off or to a warning, keyed by rule and `files` glob anchored at the config's directory, so widening or moving a scope is a new ceiling of 0, while narrowing one takes over the room it gives up. Switching a rule off in a config is a suppression too: fix the code its rule reports instead. A suppression over its ceiling fails: fix the code, or remove another suppression of the same kind. A rule that keeps needing suppressions should be changed in the preset. Never raise or remove a number in that file: the check fails a ceiling higher than on the pull request base, and only the operator approves a raise. A directive disabling `anti-slop/require-safety-comment-for-type-assertion` is burn-down debt: remove the assertion, or, where it holds, replace the directive with `SAFETY: `, which takes over its room without a raise. After you remove suppressions, run `pnpm run suppressions:update` and commit the lowered file. -### Debt - -`guardrails.ratchet.json` records the lint findings and oversize files this repository already had. Its numbers only go down. After you remove debt, or after a pack upgrade, run `pnpm run ratchet:update` and commit the file: it lowers the numbers and adds only the rules the new pack release enabled, at today's count. Never edit the numbers by hand; CI fails one added or raised against the base. A rule listed there is off for `oxlint`. The ratchet counts it instead, and the pre-commit hook rejects it on every line you add. - ### What enforces what | Rule | Enforced by | @@ -113,6 +109,5 @@ Verify a boundary against the imports a developer or agent would plausibly write | Entry-only rules exempt no tracked outsider | `antelopejs-sync --check` | | A DMS layer's `build/backend-boundary.ts` is the pack's plugin | `antelopejs-sync --check` | | A test names the wrong implementation it catches | review; no tool | -| Existing debt only shrinks | `antelopejs-ratchet` | diff --git a/guardrails.ratchet.json b/guardrails.ratchet.json deleted file mode 100644 index 4dbcf74..0000000 --- a/guardrails.ratchet.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "pack": "0.2.17", - "rules": { - "anti-slop/no-unsafe-dictionary-type": 1, - "typescript/no-unsafe-return": 2 - }, - "oversizeFiles": {} -} diff --git a/guardrails.suppressions.json b/guardrails.suppressions.json index eef79b1..050895f 100644 --- a/guardrails.suppressions.json +++ b/guardrails.suppressions.json @@ -1,5 +1,8 @@ { - "rules": {}, + "rules": { + "anti-slop/no-unsafe-dictionary-type": 1, + "typescript/no-unsafe-return": 1 + }, "tsExpectError": 5, "tsIgnore": 0, "safety": 4, diff --git a/lefthook.yml b/lefthook.yml index ff792b5..779c267 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -8,9 +8,6 @@ pre-commit: run: pnpm exec oxlint --no-error-on-unmatched-pattern {staged_files} antelopejs-size: run: pnpm exec antelopejs-check-size --staged {staged_files} - antelopejs-ratchet: - glob: "*.{js,mjs,cjs,jsx,ts,mts,cts,tsx,vue}" - run: pnpm exec antelopejs-ratchet --staged {staged_files} antelopejs-suppressions: glob: "*.{js,mjs,cjs,jsx,ts,mts,cts,tsx,vue}" run: pnpm exec antelopejs-suppressions --staged diff --git a/package.json b/package.json index 3187272..3713ba2 100644 --- a/package.json +++ b/package.json @@ -64,9 +64,7 @@ "prepare": "if git rev-parse --is-inside-work-tree >/dev/null 2>&1 && command -v lefthook >/dev/null 2>&1; then lefthook install; fi", "checks": "antelopejs-checks", "size": "antelopejs-check-size", - "ratchet": "antelopejs-ratchet", "sync": "antelopejs-sync", - "ratchet:update": "antelopejs-ratchet --update", "sync:check": "antelopejs-sync --check", "typecheck": "tsc --noEmit", "suppressions": "antelopejs-suppressions", @@ -96,7 +94,8 @@ "release-it": "^19.2.4", "release-it-changelogen": "^0.1.0", "rimraf": "^6.1.3", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "zod": "4.5.4" }, "peerDependencies": { "@antelopejs/interface-api": ">=0.3.0 <1.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8f5c19c..e2d9042 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,6 +90,9 @@ importers: typescript: specifier: ^5.9.3 version: 5.9.3 + zod: + specifier: 4.5.4 + version: 4.5.4 packages: diff --git a/src/internal/deferred-joined-stream.ts b/src/internal/deferred-joined-stream.ts index b8bfc6c..7b3ede4 100644 --- a/src/internal/deferred-joined-stream.ts +++ b/src/internal/deferred-joined-stream.ts @@ -107,6 +107,7 @@ function forwardingDeferredJoinOperation( ): DeferredJoinedOperation { return function (this: DeferredJoinedStream, ...args: any[]) { // SAFETY: name comes from wireDeferredJoinedStream, which lists the own method names of Stream.prototype plus run, cursor and build, all present on any Stream, and Joined returns a Stream for the raw Stream it is given. + // oxlint-disable-next-line typescript/no-unsafe-return -- the method is looked up by a runtime name on a Stream, which TypeScript cannot relate to a signature; Reflect.apply and a typed lookup were tried and moved the finding to no-reflect-get, no-reflect-apply and no-unknown-returns return (materializeDeferredJoin(this) as any)[name](...args); }; } diff --git a/src/internal/field-types.ts b/src/internal/field-types.ts index a36e721..b73ef10 100644 --- a/src/internal/field-types.ts +++ b/src/internal/field-types.ts @@ -48,6 +48,7 @@ export interface FieldValues { * what the getter returned. Read a field through a guard. */ export interface RowFields { + // oxlint-disable-next-line anti-slop/no-unsafe-dictionary-type -- a table row holds whatever its table class declares (relation instances, getter results), and a route reads each field through a guard, so no schema-derived value type exists for the fields of a schemaless store row [field: string]: unknown; } diff --git a/src/tests/components/access_control.test.ts b/src/tests/components/access_control.test.ts index 7bdf8db..1d3efe1 100644 --- a/src/tests/components/access_control.test.ts +++ b/src/tests/components/access_control.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import type { SchemaInstance } from "@antelopejs/interface-database"; import { Access, AccessMode, ModelReference } from "../../metadata"; @@ -50,6 +51,14 @@ class User extends Table { declare age: number; } class UserModel extends BasicDataModel(User, userTableName) {} + +const userRowSchema = z.looseObject({ + _id: z.string().optional(), + email: z.string().optional(), + password: z.string().optional(), + name: z.string().optional(), + age: z.number().optional(), +}); let database: SchemaInstance; const defaultUserDataset: Partial = { @@ -115,7 +124,7 @@ async function expectReadInReadWriteField() { const response = await getRequest(getFunctionName(), { id }); expect(response.status).to.equal(200); - const data = await readJson(response); + const data = await readJson(userRowSchema, response); expect(data.name).to.equal(defaultUserDataset.name); expect(data.age).to.equal(defaultUserDataset.age); expect(data.email).to.equal(defaultUserDataset.email); @@ -147,7 +156,7 @@ async function expectReadInWriteOnlyField() { const response = await getRequest(getFunctionName(), { id }); expect(response.status).to.equal(200); - const data = await readJson(response); + const data = await readJson(userRowSchema, response); expect(data.password).to.equal(undefined); } @@ -175,7 +184,7 @@ async function expectReadInReadOnlyField() { const response = await getRequest(getFunctionName(), { id }); expect(response.status).to.equal(200); - const data = await readJson(response); + const data = await readJson(userRowSchema, response); expect(data.email).to.equal(defaultUserDataset.email); } diff --git a/src/tests/components/computed.test.ts b/src/tests/components/computed.test.ts index 05d5f89..70423d7 100644 --- a/src/tests/components/computed.test.ts +++ b/src/tests/components/computed.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import { GetMetadata } from "@antelopejs/interface-core"; import { Schema } from "@antelopejs/interface-database"; @@ -29,7 +30,7 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { readJson } from "../internal/http"; +import { listResponseSchema, readJson } from "../internal/http"; import { editRequest, getFunctionName, @@ -68,19 +69,19 @@ class Device extends Table { } class DeviceModel extends BasicDataModel(Device, deviceTableName) {} -interface GroupListed { - _id: string; - name: string; - devices_count: number; - display_name: string; -} +const groupListedSchema = z.looseObject({ + _id: z.string(), + name: z.string(), + devices_count: z.number(), + display_name: z.string(), +}); -interface ListResponse { - results: GroupListed[]; - total: number; - offset: number; - limit: number; -} +const listSchema = listResponseSchema(groupListedSchema); +type GroupListedFields = Pick< + z.infer, + "name" | "devices_count" | "display_name" +>; +type ListResponse = z.infer; const groupsDataset: Partial[] = [ { name: "Alpha" }, @@ -187,7 +188,7 @@ async function _listGroups( const text = await response.text(); throw new Error(`list failed (${response.status}): ${text}`); } - return await readJson(response); + return await readJson(listSchema, response); } async function expectStoresComputedMetadata() { @@ -229,7 +230,7 @@ async function expectGetsRowWithComputedValues() { const text = await response.text(); throw new Error(`get failed (${response.status}): ${text}`); } - const group = await readJson(response); + const group = await readJson(groupListedSchema, response); expect(group.name).to.equal("Alpha"); expect(group.devices_count).to.equal(3); expect(group.display_name).to.equal("Alpha!"); @@ -309,9 +310,8 @@ async function expectIgnoresComputedFieldsOnEdit() { }); expect(response.status).to.equal(200); - const updatedGroup: Partial | undefined = await groupModel.get( - groupIds[0], - ); + const updatedGroup: Partial | undefined = + await groupModel.get(groupIds[0]); expect(updatedGroup?.name).to.equal("Alpha Prime"); expect(updatedGroup?.devices_count).to.equal(undefined); expect(updatedGroup?.display_name).to.equal(undefined); diff --git a/src/tests/components/filter_list_route.test.ts b/src/tests/components/filter_list_route.test.ts index 42e6338..f677c79 100644 --- a/src/tests/components/filter_list_route.test.ts +++ b/src/tests/components/filter_list_route.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import { Schema } from "@antelopejs/interface-database"; import { @@ -23,7 +24,7 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { readJson } from "../internal/http"; +import { listResponseSchema, readJson } from "../internal/http"; import { getSchemaInstance, listRequest, request } from "../utils"; const currentTestName = path @@ -44,9 +45,9 @@ class Page extends Table { } class PageModel extends BasicDataModel(Page, pageTableName) {} -interface ListResponse { - results: { title: string; url: string }[]; -} +const listSchema = listResponseSchema( + z.looseObject({ title: z.string(), url: z.string() }), +); async function seedPages() { await RegisterSchema(schemaName); @@ -182,7 +183,7 @@ describe("List route - filter comparisons", () => { }); expect(response.status, await response.clone().text()).to.equal(200); - const data = await readJson(response); + const data = await readJson(listSchema, response); expect(data.results.map(({ title }) => title)).to.eql(["alpha"]); }); @@ -194,7 +195,7 @@ describe("List route - filter comparisons", () => { }); expect(response.status, await response.clone().text()).to.equal(200); - const data = await readJson(response); + const data = await readJson(listSchema, response); expect(data.results.map(({ title }) => title)).to.eql(["beta"]); }); @@ -206,7 +207,7 @@ describe("List route - filter comparisons", () => { }); expect(response.status, await response.clone().text()).to.equal(200); - const data = await readJson(response); + const data = await readJson(listSchema, response); expect(data.results.map(({ title }) => title)).to.eql(["alpha"]); }); @@ -218,7 +219,7 @@ describe("List route - filter comparisons", () => { }); expect(response.status, await response.clone().text()).to.equal(200); - const data = await readJson(response); + const data = await readJson(listSchema, response); expect(data.results.map(({ title }) => title)).to.eql(["alpha"]); }); }); diff --git a/src/tests/components/foreign_computed.test.ts b/src/tests/components/foreign_computed.test.ts index 2ce40c9..bd413d7 100644 --- a/src/tests/components/foreign_computed.test.ts +++ b/src/tests/components/foreign_computed.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import { Schema } from "@antelopejs/interface-database"; import { @@ -26,7 +27,7 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { readJson } from "../internal/http"; +import { listResponseSchema, readJson } from "../internal/http"; import { getFunctionName, getRequest, @@ -66,17 +67,15 @@ class Member extends Table { } class MemberModel extends BasicDataModel(Member, memberTableName) {} -interface MemberListed { - _id: string; - label: string; - team: { _id: string; name: string }; - teammates: number; -} +const memberListedSchema = z.looseObject({ + _id: z.string(), + label: z.string(), + team: z.looseObject({ _id: z.string(), name: z.string() }), + teammates: z.number(), +}); -interface ListResponse { - results: MemberListed[]; - total: number; -} +const listSchema = listResponseSchema(memberListedSchema); +type ListResponse = z.infer; describe("Foreign and Computed fields on the same key", () => { it("lists the computed value read from the key and the resolved relation", async () => @@ -166,7 +165,7 @@ async function _list( ): Promise { const response = await request(testName, "list", "GET", undefined, query); expect(response.status, await response.clone().text()).to.equal(200); - return await readJson(response); + return await readJson(listSchema, response); } async function expectListsComputedFromForeignKey() { @@ -188,7 +187,7 @@ async function expectGetsComputedFromForeignKey() { const response = await getRequest(getFunctionName(), { id: memberIds[3] }); expect(response.status).to.equal(200); - const member = await readJson(response); + const member = await readJson(memberListedSchema, response); expect(member.teammates).to.equal(1); expect(member.team).to.deep.equal({ _id: teamIds[1], name: "Blue" }); } diff --git a/src/tests/components/foreign_joined.test.ts b/src/tests/components/foreign_joined.test.ts index c5bf83e..1c639c2 100644 --- a/src/tests/components/foreign_joined.test.ts +++ b/src/tests/components/foreign_joined.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import { Schema } from "@antelopejs/interface-database"; import { GetMetadata } from "@antelopejs/interface-core"; @@ -75,15 +76,18 @@ class Shelf extends Table { } class ShelfModel extends BasicDataModel(Shelf, shelfTableName) {} -interface ShelfListed { - _id: string; - book: { - _id: string; - title: string; - authorId: string; - authorName: string | null; - } | null; -} +const shelfListedSchema = z.looseObject({ + _id: z.string(), + book: z + .looseObject({ + _id: z.string(), + title: z.string(), + authorName: z.string().nullable(), + }) + .nullable(), +}); + +const shelfListSchema = z.looseObject({ results: z.array(shelfListedSchema) }); const orphanBookId = "orphan-book-id"; @@ -203,7 +207,7 @@ async function expectResolvesJoinedLabelInList() { const response = await listRequest(getFunctionName(), {}); expect(response.status).to.equal(200); - const data = await readJson<{ results: ShelfListed[] }>(response); + const data = await readJson(shelfListSchema, response); const alpha = data.results.find((s) => s.book?.title === "Alpha Rising"); expect(alpha, "row for Alpha Rising").to.not.equal(undefined); @@ -223,7 +227,7 @@ async function expectReturnsNullForOrphanRelation() { const response = await listRequest(getFunctionName(), {}); expect(response.status).to.equal(200); - const data = await readJson<{ results: ShelfListed[] }>(response); + const data = await readJson(shelfListSchema, response); const resolved = data.results.filter((s) => s.book?.title); expect(resolved).to.have.lengthOf(2); @@ -240,7 +244,7 @@ async function expectResolvesJoinedLabelInGet() { const text = await response.text(); throw new Error(`get failed (${response.status}): ${text}`); } - const shelf = await readJson(response); + const shelf = await readJson(shelfListedSchema, response); expect(shelf.book?.title).to.equal("Alpha Rising"); expect(shelf.book?.authorName).to.equal("Alice Carter"); } @@ -253,6 +257,6 @@ async function expectReturnsNullForOrphanRelationInGet() { const text = await response.text(); throw new Error(`get orphan failed (${response.status}): ${text}`); } - const shelf = await readJson(response); + const shelf = await readJson(shelfListedSchema, response); expect(shelf.book, "orphan relation value in get").to.equal(null); } diff --git a/src/tests/components/joined.test.ts b/src/tests/components/joined.test.ts index e64a0c3..0d36bba 100644 --- a/src/tests/components/joined.test.ts +++ b/src/tests/components/joined.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import { Schema } from "@antelopejs/interface-database"; import { @@ -27,7 +28,7 @@ import { Sortable, } from "../../metadata"; -import { type ListResponse, readJson } from "../internal/http"; +import { listResponseSchema, readJson } from "../internal/http"; import { editRequest, getFunctionName, @@ -71,20 +72,25 @@ class Book extends Table { } class BookModel extends BasicDataModel(Book, bookTableName) {} -interface BookListed { - _id: string; - authorId: string; - title: string; - price: number; - name: string | null; - email: string | null; -} +const bookListedSchema = z.looseObject({ + _id: z.string(), + authorId: z.string(), + title: z.string(), + price: z.number(), + name: z.string().nullable(), + email: z.string().nullable(), +}); -interface BookDisplayed { - title: string; - display: string | null; - name?: string; -} +const bookListSchema = z.looseObject({ + results: z.array(bookListedSchema), + total: z.number(), +}); + +const bookDisplayedSchema = z.looseObject({ + title: z.string(), + display: z.string().nullable(), + name: z.string().optional(), +}); const authorsDataset: Partial[] = [ { name: "Alice Carter", email: "alice@example.com" }, @@ -243,7 +249,7 @@ async function expectListsRowsWithJoinedFieldsFlattened() { const response = await listRequest(getFunctionName(), {}); expect(response.status).to.equal(200); - const data = await readJson<{ results: BookListed[] }>(response); + const data = await readJson(bookListSchema, response); expect(data.results).to.have.lengthOf(5); const alphaRising = data.results.find((b) => b.title === "Alpha Rising"); @@ -265,7 +271,7 @@ async function expectGetsRowWithJoinedFieldsFlattened() { const text = await response.text(); throw new Error(`get failed (${response.status}): ${text}`); } - const book = await readJson(response); + const book = await readJson(bookListedSchema, response); expect(book.title).to.equal("Alpha Rising"); expect(book.name).to.equal("Alice Carter"); expect(book.email).to.equal("alice@example.com"); @@ -280,7 +286,7 @@ async function expectSortsByJoinedFieldAscending() { sortDirection: "asc", }); expect(response.status).to.equal(200); - const data = await readJson<{ results: BookListed[] }>(response); + const data = await readJson(bookListSchema, response); const namesInOrder = data.results .map((b) => b.name) .filter((n) => n !== null); @@ -296,7 +302,7 @@ async function expectSortsByJoinedFieldDescending() { sortDirection: "desc", }); expect(response.status).to.equal(200); - const data = await readJson<{ results: BookListed[] }>(response); + const data = await readJson(bookListSchema, response); const namesInOrder = data.results .map((b) => b.name) .filter((n) => n !== null); @@ -314,7 +320,7 @@ async function expectFiltersByJoinedField() { const text = await response.text(); throw new Error(`filter failed (${response.status}): ${text}`); } - const data = await readJson<{ results: BookListed[] }>(response); + const data = await readJson(bookListSchema, response); expect(data.results.length).to.equal(2); for (const book of data.results) { expect(book.name).to.equal("Alice Carter"); @@ -331,10 +337,7 @@ async function expectKeepsJoinedFieldsOnPaginatedRows() { limit: "2", }); expect(response.status).to.equal(200); - const data = await readJson<{ - results: BookListed[]; - total: number; - }>(response); + const data = await readJson(bookListSchema, response); expect(data.total).to.equal(5); expect(data.results.map((b) => b.title)).to.deep.equal([ "Alpha Rising", @@ -355,7 +358,10 @@ async function expectResolvesComputedFieldReadingNonPluckedJoinedField() { const response = await listRequest(getFunctionName(), {}); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson( + listResponseSchema(bookDisplayedSchema), + response, + ); expect(data.total).to.equal(5); expect(data.results).to.have.lengthOf(5); @@ -370,7 +376,7 @@ async function expectReturnsNullForOrphanForeignKey() { const response = await listRequest(getFunctionName(), {}); expect(response.status).to.equal(200); - const data = await readJson<{ results: BookListed[] }>(response); + const data = await readJson(bookListSchema, response); const orphan = data.results.find((b) => b.title === "Lost Chapter"); expect(orphan).to.not.equal(undefined); expect(orphan?.name).to.equal(null); diff --git a/src/tests/components/listable.test.ts b/src/tests/components/listable.test.ts index ecce6a4..2316f1f 100644 --- a/src/tests/components/listable.test.ts +++ b/src/tests/components/listable.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import { Schema } from "@antelopejs/interface-database"; import { @@ -24,7 +25,7 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { type ListResponse, readJson } from "../internal/http"; +import { listResponseSchema, readJson } from "../internal/http"; import { getFunctionName, getSchemaInstance, @@ -68,12 +69,26 @@ class Product extends Table { } class ProductModel extends BasicDataModel(Product, productTableName) {} -interface ProductListed { - _id: string; - name: string; - price: number; - addedAt: string; -} +const productRowSchema = z.looseObject({ + _id: z.string(), + reference: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), + price: z.number().optional(), + addedAt: z.string().optional(), + internalNotes: z.string().optional(), + metadata: z.string().optional(), +}); + +const productListedSchema = z.looseObject({ + _id: z.string(), + name: z.string(), + price: z.number(), + addedAt: z.string(), +}); + +const productRowListSchema = listResponseSchema(productRowSchema); +const productListedListSchema = listResponseSchema(productListedSchema); const defaultProductDataset: Partial[] = [ { @@ -215,7 +230,7 @@ async function expectDefaultList() { const response = await listRequest(getFunctionName(), {}); expect(response.status).to.equal(200); - const data = await readJson<{ results: Product[] }>(response); + const data = await readJson(productRowListSchema, response); expect(data.results).to.have.length(defaultProductDataset.length); const listed_products = data.results; const database_products = await _getDatabaseProducts( @@ -254,7 +269,7 @@ async function expectDetailedList() { {}, ); expect(response.status).to.equal(200); - const data = await readJson<{ results: Product[] }>(response); + const data = await readJson(productRowListSchema, response); expect(data.results).to.have.length(defaultProductDataset.length); const listed_products = data.results; const database_products = await _getDatabaseProducts( @@ -304,7 +319,7 @@ async function expectTwoRowPage() { const response = await listRequest(getFunctionName(), { limit: "2" }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(2); expect(data.total).to.equal(defaultProductDataset.length); expect(data.limit).to.equal(2); @@ -322,7 +337,7 @@ async function expectFromPageTwo() { const response = await listRequest(getFunctionName(), { offset: "2" }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(1); expect(data.total).to.equal(defaultProductDataset.length); expect(data.offset).to.equal(2); @@ -338,7 +353,7 @@ async function expectTwoFirstPages() { const response = await listRequest(getFunctionName(), { maxPage: "2" }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(defaultProductDataset.length); expect(data.total).to.equal(defaultProductDataset.length); expect(data.results[0]._id).to.not.equal(undefined); @@ -356,7 +371,7 @@ async function expectPageTwoOnly() { limit: "1", }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(1); expect(data.total).to.equal(defaultProductDataset.length); expect(data.offset).to.equal(2); @@ -405,7 +420,7 @@ async function expectNameAscending() { sortDirection: "asc", }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(defaultProductDataset.length); const sortedNames = data.results.map((product) => product.name); @@ -425,7 +440,7 @@ async function expectNameDescending() { sortDirection: "desc", }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(defaultProductDataset.length); const sortedNames = data.results.map((product) => product.name); @@ -445,7 +460,7 @@ async function expectPriceAscending() { sortDirection: "asc", }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(defaultProductDataset.length); const sortedPrices = data.results.map((product) => product.price); @@ -465,7 +480,7 @@ async function expectPriceDescending() { sortDirection: "desc", }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(defaultProductDataset.length); const sortedPrices = data.results.map((product) => product.price); @@ -489,7 +504,7 @@ async function expectAddedAtAscending() { sortDirection: "asc", }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(defaultProductDataset.length); const sortedDates = data.results.map((product) => new Date(product.addedAt).getTime(), @@ -512,7 +527,7 @@ async function expectAddedAtDescending() { sortDirection: "desc", }); expect(response.status).to.equal(200); - const data = await readJson>(response); + const data = await readJson(productListedListSchema, response); expect(data.results).to.have.length(defaultProductDataset.length); const sortedDates = data.results.map((product) => diff --git a/src/tests/components/localized_sort.test.ts b/src/tests/components/localized_sort.test.ts index 61220c7..a1604ab 100644 --- a/src/tests/components/localized_sort.test.ts +++ b/src/tests/components/localized_sort.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller, Parameter } from "@antelopejs/interface-api"; import { Schema } from "@antelopejs/interface-database"; import { @@ -48,10 +49,9 @@ class Fruit extends Table.with(LocalizationModifier) { } class FruitModel extends BasicDataModel(Fruit, fruitTableName) {} -interface FruitListed { - code: string; - name: string; -} +const fruitListSchema = z.looseObject({ + results: z.array(z.looseObject({ code: z.string(), name: z.string() })), +}); const fruits = [ { code: "apple", name: { en: "Apple", fr: "Pomme" } }, @@ -112,7 +112,7 @@ async function _sortedCodes( sortDirection, }); expect(response.status).to.equal(200); - const data = await readJson<{ results: FruitListed[] }>(response); + const data = await readJson(fruitListSchema, response); return data.results.map((fruit) => fruit.code); } diff --git a/src/tests/components/mandatory.test.ts b/src/tests/components/mandatory.test.ts index ee02587..6b43ec5 100644 --- a/src/tests/components/mandatory.test.ts +++ b/src/tests/components/mandatory.test.ts @@ -19,14 +19,13 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { readJson } from "../internal/http"; +import { createdRowSchema, readJson } from "../internal/http"; import { editRequest, getFunctionName, getSchemaInstance, newRequest, request, - type CreatedRow, validateObject, } from "../utils"; @@ -165,7 +164,7 @@ async function expectNewWithAllMandatoryFields() { totalAmount: validOrderDataset.default.totalAmount, }); expect(response.status).to.equal(200); - const created = await readJson(response); + const created = await readJson(createdRowSchema, response); expect(created._id).to.be.a("string"); const order = await orderModel.get(created._id); expect(order).to.not.equal(undefined); diff --git a/src/tests/components/modifier_key.test.ts b/src/tests/components/modifier_key.test.ts index db5c91c..0deb050 100644 --- a/src/tests/components/modifier_key.test.ts +++ b/src/tests/components/modifier_key.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Schema } from "@antelopejs/interface-database"; import { Controller, Parameter } from "@antelopejs/interface-api"; import { @@ -68,16 +69,14 @@ class Post extends Table.with(LocalizationModifier) { } class PostModel extends BasicDataModel(Post, postTableName) {} -interface AuthorReference { - _id: string; - name: string; - email: string; -} +const postListedSchema = z.looseObject({ + _id: z.string(), + authorId: z + .looseObject({ _id: z.string(), name: z.string(), email: z.string() }) + .nullish(), +}); -interface PostListed { - _id: string; - authorId: AuthorReference | null; -} +const postListSchema = z.looseObject({ results: z.array(postListedSchema) }); const authorDataset: Partial[] = [ { name: "Alice Carter", email: "alice@example.com" }, @@ -166,7 +165,7 @@ async function expectGetsRowWithResolvedForeignReference() { locale, }); expect(response.status).to.equal(200); - const post = await readJson(response); + const post = await readJson(postListedSchema, response); expect(post.authorId).to.not.equal(null); expect(post.authorId?.name).to.equal("Alice Carter"); } @@ -179,7 +178,7 @@ async function expectGetsRowWithNullForeignReference() { locale, }); expect(response.status).to.equal(200); - const post = await readJson(response); + const post = await readJson(postListedSchema, response); expect(post.authorId).to.equal(null); } @@ -191,7 +190,7 @@ async function expectGetsRowWithDanglingForeignReference() { locale, }); expect(response.status).to.equal(200); - const post = await readJson(response); + const post = await readJson(postListedSchema, response); expect(post.authorId).to.equal(null); } @@ -200,7 +199,7 @@ async function expectListsRowsContainingNullForeignReferences() { const response = await listRequest(getFunctionName(), { locale }); expect(response.status).to.equal(200); - const data = await readJson<{ results: PostListed[] }>(response); + const data = await readJson(postListSchema, response); expect(data.results).to.have.lengthOf(3); const nullAuthorPosts = data.results.filter((post) => post.authorId == null); diff --git a/src/tests/components/parsed_value.test.ts b/src/tests/components/parsed_value.test.ts index 3a15d0f..535cd8d 100644 --- a/src/tests/components/parsed_value.test.ts +++ b/src/tests/components/parsed_value.test.ts @@ -24,13 +24,12 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { readJson } from "../internal/http"; +import { createdRowSchema, readJson } from "../internal/http"; import { editRequest, getFunctionName, getSchemaInstance, newRequest, - type CreatedRow, } from "../utils"; import { isString } from "../../internal/guards"; @@ -132,7 +131,7 @@ async function expectWritesParsedValueOnNew() { startsAt, }); expect(response.status).to.equal(200); - const { _id: id } = await readJson(response); + const { _id: id } = await readJson(createdRowSchema, response); const event = await eventModel.get(id); expect(event?.startsAt).to.be.instanceOf(Date); @@ -166,7 +165,7 @@ async function expectWritesAsyncParsedValue() { code: " launch-26 ", }); expect(response.status).to.equal(200); - const { _id: id } = await readJson(response); + const { _id: id } = await readJson(createdRowSchema, response); const event = await eventModel.get(id); expect(event?.code).to.equal("LAUNCH-26"); diff --git a/src/tests/components/partial_edit.test.ts b/src/tests/components/partial_edit.test.ts index a00970c..9431d03 100644 --- a/src/tests/components/partial_edit.test.ts +++ b/src/tests/components/partial_edit.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller, Parameter } from "@antelopejs/interface-api"; import { Schema } from "@antelopejs/interface-database"; import { @@ -25,14 +26,13 @@ import { } from "@antelopejs/interface-database-decorators"; import { URL_BASE } from "../constants"; -import { readJson } from "../internal/http"; +import { createdRowSchema, readJson } from "../internal/http"; import { editRequest, getFunctionName, getRequest, getSchemaInstance, newRequest, - type CreatedRow, } from "../utils"; const currentTestName = path @@ -68,10 +68,10 @@ class Article extends Table.with(LocalizationModifier) { } class ArticleModel extends BasicDataModel(Article, articleTableName) {} -interface LocalizedArticle { - title: string; - summary: string; -} +const localizedArticleSchema = z.looseObject({ + title: z.string(), + summary: z.string(), +}); const storedArticle: Partial
= { reference: "ART-001", @@ -178,14 +178,14 @@ async function _createLocalizedArticle(testName: string) { locale: allLocales, }); expect(response.status).to.equal(200); - const { _id: id } = await readJson(response); + const { _id: id } = await readJson(createdRowSchema, response); return id; } async function _getLocalized(testName: string, id: string, locale: string) { const response = await getRequest(testName, { id, locale }); expect(response.status).to.equal(200); - return await readJson(response); + return await readJson(localizedArticleSchema, response); } async function _rawRequest( @@ -286,7 +286,7 @@ async function expectRunsEverySetterOnNew() { reference: "ART-003", }); expect(response.status).to.equal(200); - const { _id: id } = await readJson(response); + const { _id: id } = await readJson(createdRowSchema, response); const article = await articleModel.get(id); expect(article?.slug).to.equal(defaultSlug); diff --git a/src/tests/components/per_action_access.test.ts b/src/tests/components/per_action_access.test.ts index 9684a46..36fdbe8 100644 --- a/src/tests/components/per_action_access.test.ts +++ b/src/tests/components/per_action_access.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import { DataController, @@ -23,14 +24,13 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { readJson } from "../internal/http"; +import { createdRowSchema, readJson } from "../internal/http"; import { editRequest, getFunctionName, getRequest, getSchemaInstance, newRequest, - type CreatedRow, } from "../utils"; const currentTestName = path @@ -58,6 +58,14 @@ class User extends Table { } class UserModel extends BasicDataModel(User, userTableName) {} +const userRowSchema = z.looseObject({ + _id: z.string().optional(), + email: z.string().optional(), + name: z.string().optional(), + role: z.string().optional(), + age: z.number().optional(), +}); + const defaultUserDataset: Partial = { name: "Jean Test", email: "jean.test@email.com", @@ -127,7 +135,7 @@ async function expectWritableInNewReadOnlyInEdit() { const getResponse = await getRequest(getFunctionName(), { id }); expect(getResponse.status).to.equal(200); - const data = await readJson(getResponse); + const data = await readJson(userRowSchema, getResponse); expect(data.role).to.equal("admin"); await editRequest(getFunctionName(), { role: "user" }, { id }); @@ -143,7 +151,7 @@ async function expectReadOnlyGloballyReadWriteInNew() { const newResponse = await newRequest(getFunctionName(), defaultUserDataset); expect(newResponse.status).to.equal(200); - const created = await readJson(newResponse); + const created = await readJson(createdRowSchema, newResponse); const newUser = await userModel.get(created._id); expect(newUser?.age).to.equal(30); @@ -153,6 +161,6 @@ async function expectReadOnlyGloballyReadWriteInNew() { const getResponse = await getRequest(getFunctionName(), { id }); expect(getResponse.status).to.equal(200); - const getData = await readJson(getResponse); + const getData = await readJson(userRowSchema, getResponse); expect(getData.age).to.equal(30); } diff --git a/src/tests/components/prototype_named_filter.test.ts b/src/tests/components/prototype_named_filter.test.ts index e47f65e..6f76925 100644 --- a/src/tests/components/prototype_named_filter.test.ts +++ b/src/tests/components/prototype_named_filter.test.ts @@ -1,4 +1,5 @@ import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import { Schema } from "@antelopejs/interface-database"; import { @@ -22,7 +23,7 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { readJson } from "../internal/http"; +import { listResponseSchema, readJson } from "../internal/http"; import { getSchemaInstance, listRequest } from "../utils"; const tableName = "prototype-named-filter-rows"; @@ -38,9 +39,7 @@ class Row extends Table { Field("string")(Row.prototype, "valueOf"); class RowModel extends BasicDataModel(Row, tableName) {} -interface ListResponse { - results: { title: string }[]; -} +const listSchema = listResponseSchema(z.looseObject({ title: z.string() })); async function createController(testName: string) { @RegisterDataController() @@ -80,7 +79,7 @@ describe("List route - a field named like an Object.prototype member", () => { const response = await listRequest("valueof-plain"); expect(response.status, await response.clone().text()).to.equal(200); - const data = await readJson(response); + const data = await readJson(listSchema, response); expect(data.results.map(({ title }) => title)).to.have.members([ "alpha", "beta", @@ -95,7 +94,7 @@ describe("List route - a field named like an Object.prototype member", () => { }); expect(response.status, await response.clone().text()).to.equal(200); - const data = await readJson(response); + const data = await readJson(listSchema, response); expect(data.results.map(({ title }) => title)).to.eql(["alpha"]); }); }); diff --git a/src/tests/components/validator.test.ts b/src/tests/components/validator.test.ts index 15b70a1..e99c96e 100644 --- a/src/tests/components/validator.test.ts +++ b/src/tests/components/validator.test.ts @@ -17,12 +17,11 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { readJson } from "../internal/http"; +import { createdRowSchema, readJson } from "../internal/http"; import { editRequest, getSchemaInstance, newRequest, - type CreatedRow, validateObject, } from "../utils"; import { isNumber, isString } from "../../internal/guards"; @@ -231,7 +230,7 @@ function createCorrectValidator( if (id) { product_fetched = await productModel.get(id); } else { - const created = await readJson(response); + const created = await readJson(createdRowSchema, response); expect(created._id).to.be.a("string"); product_fetched = await productModel.get(created._id); } diff --git a/src/tests/index/inheritance.test.ts b/src/tests/index/inheritance.test.ts index 1eb7522..eb34055 100644 --- a/src/tests/index/inheritance.test.ts +++ b/src/tests/index/inheritance.test.ts @@ -1,4 +1,5 @@ import { expect } from "chai"; +import { z } from "zod"; import { Controller } from "@antelopejs/interface-api"; import { Access, AccessMode, Listable, ModelReference } from "../../metadata"; import { @@ -15,7 +16,7 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -import { readJson } from "../internal/http"; +import { createdRowSchema, readJson } from "../internal/http"; import { deleteRequest, editRequest, @@ -23,7 +24,6 @@ import { getSchemaInstance, listRequest, newRequest, - type CreatedRow, } from "../utils"; const NOTE_TABLE = "inheritance-notes"; @@ -84,9 +84,11 @@ class _ArchiveAPI extends DataController( declare archiveModel: ArchiveModel; } -interface NoteListResponse { - results: Partial[]; -} +const noteListSchema = z.looseObject({ + results: z.array( + z.looseObject({ _id: z.string().optional(), title: z.string().optional() }), + ), +}); describe("Derived data controllers", () => { let noteModel: NoteModel; @@ -106,14 +108,14 @@ describe("Derived data controllers", () => { const list = await listRequest(DERIVED_LOCATION); expect(list.status).to.equal(OK); - const { results } = await readJson(list); + const { results } = await readJson(noteListSchema, list); expect(results).to.deep.include({ _id: id, title: "Inherited" }); }); it("inherits the parent model reference for new, edit and delete", async () => { const created = await newRequest(DERIVED_LOCATION, { title: "Created" }); expect(created.status).to.equal(OK); - const { _id: id } = await readJson(created); + const { _id: id } = await readJson(createdRowSchema, created); expect(await noteModel.get(id)).to.have.property("title", "Created"); const edited = await editRequest( diff --git a/src/tests/index/routes.test.ts b/src/tests/index/routes.test.ts index 47bf924..4e7348e 100644 --- a/src/tests/index/routes.test.ts +++ b/src/tests/index/routes.test.ts @@ -1,5 +1,6 @@ import path from "node:path"; import { expect } from "chai"; +import { z } from "zod"; import { Controller, type RequestContext } from "@antelopejs/interface-api"; import { Schema } from "@antelopejs/interface-database"; import { @@ -55,6 +56,16 @@ class User extends Table { } class UserModel extends BasicDataModel(User, userTableName) {} +const userRowSchema = z.looseObject({ + _id: z.string(), + email: z.string().optional(), + password: z.string().optional(), + name: z.string().optional(), + age: z.number().optional(), +}); + +const userListSchema = z.looseObject({ results: z.array(userRowSchema) }); + const validUserDataset = { default: { name: "Bob", @@ -188,10 +199,10 @@ async function validateUserUsingResponse( id: string, validDataset: Partial, ) { - const data = await readJson<{ results: User[] }>(response); + const data = await readJson(userListSchema, response); expect(response.status).to.equal(200); - let found: User | undefined; + let found: z.infer | undefined; if (data.results && Array.isArray(data.results)) { for (const user of data.results) { if (user._id === id) { @@ -213,7 +224,7 @@ async function validateUserUsingModel( } async function validateUser( - user: User | undefined, + user: Partial | undefined, validDataset: Partial, id?: string, ) { @@ -267,7 +278,7 @@ async function expectUsingRouteNew() { getFunctionName(), validUserDataset.default, ); - const created = await readJson(response); + const created = await readJson(userRowSchema, response); expect(created._id).to.be.a("string"); expect(created.name).to.equal(validUserDataset.default.name); expect(created.email).to.equal(validUserDataset.default.email); @@ -292,7 +303,7 @@ async function expectUsingRouteEdit() { validUserDataset.alternative, { id }, ); - const stored = await readJson(response); + const stored = await readJson(userRowSchema, response); expect(stored._id).to.equal(id); expect(stored.name).to.equal(validUserDataset.alternative.name); expect(stored.email).to.equal(validUserDataset.alternative.email); @@ -345,7 +356,8 @@ async function expectWritesParsedBodyAsHanded() { }, ); - const created = await readJson( + const created = await readJson( + userRowSchema, await newRequest(getFunctionName(), validUserDataset.alternative), ); expect(created.name).to.equal(stampedName); @@ -354,7 +366,8 @@ async function expectWritesParsedBodyAsHanded() { name: stampedName, }); - const edited = await readJson( + const edited = await readJson( + userRowSchema, await editRequest(getFunctionName(), { age: 51 }, { id }), ); expect(edited.name).to.equal(stampedName); diff --git a/src/tests/integration.test.ts b/src/tests/integration.test.ts index 33c3832..fdb7cdc 100644 --- a/src/tests/integration.test.ts +++ b/src/tests/integration.test.ts @@ -1,7 +1,12 @@ import { expect } from "chai"; +import { z } from "zod"; import { toPlainData } from "@antelopejs/interface-database-decorators/modifiers/common"; -import { type ListResponse, readJson } from "./internal/http"; +import { + createdRowSchema, + listResponseSchema, + readJson, +} from "./internal/http"; import "./internal/shop-api"; import { cleanTables, @@ -16,7 +21,6 @@ import { listRequest, newRequest, request, - type CreatedRow, validateObject, } from "./utils"; @@ -24,6 +28,17 @@ function plainRow(row: Product | Customer | undefined) { return row ? toPlainData(row) : {}; } +const customerSchema = z.looseObject({ + _id: z.string(), + firstName: z.string(), + lastName: z.string(), + email: z.string(), + city: z.string(), +}); +const productSchema = z.looseObject({ _id: z.string() }); +const customerListSchema = listResponseSchema(customerSchema); +const productListSchema = listResponseSchema(productSchema); + describe("Integration tests", () => { before(async () => { await initializeDatabase(); @@ -68,13 +83,13 @@ async function expectCustomerWorkflow() { const createResponse = await newRequest("customers", newCustomer); expect(createResponse.status).to.equal(200); - const created = await readJson(createResponse); + const created = await readJson(createdRowSchema, createResponse); expect(created._id).to.be.a("string"); const createdIds = [created._id]; const getResponse = await getRequest("customers", { id: createdIds[0] }); expect(getResponse.status).to.equal(200); - const customer = await readJson(getResponse); + const customer = await readJson(customerSchema, getResponse); await validateObject(customer, newCustomer, [ "firstName", "lastName", @@ -102,7 +117,7 @@ async function expectCustomerWorkflow() { limit: "2", }); expect(listResponse.status).to.equal(200); - const listData = await readJson<{ results: Customer[] }>(listResponse); + const listData = await readJson(customerListSchema, listResponse); expect(listData.results).to.have.length(2); const [ascending, unknownDirection] = await Promise.all( @@ -110,8 +125,8 @@ async function expectCustomerWorkflow() { listRequest("customers", { sortKey: "registrationDate", sortDirection }), ), ); - expect(await readJson(unknownDirection)).to.deep.equal( - await readJson(ascending), + expect(await readJson(z.unknown(), unknownDirection)).to.deep.equal( + await readJson(z.unknown(), ascending), ); } @@ -134,7 +149,7 @@ async function expectProductWorkflow() { const createResponse = await newRequest("products", newProduct); expect(createResponse.status).to.equal(200); - const createdIds = [(await readJson(createResponse))._id]; + const createdIds = [(await readJson(createdRowSchema, createResponse))._id]; const stockUpdate = { ...newProduct, stockQuantity: 25 }; const updateResponse = await editRequest("products", stockUpdate, { @@ -151,14 +166,14 @@ async function expectProductWorkflow() { limit: "3", }); expect(listResponse.status).to.equal(200); - const listData = await readJson<{ results: Product[] }>(listResponse); + const listData = await readJson(productListSchema, listResponse); expect(listData.results).to.have.length(3); const categoryResponse = await listRequest("products", { category: "electronics", }); expect(categoryResponse.status).to.equal(200); - const categoryData = await readJson>(categoryResponse); + const categoryData = await readJson(productListSchema, categoryResponse); expect(categoryData.results.length).to.be.greaterThan(0); } @@ -182,7 +197,7 @@ async function expectOrderWorkflow() { const orderResponse = await newRequest("orders", orderData); expect(orderResponse.status).to.equal(200); - const orderIds = [(await readJson(orderResponse))._id]; + const orderIds = [(await readJson(createdRowSchema, orderResponse))._id]; const orderItem1 = { orderId: orderIds[0], @@ -283,7 +298,7 @@ async function expectSearchAndFilters() { sortDirection: "desc", }); expect(categoryResponse.status).to.equal(200); - const categoryData = await readJson>(categoryResponse); + const categoryData = await readJson(productListSchema, categoryResponse); expect(categoryData.results.length).to.be.greaterThan(0); const activeCustomersResponse = await listRequest("customers", { @@ -292,7 +307,8 @@ async function expectSearchAndFilters() { sortDirection: "desc", }); expect(activeCustomersResponse.status).to.equal(200); - const activeCustomersData = await readJson>( + const activeCustomersData = await readJson( + customerListSchema, activeCustomersResponse, ); expect(activeCustomersData.results.length).to.be.greaterThan(0); @@ -302,8 +318,7 @@ async function expectSearchAndFilters() { offset: "1", }); expect(paginatedResponse.status).to.equal(200); - const paginatedData = - await readJson>(paginatedResponse); + const paginatedData = await readJson(productListSchema, paginatedResponse); expect(paginatedData.results).to.have.length(2); expect(paginatedData.total).to.be.greaterThan(2); @@ -338,8 +353,10 @@ async function expectClientPreferences() { sortDirection: "asc", }); expect(electronicsResponse.status).to.equal(200); - const electronicsData = - await readJson>(electronicsResponse); + const electronicsData = await readJson( + productListSchema, + electronicsResponse, + ); expect(electronicsData.results.length).to.be.greaterThan(0); const loyaltyUpdate = { ...plainRow(updatedCustomer), loyaltyPoints: 200 }; diff --git a/src/tests/internal/http.ts b/src/tests/internal/http.ts index f85f7ca..1c5c238 100644 --- a/src/tests/internal/http.ts +++ b/src/tests/internal/http.ts @@ -1,6 +1,7 @@ /** @internal @packageDocumentation */ import { IncomingMessage, ServerResponse } from "node:http"; import { Socket } from "node:net"; +import { z } from "zod"; import { HTTPResult, type RequestContext } from "@antelopejs/interface-api"; /** @@ -23,20 +24,35 @@ export function createRequestContext( }; } -/** What the `list` route answers: one page of rows and where it sits. */ -export interface ListResponse { - results: Row[]; - total: number; - offset: number; - limit: number; +/** + * Schema of what the `list` route answers around a row schema: one page of + * rows and where it sits. Fields the row schema does not name pass through. + * + * @param row Schema of one listed row + * @returns Schema of one page of rows + */ +export function listResponseSchema(row: Row) { + return z.looseObject({ + results: z.array(row), + total: z.number(), + offset: z.number(), + limit: z.number(), + }); } +/** What the `new` route answers: the created row, with its key. */ +export const createdRowSchema = z.looseObject({ _id: z.string() }); + /** - * Reads a response body as the JSON shape the caller expects. + * Reads a response body and parses it with the schema the caller expects. * + * @param schema Shape the body must have * @param response The response whose body is read * @returns The parsed body */ -export async function readJson(response: Response): Promise { - return JSON.parse(await response.text()); +export async function readJson( + schema: Schema, + response: Response, +): Promise> { + return schema.parse(JSON.parse(await response.text())); } diff --git a/src/tests/utils.ts b/src/tests/utils.ts index 4e0f803..d9f3e3b 100644 --- a/src/tests/utils.ts +++ b/src/tests/utils.ts @@ -2,7 +2,7 @@ import path from "node:path"; import { expect } from "chai"; import { Schema } from "@antelopejs/interface-database"; -import type { FieldValue, FieldValues } from "../metadata"; +import type { FieldValue } from "../metadata"; import { URL_BASE } from "./constants"; @@ -128,10 +128,10 @@ export async function deleteRequest( ); } -export async function validateObject( +export async function validateObject( object: T, - expectedObject: Partial, - fieldsToCheck: (keyof T)[], + expectedObject: Partial, + fieldsToCheck: (keyof T & keyof E)[], ) { for (const field of fieldsToCheck) { expect(object[field]).to.deep.equal(expectedObject[field]); @@ -144,10 +144,13 @@ export function getSchemaInstance(schemaName: string) { return schema.instance(); } -export async function validateObjectList( +export async function validateObjectList< + T extends { _id: string }, + E extends { _id?: unknown }, +>( objectList: T[], - expectedObjectList: Partial[], - fieldsToCheck: (keyof T)[], + expectedObjectList: Partial[], + fieldsToCheck: (keyof T & keyof E)[], ) { for (const object of objectList) { const id = object._id; @@ -159,8 +162,3 @@ export async function validateObjectList( } } } - -/** What the `new` route answers: the created row, with its key. */ -export interface CreatedRow extends FieldValues { - _id: string; -} From 354dfaf353fe73eb6c92c09a6902e40250dc770f Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Mon, 2 Nov 2026 18:12:28 +0100 Subject: [PATCH 23/36] refactor(controller): read controller fields through fieldsOf (#86) * build(deps): pin interface-api fcc62d2 with the object ControllerClass default * refactor(controller): read controller fields through fieldsOf --- .campaign/tgz/SHA256SUMS | 2 +- .../tgz/antelopejs-interface-api-015a93a.tgz | Bin 70991 -> 0 bytes .../tgz/antelopejs-interface-api-fcc62d2.tgz | Bin 0 -> 71285 bytes README.md | 2 +- package.json | 4 +-- pnpm-lock.yaml | 28 +++++++++--------- pnpm-workspace.yaml | 2 +- src/components.ts | 3 +- src/index.ts | 2 +- src/internal/properties.ts | 6 ++-- src/internal/prototypes.ts | 17 +++++++++++ src/internal/read-properties.ts | 4 +-- src/internal/validation.ts | 7 +++-- src/tests/internal/controller-fields.test.ts | 28 ++++++++++++++++++ 14 files changed, 76 insertions(+), 29 deletions(-) delete mode 100644 .campaign/tgz/antelopejs-interface-api-015a93a.tgz create mode 100644 .campaign/tgz/antelopejs-interface-api-fcc62d2.tgz create mode 100644 src/tests/internal/controller-fields.test.ts diff --git a/.campaign/tgz/SHA256SUMS b/.campaign/tgz/SHA256SUMS index f78f4a2..fd6c1f9 100644 --- a/.campaign/tgz/SHA256SUMS +++ b/.campaign/tgz/SHA256SUMS @@ -1,6 +1,6 @@ abdbff87d78af3f605b465b1104c9a57fa859fbc14d8bb9ba396a49869269d99 antelopejs-api-6afe3e2.tgz 0a51c9c2da58c2586bfa5095b1da92a7b74130acf1e64820bfd5f98eaa4200f9 antelopejs-core-184eb90.tgz -8e017528574748687b246df07affa6cbcfbe931cc6086fcb5dd2c7a28c1f0d8e antelopejs-interface-api-015a93a.tgz +1a29379d519467fdd438ee411a93519956f1e024d4f457f0d447cac67af61099 antelopejs-interface-api-fcc62d2.tgz fa0a3cfa243d0c78cd29d45839ae61bbbce5615a7c8d8247755b0cd91c8bedc6 antelopejs-interface-api-util-639f38b.tgz 30391718e65481815db5b5bb10e7eabb1feac13165005ee46e54b592f3676c69 antelopejs-interface-core-f7df541.tgz ccdc833729f50825d3567047a22bf9c68f47a38ca3527117756fbd80f380fabd antelopejs-interface-database-724ff72.tgz diff --git a/.campaign/tgz/antelopejs-interface-api-015a93a.tgz b/.campaign/tgz/antelopejs-interface-api-015a93a.tgz deleted file mode 100644 index a14002aa7381a013df584a0655beca9a78ce3f4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70991 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 diff --git a/.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz b/.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..19969c5c96ce4501259d82addfb0cb5b8f1c22f0 GIT binary patch literal 71285 zcmV)KK)SyliwFP!000001MI#1a@$6-IJ$rPDJH!6MPL@9J}ld3sZ|`sRuY{fTRxI} za`w7h_J|mgh(Le~fRee2s_sMFC%jK`tGnkL06!#3NxW92VhI?`^z?N1bocahk9qHc z55&gN;fsUUrw4zzkDtxW&8Is%4F28R-1Pt5ezLj!gl#^4@^o`+>*>?Y9R~kC-eP~* zyccM^pGi^j{4bk#9?PHHpX7(l``I7!-cYckxF^y=Jetw+e?(ryS<1FMn<4v8o=$i^ zW!syZJB=R=%W~Y^*toj7>Tn#UljVbrgoY|M9>Ira2Pdyi+5YR7?8WixmxpJE$FEP> zkH;tM?dd_tP7dCj9KU?~0v?Ch>gD0-*~#G#Z{Z1cu+?ENML$mCGS1SX^GHI|k~3(%3)lvDC)kp^n1w4 zjP>}W5YSHcLaz`5IUDhm4+Jb8j9W~4LkU>Ou7(1qe?BGXIreR1<|+ni%5oOOahsN> z7{+7hsUP>tDI1Ht2VDnGHvdl>hs$yy5wAL$ltszY2-ct&@>~?E$GFYTMJoDnFXoBc zy9K9N@_%HL77MZ*f6H5Kd)0Z0IJu0Y3G|gSn?7U*;*-dGaRGpgMLvp)0tp`JjFaIr?hb{`XbLoL~r|u@e3GYltpnr?s4QQwZL)OOD2el^GV6ltYk?% ziedCJV@1|4uYkM?9FX<0NQ9dAup`+GH3${|_v67N$M>usC&CgR$LGI_URed5r&D^C zi(-->fAsTg#73ewQsP=JDCw4FW!w{5yb-2E1Y?6(DNEQ} z5JL)D*+sxpCO+}eI1%vSIL|I)`60C2ACE;E#h=)@NV2Q8!NNpN-%r-a4&R~}lg-A=pK4(|MEJ3DVSsoAKlqWT7UX{m6PW2u3 z51EfXi9MiZxpvsS+%K$OcpzIMfZ9?&dnji(VP8BXn`8V=~pSreq;NNOUg zr;KoeUuAhC@S(*NB}n}&H%b}>00#ibM;O7B4GLdX$3$qG0S%JGU?p;j5UyP3O% zt*C%h#^Hh9&&7}@eU|l`m6yeKd)Cr(YRSH6zt>_p>obvvUYTcU+zVk9&Uu1#bd|$* zDJmb6RAQe27uZM_22p^gvM|ho_%FhlTalJs_83`e!Nf*9PT=DtF3KXbw=As+71N>= zqrw*9aZyYJY#}||BV`L(e%Sd)ThY3fjr7nGBMuc<*ao~sanYL;xXa^+Bb1j?jr;{A zp4pnjCxrxeu8JOeSz3(a-Xxn8$&`(FegUE{H`xkM2UQk4C1ife?3t))Z|R;|}r z$vCrlwbQDyu%}<^X)6w#tMb?g1o=4f24zEDuyY|&mW!T1Nq#<~hBp@FgeQvpuChFdu42$N(kxxal`rB;{BylGG$K}epUwC|(Pli! zQXzN5UN$<9Q?1qGXZ{CjLS*5}-L}l6lIH>^hq!{JPC)u4sQ(va751*?_lcrjw#% z1ArI6BYPtky?7i85L&kCtF1%$sZ5mP{@_~@ySR<2G0&|r$#G*;X|SWfekZ3+4kVOk zqc{aRA?vZQh6fR+NgDbD(|v%*5Y&%5a?ct$7bTC=Q0dK<36Iu6I;~938dwi#2qFXy zGrMCbsXGL*7zxmuLQ9!I5-kn8$+?jWq6Qvcq`I0LNl(=W0vBbd(2hk8(*$%9$K|Ej zxR})7{fW9ri`pQx^!iJ~50<+1`uObd#X*ae;!}zE2DX!9fXZ!+V{?}!0%|y=f>~TI zt1D%Ca+V7op^a&XPSm0mgc1iouhoqdYA6|KA~=O`5xiR6)ML07uSjgXWQpJfm{Ycw zUVdV@b)0|^+*M$51*5^W!H`2$#Y`A>ZDH;Zna$U(1B%6cBWGaC9GD%j+JBaZRV;I* z>sekdX&cmFsqb+LDiD_q!Cd9ADN_Kqqn@Hpt+Ti$QC3wA>mE-njN^j*O@q>#Qj2*FX~*w&|m>IBhURZ10?A zCF~D|w!C=;fXZo=vkPmj8+^&AN&_7^ZW(Q(AWzWPktYFUs~Rn^=&-kGB8mbR zO?(T8jfGs|*gHM*{hrVk_fjvP|;&Ta4WGNzeSvk**+V5kdH zT_bh+NZ-HCO87{h-r)Xno{>=oY&$^n4z>{lt(c5OUWiE0K@hNkwIp&N(k{qBS_)$l z4RS$*Kb0JU7Mb`YdX|Vs!K)FHiviE+T*m~9_@afAxvz$p9rpAhB6~u~CjG3B?e@H_6>@($Jp1|h?HT)J|Kw!<_1WRUDLX!~kL8blWc#oG!T#&;^~;cn zm`;E{fp@epGl@~IM3$S>a1i=Qxsp>;c15T{gD9_x*sRaa4$qDbLiYOj_4?uKA5RWn z|8(%`;PqL^ULBmg_<8^J+5QiQM~7$sKoa`#@a*-$DTNR0%Rb)hpPU`Oczd*e!rr_+ zd2@VvK)WrS7AA1Akc(oRrA3UV4tO#{R-sESd_2yxaUO$ujuY;)3HnNr{*1)6{H5e= zEQ-kpZ51W1;{qjnk@aG2CX-N?=d9?BwGUdW#w^j^e{|T9Mk#!B6!Y^q!Nc=I*m;?_ z1lk2SsE;&b2|7E=p~&*7Kz$v4aEQxVo=@G!Cyggpx=p*BXn4ohNy2PRpd{m=}e} zfqkSCHLUuL&!r1`JNMGJj=Jqop=#ScrfRUcZEWwJr<}-XPn$F#T~_2V8(csiKyfnbB|Qsk*0k|oVtqi7Y?d3Ap8 zpwurv5B4*b@!vql8(fNuPAQ7A^J}r9F=oeqZ*J{uJ@(?icb;uN`4a#A5I-%D-yp(z zWo!2l9RYPHc==79ffITfh)w867zZM%h6l=Ygf=54O(Uk2m^{aV#TIPa}zeIS>K zyWey+;MF?4YU!=%&Hg`*j`v@FI6FT6aI}B&)4_++v;DKTr)-byY&~vn_3GgCbpNLV zw#Qm;_%z9Q#Llve9f2X=+I_U~?YEEEw{Xn}_pK5C6ptn&c0R%5q6onfMah7_SP}mV zea`385}Xw5+l|HWwzavv!@k9T6ri$Sz{n|_oD^)2rQ(YHBKXBCJ`UO%w4Y?u210;m zcATBi*I>QENgmx90D$0w@8J|-M9%F`rE07GwpySi!Ct8;S7wM!b5Tz6v|zZ9gch8* z@*L@v599!$?01jN$4y)A28ocTe3B3x%yb5#RGpI%OYMi*B#BN02mu(a&yzyX>$uMX z?5=I?HiY*vgxF`3;z+`X%{mD2u5M~QWP9utFNd8G{}fn{a(*QrE9f2Yi2d(JJq;*OSq?$kivEq2Q6oi+3&AZk<-G^}fC9;$3&~ zolPgR@eCV7Wz9Qdh|LPx_6tOg!8-_|pqC3?3Mp>SvJ8do2@3R}7P%n#WFJ8w7Y|O~ zp*O^^&&It(@N_Z;JHvZ#gPZmHK`Y`VZ-p#NU-FV$pjR4-G{SZVX*9E0o@Y5Vgx{>D zH@hB`G$sJq8&1-T8c3-faUjqbYNTBSnwcHQ;Ven%sLq|A&(7Y+woN*6*sK@h0xhd)QtVQJIz9OPQ4$p) zZf=aD-U$5+c^V~f@?7F+FvaAg7`3PMYYc$u!r3*do}_Kas{rzH)3>^#^K6nv1-rs~ zNTocODLU*Fjydr2=hxrk^+%;f-z=fV zJGwb70_x_xn5I3Z$m?6n`qFx|!*t5X*<)3mi0HS>r;g($XZ(uCB`O#I6mCyhUyA`+ z@+=RoAwZ|hv*~eqg3wAGlijr2j!2uvB8jLYn`Qbj1&UqIlQclab?zeR82JpnM2`Ol zy=NOeUiOCTJV{n{3^3dOv$g&7=`+v&^K|Qr|NmirT>sA{&)J6$k?7$C9ndLI;C%B9 z3Z9O6)dq`8Z#{v0oWaIg!oE|6>_SXK46IXP0y^)pJ;w6^27woHPYfAoFFp2m_Lx1F zpR+E0idJ4aNfP#4{w;5*fH{ABl`0q2ON`$egRHQIZ_8dn78zp(y!Tn3orpf%xWxfl znat$?^K@Q!3@V_VnsBR)Ap4Expkdco(;)i-z(>sXnE6U63F~ZYm&NS6J+`^a;`Q}5 zLLND7-^K3}upItZ?+*034WWx0MLQ!= z@<`e%9_^@C9_?I&?9$ejmRle*p1(jeA-^3BX8}wbWEEO`?tzNW4%0|{3e8G*x|M0| zP~x@uz(t_xv%L!&(8`>!XP|L`DBn+#7b@3I{@8M<)wkH5+hWV|;?mX)F*u(*4{T=x zpBm?DUzEM!2iQ}5UoF0&V>@V_@SBdK#bp1u<0 zFpJuOY$E9rTH4*cfrk*4+74ROqi(MWzeP9cyTCxLko_p>w7DUUgy~;eA$xaP!d1)n z&CLmavUehn_M`V<6M{N;@CeOA*0L9-6{5tSLkQc;5JEBO_v23v8JyyyRS>~;BN1#b zLj)UOI{zCI!ghraXlWKBgU8E|!8nhz9Fm$jgaBbsy`Y8&T6hh#*Rm}M_~PX><)gS4 z#8J&hA0v9({rWnNZa(_osu?s9-bV#&_v>qDVtSZIhL0P`@bO|~NV8p<3|B=~DX#ZaAB>DNuXQ(u1etxTIzEIPE zDNf*m3oqc9AUWr~i>0QvalY!QX|0}boHq#7#!%IYJAS375Ow~4t;VdQ>9sE7v2T4G zFfac9@iQ;}e|u}|$ru0sgZ$L_|0xaIOB03fxkjD$o{MypMV>K?>Eb187CB&n^ z3kaxhNdjwi@zKrh3cR4?a>Sr~y0wQsM-TQu`yioVmm0R(?WNqB=R6mOX@S=_4-53< z;vF*`W@ah+nzLS@PeWaFh~?)@+86c~7MDSbQXatZHkv5}7hX5R(V5?`>aS)uG%(BS z74<$7Xwb4GuY*W+L8B81F+N4wIr!&@z&cz1`1j`449B-A{q%$p4+~9l!p^v&UcL|HJ%zk^gs<|1y;1gN%Cd&$i_2 zb@|$S_u}~V*~#(I(ZLA@Q^R#KKq2U)z;-RbgT|}M*m9f-KbULF3k}9-p0lgWZ?_HY z>h_{nqU3NES>SEDh$ZobP)EPojm1U+;)Z?S6zop97(jM`9KyL|w#A$_r?Ff%*>RbX zo2_wMf_cj;4ApH3zzhu1tPKUF6px};a`2#Kjih75Lkl<7$29V_hP+@mY>&Dei1Gzx zyoj_5vcB)7cS=1PY(#f))hG zsD62ng^v4p9iFmANX)N#y=34jUUR?YY8Rq>Bj*ydB;f91TO3of+8Pma7Q3eFr8F5e z&hyT4tJx0O)=~o@HkX)0M?qGdS(R`w(~9bk^4REbN}`=1FRXB!KOYIX@V7#^v@(l= zENmG1(J0@~b3Uzfy0nlmgOHTaei7EN=>KL3R(cC~Ui|0gvu!{B!{f~__kSPc=U(prdb(xx&aX@)ro{&ajk}NP zdSiQ*tHU&i3*P~<$12ZE^EW()v}{hdm1p|q?8yYO=CI1PYO)$ZesgoRZ`u2^^nca8 zk?N2p45}XKhS~YA*6g*92k$qqk6@a8#I%4)vw?dOS{?84Byq3e(ru5LNdL-8m}{8` zNC=SF0h?bDe82t1=r_F`)x@`GUBeEHfs448Jb}<)ybs{^(t(Q{(;z$lHDvE3C~8B& zI9jPlXv?E7JJ33|4Tn9BYEU;q2rc!#W!q7gJh863yi)O}M0heGxJvTqtd~v$O_#nY ztjS{)0u=j(pKsZJi76|lqw`E=)BAP<|E1F)u-f2WJib?#7_5(fgve=SSgLC&M#%44 z7ijS|1|yg-W3vT%6i2E@$oNIdM5rr~QL#R0Cl+u4NF(KnCy>e#GTXAabY`HyssL?R zf#i>=hG4@Kn38cNX0gntN+oSO<49_bK0tRM8Ln?;3~AIlYXDVD1XS8NW5DEdG?ge_U^`xD{uet%SW#~7n>&`kPv*&3on!0FKmCR_|l2pDBGNqsXOiEMWoS&r$ z1HWfE)7Fdm$Q9CueL7df{v{!Vmc&LAM1QFSZ3RAubZRX&6BurEl7oa;h5u)qA%!jo)2}>3gIaEmPsrzfBTmiPVo2mrdPS7f$tWUZ#P?W<%t% z=yb5Pn$NrUvnF6!dO+Qc9aV2SdjKmCX+`URl)d3Uw?(wmhmYL~_neB-v+FJAP`{b6 zjKcFfvKD=#cl1OS^?eBob3RrCQ`itAF-t35MJf%7sBm)iH?K%V%_tN&@G@k zH&XG6kIlulxkAq2{pZbM$!XWs8cB8VPiAmDxz#|qLy-^ak|)ahREWd0ga;wp+Vn2s zc5(s5t%87u>>NMP32^WUc&qE-@x(G}_+TKwO*yy?2bm)@CDsd3MuOL;= zEMzh0R{C#f+{M7$x^2l3u+@0{inZ%LuugHzi$E!KAr}30%qjbUHN2b(FCZQ{AWhvg zx(Tf_q)^_9Fabu7=5(ZPQNY-;*XACrB ze546~tXM;YH<`IhBckGOs6|ImgD)#FQ;WuQaAl;XjWf9#-la!3I|Vk;gyumqiwN+z z*ARh*z#LJ2{QBB4UT!wNzSh5gG`c(W7#ioVTGJP}9JDiHj(lU4s-n-6Lah%U31h|b z!gIPvho$tpU?CC;0PIf^s9TUytY1MD9mWafe1LKSY^36LsWjXb=6)}RJlBOCzNNt} z;G}zCqgS<3Yg|9_BS`1zbOPvpY`MXF*qmONFh0YP3unAHpR|?>HC#A@ z#@zxFGdx<Qdf>?1y;F5VvT!R#X{s24n{M7Q6s8QRs-%}6~ z_2Q%ks3nZ~xdF7UW5qsfIr#xJ)z_Hh$ckV9_}Bc6N2}t+x19;~cl#S?yy;cVeQbXP zgVymyYwn$C3TxE2n(M}Lt~JBN&1L9Cu7&@J@(RqIy-gd-T#digZTR{H{bSvNUkqc4 zG3wHL)XM+c@$k0K!-zH+`4)WWm7icszNxf0;a8a9@B^h~u4`f>6|Rm_6lOO48M7=e z*7mC~bbLSivcIfYlxtf%? z)p2z-V~@vQ3yMQn%oSixvh00ejuHqz1m@%FNm&K&E&${t!s5)0zGdsJ$6Zi#D4CBs2*-JaqOnw!%ty}wpt`>gRLE)U5-9N^zwcD`kL^BK}RKxbqQ@Jrtc$~H>69Z0xTk~me z`X(3P(;%0|45+tUuxtC8-^+I0UL-+;3EBw`ZS^v^xoh?Da|F002K7 zo)3z5oA0%~V-Sb|I<|FiW9|Sfvkv5UzWYL`UH*2n0P%S)DHI(t*=7pGc z5g+!Q&6_{Uno2zUzKe<;@4K%ldYYeKi0R&+l)=bV{yVIN>#@Hxm(?GwJP@nBYaL%O z=^0_$t@nQev#(T^<(O2_C3Kh9kXt5UR2_Hmg?zk0o|&arXCX3Ej*+E+kssX;MB16L6iDi; z#bMf70w(Q&SPG`QiCN88o+EZ1Yk{LyieR{bL(cTJ-k%7lyU8Z$u~-Tj^v$hMp-VJq zC1Npk23-Ri(u!lQMZ6U3&ZjGy!phfp%UWcbI%`_%+jPHe(~wNOu*&`)+u+M3TYy&W zbjf<-@G_asp%R&qW53rE#S(I7OKq?+y!=5)TW?smgxZ97KP1?-M>)4(#!3$>o`hYq zh!hS#r}o^bnlRgjnl|%wHr<8O!EI{XH0x;0JFLBSDWbx0(tV<@%H4X4u%=C2M}_8B`0fj zDQ{SMy;&C2;$_2hDD$nUQ+H8Moo|j$7bnjd79~?wC0zDkd#nXBXf861)gikc{tG+q<_=D1nJ)zZ7 zOk+4~$XYbu;#)~oB~sCHORGe7c-_)uP!pqf&*I@8+*j2}%l{@3GY&z^btf1W(vdG;m$&qMrtuJylE}~W2y>iji;R$@IJ z^3r~eui#tb`f5lMfRsRD7?O@?+ac^@KRQsbiEDY}DP2jjiox zoz2c>XRG^Ub8E9@O;htgKz@vD43D*&IWB{bUthzkn=bqMTE6X&9tA6bn$(T;3bnMG zk0JAFQPf2KgT+oMvZY$q(7k;U40)wgGwBiV)iMeW_ZrE{5Fqz3SS&8}TH*T%>%7|NS@KY`B*!38^>eSyV|{*WPa zdk$IaFzsb|4jIDq6wlFNG7mN=h4Lbsq!o9NFOmp0)4tjRYR}cDTlKWz5TP;;=8&Ok z<`QBqiWzix)11W9QSDHZcJ#l&gy&JQ(%MgdS)l&+=3`&~d%UyxMgMz{pL?nQ6c^+j z#5zp$tMd};)zC})b=Obz%&BYgx>H7IFS{9P$Wk|4__0(FLXQnw zjWR+DfiIT!zrjz9{SVsTI_d{n`UOQmbnuhS$v`jF(NaV98G9Shb)zPvQ(tkL9`Hv4r z$3J~II(&6_#`f6u=FWdu)}*RVOKSXSIXMqplUbd2ldHm-c?Yb3QJfB5iK5^G5$N}b z!Om&cyAWm2)|M~!qb$WeG8El+lN>aY*2a03jarVu?2mma@=H9PL$CwcffqMqoq7qd z%M^il?r}{#cKs9S+~DJKl8d7Z)TtoJ2KX5?rNTJy#BPtn98ph!Y1@wz$VX~-&`HFl zNDirtgeKh1k(BvI@V0Ysa&oL{C!dRcmWu=48wS2_AIFgCt08T*d7-IK8&;}dd|;;L z9VqaADf0Sps@+Y}`5i(n>zA1*uz(?EE<~LQ5B_B(Ccs{X)&7*N{A6>pv2L|&jkb23 zI}3a7}C61tYi=dCHTPb7ac&A*6M!|A}+0 ze}=uAW_V^KqQIVGtwr09Q=TMsGf|&`yma_#{2oj-7DWh(78UcTZ1_v!hSk9V<@b; z>{`-U*Ual?t%eb7bc1yP6NPX{H9IgffFt^GUJ%k}6mVZP#%(}8E39krlVk(1;zTc# z)C?jg7h^0?gy^n2{{DUG`);2+#F{puI?d8`STf}%yghO$w@c>dPWgi(X0rw{XZa-U zaVUla7&*@(I4w!CbU3vV$7{~s%hF_%Rj)jYB+}WBYXQp5Jf}WaIrw1qhb8zwjO`Q)7)~fXMI)RZ;XOyRG z|IHzT(;ue>oopcs!kbEilOiOu;~P?M(~?n=11LJkqbLTGm?uo#VXCO#&*LQ2A5& ztn$4s`v)6`HJyH*jjXbMIExI*`HIUpn>aHEG|7td5b79Nh+;LhT;VA82icv~%Q`zF zlaCf4W9Nd!X)l>Tk1_3oYKC5q>I(9HWv!qeJf~A8WkU~g$05Uv$$xrTgeMumk8z)T zB5;IK!BrqX$DqTu?phrhymnioJ%zM47Ci_MjA|E5*1&|;bTO(3@Q_iq4Lz8V;%bxf z5zl);qZT~R@m<%ORN!fMzs71=G{QR!(75Eud*D4Ou0&cwF;97qy{J^!mOGls zFsC}HHEK;FyGc^o>E|pumJ3-_R?usJgnVM3PkRlpTImZ*4mhiVbIvC{C>mw+I!TZa zKd2N|R@wTjCcBju(kUQA2^wa3DoZMRF$4{qCILh}sjz4|5S>9MB(QfjcS2C2+Ai_= z@KmOx=1#vffcw*e;3`h3E}O31+?>18f@coaNQm`akU)CHW#Nea27Kc8D7xspF$B}F zg!-ot1CYrmU36xZ0_&pw=jrk5rRb}MRIC|8yaMefb{Ge^`ym=h?X3E+w~dV}%!de* z+tRG>*mIh3S8rZU5AIHe(}F;s%8uspG8Wrwh6fPVA?(I|LPLA;u|d?wR6=#**CMMz z&`6+X$Dn0ycO9QNEg#{5%nA)AH%}EBst-40WVnWfZxYu^rfL8!)sVMW78< zbU0rdXyA7Ums7Wr;dk#fal3tM*+Hb)+$bW?iDb}|twGp3Xb+{*@r#D3orqC(De7mZ zb+_BikHF7y0BZ*RLe5&pNF)Ls`lboZYGH;{L~tRd>x5|ZS~t?O#GX|0eTuFlMw^Uk zR-qB^JaPa81udJDMm@X@^e-lP4&11fyDYclJGz9^OfBz_7wlXJTzL^e(_DbMbtxie z-eVyy=1qJy|D1|a)*jc}B`N0MpjuDjOA+DzIe>PsiNe+gSd?arnlF1>5HXxrj$bu#Dgly%ek7-JFnZ&imyE+Q~ zZkBJw0pU5su$%9TB<=~&7iWB5^|3lVc72^jqR>0$mf_Ocze@qox%lUEJEHtKhO6s0 z5G5cVgBuve&|%Rvf-Q{<4Ji?>6u}ve3(eIv`%LBdz@rA7dkw)jUUvsyRM8Lmw8_Z7 zPub~oY+3H!dTdFFxDGtq>Q>m;zC!5sYLyK1XnBr&@xN@?>76yW1Ilf5hm4p2A$xNdQrU~n$8M0=YG|bw-dLYENuAPD=%W>AiA(QPc)@PWPNa9eZtY!A{Q+y~mMTj;ZZhfo4@Ig! zxoM2b)EK~fn7rplJwVvRsmNoV#QzfdSWkvd#G{djVqS`5+88V$Rb#lXh%u^N)}lB{ z=Z4}E5h&jNi8`e08_XSyowRJ8Ihk7E4=Y*A+I36z)#@rZbvV=F-8oLZu*O$f6P&W2 z7FXcL0Mj0k#?5`5kX;RVDK4c`lf@;w;stp@8!-VC8>T677zvPFt?cdK^sz`|O0WKHf2eQ{HbARo+6-TY^*3DYTS^yEG1!=vnSu6A$ z!1CZ~;2|StWrlueX*HE(-?KZ!5fNS;RPd6{4qrl{giQ}m5FFfP@3tT%%2n11Nh2rZ zzOPq;m*x&$wz{pYzdhSr-`rZ?+&bIb?Bai&&CSjKyA`$ohF168R!ATa1PDNFRNyZ; zAG>(8y>dK?FmhmoN6Qjljp)3}`FM;bdKH%)`)K!?Wfy9%1j23o@A`hL%UZkzf15gN zrfcyjE=s!5*SJ>OvNl+2LG(&+JJxxdKlp;5Tg#JOw7M{{g=Lo2jq!;iLLf5^pFbH= zo`|F7;9X%+;`|4|`8mX9h8n?(hN;Qs6|jFmu+Qt{>l-013J9Z~=}aC?lus2z|7|&U zISzAt$Dws)yb>a4Rf+rG^?mS2gNT}nVo{>28}WJPo$l>@wL6-zIVUn=!E@g)MkDoe zR!1AACv}q1`rmbVTF`=H8iekybJZQXv$d(^6pK&diJv?!$gWZ&oZQ$Y<+A|y{5d6m zysgCF2Ies0>9*@2&4)rjPBcoYaoi6y_{e{U=}^Ev76BiMPZa&*hDuwDAWuzb5hPAp zvk262%BZ@D!*Y~ViA&yF0ny#0w$F){mF+u9ovjRk!2^4GB;$4JV3@zj54UA$5VO*b zKz~kx2Xr7|+38MP;J?_YtrLT5?HL{~%CME0Ne9`BEE2F?Y%kl7NGnsu*#2AW9WW1v zG(tleOLk#s@qN7joZpEbrZe0Vkz4>%yjO7OA|JyRx(-kq-iU_*8>bIV! zIy*i{BN2s2hKs^RF7W0KZ1y?;?gI7!zq;n0>S5409#=1gF3wd|BK8>O0d}0FkT{R< zHdjP=t^1&mMXzxD8B$g{{(q#bm8bui=l|b&`s|6H|7Uw=`-}hoA%5!o|0EE8h$(QS z>i>7%qyImU>NdS$&sm_{&_NcmQOGVrcCoF~!}VEkvF(PHwi!HO7sO!z2Y74Qo>Jro zqCCDz)j7aRof0sB&XvH0s1*DRK*Ca^5Uznwp0lq;*6{=D;$zL^@C82TWobViOmcW= z#j;9Zu9-+DBY|&8cL^bmrmGJ?z`d@#-=lXI?|0da^77I-XZ^882I!%zi6~oG_pTVs z-d${irGh{_x&g;LEp8!7LP7KSj^AW~CB9UUHO@~T@`SZml;<~>Qn)e;rFQq(JKYb) zERrC$kF8Eio;RLZ!AqJ=HNzlul3k_$C8l6pn$hiZaPz*FEMN1HDBSa~%s)nlVGzQ1 zULJ0|W-yqgR%x!iJdM!LS9|0Tw~?}^frG(A7Gs_X7PG&z z3pwju7XS6Hgt&`$@q5&uHNCWb$rh+wf}<=78GK;r3RNz!o3|^7bFPa3Rf7JsqU&^| z!~H<#Nb2E!6zPQBD)+aYYrEplSQBGZr|{{jCo=bom=l}ANI1*cv1?J#oWB|>K!^ArGiM> zJk%M~t!I`l?MzV8unibQ;XBi)j0%Xa^aV#J-ipW?AT}7{yug$;s!EnM$1IJ@%zmOO zUD-=4ya$ug`@s4Wf}_n}FDb~{g3eo2%wt--$+J&WmkwWKdGP|bRk!on=SP^|#c$|W zWvZoxSEA(B3yGpPd7R~OX~X2i7wP#O{J8)2=DgS;^qFa7eQ6T)&-l_Zbo{9i zcjvP(g6-CG+0gGm=ars|q;)&7wLzESx`jH@t^LmAo!{@(vg2J`*p1YK-A9%pp&n`_ zP5$k1hFmC3ODEj>BtaF=zSx_vXV2 z(^^Te-FN1jCPAR^S^M66t_6!~PY=BQEs5mxtDak%azpde`sVdCklSnT3s#R4=()Ar zN+A2~=!G+}npQsvYaylN_uIf@tI?#k&BSh^Hke8)eBln*(30MmreNo2GxCGwJ@LA8dcp#`n@v?qnR~KL^iNU#nttDz9CMbl zqSRWSR9>4eXX?zZ)NO8Ruez(6lOS>*TSYV~D!y#*y_f~=B5)SAB=M~gIi&Z(o{~0c zaI;f?J0iQzCaNQnx~8V12HUHyqq?RImK{QEo;3KEm5+8sPUV{T?-7aB)x>`PWv>7C z@y^!HwqO6}+2b$ye;?$h&i|__h}5{z)GIIQ+vv?9tJHz99cAdb3R6sj5 z;Z_?#_8ZMXgG{pnw_~(h3!GTyD|Ksboo#_*>pOCAt*?_yD{|U`y9%KQ6y~BJhZ*<|R7RT0U%?qFIwlz44Ea1m(wZ12J?sL$yVhSvYE zJ|XTZMz`6jI8m;O*>^3j3jdw}Y0_E9`>tEk&k)meUE= zo3FbO-8#Nta?F-}npPTE)Yl(+y7w~OT1n05Y&VQX-&Myt#JHvtgt~Sj z$}&}P6iw5ij-nYosdZ}X>2M@tdF?x^6u(q+Gslix{Io7f2g4R~w-%@xUw1!uE)Z>6 zE(nFm1?5J9+YK<>yG6Z5X7sw&&ZOir`;#*8LP~-w$RYteo>XU<+9$L9s!qnb&7 zdM%4#Hc28(U3;DjexWB)g;jo{d~1@fYC+cixp@nvJBuMNgG1O}i=*tyYoO(cV#J;{ z(7i-)@@Xea1AW&>1wQ$KVif=?!&G_Dm28VJeyuE=3xO{KZszZI^)GfG8O1uF%SyHs z{YgNDhSDriNbhzDu6q&VXrr5e!O5LFIn4XKddy>D(v1SI>Vy}JGAeb_J! zb4o2s63ZoO$=gkHrYSpYQ{YC({25p3BJ0A2?Lbcfrv@$kZAg5=>xrvI9w|uoheCIA zTM&~(FtX;rpNCwKpKePm&TRjkNo5%<5~0MF&hlrX7hBi5E!ot~eIe@kxsHO zJso_po$FkC2BG?7O}S$ai!8x=)tDz%yBI6D`w{*)!_-*X$J^s6_;*LB{u&3bo#+Nb zUAnCH$Yi5xSD4H;lzOL2bxqA+$B zCqyjRCo64r3K5z^A+M$mou{_$Hr_~E2uRJLIXD_k@EEm1iYngSQxFRYnL0-JK^~B)g*Vhg>Z%>Xs z{IGv|a8paeT50=eb2}@@y1ClEqvUS#l{L)gtV89zNjbs=$M@Y-}aIlV1hC zXp(J(+|6X4)`~6!3=UC<@+=;SY*HE+x11u5^C`0!Pb1btGh=jWr_!ml+QJ;iRzn*#=_#67Q_;)=G3J3k{fA;p9C$INY-YwLjL+o8g&I3- zUYAAX3kxsA!ZXHpIM}XQcR(y%$H&CKa%fU?YFKz-xuMdxhBJe+YC$2WRTzbxpu|dd zYn;tCBhOUgP%>aDStYgllZ2VDpapd|y~E#4XS2e;?$bRmgYVm$~MDEpp z3=XL%4*x#qG0(XW#?07o!l)*6y}S&5kxf_ z_kJnDKPqmfiIt56C#v^944gdPAAuj|5H-G1#D^=y?rQo%6gD$ngKuv}_CxRP=pQ-r z;g_Gk`1gP75}~Z%2Jr0rzuV6qZ$0(vKW#sG^5y>TL;Se+e^+$h?@ym^OWjMHlR4m4 zSpw=a0;ns7rO5ldCqDGDT)5W(zvpQwl58w~EjDz!b!cbq1sb+p^xF+P<&o+})o6Eb zBhpjT3i1{BZ79)IH3OC3&Q3d}^DLdpYRpwsXDQ=MY0_EFbpFFfj50LIqP%o>+)A&3 zR~D@n7hV;p36fRUkIjRi4Ge6~8bUSagz&pyom~ zxH$>lIv%b0AXJ!b!)NVXxjvZjOCx`NUol+{R}--VLww$bIMr9`O1$i)gR{;juGE?~)6Sec$xh0&jetxB~;*qo)NF^{vd^it%dEF{JbUqUUVbTT>@ zE@ze5Ykb(mT9~7@%O>eXnq8&suIxkcnBFS~Wd?fIwl@F>zyG>vZYgi#a}8|ejS zKTug_YDaGi#_8;~%&0IszoM$`%1LJ`*8MQ)_eBohvol!5xBy~@;}b~xF{b=QSdE@v zVOe(8&$AJg+DT%OmLVLu4571roCr1-D68f3$cakJV$L*35J7eu%%CQ7C_z4;&9?9GlX%zXg_i5f84X}nR!}D{PLVp= z61LxdWA!l9A96{u*+b^(;9uBLr_89|O7MrROVol`Ng(ky#h}JAqmOW?E;~#wc@k4e zHcXsk0tA#3uUXWP#f%9yX6%ZM0*9yU<32FsVM&?(|Nb^k%m2XAMc;jd<1r4bL^49? zbJQ4GL$<)UWI-VWyZ%0j(+g(u;@z}6VBU4NZ7Fyfk)cHn$%}D37D=3n0GI^Y zc0fHK(hH?zvrGFB&$Z`CmL<1X$7iylU3N8Fr=bLMemZB@R1~b=nZ-pL8|w_m=^zo7 z4T8=sqnb(j?$Gww<0(6*w@4Z5j51^D&kGjlPv4##u`w@)ZEE@76Om7wTmBPY(|#ns zKn9aGx`h19wwKveoFt4VSA1INIu8&dRFo`B1x=;HegyT?42xUyC>{)P@4`UDkvcBJ zFA5fj&Y%-YkgQLW_(HJfB_HhZZ{YvuZQQpM*SY?`8*itF{g*+h43_nA)&}QgrraJ@ zdpcxbzYIk#tQOvRwf%U(j%i)jx~>>iWiD0E`?hCh4Ge)byFA)jd#1ShNtD5wnK2HoJV^w| z_jGd8^V2FyJ`4WKW8g_S}m8-FUfQ_S>Qq}fOugrA8*(fgA zV=a8#T1r)`6S+o}DX!wOH)H_~QBiVuA=IE<=Z&SxXrE(dCs8im0qkB_4fTg>*Xnv> z8KvqH6X2_ECwbB-1kZaz?3*sXK;NEXWkG};nCzma&|()~{q`H~k?!X=HGmRn%!YJ( zrq>mb&?&Q{>`LS>ID~w^Zv@*d0SSFW5=Z#=-R66OeY*+h8xtJ5*nTNJUvpd`kQy6P z(R=YqA-fvJy`c&!s`v#^Mwse>Z%>XwpUDf`s#Mt!bCF=;w>TyL2jmj7cSU2mUJXUc zrrCt0LPV?&EA4r4B*c*@d7Q{Ck>?^^!wraE@;D*IS{Ad%3fWmMSTPp8xF7c{@uGI) zVz%lCvbaqiqSN|LE=E}?_M<2lMX_st zDkuClPvpnIImQmzm5|Sqa^tQBB4m?1>DnF75`gBw?)TRzwemQV7p!_1#z!*CF{p0Q zQR|TLB*Cjy(wj^5c%|wC{m5-!euWf>>fE`Yva*WH5Z`L>*BJyVDRM8T;}~LArsP$J z2v-bxfeH&cKs6%(rr29Qh6*A&O`_{vQ>U!6m*~FN#Z=p!C#)pu&?u6IVs(+2F7+pC zu!8Xj6-{Aj(3^^R<}29NNEXQQ3d_nfMx8+)Xn<;z7NDZ_>F_QFDF7L-p&4DQTgRov zQnm#PPEQZo{+Y{kEZ7UH$U2S&ph@rp8MD-7YgiU{obWhZL=B|xNe86gU&2l5?`@lM z%`P3C^-7@%?yj}vH(mCI7sVNgMO$B^RX~JFTuOkmOQ6DdB&ewwnyMuSYcGbA^nz`z zSyITlvZ8M;d`mh>!{^&;$`E$ih%^e?yLjpXcXe#IaFd9#RKj%wXEjuR_FFxv*O?PZ ziu;L(=+g=M@~N|;QSi9|4R_(J5XoVM{N>jQ#_nsGPMxoG*-s)BdE8@X=5R$3@IH_Z za-2SSA(3aDw0X80A@yAJVP}oYwStWy5-(CMr3`EGPWR}956{`q;l=592r5qVxHp6a z@<#LB&-Mx9z6C0Xj&8`?%AcE%={D)Z| zJU7~Iyqj@m$04oEICIWE_r6==1lIa+_6GQiI6tLJVJ5t4j*?`u}{Chw9%WQq!Zyl`lhP+&}RQMM|UK-S+Ca<726R_6lg_{}q+e%vGHHn(F zkOfpR!QT2dHe{>?SXLS89rtesE*&6#R?$m0_ys>sY4{$+2E(QannzY4s@JtwBK(a=E( zN29-C_wzlvzzlpm7Cbk@f!bA&U0@sEiYY7pOwG&%xM|U0o5}9hX&+D#V{(S4=A_2> zeGxqAtwkM)T`??X6+mvP~OSNqojo!fjIuj&2z-P*6{_k@S<7j@zyI=!`DKv74B zmQ>X7ci2gb;Ct7-9;}sou-0ZJ9~8=o`tH5Gf&Pe8rhqClwn5!_lho~@CvAf|6JE$Y zpkxDdqctFkGyu!Icjr9!X`P>QKS}Cb zor`-X@6kCaeUs9s`kcMHsLOxS=EG`Qg)d;=W z{X1(8HT7R1GH;y%6jxILcJ}_iwYBr4a{qH{>*<&M{~>c4&tr6*TXByypOkIUC^ z)Yzf{A(W9eDv=i_Vw7EqD3G5iT+UAVO1pa^`*@K}(lTg)V-NBKY)ZrM7F~!mx@!+I zwKVo|^N50Ez4^bP>jY<6b_7PX46>$q%anGt15-N70^5fyz@a?Tdq#?!N@|>H36up> zxlyv4fi7Iw4%yDu<7Gd_qK1$NNTP$CWf?<+)D&Mdp-FzKH(doCgP031`1ZhRdgsf?_84PU$Qj>}Ezl0de5K$SEfC2Kc z@%@Q8sXIE>gim>qm4SN=8@k2!)Hacpfh=1owDvcz+CCrHv&x`agb$<*eD` zmRiKc$aF=b8dzEfU}!qj%r4XWLZ)DzCowAAzfx4lL&)xXXWylnX~h(HPt>(EK{TE+ zSG=H~rVzcSAFCGpO#d z|B)v_^;h0=>-@E-jN?CYoW`l}Jh|v0PDR;roy)_r9M?32$F1f3$hArL?5un8P>j+> zp=~iqWvrrzbX*_nL)^T)uJ#dR?MJ$<&6zA6aRr$WDhHQpwa^imW;%8ajF~he!9NwH zn*z#Ns=#yn!^xb5qt2m>R+Xv01N|Ox-J#f6%!P4NnQJxjKF=m;gfH+SlMI){$a-_B z$vU`HP1HQ4p8`9(%K5mc#fEMHSOH~VG%ly|mLkXTmA{k%+-9IhQkn9U`-C2}J@i>= zsdZFV*9zaXU($@b6_lUi8LoP-4;9SUcy|xJdV6vdwBW1m#>Uq6v(9E`v$NHGvbnX{ zvYLC>cf0KR#>sGPfl+m*tMZXIPW`Z2zNJXIv?Sk!LX30XQpKOt?)uFAntipmXL%-V zyn3N-E&1I#rI2a8SCMh5EBB_Pj#g6(W_VEFxtK)(ZNh{ibx2TMK$v?zRRSQQ`|K3t zQMp}PWQ@zJGw3VE;9-u@qT?w`d7eX@KE&vkIv^y6bPv$H$Ws4kpSt=V{6B=`i^7fe zI0G?{SDv6JY8}_`rpp7ql%;zl{uv?MIm-I7Q@EDhqT2{9_RTkXz3A;%>e9CLre#>9 z1wM0X>3?d4H`<=w88WImhD_N$ZxDGUv0)UKEuBFoc`~c>NuJo9LL{>TqRXH4J=wVS zFXYe0eWi8XT1Xv&qMU=;@7f(C^Prkx$(_w2*sei!?MdEElbY`rmPrERqe&f*ex%rTTgP~J(!f<2X0iT z_18;*sVJ_f#ks#8gsvI7n!(}qE25Jc4YSt}bc$uLa`mIutVu_1$HAsN`+S6in5U~973oa_I@8dd+rT({IJX3bvm8*Gq20hruZiy?tv&9DI0PN-;K1fhXrXH+g6k5V1fx4 z0rmq7HrIOsR&+ie#bv2;$dnn7yv*?}qCfL)fjO0lRB4}Zk}4Nj+L%;1Y)q;w9jD?- z7IZLO9;T3|<(wB{(LBl5lrDn$>cmmVIvtAQnwfzwEB+*$0c+UI8gK8)8E+S7jJHjE zF&R^;6(&B#Md>O`l>5@k>j0Subh=-iGY-2z_ceX^r{Ux3P!Lp}WoHhBgFxI4*uau=m^dTMn z6~5XpONjii84FV{dIfJzjN5R^+ zkcvQ>Ee0=Dvt@R&*@`uT<_Wxk%Pjay2k*iazr^J*So=ZnT;y!6y@2VmWtlDrhFLr9 z)?cgGFdG}pYfBlh=qMph$t7PncCgjeR@lFjKN+H)pPmh~ejqPLb^tjSN0Xmjrzru{7V2wn!0!k(>v z$G*NMAZ}Rj^|c(~ru}hNN*(Qr{{yjuB=bgg&_@f4JJV;9Q!}Y7miMia?X3&K-^uId zXLK7CgGv&$gWfQc9yFp2z>|89onRujk1CN{mwkObDh4+nn^L#UO4!?2!OeK>&EZ3tc5DB2mx0-iOrqh5Km za}lyjMIy^DkQvWkAexZhj)t=U{*vrsu^?qVYent*Xe(s74*SInQcOLzazlwvCHQ`w zTO;OmJ7{fi`BBRb&jc}0Nd39Kj9)9eX!+&w=>JAi1@D}z;A;Gz1YEl@!K;QmgH|Mp zc#w9nU|uMhV0KefG@(7*5qt-EK^bH3!y06C#(7p|&=l@hH=V>W~&TLHJ%l;|ON3Vc`2M76piCWY?nAw?rv(X)+q$2iDK|F5hZ#gEWr@P5e9b9G2m^{ zV0hpj5aDOY6UDB_TM{+Oz-YkE;zq~AUN>vh|C6{cdedGa?w$o~w*J4p{q)(6um3;Z z`I7(hL4LmI|6lZf_C^2yqW|AlvOAg80#b2;>kgdcko}t!f+MxbEM+a|tqIKqODmQK z6#HdhoQVy0>U5mJBcly~y3%E>pAOEfO&o#-x+V(2yfC!`AfLJQoR%*Z-t{;WpVFyhg$`qwttvaAJ-*V4^gWMIV_YsxpfOCuN} z?W!17XTlJKvJ`aP`0i*3SD8>*pT#1IZ3^ z*{iE~@_DD3AaoOY;8TWq4e>kn%SqzBo+P3U%eskrREJtRXlRxlwmia9XENSIM9GHR zLA%qB6No+u%wZVC8|V`#*ras#8c@0I*O{6|)VanH#q9*Xy`RDl{`%$Hs| z=S#^+Qb<#dj%#)ir@*k5p=$M@?Hi(QKPyu`EN|1?f@T>YCaD94JGy6w5_%4JZ&*Q* z)xXrXK+CGJViUm&x_XW)aZZIZCW$kPma{Q=e z=ev_F%i~!U0{+=h?`gl znn;N80YYREEiZ%htu|+)ftEzX zvWb%hZsua^S+5M~n~lz*CW`^vZP#?#TLmY7G^tRL?5yeq0vjzQ5^n*IRV9p$O2uMfNwfPt9IW>7FCJ&KFQ^CwFrtEwh=bb@v;7D08y(;dNAz z@c`BL_M(lOS9H-H>~9uLXtgM&L%BM)k`(ASuX0S8B@mY=3QGd$k`HiiD~?!s75D1g zv3J?fsL%Ea_lhVJ#p|qu8pKyM)K=H!U1X7*K)oEIC^t;X1Ng%t-ryI8JO^6p%uo_m z&xOlk=Wl=e+lRmX?Qi!@!^#(K6y56A%C+uc%er!X7%4vjyf7-fQY}66WNF&9Gp@_= zNE>y?QW^$vWG92cSj$??6PeD9TBD+$3?pl9B3g{0)J|dXm<(>4zRH+Y4Tr zF@0pwqB+r358CK9y{Jb^_SDl(m)l^6PB{+T9*yhA^k^O~2%mJ{4ta5Wm8!n++Cx@m zux0dlQV4CcXp-(_n5YSBvzCRetU^TfqUMUmv-X#1(Yt-?F5Yduch1J=_24_EYI@v! z4>>!HTk-a=ZN5iu54j@sWH*;kljMqBh-qQbsd6N?L-wwvJc+IMcSV8jSN%G@8zQRx z%|piwf!0L3 z7%PY)61{}yD7WgA1Z?;c+r;VMc85C~a*U`|aj^qf6~{ZX0-5xuyG|3o%q(jPZDMud zO_W{DPKU^rjdW`GpgG#9;e*DACq_|EHK=!DpJ*l(0lxyB%Tj`nD15bs&S`5_c|&6N z_FCBdUEk6G>lA<*tlf(9s>4)tfkn;W*Lb%(a8%cJ4gZQyYB~|}QG85@!gjcDhW+AhoVY)F;in2VC zxeAPD4)T+YCP^8O6JZ{Yc-b4OLuu^tD7z9lEkyxh4-;arVLTYx5WwjdW@M8&&R9Rr zsUr9W2Euvku=^-5VQ$_#rFd_A3s+~cw?cLYy}>K*i+BFtEr@S9I6cD@+new|{bYCX z4)E(O{k8lQz*6CSYWj-<_WJnb)&3Foyp27}2MdCAbo>i``xw84zjmv*O87FUIy(ME zVQNS9N{G5?`%44ii9s`KRi9knwC#%GuDWQb4tG{OL3qEaFiN2V=@}3>#=H z@B;M^GMArE+4c8HoL(?%d%x+hH~AzL_G?RI+(2gYqU09YLw`|*cLjK_HyKT!2Bs?2 zB^8rgz`p7gfOljLgwVa>W4FkA9*av+?QS191~U6?GvC-dS-!@98k<+KUCU>o%xS<8(l~06GnLQe|Id#J^ZbuQ^6E1iUV9eVloza$L+;FrK(e~+x2Hv&eFrNRTTu^6$4@1u4#Y@wKv9+Q(_Gc9Dl0T zgw%|08Z;B@uNsj6{>O?1P0SpLlE;aF`n-_xN9W3`kq^aWG~)SmzMSZgY{*pFOY#^5QQCm2>D5sXb|1#wnFLFY$;RsuoQ!Ov^F(B&To zbui!TZ@;k?PqTD7%HU3={?-m7uAU{-#}QXu?K8qky{J-FjZJkzQ}_UZ+|Xs7j5cp4a0!s!6tL|Fa_rZ+5Y# zL3}BkgoaY1m4}&r(lDiKp4fW1v*o^q{LJ|F@Fl*WSVVTMqX=)8GEbbQd3>g-e< zRh_G(0UpoUYHT6Od0(3lGHpB=A*e4OSlS)xpNdj#8obd=Ns1~a>4OxoS8*XQpu~jB ztK|2wXCoCxX%3<$y!<3*Nb$I;B> zH-t!tghT=~0BUiPbMDi85B5FDJypF_ccVd&lB{gPIdLeU*Xru(>RN-_%$ZK==JjhD z=RB@7ROnBcMKg;ZaFLv0H<#fAvixP&cw@pilroSej#=CiCA=bLi3xrI4TlWjIi*P< z^Ec?+(PseLlPQ4r6eb;leU7Hw$nY$}s~k(gMwA320pwtFKBnd%3bsMUz`CB(DCs?- zNYs!$!{fK)Drb|ltrfVwuQ=r?&14!|#a8C|D|kiqs=Gj-jL&yvx~GV>swP0(tb zp!JgYDojCC!D{pHkdRHA-*##mMdI7yGQ71270Qn#o&v8l5+L_2H)A>|B`!k>D0vy) zDqkqToGd`ElyYptE*@>Xt_H)zkg{PRPBby3Wa9)-y4VAX2mL)>>H3I@W! z6J}_qXZI)ctLoOljG4JyJ7-}p02Wa_8-H;`4NM^|Lw%r>PJsTene@ff0i|HG!NbiH zU{W;&{x`Et6n2heIVq+J;?k5cl2oflJS26&($y&$BxRwpB>{_+#Gji>D| zW?&TC>_Ai@_1#4V;E~>ZT?1|lK4Ns zkl#D*k9cOwe>OLFH=CyZe|PgK{?DU4Pw{`A;{P~*=J-F1YcGx#-y1{4cOB4$E1|9p zy$O}pF!3jVd#IxfzVUa~6Hl2rgZ}?w0%T0MOep!Vt zSQ>TKC4;Rt+m}ZA&>rX#IiC-IvWzr`(O_u(@G7}3yl0%G`I_CDZ4I$6ww9m=KS)Qn z?{Ft*ZUe$y;ONr9A~p4f0@bT3zDaWD=(14l=qgOps2?s;hfiT<)uT&Ce6JOC+ogzR z|FFMQaD6C?=sLHL!`!|N^ZGRWST7m9=FWgPEWH_KPKzPL$}&$2P*c&ZM#XILnE244 zHFZ-pPA0c3&B5;qUbHE{EaYAtef%Q=?p1OD`3Y_rF2MF$8PGPwro(j+)v9JDEuwm49 zu9Ip*o>V1mv(L-5H4!RcoeGYF5>lTVOtQ!i=vKV5fNNRiNj2$OMQ=y3^p) z%Wnv_GXW*^CpJhG3a>2B7=VVdy6+k%C*8mN6!m}E`^!(L$%1^x({$9B1o;r{hPrk_ zGehMw>+?KVU)ziN3mq7U<51E76A#6|T!Z!=d@nJ(u{-XlGWgtWUvZ_}!(t0-)OG+_ z5oJy^k@~|KU+3e#e@{F`$wZ5cg~+@%$C`6}?E=J<)zD5c-inpY5as7xS*bvt_4yBW zr!1Rhab-C$<-3-|-dtUy+ZM75u;sTudsmT%9gtuZnp-`&u<5a-UxD9DC)n83ytMFYMKR8wS@Tw%gkGRnqi8*P!>TWfA?-WSHrjm^E; zP2Y8DQ9KM&79p0ISa8HEgGPA>qm6yC6utn;nd zFdU7N`>q)_VqG<}`AHfAZWY2#7ABodZja7Om>$k_Ng+ie4YM#mjIumQZ3<`=8Wmh}W@hF>|qM~6-BVNnLt zqKrtc=>i9GFd99|QLN%CP0>I;wpT?eJ1S;uhy`%t2py)f2b$;6+xMNLHz$_4Zmn-s z&vpIF&h-#t+dRxf4}G^iH^SF`^;L$O-UH2ip|e$J_7)lH^ub2@VX=Wu7aAuM>p##? z+x{#6y}!t4g;rsKQvhY{IACY_t^3|PTzLQ(LpuvWnQ1c?zy~w{aTL>_lA9ToxD)-A z2m4+j7_L)(y2E}x0{_&Rr+ZO(Uo=)+sV{bz=}mz7(A`_$fV(Sy!Iuc_QygiaQnE~% z70bOZf6Tmjajvfv7`i2uJdx(6vVUY;6=-r-JX4GW@7V^T`(3e>uaaUXQ?g1_;@)^_ zY3kmns+ciJ{(*7RdbZVKIzala$v-SXz^wu`J=!=mb|{tBW=mGCe$F7#ip%B#&a@W) z&n!>FV7z*k^lu-=2ecyo*H&|D!|?yy+1g!y^8b8{$L9a}M{qr3cVI0<`z+TgD7eQ8 zF6v-aNT_W@-D00t`RAIJ`|bp{S}W<_8pHrn6P#ii7?wgd>EAlN;WWO)K(P5R#DJ2~ z6--{u5^rWEfc?v_|7D54q4)P%=5I6dKkt|l?m0@@0v1X2TW8rm42K634X%SI7a>Kl zK?v-lYGMc$E6YfB_&`@yw8pS+91zRM*P5Q6hbaqGiSJkJNe_O}CWakwh_H5Q!C7r~ zf!^%zMlKaLVGf`9k_PZ;T_jPA+D4}qoXJkrq!sRDGKyHtvNN21*mp+J7<2K=!iFsR z44P1BP3FIFKfHSX-*^7;2mj>#e_KcG)BnEeyzabro;gi(sqcbH(4hhoh&Pvpy)e28 z`;>P3*TyC}qG#W-wi;)*dHBl6vRQ>c91nxhDCx0ze_?D9!>&6DlvONgM_CV|Hi^tz zIlxF#6A=OoJ4H!nGRd5f-4nhfO|k4O3?8rUuEHAs_dbh!mWIKliEI5dfRH{sEcn|r z8All=mdTRQRVXD&a->Pz3zutQ3|U}Aq1m%aLw!rA%=E{TcZ`>Z?Q9CAvk6*mz}1PBJwYg{rkYmJR-0+cbH3bTv6sYg z$jlnmaFNP5Fax|Or19ANT_cH?YvVA>f&n0jK3_|Qjv2U8_Nl_eQ&!<}*Tw8Tt+w7C z!Dad34ZUF(i1ojtnWzm+GfcfnBK0vmV+(5tqyYb}GcAtlC<^1e8gubx13{XXS$o&n zKN`JJ0uj8G%PNOx>DBW(<2N-GILqC?{G=`5hj*|3+j39*U+l<@3~pDsab0Hydg_xZ z+|6uPMYs;4XGT#}!JAJeVXWL5_ibfD2)bI6ZK-mH`EG*O8Q%YHPja+}Qo+r3r<)+3-kBUI83HFfv>r)UZiIz z<--0ET*9p+WS)yMRcb&AHqh`lQ1sxY11(6qGA9dc{%>57?K_fL&; zv&(2S%GQEOv??Ppuk|1iTH_*1;(PT`asS`k-ZA69?(A$l<^Oq<2R2;oDoiuDHSIY~ z;5KTw?zKIK@ls+>f>+y~Q)6PjC?2e)EWZaS>uW(822kc4T;afKmOf?q?I^6FS!)=O zNekpfA5Y-cQ9DeoA<1J$+*vR+0PD&TUHyY9CTTQ?V9d3C(#uxCRu&Sek@;0EyqN$? zv8Pa#8pCs#TTR3DnqpX33wph9l7lFf6_iWn9`F9Ukt^d_v znh#gwFd7Wcl4<(TxH<^q5Cuem15A0?ck%?%pRl|sF+>54QkH%fa+an}5A2Z`*rOcM zkT4VTt6&uM|1m#^VN#327!-;Z*(%R(QdS*q61HVr81O9X#i|U^@F0NiIM?8nBorCr zsNWxj*O1a8ikn`TL6#*8UD8Ar(3`cMo-d-n=UQuwY+Ro;0 z_#|+^LWd&W4D(!&mzqL$*^87+`fHMg)nGSc=fh+iLfSK!JG7JStr6_928{%As;mJ= zwI%_2HXUS=jMb*;NNr>g<-_S2)*_hd%d!?_*)+^xFi7BQqo@}GLk{aO33|hDbweyu z8cvcd0*@H#5oL#aPHhm$8S+64qWswc18G1Dauny$NVz`L`Vj#T<}ZG8k}V-Q4mj5d zs%Vt7Hu(D0m}pf0)^FteD;FKpyc){cKy@2yw%QyegziHxb%Dc^$0uayROlotuDy{k zm`u+`Q8x6F_&gfW$lwIZa5PvzIQPM6c@@Tx2D--dC$gb_c-0Ok;6@(zqEMNnx>*6E z_88#z8ogjV38F!~mJdF!Q6X5T)t%rx+zdAw`QWqYT5ShYneI8Y|7kXwyBu?zGP)oN z&+b((zk0sgKi}SJmJJ|Jk`dg9dI&cJ)c>qEHX6-cSsK@KZJhLm0UPRiW4+N_H@<_c z2S0CYG@8#F&28g5Q|(~=-Nt%j%lLfFy8foo{HDLg6h85IKj zhSJ-OW|M$+8AlU*z0=s-qSvGFJRc^>B^z90qapnAYst;|IOj9o*`XTA4Ri}1nvHLo z=KIw=8ziE@|G-=}*4LXvyfEYAYQ#P_pEovWuJm!WHw@xII7$X#%txSflt$w;IOlU| zHa6u3mN49aHIU^Igm@-!uso+a60lH3*)Cz2R-<_l_x}FvdSk1x?)*3Abrt?rzSB2j{g9f(lQGMX@GYQ%|6kwSHTnOojqRuWUyt(q#26^F z6+nKbp<@B#upsV8GzwGh1y4kekqD^hpS%J0hPwLxoy?kxa)6{yTR2Jbc9gOnC4ET7 z$fH7g=fNloB}?8*L$DYNM#dMup$wKOihHAJpWX2rjkPR=C`h%&+SgyNeGRn!H+T*I z)gI0MQ$H0SOg&Y#|95w{%=~{_yBkmY|1qAQ=vKd3M^?VJS2OXTRwtAzhh)3TcK?wgkDe$$e**V$Ryk z%=$ZJny0RN3gyz)zUO)`>YnR*_)iUa0&V}J>HfoOrK{|}w>LIT`QOgglmF+VJl6fs z@nEiP&)hv`?)H7yMQ(ko3W%MYc(RA4zmLy>`x<*Wte?2AEjjgO?tRW5472 zBagLC-+0HkJ>`^H?{dq+R^Q|`k@8?cY{N6iCB8%gfM1SX?|U{uOFgB9W7ivb<`*4W z%IJ)8*d4tS4Q_haDNxWKl+P!wdxGTh+}a;jfzO*Q)etW`N;?=R5NncjgV^)fBhmRmQ zWt;?v(*1Re%WT7knFqJM%B=mh)-ov(O|pY@p-8S@l~8Lox+%NYsaR=jKO5X^C$9k$ zID^|}74_7ULnaC-hTJ!YY@AQ0vhM)f;3vGX4e5N)Ncs&&b`#H`rCjA2<`@@i1B#D4 zr9AN0AJ|AZtBt*Iu3B52UF9&{r{}=^h`g`Lr_j=VV9j%M(9c+cv%yG6h7H4>Tc!}aXmwky^{BmiWLM}{tqwV_7TOj^8tezqKyrda^ z_9g99W_a@uGsG*5s61-frs&Q)#oM;)Z_hi$;v&KnVP5apv?Q75BjZ0iZ6*@-5JEn$ zlX6&)v{<9xpVjI!kOe={%~Mq0ZfQ^*wGgbADCRo98(bN<4u05o-A>!uf_7S-+ZM*N zFN}84#)VmLyZ&aYysJ5o;7)i>CpAZCgevjpOp-&TNYX%M7^|d=$XBlBg4b@gl*6CN z0g?Gv&vGaLFVB>B&<&GV(L22DoD`Yy!@?lANKy=9_g5K&#CT{TRfn*_1g@v9H)`Ku z2#jTfL0lN(k5?vp-+_VAGLiyBTgJS&jE3svM!l)<{@G1x@!{jU6W9A!6#yg8bt6xX zVN)H$R?Bs_a18O6UBzq9b+2g!%jg#0*)JwG z{$JW(uVRdeRpAGF*Xuw9|KD8SF!=wC=I+Lm{{K-PJO5vS0SjISX0}#&J0M#D6hd5h zctO~LJ3(igA74!QUO&*aMNs^mLd>R~>rOojtC6-9A=-M|b=TV#qBrt&8C23Lu&xDx zm_KTxJp*TjNU~)U{*sKyP&pMvofEBD!S;Fr5G6XNw0&nf@$~#LpV{;uV$R%O3RLC) zztuGS|2Ni~8&C279_6W`|0)LDne0;|cck{~NU54$ecE>2TNDR<=A<7vR1(|M4Z~2e zKou^wK{G3MpEU@!3+$F5LPz04hxA3IrRku##Zg)gnk$u-kK3+0wjDH^ZByBSzktQ; z8S-*@&TOj(37rSTzms`GvGPQ{1yVu7?n9BwnC)t3)0J;I^1Mk)DN5Qg<6212A!suG znu%o&ipQZiCqegay!2E9gzv0Z9mT}Jcin++yX^Q2F92UapudN=?U}mA>LuK@FCnc5 z{i3hdB{Z(t_9Zmh)rOz?cJ_iAwyzAaEC#GWl4fIB-~vp1$~?mpWAHw=#TW1Uxfgle zcinZ{B9C7Ds*9{htrQ>@mpLv_J!(z0K{5?gxS5iDU(zUzeMxJ;2L|jly_^dhJXGHL zpsy_5ov1svvdM%SWwX=z?-+fch_--?PfRa88vjQ}_JdjhSMYzk>sx00r|tEfr~Ch- zJQe)kyjH+UjY?bKokO?2<+%ZD#LEtv0w2Tg({}wEkEx_CTll*Jzpq}mrOm;SYIA^O zOOgU_;+a;rD1-wU@qz1JdaBti(H5KOl}^`yItjM|P3sp+)se8^BqJl;w!ms3rkk3W z#&^n<9jjo2$6Q^e8fFnWmi(7z4rJc$=~yfdWYkt>tD88%nw$|MOy<{I*@sd~)V1yJ zAHk;%tRYE2jM1tJHh;IZ50wtEQXpsY2~A3NJ+(pT2AbLM^d@3oErn;xfqO90Eo=O@ zOvQ($f80`#a09!=5z>)7hpivM-8fSvP^tg6Zf3#;vE5PzA?A0WtP=qdzuI^{`XCTw z(^o!ocraOW+A^Dk&nU%ineF126VwIh+!xMX8f3@J^6ENiP`4Y=*#exO=!zL|S| zWZG0VzvqSGrSlWrU#N32tX*ffC8~Y4o0=NG4C$mk?vdS~Z@$%-6jo!FQRNk3?qNCR zikr%NiMRaHa*Mw|qu<8{AhEyMD!FUX=nbktghexI*lzzyK27;F2I*>u|!q|=bU%f)iL`ZJeOrG0F6kDW04?e6Is~4ini8N zTV~4$&3ZP+8>5EpPl@CO!*vZ7qn61BSqKXITDT2raAmvCHnY+N*D1X9ALH(C`$w}C z9n#E90-zdr?z`^ugG11*KRW=XrPt;zT*7em26vI%T^%^ia~O zaOsYqCX#3#8bv~;k+j#+hN`pwQpdX4oml;31Z`nhaST)DHdhE3I-$w%*5G#VPoiZm zIxxsykcmIgoaR)5@sfcV4pq(!d9Q377e`#39fp@eMr#;-({;f^#k&~Vcjo*BXg_&u z`8kia@B(nlu~Io4ja(Mtc6;a;{1RxCwp6b)81mcDu^o^=VLpKM3@o3xxsZ&9e$ns@ zIh89_g@0PP$e-o0=>Ni-u!liA9>@NBW23oa+JEn^Z)`uwe;(tp%6|$Nu$bo0sJ?*x zcR>LNcaj}d0hoaR{{{Z>0#t*8)+Lyf`lA+>+W_4lD9}Jr_z4w-DZk5bNs*w$E(n;I zd7oq~b>l0AK^DJ0=+f{DF7)1FthHa=h9Py)+-CVGV9YO=;N+V5;}or=y}T_PcRZA< zblle-3-v&Jh{eHH7h84O(!Te$#hjJk3~d`{D6=y56f@_GR=d8{b|W-%K0Dd(xb3$^ z7hT3_Wo=fcleSC?V_`x3%4P$-RcZrWUajML2h1ATI+(h!MBZt;{=`$v(H8;qfu}?q zK$~!82y`I9dezoS0ATe3!?p-X0G3R6AL!{NZhYbX<+<*TtwhtGqm6;*x&uTm^tOs% zps>KA$alh6Q7@jENzgPNVy5Gu)4PJmw0s8vxVY@0$>zNPM;R|== z1xi;y%{~@U5jNq+{r#!$9^AlDdjPoDF7&X!zklhw2d_+G9&(j~I)2^v2P6uXp@quO zdR(kQd+*lAU{EfQfx7@#Jvuari;Mc063jA00yY7VAqO!evD%`2@?F1)2h^Lz4=A4v zglW}@j7l?ABEHR*LVYnF3rWYy>U>t~7>-#=9gDyUYVX=>lW>YI%H{1ai6XruArT=` z@gNf3><7w8Ax;Dw4!Rj&w3zbAP}}%RIE*Qx(YDf}JcQWp38D2}`^brHG)B&Xno*lV z+DR>5E!ZN{E7__P;T)?4jbH#a2pr3>5an=YUMu<>p5F&5otJgjb>Ap_26b@??T(SD z5Eg?UdB+D5(cStETPYvcN4ms=7?2N3GgTpn!XkSu_7rE8KQkudR$(%%6f$Wu3RzA= zZ!1fz&r{;%>=M_uHf)qyk=wzvf0#j&;k0Krg)S6e*=} z+&z|i>!lW-keTk8ut?-p+vkQE3iHrLUvb5Pb`DtRM2$saF=CwmWrx;1tI>QscYyn@fOj=5NRvvu#4Qm{r1V#wy^yY4m9$$S~CHQ^_3-!eqh zUEx<2o=GqLc_H|fgvF-g}|;#*h*R z@nF4a+P9I~+t_p6vB&jzzq#Hdh7#Y-T!o9cS`tpwh_FY*gbp?`UlRDV+n#?z$`NyU zp2Caa?ojld^GsI13BU->sz$&M4>5*Z3n74B^>}RGc?`#}SFSRyMXoZ=b=tSI4OXO=2G>!NU=CA6brwpBHt&}?yKG#Uk3Ssk#9m=JGSP4)gQMbBtm3dL3KWOWFbP(4k7W1ki0ToS#2Xi3}|K zR+lTC8i)2xOFy;cR+BLvs!wg~C+1UPJ4Qs>aq+|&aJ8UeRmH=b=Q4 z4O<*Y@W-}SoCLP~qA);eiCp;#PD7`}Q=aI%)Ef9=;dMk^#wloaZ0l(7$}kU=S+<0N z~{%g!W@<<#ILcKrFPLjdCdAwYL`=IT* zgEqdtOXwzX>-^W9*FtJug{1RA)&f;Y*3EE=CzK6xbA&IN{|qV*mIY=a-*`Nn&>b*+ zVW9^p+*P5+rxrO$7$B|`dYsCu;Nl=WmC${hx*bi`o7uRjcj(T(^fr_y`C^20ouHH$$Vc z3%{)!0baIUcZUU}W=4Qpm^o@&4dYC@V?nB>k_`F7Hp>O01*Lbi}No=19gL*M_02l$tZEhHZM#PVb%lvaA zo{Vt5q;)LqK+`WgFC?ldrZJePQQoPHu?dVIXY{Ad3;I}kBQVW|fg*;hHC$r(Lf8OP zw1v1)owo@FHo$8$9TkA(0a`Fou33|)4!twnvJ6P@zP#NRa-`oWKrj}9hFo-;y(qa# z&hFYa^+JAtV;Nqi%Rhw(Tziw(}eUBj}-hPy;XN^mzP zSFXcS_V`z0iZ%XkFb&dv_TU)+tMY$tZSR`-f1A5c`Tri}vGRWs59W&f!AnC+7rGT-OXB=y*l6j6mtIN?&sS#|D@ z!jz1}8Bm3dmc0Mq-%(5B66Lu+YMbnoe!1ayJwv6c^RV1HgG`gxDa>3kE@i3^LWSsY zkD;O#^~Te$2!_$OxQJ5NIWf#a+(wJnndLe*Y@2+sYU~68SX&$sgW)omFaiYv78av$ z@hIHG{q43H|4xWF`{o!dX6P+M5;Z!aaYdDv$O3!X;rHSbOV?*=vo_al(QNU$Z3H}I z_MsL5uDBGQavNz?f?-&sS-4xYU{R#eN^)%im9(G_tt&^DvJV=<$p%HfZG#mzmSLV- zMbS!KD8~jZ8RrA@7*a{&ZhNe{J`_251MHQtT^|Ta#|D&W_-bAit$efOI%q`Wu*8gz zO-yV}c;8n9^e9nX@wK&)!XOMzUbzWu!cnJK?4K+b;)czpNrkFtoA zudy7!+(Wkr;9|nrasU^FTF?I&z(HlV4LA#6pG{CsjGum(5Ip?fJyDf8F-oS7zeras z!t~gP!jl&F5Bq5Mf91ONkV3$!_`l7~9W(xKbN4C#=c7DT_y2i?fNGV>2*BWQDT2EA zO^(K@O(*=R9b;!z<8t_Zz$g%iyf6~|kM3}cK|VRAYc4!)(G zgThu6$F5%%l~d7nf>2>;dS#Mr}K0u|X}@`^BjB0l92 zAPC;tPEp%$;Dz9!LisD;-VVk^n5I|4c70am7KR(M#`=6N8DU4S)#H=32_m!^U(IZf zNi&R~KwACOs4pXWcJ!GG;gNt*u4XnT{iArtLL?m5jqIb^@_#PKjL15}T6-=INa^6J zkaB@23I0P{opEybvotWTHpIeG8#r+)f<(>eUQOwHtOnmPqteo%V){t*KbbGmlUcvV zQLB*Lp1j)i_z?aPXBGEZ++3TKuV@S~YMGx6ntLp529>RB*>qg^S%#uE!wM13s;Lf9 z@eDCXUnJ$9y)y98g+QbUe%?|Rv;-O#1z;OQMI$BKrm)E}4iP}(+-%sKCkmlUr-S*B zY*Cjg7C=47=t@ERgG@(tg3B#BY&cXjv$(KRKYXWH4GXZ1JO!Of_njzGj3{o9)?-5! zZDSm43ow(o668h5ku%eHproZMbwg_5#aW1p8_z^Tn{}K477g6no+K{s7lfp$K=9s` zFE3VRJRR@RU{Gu|4fj_ZGet-f7>`!kz7>wzXooF}dcgZZ5r!Kqh^8D-jSOw93VkIb zEveZsuh|x?Fd`7~=p|M0>J=UYH(3Dr*=+|Cd1f-vxdC%r{!_qd3ZkzszmoYGdTCoW z#Ct0qYM3^(>v+mfh*^}7DDr`fUSP23`z#05LO?7(-8CQ77#>(ELn z%2jX2l&`^HaBRktwvDKeMPpTX#G9Kpn9}9?&6AAicks-%|9F@Pz_aB)&F0RQDgW8s z+<3D8dX%S9{&QcukB71MxMl8!uIq1lWXJ&_y&%xPZq+?r6 z;J{qYZOT&53jL~K5o0Kfw8nO4HD-uYw2C)cMe2eI zoe;(zLl|pi1#D3ojkP4rFtLjzy2IV7g<$~>EDLirzwQv1OijpQuxHdcvU-MPIIV*b z#YcxT!0fq>yZ)hF6==tQ;H00mUH4fV6ROV8;~60OgfY@BAQGYEXnQKq5rXQ^o{4xg ze;-6s#)MUT_4k>8#M+9ahCuZgiNAHX+wA?zq}wGrT${TK{v(2?D>e+3O&G=x zM(~~Dp!61%thvP%DaHh_0iSmUhZ{dcl#Big`|u6Jwt0t7Sp)BZgVt@To=1K<%fH3A zH{m~pe8;|KEUGL0knPXQa(S$o&OPkZhDngGIh5@NFg)HX>o1Zd#|$XDk3EA!G4-Y)DF6 zOd(ygf)vzR$g z1!1$1IE%e+$th!t>@s`uB?riMNe31MO$jXnRb9hb-O45i-Ah^L&s7_n1<L| ziP#qfrjyG1Xld<^wAn4+O?R`E)DE=NemRzaC`eQ8ewdU92g(S~uZ&qmf^zW?NYRnb z!OF`=wzbsczfs%|ZywzJx61x+YkkAa|F*ThzV#&keT>H{{}p&Jm*pQTyjYUAlC*DN z6!;89zH6;|)W(>&%&QmtX+8Q3ULrSai1suXym<}1k;ZYQ1iFIAYmXQj|5o3$qf(1$2Yq?JG<-vkv4ME{+=%(wU zG|rd|71Sm(e3QRF;k=ktYRkSB}4B1)JuD8dAP0ZKcjwj7LF z!Z{XH!k0$X?-}Euxf78kb*HV!PHoAA4|02EMiMzFN22WDxu1?+IimR^=He1Sqgup|55GoYWf6=aAx83Xo(1pnh&rD$GYjY7v8~gJlzNK1)oF*ct z;PK3qf&-Cq`XDbPR`fNLhSJlvd+@J$#-(|HTv^BUdgi!*g0pc=?Bk*f2rGRMx8@lb zRqF`%8#9G`=Cc&?#Y~fGqC3ΞA3(A4N{cvF{$l?Rmy%^bjwc%~SH?b()p+~ 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index c4b3df0..b22e968 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ The package declares these `@antelopejs/*` peer dependencies: | Package | Supported | Tested with | | ------------------------------------------- | ----------------- | ------------------------------------------------------------------------- | -| `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz` | +| `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz` | | `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz` | | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz` | | `@antelopejs/interface-database` | `>=0.1.10 <1.0.0` | `file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz` | diff --git a/package.json b/package.json index 3713ba2..e6f15db 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", "@antelopejs/core": "file:.campaign/tgz/antelopejs-core-184eb90.tgz", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz", "@antelopejs/interface-core": "file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz", "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", @@ -109,7 +109,7 @@ "overrides": { "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz", "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz", - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz", + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz", "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz", "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz", "@antelopejs/interface-core": "file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e2d9042..259de5b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: overrides: '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz '@antelopejs/interface-database-decorators': file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz '@antelopejs/api': file:.campaign/tgz/antelopejs-api-6afe3e2.tgz '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz @@ -18,11 +18,11 @@ importers: .: dependencies: '@antelopejs/interface-api': - specifier: file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz - version: file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + specifier: file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz + version: file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) '@antelopejs/interface-api-util': specifier: file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz - version: file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + version: file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) '@antelopejs/interface-core': specifier: file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz version: file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz @@ -31,7 +31,7 @@ importers: version: file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) '@antelopejs/interface-database-decorators': specifier: file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz - version: file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)) + version: file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)) devDependencies: '@antelopejs/api': specifier: file:.campaign/tgz/antelopejs-api-6afe3e2.tgz @@ -118,8 +118,8 @@ packages: '@antelopejs/interface-api': '>=0.3.0 <1.0.0' '@antelopejs/interface-core': '>=0.2.4 <1.0.0' - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz': - resolution: {integrity: sha512-G7BRef+991Dn+O4zmxGE8f8KN5Xfj5GQa+W3LQo0f+XHhRUCz2E+brTIonhjV7HJ5Z+lFNrm4StPytwNIUxA5Q==, tarball: file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz} + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz': + resolution: {integrity: sha512-6A2dS+0P6O+AGI9Jjq+6vGflWsDC3S6BinYeNiqvQxK2ggebzt1sq1jstRmlFZWfW5/lxemjBmtwCtfXzLfXVA==, tarball: file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz} version: 0.3.0 peerDependencies: '@antelopejs/interface-core': '>=0.4.0 <1.0.0' @@ -2836,8 +2836,8 @@ snapshots: '@antelopejs/api@file:.campaign/tgz/antelopejs-api-6afe3e2.tgz(@antelopejs/core@file:.campaign/tgz/antelopejs-core-184eb90.tgz)': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) - '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + '@antelopejs/interface-api-util': file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz reflect-metadata: 0.2.2 ws: 8.22.1 @@ -2862,12 +2862,12 @@ snapshots: semver: 7.7.4 typescript: 5.9.3 - '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)': + '@antelopejs/interface-api-util@file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz - '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)': + '@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)': dependencies: '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz @@ -2875,9 +2875,9 @@ snapshots: dependencies: reflect-metadata: 0.2.2 - '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))': + '@antelopejs/interface-database-decorators@file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz(@antelopejs/interface-api@file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz)(@antelopejs/interface-database@file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz))': dependencies: - '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) + '@antelopejs/interface-api': file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) '@antelopejs/interface-core': file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz '@antelopejs/interface-database': file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz(@antelopejs/interface-core@file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz) randomstring: 1.3.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0e3a33c..91985f3 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,7 @@ overrides: "@antelopejs/interface-database": "file:.campaign/tgz/antelopejs-interface-database-724ff72.tgz" "@antelopejs/interface-database-decorators": "file:.campaign/tgz/antelopejs-interface-database-decorators-1234214.tgz" - "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-015a93a.tgz" + "@antelopejs/interface-api": "file:.campaign/tgz/antelopejs-interface-api-fcc62d2.tgz" "@antelopejs/interface-api-util": "file:.campaign/tgz/antelopejs-interface-api-util-639f38b.tgz" "@antelopejs/api": "file:.campaign/tgz/antelopejs-api-6afe3e2.tgz" "@antelopejs/interface-core": "file:.campaign/tgz/antelopejs-interface-core-f7df541.tgz" diff --git a/src/components.ts b/src/components.ts index 9d9c9db..96c65d8 100644 --- a/src/components.ts +++ b/src/components.ts @@ -37,6 +37,7 @@ import { isString } from "./internal/guards"; import * as joined from "./internal/joined"; import * as list from "./internal/list"; import * as properties from "./internal/properties"; +import { fieldsOf } from "./internal/prototypes"; import { ReadProperties as readProperties } from "./internal/read-properties"; import * as tables from "./internal/tables"; import * as validation from "./internal/validation"; @@ -271,7 +272,7 @@ export namespace Query { meta: DataAPIMeta, ): ModelInstance { assert(meta.modelKey, 500, "Missing model key."); - const model: unknown = obj[meta.modelKey]; + const model = fieldsOf(obj)[meta.modelKey]; assert( tables.isModelInstance(model), 500, diff --git a/src/index.ts b/src/index.ts index 9b1c149..f38741d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -84,7 +84,7 @@ export function DataController< ? { endpoint: key, callback: val } : { endpoint: key, ...val }; meta.addEndpoint(key, entry); - c.prototype[key] = entry.callback.func; + Object.assign(c.prototype, { [key]: entry.callback.func }); } // SAFETY: for every own key of def, the loop above installs the function ExtractCallback names (def[key].func, or def[key].callback.func for an entry with options) on c.prototype, which covers the members of ExtractDefCallbacks

; c extends base and declares table itself. return c as Class & TableHolder> & Base; diff --git a/src/internal/properties.ts b/src/internal/properties.ts index 2332ac4..c4a526e 100644 --- a/src/internal/properties.ts +++ b/src/internal/properties.ts @@ -7,7 +7,7 @@ import type { RowFields, WritableAccessFields, } from "../metadata"; -import { prototypeOf } from "./prototypes"; +import { fieldsOf, prototypeOf } from "./prototypes"; function writableInBody( writable: WritableAccessFields, @@ -20,7 +20,7 @@ function writableInBody( } function writeTargetDefaults( - instance: Parameters[0], + instance: RowFields, meta: DataAPIMeta, dbData: RowFields, ) { @@ -47,7 +47,7 @@ export function WriteProperties( const writable = existingDBData ? writableInBody(actionWritable, bodyData) : actionWritable; - const instance = { ...obj }; + const instance = fieldsOf({ ...obj }); const dbData: RowFields = existingDBData || {}; Object.setPrototypeOf(dbData, prototypeOf(meta.tableClass)); if (!existingDBData) { diff --git a/src/internal/prototypes.ts b/src/internal/prototypes.ts index 702b77c..9ab5494 100644 --- a/src/internal/prototypes.ts +++ b/src/internal/prototypes.ts @@ -3,8 +3,25 @@ import type { Class } from "@antelopejs/interface-core/decorators"; import type { DataControllerInstance } from "./controller-types"; +import type { RowFields } from "./field-types"; import { isClass, isObject } from "./guards"; +/** + * A controller instance read by field name: an object answers every string key, + * with `undefined` for a field it lacks, and inherited accessors run on the + * instance, because this is the instance itself. + */ +export function fieldsOf(instance: DataControllerInstance): RowFields { + if (!holdsFields(instance)) { + throw new TypeError("A data controller must be an object."); + } + return instance; +} + +function holdsFields(instance: DataControllerInstance): instance is RowFields { + return isObject(instance); +} + /** The object the instances of a class inherit from. */ export function prototypeOf(target: Class): object { const prototype: unknown = target.prototype; diff --git a/src/internal/read-properties.ts b/src/internal/read-properties.ts index 21721c7..ba3ad5e 100644 --- a/src/internal/read-properties.ts +++ b/src/internal/read-properties.ts @@ -6,7 +6,7 @@ import type { RowFields, } from "../metadata"; import { isFunction } from "./guards"; -import { prototypeOf } from "./prototypes"; +import { fieldsOf, prototypeOf } from "./prototypes"; export async function ReadProperties( obj: DataControllerInstance, @@ -17,7 +17,7 @@ export async function ReadProperties( ) { const readable = meta.readable[action ?? "_default"] ?? meta.readable._default; - const instance = { ...obj }; + const instance = fieldsOf({ ...obj }); const res: RowFields = {}; for (const [key, field] of readable.props) { if (onlyList && !field.listable) { diff --git a/src/internal/validation.ts b/src/internal/validation.ts index 8e3e1a7..29bfdb8 100644 --- a/src/internal/validation.ts +++ b/src/internal/validation.ts @@ -18,6 +18,7 @@ import type { DataControllerInstance, RowFields, } from "../metadata"; +import { fieldsOf } from "./prototypes"; import { isFieldValues, isObject } from "./guards"; type RequestBody = Validation.RequestBody; @@ -52,7 +53,7 @@ export function Lock( ) { for (const [modifier, field] of meta.modifierKeys.entries()) { const keyed: KeyedModifier = modifier; - const key: unknown = obj[field]; + const key = fieldsOf(obj)[field]; lock(data, keyed, written, key); } } @@ -72,7 +73,7 @@ export function Unlock( } for (const [modifier, field] of meta.modifierKeys.entries()) { const keyed: KeyedModifier = modifier; - const key: unknown = obj[field]; + const key = fieldsOf(obj)[field]; unlock(dbData, keyed, undefined, key); for (const [foreign, fieldData] of Object.entries(meta.fields)) { const related = dbData[foreign]; @@ -92,7 +93,7 @@ export function UnlockRequest( const modifiers = Array.from(meta.modifierKeys.entries()).map( ([modifier, field]) => ({ modifier, - args: [obj[field]], + args: [fieldsOf(obj)[field]], }), ); return unlockrequest(meta.tableClass, row, field, modifiers); diff --git a/src/tests/internal/controller-fields.test.ts b/src/tests/internal/controller-fields.test.ts new file mode 100644 index 0000000..d03bb44 --- /dev/null +++ b/src/tests/internal/controller-fields.test.ts @@ -0,0 +1,28 @@ +import assert from "node:assert"; + +import { fieldsOf } from "../../internal/prototypes"; + +class Holder { + own = "own value"; + + get inherited(): string { + return `read from ${this.own}`; + } +} + +describe("fieldsOf", () => { + it("answers own fields and inherited accessors by name", () => { + const fields = fieldsOf(new Holder()); + + assert.strictEqual(fields.own, "own value"); + assert.strictEqual(fields.inherited, "read from own value"); + assert.strictEqual(fields.absent, undefined); + }); + + it("refuses a value that is not an object", () => { + assert.throws( + () => fieldsOf(() => undefined), + /A data controller must be an object/, + ); + }); +}); From 6293a02044065d4e8512a033e8ed94b03b16f1c2 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Tue, 3 Nov 2026 00:35:46 +0100 Subject: [PATCH 24/36] chore: merge main into campaign/integration (#88) * docs(readme): use one Discord invite (#70) * docs(github): send questions and ideas to Discord (#87) --- .github/ISSUE_TEMPLATE/config.yml | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 9e41a21..9ff80ed 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -4,8 +4,8 @@ contact_links: url: https://antelopejs.com/ about: Read the documentation before opening a usage issue. - name: Questions and ideas - url: https://github.com/AntelopeJS/antelopejs/discussions - about: Ask for help or discuss an idea with the community. + url: https://discord.gg/g4pFt6eXqu + about: Ask for help or share an idea in #support on the AntelopeJS Discord. - name: Security vulnerability url: https://github.com/AntelopeJS/.github/blob/main/SECURITY.md about: Read the private reporting instructions. Do not open a public issue. diff --git a/README.md b/README.md index b22e968..1926c2f 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

npm License -Discord +Discord Docs
From c9695f55219c1374c066bfa36843e824bff0163b Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Tue, 3 Nov 2026 03:14:12 +0100 Subject: [PATCH 25/36] docs: pass the data-api docs to the docs standard (#89) * docs: pass the data-api docs to the docs standard * docs: turn on the docs standard * docs: state the computed and joined access rule and the count index --- README.md | 28 ++--- docs/1.introduction.md | 73 +++++------ docs/10.joined.md | 81 +++++++------ docs/11.computed.md | 140 +++++++++++++-------- docs/2.data-controllers.md | 88 ++++++++------ docs/3.routes.md | 243 +++++++++++++++++-------------------- docs/4.access-rights.md | 82 +++++++------ docs/5.validators.md | 81 +++++++------ docs/6.listable.md | 82 +++++++------ docs/7.foreign-keys.md | 85 +++++++------ docs/8.filters.md | 99 ++++++++------- docs/9.modifiers.md | 52 ++++---- package.json | 5 +- 13 files changed, 613 insertions(+), 526 deletions(-) diff --git a/README.md b/README.md index 1926c2f..ebab73b 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,24 @@ -# @antelopejs/interface-data-api +# `@antelopejs/interface-data-api`
-npm -License -Discord -Docs +npm +License +Discord +Docs
-CRUD REST endpoints generated from a database table: declare a data controller and its fields, and get `get`, `list`, `new`, `edit` and `delete` routes with access rules, validation and pagination. +The AntelopeJS interface that generates CRUD REST endpoints from a database table. Declare a data controller and its fields, and it serves the `get`, `list`, `new`, `edit` and `delete` routes with access rules, validation and pagination. ## What it offers - `DataController` and `@RegisterDataController()` turn a table class into a controller with the default routes you pick from `DefaultRoutes`. -- `@Access`, `@Mandatory` and `@Validator` decide which fields each route reads and writes, and check them. +- `@Access` decides which fields each route reads and writes. `@Mandatory` and `@Validator` check the written values. - `@Listable`, `@Sortable` and `@Filter` shape the paginated `list` route. - `@Foreign`, `@Joined` and `@Computed` resolve references, flatten remote fields and add values computed in the database. ## Implementations -The package runs in your module and has no implementing module of its own. The project needs modules that implement the interfaces it builds on: +The package runs in your module and has no implementing module of its own. The project needs modules that implement the interfaces it builds on. | Interface | Module | | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | @@ -27,13 +27,13 @@ The package runs in your module and has no implementing module of its own. The p ## Install -Add the package and the interfaces your controllers import to your module: +Add the package and its peer interfaces to your module. ```bash -pnpm add @antelopejs/interface-data-api @antelopejs/interface-api @antelopejs/interface-database-decorators +pnpm add @antelopejs/interface-data-api @antelopejs/interface-api @antelopejs/interface-api-util @antelopejs/interface-core @antelopejs/interface-database @antelopejs/interface-database-decorators ``` -Then add the implementations to the project: +Then add the implementations to the project. ```bash ajs project modules add @antelopejs/api @antelopejs/mongodb @@ -101,7 +101,7 @@ export async function construct() { } ``` -The controller serves `GET /tasks/get?id=`, `GET /tasks/list`, `POST /tasks/new`, `PUT /tasks/edit?id=` and `DELETE /tasks/delete?id=`. Fields without `@Access` stay out of every response. +The controller serves `GET /tasks/get?id=`, `GET /tasks/list`, `POST /tasks/new`, `PUT /tasks/edit?id=` and `DELETE /tasks/delete?id=`. A field without `@Access` stays out of every response and every write, unless `@Joined` or `@Computed` makes it read-only. ## Documentation @@ -119,7 +119,7 @@ The controller serves `GET /tasks/get?id=`, `GET /tasks/list`, `POST /tasks/new` ## Compatibility -The package declares these `@antelopejs/*` peer dependencies: +The package declares these `@antelopejs/*` peer dependencies. @@ -135,7 +135,7 @@ The package declares these `@antelopejs/*` peer dependencies: ## Contributing -Read [CONTRIBUTING.md](./CONTRIBUTING.md) before you open a pull request. The local checks are: +Read [CONTRIBUTING.md](./CONTRIBUTING.md) before you open a pull request. Run the local checks with these commands. ```bash pnpm install diff --git a/docs/1.introduction.md b/docs/1.introduction.md index 7c5eaa9..de6aa71 100644 --- a/docs/1.introduction.md +++ b/docs/1.introduction.md @@ -1,21 +1,27 @@ -# Expose database records through an API +--- +title: Expose database records through an API +description: Build a first data controller that serves CRUD routes for a users table, then check which fields it reads and writes. +mode: tutorial +--- ## Overview -Use `@antelopejs/interface-data-api` to expose a table through named CRUD routes and an explicit field policy. A data controller connects the table model to HTTP handlers; its metadata decides which fields clients may read, write, list, and filter. +In this tutorial, we expose a `users` table through five CRUD routes with `@antelopejs/interface-data-api`. A data controller connects the table model to HTTP handlers. Its metadata decides which fields clients can read, write, list and filter. ## Build one resource first -1. **Prepare the database.** Define a table and register its schema with database-decorators. Your AntelopeJS module needs a database provider and an API provider. -2. **Choose the routes.** Start with the [route set](./3.routes.md) your clients need, rather than exposing every write operation by default. -3. **Set the field policy.** Add [access rights](./4.access-rights.md), [validators](./5.validators.md), and [list fields](./6.listable.md). Field permissions are not user authentication or row-level authorization. -4. **Check one read and one rejected write.** Confirm the response excludes private fields and that invalid input cannot reach storage. Then add [relationships](./7.foreign-keys.md) and [filters](./8.filters.md). +We build one resource in four steps. -## Quick Start +1. **Prepare the database.** Define a table and register its schema with database-decorators. The AntelopeJS project needs a database module and an API module. +2. **Choose the routes.** Start with the [route set](./3.routes.md) your clients need, instead of exposing every write route by default. +3. **Set the field policy.** Add [access rights](./4.access-rights.md), [validators](./5.validators.md) and [list fields](./6.listable.md). Field permissions do not authenticate users and do not authorize access to rows. +4. **Check one read and one rejected write.** Confirm that the response leaves out private fields and that invalid input never reaches storage. Then add [relationships](./7.foreign-keys.md) and [filters](./8.filters.md). -The following example declares all five CRUD routes for a `users` table. It assumes a configured provider and an existing `my-database` instance. Import the table declaration before calling `await RegisterSchema("myapp")` in the declaring module's initialization; await that setup before serving requests. +## Quick start -This is a field-policy example, not a production account system: write-only prevents a password from appearing in responses, but does not hash it or authenticate requests. Add an appropriate [database modifier](./9.modifiers.md) and your authentication policy before accepting real credentials. +The example declares all five CRUD routes for a `users` table. It assumes a configured database module and an existing `my-database` instance. Import the table declaration, then `await RegisterSchema("myapp")` when the declaring module initializes. Wait for that setup to finish before the module serves requests. + +This example sets a field policy. It is not a production account system. `AccessMode.WriteOnly` keeps the password out of responses, but it does not hash the password or authenticate requests. Add a [database modifier](./9.modifiers.md) and your authentication policy before you accept real credentials. ```ts docs-check import { Controller } from "@antelopejs/interface-api"; @@ -40,7 +46,6 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -// Define the database table @RegisterTable("users", "myapp") class User extends Table { @Field("string") @@ -57,10 +62,8 @@ class User extends Table { declare password: string; } -// Create the database model class UserModel extends BasicDataModel(User, "users") {} -// Create the data controller @RegisterDataController() class UserAPI extends DataController( User, @@ -91,38 +94,38 @@ class UserAPI extends DataController( } ``` -This generates the following REST endpoints: +The controller serves these REST endpoints. -| Method | Endpoint | Description | -| ------ | ----------------------- | -------------------------- | -| GET | `/users/get?id=` | Retrieve a single user | -| GET | `/users/list?limit=10` | List users with pagination | -| POST | `/users/new` | Create a new user | -| PUT | `/users/edit?id=` | Update an existing user | -| DELETE | `/users/delete?id=` | Delete a user | +| Method | Endpoint | Description | +| ------ | ----------------------- | -------------------- | +| GET | `/users/get?id=` | Read one user | +| GET | `/users/list?limit=10` | List users, one page | +| POST | `/users/new` | Create a user | +| PUT | `/users/edit?id=` | Update a user | +| DELETE | `/users/delete?id=` | Delete a user | ### Check the field policy -Use disposable data and your configured API base URL. Create a user with `name`, `email`, and a dummy `password`; the response is an array of inserted IDs. Use the first ID for the following checks: +Use disposable data and the base URL of your API module. First, create a user with `POST /users/new` and a body that holds `name`, `email` and a dummy `password`. The response is the created user, with its `_id` and without `password`. Use that `_id` in the next checks. -1. `GET /users/get?id=` returns the readable fields, never `password`. -2. `GET /users/list?limit=10` includes `_id`, `name`, and `email` in `results`. -3. `PUT /users/edit?id=` with `{ "name": "Updated" }` preserves the omitted email. With `{ "email": "" }`, it returns `400` because email is mandatory on edit. +1. `GET /users/get?id=` returns the readable fields. You see `_id`, `email` and `name`, and never `password`. +2. `GET /users/list?limit=10` returns `_id`, `name` and `email` for each entry of `results`. +3. `PUT /users/edit?id=` with `{ "name": "Updated" }` keeps the email you did not send. With `{ "email": "" }`, the route answers `400`, because `email` is mandatory on `edit`. -`@Mandatory` does not check email syntax or password strength. Add [validators](./5.validators.md) before accepting untrusted input. +`@Mandatory` does not check the email syntax or the password strength. Add [validators](./5.validators.md) before you accept untrusted input. ## Core guides -- [Data Controllers](./2.data-controllers.md) - Create and configure data controllers -- [Routes](./3.routes.md) - Default routes, custom routes, and route options -- [Access Rights](./4.access-rights.md) - Control field read/write permissions -- [Validators](./5.validators.md) - Field-level validation and mandatory fields -- [Listable Fields](./6.listable.md) - Pagination, pluck modes, and sorting +- [Data controllers](./2.data-controllers.md). Create and configure data controllers. +- [Routes](./3.routes.md). Default routes, custom routes and route options. +- [Access rights](./4.access-rights.md). Which fields each action reads and writes. +- [Validators](./5.validators.md). Field validation and mandatory fields. +- [Listable fields](./6.listable.md). Pagination, pluck modes and sorting. ## Relationships and advanced queries -- [Foreign Keys](./7.foreign-keys.md) - Establish relationships between tables -- [Filters](./8.filters.md) - Add filtering capabilities to list endpoints -- [Modifiers](./9.modifiers.md) - Automatic data transformation with database-decorators -- [Joined Fields](./10.joined.md) - Flatten a remote field onto rows for native sort/filter -- [Computed Fields](./11.computed.md) - In-database computed values, sortable and pageable natively +- [Foreign keys](./7.foreign-keys.md). Relations between tables. +- [Filters](./8.filters.md). Filters on list endpoints. +- [Modifiers](./9.modifiers.md). Data transformation with database-decorators modifiers. +- [Joined fields](./10.joined.md). A remote field flattened onto each row, sortable and filterable in the database. +- [Computed fields](./11.computed.md). Values computed in the database, sortable and pageable there. diff --git a/docs/10.joined.md b/docs/10.joined.md index c60da78..23b0f8d 100644 --- a/docs/10.joined.md +++ b/docs/10.joined.md @@ -1,16 +1,20 @@ -# Joined Fields +--- +title: Joined fields +description: Flatten one field of another table onto each row with @Joined, so list requests sort and filter on it in the database. +mode: reference +--- ## Overview -The `@Joined` decorator imports a single scalar field from another table and flattens it onto each row at query time. Unlike `@Foreign`, which embeds the full referenced record as a nested object in the response, `@Joined` copies one remote field to the top level of the row before sorting and filtering are applied. This makes the joined field natively sortable, filterable, and searchable in the database. +The `@Joined` decorator copies one scalar field from another table onto each row at query time. `@Foreign` nests the whole referenced record under the field. `@Joined` puts one remote field at the top level of the row, before the list query sorts and filters. The database can therefore sort, filter, and search on the joined field. -Joined fields are read-only: the value is set by a lookup at query time and is never persisted on the controller's own table. Declaring a field as joined automatically sets its access mode to read-only and forces non-indexed sorting. +Joined fields are meant to be read-only. A lookup sets the value at query time, and the controller's own table never stores it. `@Joined` sets the field's access mode to read-only when it runs. An `@Access` written above it runs later and replaces that mode, so do not combine the two. `@Joined` also makes the field's sort non-indexed, whatever the decorator order. -## Basic Usage +## Basic usage -Apply `@Joined` to a field that should be populated from a remote table. The local row must carry a foreign key (`localKey`) that matches the remote table's `remoteIndex`. +Apply `@Joined` to a field that takes its value from a remote table. The local row must hold a key (`localKey`) that matches the remote table's `remoteIndex`. -Use [foreign keys](./7.foreign-keys.md) when the response needs a nested record instead. The snippets below assume the controller imports and model from the [quick start](./1.introduction.md#quick-start), with `myapp` registered before requests are served. +Use [foreign keys](./7.foreign-keys.md) when the response needs a nested record instead. The snippets below assume the controller imports and the model from the [quick start](./1.introduction.md#quick-start), with `myapp` registered before the module serves requests. ```typescript fragment import { Joined } from "@antelopejs/interface-data-api/metadata"; @@ -84,7 +88,7 @@ A GET request to `/orders/get?id=order-123` returns the joined value at the top } ``` -## Decorator Parameters +## Decorator parameters ```typescript fragment @Joined({ table, localKey, remoteField, remoteIndex?, schema? }) @@ -92,15 +96,17 @@ A GET request to `/orders/get?id=order-123` returns the joined value at the top | Option | Type | Required | Default | Description | | ------------- | -------------------------- | -------- | ----------------- | -------------------------------------------------------------------------------------------------- | -| `table` | `Class` or `string` | Yes | - | The remote table class or registered table name string | -| `localKey` | `string` | Yes | - | The field on the local row holding the value matched against the remote table | -| `remoteField` | `string` | Yes | - | The remote field whose value is flattened onto the row | +| `table` | `Class
` or `string` | Yes | None | The remote table class or registered table name string | +| `localKey` | `string` | Yes | None | The field on the local row holding the value matched against the remote table | +| `remoteField` | `string` | Yes | None | The remote field whose value is flattened onto the row | | `remoteIndex` | `string` | No | `"_id"` | The index on the remote table to match `localKey` against | | `schema` | `string` | No | Controller schema | Name of the schema the remote table is registered in, when it differs from the controller's schema | -## Sorting and Filtering +When a list mode includes a joined field, the mode also selects the field's `localKey`. -Because the join is applied to the underlying query before sorting and filtering, joined fields behave like native columns. Combine `@Joined` with `@Sortable` or `@Filter` to order or filter by the imported value. +## Sorting and filtering + +The list query applies the join before it sorts and filters, so a joined field behaves like a stored column. Combine `@Joined` with `@Sortable` or `@Filter` to sort or filter on the joined value. ```typescript fragment @Sortable() @@ -113,28 +119,33 @@ Because the join is applied to the underlying query before sorting and filtering declare userName: string; ``` -Joined fields are always sorted without a database index (`@Sortable` is forced to non-indexed for them), since the value comes from a runtime lookup rather than a stored column. +A joined field always sorts without a database index, because its value comes from a lookup at query time and not from a stored column. `@Sortable` on a joined field is always non-indexed. -## Deferred Resolution on Lists +## Deferred resolution on lists -The default list route handles this scheduling for you. Continue with [cross-schema joins](#cross-schema-joins) unless you are building a custom route with `Query.List`. +The default list route schedules the lookups itself. Skip to [cross-schema joins](#cross-schema-joins) unless you are building a custom route with `Query.List`. -![Joined fields used by filters are resolved before counting; sort fields before paging; display-only fields after paging in the default list route.](./assets/joined-list.svg){width="480"} +![Joined fields used by filters are resolved before counting; sort fields before paging; display-only fields after paging in the default list route.](./assets/joined-list.svg "illustration"){width="480"} ### Advanced: composing `Query.List` -`Query.List` only materializes the joined groups that the request's sort or filters reference before the count. The remaining display-only groups are deferred: the returned stream resolves them itself as soon as an operation can observe them, so destructuring `[query, total]` alone always yields rows with every `@Joined` field resolved. +`Query.List` resolves the joined fields that the request's filters read before it counts the rows. It resolves the joined fields that the sort reads after the count and before the sort. It defers the remaining display-only joined fields. The returned stream resolves them as soon as an operation can read rows, so destructuring `[query, total]` alone always gives rows with every `@Joined` field resolved. -- Paging the stream (`slice`, `nth`) appends the lookups after the page boundary, so they only run on the returned rows. -- A bare `count()` — and any field aggregate (`sum`, `min`, `distinct(field)`, ...) on a non-joined field — skips them entirely (left-join lookups never change the row count nor other fields). -- `changes()` attaches to the raw stream, since change feeds cannot carry the join lookups. -- Any other operation (`filter`, `orderBy`, `map`, ...) materializes them first, since it may read the joined values. +- Paging the stream (`slice`, `nth`) adds the lookups after the page boundary, so they run only on the returned rows. +- A bare `count()` skips the lookups, and so does a field aggregate such as `sum`, `min`, or `distinct(field)` on a field that is not joined. A left-join lookup never changes the row count or the other fields. +- `changes()` attaches to the raw stream, because change feeds cannot carry the join lookups. +- Any other operation, such as `filter`, `orderBy`, or `map`, resolves the lookups first, because it may read the joined values. -The page-only benefit therefore holds as long as paging is the first thing the caller does. An operation applied to the whole stream before paging — a filter, a sort, or the `lookup` that `Query.Foreign` stages for a `@Foreign` field — materializes the joined groups over the whole matched set instead. The lookups still stay out of the count pipeline, but a caller that wants them strictly on the page must pass `{ exposeDeferredJoined: true }` to `Query.List` and resolve them itself after the slice: the raw stream is then returned unchanged and the third tuple element names the joined fields left to resolve with `Query.Joined`. This is what the default list route does, which also lets it limit the page lookups to the plucked fields. +The lookups therefore run on the page only when paging is the first operation the caller applies. An operation on the whole stream before paging resolves the joined fields over the whole matched set. Such operations include a filter, a sort, and the `lookup` that `Query.Foreign` adds for a `@Foreign` field. The lookups still stay out of the count. A caller that wants them on the page only must pass `{ exposeDeferredJoined: true }` to `Query.List` and resolve them after the slice. `Query.List` then returns the raw stream unchanged, and the third tuple element names the joined fields to resolve with `Query.Joined`. The default list route works this way, which also lets it limit the page lookups to the plucked fields. ### Reading a page: `Query.ListPage` -A custom list route over `Query.List` reads its page with `Query.ListPage` rather than chaining the steps itself. It slices the stream, then resolves on the page only, in this order: the deferred joined groups, the `@Computed` fields the filters and the sort did not already merge, the `@Foreign` relations (last, since a computed expression may read a relation's key), and the pluck. +A custom list route over `Query.List` reads its page with `Query.ListPage` instead of chaining the steps itself. `Query.ListPage` slices the stream, then resolves these on the page only, in this order: + +1. The deferred joined fields. +2. The `@Computed` fields that the filters and the sort did not already merge. +3. The `@Foreign` relations. They come last because a computed expression may read a relation's key. +4. The pluck. ```typescript fragment const [query, total, deferredJoined] = Query.List( @@ -158,9 +169,9 @@ const rows = await Query.ListPage(model.database, meta, query, { }); ``` -## Cross-Schema Joins +## Cross-schema joins -By default, the remote table is resolved in the same schema as the controller's table. Use the `schema` option to join against a table registered in a different schema; the join is resolved through the remote table's class, against the default instance of the schema `RegisterSchema` bound it to. The remote class must be registered with `@RegisterTable` before the field is declared; a string table name with no registered class in that schema throws at declaration. +By default, the Data API looks for the remote table in the schema of the controller's table. The `schema` option joins a table registered in a different schema. The join goes through the remote table's class, against the default instance of the schema that `RegisterSchema` bound it to. Register the remote class with `@RegisterTable` before you declare the field. A string table name with no registered class in that schema throws at declaration. ```typescript fragment @Joined({ @@ -172,17 +183,17 @@ By default, the remote table is resolved in the same schema as the controller's declare userName: string; ``` -When a table class is passed, its schema is inferred from its `@RegisterTable` metadata. If both the class metadata and the explicit `schema` option specify a schema and they disagree, an error is thrown. +When you pass a table class, the Data API reads its schema from its `@RegisterTable` metadata. If the class metadata and the `schema` option name different schemas, the declaration throws. -## Joined vs. Foreign +## `@Joined` compared with `@Foreign` -| Aspect | `@Joined` | `@Foreign` | -| ------------------- | -------------------------------------------- | --------------------------------------------------------------------- | -| Result shape | A single scalar value flattened onto the row | The full referenced record (or plucked subset) nested under the field | -| Access | Read-only (enforced) | Configurable via `@Access` | -| Sort / filter | Native (join applied before sort/filter) | Not natively sortable/filterable on remote fields | -| Multiple references | One remote field per decorator | Single or array (`multi`) references | +| Aspect | `@Joined` | `@Foreign` | +| ------------------- | ----------------------------------------------- | ------------------------------------------------------------------------- | +| Result shape | A single scalar value flattened onto the row | The full referenced record, or its plucked fields, nested under the field | +| Access | Read-only, unless a later `@Access` replaces it | Set with `@Access` | +| Sort and filter | In the database, join applied before both | No sort or filter on remote fields | +| Multiple references | One remote field per decorator | Single or array (`multi`) references | -## Next Steps +## Next steps -See the [computed fields documentation](./11.computed.md) to generalize this merge mechanism to arbitrary in-database expressions, or the [modifiers documentation](./9.modifiers.md) to learn how automatic data transformation integrates with the Data API. +To merge any in-database expression onto rows, see [Computed fields](./11.computed.md). To see how modifiers transform data in the Data API, see [Modifiers](./9.modifiers.md). diff --git a/docs/11.computed.md b/docs/11.computed.md index 5b11819..a7badca 100644 --- a/docs/11.computed.md +++ b/docs/11.computed.md @@ -1,19 +1,45 @@ -# Computed Fields +--- +title: Computed fields +description: Compute a field in the database with @Computed, from the row or from a per-row subquery, and sort, filter, and page on it. +mode: reference +--- ## Overview -The `@Computed` decorator declares a field whose value is computed in the database from an expression, then merged onto each row at query time. The expression can be a row-local computation (derived from other fields of the same row) or a per-row subquery, such as an aggregate over another table. Because the merge happens before sorting and filtering, computed fields are natively sortable, filterable, and pageable in DB — no fetch-all or in-memory sorting required. - -Computed fields are read-only: the value is produced by the query and is never persisted on the controller's table. Declaring a field as computed automatically sets its access mode to read-only and forces non-indexed sorting, regardless of decorator order. - -## Basic Usage - -The expression receives the row proxy and the schema instance of the controller's table. It must return a value built from the query builder (`ValueProxy` operations or a subquery), not plain JavaScript computed at request time. - -The snippets extend the [quick-start controller pattern](./1.introduction.md#quick-start); define `GroupModel` with `BasicDataModel(Group)` and register the `myapp` schema before serving requests. Check [driver support](#driver-support) before using aggregate subqueries. - -```typescript fragment -import { Computed } from "@antelopejs/interface-data-api/metadata"; +The `@Computed` decorator declares a field whose value the database computes from an expression and merges onto each row at query time. The expression can compute from other fields of the same row, or run a per-row subquery such as an aggregate over another table. The merge happens before the list query sorts and filters, so the database sorts, filters, and pages computed fields. The API never fetches every row or sorts in memory. + +Computed fields are meant to be read-only. The query produces the value, and the controller's table never stores it. `@Computed` sets the field's access mode to read-only when it runs. An `@Access` written above it runs later and replaces that mode, so do not combine the two. `@Computed` also makes the field's sort non-indexed, whatever the decorator order. + +## Basic usage + +The expression receives the row proxy and the schema instance of the controller's table. It must return a value built with the query builder (`ValueProxy` operations or a subquery), not plain JavaScript computed at request time. + +The example follows the [quick-start controller pattern](./1.introduction.md#quick-start). Register the `myapp` schema before the module serves requests. Check [driver support](#driver-support) before you use aggregate subqueries. + +```typescript +import { Controller } from "@antelopejs/interface-api"; +import { + DataController, + DefaultRoutes, + RegisterDataController, +} from "@antelopejs/interface-data-api"; +import { + Access, + AccessMode, + Computed, + Listable, + ModelReference, + Sortable, +} from "@antelopejs/interface-data-api/metadata"; +import { + BasicDataModel, + Field, + Index, + Model, + RegisterTable, + Relation, + Table, +} from "@antelopejs/interface-database-decorators"; @RegisterTable("groups", "myapp") class Group extends Table { @@ -35,6 +61,8 @@ class Device extends Table { declare group_id: string; } +class GroupModel extends BasicDataModel(Group, "groups") {} + @RegisterDataController() class GroupAPI extends DataController( Group, @@ -56,7 +84,11 @@ class GroupAPI extends DataController( // Aggregate: number of devices referencing this group, computed in DB @Listable() @Computed( - (row, db) => db.table("devices").getAll(row.key("_id"), "group_id").count(), + (row, db) => + db + .table("devices") + .filter((device) => device.key("group_id").eq(row.key("_id"))) + .count(), { default: 0 }, ) @Sortable() @@ -64,11 +96,13 @@ class GroupAPI extends DataController( // Row-local expression @Listable() - @Computed((row) => (row.key("name") as ValueProxy).concat("!")) + @Computed((row) => row.key("name").concat("!")) declare display_name: string; } ``` +The row proxy types every field as a `FieldValue`. The subquery compares each device's `group_id` with the row's `_id` through `eq`, which accepts that type. This filter checks every device for each row and does not use the `group_id` index. `getAll(row.key("_id"), "group_id")` would use the index, but `getAll` does not accept a row key typed as a `FieldValue`, so it compiles only with a cast. + A GET request to `/groups/get?id=group-123` returns the computed values at the top level: ```json @@ -80,69 +114,79 @@ A GET request to `/groups/get?id=group-123` returns the computed values at the t } ``` -## Decorator Parameters +## Decorator parameters ```typescript fragment @Computed(expr, options?) ``` -| Parameter | Type | Required | Description | -| ----------------- | ------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------- | -| `expr` | `(row, db) => expression` | Yes | Expression receiving the row proxy and the schema instance; returns a `ValueProxy` expression or a subquery (`Datum`) | -| `options.default` | `unknown` | No | Fallback merged over the computed value when the expression yields `null` | +| Parameter | Type | Required | Description | +| ----------------- | ------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `expr` | `(row, db) => expression` | Yes | Expression receiving the row proxy and the schema instance. Returns a `ValueProxy` expression, a subquery (`Query`), or a constant | +| `options.default` | `FieldValue` | No | Fallback merged over the computed value when the expression yields `null` | ### The `default` option -Aggregate subqueries yield `null` instead of their natural zero value when the underlying set is empty (a `count()` over a group with no devices returns `null`, not `0`). Calling `.default(0)` inside the subquery expression does not help: the aggregation produces no document at all, so there is nothing to apply the default to. The `options.default` value solves this by being applied at the row level, after the merge: +An aggregate subquery over an empty set yields `null` instead of its zero value. A `count()` over a group with no devices returns `null`, not `0`. Calling `.default(0)` inside the subquery expression does not help, because the aggregation produces no document to apply the default to. The `options.default` value works because the Data API applies it to the row, after the merge: ```typescript fragment -@Computed((row, db) => db.table("devices").getAll(row.key("_id"), "group_id").count(), { - default: 0, -}) +@Computed( + (row, db) => + db + .table("devices") + .filter((device) => device.key("group_id").eq(row.key("_id"))) + .count(), + { default: 0 }, +) declare devices_count: number; ``` -Without it, rows with an empty aggregate carry `null`, which breaks equality filters (`filter_devices_count=eq:0`) and makes sort ordering depend on BSON type ordering. +Without it, a row with an empty aggregate holds `null`. An equality filter such as `filter_devices_count=eq:0` then misses the row, and the sort order depends on BSON type ordering. -## Sorting, Filtering, and Pagination +## Sorting, filtering, and pagination -Computed fields combine with `@Sortable` and `@Filter` like native columns. The framework injects the computation lazily, only when and where the value is needed: +Computed fields combine with `@Sortable` and `@Filter` like stored columns. The list query merges each computed field only where a step needs its value: -- A computed field referenced by an active filter is merged before filters run. -- A computed field used as the sort key is merged after the total count is captured and before the non-indexed `orderBy`, so the aggregate is not paid twice. -- A computed field requested only for display (in the pluck, neither sorted nor filtered) is merged after pagination (`slice`), so it is computed only for the returned page, not the whole collection. +- A computed field that an active filter reads is merged before the filters run. +- A computed field used as the sort key is merged after the total count and before the non-indexed `orderBy`, so the count does not compute the aggregate. +- A computed field requested only for display, in the pluck and neither sorted nor filtered, is merged after pagination (`slice`). The database computes it for the returned page only. -Sorting and pagination both stay in the database: sorting by a computed aggregate with `limit`/`offset` produces correct pages and a constant `total`. +Sorting and pagination both stay in the database. Sorting by a computed aggregate with `limit` and `offset` gives correct pages and the same `total` on every page. -Computed fields are always sorted without a database index (`@Sortable` is forced to non-indexed), since the value does not exist as a stored column. +A computed field always sorts without a database index, because its value is not a stored column. `@Sortable` on a computed field is always non-indexed. ### Filtering on numeric computed fields -Filter values arrive as strings from the query string. Use the validated `numberFilter` from [Numeric and Boolean Filters](./8.filters.md#numeric-and-boolean-filters), imported into the controller file. It rejects invalid numbers and honors the requested comparison operator; `parseFloat` alone accepts partial input such as `"3devices"`. +Filter values arrive as strings from the query string. Import the validated `numberFilter` from [Numeric and boolean filters](./8.filters.md#numeric-and-boolean-filters) into the controller file. It rejects invalid numbers and applies the requested comparison operator. `parseFloat` alone accepts partial input such as `"3devices"`. ```typescript fragment -@Computed((row, db) => db.table("devices").getAll(row.key("_id"), "group_id").count(), { - default: 0, -}) +@Computed( + (row, db) => + db + .table("devices") + .filter((device) => device.key("group_id").eq(row.key("_id"))) + .count(), + { default: 0 }, +) @Filter(numberFilter, false) declare devices_count: number; ``` -## Computed vs. Joined +## `@Computed` compared with `@Joined` -| Aspect | `@Computed` | `@Joined` | -| ------------- | --------------------------------------------------------------- | ------------------------------------------------------------ | -| Source | Arbitrary expression: row-local computation or per-row subquery | One scalar field from another table matched by a foreign key | -| Typical use | Aggregates (`count`, `sum`), derived values | Flattening a referenced record's field | -| Access | Read-only (enforced) | Read-only (enforced) | -| Sort / filter | Native, lazily injected only where needed | Native, always applied before sort/filter | +| Aspect | `@Computed` | `@Joined` | +| --------------- | ---------------------------------------------------------------- | ------------------------------------------------------------ | +| Source | Any expression: a computation over the row or a per-row subquery | One scalar field from another table matched by a foreign key | +| Typical use | Aggregates (`count`, `sum`), derived values | Flattening a field of a referenced record | +| Access | Read-only, unless a later `@Access` replaces it | Read-only, unless a later `@Access` replaces it | +| Sort and filter | In the database, merged only where a step needs the value | In the database, join applied before sort and filter | -`@Joined` remains the simpler choice for the 1:1 flattening case; `@Computed` generalizes the same merge mechanism to arbitrary expressions. +For one field copied from one referenced record, `@Joined` is simpler. `@Computed` applies the same merge to any expression. -## Driver Support +## Driver support -The aggregate form relies on the database driver translating a per-row subquery inside a merge into a correlated lookup (`$lookup` with `let`/`pipeline` on MongoDB). `@antelopejs/mongodb` supports this in the releases that translate such a subquery into that `$lookup`; its changelog lists the release that added it. Row-local expressions only use standard expression compilation and work on any driver. +The aggregate form needs a database driver that turns a per-row subquery inside a merge into a correlated lookup. On MongoDB, the lookup is a `$lookup` with `let` and `pipeline`. The `@antelopejs/mongodb` changelog names the release that added this translation. Row-local expressions use standard expression compilation and work on any driver. -## Next Steps +## Next steps -See the [joined fields documentation](./10.joined.md) for the dedicated 1:1 flattening decorator. +For the decorator that copies one field from a referenced record, see [Joined fields](./10.joined.md). diff --git a/docs/2.data-controllers.md b/docs/2.data-controllers.md index a6e27e1..43a3c82 100644 --- a/docs/2.data-controllers.md +++ b/docs/2.data-controllers.md @@ -1,14 +1,18 @@ -# Data Controllers +--- +title: Data controllers +description: The DataController function, the RegisterDataController decorator, and the parts every data controller declares. +mode: reference +--- ## Overview -A data controller is the central building block of the Data API. It connects a database table to a set of API endpoints, exposing the table fields you declare on the class. The `DataController` function creates a base class that combines your table definition, route definitions, and controller path into a single cohesive unit. +A data controller connects a database table to a set of API endpoints and exposes the table fields you declare on the class. The `DataController` function returns a base class built from three parts: the table class, the route definitions and the controller base that holds the endpoint path. -## Create a Data Controller +## Create a data controller -Use the `DataController` function to define a new controller. It accepts three arguments: the table class, a route definition object, and a controller base with the endpoint path. +`DataController` takes three arguments: the table class, a route definition object, and a controller base with the endpoint path. -This example uses the `myapp` schema and the `my-database` instance. Import the table declaration and await `RegisterSchema("myapp")` in the declaring module before serving requests; provision the named instance through your database setup. +The example uses the `myapp` schema and the `my-database` instance. Import the table declaration and await `RegisterSchema("myapp")` in the declaring module before it serves requests. Your database setup provisions the named instance. ```ts docs-check import { Controller } from "@antelopejs/interface-api"; @@ -31,7 +35,6 @@ import { Table, } from "@antelopejs/interface-database-decorators"; -// Define the database table @RegisterTable("users", "myapp") class User extends Table { @Field("string") @@ -44,10 +47,8 @@ class User extends Table { declare age: number; } -// Create the database model class UserModel extends BasicDataModel(User, "users") {} -// Create the data controller @RegisterDataController() class UserAPI extends DataController( User, @@ -71,50 +72,57 @@ class UserAPI extends DataController( } ``` -## `DataController` Signature +## `DataController` signature ```typescript fragment -DataController( - tableClass: typeof Table, // Database table class - routes: DataControllerDef, // Route definitions (e.g., DefaultRoutes.All) - base: typeof Controller, // Controller base with path -) +function DataController< + C extends Class, + P extends DataControllerDef = DataControllerDef, + Base extends ControllerClass = ControllerClass, +>( + tableClass: C, + def: P, + base: Base, +): Class & { table: InstanceType }> & Base; ``` -| Parameter | Description | -| ------------ | --------------------------------------------------------------------------------------------------------------------------------- | -| `tableClass` | The database table class decorated with `@RegisterTable`. The controller validates that this table exists in the database schema. | -| `routes` | An object mapping endpoint names to route callbacks. Use `DefaultRoutes.All` for standard CRUD or pass a custom subset. | -| `base` | The controller base, typically created with `Controller("/path")`, which sets the URL prefix for all endpoints. | +| Parameter | Description | +| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tableClass` | The table class decorated with `@RegisterTable`. `DataController` throws `Non-existent Database Schema` when the table's schema is not registered, and `Unregistered Database Table` when the schema does not hold the table. | +| `def` | An object that maps endpoint names to route callbacks. Use `DefaultRoutes.All` for the five CRUD routes, or pass a subset or custom routes. | +| `base` | The controller base, usually `Controller("/path")` from `@antelopejs/interface-api`. Its location is the URL prefix of every endpoint. | -## Required Components +The returned class extends `base`. Its prototype holds one method per key of `def`, and its instances declare a `table` field typed by the table class. -Every data controller requires the following elements: +## Required components -1. **Table Class** - A database table decorated with `@RegisterTable`, defining the schema. -2. **Route Definitions** - Which operations to expose. Use `DefaultRoutes.All` or a custom selection. -3. **Controller Base** - The URL path prefix, created with `Controller("/path")`. -4. **Model Reference** - A property decorated with `@ModelReference()` that holds a database model instance. This model provides the actual database operations (insert, get, update, delete). A controller derived from another data controller (for example `Controller("/path", ParentController)`) inherits its model reference unless it declares its own. +Every data controller declares these four parts. -## The `@RegisterDataController` Decorator +1. **Table class.** A database table decorated with `@RegisterTable`, which defines the schema. +2. **Route definitions.** The operations to expose. Use `DefaultRoutes.All` or a custom selection. +3. **Controller base.** The URL path prefix, created with `Controller("/path")`. +4. **Model reference.** A property decorated with `@ModelReference()` that holds a database model instance. The model runs the database operations (insert, get, update and delete). A controller derived from another data controller (for example `Controller("/path", ParentController)`) inherits its model reference unless it declares its own. -Apply `@RegisterDataController()` to the class to finalize the controller setup. This decorator processes all field decorators, registers the defined routes, and connects parameter providers to each endpoint. +## The `@RegisterDataController` decorator -## Field Declarations +Apply `@RegisterDataController()` to the class to finish the controller setup. For each route of the definition, the decorator applies the route's parameter decorators, registers a prefix route that records the route entry on the request context, and registers the route method as the handler at `/`. -Fields declared on the data controller class determine which database columns are exposed through the API. Each field can be annotated with decorators to control its behavior: +## Field declarations -- `@Access` - Set read/write permissions. -- `@Listable` - Include the field in list responses. -- `@Mandatory` - Require the field on specific operations. -- `@Validator` - Attach a validation function. -- `@Foreign` - Establish a foreign key relationship. -- `@Joined` - Flatten a scalar field from another table onto the row. -- `@Filter` - Enable filtering on the field. -- `@Sortable` - Allow sorting by the field. +The fields you declare on the data controller class decide which table fields the API exposes. Each field takes decorators that set its behaviour: -Fields without any decorator are ignored by the Data API and do not appear in API responses or accept input. +- `@Access` sets read and write permissions. +- `@Listable` includes the field in list responses. +- `@Mandatory` requires the field on specific operations. +- `@Validator` attaches a validation function. +- `@Foreign` declares a foreign key relationship. +- `@Joined` flattens a scalar field from another table onto the row. +- `@Computed` adds a value the database computes for each row. +- `@Filter` enables filtering on the field. +- `@Sortable` allows sorting by the field. -## Next Steps +The Data API ignores a field without an access mode. Such a field never appears in responses and never accepts input. `@Access` gives a field its mode, and `@Joined` and `@Computed` make their field read-only. -See the [routes documentation](./3.routes.md) to learn about available routes and how to customize them. +## Next steps + +The [routes page](./3.routes.md) lists the available routes and how to customize them. diff --git a/docs/3.routes.md b/docs/3.routes.md index 62607aa..3709d91 100644 --- a/docs/3.routes.md +++ b/docs/3.routes.md @@ -1,18 +1,22 @@ -# Routes +--- +title: Routes +description: The default CRUD routes, their parameters and responses, the WithOptions and WithGetGuard helpers, custom routes, and route errors. +mode: reference +--- ## Overview -Routes define which operations are available on a data controller. The module provides predefined route configurations that automatically generate endpoints with the correct HTTP methods, parameter extraction, and response handling. +Routes define which operations a data controller serves. The `DefaultRoutes` namespace holds ready-made routes. Each one sets its HTTP method, the parameters it reads from the request and the response it sends. -## Default Routes +## Default routes -The `DefaultRoutes` namespace provides five built-in routes covering standard CRUD operations. +The `DefaultRoutes` namespace holds five routes for the CRUD operations. ```typescript import { DefaultRoutes } from "@antelopejs/interface-data-api"; ``` -| Route | Object | HTTP Method | Endpoint Pattern | +| Route | Object | HTTP method | Endpoint pattern | | ------ | ---------------------- | ----------- | -------------------------- | | Get | `DefaultRoutes.Get` | GET | `/resource/get?id=` | | List | `DefaultRoutes.List` | GET | `/resource/list` | @@ -20,11 +24,11 @@ import { DefaultRoutes } from "@antelopejs/interface-data-api"; | Edit | `DefaultRoutes.Edit` | PUT | `/resource/edit?id=` | | Delete | `DefaultRoutes.Delete` | DELETE | `/resource/delete?id=` | -Use `DefaultRoutes.All` to include all five routes at once. +`DefaultRoutes.All` holds all five routes under the keys `get`, `list`, `new`, `edit` and `delete`. -## Route Configuration +## Route configuration -Pass a route definition object to `DataController` to control which endpoints are created. +The route definition object you pass to `DataController` decides which endpoints exist. Each key is an endpoint name. ```typescript fragment // All CRUD routes @@ -48,31 +52,27 @@ class UserAPI extends DataController( }, Controller("/users"), ) { - // edit and delete endpoints are not created + // no edit or delete endpoint } ``` -## Route Details +## Route details ### Get -Retrieves a single record by its identifier. +Reads one record by its identifier. The endpoint is `GET /resource/get`. -**Endpoint:** `GET /resource/get` +| Query parameter | Required | Description | +| --------------- | -------- | ----------------- | +| `id` | Yes | Record identifier | -**Query Parameters:** - -| Parameter | Required | Description | -| --------- | -------- | ----------------- | -| `id` | Yes | Record identifier | - -**Example:** +A request without `id` answers `400` with `Missing id.`. A missing record answers `404 Not Found`. ```http GET /users/get?id=user-123 ``` -**Response:** +The response holds the readable fields of the record. ```json { @@ -84,26 +84,21 @@ GET /users/get?id=user-123 ### List -Retrieves multiple records with pagination, sorting, and filtering support. - -**Endpoint:** `GET /resource/list` - -**Query Parameters:** +Reads one page of records, with sorting and filtering. The endpoint is `GET /resource/list`. -| Parameter | Required | Default | Description | -| --------------- | -------- | ------- | --------------------------------------------- | -| `limit` | No | `10` | Maximum number of records to return | -| `offset` | No | `0` | Number of records to skip | -| `sortKey` | No | - | Field to sort by (must be marked `@Sortable`) | -| `sortDirection` | No | `asc` | Sort direction: `asc` or `desc` | - -**Example:** +| Query parameter | Required | Default | Description | +| ---------------- | -------- | -------------------- | ------------------------------------------------------------------------------------------------ | +| `limit` | No | `maxPage`, else `10` | Maximum number of records to return. The route caps it at `maxPage`, or at `100` without one. | +| `offset` | No | `0` | Number of records to skip | +| `sortKey` | No | none | Field to sort by. The field needs `@Sortable`, or the route answers `400 Field is not sortable.` | +| `sortDirection` | No | `asc` | `asc` or `desc`. Any other value sorts ascending. | +| `filter_` | No | none | A filter on a field declared with `@Filter`. See [filters](./8.filters.md). | ```http GET /users/list?limit=10&offset=0&sortKey=name&sortDirection=asc ``` -**Response:** +The response holds the page, the total count of matching records, and the `offset` and `limit` the route used. ```json { @@ -119,13 +114,7 @@ GET /users/list?limit=10&offset=0&sortKey=name&sortDirection=asc ### New -Creates a new record. The request body must be a JSON object with the fields to set. - -**Endpoint:** `POST /resource/new` - -**Body:** JSON object with field values. - -**Example:** +Creates a record. The endpoint is `POST /resource/new`, and the body is a JSON object with the field values. ```http POST /users/new @@ -138,7 +127,7 @@ Content-Type: application/json } ``` -**Response:** the created record, as [Get](#get) answers it, with its `_id` even when `get` does not read it. +The response is the created record, as [Get](#get) answers it, with its `_id` even when `get` does not read `_id`. ```json { @@ -148,23 +137,19 @@ Content-Type: application/json } ``` -Every writable field is written: a field absent from the body is written as `undefined`, and every writable setter of the controller runs (with `undefined` for absent fields). A body that is not valid JSON or not a JSON object is rejected with `400 Bad Request`. +The row starts from the defaults the controller class declares. Every writable field is then written. A field absent from the body is written as `undefined`, and every writable setter of the controller runs, with `undefined` for an absent field. The route answers `400 Bad Request` for a body that is not valid JSON or not a JSON object. -Before inserting, the `insert` event is triggered on any table modifiers attached to the database table. +Before the insert, the route triggers the `insert` event on the modifiers of the table. ### Edit -Updates an existing record by its identifier. +Updates a record by its identifier. The endpoint is `PUT /resource/edit`. -**Endpoint:** `PUT /resource/edit` +| Query parameter | Required | Description | +| --------------- | -------- | ----------------- | +| `id` | Yes | Record identifier | -**Query Parameters:** - -| Parameter | Required | Description | -| --------- | -------- | ----------------- | -| `id` | Yes | Record identifier | - -**Body:** JSON object with the fields to update. Only the fields present in the body are written: +The body is a JSON object with the fields to update. The route writes only the fields present in the body. | In the body | Effect on the field | | ----------- | ------------------- | @@ -172,11 +157,9 @@ Updates an existing record by its identifier. | `null` | cleared | | a value | set | -Writable setters only run for the fields present in the body. Modifier fields (localized, encrypted…) absent from the body keep their stored value in every language. +Writable setters run only for the fields present in the body. A modifier field (localized or encrypted, for example) absent from the body keeps its stored value in every language. -A missing record answers `404 Not Found`. A body that is not valid JSON or not a JSON object is rejected with `400 Bad Request`. - -**Example:** +A request without `id` answers `400` with `Missing id.`. A missing record answers `404 Not Found`. A body that is not valid JSON or not a JSON object answers `400 Bad Request`. ```http PUT /users/edit?id=user-123 @@ -188,7 +171,7 @@ Content-Type: application/json } ``` -**Response:** the stored record after the update, as [Get](#get) answers it (joined, computed and foreign fields included), so the caller needs no second read. +The response is the stored record after the update, as [Get](#get) answers it, with joined, computed and foreign fields. The caller needs no second read. ```json { @@ -198,45 +181,41 @@ Content-Type: application/json } ``` -Before updating, the `update` event is triggered on any table modifiers attached to the database table. +Before the update, the route triggers the `update` event on the modifiers of the table. ### Delete -Deletes one or more records by their identifiers. - -**Endpoint:** `DELETE /resource/delete` +Deletes one or more records by their identifiers. The endpoint is `DELETE /resource/delete`. -**Query Parameters:** +| Query parameter | Required | Description | +| --------------- | -------- | ----------------------------------------------------------------------------------- | +| `id` | Yes | Record identifier. Repeat the `id` parameter to delete several records in one call. | -| Parameter | Required | Description | -| --------- | -------- | -------------------------------------------------------------------------------------- | -| `id` | Yes | Record identifier(s). Pass multiple `id` parameters to delete several records at once. | - -**Example:** +A request without `id` answers `400` with `Missing id.`. ```http DELETE /users/delete?id=user-123 ``` -**Response:** +The route answers `200 OK`. The body is the number of records the database deleted. An identifier that matches no record is not an error. ```http 200 OK ``` -## Route Options with `WithOptions` +## Route options with `WithOptions` -The `DefaultRoutes.WithOptions` function customizes route behavior by overriding query parameters or route settings. +`DefaultRoutes.WithOptions` customizes a route. It sets route options, which take precedence over the query parameters of the same name, and it can rename the endpoint. ```typescript fragment DefaultRoutes.WithOptions(callback, options?, endpoint?) ``` -| Parameter | Description | -| ---------- | ------------------------------------------------------------------------------------ | -| `callback` | The route callback to customize (e.g., `DefaultRoutes.Edit`). | -| `options` | An object with option overrides. These values take precedence over query parameters. | -| `endpoint` | An optional custom endpoint path. Defaults to the route key name. | +| Parameter | Description | +| ---------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `callback` | The route to customize, such as `DefaultRoutes.Edit`, or a route `WithOptions` already returned. In that case the options merge. | +| `options` | An object of option values. A query parameter with the same name is ignored. Route `filters` combine with the request's filters. | +| `endpoint` | A custom endpoint path. It defaults to the route key in the definition object. | ### Example @@ -250,48 +229,52 @@ const routes = { @RegisterDataController() class UserAPI extends DataController(User, routes, Controller("/users")) { - // /users/edit enforces mandatory fields - // /users/quickEdit skips mandatory field validation + // /users/edit checks mandatory fields + // /users/quickEdit skips the mandatory field check } ``` -### Available Options per Route +### Available options per route + +The string options `noForeign` and `noMandatory` take effect for any non-empty string, `"false"` included. -**Get:** +The Get route takes these options. -| Option | Type | Description | -| ----------- | -------- | ------------------------------------------------ | -| `index` | `string` | Use a secondary index instead of the primary key | -| `noForeign` | `string` | Skip foreign key resolution | +| Option | Type | Description | +| ----------- | -------- | -------------------------------------------------------------------- | +| `index` | `string` | Read the record through a secondary index instead of the primary key | +| `noForeign` | `string` | Skip foreign key resolution | -**List:** +The List route takes these options. | Option | Type | Description | | ----------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `maxPage` | `number` | Maximum allowed value for `limit` (caps the page size) | +| `maxPage` | `number` | Maximum value of `limit`, and the page size when the request sends no `limit`. Without it, the cap is `100`. | | `noForeign` | `boolean` | Skip foreign key resolution | -| `noPluck` | `boolean` | Return all database fields instead of plucked fields | -| `pluckMode` | `string` | Select a named pluck mode (see `@Listable`) | -| `filters` | `Record` | Mandatory filters merged with request filters; route field keys win (see [filters](./8.filters.md#mandatory-route-filters)). | +| `noPluck` | `boolean` | Skip the database pluck. The response still holds only the fields readable in `list` | +| `pluckMode` | `string` | Select a named pluck mode (see `@Listable`). A mode that no field declares answers `400`. | +| `filters` | `Record` | Mandatory filters merged with request filters. Route field keys win (see [filters](./8.filters.md#mandatory-route-filters)). | + +The New route takes this option. -**New:** +| Option | Type | Description | +| ------------- | -------- | ------------------------------ | +| `noMandatory` | `string` | Skip the mandatory field check | -| Option | Type | Description | -| ------------- | -------- | ------------------------------- | -| `noMandatory` | `string` | Skip mandatory field validation | +The Edit route takes these options. -**Edit:** +| Option | Type | Description | +| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `index` | `string` | Find the record and read the response through a secondary index. The update itself targets the record whose primary key equals `id`. | +| `noMandatory` | `string` | Skip the mandatory field check | -| Option | Type | Description | -| ------------- | -------- | ------------------------------------------------ | -| `index` | `string` | Use a secondary index instead of the primary key | -| `noMandatory` | `string` | Skip mandatory field validation | +## Amending the body of `new` and `edit` -## Amending the Body of New and Edit +The `new` and `edit` routes take the raw request body (`Buffer`) or a body already parsed (`Validation.WrittenBody`). A route that wraps them can parse the body, amend it (stamp a field or drop one) and pass the object on. The route validates and writes the object as it receives it, with no second serialization. -The `new` and `edit` routes take the raw request body (`Buffer`) or a body already parsed (`Validation.WrittenBody`). A route wrapping them can parse the body, amend it (stamp a field, drop one) and hand the object on: the route validates and writes it as handed, without a second serialization. +A parsed body is `FieldValues`, which holds fields by name. Each field holds a `FieldValue`: a string, a number, a boolean, `null`, a `Date`, or an array or plain object of those. `Validation.ParseBody` answers `400` for anything else, whether it comes from a `Buffer` or from a body already parsed. That includes a function, a class instance, a `bigint`, a cycle and an `undefined` array element. -A parsed body is `FieldValues`: fields by name, each holding a `FieldValue` (a string, number, boolean, `null`, `Date`, or an array or plain object of those). `Validation.ParseBody` answers 400 for anything else, whether it comes from a `Buffer` or from a body already parsed: a function, a class instance, a `bigint`, a cycle or an `undefined` array element. The default routes run with the controller as `this`, so a wrapping function declares `this: DataControllerInstance` and calls `route.func.call(this, ...)`. +The default routes run with the controller as `this`. A wrapping function declares `this: DataControllerInstance` and calls `route.func.call(this, ...)`. ```ts docs-check import { @@ -319,9 +302,9 @@ const stampedNew = { }; ``` -## Loaded-Model Guards with `WithGetGuard` +## Loaded-model guards with `WithGetGuard` -`DefaultRoutes.WithGetGuard(guard)` returns a Get route that awaits a guard after loading and unlocking the model, but before selecting readable fields and applying response getters. Use it to check a stored discriminator or ownership field that must not appear in the response. +`DefaultRoutes.WithGetGuard(guard)` returns a Get route that awaits a guard after it loads and unlocks the model. The guard runs before the route selects the readable fields and applies the response getters. A guard can check a stored discriminator or ownership field that never appears in the response. ```ts docs-check import { DefaultRoutes } from "@antelopejs/interface-data-api"; @@ -329,7 +312,7 @@ import { assert } from "@antelopejs/interface-api-util"; const invoiceGet = DefaultRoutes.WithGetGuard( async function (ctx, current, params) { - // documentType can be stored without being exposed through @Access. + // The table stores documentType, and no @Access exposes it. assert(current.documentType === "invoice", 404, "Not Found"); }, ); @@ -340,26 +323,26 @@ const routes = { }; ``` -The `GetGuard` callback receives `(ctx, current, params)`. Declare it as a regular function to access the controller through `this`, typed `DataControllerInstance`. `current` is `FieldValues`. +The `GetGuard` callback receives `(ctx, current, params)`. Declare it as a regular function to reach the controller through `this`, typed `DataControllerInstance`. That type is `object`, with no string index, so narrow `this` (with `instanceof` your controller class, for example) before you read a controller field. `current` is `RowFields`, whose values are `unknown`. -| Argument | Contents | Use it for | -| --------- | --------------------------------------------------------------------------------------- | ---------------------------------------------- | -| `ctx` | Request context | Request-specific policy. | -| `current` | Loaded model, including non-readable fields and normal Get joined/computed/foreign data | Inspecting stored ownership or discriminators. | -| `params` | `Parameters.GetParameters` | The parsed Get parameters. | +| Argument | Contents | Use it for | +| --------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------- | +| `ctx` | Request context | Policy that depends on the request | +| `current` | Loaded model, with the fields no `@Access` reads and the joined, computed and foreign data of Get | Checking stored ownership or discriminators | +| `params` | `Parameters.GetParameters` | The parsed Get parameters | -Treat `current` as read-only: it is not the response DTO and the API does not freeze it. +Treat `current` as read-only. It is not the response object, and the API does not freeze it. -Keep these boundaries when writing a guard: +A guard follows these rules. -- **Deny by throwing.** Throw an `HTTPResult` or use `assert`. A normal return permits the read, including a return value of `false`. -- **Missing records bypass the guard.** The route returns `404` without invoking it. -- **Use the already-loaded model.** The guard does not issue a second read or change field-access rules. -- **Protect each route deliberately.** The guard applies only to the route using it, not list, edit, or delete routes. +- **Deny by throwing.** Throw an `HTTPResult` or call `assert`. A normal return allows the read, even a return value of `false`. +- **A missing record skips the guard.** The route answers `404` without calling it. +- **The guard reads the loaded model.** It issues no second read and does not change field access rules. +- **Each route needs its own guard.** The guard applies only to the route that uses it, not to the list, edit or delete routes. -## Custom Routes +## Custom routes -For operations beyond CRUD, define a custom route callback with `func`, `args`, and `method` properties. +For operations beyond CRUD, define a route callback with `func`, `args` and `method` properties. ```typescript fragment import { Context } from "@antelopejs/interface-api"; @@ -392,9 +375,9 @@ class UserAPI extends DataController( } ``` -The `args` array contains parameter decorators that extract values from the request context. Each decorator corresponds to a parameter in the `func` callback, in order. +The `args` array holds parameter decorators that read values from the request context. Entry `i` of `args` supplies parameter `i` of `func`. -`DataControllerCallback` states that pairing: `A` is the tuple of what `func` receives, and `args` holds one decorator per element of `A`. The default routes declare theirs (`DefaultRoutes.Get` takes `[RequestContext, Parameters.GetParameters]`, `DefaultRoutes.New` and `Edit` add the `Validation.WrittenBody`), so a route wrapping one can be generic over the tuple and call `route.func.call(this, ...)` with typed arguments. Without `A`, the parameters are not known and not checked: that is the type a `DataControllerDef` holds. +`DataControllerCallback` states that pairing. `A` is the tuple of what `func` receives, and `args` holds one decorator per element of `A`. The default routes declare their tuple. `DefaultRoutes.Get` takes `[RequestContext, Parameters.GetParameters]`, and `DefaultRoutes.New` and `DefaultRoutes.Edit` add the `Validation.WrittenBody`. A route that wraps one of them can be generic over the tuple and call `route.func.call(this, ...)` with typed arguments. Without `A`, the parameters are unknown and unchecked. A `DataControllerDef` holds routes of that type. ```ts docs-check import type { RequestContext } from "@antelopejs/interface-api"; @@ -428,18 +411,18 @@ function withLoggedId( const loggedGet = withLoggedId(DefaultRoutes.Get); ``` -## Error Handling +## Error handling -Default routes return standard HTTP error responses: +The default routes answer with these HTTP errors. -| Status | Condition | -| --------------------------- | ---------------------------------------------------------------- | -| `400 Bad Request` | Validation fails, missing required fields, or invalid parameters | -| `404 Not Found` | Record does not exist | -| `500 Internal Server Error` | Database operation fails | +| Status | Condition | +| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| `400 Bad Request` | A field fails its validator, a mandatory field is missing, the body is not a JSON object, or a parameter is missing or invalid | +| `404 Not Found` | The record does not exist | +| `500 Internal Server Error` | The database operation fails, or the controller holds no model | -Error messages are returned as plain text in the response body. +A failed mandatory or validator check answers a JSON body with a `code` and the `fields` concerned (see [validators](./5.validators.md#error-handling)). Every other error the routes raise answers its message as text, such as `Missing id.` or `Not Found`. -## Next Steps +## Next steps -See the [access rights documentation](./4.access-rights.md) to learn how to control field read/write permissions. +The [access rights page](./4.access-rights.md) covers which fields each action reads and writes. diff --git a/docs/4.access-rights.md b/docs/4.access-rights.md index 1fbf778..5a3f3db 100644 --- a/docs/4.access-rights.md +++ b/docs/4.access-rights.md @@ -1,41 +1,45 @@ -# Access Rights +--- +title: Access rights +description: The @Access decorator, the three AccessMode values and per-action overrides that decide which fields each route reads and writes. +mode: reference +--- ## Overview -The `@Access` decorator controls how fields are read and written through the API. Each field can be set to read-only, write-only, or read-write, providing fine-grained control over data exposure. Access modes can also be overridden on a per-action basis, allowing different permissions for `get`, `list`, `new`, and `edit` operations. +The `@Access` decorator sets how the API reads and writes a field. A field is read-only, write-only or read-write. An override can give one action (`get`, `list`, `new` or `edit`) a different mode. ## Separate field policy from caller permissions -`@Access` answers “may this action read or write this field?”, not “may this user access this record?”. Authenticate the caller and apply record-level policy separately. A write-only password is hidden from responses, but this decorator does not hash it. +`@Access` answers "may this action read or write this field?". It does not answer "may this user access this record?". Authenticate the caller and apply record-level policy separately. A write-only password stays out of responses, but `@Access` does not hash it. -Build the field policy in this order: +Build the field policy in this order. -1. Set `@Access` for each public field. Undecorated fields remain private. -2. Add action overrides for differences between creation and editing. -3. Add `@Listable` for the fields selected by list responses; readable alone does not define a list projection. +1. Set `@Access` on each public field. A field without it stays private. +2. Add action overrides where creation and editing differ. +3. Add `@Listable` to the fields list responses select. Read access alone does not put a field in a list response. 4. Add validators and mandatory-field rules for writable inputs. -For example, a display name can be readable and writable, an ID readable only, and a password writable only. Test each direction: attempting to write a read-only field is ignored, while omitting a mandatory writable field is a validation concern. +For example, a display name is readable and writable, an ID is read-only, and a password is write-only. Test each direction. The routes ignore a value sent for a read-only field. A missing mandatory field is a validation error, covered on the [validators page](./5.validators.md). -## Access Modes +## Access modes -The `AccessMode` enum defines three permission levels: +The `AccessMode` enum defines three modes. ```typescript import { Access, AccessMode } from "@antelopejs/interface-data-api/metadata"; ``` -| Mode | Value | Description | -| ---------------------- | ----- | --------------------------------------------------------------------------------------------------- | -| `AccessMode.ReadOnly` | `1` | Field is readable; list responses also require selection by the pluck mode. POST and PUT ignore it. | -| `AccessMode.WriteOnly` | `2` | Field is accepted in POST and PUT bodies but never appears in responses | -| `AccessMode.ReadWrite` | `3` | Field is both readable and writable | +| Mode | Value | Description | +| ---------------------- | ----- | ------------------------------------------------------------------------------------------------------ | +| `AccessMode.ReadOnly` | `1` | The field is readable. A list response also needs the pluck mode to select it. POST and PUT ignore it. | +| `AccessMode.WriteOnly` | `2` | POST and PUT bodies accept the field, and no response holds it | +| `AccessMode.ReadWrite` | `3` | The field is readable and writable | -## Basic Usage +## Basic usage -### Read-Only Fields +### Read-only fields -Read-only fields appear in API responses but cannot be modified through create or update requests. Values sent for these fields in request bodies are silently ignored. +A read-only field appears in responses, and create and update requests cannot change it. The routes ignore a value sent for it in a request body and report nothing. ```typescript fragment @RegisterDataController() @@ -59,11 +63,11 @@ class UserAPI extends DataController( } ``` -A PUT request to `/users/edit?id=user-123` with `{ "createdAt": "2025-01-01", "name": "Alice" }` updates only `name`. The `createdAt` field is ignored. +A PUT request to `/users/edit?id=user-123` with `{ "createdAt": "2025-01-01", "name": "Alice" }` updates only `name`. The route ignores `createdAt`. -### Write-Only Fields +### Write-only fields -Write-only fields accept input during create and update operations but are never included in API responses. This is useful for sensitive data like passwords. +A write-only field accepts input on create and update, and no response holds it. Passwords and other secrets use this mode. ```typescript fragment @RegisterDataController() @@ -87,7 +91,7 @@ class UserAPI extends DataController( } ``` -A GET request to `/users/get?id=user-123` returns `name` and `email` but never includes `password`: +A GET request to `/users/get?id=user-123` returns `name` and `email`, and never `password`. ```json { @@ -96,9 +100,9 @@ A GET request to `/users/get?id=user-123` returns `name` and `email` but never i } ``` -### Read-Write Fields +### Read-write fields -Read-write fields are fully accessible: they appear in responses and accept input in request bodies. +A read-write field appears in responses and accepts input in request bodies. ```typescript fragment @Access(AccessMode.ReadWrite) @@ -108,19 +112,19 @@ declare email: string; declare name: string; ``` -## Per-Action Overrides +## Per-action overrides -The `@Access` decorator accepts an optional second argument to override the access mode for specific actions. This allows a field to behave differently depending on the operation being performed. +`@Access` takes an optional second argument that overrides the mode for named actions. ```typescript fragment -@Access(defaultMode: AccessMode, overrides?: Record) +@Access(mode: AccessMode, overrides?: Record) ``` -The `overrides` object maps action names (`"get"`, `"list"`, `"new"`, `"edit"`) to an `AccessMode` value. Actions not listed in the overrides use the default mode. +The `overrides` object maps action names (`"get"`, `"list"`, `"new"` and `"edit"`) to an `AccessMode`. An action that `overrides` does not name uses `mode`. -To read the access a field has in one action, outside the routes (to render a form read-only on edit, for example), call `GetEffectiveMode(field, action)` from `@antelopejs/interface-data-api/metadata` with the field's metadata (`meta.fields[name]`). It is the mode the routes apply. +To read the mode a field has in one action outside the routes (to render a form read-only on edit, for example), call `GetEffectiveMode(field, action)` from `@antelopejs/interface-data-api/metadata` with the field's metadata (`meta.fields[name]`). It returns the mode the routes apply. -### Example: Writable on Create, Read-Only on Edit +### Example: writable on create, read-only on edit ```typescript fragment @RegisterDataController() @@ -139,25 +143,25 @@ class UserAPI extends DataController( @Access(AccessMode.ReadWrite) declare name: string; - // role can be set when creating, but cannot be changed during edit + // Writable on new, read-only on edit @Access(AccessMode.ReadWrite, { edit: AccessMode.ReadOnly }) declare role: string; - // age is read-only by default, but writable during creation + // Read-only, except on new @Access(AccessMode.ReadOnly, { new: AccessMode.ReadWrite }) declare age: number; } ``` -In this configuration: +With this configuration: -- `role` is readable and writable in all operations except `edit`, where it becomes read-only. -- `age` is read-only by default but can be set during `new` (create) operations. +- `role` is readable and writable in every action except `edit`, where it is read-only. +- `age` is read-only, except in `new`, where a create request can set it. -## Fields Without `@Access` +## Fields without `@Access` -Ordinary fields need `@Access` to appear in responses or accept input; `@Listable` alone does not grant access. The derived-field decorators [`@Joined`](./10.joined.md) and [`@Computed`](./11.computed.md) are exceptions: they set read-only access themselves. +An ordinary field needs `@Access` to appear in responses or accept input. `@Listable` alone grants no access. The derived-field decorators [`@Joined`](./10.joined.md) and [`@Computed`](./11.computed.md) are the exceptions. They set read-only access themselves. -## Next Steps +## Next steps -See the [validators documentation](./5.validators.md) to learn how to enforce validation rules on field values. +The [validators page](./5.validators.md) covers validation rules on field values. diff --git a/docs/5.validators.md b/docs/5.validators.md index 0198839..c7c9d71 100644 --- a/docs/5.validators.md +++ b/docs/5.validators.md @@ -1,14 +1,20 @@ -# Validators +--- +title: Validators +description: The @Validator, @Mandatory and @Optional decorators, the checks they run on create and update, and the 400 bodies they answer. +mode: reference +--- ## Overview -Validators provide field-level data integrity checks that run automatically during create and update operations. The `@Validator` decorator attaches a custom validation function to a field, while `@Mandatory` ensures that specific fields are present in request bodies for given operations. The `@Optional` decorator explicitly marks a field as not mandatory. +Validators check field values on the `new` and `edit` routes. `@Validator` attaches a validation function to a field. `@Mandatory` requires a field in the request body for the named operations. `@Optional` marks a field as mandatory for no operation. -## The `@Validator` Decorator +The routes parse the body, then run the mandatory check, then the validators. A failed mandatory check answers `400` before any validator runs. -### Basic Usage +## The `@Validator` decorator -The `@Validator` decorator accepts a function that receives the field value and returns `true` if valid or `false` if invalid. It can instead return a parse result (see [Parsed Values](#parsed-values)) so that the parsed value is written. The function can also return a `Promise` of either for asynchronous validation. +### Basic usage + +`@Validator` takes a function that receives the field value and returns `true` for a valid value or `false` for an invalid one. It can return a parse result instead (see [parsed values](#parsed-values)), and the route then writes the parsed value. For asynchronous validation, the function returns a `Promise` of either. ```typescript fragment import { Validator } from "@antelopejs/interface-data-api/metadata"; @@ -33,7 +39,7 @@ class UserAPI extends DataController( } ``` -### Validation Function Signature +### Validation function signature ```typescript type FieldValue = @@ -53,17 +59,18 @@ type FieldValidationResult = | { success: false }; ``` -The function: +The function behaves as follows. -- Receives the raw field value from the request body: JSON, or a `Date` or `undefined` when a route wrapping `new` or `edit` amended the parsed body. `FieldValue | undefined` has to be narrowed before use. -- Returns `true` when the value is valid: the raw value is written. -- Returns `{ success: true, data }` when the value is valid: `data` is written instead of the raw value. -- Returns `false` or `{ success: false }` when the value is invalid, which triggers a `400 Bad Request` response. -- Should handle unexpected types gracefully (e.g., check `typeof` before accessing properties). +- It runs only for a field present in the request body. +- It receives the raw field value from the request body. The value is JSON, or a `Date` or `undefined` when a route that wraps `new` or `edit` amended the parsed body. Narrow `FieldValue | undefined` before you use it. +- It returns `true` for a valid value, and the route writes the raw value. +- It returns `{ success: true, data }` for a valid value, and the route writes `data` instead of the raw value. +- It returns `false` or `{ success: false }` for an invalid value, and the route answers `400 Bad Request`. +- It receives any JSON type, so check the type with `typeof` before you read a property. -### Parsed Values +### Parsed values -A validator returning a parse result writes the parsed value on both `new` and `edit`. The result has the shape of zod's `safeParse`, so a zod schema can be used directly: +When a validator returns a parse result, the route writes the parsed value on both `new` and `edit`. The result has the shape of the result of zod's `safeParse`, so a zod schema works as a validator. ```typescript fragment const startsAtSchema = z.coerce.date(); @@ -73,9 +80,9 @@ const startsAtSchema = z.coerce.date(); declare startsAt: Date; // "2026-01-15" is stored as a Date ``` -## Common Validation Patterns +## Common validation patterns -### String Validation +### String validation ```typescript fragment // Minimum length @@ -93,7 +100,7 @@ const VALID_ROLES = ["admin", "editor", "viewer"]; declare role: string; ``` -### Number Validation +### Number validation ```typescript fragment // Range @@ -109,7 +116,7 @@ declare quantity: number; declare price: number; ``` -### Date Validation +### Date validation ```typescript fragment // Valid date string @@ -125,9 +132,9 @@ declare birthDate: string; declare appointmentDate: string; ``` -### Async Validation +### Async validation -An asynchronous lookup can give early feedback, but a check followed by an insert is not a uniqueness guarantee: concurrent requests can both pass. Enforce uniqueness in the database where supported, and handle write conflicts. `lookupByEmail` below is an application-supplied function. +An asynchronous lookup gives early feedback. A check followed by an insert does not guarantee uniqueness, because two concurrent requests can both pass the check. Enforce uniqueness in the database where the database supports it, and handle write conflicts. `lookupByEmail` below is a function your application supplies. ```typescript fragment // Check uniqueness against the database @@ -139,12 +146,12 @@ An asynchronous lookup can give early feedback, but a check followed by an inser declare email: string; ``` -## The `@Mandatory` Decorator +## The `@Mandatory` decorator -The `@Mandatory` decorator specifies which operations require a field in the request body. Unlike `@Validator`, which checks field content, `@Mandatory` only verifies that the field is provided: +`@Mandatory` names the operations that require a field in the request body. `@Validator` checks the content of a field. `@Mandatory` checks only that the body provides it. -- On `"edit"`, the body only carries the fields to update: a mandatory field absent from the body keeps its stored value and is accepted, while a mandatory field cleared by the body (`null`, `""` or `[]`) is rejected. -- On any other operation (such as `"new"`), a mandatory field must be present in the body. +- On `"edit"`, the body carries only the fields to update. The route accepts a mandatory field absent from the body, which keeps its stored value. It rejects a mandatory field that the body clears with `null`, `""` or `[]`. +- On any other operation, such as `"new"`, the body must hold every mandatory field. ```typescript import { Mandatory } from "@antelopejs/interface-data-api/metadata"; @@ -152,7 +159,7 @@ import { Mandatory } from "@antelopejs/interface-data-api/metadata"; ### Usage -Pass one or more operation names as arguments. Common operation names are `"new"` (create) and `"edit"` (update). +Pass one or more operation names as arguments. The default routes check `"new"` (create) and `"edit"` (update). ```typescript fragment @RegisterDataController() @@ -189,9 +196,9 @@ In this example: - `status` cannot be cleared when editing an existing record. - `notes` is always optional. -### Skip Mandatory Validation +### Skip mandatory validation -Use `DefaultRoutes.WithOptions` with the `noMandatory` option to create an endpoint that skips mandatory field checks. +`DefaultRoutes.WithOptions` with the `noMandatory` option creates an endpoint that skips the mandatory field check. Any non-empty string turns the option on. The validators still run. ```typescript fragment const routes = { @@ -211,9 +218,9 @@ class UserAPI extends DataController(User, routes, Controller("/users")) { Requests to `/users/edit` cannot clear `status`, while requests to `/users/patchEdit` can. -## The `@Optional` Decorator +## The `@Optional` decorator -The `@Optional` decorator explicitly marks a field as not mandatory for any operation. Use it on fields that have no other decorators but still need to be recognized by the Data API metadata system. +`@Optional` marks a field as mandatory for no operation, and records the field in the Data API metadata. Use it only on a field with no other decorator, since it clears what `@Mandatory` set. ```typescript fragment import { Optional } from "@antelopejs/interface-data-api/metadata"; @@ -222,15 +229,17 @@ import { Optional } from "@antelopejs/interface-data-api/metadata"; declare notes: string; ``` -## Error Handling +## Error handling -When validation or mandatory checks fail, the API returns a `400 Bad Request` response whose JSON body names what went wrong and the fields concerned, for the client to word it and show it under each field: +When a mandatory check or a validator fails, the route answers `400 Bad Request`. The JSON body holds a `code` for what went wrong and the `fields` concerned, so the client can word the error and show it under each field. -- **Mandatory failure:** `{ "code": "missing_mandatory_fields", "fields": ["email", "password"] }` -- **Validator failure:** `{ "code": "invalid_field_types", "fields": ["age", "email"] }` +| Failure | Body | +| --------- | ------------------------------------------------------------------------- | +| Mandatory | `{ "code": "missing_mandatory_fields", "fields": ["email", "password"] }` | +| Validator | `{ "code": "invalid_field_types", "fields": ["age", "email"] }` | -The codes are exported as `Validation.MISSING_MANDATORY_FIELDS` and `Validation.INVALID_FIELD_TYPES` (`@antelopejs/interface-data-api/components`), the body's type as `Validation.FieldsErrorBody`. All fields are checked: `fields` lists every one that failed. +`@antelopejs/interface-data-api/components` exports the codes as `Validation.MISSING_MANDATORY_FIELDS` and `Validation.INVALID_FIELD_TYPES`, and the body type as `Validation.FieldsErrorBody`. Each check covers every field, and `fields` lists every field that failed it. -## Next Steps +## Next steps -See the [listable fields documentation](./6.listable.md) to learn how to control field visibility in list operations and configure pagination. +The [listable fields page](./6.listable.md) covers which fields list responses hold and how pagination works. diff --git a/docs/6.listable.md b/docs/6.listable.md index 94beb99..aa0335e 100644 --- a/docs/6.listable.md +++ b/docs/6.listable.md @@ -1,14 +1,18 @@ -# Listable Fields +--- +title: Listable fields +description: Choose the fields a list route returns with @Listable, serve several field sets with pluck modes, page the results, and sort them with @Sortable. +mode: reference +--- ## Overview -The `@Listable` decorator controls which fields are included in list endpoint responses. By default, list operations only return fields explicitly marked as listable, keeping payloads lightweight. The decorator supports multiple pluck modes for different levels of detail, and list responses include built-in pagination metadata. +The `@Listable` decorator selects the fields that list responses include. A list route returns only the fields marked as listable, so list payloads stay small. Pluck modes let one controller serve several field sets, and every list response carries pagination metadata. -The `@Sortable` decorator marks fields that can be used as a sorting key in list queries. +The `@Sortable` decorator marks the fields that a list request can sort on. -## Basic Usage +## Basic usage -Fields decorated with `@Listable()` are included in list responses. Fields without this decorator are excluded from list results but still appear in single-record `get` responses (provided they have read access). +A list response includes the fields decorated with `@Listable()`. A field without the decorator is left out of list results, but a single-record `get` response still includes it when the field has read access. ```typescript fragment import { @@ -43,22 +47,22 @@ class UserAPI extends DataController( A request to `GET /users/list` returns `_id` and `email` for each record. A request to `GET /users/get?id=user-123` returns all three fields. -## Pluck Modes +## Pluck modes -Pluck modes allow a single controller to serve multiple list views with different field selections. Each `@Listable` call can target a named mode. +A pluck mode is a named field set. With pluck modes, one controller serves several list views, each with its own fields. Each `@Listable` call adds the field to one mode. -### Default Mode +### Default mode -Calling `@Listable()` without a mode name registers the field under the default `"list"` mode. +`@Listable()` without a mode name adds the field to the default `"list"` mode. ```typescript fragment @Listable() declare name: string; ``` -### Custom Modes +### Custom modes -Pass `true` and a mode name to register a field under a specific pluck mode. +`@Listable(true, "detailed")` adds the field to the `"detailed"` mode. ```typescript fragment @Listable() // Included in default "list" mode @@ -72,9 +76,9 @@ declare internalNotes: string; declare email: string; ``` -### Exclude from a Mode +### Exclude from a mode -Pass `false` to explicitly exclude a field from a mode. +`@Listable(false, "minimal")` leaves the field out of the `"minimal"` mode. ```typescript fragment @Listable() @@ -82,9 +86,9 @@ Pass `false` to explicitly exclude a field from a mode. declare description: string; ``` -### Access Pluck Modes via Routes +### Access pluck modes via routes -Define separate routes for each pluck mode using `DefaultRoutes.WithOptions` with the `pluckMode` option. +Each pluck mode needs its own route. `DefaultRoutes.WithOptions` sets the route's `pluckMode` option. ```typescript fragment const routes = { @@ -114,11 +118,11 @@ class UserAPI extends DataController(User, routes, Controller("/users")) { - `GET /users/list` returns only `name`. - `GET /users/detailed` returns both `name` and `internalNotes`. -Modes are independent field sets: `"detailed"` does not inherit `"list"`. The example includes `name` in both modes explicitly. A registered list route whose `pluckMode` has never been declared returns `400 Bad Request` unless `noPluck` is enabled; an unregistered URL instead returns `404`. +Modes are independent field sets. The `"detailed"` mode does not inherit the fields of `"list"`, so the example adds `name` to both modes. A registered list route whose `pluckMode` no field declares returns `400 Bad Request`, unless the route sets `noPluck`. A URL that matches no route returns `404`. -### Listable with Getters +### Listable with getters -When a field uses a getter (computed property), the `@Listable` decorator must specify which database fields the getter depends on. This ensures those fields are fetched from the database. +A getter (computed property) reads fields that the database must return. Its `@Listable` decorator lists those database fields, so the list query fetches them. ```typescript fragment @Listable(["firstName", "lastName"]) @@ -130,7 +134,7 @@ get fullName() { ## Pagination -List responses include pagination metadata. The response structure is: +Every list response carries pagination metadata. The response has this shape: ```typescript fragment { @@ -141,12 +145,12 @@ List responses include pagination metadata. The response structure is: } ``` -### Query Parameters +### Query parameters -| Parameter | Default | Description | -| --------- | ------- | ----------------------------------- | -| `limit` | `10` | Maximum number of records to return | -| `offset` | `0` | Number of records to skip | +| Parameter | Default | Description | +| --------- | ------------------------------------------------ | ----------------------------------- | +| `limit` | The route's `maxPage`, or `10` when it sets none | Maximum number of records to return | +| `offset` | `0` | Number of records to skip | ### Example @@ -166,9 +170,9 @@ GET /users/list?limit=2&offset=4 } ``` -### Limit Maximum Page Size +### Limit maximum page size -Use the `maxPage` route option to cap the `limit` parameter. If a request specifies a `limit` larger than `maxPage`, the value is clamped to `maxPage`. +The `maxPage` route option caps the `limit` parameter. A request whose `limit` is larger than `maxPage` gets `maxPage` records at most. A request without `limit` also gets `maxPage` records. A route without `maxPage` caps `limit` at `100`. ```typescript fragment const routes = { @@ -183,7 +187,7 @@ class UserAPI extends DataController(User, routes, Controller("/users")) { ## Sorting with `@Sortable` -The `@Sortable` decorator marks a field as eligible for use as a sorting key in list operations. +The `@Sortable` decorator lets a list request sort on the field. ```typescript fragment import { Sortable } from "@antelopejs/interface-data-api/metadata"; @@ -215,16 +219,16 @@ class UserAPI extends DataController( } ``` -### Sort Query Parameters +### Sort query parameters -| Parameter | Description | -| --------------- | ------------------------------------------------------------------ | -| `sortKey` | The field name to sort by. Must be decorated with `@Sortable`. | -| `sortDirection` | `"asc"` (ascending) or `"desc"` (descending). Defaults to `"asc"`. | +| Parameter | Description | +| --------------- | --------------------------------------------------------------------------------------- | +| `sortKey` | The field name to sort by. The field must have `@Sortable`. | +| `sortDirection` | `"asc"` (ascending) or `"desc"` (descending). A missing or other value sorts ascending. | -### The `noIndex` Option +### The `noIndex` option -By default, `@Sortable()` marks the field for indexed ordering. Set `noIndex: true` when it is not indexed. Both paths build an AQL `orderBy` operation; this option changes where sorting is staged, not whether rows are sorted in application memory. The provider determines how the database executes that ordering. +By default, `@Sortable()` marks the field for indexed ordering. Set `noIndex: true` when the field has no index. Both settings build a database `orderBy` operation, and neither sorts rows in application memory. The option changes where the list query places the sort. The database provider decides how it runs the ordering. ```typescript fragment @Sortable() // Uses database index for sorting @@ -234,9 +238,9 @@ declare _id: string; declare name: string; ``` -### Localized Fields +### Localized fields -A `@Localized` field is sorted on its value in the request's locale, the one the controller's `@ModifierKey(LocalizationModifier)` field holds. A row with no value in that locale, or an empty one, sorts on its `fallbackLocale` value. This ordering is computed per row, so it never uses an index, whatever `noIndex` says. +A `@Localized` field sorts on its value in the request's locale, which the controller's `@ModifierKey(LocalizationModifier)` field holds. A row with no value in that locale, or an empty one, sorts on its `fallbackLocale` value. The list query computes this value for each row, so the sort never uses an index, whatever `noIndex` says. ### Example @@ -257,8 +261,8 @@ GET /users/list?sortKey=age&sortDirection=desc&limit=3 } ``` -If `sortKey` refers to a field that is not marked with `@Sortable`, the API returns a `400 Bad Request` error. +If `sortKey` names a field without `@Sortable`, the API returns `400 Bad Request` with the message `Field is not sortable.` -## Next Steps +## Next steps -See the [foreign keys documentation](./7.foreign-keys.md) to learn how to establish relationships between tables. +To link records across tables, see [Foreign keys](./7.foreign-keys.md). diff --git a/docs/7.foreign-keys.md b/docs/7.foreign-keys.md index f7af598..0f5c217 100644 --- a/docs/7.foreign-keys.md +++ b/docs/7.foreign-keys.md @@ -1,16 +1,20 @@ -# Foreign Keys +--- +title: Foreign keys +description: Resolve a foreign key field into the referenced record with @Foreign, for single and array references, across schemas, and per route. +mode: reference +--- ## Overview -The `@Foreign` decorator establishes relationships between database tables in your data controller. When a field holds a foreign key (an ID referencing another table), the Data API automatically resolves the reference and includes the related record in API responses. This works for both single references and arrays of references. +The `@Foreign` decorator links a field of your data controller to another table. When a field holds a foreign key (an ID of a record in another table), the Data API looks up the referenced record and puts it in the response. The field can hold one key or an array of keys. -## Basic Usage +## Basic usage -Apply `@Foreign` to a field that stores a foreign key value. The decorator replaces the raw ID in the response with the full referenced record. +Apply `@Foreign` to a field that stores a foreign key value. The response then holds the referenced record in place of the raw ID. -Choose the response fields explicitly with `pluck`. A foreign lookup reads the target table, not its API controller: do not rely on the target controller's `@Access` policy to hide passwords or internal fields. The example below selects only the user's ID, name, and email. +Choose the response fields with `pluck`. A foreign lookup reads the target table, not its API controller, so the target controller's `@Access` policy does not hide passwords or internal fields. The example below selects only the user's ID, name, and email. -The snippets use the `myapp` schema. Register it in the declaring module before serving requests, as in the [quick start](./1.introduction.md#quick-start). Controller snippets assume the corresponding model and shared imports are already declared. +The snippets use the `myapp` schema. Register it in the declaring module before serving requests, as in the [quick start](./1.introduction.md#quick-start). The controller snippets assume that the matching model and the shared imports exist. ```typescript fragment import { Foreign } from "@antelopejs/interface-data-api/metadata"; @@ -71,7 +75,7 @@ class OrderAPI extends DataController( } ``` -A GET request to `/orders/get?id=order-123` returns the full user object instead of a raw ID: +A GET request to `/orders/get?id=order-123` returns the user object in place of the raw ID: ```json { @@ -85,45 +89,46 @@ A GET request to `/orders/get?id=order-123` returns the full user object instead } ``` -## Decorator Parameters +## Decorator parameters ```typescript fragment -@Foreign(table, index?, multi?, pluck?, schema?) +@Foreign(table, index?, multi?, pluck?, schema?, targetMeta?) ``` -| Parameter | Type | Required | Default | Description | -| --------- | -------------------------- | -------- | ----------------- | -------------------------------------------------------------------------------------------------- | -| `table` | `Class
` or `string` | Yes | - | The target table class or table name string | -| `index` | `string` | No | `"_id"` | The index on the target table to match against | -| `multi` | `boolean` | No | `false` | Set to `true` when the field holds an array of foreign keys | -| `pluck` | `string[]` | No | All fields | List of fields to include from the referenced record | -| `schema` | `string` | No | Controller schema | Name of the schema the target table is registered in, when it differs from the controller's schema | +| Parameter | Type | Required | Default | Description | +| ------------ | -------------------------- | -------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `table` | `Class
` or `string` | Yes | None | The target table class or table name string | +| `index` | `string` | No | `"_id"` | The index on the target table to match against | +| `multi` | `boolean` | No | `false` | Set to `true` when the field holds an array of foreign keys | +| `pluck` | `string[]` | No | All fields | List of fields to include from the referenced record | +| `schema` | `string` | No | Controller schema | Name of the schema the target table is registered in, when it differs from the controller's schema | +| `targetMeta` | `DataAPIMeta` | No | None | Metadata of the target's data controller. Its `@Joined` fields that `pluck` names, or all of them when `pluck` is unset, are resolved on a relation that is not `multi` | -## Table Reference Methods +## Table reference methods -### Class Reference +### Class reference -Pass the table class directly. This provides IDE autocompletion, refactoring support, and compile-time validation. +Pass the table class. Your editor can then complete and rename the reference, and the compiler checks it. ```typescript fragment @Foreign(User) declare userId: User; ``` -### String Reference +### String reference -Pass the registered table name as a string. Use this when importing the class would create circular dependencies. +Pass the registered table name as a string. Use a string when importing the class would create a circular import. ```typescript fragment @Foreign("users") declare userId: User; ``` -## Multi-Record References +## Multi-record references -When a field stores an array of foreign key IDs, set the `multi` parameter to `true`. The API resolves each ID and returns an array of full records. +When a field stores an array of foreign key IDs, set the `multi` parameter to `true`. The API looks up each ID and returns an array of records. -The table-level `@Relation({ many: true })` is declarative metadata recording that the field holds multiple target keys; API-side resolution is controlled solely by the `multi` parameter of `@Foreign`. +The table-level `@Relation({ many: true })` is metadata only. It records that the field holds several target keys. Only the `multi` parameter of `@Foreign` controls how the API resolves the field. ```typescript fragment @RegisterTable("carts", "myapp") @@ -181,9 +186,9 @@ Response: } ``` -## Selective Field Retrieval with Pluck +## Selective field retrieval with pluck -The `pluck` parameter limits which fields are included from the referenced record. This reduces response payload size when you only need specific fields. +The `pluck` parameter limits the fields taken from the referenced record. Use it to keep the response small when you need only some fields. ```typescript fragment @RegisterDataController() @@ -239,19 +244,19 @@ Response with `pluck: ["name", "email"]`: } ``` -## Custom Index +## Custom index -Use the `index` parameter to match against a secondary index instead of the primary key. +The `index` parameter matches the field against a secondary index of the target table, in place of the primary key. ```typescript fragment -// Match userId against the "email" index on the User table +// Match userEmail against the "email" index on the User table @Foreign(User, "email") declare userEmail: User; ``` -## Cross-Schema References +## Cross-schema references -By default, the target table is resolved in the same schema as the controller's table. Use the `schema` parameter to reference a table registered in a different schema. At runtime the foreign lookup is resolved through the target's table class, against the default instance of the schema `RegisterSchema` bound it to, so it follows the database of the module that declared the table. The target's class must be registered with `@RegisterTable` before the field is declared; a string table name with no registered class in that schema throws at declaration. +By default, the Data API looks for the target table in the schema of the controller's table. The `schema` parameter names a different schema. At runtime, the foreign lookup goes through the target's table class, against the default instance of the schema that `RegisterSchema` bound it to. The lookup therefore uses the database of the module that declared the table. Register the target's class with `@RegisterTable` before you declare the field. A string table name with no registered class in that schema throws at declaration. ```typescript fragment // Resolve userId against the User table registered in the "auth" schema @@ -260,11 +265,11 @@ By default, the target table is resolved in the same schema as the controller's declare userId: User; ``` -When a table class is passed (instead of a string), its schema is inferred from its `@RegisterTable` metadata, so the `schema` parameter is only needed to override that or when passing a string table name. If both the class metadata and the explicit `schema` option specify a schema and they disagree, an error is thrown. +When you pass a table class, the Data API reads its schema from its `@RegisterTable` metadata. The `schema` parameter is then needed only with a string table name, or when the class metadata names no schema. If the class metadata and the `schema` parameter name different schemas, the declaration throws. -## Disable Foreign Key Resolution +## Disable foreign key resolution -Use the `noForeign` route option to skip foreign key resolution for specific endpoints. This returns raw IDs instead of resolved objects. +The `noForeign` route option skips foreign key resolution on one route. The route then returns raw IDs in place of records. On a `get` route the option is a string, and on a `list` route it is a boolean. ```typescript import { DefaultRoutes } from "@antelopejs/interface-data-api"; @@ -275,12 +280,12 @@ const routes = { }; ``` -## Error Handling +## Error handling -- **Missing References** - If a referenced record does not exist, the field value is `null`. -- **Invalid IDs** - Invalid foreign key values result in `null` for the resolved field. -- **Arrays with Missing Items** - In multi-record references, missing items appear as `null` in the array. +- If a referenced record does not exist, the field value is `null`. +- An invalid foreign key value resolves to `null`. +- In a multi-record reference, each missing item is `null` in the array. -## Next Steps +## Next steps -See the [filters documentation](./8.filters.md) to learn how to add filtering capabilities to list endpoints. +To filter list results, see [Filters](./8.filters.md). diff --git a/docs/8.filters.md b/docs/8.filters.md index 0946278..c8fa086 100644 --- a/docs/8.filters.md +++ b/docs/8.filters.md @@ -1,14 +1,18 @@ -# Filters +--- +title: Filters +description: Let list requests filter rows with @Filter, through the default comparisons, custom filter functions, and mandatory route filters. +mode: reference +--- ## Overview -The `@Filter` decorator adds filtering capabilities to list endpoints. Filters allow clients to narrow down results using query parameters. The module provides a default filter with standard comparison operators and supports custom filter functions for advanced logic. +The `@Filter` decorator lets a list request narrow its results through query parameters. The default filter compares the field with six comparison operators. A custom filter function can hold any other logic. -## Basic Usage +## Basic usage -### Default Filter +### Default filter -Apply `@Filter()` without arguments to enable standard comparison filtering on a string field. Query filter values remain strings: TypeScript annotations, `@Field`, and write validators do not parse them into numbers or booleans. +`@Filter()` without arguments enables the default comparison filter on a string field. Filter values stay strings. TypeScript annotations, `@Field`, and write validators do not parse them into numbers or booleans. ```typescript fragment import { Filter } from "@antelopejs/interface-data-api/metadata"; @@ -39,18 +43,18 @@ class UserAPI extends DataController( } ``` -### Query Parameter Format +### Query parameter format -Filters are applied through query parameters using the following format: +A filter is a query parameter in one of these forms: ``` filter_= filter_=: ``` -When no operator is specified, `eq` (equal) is used by default. +Without an operator, the filter uses `eq` (equal). The text before the first colon is the operator, so a value that contains a colon needs the `eq:` prefix. The default filter answers `400` to an operator that is not in the table below. -### Comparison Operators +### Comparison operators | Operator | Description | | -------- | ------------------------ | @@ -75,7 +79,7 @@ Retrieve users whose role is not admin: GET /users/list?filter_role=ne:admin ``` -Combine multiple filters: +Combine filters on several fields: ```http GET /users/list?filter_status=active&filter_role=ne:admin @@ -87,19 +91,21 @@ Filter one field several times to keep the rows that pass every filter (AND): GET /users/list?filter_age=ge:18&filter_age=lt:65 ``` -The route receives that field's filters as a list of `FilterValue` tuples (`FieldFilter`); a field filtered once keeps a single tuple. Read either shape with `FilterValuesOf(filter)` from `@antelopejs/interface-data-api/metadata`. An indexed equality filter only uses its index when it is the field's only filter. +The route receives the filters of that field as a list of `FilterValue` tuples (`FieldFilter`). A field filtered once keeps a single tuple. `FilterValuesOf(filter)` from `@antelopejs/interface-data-api/metadata` reads either shape as a list. An indexed equality filter uses its index only when it is the only filter on the field. -### Numeric and Boolean Filters +### Numeric and boolean filters -Parse and validate values explicitly in a custom filter. These filters support the six numeric comparisons and boolean equality/inequality; unsupported input throws an HTTP 400 response. +Parse and validate numbers and booleans in a custom filter. The filters below support the six numeric comparisons and boolean `eq` and `ne`. Any other input fails with an HTTP 400 response. ```ts docs-check import { assert } from "@antelopejs/interface-api-util"; import type { FilterFunction } from "@antelopejs/interface-data-api/metadata"; -const COMPARISONS = ["eq", "ne", "gt", "ge", "lt", "le"] as const; +type Comparison = "eq" | "ne" | "gt" | "ge" | "lt" | "le"; -function isComparison(mode: string): mode is (typeof COMPARISONS)[number] { +const COMPARISONS: readonly Comparison[] = ["eq", "ne", "gt", "ge", "lt", "le"]; + +function isComparison(mode: string): mode is Comparison { return COMPARISONS.some((comparison) => comparison === mode); } @@ -129,7 +135,7 @@ export const booleanFilter: FilterFunction> = ( }; ``` -Apply the functions to the corresponding fields in your controller: +Apply the functions to the matching fields of your controller: ```typescript fragment @Filter(numberFilter, false) @@ -139,35 +145,38 @@ declare age: number; declare isActive: boolean; ``` -With these custom filters, `?filter_age=gt:30&filter_isActive=true` compares against `30` and `true`, not `"30"` and `"true"`. Keep `useIndex` false for callbacks that parse values: indexed equality uses the raw string directly and bypasses the filter callback. +With these custom filters, `?filter_age=gt:30&filter_isActive=true` compares against `30` and `true`, not `"30"` and `"true"`. Keep `useIndex` false for a filter that parses its value. An indexed equality lookup uses the raw string and skips the filter function. -## Custom Filters +## Custom filters -For filtering logic beyond simple comparisons, pass a custom filter function to `@Filter`. +For logic beyond the comparison operators, pass a custom filter function to `@Filter`. -### Filter Function Signature +### Filter function signature ```typescript fragment -type FilterFunction = ( +type FilterFunction< + T extends Record, + U extends Record = FieldValues, +> = ( context: RequestContext & { this: T }, proxy: ValueProxy, key: string, - ...rest: [value: string, mode: string, row: ValueProxy] + ...rest: [value: FilterValue[0], mode: FilterValue[1], row: ValueProxy] ) => ValueProxyOrValue; ``` -| Parameter | Description | -| --------- | ------------------------------------------------------------------------------------------------------- | -| `context` | The request context, extended with `this` referencing the controller instance | -| `proxy` | A query expression produced by the field modifier's `unlockrequest()` method; see the limitations below | -| `key` | The field name being filtered | -| `value` | The filter value from the query parameter | -| `mode` | The text before the first colon of the query parameter, unchecked: the filter defines its own modes | -| `row` | The full database row as a `ValueProxy` | +| Parameter | Description | +| --------- | -------------------------------------------------------------------------------------------------------- | +| `context` | The request context, with `this` set to the controller instance | +| `proxy` | A query expression that the field modifier's `unlockrequest()` method builds. See the limitations below. | +| `key` | The name of the filtered field | +| `value` | The filter value from the query parameter, a string | +| `mode` | The text before the first colon of the query parameter, unchecked. The filter defines its own modes. | +| `row` | The full database row as a `ValueProxy` | -`value`, `mode` and `row` are one rest tuple, so that the function type stays within five parameters. A function that declares them as separate parameters is assignable to it, and `Parameters>` lists all six. +`value`, `mode`, and `row` form one rest tuple, so the function type stays within five parameters. A function that declares them as separate parameters is assignable to the type, and `Parameters>` lists all six. -### Example: Pattern Matching Filter +### Example: pattern matching filter ```typescript fragment function filterByEmailDomain( @@ -211,11 +220,11 @@ Query for users with Gmail addresses: GET /users/list?filter_email=gmail.com ``` -Import `assert` from `@antelopejs/interface-api-util`. Escaping the domain makes the dot literal rather than a regular-expression wildcard. This example deliberately rejects operators other than `eq` instead of silently treating every request as equality. +Import `assert` from `@antelopejs/interface-api-util`. The function escapes the domain, so the dot matches a literal dot and not any character. The function rejects operators other than `eq`, so a request with another operator fails instead of running as an equality filter. -### The `useIndex` Parameter +### The `useIndex` parameter -The `@Filter` decorator accepts an optional second parameter, `useIndex`, that controls whether the filter can use a database index for optimized lookups. +The second parameter of `@Filter`, `useIndex`, allows the filter to use a database index. ```typescript fragment @Filter(undefined, true) // Default filter with index optimization @@ -225,16 +234,16 @@ declare status: string; declare name: string; ``` -When `useIndex` is not specified: +When `useIndex` is not set: -- Default filters (no custom function) automatically use the index if the field has one. -- Custom filters default to no index usage. +- The default filter (no custom function) uses the index when the field has a single-field index. +- A custom filter uses no index. -Index-optimized filters with an `eq` operator perform an indexed lookup instead of a full table scan, which significantly improves performance on large datasets. +An indexed filter with the `eq` operator reads the matching rows through the index instead of scanning the whole table. -## Mandatory Route Filters +## Mandatory route filters -Use `DefaultRoutes.WithOptions` to constrain a list route. The `filters` map contains `[stringValue, comparison]` tuples for fields declared with `@Filter`. Request filters for other fields are retained, but a route filter wins when both specify the same field. +`DefaultRoutes.WithOptions` can constrain a list route. Its `filters` map holds `[stringValue, comparison]` tuples for fields declared with `@Filter`. The route keeps request filters on other fields. When the route and the request filter the same field, the route filter wins. ```ts docs-check import { DefaultRoutes } from "@antelopejs/interface-data-api"; @@ -244,10 +253,10 @@ const activeUsers = DefaultRoutes.WithOptions(DefaultRoutes.List, { }); ``` -On a controller with a `status` filter, `?filter_status=inactive&filter_role=admin` still restricts `status` to `"active"` while retaining the requested `role`. Route filters are list-query constraints, not authorization for separate get/edit/delete routes. +On a controller with a `status` filter, `?filter_status=inactive&filter_role=admin` still restricts `status` to `"active"` and keeps the requested `role`. Route filters constrain list queries only. They do not authorize or restrict the `get`, `edit`, or `delete` routes. -## Modifier Integration +## Modifier integration -The `proxy` parameter is a database expression, not an unlocked model instance. The Data API calls the modifier's `unlockrequest()` method to build that expression. Localization can select a locale at query time, but the built-in `EncryptionModifier.unlockrequest()` returns the stored expression unchanged: it does not decrypt ciphertext in the database. A custom modifier must explicitly support query-time access before a filter can operate on its logical value. +The `proxy` parameter is a database expression, not an unlocked model instance. The Data API calls the modifier's `unlockrequest()` method to build that expression. Localization can select a locale at query time. The built-in `EncryptionModifier.unlockrequest()` returns the stored expression unchanged, so it does not decrypt ciphertext in the database. A custom modifier must support query-time access before a filter can compare its plain value. -For raw database values, use the `row` parameter and access the field directly. +For raw database values, read the field from the `row` parameter. diff --git a/docs/9.modifiers.md b/docs/9.modifiers.md index 0a43175..e51d044 100644 --- a/docs/9.modifiers.md +++ b/docs/9.modifiers.md @@ -1,14 +1,18 @@ -# Modifiers +--- +title: Modifiers +description: Use database modifiers such as @Hashed, @Encrypted, and @Localized with a data controller, and pass a per-request modifier key with @ModifierKey. +mode: reference +--- ## Overview -Modifiers from `@antelopejs/interface-database-decorators` work automatically with the Data API. Modifiers such as `@Hashed` or `@Encrypted` transform data transparently during read and write operations without any additional configuration in the data controller. +Modifiers from `@antelopejs/interface-database-decorators` work with the Data API without extra configuration in the data controller. Modifiers such as `@Hashed` or `@Encrypted` transform data on every read and write. -Some modifiers require a runtime parameter (for example, a locale key for localization). The `@ModifierKey` decorator bridges this gap by mapping a controller field to a modifier's runtime key. +Some modifiers need a value at runtime, such as the locale key of the localization modifier. The `@ModifierKey` decorator maps a controller field to the runtime key of one modifier. -## The `@ModifierKey` Decorator +## The `@ModifierKey` decorator -Use `@ModifierKey` when a modifier needs a runtime value that varies per request. The decorator associates a controller field with a specific modifier class. The field's value at request time is passed to the modifier during lock and unlock operations. +Use `@ModifierKey` when a modifier needs a value that changes per request. The decorator links a controller field to a modifier class. At request time, the Data API passes the value of the field to the modifier when it locks and unlocks data. ```typescript import { ModifierKey } from "@antelopejs/interface-data-api/metadata"; @@ -20,13 +24,13 @@ import { ModifierKey } from "@antelopejs/interface-data-api/metadata"; @ModifierKey(modifierClass: typeof ContainerModifier) ``` -| Parameter | Description | -| --------------- | ----------------------------------------------------------------------------- | -| `modifierClass` | The modifier class that requires a runtime key (e.g., `LocalizationModifier`) | +| Parameter | Description | +| --------------- | ------------------------------------------------------------------------------- | +| `modifierClass` | The modifier class that needs a runtime key, for example `LocalizationModifier` | -### Example: Localized Content +### Example: localized content -The `LocalizationModifier` requires a locale identifier to determine which translation to store or retrieve. Use `@ModifierKey` to supply this value from an HTTP header. +The `LocalizationModifier` needs a locale identifier to choose which translation to store or read. In this example, `@ModifierKey` takes that value from an HTTP header. ```typescript import { Controller, Parameter } from "@antelopejs/interface-api"; @@ -92,14 +96,14 @@ class ContentAPI extends DataController( } ``` -### How It Works +### How it works 1. The HTTP request includes the header `x-content-language: fr`. 2. The `language` property receives the value `"fr"`. -3. During write operations, the modifier uses `"fr"` as the key to store the localized value. -4. During read operations, the modifier uses `"fr"` to retrieve the correct localized value. +3. On a write, the modifier stores the localized value under the key `"fr"`. +4. On a read, the modifier reads the localized value stored under `"fr"`. -**Example request:** +This request writes French values: ```http POST /content/new @@ -112,24 +116,24 @@ Content-Type: application/json } ``` -The data is stored under the `"fr"` locale key. A subsequent request with `x-content-language: en` accesses different localized values for the same record. +The record stores the data under the `"fr"` locale key. A later request with `x-content-language: en` reads and writes other localized values of the same record. -> **Note:** Most modifiers (such as `@Hashed` and `@Encrypted`) do not require `@ModifierKey`. Only modifiers that need a runtime parameter per request require this decorator. +Most modifiers, such as `@Hashed` and `@Encrypted`, do not need `@ModifierKey`. Only a modifier that needs a runtime value per request needs this decorator. -## Integration with Other Features +## Integration with other features -### Foreign Keys +### Foreign keys -Modifiers work automatically with foreign key relationships. When the Data API resolves foreign records, modifier-protected fields on those records are properly unlocked during retrieval. See the [foreign keys documentation](./7.foreign-keys.md) for details. +Modifiers work with foreign key relationships. When the Data API resolves foreign records, it unlocks the modifier fields of those records. See [Foreign keys](./7.foreign-keys.md) for details. ### Filters -Custom filters receive a query expression produced by the modifier's `unlockrequest()` method, not a decrypted JavaScript value. Localization supports query-time access; the built-in encryption modifier leaves its stored representation unchanged in query expressions. Do not use it to filter by plaintext. See the [filters documentation](./8.filters.md#modifier-integration) for details. +A custom filter receives a query expression that the modifier's `unlockrequest()` method builds, not a decrypted JavaScript value. Localization supports access at query time. The built-in encryption modifier leaves its stored value unchanged in query expressions, so do not filter on the plain text of an encrypted field. See [Modifier integration](./8.filters.md#modifier-integration) in the filters page for details. -## Learn More +## Learn more -For the full list of available modifiers and instructions on creating custom ones, see the [@antelopejs/interface-database-decorators documentation](https://github.com/AntelopeJS/interface-database-decorators). +For the full list of modifiers and how to write your own, see the [`@antelopejs/interface-database-decorators` repository](https://github.com/AntelopeJS/interface-database-decorators). -## Next Steps +## Next steps -See the [joined fields documentation](./10.joined.md) to learn how to flatten a remote field onto rows for native sorting and filtering. +To flatten a field of another table onto each row for sorting and filtering in the database, see [Joined fields](./10.joined.md). diff --git a/package.json b/package.json index e6f15db..0725569 100644 --- a/package.json +++ b/package.json @@ -121,6 +121,9 @@ "test": "src/antelope.test.ts", "skills": [ "./skills" - ] + ], + "docs": { + "standard": true + } } } From eed94e2d299390211e5914f5c748ff07fb981240 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Tue, 3 Nov 2026 15:38:19 +0100 Subject: [PATCH 26/36] feat(skills): add the verify-interface verification skill --- .agents/skills/verify-interface/SKILL.md | 137 ++++ .../verify-interface/features/README.md | 46 ++ .../verify-interface/features/access.md | 33 + .../verify-interface/features/computed.md | 32 + .../skills/verify-interface/features/crud.md | 41 ++ .../verify-interface/features/filters.md | 35 + .../verify-interface/features/foreign.md | 35 + .../verify-interface/features/guards.md | 36 ++ .../verify-interface/features/joined.md | 33 + .../verify-interface/features/listing.md | 37 ++ .../verify-interface/features/metadata.md | 41 ++ .../verify-interface/features/modifiers.md | 33 + .../features/route-options.md | 33 + .../skills/verify-interface/features/smoke.md | 34 + .../verify-interface/features/validation.md | 39 ++ .../verify-interface/fixture/shop.ts.txt | 604 ++++++++++++++++++ .agents/skills/verify-interface/harness.ts | 232 +++++++ .../skills/verify-interface/journeys-read.ts | 279 ++++++++ .../skills/verify-interface/journeys-write.ts | 248 +++++++ .agents/skills/verify-interface/package.json | 4 + .../seeded-breaks/access.patch | 14 + .../seeded-breaks/computed.patch | 13 + .../verify-interface/seeded-breaks/crud.patch | 13 + .../seeded-breaks/filters.patch | 13 + .../seeded-breaks/foreign.patch | 13 + .../seeded-breaks/guards.patch | 13 + .../seeded-breaks/joined.patch | 12 + .../seeded-breaks/listing.patch | 13 + .../seeded-breaks/metadata.patch | 13 + .../seeded-breaks/modifiers.patch | 13 + .../seeded-breaks/route-options.patch | 13 + .../seeded-breaks/smoke.patch | 13 + .../seeded-breaks/validation.patch | 15 + .../seeded-doors/contract.patch | 13 + .../verify-interface/seeded-doors/data.patch | 13 + .../seeded-doors/exposure.patch | 13 + .../seeded-doors/format.patch | 13 + .../seeded-doors/publish.patch | 13 + .agents/skills/verify-interface/seeds.ts | 36 ++ .agents/skills/verify-interface/tsconfig.json | 14 + .../skills/verify-interface/verify.config.ts | 112 ++++ .claude/skills/verify-interface | 1 + AGENTS.md | 2 + 43 files changed, 2413 insertions(+) create mode 100644 .agents/skills/verify-interface/SKILL.md create mode 100644 .agents/skills/verify-interface/features/README.md create mode 100644 .agents/skills/verify-interface/features/access.md create mode 100644 .agents/skills/verify-interface/features/computed.md create mode 100644 .agents/skills/verify-interface/features/crud.md create mode 100644 .agents/skills/verify-interface/features/filters.md create mode 100644 .agents/skills/verify-interface/features/foreign.md create mode 100644 .agents/skills/verify-interface/features/guards.md create mode 100644 .agents/skills/verify-interface/features/joined.md create mode 100644 .agents/skills/verify-interface/features/listing.md create mode 100644 .agents/skills/verify-interface/features/metadata.md create mode 100644 .agents/skills/verify-interface/features/modifiers.md create mode 100644 .agents/skills/verify-interface/features/route-options.md create mode 100644 .agents/skills/verify-interface/features/smoke.md create mode 100644 .agents/skills/verify-interface/features/validation.md create mode 100644 .agents/skills/verify-interface/fixture/shop.ts.txt create mode 100644 .agents/skills/verify-interface/harness.ts create mode 100644 .agents/skills/verify-interface/journeys-read.ts create mode 100644 .agents/skills/verify-interface/journeys-write.ts create mode 100644 .agents/skills/verify-interface/package.json create mode 100644 .agents/skills/verify-interface/seeded-breaks/access.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/computed.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/crud.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/filters.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/foreign.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/guards.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/joined.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/listing.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/metadata.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/modifiers.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/route-options.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/smoke.patch create mode 100644 .agents/skills/verify-interface/seeded-breaks/validation.patch create mode 100644 .agents/skills/verify-interface/seeded-doors/contract.patch create mode 100644 .agents/skills/verify-interface/seeded-doors/data.patch create mode 100644 .agents/skills/verify-interface/seeded-doors/exposure.patch create mode 100644 .agents/skills/verify-interface/seeded-doors/format.patch create mode 100644 .agents/skills/verify-interface/seeded-doors/publish.patch create mode 100644 .agents/skills/verify-interface/seeds.ts create mode 100644 .agents/skills/verify-interface/tsconfig.json create mode 100644 .agents/skills/verify-interface/verify.config.ts create mode 120000 .claude/skills/verify-interface diff --git a/.agents/skills/verify-interface/SKILL.md b/.agents/skills/verify-interface/SKILL.md new file mode 100644 index 0000000..70db01a --- /dev/null +++ b/.agents/skills/verify-interface/SKILL.md @@ -0,0 +1,137 @@ +--- +name: verify-interface +description: "Drive this AntelopeJS interface the way a module author does: pack it, load it in `ajs project dev` next to a stub provider wired through ImplementInterface and a consumer, call every declared function through core, and check the minor-bump rule against the published version. Use to prove a change to the interface works before merge, to verify a PR, or to check that a seeded break is caught." +--- + +# Verify interface + +The user of an interface is a module author: one module implements it, others import it and call its functions through core. Every deterministic step is an `antelopejs-verify` command: you choose which journeys to run and judge what they show. Never replace a command with a shell recipe. When a journey you need does not exist, add it to `verify.config.ts`, name it in its feature file, then run it. + +`antelopejs-sync` writes this file, `package.json` and `tsconfig.json` here, and keeps them in sync. Everything else in `.agents/skills/verify-interface/` is the repository's own layer, which sync never touches. + +## Launch + +```bash +pnpm exec antelopejs-verify new --base origin/main --title "" +``` + +`new` prints the run folder; pass it as `` below. `new` runs the setup (`pnpm run build` by default), then packs the interface with `pnpm pack` and extracts it, so journeys load what npm would publish, `files` and `exports` included. Every `services` entry of `verify.config.ts` then starts in its own Docker container on a free loopback port, as for a module. Every journey gets its own `HOME` and scratch folder, `CI=1`, `AJS_NO_UPDATE_CHECK=1`, `NO_COLOR=1` and a free port from the kernel, so two runs never share an instance. Run it from the repository root after installing dependencies. + +## Doctor + +```bash +pnpm exec antelopejs-verify doctor +``` + +Doctor checks that HEAD has not moved since `new`, `ajs` comes from the repository's `@antelopejs/core`, the build is newer than `src/`, what `new` prepared is there, and no process the run recorded is still alive. Do not drive a run that fails doctor. + +## Drive + +```bash +pnpm exec antelopejs-verify plan --base origin/main +pnpm exec antelopejs-verify journey [journey...] +``` + +`plan` maps the diff to features and lists unmapped surfaces. `journey` runs a feature's journeys, or the ones named. The pack ships these journeys for this kind; a feature file names them next to the repository's own: + +- `every-function`: a fixture project loads the packed interface with a stub provider and a consumer module. The consumer walks the loaded interface, and every function the `.d.ts` files declare is called through core: + - an async proxy answers the stub's echo, and the stub's call log shows the same arguments (the second view); + - a registering proxy registers and unregisters, and the stub logs both; + - an event proxy delivers the emitted arguments to a registered handler; + - a plain function runs the `interface.calls` hook of `verify.config.ts` and must return its `expect`; one only providers call is listed in `interface.providerSide` with why. + A declared function with none of these fails the journey. +- `minor-bump`: reads the declared functions of the packed head and of the published version (`npm pack @`). An added, changed or removed function needs a release of at least the next minor. The release is the head version when it is already bumped, otherwise what changelogen makes of the change title (`new --title`) or the commit subjects since the base. + +## Evidence + +Each step writes `/evidence////` with `command.txt`, `stdout.txt`, `stderr.txt`, `exit-code.txt`, `pid.txt` for background processes, `tree.txt`, `http.json` for every request, and `checks.json`. `result.json` holds a journey's result and `feature.json` the merged results of the feature. Read the evidence before you judge a PASS: a check proves only what it asserts. + +## Cleanup + +```bash +pnpm exec antelopejs-verify clean +``` + +`clean` stops what the run started, by recorded PID and container name, and removes everything but `evidence/` and `run.json`. Run it after every run, failed ones included. + +## The repository's own layer + +- `verify.config.ts` default-exports a `VerifyConfig` from `@antelopejs/tooling-configs/verify`: + - `doors`: one entry per door kind (`data`, `format`, `contract`, `outbound`, `exposure`, `publish`), each `null` when it cannot apply or `{ globs, funnels, containments, why }`. `containments` names the `feature/journey` journeys that contain a Data or Format door. Each must fail with that kind's seeded door applied and pass without it: write the journey so one of its checks reads the state the door corrupts. + - `journeys`: the repository's journeys by id, each `{ title, entryPoint, run(context) }`, using the check helpers the same import exports. + - `env`, `setup` (commands replacing the build), `userFacing` (globs replacing the kind's default) and `formal` (formal checks: `name`, `covers`, `command`, `violation`, and optionally `behaviour` and `baseCommand`). +- `services`: image, port, readiness command and a `reset` command run before every journey, as for a module. `new` starts them in Docker on free ports; a journey reads them with `context.service(name)` and `context.native(...)`. +- `interface.provide(api, services)` runs in the stub provider after the generic stubs attach, for example to hand a client pointed at `services` to `internal.SetClient`. +- `interface.calls[":"]` calls a plain exported function from the consumer and states the value it must return. +- `interface.providerSide[":"]` names a function only providers call, with the reason. +- `features/.md`: frontmatter lists `covers:` (source globs), `docs:` (pages a verdict judges) and `journeys:`, then the sections Sub-features, How to get to it (user POV), Driving it with antelopejs-verify, and Gotchas. `features/smoke.md` covers nothing and runs on every verdict; here it runs `every-function`. +- `seeded-breaks/.patch`: one minimal product bug per feature that its journeys must catch. +- `seeded-doors/.patch`: one change per door kind that applies. A Data or Format door's patch must break what its containment journeys check. + +```bash +pnpm exec antelopejs-verify map +``` + +`map` fails on a user-facing file no feature covers, a feature without journeys, docs or seeded break, an unknown journey, an applicable door kind without its seeded door, and a Data or Format door whose `containments` name no journey a feature registers. `containments` (below) then runs those journeys against the seeded doors. + +## Verdict rules + +1. **Run every feature whose `covers:` globs the diff touches, plus `smoke`.** `plan` prints that list as `run`. +2. **An unmapped surface fails the verdict.** A changed user-facing file no feature covers needs a feature entry, its journeys and its seeded break in the same PR. +3. **Every registered journey of a feature in `run` must have run and passed.** Run whole features. A journey that could not reach the product is NOT VERIFIED, and so is the verdict, whatever else passed: never PASS and never PASS+NOTES. +4. **Docs.** Judge every `docs:` page of a touched feature against what the journeys showed. A stale page fails the verdict. +5. **Formal checks.** `pnpm exec antelopejs-verify formal ` runs every formal check of `verify.config.ts` that covers the diff, or whose own `files` the diff changes, and records it under `evidence/formal//`. For each one it decides, without judgement, whether the diff changed what the covered code does. `emit` (the default) compares the structure of the covered files' JavaScript on the base and on HEAD: node kinds, names and literal values, leaving out types, comments, formatting, parentheses and `export` keywords. Each use of an imported binding stands for its origin (the resolved module and the imported name), so an import retargeted to another module or alias counts as changed; a function declaration refers to the top-level variables and classes of its own file by file and name, so moving it next to a different variable of the same name counts as changed. Exports are keyed by the origin they export, so a re-export or an `export { f as run }` retargeted to another binding counts as changed. Each file must keep its top-level statements and its side-effect imports in order; function declarations, which are hoisted, may move between covered files with their imports. So a type-only edit, a reformat or a moved function declaration counts as unchanged, while reordering statements or moving any other statement counts as changed. `emit` judges behaviour, not the public surface: exports are the api-diff's job. `probe` runs the check's `behaviour.command` with a worktree of each commit and compares what it prints. Then: + - a covered check that did not run, or exits non-zero (a tool error, or a check that no longer matches its record), fails the verdict; + - recorded findings fail the verdict only when the covered behaviour changed; when it did not, the verdict reports them as known findings; + - when the covered behaviour changed, or the diff changed the check's own `files`, `formal` also runs the check on the base (`baseCommand` when set). A rule the base broke counts as fixed only when HEAD reports it passing (`passing`); a rule the base broke that HEAD does not report at all fails the verdict. A change that leaves no violated rule passes. + + The decision never reads the check's output, so a model whose rule names stay the same still fails on a changed behaviour. It is conservative: a local rename or an extracted helper counts as changed, and code outside `covers` is invisible to it. `--all` also runs the checks that do not cover the diff, without gating. +6. **One-way doors.** The section comes right after the result line and is mandatory. `pnpm exec antelopejs-verify doors` prints the `One-way-door:` line of the diff. Every file the path rules flag needs a door row or a false positive with its reason. A Data or Format row names a `containments` journey that passed in this run, and that journey is proven by `pnpm exec antelopejs-verify containments`: it fails with the kind's seeded door applied. A containment that passes with its door contains nothing, so a Data or Format door without one that fails with its door is not contained. +7. **Result.** FAIL if any rule fails. NOT VERIFIED when any journey of a required feature is NOT VERIFIED, for example a SaaS module run without its sandbox keys, however many other journeys passed. PASS+NOTES when everything required ran and passed but the judgement lists something no journey reached or something the owner should look at. PASS otherwise. + +Write your judgement to `/evidence/judgement.json`: + +```json +{ + "doors": { + "none": "why the diff opens no door", + "rows": [], + "falsePositives": [{ "kind": "publish", "location": "package.json", "reason": "only devDependencies changed" }] + }, + "docs": [{ "page": "README.md", "matches": true, "note": "" }], + "notVerified": ["What no journey reached, and why"], + "attention": ["What the owner should look at that the journeys cannot judge"], + "verifier": "the fresh thread that judged this run, not the author" +} +``` + +A door row is `{ "kind", "location", "irreversible", "containment", "containmentJourney" }`. Then render and publish: + +```bash +pnpm exec antelopejs-verify verdict --pr +pnpm exec antelopejs-verify publish --pr +``` + +`verdict` writes `evidence/verdict.md` and exits 1 unless the result is PASS or PASS+NOTES. `publish` commits the evidence to the orphan branch `verify-evidence` under `pr-//` from a temporary worktree, posts the verdict as a PR comment, sets commit status `verify` on the head SHA (`success` for PASS and PASS+NOTES, `error` for NOT VERIFIED, `failure` for FAIL) and reads it back. It prints the error GitHub answers when the token cannot write statuses. A new push voids the status. Post a verdict only from a thread that did not write the change. + +## Trust + +The skill is not Trusted yet. It becomes Trusted when it catches every seeded break, flags every seeded door, fails every Data and Format containment with its door, passes a shadow run of 10 consecutive agent PRs, and its last maintain pass is newer than the last change to the repository or its `@antelopejs` dependencies and at most 30 days old. + +## Seeded breaks and doors + +```bash +pnpm exec antelopejs-verify seeded +pnpm exec antelopejs-verify seeded-doors +pnpm exec antelopejs-verify containments +``` + +`seeded` runs each feature's journeys in a scratch worktree of HEAD without the patch, as the control, and with `seeded-breaks/.patch` applied. It prints `CAUGHT` only when a journey that passes in the control fails one of its checks with the patch. Journeys failing in the control and failures without a failing check do not count. `seeded-doors` prints `FLAGGED` when the path rules flag each patch with its own kind. `containments` runs every Data and Format containment journey in a scratch worktree of HEAD without the door, as the control, and with `seeded-doors/.patch` applied. It prints `CONTAINED` only when the journey passes in the control and fails one of its checks with the door. `MISSED` means it passes with its door, `UNPROVEN` that it fails in the control or ends without a failing check, and `NO-DOOR` that the kind has no seeded door; the command exits 1 on anything but `CONTAINED`. + +## Gotchas + +- A function the consumer awaits forever, such as a getter no provider resolved, fails after 15 seconds with a `Timeout` value. +- `minor-bump` needs the npm registry. Without it the journey is not verified, never passed. +- A containment journey of a Data or Format door must check what that door's seeded patch changes, for example the arguments the stub provider logged. `containments` reports one that still passes with its door as `MISSED`. +- Runs live under the system temp folder (`TMPDIR`), and the shared caches under `~/.cache/antelopejs-verify`. +- A repository that outgrows this skill runs `antelopejs-sync --verify custom` and keeps its own `.agents/skills/verify-/`. diff --git a/.agents/skills/verify-interface/features/README.md b/.agents/skills/verify-interface/features/README.md new file mode 100644 index 0000000..bf51199 --- /dev/null +++ b/.agents/skills/verify-interface/features/README.md @@ -0,0 +1,46 @@ +# Feature map + +One file per feature. `covers:` lists the source globs it owns, `docs:` the pages a verdict judges, `journeys:` the journeys it runs, and `seeded-breaks/.patch` the break its journeys must catch. `pnpm exec antelopejs-verify map` checks that every user-facing file is covered. + +| Feature | What the user does | Journeys | +|---|---|---| +| [crud](crud.md) | A client calls the five default routes of a data controller. | crud-lifecycle, crud-errors, crud-subset | +| [route-options](route-options.md) | A route is customized with `WithOptions`. | option-overrides | +| [access](access.md) | `@Access` decides what each route reads and writes. | access-modes | +| [validation](validation.md) | `@Mandatory`, `@Validator` and `@Optional` check the body. | mandatory-and-validators, parsed-values, unstorable-body, error-codes | +| [listing](listing.md) | A client pages, sorts and narrows a list. | pluck-modes, pagination, sorting | +| [foreign](foreign.md) | A key field answers the record it points to. | foreign-resolve, foreign-raw | +| [filters](filters.md) | A list request filters rows. | default-filter, custom-filters | +| [modifiers](modifiers.md) | A per-request key selects a modifier's value. | localized-key | +| [joined](joined.md) | A remote field is flattened onto the row. | joined-read | +| [computed](computed.md) | A row answers a database-computed value. | computed-read | +| [guards](guards.md) | A module guards a read, amends a body or adds a route. | get-guard, amend-body, custom-route | +| [metadata](metadata.md) | A module author reads metadata and declares controllers. | effective-modes, declaration-errors, exports-runtime, consumer-compiles | +| [smoke](smoke.md) | The fixed journey every verdict runs. | every-function, smoke-roundtrip | + +## Not driven + +Every documented behaviour of the README, `docs/` and the TSDoc has a journey above, or a row here with the reason. + +| Behaviour | Why no journey drives it | +|---|---| +| Multi-reference element that matches nothing answers `null` (docs/7) | Fails on head: it answers `{}`. Drafted as an issue; a journey would make every foreign verdict FAIL. | +| `noForeign` answers raw ids for a multi reference (docs/7) | Fails on head: the ids become character-index objects. Drafted as an issue. | +| A list mode a getter does not declare omits the getter (docs/6) | `/people/brief` still lists the getter. Drafted as an issue. | +| `Unregistered Database Table` (docs/2) | Needs a registered schema that lacks the table class; `@RegisterTable` registers the table. | +| Class metadata and `schema` option name different schemas, the declaration throws (docs/7, docs/10) | Needs a table class whose metadata names a second schema; declaration-time only, no route reaches it. | +| Edit `index` option (docs/3) | The `get` index option is driven; the edit variant needs a second unique index column in the fixture. | +| `@Joined` `remoteIndex` (docs/10) | Needs an indexed non-key column on the remote table. | +| `@Foreign` `targetMeta` joined fields (docs/7) | Needs a second data controller's metadata passed to the decorator. | +| `Query.List` and `Query.ListPage` composed by a custom route, deferred lookup order, bare `count()` skips lookups, `changes()` (docs/10) | Advanced composition by internal helpers; the default list route is driven for the same joined and computed fields. | +| `useIndex`: an indexed equality filter reads through the index (docs/8) | Not observable from an answer; only the query plan differs. | +| `noIndex` changes where the sort sits, the provider decides how it runs (docs/6) | Both settings answer the same rows; the sort is checked for both. | +| `@Localized` sort on `fallbackLocale`, never indexed (docs/6) | The fallback is configured in the modifier, outside this package. | +| `@Hashed`, `@Encrypted` and `EncryptionModifier.unlockrequest` in filters (docs/8, docs/9) | Modifiers of `@antelopejs/interface-database-decorators`; only `@ModifierKey` is this package's. | +| Clearing a mandatory field on edit with `[]` (docs/5) | Same check as `""` and `null`, which are driven. | +| `@Optional` clears what `@Mandatory` set (docs/5) | Only absence on `new` is driven. | +| A wrapped `new` or `edit` receives `Date` or `undefined` values (docs/5) | Needs a route that builds a body with those; the bigint refusal is driven. | +| `500` when the database operation fails or the controller holds no model (docs/3) | Needs a broken database or a controller without `@ModelReference`. | +| An async uniqueness check followed by an insert is not unique under concurrency (docs/5) | Advice about the application's own validator, not package behaviour. | +| `DataControllerCallback` generic wrappers, `GetGuard` `this` typing (docs/3) | Type-level; the docs-check snippets in CI compile them. | +| Install commands, implementations table, compatibility table, contributing (README) | Prose; the compatibility table is checked by the docs action. | diff --git a/.agents/skills/verify-interface/features/access.md b/.agents/skills/verify-interface/features/access.md new file mode 100644 index 0000000..85c9ad3 --- /dev/null +++ b/.agents/skills/verify-interface/features/access.md @@ -0,0 +1,33 @@ +--- +covers: + - src/internal/read-properties.ts + - src/internal/properties.ts +docs: + - docs/4.access-rights.md +journeys: + - access-modes +--- + +# access + +`@Access` decides which fields each route reads and writes, per action. + +## Sub-features + +- `access-modes`: a write-only field is never answered and is stored, a field with no `@Access` is never answered and never written, a read-only field is answered and ignored in a body, and a per-action override (`role` writable on `new` and read-only on `edit`, `age` the other way) decides what `new` and `edit` store; MongoDB shows each case. + +## How to get to it (user POV) + +- `@Access(AccessMode.WriteOnly)` on a password, then `POST /users/new` and `GET /users/get`; `@Access(AccessMode.ReadWrite, { edit: AccessMode.ReadOnly })` on a role, then `PUT /users/edit`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" access +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- A refused write is not an error: the route ignores the value and answers 200. diff --git a/.agents/skills/verify-interface/features/computed.md b/.agents/skills/verify-interface/features/computed.md new file mode 100644 index 0000000..847e3b0 --- /dev/null +++ b/.agents/skills/verify-interface/features/computed.md @@ -0,0 +1,32 @@ +--- +covers: + - src/internal/computed.ts +docs: + - docs/11.computed.md +journeys: + - computed-read +--- + +# computed + +A row answers a value the database computes. + +## Sub-features + +- `computed-read`: `@Computed` merges a per-row `count()` subquery and a row-local expression; `default` turns the null aggregate of an empty set into 0, the list sorts and pages on the aggregate with the same total on every page, filters on it, and the field is read-only. + +## How to get to it (user POV) + +- `GET /groups/list?sortKey=devices_count&sortDirection=desc&limit=2` on a controller whose `devices_count` counts the devices of each group. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" computed +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- The aggregate form needs a driver that turns a per-row subquery into a correlated lookup; the journey runs on `@antelopejs/mongodb`. diff --git a/.agents/skills/verify-interface/features/crud.md b/.agents/skills/verify-interface/features/crud.md new file mode 100644 index 0000000..2d18bf6 --- /dev/null +++ b/.agents/skills/verify-interface/features/crud.md @@ -0,0 +1,41 @@ +--- +covers: + - src/index.ts + - src/internal/controller-types.ts +docs: + - README.md + - docs/1.introduction.md + - docs/2.data-controllers.md + - docs/3.routes.md +journeys: + - crud-lifecycle + - crud-errors + - crud-subset +--- + +# crud + +A client calls the five default routes of a data controller and the table follows. + +## Sub-features + +- `crud-lifecycle`: `new`, `get`, `edit` and `delete` on the `users` controller change exactly the rows they name: the write-only password is stored but never answered, the age allowed on `new` is stored, an edit keeps the fields it was not sent, and a delete of two ids and one that does not exist leaves every other row; MongoDB shows each write. +- `crud-errors`: `Missing id.` (400), `Not Found` (404), `Invalid JSON body.` and `The request body must be a JSON object.` (400) on every route that reads them, a delete of an unknown id answers 200, and no refused request writes a row. +- `crud-subset`: a controller that declares only `get`, `list` and `new` answers 404 on `edit` and `delete`; `WithOptions(Edit, options, "patch")` serves under `patch` and not under its key; a controller derived with `Controller("/staff", UserAPI)` reads through the inherited model reference. + +## How to get to it (user POV) + +- `GET /users/get?id=`, `GET /users/list`, `POST /users/new`, `PUT /users/edit?id=`, `DELETE /users/delete?id=` on a controller declared with `DataController(Table, DefaultRoutes.All, Controller("/users"))`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" crud +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- The delete route answers an empty body, not `0`, when nothing matched; the journey checks the status only. +- `Unregistered Database Table` is not driven: see the README table. diff --git a/.agents/skills/verify-interface/features/filters.md b/.agents/skills/verify-interface/features/filters.md new file mode 100644 index 0000000..4e41c52 --- /dev/null +++ b/.agents/skills/verify-interface/features/filters.md @@ -0,0 +1,35 @@ +--- +covers: + - src/internal/default-filter.ts + - src/internal/filters.ts +docs: + - docs/8.filters.md +journeys: + - default-filter + - custom-filters +--- + +# filters + +A list request filters rows through `@Filter` query parameters. + +## Sub-features + +- `default-filter`: `filter_=` and `:` with `eq`, `ne`, `gt`, `ge`, `lt`, `le`, several fields at once, the `eq:` prefix for a value that holds a colon, a parameter that names no filter is ignored, and an unknown operator answers the 400 message that lists the operators. +- `custom-filters`: a custom function parses its own value (numbers with `gt`/`ge`/`lt`, the same field twice is an AND, `Invalid number` is a 400), a domain filter escapes its value and refuses other operators, and a mandatory route filter wins on its field while the request filters on the other fields still apply. + +## How to get to it (user POV) + +- `GET /users/list?filter_status=active&filter_role=ne:admin`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" filters +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- Whether an equality filter reads through the index is not observable from the answers: see the README table. diff --git a/.agents/skills/verify-interface/features/foreign.md b/.agents/skills/verify-interface/features/foreign.md new file mode 100644 index 0000000..59d057a --- /dev/null +++ b/.agents/skills/verify-interface/features/foreign.md @@ -0,0 +1,35 @@ +--- +covers: + - src/internal/foreign.ts + - src/internal/table-reference.ts +docs: + - docs/7.foreign-keys.md +journeys: + - foreign-resolve + - foreign-raw +--- + +# foreign + +A field that holds a key of another table answers the record it points to. + +## Sub-features + +- `foreign-resolve`: `@Foreign` answers the referenced record in place of the key: with `pluck`, through a secondary `index`, by table name, across schemas, and as an array (`multi`); a key that matches nothing answers `null`. +- `foreign-raw`: the `noForeign` route option answers the raw keys of single references on a get and on a list. + +## How to get to it (user POV) + +- `GET /orders/get?id=o1` on a controller whose `userId` field is declared `@Foreign(User, undefined, false, ["_id", "name", "email"])`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" foreign +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- Two documented behaviours of multi references fail on head and are not asserted: a missing element answers `{}` and not `null`, and `noForeign` answers character-index objects and not the raw ids. Both are drafted as issues. diff --git a/.agents/skills/verify-interface/features/guards.md b/.agents/skills/verify-interface/features/guards.md new file mode 100644 index 0000000..74d3437 --- /dev/null +++ b/.agents/skills/verify-interface/features/guards.md @@ -0,0 +1,36 @@ +--- +covers: + - src/index.ts +docs: + - docs/3.routes.md +journeys: + - get-guard + - amend-body + - custom-route +--- + +# guards + +A module guards a read, amends a body or adds a route beyond CRUD. + +## Sub-features + +- `get-guard`: `DefaultRoutes.WithGetGuard` denies a read by throwing (the stored discriminator never appears in the answer), a missing row answers 404 without the guard, and a plain `get` route is not guarded. +- `amend-body`: a route that wraps `new`, parses the body with `Validation.ParseBody` and stamps a field stores the stamped value, while the plain `new` stores what was sent. +- `custom-route`: a route declared with `func`, `args` and `method` is served next to the defaults. + +## How to get to it (user POV) + +- `GET /documents/invoice?id=x2` on a route built with `DefaultRoutes.WithGetGuard`; `POST /documents/stamped`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" guards +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- The guard-throws-`HTTPResult` and `assert` forms answer the same; the journey uses `assert`. diff --git a/.agents/skills/verify-interface/features/joined.md b/.agents/skills/verify-interface/features/joined.md new file mode 100644 index 0000000..6903f45 --- /dev/null +++ b/.agents/skills/verify-interface/features/joined.md @@ -0,0 +1,33 @@ +--- +covers: + - src/internal/joined.ts + - src/internal/deferred-joined-stream.ts +docs: + - docs/10.joined.md +journeys: + - joined-read +--- + +# joined + +A list or get answers one field of another table at the top level of the row. + +## Sub-features + +- `joined-read`: `@Joined` flattens a remote field onto the row (same schema and across schemas), a missing remote row joins as `null`, the list sorts and filters on the joined value in the database, and the field is read-only: an edit that sends it stores nothing. + +## How to get to it (user POV) + +- `GET /books/list?sortKey=authorName` on a controller whose `authorName` is `@Joined({ table: Author, localKey: "authorId", remoteField: "name" })`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" joined +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- The order of the deferred lookups of `Query.ListPage` is not driven: see the README table. diff --git a/.agents/skills/verify-interface/features/listing.md b/.agents/skills/verify-interface/features/listing.md new file mode 100644 index 0000000..0678ceb --- /dev/null +++ b/.agents/skills/verify-interface/features/listing.md @@ -0,0 +1,37 @@ +--- +covers: + - src/internal/list.ts + - src/internal/meta-records.ts +docs: + - docs/6.listable.md +journeys: + - pluck-modes + - pagination + - sorting +--- + +# listing + +A client pages, sorts and narrows the rows of a table through `GET /resource/list`. + +## Sub-features + +- `pluck-modes`: the default list mode answers the listable fields with read access, a `detailed` mode answers its own fields and does not inherit the default ones, a field can be left out of a mode, a field that is not listable is still read by `get`, and a getter lists the database fields it reads. +- `pagination`: a list answers `results`, `total`, `offset` and `limit`; `limit` and `offset` page the rows, the last page is short, the default is 10 and a route without `maxPage` caps `limit` at 100. +- `sorting`: `sortKey` and `sortDirection` sort on indexed and non-indexed `@Sortable` fields, any other direction sorts ascending, and a field without `@Sortable` answers `Field is not sortable.`. + +## How to get to it (user POV) + +- `GET /users/list?limit=2&offset=1&sortKey=name&sortDirection=desc`, `GET /users/detailed`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" listing +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- `/people/brief` lists a getter that only the default mode declares; it is not asserted, see the issue draft named in the pull request. diff --git a/.agents/skills/verify-interface/features/metadata.md b/.agents/skills/verify-interface/features/metadata.md new file mode 100644 index 0000000..9f82e1a --- /dev/null +++ b/.agents/skills/verify-interface/features/metadata.md @@ -0,0 +1,41 @@ +--- +covers: + - src/metadata.ts + - src/internal/field-types.ts + - src/internal/tables.ts +docs: + - docs/4.access-rights.md + - docs/2.data-controllers.md +journeys: + - effective-modes + - declaration-errors + - exports-runtime + - consumer-compiles +--- + +# metadata + +A module author reads field metadata and declares controllers with the decorators. + +## Sub-features + +- `effective-modes`: `GetEffectiveMode` answers the mode each action applies for a read-write field with an edit override, a read-only field with a new override, a write-only field and a read-only field. +- `declaration-errors`: `DataController` throws `Non-existent Database Schema` for a table class whose schema is not registered. +- `exports-runtime`: the packed `metadata` entry exports `AccessMode` as 1, 2 and 3 and `FilterValuesOf`, which reads a single filter and a list of filters as a list. +- `consumer-compiles`: a module written from the docs, with every decorator and route helper, compiles in strict mode against the packed declarations. + +## How to get to it (user POV) + +- `GetEffectiveMode(meta.fields.role, "edit")` from `@antelopejs/interface-data-api/metadata`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" metadata +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- `Unregistered Database Table` is not driven: it needs a registered schema without the table class, and `@RegisterTable` registers the table. diff --git a/.agents/skills/verify-interface/features/modifiers.md b/.agents/skills/verify-interface/features/modifiers.md new file mode 100644 index 0000000..0e5f3a3 --- /dev/null +++ b/.agents/skills/verify-interface/features/modifiers.md @@ -0,0 +1,33 @@ +--- +covers: + - src/internal/prototypes.ts + - src/internal/validation.ts +docs: + - docs/9.modifiers.md +journeys: + - localized-key +--- + +# modifiers + +A modifier that needs a per-request value takes it from a controller field. + +## Sub-features + +- `localized-key`: `@ModifierKey(LocalizationModifier)` on a field read from the `x-content-language` header selects the language a write stores and a read answers: English on create, French on edit, both kept in MongoDB, an edit without the title keeps both, and a list sorts on the title in the request locale. + +## How to get to it (user POV) + +- `POST /articles/new` with `x-content-language: en`, then `PUT /articles/edit?id=` with `fr`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" modifiers +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- The sort on a fallback locale is not driven: the modifier that defines it is configured outside this package. diff --git a/.agents/skills/verify-interface/features/route-options.md b/.agents/skills/verify-interface/features/route-options.md new file mode 100644 index 0000000..890e52f --- /dev/null +++ b/.agents/skills/verify-interface/features/route-options.md @@ -0,0 +1,33 @@ +--- +covers: + - src/components.ts + - src/internal/extractors.ts +docs: + - docs/3.routes.md +journeys: + - option-overrides +--- + +# route-options + +A route is customized with `DefaultRoutes.WithOptions`; its options win over the query string. + +## Sub-features + +- `option-overrides`: `maxPage` caps the `limit` of a query and is the page size without one, `noMandatory` as a route option lets a mandatory field be cleared while the plain route refuses it, any non-empty string (`"false"` included) turns the option on, `index` reads through a secondary index, `noPluck` still answers only readable fields, and a `pluckMode` no field declares answers `No fields found for pluckMode 'nothing'`. + +## How to get to it (user POV) + +- `DefaultRoutes.WithOptions(DefaultRoutes.List, { maxPage: 3 })` under a key of the definition object, then `GET /users/capped?limit=50`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" route-options +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- A query parameter named like a route option is ignored; `noMandatory` is not read from the query at all. diff --git a/.agents/skills/verify-interface/features/smoke.md b/.agents/skills/verify-interface/features/smoke.md new file mode 100644 index 0000000..43e2425 --- /dev/null +++ b/.agents/skills/verify-interface/features/smoke.md @@ -0,0 +1,34 @@ +--- +covers: +docs: + - README.md +journeys: + - every-function + - smoke-roundtrip +--- + +# smoke + +The fixed journey every verdict runs: the exports answer through core, and one row goes through the four write and read routes. + +## Sub-features + +- `every-function`: the packed interface loads in `ajs project dev` next to a stub provider and a consumer; the pack walks the declared exports and the `interface.calls` hooks of `verify.config.ts` call each plain function through core and state what it must return (the seventeen functions of the package entry: `DataController`, `GetDataControllerMeta`, `RegisterDataController`, `DefaultRoutes.WithOptions`, `DefaultRoutes.WithGetGuard` and the ten route functions). The package has no proxy, so the stub provider has nothing to implement. +- `smoke-roundtrip`: a user is created through `POST /users/new`, read through `GET /users/get`, edited through `PUT /users/edit`, deleted through `DELETE /users/delete` and gone on the next read, with the consumer, `@antelopejs/api` and `@antelopejs/mongodb` running in `ajs project dev`. + +## How to get to it (user POV) + +- A module imports `@antelopejs/interface-data-api` and declares one data controller; the project loads an API module and a database module. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" smoke +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- The smoke feature covers no glob, so it never marks a file as mapped. +- `every-function` covers the hooks of `verify.config.ts`; a new export of the package entry needs a hook there, or the journey fails on it. diff --git a/.agents/skills/verify-interface/features/validation.md b/.agents/skills/verify-interface/features/validation.md new file mode 100644 index 0000000..9df6c34 --- /dev/null +++ b/.agents/skills/verify-interface/features/validation.md @@ -0,0 +1,39 @@ +--- +covers: + - src/internal/validation.ts + - src/internal/guards.ts +docs: + - docs/5.validators.md +journeys: + - mandatory-and-validators + - parsed-values + - unstorable-body + - error-codes +--- + +# validation + +`@Mandatory`, `@Validator` and `@Optional` check the body of `new` and `edit`. + +## Sub-features + +- `mandatory-and-validators`: a body missing mandatory fields answers `{ code: "missing_mandatory_fields", fields }` with every field, the mandatory check runs before the validators, invalid values answer `{ code: "invalid_field_types", fields }` with every failing field (a sync regex, a range and an async validator), a refused write stores nothing, an edit keeps a mandatory field absent from the body and refuses one cleared with `""` or `null`. +- `parsed-values`: a validator that returns a zod-style parse result makes `new` and `edit` store the parsed `Date`, and a failed parse answers the invalid-types body. +- `unstorable-body`: a route that hands `Validation.ParseBody` a parsed body holding a `bigint` answers 400 and writes nothing. +- `error-codes`: the packed `components` entry exports `Validation.MISSING_MANDATORY_FIELDS` and `Validation.INVALID_FIELD_TYPES` with the codes the bodies carry. + +## How to get to it (user POV) + +- `POST /users/new` with a body that lacks `email`, or holds `age: 500`, or `nickname: "taken"`. + +## Driving it with antelopejs-verify + +```bash +pnpm exec antelopejs-verify journey "$RUN" validation +``` + +Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project dev` with `@antelopejs/api` and `@antelopejs/mongodb` against a Docker MongoDB, drives the routes with curl and reads the writes back with `mongosh`. + +## Gotchas + +- Clearing a mandatory field with `[]` on `edit` is documented and not driven: see the README table. diff --git a/.agents/skills/verify-interface/fixture/shop.ts.txt b/.agents/skills/verify-interface/fixture/shop.ts.txt new file mode 100644 index 0000000..cf343ab --- /dev/null +++ b/.agents/skills/verify-interface/fixture/shop.ts.txt @@ -0,0 +1,604 @@ +/** + * The consumer module of the verification journeys: data controllers over a small shop schema, written the way + * the docs of this package show them. A journey compiles it against the packed declarations and loads it in + * `ajs project dev` next to `@antelopejs/api` and `@antelopejs/mongodb`. + * + * @packageDocumentation + */ +import { Context, Controller, Parameter } from "@antelopejs/interface-api"; +import type { RequestContext } from "@antelopejs/interface-api"; +import { assert } from "@antelopejs/interface-api-util"; +import { + BasicDataModel, + Field, + Index, + LocalizationModifier, + Localized, + Model, + RegisterSchema, + RegisterTable, + Relation, + Table, +} from "@antelopejs/interface-database-decorators"; +import { DataController, DefaultRoutes, GetDataControllerMeta, RegisterDataController } from "@antelopejs/interface-data-api"; +import type { DataControllerInstance } from "@antelopejs/interface-data-api"; +import { Parameters, Validation } from "@antelopejs/interface-data-api/components"; +import { + Access, + AccessMode, + Computed, + Filter, + Foreign, + GetEffectiveMode, + Joined, + Listable, + Mandatory, + ModelReference, + ModifierKey, + Optional, + Sortable, + Validator, +} from "@antelopejs/interface-data-api/metadata"; +import type { FilterFunction } from "@antelopejs/interface-data-api/metadata"; +import { z } from "zod"; + +const SCHEMA = "verify"; +const AUTH_SCHEMA = "verify_auth"; + +const COMPARISONS = ["eq", "ne", "gt", "ge", "lt", "le"] as const; +type Comparison = (typeof COMPARISONS)[number]; + +function isComparison(mode: string): mode is Comparison { + return COMPARISONS.some((comparison) => comparison === mode); +} + +/** The numeric filter of docs/8.filters.md. */ +const numberFilter: FilterFunction> = (_context, proxy, _key, raw, mode) => { + const value = Number(raw); + assert(raw.trim() !== "" && Number.isFinite(value), 400, "Invalid number"); + assert(isComparison(mode), 400, "Invalid comparison"); + return proxy[mode](value); +}; + +/** The email-domain filter of docs/8.filters.md: equality only, with the domain escaped. */ +const emailDomainFilter: FilterFunction> = (_context, proxy, _key, raw, mode) => { + assert(mode === "eq", 400, "Only equality is supported for email domains"); + const escaped = raw.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + return proxy.match(`@${escaped}$`); +} + +const EMAIL = /^[\w](\.?[\w-]+)*@(?:[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-zA-Z]{2,}$/; +const startsAtSchema = z.coerce.date(); + +@RegisterTable("accounts", AUTH_SCHEMA) +class Account extends Table { + declare _id: string; + + @Field("string") + declare login: string; +} +class AccountModel extends BasicDataModel(Account, "accounts") {} + +@RegisterTable("users", SCHEMA) +class User extends Table { + declare _id: string; + + @Index() + @Field("string") + declare email: string; + + @Field("string") + declare name: string; + + @Field("string") + declare password: string; + + @Field("string") + declare role: string; + + @Field("number") + declare age: number; + + @Field("string") + declare status: string; + + @Field("string") + declare createdAt: string; + + @Field("string") + declare biography: string; + + @Field("string") + declare internalNotes: string; + + @Field("string") + declare nickname: string; + + @Field("string") + declare notes: string; + + @Field("string") + declare secretNote: string; + + @Field("date") + declare startsAt: Date; +} +class UserModel extends BasicDataModel(User, "users") {} + +const userDeclarationErrors = (): string[] => { + const messages: string[] = []; + try { + DataController(class Bogus {}, {}, Controller("/bogus")); + messages.push("declared"); + } catch (error) { + messages.push(error instanceof Error ? error.message : "thrown"); + } + return messages; +}; + +const UserExtras = { + quickEdit: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { noMandatory: "true" }), + falseSkip: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { noMandatory: "false" }), + detailed: DefaultRoutes.WithOptions(DefaultRoutes.List, { pluckMode: "detailed" }), + minimal: DefaultRoutes.WithOptions(DefaultRoutes.List, { pluckMode: "minimal" }), + capped: DefaultRoutes.WithOptions(DefaultRoutes.List, { maxPage: 3 }), + activeOnly: DefaultRoutes.WithOptions(DefaultRoutes.List, { filters: { status: ["active", "eq"] } }), + unplucked: DefaultRoutes.WithOptions(DefaultRoutes.List, { noPluck: true }), + missingMode: DefaultRoutes.WithOptions(DefaultRoutes.List, { pluckMode: "nothing" }), + byEmail: DefaultRoutes.WithOptions(DefaultRoutes.Get, { index: "email" }), + search: { + func: async () => ({ results: [] }), + args: [Context(), Parameters.List()], + method: "get", + }, + modes: { + func: function (this: DataControllerInstance) { + const meta = GetDataControllerMeta(this); + const answer: Record> = {}; + for (const field of ["role", "age", "password", "_id"]) { + answer[field] = {}; + for (const action of ["get", "list", "new", "edit"]) { + answer[field][action] = GetEffectiveMode(meta.fields[field], action); + } + } + return answer; + }, + args: [Context()], + method: "get", + }, + declarations: { + func: userDeclarationErrors, + args: [], + method: "get", + }, +}; + +@RegisterDataController() +class _UserAPI extends DataController(User, { ...DefaultRoutes.All, ...UserExtras }, Controller("/users")) { + @ModelReference() + @Model(UserModel) + declare userModel: UserModel; + + @Listable() + @Listable(true, "minimal") + @Access(AccessMode.ReadOnly) + @Sortable() + declare _id: string; + + @Listable() + @Access(AccessMode.ReadWrite) + @Mandatory("new", "edit") + @Validator((value) => typeof value === "string" && EMAIL.test(value)) + @Filter(emailDomainFilter, false) + declare email: string; + + @Listable() + @Listable(true, "detailed") + @Listable(false, "minimal") + @Access(AccessMode.ReadWrite) + @Mandatory("new") + @Sortable({ noIndex: true }) + @Filter() + declare name: string; + + @Access(AccessMode.WriteOnly) + @Mandatory("new") + declare password: string; + + @Listable() + @Access(AccessMode.ReadWrite, { edit: AccessMode.ReadOnly }) + @Filter() + declare role: string; + + @Listable() + @Access(AccessMode.ReadOnly, { new: AccessMode.ReadWrite }) + @Validator((value) => typeof value === "number" && value >= 0 && value <= 120) + @Sortable({ noIndex: true }) + @Filter(numberFilter, false) + declare age: number; + + @Listable() + @Access(AccessMode.ReadWrite) + @Mandatory("edit") + @Filter() + declare status: string; + + @Listable() + @Access(AccessMode.ReadOnly) + declare createdAt: string; + + @Access(AccessMode.ReadOnly) + declare biography: string; + + @Listable(true, "detailed") + @Access(AccessMode.ReadOnly) + declare internalNotes: string; + + @Access(AccessMode.ReadWrite) + @Validator(async (value) => typeof value === "string" && value !== "taken") + declare nickname: string; + + @Access(AccessMode.ReadWrite) + @Optional() + declare notes: string; + + @Access(AccessMode.ReadWrite) + @Validator((value) => startsAtSchema.safeParseAsync(value)) + declare startsAt: Date; + + @Listable() + declare secretNote: string; +} + +@RegisterDataController() +class _PeopleAPI extends DataController( + User, + { get: DefaultRoutes.Get, list: DefaultRoutes.List, brief: DefaultRoutes.WithOptions(DefaultRoutes.List, { pluckMode: "brief" }) }, + Controller("/people"), +) { + @ModelReference() + @Model(UserModel) + declare userModel: UserModel; + + @Listable() + @Listable(true, "brief") + @Access(AccessMode.ReadOnly) + declare _id: string; + + @Listable() + @Access(AccessMode.ReadOnly) + declare name: string; + + @Access(AccessMode.ReadOnly) + declare email: string; + + @Listable(["name", "email"]) + @Access(AccessMode.ReadOnly) + get fullName(): string { + return `${this.name} <${this.email}>`; + } +} + +@RegisterDataController() +class _StaffAPI extends DataController(User, { get: DefaultRoutes.Get }, Controller("/staff", _UserAPI)) { + @Access(AccessMode.ReadOnly) + declare name: string; +} + +@RegisterTable("order_items", SCHEMA) +class OrderItem extends Table { + declare _id: string; + + @Field("string") + declare name: string; + + @Field("number") + declare price: number; +} +class OrderItemModel extends BasicDataModel(OrderItem, "order_items") {} + +@RegisterTable("orders", SCHEMA) +class Order extends Table { + declare _id: string; + + @Field("string") + @Relation({ to: () => User }) + declare userId: string; + + @Field("string") + declare userEmail: string; + + @Field("string") + declare ownerLogin: string; + + @Field("string") + declare tagged: string; + + @Field(["string"]) + @Relation({ to: () => OrderItem, many: true }) + declare items: string[]; + + @Field(["string"]) + declare itemsAll: string[]; + + @Field(["string"]) + declare labels: string[]; + + @Field("number") + declare total: number; +} +class OrderModel extends BasicDataModel(Order, "orders") {} + +@RegisterDataController() +class _OrderAPI extends DataController( + Order, + { ...DefaultRoutes.All, raw: DefaultRoutes.WithOptions(DefaultRoutes.Get, { noForeign: "true" }), rawList: DefaultRoutes.WithOptions(DefaultRoutes.List, { noForeign: true }) }, + Controller("/orders"), +) { + @ModelReference() + @Model(OrderModel) + declare orderModel: OrderModel; + + @Listable() + @Access(AccessMode.ReadOnly) + declare _id: string; + + @Listable() + @Access(AccessMode.ReadWrite) + @Foreign(User, undefined, false, ["_id", "name", "email"]) + declare userId: User; + + @Listable() + @Access(AccessMode.ReadWrite) + @Foreign(User, "email", false, ["name"]) + declare userEmail: User; + + @Listable() + @Access(AccessMode.ReadWrite) + @Foreign(Account, undefined, false, undefined, AUTH_SCHEMA) + declare ownerLogin: Account; + + @Listable() + @Access(AccessMode.ReadWrite) + @Foreign("users", undefined, false, ["name"]) + declare tagged: User; + + @Listable() + @Access(AccessMode.ReadWrite) + @Foreign(OrderItem, undefined, true, ["name", "price"]) + declare items: OrderItem[]; + + @Listable() + @Access(AccessMode.ReadWrite) + @Foreign(OrderItem, undefined, true) + declare itemsAll: OrderItem[]; + + @Listable() + @Access(AccessMode.ReadWrite) + declare labels: string[]; + + @Listable() + @Access(AccessMode.ReadWrite) + declare total: number; +} + +@RegisterTable("authors", SCHEMA) +class Author extends Table { + declare _id: string; + + @Field("string") + declare name: string; +} + +class AuthorModel extends BasicDataModel(Author, "authors") {} + +@RegisterDataController() +class _AuthorAPI extends DataController( + Author, + { + get: DefaultRoutes.Get, + list: DefaultRoutes.List, + new: DefaultRoutes.New, + quick: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { noMandatory: "true" }, "patch"), + }, + Controller("/authors"), +) { + @ModelReference() + @Model(AuthorModel) + declare authorModel: AuthorModel; + + @Listable() + @Access(AccessMode.ReadOnly) + declare _id: string; + + @Listable() + @Access(AccessMode.ReadWrite) + @Mandatory("new", "edit") + declare name: string; +} + +@RegisterTable("books", SCHEMA) +class Book extends Table { + declare _id: string; + + @Field("string") + @Relation({ to: () => Author }) + declare authorId: string; + + @Field("string") + declare title: string; + + @Field("string") + declare accountId: string; +} +class BookModel extends BasicDataModel(Book, "books") {} + +@RegisterDataController() +class _BookAPI extends DataController(Book, DefaultRoutes.All, Controller("/books")) { + @ModelReference() + @Model(BookModel) + declare bookModel: BookModel; + + @Listable() + @Access(AccessMode.ReadOnly) + declare _id: string; + + @Listable() + @Access(AccessMode.ReadWrite) + declare authorId: string; + + @Listable() + @Access(AccessMode.ReadWrite) + @Sortable({ noIndex: true }) + declare title: string; + + @Listable() + @Sortable() + @Filter() + @Joined({ table: Author, localKey: "authorId", remoteField: "name" }) + declare authorName: string; + + @Listable() + @Joined({ table: "accounts", localKey: "accountId", remoteField: "login", schema: AUTH_SCHEMA }) + declare accountLogin: string; +} + +@RegisterTable("groups", SCHEMA) +class Group extends Table { + declare _id: string; + + @Field("string") + declare name: string; +} +class GroupModel extends BasicDataModel(Group, "groups") {} + +@RegisterTable("devices", SCHEMA) +class Device extends Table { + declare _id: string; + + @Index() + @Field("string") + @Relation({ to: () => Group }) + declare group_id: string; +} + +@RegisterDataController() +class _GroupAPI extends DataController(Group, DefaultRoutes.All, Controller("/groups")) { + @ModelReference() + @Model(GroupModel) + declare groupModel: GroupModel; + + @Listable() + @Access(AccessMode.ReadOnly) + declare _id: string; + + @Listable() + @Access(AccessMode.ReadWrite) + @Sortable({ noIndex: true }) + declare name: string; + + @Listable() + @Computed((row, db) => db.table("devices").filter((device) => device.key("group_id").eq(row.key("_id"))).count(), { default: 0 }) + @Sortable() + @Filter(numberFilter, false) + declare devices_count: number; + + @Listable() + @Computed((row) => row.key("name").concat("!")) + declare display_name: string; +} + +@RegisterTable("articles", SCHEMA) +class Article extends Table.with(LocalizationModifier) { + declare _id: string; + + @Localized() + @Field("string") + declare title: string; +} +class ArticleModel extends BasicDataModel(Article, "articles") {} + +@RegisterDataController() +class _ArticleAPI extends DataController(Article, DefaultRoutes.All, Controller("/articles")) { + @ModelReference() + @Model(ArticleModel) + declare articleModel: ArticleModel; + + @Parameter("x-content-language", "header") + @ModifierKey(LocalizationModifier) + declare language: string; + + @Listable() + @Access(AccessMode.ReadOnly) + declare _id: string; + + @Listable() + @Access(AccessMode.ReadWrite) + @Sortable({ noIndex: true }) + declare title: string; +} + +@RegisterTable("documents", SCHEMA) +class DocumentRow extends Table { + declare _id: string; + + @Field("string") + declare title: string; + + @Field("string") + declare documentType: string; + + @Field("string") + declare source: string; +} +class DocumentModel extends BasicDataModel(DocumentRow, "documents") {} + +const invoiceGet = DefaultRoutes.WithGetGuard(async function (_ctx, current) { + assert(current.documentType === "invoice", 404, "Not Found"); +}); + +const stampedNew = { + ...DefaultRoutes.New, + func: function (this: DataControllerInstance, ctx: RequestContext, params: Parameters.NewParameters, body: Buffer) { + const parsed = Validation.ParseBody(body); + parsed.source = "import"; + return DefaultRoutes.New.func.call(this, ctx, params, parsed); + }, +}; + +const unstorableNew = { + ...DefaultRoutes.New, + func: function (this: DataControllerInstance, ctx: RequestContext, params: Parameters.NewParameters, body: Buffer) { + const parsed = Validation.ParseBody(body); + Reflect.set(parsed, "title", BigInt(1)); + return DefaultRoutes.New.func.call(this, ctx, params, parsed); + }, +}; + +@RegisterDataController() +class _DocumentAPI extends DataController( + DocumentRow, + { ...DefaultRoutes.All, unstorable: unstorableNew, invoice: DefaultRoutes.WithOptions(invoiceGet, { noForeign: "true" }), stamped: stampedNew }, + Controller("/documents"), +) { + @ModelReference() + @Model(DocumentModel) + declare documentModel: DocumentModel; + + @Listable() + @Access(AccessMode.ReadOnly) + declare _id: string; + + @Listable() + @Access(AccessMode.ReadWrite) + declare title: string; + + @Listable() + @Access(AccessMode.ReadWrite) + declare source: string; +} + +export async function construct(): Promise { + await RegisterSchema(AUTH_SCHEMA); + await RegisterSchema(SCHEMA); +} diff --git a/.agents/skills/verify-interface/harness.ts b/.agents/skills/verify-interface/harness.ts new file mode 100644 index 0000000..982483e --- /dev/null +++ b/.agents/skills/verify-interface/harness.ts @@ -0,0 +1,232 @@ +import { createServer } from "node:net"; +import { readFileSync, realpathSync } from "node:fs"; +import { join } from "node:path"; + +import { z } from "zod"; + +import { equal, exitIs, interrupted } from "@antelopejs/tooling-configs/verify"; +import type { App, Check, CommandResult, Journey, JourneyContext } from "@antelopejs/tooling-configs/verify"; + +/** The `@antelopejs/mongodb` release the package's own tests run against. */ +const MONGODB_VERSION = "1.4.4"; +const READY_POLLS = 60; +const READY_MS = 500; +const INTERFACES = [ + "@antelopejs/interface-api", + "@antelopejs/interface-api-util", + "@antelopejs/interface-core", + "@antelopejs/interface-database", + "@antelopejs/interface-database-decorators", +]; +const SHOP_SOURCE = join(import.meta.dirname, "fixture", "shop.ts.txt"); + +/** A JSON value, as the harness checks take it. */ +export type Json = Exclude[1], undefined>; + +/** What an HTTP request to the running API answered. */ +export interface Answer { + folder: string; + status: number; + body: string; + json: Json | undefined; +} + +/** The running shop: its base URL and the helpers journeys drive it with. */ +export interface Shop { + context: JourneyContext; + app: App; + base: string; + request(name: string, method: string, path: string, options?: { body?: string; headers?: string[] }): Promise; + mongo(name: string, script: string): Promise; +} + +function freePort(): Promise { + return new Promise((resolve, reject) => { + const server = createServer(); + server.on("error", reject); + server.listen(0, "127.0.0.1", () => { + const address = server.address(); + const port = address instanceof Object ? address.port : 0; + server.close(() => resolve(port)); + }); + }); +} + +const JSON_VALUE = z.json(); +const JSON_OBJECT = z.record(z.string(), z.json()); + +function parseJson(text: string): Json | undefined { + try { + return JSON_VALUE.parse(JSON.parse(text)); + } catch { + return undefined; + } +} + +/** The script that links the packed interface and the repository's interface copies into the shop module. */ +const LINK_SCRIPT = ` +const fs = require("node:fs"); +const path = require("node:path"); +const [, , shop, packed, repo, ...names] = process.argv; +const link = (name, target) => { + const at = path.join(shop, "node_modules", name); + fs.mkdirSync(path.dirname(at), { recursive: true }); + fs.symlinkSync(target, at, "dir"); +}; +link("@antelopejs/interface-data-api", packed); +for (const name of [...names, "zod"]) link(name, fs.realpathSync(path.join(repo, "node_modules", name))); +`; + +async function compileShop(context: JourneyContext, project: string): Promise { + const shop = join(project, "shop"); + const packed = realpathSync(join(project, "driver", "node_modules", "@antelopejs", "interface-data-api")); + context.edit("write the shop module manifest", join(shop, "package.json"), `${JSON.stringify({ + name: "verify-shop", + version: "1.0.0", + main: "shop.js", + dependencies: Object.fromEntries(INTERFACES.map((name) => [name, "*"])), + }, null, 2)}\n`); + context.edit("write the shop module source", join(shop, "shop.ts"), readFileSync(SHOP_SOURCE, "utf8")); + context.edit("write the link script", join(context.work, "link.cjs"), LINK_SCRIPT); + const linked = await context.command("link the packed interface", "node", [join(context.work, "link.cjs"), shop, packed, context.repo, ...INTERFACES]); + context.expect(linked.folder, [exitIs(linked, 0)], { critical: true }); + const compiled = await context.command("compile the shop against the packed declarations", "node", [ + join(context.repo, "node_modules", "typescript", "bin", "tsc"), + "--strict", "--skipLibCheck", "--experimentalDecorators", "--emitDecoratorMetadata", "--esModuleInterop", + "--target", "es2022", "--module", "commonjs", "--moduleResolution", "node", + "--typeRoots", join(context.repo, "node_modules", "@types"), "--types", "node", + "--outDir", shop, join(shop, "shop.ts"), + ], { timeoutMs: 180_000 }); + context.expect(compiled.folder, [{ name: "the shop compiles against the packed declarations", pass: compiled.exitCode === 0, detail: compiled.stdout.slice(0, 600) }], { critical: true }); +} + +function rewriteConfig(context: JourneyContext, project: string, apiPort: number): void { + const mongo = context.service("mongo"); + const overrides = { "@antelopejs/interface-api": "api", "@antelopejs/interface-database": "mongodb" }; + const config = { + name: "verify-interface-data-api", + cacheFolder: join(context.repo, ".antelope", "cache"), + modules: { + "verify-stub": { source: { type: "local", path: "./stub" }, importOverrides: overrides }, + "verify-driver": { source: { type: "local", path: "./driver" }, importOverrides: overrides }, + mongodb: { + source: { type: "package", package: "@antelopejs/mongodb", version: MONGODB_VERSION }, + config: { url: `mongodb://${mongo.host}:${mongo.port}`, database: "verify" }, + }, + api: { + source: { type: "local", path: realpathSync(join(context.repo, "node_modules", "@antelopejs", "api")) }, + config: { publicBaseUrl: `http://127.0.0.1:${apiPort}`, servers: [{ protocol: "http", host: "127.0.0.1", port: apiPort }] }, + }, + "verify-shop": { source: { type: "local", path: "./shop" }, importOverrides: overrides }, + }, + }; + context.edit("wire the shop, the API and MongoDB into the project", join(project, "antelope.config.ts"), `export default ${JSON.stringify(config, null, 2)};\n`); +} + +/** Runs one request with curl, so the evidence holds the command, and returns its status and body. */ +async function curl(context: JourneyContext, base: string, name: string, call: { method: string; path: string; body?: string; headers?: string[] }): Promise { + const { method, path, ...options } = call; + const args = ["-sS", "-X", method, "-H", "content-type: application/json", "-w", "\\n%{http_code}"]; + for (const header of options.headers ?? []) args.push("-H", header); + if (options.body !== undefined) args.push("--data-binary", options.body); + const ran = await context.command(name, "curl", [...args, `${base}${path}`], { timeoutMs: 30_000 }); + const cut = ran.stdout.lastIndexOf("\n"); + const body = ran.stdout.slice(0, cut); + return { folder: ran.folder, status: Number(ran.stdout.slice(cut + 1)), body, json: parseJson(body) }; +} + +/** Compiles the consumer module against the packed declarations and stops. */ +export async function compileOnly(context: JourneyContext): Promise { + await compileShop(context, context.fixture()); +} + +/** Compiles the shop, starts `ajs project dev` with the API and MongoDB, waits until the routes answer, runs `use`, then stops the project by SIGINT. */ +export async function withShop(context: JourneyContext, use: (shop: Shop) => Promise): Promise { + const project = context.fixture(); + await compileShop(context, project); + const apiPort = await freePort(); + rewriteConfig(context, project, apiPort); + const app = await context.dev("ajs project dev", project); + const base = `http://127.0.0.1:${apiPort}`; + const shop: Shop = { + context, + app, + base, + request: (name, method, path, options) => curl(context, base, name, { method, path, ...options }), + mongo: (name, script) => context.native(name, "mongo", ["mongosh", "--quiet", "--eval", script]), + }; + try { + let probe = await curl(context, base, "wait for the routes", { method: "GET", path: "/users/list" }); + for (let poll = 0; poll < READY_POLLS && probe.status !== 200; poll += 1) { + await new Promise((resolve) => setTimeout(resolve, READY_MS)); + probe = await curl(context, base, "wait for the routes", { method: "GET", path: "/users/list" }); + } + context.expect(probe.folder, [{ name: "the data controllers answer once the project is up", pass: probe.status === 200, detail: base }], { critical: true }); + await use(shop); + } finally { + const stopped = await context.stop("SIGINT", app); + context.expect(stopped.folder, [interrupted(stopped)]); + } +} + +/** A check that `answer` has the HTTP `status`. */ +export function status(answer: Answer, expected: number, label = `answers ${expected}`): Check { + return { name: label, pass: answer.status === expected, detail: `status ${answer.status}: ${answer.body.slice(0, 300)}` }; +} + + +/** The value at `key` of a JSON object, or null when the key is absent. */ +export function pick(value: Json | undefined, key: string): Json { + const object = JSON_OBJECT.safeParse(value); + return object.success ? (object.data[key] ?? null) : null; +} + +/** The keys of a JSON object, sorted. */ +export function keysOf(value: Json | undefined): string[] { + const object = JSON_OBJECT.safeParse(value); + return object.success ? Object.keys(object.data).sort((a, b) => a.localeCompare(b)) : []; +} + +/** The rows of a list answer. */ +export function results(answer: Answer): Json[] { + const found = pick(answer.json, "results"); + return Array.isArray(found) ? found : []; +} + +/** A JSON string value as text, or the JSON of any other value. */ +export function text(value: Json | undefined): string { + const parsed = z.string().safeParse(value); + return parsed.success ? parsed.data : JSON.stringify(value ?? null); +} + +/** The `_id` of each row of a list answer, sorted. */ +export function ids(answer: Answer): string[] { + return results(answer).map((row) => text(pick(row, "_id"))).sort((a, b) => a.localeCompare(b)); +} + +/** One check per key: the answer's JSON object holds `expected[key]` at `key`. */ +export function holds(answer: Answer, expected: { [key: string]: Json }): Check[] { + return Object.entries(expected).map(([key, value]) => equal(`${key} in the answer`, pick(answer.json, key), value)); +} + +/** Reads rows of a collection back through mongosh, the second view of every write: `filter` and `projection` are mongosh source. */ +export async function stored(shop: Shop, name: string, collection: string, filter = "{}", projection = "{}"): Promise<{ folder: string; rows: Json[] }> { + const read = await shop.mongo(name, `JSON.stringify(db.getSiblingDB("verify").${collection}.find(${filter}, ${projection}).sort({ _id: 1 }).toArray())`); + const rows = parseJson(read.stdout.trim()); + return { folder: read.folder, rows: Array.isArray(rows) ? rows : [] }; +} + +/** Inserts documents with mongosh before a request: `script` is mongosh source. */ +export async function seed(shop: Shop, script: string): Promise { + const run = await shop.mongo("seed MongoDB", `const d = db.getSiblingDB("verify"); ${script}`); + shop.context.expect(run.folder, [exitIs(run, 0)], { critical: true }); +} + +/** A journey that drives the shop module over HTTP and reads the writes back in MongoDB. */ +export function shopJourney(title: string, run: (shop: Shop) => Promise): Journey { + return { + title, + entryPoint: "HTTP requests to the shop module's data controllers in `ajs project dev`, read back in MongoDB", + run: (context) => withShop(context, run), + }; +} diff --git a/.agents/skills/verify-interface/journeys-read.ts b/.agents/skills/verify-interface/journeys-read.ts new file mode 100644 index 0000000..b6f1498 --- /dev/null +++ b/.agents/skills/verify-interface/journeys-read.ts @@ -0,0 +1,279 @@ +import { equal, exitIs } from "@antelopejs/tooling-configs/verify"; +import type { Journey } from "@antelopejs/tooling-configs/verify"; + +import { compileOnly, holds, ids, keysOf, pick, results, seed, shopJourney, status, stored, text } from "./harness.ts"; +import { BOOKS, DOCUMENTS, GROUPS, ORDERS, USERS } from "./seeds.ts"; + +const LOCALE = "x-content-language"; +const UNKNOWN_COMPARISON = 'Unknown filter comparison "bogus": use one of eq, ne, gt, ge, lt, le, or start a value that contains a colon with "eq:".'; + +const pluckModes = shopJourney("each pluck mode lists its own fields, and a getter lists the database fields it reads", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const list = await shop.request("default mode", "GET", "/users/list"); + context.expect(list.folder, [equal("the default mode lists the @Listable fields that have read access", keysOf(results(list)[0] ?? null), ["_id", "age", "createdAt", "email", "name", "role", "status"])]); + const detailed = await shop.request("detailed mode", "GET", "/users/detailed"); + const detailedKeys = keysOf(results(detailed)[0] ?? null); + context.expect(detailed.folder, [ + equal("the detailed mode lists name and internalNotes", [detailedKeys.includes("name"), detailedKeys.includes("internalNotes")], [true, true]), + equal("the detailed mode does not inherit the default mode", [detailedKeys.includes("email"), detailedKeys.includes("role")], [false, false]), + ]); + const minimal = await shop.request("minimal mode", "GET", "/users/minimal"); + context.expect(minimal.folder, [equal("a field can be left out of a mode", keysOf(results(minimal)[0] ?? null), ["_id"])]); + const get = await shop.request("get", "GET", "/users/get?id=u1"); + context.expect(get.folder, [equal("a field that is not listable is still read by get", pick(get.json, "biography"), "bio1")]); + const people = await shop.request("people list", "GET", "/people/list"); + context.expect(people.folder, [equal("a getter lists the fields it reads", pick(results(people)[0] ?? null, "fullName"), "Alice ")]); +}); + +const pagination = shopJourney("a list answers one page with the total, offset and limit it used", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const first = await shop.request("default page", "GET", "/users/list"); + context.expect(first.folder, [equal("the default page", [pick(first.json, "total"), pick(first.json, "offset"), pick(first.json, "limit"), results(first).length], [5, 0, 10, 5])]); + const middle = await shop.request("limit 2 offset 1", "GET", "/users/list?limit=2&offset=1&sortKey=_id"); + context.expect(middle.folder, [equal("the page skips the offset and holds the limit", ids(middle), ["u2", "u3"]), equal("the envelope", [pick(middle.json, "total"), pick(middle.json, "offset"), pick(middle.json, "limit")], [5, 1, 2])]); + const tail = await shop.request("limit 2 offset 4", "GET", "/users/list?limit=2&offset=4&sortKey=_id"); + context.expect(tail.folder, [equal("the last page is short", ids(tail), ["u5"]), equal("the total stays the same", pick(tail.json, "total"), 5)]); + const capped = await shop.request("limit 500", "GET", "/users/list?limit=500"); + context.expect(capped.folder, [equal("a list route without maxPage caps the limit at 100", pick(capped.json, "limit"), 100)]); +}); + +const sorting = shopJourney("a list sorts on a @Sortable field in the database and refuses any other", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const byName = await shop.request("name descending", "GET", "/users/list?sortKey=name&sortDirection=desc"); + context.expect(byName.folder, [equal("rows come back in descending name order", results(byName).map((row) => pick(row, "name")), ["Erin", "Dave", "Carol", "Bob", "Alice"])]); + const bogus = await shop.request("any other direction", "GET", "/users/list?sortKey=name&sortDirection=bogus"); + context.expect(bogus.folder, [equal("any other direction sorts ascending", results(bogus).map((row) => pick(row, "name")), ["Alice", "Bob", "Carol", "Dave", "Erin"])]); + const byAge = await shop.request("age ascending, not indexed", "GET", "/users/list?sortKey=age"); + context.expect(byAge.folder, [equal("a noIndex field sorts too", results(byAge).map((row) => pick(row, "age")), [18, 22, 30, 40, 65])]); + const byId = await shop.request("id descending, indexed", "GET", "/users/list?sortKey=_id&sortDirection=desc"); + context.expect(byId.folder, [equal("an indexed field sorts", results(byId).map((row) => pick(row, "_id")), ["u5", "u4", "u3", "u2", "u1"])]); + const refused = await shop.request("a field that is not sortable", "GET", "/users/list?sortKey=email"); + context.expect(refused.folder, [status(refused, 400), equal("the answer names the problem", refused.body, "Field is not sortable.")]); +}); + +const foreignResolve = shopJourney("a foreign key field answers the referenced record, plucked, by index, across schemas and as an array", async (shop) => { + const { context } = shop; + await seed(shop, ORDERS); + const one = await shop.request("order o1", "GET", "/orders/get?id=o1"); + context.expect(one.folder, [ + status(one, 200), + ...holds(one, { + userId: { _id: "u1", name: "Alice", email: "alice@example.com" }, + userEmail: { name: "Bob" }, + ownerLogin: { _id: "a1", login: "alice-login" }, + tagged: { name: "Bob" }, + items: [{ name: "Widget", price: 9.99 }, { name: "Gadget", price: 24.99 }], + itemsAll: [{ _id: "i1", name: "Widget", price: 9.99 }], + total: 99, + }), + ]); + const missing = await shop.request("order o2", "GET", "/orders/get?id=o2"); + context.expect(missing.folder, [ + status(missing, 200), + ...holds(missing, { userId: null, userEmail: null, ownerLogin: null, tagged: { name: "Alice" }, items: [], total: 5 }), + ]); + const list = await shop.request("order list", "GET", "/orders/list"); + context.expect(list.folder, [equal("the list resolves the same fields", pick(results(list)[0] ?? null, "userId"), { _id: "u1", name: "Alice", email: "alice@example.com" })]); +}); + +const foreignRaw = shopJourney("noForeign answers the raw keys on a get and on a list", async (shop) => { + const { context } = shop; + await seed(shop, ORDERS); + const raw = await shop.request("raw get", "GET", "/orders/raw?id=o1"); + context.expect(raw.folder, [status(raw, 200), ...holds(raw, { userId: "u1", userEmail: "bob@gmail.com", ownerLogin: "a1", tagged: "u2", total: 99 })]); + const rawList = await shop.request("raw list", "GET", "/orders/rawList"); + const first = results(rawList)[0] ?? null; + context.expect(rawList.folder, [equal("the list route returns raw keys", [pick(first, "userId"), pick(first, "ownerLogin")], ["u1", "a1"])]); +}); + +const defaultFilter = shopJourney("the default filter compares with six operators and refuses any other", async (shop) => { + const { context } = shop; + await seed(shop, `${USERS}\nd.verify__users.insertOne({ _id: "u6", email: "colon@example.com", name: "a:b", password: "p6", role: "user", age: 50, status: "active" });`); + const cases: [string, string, string[]][] = [ + ["equal by default", "filter_status=inactive", ["u2"]], + ["not equal", "filter_role=ne:admin", ["u2", "u3", "u4", "u5", "u6"]], + ["several fields", "filter_status=active&filter_role=ne:admin", ["u3", "u4", "u5", "u6"]], + ["greater than", "filter_name=gt:Dave", ["u5", "u6"]], + ["greater or equal", "filter_name=ge:Dave", ["u4", "u5", "u6"]], + ["less than", "filter_name=lt:Bob", ["u1"]], + ["less or equal", "filter_name=le:Bob", ["u1", "u2"]], + ["the eq prefix keeps a colon in the value", "filter_name=eq:a:b", ["u6"]], + ["a field that is not a filter is ignored", "filter_nothing=1", ["u1", "u2", "u3", "u4", "u5", "u6"]], + ]; + for (const [name, query, expected] of cases) { + const answer = await shop.request(name, "GET", `/users/list?${query}`); + context.expect(answer.folder, [status(answer, 200), equal(`${name}: the rows`, ids(answer), expected)]); + } + const refused = await shop.request("an operator the table does not hold", "GET", "/users/list?filter_status=bogus:x"); + context.expect(refused.folder, [status(refused, 400), equal("the answer names the operator", refused.body, UNKNOWN_COMPARISON)]); +}); + +const customFilters = shopJourney("custom filter functions parse their own values, and a route can force a filter", async (shop) => { + const { context } = shop; + await seed(shop, `${USERS}\nd.verify__users.insertOne({ _id: "u7", email: "z@gmailxcom", name: "Zed", password: "p7", role: "user", age: 70, status: "active" });`); + const older = await shop.request("numeric filter", "GET", "/users/list?filter_age=gt:30"); + context.expect(older.folder, [equal("a number compares as a number", ids(older), ["u2", "u4", "u7"])]); + const range = await shop.request("one field filtered twice", "GET", "/users/list?filter_age=ge:18&filter_age=lt:65"); + context.expect(range.folder, [equal("both filters apply (AND)", ids(range), ["u1", "u3", "u4", "u5"])]); + const invalid = await shop.request("an invalid number", "GET", "/users/list?filter_age=abc"); + context.expect(invalid.folder, [status(invalid, 400), equal("the filter answers its message", invalid.body, "Invalid number")]); + const domain = await shop.request("domain filter", "GET", "/users/list?filter_email=gmail.com"); + context.expect(domain.folder, [equal("the domain is escaped, so the dot is literal", ids(domain), ["u2", "u3"])]); + const other = await shop.request("domain filter with another operator", "GET", "/users/list?filter_email=ne:gmail.com"); + context.expect(other.folder, [status(other, 400), equal("the filter refuses what it does not support", other.body, "Only equality is supported for email domains")]); + const forced = await shop.request("route filter", "GET", "/users/activeOnly?filter_status=inactive&filter_role=user"); + context.expect(forced.folder, [equal("the route filter wins on its field and the request filter on the others", ids(forced), ["u3", "u4", "u5", "u7"])]); +}); + +const localizedKey = shopJourney("a modifier key read from a header selects the language a write stores and a read answers", async (shop) => { + const { context } = shop; + const created = await shop.request("create in English", "POST", "/articles/new", { body: '{"title":"Hello"}', headers: [`${LOCALE}: en`] }); + const id = text(pick(created.json, "_id")); + context.expect(created.folder, [status(created, 200), ...holds(created, { title: "Hello" })]); + const french = await shop.request("edit in French", "PUT", `/articles/edit?id=${id}`, { body: '{"title":"Bonjour"}', headers: [`${LOCALE}: fr`] }); + context.expect(french.folder, [status(french, 200), ...holds(french, { title: "Bonjour" })]); + const english = await shop.request("read in English", "GET", `/articles/get?id=${id}`, { headers: [`${LOCALE}: en`] }); + context.expect(english.folder, [...holds(english, { title: "Hello" })]); + const kept = await shop.request("edit without the title", "PUT", `/articles/edit?id=${id}`, { body: "{}", headers: [`${LOCALE}: fr`] }); + context.expect(kept.folder, [status(kept, 200), ...holds(kept, { title: "Bonjour" })]); + const afterKept = await shop.request("read in English again", "GET", `/articles/get?id=${id}`, { headers: [`${LOCALE}: en`] }); + context.expect(afterKept.folder, [...holds(afterKept, { title: "Hello" })]); + const row = await stored(shop, "read the article back", "verify__articles", `{ _id: "${id}" }`); + const stored_title = JSON.stringify(row.rows[0] ?? null); + context.expect(row.folder, [equal("MongoDB holds both languages", [stored_title.includes("Hello"), stored_title.includes("Bonjour")], [true, true])]); + await shop.request("create Alpha in English", "POST", "/articles/new", { body: '{"title":"Alpha"}', headers: [`${LOCALE}: en`] }); + const sorted = await shop.request("sort on the English title", "GET", "/articles/list?sortKey=title", { headers: [`${LOCALE}: en`] }); + context.expect(sorted.folder, [equal("rows sort on the value in the request's locale", results(sorted).map((item) => pick(item, "title")), ["Alpha", "Hello"])]); +}); + +const joinedRead = shopJourney("a joined field flattens one remote field onto the row and sorts and filters on it in the database", async (shop) => { + const { context } = shop; + await seed(shop, BOOKS); + const one = await shop.request("get b1", "GET", "/books/get?id=b1"); + context.expect(one.folder, [status(one, 200), ...holds(one, { authorName: "Zola", accountLogin: "alice-login", title: "Nana" })]); + const list = await shop.request("list", "GET", "/books/list"); + context.expect(list.folder, [equal("a missing remote row joins as null", results(list).map((row) => [pick(row, "authorName"), pick(row, "accountLogin")]), [["Zola", "alice-login"], ["Austen", null], [null, null]])]); + const sorted = await shop.request("sort on the joined field", "GET", "/books/list?sortKey=authorName"); + context.expect(sorted.folder, [equal("the join applies before the sort", results(sorted).map((row) => pick(row, "authorName")), [null, "Austen", "Zola"])]); + const filtered = await shop.request("filter on the joined field", "GET", "/books/list?filter_authorName=Zola"); + context.expect(filtered.folder, [equal("the join applies before the filter", [ids(filtered), pick(filtered.json, "total")], [["b1"], 1])]); + const edited = await shop.request("edit a joined field", "PUT", "/books/edit?id=b1", { body: JSON.stringify({ authorName: "Hacked", title: "Nana 2" }) }); + context.expect(edited.folder, [status(edited, 200), ...holds(edited, { authorName: "Zola", title: "Nana 2" })]); + const row = await stored(shop, "read b1 back", "verify__books", '{ _id: "b1" }'); + context.expect(row.folder, [equal("a joined field is never stored", keysOf(row.rows[0] ?? null).includes("authorName"), false), equal("the local key is untouched", pick(row.rows[0] ?? null, "authorId"), "au1")]); +}); + +const computedRead = shopJourney("a computed field is merged from the database where a step needs it", async (shop) => { + const { context } = shop; + await seed(shop, GROUPS); + const one = await shop.request("get g2", "GET", "/groups/get?id=g2"); + context.expect(one.folder, [status(one, 200), ...holds(one, { devices_count: 0, display_name: "Beta!" })]); + const first = await shop.request("first page by count", "GET", "/groups/list?sortKey=devices_count&sortDirection=desc&limit=2"); + context.expect(first.folder, [equal("the first page", results(first).map((row) => [pick(row, "name"), pick(row, "devices_count")]), [["Alpha", 3], ["Gamma", 1]]), equal("the total", [pick(first.json, "total"), pick(first.json, "limit")], [3, 2])]); + const second = await shop.request("second page by count", "GET", "/groups/list?sortKey=devices_count&sortDirection=desc&limit=2&offset=2"); + context.expect(second.folder, [equal("the second page", results(second).map((row) => [pick(row, "name"), pick(row, "devices_count")]), [["Beta", 0]]), equal("the total is the same on every page", pick(second.json, "total"), 3)]); + const empty = await shop.request("filter on a count of zero", "GET", "/groups/list?filter_devices_count=eq:0"); + context.expect(empty.folder, [equal("the default turns a null aggregate into 0", ids(empty), ["g2"])]); + const edited = await shop.request("edit computed fields", "PUT", "/groups/edit?id=g1", { body: JSON.stringify({ devices_count: 99, display_name: "x", name: "Alpha2" }) }); + context.expect(edited.folder, [status(edited, 200), ...holds(edited, { devices_count: 3, display_name: "Alpha2!", name: "Alpha2" })]); + const row = await stored(shop, "read g1 back", "verify__groups", '{ _id: "g1" }'); + context.expect(row.folder, [equal("a computed field is never stored", [keysOf(row.rows[0] ?? null).includes("devices_count"), keysOf(row.rows[0] ?? null).includes("display_name")], [false, false])]); +}); + +const getGuard = shopJourney("a get guard denies by throwing and applies to its own route only", async (shop) => { + const { context } = shop; + await seed(shop, DOCUMENTS); + const allowed = await shop.request("invoice through the guarded route", "GET", "/documents/invoice?id=x1"); + context.expect(allowed.folder, [status(allowed, 200), equal("the guarded row", allowed.json, { _id: "x1", title: "Bill" })]); + const denied = await shop.request("memo through the guarded route", "GET", "/documents/invoice?id=x2"); + context.expect(denied.folder, [status(denied, 404), equal("the guard's error is the answer", denied.body, "Not Found")]); + const missing = await shop.request("missing row through the guarded route", "GET", "/documents/invoice?id=zzz"); + context.expect(missing.folder, [status(missing, 404)]); + const plain = await shop.request("memo through the plain route", "GET", "/documents/get?id=x2"); + context.expect(plain.folder, [status(plain, 200), ...holds(plain, { title: "Memo" })]); +}); + +const amendBody = shopJourney("a route that wraps new can amend the parsed body before it is written", async (shop) => { + const { context } = shop; + const stamped = await shop.request("new through the stamping route", "POST", "/documents/stamped", { body: '{"title":"Imp","source":"sent"}' }); + const stampedId = text(pick(stamped.json, "_id")); + const plain = await shop.request("new through the plain route", "POST", "/documents/new", { body: '{"title":"Plain","source":"sent"}' }); + const plainId = text(pick(plain.json, "_id")); + context.expect(stamped.folder, [status(stamped, 200), ...holds(stamped, { source: "import", title: "Imp" })]); + const rows = await stored(shop, "read both back", "verify__documents"); + const source = (id: string) => pick(rows.rows.find((row) => pick(row, "_id") === id) ?? null, "source"); + context.expect(rows.folder, [equal("the amended field is written", source(stampedId), "import"), equal("the plain route writes what was sent", source(plainId), "sent")]); +}); + +const customRoute: Journey = shopJourney("a custom route declared with func, args and method is served next to the defaults", async (shop) => { + const { context } = shop; + const search = await shop.request("custom search route", "GET", "/users/search"); + context.expect(search.folder, [status(search, 200), equal("the custom route answers", search.json, { results: [] })]); + const list = await shop.request("default route beside it", "GET", "/users/list"); + context.expect(list.folder, [status(list, 200)]); +}); + +const effectiveModes = shopJourney("GetEffectiveMode answers the mode each action applies", async (shop) => { + const { context } = shop; + const modes = await shop.request("read the effective modes", "GET", "/users/modes"); + context.expect(modes.folder, [ + status(modes, 200), + ...holds(modes, { + role: { get: 3, list: 3, new: 3, edit: 1 }, + age: { get: 1, list: 1, new: 3, edit: 1 }, + password: { get: 2, list: 2, new: 2, edit: 2 }, + _id: { get: 1, list: 1, new: 1, edit: 1 }, + }), + ]); +}); + +const declarationErrors = shopJourney("DataController refuses a table class whose schema is not registered", async (shop) => { + const { context } = shop; + const declared = await shop.request("declare a controller on an unregistered table", "GET", "/users/declarations"); + context.expect(declared.folder, [status(declared, 200), equal("the declaration throws", declared.json, ["Non-existent Database Schema"])]); +}); + +const exportsRuntime: Journey = { + title: "the packed metadata entry exports the enum and the filter reader with their documented values", + entryPoint: "the packed `metadata` entry required from a consumer", + async run(context) { + const loaded = await context.command("read the exports", "node", [ + "-e", + `const m = require(process.argv[1]); +console.log(JSON.stringify([m.AccessMode.ReadOnly, m.AccessMode.WriteOnly, m.AccessMode.ReadWrite, m.FilterValuesOf(["a", "eq"]), m.FilterValuesOf([["a", "eq"], ["b", "ne"]])]));`, + `${context.repo}/dist/metadata.js`, + ]); + context.expect(loaded.folder, [exitIs(loaded, 0), equal("the enum values and both filter shapes", loaded.stdout.trim(), '[1,2,3,[["a","eq"]],[["a","eq"],["b","ne"]]]')]); + }, +}; + +const consumerCompiles: Journey = { + title: "a consumer written from the docs compiles against the packed declarations", + entryPoint: "tsc on a module that declares controllers with every decorator the docs show, against the packed types", + async run(context) { + await compileOnly(context); + }, +}; + +export const READ_JOURNEYS = { + "pluck-modes": pluckModes, + pagination, + sorting, + "foreign-resolve": foreignResolve, + "foreign-raw": foreignRaw, + "default-filter": defaultFilter, + "custom-filters": customFilters, + "localized-key": localizedKey, + "joined-read": joinedRead, + "computed-read": computedRead, + "get-guard": getGuard, + "amend-body": amendBody, + "custom-route": customRoute, + "effective-modes": effectiveModes, + "declaration-errors": declarationErrors, + "exports-runtime": exportsRuntime, + "consumer-compiles": consumerCompiles, +}; diff --git a/.agents/skills/verify-interface/journeys-write.ts b/.agents/skills/verify-interface/journeys-write.ts new file mode 100644 index 0000000..b20abf5 --- /dev/null +++ b/.agents/skills/verify-interface/journeys-write.ts @@ -0,0 +1,248 @@ +import { equal, exitIs } from "@antelopejs/tooling-configs/verify"; +import type { Journey } from "@antelopejs/tooling-configs/verify"; + +import { holds, keysOf, pick, results, seed, shopJourney, status, stored, text } from "./harness.ts"; +import { USERS } from "./seeds.ts"; + +const NEW_USER = { + name: "Zed", + email: "zed@example.com", + password: "pw1234", + role: "admin", + age: 33, + createdAt: "x", + biography: "b", + status: "active", + nickname: "zz", + secretNote: "leak", + notes: "n", +}; + +const MISSING = "missing_mandatory_fields"; +const INVALID = "invalid_field_types"; + +/** The ids left in the users collection, sorted. */ +const USER_IDS = '{ _id: 1 }'; + +const smokeRoundtrip = shopJourney("a user created, read, edited and deleted through the routes", async (shop) => { + const { context } = shop; + const created = await shop.request("create", "POST", "/users/new", { body: JSON.stringify({ name: "Ann", email: "ann@example.com", password: "pw1234" }) }); + const id = text(pick(created.json, "_id")); + context.expect(created.folder, [status(created, 200), equal("the created row has an id", id.length > 0, true)]); + const read = await shop.request("read", "GET", `/users/get?id=${id}`); + context.expect(read.folder, [status(read, 200), ...holds(read, { name: "Ann", email: "ann@example.com" })]); + const edited = await shop.request("edit", "PUT", `/users/edit?id=${id}`, { body: JSON.stringify({ name: "Anna" }) }); + context.expect(edited.folder, [status(edited, 200), ...holds(edited, { name: "Anna", email: "ann@example.com" })]); + const deleted = await shop.request("delete", "DELETE", `/users/delete?id=${id}`); + context.expect(deleted.folder, [status(deleted, 200), equal("one record deleted", deleted.json, 1)]); + const gone = await shop.request("read again", "GET", `/users/get?id=${id}`); + context.expect(gone.folder, [status(gone, 404)]); +}); + +const crudLifecycle = shopJourney("new, get, edit and delete change exactly the rows they name, and MongoDB shows it", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const created = await shop.request("create Zed", "POST", "/users/new", { body: JSON.stringify(NEW_USER) }); + const id = text(pick(created.json, "_id")); + context.expect(created.folder, [ + status(created, 200), + ...holds(created, { name: "Zed", email: "zed@example.com", status: "active" }), + equal("the answer leaves out the write-only password", keysOf(created.json).includes("password"), false), + ]); + const row = await stored(shop, "read Zed back", "verify__users", `{ _id: "${id}" }`); + context.expect(row.folder, [ + equal("the row holds the written password", pick(row.rows[0] ?? null, "password"), "pw1234"), + equal("the row holds the age allowed on new", pick(row.rows[0] ?? null, "age"), 33), + equal("the row holds the email", pick(row.rows[0] ?? null, "email"), "zed@example.com"), + ]); + const read = await shop.request("get u1", "GET", "/users/get?id=u1"); + context.expect(read.folder, [status(read, 200), ...holds(read, { _id: "u1", name: "Alice", email: "alice@example.com", biography: "bio1" })]); + const edited = await shop.request("edit u1", "PUT", "/users/edit?id=u1", { body: JSON.stringify({ name: "Updated" }) }); + context.expect(edited.folder, [status(edited, 200), ...holds(edited, { _id: "u1", name: "Updated", email: "alice@example.com", status: "active" })]); + const after = await stored(shop, "read u1 back", "verify__users", '{ _id: "u1" }'); + context.expect(after.folder, [ + equal("the edit changed the name", pick(after.rows[0] ?? null, "name"), "Updated"), + equal("the edit kept the email it was not sent", pick(after.rows[0] ?? null, "email"), "alice@example.com"), + equal("the edit kept the password it was not sent", pick(after.rows[0] ?? null, "password"), "p1"), + ]); + const deleted = await shop.request("delete u4, u5 and a missing id", "DELETE", "/users/delete?id=u4&id=u5&id=ghost"); + context.expect(deleted.folder, [status(deleted, 200), equal("the body counts the records deleted", deleted.json, 2)]); + const left = await shop.mongo("list the ids left", `JSON.stringify(db.getSiblingDB("verify").verify__users.find({}, ${USER_IDS}).sort({ _id: 1 }).toArray().map((row) => row._id))`); + context.expect(left.folder, [equal("only the named rows are gone", left.stdout.trim(), JSON.stringify(["u1", "u2", "u3", id].sort((a, b) => a.localeCompare(b))))]); +}); + +const crudErrors = shopJourney("a missing id, an unknown record and a bad body answer the documented errors", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const cases: [string, string, string, number, string, string?][] = [ + ["get without id", "GET", "/users/get", 400, "Missing id."], + ["get unknown", "GET", "/users/get?id=nope", 404, "Not Found"], + ["edit without id", "PUT", "/users/edit", 400, "Missing id.", '{"name":"x"}'], + ["edit unknown", "PUT", "/users/edit?id=nope", 404, "Not Found", '{"name":"x"}'], + ["edit with a body that is not JSON", "PUT", "/users/edit?id=u1", 400, "Invalid JSON body.", "nope"], + ["delete without id", "DELETE", "/users/delete", 400, "Missing id."], + ["new with a body that is not JSON", "POST", "/users/new", 400, "Invalid JSON body.", "not json"], + ["new with a JSON array", "POST", "/users/new", 400, "The request body must be a JSON object.", "[1,2]"], + ]; + for (const [name, method, path, code, text, body] of cases) { + const answer = await shop.request(name, method, path, { body }); + context.expect(answer.folder, [status(answer, code), equal(`${name} answers its message`, answer.body, text)]); + } + const unknownDelete = await shop.request("delete an unknown id", "DELETE", "/users/delete?id=ghost"); + context.expect(unknownDelete.folder, [status(unknownDelete, 200)]); + const rows = await stored(shop, "count the rows", "verify__users"); + context.expect(rows.folder, [equal("no failed request wrote anything", rows.rows.length, 5)]); +}); + +const crudSubset = shopJourney("a controller serves only the routes it declares, under the endpoint name it is given", async (shop) => { + const { context } = shop; + await seed(shop, `${USERS}\nd.verify__authors.insertMany([{ _id: "au1", name: "Zola" }]);`); + const served = await shop.request("get an author", "GET", "/authors/get?id=au1"); + context.expect(served.folder, [status(served, 200), ...holds(served, { name: "Zola" })]); + const created = await shop.request("create an author", "POST", "/authors/new", { body: JSON.stringify({ name: "Austen" }) }); + context.expect(created.folder, [status(created, 200)]); + for (const [name, method, path] of [["edit is not declared", "PUT", "/authors/edit?id=au1"], ["delete is not declared", "DELETE", "/authors/delete?id=au1"], ["the renamed route has no key name", "PUT", "/authors/quick?id=au1"]]) { + const answer = await shop.request(name, method, path, { body: '{"name":"x"}' }); + context.expect(answer.folder, [status(answer, 404)]); + } + const renamed = await shop.request("edit through the renamed endpoint", "PUT", "/authors/patch?id=au1", { body: JSON.stringify({ name: "Renamed" }) }); + context.expect(renamed.folder, [status(renamed, 200), ...holds(renamed, { name: "Renamed" })]); + const author = await stored(shop, "read the author back", "verify__authors", '{ _id: "au1" }'); + context.expect(author.folder, [equal("the renamed endpoint wrote the name", pick(author.rows[0] ?? null, "name"), "Renamed")]); + const inherited = await shop.request("get through the derived controller", "GET", "/staff/get?id=u1"); + context.expect(inherited.folder, [status(inherited, 200), ...holds(inherited, { name: "Alice" })]); +}); + +const optionOverrides = shopJourney("route options override the query string and switch checks off", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const capped = await shop.request("capped list with a larger limit", "GET", "/users/capped?limit=50"); + context.expect(capped.folder, [equal("maxPage caps the limit", pick(capped.json, "limit"), 3), equal("three rows", results(capped).length, 3), equal("the total counts every row", pick(capped.json, "total"), 5)]); + const cappedDefault = await shop.request("capped list without limit", "GET", "/users/capped"); + context.expect(cappedDefault.folder, [equal("maxPage is the page size without a limit", pick(cappedDefault.json, "limit"), 3), equal("three rows", results(cappedDefault).length, 3)]); + const refused = await shop.request("edit clears a mandatory field", "PUT", "/users/edit?id=u2", { body: '{"status":null}' }); + context.expect(refused.folder, [status(refused, 400), equal("the mandatory check answers its code", pick(refused.json, "code"), MISSING)]); + const skipped = await shop.request("quickEdit clears a mandatory field", "PUT", "/users/quickEdit?id=u2", { body: '{"status":null}' }); + context.expect(skipped.folder, [status(skipped, 200), equal("noMandatory skips the check", pick(skipped.json, "status"), null)]); + const row = await stored(shop, "read u2 back", "verify__users", '{ _id: "u2" }'); + context.expect(row.folder, [equal("the cleared status is stored", pick(row.rows[0] ?? null, "status"), null)]); + const falseString = await shop.request("a route option set to the string false", "PUT", "/users/falseSkip?id=u3", { body: '{"status":null}' }); + context.expect(falseString.folder, [status(falseString, 200), equal("any non-empty string turns noMandatory on, false included", pick(falseString.json, "status"), null)]); + const byIndex = await shop.request("get through the email index", "GET", "/users/byEmail?id=bob@gmail.com"); + context.expect(byIndex.folder, [status(byIndex, 200), ...holds(byIndex, { _id: "u2", name: "Bob" })]); + const unplucked = await shop.request("list with noPluck", "GET", "/users/unplucked"); + context.expect(unplucked.folder, [status(unplucked, 200), equal("noPluck still reads the readable fields", keysOf(results(unplucked)[0] ?? null).includes("biography"), true), equal("noPluck keeps the write-only password out", keysOf(results(unplucked)[0] ?? null).includes("password"), false)]); + const missingMode = await shop.request("list in a mode no field declares", "GET", "/users/missingMode"); + context.expect(missingMode.folder, [status(missingMode, 400), equal("the answer names the mode", missingMode.body, "No fields found for pluckMode 'nothing'")]); +}); + +const accessModes = shopJourney("access modes decide what a response holds and what a write stores, per action", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const read = await shop.request("get u1", "GET", "/users/get?id=u1"); + const readKeys = keysOf(read.json); + context.expect(read.folder, [ + equal("a write-only field is never read", readKeys.includes("password"), false), + equal("a field without @Access is never read", readKeys.includes("secretNote"), false), + equal("a read-only field is read", pick(read.json, "createdAt"), "2020"), + equal("a read-write field is read", pick(read.json, "name"), "Alice"), + ]); + const list = await shop.request("list", "GET", "/users/list"); + context.expect(list.folder, [equal("a list never holds the write-only field", results(list).some((row) => keysOf(row).includes("password")), false)]); + const created = await shop.request("create with read-only, write-only and unguarded fields", "POST", "/users/new", { body: JSON.stringify({ name: "Zed", email: "zed@example.com", password: "pw1234", role: "admin", age: 33, createdAt: "x", biography: "b", secretNote: "leak" }) }); + const id = text(pick(created.json, "_id")); + const row = await stored(shop, "read the new row back", "verify__users", `{ _id: "${id}" }`); + const written = row.rows[0] ?? null; + context.expect(row.folder, [ + equal("a write-only field is stored", pick(written, "password"), "pw1234"), + equal("an override lets role and age be written on new", [pick(written, "role"), pick(written, "age")], ["admin", 33]), + equal("a read-only field is not written", pick(written, "createdAt"), null), + equal("a field without @Access is not written", pick(written, "secretNote"), null), + ]); + const edited = await shop.request("edit read-only and overridden fields", "PUT", "/users/edit?id=u1", { body: JSON.stringify({ name: "Alice2", role: "hacked", age: 99, createdAt: "zzz" }) }); + context.expect(edited.folder, [status(edited, 200), ...holds(edited, { name: "Alice2", role: "admin", age: 30, createdAt: "2020" })]); + const after = await stored(shop, "read u1 back", "verify__users", '{ _id: "u1" }'); + const kept = after.rows[0] ?? null; + context.expect(after.folder, [ + equal("edit wrote the read-write name", pick(kept, "name"), "Alice2"), + equal("edit ignored the role overridden to read-only", pick(kept, "role"), "admin"), + equal("edit ignored the read-only age", pick(kept, "age"), 30), + equal("edit ignored the read-only createdAt", pick(kept, "createdAt"), "2020"), + ]); +}); + +const mandatoryAndValidators = shopJourney("mandatory fields and validators answer 400 bodies with a code and every field that failed", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const missing = await shop.request("new without mandatory fields", "POST", "/users/new", { body: '{"name":"Zed"}' }); + context.expect(missing.folder, [status(missing, 400), equal("the body names the code and every missing field", missing.json, { code: MISSING, fields: ["email", "password"] })]); + const empty = await shop.request("new with an empty object", "POST", "/users/new", { body: "{}" }); + context.expect(empty.folder, [status(empty, 400), equal("the mandatory check runs before the validators", pick(empty.json, "code"), MISSING)]); + const invalid = await shop.request("new with invalid values", "POST", "/users/new", { body: JSON.stringify({ name: "Zed", email: "not-an-email", password: "pw1234", age: 500, nickname: "taken" }) }); + context.expect(invalid.folder, [status(invalid, 400), equal("the body names the code and every invalid field", invalid.json, { code: INVALID, fields: ["email", "age", "nickname"] })]); + const nothing = await stored(shop, "count the users", "verify__users"); + context.expect(nothing.folder, [equal("a refused write stores nothing", nothing.rows.length, 5)]); + const absent = await shop.request("edit sends only the name", "PUT", "/users/edit?id=u1", { body: '{"name":"Alice2"}' }); + context.expect(absent.folder, [status(absent, 200), equal("an absent mandatory field keeps its value", pick(absent.json, "email"), "alice@example.com")]); + for (const [name, body] of [["an empty string", '{"email":""}'], ["null", '{"email":null}']] as const) { + const cleared = await shop.request(`edit clears a mandatory field with ${name}`, "PUT", "/users/edit?id=u1", { body }); + context.expect(cleared.folder, [status(cleared, 400), equal("the body names the field", cleared.json, { code: MISSING, fields: ["email"] })]); + } + const taken = await shop.request("edit with a value the async validator refuses", "PUT", "/users/edit?id=u1", { body: '{"nickname":"taken"}' }); + context.expect(taken.folder, [status(taken, 400), equal("the async validator answers its code", taken.json, { code: INVALID, fields: ["nickname"] })]); + const valid = await shop.request("edit with a valid email", "PUT", "/users/edit?id=u1", { body: '{"email":"alice@corp.io"}' }); + context.expect(valid.folder, [status(valid, 200), ...holds(valid, { email: "alice@corp.io" })]); + const optional = await shop.request("new without the optional field", "POST", "/users/new", { body: JSON.stringify({ name: "Zed", email: "zed@example.com", password: "pw1234" }) }); + context.expect(optional.folder, [status(optional, 200)]); +}); + +const parsedValues = shopJourney("a validator that returns a parse result makes the route write the parsed value", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const created = await shop.request("new with a date string", "POST", "/users/new", { body: JSON.stringify({ name: "Zed", email: "zed@example.com", password: "pw1234", startsAt: "2026-01-15" }) }); + const id = text(pick(created.json, "_id")); + context.expect(created.folder, [status(created, 200), ...holds(created, { startsAt: "2026-01-15T00:00:00.000Z" })]); + const asDate = await shop.mongo("count date-typed values", `db.getSiblingDB("verify").verify__users.countDocuments({ _id: "${id}", startsAt: { $type: "date" } })`); + context.expect(asDate.folder, [equal("new stored a Date, not the string", asDate.stdout.trim(), "1")]); + const edited = await shop.request("edit with another date string", "PUT", "/users/edit?id=u1", { body: JSON.stringify({ startsAt: "2027-02-03" }) }); + context.expect(edited.folder, [status(edited, 200), ...holds(edited, { startsAt: "2027-02-03T00:00:00.000Z" })]); + const editedDate = await shop.mongo("count date-typed values on u1", 'db.getSiblingDB("verify").verify__users.countDocuments({ _id: "u1", startsAt: { $type: "date" } })'); + context.expect(editedDate.folder, [equal("edit stored a Date, not the string", editedDate.stdout.trim(), "1")]); + const refused = await shop.request("new with a value the schema refuses", "POST", "/users/new", { body: JSON.stringify({ name: "Zed", email: "zed2@example.com", password: "pw1234", startsAt: "not a date" }) }); + context.expect(refused.folder, [status(refused, 400), equal("the parse failure answers its code", refused.json, { code: INVALID, fields: ["startsAt"] })]); +}); + +const unstorableBody = shopJourney("a parsed body that holds a value no database stores answers 400", async (shop) => { + const { context } = shop; + await seed(shop, `d.verify__documents.insertMany([{ _id: "x1", title: "Bill", documentType: "invoice" }]);`); + const refused = await shop.request("new through a route that sets a bigint", "POST", "/documents/unstorable", { body: '{"title":"x"}' }); + context.expect(refused.folder, [status(refused, 400)]); + const rows = await stored(shop, "count the documents", "verify__documents"); + context.expect(rows.folder, [equal("nothing was written", rows.rows.length, 1)]); +}); + +const errorCodes: Journey = { + title: "the packed components export the codes the 400 bodies carry", + entryPoint: "the packed `components` entry required from a consumer", + async run(context) { + const loaded = await context.command("read the exported codes", "node", [ + "-e", + 'const { Validation } = require(process.argv[1]); console.log(JSON.stringify([Validation.MISSING_MANDATORY_FIELDS, Validation.INVALID_FIELD_TYPES]));', + `${context.repo}/dist/components.js`, + ]); + context.expect(loaded.folder, [exitIs(loaded, 0), equal("the exported codes are the ones the bodies carry", loaded.stdout.trim(), JSON.stringify([MISSING, INVALID]))]); + }, +}; + +export const WRITE_JOURNEYS = { + "smoke-roundtrip": smokeRoundtrip, + "crud-lifecycle": crudLifecycle, + "crud-errors": crudErrors, + "crud-subset": crudSubset, + "option-overrides": optionOverrides, + "access-modes": accessModes, + "mandatory-and-validators": mandatoryAndValidators, + "parsed-values": parsedValues, + "unstorable-body": unstorableBody, + "error-codes": errorCodes, +}; diff --git a/.agents/skills/verify-interface/package.json b/.agents/skills/verify-interface/package.json new file mode 100644 index 0000000..e986b24 --- /dev/null +++ b/.agents/skills/verify-interface/package.json @@ -0,0 +1,4 @@ +{ + "private": true, + "type": "module" +} diff --git a/.agents/skills/verify-interface/seeded-breaks/access.patch b/.agents/skills/verify-interface/seeded-breaks/access.patch new file mode 100644 index 0000000..b0c0432 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/access.patch @@ -0,0 +1,14 @@ +diff --git a/src/internal/properties.ts b/src/internal/properties.ts +index c4a526e..c8ef08d 100644 +--- a/src/internal/properties.ts ++++ b/src/internal/properties.ts +@@ -42,8 +42,7 @@ export function WriteProperties( + action?: string, + existingDBData?: Parameters[4], + ) { +- const actionWritable = +- meta.writable[action ?? "_default"] ?? meta.writable._default; ++ const actionWritable = meta.writable._default; + const writable = existingDBData + ? writableInBody(actionWritable, bodyData) + : actionWritable; diff --git a/.agents/skills/verify-interface/seeded-breaks/computed.patch b/.agents/skills/verify-interface/seeded-breaks/computed.patch new file mode 100644 index 0000000..cfd832f --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/computed.patch @@ -0,0 +1,13 @@ +diff --git a/src/internal/computed.ts b/src/internal/computed.ts +index 450b46b..85b2563 100644 +--- a/src/internal/computed.ts ++++ b/src/internal/computed.ts +@@ -47,7 +47,7 @@ function buildComputedMappers( + const applyDefaults: RowMapper = (row) => { + const merged: Record> = {}; + for (const [name, computed] of defaulted) { +- merged[name] = row.key(name).default(computed.default); ++ merged[name] = row.key(name); + } + return row.merge(merged).cast(); + }; diff --git a/.agents/skills/verify-interface/seeded-breaks/crud.patch b/.agents/skills/verify-interface/seeded-breaks/crud.patch new file mode 100644 index 0000000..1a7d2f0 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/crud.patch @@ -0,0 +1,13 @@ +diff --git a/src/index.ts b/src/index.ts +index f38741d..523652e 100644 +--- a/src/index.ts ++++ b/src/index.ts +@@ -173,7 +173,7 @@ export namespace DefaultRoutes { + } + + const dbResult = model.constructor.fromDatabase(await query); +- assert(dbResult, 404, "Not Found"); ++ assert(dbResult, 500, "Not Found"); + Validation.Unlock(controller, meta, dbResult); + if (guard && reqCtx) await guard.call(controller, reqCtx, dbResult, params); + diff --git a/.agents/skills/verify-interface/seeded-breaks/filters.patch b/.agents/skills/verify-interface/seeded-breaks/filters.patch new file mode 100644 index 0000000..d8fdb83 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/filters.patch @@ -0,0 +1,13 @@ +diff --git a/src/internal/default-filter.ts b/src/internal/default-filter.ts +index 5ee6110..f098b22 100644 +--- a/src/internal/default-filter.ts ++++ b/src/internal/default-filter.ts +@@ -23,7 +23,7 @@ const DEFAULT_FILTER_OPERATORS: DefaultFilterOperators = { + eq: (proxy, value) => proxy.eq(value), + ne: (proxy, value) => proxy.ne(value), + gt: (proxy, value) => proxy.gt(value), +- ge: (proxy, value) => proxy.ge(value), ++ ge: (proxy, value) => proxy.gt(value), + lt: (proxy, value) => proxy.lt(value), + le: (proxy, value) => proxy.le(value), + }; diff --git a/.agents/skills/verify-interface/seeded-breaks/foreign.patch b/.agents/skills/verify-interface/seeded-breaks/foreign.patch new file mode 100644 index 0000000..e2d674f --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/foreign.patch @@ -0,0 +1,13 @@ +diff --git a/src/internal/foreign.ts b/src/internal/foreign.ts +index 24dc0d4..0f9d226 100644 +--- a/src/internal/foreign.ts ++++ b/src/internal/foreign.ts +@@ -65,7 +65,7 @@ export function Foreign( + index || "_id", + ); + } else { +- query = query.lookup(other, name, index || "_id"); ++ query = query.lookup(other, name, "_id"); + } + if (hasTargetJoined) { + query = applyForeignJoinedStream(db, query, name, targetJoined); diff --git a/.agents/skills/verify-interface/seeded-breaks/guards.patch b/.agents/skills/verify-interface/seeded-breaks/guards.patch new file mode 100644 index 0000000..0a752fd --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/guards.patch @@ -0,0 +1,13 @@ +diff --git a/src/index.ts b/src/index.ts +index f38741d..f154c73 100644 +--- a/src/index.ts ++++ b/src/index.ts +@@ -175,7 +175,7 @@ export namespace DefaultRoutes { + const dbResult = model.constructor.fromDatabase(await query); + assert(dbResult, 404, "Not Found"); + Validation.Unlock(controller, meta, dbResult); +- if (guard && reqCtx) await guard.call(controller, reqCtx, dbResult, params); ++ if (guard && reqCtx) void guard; + + const results = await Query.ReadProperties( + controller, diff --git a/.agents/skills/verify-interface/seeded-breaks/joined.patch b/.agents/skills/verify-interface/seeded-breaks/joined.patch new file mode 100644 index 0000000..8ea1985 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/joined.patch @@ -0,0 +1,12 @@ +diff --git a/src/internal/joined.ts b/src/internal/joined.ts +index 7d10b81..2a8f86c 100644 +--- a/src/internal/joined.ts ++++ b/src/internal/joined.ts +@@ -83,7 +83,6 @@ export function splitJoinedFields( + addAll(split.filter, names); + } else if ( + hasComputedSort || +- (sortField && names.includes(sortField)) || + meta.fields[group.localKey]?.foreign + ) { + addAll(split.sort, names); diff --git a/.agents/skills/verify-interface/seeded-breaks/listing.patch b/.agents/skills/verify-interface/seeded-breaks/listing.patch new file mode 100644 index 0000000..65a222e --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/listing.patch @@ -0,0 +1,13 @@ +diff --git a/src/internal/list.ts b/src/internal/list.ts +index 50f85d9..8934696 100644 +--- a/src/internal/list.ts ++++ b/src/internal/list.ts +@@ -316,7 +316,7 @@ export function ListPage( + query: Stream, + options: ListPageOptions, + ): Stream { +- let page = query.slice(options.offset, options.limit); ++ let page = query.slice(options.offset, options.limit + 1); + const computed = pageComputedFields(meta, options); + const joined = pageJoinedFields(options, computed.size > 0); + if (joined.size > 0) page = Joined(db, meta, page, joined); diff --git a/.agents/skills/verify-interface/seeded-breaks/metadata.patch b/.agents/skills/verify-interface/seeded-breaks/metadata.patch new file mode 100644 index 0000000..70c4d74 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/metadata.patch @@ -0,0 +1,13 @@ +diff --git a/src/metadata.ts b/src/metadata.ts +index e7a8bc2..245e24f 100644 +--- a/src/metadata.ts ++++ b/src/metadata.ts +@@ -95,7 +95,7 @@ export function GetEffectiveMode( + action?: string, + ): AccessMode | undefined { + if (!action || action === DEFAULT_ACTION) return field.mode; +- return field.modeOverrides?.[action] ?? field.mode; ++ return field.mode; + } + + /** diff --git a/.agents/skills/verify-interface/seeded-breaks/modifiers.patch b/.agents/skills/verify-interface/seeded-breaks/modifiers.patch new file mode 100644 index 0000000..e00b289 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/modifiers.patch @@ -0,0 +1,13 @@ +diff --git a/src/internal/validation.ts b/src/internal/validation.ts +index 29bfdb8..ac364d1 100644 +--- a/src/internal/validation.ts ++++ b/src/internal/validation.ts +@@ -74,7 +74,7 @@ export function Unlock( + for (const [modifier, field] of meta.modifierKeys.entries()) { + const keyed: KeyedModifier = modifier; + const key = fieldsOf(obj)[field]; +- unlock(dbData, keyed, undefined, key); ++ unlock(dbData, keyed, undefined); + for (const [foreign, fieldData] of Object.entries(meta.fields)) { + const related = dbData[foreign]; + if (fieldData.foreign && isObject(related)) { diff --git a/.agents/skills/verify-interface/seeded-breaks/route-options.patch b/.agents/skills/verify-interface/seeded-breaks/route-options.patch new file mode 100644 index 0000000..4c13a49 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/route-options.patch @@ -0,0 +1,13 @@ +diff --git a/src/components.ts b/src/components.ts +index 96c65d8..6ac76af 100644 +--- a/src/components.ts ++++ b/src/components.ts +@@ -111,7 +111,7 @@ export namespace Parameters { + const result: Partial = { ...GetOptionOverrides(reqCtx) }; + for (const key in dynamic) { + const extractor = dynamic[key]; +- if (!extractor || (key in result && !combinesWithOptions(extractor))) { ++ if (!extractor) { + continue; + } + const value = extractor(reqCtx, meta, key); diff --git a/.agents/skills/verify-interface/seeded-breaks/smoke.patch b/.agents/skills/verify-interface/seeded-breaks/smoke.patch new file mode 100644 index 0000000..1f28e05 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/smoke.patch @@ -0,0 +1,13 @@ +diff --git a/src/index.ts b/src/index.ts +index f38741d..aadb575 100644 +--- a/src/index.ts ++++ b/src/index.ts +@@ -335,7 +335,7 @@ export namespace DefaultRoutes { + const query = Query.Delete(model.table, params.id); + + const dbResult = await query; +- return dbResult; ++ return dbResult && 0; + } + + Object.defineProperty(getRow, "name", { value: "get" }); diff --git a/.agents/skills/verify-interface/seeded-breaks/validation.patch b/.agents/skills/verify-interface/seeded-breaks/validation.patch new file mode 100644 index 0000000..c210cd4 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-breaks/validation.patch @@ -0,0 +1,15 @@ +diff --git a/src/components.ts b/src/components.ts +index 96c65d8..e4e83c0 100644 +--- a/src/components.ts ++++ b/src/components.ts +@@ -497,9 +497,7 @@ export namespace Validation { + [action: string]: typeof isAbsentFromBody; + } + +- const MISSING_MANDATORY_FIELD_CHECKS: MissingFieldChecks = { +- edit: isClearedByBody, +- }; ++ const MISSING_MANDATORY_FIELD_CHECKS: MissingFieldChecks = {}; + + /** The `code` of a 400 naming the mandatory fields a body lacks. */ + export const MISSING_MANDATORY_FIELDS = "missing_mandatory_fields"; diff --git a/.agents/skills/verify-interface/seeded-doors/contract.patch b/.agents/skills/verify-interface/seeded-doors/contract.patch new file mode 100644 index 0000000..b4d0e56 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-doors/contract.patch @@ -0,0 +1,13 @@ +diff --git a/src/index.ts b/src/index.ts +index f38741d..a4cc1d7 100644 +--- a/src/index.ts ++++ b/src/index.ts +@@ -90,7 +90,7 @@ export function DataController< + return c as Class & TableHolder> & Base; + } + +-export const RegisterDataController = ++export const RegisterController = + (): ClassDecorator => (target) => { + const meta = GetMetadata(target, DataAPIMeta); + const prototype = prototypeOf(target); diff --git a/.agents/skills/verify-interface/seeded-doors/data.patch b/.agents/skills/verify-interface/seeded-doors/data.patch new file mode 100644 index 0000000..b096782 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-doors/data.patch @@ -0,0 +1,13 @@ +diff --git a/src/components.ts b/src/components.ts +index 96c65d8..bf4e5aa 100644 +--- a/src/components.ts ++++ b/src/components.ts +@@ -472,7 +472,7 @@ export namespace Query { + + export function Delete(table: Table, id: string | string[]) { + return Array.isArray(id) +- ? table.getAll(id).delete() ++ ? table.delete() + : table.get(id).delete(); + } + } diff --git a/.agents/skills/verify-interface/seeded-doors/exposure.patch b/.agents/skills/verify-interface/seeded-doors/exposure.patch new file mode 100644 index 0000000..06b3163 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-doors/exposure.patch @@ -0,0 +1,13 @@ +diff --git a/src/metadata.ts b/src/metadata.ts +index e7a8bc2..a4fd8e0 100644 +--- a/src/metadata.ts ++++ b/src/metadata.ts +@@ -212,7 +212,7 @@ export class DataAPIMeta { + continue; + } + +- if (effectiveMode & AccessMode.ReadOnly) { ++ if (effectiveMode) { + readable[field.desc?.get ? "getters" : "props"].push([key, field]); + } + if (effectiveMode & AccessMode.WriteOnly) { diff --git a/.agents/skills/verify-interface/seeded-doors/format.patch b/.agents/skills/verify-interface/seeded-doors/format.patch new file mode 100644 index 0000000..a1cc3d0 --- /dev/null +++ b/.agents/skills/verify-interface/seeded-doors/format.patch @@ -0,0 +1,13 @@ +diff --git a/src/components.ts b/src/components.ts +index 96c65d8..b06c6c3 100644 +--- a/src/components.ts ++++ b/src/components.ts +@@ -502,7 +502,7 @@ export namespace Validation { + }; + + /** The `code` of a 400 naming the mandatory fields a body lacks. */ +- export const MISSING_MANDATORY_FIELDS = "missing_mandatory_fields"; ++ export const MISSING_MANDATORY_FIELDS = "missing_fields"; + /** The `code` of a 400 naming the fields whose validator refused the value. */ + export const INVALID_FIELD_TYPES = "invalid_field_types"; + diff --git a/.agents/skills/verify-interface/seeded-doors/publish.patch b/.agents/skills/verify-interface/seeded-doors/publish.patch new file mode 100644 index 0000000..ed719fe --- /dev/null +++ b/.agents/skills/verify-interface/seeded-doors/publish.patch @@ -0,0 +1,13 @@ +diff --git a/package.json b/package.json +index 0725569..cfb49e3 100644 +--- a/package.json ++++ b/package.json +@@ -48,7 +48,7 @@ + "./package.json": "./package.json" + }, + "publishConfig": { +- "access": "public", ++ "access": "restricted", + "provenance": true + }, + "scripts": { diff --git a/.agents/skills/verify-interface/seeds.ts b/.agents/skills/verify-interface/seeds.ts new file mode 100644 index 0000000..076ab71 --- /dev/null +++ b/.agents/skills/verify-interface/seeds.ts @@ -0,0 +1,36 @@ +/** Five users for the list, sort and filter journeys. `password` is stored so a leak would show. */ +export const USERS = `d.verify__users.insertMany([ + { _id: "u1", email: "alice@example.com", name: "Alice", password: "p1", role: "admin", age: 30, status: "active", createdAt: "2020", biography: "bio1", internalNotes: "n1", nickname: "al", secretNote: "hidden" }, + { _id: "u2", email: "bob@gmail.com", name: "Bob", password: "p2", role: "user", age: 65, status: "inactive", createdAt: "2021", biography: "bio2", internalNotes: "n2" }, + { _id: "u3", email: "carol@gmail.com", name: "Carol", password: "p3", role: "user", age: 18, status: "active", createdAt: "2022", biography: "bio3", internalNotes: "n3" }, + { _id: "u4", email: "dave@example.com", name: "Dave", password: "p4", role: "user", age: 40, status: "active", createdAt: "2023", biography: "bio4", internalNotes: "n4" }, + { _id: "u5", email: "erin@example.com", name: "Erin", password: "p5", role: "user", age: 22, status: "active", createdAt: "2024", biography: "bio5", internalNotes: "n5" }, +]);`; + +/** Users, order items, an account in the second schema, and two orders: one whose references resolve, one whose references do not. */ +export const ORDERS = `d.verify__users.insertMany([ + { _id: "u1", email: "alice@example.com", name: "Alice", password: "p1" }, + { _id: "u2", email: "bob@gmail.com", name: "Bob", password: "p2" }, +]); +d.verify__order_items.insertMany([{ _id: "i1", name: "Widget", price: 9.99 }, { _id: "i2", name: "Gadget", price: 24.99 }]); +d.verify_auth__accounts.insertMany([{ _id: "a1", login: "alice-login" }]); +d.verify__orders.insertMany([ + { _id: "o1", userId: "u1", userEmail: "bob@gmail.com", ownerLogin: "a1", tagged: "u2", items: ["i1", "i2"], itemsAll: ["i1"], total: 99 }, + { _id: "o2", userId: "nobody", userEmail: "nobody@x.io", ownerLogin: "zz", tagged: "u1", items: [], itemsAll: [], total: 5 }, +]);`; + +/** Two authors, three books (one with no author), and one account for the cross-schema join. */ +export const BOOKS = `d.verify__authors.insertMany([{ _id: "au1", name: "Zola" }, { _id: "au2", name: "Austen" }]); +d.verify_auth__accounts.insertMany([{ _id: "a1", login: "alice-login" }]); +d.verify__books.insertMany([ + { _id: "b1", authorId: "au1", title: "Nana", accountId: "a1" }, + { _id: "b2", authorId: "au2", title: "Emma", accountId: "zz" }, + { _id: "b3", authorId: "nobody", title: "Orphan" }, +]);`; + +/** Three groups, four devices: Alpha has three, Beta none, Gamma one. */ +export const GROUPS = `d.verify__groups.insertMany([{ _id: "g1", name: "Alpha" }, { _id: "g2", name: "Beta" }, { _id: "g3", name: "Gamma" }]); +d.verify__devices.insertMany([{ _id: "d1", group_id: "g1" }, { _id: "d2", group_id: "g1" }, { _id: "d3", group_id: "g1" }, { _id: "d4", group_id: "g3" }]);`; + +/** An invoice and a memo in the table the guarded route reads. */ +export const DOCUMENTS = `d.verify__documents.insertMany([{ _id: "x1", title: "Bill", documentType: "invoice" }, { _id: "x2", title: "Memo", documentType: "memo" }]);`; diff --git a/.agents/skills/verify-interface/tsconfig.json b/.agents/skills/verify-interface/tsconfig.json new file mode 100644 index 0000000..8d4c934 --- /dev/null +++ b/.agents/skills/verify-interface/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "rootDir": "../../..", + "module": "nodenext", + "moduleResolution": "nodenext", + "allowImportingTsExtensions": true, + "composite": false, + "noEmit": true + }, + "include": [ + "**/*.ts" + ] +} diff --git a/.agents/skills/verify-interface/verify.config.ts b/.agents/skills/verify-interface/verify.config.ts new file mode 100644 index 0000000..d183a84 --- /dev/null +++ b/.agents/skills/verify-interface/verify.config.ts @@ -0,0 +1,112 @@ +import { Controller } from "@antelopejs/interface-api"; +import type { VerifyConfig } from "@antelopejs/tooling-configs/verify"; + +import type * as DataApi from "../../../src/index.ts"; +import { READ_JOURNEYS } from "./journeys-read.ts"; +import { WRITE_JOURNEYS } from "./journeys-write.ts"; + +const FAILS_ON_AN_UNREGISTERED_SCHEMA = "Non-existent Database Schema"; + +/** The route functions of `DefaultRoutes`: each is named after its endpoint, and `All` holds the same functions. */ +function routeFunctions(api: typeof DataApi) { + const { Get, List, New, Edit, Delete, All } = api.DefaultRoutes; + return { + names: [Get.func.name, List.func.name, New.func.name, Edit.func.name, Delete.func.name], + all: [All.get.func === Get.func, All.list.func === List.func, All.new.func === New.func, All.edit.func === Edit.func, All.delete.func === Delete.func], + }; +} + +const config: VerifyConfig = { + doors: { + data: { + globs: ["src/index.ts", "src/components.ts", "src/internal/tables.ts", "src/internal/properties.ts"], + funnels: [], + containments: ["crud/crud-lifecycle"], + why: "the new, edit and delete routes write and remove rows in the consumer's database; a delete that removes a row nobody named cannot be undone", + }, + format: { + globs: ["src/components.ts", "src/internal/validation.ts", "src/internal/list.ts"], + funnels: [], + containments: ["validation/mandatory-and-validators", "listing/pagination"], + why: "the 400 bodies (code and fields) and the list envelope (results, total, offset, limit) are what clients parse", + }, + contract: { + globs: ["src/index.ts", "src/metadata.ts", "src/components.ts", "package.json"], + funnels: [], + containments: [], + why: "the decorators, DataController and DefaultRoutes are what every module serving a table imports", + }, + outbound: null, + exposure: { + globs: ["src/internal/read-properties.ts", "src/metadata.ts"], + funnels: [], + containments: [], + why: "the access modes decide which fields a response holds; a write-only field that leaks exposes a secret", + }, + publish: { + globs: ["package.json", ".release-it.json", "changelogen.config.json", ".github/workflows/release.yml"], + funnels: [], + containments: [], + why: "the package name and release workflow claim @antelopejs/interface-data-api on npm", + }, + }, + services: { + mongo: { + image: "mongo:7", + port: 27017, + ready: ["mongosh", "--quiet", "--eval", "db.runCommand({ ping: 1 }).ok"], + reset: ["mongosh", "--quiet", "--eval", 'db.getSiblingDB("verify").dropDatabase(); db.getSiblingDB("verify_auth").dropDatabase()'], + }, + }, + interface: { + calls: { + ".:DataController": { + call: (api) => { + try { + api.DataController(class Bogus {}, {}, Controller("/bogus")); + return Promise.resolve("declared"); + } catch (error) { + return Promise.resolve(error instanceof Error ? error.message : "thrown"); + } + }, + expect: FAILS_ON_AN_UNREGISTERED_SCHEMA, + }, + ".:GetDataControllerMeta": { + call: (api) => Promise.resolve(api.GetDataControllerMeta({}).setMode.name), + expect: "setMode", + }, + ".:RegisterDataController": { call: (api) => Promise.resolve(api.RegisterDataController().length), expect: 1 }, + ".:DefaultRoutes.WithOptions": { + call: (api) => { + const { Get, WithOptions } = api.DefaultRoutes; + const renamed = WithOptions(Get, { noForeign: "true" }, "raw"); + const merged = WithOptions(WithOptions(Get, { noForeign: "true" }), { index: "email" }); + return Promise.resolve({ endpoint: renamed.endpoint ?? null, options: renamed.options ?? null, wrapsGet: renamed.callback === Get, merged: merged.options ?? null }); + }, + expect: { endpoint: "raw", options: { noForeign: "true" }, wrapsGet: true, merged: { noForeign: "true", index: "email" } }, + }, + ".:DefaultRoutes.WithGetGuard": { + call: (api) => { + const guarded = api.DefaultRoutes.WithGetGuard(() => undefined); + return Promise.resolve({ method: guarded.method, args: guarded.args === api.DefaultRoutes.Get.args, ownFunc: guarded.func !== api.DefaultRoutes.Get.func }); + }, + expect: { method: "get", args: true, ownFunc: true }, + }, + ...Object.fromEntries( + ["Get", "List", "New", "Edit", "Delete"].map((route) => [ + `.:DefaultRoutes.${route}.func`, + { call: (api: typeof DataApi) => Promise.resolve(routeFunctions(api).names), expect: ["get", "list", "new", "edit", "delete"] }, + ]), + ), + ...Object.fromEntries( + ["get", "list", "new", "edit", "delete"].map((route) => [ + `.:DefaultRoutes.All.${route}.func`, + { call: (api: typeof DataApi) => Promise.resolve(routeFunctions(api).all), expect: [true, true, true, true, true] }, + ]), + ), + }, + }, + journeys: { ...WRITE_JOURNEYS, ...READ_JOURNEYS }, +}; + +export default config; diff --git a/.claude/skills/verify-interface b/.claude/skills/verify-interface new file mode 120000 index 0000000..c7df9cd --- /dev/null +++ b/.claude/skills/verify-interface @@ -0,0 +1 @@ +../../.agents/skills/verify-interface \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 0764a75..78674ac 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,6 +32,8 @@ The release commit writes `CHANGELOG.md`. Upgrade notes for that version follow Finish every change with `pnpm run checks`. It runs typecheck, lint, format, knip, tests, size, suppressions, and sync, and prints only what failed. The change is done when it prints no failure. +Prove a change works with the verification skill in [`.agents/skills/verify-interface/SKILL.md`](.agents/skills/verify-interface/SKILL.md) before you call it done. + The tools enforce most rules, listed in the table at the end. The sections below hold the rules no tool checks. ### Comments From b37d6127201bbdee3abde6869d6507f9625a2c10 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Wed, 4 Nov 2026 00:07:46 +0100 Subject: [PATCH 27/36] fix(skills): catch the foreign, route-options and modifiers breaks and contain the format door --- .../verify-interface/fixture/shop.ts.txt | 8 ++++++++ .../skills/verify-interface/journeys-read.ts | 1 + .../seeded-breaks/foreign.patch | 19 +++++++++--------- .../seeded-breaks/modifiers.patch | 4 ++-- .../seeded-breaks/route-options.patch | 20 +++++++++---------- .agents/skills/verify-interface/seeds.ts | 2 +- .../skills/verify-interface/verify.config.ts | 6 +++--- 7 files changed, 34 insertions(+), 26 deletions(-) diff --git a/.agents/skills/verify-interface/fixture/shop.ts.txt b/.agents/skills/verify-interface/fixture/shop.ts.txt index cf343ab..964f455 100644 --- a/.agents/skills/verify-interface/fixture/shop.ts.txt +++ b/.agents/skills/verify-interface/fixture/shop.ts.txt @@ -318,6 +318,9 @@ class Order extends Table { @Relation({ to: () => OrderItem, many: true }) declare items: string[]; + @Field("string") + declare byEmail: string; + @Field(["string"]) declare itemsAll: string[]; @@ -368,6 +371,11 @@ class _OrderAPI extends DataController( @Foreign(OrderItem, undefined, true, ["name", "price"]) declare items: OrderItem[]; + @Listable() + @Access(AccessMode.ReadWrite) + @Foreign(User, "email") + declare byEmail: User; + @Listable() @Access(AccessMode.ReadWrite) @Foreign(OrderItem, undefined, true) diff --git a/.agents/skills/verify-interface/journeys-read.ts b/.agents/skills/verify-interface/journeys-read.ts index b6f1498..6d063de 100644 --- a/.agents/skills/verify-interface/journeys-read.ts +++ b/.agents/skills/verify-interface/journeys-read.ts @@ -70,6 +70,7 @@ const foreignResolve = shopJourney("a foreign key field answers the referenced r total: 99, }), ]); + context.expect(one.folder, [equal("an index without pluck resolves the whole record", pick(pick(one.json, "byEmail"), "name"), "Bob")]); const missing = await shop.request("order o2", "GET", "/orders/get?id=o2"); context.expect(missing.folder, [ status(missing, 200), diff --git a/.agents/skills/verify-interface/seeded-breaks/foreign.patch b/.agents/skills/verify-interface/seeded-breaks/foreign.patch index e2d674f..1816edc 100644 --- a/.agents/skills/verify-interface/seeded-breaks/foreign.patch +++ b/.agents/skills/verify-interface/seeded-breaks/foreign.patch @@ -1,13 +1,12 @@ diff --git a/src/internal/foreign.ts b/src/internal/foreign.ts -index 24dc0d4..0f9d226 100644 +index 24dc0d4..4e36bbd 100644 --- a/src/internal/foreign.ts +++ b/src/internal/foreign.ts -@@ -65,7 +65,7 @@ export function Foreign( - index || "_id", - ); - } else { -- query = query.lookup(other, name, index || "_id"); -+ query = query.lookup(other, name, "_id"); - } - if (hasTargetJoined) { - query = applyForeignJoinedStream(db, query, name, targetJoined); +@@ -105,7 +105,6 @@ export function Foreign( + let foreignObject: Datum = Get( + remote, + obj.key(name).cast(), +- index, + ); + if (targetJoined && targetJoined.length > 0) { + foreignObject = applyForeignJoinedDatum( diff --git a/.agents/skills/verify-interface/seeded-breaks/modifiers.patch b/.agents/skills/verify-interface/seeded-breaks/modifiers.patch index e00b289..6bc6256 100644 --- a/.agents/skills/verify-interface/seeded-breaks/modifiers.patch +++ b/.agents/skills/verify-interface/seeded-breaks/modifiers.patch @@ -1,5 +1,5 @@ diff --git a/src/internal/validation.ts b/src/internal/validation.ts -index 29bfdb8..ac364d1 100644 +index 29bfdb8..06d0370 100644 --- a/src/internal/validation.ts +++ b/src/internal/validation.ts @@ -74,7 +74,7 @@ export function Unlock( @@ -7,7 +7,7 @@ index 29bfdb8..ac364d1 100644 const keyed: KeyedModifier = modifier; const key = fieldsOf(obj)[field]; - unlock(dbData, keyed, undefined, key); -+ unlock(dbData, keyed, undefined); ++ unlock(dbData, keyed, undefined, undefined); for (const [foreign, fieldData] of Object.entries(meta.fields)) { const related = dbData[foreign]; if (fieldData.foreign && isObject(related)) { diff --git a/.agents/skills/verify-interface/seeded-breaks/route-options.patch b/.agents/skills/verify-interface/seeded-breaks/route-options.patch index 4c13a49..b8c930a 100644 --- a/.agents/skills/verify-interface/seeded-breaks/route-options.patch +++ b/.agents/skills/verify-interface/seeded-breaks/route-options.patch @@ -1,13 +1,13 @@ diff --git a/src/components.ts b/src/components.ts -index 96c65d8..6ac76af 100644 +index 96c65d8..4097423 100644 --- a/src/components.ts +++ b/src/components.ts -@@ -111,7 +111,7 @@ export namespace Parameters { - const result: Partial = { ...GetOptionOverrides(reqCtx) }; - for (const key in dynamic) { - const extractor = dynamic[key]; -- if (!extractor || (key in result && !combinesWithOptions(extractor))) { -+ if (!extractor) { - continue; - } - const value = extractor(reqCtx, meta, key); +@@ -167,7 +167,7 @@ export namespace Parameters { + "Field is not sortable.", + ); + params.limit = params.limit +- ? Math.min(params.limit, params.maxPage ?? 100) ++ ? Math.min(params.limit, 100) + : params.maxPage; + + return params; diff --git a/.agents/skills/verify-interface/seeds.ts b/.agents/skills/verify-interface/seeds.ts index 076ab71..17360c7 100644 --- a/.agents/skills/verify-interface/seeds.ts +++ b/.agents/skills/verify-interface/seeds.ts @@ -15,7 +15,7 @@ export const ORDERS = `d.verify__users.insertMany([ d.verify__order_items.insertMany([{ _id: "i1", name: "Widget", price: 9.99 }, { _id: "i2", name: "Gadget", price: 24.99 }]); d.verify_auth__accounts.insertMany([{ _id: "a1", login: "alice-login" }]); d.verify__orders.insertMany([ - { _id: "o1", userId: "u1", userEmail: "bob@gmail.com", ownerLogin: "a1", tagged: "u2", items: ["i1", "i2"], itemsAll: ["i1"], total: 99 }, + { _id: "o1", userId: "u1", userEmail: "bob@gmail.com", ownerLogin: "a1", tagged: "u2", byEmail: "bob@gmail.com", items: ["i1", "i2"], itemsAll: ["i1"], total: 99 }, { _id: "o2", userId: "nobody", userEmail: "nobody@x.io", ownerLogin: "zz", tagged: "u1", items: [], itemsAll: [], total: 5 }, ]);`; diff --git a/.agents/skills/verify-interface/verify.config.ts b/.agents/skills/verify-interface/verify.config.ts index d183a84..4540c7a 100644 --- a/.agents/skills/verify-interface/verify.config.ts +++ b/.agents/skills/verify-interface/verify.config.ts @@ -25,10 +25,10 @@ const config: VerifyConfig = { why: "the new, edit and delete routes write and remove rows in the consumer's database; a delete that removes a row nobody named cannot be undone", }, format: { - globs: ["src/components.ts", "src/internal/validation.ts", "src/internal/list.ts"], + globs: ["src/components.ts", "src/internal/validation.ts"], funnels: [], - containments: ["validation/mandatory-and-validators", "listing/pagination"], - why: "the 400 bodies (code and fields) and the list envelope (results, total, offset, limit) are what clients parse", + containments: ["validation/mandatory-and-validators"], + why: "the 400 bodies (code and fields) are what clients parse", }, contract: { globs: ["src/index.ts", "src/metadata.ts", "src/components.ts", "package.json"], From e3cb9e9f8abd934f79ccb2e992b22ffc9d91dd01 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Wed, 4 Nov 2026 02:24:03 +0100 Subject: [PATCH 28/36] feat(skills): cover guard, new, edit, filter and list-mode behaviours and drive #90, #92 and #93 --- .../verify-interface/features/README.md | 8 +- .../verify-interface/features/access.md | 2 + .../skills/verify-interface/features/crud.md | 5 + .../verify-interface/features/filters.md | 3 + .../verify-interface/features/foreign.md | 6 +- .../verify-interface/features/guards.md | 2 + .../verify-interface/features/listing.md | 4 +- .../features/route-options.md | 4 + .../verify-interface/features/validation.md | 1 + .../verify-interface/fixture/shop.ts.txt | 100 +++++++++++++ .../skills/verify-interface/journeys-probe.ts | 133 ++++++++++++++++++ .../seeded-breaks/validation.patch | 16 +-- .agents/skills/verify-interface/seeds.ts | 6 + .../skills/verify-interface/verify.config.ts | 3 +- 14 files changed, 276 insertions(+), 17 deletions(-) create mode 100644 .agents/skills/verify-interface/journeys-probe.ts diff --git a/.agents/skills/verify-interface/features/README.md b/.agents/skills/verify-interface/features/README.md index bf51199..9608266 100644 --- a/.agents/skills/verify-interface/features/README.md +++ b/.agents/skills/verify-interface/features/README.md @@ -18,18 +18,18 @@ One file per feature. `covers:` lists the source globs it owns, `docs:` the page | [metadata](metadata.md) | A module author reads metadata and declares controllers. | effective-modes, declaration-errors, exports-runtime, consumer-compiles | | [smoke](smoke.md) | The fixed journey every verdict runs. | every-function, smoke-roundtrip | +## Known issues, driven on purpose + +Three journeys fail on head and cite their issue: `issue-90-edit-index` ([#90](https://github.com/AntelopeJS/interface-data-api/issues/90)), `issue-92-getter-mode` ([#92](https://github.com/AntelopeJS/interface-data-api/issues/92)) and `issue-93-multi-foreign` ([#93](https://github.com/AntelopeJS/interface-data-api/issues/93)). A verdict that runs their features is FAIL until the issue is fixed; the fix turns the journey green. + ## Not driven Every documented behaviour of the README, `docs/` and the TSDoc has a journey above, or a row here with the reason. | Behaviour | Why no journey drives it | |---|---| -| Multi-reference element that matches nothing answers `null` (docs/7) | Fails on head: it answers `{}`. Drafted as an issue; a journey would make every foreign verdict FAIL. | -| `noForeign` answers raw ids for a multi reference (docs/7) | Fails on head: the ids become character-index objects. Drafted as an issue. | -| A list mode a getter does not declare omits the getter (docs/6) | `/people/brief` still lists the getter. Drafted as an issue. | | `Unregistered Database Table` (docs/2) | Needs a registered schema that lacks the table class; `@RegisterTable` registers the table. | | Class metadata and `schema` option name different schemas, the declaration throws (docs/7, docs/10) | Needs a table class whose metadata names a second schema; declaration-time only, no route reaches it. | -| Edit `index` option (docs/3) | The `get` index option is driven; the edit variant needs a second unique index column in the fixture. | | `@Joined` `remoteIndex` (docs/10) | Needs an indexed non-key column on the remote table. | | `@Foreign` `targetMeta` joined fields (docs/7) | Needs a second data controller's metadata passed to the decorator. | | `Query.List` and `Query.ListPage` composed by a custom route, deferred lookup order, bare `count()` skips lookups, `changes()` (docs/10) | Advanced composition by internal helpers; the default list route is driven for the same joined and computed fields. | diff --git a/.agents/skills/verify-interface/features/access.md b/.agents/skills/verify-interface/features/access.md index 85c9ad3..2d7bfdf 100644 --- a/.agents/skills/verify-interface/features/access.md +++ b/.agents/skills/verify-interface/features/access.md @@ -6,6 +6,7 @@ docs: - docs/4.access-rights.md journeys: - access-modes + - listable-alone --- # access @@ -15,6 +16,7 @@ journeys: ## Sub-features - `access-modes`: a write-only field is never answered and is stored, a field with no `@Access` is never answered and never written, a read-only field is answered and ignored in a body, and a per-action override (`role` writable on `new` and read-only on `edit`, `age` the other way) decides what `new` and `edit` store; MongoDB shows each case. +- `listable-alone`: a field that is only `@Listable` never appears in a response, and a route that skips the mandatory check still runs the validators. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/crud.md b/.agents/skills/verify-interface/features/crud.md index 2d18bf6..e0c9f5e 100644 --- a/.agents/skills/verify-interface/features/crud.md +++ b/.agents/skills/verify-interface/features/crud.md @@ -2,6 +2,7 @@ covers: - src/index.ts - src/internal/controller-types.ts + - src/internal/properties.ts docs: - README.md - docs/1.introduction.md @@ -11,6 +12,8 @@ journeys: - crud-lifecycle - crud-errors - crud-subset + - new-row-shape + - edit-setters --- # crud @@ -22,6 +25,8 @@ A client calls the five default routes of a data controller and the table follow - `crud-lifecycle`: `new`, `get`, `edit` and `delete` on the `users` controller change exactly the rows they name: the write-only password is stored but never answered, the age allowed on `new` is stored, an edit keeps the fields it was not sent, and a delete of two ids and one that does not exist leaves every other row; MongoDB shows each write. - `crud-errors`: `Missing id.` (400), `Not Found` (404), `Invalid JSON body.` and `The request body must be a JSON object.` (400) on every route that reads them, a delete of an unknown id answers 200, and no refused request writes a row. - `crud-subset`: a controller that declares only `get`, `list` and `new` answers 404 on `edit` and `delete`; `WithOptions(Edit, options, "patch")` serves under `patch` and not under its key; a controller derived with `Controller("/staff", UserAPI)` reads through the inherited model reference. +- `new-row-shape`: `new` answers its `_id` on a controller whose `_id` has no `@Access`, starts from the defaults the controller class declares, and runs every writable setter, with `undefined` for a field absent from the body. +- `edit-setters`: `edit` runs the setters of the fields present in the body and no other, and the class defaults do not overwrite stored fields. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/filters.md b/.agents/skills/verify-interface/features/filters.md index 4e41c52..97aee41 100644 --- a/.agents/skills/verify-interface/features/filters.md +++ b/.agents/skills/verify-interface/features/filters.md @@ -1,12 +1,14 @@ --- covers: - src/internal/default-filter.ts + - src/internal/list.ts - src/internal/filters.ts docs: - docs/8.filters.md journeys: - default-filter - custom-filters + - filter-details --- # filters @@ -17,6 +19,7 @@ A list request filters rows through `@Filter` query parameters. - `default-filter`: `filter_=` and `:` with `eq`, `ne`, `gt`, `ge`, `lt`, `le`, several fields at once, the `eq:` prefix for a value that holds a colon, a parameter that names no filter is ignored, and an unknown operator answers the 400 message that lists the operators. - `custom-filters`: a custom function parses its own value (numbers with `gt`/`ge`/`lt`, the same field twice is an AND, `Invalid number` is a 400), a domain filter escapes its value and refuses other operators, and a mandatory route filter wins on its field while the request filters on the other fields still apply. +- `filter-details`: an indexed field filtered twice applies both filters, a filter function receives the controller as `context.this`, a custom filter with `useIndex` unset runs its function, and the default filter compares strings. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/foreign.md b/.agents/skills/verify-interface/features/foreign.md index 59d057a..abafb88 100644 --- a/.agents/skills/verify-interface/features/foreign.md +++ b/.agents/skills/verify-interface/features/foreign.md @@ -7,6 +7,8 @@ docs: journeys: - foreign-resolve - foreign-raw + - edit-answers-foreign + - issue-93-multi-foreign --- # foreign @@ -17,6 +19,8 @@ A field that holds a key of another table answers the record it points to. - `foreign-resolve`: `@Foreign` answers the referenced record in place of the key: with `pluck`, through a secondary `index`, by table name, across schemas, and as an array (`multi`); a key that matches nothing answers `null`. - `foreign-raw`: the `noForeign` route option answers the raw keys of single references on a get and on a list. +- `edit-answers-foreign`: `edit` answers the stored record with its foreign fields resolved. +- `issue-93-multi-foreign`: fails on purpose until [#93](https://github.com/AntelopeJS/interface-data-api/issues/93) is fixed: a multi reference answers `null` for a missing element and raw ids with `noForeign`. ## How to get to it (user POV) @@ -32,4 +36,4 @@ Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project ## Gotchas -- Two documented behaviours of multi references fail on head and are not asserted: a missing element answers `{}` and not `null`, and `noForeign` answers character-index objects and not the raw ids. Both are drafted as issues. +- A missing element of a multi reference answers `{}` and `noForeign` spreads its ids into character-index objects: [#93](https://github.com/AntelopeJS/interface-data-api/issues/93), driven by `issue-93-multi-foreign`. diff --git a/.agents/skills/verify-interface/features/guards.md b/.agents/skills/verify-interface/features/guards.md index 74d3437..2929bb9 100644 --- a/.agents/skills/verify-interface/features/guards.md +++ b/.agents/skills/verify-interface/features/guards.md @@ -7,6 +7,7 @@ journeys: - get-guard - amend-body - custom-route + - guard-semantics --- # guards @@ -18,6 +19,7 @@ A module guards a read, amends a body or adds a route beyond CRUD. - `get-guard`: `DefaultRoutes.WithGetGuard` denies a read by throwing (the stored discriminator never appears in the answer), a missing row answers 404 without the guard, and a plain `get` route is not guarded. - `amend-body`: a route that wraps `new`, parses the body with `Validation.ParseBody` and stamps a field stores the stamped value, while the plain `new` stores what was sent. - `custom-route`: a route declared with `func`, `args` and `method` is served next to the defaults. +- `guard-semantics`: `WithGetGuard` allows the read on a normal return even of `false`, runs with the controller as `this` and the parsed Get parameters, runs for a stored row, and is skipped for a missing one (404). ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/listing.md b/.agents/skills/verify-interface/features/listing.md index 0678ceb..be01fb5 100644 --- a/.agents/skills/verify-interface/features/listing.md +++ b/.agents/skills/verify-interface/features/listing.md @@ -8,6 +8,7 @@ journeys: - pluck-modes - pagination - sorting + - issue-92-getter-mode --- # listing @@ -19,6 +20,7 @@ A client pages, sorts and narrows the rows of a table through `GET /resource/lis - `pluck-modes`: the default list mode answers the listable fields with read access, a `detailed` mode answers its own fields and does not inherit the default ones, a field can be left out of a mode, a field that is not listable is still read by `get`, and a getter lists the database fields it reads. - `pagination`: a list answers `results`, `total`, `offset` and `limit`; `limit` and `offset` page the rows, the last page is short, the default is 10 and a route without `maxPage` caps `limit` at 100. - `sorting`: `sortKey` and `sortDirection` sort on indexed and non-indexed `@Sortable` fields, any other direction sorts ascending, and a field without `@Sortable` answers `Field is not sortable.`. +- `issue-92-getter-mode`: fails on purpose until [#92](https://github.com/AntelopeJS/interface-data-api/issues/92) is fixed: a getter that a list mode does not declare is left out of that mode. ## How to get to it (user POV) @@ -34,4 +36,4 @@ Each journey compiles the consumer in `fixture/shop.ts.txt`, starts `ajs project ## Gotchas -- `/people/brief` lists a getter that only the default mode declares; it is not asserted, see the issue draft named in the pull request. +- `/people/brief` lists a getter that only the default mode declares: [#92](https://github.com/AntelopeJS/interface-data-api/issues/92), driven by `issue-92-getter-mode`. diff --git a/.agents/skills/verify-interface/features/route-options.md b/.agents/skills/verify-interface/features/route-options.md index 890e52f..00731e5 100644 --- a/.agents/skills/verify-interface/features/route-options.md +++ b/.agents/skills/verify-interface/features/route-options.md @@ -6,6 +6,8 @@ docs: - docs/3.routes.md journeys: - option-overrides + - list-unknown + - issue-90-edit-index --- # route-options @@ -15,6 +17,8 @@ A route is customized with `DefaultRoutes.WithOptions`; its options win over the ## Sub-features - `option-overrides`: `maxPage` caps the `limit` of a query and is the page size without one, `noMandatory` as a route option lets a mandatory field be cleared while the plain route refuses it, any non-empty string (`"false"` included) turns the option on, `index` reads through a secondary index, `noPluck` still answers only readable fields, and a `pluckMode` no field declares answers `No fields found for pluckMode 'nothing'`. +- `list-unknown`: a list route with `noPluck` answers 200 for a `pluckMode` no field declares, and a URL no route matches answers 404. +- `issue-90-edit-index`: fails on purpose until [#90](https://github.com/AntelopeJS/interface-data-api/issues/90) is fixed: an `edit` with the `index` option updates the row the index found. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/validation.md b/.agents/skills/verify-interface/features/validation.md index 9df6c34..978deb7 100644 --- a/.agents/skills/verify-interface/features/validation.md +++ b/.agents/skills/verify-interface/features/validation.md @@ -2,6 +2,7 @@ covers: - src/internal/validation.ts - src/internal/guards.ts + - src/components.ts docs: - docs/5.validators.md journeys: diff --git a/.agents/skills/verify-interface/fixture/shop.ts.txt b/.agents/skills/verify-interface/fixture/shop.ts.txt index 964f455..ff6c04d 100644 --- a/.agents/skills/verify-interface/fixture/shop.ts.txt +++ b/.agents/skills/verify-interface/fixture/shop.ts.txt @@ -606,6 +606,106 @@ class _DocumentAPI extends DataController( declare source: string; } +@RegisterTable("probes", SCHEMA) +class ProbeRow extends Table { + declare _id: string; + + @Index() + @Field("string") + declare kind: string; + + @Field("string") + declare title: string; + + @Field("string") + declare origin: string; + + @Field("string") + declare trace: string; + + @Index() + @Field("string") + declare tag: string; + + @Field("number") + declare score: number; +} +class ProbeModel extends BasicDataModel(ProbeRow, "probes") {} + +const lenientGuard = DefaultRoutes.WithGetGuard(function (this: DataControllerInstance) { + return Promise.resolve(false) as unknown as Promise; +}); + +const ownedGuard = DefaultRoutes.WithGetGuard(function (this: DataControllerInstance) { + assert(this instanceof _ProbeAPI, 500, "guard without the controller"); +}); + +const paramsGuard = DefaultRoutes.WithGetGuard(function (_ctx, _current, params) { + assert(params.id === "p1", 500, "guard without the parsed parameters"); +}); + +const alwaysThrowsGuard = DefaultRoutes.WithGetGuard(function () { + assert(false, 500, "the guard ran"); +}); + +const titleThisFilter: FilterFunction> = (context, proxy, _key, raw) => + proxy.eq(context.this instanceof _ProbeAPI ? raw : "__no_controller__"); + +const upperTagFilter: FilterFunction> = (_context, proxy, _key, raw) => proxy.eq(raw.toUpperCase()); + +@RegisterDataController() +class _ProbeAPI extends DataController( + ProbeRow, + { + ...DefaultRoutes.All, + lenient: lenientGuard, + owned: ownedGuard, + withParams: paramsGuard, + alwaysThrows: alwaysThrowsGuard, + plain: DefaultRoutes.WithOptions(DefaultRoutes.List, { pluckMode: "nothing", noPluck: true }), + slugEdit: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { index: "tag" }), + }, + Controller("/probes"), +) { + @ModelReference() + @Model(ProbeModel) + declare probeModel: ProbeModel; + + @Listable() + @Access(AccessMode.ReadWrite) + @Filter() + declare kind: string; + + @Listable() + @Access(AccessMode.ReadWrite) + @Filter(titleThisFilter, false) + declare title: string; + + @Listable() + @Access(AccessMode.ReadWrite) + @Filter(upperTagFilter) + declare tag: string; + + @Listable() + @Access(AccessMode.ReadWrite) + @Filter() + declare score: number; + + @Listable() + @Access(AccessMode.ReadOnly) + origin = "class-default"; + + @Listable() + @Access(AccessMode.ReadOnly) + declare trace: string; + + @Access(AccessMode.WriteOnly) + set mark(value: string | undefined) { + const row: unknown = Reflect.get(this, "table"); + if (typeof row === "object" && row !== null) Reflect.set(row, "trace", value === undefined ? "setter-ran-for-absent" : `mark:${value}`); + } +} + export async function construct(): Promise { await RegisterSchema(AUTH_SCHEMA); await RegisterSchema(SCHEMA); diff --git a/.agents/skills/verify-interface/journeys-probe.ts b/.agents/skills/verify-interface/journeys-probe.ts new file mode 100644 index 0000000..8325c71 --- /dev/null +++ b/.agents/skills/verify-interface/journeys-probe.ts @@ -0,0 +1,133 @@ +import { equal } from "@antelopejs/tooling-configs/verify"; + +import { holds, keysOf, pick, results, seed, shopJourney, status, stored, text } from "./harness.ts"; +import { ORDERS, PROBES, USERS } from "./seeds.ts"; + +const guardSemantics = shopJourney("a get guard allows on a normal return, runs with the controller and the parsed parameters, and is skipped for a missing row", async (shop) => { + const { context } = shop; + await seed(shop, PROBES); + const lenient = await shop.request("a guard that returns false", "GET", "/probes/lenient?id=p1"); + context.expect(lenient.folder, [status(lenient, 200, "a normal return allows the read, even a return value of false")]); + const owned = await shop.request("a guard that reads this", "GET", "/probes/owned?id=p1"); + context.expect(owned.folder, [status(owned, 200, "the guard runs with the controller as this")]); + const withParams = await shop.request("a guard that reads params", "GET", "/probes/withParams?id=p1"); + context.expect(withParams.folder, [status(withParams, 200, "the guard receives the parsed Get parameters")]); + const other = await shop.request("the same guard on another row", "GET", "/probes/withParams?id=p2"); + context.expect(other.folder, [status(other, 500, "the guard sees the id of the request")]); + const ran = await shop.request("a guard that always throws, on a stored row", "GET", "/probes/alwaysThrows?id=p1"); + context.expect(ran.folder, [status(ran, 500, "the guard runs for a stored row")]); + const missing = await shop.request("the same guard on a missing row", "GET", "/probes/alwaysThrows?id=nope"); + context.expect(missing.folder, [status(missing, 404, "a missing record skips the guard"), equal("the answer is the route's own", missing.body, "Not Found")]); +}); + +const newRowContents = shopJourney("new answers _id when get does not read it, starts from the class defaults and runs every writable setter", async (shop) => { + const { context } = shop; + await seed(shop, PROBES); + const absent = await shop.request("new without the setter field", "POST", "/probes/new", { body: '{"kind":"c","title":"Three"}' }); + const id = text(pick(absent.json, "_id")); + context.expect(absent.folder, [status(absent, 200), equal("new answers an _id though no @Access reads it", id.length > 0, true)]); + const getBody = await shop.request("get the created row", "GET", `/probes/get?id=${id}`); + context.expect(getBody.folder, [equal("get does not read _id here", keysOf(getBody.json).includes("_id"), false)]); + const row = await stored(shop, "read the created row", "verify__probes", '{ kind: "c" }'); + context.expect(row.folder, [ + equal("the row starts from the class default of a read-only field", pick(row.rows[0] ?? null, "origin"), "class-default"), + equal("the setter ran with undefined for the absent field", pick(row.rows[0] ?? null, "trace"), "setter-ran-for-absent"), + equal("the row is the one new answered", pick(row.rows[0] ?? null, "_id"), id), + ]); + const given = await shop.request("new with the setter field", "POST", "/probes/new", { body: '{"kind":"d","title":"Four","mark":"x"}' }); + context.expect(given.folder, [status(given, 200)]); + const second = await stored(shop, "read the second created row", "verify__probes", '{ kind: "d" }'); + context.expect(second.folder, [equal("the setter ran with the sent value", pick(second.rows[0] ?? null, "trace"), "mark:x")]); +}); + +const editSetters = shopJourney("edit runs the setters of the fields present in the body and no other", async (shop) => { + const { context } = shop; + await seed(shop, PROBES); + const without = await shop.request("edit without the setter field", "PUT", "/probes/edit?id=p1", { body: '{"title":"One2"}' }); + context.expect(without.folder, [status(without, 200)]); + const kept = await stored(shop, "read p1", "verify__probes", '{ _id: "p1" }'); + context.expect(kept.folder, [equal("a setter absent from the body does not run", pick(kept.rows[0] ?? null, "trace"), "seed"), equal("the title was written", pick(kept.rows[0] ?? null, "title"), "One2")]); + const withField = await shop.request("edit with the setter field", "PUT", "/probes/edit?id=p1", { body: '{"mark":"y"}' }); + context.expect(withField.folder, [status(withField, 200)]); + const ran = await stored(shop, "read p1 again", "verify__probes", '{ _id: "p1" }'); + context.expect(ran.folder, [equal("a setter present in the body runs with its value", pick(ran.rows[0] ?? null, "trace"), "mark:y"), equal("the class default does not overwrite a stored field on edit", pick(ran.rows[0] ?? null, "origin"), "seed")]); +}); + +const filterDetails = shopJourney("filters on an indexed field, with the controller as this, with no index for a custom filter, and with string values", async (shop) => { + const { context } = shop; + await seed(shop, PROBES); + const twice = await shop.request("an indexed field filtered twice", "GET", "/probes/list?filter_kind=a&filter_kind=ne:a"); + context.expect(twice.folder, [status(twice, 200), equal("both filters apply: an indexed equality uses its index only when it is the only filter", pick(twice.json, "total"), 0)]); + const once = await shop.request("an indexed field filtered once", "GET", "/probes/list?filter_kind=a"); + context.expect(once.folder, [equal("a single indexed equality returns its row", pick(once.json, "total"), 1)]); + const byThis = await shop.request("a filter that reads this", "GET", "/probes/list?filter_title=Two"); + context.expect(byThis.folder, [equal("the filter context holds the controller as this", pick(byThis.json, "total"), 1)]); + const custom = await shop.request("a custom filter on an indexed field", "GET", "/probes/list?filter_tag=a"); + context.expect(custom.folder, [equal("a custom filter with useIndex unset runs its function, not an index lookup on the raw value", pick(custom.json, "total"), 1)]); + const strings = await shop.request("the default filter on a number", "GET", "/probes/list?filter_score=5"); + context.expect(strings.folder, [status(strings, 200), equal("filter values stay strings, so a stored number does not match", pick(strings.json, "total"), 0)]); +}); + +const listUnknown = shopJourney("a list route with noPluck answers for a mode no field declares, and an unknown route answers 404", async (shop) => { + const { context } = shop; + await seed(shop, PROBES); + const plain = await shop.request("noPluck with a mode nobody declares", "GET", "/probes/plain"); + context.expect(plain.folder, [status(plain, 200, "noPluck skips the pluck-mode check"), equal("every row is listed", results(plain).length, 2)]); + const unknown = await shop.request("a URL no route matches", "GET", "/users/nothing"); + context.expect(unknown.folder, [status(unknown, 404)]); +}); + +const listableAlone = shopJourney("a field that is only @Listable is never answered, and a skipped mandatory check still runs the validators", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const list = await shop.request("list", "GET", "/users/list"); + context.expect(list.folder, [equal("@Listable alone grants no access", results(list).some((row) => keysOf(row).includes("secretNote")), false)]); + const invalid = await shop.request("quickEdit with an invalid email", "PUT", "/users/quickEdit?id=u1", { body: '{"email":"not-an-email"}' }); + context.expect(invalid.folder, [status(invalid, 400), equal("noMandatory leaves the validators on", invalid.json, { code: "invalid_field_types", fields: ["email"] })]); +}); + +const editAnswersForeign = shopJourney("edit answers the stored record with its foreign fields resolved", async (shop) => { + const { context } = shop; + await seed(shop, ORDERS); + const edited = await shop.request("edit an order", "PUT", "/orders/edit?id=o1", { body: '{"total":100}' }); + context.expect(edited.folder, [status(edited, 200), ...holds(edited, { total: 100, userId: { _id: "u1", name: "Alice", email: "alice@example.com" } })]); +}); + +const issue90 = shopJourney("fails on purpose until #90 is fixed: edit with the index option updates the row the index found", async (shop) => { + const { context } = shop; + await seed(shop, PROBES); + const edited = await shop.request("edit p1 by its tag", "PUT", "/probes/slugEdit?id=A", { body: '{"title":"New"}' }); + context.expect(edited.folder, [status(edited, 200), equal("#90: the response shows the new title", pick(edited.json, "title"), "New")]); + const row = await stored(shop, "read p1", "verify__probes", '{ _id: "p1" }'); + context.expect(row.folder, [equal("#90: the row found through the index holds the new title", pick(row.rows[0] ?? null, "title"), "New")]); +}); + +const issue92 = shopJourney("fails on purpose until #92 is fixed: a getter that a list mode does not declare is left out of it", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const brief = await shop.request("people in the brief mode", "GET", "/people/brief"); + context.expect(brief.folder, [status(brief, 200), equal("#92: the brief mode lists only _id", keysOf(results(brief)[0] ?? null), ["_id"])]); +}); + +const issue93 = shopJourney("fails on purpose until #93 is fixed: a multi reference answers null for a missing element and raw ids with noForeign", async (shop) => { + const { context } = shop; + await seed(shop, `${ORDERS}\nd.verify__orders.insertOne({ _id: "o3", items: [], itemsAll: ["i1", "ghost"], labels: [], total: 1 });`); + const resolved = await shop.request("an order with a missing element", "GET", "/orders/get?id=o3"); + const items = pick(resolved.json, "itemsAll"); + context.expect(resolved.folder, [status(resolved, 200), equal("#93: the missing element is null", Array.isArray(items) ? items[1] : "not an array", null)]); + const raw = await shop.request("the same order with noForeign", "GET", "/orders/raw?id=o3"); + context.expect(raw.folder, [equal("#93: noForeign answers the raw ids of a multi reference", pick(raw.json, "itemsAll"), ["i1", "ghost"])]); +}); + +export const PROBE_JOURNEYS = { + "guard-semantics": guardSemantics, + "new-row-shape": newRowContents, + "edit-setters": editSetters, + "filter-details": filterDetails, + "list-unknown": listUnknown, + "listable-alone": listableAlone, + "edit-answers-foreign": editAnswersForeign, + "issue-90-edit-index": issue90, + "issue-92-getter-mode": issue92, + "issue-93-multi-foreign": issue93, +}; diff --git a/.agents/skills/verify-interface/seeded-breaks/validation.patch b/.agents/skills/verify-interface/seeded-breaks/validation.patch index c210cd4..6ea628a 100644 --- a/.agents/skills/verify-interface/seeded-breaks/validation.patch +++ b/.agents/skills/verify-interface/seeded-breaks/validation.patch @@ -1,15 +1,11 @@ diff --git a/src/components.ts b/src/components.ts -index 96c65d8..e4e83c0 100644 --- a/src/components.ts +++ b/src/components.ts -@@ -497,9 +497,7 @@ export namespace Validation { - [action: string]: typeof isAbsentFromBody; +@@ -571,7 +571,6 @@ + invalid.push(name); + } + } +- rejectFields(INVALID_FIELD_TYPES, invalid); + return parsed; } -- const MISSING_MANDATORY_FIELD_CHECKS: MissingFieldChecks = { -- edit: isClearedByBody, -- }; -+ const MISSING_MANDATORY_FIELD_CHECKS: MissingFieldChecks = {}; - - /** The `code` of a 400 naming the mandatory fields a body lacks. */ - export const MISSING_MANDATORY_FIELDS = "missing_mandatory_fields"; diff --git a/.agents/skills/verify-interface/seeds.ts b/.agents/skills/verify-interface/seeds.ts index 17360c7..9218872 100644 --- a/.agents/skills/verify-interface/seeds.ts +++ b/.agents/skills/verify-interface/seeds.ts @@ -34,3 +34,9 @@ d.verify__devices.insertMany([{ _id: "d1", group_id: "g1" }, { _id: "d2", group_ /** An invoice and a memo in the table the guarded route reads. */ export const DOCUMENTS = `d.verify__documents.insertMany([{ _id: "x1", title: "Bill", documentType: "invoice" }, { _id: "x2", title: "Memo", documentType: "memo" }]);`; + +/** Two probe rows: a kind, a title, an upper-case tag, a numeric score, and a trace the setter overwrites. */ +export const PROBES = `d.verify__probes.insertMany([ + { _id: "p1", kind: "a", title: "One", origin: "seed", trace: "seed", tag: "A", score: 5 }, + { _id: "p2", kind: "b", title: "Two", origin: "seed", trace: "seed", tag: "B", score: 7 }, +]);`; diff --git a/.agents/skills/verify-interface/verify.config.ts b/.agents/skills/verify-interface/verify.config.ts index 4540c7a..d245204 100644 --- a/.agents/skills/verify-interface/verify.config.ts +++ b/.agents/skills/verify-interface/verify.config.ts @@ -2,6 +2,7 @@ import { Controller } from "@antelopejs/interface-api"; import type { VerifyConfig } from "@antelopejs/tooling-configs/verify"; import type * as DataApi from "../../../src/index.ts"; +import { PROBE_JOURNEYS } from "./journeys-probe.ts"; import { READ_JOURNEYS } from "./journeys-read.ts"; import { WRITE_JOURNEYS } from "./journeys-write.ts"; @@ -106,7 +107,7 @@ const config: VerifyConfig = { ), }, }, - journeys: { ...WRITE_JOURNEYS, ...READ_JOURNEYS }, + journeys: { ...WRITE_JOURNEYS, ...READ_JOURNEYS, ...PROBE_JOURNEYS }, }; export default config; From 3202e20c047a51f7d99d6e35a101be7ddeb1a147 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Wed, 4 Nov 2026 05:08:37 +0100 Subject: [PATCH 29/36] feat(skills): sweep the string options and per-action overrides and fix the validation break --- .../verify-interface/features/access.md | 2 + .../skills/verify-interface/features/crud.md | 4 + .../verify-interface/features/foreign.md | 5 +- .../features/route-options.md | 5 + .../verify-interface/features/validation.md | 2 - .../verify-interface/fixture/shop.ts.txt | 50 ++++++++- .../skills/verify-interface/journeys-probe.ts | 102 +++++++++++++++++- .../skills/verify-interface/journeys-write.ts | 2 + .agents/skills/verify-interface/seeds.ts | 6 ++ 9 files changed, 168 insertions(+), 10 deletions(-) diff --git a/.agents/skills/verify-interface/features/access.md b/.agents/skills/verify-interface/features/access.md index 2d7bfdf..7d60a5d 100644 --- a/.agents/skills/verify-interface/features/access.md +++ b/.agents/skills/verify-interface/features/access.md @@ -7,6 +7,7 @@ docs: journeys: - access-modes - listable-alone + - read-overrides --- # access @@ -17,6 +18,7 @@ journeys: - `access-modes`: a write-only field is never answered and is stored, a field with no `@Access` is never answered and never written, a read-only field is answered and ignored in a body, and a per-action override (`role` writable on `new` and read-only on `edit`, `age` the other way) decides what `new` and `edit` store; MongoDB shows each case. - `listable-alone`: a field that is only `@Listable` never appears in a response, and a route that skips the mandatory check still runs the validators. +- `read-overrides`: `@Access(mode, { get, list })` hides a field on one action and grants it on the other, in both directions (readable by default and write-only on an action, write-only by default and read-only on an action), `new` writes a write-only field, and `GetEffectiveMode` answers what the routes apply. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/crud.md b/.agents/skills/verify-interface/features/crud.md index e0c9f5e..97eadbb 100644 --- a/.agents/skills/verify-interface/features/crud.md +++ b/.agents/skills/verify-interface/features/crud.md @@ -14,6 +14,8 @@ journeys: - crud-subset - new-row-shape - edit-setters + - edit-answers-foreign + - unstorable-body --- # crud @@ -27,6 +29,8 @@ A client calls the five default routes of a data controller and the table follow - `crud-subset`: a controller that declares only `get`, `list` and `new` answers 404 on `edit` and `delete`; `WithOptions(Edit, options, "patch")` serves under `patch` and not under its key; a controller derived with `Controller("/staff", UserAPI)` reads through the inherited model reference. - `new-row-shape`: `new` answers its `_id` on a controller whose `_id` has no `@Access`, starts from the defaults the controller class declares, and runs every writable setter, with `undefined` for a field absent from the body. - `edit-setters`: `edit` runs the setters of the fields present in the body and no other, and the class defaults do not overwrite stored fields. +- `edit-answers-foreign`: `edit` answers the stored record with its foreign fields resolved. +- `unstorable-body`: a route that hands `Validation.ParseBody` a parsed body holding a `bigint` answers 400 and writes nothing. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/foreign.md b/.agents/skills/verify-interface/features/foreign.md index abafb88..5ea1553 100644 --- a/.agents/skills/verify-interface/features/foreign.md +++ b/.agents/skills/verify-interface/features/foreign.md @@ -2,13 +2,14 @@ covers: - src/internal/foreign.ts - src/internal/table-reference.ts + - src/index.ts docs: - docs/7.foreign-keys.md journeys: - foreign-resolve - foreign-raw - - edit-answers-foreign - issue-93-multi-foreign + - no-foreign-strings --- # foreign @@ -19,8 +20,8 @@ A field that holds a key of another table answers the record it points to. - `foreign-resolve`: `@Foreign` answers the referenced record in place of the key: with `pluck`, through a secondary `index`, by table name, across schemas, and as an array (`multi`); a key that matches nothing answers `null`. - `foreign-raw`: the `noForeign` route option answers the raw keys of single references on a get and on a list. -- `edit-answers-foreign`: `edit` answers the stored record with its foreign fields resolved. - `issue-93-multi-foreign`: fails on purpose until [#93](https://github.com/AntelopeJS/interface-data-api/issues/93) is fixed: a multi reference answers `null` for a missing element and raw ids with `noForeign`. +- `no-foreign-strings`: the Get `noForeign` option skips resolving for any non-empty string, `"false"` included, and not for `""` or when absent; the List option is a boolean. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/route-options.md b/.agents/skills/verify-interface/features/route-options.md index 00731e5..46f91df 100644 --- a/.agents/skills/verify-interface/features/route-options.md +++ b/.agents/skills/verify-interface/features/route-options.md @@ -2,12 +2,15 @@ covers: - src/components.ts - src/internal/extractors.ts + - src/index.ts docs: - docs/3.routes.md journeys: - option-overrides - list-unknown - issue-90-edit-index + - no-mandatory-strings + - no-pluck-strings --- # route-options @@ -19,6 +22,8 @@ A route is customized with `DefaultRoutes.WithOptions`; its options win over the - `option-overrides`: `maxPage` caps the `limit` of a query and is the page size without one, `noMandatory` as a route option lets a mandatory field be cleared while the plain route refuses it, any non-empty string (`"false"` included) turns the option on, `index` reads through a secondary index, `noPluck` still answers only readable fields, and a `pluckMode` no field declares answers `No fields found for pluckMode 'nothing'`. - `list-unknown`: a list route with `noPluck` answers 200 for a `pluckMode` no field declares, and a URL no route matches answers 404. - `issue-90-edit-index`: fails on purpose until [#90](https://github.com/AntelopeJS/interface-data-api/issues/90) is fixed: an `edit` with the `index` option updates the row the index found. +- `no-mandatory-strings`: `noMandatory` skips the mandatory check for any non-empty string, `"false"` included, on `edit` and on `new`, and not for `""` or when absent. +- `no-pluck-strings`: `noPluck` skips the pluck-mode check only when true. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/validation.md b/.agents/skills/verify-interface/features/validation.md index 978deb7..883a1a7 100644 --- a/.agents/skills/verify-interface/features/validation.md +++ b/.agents/skills/verify-interface/features/validation.md @@ -8,7 +8,6 @@ docs: journeys: - mandatory-and-validators - parsed-values - - unstorable-body - error-codes --- @@ -20,7 +19,6 @@ journeys: - `mandatory-and-validators`: a body missing mandatory fields answers `{ code: "missing_mandatory_fields", fields }` with every field, the mandatory check runs before the validators, invalid values answer `{ code: "invalid_field_types", fields }` with every failing field (a sync regex, a range and an async validator), a refused write stores nothing, an edit keeps a mandatory field absent from the body and refuses one cleared with `""` or `null`. - `parsed-values`: a validator that returns a zod-style parse result makes `new` and `edit` store the parsed `Date`, and a failed parse answers the invalid-types body. -- `unstorable-body`: a route that hands `Validation.ParseBody` a parsed body holding a `bigint` answers 400 and writes nothing. - `error-codes`: the packed `components` entry exports `Validation.MISSING_MANDATORY_FIELDS` and `Validation.INVALID_FIELD_TYPES` with the codes the bodies carry. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/fixture/shop.ts.txt b/.agents/skills/verify-interface/fixture/shop.ts.txt index ff6c04d..fb33221 100644 --- a/.agents/skills/verify-interface/fixture/shop.ts.txt +++ b/.agents/skills/verify-interface/fixture/shop.ts.txt @@ -139,6 +139,10 @@ const userDeclarationErrors = (): string[] => { const UserExtras = { quickEdit: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { noMandatory: "true" }), falseSkip: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { noMandatory: "false" }), + emptySkip: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { noMandatory: "" }), + newSkip: DefaultRoutes.WithOptions(DefaultRoutes.New, { noMandatory: "true" }), + newSkipFalse: DefaultRoutes.WithOptions(DefaultRoutes.New, { noMandatory: "false" }), + newSkipEmpty: DefaultRoutes.WithOptions(DefaultRoutes.New, { noMandatory: "" }), detailed: DefaultRoutes.WithOptions(DefaultRoutes.List, { pluckMode: "detailed" }), minimal: DefaultRoutes.WithOptions(DefaultRoutes.List, { pluckMode: "minimal" }), capped: DefaultRoutes.WithOptions(DefaultRoutes.List, { maxPage: 3 }), @@ -335,7 +339,7 @@ class OrderModel extends BasicDataModel(Order, "orders") {} @RegisterDataController() class _OrderAPI extends DataController( Order, - { ...DefaultRoutes.All, raw: DefaultRoutes.WithOptions(DefaultRoutes.Get, { noForeign: "true" }), rawList: DefaultRoutes.WithOptions(DefaultRoutes.List, { noForeign: true }) }, + { ...DefaultRoutes.All, raw: DefaultRoutes.WithOptions(DefaultRoutes.Get, { noForeign: "true" }), rawList: DefaultRoutes.WithOptions(DefaultRoutes.List, { noForeign: true }), rawFalse: DefaultRoutes.WithOptions(DefaultRoutes.Get, { noForeign: "false" }), rawEmpty: DefaultRoutes.WithOptions(DefaultRoutes.Get, { noForeign: "" }), listForeignFalse: DefaultRoutes.WithOptions(DefaultRoutes.List, { noForeign: false }) }, Controller("/orders"), ) { @ModelReference() @@ -578,7 +582,7 @@ const unstorableNew = { ...DefaultRoutes.New, func: function (this: DataControllerInstance, ctx: RequestContext, params: Parameters.NewParameters, body: Buffer) { const parsed = Validation.ParseBody(body); - Reflect.set(parsed, "title", BigInt(1)); + Reflect.set(parsed, "title", () => 1); return DefaultRoutes.New.func.call(this, ctx, params, parsed); }, }; @@ -663,6 +667,7 @@ class _ProbeAPI extends DataController( withParams: paramsGuard, alwaysThrows: alwaysThrowsGuard, plain: DefaultRoutes.WithOptions(DefaultRoutes.List, { pluckMode: "nothing", noPluck: true }), + plainFalse: DefaultRoutes.WithOptions(DefaultRoutes.List, { pluckMode: "nothing", noPluck: false }), slugEdit: DefaultRoutes.WithOptions(DefaultRoutes.Edit, { index: "tag" }), }, Controller("/probes"), @@ -706,6 +711,47 @@ class _ProbeAPI extends DataController( } } +const overrideModes = { + func: function (this: DataControllerInstance) { + const meta = GetDataControllerMeta(this); + const answer: Record> = {}; + for (const field of ["email", "name", "notes", "nickname"]) { + answer[field] = {}; + for (const action of ["get", "list", "new", "edit"]) answer[field][action] = GetEffectiveMode(meta.fields[field], action); + } + return answer; + }, + args: [Context()], + method: "get", +}; + +@RegisterDataController() +class _OverridesAPI extends DataController(User, { get: DefaultRoutes.Get, list: DefaultRoutes.List, new: DefaultRoutes.New, edit: DefaultRoutes.Edit, modes: overrideModes }, Controller("/overrides")) { + @ModelReference() + @Model(UserModel) + declare userModel: UserModel; + + @Listable() + @Access(AccessMode.ReadOnly) + declare _id: string; + + @Listable() + @Access(AccessMode.ReadOnly, { get: AccessMode.WriteOnly }) + declare email: string; + + @Listable() + @Access(AccessMode.ReadOnly, { list: AccessMode.WriteOnly }) + declare name: string; + + @Listable() + @Access(AccessMode.WriteOnly, { get: AccessMode.ReadOnly }) + declare notes: string; + + @Listable() + @Access(AccessMode.WriteOnly, { list: AccessMode.ReadOnly }) + declare nickname: string; +} + export async function construct(): Promise { await RegisterSchema(AUTH_SCHEMA); await RegisterSchema(SCHEMA); diff --git a/.agents/skills/verify-interface/journeys-probe.ts b/.agents/skills/verify-interface/journeys-probe.ts index 8325c71..356164f 100644 --- a/.agents/skills/verify-interface/journeys-probe.ts +++ b/.agents/skills/verify-interface/journeys-probe.ts @@ -1,7 +1,7 @@ import { equal } from "@antelopejs/tooling-configs/verify"; import { holds, keysOf, pick, results, seed, shopJourney, status, stored, text } from "./harness.ts"; -import { ORDERS, PROBES, USERS } from "./seeds.ts"; +import { ORDERS, OVERRIDES, PROBES, USERS } from "./seeds.ts"; const guardSemantics = shopJourney("a get guard allows on a normal return, runs with the controller and the parsed parameters, and is skipped for a missing row", async (shop) => { const { context } = shop; @@ -77,13 +77,11 @@ const listUnknown = shopJourney("a list route with noPluck answers for a mode no context.expect(unknown.folder, [status(unknown, 404)]); }); -const listableAlone = shopJourney("a field that is only @Listable is never answered, and a skipped mandatory check still runs the validators", async (shop) => { +const listableAlone = shopJourney("a field that is only @Listable is never answered", async (shop) => { const { context } = shop; await seed(shop, USERS); const list = await shop.request("list", "GET", "/users/list"); context.expect(list.folder, [equal("@Listable alone grants no access", results(list).some((row) => keysOf(row).includes("secretNote")), false)]); - const invalid = await shop.request("quickEdit with an invalid email", "PUT", "/users/quickEdit?id=u1", { body: '{"email":"not-an-email"}' }); - context.expect(invalid.folder, [status(invalid, 400), equal("noMandatory leaves the validators on", invalid.json, { code: "invalid_field_types", fields: ["email"] })]); }); const editAnswersForeign = shopJourney("edit answers the stored record with its foreign fields resolved", async (shop) => { @@ -93,6 +91,43 @@ const editAnswersForeign = shopJourney("edit answers the stored record with its context.expect(edited.folder, [status(edited, 200), ...holds(edited, { total: 100, userId: { _id: "u1", name: "Alice", email: "alice@example.com" } })]); }); +const readOverrides = shopJourney("a per-action read override hides or grants a field on get and on list, and GetEffectiveMode agrees", async (shop) => { + const { context } = shop; + await seed(shop, OVERRIDES); + const got = await shop.request("get", "GET", "/overrides/get?id=u1"); + const gotKeys = keysOf(got.json); + context.expect(got.folder, [ + status(got, 200), + equal("a get override to write-only hides the field on get", gotKeys.includes("email"), false), + equal("a field readable by default and write-only on list is read on get", pick(got.json, "name"), "Alice"), + equal("a write-only field with a get override to read-only is read on get", pick(got.json, "notes"), "note1"), + equal("a write-only field without a get override stays out of get", gotKeys.includes("nickname"), false), + ]); + const listed = await shop.request("list", "GET", "/overrides/list"); + const first = results(listed).find((row) => pick(row, "_id") === "u1") ?? null; + const listedKeys = keysOf(first); + context.expect(listed.folder, [ + status(listed, 200), + equal("a list override to write-only hides the field on list", listedKeys.includes("name"), false), + equal("a field readable by default and write-only on get is listed", pick(first, "email"), "alice@example.com"), + equal("a write-only field with a list override to read-only is listed", pick(first, "nickname"), "al"), + equal("a write-only field without a list override stays out of list", listedKeys.includes("notes"), false), + ]); + const modes = await shop.request("effective modes", "GET", "/overrides/modes"); + context.expect(modes.folder, [ + ...holds(modes, { + email: { get: 2, list: 1, new: 1, edit: 1 }, + name: { get: 1, list: 2, new: 1, edit: 1 }, + notes: { get: 1, list: 2, new: 2, edit: 2 }, + nickname: { get: 2, list: 1, new: 2, edit: 2 }, + }), + ]); + const created = await shop.request("new reads its own overrides", "POST", "/overrides/new", { body: '{"notes":"fresh","nickname":"nn"}' }); + context.expect(created.folder, [status(created, 200)]); + const row = await stored(shop, "read the created row", "verify__users", '{ notes: "fresh" }'); + context.expect(row.folder, [equal("a write-only field is written on new", pick(row.rows[0] ?? null, "nickname"), "nn")]); +}); + const issue90 = shopJourney("fails on purpose until #90 is fixed: edit with the index option updates the row the index found", async (shop) => { const { context } = shop; await seed(shop, PROBES); @@ -119,6 +154,61 @@ const issue93 = shopJourney("fails on purpose until #93 is fixed: a multi refere context.expect(raw.folder, [equal("#93: noForeign answers the raw ids of a multi reference", pick(raw.json, "itemsAll"), ["i1", "ghost"])]); }); +const noForeignStrings = shopJourney("the Get noForeign option skips resolving for any non-empty string, false included, and the List one is a boolean", async (shop) => { + const { context } = shop; + await seed(shop, ORDERS); + const cases: [string, string, string | { _id: string; name: string; email: string }][] = [ + ["noForeign absent", "/orders/get?id=o1", { _id: "u1", name: "Alice", email: "alice@example.com" }], + ["noForeign true", "/orders/raw?id=o1", "u1"], + ["noForeign the string false", "/orders/rawFalse?id=o1", "u1"], + ["noForeign the empty string", "/orders/rawEmpty?id=o1", { _id: "u1", name: "Alice", email: "alice@example.com" }], + ]; + for (const [name, path, expected] of cases) { + const answer = await shop.request(name, "GET", path); + context.expect(answer.folder, [status(answer, 200), equal(`${name}: userId`, pick(answer.json, "userId"), expected)]); + } + const listTrue = await shop.request("list noForeign true", "GET", "/orders/rawList"); + context.expect(listTrue.folder, [equal("list noForeign true answers the raw key", pick(results(listTrue)[0] ?? null, "userId"), "u1")]); + const listFalse = await shop.request("list noForeign false", "GET", "/orders/listForeignFalse"); + context.expect(listFalse.folder, [equal("list noForeign false resolves", pick(results(listFalse)[0] ?? null, "userId"), { _id: "u1", name: "Alice", email: "alice@example.com" })]); +}); + +const noMandatoryStrings = shopJourney("the noMandatory option skips the mandatory check for any non-empty string, false included, on edit and on new", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const edits: [string, string, number][] = [ + ["edit with noMandatory absent", "/users/edit?id=u1", 400], + ["edit with noMandatory true", "/users/quickEdit?id=u1", 200], + ["edit with noMandatory the string false", "/users/falseSkip?id=u2", 200], + ["edit with noMandatory the empty string", "/users/emptySkip?id=u3", 400], + ]; + for (const [name, path, code] of edits) { + const answer = await shop.request(name, "PUT", path, { body: '{"status":null}' }); + context.expect(answer.folder, [status(answer, code)]); + } + const creates: [string, string, number][] = [ + ["new with noMandatory absent", "/users/new", 400], + ["new with noMandatory true", "/users/newSkip", 200], + ["new with noMandatory the string false", "/users/newSkipFalse", 200], + ["new with noMandatory the empty string", "/users/newSkipEmpty", 400], + ]; + for (const [name, path, code] of creates) { + const answer = await shop.request(name, "POST", path, { body: '{"name":"Zed"}' }); + context.expect(answer.folder, [status(answer, code)]); + } + const rows = await stored(shop, "read the users", "verify__users"); + context.expect(rows.folder, [equal("only the two skipped creates wrote a row", rows.rows.length, 7)]); +}); + +const noPluckStrings = shopJourney("the noPluck option skips the pluck-mode check only when it is true", async (shop) => { + const { context } = shop; + await seed(shop, PROBES); + const on = await shop.request("noPluck true", "GET", "/probes/plain"); + context.expect(on.folder, [status(on, 200)]); + const off = await shop.request("noPluck false", "GET", "/probes/plainFalse"); + context.expect(off.folder, [status(off, 400), equal("the mode is checked", off.body, "No fields found for pluckMode 'nothing'")]); +}); + export const PROBE_JOURNEYS = { "guard-semantics": guardSemantics, "new-row-shape": newRowContents, @@ -127,6 +217,10 @@ export const PROBE_JOURNEYS = { "list-unknown": listUnknown, "listable-alone": listableAlone, "edit-answers-foreign": editAnswersForeign, + "read-overrides": readOverrides, + "no-foreign-strings": noForeignStrings, + "no-mandatory-strings": noMandatoryStrings, + "no-pluck-strings": noPluckStrings, "issue-90-edit-index": issue90, "issue-92-getter-mode": issue92, "issue-93-multi-foreign": issue93, diff --git a/.agents/skills/verify-interface/journeys-write.ts b/.agents/skills/verify-interface/journeys-write.ts index b20abf5..1c4d14e 100644 --- a/.agents/skills/verify-interface/journeys-write.ts +++ b/.agents/skills/verify-interface/journeys-write.ts @@ -90,6 +90,8 @@ const crudErrors = shopJourney("a missing id, an unknown record and a bad body a } const unknownDelete = await shop.request("delete an unknown id", "DELETE", "/users/delete?id=ghost"); context.expect(unknownDelete.folder, [status(unknownDelete, 200)]); + const invalid = await shop.request("quickEdit with an invalid email", "PUT", "/users/quickEdit?id=u1", { body: '{"email":"not-an-email"}' }); + context.expect(invalid.folder, [status(invalid, 400), equal("a route that skips the mandatory check still runs the validators", invalid.json, { code: INVALID, fields: ["email"] })]); const rows = await stored(shop, "count the rows", "verify__users"); context.expect(rows.folder, [equal("no failed request wrote anything", rows.rows.length, 5)]); }); diff --git a/.agents/skills/verify-interface/seeds.ts b/.agents/skills/verify-interface/seeds.ts index 9218872..cd56ec9 100644 --- a/.agents/skills/verify-interface/seeds.ts +++ b/.agents/skills/verify-interface/seeds.ts @@ -40,3 +40,9 @@ export const PROBES = `d.verify__probes.insertMany([ { _id: "p1", kind: "a", title: "One", origin: "seed", trace: "seed", tag: "A", score: 5 }, { _id: "p2", kind: "b", title: "Two", origin: "seed", trace: "seed", tag: "B", score: 7 }, ]);`; + +/** Two users whose notes and nickname are stored, for the per-action read overrides. */ +export const OVERRIDES = `d.verify__users.insertMany([ + { _id: "u1", email: "alice@example.com", name: "Alice", password: "p1", notes: "note1", nickname: "al" }, + { _id: "u2", email: "bob@gmail.com", name: "Bob", password: "p2", notes: "note2", nickname: "bo" }, +]);`; From 44ef9f13067595f0b6ee4ca8f321b6e79afa39e4 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Wed, 4 Nov 2026 12:04:55 +0100 Subject: [PATCH 30/36] feat(skills): cover derived controllers, foreign target metadata, declaration throws and option precedence --- .../verify-interface/features/filters.md | 2 + .../verify-interface/features/foreign.md | 2 + .../verify-interface/features/metadata.md | 5 ++ .../features/route-options.md | 4 + .../verify-interface/fixture/shop.ts.txt | 87 +++++++++++++++++++ .../skills/verify-interface/journeys-probe.ts | 66 +++++++++++++- .../skills/verify-interface/journeys-read.ts | 2 +- 7 files changed, 165 insertions(+), 3 deletions(-) diff --git a/.agents/skills/verify-interface/features/filters.md b/.agents/skills/verify-interface/features/filters.md index 97aee41..f12cb6f 100644 --- a/.agents/skills/verify-interface/features/filters.md +++ b/.agents/skills/verify-interface/features/filters.md @@ -9,6 +9,7 @@ journeys: - default-filter - custom-filters - filter-details + - route-filters-list-only --- # filters @@ -20,6 +21,7 @@ A list request filters rows through `@Filter` query parameters. - `default-filter`: `filter_=` and `:` with `eq`, `ne`, `gt`, `ge`, `lt`, `le`, several fields at once, the `eq:` prefix for a value that holds a colon, a parameter that names no filter is ignored, and an unknown operator answers the 400 message that lists the operators. - `custom-filters`: a custom function parses its own value (numbers with `gt`/`ge`/`lt`, the same field twice is an AND, `Invalid number` is a 400), a domain filter escapes its value and refuses other operators, and a mandatory route filter wins on its field while the request filters on the other fields still apply. - `filter-details`: an indexed field filtered twice applies both filters, a filter function receives the controller as `context.this`, a custom filter with `useIndex` unset runs its function, and the default filter compares strings. +- `route-filters-list-only`: a route's forced `filters` constrain the list and not `get`. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/foreign.md b/.agents/skills/verify-interface/features/foreign.md index 5ea1553..9f1269a 100644 --- a/.agents/skills/verify-interface/features/foreign.md +++ b/.agents/skills/verify-interface/features/foreign.md @@ -10,6 +10,7 @@ journeys: - foreign-raw - issue-93-multi-foreign - no-foreign-strings + - foreign-declaration-throws --- # foreign @@ -22,6 +23,7 @@ A field that holds a key of another table answers the record it points to. - `foreign-raw`: the `noForeign` route option answers the raw keys of single references on a get and on a list. - `issue-93-multi-foreign`: fails on purpose until [#93](https://github.com/AntelopeJS/interface-data-api/issues/93) is fixed: a multi reference answers `null` for a missing element and raw ids with `noForeign`. - `no-foreign-strings`: the Get `noForeign` option skips resolving for any non-empty string, `"false"` included, and not for `""` or when absent; the List option is a boolean. +- `foreign-declaration-throws`: `@Foreign` throws at declaration for a schema mismatch between the class and the `schema` parameter, and for a string table name with no class registered in that schema. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/metadata.md b/.agents/skills/verify-interface/features/metadata.md index 9f82e1a..80820f8 100644 --- a/.agents/skills/verify-interface/features/metadata.md +++ b/.agents/skills/verify-interface/features/metadata.md @@ -3,6 +3,7 @@ covers: - src/metadata.ts - src/internal/field-types.ts - src/internal/tables.ts + - src/index.ts docs: - docs/4.access-rights.md - docs/2.data-controllers.md @@ -11,6 +12,8 @@ journeys: - declaration-errors - exports-runtime - consumer-compiles + - derived-own-model + - foreign-target-meta --- # metadata @@ -23,6 +26,8 @@ A module author reads field metadata and declares controllers with the decorator - `declaration-errors`: `DataController` throws `Non-existent Database Schema` for a table class whose schema is not registered. - `exports-runtime`: the packed `metadata` entry exports `AccessMode` as 1, 2 and 3 and `FilterValuesOf`, which reads a single filter and a list of filters as a list. - `consumer-compiles`: a module written from the docs, with every decorator and route helper, compiles in strict mode against the packed declarations. +- `derived-own-model`: a controller derived from another that declares its own `@ModelReference` reads its own model; one that declares none inherits the parent's. +- `foreign-target-meta`: `@Foreign` given the target controller's metadata resolves the target's `@Joined` fields. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/route-options.md b/.agents/skills/verify-interface/features/route-options.md index 46f91df..4d913de 100644 --- a/.agents/skills/verify-interface/features/route-options.md +++ b/.agents/skills/verify-interface/features/route-options.md @@ -11,6 +11,8 @@ journeys: - issue-90-edit-index - no-mandatory-strings - no-pluck-strings + - no-model-500 + - option-beats-query --- # route-options @@ -24,6 +26,8 @@ A route is customized with `DefaultRoutes.WithOptions`; its options win over the - `issue-90-edit-index`: fails on purpose until [#90](https://github.com/AntelopeJS/interface-data-api/issues/90) is fixed: an `edit` with the `index` option updates the row the index found. - `no-mandatory-strings`: `noMandatory` skips the mandatory check for any non-empty string, `"false"` included, on `edit` and on `new`, and not for `""` or when absent. - `no-pluck-strings`: `noPluck` skips the pluck-mode check only when true. +- `no-model-500`: a controller whose model reference holds no model answers 500. +- `option-beats-query`: a route option beats a query parameter of the same name, nested `WithOptions` keep the inner options and endpoint, and the key name is not served when an endpoint renames it. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/fixture/shop.ts.txt b/.agents/skills/verify-interface/fixture/shop.ts.txt index fb33221..ede52ad 100644 --- a/.agents/skills/verify-interface/fixture/shop.ts.txt +++ b/.agents/skills/verify-interface/fixture/shop.ts.txt @@ -133,6 +133,38 @@ const userDeclarationErrors = (): string[] => { } catch (error) { messages.push(error instanceof Error ? error.message : "thrown"); } + try { + class Unheld extends Author {} + DataController(Unheld, {}, Controller("/unheld")); + messages.push("declared"); + } catch (error) { + messages.push(error instanceof Error ? error.message : "thrown"); + } + return messages; +}; + +const foreignDeclarationErrors = (): string[] => { + const messages: string[] = []; + try { + class Mismatch extends DataController(Author, {}, Controller("/mismatch")) { + @Access(AccessMode.ReadOnly) + @Foreign(Account, undefined, false, undefined, SCHEMA) + declare owner: Account; + } + messages.push(Mismatch.name ? "declared" : "declared"); + } catch (error) { + messages.push(error instanceof Error ? error.message : "thrown"); + } + try { + class Ghost extends DataController(Author, {}, Controller("/ghost")) { + @Access(AccessMode.ReadOnly) + @Foreign("ghost", undefined, false, undefined, AUTH_SCHEMA) + declare owner: Account; + } + messages.push(Ghost.name ? "declared" : "declared"); + } catch (error) { + messages.push(error instanceof Error ? error.message : "thrown"); + } return messages; }; @@ -752,6 +784,61 @@ class _OverridesAPI extends DataController(User, { get: DefaultRoutes.Get, list: declare nickname: string; } +@RegisterDataController() +class _OwnModelAPI extends DataController(Author, { get: DefaultRoutes.Get }, Controller("/own-model", _UserAPI)) { + @ModelReference() + @Model(AuthorModel) + declare ownAuthorModel: AuthorModel; + + @Access(AccessMode.ReadOnly) + declare name: string; +} + +@RegisterDataController() +class _NoModelAPI extends DataController(Author, { get: DefaultRoutes.Get }, Controller("/no-model")) { + @ModelReference() + declare missingModel: AuthorModel; + + @Access(AccessMode.ReadOnly) + declare name: string; +} + +@RegisterTable("shelves", SCHEMA) +class Shelf extends Table { + declare _id: string; + + @Field("string") + @Relation({ to: () => Book }) + declare bookId: string; +} +class ShelfModel extends BasicDataModel(Shelf, "shelves") {} + +@RegisterDataController() +class _ShelfAPI extends DataController(Shelf, { get: DefaultRoutes.Get }, Controller("/shelves")) { + @ModelReference() + @Model(ShelfModel) + declare shelfModel: ShelfModel; + + @Access(AccessMode.ReadOnly) + declare _id: string; + + @Access(AccessMode.ReadOnly) + @Foreign(Book, undefined, false, ["title", "authorName"], undefined, GetDataControllerMeta(Object.create(_BookAPI.prototype))) + declare bookId: Book; +} + +@RegisterDataController() +class _OptionRoutesAPI extends DataController( + User, + { + nested: DefaultRoutes.WithOptions(DefaultRoutes.WithOptions(DefaultRoutes.List, { maxPage: 2 }), { pluckMode: "minimal" }), + sorted: DefaultRoutes.WithOptions(DefaultRoutes.List, { sortKey: "name", sortDirection: "desc" }), + nestedEdit: DefaultRoutes.WithOptions(DefaultRoutes.WithOptions(DefaultRoutes.Edit, {}, "patch2"), { noMandatory: "true" }), + foreignDeclarations: { func: foreignDeclarationErrors, args: [], method: "get" }, + }, + Controller("/option-routes", _UserAPI), +) {} + export async function construct(): Promise { await RegisterSchema(AUTH_SCHEMA); await RegisterSchema(SCHEMA); diff --git a/.agents/skills/verify-interface/journeys-probe.ts b/.agents/skills/verify-interface/journeys-probe.ts index 356164f..b6262fd 100644 --- a/.agents/skills/verify-interface/journeys-probe.ts +++ b/.agents/skills/verify-interface/journeys-probe.ts @@ -1,7 +1,7 @@ import { equal } from "@antelopejs/tooling-configs/verify"; -import { holds, keysOf, pick, results, seed, shopJourney, status, stored, text } from "./harness.ts"; -import { ORDERS, OVERRIDES, PROBES, USERS } from "./seeds.ts"; +import { holds, ids, keysOf, pick, results, seed, shopJourney, status, stored, text } from "./harness.ts"; +import { BOOKS, ORDERS, OVERRIDES, PROBES, USERS } from "./seeds.ts"; const guardSemantics = shopJourney("a get guard allows on a normal return, runs with the controller and the parsed parameters, and is skipped for a missing row", async (shop) => { const { context } = shop; @@ -209,6 +209,62 @@ const noPluckStrings = shopJourney("the noPluck option skips the pluck-mode chec context.expect(off.folder, [status(off, 400), equal("the mode is checked", off.body, "No fields found for pluckMode 'nothing'")]); }); +const derivedOwnModel = shopJourney("a derived controller that declares its own model reference reads its own model", async (shop) => { + const { context } = shop; + await seed(shop, BOOKS); + const own = await shop.request("derived controller with its own model", "GET", "/own-model/get?id=au1"); + context.expect(own.folder, [status(own, 200, "the derived controller reads its own model"), equal("the author's name", pick(own.json, "name"), "Zola")]); + const inherited = await shop.request("derived controller without one", "GET", "/staff/get?id=au1"); + context.expect(inherited.folder, [status(inherited, 404, "the inheriting controller reads the users model, where the author is not")]); +}); + +const foreignTargetMeta = shopJourney("a foreign key given the target controller's metadata resolves the target's joined fields", async (shop) => { + const { context } = shop; + await seed(shop, `${BOOKS}\nd.verify__shelves.insertMany([{ _id: "s1", bookId: "b1" }]);`); + const shelf = await shop.request("shelf with its book", "GET", "/shelves/get?id=s1"); + context.expect(shelf.folder, [status(shelf, 200), equal("the book's joined author name is resolved", pick(shelf.json, "bookId"), { title: "Nana", authorName: "Zola" })]); +}); + +const noModelAnswers500 = shopJourney("a controller whose model reference holds no model answers 500", async (shop) => { + const { context } = shop; + await seed(shop, BOOKS); + const answer = await shop.request("get on a controller with no model", "GET", "/no-model/get?id=au1"); + context.expect(answer.folder, [status(answer, 500, "a controller that holds no model answers 500")]); +}); + +const optionBeatsQuery = shopJourney("a route option beats a query parameter of the same name, and nested options keep the inner ones and the endpoint", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const sorted = await shop.request("route sort against query sort", "GET", "/option-routes/sorted?sortKey=_id&sortDirection=asc"); + context.expect(sorted.folder, [equal("the route options win over the same-named query parameters", results(sorted).map((row) => pick(row, "name")), ["Erin", "Dave", "Carol", "Bob", "Alice"])]); + const nested = await shop.request("nested options on a list", "GET", "/option-routes/nested?limit=50"); + context.expect(nested.folder, [equal("the inner maxPage survives the outer options", pick(nested.json, "limit"), 2), equal("the outer pluckMode applies", keysOf(results(nested)[0] ?? null), ["_id"])]); + const edited = await shop.request("nested options keep the inner endpoint", "PUT", "/option-routes/patch2?id=u1", { body: '{"status":null}' }); + context.expect(edited.folder, [status(edited, 200), equal("the outer noMandatory applies", pick(edited.json, "status"), null)]); + const byKey = await shop.request("the key name is not served", "PUT", "/option-routes/nestedEdit?id=u1", { body: '{"status":null}' }); + context.expect(byKey.folder, [status(byKey, 404)]); +}); + +const foreignDeclarationThrows = shopJourney("a foreign key declaration throws for a schema mismatch and for a string table with no class", async (shop) => { + const { context } = shop; + const declared = await shop.request("declare the foreign keys", "GET", "/option-routes/foreignDeclarations"); + const messages = Array.isArray(declared.json) ? declared.json.map((message) => JSON.stringify(message)) : []; + context.expect(declared.folder, [ + status(declared, 200), + equal("a class registered in one schema with a schema parameter naming another throws", (messages[0] ?? "").includes("Schema mismatch"), true), + equal("a string table name with no registered class in that schema throws", (messages[1] ?? "").includes("declared"), false), + ]); +}); + +const routeFiltersListOnly = shopJourney("a route's forced filters constrain the list and not get", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const listed = await shop.request("list with the forced filter", "GET", "/users/activeOnly"); + context.expect(listed.folder, [equal("the forced filter keeps active rows", ids(listed), ["u1", "u3", "u4", "u5"])]); + const inactive = await shop.request("get an inactive row", "GET", "/users/get?id=u2"); + context.expect(inactive.folder, [status(inactive, 200, "route filters do not restrict get"), ...holds(inactive, { name: "Bob" })]); +}); + export const PROBE_JOURNEYS = { "guard-semantics": guardSemantics, "new-row-shape": newRowContents, @@ -221,6 +277,12 @@ export const PROBE_JOURNEYS = { "no-foreign-strings": noForeignStrings, "no-mandatory-strings": noMandatoryStrings, "no-pluck-strings": noPluckStrings, + "derived-own-model": derivedOwnModel, + "foreign-target-meta": foreignTargetMeta, + "no-model-500": noModelAnswers500, + "option-beats-query": optionBeatsQuery, + "foreign-declaration-throws": foreignDeclarationThrows, + "route-filters-list-only": routeFiltersListOnly, "issue-90-edit-index": issue90, "issue-92-getter-mode": issue92, "issue-93-multi-foreign": issue93, diff --git a/.agents/skills/verify-interface/journeys-read.ts b/.agents/skills/verify-interface/journeys-read.ts index 6d063de..e940e10 100644 --- a/.agents/skills/verify-interface/journeys-read.ts +++ b/.agents/skills/verify-interface/journeys-read.ts @@ -234,7 +234,7 @@ const effectiveModes = shopJourney("GetEffectiveMode answers the mode each actio const declarationErrors = shopJourney("DataController refuses a table class whose schema is not registered", async (shop) => { const { context } = shop; const declared = await shop.request("declare a controller on an unregistered table", "GET", "/users/declarations"); - context.expect(declared.folder, [status(declared, 200), equal("the declaration throws", declared.json, ["Non-existent Database Schema"])]); + context.expect(declared.folder, [status(declared, 200), equal("the declarations throw", declared.json, ["Non-existent Database Schema", "Unregistered Database Table"])]); }); const exportsRuntime: Journey = { From 74e45acfcab786f56ab05619ec13b058bb2354fe Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Wed, 4 Nov 2026 13:19:36 +0100 Subject: [PATCH 31/36] feat(skills): cover empty forms, mandatory order, decorator stacking and holey bodies --- .../verify-interface/features/computed.md | 3 + .../verify-interface/features/foreign.md | 2 + .../verify-interface/features/joined.md | 3 + .../verify-interface/features/validation.md | 7 ++ .../verify-interface/fixture/shop.ts.txt | 49 ++++++++++++++ .../skills/verify-interface/journeys-probe.ts | 66 ++++++++++++++++++- 6 files changed, 129 insertions(+), 1 deletion(-) diff --git a/.agents/skills/verify-interface/features/computed.md b/.agents/skills/verify-interface/features/computed.md index 847e3b0..427bc43 100644 --- a/.agents/skills/verify-interface/features/computed.md +++ b/.agents/skills/verify-interface/features/computed.md @@ -1,10 +1,12 @@ --- covers: - src/internal/computed.ts + - src/metadata.ts docs: - docs/11.computed.md journeys: - computed-read + - computed-access --- # computed @@ -14,6 +16,7 @@ A row answers a value the database computes. ## Sub-features - `computed-read`: `@Computed` merges a per-row `count()` subquery and a row-local expression; `default` turns the null aggregate of an empty set into 0, the list sorts and pages on the aggregate with the same total on every page, filters on it, and the field is read-only. +- `computed-access`: an `@Access` written above `@Computed` replaces its read-only mode, on get and on list. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/foreign.md b/.agents/skills/verify-interface/features/foreign.md index 9f1269a..6155b0d 100644 --- a/.agents/skills/verify-interface/features/foreign.md +++ b/.agents/skills/verify-interface/features/foreign.md @@ -11,6 +11,7 @@ journeys: - issue-93-multi-foreign - no-foreign-strings - foreign-declaration-throws + - foreign-unplucked --- # foreign @@ -24,6 +25,7 @@ A field that holds a key of another table answers the record it points to. - `issue-93-multi-foreign`: fails on purpose until [#93](https://github.com/AntelopeJS/interface-data-api/issues/93) is fixed: a multi reference answers `null` for a missing element and raw ids with `noForeign`. - `no-foreign-strings`: the Get `noForeign` option skips resolving for any non-empty string, `"false"` included, and not for `""` or when absent; the List option is a boolean. - `foreign-declaration-throws`: `@Foreign` throws at declaration for a schema mismatch between the class and the `schema` parameter, and for a string table name with no class registered in that schema. +- `foreign-unplucked`: a foreign key without `pluck` answers the whole target row, including fields the target controller's `@Access` hides. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/joined.md b/.agents/skills/verify-interface/features/joined.md index 6903f45..073efdb 100644 --- a/.agents/skills/verify-interface/features/joined.md +++ b/.agents/skills/verify-interface/features/joined.md @@ -2,10 +2,12 @@ covers: - src/internal/joined.ts - src/internal/deferred-joined-stream.ts + - src/metadata.ts docs: - docs/10.joined.md journeys: - joined-read + - joined-access --- # joined @@ -15,6 +17,7 @@ A list or get answers one field of another table at the top level of the row. ## Sub-features - `joined-read`: `@Joined` flattens a remote field onto the row (same schema and across schemas), a missing remote row joins as `null`, the list sorts and filters on the joined value in the database, and the field is read-only: an edit that sends it stores nothing. +- `joined-access`: an `@Access` written above `@Joined` replaces its read-only mode. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/validation.md b/.agents/skills/verify-interface/features/validation.md index 883a1a7..232ebb4 100644 --- a/.agents/skills/verify-interface/features/validation.md +++ b/.agents/skills/verify-interface/features/validation.md @@ -3,12 +3,16 @@ covers: - src/internal/validation.ts - src/internal/guards.ts - src/components.ts + - src/index.ts docs: - docs/5.validators.md journeys: - mandatory-and-validators - parsed-values - error-codes + - empty-forms + - mandatory-before-validators + - holey-body --- # validation @@ -20,6 +24,9 @@ journeys: - `mandatory-and-validators`: a body missing mandatory fields answers `{ code: "missing_mandatory_fields", fields }` with every field, the mandatory check runs before the validators, invalid values answer `{ code: "invalid_field_types", fields }` with every failing field (a sync regex, a range and an async validator), a refused write stores nothing, an edit keeps a mandatory field absent from the body and refuses one cleared with `""` or `null`. - `parsed-values`: a validator that returns a zod-style parse result makes `new` and `edit` store the parsed `Date`, and a failed parse answers the invalid-types body. - `error-codes`: the packed `components` entry exports `Validation.MISSING_MANDATORY_FIELDS` and `Validation.INVALID_FIELD_TYPES` with the codes the bodies carry. +- `empty-forms`: `edit` accepts a mandatory field absent and refuses it cleared with `null`, `""` or `[]`; `{}` is not a clearing value. +- `mandatory-before-validators`: the mandatory check answers before any validator, on `new` and on `edit`, with bodies that trip both. +- `holey-body`: a parsed body with an `undefined` array element answers 400 and writes nothing. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/fixture/shop.ts.txt b/.agents/skills/verify-interface/fixture/shop.ts.txt index ede52ad..5110606 100644 --- a/.agents/skills/verify-interface/fixture/shop.ts.txt +++ b/.agents/skills/verify-interface/fixture/shop.ts.txt @@ -839,6 +839,55 @@ class _OptionRoutesAPI extends DataController( Controller("/option-routes", _UserAPI), ) {} +@RegisterDataController() +class _JoinedAccessAPI extends DataController(Book, { get: DefaultRoutes.Get }, Controller("/joined-access")) { + @ModelReference() + @Model(BookModel) + declare joinedAccessModel: BookModel; + + @Access(AccessMode.ReadOnly) + declare title: string; + + @Access(AccessMode.WriteOnly) + @Joined({ table: Author, localKey: "authorId", remoteField: "name" }) + declare authorName: string; +} + +@RegisterDataController() +class _ComputedAccessAPI extends DataController(Group, { get: DefaultRoutes.Get, list: DefaultRoutes.List }, Controller("/computed-access")) { + @ModelReference() + @Model(GroupModel) + declare computedAccessModel: GroupModel; + + @Listable() + @Access(AccessMode.ReadOnly) + declare name: string; + + @Listable() + @Access(AccessMode.WriteOnly) + @Computed((row, db) => db.table("devices").filter((device) => device.key("group_id").eq(row.key("_id"))).count(), { default: 0 }) + declare devices_count: number; +} + +const holeyNew = { + ...DefaultRoutes.New, + func: function (this: DataControllerInstance, ctx: RequestContext, params: Parameters.NewParameters, body: Buffer) { + const parsed = Validation.ParseBody(body); + Reflect.set(parsed, "title", [undefined]); + return DefaultRoutes.New.func.call(this, ctx, params, parsed); + }, +}; + +@RegisterDataController() +class _HoleyDocsAPI extends DataController(DocumentRow, { holey: holeyNew }, Controller("/holey-docs")) { + @ModelReference() + @Model(DocumentModel) + declare holeyDocumentModel: DocumentModel; + + @Access(AccessMode.ReadWrite) + declare title: string; +} + export async function construct(): Promise { await RegisterSchema(AUTH_SCHEMA); await RegisterSchema(SCHEMA); diff --git a/.agents/skills/verify-interface/journeys-probe.ts b/.agents/skills/verify-interface/journeys-probe.ts index b6262fd..9b1739c 100644 --- a/.agents/skills/verify-interface/journeys-probe.ts +++ b/.agents/skills/verify-interface/journeys-probe.ts @@ -1,7 +1,7 @@ import { equal } from "@antelopejs/tooling-configs/verify"; import { holds, ids, keysOf, pick, results, seed, shopJourney, status, stored, text } from "./harness.ts"; -import { BOOKS, ORDERS, OVERRIDES, PROBES, USERS } from "./seeds.ts"; +import { BOOKS, DOCUMENTS, GROUPS, ORDERS, OVERRIDES, PROBES, USERS } from "./seeds.ts"; const guardSemantics = shopJourney("a get guard allows on a normal return, runs with the controller and the parsed parameters, and is skipped for a missing row", async (shop) => { const { context } = shop; @@ -265,6 +265,64 @@ const routeFiltersListOnly = shopJourney("a route's forced filters constrain the context.expect(inactive.folder, [status(inactive, 200, "route filters do not restrict get"), ...holds(inactive, { name: "Bob" })]); }); +const emptyForms = shopJourney("edit refuses a mandatory field cleared with null, an empty string or an empty array, and accepts it absent", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const missing = { code: "missing_mandatory_fields", fields: ["email"] }; + const absent = await shop.request("email absent", "PUT", "/users/edit?id=u1", { body: '{"name":"Alice2"}' }); + context.expect(absent.folder, [status(absent, 200, "an absent mandatory field keeps its value")]); + for (const [name, body] of [["null", '{"email":null}'], ["an empty string", '{"email":""}'], ["an empty array", '{"email":[]}']] as const) { + const cleared = await shop.request(`email cleared with ${name}`, "PUT", "/users/edit?id=u1", { body }); + context.expect(cleared.folder, [status(cleared, 400), equal(`${name} counts as empty`, cleared.json, missing)]); + } + const object = await shop.request("email set to an empty object", "PUT", "/users/edit?id=u1", { body: '{"email":{}}' }); + context.expect(object.folder, [status(object, 400), equal("an empty object is not a clearing value, so the validator refuses it", object.json, { code: "invalid_field_types", fields: ["email"] })]); + const row = await stored(shop, "read u1", "verify__users", '{ _id: "u1" }'); + context.expect(row.folder, [equal("no refused edit changed the email", pick(row.rows[0] ?? null, "email"), "alice@example.com")]); +}); + +const mandatoryBeforeValidators = shopJourney("the mandatory check answers before any validator, on new and on edit", async (shop) => { + const { context } = shop; + await seed(shop, USERS); + const created = await shop.request("new with a missing mandatory field and an invalid value", "POST", "/users/new", { body: '{"name":"Zed","age":500}' }); + context.expect(created.folder, [status(created, 400), equal("new answers the mandatory code", created.json, { code: "missing_mandatory_fields", fields: ["email", "password"] })]); + const edited = await shop.request("edit clearing a mandatory field with an invalid value", "PUT", "/users/edit?id=u1", { body: '{"email":null,"nickname":"taken"}' }); + context.expect(edited.folder, [status(edited, 400), equal("edit answers the mandatory code", edited.json, { code: "missing_mandatory_fields", fields: ["email"] })]); +}); + +const holeyBody = shopJourney("a parsed body that holds an undefined array element answers 400", async (shop) => { + const { context } = shop; + await seed(shop, DOCUMENTS); + const holey = await shop.request("new through a route that sets [undefined]", "POST", "/holey-docs/holey", { body: '{"title":"x"}' }); + context.expect(holey.folder, [status(holey, 400, "an undefined array element answers 400")]); + const rows = await stored(shop, "count the documents", "verify__documents"); + context.expect(rows.folder, [equal("nothing was written", rows.rows.length, 2)]); +}); + +const joinedAccess = shopJourney("an @Access written above @Joined replaces its read-only mode", async (shop) => { + const { context } = shop; + await seed(shop, BOOKS); + const got = await shop.request("get a book", "GET", "/joined-access/get?id=b1"); + context.expect(got.folder, [status(got, 200), ...holds(got, { title: "Nana" }), equal("the later write-only @Access hides the joined field", keysOf(got.json).includes("authorName"), false)]); +}); + +const computedAccess = shopJourney("an @Access written above @Computed replaces its read-only mode", async (shop) => { + const { context } = shop; + await seed(shop, GROUPS); + const got = await shop.request("get a group", "GET", "/computed-access/get?id=g1"); + context.expect(got.folder, [status(got, 200), ...holds(got, { name: "Alpha" }), equal("the later write-only @Access hides the computed field on get", keysOf(got.json).includes("devices_count"), false)]); + const listed = await shop.request("list the groups", "GET", "/computed-access/list"); + context.expect(listed.folder, [equal("and on list", results(listed).some((row) => keysOf(row).includes("devices_count")), false)]); +}); + +const foreignUnplucked = shopJourney("a foreign key without pluck answers the whole target row, whatever the target controller's @Access says", async (shop) => { + const { context } = shop; + await seed(shop, ORDERS); + const one = await shop.request("order o1", "GET", "/orders/get?id=o1"); + const target = pick(one.json, "byEmail"); + context.expect(one.folder, [status(one, 200), equal("the target's name", pick(target, "name"), "Bob"), equal("the target's stored password is not hidden by the users controller's @Access", pick(target, "password"), "p2")]); +}); + export const PROBE_JOURNEYS = { "guard-semantics": guardSemantics, "new-row-shape": newRowContents, @@ -283,6 +341,12 @@ export const PROBE_JOURNEYS = { "option-beats-query": optionBeatsQuery, "foreign-declaration-throws": foreignDeclarationThrows, "route-filters-list-only": routeFiltersListOnly, + "empty-forms": emptyForms, + "mandatory-before-validators": mandatoryBeforeValidators, + "holey-body": holeyBody, + "joined-access": joinedAccess, + "computed-access": computedAccess, + "foreign-unplucked": foreignUnplucked, "issue-90-edit-index": issue90, "issue-92-getter-mode": issue92, "issue-93-multi-foreign": issue93, From a91c1c0a57290fc2668c355426c361ffc4d44b1a Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Thu, 5 Nov 2026 06:45:13 +0100 Subject: [PATCH 32/36] chore: sync AGENTS.md with the verify skill --- AGENTS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 0764a75..78674ac 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,6 +32,8 @@ The release commit writes `CHANGELOG.md`. Upgrade notes for that version follow Finish every change with `pnpm run checks`. It runs typecheck, lint, format, knip, tests, size, suppressions, and sync, and prints only what failed. The change is done when it prints no failure. +Prove a change works with the verification skill in [`.agents/skills/verify-interface/SKILL.md`](.agents/skills/verify-interface/SKILL.md) before you call it done. + The tools enforce most rules, listed in the table at the end. The sections below hold the rules no tool checks. ### Comments From 2c98aaba3555aa0b1680cead144f6efa39e6a040 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Thu, 5 Nov 2026 18:32:35 +0000 Subject: [PATCH 33/36] test(verify): add the formal-field-access check Enumerate every controller declaration within bounds through the real decorators, DataController and Controller, run Query.ReadProperties and Query.WriteProperties for every action, and compare them with what the decorators' TSDoc promises. Record three findings: @Access and a kept override table defeat the read-only mode of @Computed and @Joined, a derived controller's decorators rewrite the FieldData its base and siblings share, and a getter @Listable hands over after @Computed never runs. Wire the check into verify.config.ts as formal-field-access. --- .agents/skills/formal-field-access/SKILL.md | 110 ++++++ .agents/skills/formal-field-access/build.ts | 144 +++++++ .agents/skills/formal-field-access/cases.ts | 249 ++++++++++++ .agents/skills/formal-field-access/check.mjs | 27 ++ .../formal-field-access/field-access.ts | 185 +++++++++ .../skills/formal-field-access/package.json | 4 + .agents/skills/formal-field-access/rules.ts | 360 ++++++++++++++++++ .../skills/formal-field-access/ts-loader.mjs | 30 ++ .../skills/formal-field-access/tsconfig.json | 15 + .../skills/verify-interface/verify.config.ts | 20 + 10 files changed, 1144 insertions(+) create mode 100644 .agents/skills/formal-field-access/SKILL.md create mode 100644 .agents/skills/formal-field-access/build.ts create mode 100644 .agents/skills/formal-field-access/cases.ts create mode 100644 .agents/skills/formal-field-access/check.mjs create mode 100644 .agents/skills/formal-field-access/field-access.ts create mode 100644 .agents/skills/formal-field-access/package.json create mode 100644 .agents/skills/formal-field-access/rules.ts create mode 100644 .agents/skills/formal-field-access/ts-loader.mjs create mode 100644 .agents/skills/formal-field-access/tsconfig.json diff --git a/.agents/skills/formal-field-access/SKILL.md b/.agents/skills/formal-field-access/SKILL.md new file mode 100644 index 0000000..c5febfc --- /dev/null +++ b/.agents/skills/formal-field-access/SKILL.md @@ -0,0 +1,110 @@ +--- +name: formal-field-access +description: Bounded exhaustive check of field exposure and write gating in @antelopejs/interface-data-api (AccessMode, @Access overrides, @Listable, @Computed, @Joined, derived controllers), run against the real decorators, ReadProperties and WriteProperties. Use when a change touches src/metadata.ts, src/internal/read-properties.ts, src/internal/properties.ts or src/internal/meta-records.ts, or when a change to access modes, descriptors, pluck or metadata inheritance needs proof that no field leaks and no body key bypasses its access. +--- + +# Formal check: field exposure and write gating + +A module author declares a controller class over a table and marks each field with `@Access(mode, overrides?)`, `@Listable`, `@Computed` or `@Joined`. Per action (`get`, `list`, `new`, `edit`, or a custom one), a field's effective mode decides which fields a response holds and which body keys reach the database: `ReadProperties` builds the response from `meta.readable[action]`, `WriteProperties` builds the row from `meta.writable[action]`, both rebuilt by `DataAPIMeta.recomputeAccess`. The `exposure` door of `verify.config.ts` names the harm: a write-only field that leaks exposes a secret. + +No verifier runs on this TypeScript, so the check enumerates every controller declaration within the bounds below and runs the real code on each: `cases.ts` lists the declarations, `build.ts` turns each into real classes (`class extends DataController(Row, {}, Controller(...))`, the accessors, then each decorator in the order TypeScript applies them, bottom first, with the descriptor `__decorate` would pass), and `rules.ts` runs `Query.ReadProperties` and `Query.WriteProperties` for every action and compares them with an oracle built from the decorators' TSDoc. `field-access.ts` holds the record of findings. `ts-loader.mjs` lets Node run the `src` TypeScript as it is. + +## Run it + +From the repository root, with Node 24 and `pnpm install` done: + +```sh +node .agents/skills/formal-field-access/check.mjs # CI bounds +node .agents/skills/formal-field-access/check.mjs --full # full bounds +node .agents/skills/formal-field-access/check.mjs --show # also print every violating case with what the check saw +``` + +| Configuration | Classes and fields | CI cases | Full cases | +| --- | --- | --- | --- | +| `single` | one controller `C`, field `a` in each of 5 declarations | 3,413 | 32,384 | +| `pair` | `C` with fields `a` and `b` (`b` defaulted or a setter) | 1,820 | 16,562 | +| `derived` | `P`, then `A extends P`, then `B extends P`, field `a` | 600 (1,800 classes) | 5,460 (16,380 classes) | + +One run of each on a shared 16-core machine: CI 6.8 s, full 34 s. Every class is read for 7 actions with and without `onlyList`, and written for 7 actions, 2 or 3 bodies, as a new row and over a stored row. + +- Exit 0 means every rule that held still holds, and each finding still breaks on the recorded number of cases with the recorded shortest case. +- Exit 1 means a rule changed. `BROKEN` names a rule that held and now breaks. `CHANGED` names a finding whose case count or shortest case changed. `HOLDS` names a finding that no longer breaks. Each line carries the shortest case as source and, below it, what the check saw. +- Exit 2 means the check could not run, or the arguments were wrong. + +The lines that name a changed rule match `^(?:finding|BROKEN|CHANGED|HOLDS) +(\w+)`. A rule that still holds prints as lowercase `holds A, B (N cases, configuration)`. + +## When to run it + +Run `--full` when a change touches a covered file (see the coverage record) or this folder. A changed rule (exit 1) makes the Verdict FAIL. The recorded findings fail it only when the diff changes what the covered files do, which `antelopejs-verify formal` decides by comparing their JavaScript on the base and on HEAD (`verify-interface` verdict rule 5; the entry is `formal-field-access` in `.agents/skills/verify-interface/verify.config.ts`, which runs `--full` on HEAD and the CI bounds on the base). + +## The rules + +The oracle reads the decorators as their TSDoc states them. `@Access` sets the mode and replaces the override table. `@Computed` and `@Joined` make the field read-only and keep the override table, which no doc mentions. `@Listable` adds the field to a list mode with the database names it selects, plus itself and its local key once joined (`listedNames`). `@Access` and `@Listable` hand the framework the accessor's descriptor (`setDescriptor`, "the known field descriptor"); `@Computed` and `@Joined` are property decorators and see none, so an accessor they alone decorate is read and written as a plain property. A child's declarations come after its parent's. The effective mode of an action is its override, else the mode; `_default` and no action mean the mode. + +| Rule | Plain sentence | Harm when it breaks | `single` | `pair` | `derived` | +| --- | --- | --- | --- | --- | --- | +| `ReadNoLeak` | `ReadProperties` answers no field, and runs no getter, without read access for the action; with `onlyList`, none that no `@Listable` names. | A write-only secret, or a private field, is in a response. | holds | holds | finding F2 (244, 2,840) | +| `ReadComplete` | Every field with read access is answered with the row value, or with the known getter's value. | A client misses a field, or gets another class's getter. | finding F3 (24, 32) | holds | findings F2, F3 (202, 2,146) | +| `WriteGated` | `WriteProperties` stores nothing but the stored row (or the class defaults of decorated fields) plus the body keys with write access, only those present on edit, and runs no other setter. | A body sets a read-only or private column. | holds | holds | finding F2 (100, 1,240) | +| `WriteComplete` | Every writable body key is stored (`undefined` when absent on new), or the known setter runs with it. | A write is silently dropped, or another class's setter runs. | holds | holds | finding F2 (184, 1,958) | +| `ComputedReadOnly` | A `@Computed` or `@Joined` field is never stored from the body and its setter never runs, whatever `@Access` says ("The value is read-only"). | A column the table never declares is persisted and hidden by the query-time value. | finding F1 (492, 4,338) | finding F1 (200, 3,440) | finding F1 (60, 1,164) | +| `ListPluck` | `meta.pluck[mode]` is exactly the union of the database names the fields listable in that mode select. | A list fetches, or drops, a column no declaration names. | holds | holds | finding F2 (16, 288) | + +The numbers in brackets are the violating cases under the CI and the full bounds, which `check.mjs` records per configuration with the shortest case. + +## Findings at the sync commit + +- **F1, a computed or joined field becomes writable (`ComputedReadOnly`).** `setComputed` (metadata.ts:312) and `setJoined` (line 357) set `field.mode = ReadOnly` and nothing else. Two sequences defeat it. `@Access(AccessMode.ReadWrite) @Computed(expr) declare a`: decorators run bottom-up, so `setMode` runs last and `a` is read-write; docs/11.computed.md and docs/10.joined.md warn "do not combine the two". `@Computed(expr) @Access(AccessMode.ReadOnly, { new: AccessMode.ReadWrite }) declare a`: `setComputed` runs last but leaves `modeOverrides`, so `a` is writable on `new`; no doc mentions it (62 of the 492 `single` CI cases, per the `fix-derived-clears-overrides` row below). In both, `WriteProperties("new")` and `("edit")` store `body.a` under `a`, and a setter on `a` runs. The stored value is hidden at read time by the computed or joined value. +- **F2, a derived controller rewrites the fields of its base and its siblings (`ReadNoLeak`, `ReadComplete`, `WriteGated`, `WriteComplete`, `ListPluck`).** `inherit` copies the parent's `FieldData` objects by reference (`merge(parent.fields, this.fields)`, metadata.ts:152, meta-records.ts:6-15), and `field(name)` (line 170-175) returns that shared object, so a child's decorator mutates the parent's field. `P { @Access(AccessMode.WriteOnly) declare a } A extends P { @Access(AccessMode.ReadWrite) declare a } B extends P {}`: `B`, defined after `A` with no declaration of its own, inherits `a` as read-write and answers it on every action, though `P` and `B` declare it write-only. `P { @Access(AccessMode.ReadOnly) get a() } A extends P { @Access(AccessMode.ReadOnly) get a() }`: `P.ReadProperties` answers `get:A:a`, the derived class's getter run on the base instance, because `setDescriptor` replaced the shared `desc`. `B`'s `@Listable` rebuilds its pluck from fields `A` changed. The `fix-inherit-copies-fields` row below turns four rules back to holding. +- **F3, a getter that `@Listable` hands over after `@Computed` or `@Joined` never runs (`ReadComplete`).** `setListable` and `setDescriptor` do not call `recomputeAccess`, so `@Listable() @Computed(expr) get a()` keeps `a` in `readable.props`, built when `setComputed` ran without a descriptor, and answers the row value; `@Computed(expr) @Listable() get a()` runs the getter. The `fix-listable-recomputes-access` row confirms the cause. + +## Real bug or check error + +The check runs the published code: `Query.ReadProperties` and `Query.WriteProperties` from `src/components.ts`, the decorators from `src/metadata.ts`, `DataController` from `src/index.ts`, with `GetDataControllerMeta` reading the metadata as the routes do. The routes answer what `ReadProperties` returns, minus `_internal` and with foreign relations reshaped (`Validation.ClearInternal`), plus `_id` on `new`. A violation is a check error only when the oracle in `promiseOf` (rules.ts) misreads a decorator's TSDoc, or when the case builds a class TypeScript would refuse: a child redeclaring an accessor as a property, or the reverse. Replay a shortest case by writing its class in a scratch test under `src/tests` and asserting on the route's answer or on the row `WriteProperties` returns. A getter answers `get::`, so the class whose accessor ran is in the value. Run `--show` to list every violating case with what the check saw. + +## Changing the check + +- For an intended code change, edit the oracle step in `promiseOf` that maps to that decorator, then run both bounds. A fix that clears the override table in `setComputed` and `setJoined` also changes the `Computed` and `Joined` steps, as the `fix-derived-clears-overrides` row shows. +- Never weaken or drop a rule to make the check pass. A fixed finding leaves `FINDINGS` in `field-access.ts`, for both modes, once a replay confirms the fix. A new finding goes into `FINDINGS` with its case count and shortest case for each mode, and into this file with its sequence. +- When you change the alphabet or the depths in `cases.ts`, rerun the scratch changes below. The CI bounds must still catch each one. +- After you confirm that the oracle and the coverage record describe the code at a newer commit, move the sync commit forward. Do it only then. + +## Coverage record + +| Check part | Code | +| --- | --- | +| alphabet and oracle of `@Access` | `Access` (metadata.ts:525-537), `setDescriptor` (433-436), `setMode` (231-241), `GetEffectiveMode` (93-99), `AccessMode` (78-82) | +| oracle of `@Listable` and `ListPluck` | `Listable` (550-562), `setListable` (250-263), `recomputeListable` (177-179), `listedNames` and `rebuildPluck` (meta-records.ts:80-94, 26-45) | +| oracle of `@Computed` and `@Joined` | `Computed` (643-647), `setComputed` (305-318), `Joined` (613-627), `setJoined` (330-375), `resolveTableReference` for a table name in the same schema (table-reference.ts:56-72) | +| the known descriptor, `readable` and `writable` | `onField` (507-518), `recomputeAccess` (181-223), `field` (170-175) | +| `derived` configuration | `inherit` (150-168), `merge` (meta-records.ts:6-15), `DataController` (index.ts:54-91), `GetDataControllerMeta` (metadata.ts:735-739), `classOf` and `prototypeOf` (prototypes.ts:26-41) | +| reads | `Query.ReadProperties` (components.ts:347-355), `ReadProperties` (read-properties.ts:11-39), `fieldsOf` (prototypes.ts:14-19); the routes pass `get` (index.ts:180-185) and `list` (251) and never `onlyList` | +| writes | `Query.WriteProperties` (components.ts:367-381), `WriteProperties`, `writableInBody`, `writeTargetDefaults` (properties.ts:12-66); the routes pass `new` (index.ts:279) and `edit` with the stored row (309-315) | + +The sync commit is `a91c1c0` on AntelopeJS/interface-data-api `feat/verify-interface-skill` (PR #91). + +## Bounds and what is left out + +The full alphabet is `@Access` with each mode and each of 8 override tables (none, `get`, `new`, `edit`, `custom`, `_default`, two actions), `@Computed`, `@Joined` on the other field or on the undeclared key `k`, and `@Listable` with `true`, `false`, `[other]` and `(true, "detailed")`: 30 decorators. The core alphabet has 9: one of each, two override tables. `single` CI runs every sequence of up to 2 of the 30 on `declare a` and on `get a() / set a(v)`, up to 1 on the defaulted property, the getter and the setter, and every sequence of 3 of the core 9 on the first two. `pair` CI runs up to 2 of the core 9 on `a` and up to 1 on `b`. `derived` CI runs up to 1 on `P`, up to 1 on `A`, and none, `@Access(ReadOnly)` or `@Listable()` on `B`. Full raises `single` to 3 of the 30 on `declare a`, 3 of the core 9 and 2 of the 30 on the accessor, 2 of the 30 on the others, and `b` and `A` to 2. Bodies send every field plus `k`, nothing, and (`pair`) `a` alone; rows hold every field plus `k`. + +The check leaves out: + +- the routes and the database: `pluck` is applied by `ListPage`, not by `ReadProperties`, so a database field a getter's `@Listable([...])` names is answered when it has read access; foreign, joined and computed values, `Validation`, modifiers and `dbName`, which nothing in `src` sets. +- `@Mandatory`, `@Sortable`, `@Validator`, `@Foreign` and `@Filter`, which create the field and record its descriptor without changing access. +- a class default on a property no decorator names: `writeTargetDefaults` stores defaults only for keys in `meta.fields`, and the oracle follows (`decorated`). +- getters and setters that read other fields, actions named like `Object.prototype` keys, three levels of inheritance, and more than two siblings. + +## Confirm the check can fail + +Apply one change at a time to `src`, run `check.mjs` with the CI bounds, then `git checkout -- src`. These ran at the sync commit; every row exited 1 and the unchanged tree exits 0. + +| Scratch change in the code | CI bounds | +| --- | --- | +| `drop-onlylist-skip`: `ReadProperties` ignores `onlyList` for props (read-properties.ts:23-25) | `BROKEN ReadNoLeak` 977 (`single`), 1,476 (`pair`); `CHANGED ReadNoLeak` 408 (`derived`) | +| `read-default-action`: `ReadProperties` reads `meta.readable._default` whatever the action (line 18-19) | `BROKEN ReadNoLeak` 316, shortest `@Access(ReadOnly, { get: WriteOnly }) get a()` answered on `get`; `CHANGED ReadComplete` 389 | +| `drop-writable-in-body`: edit writes every writable field (properties.ts:47-49) | `BROKEN WriteGated` 2,477 (`single`), 1,328 (`pair`), `CHANGED` 384 (`derived`): an empty edit body writes `a = undefined` and runs setters | +| `writable-on-readonly`: `recomputeAccess` fills `writable` from the read bit (metadata.ts:218) | `BROKEN WriteGated`, `BROKEN WriteComplete`, `CHANGED ComputedReadOnly` in every configuration | +| `computed-keeps-mode`: `setComputed` no longer sets `ReadOnly` (line 312) | `BROKEN WriteGated` 116 (`single`), 60 (`pair`), `BROKEN ReadComplete` 308 (`pair`), `CHANGED` on six rules | +| Fix candidate `fix-inherit-copies-fields`: `inherit` copies each parent field and its `listable` table | `HOLDS ReadNoLeak`, `HOLDS WriteGated`, `HOLDS WriteComplete`, `HOLDS ListPluck` (`derived`); `CHANGED ReadComplete` 28, all F3 | +| Fix candidate `fix-derived-clears-overrides`: `setComputed` clears `modeOverrides` | `CHANGED ComputedReadOnly` 430, 180, 54; `BROKEN ReadNoLeak` 12 and `WriteComplete` 62 (`single`), from the oracle keeping overrides | +| Fix candidate `fix-listable-recomputes-access`: `setListable` calls `recomputeAccess` | `HOLDS ReadComplete` (`single`); `CHANGED ReadComplete` 196 (`derived`) | diff --git a/.agents/skills/formal-field-access/build.ts b/.agents/skills/formal-field-access/build.ts new file mode 100644 index 0000000..7dbd992 --- /dev/null +++ b/.agents/skills/formal-field-access/build.ts @@ -0,0 +1,144 @@ +import { Controller } from "@antelopejs/interface-api"; +import type { Class, DecoratorTarget } from "@antelopejs/interface-core/decorators"; +import { RegisterTable, Table } from "@antelopejs/interface-database-decorators"; + +import { DataController, GetDataControllerMeta } from "../../../src/index.ts"; +import { Access, Computed, type DataAPIMeta, Joined, Listable } from "../../../src/metadata.ts"; +import { type Case, type ClassDecl, classNames, type Declaration, type Op } from "./cases.ts"; + +const SCHEMA = "formal-field-access"; +const JOINED_TABLE = "formal-field-access-other"; + +class Row extends Table {} +RegisterTable("formal-field-access-rows", SCHEMA)(Row); + +class Other extends Table {} +RegisterTable(JOINED_TABLE, SCHEMA)(Other); + +/** One accessor call the check's getters and setters record: which class's accessor ran, on which field, with what. */ +export interface AccessorCall { + owner: string; + field: string; + kind: "get" | "set"; + value?: string; +} + +/** A controller class the check built, with its metadata, the name it prints under and what it declares. */ +export interface Built { + name: string; + cls: Class; + meta: DataAPIMeta; + decl: ClassDecl; +} + +/** A getter answers `get::`; the class is the one whose prototype holds the accessor. */ +export function getterValue(owner: string, field: string): string { + return `get:${owner}:${field}`; +} + +export function usesGetter(declared: Declaration): boolean { + return declared === "getter" || declared === "accessor"; +} + +export function usesSetter(declared: Declaration): boolean { + return declared === "setter" || declared === "accessor"; +} + +/** The class defaults of a declaration: `name = "default:"` for each defaulted property. */ +export function defaultsOf(decl: ClassDecl): Map { + const defaults = new Map(); + for (const [name, fieldDecl] of Object.entries(decl)) { + if (fieldDecl.declared === "defaulted") defaults.set(name, `default:${name}`); + } + return defaults; +} + +function defineAccessors( + prototype: DecoratorTarget, + owner: string, + field: string, + declared: Declaration, + log: AccessorCall[], +) { + if (!usesGetter(declared) && !usesSetter(declared)) return; + const descriptor: PropertyDescriptor = { configurable: true, enumerable: false }; + if (usesGetter(declared)) { + descriptor.get = () => { + log.push({ owner, field, kind: "get" }); + return getterValue(owner, field); + }; + } + if (usesSetter(declared)) { + descriptor.set = (value: string | undefined) => { + log.push({ owner, field, kind: "set", value }); + }; + } + Object.defineProperty(prototype, field, descriptor); +} + +/** + * Applies one decorator as TypeScript's `__decorate` does: a property passes + * no descriptor, an accessor passes its own property descriptor. + */ +function decorate(op: Op, prototype: DecoratorTarget, field: string, descriptor: PropertyDescriptor | undefined) { + switch (op.decorator) { + case "Access": { + const decorator = Access(op.mode, op.overrides); + if (descriptor) decorator(prototype, field, descriptor); + else decorator(prototype, field); + return; + } + case "Computed": + Computed(() => 0)(prototype, field); + return; + case "Joined": + Joined({ table: JOINED_TABLE, localKey: op.localKey, remoteField: "value" })(prototype, field); + return; + case "Listable": { + const decorator = Listable(op.required, op.mode); + if (descriptor) decorator(prototype, field, descriptor); + else decorator(prototype, field); + } + } +} + +/** + * Declares one controller class as a module author would: it extends + * `DataController(Row, {}, Controller(location[, parent]))`, defines its + * accessors, then runs each field's decorators bottom-up. The metadata is read + * through `GetDataControllerMeta`, as the routes read it. + */ +function declareClass(name: string, decl: ClassDecl, log: AccessorCall[], parent?: Built): Built { + const base = parent + ? DataController(Row, {}, Controller(`/${name}`, parent.cls)) + : DataController(Row, {}, Controller(`/${name}`)); + const defaults = Object.fromEntries(defaultsOf(decl)); + const cls = class extends base { + constructor() { + super(); + Object.assign(this, defaults); + } + }; + Object.defineProperty(cls, "name", { value: name }); + for (const [field, fieldDecl] of Object.entries(decl)) { + defineAccessors(cls.prototype, name, field, fieldDecl.declared, log); + const descriptor = Object.getOwnPropertyDescriptor(cls.prototype, field); + for (const op of fieldDecl.ops) decorate(op, cls.prototype, field, descriptor); + } + return { name, cls, meta: GetDataControllerMeta(new cls()), decl }; +} + +/** The classes of a case in definition order, and the accessor log they share. */ +export interface BuiltCase { + classes: Built[]; + log: AccessorCall[]; +} + +/** Builds the classes of a case in definition order, sharing one accessor log. */ +export function build(testCase: Case): BuiltCase { + const log: AccessorCall[] = []; + const [parentName, ...childNames] = classNames(testCase); + const parent = declareClass(parentName, testCase.parent, log); + const children = testCase.children.map((decl, index) => declareClass(childNames[index], decl, log, parent)); + return { classes: [parent, ...children], log }; +} diff --git a/.agents/skills/formal-field-access/cases.ts b/.agents/skills/formal-field-access/cases.ts new file mode 100644 index 0000000..1c3ac55 --- /dev/null +++ b/.agents/skills/formal-field-access/cases.ts @@ -0,0 +1,249 @@ +import { AccessMode } from "../../../src/metadata.ts"; + +/** A decorator a controller writes on a field, with the arguments the check varies. */ +export type Op = + | { decorator: "Access"; mode: AccessMode; overrides?: Record } + | { decorator: "Computed" } + | { decorator: "Joined"; localKey: string } + | { decorator: "Listable"; required: boolean | string[]; mode?: string }; + +/** + * How a controller class declares a field: `declare a`, `a = "default:a"`, + * `get a()`, `set a(value)`, or both accessors. + */ +export type Declaration = "property" | "defaulted" | "getter" | "setter" | "accessor"; + +/** A field as one class declares it, its decorators in the order they run: the bottom one first. */ +export interface FieldDecl { + declared: Declaration; + ops: Op[]; +} + +/** The fields of one controller class, by name. */ +export type ClassDecl = Record; + +/** + * One case: a parent controller, then the derived controllers defined after + * it in order, each extending the parent. A case with no child is one + * controller on its own. + */ +export interface Case { + parent: ClassDecl; + children: ClassDecl[]; +} + +export type Configuration = "single" | "pair" | "derived"; +export type Mode = "ci" | "full"; + +export const CONFIGURATIONS: Configuration[] = ["single", "pair", "derived"]; + +/** The database key no field declares: the row holds it, a body sends it, `@Listable([...])` and `@Joined` may name it. */ +export const DB_ONLY_KEY = "k"; + +const { ReadOnly, WriteOnly, ReadWrite } = AccessMode; +const MODES = [ReadOnly, WriteOnly, ReadWrite]; +const OVERRIDES: (Record | undefined)[] = [ + undefined, + { get: ReadOnly }, + { get: WriteOnly }, + { new: ReadWrite }, + { edit: ReadWrite }, + { custom: ReadWrite }, + { _default: WriteOnly }, + { get: WriteOnly, new: ReadWrite }, +]; +const ALL_DECLARATIONS: Declaration[] = ["property", "defaulted", "getter", "setter", "accessor"]; +const MAIN_DECLARATIONS: Declaration[] = ["property", "accessor"]; + +function access(mode: AccessMode, overrides?: Record): Op { + return { decorator: "Access", mode, overrides }; +} + +/** Every decorator the check writes on a field, next to `other` (a second field or {@link DB_ONLY_KEY}). */ +function fullAlphabet(other: string): Op[] { + return [ + ...MODES.flatMap((mode) => OVERRIDES.map((overrides) => access(mode, overrides))), + { decorator: "Computed" }, + { decorator: "Joined", localKey: other }, + { decorator: "Listable", required: true }, + { decorator: "Listable", required: false }, + { decorator: "Listable", required: [other] }, + { decorator: "Listable", required: true, mode: "detailed" }, + ]; +} + +/** The alphabet of the longer sequences: each decorator once, plus the two override tables the docs show. */ +function coreAlphabet(other: string): Op[] { + return [ + access(ReadOnly), + access(WriteOnly), + access(ReadWrite), + access(ReadOnly, { new: ReadWrite }), + access(ReadWrite, { edit: ReadOnly }), + { decorator: "Computed" }, + { decorator: "Joined", localKey: other }, + { decorator: "Listable", required: true }, + { decorator: "Listable", required: [other] }, + ]; +} + +/** Every sequence of `min` to `max` symbols of `alphabet`, shortest first. */ +function sequences(alphabet: Op[], min: number, max: number): Op[][] { + let layer: Op[][] = [[]]; + const all: Op[][] = min === 0 ? [[]] : []; + for (let length = 1; length <= max; length++) { + layer = layer.flatMap((sequence) => alphabet.map((op) => [...sequence, op])); + if (length >= min) all.push(...layer); + } + return all; +} + +function field(declared: Declaration, ops: Op[]): FieldDecl { + return { declared, ops }; +} + +function singleCases(mode: Mode): Case[] { + const alphabet = fullAlphabet(DB_ONLY_KEY); + const cases: Case[] = []; + const add = (declarations: Declaration[], ops: Op[][]) => { + for (const declared of declarations) { + for (const sequence of ops) cases.push({ parent: { a: field(declared, sequence) }, children: [] }); + } + }; + const others = ALL_DECLARATIONS.filter((declared) => !MAIN_DECLARATIONS.includes(declared)); + if (mode === "ci") { + add(MAIN_DECLARATIONS, sequences(alphabet, 0, 2)); + add(others, sequences(alphabet, 0, 1)); + add(MAIN_DECLARATIONS, sequences(coreAlphabet(DB_ONLY_KEY), 3, 3)); + } else { + add(["property"], sequences(alphabet, 0, 3)); + add(["accessor"], sequences(coreAlphabet(DB_ONLY_KEY), 3, 3)); + add([...others, "accessor"], sequences(alphabet, 0, 2)); + } + return cases; +} + +function pairCases(mode: Mode): Case[] { + const first = sequences(coreAlphabet("b"), 0, 2); + const second = sequences(coreAlphabet("a"), 0, mode === "ci" ? 1 : 2); + const cases: Case[] = []; + for (const declaredA of ["property"] as const) { + for (const declaredB of ["defaulted", "setter"] as const) { + for (const opsA of first) { + for (const opsB of second) { + cases.push({ parent: { a: field(declaredA, opsA), b: field(declaredB, opsB) }, children: [] }); + } + } + } + } + return cases; +} + +function derivedCases(mode: Mode): Case[] { + const alphabet = coreAlphabet(DB_ONLY_KEY); + const parents = sequences(alphabet, 0, 1); + const firstChildren = sequences(alphabet, 0, mode === "ci" ? 1 : 2); + const siblings: Op[][] = [[], [access(ReadOnly)], [{ decorator: "Listable", required: true }]]; + const cases: Case[] = []; + for (const declared of MAIN_DECLARATIONS) { + for (const opsP of parents) { + for (const opsA of firstChildren) { + for (const opsB of siblings) { + cases.push({ + parent: { a: field(declared, opsP) }, + children: [{ a: field(declared, opsA) }, { a: field(declared, opsB) }], + }); + } + } + } + } + return cases; +} + +/** The cases of a configuration within a mode's bounds, in a fixed order. */ +export function casesOf(configuration: Configuration, mode: Mode): Case[] { + switch (configuration) { + case "single": + return singleCases(mode); + case "pair": + return pairCases(mode); + case "derived": + return derivedCases(mode); + } +} + +/** The class names a case prints and builds under: `C` alone, else `P` and its children `A`, `B`, … */ +export function classNames(testCase: Case): string[] { + if (testCase.children.length === 0) return ["C"]; + return ["P", ...testCase.children.map((_, index) => String.fromCharCode(65 + index))]; +} + +function printMode(mode: AccessMode): string { + return `AccessMode.${AccessMode[mode]}`; +} + +function printOverrides(overrides: Record): string { + const entries = Object.entries(overrides).map(([action, mode]) => `${action}: ${printMode(mode)}`); + return `{ ${entries.join(", ")} }`; +} + +/** A decorator as a developer writes it. */ +export function printOp(op: Op): string { + switch (op.decorator) { + case "Access": + return op.overrides + ? `@Access(${printMode(op.mode)}, ${printOverrides(op.overrides)})` + : `@Access(${printMode(op.mode)})`; + case "Computed": + return "@Computed(expr)"; + case "Joined": + return `@Joined({ table, localKey: ${JSON.stringify(op.localKey)}, remoteField })`; + case "Listable": { + const args = [JSON.stringify(op.required), ...(op.mode ? [JSON.stringify(op.mode)] : [])]; + return `@Listable(${op.required === true && !op.mode ? "" : args.join(", ")})`; + } + } +} + +function printDeclaration(name: string, declared: Declaration): string { + switch (declared) { + case "property": + return `declare ${name}`; + case "defaulted": + return `${name} = "default:${name}"`; + case "getter": + return `get ${name}()`; + case "setter": + return `set ${name}(v)`; + case "accessor": + return `get ${name}() / set ${name}(v)`; + } +} + +/** A field with its decorators top to bottom, as a developer writes them. */ +function printField(name: string, decl: FieldDecl): string { + const decorators = [...decl.ops].reverse().map(printOp); + return [...decorators, printDeclaration(name, decl.declared)].join(" "); +} + +function printClass(name: string, decl: ClassDecl, parent?: string): string { + const head = parent ? `${name} extends ${parent}` : name; + const fields = Object.entries(decl).map(([field, fieldDecl]) => printField(field, fieldDecl)); + return `${head} { ${fields.join("; ")} }`; +} + +/** A case as source, one class after the other in definition order. */ +export function printCase(testCase: Case): string { + const [parent, ...children] = classNames(testCase); + return [ + printClass(parent, testCase.parent), + ...testCase.children.map((child, index) => printClass(children[index], child, parent)), + ].join(" "); +} + +/** How many decorators a case writes, over every class: the first measure of its size. */ +export function opCount(testCase: Case): number { + return [testCase.parent, ...testCase.children] + .flatMap((decl) => Object.values(decl)) + .reduce((count, decl) => count + decl.ops.length, 0); +} diff --git a/.agents/skills/formal-field-access/check.mjs b/.agents/skills/formal-field-access/check.mjs new file mode 100644 index 0000000..e110398 --- /dev/null +++ b/.agents/skills/formal-field-access/check.mjs @@ -0,0 +1,27 @@ +#!/usr/bin/env node +/** + * Checks field exposure and write gating of @antelopejs/interface-data-api: + * `field-access.ts` declares every controller within its bounds through the + * real decorators and runs the real `ReadProperties` and `WriteProperties` + * on each. Node needs module hooks to run the TypeScript sources, so this + * file starts a second Node with them and exits as it exits: 0 when every + * rule matches the record in SKILL.md, 1 when a rule changed, 2 when the + * check could not run. + */ +import { spawnSync } from "node:child_process"; +import path from "node:path"; +import { fileURLToPath, pathToFileURL } from "node:url"; + +const dir = path.dirname(fileURLToPath(import.meta.url)); +const run = spawnSync( + process.execPath, + [ + "--disable-warning=ExperimentalWarning", + "--import", + pathToFileURL(path.join(dir, "ts-loader.mjs")).href, + path.join(dir, "field-access.ts"), + ...process.argv.slice(2), + ], + { stdio: "inherit" }, +); +process.exit(run.status ?? 2); diff --git a/.agents/skills/formal-field-access/field-access.ts b/.agents/skills/formal-field-access/field-access.ts new file mode 100644 index 0000000..60afa0c --- /dev/null +++ b/.agents/skills/formal-field-access/field-access.ts @@ -0,0 +1,185 @@ +import { build } from "./build.ts"; +import { type Case, casesOf, CONFIGURATIONS, type Configuration, type Mode, opCount, printCase } from "./cases.ts"; +import { checkCase, type Rule, RULES } from "./rules.ts"; + +/** A recorded finding: how many cases break the rule, and the shortest of them as {@link printCase} writes it. */ +interface Recorded { + cases: number; + shortest: string; +} + +type Record_ = Partial>; + +/** The findings of each configuration under each mode's bounds. */ +const FINDINGS: Record> = { + ci: { + single: { + ReadComplete: { cases: 24, shortest: "C { @Listable() @Computed(expr) get a() / set a(v) }" }, + ComputedReadOnly: { cases: 492, shortest: "C { @Access(AccessMode.WriteOnly) @Computed(expr) declare a }" }, + }, + pair: { + ComputedReadOnly: { cases: 200, shortest: "C { @Access(AccessMode.WriteOnly) @Computed(expr) declare a; set b(v) }" }, + }, + derived: { + ReadNoLeak: { + cases: 244, + shortest: "P { @Computed(expr) declare a } A extends P { declare a } B extends P { @Listable() declare a }", + }, + ReadComplete: { + cases: 202, + shortest: "P { @Computed(expr) declare a } A extends P { @Access(AccessMode.WriteOnly) declare a } B extends P { declare a }", + }, + WriteGated: { + cases: 100, + shortest: "P { @Listable() declare a } A extends P { @Access(AccessMode.WriteOnly) declare a } B extends P { declare a }", + }, + WriteComplete: { + cases: 184, + shortest: "P { @Access(AccessMode.WriteOnly) declare a } A extends P { @Computed(expr) declare a } B extends P { declare a }", + }, + ComputedReadOnly: { + cases: 60, + shortest: "P { @Computed(expr) declare a } A extends P { @Access(AccessMode.WriteOnly) declare a } B extends P { declare a }", + }, + ListPluck: { + cases: 16, + shortest: 'P { @Listable() declare a } A extends P { @Joined({ table, localKey: "k", remoteField }) declare a } B extends P { @Listable() declare a }', + }, + }, + }, + full: { + single: { + ReadComplete: { cases: 32, shortest: "C { @Listable() @Computed(expr) get a() }" }, + ComputedReadOnly: { cases: 4338, shortest: "C { @Access(AccessMode.WriteOnly) @Computed(expr) get a() }" }, + }, + pair: { + ComputedReadOnly: { + cases: 3440, + shortest: "C { declare a; @Access(AccessMode.WriteOnly) @Computed(expr) set b(v) }", + }, + }, + derived: { + ReadNoLeak: { + cases: 2840, + shortest: "P { @Computed(expr) declare a } A extends P { declare a } B extends P { @Listable() declare a }", + }, + ReadComplete: { + cases: 2146, + shortest: "P { @Computed(expr) declare a } A extends P { @Access(AccessMode.WriteOnly) declare a } B extends P { declare a }", + }, + WriteGated: { + cases: 1240, + shortest: "P { @Listable() declare a } A extends P { @Access(AccessMode.WriteOnly) declare a } B extends P { declare a }", + }, + WriteComplete: { + cases: 1958, + shortest: "P { @Access(AccessMode.WriteOnly) declare a } A extends P { @Computed(expr) declare a } B extends P { declare a }", + }, + ComputedReadOnly: { + cases: 1164, + shortest: "P { declare a } A extends P { @Access(AccessMode.WriteOnly) @Computed(expr) declare a } B extends P { declare a }", + }, + ListPluck: { + cases: 288, + shortest: 'P { @Listable() declare a } A extends P { @Joined({ table, localKey: "k", remoteField }) declare a } B extends P { @Listable() declare a }', + }, + }, + }, +}; + +const EXIT = { ok: 0, changed: 1, tool: 2 }; + +/** What one rule's failing cases look like in one configuration. */ +interface Broken { + cases: Set; + shortest: Case; + detail: string; +} + +function shorter(candidate: Case, current: Case): boolean { + const byOps = opCount(candidate) - opCount(current); + if (byOps !== 0) return byOps < 0; + return printCase(candidate).length < printCase(current).length; +} + +async function brokenRules(cases: Case[], show: boolean): Promise> { + const broken = new Map(); + for (const testCase of cases) { + const { classes, log } = build(testCase); + const violations = await checkCase(testCase, classes, log); + if (violations.length === 0) continue; + const printed = printCase(testCase); + if (show) console.log(` ${printed}\n${violations.map((violation) => ` ${violation.rule}: ${violation.detail}`).join("\n")}`); + for (const violation of violations) { + const entry = broken.get(violation.rule); + if (!entry) { + broken.set(violation.rule, { cases: new Set([printed]), shortest: testCase, detail: violation.detail }); + } else { + entry.cases.add(printed); + if (shorter(testCase, entry.shortest)) { + entry.shortest = testCase; + entry.detail = violation.detail; + } + } + } + } + return broken; +} + +function count(n: number): string { + return n.toLocaleString("en-US"); +} + +/** Prints one configuration's result against its record; true when a rule changed. */ +function report(configuration: Configuration, broken: Map, recorded: Record_, total: number): boolean { + let changed = false; + const holding: Rule[] = []; + for (const rule of RULES) { + const now = broken.get(rule); + const record = Object.hasOwn(recorded, rule) ? recorded[rule] : undefined; + if (!now && !record) { + holding.push(rule); + continue; + } + if (now && !record) { + console.log(`BROKEN ${rule}: ${count(now.cases.size)} cases, shortest ${printCase(now.shortest)} (${configuration})\n ${now.detail}`); + changed = true; + } else if (!now && record) { + console.log(`HOLDS ${rule}: no case breaks it (recorded ${count(record.cases)}, ${configuration})`); + changed = true; + } else if (now && record) { + const shortest = printCase(now.shortest); + if (now.cases.size !== record.cases || shortest !== record.shortest) { + console.log(`CHANGED ${rule}: ${count(now.cases.size)} cases (recorded ${count(record.cases)}), shortest ${shortest} (${configuration})\n ${now.detail}`); + changed = true; + } else { + console.log(`finding ${rule}: ${count(now.cases.size)} cases, shortest ${shortest} (${configuration})`); + } + } + } + if (holding.length > 0) console.log(`holds ${holding.join(", ")} (${count(total)} cases, ${configuration})`); + return changed; +} + +async function main(args: string[]): Promise { + if (args.some((arg) => arg !== "--full" && arg !== "--show")) { + console.error("usage: node check.mjs [--full] [--show]"); + return EXIT.tool; + } + const mode: Mode = args.includes("--full") ? "full" : "ci"; + const show = args.includes("--show"); + let changed = false; + for (const configuration of CONFIGURATIONS) { + const cases = casesOf(configuration, mode); + const broken = await brokenRules(cases, show); + if (report(configuration, broken, FINDINGS[mode][configuration], cases.length)) changed = true; + } + return changed ? EXIT.changed : EXIT.ok; +} + +try { + process.exitCode = await main(process.argv.slice(2)); +} catch (error) { + console.error(error); + process.exitCode = EXIT.tool; +} diff --git a/.agents/skills/formal-field-access/package.json b/.agents/skills/formal-field-access/package.json new file mode 100644 index 0000000..e986b24 --- /dev/null +++ b/.agents/skills/formal-field-access/package.json @@ -0,0 +1,4 @@ +{ + "private": true, + "type": "module" +} diff --git a/.agents/skills/formal-field-access/rules.ts b/.agents/skills/formal-field-access/rules.ts new file mode 100644 index 0000000..9fb6537 --- /dev/null +++ b/.agents/skills/formal-field-access/rules.ts @@ -0,0 +1,360 @@ +import { Query } from "../../../src/components.ts"; +import { AccessMode, type RowFields } from "../../../src/metadata.ts"; +import { type AccessorCall, type Built, defaultsOf, getterValue, usesGetter, usesSetter } from "./build.ts"; +import { type Case, type ClassDecl, classNames, DB_ONLY_KEY, type Declaration, type Op } from "./cases.ts"; + +export type Rule = + | "ReadNoLeak" + | "ReadComplete" + | "WriteGated" + | "WriteComplete" + | "ComputedReadOnly" + | "ListPluck"; + +export const RULES: Rule[] = [ + "ReadNoLeak", + "ReadComplete", + "WriteGated", + "WriteComplete", + "ComputedReadOnly", + "ListPluck", +]; + +/** One rule a class broke, and what the check saw, in the code's words. */ +export interface Violation { + rule: Rule; + detail: string; +} + +/** + * What a field's declarations promise, read as their TSDoc states it. + * `@Access` sets the mode and replaces the override table. `@Computed` and + * `@Joined` make the field read-only, and keep the override table, which no + * doc mentions. `@Listable` adds the field to a list mode with the database + * names it selects, plus itself and its local key once it is joined. + * `@Access` and `@Listable` hand the framework the accessor's descriptor + * (`setDescriptor`, "the known field descriptor"); `@Computed` and `@Joined` + * are property decorators and see none, so an accessor they alone decorate + * stays unknown, and the field is read and written as a plain property. + */ +interface FieldPromise { + declared: Declaration; + mode?: AccessMode; + overrides?: Record; + derived: boolean; + listable: boolean; + /** Some decorator names the field, so `WriteProperties` stores its class default on creation. */ + decorated: boolean; + /** The class whose accessor the framework knows: the last to write `@Access` or `@Listable` on the field. */ + accessorOwner?: string; + joinedKey?: string; + selects: Map>; +} + +/** One class of a case, under the name it was built with. */ +interface Declared { + name: string; + decl: ClassDecl; +} + +/** A decorator with the class that wrote it. */ +interface Written { + owner: string; + op: Op; +} + +/** The actions the routes pass, a custom one, the default action by name, and none. */ +const ACTIONS: (string | undefined)[] = ["get", "list", "new", "edit", "custom", "_default", undefined]; + +function promiseOf(name: string, declared: Declaration, ops: Written[]): FieldPromise { + const promise: FieldPromise = { + declared, + derived: false, + listable: false, + decorated: ops.length > 0, + selects: new Map(), + }; + for (const { owner, op } of ops) { + switch (op.decorator) { + case "Access": + promise.mode = op.mode; + promise.overrides = op.overrides; + promise.accessorOwner = owner; + break; + case "Computed": + promise.derived = true; + promise.mode = AccessMode.ReadOnly; + break; + case "Joined": + promise.derived = true; + promise.mode = AccessMode.ReadOnly; + promise.joinedKey = op.localKey; + for (const names of promise.selects.values()) { + if (names.size > 0) names.add(name).add(op.localKey); + } + break; + case "Listable": { + promise.listable = true; + promise.accessorOwner = owner; + const base = op.required === true ? [name] : op.required === false ? [] : op.required; + const names = new Set(base); + if (names.size > 0 && promise.joinedKey) names.add(name).add(promise.joinedKey); + promise.selects.set(op.mode ?? "list", names); + } + } + } + return promise; +} + +/** The promises of a class: its parent's declarations, then its own, per field. */ +function promisesOf(chain: Declared[]): Map { + const promises = new Map(); + const names = new Set(chain.flatMap(({ decl }) => Object.keys(decl))); + for (const name of names) { + const own = chain.flatMap(({ name: owner, decl }) => + Object.hasOwn(decl, name) ? [{ owner, field: decl[name] }] : [], + ); + const ops = own.flatMap(({ owner, field }) => field.ops.map((op) => ({ owner, op }))); + promises.set(name, promiseOf(name, own[0].field.declared, ops)); + } + return promises; +} + +function effective(promise: FieldPromise, action: string | undefined): AccessMode | undefined { + if (action === undefined || action === "_default") return promise.mode; + const overrides = promise.overrides; + if (overrides && Object.hasOwn(overrides, action)) return overrides[action]; + return promise.mode; +} + +function canRead(promise: FieldPromise, action: string | undefined): boolean { + return ((effective(promise, action) ?? 0) & AccessMode.ReadOnly) !== 0; +} + +function canWrite(promise: FieldPromise, action: string | undefined): boolean { + return ((effective(promise, action) ?? 0) & AccessMode.WriteOnly) !== 0; +} + +/** The class whose setter the framework runs for the field, if it knows one. */ +function knownSetter(promise: FieldPromise | undefined): string | undefined { + return promise && usesSetter(promise.declared) ? promise.accessorOwner : undefined; +} + +function json(value: string | string[] | undefined): string { + return value === undefined ? "undefined" : JSON.stringify(value); +} + +function label(action: string | undefined, extra?: string): string { + const parts = [action === undefined ? "no action" : json(action), ...(extra ? [extra] : [])]; + return parts.join(", "); +} + +/** A row or body: `:` for each field and for the key no field declares. */ +function valuesOf(names: string[], prefix: string): Map { + return new Map([...names, DB_ONLY_KEY].map((name) => [name, `${prefix}:${name}`])); +} + +/** The bodies a write receives: every field, no field, and, with several fields, the first alone. */ +function bodiesOf(names: string[]): Map[] { + const bodies = [valuesOf(names, "body"), new Map()]; + if (names.length > 1) bodies.push(valuesOf(names.slice(0, 1), "body")); + return bodies; +} + +/** One class under check: the instance the routes would hold, its promises, and the accessor log it writes to. */ +interface Observed { + built: Built; + instance: object; + promises: Map; + names: string[]; + log: AccessorCall[]; +} + +async function checkReads({ built, instance, promises, names, log }: Observed): Promise { + const violations: Violation[] = []; + const add = (rule: Rule, detail: string) => violations.push({ rule, detail }); + for (const action of ACTIONS) { + for (const onlyList of [false, true]) { + const row = valuesOf(names, "row"); + const where = `${built.name}.ReadProperties(${label(action, onlyList ? "onlyList" : undefined)})`; + log.length = 0; + const answered = await Query.ReadProperties(instance, built.meta, Object.fromEntries(row), action, onlyList); + const readable = names.filter((name) => { + const promise = promises.get(name); + return promise !== undefined && canRead(promise, action) && (!onlyList || promise.listable); + }); + for (const key of Object.keys(answered)) { + if (!readable.includes(key)) add("ReadNoLeak", `${where} answers ${key}`); + } + for (const call of log) { + if (call.kind === "get" && !readable.includes(call.field)) { + add("ReadNoLeak", `${where} runs the getter of ${call.field}`); + } + } + for (const name of readable) { + const promise = promises.get(name); + const owner = promise?.accessorOwner; + const expected = + promise && owner !== undefined && usesGetter(promise.declared) ? getterValue(owner, name) : row.get(name); + if (!Object.hasOwn(answered, name)) add("ReadComplete", `${where} lacks ${name}`); + else if (answered[name] !== expected) { + add("ReadComplete", `${where} answers ${name} as ${JSON.stringify(answered[name])}, not ${json(expected)}`); + } + } + } + } + return violations; +} + +/** One write the check ran, with what the promises expect of it. */ +interface Write { + where: string; + result: RowFields; + /** The row the write starts from: the stored row, or the class defaults of the decorated fields. */ + start: Map; + body: Map; + /** The fields the promises let this write store. */ + written: string[]; + log: AccessorCall[]; +} + +function gatedViolations({ where, result, start, body, written, log }: Write, promises: Map) { + const violations: Violation[] = []; + for (const [key, value] of Object.entries(result)) { + if (start.has(key) && start.get(key) === value) continue; + if (written.includes(key) && knownSetter(promises.get(key)) === undefined && value === body.get(key)) continue; + violations.push({ rule: "WriteGated", detail: `${where} writes ${key} = ${JSON.stringify(value)}` }); + } + for (const key of start.keys()) { + if (!Object.hasOwn(result, key)) violations.push({ rule: "WriteGated", detail: `${where} drops ${key}` }); + } + for (const call of log) { + if (call.kind === "set" && !written.includes(call.field)) { + violations.push({ rule: "WriteGated", detail: `${where} runs the setter of ${call.field}` }); + } + } + return violations; +} + +function completeViolations({ where, result, body, written, log }: Write, promises: Map) { + const violations: Violation[] = []; + for (const name of written) { + const owner = knownSetter(promises.get(name)); + if (owner !== undefined) { + const ran = log.some( + (call) => call.kind === "set" && call.field === name && call.owner === owner && call.value === body.get(name), + ); + if (!ran) { + violations.push({ + rule: "WriteComplete", + detail: `${where} does not run ${owner}'s setter of ${name} with ${json(body.get(name))}`, + }); + } + } else if (!Object.hasOwn(result, name) || result[name] !== body.get(name)) { + violations.push({ + rule: "WriteComplete", + detail: `${where} writes ${name} as ${JSON.stringify(result[name])}, not ${json(body.get(name))}`, + }); + } + } + return violations; +} + +function derivedViolations({ where, result, start, log }: Write, promises: Map) { + const violations: Violation[] = []; + for (const [name, promise] of promises) { + if (!promise.derived) continue; + const untouched = start.has(name) + ? Object.hasOwn(result, name) && result[name] === start.get(name) + : !Object.hasOwn(result, name); + if (!untouched) { + violations.push({ + rule: "ComputedReadOnly", + detail: `${where} writes the computed or joined field ${name} = ${JSON.stringify(result[name])}`, + }); + } + if (log.some((call) => call.kind === "set" && call.field === name)) { + violations.push({ + rule: "ComputedReadOnly", + detail: `${where} runs the setter of the computed or joined field ${name}`, + }); + } + } + return violations; +} + +async function checkWrite( + { built, instance, promises, names, log }: Observed, + action: string | undefined, + body: Map, + stored: Map | undefined, +): Promise { + const how = `${stored ? "edit" : "new"} with ${json([...body.keys()])}`; + const where = `${built.name}.WriteProperties(${label(action, how)})`; + log.length = 0; + const result = await Query.WriteProperties( + instance, + built.meta, + Object.fromEntries(body), + action, + stored ? Object.fromEntries(stored) : undefined, + ); + const written = names.filter((name) => { + const promise = promises.get(name); + return promise !== undefined && canWrite(promise, action) && (stored === undefined || body.has(name)); + }); + const defaults = [...defaultsOf(built.decl)].filter(([name]) => promises.get(name)?.decorated); + const write: Write = { where, result, start: stored ?? new Map(defaults), body, written, log }; + return [ + ...gatedViolations(write, promises), + ...completeViolations(write, promises), + ...derivedViolations(write, promises), + ]; +} + +function checkPluck({ built, promises }: Observed): Violation[] { + const violations: Violation[] = []; + const expected = new Map>(); + for (const promise of promises.values()) { + for (const [mode, names] of promise.selects) { + const set = expected.get(mode) ?? new Set(); + for (const name of names) set.add(name); + expected.set(mode, set); + } + } + const modes = new Set([...expected.keys(), ...Object.keys(built.meta.pluck)]); + for (const mode of modes) { + const got = Object.hasOwn(built.meta.pluck, mode) ? [...built.meta.pluck[mode]].sort() : undefined; + const want = expected.has(mode) ? [...(expected.get(mode) ?? [])].sort() : undefined; + if (json(got) !== json(want)) { + violations.push({ rule: "ListPluck", detail: `${built.name}.pluck.${mode} is ${json(got)}, not ${json(want)}` }); + } + } + return violations; +} + +/** + * Every rule a case breaks, over every class the case declares: each class + * is read and written for every action, as the routes do, and compared with + * what its own declarations and its parent's promise. + */ +export async function checkCase(testCase: Case, classes: Built[], log: AccessorCall[]): Promise { + const violations: Violation[] = []; + const names = classNames(testCase); + for (const [index, built] of classes.entries()) { + const parent = { name: names[0], decl: testCase.parent }; + const chain = index === 0 ? [parent] : [parent, { name: names[index], decl: testCase.children[index - 1] }]; + const promises = promisesOf(chain); + const observed: Observed = { built, instance: new built.cls(), promises, names: [...promises.keys()], log }; + violations.push(...(await checkReads(observed))); + for (const action of ACTIONS) { + for (const body of bodiesOf(observed.names)) { + for (const stored of [undefined, valuesOf(observed.names, "stored")]) { + violations.push(...(await checkWrite(observed, action, body, stored))); + } + } + } + violations.push(...checkPluck(observed)); + } + return violations; +} diff --git a/.agents/skills/formal-field-access/ts-loader.mjs b/.agents/skills/formal-field-access/ts-loader.mjs new file mode 100644 index 0000000..ff59979 --- /dev/null +++ b/.agents/skills/formal-field-access/ts-loader.mjs @@ -0,0 +1,30 @@ +/** + * Node module hooks that run this repository's TypeScript sources as they + * are: a relative import with no extension resolves to its `.ts` file, and + * each `.ts` file is transformed with Node's own TypeScript support, enums + * and namespaces included. `check.mjs` passes this file to `--import`. + */ +import { existsSync, readFileSync } from "node:fs"; +import { registerHooks, stripTypeScriptTypes } from "node:module"; +import { fileURLToPath } from "node:url"; + +const HAS_SCRIPT_EXTENSION = /\.[cm]?[jt]s$/; + +registerHooks({ + resolve(specifier, context, next) { + const fromTypeScript = context.parentURL?.endsWith(".ts") ?? false; + if (fromTypeScript && specifier.startsWith(".") && !HAS_SCRIPT_EXTENSION.test(specifier)) { + const file = fileURLToPath(new URL(`${specifier}.ts`, context.parentURL)); + if (existsSync(file)) return next(`${specifier}.ts`, context); + } + return next(specifier, context); + }, + load(url, context, next) { + if (!url.endsWith(".ts")) return next(url, context); + const source = stripTypeScriptTypes(readFileSync(fileURLToPath(url), "utf8"), { + mode: "transform", + sourceUrl: url, + }); + return { format: "module", source, shortCircuit: true }; + }, +}); diff --git a/.agents/skills/formal-field-access/tsconfig.json b/.agents/skills/formal-field-access/tsconfig.json new file mode 100644 index 0000000..58178e2 --- /dev/null +++ b/.agents/skills/formal-field-access/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "rootDir": "../../..", + "types": ["node"], + "module": "nodenext", + "moduleResolution": "nodenext", + "allowImportingTsExtensions": true, + "allowJs": true, + "checkJs": true, + "composite": false, + "noEmit": true + }, + "include": ["*.ts", "*.mjs"] +} diff --git a/.agents/skills/verify-interface/verify.config.ts b/.agents/skills/verify-interface/verify.config.ts index d245204..4b17b19 100644 --- a/.agents/skills/verify-interface/verify.config.ts +++ b/.agents/skills/verify-interface/verify.config.ts @@ -51,6 +51,26 @@ const config: VerifyConfig = { why: "the package name and release workflow claim @antelopejs/interface-data-api on npm", }, }, + formal: [ + { + name: "formal-field-access", + covers: [ + "src/metadata.ts", + "src/components.ts", + "src/index.ts", + "src/internal/read-properties.ts", + "src/internal/properties.ts", + "src/internal/meta-records.ts", + "src/internal/prototypes.ts", + ], + files: [".agents/skills/formal-field-access/**"], + command: ["node", ".agents/skills/formal-field-access/check.mjs", "--full"], + baseCommand: ["node", ".agents/skills/formal-field-access/check.mjs"], + violation: /^(?:finding|BROKEN|CHANGED|HOLDS) +(\w+)/gm, + passing: /(?<=^holds +(?:\w+, )*)(\w+)(?=,| \()/gm, + behaviour: { kind: "emit" }, + }, + ], services: { mongo: { image: "mongo:7", From 48925b1393a4985f5f00f2a8b0a18b4556e3b3c6 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Thu, 5 Nov 2026 19:16:31 +0000 Subject: [PATCH 34/36] test(verify): map every src file to the features whose journeys check it The routes in src/index.ts, src/components.ts and src/metadata.ts serve every feature, and list.ts, tables.ts, validation.ts and read-properties.ts serve features beyond their namesake, so plan left a feature out when a diff touched a file its journeys check. Every feature now covers each file one of its journeys checks. localized-key now sorts a localized field descending, and the new guard-unlocked journey reads a localized field from a get guard, so a route that ignores the direction or guards before Unlock fails a check. --- .agents/skills/formal-field-access/SKILL.md | 8 ++++---- .../skills/verify-interface/features/README.md | 6 ++++-- .../skills/verify-interface/features/access.md | 5 ++++- .../skills/verify-interface/features/computed.md | 5 ++++- .agents/skills/verify-interface/features/crud.md | 6 ++++++ .../skills/verify-interface/features/filters.md | 6 +++++- .../skills/verify-interface/features/foreign.md | 7 ++++++- .../skills/verify-interface/features/guards.md | 5 +++++ .../skills/verify-interface/features/joined.md | 9 +++++++-- .../skills/verify-interface/features/listing.md | 5 +++++ .../skills/verify-interface/features/metadata.md | 7 ++++++- .../verify-interface/features/modifiers.md | 6 +++++- .../verify-interface/features/route-options.md | 5 ++++- .../verify-interface/features/validation.md | 7 ++++--- .../skills/verify-interface/fixture/shop.ts.txt | 7 ++++++- .agents/skills/verify-interface/journeys-read.ts | 16 ++++++++++++++++ 16 files changed, 91 insertions(+), 19 deletions(-) diff --git a/.agents/skills/formal-field-access/SKILL.md b/.agents/skills/formal-field-access/SKILL.md index c5febfc..3c631aa 100644 --- a/.agents/skills/formal-field-access/SKILL.md +++ b/.agents/skills/formal-field-access/SKILL.md @@ -78,8 +78,8 @@ The check runs the published code: `Query.ReadProperties` and `Query.WriteProper | oracle of `@Computed` and `@Joined` | `Computed` (643-647), `setComputed` (305-318), `Joined` (613-627), `setJoined` (330-375), `resolveTableReference` for a table name in the same schema (table-reference.ts:56-72) | | the known descriptor, `readable` and `writable` | `onField` (507-518), `recomputeAccess` (181-223), `field` (170-175) | | `derived` configuration | `inherit` (150-168), `merge` (meta-records.ts:6-15), `DataController` (index.ts:54-91), `GetDataControllerMeta` (metadata.ts:735-739), `classOf` and `prototypeOf` (prototypes.ts:26-41) | -| reads | `Query.ReadProperties` (components.ts:347-355), `ReadProperties` (read-properties.ts:11-39), `fieldsOf` (prototypes.ts:14-19); the routes pass `get` (index.ts:180-185) and `list` (251) and never `onlyList` | -| writes | `Query.WriteProperties` (components.ts:367-381), `WriteProperties`, `writableInBody`, `writeTargetDefaults` (properties.ts:12-66); the routes pass `new` (index.ts:279) and `edit` with the stored row (309-315) | +| reads | `Query.ReadProperties` (components.ts:347-355), `ReadProperties` (read-properties.ts:11-39), `fieldsOf` (prototypes.ts:14-19); read from the code, not driven: the routes pass `get` (index.ts:180-185) and `list` (251) and never `onlyList` | +| writes | `Query.WriteProperties` (components.ts:367-381), `WriteProperties`, `writableInBody`, `writeTargetDefaults` (properties.ts:12-66); read from the code, not driven: the routes pass `new` (index.ts:279) and `edit` with the stored row (309-315) | The sync commit is `a91c1c0` on AntelopeJS/interface-data-api `feat/verify-interface-skill` (PR #91). @@ -89,10 +89,10 @@ The full alphabet is `@Access` with each mode and each of 8 override tables (non The check leaves out: -- the routes and the database: `pluck` is applied by `ListPage`, not by `ReadProperties`, so a database field a getter's `@Listable([...])` names is answered when it has read access; foreign, joined and computed values, `Validation`, modifiers and `dbName`, which nothing in `src` sets. +- the routes and the database. From `src/index.ts` the check runs only `DataController`, and from `src/components.ts` only `Query.ReadProperties` and `Query.WriteProperties`. Both files stay in `covers` so that a diff to them reruns the check, but the rest of them is not driven here: which action each route passes, `Validation.Lock` and `Unlock`, the get guard, and `ListPage`, which applies `pluck` (so a database field a getter's `@Listable([...])` names is answered when it has read access). The `verify-interface` features `access`, `modifiers`, `guards` and `listing` drive those through HTTP. Foreign, joined and computed values, modifiers, and `dbName`, which nothing in `src` sets, are left out too. - `@Mandatory`, `@Sortable`, `@Validator`, `@Foreign` and `@Filter`, which create the field and record its descriptor without changing access. - a class default on a property no decorator names: `writeTargetDefaults` stores defaults only for keys in `meta.fields`, and the oracle follows (`decorated`). -- getters and setters that read other fields, actions named like `Object.prototype` keys, three levels of inheritance, and more than two siblings. +- getters and setters that read other fields (the `verify-interface` journey `listing/pluck-modes` drives one), actions named like `Object.prototype` keys, three levels of inheritance, and more than two siblings. ## Confirm the check can fail diff --git a/.agents/skills/verify-interface/features/README.md b/.agents/skills/verify-interface/features/README.md index 9608266..e7c17ee 100644 --- a/.agents/skills/verify-interface/features/README.md +++ b/.agents/skills/verify-interface/features/README.md @@ -1,6 +1,8 @@ # Feature map -One file per feature. `covers:` lists the source globs it owns, `docs:` the pages a verdict judges, `journeys:` the journeys it runs, and `seeded-breaks/.patch` the break its journeys must catch. `pnpm exec antelopejs-verify map` checks that every user-facing file is covered. +One file per feature. `covers:` lists every source file that computes something one of the feature's journeys checks, `docs:` the pages a verdict judges, `journeys:` the journeys it runs, and `seeded-breaks/.patch` the break its journeys must catch. `pnpm exec antelopejs-verify map` checks that every user-facing file is covered. + +`plan` selects a feature only through `covers:`, so a file a journey depends on but its feature does not list is a break no verdict runs. A file goes under every feature whose journeys check its behaviour, not only the feature named after it. `src/index.ts` (the routes pick the action, lock and unlock modifiers, and run the guard), `src/components.ts` (the route parameters and the `Query` and `Validation` steps) and `src/metadata.ts` (every decorator) serve every feature, so every feature lists them. When a journey starts checking a new file, add that file to the journey's feature. | Feature | What the user does | Journeys | |---|---|---| @@ -14,7 +16,7 @@ One file per feature. `covers:` lists the source globs it owns, `docs:` the page | [modifiers](modifiers.md) | A per-request key selects a modifier's value. | localized-key | | [joined](joined.md) | A remote field is flattened onto the row. | joined-read | | [computed](computed.md) | A row answers a database-computed value. | computed-read | -| [guards](guards.md) | A module guards a read, amends a body or adds a route. | get-guard, amend-body, custom-route | +| [guards](guards.md) | A module guards a read, amends a body or adds a route. | get-guard, guard-unlocked, amend-body, custom-route | | [metadata](metadata.md) | A module author reads metadata and declares controllers. | effective-modes, declaration-errors, exports-runtime, consumer-compiles | | [smoke](smoke.md) | The fixed journey every verdict runs. | every-function, smoke-roundtrip | diff --git a/.agents/skills/verify-interface/features/access.md b/.agents/skills/verify-interface/features/access.md index 7d60a5d..e0f808e 100644 --- a/.agents/skills/verify-interface/features/access.md +++ b/.agents/skills/verify-interface/features/access.md @@ -1,7 +1,10 @@ --- covers: - - src/internal/read-properties.ts + - src/index.ts + - src/components.ts + - src/metadata.ts - src/internal/properties.ts + - src/internal/read-properties.ts docs: - docs/4.access-rights.md journeys: diff --git a/.agents/skills/verify-interface/features/computed.md b/.agents/skills/verify-interface/features/computed.md index 427bc43..4b12635 100644 --- a/.agents/skills/verify-interface/features/computed.md +++ b/.agents/skills/verify-interface/features/computed.md @@ -1,7 +1,10 @@ --- covers: - - src/internal/computed.ts + - src/index.ts + - src/components.ts - src/metadata.ts + - src/internal/computed.ts + - src/internal/list.ts docs: - docs/11.computed.md journeys: diff --git a/.agents/skills/verify-interface/features/crud.md b/.agents/skills/verify-interface/features/crud.md index 97eadbb..e350715 100644 --- a/.agents/skills/verify-interface/features/crud.md +++ b/.agents/skills/verify-interface/features/crud.md @@ -1,8 +1,14 @@ --- covers: - src/index.ts + - src/components.ts + - src/metadata.ts - src/internal/controller-types.ts + - src/internal/extractors.ts + - src/internal/guards.ts - src/internal/properties.ts + - src/internal/tables.ts + - src/internal/validation.ts docs: - README.md - docs/1.introduction.md diff --git a/.agents/skills/verify-interface/features/filters.md b/.agents/skills/verify-interface/features/filters.md index f12cb6f..ee47d2e 100644 --- a/.agents/skills/verify-interface/features/filters.md +++ b/.agents/skills/verify-interface/features/filters.md @@ -1,8 +1,12 @@ --- covers: + - src/index.ts + - src/components.ts + - src/metadata.ts - src/internal/default-filter.ts - - src/internal/list.ts - src/internal/filters.ts + - src/internal/list.ts + - src/internal/meta-records.ts docs: - docs/8.filters.md journeys: diff --git a/.agents/skills/verify-interface/features/foreign.md b/.agents/skills/verify-interface/features/foreign.md index 6155b0d..5512cf7 100644 --- a/.agents/skills/verify-interface/features/foreign.md +++ b/.agents/skills/verify-interface/features/foreign.md @@ -1,8 +1,13 @@ --- covers: + - src/index.ts + - src/components.ts + - src/metadata.ts - src/internal/foreign.ts + - src/internal/list.ts - src/internal/table-reference.ts - - src/index.ts + - src/internal/tables.ts + - src/internal/validation.ts docs: - docs/7.foreign-keys.md journeys: diff --git a/.agents/skills/verify-interface/features/guards.md b/.agents/skills/verify-interface/features/guards.md index 2929bb9..afe9e29 100644 --- a/.agents/skills/verify-interface/features/guards.md +++ b/.agents/skills/verify-interface/features/guards.md @@ -1,10 +1,14 @@ --- covers: - src/index.ts + - src/components.ts + - src/metadata.ts + - src/internal/validation.ts docs: - docs/3.routes.md journeys: - get-guard + - guard-unlocked - amend-body - custom-route - guard-semantics @@ -17,6 +21,7 @@ A module guards a read, amends a body or adds a route beyond CRUD. ## Sub-features - `get-guard`: `DefaultRoutes.WithGetGuard` denies a read by throwing (the stored discriminator never appears in the answer), a missing row answers 404 without the guard, and a plain `get` route is not guarded. +- `guard-unlocked`: a `WithGetGuard` guard on `/articles/translated` reads the localized `title` unlocked with the request's `x-content-language`: the English read passes it, a German read finds no title and answers the guard's 404, and the plain `get` answers both. - `amend-body`: a route that wraps `new`, parses the body with `Validation.ParseBody` and stamps a field stores the stamped value, while the plain `new` stores what was sent. - `custom-route`: a route declared with `func`, `args` and `method` is served next to the defaults. - `guard-semantics`: `WithGetGuard` allows the read on a normal return even of `false`, runs with the controller as `this` and the parsed Get parameters, runs for a stored row, and is skipped for a missing one (404). diff --git a/.agents/skills/verify-interface/features/joined.md b/.agents/skills/verify-interface/features/joined.md index 073efdb..70db677 100644 --- a/.agents/skills/verify-interface/features/joined.md +++ b/.agents/skills/verify-interface/features/joined.md @@ -1,8 +1,13 @@ --- covers: - - src/internal/joined.ts - - src/internal/deferred-joined-stream.ts + - src/index.ts + - src/components.ts - src/metadata.ts + - src/internal/deferred-joined-stream.ts + - src/internal/joined.ts + - src/internal/list.ts + - src/internal/table-reference.ts + - src/internal/tables.ts docs: - docs/10.joined.md journeys: diff --git a/.agents/skills/verify-interface/features/listing.md b/.agents/skills/verify-interface/features/listing.md index be01fb5..bdf6063 100644 --- a/.agents/skills/verify-interface/features/listing.md +++ b/.agents/skills/verify-interface/features/listing.md @@ -1,7 +1,12 @@ --- covers: + - src/index.ts + - src/components.ts + - src/metadata.ts + - src/internal/extractors.ts - src/internal/list.ts - src/internal/meta-records.ts + - src/internal/read-properties.ts docs: - docs/6.listable.md journeys: diff --git a/.agents/skills/verify-interface/features/metadata.md b/.agents/skills/verify-interface/features/metadata.md index 80820f8..42abfc7 100644 --- a/.agents/skills/verify-interface/features/metadata.md +++ b/.agents/skills/verify-interface/features/metadata.md @@ -1,9 +1,14 @@ --- covers: + - src/index.ts + - src/components.ts - src/metadata.ts - src/internal/field-types.ts + - src/internal/filters.ts + - src/internal/foreign.ts + - src/internal/meta-records.ts - src/internal/tables.ts - - src/index.ts + - src/internal/validation.ts docs: - docs/4.access-rights.md - docs/2.data-controllers.md diff --git a/.agents/skills/verify-interface/features/modifiers.md b/.agents/skills/verify-interface/features/modifiers.md index 0e5f3a3..0c22478 100644 --- a/.agents/skills/verify-interface/features/modifiers.md +++ b/.agents/skills/verify-interface/features/modifiers.md @@ -1,5 +1,9 @@ --- covers: + - src/index.ts + - src/components.ts + - src/metadata.ts + - src/internal/list.ts - src/internal/prototypes.ts - src/internal/validation.ts docs: @@ -14,7 +18,7 @@ A modifier that needs a per-request value takes it from a controller field. ## Sub-features -- `localized-key`: `@ModifierKey(LocalizationModifier)` on a field read from the `x-content-language` header selects the language a write stores and a read answers: English on create, French on edit, both kept in MongoDB, an edit without the title keeps both, and a list sorts on the title in the request locale. +- `localized-key`: `@ModifierKey(LocalizationModifier)` on a field read from the `x-content-language` header selects the language a write stores and a read answers: English on create, French on edit, both kept in MongoDB, an edit without the title keeps both, and a list sorts on the title in the request locale, ascending and descending. ## How to get to it (user POV) diff --git a/.agents/skills/verify-interface/features/route-options.md b/.agents/skills/verify-interface/features/route-options.md index 4d913de..4cee771 100644 --- a/.agents/skills/verify-interface/features/route-options.md +++ b/.agents/skills/verify-interface/features/route-options.md @@ -1,8 +1,11 @@ --- covers: + - src/index.ts - src/components.ts + - src/metadata.ts - src/internal/extractors.ts - - src/index.ts + - src/internal/list.ts + - src/internal/tables.ts docs: - docs/3.routes.md journeys: diff --git a/.agents/skills/verify-interface/features/validation.md b/.agents/skills/verify-interface/features/validation.md index 232ebb4..925161f 100644 --- a/.agents/skills/verify-interface/features/validation.md +++ b/.agents/skills/verify-interface/features/validation.md @@ -1,9 +1,10 @@ --- covers: - - src/internal/validation.ts - - src/internal/guards.ts - - src/components.ts - src/index.ts + - src/components.ts + - src/metadata.ts + - src/internal/guards.ts + - src/internal/validation.ts docs: - docs/5.validators.md journeys: diff --git a/.agents/skills/verify-interface/fixture/shop.ts.txt b/.agents/skills/verify-interface/fixture/shop.ts.txt index 5110606..93a4171 100644 --- a/.agents/skills/verify-interface/fixture/shop.ts.txt +++ b/.agents/skills/verify-interface/fixture/shop.ts.txt @@ -562,8 +562,13 @@ class Article extends Table.with(LocalizationModifier) { } class ArticleModel extends BasicDataModel(Article, "articles") {} +/** The get guard of docs/3.routes.md on a modifier-held field: an article answers only in a language it has a title in. */ +const translatedGet = DefaultRoutes.WithGetGuard(async function (_ctx, current) { + assert(typeof current.title === "string", 404, "Not Found"); +}); + @RegisterDataController() -class _ArticleAPI extends DataController(Article, DefaultRoutes.All, Controller("/articles")) { +class _ArticleAPI extends DataController(Article, { ...DefaultRoutes.All, translated: translatedGet }, Controller("/articles")) { @ModelReference() @Model(ArticleModel) declare articleModel: ArticleModel; diff --git a/.agents/skills/verify-interface/journeys-read.ts b/.agents/skills/verify-interface/journeys-read.ts index e940e10..a140110 100644 --- a/.agents/skills/verify-interface/journeys-read.ts +++ b/.agents/skills/verify-interface/journeys-read.ts @@ -148,6 +148,8 @@ const localizedKey = shopJourney("a modifier key read from a header selects the await shop.request("create Alpha in English", "POST", "/articles/new", { body: '{"title":"Alpha"}', headers: [`${LOCALE}: en`] }); const sorted = await shop.request("sort on the English title", "GET", "/articles/list?sortKey=title", { headers: [`${LOCALE}: en`] }); context.expect(sorted.folder, [equal("rows sort on the value in the request's locale", results(sorted).map((item) => pick(item, "title")), ["Alpha", "Hello"])]); + const descending = await shop.request("sort on the English title, descending", "GET", "/articles/list?sortKey=title&sortDirection=desc", { headers: [`${LOCALE}: en`] }); + context.expect(descending.folder, [equal("a sort on a modifier-held field follows sortDirection", results(descending).map((item) => pick(item, "title")), ["Hello", "Alpha"])]); }); const joinedRead = shopJourney("a joined field flattens one remote field onto the row and sorts and filters on it in the database", async (shop) => { @@ -197,6 +199,19 @@ const getGuard = shopJourney("a get guard denies by throwing and applies to its context.expect(plain.folder, [status(plain, 200), ...holds(plain, { title: "Memo" })]); }); +const guardUnlocked = shopJourney("a get guard reads the loaded model unlocked with the request's modifier key", async (shop) => { + const { context } = shop; + const created = await shop.request("create in English", "POST", "/articles/new", { body: '{"title":"Hello"}', headers: [`${LOCALE}: en`] }); + const id = text(pick(created.json, "_id")); + context.expect(created.folder, [status(created, 200)]); + const english = await shop.request("read through the guarded route in English", "GET", `/articles/translated?id=${id}`, { headers: [`${LOCALE}: en`] }); + context.expect(english.folder, [status(english, 200, "the guard sees the title unlocked in English"), ...holds(english, { title: "Hello" })]); + const german = await shop.request("read through the guarded route in German", "GET", `/articles/translated?id=${id}`, { headers: [`${LOCALE}: de`] }); + context.expect(german.folder, [status(german, 404, "the guard sees no German title"), equal("the guard's error is the answer", german.body, "Not Found")]); + const plain = await shop.request("read through the plain route in German", "GET", `/articles/get?id=${id}`, { headers: [`${LOCALE}: de`] }); + context.expect(plain.folder, [status(plain, 200, "the plain route is not guarded")]); +}); + const amendBody = shopJourney("a route that wraps new can amend the parsed body before it is written", async (shop) => { const { context } = shop; const stamped = await shop.request("new through the stamping route", "POST", "/documents/stamped", { body: '{"title":"Imp","source":"sent"}' }); @@ -271,6 +286,7 @@ export const READ_JOURNEYS = { "joined-read": joinedRead, "computed-read": computedRead, "get-guard": getGuard, + "guard-unlocked": guardUnlocked, "amend-body": amendBody, "custom-route": customRoute, "effective-modes": effectiveModes, From a26065c6bbf3d20ff57729eebc037d24de8944d3 Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Thu, 5 Nov 2026 19:56:04 +0000 Subject: [PATCH 35/36] docs(verify): keep Validation in the formal check's left-out list --- .agents/skills/formal-field-access/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.agents/skills/formal-field-access/SKILL.md b/.agents/skills/formal-field-access/SKILL.md index 3c631aa..15b2390 100644 --- a/.agents/skills/formal-field-access/SKILL.md +++ b/.agents/skills/formal-field-access/SKILL.md @@ -89,7 +89,7 @@ The full alphabet is `@Access` with each mode and each of 8 override tables (non The check leaves out: -- the routes and the database. From `src/index.ts` the check runs only `DataController`, and from `src/components.ts` only `Query.ReadProperties` and `Query.WriteProperties`. Both files stay in `covers` so that a diff to them reruns the check, but the rest of them is not driven here: which action each route passes, `Validation.Lock` and `Unlock`, the get guard, and `ListPage`, which applies `pluck` (so a database field a getter's `@Listable([...])` names is answered when it has read access). The `verify-interface` features `access`, `modifiers`, `guards` and `listing` drive those through HTTP. Foreign, joined and computed values, modifiers, and `dbName`, which nothing in `src` sets, are left out too. +- the routes and the database. From `src/index.ts` the check runs only `DataController`, and from `src/components.ts` only `Query.ReadProperties` and `Query.WriteProperties`. Both files stay in `covers` so that a diff to them reruns the check, but the rest of them is not driven here: which action each route passes, `Validation.Lock` and `Unlock`, the get guard, and `ListPage`, which applies `pluck` (so a database field a getter's `@Listable([...])` names is answered when it has read access). The `verify-interface` features `access`, `modifiers`, `guards` and `listing` drive those through HTTP. Foreign, joined and computed values, the rest of `Validation`, modifiers, and `dbName`, which nothing in `src` sets, are left out too. - `@Mandatory`, `@Sortable`, `@Validator`, `@Foreign` and `@Filter`, which create the field and record its descriptor without changing access. - a class default on a property no decorator names: `writeTargetDefaults` stores defaults only for keys in `meta.fields`, and the oracle follows (`decorated`). - getters and setters that read other fields (the `verify-interface` journey `listing/pluck-modes` drives one), actions named like `Object.prototype` keys, three levels of inheritance, and more than two siblings. From c74ad8b446c7ce4b5f7871c266383f3f7e65d5be Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Thu, 5 Nov 2026 19:57:36 +0000 Subject: [PATCH 36/36] docs(skills): list every journey in the feature map and every covered file in the formal skill --- .agents/skills/formal-field-access/SKILL.md | 2 +- .../verify-interface/features/README.md | 23 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/.agents/skills/formal-field-access/SKILL.md b/.agents/skills/formal-field-access/SKILL.md index 15b2390..b59591b 100644 --- a/.agents/skills/formal-field-access/SKILL.md +++ b/.agents/skills/formal-field-access/SKILL.md @@ -1,6 +1,6 @@ --- name: formal-field-access -description: Bounded exhaustive check of field exposure and write gating in @antelopejs/interface-data-api (AccessMode, @Access overrides, @Listable, @Computed, @Joined, derived controllers), run against the real decorators, ReadProperties and WriteProperties. Use when a change touches src/metadata.ts, src/internal/read-properties.ts, src/internal/properties.ts or src/internal/meta-records.ts, or when a change to access modes, descriptors, pluck or metadata inheritance needs proof that no field leaks and no body key bypasses its access. +description: Bounded exhaustive check of field exposure and write gating in @antelopejs/interface-data-api (AccessMode, @Access overrides, @Listable, @Computed, @Joined, derived controllers), run against the real decorators, ReadProperties and WriteProperties. Use when a change touches src/metadata.ts, src/components.ts, src/index.ts, src/internal/read-properties.ts, src/internal/properties.ts, src/internal/meta-records.ts or src/internal/prototypes.ts, or when a change to access modes, descriptors, pluck or metadata inheritance needs proof that no field leaks and no body key bypasses its access. --- # Formal check: field exposure and write gating diff --git a/.agents/skills/verify-interface/features/README.md b/.agents/skills/verify-interface/features/README.md index e7c17ee..7de261e 100644 --- a/.agents/skills/verify-interface/features/README.md +++ b/.agents/skills/verify-interface/features/README.md @@ -6,18 +6,18 @@ One file per feature. `covers:` lists every source file that computes something | Feature | What the user does | Journeys | |---|---|---| -| [crud](crud.md) | A client calls the five default routes of a data controller. | crud-lifecycle, crud-errors, crud-subset | -| [route-options](route-options.md) | A route is customized with `WithOptions`. | option-overrides | -| [access](access.md) | `@Access` decides what each route reads and writes. | access-modes | -| [validation](validation.md) | `@Mandatory`, `@Validator` and `@Optional` check the body. | mandatory-and-validators, parsed-values, unstorable-body, error-codes | -| [listing](listing.md) | A client pages, sorts and narrows a list. | pluck-modes, pagination, sorting | -| [foreign](foreign.md) | A key field answers the record it points to. | foreign-resolve, foreign-raw | -| [filters](filters.md) | A list request filters rows. | default-filter, custom-filters | +| [crud](crud.md) | A client calls the five default routes of a data controller. | crud-lifecycle, crud-errors, crud-subset, new-row-shape, edit-setters, edit-answers-foreign, unstorable-body | +| [route-options](route-options.md) | A route is customized with `WithOptions`. | option-overrides, list-unknown, issue-90-edit-index, no-mandatory-strings, no-pluck-strings, no-model-500, option-beats-query | +| [access](access.md) | `@Access` decides what each route reads and writes. | access-modes, listable-alone, read-overrides | +| [validation](validation.md) | `@Mandatory`, `@Validator` and `@Optional` check the body. | mandatory-and-validators, parsed-values, error-codes, empty-forms, mandatory-before-validators, holey-body | +| [listing](listing.md) | A client pages, sorts and narrows a list. | pluck-modes, pagination, sorting, issue-92-getter-mode | +| [foreign](foreign.md) | A key field answers the record it points to. | foreign-resolve, foreign-raw, issue-93-multi-foreign, no-foreign-strings, foreign-declaration-throws, foreign-unplucked | +| [filters](filters.md) | A list request filters rows. | default-filter, custom-filters, filter-details, route-filters-list-only | | [modifiers](modifiers.md) | A per-request key selects a modifier's value. | localized-key | -| [joined](joined.md) | A remote field is flattened onto the row. | joined-read | -| [computed](computed.md) | A row answers a database-computed value. | computed-read | -| [guards](guards.md) | A module guards a read, amends a body or adds a route. | get-guard, guard-unlocked, amend-body, custom-route | -| [metadata](metadata.md) | A module author reads metadata and declares controllers. | effective-modes, declaration-errors, exports-runtime, consumer-compiles | +| [joined](joined.md) | A remote field is flattened onto the row. | joined-read, joined-access | +| [computed](computed.md) | A row answers a database-computed value. | computed-read, computed-access | +| [guards](guards.md) | A module guards a read, amends a body or adds a route. | get-guard, guard-unlocked, amend-body, custom-route, guard-semantics | +| [metadata](metadata.md) | A module author reads metadata and declares controllers. | effective-modes, declaration-errors, exports-runtime, consumer-compiles, derived-own-model, foreign-target-meta | | [smoke](smoke.md) | The fixed journey every verdict runs. | every-function, smoke-roundtrip | ## Known issues, driven on purpose @@ -33,7 +33,6 @@ Every documented behaviour of the README, `docs/` and the TSDoc has a journey ab | `Unregistered Database Table` (docs/2) | Needs a registered schema that lacks the table class; `@RegisterTable` registers the table. | | Class metadata and `schema` option name different schemas, the declaration throws (docs/7, docs/10) | Needs a table class whose metadata names a second schema; declaration-time only, no route reaches it. | | `@Joined` `remoteIndex` (docs/10) | Needs an indexed non-key column on the remote table. | -| `@Foreign` `targetMeta` joined fields (docs/7) | Needs a second data controller's metadata passed to the decorator. | | `Query.List` and `Query.ListPage` composed by a custom route, deferred lookup order, bare `count()` skips lookups, `changes()` (docs/10) | Advanced composition by internal helpers; the default list route is driven for the same joined and computed fields. | | `useIndex`: an indexed equality filter reads through the index (docs/8) | Not observable from an answer; only the query plan differs. | | `noIndex` changes where the sort sits, the provider decides how it runs (docs/6) | Both settings answer the same rows; the sort is checked for both. |