@sanoma-ai/workflows 0.1.0 → 0.2.0

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.
Files changed (99) hide show
  1. package/README.md +72 -21
  2. package/dist/apply-steps.d.ts +6 -0
  3. package/dist/apply-steps.js +93 -0
  4. package/dist/apply-steps.js.map +1 -0
  5. package/dist/apply.d.ts +197 -0
  6. package/dist/apply.js +470 -0
  7. package/dist/apply.js.map +1 -0
  8. package/dist/call.d.ts +4 -0
  9. package/dist/call.js +19 -4
  10. package/dist/call.js.map +1 -1
  11. package/dist/client.d.ts +38 -2
  12. package/dist/client.js +67 -10
  13. package/dist/client.js.map +1 -1
  14. package/dist/config.d.ts +3 -3
  15. package/dist/config.js +33 -16
  16. package/dist/config.js.map +1 -1
  17. package/dist/credentials.d.ts +25 -0
  18. package/dist/credentials.js +73 -5
  19. package/dist/credentials.js.map +1 -1
  20. package/dist/datafile.d.ts +11 -2
  21. package/dist/datafile.js +56 -2
  22. package/dist/datafile.js.map +1 -1
  23. package/dist/describe.d.ts +11 -5
  24. package/dist/describe.js +13 -5
  25. package/dist/describe.js.map +1 -1
  26. package/dist/drift.d.ts +64 -12
  27. package/dist/drift.js +118 -41
  28. package/dist/drift.js.map +1 -1
  29. package/dist/expectations.d.ts +2 -2
  30. package/dist/expectations.js +28 -3
  31. package/dist/expectations.js.map +1 -1
  32. package/dist/host.d.ts +56 -0
  33. package/dist/host.js +45 -0
  34. package/dist/host.js.map +1 -0
  35. package/dist/index.d.ts +6 -2
  36. package/dist/index.js +5 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/lockfile.d.ts +36 -0
  39. package/dist/lockfile.js +69 -0
  40. package/dist/lockfile.js.map +1 -0
  41. package/dist/op.d.ts +3 -0
  42. package/dist/op.js.map +1 -1
  43. package/dist/resource.d.ts +188 -22
  44. package/dist/resource.js +173 -28
  45. package/dist/resource.js.map +1 -1
  46. package/dist/resources.d.ts +18 -3
  47. package/dist/resources.js +53 -6
  48. package/dist/resources.js.map +1 -1
  49. package/dist/run.d.ts +14 -0
  50. package/dist/run.js +6 -1
  51. package/dist/run.js.map +1 -1
  52. package/dist/sandbox.js +5 -1
  53. package/dist/sandbox.js.map +1 -1
  54. package/dist/scenario.d.ts +12 -3
  55. package/dist/scenario.js +33 -8
  56. package/dist/scenario.js.map +1 -1
  57. package/dist/secret.d.ts +42 -0
  58. package/dist/secret.js +58 -0
  59. package/dist/secret.js.map +1 -0
  60. package/dist/shared.d.ts +8 -0
  61. package/dist/shared.js +7 -0
  62. package/dist/shared.js.map +1 -1
  63. package/dist/source.d.ts +58 -0
  64. package/dist/source.js +54 -0
  65. package/dist/source.js.map +1 -0
  66. package/dist/version.d.ts +1 -1
  67. package/dist/version.js +1 -1
  68. package/dist/worker.d.ts +3 -0
  69. package/dist/worker.js +13 -4
  70. package/dist/worker.js.map +1 -1
  71. package/dist/writer.d.ts +35 -0
  72. package/dist/writer.js +201 -0
  73. package/dist/writer.js.map +1 -0
  74. package/package.json +6 -1
  75. package/src/apply-steps.ts +110 -0
  76. package/src/apply.ts +626 -0
  77. package/src/call.ts +19 -4
  78. package/src/client.ts +83 -13
  79. package/src/config.ts +48 -25
  80. package/src/credentials.ts +90 -5
  81. package/src/datafile.ts +76 -4
  82. package/src/describe.ts +36 -16
  83. package/src/drift.ts +155 -45
  84. package/src/expectations.ts +30 -4
  85. package/src/host.ts +96 -0
  86. package/src/index.ts +24 -1
  87. package/src/lockfile.ts +95 -0
  88. package/src/op.ts +3 -0
  89. package/src/resource.ts +270 -47
  90. package/src/resources.ts +63 -8
  91. package/src/run.ts +15 -0
  92. package/src/sandbox.ts +5 -1
  93. package/src/scenario.ts +50 -13
  94. package/src/secret.ts +92 -0
  95. package/src/shared.ts +10 -0
  96. package/src/source.ts +82 -0
  97. package/src/version.ts +1 -1
  98. package/src/worker.ts +16 -5
  99. package/src/writer.ts +225 -0
@@ -1,3 +1,4 @@
1
+ import { createCipheriv, createDecipheriv, randomBytes } from "node:crypto";
1
2
  import { setTimeout as sleep } from "node:timers/promises";
2
3
  import { Client } from "pg";
3
4
  import { credentialsOf } from "./env.js";
@@ -6,21 +7,88 @@ import { info, warn } from "./log.js";
6
7
  import { errorMessage } from "./shared.js";
7
8
  // Where the credentials set from the app live: one table in the config's database, beside DBOS's
8
9
  // own (made by `prepareDatabase` in db.ts). A value is read here only, by the worker to load it
9
- // into its environment and by the client to check it, and leaves neither. The write
10
- // (`storeCredential`) and the read (`storedCredentials`) are the only places that touch `value`,
11
- // so a hosted deployment's encryption goes there.
10
+ // into its environment or hand it to a driver (`storedSecrets`) and by the client to check it,
11
+ // and leaves none of them. The write (`storeCredential`, `ensureCredential`) and the read
12
+ // (`storedCredentials`) are the only places that touch `value`, which holds it encrypted
13
+ // (`encrypt`) under `SANOMA_SECRETS_KEY`.
12
14
  /** Where a change is announced, with the variable's name as the payload. */
13
15
  const CHANNEL = "sanoma_credentials";
16
+ /** The variable holding the key the stored values are encrypted with: 32 bytes, base64. */
17
+ export const SECRETS_KEY = "SANOMA_SECRETS_KEY";
18
+ /** What starts an encrypted value; a value without it is a plaintext one stored before encryption, read as it is. */
19
+ const V1 = "v1:";
20
+ const CIPHER = "aes-256-gcm";
21
+ const TAG_BYTES = 16;
22
+ /** The key from the environment, or an error naming the variable. */
23
+ function secretsKey() {
24
+ const text = process.env[SECRETS_KEY];
25
+ if (!text) {
26
+ throw new Error(`${SECRETS_KEY} is not set: it encrypts the stored credentials; set it to 32 random bytes, base64 (\`openssl rand -base64 32\`)`);
27
+ }
28
+ const key = Buffer.from(text, "base64");
29
+ if (key.length !== 32)
30
+ throw new Error(`${SECRETS_KEY} must be 32 bytes, base64; it is ${key.length} bytes`);
31
+ return key;
32
+ }
33
+ /**
34
+ * `name`'s value encrypted for the table: `v1:<iv, base64>:<ciphertext and tag, base64>`,
35
+ * AES-256-GCM, with the name as associated data, so a value moved to another row does not decrypt.
36
+ */
37
+ export function encrypt(name, value) {
38
+ const iv = randomBytes(12);
39
+ const cipher = createCipheriv(CIPHER, secretsKey(), iv).setAAD(Buffer.from(name));
40
+ const sealed = Buffer.concat([cipher.update(value, "utf8"), cipher.final(), cipher.getAuthTag()]);
41
+ return `${V1}${iv.toString("base64")}:${sealed.toString("base64")}`;
42
+ }
43
+ /** The value `name`'s row holds: decrypted, or a plaintext one as it is (it is encrypted on its next write). */
44
+ export function decrypt(name, stored) {
45
+ if (!stored.startsWith(V1))
46
+ return stored;
47
+ const key = secretsKey();
48
+ const [iv = "", body = ""] = stored.slice(V1.length).split(":");
49
+ const sealed = Buffer.from(body, "base64");
50
+ try {
51
+ const decipher = createDecipheriv(CIPHER, key, Buffer.from(iv, "base64")).setAAD(Buffer.from(name));
52
+ decipher.setAuthTag(sealed.subarray(-TAG_BYTES));
53
+ return Buffer.concat([decipher.update(sealed.subarray(0, -TAG_BYTES)), decipher.final()]).toString("utf8");
54
+ }
55
+ catch (err) {
56
+ throw new Error(`the stored ${name} cannot be decrypted: ${SECRETS_KEY} is not the key it was stored with, or the row was not stored as ${name}`, { cause: err });
57
+ }
58
+ }
14
59
  /** The stored rows of these names, values included: for loading into an environment or checking, never for showing. */
15
60
  export async function storedCredentials(db, names) {
16
61
  const { rows } = await db.query(`SELECT name, value, set_by, set_at FROM ${TABLE} WHERE name = ANY($1)`, [names]);
17
- return new Map(rows.map((r) => [r.name, { value: r.value, setBy: r.set_by, setAt: r.set_at.toISOString() }]));
62
+ return new Map(rows.map((r) => [r.name, { value: decrypt(r.name, r.value), setBy: r.set_by, setAt: r.set_at.toISOString() }]));
18
63
  }
19
64
  /** Upserts the value and announces it, in one statement, so a worker never hears of a change it cannot read. */
20
65
  export async function storeCredential(db, { name, value, setBy }) {
21
66
  await db.query(`WITH stored AS (INSERT INTO ${TABLE} (name, value, set_by) VALUES ($1, $2, $3) ` +
22
67
  "ON CONFLICT (name) DO UPDATE SET value = EXCLUDED.value, set_by = EXCLUDED.set_by, set_at = now() " +
23
- `RETURNING name) SELECT pg_notify('${CHANNEL}', name) FROM stored`, [name, value, setBy]);
68
+ `RETURNING name) SELECT pg_notify('${CHANNEL}', name) FROM stored`, [name, encrypt(name, value), setBy]);
69
+ }
70
+ /**
71
+ * The stored value of `name`; when there is none, `make()`'s, stored first and announced. Of two
72
+ * at once, the first stored wins, and both return it.
73
+ */
74
+ export async function ensureCredential(db, { name, make, setBy }) {
75
+ const stored = (await storedCredentials(db, [name])).get(name);
76
+ if (stored)
77
+ return stored.value;
78
+ await db.query(`WITH stored AS (INSERT INTO ${TABLE} (name, value, set_by) VALUES ($1, $2, $3) ON CONFLICT (name) DO NOTHING ` +
79
+ `RETURNING name) SELECT pg_notify('${CHANNEL}', name) FROM stored`, [name, encrypt(name, make()), setBy]);
80
+ return (await storedCredentials(db, [name])).get(name).value;
81
+ }
82
+ /**
83
+ * The secrets store a live driver is given (`CallContext.secrets`): a variable the environment
84
+ * sets wins, as it does for a driver's `env`; else the stored value. `ensure` stores what it
85
+ * makes as `setBy`.
86
+ */
87
+ export function storedSecrets(db, setBy) {
88
+ return {
89
+ get: async (name) => process.env[name] || (await storedCredentials(await db(), [name])).get(name)?.value,
90
+ ensure: async (name, make) => process.env[name] || ensureCredential(await db(), { name, make, setBy }),
91
+ };
24
92
  }
25
93
  /** Deletes the row, announcing it when there was one. */
26
94
  export async function deleteCredential(db, name) {
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Node } from "./ast.ts";
2
+ import { type Secret } from "./secret.ts";
2
3
  /** Something a data file may not hold, at UTF-16 offsets into its text. */
3
4
  export interface DataFileProblem {
4
5
  start: number;
@@ -10,8 +11,12 @@ export declare class Reference {
10
11
  readonly name: string;
11
12
  constructor(name: string);
12
13
  }
13
- /** A value in a data file: a literal, or a reference to a declared resource. */
14
- export type DataValue = null | boolean | number | string | Reference | DataValue[] | {
14
+ /** True for a `Reference`, made by any copy of this package: read by a registered symbol, not `instanceof`. */
15
+ export declare const isReference: (value: unknown) => value is Reference;
16
+ /** What `secret("NAME")` stands for in a data file: its marker, `{ $secret: "NAME", generate?: true }`. */
17
+ export type SecretRef = Secret;
18
+ /** A value in a data file: a literal, a reference to a declared resource, or a secret's marker. */
19
+ export type DataValue = null | boolean | number | string | Reference | SecretRef | DataValue[] | {
15
20
  [field: string]: DataValue;
16
21
  };
17
22
  /** An `import { name } from "…"`: of a connector's constructors (`from "…/resources"`), or of another data file's resource. */
@@ -46,6 +51,8 @@ export interface DataFile {
46
51
  declared: string[];
47
52
  problems: DataFileProblem[];
48
53
  }
54
+ /** Where a data file imports `secret` from; checked before `CONSTRUCTORS`, which they match too. */
55
+ export declare const SECRET_ENTRIES: ReadonlySet<string>;
49
56
  /**
50
57
  * Reads a data file's program without running it: its imports, each `export const` resource
51
58
  * with its fields evaluated, and everything outside the data-file subset as a problem that says
@@ -60,3 +67,5 @@ export interface DataFile {
60
67
  * directory above `filename`, else the file's own.
61
68
  */
62
69
  export declare function readDataFile(program: Node, filename: string, root?: string): DataFile;
70
+ /** A property's name: an identifier's, or a literal's as a string; undefined for any other key. */
71
+ export declare const keyName: (key: Node) => string | undefined;
package/dist/datafile.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { basename, dirname, join } from "node:path";
2
2
  import { inside, nearestDir, RELATIVE } from "./paths.js";
3
+ import { SECRET_NAME } from "./secret.js";
3
4
  /** A name in a data file that refers to a declared resource: one imported from a data file, or exported by this one. */
4
5
  export class Reference {
5
6
  name;
@@ -7,12 +8,19 @@ export class Reference {
7
8
  this.name = name;
8
9
  }
9
10
  }
11
+ const REFERENCE = Symbol.for("sanoma.reference");
12
+ Object.defineProperty(Reference.prototype, REFERENCE, { value: true });
13
+ /** True for a `Reference`, made by any copy of this package: read by a registered symbol, not `instanceof`. */
14
+ export const isReference = (value) => typeof value === "object" && value !== null && REFERENCE in value;
10
15
  /** A connector's constructors entry: a package specifier that ends in `/resources`. */
11
16
  const CONSTRUCTORS = /^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*\/resources$/;
17
+ /** Where a data file imports `secret` from; checked before `CONSTRUCTORS`, which they match too. */
18
+ export const SECRET_ENTRIES = new Set(["sanoma/resources", "@sanoma-ai/workflows/resources"]);
19
+ const SECRET_CALL = '`secret("NAME")` or `secret("NAME", { generate: true })`, NAME upper case (A-Z, 0-9 and _)';
12
20
  const SHAPE = "a data file holds only imports, `export const <name> = <vendor>.<type>({ … })` and `export default [ … ]`";
13
21
  const IMPORTS = "import resource constructors from a connector's resources entry " +
14
22
  '(`import { github } from "@sanoma-ai/connector-github/resources"`) ' +
15
- 'and resources from other data files (`import { site } from "./github.ts"`)';
23
+ 'and resources from other data files (`import { site } from "./github.ts"`), and `secret` from "sanoma/resources"';
16
24
  const VALUES = "write a string, number, boolean, null, object or array, or name a declared resource";
17
25
  /**
18
26
  * Reads a data file's program without running it: its imports, each `export const` resource
@@ -34,6 +42,8 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
34
42
  const exports = [];
35
43
  // Names a refused import or declaration binds: reported once, where they are bound.
36
44
  const refused = new Set();
45
+ // The local names of `secret`.
46
+ const secrets = new Set();
37
47
  // Imports and top-level names first, each once: imports are hoisted, and a reference may name
38
48
  // a resource declared further down. An unexported const is refused where it is declared, not
39
49
  // again where it is used.
@@ -102,6 +112,20 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
102
112
  fail(s, `import "${spec}" is not allowed in a data file: it imports nothing, and a data file runs no code`);
103
113
  return;
104
114
  }
115
+ if (SECRET_ENTRIES.has(spec)) {
116
+ for (const sp of s.specifiers) {
117
+ if (sp.type === "ImportSpecifier" &&
118
+ sp.importKind !== "type" &&
119
+ (sp.imported.name ?? sp.imported.value) === "secret") {
120
+ secrets.add(sp.local.name);
121
+ }
122
+ else {
123
+ fail(sp, `a data file imports only \`secret\` from "${spec}": \`import { secret } from "${spec}"\``);
124
+ refused.add(sp.local.name);
125
+ }
126
+ }
127
+ return;
128
+ }
105
129
  for (const sp of s.specifiers) {
106
130
  if (sp.type !== "ImportSpecifier") {
107
131
  const how = sp.type === "ImportNamespaceSpecifier" ? `import * as ${sp.local.name}` : `import ${sp.local.name}`;
@@ -261,6 +285,11 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
261
285
  return refuse(node, "member access is not allowed in a data file: write the value out, or name the resource itself (`site`), not one of its fields");
262
286
  }
263
287
  case "CallExpression":
288
+ if (node.callee.type === "Identifier" && secrets.has(node.callee.name))
289
+ return readSecret(node);
290
+ if (node.callee.type === "Identifier" && node.callee.name === "secret" && !bound.has("secret")) {
291
+ return refuse(node, `import secret to name one: \`import { secret } from "sanoma/resources"\``);
292
+ }
264
293
  return refuse(node, node.callee.type === "MemberExpression" &&
265
294
  node.callee.object.type === "Identifier" &&
266
295
  imports.some((i) => i.kind === "constructors" && i.local === node.callee.object.name)
@@ -289,12 +318,35 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
289
318
  }
290
319
  if (p.computed)
291
320
  return refuse(p.key, "a computed key is not allowed in a data file: write the field's name");
292
- const key = p.key.type === "Identifier" ? p.key.name : p.key.type === "Literal" ? String(p.key.value) : undefined;
321
+ const key = keyName(p.key);
293
322
  if (key === undefined)
294
323
  return refuse(p.key, "write the field's name, or a string");
324
+ if (key === "$secret")
325
+ return refuse(p.key, `name a secret with ${SECRET_CALL}`);
295
326
  const v = value(p.value);
296
327
  return v === undefined ? undefined : [key, v];
297
328
  }
329
+ /** A `secret(…)` call's marker: literal arguments only. */
330
+ function readSecret(node) {
331
+ const [name, options, ...extra] = node.arguments;
332
+ if (name?.type !== "Literal" || typeof name.value !== "string" || extra.length) {
333
+ return refuse(node, `write the secret's name as a string: ${SECRET_CALL}`);
334
+ }
335
+ if (!SECRET_NAME.test(name.value))
336
+ return refuse(name, `${JSON.stringify(name.value)} is not a secret's name: ${SECRET_CALL}`);
337
+ if (options === undefined)
338
+ return { $secret: name.value };
339
+ const [generate, ...others] = options.type === "ObjectExpression" ? options.properties : [];
340
+ if (others.length ||
341
+ generate?.type !== "Property" ||
342
+ generate.computed ||
343
+ (generate.key.name ?? generate.key.value) !== "generate" ||
344
+ generate.value.type !== "Literal" ||
345
+ typeof generate.value.value !== "boolean") {
346
+ return refuse(options, `a secret's options are \`{ generate: true }\` or none: ${SECRET_CALL}`);
347
+ }
348
+ return generate.value.value ? { $secret: name.value, generate: true } : { $secret: name.value };
349
+ }
298
350
  function reference(node) {
299
351
  const name = node.name;
300
352
  if (name === "undefined")
@@ -315,6 +367,8 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
315
367
  }
316
368
  return { imports, exports, declared: [...declared], problems };
317
369
  }
370
+ /** A property's name: an identifier's, or a literal's as a string; undefined for any other key. */
371
+ export const keyName = (key) => key.type === "Identifier" ? key.name : key.type === "Literal" ? String(key.value) : undefined;
318
372
  /** A node's kind, for a message: `a function declaration`, `an if statement`. */
319
373
  function describe(node) {
320
374
  const words = String(node.type)
@@ -1 +1 @@
1
- {"version":3,"file":"datafile.js","sourceRoot":"","sources":["../src/datafile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datafile.js","sourceRoot":"","sources":["../src/datafile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAe,WAAW,EAAE,MAAM,aAAa,CAAC;AAcvD,wHAAwH;AACxH,MAAM,OAAO,SAAS;IACX,IAAI,CAAS;IACtB,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACjD,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvE,+GAA+G;AAC/G,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC;AAiDpE,uFAAuF;AACvF,MAAM,YAAY,GAAG,mEAAmE,CAAC;AAEzF,oGAAoG;AACpG,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,gCAAgC,CAAC,CAAC,CAAC;AACnH,MAAM,WAAW,GAAG,4FAA4F,CAAC;AAEjH,MAAM,KAAK,GACT,2GAA2G,CAAC;AAC9G,MAAM,OAAO,GACX,kEAAkE;IAClE,qEAAqE;IACrE,kHAAkH,CAAC;AACrH,MAAM,MAAM,GAAG,qFAAqF,CAAC;AAErG;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAa,EACb,QAAgB,EAChB,IAAI,GAAW,UAAU,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,IAAoC,EAAE,OAAe,EAAE,EAAE,CACrE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,oFAAoF;IACpF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,+BAA+B;IAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,8FAA8F;IAC9F,6FAA6F;IAC7F,0BAA0B;IAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,IAAI,GAAG,CAAC,EAAQ,EAAE,EAAE;QACxB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,yDAAyD,CAAC,CAAC;QACtG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACnC,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU;gBAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC9C,UAAU,CAAC,CAAC,CAAC,CAAC;YACd,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,EAAE,IAAI,KAAK,qBAAqB;YAAE,SAAS;QACnD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY;gBAAE,SAAS;YACzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACX,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,mBAAmB;gBACtB,MAAM;YACR,KAAK,wBAAwB;gBAC3B,UAAU,CAAC,CAAC,CAAC,CAAC;gBACd,MAAM;YACR,KAAK,0BAA0B;gBAC7B,WAAW,CAAC,CAAC,CAAC,CAAC;gBACf,MAAM;YACR,KAAK,sBAAsB;gBACzB,IAAI,CAAC,CAAC,EAAE,2CAA2C,KAAK,EAAE,CAAC,CAAC;gBAC5D,MAAM;YACR,KAAK,qBAAqB,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;gBACzC,IAAI,CACF,CAAC,EACD,IAAI,KAAK,SAAS;oBAChB,CAAC,CAAC,4DAA4D,KAAK,EAAE;oBACrE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,6EAA6E,IAAI,kEAAkE,CAC3K,CAAC;gBACF,MAAM;YACR,CAAC;YACD;gBACE,IAAI,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,SAAS,UAAU,CAAC,CAAO;QACzB,MAAM,IAAI,GAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,EAAE,mGAAmG,CAAC,CAAC;YAC7G,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,oCAAoC,OAAO,EAAE,CAAC,CAAC;YAC7E,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU;gBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,EAAE,WAAW,IAAI,mFAAmF,CAAC,CAAC;YAC5G,OAAO;QACT,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC9B,IACE,EAAE,CAAC,IAAI,KAAK,iBAAiB;oBAC7B,EAAE,CAAC,UAAU,KAAK,MAAM;oBACxB,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,QAAQ,EACpD,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,EAAE,EAAE,6CAA6C,IAAI,gCAAgC,IAAI,KAAK,CAAC,CAAC;oBACrG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAClC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,0BAA0B,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChH,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,qFAAqF,IAAI,KAAK,CAAC,CAAC;gBAC/G,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,EAAE,EAAE,qGAAqG,CAAC,CAAC;gBAChH,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,SAAS,UAAU,CAAC,IAAY;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,6CAA6C,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO,sBAAsB,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC;QAC/E,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,UAAU,CAAC,CAAO;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CACF,CAAC,EACD,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAAK,qGAAqG;gBACvI,CAAC,CAAC,qIAAqI,CAC1I,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,wDAAwD,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,CAAC,EAAE,yCAAyC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,oFAAoF,CAAC,CAAC;YACjG,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;QAC/B,mEAAmE;QACnE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO;QACjD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,IACE,MAAM,EAAE,IAAI,KAAK,kBAAkB;YACnC,MAAM,CAAC,QAAQ;YACf,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;YACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EACrC,CAAC;YACD,IAAI,CACF,IAAI,IAAI,CAAC,EACT,gBAAgB,IAAI,6HAA6H,CAClJ,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1C,MAAM,IAAI,GAAW,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAChC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,IAAI,KAAK,cAAc,EAAE,CAAC;YACrE,IAAI,CACF,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,2GAA2G,MAAM,iCAAiC,MAAM,eAAe,CACjL,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACnE,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,IAAI,gCAAgC,MAAM,IAAI,IAAI,WAAW,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAoC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;IAED,SAAS,WAAW,CAAC,CAAO;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,yEAAyE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,EAAE,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,iFAAiF,CAAC,CAAC;YACtG,CAAC;iBAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,2EAA2E,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;IACH,CAAC;IAED,kGAAkG;IAClG,SAAS,KAAK,CAAC,IAAU;QACvB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,SAAS;gBACZ,IAAI,IAAI,CAAC,KAAK;oBAAE,OAAO,MAAM,CAAC,IAAI,EAAE,0EAA0E,CAAC,CAAC;gBAChH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;oBACnD,OAAO,MAAM,CAAC,IAAI,EAAE,qEAAqE,CAAC,CAAC;gBAC7F,OAAO,IAAI,CAAC,KAAyC,CAAC;YACxD,KAAK,iBAAiB;gBACpB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBAC5B,OAAO,MAAM,CAAC,IAAI,EAAE,4EAA4E,CAAC,CAAC;gBACpG,CAAC;gBACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAgB,CAAC;YAC/C,KAAK,iBAAiB;gBACpB,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACzG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC9B,CAAC;gBACD,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,uDAAuD,CAAC,CAAC;YACjG,KAAK,iBAAiB,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAgB,EAAE,CAAC;gBAC9B,IAAI,EAAE,GAAG,IAAI,CAAC;gBACd,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC/B,MAAM,IAAI,GACR,EAAE,KAAK,IAAI;wBACT,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,+DAA+D,CAAC;wBAC/E,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe;4BAC3B,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,sFAAsF,CAAC;4BACpG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAClB,IAAI,IAAI,KAAK,SAAS;wBAAE,EAAE,GAAG,KAAK,CAAC;;wBAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;gBACD,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAChC,CAAC;YACD,KAAK,kBAAkB,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;gBAC5C,IAAI,EAAE,GAAG,IAAI,CAAC;gBACd,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAAE,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC;oBAC/F,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAAE,EAAE,GAAG,KAAK,CAAC;;wBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBACD,4EAA4E;gBAC5E,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrD,CAAC;YACD,KAAK,YAAY;gBACf,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;YACzB,KAAK,kBAAkB,EAAE,CAAC;gBACxB,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB;oBAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC1D,OAAO,MAAM,CACX,IAAI,EACJ,yJAAyJ,CAC1J,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,CACX,IAAI,EACJ,+HAA+H,CAChI,CAAC;YACJ,CAAC;YACD,KAAK,gBAAgB;gBACnB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;gBAChG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/F,OAAO,MAAM,CAAC,IAAI,EAAE,0EAA0E,CAAC,CAAC;gBAClG,CAAC;gBACD,OAAO,MAAM,CACX,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB;oBACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;oBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACrF,CAAC,CAAC,mGAAmG;oBACrG,CAAC,CAAC,uFAAuF,CAC5F,CAAC;YACJ,KAAK,eAAe;gBAClB,OAAO,MAAM,CAAC,IAAI,EAAE,yFAAyF,CAAC,CAAC;YACjH,KAAK,yBAAyB,CAAC;YAC/B,KAAK,oBAAoB;gBACvB,OAAO,MAAM,CACX,IAAI,EACJ,iGAAiG,CAClG,CAAC;YACJ,KAAK,gBAAgB,CAAC;YACtB,KAAK,uBAAuB,CAAC;YAC7B,KAAK,iBAAiB,CAAC;YACvB,KAAK,qBAAqB;gBACxB,OAAO,MAAM,CACX,IAAI,EACJ,+FAA+F,CAChG,CAAC;YACJ;gBACE,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,SAAS,QAAQ,CAAC,CAAO;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,CAAC,EAAE,uFAAuF,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC,CAAC,EAAE,2EAA2E,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,sEAAsE,CAAC,CAAC;QAC7G,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;QACnF,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,sBAAsB,WAAW,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,2DAA2D;IAC3D,SAAS,UAAU,CAAC,IAAU;QAC5B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACjD,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/E,OAAO,MAAM,CAAC,IAAI,EAAE,wCAAwC,WAAW,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;QAC9F,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,IACE,MAAM,CAAC,MAAM;YACb,QAAQ,EAAE,IAAI,KAAK,UAAU;YAC7B,QAAQ,CAAC,QAAQ;YACjB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,UAAU;YACxD,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;YACjC,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EACzC,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,EAAE,0DAA0D,WAAW,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAClG,CAAC;IAED,SAAS,SAAS,CAAC,IAAU;QAC3B,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,IAAI,KAAK,WAAW;YACtB,OAAO,MAAM,CAAC,IAAI,EAAE,6EAA6E,CAAC,CAAC;QACrG,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE,IAAI,KAAK,cAAc,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,mFAAmF,CAAC,CAAC;QAClH,CAAC;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACxC,OAAO,MAAM,CACX,IAAI,EACJ,GAAG,IAAI,gHAAgH,CACxH,CAAC;IACJ,CAAC;IAED,SAAS,MAAM,CAAC,IAAoC,EAAE,OAAe;QACnE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;AACjE,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAS,EAAsB,EAAE,CACvD,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEhG,iFAAiF;AACjF,SAAS,QAAQ,CAAC,IAAU;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC;SAC7B,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,WAAW,EAAE,CAAC;IACjB,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;AAC3D,CAAC"}
@@ -4,17 +4,21 @@ import { type Builtin } from "./define.ts";
4
4
  import { type Effect } from "./op.ts";
5
5
  import { type Outline } from "./outline.ts";
6
6
  import { type ResourceFields } from "./resource.ts";
7
- import { type DeclaredResource, type ResourceProblem } from "./resources.ts";
7
+ import { type DataFiles, type DeclaredResource, type ResourceProblem } from "./resources.ts";
8
8
  export { outlineWorkflow, type Outline, type OutlineNode, type Span } from "./outline.ts";
9
9
  export type { LintProblem } from "./ast.ts";
10
10
  export { readDataFiles, readResources, type DataFiles, type DeclaredResource, type ResourceProblem, } from "./resources.ts";
11
+ export { formatOptions, renderDataFile, setFields, type DataFileContent } from "./writer.ts";
12
+ export { Reference, type DataValue } from "./datafile.ts";
13
+ export { LOCKFILE, readLockfile, serializeLockfile, writeLockfile, diffLockfiles, type Binding, type Bindings, type Rebind, } from "./lockfile.ts";
14
+ export type { ApplyInput, ApplyPlan, ApplyReport, ApplyResult, PlanAnswer, PlanStep } from "./apply.ts";
11
15
  /** What a workflow is, read from its definition: enough to draw a start form and show what it may call. */
12
16
  export interface WorkflowEntry {
13
17
  name: string;
14
18
  title?: string;
15
19
  trigger: "manual";
16
20
  /**
17
- * Set for a workflow the runtime adds itself, `drift`, rather than the config: a label. It
21
+ * Set for a workflow the runtime adds itself, `drift` or `apply`, rather than the config: a label. It
18
22
  * starts like any other.
19
23
  */
20
24
  builtin?: true;
@@ -85,8 +89,8 @@ export interface ResourceTypeEntry {
85
89
  vendor: string;
86
90
  type: string;
87
91
  title: string;
88
- /** How a declared resource's import id is made, such as `name` or `repository_id:pattern`. */
89
- identity: string;
92
+ /** How a declared resource's identity is made, such as `name` or `repository_id:pattern`; absent when it is found only by its binding. */
93
+ identity?: string;
90
94
  /** Its flagged fields, by dotted path. */
91
95
  fields: ResourceFields;
92
96
  /**
@@ -94,7 +98,7 @@ export interface ResourceTypeEntry {
94
98
  * `sanoma:resource-type/<id>`: the operations' contracts `$ref` it instead of repeating it.
95
99
  */
96
100
  schema: Record<string, unknown>;
97
- /** Its operations' ids: `<id>.import` and `<id>.read`. */
101
+ /** Its operations' ids, sorted: `<id>.import` and `<id>.read`, and for a writable type its change operations. */
98
102
  ops: string[];
99
103
  }
100
104
  /**
@@ -117,6 +121,8 @@ export interface ConfigDescription {
117
121
  * less any with a problem and any that names one.
118
122
  */
119
123
  resources: DeclaredResource[];
124
+ /** Each binding in the lockfile (`LOCKFILE`) whose key no data file declares, as `readDataFiles` reports it. */
125
+ orphans: DataFiles["orphans"];
120
126
  /** What is wrong in the data files (`readDataFiles`), each at its file, relative to the root, line and column. A workflow's are on its entry. */
121
127
  problems: ResourceProblem[];
122
128
  /** `defined` is false for `allowAll`. */
package/dist/describe.js CHANGED
@@ -1,16 +1,20 @@
1
1
  import { readSource } from "./ast.js";
2
2
  import { resolveConfig } from "./config.js";
3
3
  import { jsonSchemaOf, opIdsOf } from "./define.js";
4
- import { DRIFT_WORKFLOW } from "./drift.js";
5
4
  import { lintWorkflow } from "./lint.js";
6
5
  import { VENDOR } from "./op.js";
7
6
  import { outlineWithSource } from "./outline.js";
8
7
  import { allowAll, policyOpOf } from "./policy.js";
9
8
  import { resourceTypesOf } from "./resource.js";
10
9
  import { readDataFiles } from "./resources.js";
10
+ import { BUILT_IN_WORKFLOWS } from "./shared.js";
11
11
  // `@sanoma-ai/workflows/describe`: what a UI renders from, apart from the main entry.
12
12
  export { outlineWorkflow } from "./outline.js";
13
13
  export { readDataFiles, readResources, } from "./resources.js";
14
+ // The writer: setting a resource's fields in its data file, and rendering a new one.
15
+ export { formatOptions, renderDataFile, setFields } from "./writer.js";
16
+ export { Reference } from "./datafile.js";
17
+ export { LOCKFILE, readLockfile, serializeLockfile, writeLockfile, diffLockfiles, } from "./lockfile.js";
14
18
  /**
15
19
  * Describes a config. Throws what `startWorker` would refuse (see `resolveConfig`), except missing
16
20
  * credentials (`SanomaClient.credentials` gives their statuses) and what is wrong in a workflow's
@@ -31,7 +35,7 @@ export function describeConfig(config) {
31
35
  // Each resource type's state is described once, on its entry, and referenced from its operations.
32
36
  const refs = new Map([...resources].map(([id, r]) => [r.schema, resourceTypeUri(id)]));
33
37
  const resourceTypes = [...resources]
34
- .map(([id, { vendor, type, title, identity, fields, schema }]) => ({
38
+ .map(([id, { vendor, type, title, identity, fields, schema, ops }]) => ({
35
39
  id,
36
40
  vendor,
37
41
  type,
@@ -39,7 +43,9 @@ export function describeConfig(config) {
39
43
  identity,
40
44
  fields,
41
45
  schema: { $id: resourceTypeUri(id), ...toJsonSchema(schema, `${id} state`, "output") },
42
- ops: [`${id}.import`, `${id}.read`],
46
+ ops: Object.keys(ops)
47
+ .map((name) => `${id}.${name}`)
48
+ .toSorted(),
43
49
  }))
44
50
  .toSorted((a, b) => a.id.localeCompare(b.id));
45
51
  const ops = [...resolved.ops.values()].map((op) => ({
@@ -58,7 +64,8 @@ export function describeConfig(config) {
58
64
  const { outline, source, found } = outlineWithSource(wf, file);
59
65
  // What the lint does not report: the file unread, or no workflow of this name in it.
60
66
  const own = "error" in outline && !found && (typeof file === "string" || !file.problems.length);
61
- const problems = wf.name === DRIFT_WORKFLOW
67
+ const builtin = BUILT_IN_WORKFLOWS.has(wf.name);
68
+ const problems = builtin
62
69
  ? []
63
70
  : [
64
71
  ...(typeof file === "string" ? [] : lint(file)),
@@ -68,7 +75,7 @@ export function describeConfig(config) {
68
75
  name: wf.name,
69
76
  title: wf.title,
70
77
  trigger: wf.trigger,
71
- ...(wf.name === DRIFT_WORKFLOW && { builtin: true }),
78
+ ...(builtin && { builtin: true }),
72
79
  input: toJsonSchema(wf.input, `${wf.name} input`, "input"),
73
80
  ops: opIdsOf(wf),
74
81
  builtins: wf.uses.filter((u) => typeof u === "string"),
@@ -88,6 +95,7 @@ export function describeConfig(config) {
88
95
  vendors,
89
96
  resourceTypes,
90
97
  resources: dataFiles.resources,
98
+ orphans: dataFiles.orphans,
91
99
  problems: dataFiles.problems,
92
100
  policy: {
93
101
  defined: resolved.policy !== allowAll,
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"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"}
package/dist/drift.d.ts CHANGED
@@ -3,14 +3,16 @@ import { type WorkflowDefinition } from "./define.ts";
3
3
  import type { Op } from "./op.ts";
4
4
  import { type DriftField, type Resource } from "./resource.ts";
5
5
  import type { DeclaredResource, ResourceProblem } from "./resources.ts";
6
+ import { type sourceOps } from "./source.ts";
6
7
  export type { DriftField } from "./resource.ts";
7
8
  export { DRIFT_WORKFLOW } from "./shared.ts";
8
9
  /**
9
- * How a declared resource compares: `clean` when every declared field holds its declared value,
10
- * `drifted` when one does not, `gone` when the vendor has no such object, and `error` when it
11
- * could not be read (the vendor's error, a policy denial, or no driver for its type).
10
+ * How a declared resource compares: `clean` when every declared field of its bound object holds
11
+ * its declared value, `drifted` when one does not, `gone` when the vendor no longer has its bound
12
+ * object, `absent` when it is bound to none (whether or not its identity finds one: `found`), and
13
+ * `error` when it could not be read (the vendor's error, a policy denial, or no driver for its type).
12
14
  */
13
- export type DriftStatus = "clean" | "drifted" | "gone" | "error";
15
+ export type DriftStatus = "clean" | "drifted" | "gone" | "absent" | "error";
14
16
  /** One declared resource in a drift report. */
15
17
  export interface DriftResult {
16
18
  /** The resource's id, `<file>#<export>`: `resources/identity/github.ts#website`. */
@@ -18,9 +20,13 @@ export interface DriftResult {
18
20
  /** Its type within the vendor, such as `repository`. */
19
21
  type: string;
20
22
  vendor: string;
21
- /** Its import id. */
23
+ /** What people call it: its identity, else its export's name. */
22
24
  name: string;
23
25
  status: DriftStatus;
26
+ /** The vendor's id of the object the lockfile binds it to; absent when unbound. */
27
+ binding?: string;
28
+ /** For `absent`: the binding id of the object its identity found, which apply may bind it to. */
29
+ found?: string;
24
30
  /** The declared fields that differ; empty unless `drifted`. */
25
31
  fields: DriftField[];
26
32
  /** Why it could not be read, for `error`. */
@@ -47,7 +53,7 @@ export declare const DriftInput: z.ZodObject<{}, z.core.$strict>;
47
53
  * write-only values, and the problems.
48
54
  */
49
55
  export interface DriftDeclared {
50
- resources: Pick<DeclaredResource, "id" | "vendor" | "type" | "name" | "desired" | "refs">[];
56
+ resources: Pick<DeclaredResource, "id" | "vendor" | "type" | "name" | "identity" | "binding" | "desired" | "refs">[];
51
57
  problems: ResourceProblem[];
52
58
  }
53
59
  type State = Record<string, unknown>;
@@ -58,18 +64,64 @@ type ImportOp = Op<string, string, "import", {
58
64
  gone: boolean;
59
65
  state?: State;
60
66
  }>;
67
+ export type ResolveOp = typeof sourceOps.source.resolve;
68
+ /** What one import found: the object's state, that it is gone, or why it could not be read. */
69
+ export type Found = {
70
+ state: State;
71
+ } | {
72
+ gone: true;
73
+ } | {
74
+ error: string;
75
+ };
76
+ /** What a host's ref names now, or why it could not be resolved. */
77
+ export type Revision = {
78
+ revision: string;
79
+ } | {
80
+ error: string;
81
+ };
82
+ /** The `import` ops of the types among `ops` with a driver, by type, sorted: what observing them uses. */
83
+ export declare function importsOf(types: ReadonlyMap<string, Resource>, ops: ReadonlyMap<string, Op>, drivers: ReadonlyMap<string, unknown>): ImportOp[];
84
+ /**
85
+ * What a declared resource is observed by: the import id (`by`, default its binding, else its
86
+ * identity), or without one what it is found to be: `gone` for none, `error` when its type is
87
+ * not the connectors' or has no import among `imports`.
88
+ */
89
+ export declare function observeBy({ vendor, type, binding, identity }: Pick<DeclaredResource, "vendor" | "type" | "binding" | "identity">, types: ReadonlyMap<string, Resource>, imports: readonly Pick<Op, "id">[], by?: string | undefined): {
90
+ id: string;
91
+ } | Found;
92
+ /** What an import's answer found. */
93
+ export declare const observed: (out: {
94
+ gone: boolean;
95
+ state?: State;
96
+ }) => Found;
97
+ /**
98
+ * Each declared resource against what its import `found`: `error`, `absent` (unbound, with the
99
+ * binding id of what its identity found as `found`), `gone`, else the state and the declared
100
+ * fields compared by `diffDeclared`, a reference against the state of the resource it names
101
+ * (so GitHub's node id for a repository counts as its name). A host with a `revisions` entry
102
+ * also compares its revision against the commit its ref names now (or is that entry's `error`).
103
+ */
104
+ export declare function compare(types: ReadonlyMap<string, Resource>, resources: DriftDeclared["resources"], found: ReadonlyMap<string, Found>, revisions?: ReadonlyMap<string, Revision>): DriftResult[];
61
105
  /**
62
106
  * The drift workflow for a config: it `uses` the `import` of every resource type the connectors
63
107
  * declare (`types`) that has a driver, so its version changes with them, not with the data
64
108
  * files. `resolveConfig` adds it to a config whose connectors declare resource types, with
65
109
  * `declared`, the step that reads the data files.
66
110
  *
67
- * A run reads the data files (`declared`, recorded as a step, so a replay checks the same list),
68
- * then imports each resource by its import id (its `name`), in the files' order: one vendor call
69
- * each. An import that says gone is `gone`. Else the state and the declared fields are compared
70
- * by `diffDeclared`, a reference against the state of the resource it names, read in the same run
71
- * (so GitHub's node id for a repository counts as its name). A failed call is that resource's
111
+ * A run reads the data files and the lockfile (`declared`, recorded as a step, so a replay checks
112
+ * the same list), then imports each resource by its binding, else by its identity, in the files'
113
+ * order: one vendor call each, none for a resource with neither. A bound resource whose import
114
+ * says gone is `gone`; an unbound one is `absent`, with the binding id of what its identity found
115
+ * as `found`. Else the state and the declared fields are compared by `diffDeclared`, a reference
116
+ * against the state of the resource it names, read in the same run (so GitHub's node id for a
117
+ * repository counts as its name). A failed call is that resource's
72
118
  * `error`, and the run goes on to the next; a failure that ends the run (`isRunControlError`)
73
119
  * ends it.
74
120
  */
75
- export declare function driftWorkflow(types: ReadonlyMap<string, Resource>, ops: ReadonlyMap<string, Op>, drivers: ReadonlyMap<string, unknown>, declared: () => Promise<DriftDeclared>): WorkflowDefinition<readonly ImportOp[], typeof DriftInput>;
121
+ export declare function driftWorkflow(types: ReadonlyMap<string, Resource>, ops: ReadonlyMap<string, Op>, drivers: ReadonlyMap<string, unknown>, declared: () => Promise<DriftDeclared>): WorkflowDefinition<readonly (ImportOp | ResolveOp)[], typeof DriftInput>;
122
+ /**
123
+ * A host's source: the clone URL its data file gives, or, when it names a declared repository
124
+ * (`target`), the first of the reference's `by` fields that holds one in that repository's state,
125
+ * read in this run.
126
+ */
127
+ export declare function sourceUrl(desired: State, target: string | undefined, { host, fields }: Resource, found: ReadonlyMap<string, Found>): string | undefined;