@ganju/utils 0.0.17 → 0.0.18
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/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +14 -1
- package/dist/customCodeToken.d.ts +4 -0
- package/dist/customCodeToken.d.ts.map +1 -1
- package/dist/customCodeToken.js +9 -1
- package/dist/data.d.ts +2 -0
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +28 -1
- package/dist/dataApi.d.ts +133 -1
- package/dist/dataApi.d.ts.map +1 -1
- package/dist/dataApi.js +62 -1
- package/dist/dataDdl.d.ts.map +1 -1
- package/dist/dataDdl.js +3 -1
- package/dist/dataEngine.d.ts.map +1 -1
- package/dist/dataEngine.js +62 -0
- package/dist/dataRpc.d.ts +25 -0
- package/dist/dataRpc.d.ts.map +1 -1
- package/dist/dataTriggers.d.ts +203 -0
- package/dist/dataTriggers.d.ts.map +1 -0
- package/dist/dataTriggers.js +760 -0
- package/dist/dataTypes.d.ts +1 -0
- package/dist/dataTypes.d.ts.map +1 -1
- package/dist/index.d.ts +115 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/localizeDataError.d.ts +18 -0
- package/dist/localizeDataError.d.ts.map +1 -0
- package/dist/localizeDataError.js +359 -0
- package/dist/schema.d.ts +110 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +84 -0
- package/dist/sdkConstants.d.ts +2 -0
- package/dist/sdkConstants.d.ts.map +1 -1
- package/dist/sdkConstants.js +3 -1
- package/package.json +1 -1
- package/src/constants.ts +17 -1
- package/src/customCodeToken.ts +14 -1
- package/src/data.ts +40 -0
- package/src/dataApi.ts +78 -2
- package/src/dataDdl.ts +3 -1
- package/src/dataEngine.ts +70 -0
- package/src/dataRpc.ts +15 -0
- package/src/dataTriggers.ts +1134 -0
- package/src/dataTypes.ts +3 -0
- package/src/index.ts +2 -0
- package/src/localizeDataError.ts +593 -0
- package/src/schema.ts +89 -0
- package/src/sdkConstants.ts +2 -0
package/dist/dataRpc.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DataCaller, DataDeleteImpact, DataResult, DataSchema, DataTable, DataTableCopy } from './dataTypes';
|
|
2
2
|
import type { DataQuery } from './dataQueries';
|
|
3
|
+
import type { DataTrigger, DataTriggerWithSecret, SavedTrigger } from './dataTriggers';
|
|
3
4
|
export type ExportFormat = 'jsonl' | 'csv';
|
|
4
5
|
export interface ExportFile {
|
|
5
6
|
table: string | null;
|
|
@@ -136,6 +137,30 @@ export interface ProjectDatabaseRpc {
|
|
|
136
137
|
rows: Record<string, unknown>[];
|
|
137
138
|
truncated?: string;
|
|
138
139
|
}>;
|
|
140
|
+
listTriggers(caller: DataCaller): R<{
|
|
141
|
+
triggers: DataTrigger[];
|
|
142
|
+
pending: number;
|
|
143
|
+
}>;
|
|
144
|
+
getTrigger(nameOrId: string): R<DataTriggerWithSecret>;
|
|
145
|
+
saveTrigger(caller: DataCaller, input: unknown): R<SavedTrigger>;
|
|
146
|
+
dropTrigger(caller: DataCaller, name: string): R<{
|
|
147
|
+
dropped: string;
|
|
148
|
+
}>;
|
|
149
|
+
setTriggerEnabled(caller: DataCaller, args: {
|
|
150
|
+
name: string;
|
|
151
|
+
enabled: boolean;
|
|
152
|
+
reason?: string | null;
|
|
153
|
+
}): R<DataTrigger>;
|
|
154
|
+
replaceManagedTriggers(caller: DataCaller, inputs: unknown): R<{
|
|
155
|
+
triggers: DataTrigger[];
|
|
156
|
+
removed: string[];
|
|
157
|
+
secrets: Record<string, string>;
|
|
158
|
+
}>;
|
|
159
|
+
clearOutbox(args: {
|
|
160
|
+
before: number;
|
|
161
|
+
}): R<{
|
|
162
|
+
cleared: number;
|
|
163
|
+
}>;
|
|
139
164
|
exportStart(caller: DataCaller, args?: {
|
|
140
165
|
format?: ExportFormat;
|
|
141
166
|
}): R<{
|
package/dist/dataRpc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataRpc.d.ts","sourceRoot":"","sources":["../src/dataRpc.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"dataRpc.d.ts","sourceRoot":"","sources":["../src/dataRpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { DataCaller, DataSchema, DataTable } from './dataTypes';
|
|
2
|
+
import type { SqlRunner } from './dataEngine';
|
|
3
|
+
export declare const DATA_TRIGGER_EVENTS: readonly ["insert", "update", "delete"];
|
|
4
|
+
export type DataTriggerEvent = (typeof DATA_TRIGGER_EVENTS)[number];
|
|
5
|
+
export declare const DATA_TRIGGER_ACTIONS: readonly ["function", "webhook", "chat", "email", "customer"];
|
|
6
|
+
export type DataTriggerActionType = (typeof DATA_TRIGGER_ACTIONS)[number];
|
|
7
|
+
export declare const DATA_MAX_TRIGGERS = 50;
|
|
8
|
+
export declare const DATA_TRIGGER_MAX_DEPTH = 3;
|
|
9
|
+
export declare const DATA_TRIGGER_DEFAULT_RATE = 60;
|
|
10
|
+
export declare const DATA_TRIGGER_MAX_RATE = 600;
|
|
11
|
+
export declare const DATA_TRIGGER_MAX_TEXT = 2000;
|
|
12
|
+
export declare const DATA_TRIGGER_MAX_EMAILS = 10;
|
|
13
|
+
export declare const DATA_OUTBOX_BATCH = 100;
|
|
14
|
+
export declare const DATA_TRIGGER_MAX_ROW_BYTES = 48000;
|
|
15
|
+
export declare const DATA_TRIGGER_MAX_MESSAGE_BYTES = 120000;
|
|
16
|
+
export declare const utf8Bytes: (value: unknown) => number;
|
|
17
|
+
type Scalar = string | number | boolean | null;
|
|
18
|
+
export interface DataTriggerTest {
|
|
19
|
+
changedTo?: Scalar;
|
|
20
|
+
changedFrom?: Scalar;
|
|
21
|
+
changed?: true;
|
|
22
|
+
equals?: Scalar;
|
|
23
|
+
}
|
|
24
|
+
export type DataTriggerCondition = {
|
|
25
|
+
all: DataTriggerCondition[];
|
|
26
|
+
} | {
|
|
27
|
+
any: DataTriggerCondition[];
|
|
28
|
+
} | {
|
|
29
|
+
[column: string]: DataTriggerTest;
|
|
30
|
+
};
|
|
31
|
+
export interface DataTriggerTemplate {
|
|
32
|
+
name: string;
|
|
33
|
+
language: string;
|
|
34
|
+
params?: string[];
|
|
35
|
+
}
|
|
36
|
+
export type DataTriggerAction = {
|
|
37
|
+
type: 'function';
|
|
38
|
+
function: string;
|
|
39
|
+
} | {
|
|
40
|
+
type: 'webhook';
|
|
41
|
+
url: string;
|
|
42
|
+
} | {
|
|
43
|
+
type: 'chat';
|
|
44
|
+
channelId: string;
|
|
45
|
+
chatId: string;
|
|
46
|
+
text: string;
|
|
47
|
+
} | {
|
|
48
|
+
type: 'email';
|
|
49
|
+
to: string[];
|
|
50
|
+
subject: string;
|
|
51
|
+
text: string;
|
|
52
|
+
} | {
|
|
53
|
+
type: 'customer';
|
|
54
|
+
text: string;
|
|
55
|
+
template?: DataTriggerTemplate;
|
|
56
|
+
};
|
|
57
|
+
export interface DataTriggerInput {
|
|
58
|
+
name?: string;
|
|
59
|
+
description?: string | null;
|
|
60
|
+
table: string;
|
|
61
|
+
on: DataTriggerEvent;
|
|
62
|
+
when?: DataTriggerCondition | null;
|
|
63
|
+
enabled?: boolean;
|
|
64
|
+
replace?: boolean;
|
|
65
|
+
rateLimit?: number;
|
|
66
|
+
function?: string;
|
|
67
|
+
webhook?: string;
|
|
68
|
+
chat?: {
|
|
69
|
+
channelId: string;
|
|
70
|
+
chatId: string;
|
|
71
|
+
text: string;
|
|
72
|
+
};
|
|
73
|
+
email?: {
|
|
74
|
+
to: string[] | string;
|
|
75
|
+
subject?: string;
|
|
76
|
+
text: string;
|
|
77
|
+
};
|
|
78
|
+
customer?: {
|
|
79
|
+
text: string;
|
|
80
|
+
template?: DataTriggerTemplate;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export interface DataTrigger {
|
|
84
|
+
id: string;
|
|
85
|
+
name: string;
|
|
86
|
+
description: string | null;
|
|
87
|
+
table: string;
|
|
88
|
+
on: DataTriggerEvent;
|
|
89
|
+
when: DataTriggerCondition | null;
|
|
90
|
+
action: DataTriggerAction;
|
|
91
|
+
enabled: boolean;
|
|
92
|
+
disabledReason: string | null;
|
|
93
|
+
managed: 'cli' | null;
|
|
94
|
+
rateLimit: number;
|
|
95
|
+
createdAt: string;
|
|
96
|
+
updatedAt: string;
|
|
97
|
+
updatedBy: string | null;
|
|
98
|
+
}
|
|
99
|
+
export interface DataTriggerWithSecret extends DataTrigger {
|
|
100
|
+
secret: string | null;
|
|
101
|
+
}
|
|
102
|
+
export interface DataTriggerEventMessage {
|
|
103
|
+
eventId: string;
|
|
104
|
+
artifactId: string;
|
|
105
|
+
triggerId: string;
|
|
106
|
+
triggerName: string;
|
|
107
|
+
table: string;
|
|
108
|
+
event: DataTriggerEvent;
|
|
109
|
+
rowId: number;
|
|
110
|
+
row: Record<string, unknown> | null;
|
|
111
|
+
previous: Record<string, unknown> | null;
|
|
112
|
+
actor: string | null;
|
|
113
|
+
depth: number;
|
|
114
|
+
at: string;
|
|
115
|
+
truncated?: true;
|
|
116
|
+
error?: string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Whether a change matches a condition. A missing side counts as all null:
|
|
120
|
+
* an insert "changed to" the values it was created with, and a delete
|
|
121
|
+
* "changed from" the values it had. `equals` tests the row after the change,
|
|
122
|
+
* or the deleted row.
|
|
123
|
+
*/
|
|
124
|
+
export declare const conditionMatches: (when: DataTriggerCondition | null | undefined, row: Record<string, unknown> | null, previous: Record<string, unknown> | null) => boolean;
|
|
125
|
+
/**
|
|
126
|
+
* A message built from a row: each {{field}} becomes that field's value as
|
|
127
|
+
* plain text. Never markup: the row is customer-written content, and the
|
|
128
|
+
* senders send it as text.
|
|
129
|
+
*/
|
|
130
|
+
export declare const renderTriggerText: (text: string, row: Record<string, unknown> | null) => string;
|
|
131
|
+
interface NormalisedTrigger {
|
|
132
|
+
name: string;
|
|
133
|
+
defaultName: boolean;
|
|
134
|
+
description: string | null;
|
|
135
|
+
table: DataTable;
|
|
136
|
+
on: DataTriggerEvent;
|
|
137
|
+
when: DataTriggerCondition | null;
|
|
138
|
+
action: DataTriggerAction;
|
|
139
|
+
enabled: boolean | null;
|
|
140
|
+
replace: boolean;
|
|
141
|
+
rateLimit: number;
|
|
142
|
+
}
|
|
143
|
+
export declare const normaliseTrigger: (schema: DataSchema, input: unknown) => NormalisedTrigger;
|
|
144
|
+
export declare const listTriggers: (runner: SqlRunner, schema: DataSchema) => DataTrigger[];
|
|
145
|
+
export declare const getTrigger: (runner: SqlRunner, schema: DataSchema, nameOrId: unknown) => DataTriggerWithSecret;
|
|
146
|
+
export interface SavedTrigger {
|
|
147
|
+
trigger: DataTrigger;
|
|
148
|
+
secret?: string;
|
|
149
|
+
}
|
|
150
|
+
export declare const saveTrigger: (runner: SqlRunner, schema: DataSchema, caller: DataCaller, input: unknown) => SavedTrigger;
|
|
151
|
+
export declare const dropTrigger: (runner: SqlRunner, nameOrId: unknown) => {
|
|
152
|
+
dropped: string;
|
|
153
|
+
};
|
|
154
|
+
export declare const setTriggerEnabled: (runner: SqlRunner, schema: DataSchema, caller: DataCaller, nameOrId: unknown, enabled: boolean, reason?: string | null) => DataTrigger;
|
|
155
|
+
/**
|
|
156
|
+
* The triggers ganju.json deploys: each one saved, and every other trigger
|
|
157
|
+
* the CLI deployed before removed. Those made in the dashboard stay. One
|
|
158
|
+
* transaction, so a bad entry changes nothing.
|
|
159
|
+
*/
|
|
160
|
+
export declare const replaceManagedTriggers: (runner: SqlRunner, schema: DataSchema, caller: DataCaller, inputs: unknown) => {
|
|
161
|
+
triggers: DataTrigger[];
|
|
162
|
+
removed: string[];
|
|
163
|
+
secrets: Record<string, string>;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* The SQLite triggers that copy a table's changed rows into _ganju_changes.
|
|
167
|
+
* Each runs only while an enabled trigger of the owner's listens for that
|
|
168
|
+
* event on the table. Named like the table's other triggers, so they are
|
|
169
|
+
* dropped and remade with them when its columns change.
|
|
170
|
+
*/
|
|
171
|
+
export declare const changeCaptureTriggers: (table: Pick<DataTable, "id" | "name" | "columns">) => {
|
|
172
|
+
name: string;
|
|
173
|
+
sql: string;
|
|
174
|
+
}[];
|
|
175
|
+
export declare const ensureChangeCapture: (runner: SqlRunner, table: DataTable) => void;
|
|
176
|
+
/**
|
|
177
|
+
* Turns the changes a write captured into events, inside the write's
|
|
178
|
+
* transaction. A trigger never matches the writes of a run it started
|
|
179
|
+
* (actor `trigger:<id>`), and a chain stops at DATA_TRIGGER_MAX_DEPTH with
|
|
180
|
+
* an event that only records why. Returns how many events were stored.
|
|
181
|
+
*/
|
|
182
|
+
export declare const collectTriggerEvents: (runner: SqlRunner, schema: DataSchema, caller: DataCaller) => number;
|
|
183
|
+
export declare const readOutbox: (runner: SqlRunner, limit?: number) => {
|
|
184
|
+
seq: number;
|
|
185
|
+
message: DataTriggerEventMessage;
|
|
186
|
+
}[];
|
|
187
|
+
export declare const deleteOutbox: (runner: SqlRunner, throughSeq: number) => void;
|
|
188
|
+
export declare const outboxSize: (runner: SqlRunner) => number;
|
|
189
|
+
export declare const clearOutbox: (runner: SqlRunner, before: string) => number;
|
|
190
|
+
/**
|
|
191
|
+
* The triggers whose condition or {{field}} texts name a column. Dropping it
|
|
192
|
+
* is refused while any does, since they are only checked when saved and
|
|
193
|
+
* would quietly stop matching.
|
|
194
|
+
*/
|
|
195
|
+
export declare const triggersUsingColumn: (runner: SqlRunner, tableId: number, column: string) => string[];
|
|
196
|
+
/**
|
|
197
|
+
* A renamed column, renamed in the triggers that use it too, inside the
|
|
198
|
+
* rename's transaction. Those deployed from ganju.json then differ from the
|
|
199
|
+
* file until it is changed to match. Returns the triggers changed.
|
|
200
|
+
*/
|
|
201
|
+
export declare const renameColumnInTriggers: (runner: SqlRunner, tableId: number, from: string, to: string) => string[];
|
|
202
|
+
export {};
|
|
203
|
+
//# sourceMappingURL=dataTriggers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataTriggers.d.ts","sourceRoot":"","sources":["../src/dataTriggers.ts"],"names":[],"mappings":"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"}
|