@powersync/common 0.0.0-dev-20260309101613 → 0.0.0-dev-20260311081226
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 +33 -42
- package/dist/bundle.cjs.map +1 -1
- package/dist/bundle.mjs +33 -42
- package/dist/bundle.mjs.map +1 -1
- package/dist/bundle.node.cjs +33 -42
- package/dist/bundle.node.cjs.map +1 -1
- package/dist/bundle.node.mjs +33 -42
- package/dist/bundle.node.mjs.map +1 -1
- package/dist/index.d.cts +5 -34
- package/lib/client/triggers/TriggerManager.d.ts +2 -30
- package/lib/client/triggers/TriggerManagerImpl.d.ts +3 -4
- package/lib/client/triggers/TriggerManagerImpl.js +33 -42
- package/lib/client/triggers/TriggerManagerImpl.js.map +1 -1
- package/package.json +1 -1
- package/src/client/triggers/TriggerManager.ts +2 -34
- package/src/client/triggers/TriggerManagerImpl.ts +31 -66
package/dist/index.d.cts
CHANGED
|
@@ -2684,24 +2684,13 @@ interface CreateDiffTriggerOptions extends BaseCreateDiffTriggerOptions {
|
|
|
2684
2684
|
* This table will be dropped once the trigger is removed.
|
|
2685
2685
|
*/
|
|
2686
2686
|
destination: string;
|
|
2687
|
-
|
|
2688
|
-
* When true, the diff trigger will not create or drop the destination table.
|
|
2689
|
-
* The caller is responsible for ensuring the table exists with the correct
|
|
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.
|
|
2697
|
-
*/
|
|
2698
|
-
manageDestinationExternally?: boolean;
|
|
2687
|
+
setupContext?: LockContext;
|
|
2699
2688
|
}
|
|
2700
2689
|
/**
|
|
2701
2690
|
* @experimental
|
|
2702
2691
|
* Callback to drop a trigger after it has been created.
|
|
2703
2692
|
*/
|
|
2704
|
-
type TriggerRemoveCallback = () => Promise<void>;
|
|
2693
|
+
type TriggerRemoveCallback = (context?: LockContext) => Promise<void>;
|
|
2705
2694
|
/**
|
|
2706
2695
|
* @experimental
|
|
2707
2696
|
* Options for {@link TriggerDiffHandlerContext#withDiff}.
|
|
@@ -2819,16 +2808,6 @@ interface TrackDiffOptions extends BaseCreateDiffTriggerOptions {
|
|
|
2819
2808
|
*/
|
|
2820
2809
|
throttleMs?: number;
|
|
2821
2810
|
}
|
|
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 true. */
|
|
2828
|
-
temporary?: boolean;
|
|
2829
|
-
/** If true, the table will only be created if it does not already exist. Defaults to false. */
|
|
2830
|
-
onlyIfNotExists?: boolean;
|
|
2831
|
-
}
|
|
2832
2811
|
/**
|
|
2833
2812
|
* @experimental
|
|
2834
2813
|
*/
|
|
@@ -2931,13 +2910,6 @@ interface TriggerManager {
|
|
|
2931
2910
|
* ```
|
|
2932
2911
|
*/
|
|
2933
2912
|
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>;
|
|
2941
2913
|
}
|
|
2942
2914
|
/**
|
|
2943
2915
|
* @experimental
|
|
@@ -2998,13 +2970,12 @@ declare class TriggerManagerImpl implements TriggerManager {
|
|
|
2998
2970
|
* Updates default config settings for platform specific use-cases.
|
|
2999
2971
|
*/
|
|
3000
2972
|
updateDefaults(config: TriggerManagerImplConfiguration): void;
|
|
3001
|
-
protected generateTriggerName(operation: DiffTriggerOperation, destinationTable: string, triggerId: string
|
|
2973
|
+
protected generateTriggerName(operation: DiffTriggerOperation, destinationTable: string, triggerId: string): string;
|
|
3002
2974
|
/**
|
|
3003
2975
|
* Cleanup any SQLite triggers or tables that are no longer in use.
|
|
3004
2976
|
*/
|
|
3005
2977
|
cleanupResources(): Promise<void>;
|
|
3006
|
-
|
|
3007
|
-
createDiffTrigger(options: CreateDiffTriggerOptions): Promise<() => Promise<void>>;
|
|
2978
|
+
createDiffTrigger(options: CreateDiffTriggerOptions): Promise<(context?: LockContext) => Promise<void>>;
|
|
3008
2979
|
trackTableDiff(options: TrackDiffOptions): Promise<TriggerRemoveCallback>;
|
|
3009
2980
|
}
|
|
3010
2981
|
|
|
@@ -4344,4 +4315,4 @@ interface ParsedQuery {
|
|
|
4344
4315
|
declare const parseQuery: <T>(query: string | CompilableQuery<T>, parameters: any[]) => ParsedQuery;
|
|
4345
4316
|
|
|
4346
4317
|
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 };
|
|
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,
|
|
4318
|
+
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 };
|
|
@@ -198,24 +198,13 @@ export interface CreateDiffTriggerOptions extends BaseCreateDiffTriggerOptions {
|
|
|
198
198
|
* This table will be dropped once the trigger is removed.
|
|
199
199
|
*/
|
|
200
200
|
destination: string;
|
|
201
|
-
|
|
202
|
-
* When true, the diff trigger will not create or drop the destination table.
|
|
203
|
-
* The caller is responsible for ensuring the table exists with the correct
|
|
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.
|
|
211
|
-
*/
|
|
212
|
-
manageDestinationExternally?: boolean;
|
|
201
|
+
setupContext?: LockContext;
|
|
213
202
|
}
|
|
214
203
|
/**
|
|
215
204
|
* @experimental
|
|
216
205
|
* Callback to drop a trigger after it has been created.
|
|
217
206
|
*/
|
|
218
|
-
export type TriggerRemoveCallback = () => Promise<void>;
|
|
207
|
+
export type TriggerRemoveCallback = (context?: LockContext) => Promise<void>;
|
|
219
208
|
/**
|
|
220
209
|
* @experimental
|
|
221
210
|
* Options for {@link TriggerDiffHandlerContext#withDiff}.
|
|
@@ -333,16 +322,6 @@ export interface TrackDiffOptions extends BaseCreateDiffTriggerOptions {
|
|
|
333
322
|
*/
|
|
334
323
|
throttleMs?: number;
|
|
335
324
|
}
|
|
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 true. */
|
|
342
|
-
temporary?: boolean;
|
|
343
|
-
/** If true, the table will only be created if it does not already exist. Defaults to false. */
|
|
344
|
-
onlyIfNotExists?: boolean;
|
|
345
|
-
}
|
|
346
325
|
/**
|
|
347
326
|
* @experimental
|
|
348
327
|
*/
|
|
@@ -445,13 +424,6 @@ export interface TriggerManager {
|
|
|
445
424
|
* ```
|
|
446
425
|
*/
|
|
447
426
|
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>;
|
|
455
427
|
}
|
|
456
428
|
/**
|
|
457
429
|
* @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 {
|
|
4
|
+
import { CreateDiffTriggerOptions, DiffTriggerOperation, TrackDiffOptions, TriggerManager, TriggerManagerConfig, TriggerRemoveCallback } from './TriggerManager.js';
|
|
5
5
|
export type TriggerManagerImplOptions = TriggerManagerConfig & {
|
|
6
6
|
db: AbstractPowerSyncDatabase;
|
|
7
7
|
schema: Schema;
|
|
@@ -29,12 +29,11 @@ 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
|
|
32
|
+
protected generateTriggerName(operation: DiffTriggerOperation, destinationTable: string, triggerId: string): 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
|
-
|
|
38
|
-
createDiffTrigger(options: CreateDiffTriggerOptions): Promise<() => Promise<void>>;
|
|
37
|
+
createDiffTrigger(options: CreateDiffTriggerOptions): Promise<(context?: LockContext) => Promise<void>>;
|
|
39
38
|
trackTableDiff(options: TrackDiffOptions): Promise<TriggerRemoveCallback>;
|
|
40
39
|
}
|
|
@@ -81,9 +81,8 @@ export class TriggerManagerImpl {
|
|
|
81
81
|
...config
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
generateTriggerName(operation, destinationTable, triggerId
|
|
85
|
-
|
|
86
|
-
return `__ps${managedTerm}_temp_trigger_${operation.toLowerCase()}__${destinationTable}__${triggerId}`;
|
|
84
|
+
generateTriggerName(operation, destinationTable, triggerId) {
|
|
85
|
+
return `__ps_temp_trigger_${operation.toLowerCase()}__${destinationTable}__${triggerId}`;
|
|
87
86
|
}
|
|
88
87
|
/**
|
|
89
88
|
* Cleanup any SQLite triggers or tables that are no longer in use.
|
|
@@ -140,24 +139,9 @@ export class TriggerManagerImpl {
|
|
|
140
139
|
}
|
|
141
140
|
});
|
|
142
141
|
}
|
|
143
|
-
async createDiffDestinationTable(tableName, options) {
|
|
144
|
-
const { temporary = true, onlyIfNotExists = false } = options ?? {};
|
|
145
|
-
const tableTriggerTypeClause = temporary ? 'TEMP' : '';
|
|
146
|
-
const onlyIfNotExistsClause = onlyIfNotExists ? 'IF NOT EXISTS' : '';
|
|
147
|
-
await this.db.execute(/* sql */ `
|
|
148
|
-
CREATE ${tableTriggerTypeClause} TABLE ${onlyIfNotExistsClause} ${tableName} (
|
|
149
|
-
operation_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
150
|
-
id TEXT,
|
|
151
|
-
operation TEXT,
|
|
152
|
-
timestamp TEXT,
|
|
153
|
-
value TEXT,
|
|
154
|
-
previous_value TEXT
|
|
155
|
-
)
|
|
156
|
-
`);
|
|
157
|
-
}
|
|
158
142
|
async createDiffTrigger(options) {
|
|
159
143
|
await this.db.waitForReady();
|
|
160
|
-
const { source, destination, columns, when, hooks,
|
|
144
|
+
const { source, destination, columns, when, hooks, setupContext,
|
|
161
145
|
// Fall back to the provided default if not given on this level
|
|
162
146
|
useStorage = this.defaultConfig.useStorageByDefault } = options;
|
|
163
147
|
const operations = Object.keys(when);
|
|
@@ -184,7 +168,7 @@ export class TriggerManagerImpl {
|
|
|
184
168
|
const internalSource = sourceDefinition.internalName;
|
|
185
169
|
const triggerIds = [];
|
|
186
170
|
const id = await this.getUUID();
|
|
187
|
-
const releaseStorageClaim = useStorage
|
|
171
|
+
const releaseStorageClaim = useStorage ? await this.options.claimManager.obtainClaim(id) : null;
|
|
188
172
|
/**
|
|
189
173
|
* We default to replicating all columns if no columns array is provided.
|
|
190
174
|
*/
|
|
@@ -212,33 +196,35 @@ export class TriggerManagerImpl {
|
|
|
212
196
|
* we need to ensure we can cleanup the created resources.
|
|
213
197
|
* We unfortunately cannot rely on transaction rollback.
|
|
214
198
|
*/
|
|
215
|
-
const cleanup = async () => {
|
|
199
|
+
const cleanup = async (context) => {
|
|
216
200
|
disposeWarningListener();
|
|
217
|
-
|
|
201
|
+
const doCleanup = async (tx) => {
|
|
218
202
|
await this.removeTriggers(tx, triggerIds);
|
|
219
|
-
|
|
220
|
-
await tx.execute(/* sql */ `DROP TABLE IF EXISTS ${destination};`);
|
|
221
|
-
}
|
|
203
|
+
await tx.execute(`DROP TABLE IF EXISTS ${destination};`);
|
|
222
204
|
await releaseStorageClaim?.();
|
|
223
|
-
}
|
|
205
|
+
};
|
|
206
|
+
if (context) {
|
|
207
|
+
await doCleanup(context);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
await this.db.writeLock(doCleanup);
|
|
211
|
+
}
|
|
224
212
|
};
|
|
225
213
|
const setup = async (tx) => {
|
|
226
214
|
// Allow user code to execute in this lock context before the trigger is created.
|
|
227
215
|
await hooks?.beforeCreate?.(tx);
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
`);
|
|
239
|
-
}
|
|
216
|
+
await tx.execute(/* sql */ `
|
|
217
|
+
CREATE ${tableTriggerTypeClause} TABLE ${destination} (
|
|
218
|
+
operation_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
219
|
+
id TEXT,
|
|
220
|
+
operation TEXT,
|
|
221
|
+
timestamp TEXT,
|
|
222
|
+
value TEXT,
|
|
223
|
+
previous_value TEXT
|
|
224
|
+
)
|
|
225
|
+
`);
|
|
240
226
|
if (operations.includes(DiffTriggerOperation.INSERT)) {
|
|
241
|
-
const insertTriggerId = this.generateTriggerName(DiffTriggerOperation.INSERT, destination, id
|
|
227
|
+
const insertTriggerId = this.generateTriggerName(DiffTriggerOperation.INSERT, destination, id);
|
|
242
228
|
triggerIds.push(insertTriggerId);
|
|
243
229
|
await tx.execute(/* sql */ `
|
|
244
230
|
CREATE ${tableTriggerTypeClause} TRIGGER ${insertTriggerId} AFTER INSERT ON ${internalSource} ${whenClauses[DiffTriggerOperation.INSERT]} BEGIN
|
|
@@ -256,7 +242,7 @@ export class TriggerManagerImpl {
|
|
|
256
242
|
`);
|
|
257
243
|
}
|
|
258
244
|
if (operations.includes(DiffTriggerOperation.UPDATE)) {
|
|
259
|
-
const updateTriggerId = this.generateTriggerName(DiffTriggerOperation.UPDATE, destination, id
|
|
245
|
+
const updateTriggerId = this.generateTriggerName(DiffTriggerOperation.UPDATE, destination, id);
|
|
260
246
|
triggerIds.push(updateTriggerId);
|
|
261
247
|
await tx.execute(/* sql */ `
|
|
262
248
|
CREATE ${tableTriggerTypeClause} TRIGGER ${updateTriggerId} AFTER
|
|
@@ -276,7 +262,7 @@ export class TriggerManagerImpl {
|
|
|
276
262
|
`);
|
|
277
263
|
}
|
|
278
264
|
if (operations.includes(DiffTriggerOperation.DELETE)) {
|
|
279
|
-
const deleteTriggerId = this.generateTriggerName(DiffTriggerOperation.DELETE, destination, id
|
|
265
|
+
const deleteTriggerId = this.generateTriggerName(DiffTriggerOperation.DELETE, destination, id);
|
|
280
266
|
triggerIds.push(deleteTriggerId);
|
|
281
267
|
// Create delete trigger for basic JSON
|
|
282
268
|
await tx.execute(/* sql */ `
|
|
@@ -296,7 +282,12 @@ export class TriggerManagerImpl {
|
|
|
296
282
|
}
|
|
297
283
|
};
|
|
298
284
|
try {
|
|
299
|
-
|
|
285
|
+
if (setupContext) {
|
|
286
|
+
await setup(setupContext);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
await this.db.writeLock(setup);
|
|
290
|
+
}
|
|
300
291
|
return cleanup;
|
|
301
292
|
}
|
|
302
293
|
catch (error) {
|
|
@@ -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
|
@@ -224,26 +224,14 @@ export interface CreateDiffTriggerOptions extends BaseCreateDiffTriggerOptions {
|
|
|
224
224
|
*/
|
|
225
225
|
destination: string;
|
|
226
226
|
|
|
227
|
-
|
|
228
|
-
* When true, the diff trigger will not create or drop the destination table.
|
|
229
|
-
* The caller is responsible for ensuring the table exists with the correct
|
|
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.
|
|
237
|
-
*/
|
|
238
|
-
manageDestinationExternally?: boolean;
|
|
227
|
+
setupContext?: LockContext;
|
|
239
228
|
}
|
|
240
229
|
|
|
241
230
|
/**
|
|
242
231
|
* @experimental
|
|
243
232
|
* Callback to drop a trigger after it has been created.
|
|
244
233
|
*/
|
|
245
|
-
export type TriggerRemoveCallback = () => Promise<void>;
|
|
246
|
-
|
|
234
|
+
export type TriggerRemoveCallback = (context?: LockContext) => Promise<void>;
|
|
247
235
|
/**
|
|
248
236
|
* @experimental
|
|
249
237
|
* Options for {@link TriggerDiffHandlerContext#withDiff}.
|
|
@@ -367,18 +355,6 @@ export interface TrackDiffOptions extends BaseCreateDiffTriggerOptions {
|
|
|
367
355
|
throttleMs?: number;
|
|
368
356
|
}
|
|
369
357
|
|
|
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 true. */
|
|
376
|
-
temporary?: boolean;
|
|
377
|
-
|
|
378
|
-
/** If true, the table will only be created if it does not already exist. Defaults to false. */
|
|
379
|
-
onlyIfNotExists?: boolean;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
358
|
/**
|
|
383
359
|
* @experimental
|
|
384
360
|
*/
|
|
@@ -482,14 +458,6 @@ export interface TriggerManager {
|
|
|
482
458
|
* ```
|
|
483
459
|
*/
|
|
484
460
|
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>;
|
|
493
461
|
}
|
|
494
462
|
|
|
495
463
|
/**
|
|
@@ -3,7 +3,6 @@ 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,
|
|
7
6
|
CreateDiffTriggerOptions,
|
|
8
7
|
DiffTriggerOperation,
|
|
9
8
|
TrackDiffOptions,
|
|
@@ -130,14 +129,8 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
130
129
|
};
|
|
131
130
|
}
|
|
132
131
|
|
|
133
|
-
protected generateTriggerName(
|
|
134
|
-
operation
|
|
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}`;
|
|
132
|
+
protected generateTriggerName(operation: DiffTriggerOperation, destinationTable: string, triggerId: string) {
|
|
133
|
+
return `__ps_temp_trigger_${operation.toLowerCase()}__${destinationTable}__${triggerId}`;
|
|
141
134
|
}
|
|
142
135
|
|
|
143
136
|
/**
|
|
@@ -200,23 +193,6 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
200
193
|
});
|
|
201
194
|
}
|
|
202
195
|
|
|
203
|
-
async createDiffDestinationTable(tableName: string, options?: CreateDiffDestinationTableOptions): Promise<void> {
|
|
204
|
-
const { temporary = true, onlyIfNotExists = false } = options ?? {};
|
|
205
|
-
const tableTriggerTypeClause = temporary ? 'TEMP' : '';
|
|
206
|
-
const onlyIfNotExistsClause = onlyIfNotExists ? 'IF NOT EXISTS' : '';
|
|
207
|
-
|
|
208
|
-
await this.db.execute(/* sql */ `
|
|
209
|
-
CREATE ${tableTriggerTypeClause} TABLE ${onlyIfNotExistsClause} ${tableName} (
|
|
210
|
-
operation_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
211
|
-
id TEXT,
|
|
212
|
-
operation TEXT,
|
|
213
|
-
timestamp TEXT,
|
|
214
|
-
value TEXT,
|
|
215
|
-
previous_value TEXT
|
|
216
|
-
)
|
|
217
|
-
`);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
196
|
async createDiffTrigger(options: CreateDiffTriggerOptions) {
|
|
221
197
|
await this.db.waitForReady();
|
|
222
198
|
const {
|
|
@@ -225,7 +201,7 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
225
201
|
columns,
|
|
226
202
|
when,
|
|
227
203
|
hooks,
|
|
228
|
-
|
|
204
|
+
setupContext,
|
|
229
205
|
// Fall back to the provided default if not given on this level
|
|
230
206
|
useStorage = this.defaultConfig.useStorageByDefault
|
|
231
207
|
} = options;
|
|
@@ -262,8 +238,7 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
262
238
|
|
|
263
239
|
const id = await this.getUUID();
|
|
264
240
|
|
|
265
|
-
const releaseStorageClaim =
|
|
266
|
-
useStorage && !manageDestinationExternally ? await this.options.claimManager.obtainClaim(id) : null;
|
|
241
|
+
const releaseStorageClaim = useStorage ? await this.options.claimManager.obtainClaim(id) : null;
|
|
267
242
|
|
|
268
243
|
/**
|
|
269
244
|
* We default to replicating all columns if no columns array is provided.
|
|
@@ -294,40 +269,36 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
294
269
|
* we need to ensure we can cleanup the created resources.
|
|
295
270
|
* We unfortunately cannot rely on transaction rollback.
|
|
296
271
|
*/
|
|
297
|
-
const cleanup = async () => {
|
|
272
|
+
const cleanup = async (context?: LockContext) => {
|
|
298
273
|
disposeWarningListener();
|
|
299
|
-
|
|
274
|
+
const doCleanup = async (tx: LockContext) => {
|
|
300
275
|
await this.removeTriggers(tx, triggerIds);
|
|
301
|
-
|
|
302
|
-
await tx.execute(/* sql */ `DROP TABLE IF EXISTS ${destination};`);
|
|
303
|
-
}
|
|
276
|
+
await tx.execute(`DROP TABLE IF EXISTS ${destination};`);
|
|
304
277
|
await releaseStorageClaim?.();
|
|
305
|
-
}
|
|
278
|
+
};
|
|
279
|
+
if (context) {
|
|
280
|
+
await doCleanup(context);
|
|
281
|
+
} else {
|
|
282
|
+
await this.db.writeLock(doCleanup);
|
|
283
|
+
}
|
|
306
284
|
};
|
|
307
285
|
|
|
308
286
|
const setup = async (tx: LockContext) => {
|
|
309
287
|
// Allow user code to execute in this lock context before the trigger is created.
|
|
310
288
|
await hooks?.beforeCreate?.(tx);
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
`);
|
|
322
|
-
}
|
|
289
|
+
await tx.execute(/* sql */ `
|
|
290
|
+
CREATE ${tableTriggerTypeClause} TABLE ${destination} (
|
|
291
|
+
operation_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
292
|
+
id TEXT,
|
|
293
|
+
operation TEXT,
|
|
294
|
+
timestamp TEXT,
|
|
295
|
+
value TEXT,
|
|
296
|
+
previous_value TEXT
|
|
297
|
+
)
|
|
298
|
+
`);
|
|
323
299
|
|
|
324
300
|
if (operations.includes(DiffTriggerOperation.INSERT)) {
|
|
325
|
-
const insertTriggerId = this.generateTriggerName(
|
|
326
|
-
DiffTriggerOperation.INSERT,
|
|
327
|
-
destination,
|
|
328
|
-
id,
|
|
329
|
-
manageDestinationExternally
|
|
330
|
-
);
|
|
301
|
+
const insertTriggerId = this.generateTriggerName(DiffTriggerOperation.INSERT, destination, id);
|
|
331
302
|
triggerIds.push(insertTriggerId);
|
|
332
303
|
|
|
333
304
|
await tx.execute(/* sql */ `
|
|
@@ -349,12 +320,7 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
349
320
|
}
|
|
350
321
|
|
|
351
322
|
if (operations.includes(DiffTriggerOperation.UPDATE)) {
|
|
352
|
-
const updateTriggerId = this.generateTriggerName(
|
|
353
|
-
DiffTriggerOperation.UPDATE,
|
|
354
|
-
destination,
|
|
355
|
-
id,
|
|
356
|
-
manageDestinationExternally
|
|
357
|
-
);
|
|
323
|
+
const updateTriggerId = this.generateTriggerName(DiffTriggerOperation.UPDATE, destination, id);
|
|
358
324
|
triggerIds.push(updateTriggerId);
|
|
359
325
|
|
|
360
326
|
await tx.execute(/* sql */ `
|
|
@@ -376,12 +342,7 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
376
342
|
}
|
|
377
343
|
|
|
378
344
|
if (operations.includes(DiffTriggerOperation.DELETE)) {
|
|
379
|
-
const deleteTriggerId = this.generateTriggerName(
|
|
380
|
-
DiffTriggerOperation.DELETE,
|
|
381
|
-
destination,
|
|
382
|
-
id,
|
|
383
|
-
manageDestinationExternally
|
|
384
|
-
);
|
|
345
|
+
const deleteTriggerId = this.generateTriggerName(DiffTriggerOperation.DELETE, destination, id);
|
|
385
346
|
triggerIds.push(deleteTriggerId);
|
|
386
347
|
|
|
387
348
|
// Create delete trigger for basic JSON
|
|
@@ -405,7 +366,11 @@ export class TriggerManagerImpl implements TriggerManager {
|
|
|
405
366
|
};
|
|
406
367
|
|
|
407
368
|
try {
|
|
408
|
-
|
|
369
|
+
if (setupContext) {
|
|
370
|
+
await setup(setupContext);
|
|
371
|
+
} else {
|
|
372
|
+
await this.db.writeLock(setup);
|
|
373
|
+
}
|
|
409
374
|
return cleanup;
|
|
410
375
|
} catch (error) {
|
|
411
376
|
try {
|