@klum-db/lobby 0.3.0-pre.1 → 0.4.0-pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,4 @@
1
- import { Vault, VaultMeta, IndexDef, Operator, LiveQuery, LiveAggregation, AggregateSpec, AggregateResult, RetrieveHit, Collection, Noydb, Query, JoinStrategy, ChangeEvent } from '@noy-db/hub/cargo';
2
- import { DecryptedRecord } from '@noy-db/hub/bundle';
1
+ import { Vault, DecryptedRecord, VaultMeta, IndexDef, Operator, LiveQuery, LiveAggregation, AggregateSpec, AggregateResult, RetrieveHit, Collection, Noydb, Query, JoinStrategy, ChangeEvent } from '@noy-db/hub/cargo';
3
2
 
4
3
  /**
5
4
  * @klum-db/lobby interchange — field-authority conflict resolution (FR-4).
@@ -184,6 +183,27 @@ interface VaultRegistryRow {
184
183
  readonly createdAt: number;
185
184
  /** Which VaultGroup this shard belongs to (registry is shared across groups). */
186
185
  readonly group: string;
186
+ /**
187
+ * The shard's portal vault handle — the ULID that `@noy-db/hub/share-link`
188
+ * links address (#43). Absent until a portal is provisioned for the shard.
189
+ */
190
+ readonly handle?: string;
191
+ /** Portal bookkeeping (#42): enabled flag + invite audit trail. */
192
+ readonly portal?: PortalState;
193
+ }
194
+ /** One issued portal invite in the fleet audit trail (#42). Safe fields only — never the encoded invite. */
195
+ interface PortalInviteAuditRef {
196
+ readonly tokenId: string;
197
+ readonly userId: string;
198
+ readonly kind: 'invite' | 'rebind';
199
+ readonly issuedAt: number;
200
+ readonly expiresAt: string;
201
+ readonly revokedAt?: number;
202
+ }
203
+ /** Portal state on a fleet registry row (#42). */
204
+ interface PortalState {
205
+ readonly enabledAt: number;
206
+ readonly invites: readonly PortalInviteAuditRef[];
187
207
  }
188
208
  /** How a VaultGroup maps records to shards. */
189
209
  interface ShardingConfig<T> {
@@ -885,4 +905,4 @@ declare class ShardedGroupedQuery<T, R, F extends string> {
885
905
  aggregate<Spec extends AggregateSpec>(spec: Spec): CrossVaultGroupedAggregation<R, F, Spec>;
886
906
  }
887
907
 
888
- export { type MergeStrategy as A, type MigrationStatusRow as B, type CapturedBlueprint as C, type DecryptedMergeOptions as D, type SchemaManifestRow as E, type FanoutQueryOptions as F, type GroupedRow as G, type SchemaRolloutResult as H, type InsightAutoPushConfig as I, ShardedCollection as J, ShardedGroupedQuery as K, type LiveQueryOptions as L, type MergeCompartmentOptions as M, ShardedQuery as N, type ShardingConfig as O, type SurfaceStatus as P, type VaultRegistryRow as Q, type RefreshInsightsResult as R, StateManagementVault as S, mergeCompartment as T, mergeDecryptedRecords as U, VaultGroup as V, resolveFieldAuthority as W, resolveRecordByFieldAuthority as X, type VaultTemplate as a, type SkippedVault as b, type MergeReport as c, type SurfaceDirection as d, type SurfaceConflictPolicy as e, type SurfaceRow as f, type VaultGroupOptions as g, CrossVaultAggregation as h, type CrossVaultDerivationContext as i, type CrossVaultDerivationSpec as j, CrossVaultGroupedAggregation as k, type CrossVaultLiveAggregation as l, type CrossVaultLiveQuery as m, type DeploymentEvent as n, type FanoutResult as o, type FederatedRetrieveHit as p, type FederatedRetrieveOptions as q, type FederatedRetrieveResult as r, type FederationMeta as s, type FieldAuthorityInputs as t, type FieldAuthorityPolicy as u, FieldAuthorityPolicyMissingError as v, type FieldAuthorityRule as w, FieldLevelDeferredError as x, type GroupMeta as y, type MergeConflict as z };
908
+ export { type MergeConflict as A, type MergeStrategy as B, type CrossVaultDerivationContext as C, type DecryptedMergeOptions as D, type MigrationStatusRow as E, type FanoutQueryOptions as F, type GroupedRow as G, type PortalState as H, type InsightAutoPushConfig as I, type SchemaManifestRow as J, type SchemaRolloutResult as K, type LiveQueryOptions as L, type MergeCompartmentOptions as M, ShardedCollection as N, ShardedGroupedQuery as O, type PortalInviteAuditRef as P, ShardedQuery as Q, type RefreshInsightsResult as R, type SkippedVault as S, type ShardingConfig as T, type SurfaceStatus as U, VaultGroup as V, mergeCompartment as W, mergeDecryptedRecords as X, resolveFieldAuthority as Y, resolveRecordByFieldAuthority as Z, type VaultRegistryRow as a, type VaultTemplate as b, StateManagementVault as c, type MergeReport as d, type SurfaceDirection as e, type SurfaceConflictPolicy as f, type SurfaceRow as g, type VaultGroupOptions as h, type CapturedBlueprint as i, CrossVaultAggregation as j, type CrossVaultDerivationSpec as k, CrossVaultGroupedAggregation as l, type CrossVaultLiveAggregation as m, type CrossVaultLiveQuery as n, type DeploymentEvent as o, type FanoutResult as p, type FederatedRetrieveHit as q, type FederatedRetrieveOptions as r, type FederatedRetrieveResult as s, type FederationMeta as t, type FieldAuthorityInputs as u, type FieldAuthorityPolicy as v, FieldAuthorityPolicyMissingError as w, type FieldAuthorityRule as x, FieldLevelDeferredError as y, type GroupMeta as z };
@@ -1,5 +1,4 @@
1
- import { Vault, VaultMeta, IndexDef, Operator, LiveQuery, LiveAggregation, AggregateSpec, AggregateResult, RetrieveHit, Collection, Noydb, Query, JoinStrategy, ChangeEvent } from '@noy-db/hub/cargo';
2
- import { DecryptedRecord } from '@noy-db/hub/bundle';
1
+ import { Vault, DecryptedRecord, VaultMeta, IndexDef, Operator, LiveQuery, LiveAggregation, AggregateSpec, AggregateResult, RetrieveHit, Collection, Noydb, Query, JoinStrategy, ChangeEvent } from '@noy-db/hub/cargo';
3
2
 
4
3
  /**
5
4
  * @klum-db/lobby interchange — field-authority conflict resolution (FR-4).
@@ -184,6 +183,27 @@ interface VaultRegistryRow {
184
183
  readonly createdAt: number;
185
184
  /** Which VaultGroup this shard belongs to (registry is shared across groups). */
186
185
  readonly group: string;
186
+ /**
187
+ * The shard's portal vault handle — the ULID that `@noy-db/hub/share-link`
188
+ * links address (#43). Absent until a portal is provisioned for the shard.
189
+ */
190
+ readonly handle?: string;
191
+ /** Portal bookkeeping (#42): enabled flag + invite audit trail. */
192
+ readonly portal?: PortalState;
193
+ }
194
+ /** One issued portal invite in the fleet audit trail (#42). Safe fields only — never the encoded invite. */
195
+ interface PortalInviteAuditRef {
196
+ readonly tokenId: string;
197
+ readonly userId: string;
198
+ readonly kind: 'invite' | 'rebind';
199
+ readonly issuedAt: number;
200
+ readonly expiresAt: string;
201
+ readonly revokedAt?: number;
202
+ }
203
+ /** Portal state on a fleet registry row (#42). */
204
+ interface PortalState {
205
+ readonly enabledAt: number;
206
+ readonly invites: readonly PortalInviteAuditRef[];
187
207
  }
188
208
  /** How a VaultGroup maps records to shards. */
189
209
  interface ShardingConfig<T> {
@@ -885,4 +905,4 @@ declare class ShardedGroupedQuery<T, R, F extends string> {
885
905
  aggregate<Spec extends AggregateSpec>(spec: Spec): CrossVaultGroupedAggregation<R, F, Spec>;
886
906
  }
887
907
 
888
- export { type MergeStrategy as A, type MigrationStatusRow as B, type CapturedBlueprint as C, type DecryptedMergeOptions as D, type SchemaManifestRow as E, type FanoutQueryOptions as F, type GroupedRow as G, type SchemaRolloutResult as H, type InsightAutoPushConfig as I, ShardedCollection as J, ShardedGroupedQuery as K, type LiveQueryOptions as L, type MergeCompartmentOptions as M, ShardedQuery as N, type ShardingConfig as O, type SurfaceStatus as P, type VaultRegistryRow as Q, type RefreshInsightsResult as R, StateManagementVault as S, mergeCompartment as T, mergeDecryptedRecords as U, VaultGroup as V, resolveFieldAuthority as W, resolveRecordByFieldAuthority as X, type VaultTemplate as a, type SkippedVault as b, type MergeReport as c, type SurfaceDirection as d, type SurfaceConflictPolicy as e, type SurfaceRow as f, type VaultGroupOptions as g, CrossVaultAggregation as h, type CrossVaultDerivationContext as i, type CrossVaultDerivationSpec as j, CrossVaultGroupedAggregation as k, type CrossVaultLiveAggregation as l, type CrossVaultLiveQuery as m, type DeploymentEvent as n, type FanoutResult as o, type FederatedRetrieveHit as p, type FederatedRetrieveOptions as q, type FederatedRetrieveResult as r, type FederationMeta as s, type FieldAuthorityInputs as t, type FieldAuthorityPolicy as u, FieldAuthorityPolicyMissingError as v, type FieldAuthorityRule as w, FieldLevelDeferredError as x, type GroupMeta as y, type MergeConflict as z };
908
+ export { type MergeConflict as A, type MergeStrategy as B, type CrossVaultDerivationContext as C, type DecryptedMergeOptions as D, type MigrationStatusRow as E, type FanoutQueryOptions as F, type GroupedRow as G, type PortalState as H, type InsightAutoPushConfig as I, type SchemaManifestRow as J, type SchemaRolloutResult as K, type LiveQueryOptions as L, type MergeCompartmentOptions as M, ShardedCollection as N, ShardedGroupedQuery as O, type PortalInviteAuditRef as P, ShardedQuery as Q, type RefreshInsightsResult as R, type SkippedVault as S, type ShardingConfig as T, type SurfaceStatus as U, VaultGroup as V, mergeCompartment as W, mergeDecryptedRecords as X, resolveFieldAuthority as Y, resolveRecordByFieldAuthority as Z, type VaultRegistryRow as a, type VaultTemplate as b, StateManagementVault as c, type MergeReport as d, type SurfaceDirection as e, type SurfaceConflictPolicy as f, type SurfaceRow as g, type VaultGroupOptions as h, type CapturedBlueprint as i, CrossVaultAggregation as j, type CrossVaultDerivationSpec as k, CrossVaultGroupedAggregation as l, type CrossVaultLiveAggregation as m, type CrossVaultLiveQuery as n, type DeploymentEvent as o, type FanoutResult as p, type FederatedRetrieveHit as q, type FederatedRetrieveOptions as r, type FederatedRetrieveResult as s, type FederationMeta as t, type FieldAuthorityInputs as u, type FieldAuthorityPolicy as v, FieldAuthorityPolicyMissingError as w, type FieldAuthorityRule as x, FieldLevelDeferredError as y, type GroupMeta as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@klum-db/lobby",
3
- "version": "0.3.0-pre.1",
3
+ "version": "0.4.0-pre.1",
4
4
  "description": "klum-db Lobby — orchestrates a group of sovereign noy-db vaults (federation, interchange, custody). The outward framework to noy-db's inward vault.",
5
5
  "license": "MIT",
6
6
  "author": "vLannaAi <vicio@lanna.ai>",
@@ -41,10 +41,11 @@
41
41
  "node": ">=22.0.0"
42
42
  },
43
43
  "peerDependencies": {
44
- "@noy-db/as-xlsx": "^0.3.0-pre.1",
45
- "@noy-db/hub": "^0.3.0-pre.1",
46
- "@noy-db/in-devtools": "^0.3.0-pre.1",
47
- "@noy-db/to-meter": "^0.3.0-pre.1"
44
+ "@noy-db/as-xlsx": "^0.4.0-pre.0",
45
+ "@noy-db/hub": "^0.4.0-pre.1",
46
+ "@noy-db/in-devtools": "^0.4.0-pre.0",
47
+ "@noy-db/to-meter": "^0.4.0-pre.0",
48
+ "@noy-db/on-magic-link": "^0.4.0-pre.1"
48
49
  },
49
50
  "peerDependenciesMeta": {
50
51
  "@noy-db/in-devtools": {
@@ -52,16 +53,20 @@
52
53
  },
53
54
  "@noy-db/to-meter": {
54
55
  "optional": true
56
+ },
57
+ "@noy-db/on-magic-link": {
58
+ "optional": true
55
59
  }
56
60
  },
57
61
  "devDependencies": {
58
62
  "@eslint/js": "^9.18.0",
59
- "@noy-db/as-xlsx": "0.3.0-pre.1",
60
- "@noy-db/as-zip": "0.3.0-pre.1",
61
- "@noy-db/hub": "0.3.0-pre.1",
62
- "@noy-db/in-devtools": "0.3.0-pre.1",
63
- "@noy-db/to-memory": "0.3.0-pre.1",
64
- "@noy-db/to-meter": "0.3.0-pre.1",
63
+ "@noy-db/as-xlsx": "0.4.0-pre.1",
64
+ "@noy-db/as-zip": "0.4.0-pre.1",
65
+ "@noy-db/hub": "0.4.0-pre.1",
66
+ "@noy-db/in-devtools": "0.4.0-pre.1",
67
+ "@noy-db/on-magic-link": "0.4.0-pre.1",
68
+ "@noy-db/to-memory": "0.4.0-pre.1",
69
+ "@noy-db/to-meter": "0.4.0-pre.1",
65
70
  "@types/node": "^22.0.0",
66
71
  "eslint": "^9.18.0",
67
72
  "tsup": "^8.4.0",