Minor Changes
-
6083daf: OpenAPIConnector now warns on contract-less object schemas (#1240). A consumed
type: 'object'node with noproperties, noadditionalPropertiesand no
$ref/oneOf/anyOf/allOfemits anEMPTY_OBJECT_SCHEMAParseWarning—
under Fastify (fast-json-stringify) such a field serializes to{}at runtime,
stripping every key.parse()now logs collected warnings viaconsole.warn
so CLI/vite-plugin users see them without switching toparseWithWarnings();
the structured API is unchanged. Generated output is untouched (object fields
already emitRecord<string, unknown>). -
5593ef2: List column binding + OpenAPI field enrichment (#1255):
column(name, overrides?)onuseListPage— spread onto a PrimeVue
<Column v-bind="list.column('botUuid')">to derivefield+header
from one source while keeping the#bodytemplate. Header resolution:
i18n key > override > inlineaddColumnheader >manager.fields[].labelhumanized field name. Pure read, additive — explicit
#columnsslots
andaddColumnare untouched.OpenAPIConnectoropt-ininferLabels: 'humanize'— emit a humanized
label (botUuid→ "Bot Uuid") when a field has nodescription.OpenAPIConnectoropt-ininferReadOnly: true— fields present in
responses but in no request-body schema becomereadOnly: true(entities
without write operations get all fields readOnly); schema-declared
readOnlyalways wins.- New
humanizeFieldNameutil exported from@quazardous/qdadm/utils.
Both connector options are off by default: enabling them changes generated
manager output (by design — regen and commit under your drift gate). -
a78429b: Four TypeScript consumer-experience fixes (#1253):
QdadmManagerRegistry— consumer-augmentable interface (vue-router
RouteNamedMappattern). Declare your entity-name → manager-subclass map
once viadeclare module '@quazardous/qdadm'andgetManager('bots')/
useEntity('bots')return the concrete subclass; unregistered names keep
the historicalEntityManager<T>fallback.StorageResolution/ResolvedStorageexported from the main barrel —
typing aresolveStorage()override no longer needsReturnType<...>
archaeology. (undefinedwas already legal in the union.)baseClassoption ingenerateManagers— global or per-entity
{ import, name }; generated managers extend (classMode) or instantiate
(instance mode) your own EntityManager subclass instead of the hardwired
EntityManager.VanillaJsonEditor.modeaccepts'tree' | 'text' | 'table'string
literals (the JSDoc example finally typechecks); theModeenum is also
re-exported from@quazardous/qdadm/editors.