@powersync/common 0.0.0-dev-20260305124002 → 0.0.0-dev-20260306125455
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/bundle.cjs +32 -6
- package/dist/bundle.cjs.map +1 -1
- package/dist/bundle.mjs +32 -6
- package/dist/bundle.mjs.map +1 -1
- package/dist/bundle.node.cjs +32 -6
- package/dist/bundle.node.cjs.map +1 -1
- package/dist/bundle.node.mjs +32 -6
- package/dist/bundle.node.mjs.map +1 -1
- package/dist/index.d.cts +26 -2
- package/lib/client/triggers/TriggerManager.d.ts +23 -0
- package/lib/client/triggers/TriggerManagerImpl.d.ts +3 -2
- package/lib/client/triggers/TriggerManagerImpl.js +31 -5
- package/lib/client/triggers/TriggerManagerImpl.js.map +1 -1
- package/package.json +1 -1
- package/src/client/triggers/TriggerManager.ts +26 -0
- package/src/client/triggers/TriggerManagerImpl.ts +54 -5
package/dist/index.d.cts
CHANGED
|
@@ -2688,6 +2688,12 @@ interface CreateDiffTriggerOptions extends BaseCreateDiffTriggerOptions {
|
|
|
2688
2688
|
* When true, the diff trigger will not create or drop the destination table.
|
|
2689
2689
|
* The caller is responsible for ensuring the table exists with the correct
|
|
2690
2690
|
* schema before creating the trigger and for dropping it when no longer needed.
|
|
2691
|
+
*
|
|
2692
|
+
* This is intended for advanced use cases, such as maintaining the destination table
|
|
2693
|
+
* across trigger recreations.
|
|
2694
|
+
* Note: While `useStorage` controls whether the destination table is persisted to disk
|
|
2695
|
+
* across sessions, `manageDestinationExternally` controls who is responsible for the
|
|
2696
|
+
* table's lifecycle - the SDK (default) or the caller.
|
|
2691
2697
|
*/
|
|
2692
2698
|
manageDestinationExternally?: boolean;
|
|
2693
2699
|
}
|
|
@@ -2813,6 +2819,16 @@ interface TrackDiffOptions extends BaseCreateDiffTriggerOptions {
|
|
|
2813
2819
|
*/
|
|
2814
2820
|
throttleMs?: number;
|
|
2815
2821
|
}
|
|
2822
|
+
/**
|
|
2823
|
+
* @experimental
|
|
2824
|
+
* Options for creating a diff trigger destination table with {@link TriggerManager#createDiffDestinationTable}.
|
|
2825
|
+
*/
|
|
2826
|
+
interface CreateDiffDestinationTableOptions {
|
|
2827
|
+
/** If true, the table will be created as a temporary table. Defaults to false. */
|
|
2828
|
+
temporary?: boolean;
|
|
2829
|
+
/** If true, the table will only be created if it does not already exist. This can be useful when `manageDestinationExternally` is true. */
|
|
2830
|
+
onlyIfNotExists?: boolean;
|
|
2831
|
+
}
|
|
2816
2832
|
/**
|
|
2817
2833
|
* @experimental
|
|
2818
2834
|
*/
|
|
@@ -2915,6 +2931,13 @@ interface TriggerManager {
|
|
|
2915
2931
|
* ```
|
|
2916
2932
|
*/
|
|
2917
2933
|
trackTableDiff(options: TrackDiffOptions): Promise<TriggerRemoveCallback>;
|
|
2934
|
+
/**
|
|
2935
|
+
* @experimental
|
|
2936
|
+
* Creates a diff trigger destination table on the database with the given configuration.
|
|
2937
|
+
* By default this is handled automatically when creating a diff trigger, but needs to
|
|
2938
|
+
* be done manually if `manageDestinationExternally` is set to true.
|
|
2939
|
+
*/
|
|
2940
|
+
createDiffDestinationTable(tableName: string, options?: CreateDiffDestinationTableOptions): Promise<void>;
|
|
2918
2941
|
}
|
|
2919
2942
|
/**
|
|
2920
2943
|
* @experimental
|
|
@@ -2975,11 +2998,12 @@ declare class TriggerManagerImpl implements TriggerManager {
|
|
|
2975
2998
|
* Updates default config settings for platform specific use-cases.
|
|
2976
2999
|
*/
|
|
2977
3000
|
updateDefaults(config: TriggerManagerImplConfiguration): void;
|
|
2978
|
-
protected generateTriggerName(operation: DiffTriggerOperation, destinationTable: string, triggerId: string): string;
|
|
3001
|
+
protected generateTriggerName(operation: DiffTriggerOperation, destinationTable: string, triggerId: string, managedExternally?: boolean): string;
|
|
2979
3002
|
/**
|
|
2980
3003
|
* Cleanup any SQLite triggers or tables that are no longer in use.
|
|
2981
3004
|
*/
|
|
2982
3005
|
cleanupResources(): Promise<void>;
|
|
3006
|
+
createDiffDestinationTable(tableName: string, options?: CreateDiffDestinationTableOptions): Promise<void>;
|
|
2983
3007
|
createDiffTrigger(options: CreateDiffTriggerOptions): Promise<() => Promise<void>>;
|
|
2984
3008
|
trackTableDiff(options: TrackDiffOptions): Promise<TriggerRemoveCallback>;
|
|
2985
3009
|
}
|
|
@@ -4320,4 +4344,4 @@ interface ParsedQuery {
|
|
|
4320
4344
|
declare const parseQuery: <T>(query: string | CompilableQuery<T>, parameters: any[]) => ParsedQuery;
|
|
4321
4345
|
|
|
4322
4346
|
export { ATTACHMENT_TABLE, AbortOperation, AbstractPowerSyncDatabase, AbstractPowerSyncDatabaseOpenFactory, AbstractQueryProcessor, AbstractRemote, AbstractStreamingSyncImplementation, ArrayComparator, AttachmentContext, AttachmentQueue, AttachmentService, AttachmentState, AttachmentTable, BaseObserver, Column, ColumnType, ConnectionClosedError, ConnectionManager, ControlledExecutor, CrudBatch, CrudEntry, CrudTransaction, DEFAULT_CRUD_BATCH_LIMIT, DEFAULT_CRUD_UPLOAD_THROTTLE_MS, DEFAULT_INDEX_COLUMN_OPTIONS, DEFAULT_INDEX_OPTIONS, DEFAULT_LOCK_TIMEOUT_MS, DEFAULT_POWERSYNC_CLOSE_OPTIONS, DEFAULT_POWERSYNC_DB_OPTIONS, DEFAULT_PRESSURE_LIMITS, DEFAULT_REMOTE_LOGGER, DEFAULT_REMOTE_OPTIONS, DEFAULT_RETRY_DELAY_MS, DEFAULT_ROW_COMPARATOR, DEFAULT_STREAMING_SYNC_OPTIONS, DEFAULT_STREAM_CONNECTION_OPTIONS, DEFAULT_SYNC_CLIENT_IMPLEMENTATION, DEFAULT_TABLE_OPTIONS, DEFAULT_WATCH_QUERY_OPTIONS, DEFAULT_WATCH_THROTTLE_MS, DataStream, DiffTriggerOperation, DifferentialQueryProcessor, EMPTY_DIFFERENTIAL, EncodingType, FalsyComparator, FetchImplementationProvider, FetchStrategy, GetAllQuery, Index, IndexedColumn, InvalidSQLCharacters, LockType, LogLevel, MAX_AMOUNT_OF_COLUMNS, MAX_OP_ID, MEMORY_TRIGGER_CLAIM_MANAGER, OnChangeQueryProcessor, OpType, OpTypeEnum, OplogEntry, PSInternalTable, PowerSyncControlCommand, RowUpdateType, Schema, SqliteBucketStorage, SyncClientImplementation, SyncDataBatch, SyncDataBucket, SyncProgress, SyncStatus, SyncStreamConnectionMethod, SyncingService, Table, TableV2, TriggerManagerImpl, UpdateType, UploadQueueStats, WatchedQueryListenerEvent, attachmentFromSql, column, compilableQueryWatch, createBaseLogger, createLogger, extractTableUpdates, isBatchedUpdateNotification, isContinueCheckpointRequest, isDBAdapter, isPowerSyncDatabaseOptionsWithSettings, isSQLOpenFactory, isSQLOpenOptions, isStreamingKeepalive, isStreamingSyncCheckpoint, isStreamingSyncCheckpointComplete, isStreamingSyncCheckpointDiff, isStreamingSyncCheckpointPartiallyComplete, isStreamingSyncData, isSyncNewCheckpointRequest, mutexRunExclusive, parseQuery, runOnSchemaChange, sanitizeSQL, sanitizeUUID };
|
|
4323
|
-
export type { AbstractQueryProcessorOptions, AbstractRemoteOptions, AbstractStreamingSyncImplementationOptions, AdditionalConnectionOptions, ArrayComparatorOptions, ArrayQueryDefinition, AttachmentData, AttachmentErrorHandler, AttachmentRecord, AttachmentTableOptions, BSONImplementation, BaseColumnType, BaseConnectionOptions, BaseListener, BaseObserverInterface, BasePowerSyncDatabaseOptions, BaseTriggerDiffRecord, BatchedUpdateNotification, BucketChecksum, BucketDescription, BucketOperationProgress, BucketRequest, BucketState, BucketStorageAdapter, BucketStorageListener, Checkpoint, ChecksumCache, ColumnOptions, ColumnsType, CompilableQuery, CompilableQueryWatchHandler, CompiledQuery, ConnectionManagerListener, ConnectionManagerOptions, ConnectionManagerSyncImplementationResult, ContinueCheckpointRequest, ControlledExecutorOptions, CreateDiffTriggerOptions, CreateLoggerOptions, CreateSyncImplementationOptions, CrudRequest, CrudResponse, CrudUploadNotification, DBAdapter, DBAdapterListener, DBGetUtils, DBLockOptions, DataStreamCallback, DataStreamListener, DataStreamOptions, DifferentialQueryProcessorOptions, DifferentialWatchedQuery, DifferentialWatchedQueryComparator, DifferentialWatchedQueryListener, DifferentialWatchedQueryOptions, DifferentialWatchedQuerySettings, DisconnectAndClearOptions, Disposable, ExtractColumnValueType, ExtractedTriggerDiffRecord, FetchImplementation, GetAllQueryOptions, IndexColumnOptions, IndexOptions, IndexShorthand, InternalConnectionOptions, InternalSubscriptionAdapter, LinkQueryOptions, LocalStorageAdapter, LockContext, LockOptions, MutableWatchedQueryState, OnChangeQueryProcessorOptions, OpId, OpTypeJSON, OplogEntryJSON, ParsedQuery, PendingStatement, PendingStatementParameter, PowerSyncBackendConnector, PowerSyncCloseOptions, PowerSyncConnectionOptions, PowerSyncCredentials, PowerSyncDBListener, PowerSyncDatabaseOptions, PowerSyncDatabaseOptionsWithDBAdapter, PowerSyncDatabaseOptionsWithOpenFactory, PowerSyncDatabaseOptionsWithSettings, PowerSyncOpenFactoryOptions, ProgressWithOperations, Query, QueryParam, QueryResult, RawTableType, RemoteConnector, RemoteStorageAdapter, RequiredAdditionalConnectionOptions, RequiredPowerSyncConnectionOptions, RowType, SQLOnChangeOptions, SQLOpenFactory, SQLOpenOptions, SQLWatchOptions, SavedProgress, SchemaTableType, SocketSyncStreamOptions, StandardWatchedQuery, StandardWatchedQueryOptions, StreamingSyncCheckpoint, StreamingSyncCheckpointComplete, StreamingSyncCheckpointDiff, StreamingSyncCheckpointPartiallyComplete, StreamingSyncDataJSON, StreamingSyncImplementation, StreamingSyncImplementationListener, StreamingSyncKeepalive, StreamingSyncLine, StreamingSyncLineOrCrudUploadComplete, StreamingSyncRequest, StreamingSyncRequestParameterType, SubscribedStream, SyncDataBucketJSON, SyncDataFlowStatus, SyncLocalDatabaseResult, SyncNewCheckpointRequest, SyncPriorityStatus, SyncRequest, SyncResponse, SyncStatusOptions, SyncStream, SyncStreamDescription, SyncStreamOptions, SyncStreamStatus, SyncStreamSubscribeOptions, SyncStreamSubscription, SyncSubscriptionDescription, TableOptions, TableOrRawTableOptions, TableUpdateOperation, TableV2Options, TrackDiffOptions, TrackPreviousOptions, Transaction, TriggerClaimManager, TriggerCreationHooks, TriggerDiffDeleteRecord, TriggerDiffHandlerContext, TriggerDiffInsertRecord, TriggerDiffRecord, TriggerDiffUpdateRecord, TriggerManager, TriggerManagerConfig, TriggerRemoveCallback, UpdateNotification, WatchCompatibleQuery, WatchExecuteOptions, WatchHandler, WatchOnChangeEvent, WatchOnChangeHandler, WatchedAttachmentItem, WatchedQuery, WatchedQueryComparator, WatchedQueryDifferential, WatchedQueryListener, WatchedQueryOptions, WatchedQueryRowDifferential, WatchedQuerySettings, WatchedQueryState, WithDiffOptions };
|
|
4347
|
+
export type { AbstractQueryProcessorOptions, AbstractRemoteOptions, AbstractStreamingSyncImplementationOptions, AdditionalConnectionOptions, ArrayComparatorOptions, ArrayQueryDefinition, AttachmentData, AttachmentErrorHandler, AttachmentRecord, AttachmentTableOptions, BSONImplementation, BaseColumnType, BaseConnectionOptions, BaseListener, BaseObserverInterface, BasePowerSyncDatabaseOptions, BaseTriggerDiffRecord, BatchedUpdateNotification, BucketChecksum, BucketDescription, BucketOperationProgress, BucketRequest, BucketState, BucketStorageAdapter, BucketStorageListener, Checkpoint, ChecksumCache, ColumnOptions, ColumnsType, CompilableQuery, CompilableQueryWatchHandler, CompiledQuery, ConnectionManagerListener, ConnectionManagerOptions, ConnectionManagerSyncImplementationResult, ContinueCheckpointRequest, ControlledExecutorOptions, CreateDiffDestinationTableOptions, CreateDiffTriggerOptions, CreateLoggerOptions, CreateSyncImplementationOptions, CrudRequest, CrudResponse, CrudUploadNotification, DBAdapter, DBAdapterListener, DBGetUtils, DBLockOptions, DataStreamCallback, DataStreamListener, DataStreamOptions, DifferentialQueryProcessorOptions, DifferentialWatchedQuery, DifferentialWatchedQueryComparator, DifferentialWatchedQueryListener, DifferentialWatchedQueryOptions, DifferentialWatchedQuerySettings, DisconnectAndClearOptions, Disposable, ExtractColumnValueType, ExtractedTriggerDiffRecord, FetchImplementation, GetAllQueryOptions, IndexColumnOptions, IndexOptions, IndexShorthand, InternalConnectionOptions, InternalSubscriptionAdapter, LinkQueryOptions, LocalStorageAdapter, LockContext, LockOptions, MutableWatchedQueryState, OnChangeQueryProcessorOptions, OpId, OpTypeJSON, OplogEntryJSON, ParsedQuery, PendingStatement, PendingStatementParameter, PowerSyncBackendConnector, PowerSyncCloseOptions, PowerSyncConnectionOptions, PowerSyncCredentials, PowerSyncDBListener, PowerSyncDatabaseOptions, PowerSyncDatabaseOptionsWithDBAdapter, PowerSyncDatabaseOptionsWithOpenFactory, PowerSyncDatabaseOptionsWithSettings, PowerSyncOpenFactoryOptions, ProgressWithOperations, Query, QueryParam, QueryResult, RawTableType, RemoteConnector, RemoteStorageAdapter, RequiredAdditionalConnectionOptions, RequiredPowerSyncConnectionOptions, RowType, SQLOnChangeOptions, SQLOpenFactory, SQLOpenOptions, SQLWatchOptions, SavedProgress, SchemaTableType, SocketSyncStreamOptions, StandardWatchedQuery, StandardWatchedQueryOptions, StreamingSyncCheckpoint, StreamingSyncCheckpointComplete, StreamingSyncCheckpointDiff, StreamingSyncCheckpointPartiallyComplete, StreamingSyncDataJSON, StreamingSyncImplementation, StreamingSyncImplementationListener, StreamingSyncKeepalive, StreamingSyncLine, StreamingSyncLineOrCrudUploadComplete, StreamingSyncRequest, StreamingSyncRequestParameterType, SubscribedStream, SyncDataBucketJSON, SyncDataFlowStatus, SyncLocalDatabaseResult, SyncNewCheckpointRequest, SyncPriorityStatus, SyncRequest, SyncResponse, SyncStatusOptions, SyncStream, SyncStreamDescription, SyncStreamOptions, SyncStreamStatus, SyncStreamSubscribeOptions, SyncStreamSubscription, SyncSubscriptionDescription, TableOptions, TableOrRawTableOptions, TableUpdateOperation, TableV2Options, TrackDiffOptions, TrackPreviousOptions, Transaction, TriggerClaimManager, TriggerCreationHooks, TriggerDiffDeleteRecord, TriggerDiffHandlerContext, TriggerDiffInsertRecord, TriggerDiffRecord, TriggerDiffUpdateRecord, TriggerManager, TriggerManagerConfig, TriggerRemoveCallback, UpdateNotification, WatchCompatibleQuery, WatchExecuteOptions, WatchHandler, WatchOnChangeEvent, WatchOnChangeHandler, WatchedAttachmentItem, WatchedQuery, WatchedQueryComparator, WatchedQueryDifferential, WatchedQueryListener, WatchedQueryOptions, WatchedQueryRowDifferential, WatchedQuerySettings, WatchedQueryState, WithDiffOptions };
|
|
@@ -202,6 +202,12 @@ export interface CreateDiffTriggerOptions extends BaseCreateDiffTriggerOptions {
|
|
|
202
202
|
* When true, the diff trigger will not create or drop the destination table.
|
|
203
203
|
* The caller is responsible for ensuring the table exists with the correct
|
|
204
204
|
* schema before creating the trigger and for dropping it when no longer needed.
|
|
205
|
+
*
|
|
206
|
+
* This is intended for advanced use cases, such as maintaining the destination table
|
|
207
|
+
* across trigger recreations.
|
|
208
|
+
* Note: While `useStorage` controls whether the destination table is persisted to disk
|
|
209
|
+
* across sessions, `manageDestinationExternally` controls who is responsible for the
|
|
210
|
+
* table's lifecycle - the SDK (default) or the caller.
|
|
205
211
|
*/
|
|
206
212
|
manageDestinationExternally?: boolean;
|
|
207
213
|
}
|
|
@@ -327,6 +333,16 @@ export interface TrackDiffOptions extends BaseCreateDiffTriggerOptions {
|
|
|
327
333
|
*/
|
|
328
334
|
throttleMs?: number;
|
|
329
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* @experimental
|
|
338
|
+
* Options for creating a diff trigger destination table with {@link TriggerManager#createDiffDestinationTable}.
|
|
339
|
+
*/
|
|
340
|
+
export interface CreateDiffDestinationTableOptions {
|
|
341
|
+
/** If true, the table will be created as a temporary table. Defaults to false. */
|
|
342
|
+
temporary?: boolean;
|
|
343
|
+
/** If true, the table will only be created if it does not already exist. This can be useful when `manageDestinationExternally` is true. */
|
|
344
|
+
onlyIfNotExists?: boolean;
|
|
345
|
+
}
|
|
330
346
|
/**
|
|
331
347
|
* @experimental
|
|
332
348
|
*/
|
|
@@ -429,6 +445,13 @@ export interface TriggerManager {
|
|
|
429
445
|
* ```
|
|
430
446
|
*/
|
|
431
447
|
trackTableDiff(options: TrackDiffOptions): Promise<TriggerRemoveCallback>;
|
|
448
|
+
/**
|
|
449
|
+
* @experimental
|
|
450
|
+
* Creates a diff trigger destination table on the database with the given configuration.
|
|
451
|
+
* By default this is handled automatically when creating a diff trigger, but needs to
|
|
452
|
+
* be done manually if `manageDestinationExternally` is set to true.
|
|
453
|
+
*/
|
|
454
|
+
createDiffDestinationTable(tableName: string, options?: CreateDiffDestinationTableOptions): Promise<void>;
|
|
432
455
|
}
|
|
433
456
|
/**
|
|
434
457
|
* @experimental
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LockContext } from '../../db/DBAdapter.js';
|
|
2
2
|
import { Schema } from '../../db/schema/Schema.js';
|
|
3
3
|
import type { AbstractPowerSyncDatabase } from '../AbstractPowerSyncDatabase.js';
|
|
4
|
-
import { CreateDiffTriggerOptions, DiffTriggerOperation, TrackDiffOptions, TriggerManager, TriggerManagerConfig, TriggerRemoveCallback } from './TriggerManager.js';
|
|
4
|
+
import { CreateDiffDestinationTableOptions, CreateDiffTriggerOptions, DiffTriggerOperation, TrackDiffOptions, TriggerManager, TriggerManagerConfig, TriggerRemoveCallback } from './TriggerManager.js';
|
|
5
5
|
export type TriggerManagerImplOptions = TriggerManagerConfig & {
|
|
6
6
|
db: AbstractPowerSyncDatabase;
|
|
7
7
|
schema: Schema;
|
|
@@ -29,11 +29,12 @@ export declare class TriggerManagerImpl implements TriggerManager {
|
|
|
29
29
|
* Updates default config settings for platform specific use-cases.
|
|
30
30
|
*/
|
|
31
31
|
updateDefaults(config: TriggerManagerImplConfiguration): void;
|
|
32
|
-
protected generateTriggerName(operation: DiffTriggerOperation, destinationTable: string, triggerId: string): string;
|
|
32
|
+
protected generateTriggerName(operation: DiffTriggerOperation, destinationTable: string, triggerId: string, managedExternally?: boolean): string;
|
|
33
33
|
/**
|
|
34
34
|
* Cleanup any SQLite triggers or tables that are no longer in use.
|
|
35
35
|
*/
|
|
36
36
|
cleanupResources(): Promise<void>;
|
|
37
|
+
createDiffDestinationTable(tableName: string, options?: CreateDiffDestinationTableOptions): Promise<void>;
|
|
37
38
|
createDiffTrigger(options: CreateDiffTriggerOptions): Promise<() => Promise<void>>;
|
|
38
39
|
trackTableDiff(options: TrackDiffOptions): Promise<TriggerRemoveCallback>;
|
|
39
40
|
}
|
|
@@ -81,8 +81,9 @@ export class TriggerManagerImpl {
|
|
|
81
81
|
...config
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
generateTriggerName(operation, destinationTable, triggerId) {
|
|
85
|
-
|
|
84
|
+
generateTriggerName(operation, destinationTable, triggerId, managedExternally = false) {
|
|
85
|
+
const managedTerm = managedExternally ? '_external' : '';
|
|
86
|
+
return `__ps${managedTerm}_temp_trigger_${operation.toLowerCase()}__${destinationTable}__${triggerId}`;
|
|
86
87
|
}
|
|
87
88
|
/**
|
|
88
89
|
* Cleanup any SQLite triggers or tables that are no longer in use.
|
|
@@ -139,6 +140,31 @@ export class TriggerManagerImpl {
|
|
|
139
140
|
}
|
|
140
141
|
});
|
|
141
142
|
}
|
|
143
|
+
async createDiffDestinationTable(tableName, options) {
|
|
144
|
+
const tableTriggerTypeClause = options?.temporary ? 'TEMP' : '';
|
|
145
|
+
const onlyIfNotExists = options?.onlyIfNotExists ? 'IF NOT EXISTS' : '';
|
|
146
|
+
let x = `
|
|
147
|
+
CREATE ${tableTriggerTypeClause} TABLE ${onlyIfNotExists} ${tableName} (
|
|
148
|
+
operation_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
149
|
+
id TEXT,
|
|
150
|
+
operation TEXT,
|
|
151
|
+
timestamp TEXT,
|
|
152
|
+
value TEXT,
|
|
153
|
+
previous_value TEXT
|
|
154
|
+
)
|
|
155
|
+
`;
|
|
156
|
+
console.log(x);
|
|
157
|
+
await this.db.execute(/* sql */ `
|
|
158
|
+
CREATE ${tableTriggerTypeClause} TABLE ${onlyIfNotExists} ${tableName} (
|
|
159
|
+
operation_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
160
|
+
id TEXT,
|
|
161
|
+
operation TEXT,
|
|
162
|
+
timestamp TEXT,
|
|
163
|
+
value TEXT,
|
|
164
|
+
previous_value TEXT
|
|
165
|
+
)
|
|
166
|
+
`);
|
|
167
|
+
}
|
|
142
168
|
async createDiffTrigger(options) {
|
|
143
169
|
await this.db.waitForReady();
|
|
144
170
|
const { source, destination, columns, when, hooks, manageDestinationExternally = false,
|
|
@@ -222,7 +248,7 @@ export class TriggerManagerImpl {
|
|
|
222
248
|
`);
|
|
223
249
|
}
|
|
224
250
|
if (operations.includes(DiffTriggerOperation.INSERT)) {
|
|
225
|
-
const insertTriggerId = this.generateTriggerName(DiffTriggerOperation.INSERT, destination, id);
|
|
251
|
+
const insertTriggerId = this.generateTriggerName(DiffTriggerOperation.INSERT, destination, id, manageDestinationExternally);
|
|
226
252
|
triggerIds.push(insertTriggerId);
|
|
227
253
|
await tx.execute(/* sql */ `
|
|
228
254
|
CREATE ${tableTriggerTypeClause} TRIGGER ${insertTriggerId} AFTER INSERT ON ${internalSource} ${whenClauses[DiffTriggerOperation.INSERT]} BEGIN
|
|
@@ -240,7 +266,7 @@ export class TriggerManagerImpl {
|
|
|
240
266
|
`);
|
|
241
267
|
}
|
|
242
268
|
if (operations.includes(DiffTriggerOperation.UPDATE)) {
|
|
243
|
-
const updateTriggerId = this.generateTriggerName(DiffTriggerOperation.UPDATE, destination, id);
|
|
269
|
+
const updateTriggerId = this.generateTriggerName(DiffTriggerOperation.UPDATE, destination, id, manageDestinationExternally);
|
|
244
270
|
triggerIds.push(updateTriggerId);
|
|
245
271
|
await tx.execute(/* sql */ `
|
|
246
272
|
CREATE ${tableTriggerTypeClause} TRIGGER ${updateTriggerId} AFTER
|
|
@@ -260,7 +286,7 @@ export class TriggerManagerImpl {
|
|
|
260
286
|
`);
|
|
261
287
|
}
|
|
262
288
|
if (operations.includes(DiffTriggerOperation.DELETE)) {
|
|
263
|
-
const deleteTriggerId = this.generateTriggerName(DiffTriggerOperation.DELETE, destination, id);
|
|
289
|
+
const deleteTriggerId = this.generateTriggerName(DiffTriggerOperation.DELETE, destination, id, manageDestinationExternally);
|
|
264
290
|
triggerIds.push(deleteTriggerId);
|
|
265
291
|
// Create delete trigger for basic JSON
|
|
266
292
|
await tx.execute(/* sql */ `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerManagerImpl.js","sourceRoot":"","sources":["../../../src/client/triggers/TriggerManagerImpl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TriggerManagerImpl.js","sourceRoot":"","sources":["../../../src/client/triggers/TriggerManagerImpl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -228,6 +228,12 @@ export interface CreateDiffTriggerOptions extends BaseCreateDiffTriggerOptions {
|
|
|
228
228
|
* When true, the diff trigger will not create or drop the destination table.
|
|
229
229
|
* The caller is responsible for ensuring the table exists with the correct
|
|
230
230
|
* schema before creating the trigger and for dropping it when no longer needed.
|
|
231
|
+
*
|
|
232
|
+
* This is intended for advanced use cases, such as maintaining the destination table
|
|
233
|
+
* across trigger recreations.
|
|
234
|
+
* Note: While `useStorage` controls whether the destination table is persisted to disk
|
|
235
|
+
* across sessions, `manageDestinationExternally` controls who is responsible for the
|
|
236
|
+
* table's lifecycle - the SDK (default) or the caller.
|
|
231
237
|
*/
|
|
232
238
|
manageDestinationExternally?: boolean;
|
|
233
239
|
}
|
|
@@ -361,6 +367,18 @@ export interface TrackDiffOptions extends BaseCreateDiffTriggerOptions {
|
|
|
361
367
|
throttleMs?: number;
|
|
362
368
|
}
|
|
363
369
|
|
|
370
|
+
/**
|
|
371
|
+
* @experimental
|
|
372
|
+
* Options for creating a diff trigger destination table with {@link TriggerManager#createDiffDestinationTable}.
|
|
373
|
+
*/
|
|
374
|
+
export interface CreateDiffDestinationTableOptions {
|
|
375
|
+
/** If true, the table will be created as a temporary table. Defaults to false. */
|
|
376
|
+
temporary?: boolean;
|
|
377
|
+
|
|
378
|
+
/** If true, the table will only be created if it does not already exist. This can be useful when `manageDestinationExternally` is true. */
|
|
379
|
+
onlyIfNotExists?: boolean;
|
|
380
|
+
}
|
|
381
|
+
|
|
364
382
|
/**
|
|
365
383
|
* @experimental
|
|
366
384
|
*/
|
|
@@ -464,6 +482,14 @@ export interface TriggerManager {
|
|
|
464
482
|
* ```
|
|
465
483
|
*/
|
|
466
484
|
trackTableDiff(options: TrackDiffOptions): Promise<TriggerRemoveCallback>;
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* @experimental
|
|
488
|
+
* Creates a diff trigger destination table on the database with the given configuration.
|
|
489
|
+
* By default this is handled automatically when creating a diff trigger, but needs to
|
|
490
|
+
* be done manually if `manageDestinationExternally` is set to true.
|
|
491
|
+
*/
|
|
492
|
+
createDiffDestinationTable(tableName: string, options?: CreateDiffDestinationTableOptions): Promise<void>;
|
|
467
493
|
}
|
|
468
494
|
|
|
469
495
|
/**
|
|
@@ -3,6 +3,7 @@ import { Schema } from '../../db/schema/Schema.js';
|
|
|
3
3
|
import type { AbstractPowerSyncDatabase } from '../AbstractPowerSyncDatabase.js';
|
|
4
4
|
import { DEFAULT_WATCH_THROTTLE_MS } from '../watched/WatchedQuery.js';
|
|
5
5
|
import {
|
|
6
|
+
CreateDiffDestinationTableOptions,
|
|
6
7
|
CreateDiffTriggerOptions,
|
|
7
8
|
DiffTriggerOperation,
|
|
8
9
|
TrackDiffOptions,
|
|
@@ -129,8 +130,14 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
129
130
|
};
|
|
130
131
|
}
|
|
131
132
|
|
|
132
|
-
protected generateTriggerName(
|
|
133
|
-
|
|
133
|
+
protected generateTriggerName(
|
|
134
|
+
operation: DiffTriggerOperation,
|
|
135
|
+
destinationTable: string,
|
|
136
|
+
triggerId: string,
|
|
137
|
+
managedExternally = false
|
|
138
|
+
) {
|
|
139
|
+
const managedTerm = managedExternally ? '_external' : '';
|
|
140
|
+
return `__ps${managedTerm}_temp_trigger_${operation.toLowerCase()}__${destinationTable}__${triggerId}`;
|
|
134
141
|
}
|
|
135
142
|
|
|
136
143
|
/**
|
|
@@ -193,6 +200,33 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
193
200
|
});
|
|
194
201
|
}
|
|
195
202
|
|
|
203
|
+
async createDiffDestinationTable(tableName: string, options?: CreateDiffDestinationTableOptions): Promise<void> {
|
|
204
|
+
const tableTriggerTypeClause = options?.temporary ? 'TEMP' : '';
|
|
205
|
+
const onlyIfNotExists = options?.onlyIfNotExists ? 'IF NOT EXISTS' : '';
|
|
206
|
+
|
|
207
|
+
let x = `
|
|
208
|
+
CREATE ${tableTriggerTypeClause} TABLE ${onlyIfNotExists} ${tableName} (
|
|
209
|
+
operation_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
210
|
+
id TEXT,
|
|
211
|
+
operation TEXT,
|
|
212
|
+
timestamp TEXT,
|
|
213
|
+
value TEXT,
|
|
214
|
+
previous_value TEXT
|
|
215
|
+
)
|
|
216
|
+
`;
|
|
217
|
+
console.log(x);
|
|
218
|
+
await this.db.execute(/* sql */ `
|
|
219
|
+
CREATE ${tableTriggerTypeClause} TABLE ${onlyIfNotExists} ${tableName} (
|
|
220
|
+
operation_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
221
|
+
id TEXT,
|
|
222
|
+
operation TEXT,
|
|
223
|
+
timestamp TEXT,
|
|
224
|
+
value TEXT,
|
|
225
|
+
previous_value TEXT
|
|
226
|
+
)
|
|
227
|
+
`);
|
|
228
|
+
}
|
|
229
|
+
|
|
196
230
|
async createDiffTrigger(options: CreateDiffTriggerOptions) {
|
|
197
231
|
await this.db.waitForReady();
|
|
198
232
|
const {
|
|
@@ -297,7 +331,12 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
297
331
|
}
|
|
298
332
|
|
|
299
333
|
if (operations.includes(DiffTriggerOperation.INSERT)) {
|
|
300
|
-
const insertTriggerId = this.generateTriggerName(
|
|
334
|
+
const insertTriggerId = this.generateTriggerName(
|
|
335
|
+
DiffTriggerOperation.INSERT,
|
|
336
|
+
destination,
|
|
337
|
+
id,
|
|
338
|
+
manageDestinationExternally
|
|
339
|
+
);
|
|
301
340
|
triggerIds.push(insertTriggerId);
|
|
302
341
|
|
|
303
342
|
await tx.execute(/* sql */ `
|
|
@@ -319,7 +358,12 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
319
358
|
}
|
|
320
359
|
|
|
321
360
|
if (operations.includes(DiffTriggerOperation.UPDATE)) {
|
|
322
|
-
const updateTriggerId = this.generateTriggerName(
|
|
361
|
+
const updateTriggerId = this.generateTriggerName(
|
|
362
|
+
DiffTriggerOperation.UPDATE,
|
|
363
|
+
destination,
|
|
364
|
+
id,
|
|
365
|
+
manageDestinationExternally
|
|
366
|
+
);
|
|
323
367
|
triggerIds.push(updateTriggerId);
|
|
324
368
|
|
|
325
369
|
await tx.execute(/* sql */ `
|
|
@@ -341,7 +385,12 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
341
385
|
}
|
|
342
386
|
|
|
343
387
|
if (operations.includes(DiffTriggerOperation.DELETE)) {
|
|
344
|
-
const deleteTriggerId = this.generateTriggerName(
|
|
388
|
+
const deleteTriggerId = this.generateTriggerName(
|
|
389
|
+
DiffTriggerOperation.DELETE,
|
|
390
|
+
destination,
|
|
391
|
+
id,
|
|
392
|
+
manageDestinationExternally
|
|
393
|
+
);
|
|
345
394
|
triggerIds.push(deleteTriggerId);
|
|
346
395
|
|
|
347
396
|
// Create delete trigger for basic JSON
|