Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@contember/bindx

Package Overview
Dependencies
Maintainers
4
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@contember/bindx - npm Package Compare versions

Comparing version
0.1.34
to
0.1.35
+1
-1
dist/index.d.ts

@@ -14,3 +14,3 @@ /**

export type { EntitySnapshot, FieldSnapshot, HasOneRelationSnapshot, HasManySnapshot, EntityState, LoadStatus, } from './store/snapshots.js';
export { scalar, hasOne, hasMany, defineSchema, entityDef, roleEntityDef, SchemaRegistry, ContemberSchema, SchemaLoader } from './schema/index.js';
export { scalar, enumScalar, hasOne, hasMany, defineSchema, entityDef, roleEntityDef, SchemaRegistry, ContemberSchema, SchemaLoader } from './schema/index.js';
export type { UnionToIntersection, RoleNames, CommonEntity, EntityForRoles, ResolveEntity, SingleRoleMap, DefaultRole, } from './schema/index.js';

@@ -17,0 +17,0 @@ export { DEFAULT_ROLE } from './schema/index.js';

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}

@@ -110,9 +110,34 @@ import { type SnapshotStore } from '../store/SnapshotStore.js';

/**
* Materializes embedded relation data in an entity's snapshot into proper
* store entities and relations. This normalizes inline objects (e.g.
* `reviews: [{ reviewType: 'expert' }]`) into tracked entities with temp IDs,
* enabling proper post-persist ID mapping and commit.
* Materializes all relation state into trackable store entities on the
* create path: placeholder-backed 'creating' hasOne relations AND embedded
* inline objects/arrays in the snapshot data. After this pass, the
* collection phase is a pure read over the store.
*
* Called recursively for every newly materialized temp entity (both from
* placeholder and embedded paths), since a newly-created entity can itself
* carry further embedded or placeholder data.
*/
private materializeEntityRelations;
private materializeForCreate;
/**
* Materializes placeholder-backed 'creating' hasOne relations only. Safe
* to call on existing (server-side) entities — never touches hasMany state
* or embedded snapshot data, because for an already-persisted parent the
* store-level hasMany/connected state is already authoritative.
*
* Newly created temp entities below still go through the full create-path
* materialization, since they have no server state yet.
*/
private materializeForUpdate;
/**
* Materializes a hasOne relation in the 'creating' state with non-empty
* placeholderData (PlaceholderHandle pattern). Creates a real store entity
* from the placeholder data and flips the relation to 'connected' with a
* temp ID, so subsequent collection goes through the standard
* tempId-inline-create branch and post-persist ID mapping works.
*
* Returns true if materialization happened (caller should skip embedded
* processing for this field).
*/
private materializePlaceholderHasOne;
/**
* Materializes an embedded hasMany array into store entities.

@@ -119,0 +144,0 @@ * Skips if the hasMany state already has store-managed entities.

@@ -1,1 +0,1 @@

{"version":3,"file":"MutationCollector.d.ts","sourceRoot":"","sources":["../../src/persistence/MutationCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,2BAA2B,CAAA;AAEvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAGvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,kDAAkD;IAClD,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACpC,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;IAO7D,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPhC,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiC;gBAGlD,KAAK,EAAE,aAAa,EACpB,cAAc,EAAE,sBAAsB;IAGxD;;;;OAIG;IACH,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAMnD;;;;OAIG;IACH,kBAAkB,IAAI,WAAW,CAAC,MAAM,CAAC;IAIzC;;;OAGG;IACH,oBAAoB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAMnD;;;OAGG;IACH,eAAe,CACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACd,oBAAoB,GAAG,IAAI;IAkD9B;;;OAGG;IACH,iBAAiB,CAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAqBjC;;;OAGG;IACH,iBAAiB,CAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAiDjC;;;OAGG;IACH,iBAAiB,CAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA6CjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAuE9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8BhC;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAuEhC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA+BjC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgDzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAuBlC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IA0ClC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA8CjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAa1B"}
{"version":3,"file":"MutationCollector.d.ts","sourceRoot":"","sources":["../../src/persistence/MutationCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,2BAA2B,CAAA;AAEvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAGvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,kDAAkD;IAClD,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACpC,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;IAO7D,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPhC,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiC;gBAGlD,KAAK,EAAE,aAAa,EACpB,cAAc,EAAE,sBAAsB;IAGxD;;;;OAIG;IACH,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAMnD;;;;OAIG;IACH,kBAAkB,IAAI,WAAW,CAAC,MAAM,CAAC;IAIzC;;;OAGG;IACH,oBAAoB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAMnD;;;OAGG;IACH,eAAe,CACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACd,oBAAoB,GAAG,IAAI;IAkD9B;;;OAGG;IACH,iBAAiB,CAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA2BjC;;;OAGG;IACH,iBAAiB,CAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAiDjC;;;OAGG;IACH,iBAAiB,CAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA6CjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAgF9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8BhC;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAuEhC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA+BjC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgDzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;;;;;;;;OASG;IACH,OAAO,CAAC,4BAA4B;IAwBpC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IA0ClC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA8CjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAa1B"}
{
"name": "@contember/bindx",
"version": "0.1.34",
"version": "0.1.35",
"description": "Type-safe data binding framework (core)",

@@ -20,3 +20,3 @@ "type": "module",

"dependencies": {
"@contember/bindx-client": "0.1.34",
"@contember/bindx-client": "0.1.35",
"@contember/graphql-builder": "^2.1.0-beta.1",

@@ -23,0 +23,0 @@ "@contember/graphql-client": "^2.1.0-beta.1"

@@ -129,3 +129,3 @@ /**

// Schema utilities
export { scalar, hasOne, hasMany, defineSchema, entityDef, roleEntityDef, SchemaRegistry, ContemberSchema, SchemaLoader } from './schema/index.js'
export { scalar, enumScalar, hasOne, hasMany, defineSchema, entityDef, roleEntityDef, SchemaRegistry, ContemberSchema, SchemaLoader } from './schema/index.js'

@@ -132,0 +132,0 @@ // Role types

@@ -152,2 +152,8 @@ import { type SnapshotStore, isPersistedId, isTempId } from '../store/SnapshotStore.js'

// Materialize placeholder-backed creating-state hasOne relations before
// collecting, so the collection phase can remain a pure read over the
// store. Embedded data is not materialized here — for existing
// (server-side) parents, hasMany state is already authoritative.
this.materializeForUpdate(entityType, entityId)
// Collect relation changes

@@ -192,3 +198,3 @@ this.collectRelationChanges(entityType, entityId, mutation)

// then collect from store for consistent tracking and post-persist ID mapping
this.materializeEntityRelations(entityType, entityId)
this.materializeForCreate(entityType, entityId)

@@ -383,8 +389,17 @@ // Collect relation values from store

case 'creating':
// Create new entity with placeholder data
if (Object.keys(placeholderData).length > 0) {
const createData = this.processNestedData(placeholderData)
return { create: createData }
// Empty placeholderData is a legitimate no-op (user opened a create
// form but typed nothing). Non-empty placeholderData reaching this
// branch is an invariant violation — the materialization pass
// (materializeForCreate / materializeForUpdate) must run before
// collection and flip the relation to 'connected' with a tempId.
// Reaching here means a caller skipped materialization, which
// would produce a mutation the server accepts but whose returned
// ID we can't map back (see issue #23).
if (Object.keys(placeholderData).length === 0) {
return null
}
return null
throw new Error(
`Invariant: hasOne relation ${entityType}.${fieldName} in 'creating' state ` +
`with non-empty placeholderData must be materialized before collection`,
)

@@ -598,11 +613,15 @@ default:

// ==================== Embedded Data Materialization ====================
// ==================== Materialization ====================
/**
* Materializes embedded relation data in an entity's snapshot into proper
* store entities and relations. This normalizes inline objects (e.g.
* `reviews: [{ reviewType: 'expert' }]`) into tracked entities with temp IDs,
* enabling proper post-persist ID mapping and commit.
* Materializes all relation state into trackable store entities on the
* create path: placeholder-backed 'creating' hasOne relations AND embedded
* inline objects/arrays in the snapshot data. After this pass, the
* collection phase is a pure read over the store.
*
* Called recursively for every newly materialized temp entity (both from
* placeholder and embedded paths), since a newly-created entity can itself
* carry further embedded or placeholder data.
*/
private materializeEntityRelations(entityType: string, entityId: string): void {
private materializeForCreate(entityType: string, entityId: string): void {
if (!this.schemaProvider.hasEntity(entityType)) return

@@ -617,11 +636,16 @@

for (const fieldName of relationFields) {
const value = data[fieldName]
if (value === null || value === undefined) continue
const relationType = this.schemaProvider.getRelationType(entityType, fieldName)
if (relationType === 'hasOne' && typeof value === 'object' && !Array.isArray(value)) {
this.materializeEmbeddedHasOne(entityType, entityId, fieldName, value as Record<string, unknown>)
} else if (relationType === 'hasMany' && Array.isArray(value) && value.length > 0) {
this.materializeEmbeddedHasMany(entityType, entityId, fieldName, value)
if (relationType === 'hasOne') {
if (this.materializePlaceholderHasOne(entityType, entityId, fieldName)) continue
const value = data[fieldName]
if (value !== null && value !== undefined && typeof value === 'object' && !Array.isArray(value)) {
this.materializeEmbeddedHasOne(entityType, entityId, fieldName, value as Record<string, unknown>)
}
} else if (relationType === 'hasMany') {
const value = data[fieldName]
if (Array.isArray(value) && value.length > 0) {
this.materializeEmbeddedHasMany(entityType, entityId, fieldName, value)
}
}

@@ -632,2 +656,54 @@ }

/**
* Materializes placeholder-backed 'creating' hasOne relations only. Safe
* to call on existing (server-side) entities — never touches hasMany state
* or embedded snapshot data, because for an already-persisted parent the
* store-level hasMany/connected state is already authoritative.
*
* Newly created temp entities below still go through the full create-path
* materialization, since they have no server state yet.
*/
private materializeForUpdate(entityType: string, entityId: string): void {
if (!this.schemaProvider.hasEntity(entityType)) return
for (const fieldName of this.schemaProvider.getRelationFields(entityType)) {
if (this.schemaProvider.getRelationType(entityType, fieldName) !== 'hasOne') continue
this.materializePlaceholderHasOne(entityType, entityId, fieldName)
}
}
/**
* Materializes a hasOne relation in the 'creating' state with non-empty
* placeholderData (PlaceholderHandle pattern). Creates a real store entity
* from the placeholder data and flips the relation to 'connected' with a
* temp ID, so subsequent collection goes through the standard
* tempId-inline-create branch and post-persist ID mapping works.
*
* Returns true if materialization happened (caller should skip embedded
* processing for this field).
*/
private materializePlaceholderHasOne(
entityType: string,
entityId: string,
fieldName: string,
): boolean {
const relation = this.store.getRelation(entityType, entityId, fieldName)
if (!relation || relation.state !== 'creating') return false
if (Object.keys(relation.placeholderData).length === 0) return false
const targetType = this.schemaProvider.getRelationTarget(entityType, fieldName)
if (!targetType) return false
const tempId = this.store.createEntity(targetType, relation.placeholderData)
this.store.setRelation(entityType, entityId, fieldName, {
currentId: tempId,
state: 'connected',
placeholderData: {},
})
// Newly created temp entity — walk its embedded/placeholder data too.
this.materializeForCreate(targetType, tempId)
return true
}
/**
* Materializes an embedded hasMany array into store entities.

@@ -671,3 +747,3 @@ * Skips if the hasMany state already has store-managed entities.

// Recursively materialize nested relations in the new entity
this.materializeEntityRelations(targetType, tempId)
this.materializeForCreate(targetType, tempId)
}

@@ -722,3 +798,3 @@

// Recursively materialize nested relations
this.materializeEntityRelations(targetType, tempId)
this.materializeForCreate(targetType, tempId)
}

@@ -725,0 +801,0 @@