@livestore/common 0.4.0-dev.20 → 0.4.0-dev.22
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/ClientSessionLeaderThreadProxy.d.ts +10 -0
- package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
- package/dist/ClientSessionLeaderThreadProxy.js.map +1 -1
- package/dist/adapter-types.d.ts +23 -0
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +27 -1
- package/dist/adapter-types.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +42 -22
- package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-client-session.js +12 -1
- package/dist/devtools/devtools-messages-client-session.js.map +1 -1
- package/dist/devtools/devtools-messages-common.d.ts +12 -6
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-common.js +7 -2
- package/dist/devtools/devtools-messages-common.js.map +1 -1
- package/dist/devtools/devtools-messages-leader.d.ts +47 -25
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-leader.js +13 -1
- package/dist/devtools/devtools-messages-leader.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +33 -0
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +12 -12
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/eventlog.d.ts +6 -1
- package/dist/leader-thread/eventlog.d.ts.map +1 -1
- package/dist/leader-thread/eventlog.js +59 -2
- package/dist/leader-thread/eventlog.js.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.js +38 -6
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +4 -2
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +5 -1
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/materialize-event.d.ts.map +1 -1
- package/dist/leader-thread/materialize-event.js +3 -0
- package/dist/leader-thread/materialize-event.js.map +1 -1
- package/dist/leader-thread/mod.d.ts +1 -0
- package/dist/leader-thread/mod.d.ts.map +1 -1
- package/dist/leader-thread/mod.js +1 -0
- package/dist/leader-thread/mod.js.map +1 -1
- package/dist/leader-thread/stream-events.d.ts +56 -0
- package/dist/leader-thread/stream-events.d.ts.map +1 -0
- package/dist/leader-thread/stream-events.js +166 -0
- package/dist/leader-thread/stream-events.js.map +1 -0
- package/dist/leader-thread/types.d.ts +77 -1
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js +13 -0
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/otel.d.ts +2 -1
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +5 -0
- package/dist/otel.js.map +1 -1
- package/dist/schema/EventDef/define.d.ts +14 -0
- package/dist/schema/EventDef/define.d.ts.map +1 -1
- package/dist/schema/EventDef/define.js +1 -0
- package/dist/schema/EventDef/define.js.map +1 -1
- package/dist/schema/EventDef/deprecated.d.ts +99 -0
- package/dist/schema/EventDef/deprecated.d.ts.map +1 -0
- package/dist/schema/EventDef/deprecated.js +144 -0
- package/dist/schema/EventDef/deprecated.js.map +1 -0
- package/dist/schema/EventDef/deprecated.test.d.ts +2 -0
- package/dist/schema/EventDef/deprecated.test.d.ts.map +1 -0
- package/dist/schema/EventDef/deprecated.test.js +95 -0
- package/dist/schema/EventDef/deprecated.test.js.map +1 -0
- package/dist/schema/EventDef/event-def.d.ts +4 -0
- package/dist/schema/EventDef/event-def.d.ts.map +1 -1
- package/dist/schema/EventDef/mod.d.ts +1 -0
- package/dist/schema/EventDef/mod.d.ts.map +1 -1
- package/dist/schema/EventDef/mod.js +1 -0
- package/dist/schema/EventDef/mod.js.map +1 -1
- package/dist/schema/LiveStoreEvent/client.d.ts +6 -6
- package/dist/schema/state/sqlite/client-document-def.d.ts +1 -0
- package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.js +17 -8
- package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.test.js +120 -1
- package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
- package/dist/schema/state/sqlite/column-def.test.js +2 -3
- package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
- package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/api.d.ts +29 -12
- package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/astToSql.js +71 -1
- package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.test.js +109 -1
- package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
- package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +6 -2
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/version.d.ts +7 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +8 -1
- package/dist/version.js.map +1 -1
- package/package.json +4 -4
- package/src/ClientSessionLeaderThreadProxy.ts +10 -0
- package/src/adapter-types.ts +30 -0
- package/src/devtools/devtools-messages-client-session.ts +12 -0
- package/src/devtools/devtools-messages-common.ts +7 -3
- package/src/devtools/devtools-messages-leader.ts +13 -0
- package/src/leader-thread/LeaderSyncProcessor.ts +116 -42
- package/src/leader-thread/eventlog.ts +80 -4
- package/src/leader-thread/leader-worker-devtools.ts +52 -6
- package/src/leader-thread/make-leader-thread-layer.ts +8 -0
- package/src/leader-thread/materialize-event.ts +4 -0
- package/src/leader-thread/mod.ts +1 -0
- package/src/leader-thread/stream-events.ts +201 -0
- package/src/leader-thread/types.ts +49 -1
- package/src/otel.ts +10 -0
- package/src/schema/EventDef/define.ts +16 -0
- package/src/schema/EventDef/deprecated.test.ts +128 -0
- package/src/schema/EventDef/deprecated.ts +175 -0
- package/src/schema/EventDef/event-def.ts +5 -0
- package/src/schema/EventDef/mod.ts +1 -0
- package/src/schema/state/sqlite/client-document-def.test.ts +140 -2
- package/src/schema/state/sqlite/client-document-def.ts +25 -26
- package/src/schema/state/sqlite/column-def.test.ts +2 -3
- package/src/schema/state/sqlite/db-schema/dsl/mod.ts +10 -16
- package/src/schema/state/sqlite/query-builder/api.ts +31 -4
- package/src/schema/state/sqlite/query-builder/astToSql.ts +81 -1
- package/src/schema/state/sqlite/query-builder/impl.test.ts +141 -1
- package/src/schema/state/sqlite/table-def.ts +9 -8
- package/src/sync/ClientSessionSyncProcessor.ts +26 -13
- package/src/version.ts +9 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deprecation Annotations for Events
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for marking event fields and entire events as deprecated.
|
|
5
|
+
* When a deprecated field is used or a deprecated event is committed, a warning is logged.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { Events } from '@livestore/livestore'
|
|
10
|
+
* import { Schema } from 'effect'
|
|
11
|
+
* import { deprecated } from '@livestore/common/schema'
|
|
12
|
+
*
|
|
13
|
+
* // Field-level deprecation
|
|
14
|
+
* const todoUpdated = Events.synced({
|
|
15
|
+
* name: 'v1.TodoUpdated',
|
|
16
|
+
* schema: Schema.Struct({
|
|
17
|
+
* id: Schema.String,
|
|
18
|
+
* title: Schema.optional(Schema.String).pipe(deprecated("Use 'text' instead")),
|
|
19
|
+
* text: Schema.optional(Schema.String),
|
|
20
|
+
* }),
|
|
21
|
+
* })
|
|
22
|
+
*
|
|
23
|
+
* // Event-level deprecation
|
|
24
|
+
* const todoRenamed = Events.synced({
|
|
25
|
+
* name: 'v1.TodoRenamed',
|
|
26
|
+
* schema: Schema.Struct({ id: Schema.String, name: Schema.String }),
|
|
27
|
+
* deprecated: "Use 'v1.TodoUpdated' instead",
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
* @module
|
|
31
|
+
*/
|
|
32
|
+
import { Effect, Option, SchemaAST } from '@livestore/utils/effect';
|
|
33
|
+
/** Symbol used to mark schemas as deprecated. */
|
|
34
|
+
export const DeprecatedId = Symbol.for('livestore/schema/annotations/deprecated');
|
|
35
|
+
/**
|
|
36
|
+
* Marks a schema field as deprecated with a reason message.
|
|
37
|
+
* When an event is committed with a deprecated field that has a value,
|
|
38
|
+
* a warning will be logged.
|
|
39
|
+
*
|
|
40
|
+
* Works with both Schema types and PropertySignatures (from Schema.optional).
|
|
41
|
+
*
|
|
42
|
+
* @param reason - Explanation of why this field is deprecated and what to use instead
|
|
43
|
+
* @returns A function that adds the deprecation annotation to the schema
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* const schema = Schema.Struct({
|
|
48
|
+
* oldField: Schema.optional(Schema.String).pipe(deprecated("Use 'newField' instead")),
|
|
49
|
+
* newField: Schema.optional(Schema.String),
|
|
50
|
+
* })
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export const deprecated = (reason) => (schema) => schema.annotations({ [DeprecatedId]: reason });
|
|
54
|
+
/**
|
|
55
|
+
* Checks if a schema has a deprecation annotation.
|
|
56
|
+
*
|
|
57
|
+
* @param schema - The schema to check
|
|
58
|
+
* @returns The deprecation reason if deprecated, None otherwise
|
|
59
|
+
*/
|
|
60
|
+
export const getDeprecatedReason = (schema) => SchemaAST.getAnnotation(DeprecatedId)(schema.ast);
|
|
61
|
+
/**
|
|
62
|
+
* Checks if a schema is deprecated.
|
|
63
|
+
*
|
|
64
|
+
* @param schema - The schema to check
|
|
65
|
+
* @returns true if the schema is deprecated
|
|
66
|
+
*/
|
|
67
|
+
export const isDeprecated = (schema) => Option.isSome(getDeprecatedReason(schema));
|
|
68
|
+
/**
|
|
69
|
+
* Finds deprecated fields with values in the given event arguments.
|
|
70
|
+
* This walks through a Struct schema and checks each property for deprecation.
|
|
71
|
+
*
|
|
72
|
+
* @param schema - The event schema (expected to be a Struct)
|
|
73
|
+
* @param args - The event arguments
|
|
74
|
+
* @returns Array of objects containing field name and deprecation reason
|
|
75
|
+
*/
|
|
76
|
+
export const findDeprecatedFieldsWithValues = (schema, args) => {
|
|
77
|
+
const result = [];
|
|
78
|
+
const ast = schema.ast;
|
|
79
|
+
// Handle TypeLiteral (Struct) schemas
|
|
80
|
+
if (ast._tag === 'TypeLiteral') {
|
|
81
|
+
for (const prop of ast.propertySignatures) {
|
|
82
|
+
const fieldName = String(prop.name);
|
|
83
|
+
const fieldValue = args[fieldName];
|
|
84
|
+
// Only check fields that have a value (not undefined)
|
|
85
|
+
if (fieldValue !== undefined) {
|
|
86
|
+
// Check deprecation on the property signature itself (for Schema.optional(...).pipe(deprecated(...)))
|
|
87
|
+
const propAnnotations = prop.annotations;
|
|
88
|
+
const deprecationReason = propAnnotations?.[DeprecatedId];
|
|
89
|
+
// Also check deprecation on the type (for direct field deprecation)
|
|
90
|
+
const typeDeprecation = SchemaAST.getAnnotation(DeprecatedId)(prop.type);
|
|
91
|
+
const reason = deprecationReason ?? (Option.isSome(typeDeprecation) ? typeDeprecation.value : undefined);
|
|
92
|
+
if (reason !== undefined) {
|
|
93
|
+
result.push({ field: fieldName, reason });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
};
|
|
100
|
+
/** Set of event names that have already logged deprecation warnings. */
|
|
101
|
+
const warnedDeprecatedEvents = new Set();
|
|
102
|
+
/** Map of event+field combinations that have already logged deprecation warnings. */
|
|
103
|
+
const warnedDeprecatedFields = new Set();
|
|
104
|
+
/**
|
|
105
|
+
* Logs deprecation warnings for an event using Effect.logWarning.
|
|
106
|
+
* Checks both event-level and field-level deprecation, with deduplication.
|
|
107
|
+
*
|
|
108
|
+
* @param eventDef - The event definition to check
|
|
109
|
+
* @param args - The event arguments
|
|
110
|
+
* @returns An Effect that logs warnings for any deprecations found
|
|
111
|
+
*/
|
|
112
|
+
export const logDeprecationWarnings = (eventDef, args) => Effect.gen(function* () {
|
|
113
|
+
const eventName = eventDef.name;
|
|
114
|
+
// Check for event-level deprecation
|
|
115
|
+
const eventDeprecation = eventDef.options.deprecated;
|
|
116
|
+
if (eventDeprecation !== undefined && !warnedDeprecatedEvents.has(eventName)) {
|
|
117
|
+
warnedDeprecatedEvents.add(eventName);
|
|
118
|
+
yield* Effect.logWarning('@livestore/schema:deprecated-event', {
|
|
119
|
+
event: eventName,
|
|
120
|
+
reason: eventDeprecation,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
// Check for deprecated fields with values
|
|
124
|
+
const deprecatedFields = findDeprecatedFieldsWithValues(eventDef.schema, args);
|
|
125
|
+
for (const { field, reason } of deprecatedFields) {
|
|
126
|
+
const key = `${eventName}:${field}`;
|
|
127
|
+
if (!warnedDeprecatedFields.has(key)) {
|
|
128
|
+
warnedDeprecatedFields.add(key);
|
|
129
|
+
yield* Effect.logWarning('@livestore/schema:deprecated-field', {
|
|
130
|
+
event: eventName,
|
|
131
|
+
field,
|
|
132
|
+
reason,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
/**
|
|
138
|
+
* Resets the deprecation warning state. Useful for testing.
|
|
139
|
+
*/
|
|
140
|
+
export const resetDeprecationWarnings = () => {
|
|
141
|
+
warnedDeprecatedEvents.clear();
|
|
142
|
+
warnedDeprecatedFields.clear();
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=deprecated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../../src/schema/EventDef/deprecated.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated.test.d.ts","sourceRoot":"","sources":["../../../src/schema/EventDef/deprecated.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Effect, Logger, Schema } from '@livestore/utils/effect';
|
|
2
|
+
import { afterEach, beforeEach, describe, expect, test } from 'vitest';
|
|
3
|
+
import { synced } from "./define.js";
|
|
4
|
+
import { deprecated, findDeprecatedFieldsWithValues, getDeprecatedReason, isDeprecated, logDeprecationWarnings, resetDeprecationWarnings, } from "./deprecated.js";
|
|
5
|
+
describe('deprecated annotations', () => {
|
|
6
|
+
test('adds deprecation annotation to schema', () => {
|
|
7
|
+
const schema = Schema.String.pipe(deprecated('Use newField instead'));
|
|
8
|
+
expect(isDeprecated(schema)).toBe(true);
|
|
9
|
+
expect(getDeprecatedReason(schema)._tag).toBe('Some');
|
|
10
|
+
});
|
|
11
|
+
test('works with optional fields in Struct', () => {
|
|
12
|
+
const struct = Schema.Struct({
|
|
13
|
+
oldField: Schema.optional(Schema.String).pipe(deprecated('Legacy')),
|
|
14
|
+
});
|
|
15
|
+
expect(findDeprecatedFieldsWithValues(struct, { oldField: 'x' })).toEqual([{ field: 'oldField', reason: 'Legacy' }]);
|
|
16
|
+
});
|
|
17
|
+
test('non-deprecated schemas return false', () => {
|
|
18
|
+
expect(isDeprecated(Schema.String)).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
test('ignores deprecated fields without values', () => {
|
|
21
|
+
const schema = Schema.Struct({
|
|
22
|
+
id: Schema.String,
|
|
23
|
+
old: Schema.optional(Schema.String).pipe(deprecated('x')),
|
|
24
|
+
});
|
|
25
|
+
expect(findDeprecatedFieldsWithValues(schema, { id: '1' })).toEqual([]);
|
|
26
|
+
});
|
|
27
|
+
test('finds multiple deprecated fields', () => {
|
|
28
|
+
const schema = Schema.Struct({
|
|
29
|
+
a: Schema.optional(Schema.String).pipe(deprecated('A')),
|
|
30
|
+
b: Schema.optional(Schema.String).pipe(deprecated('B')),
|
|
31
|
+
});
|
|
32
|
+
const result = findDeprecatedFieldsWithValues(schema, { a: '1', b: '2' });
|
|
33
|
+
expect(result).toHaveLength(2);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe('logDeprecationWarnings', () => {
|
|
37
|
+
let logs;
|
|
38
|
+
beforeEach(() => {
|
|
39
|
+
resetDeprecationWarnings();
|
|
40
|
+
logs = [];
|
|
41
|
+
});
|
|
42
|
+
afterEach(() => resetDeprecationWarnings());
|
|
43
|
+
const run = (effect) => Effect.runSync(effect.pipe(Effect.provide(Logger.replace(Logger.defaultLogger, Logger.make(({ message }) => logs.push(message))))));
|
|
44
|
+
test('logs event deprecation warning', () => {
|
|
45
|
+
const event = synced({ name: 'Old', schema: Schema.Struct({ id: Schema.String }), deprecated: 'Use New' });
|
|
46
|
+
run(logDeprecationWarnings(event, { id: '1' }));
|
|
47
|
+
expect(logs).toEqual([['@livestore/schema:deprecated-event', { event: 'Old', reason: 'Use New' }]]);
|
|
48
|
+
});
|
|
49
|
+
test('logs field deprecation warning', () => {
|
|
50
|
+
const event = synced({
|
|
51
|
+
name: 'Ev',
|
|
52
|
+
schema: Schema.Struct({ old: Schema.optional(Schema.String).pipe(deprecated('Use new')) }),
|
|
53
|
+
});
|
|
54
|
+
run(logDeprecationWarnings(event, { old: 'x' }));
|
|
55
|
+
expect(logs).toEqual([['@livestore/schema:deprecated-field', { event: 'Ev', field: 'old', reason: 'Use new' }]]);
|
|
56
|
+
});
|
|
57
|
+
test('deduplicates event warnings', () => {
|
|
58
|
+
const event = synced({ name: 'Dup', schema: Schema.Struct({ id: Schema.String }), deprecated: 'x' });
|
|
59
|
+
run(logDeprecationWarnings(event, { id: '1' }));
|
|
60
|
+
run(logDeprecationWarnings(event, { id: '2' }));
|
|
61
|
+
expect(logs).toHaveLength(1);
|
|
62
|
+
});
|
|
63
|
+
test('deduplicates field warnings', () => {
|
|
64
|
+
const event = synced({
|
|
65
|
+
name: 'DupField',
|
|
66
|
+
schema: Schema.Struct({ old: Schema.optional(Schema.String).pipe(deprecated('x')) }),
|
|
67
|
+
});
|
|
68
|
+
run(logDeprecationWarnings(event, { old: 'a' }));
|
|
69
|
+
run(logDeprecationWarnings(event, { old: 'b' }));
|
|
70
|
+
expect(logs).toHaveLength(1);
|
|
71
|
+
});
|
|
72
|
+
test('no warning for non-deprecated event', () => {
|
|
73
|
+
const event = synced({ name: 'Normal', schema: Schema.Struct({ id: Schema.String }) });
|
|
74
|
+
run(logDeprecationWarnings(event, { id: '1' }));
|
|
75
|
+
expect(logs).toHaveLength(0);
|
|
76
|
+
});
|
|
77
|
+
test('no warning when deprecated field is undefined', () => {
|
|
78
|
+
const event = synced({
|
|
79
|
+
name: 'Unused',
|
|
80
|
+
schema: Schema.Struct({ old: Schema.optional(Schema.String).pipe(deprecated('x')) }),
|
|
81
|
+
});
|
|
82
|
+
run(logDeprecationWarnings(event, {}));
|
|
83
|
+
expect(logs).toHaveLength(0);
|
|
84
|
+
});
|
|
85
|
+
test('logs both event and field warnings', () => {
|
|
86
|
+
const event = synced({
|
|
87
|
+
name: 'Both',
|
|
88
|
+
schema: Schema.Struct({ old: Schema.optional(Schema.String).pipe(deprecated('F')) }),
|
|
89
|
+
deprecated: 'E',
|
|
90
|
+
});
|
|
91
|
+
run(logDeprecationWarnings(event, { old: 'x' }));
|
|
92
|
+
expect(logs).toHaveLength(2);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=deprecated.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated.test.js","sourceRoot":"","sources":["../../../src/schema/EventDef/deprecated.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,10 @@ export type EventDef<TName extends string, TType, TEncoded = TType, TDerived ext
|
|
|
45
45
|
facts: FactsCallback<TType> | undefined;
|
|
46
46
|
/** Whether this is a derived event. Derived events cannot have materializers. */
|
|
47
47
|
derived: TDerived;
|
|
48
|
+
/**
|
|
49
|
+
* Deprecation reason for this event. When set, a warning is logged at commit time.
|
|
50
|
+
*/
|
|
51
|
+
deprecated: string | undefined;
|
|
48
52
|
};
|
|
49
53
|
/**
|
|
50
54
|
* Callable signature - creates a partial event with decoded arguments.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-def.d.ts","sourceRoot":"","sources":["../../../src/schema/EventDef/event-def.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,SAAS,OAAO,GAAG,KAAK,IAAI;IACtG,gGAAgG;IAChG,IAAI,EAAE,KAAK,CAAA;IAEX,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAEtC,OAAO,EAAE;QACP;;;WAGG;QACH,UAAU,EAAE,OAAO,CAAA;QAEnB;;;WAGG;QACH,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;QAEvC,iFAAiF;QACjF,OAAO,EAAE,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"event-def.d.ts","sourceRoot":"","sources":["../../../src/schema/EventDef/event-def.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,SAAS,OAAO,GAAG,KAAK,IAAI;IACtG,gGAAgG;IAChG,IAAI,EAAE,KAAK,CAAA;IAEX,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAEtC,OAAO,EAAE;QACP;;;WAGG;QACH,UAAU,EAAE,OAAO,CAAA;QAEnB;;;WAGG;QACH,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;QAEvC,iFAAiF;QACjF,OAAO,EAAE,QAAQ,CAAA;QAEjB;;WAEG;QACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B,CAAA;IAED;;;OAGG;IACH,CACE,IAAI,EAAE,KAAK,GACV;QACD,IAAI,EAAE,KAAK,CAAA;QACX,IAAI,EAAE,KAAK,CAAA;KACZ,CAAA;IAED;;;OAGG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK;QAC3B,IAAI,EAAE,KAAK,CAAA;QACX,IAAI,EAAE,QAAQ,CAAA;KACf,CAAA;IAED,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE;QACd,IAAI,EAAE,KAAK,CAAA;QACX,IAAI,EAAE,KAAK,CAAA;KACZ,CAAA;CACF,CAAA;AAED,yBAAiB,QAAQ,CAAC;IACxB;;;OAGG;IACH,KAAY,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAErD;;;;OAIG;IACH,KAAY,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAA;CACpE;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;CAC/B,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAA;CAC7B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/schema/EventDef/mod.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/schema/EventDef/mod.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/schema/EventDef/mod.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/schema/EventDef/mod.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA"}
|
|
@@ -119,20 +119,20 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
|
|
|
119
119
|
syncMetadata: {
|
|
120
120
|
readonly _tag: "None";
|
|
121
121
|
} | {
|
|
122
|
-
readonly value: Schema.JsonValue;
|
|
123
122
|
readonly _tag: "Some";
|
|
123
|
+
readonly value: Schema.JsonValue;
|
|
124
124
|
};
|
|
125
125
|
materializerHashLeader: {
|
|
126
126
|
readonly _tag: "None";
|
|
127
127
|
} | {
|
|
128
|
-
readonly value: number;
|
|
129
128
|
readonly _tag: "Some";
|
|
129
|
+
readonly value: number;
|
|
130
130
|
};
|
|
131
131
|
materializerHashSession: {
|
|
132
132
|
readonly _tag: "None";
|
|
133
133
|
} | {
|
|
134
|
-
readonly value: number;
|
|
135
134
|
readonly _tag: "Some";
|
|
135
|
+
readonly value: number;
|
|
136
136
|
};
|
|
137
137
|
} | undefined, true, never>;
|
|
138
138
|
}, Schema.Struct.Encoded<{
|
|
@@ -180,20 +180,20 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
|
|
|
180
180
|
syncMetadata: {
|
|
181
181
|
readonly _tag: "None";
|
|
182
182
|
} | {
|
|
183
|
-
readonly value: Schema.JsonValue;
|
|
184
183
|
readonly _tag: "Some";
|
|
184
|
+
readonly value: Schema.JsonValue;
|
|
185
185
|
};
|
|
186
186
|
materializerHashLeader: {
|
|
187
187
|
readonly _tag: "None";
|
|
188
188
|
} | {
|
|
189
|
-
readonly value: number;
|
|
190
189
|
readonly _tag: "Some";
|
|
190
|
+
readonly value: number;
|
|
191
191
|
};
|
|
192
192
|
materializerHashSession: {
|
|
193
193
|
readonly _tag: "None";
|
|
194
194
|
} | {
|
|
195
|
-
readonly value: number;
|
|
196
195
|
readonly _tag: "Some";
|
|
196
|
+
readonly value: number;
|
|
197
197
|
};
|
|
198
198
|
} | undefined, true, never>;
|
|
199
199
|
}>, never, {
|
|
@@ -242,6 +242,7 @@ export declare namespace ClientDocumentTableDef {
|
|
|
242
242
|
derived: true;
|
|
243
243
|
clientOnly: true;
|
|
244
244
|
facts: undefined;
|
|
245
|
+
deprecated: undefined;
|
|
245
246
|
};
|
|
246
247
|
};
|
|
247
248
|
type SetEventDef<TName extends string, TType, TOptions extends ClientDocumentTableOptions<TType>> = EventDef<TName, TOptions['partialSet'] extends false ? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-document-def.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/client-document-def.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,wBAAwB,CAAA;AAE3E,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG5D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,MAAM,EACpB,KAAK,EACL,QAAQ,EACR,KAAK,CAAC,QAAQ,SAAS,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACvE,gDAIC;IACD,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;CACvC,GAAG,QAAQ,KAAG,sBAAsB,CACnC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,CAAC,QAAQ,CAAC,0BAA0B,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"client-document-def.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/client-document-def.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,7 +68,9 @@ export const clientDocument = ({ name, schema: valueSchema, ...inputOptions }) =
|
|
|
68
68
|
value: options.partialSet ? Schema.partial(valueSchema) : valueSchema,
|
|
69
69
|
}).annotations({ title: `${name}Set:Args` }),
|
|
70
70
|
});
|
|
71
|
-
Object.defineProperty(setEventDef, 'options', {
|
|
71
|
+
Object.defineProperty(setEventDef, 'options', {
|
|
72
|
+
value: { derived: true, clientOnly: true, facts: undefined, deprecated: undefined },
|
|
73
|
+
});
|
|
72
74
|
const clientDocumentTableDefTrait = {
|
|
73
75
|
get: makeGetQueryBuilder(() => clientDocumentTableDef),
|
|
74
76
|
set: setEventDef,
|
|
@@ -124,20 +126,25 @@ export const mergeDefaultValues = (defaultValues, explicitDefaultValues) => {
|
|
|
124
126
|
*/
|
|
125
127
|
export const createOptimisticEventSchema = ({ valueSchema, defaultValue, partialSet, }) => {
|
|
126
128
|
const targetSchema = partialSet ? Schema.partial(valueSchema) : valueSchema;
|
|
129
|
+
// The transform decode must yield values in the target schema's ENCODED shape.
|
|
130
|
+
// This keeps JSON columns consistent when Encoded != Type (e.g. Option).
|
|
131
|
+
const encodeTarget = Schema.encodeSync(targetSchema);
|
|
127
132
|
return Schema.transform(Schema.Unknown, // Accept any historical event structure
|
|
128
133
|
targetSchema, // Output current schema
|
|
129
134
|
{
|
|
130
135
|
decode: (eventValue) => {
|
|
131
136
|
// Try direct decode first (for current schema events)
|
|
132
137
|
try {
|
|
133
|
-
|
|
138
|
+
const decoded = Schema.decodeUnknownSync(targetSchema)(eventValue);
|
|
139
|
+
// Re-encode so downstream parseJson/column decoding sees encoded values.
|
|
140
|
+
return encodeTarget(decoded);
|
|
134
141
|
}
|
|
135
142
|
catch {
|
|
136
143
|
// Optimistic decoding for historical events
|
|
137
144
|
// Handle null/undefined/non-object cases
|
|
138
145
|
if (typeof eventValue !== 'object' || eventValue === null) {
|
|
139
146
|
console.warn(`Client document: Non-object event value, using ${partialSet ? 'empty partial' : 'defaults'}`);
|
|
140
|
-
return partialSet ? {} : defaultValue;
|
|
147
|
+
return encodeTarget(partialSet ? {} : defaultValue);
|
|
141
148
|
}
|
|
142
149
|
if (partialSet) {
|
|
143
150
|
// For partial sets: only preserve fields that exist in new schema
|
|
@@ -152,15 +159,16 @@ export const createOptimisticEventSchema = ({ valueSchema, defaultValue, partial
|
|
|
152
159
|
}
|
|
153
160
|
if (hasValidFields) {
|
|
154
161
|
try {
|
|
155
|
-
|
|
162
|
+
const decoded = Schema.decodeUnknownSync(targetSchema)(partialResult);
|
|
163
|
+
return encodeTarget(decoded);
|
|
156
164
|
}
|
|
157
165
|
catch {
|
|
158
166
|
// Even filtered fields don't match schema
|
|
159
167
|
console.warn('Client document: Partial fields incompatible, returning empty partial');
|
|
160
|
-
return {};
|
|
168
|
+
return encodeTarget({});
|
|
161
169
|
}
|
|
162
170
|
}
|
|
163
|
-
return {};
|
|
171
|
+
return encodeTarget({});
|
|
164
172
|
}
|
|
165
173
|
else {
|
|
166
174
|
// Full set: merge old data with new defaults
|
|
@@ -174,13 +182,14 @@ export const createOptimisticEventSchema = ({ valueSchema, defaultValue, partial
|
|
|
174
182
|
}
|
|
175
183
|
// Try to decode the merged value
|
|
176
184
|
try {
|
|
177
|
-
|
|
185
|
+
const decoded = Schema.decodeUnknownSync(valueSchema)(merged);
|
|
186
|
+
return encodeTarget(decoded);
|
|
178
187
|
}
|
|
179
188
|
catch {
|
|
180
189
|
// Merged value still doesn't match (e.g., type changes)
|
|
181
190
|
// Fall back to pure defaults
|
|
182
191
|
console.warn('Client document: Could not preserve event data, using defaults');
|
|
183
|
-
return defaultValue;
|
|
192
|
+
return encodeTarget(defaultValue);
|
|
184
193
|
}
|
|
185
194
|
}
|
|
186
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-document-def.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/client-document-def.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAElF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAK5B,EACA,IAAI,EACJ,MAAM,EAAE,WAAW,EACnB,GAAG,YAAY,EAIL,EAKV,EAAE;IACF,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,IAAI;QAC3C,OAAO,EAAE;YACP,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE;YAC3B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK;SAClC;KAC0C,CAAA;IAE7C,iEAAiE;IACjE,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;QACzD,WAAW;QACX,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;QACnC,UAAU,EAAE,KAAK,EAAE,sCAAsC;KAC1D,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG;QACd,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACxC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;KAC1D,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAEzC,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAA;IAE7C,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,0BAA0B,CAAC;QACxG,IAAI;QACJ,WAAW;QACX,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;QACnC,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACrC,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;QAC7C,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAA;IAED,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,CAAC,CAAA;IACnE,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE;QAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,MAAM,CAAC,MAAM;YACjB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;SACtE,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;KAC7C,CAAC,CAAA;IACF,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"client-document-def.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/client-document-def.ts"],"names":[],"mappings":"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"}
|