primitive-admin 1.1.0-alpha.75 → 1.1.0-alpha.76
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/bin/primitive.js +98 -10
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/functions.js +53 -18
- package/dist/src/commands/functions.js.map +1 -1
- package/dist/src/commands/prompts.js +54 -39
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/sync.d.ts +39 -0
- package/dist/src/commands/sync.js +163 -90
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/workflows.js +61 -30
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +16 -1
- package/dist/src/lib/api-client.js +16 -3
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/block-selector.d.ts +58 -0
- package/dist/src/lib/block-selector.js +92 -0
- package/dist/src/lib/block-selector.js.map +1 -0
- package/dist/src/lib/config-object-descriptor.js +1 -3
- package/dist/src/lib/config-object-descriptor.js.map +1 -1
- package/dist/src/lib/function-collect.d.ts +29 -7
- package/dist/src/lib/function-collect.js +135 -11
- package/dist/src/lib/function-collect.js.map +1 -1
- package/dist/src/lib/function-grants-preflight.d.ts +34 -88
- package/dist/src/lib/function-grants-preflight.js +32 -145
- package/dist/src/lib/function-grants-preflight.js.map +1 -1
- package/dist/src/lib/function-sync.d.ts +3 -14
- package/dist/src/lib/function-sync.js +10 -49
- package/dist/src/lib/function-sync.js.map +1 -1
- package/dist/src/lib/function-triggers.d.ts +6 -0
- package/dist/src/lib/function-triggers.js +63 -4
- package/dist/src/lib/function-triggers.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +188 -236
- package/dist/src/lib/generated-config-surfaces.js +355 -453
- package/dist/src/lib/generated-config-surfaces.js.map +1 -1
- package/dist/src/lib/generated-sdk-types.d.ts +1 -1
- package/dist/src/lib/generated-sdk-types.js +1 -1
- package/dist/src/lib/generated-sdk-types.js.map +1 -1
- package/dist/src/lib/toml-database-config.js +19 -2
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,115 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `config push`'s local check of a function's
|
|
3
|
-
* project `server-functions` phase 1.
|
|
2
|
+
* `config push`'s local check of a function's capabilities — #3182,
|
|
3
|
+
* project `server-functions` phase 1, rewritten by #3279.
|
|
4
4
|
*
|
|
5
5
|
* The server is authoritative (the raw admin route exists, and it derives the
|
|
6
|
-
*
|
|
7
|
-
* point: an author who
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* capabilities from the TOML inside the envelope). This is the other
|
|
7
|
+
* enforcement point: an author who writes a retired grant string, or an
|
|
8
|
+
* `integration:` naming an integration the tree does not declare, should see
|
|
9
|
+
* it against their own file, in the front-loaded preflight pass, with nothing
|
|
10
|
+
* applied — not as a server refusal partway through a push that has already
|
|
11
|
+
* created three other things.
|
|
10
12
|
*
|
|
11
|
-
* The GRAMMAR is not restated here. It is the vendored
|
|
12
|
-
*
|
|
13
|
-
*
|
|
13
|
+
* The GRAMMAR is not restated here. It is the vendored `function-grants.ts` —
|
|
14
|
+
* the same module the server imports — so the two checks cannot drift into
|
|
15
|
+
* two rules. Since #3279 that grammar keeps three kinds (`integration:<key>`,
|
|
16
|
+
* `secret:<NAME>`, the high-blast opt-ins) and refuses everything it retired
|
|
17
|
+
* with the retirement, so a file still declaring a `database:` grant is
|
|
18
|
+
* told what changed rather than "unknown family".
|
|
14
19
|
*
|
|
15
|
-
* ── What "the app has this
|
|
20
|
+
* ── What "the app has this integration" means locally ────────────────────
|
|
16
21
|
*
|
|
17
|
-
* The tree is the intent:
|
|
18
|
-
* exist after this push (
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
22
|
+
* The tree is the intent: an integration declared in `integrations/` will
|
|
23
|
+
* exist after this push (objects are applied before functions). One that
|
|
24
|
+
* exists only on the server is real too, so the caller merges the live
|
|
25
|
+
* listing in when it could fetch one. When neither is available the target
|
|
26
|
+
* check is SKIPPED rather than guessed — the server will still refuse, and a
|
|
27
|
+
* preflight that refuses a valid tree because it could not reach the network
|
|
28
|
+
* would be worse than one that defers.
|
|
24
29
|
*/
|
|
25
30
|
import { existsSync, readdirSync, readFileSync } from "fs";
|
|
26
31
|
import { basename, join } from "path";
|
|
27
32
|
import { parseConfigToml } from "./config-toml.js";
|
|
28
|
-
import {
|
|
29
|
-
/**
|
|
30
|
-
* The database types this tree declares, with the models each schema names.
|
|
31
|
-
*
|
|
32
|
-
* A tree file's `[models.*]` block IS the schema push sends, so the model names
|
|
33
|
-
* are its keys — no schema parser needed on this side.
|
|
34
|
-
*/
|
|
35
|
-
export function databaseTypesFromTree(configDir) {
|
|
36
|
-
const types = new Map();
|
|
37
|
-
const dir = join(configDir, "database-type-configs");
|
|
38
|
-
if (!existsSync(dir))
|
|
39
|
-
return types;
|
|
40
|
-
for (const file of readdirSync(dir).filter((f) => f.endsWith(".toml"))) {
|
|
41
|
-
let data;
|
|
42
|
-
try {
|
|
43
|
-
data = parseConfigToml(readFileSync(join(dir, file), "utf-8"));
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
// A type file that does not parse is reported by its own preflight.
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
const key = String(data?.type?.databaseType || basename(file, ".toml"));
|
|
50
|
-
const models = data?.models && typeof data.models === "object"
|
|
51
|
-
? new Set(Object.keys(data.models))
|
|
52
|
-
: null;
|
|
53
|
-
types.set(key, { models });
|
|
54
|
-
}
|
|
55
|
-
return types;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* The same map for the types the server already has. `schema` is the stored
|
|
59
|
-
* TOML string, so its `[models.*]` keys are the model names.
|
|
60
|
-
*/
|
|
61
|
-
export function databaseTypesFromServer(live) {
|
|
62
|
-
const types = new Map();
|
|
63
|
-
for (const row of live) {
|
|
64
|
-
if (!row?.databaseType)
|
|
65
|
-
continue;
|
|
66
|
-
let models = null;
|
|
67
|
-
let schemaUnreadable = false;
|
|
68
|
-
if (typeof row.schema === "string" && row.schema.trim()) {
|
|
69
|
-
try {
|
|
70
|
-
const parsed = parseConfigToml(row.schema);
|
|
71
|
-
if (parsed?.models && typeof parsed.models === "object") {
|
|
72
|
-
models = new Set(Object.keys(parsed.models));
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
// js-bao's loader — the parser the SERVER checks grants with —
|
|
76
|
-
// throws on a schema with no `[models]` section, so this is the
|
|
77
|
-
// unreadable case there too. Saying the same thing here keeps the
|
|
78
|
-
// two enforcement points on one answer.
|
|
79
|
-
schemaUnreadable = true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
schemaUnreadable = true;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
types.set(String(row.databaseType), { models, schemaUnreadable });
|
|
87
|
-
}
|
|
88
|
-
return types;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Tree first: a type the tree declares is about to be applied, so its models
|
|
92
|
-
* are the ones the grant will be checked against server-side.
|
|
93
|
-
*/
|
|
94
|
-
export function mergeKnownDatabaseTypes(fromServer, fromTree) {
|
|
95
|
-
const merged = new Map(fromServer);
|
|
96
|
-
for (const [key, value] of fromTree)
|
|
97
|
-
merged.set(key, value);
|
|
98
|
-
return merged;
|
|
99
|
-
}
|
|
100
|
-
/** The two sets, read from the tree's `integrations/` and `prompts/`. */
|
|
33
|
+
import { parseCapabilities, validateKeyedGrantsAgainstTargets, } from "./generated-config-surfaces.js";
|
|
34
|
+
/** The set, read from the tree's `integrations/`. */
|
|
101
35
|
export function configObjectKeysFromTree(configDir) {
|
|
102
36
|
return {
|
|
103
37
|
integrations: keysFromDir(configDir, "integrations", "integration"),
|
|
104
|
-
prompts: keysFromDir(configDir, "prompts", "prompt"),
|
|
105
38
|
};
|
|
106
39
|
}
|
|
107
40
|
/**
|
|
108
41
|
* One directory's object keys.
|
|
109
42
|
*
|
|
110
43
|
* The key is the `[<table>].key` the file declares, falling back to the file
|
|
111
|
-
* name — the same precedence
|
|
112
|
-
* the push path resolves an object's identity by.
|
|
44
|
+
* name — the same precedence the push path resolves an object's identity by.
|
|
113
45
|
*/
|
|
114
46
|
function keysFromDir(configDir, dirName, table) {
|
|
115
47
|
const keys = new Set();
|
|
@@ -133,34 +65,17 @@ function keysFromDir(configDir, dirName, table) {
|
|
|
133
65
|
export function mergeKnownGrantTargets(fromServer, fromTree) {
|
|
134
66
|
return {
|
|
135
67
|
integrations: new Set([...fromServer.integrations, ...fromTree.integrations]),
|
|
136
|
-
prompts: new Set([...fromServer.prompts, ...fromTree.prompts]),
|
|
137
68
|
};
|
|
138
69
|
}
|
|
139
70
|
/**
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
* The collect pass builds and RUNS the tree, so the preflight pays for it only
|
|
143
|
-
* where the answer depends on it: a read grant declared without
|
|
144
|
-
* `unscopedReads = true`.
|
|
145
|
-
*/
|
|
146
|
-
export function functionNeedsManifest(tomlData) {
|
|
147
|
-
const table = tomlData?.function ?? {};
|
|
148
|
-
if (table.unscopedReads === true)
|
|
149
|
-
return false;
|
|
150
|
-
const parsed = parseCapabilities(table.capabilities);
|
|
151
|
-
if (!parsed.ok)
|
|
152
|
-
return false;
|
|
153
|
-
return parsed.grants.some((grant) => grant.access === "read");
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Everything wrong with one function file's grants, as push-ready lines.
|
|
71
|
+
* Everything wrong with one function file's capabilities, as push-ready lines.
|
|
157
72
|
*
|
|
158
73
|
* Each message names the file, because the preflight pass reports every file's
|
|
159
|
-
* errors together and "unknown
|
|
160
|
-
*
|
|
74
|
+
* errors together and "unknown integration 'stripe'" on its own does not say
|
|
75
|
+
* which function asked for it.
|
|
161
76
|
*/
|
|
162
77
|
export function functionGrantErrors(input) {
|
|
163
|
-
const { filePath, tomlData,
|
|
78
|
+
const { filePath, tomlData, knownTargets } = input;
|
|
164
79
|
const table = tomlData?.function ?? {};
|
|
165
80
|
const where = `${filePath}:`;
|
|
166
81
|
const messages = [];
|
|
@@ -170,40 +85,12 @@ export function functionGrantErrors(input) {
|
|
|
170
85
|
messages.push(`${where} ${error}`);
|
|
171
86
|
return messages;
|
|
172
87
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
return messages;
|
|
177
|
-
}
|
|
178
|
-
// #3187 — the manifest-aware rule, the same one the server applies. Passing
|
|
179
|
-
// the collected manifest is what lets a caller-scoped tree push WITHOUT
|
|
180
|
-
// `unscopedReads`; with no manifest the sentence is the fail-closed one.
|
|
181
|
-
let manifest = null;
|
|
182
|
-
if (input.manifest !== undefined && input.manifest !== null) {
|
|
183
|
-
const parsedManifest = parseFunctionManifest(input.manifest);
|
|
184
|
-
if (!parsedManifest.ok) {
|
|
185
|
-
for (const error of parsedManifest.errors)
|
|
186
|
-
messages.push(`${where} ${error}`);
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
manifest = parsedManifest.manifest;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
const refusal = callerScopedReadsRefusal(parsed.grants, flag === true, manifest);
|
|
193
|
-
if (refusal)
|
|
194
|
-
messages.push(`${where} this function ${refusal}`);
|
|
195
|
-
if (knownTypes) {
|
|
196
|
-
for (const error of validateGrantsAgainstTypes(parsed.grants, knownTypes)) {
|
|
197
|
-
messages.push(`${where} ${error}`);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
// #3183 — `integration:` and `prompt:` name config-tree objects, so the same
|
|
201
|
-
// "does this app have it" question the database types answer applies. The
|
|
202
|
-
// rule is the shared one; what is CLI-side is reading the tree for it.
|
|
88
|
+
// #3183 — `integration:` names a config-tree object, so the same "does this
|
|
89
|
+
// app have it" question applies. The rule is the shared one; what is
|
|
90
|
+
// CLI-side is reading the tree for it.
|
|
203
91
|
if (knownTargets) {
|
|
204
92
|
for (const error of validateKeyedGrantsAgainstTargets(parsed.allGrants, {
|
|
205
93
|
integrations: knownTargets.integrations,
|
|
206
|
-
prompts: knownTargets.prompts,
|
|
207
94
|
})) {
|
|
208
95
|
messages.push(`${where} ${error}`);
|
|
209
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-grants-preflight.js","sourceRoot":"","sources":["../../../src/lib/function-grants-preflight.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"function-grants-preflight.js","sourceRoot":"","sources":["../../../src/lib/function-grants-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,18 +44,8 @@ export declare function collectManifestForBundle(options: {
|
|
|
44
44
|
entry: string;
|
|
45
45
|
functionKey: string;
|
|
46
46
|
contentHash: string;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* Build and collect one function file, for the preflight's grant decision.
|
|
50
|
-
*
|
|
51
|
-
* The relaxation is a statement about what the tree REGISTERS, so the preflight
|
|
52
|
-
* cannot decide it from the TOML alone (CR3187-001). Only the functions whose
|
|
53
|
-
* answer depends on it pay for this — see `functionNeedsManifest`.
|
|
54
|
-
*/
|
|
55
|
-
export declare function collectManifestForPreflight(options: {
|
|
56
|
-
configDir: string;
|
|
57
|
-
functionKey: string;
|
|
58
|
-
tomlData: any;
|
|
47
|
+
/** The built bundle's source, for the static scan (#3279). */
|
|
48
|
+
bundle?: string;
|
|
59
49
|
}): Promise<CollectedManifest>;
|
|
60
50
|
export interface FunctionConfigPush {
|
|
61
51
|
entry: string;
|
|
@@ -111,9 +101,8 @@ export interface ActiveFunctionVersion {
|
|
|
111
101
|
durable?: boolean;
|
|
112
102
|
/** JSON string on the row; an object is accepted too. */
|
|
113
103
|
limits?: unknown;
|
|
114
|
-
/** #3182 — the
|
|
104
|
+
/** #3182 — the capabilities the server derived from the authored TOML. */
|
|
115
105
|
capabilities?: string[];
|
|
116
|
-
unscopedReads?: boolean;
|
|
117
106
|
}
|
|
118
107
|
/**
|
|
119
108
|
* The canonical TOML for a function with no stored authored bytes — a function
|
|
@@ -43,12 +43,9 @@ const toPosix = (value) => value.split(sep).join("/");
|
|
|
43
43
|
/**
|
|
44
44
|
* Collected manifests, keyed by the BUILT BUNDLE they were collected from.
|
|
45
45
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* result is memoized against `contentHash`: the same bytes always collect the
|
|
50
|
-
* same way, and a tree edited mid-command hashes differently and is collected
|
|
51
|
-
* again rather than served a stale answer.
|
|
46
|
+
* Memoized against `contentHash`: the same bytes always collect the same way,
|
|
47
|
+
* and a tree edited mid-command hashes differently and is collected again
|
|
48
|
+
* rather than served a stale answer.
|
|
52
49
|
*/
|
|
53
50
|
const collectedManifests = new Map();
|
|
54
51
|
/**
|
|
@@ -66,43 +63,11 @@ export async function collectManifestForBundle(options) {
|
|
|
66
63
|
configDir: options.configDir,
|
|
67
64
|
entry: options.entry,
|
|
68
65
|
functionKey: options.functionKey,
|
|
66
|
+
bundle: options.bundle,
|
|
69
67
|
});
|
|
70
68
|
collectedManifests.set(options.contentHash, collected);
|
|
71
69
|
return collected;
|
|
72
70
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Build and collect one function file, for the preflight's grant decision.
|
|
75
|
-
*
|
|
76
|
-
* The relaxation is a statement about what the tree REGISTERS, so the preflight
|
|
77
|
-
* cannot decide it from the TOML alone (CR3187-001). Only the functions whose
|
|
78
|
-
* answer depends on it pay for this — see `functionNeedsManifest`.
|
|
79
|
-
*/
|
|
80
|
-
export async function collectManifestForPreflight(options) {
|
|
81
|
-
const entry = String(options.tomlData?.function?.entry ?? "").trim();
|
|
82
|
-
if (!entry) {
|
|
83
|
-
throw new FunctionBuildError(`function '${options.functionKey}': \`entry\` is required — name the ` +
|
|
84
|
-
"TypeScript entry point, relative to the config tree root.");
|
|
85
|
-
}
|
|
86
|
-
const built = await buildFunctionBundle({
|
|
87
|
-
configDir: options.configDir,
|
|
88
|
-
entry,
|
|
89
|
-
functionKey: options.functionKey,
|
|
90
|
-
});
|
|
91
|
-
try {
|
|
92
|
-
return await collectManifestForBundle({
|
|
93
|
-
configDir: options.configDir,
|
|
94
|
-
entry: built.entry,
|
|
95
|
-
functionKey: options.functionKey,
|
|
96
|
-
contentHash: built.contentHash,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
if (error instanceof FunctionCollectError) {
|
|
101
|
-
throw new FunctionBuildError(error.message);
|
|
102
|
-
}
|
|
103
|
-
throw error;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
71
|
/**
|
|
107
72
|
* Build everything the config-version route needs for one function file.
|
|
108
73
|
*
|
|
@@ -138,14 +103,12 @@ export async function buildFunctionConfigPush(options) {
|
|
|
138
103
|
// the envelope and "push now, collect later" would mean a different version.
|
|
139
104
|
let manifest = null;
|
|
140
105
|
try {
|
|
141
|
-
// Memoized against the built bundle: the preflight already collected this
|
|
142
|
-
// one when its grant decision needed the manifest, and running a tree's
|
|
143
|
-
// module scope twice per push is a side effect nobody asked for.
|
|
144
106
|
const collected = await collectManifestForBundle({
|
|
145
107
|
configDir,
|
|
146
108
|
entry: built.entry,
|
|
147
109
|
functionKey,
|
|
148
110
|
contentHash: built.contentHash,
|
|
111
|
+
bundle: built.bundle.toString("utf-8"),
|
|
149
112
|
});
|
|
150
113
|
manifest = Buffer.from(JSON.stringify(collected), "utf-8").toString("base64");
|
|
151
114
|
}
|
|
@@ -246,14 +209,14 @@ export function serializeFunction(record, active) {
|
|
|
246
209
|
table.entry = active.entry;
|
|
247
210
|
if (active?.durable === true)
|
|
248
211
|
table.durable = true;
|
|
249
|
-
// #3182 — the
|
|
250
|
-
// file has to state them or a push of it would silently drop the
|
|
251
|
-
//
|
|
212
|
+
// #3182 — the capabilities are version-carried and server-derived, so the
|
|
213
|
+
// fallback file has to state them or a push of it would silently drop the
|
|
214
|
+
// function's declarations. `runAs` and `unscopedReads` are never written
|
|
215
|
+
// back (#3279): a pre-change row's stored value decides nothing, and a
|
|
216
|
+
// pulled file that carried either would be refused on its next push.
|
|
252
217
|
if (Array.isArray(active?.capabilities) && active.capabilities.length > 0) {
|
|
253
218
|
table.capabilities = [...active.capabilities].sort();
|
|
254
219
|
}
|
|
255
|
-
if (active?.unscopedReads === true)
|
|
256
|
-
table.unscopedReads = true;
|
|
257
220
|
const limits = normalizeLimits(active?.limits);
|
|
258
221
|
if (limits && Object.keys(limits).length > 0)
|
|
259
222
|
table.limits = limits;
|
|
@@ -301,7 +264,6 @@ export function functionDiffEntity(tomlData) {
|
|
|
301
264
|
: null;
|
|
302
265
|
return {
|
|
303
266
|
description: table.description ?? null,
|
|
304
|
-
runAs: table.runAs ?? "caller",
|
|
305
267
|
access,
|
|
306
268
|
inputSchema: table.inputSchema ?? null,
|
|
307
269
|
outputSchema: table.outputSchema ?? null,
|
|
@@ -319,7 +281,6 @@ export function functionDiffEntity(tomlData) {
|
|
|
319
281
|
capabilities: Array.isArray(table.capabilities)
|
|
320
282
|
? [...new Set(table.capabilities.map((c) => String(c)))].sort()
|
|
321
283
|
: [],
|
|
322
|
-
unscopedReads: table.unscopedReads === true,
|
|
323
284
|
};
|
|
324
285
|
}
|
|
325
286
|
function safeTriggers(table) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-sync.js","sourceRoot":"","sources":["../../../src/lib/function-sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"function-sync.js","sourceRoot":"","sources":["../../../src/lib/function-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,IAAI,CAAC;AACZ,OAAO,EACL,OAAO,EACP,UAAU,EACV,IAAI,EACJ,KAAK,IAAI,SAAS,EAClB,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,MAAM,MAAM,CAAC;AACd,OAAO,EAAmB,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,gCAAgC,EAChC,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GAErB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,OAAO,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAO9C;IACC,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC;QAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACvD,OAAO,SAAS,CAAC;AACnB,CAAC;AAuBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAO7C;IACC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC/D,MAAM,KAAK,GAAG,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,kBAAkB,CAC1B,aAAa,WAAW,iDAAiD;YACvE,gDAAgD,CACnD,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,wEAAwE;IACxE,yDAAyD;IACzD,IAAI,CAAC;QACH,yBAAyB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,uBAAuB,EAAE,CAAC;YAC3C,MAAM,IAAI,kBAAkB,CAAC,aAAa,WAAW,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAE3E,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC;YAC/C,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW;YACX,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;SACvC,CAAC,CAAC;QACH,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;YAC1C,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,kCAAkC;IAClC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAuB;QAC/B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACtC,CAAC,CAAC;QACH,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ;QACR,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;QAC/B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC;IACF,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC;QACvC,aAAa,EAAE,gCAAgC;QAC/C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxE,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,KAAU;IAEV,MAAM,OAAO,GAAG,oBAAoB,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE,EAAE;QACvE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;KACnC,CAAC,CAAC;IACH,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAU;IACnD,MAAM,OAAO,GAAG,oBAAoB,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE,EAAE;QACvE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;KACnC,CAAC,CAAC;IACH,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,OAA4B;IACjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAcD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAW,EACX,MAA8B;IAE9B,MAAM,KAAK,GAAwB;QACjC,GAAG,EAAE,MAAM,CAAC,WAAW;QACvB,GAAG,mBAAmB,CAAC,qBAAqB,EAAE,MAAM,CAAC;KACtD,CAAC;IACF,IAAI,MAAM,EAAE,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC9C,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI;QAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACnD,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,mBAAmB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,OAAO,UAAU,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAa;IAC9C,MAAM,KAAK,GAAG,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QACrD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QACrB,CAAC,CAAC,IAAI,CAAC;IACX,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;QACtC,MAAM;QACN,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;QACxC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;QAC/B,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAChE,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,6BAA6B;QAC7B,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC;QAC7B,0EAA0E;QAC1E,uEAAuE;QACvE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;YAC7C,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACpE,CAAC,CAAC,EAAE;KACP,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAU;IAC9B,IAAI,CAAC;QACH,OAAO,yBAAyB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAqBD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,+BAA+B,CAAC;IACjD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,+BAA+B,GAAG,qCAAqC,CAAC;IACjF,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,+BAA+B,GAAG,0CAA0C,CAAC;IACtF,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,+BAA+B,GAAG,0CAA0C,CAAC;IACtF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAIhC;IACC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,OAAO,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,aAAa,WAAW,OAAO,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,OAAO,CAAC;YACxD,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CACX,+BAA+B,IAAI,0CAA0C,CAC9E,CAAC;YACF,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,QAAQ;YACR,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC;SAC9D,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACxE,CAAC;AAUD;;;;;;;;;;GAUG;AACH,SAAS,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;IAC3D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAW,EAAE,CAC1C,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;IAEvD,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oBAAoB,QAAQ,wCAAwC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,CACL,oBAAoB,QAAQ,4CAA4C;YACxE,iBAAiB,CAClB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YACzC,OAAO,CACL,oBAAoB,QAAQ,yCAAyC;gBACrE,wCAAwC,CACzC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAsB;IACtD,MAAM,OAAO,GAAwB,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC1E,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;IAC5B,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -38,11 +38,17 @@ export interface CronTriggerDeclaration {
|
|
|
38
38
|
overlapPolicy?: string;
|
|
39
39
|
rootInput?: unknown;
|
|
40
40
|
}
|
|
41
|
+
/** One `[[function.triggers.database]]` entry, normalized (#3184). */
|
|
42
|
+
export interface DatabaseTriggerDeclaration {
|
|
43
|
+
type: string;
|
|
44
|
+
}
|
|
41
45
|
export interface TriggerDeclaration {
|
|
42
46
|
webhook: WebhookTriggerDeclaration | null;
|
|
43
47
|
cron: CronTriggerDeclaration[];
|
|
48
|
+
databases: DatabaseTriggerDeclaration[];
|
|
44
49
|
}
|
|
45
50
|
export declare const MAX_CRON_TRIGGERS_PER_FUNCTION = 10;
|
|
51
|
+
export declare const MAX_DATABASE_TRIGGERS_PER_FUNCTION = 5;
|
|
46
52
|
export declare class TriggerDeclarationError extends Error {
|
|
47
53
|
}
|
|
48
54
|
/**
|
|
@@ -22,7 +22,11 @@
|
|
|
22
22
|
* be a preflight that can give a false all-clear.
|
|
23
23
|
*/
|
|
24
24
|
export const MAX_CRON_TRIGGERS_PER_FUNCTION = 10;
|
|
25
|
+
export const MAX_DATABASE_TRIGGERS_PER_FUNCTION = 5;
|
|
25
26
|
const CRON_NAME_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;
|
|
27
|
+
/** The charset the grant grammar already uses for a database type key. */
|
|
28
|
+
const DATABASE_TYPE_PATTERN = /^[A-Za-z0-9_-]+$/;
|
|
29
|
+
const DATABASE_KEYS = ["type"];
|
|
26
30
|
const WEBHOOK_KEYS = [
|
|
27
31
|
"verificationScheme",
|
|
28
32
|
"signingSecret",
|
|
@@ -49,16 +53,71 @@ export function normalizeFunctionTriggers(functionTable, options = {}) {
|
|
|
49
53
|
throw new TriggerDeclarationError("[function.triggers] must be a table declaring `webhook` and/or `cron`");
|
|
50
54
|
}
|
|
51
55
|
for (const key of Object.keys(triggers)) {
|
|
52
|
-
if (key !== "webhook" && key !== "cron") {
|
|
56
|
+
if (key !== "webhook" && key !== "cron" && key !== "database") {
|
|
53
57
|
throw new TriggerDeclarationError(`unknown trigger kind '${key}' under [function.triggers]: the kinds are ` +
|
|
54
|
-
"`webhook` and `
|
|
58
|
+
"`webhook`, `cron` and `database`");
|
|
55
59
|
}
|
|
56
60
|
}
|
|
57
61
|
const webhook = normalizeWebhook(triggers.webhook, options);
|
|
58
62
|
const cron = normalizeCron(triggers.cron, options);
|
|
59
|
-
|
|
63
|
+
const databases = normalizeDatabases(triggers.database, options);
|
|
64
|
+
if (!webhook && cron.length === 0 && databases.length === 0)
|
|
60
65
|
return null;
|
|
61
|
-
return { webhook, cron };
|
|
66
|
+
return { webhook, cron, databases };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* `[[function.triggers.database]]` — one accepted key, `type` (#3184).
|
|
70
|
+
*
|
|
71
|
+
* Sync mode only, permanently: a database-change fire runs inside the write
|
|
72
|
+
* request with no run row, and there is no durable shape for that.
|
|
73
|
+
*/
|
|
74
|
+
function normalizeDatabases(raw, options) {
|
|
75
|
+
if (raw === undefined || raw === null)
|
|
76
|
+
return [];
|
|
77
|
+
const entries = Array.isArray(raw) ? raw : [raw];
|
|
78
|
+
if (entries.length === 0)
|
|
79
|
+
return [];
|
|
80
|
+
if (options.durable) {
|
|
81
|
+
throw new TriggerDeclarationError("database triggers require sync mode: remove `durable = true` or remove " +
|
|
82
|
+
"the [[function.triggers.database]] entries");
|
|
83
|
+
}
|
|
84
|
+
if (entries.length > MAX_DATABASE_TRIGGERS_PER_FUNCTION) {
|
|
85
|
+
throw new TriggerDeclarationError(`a function may watch at most ${MAX_DATABASE_TRIGGERS_PER_FUNCTION} database ` +
|
|
86
|
+
`types, and this one declares ${entries.length}`);
|
|
87
|
+
}
|
|
88
|
+
const seen = new Set();
|
|
89
|
+
const normalized = [];
|
|
90
|
+
for (const entry of entries) {
|
|
91
|
+
if (entry === null || typeof entry !== "object" || Array.isArray(entry)) {
|
|
92
|
+
throw new TriggerDeclarationError("each [[function.triggers.database]] entry must be a table");
|
|
93
|
+
}
|
|
94
|
+
const table = entry;
|
|
95
|
+
for (const key of Object.keys(table)) {
|
|
96
|
+
if (!DATABASE_KEYS.includes(key)) {
|
|
97
|
+
throw new TriggerDeclarationError(`unknown key '${key}' in a [[function.triggers.database]] entry: the ` +
|
|
98
|
+
`only accepted key is ${DATABASE_KEYS.join(", ")}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const type = String(table.type ?? "").trim();
|
|
102
|
+
if (!type) {
|
|
103
|
+
throw new TriggerDeclarationError("each [[function.triggers.database]] entry needs a `type`: it names the " +
|
|
104
|
+
"database type whose writes fire the function");
|
|
105
|
+
}
|
|
106
|
+
if (!DATABASE_TYPE_PATTERN.test(type)) {
|
|
107
|
+
throw new TriggerDeclarationError(`database trigger type '${type}' must contain only letters, digits, ` +
|
|
108
|
+
"'-' or '_'");
|
|
109
|
+
}
|
|
110
|
+
if (seen.has(type)) {
|
|
111
|
+
throw new TriggerDeclarationError(`duplicate database trigger type '${type}': a function fires once per ` +
|
|
112
|
+
"write request, so each type is declared once");
|
|
113
|
+
}
|
|
114
|
+
seen.add(type);
|
|
115
|
+
normalized.push({ type });
|
|
116
|
+
}
|
|
117
|
+
// Sorted, matching the server, so `config diff` compares the same canonical
|
|
118
|
+
// shape whichever order the file lists its blocks in.
|
|
119
|
+
normalized.sort((a, b) => a.type.localeCompare(b.type));
|
|
120
|
+
return normalized;
|
|
62
121
|
}
|
|
63
122
|
function normalizeWebhook(raw, options) {
|
|
64
123
|
if (raw === undefined || raw === null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-triggers.js","sourceRoot":"","sources":["../../../src/lib/function-triggers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"function-triggers.js","sourceRoot":"","sources":["../../../src/lib/function-triggers.ts"],"names":[],"mappings":"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"}
|