@sanoma-ai/workflows 0.2.0 → 0.4.1
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/README.md +146 -85
- package/dist/approvals.d.ts +11 -6
- package/dist/approvals.js +38 -10
- package/dist/approvals.js.map +1 -1
- package/dist/call-workflow.d.ts +16 -0
- package/dist/call-workflow.js +35 -0
- package/dist/call-workflow.js.map +1 -0
- package/dist/call.d.ts +33 -4
- package/dist/call.js +107 -42
- package/dist/call.js.map +1 -1
- package/dist/cedar.d.ts +87 -0
- package/dist/cedar.js +365 -0
- package/dist/cedar.js.map +1 -0
- package/dist/client.d.ts +85 -7
- package/dist/client.js +289 -25
- package/dist/client.js.map +1 -1
- package/dist/collection.d.ts +107 -0
- package/dist/collection.js +306 -0
- package/dist/collection.js.map +1 -0
- package/dist/config.d.ts +42 -14
- package/dist/config.js +82 -18
- package/dist/config.js.map +1 -1
- package/dist/constructors.d.ts +2 -0
- package/dist/constructors.js +5 -0
- package/dist/constructors.js.map +1 -0
- package/dist/data.d.ts +2 -0
- package/dist/data.js +3 -0
- package/dist/data.js.map +1 -0
- package/dist/datafile.d.ts +28 -2
- package/dist/datafile.js +118 -19
- package/dist/datafile.js.map +1 -1
- package/dist/db.d.ts +5 -3
- package/dist/db.js +88 -21
- package/dist/db.js.map +1 -1
- package/dist/define.d.ts +14 -5
- package/dist/define.js +1 -5
- package/dist/define.js.map +1 -1
- package/dist/describe.d.ts +45 -5
- package/dist/describe.js +72 -7
- package/dist/describe.js.map +1 -1
- package/dist/direct.d.ts +9 -0
- package/dist/direct.js +11 -0
- package/dist/direct.js.map +1 -0
- package/dist/errors.d.ts +16 -1
- package/dist/errors.js +30 -1
- package/dist/errors.js.map +1 -1
- package/dist/expectations.d.ts +3 -3
- package/dist/expectations.js +16 -7
- package/dist/expectations.js.map +1 -1
- package/dist/fill.d.ts +4 -0
- package/dist/fill.js +13 -0
- package/dist/fill.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/ledger.d.ts +12 -1
- package/dist/ledger.js +18 -11
- package/dist/ledger.js.map +1 -1
- package/dist/lint.d.ts +5 -4
- package/dist/lint.js +24 -7
- package/dist/lint.js.map +1 -1
- package/dist/op.d.ts +6 -0
- package/dist/op.js.map +1 -1
- package/dist/outline.d.ts +2 -0
- package/dist/outline.js +1 -1
- package/dist/outline.js.map +1 -1
- package/dist/paths.d.ts +4 -0
- package/dist/paths.js +17 -3
- package/dist/paths.js.map +1 -1
- package/dist/person.d.ts +61 -0
- package/dist/person.js +69 -0
- package/dist/person.js.map +1 -0
- package/dist/plugin.d.ts +28 -0
- package/dist/plugin.js +52 -1
- package/dist/plugin.js.map +1 -1
- package/dist/policy.d.ts +51 -55
- package/dist/policy.js +14 -36
- package/dist/policy.js.map +1 -1
- package/dist/resource.d.ts +21 -5
- package/dist/resource.js +12 -3
- package/dist/resource.js.map +1 -1
- package/dist/resources.d.ts +58 -6
- package/dist/resources.js +119 -26
- package/dist/resources.js.map +1 -1
- package/dist/run.d.ts +17 -1
- package/dist/run.js.map +1 -1
- package/dist/scenario.d.ts +16 -9
- package/dist/scenario.js +149 -44
- package/dist/scenario.js.map +1 -1
- package/dist/scenarios.d.ts +10 -6
- package/dist/scenarios.js +8 -4
- package/dist/scenarios.js.map +1 -1
- package/dist/schema.d.ts +32 -0
- package/dist/schema.js +225 -0
- package/dist/schema.js.map +1 -0
- package/dist/sdk.d.ts +34 -0
- package/dist/sdk.js +168 -0
- package/dist/sdk.js.map +1 -0
- package/dist/shared.d.ts +181 -5
- package/dist/shared.js +160 -7
- package/dist/shared.js.map +1 -1
- package/dist/sites.d.ts +52 -0
- package/dist/sites.js +174 -0
- package/dist/sites.js.map +1 -0
- package/dist/version.d.ts +3 -2
- package/dist/version.js +3 -2
- package/dist/version.js.map +1 -1
- package/dist/worker.d.ts +3 -2
- package/dist/worker.js +24 -4
- package/dist/worker.js.map +1 -1
- package/oxlint.json +7 -20
- package/package.json +8 -3
- package/src/approvals.ts +49 -13
- package/src/call-workflow.ts +44 -0
- package/src/call.ts +157 -45
- package/src/cedar.ts +493 -0
- package/src/client.ts +368 -37
- package/src/collection.ts +431 -0
- package/src/config.ts +131 -34
- package/src/constructors.ts +4 -0
- package/src/data.ts +10 -0
- package/src/datafile.ts +141 -21
- package/src/db.ts +90 -22
- package/src/define.ts +15 -10
- package/src/describe.ts +113 -10
- package/src/direct.ts +15 -0
- package/src/errors.ts +36 -1
- package/src/expectations.ts +17 -8
- package/src/fill.ts +15 -0
- package/src/index.ts +33 -2
- package/src/ledger.ts +35 -17
- package/src/lint.ts +29 -12
- package/src/op.ts +6 -0
- package/src/outline.ts +1 -1
- package/src/paths.ts +18 -3
- package/src/person.ts +75 -0
- package/src/plugin.ts +74 -5
- package/src/policy.ts +59 -63
- package/src/resource.ts +35 -8
- package/src/resources.ts +165 -24
- package/src/run.ts +18 -1
- package/src/scenario.ts +186 -57
- package/src/scenarios.ts +15 -8
- package/src/schema.ts +261 -0
- package/src/sdk.ts +211 -0
- package/src/shared.ts +271 -8
- package/src/sites.ts +220 -0
- package/src/version.ts +3 -2
- package/src/worker.ts +29 -6
package/dist/describe.js
CHANGED
|
@@ -1,26 +1,50 @@
|
|
|
1
1
|
import { readSource } from "./ast.js";
|
|
2
|
-
import {
|
|
2
|
+
import { recordSchemaOf } from "./collection.js";
|
|
3
|
+
import { connectorsOf, resolveConfig, rootOf } from "./config.js";
|
|
3
4
|
import { jsonSchemaOf, opIdsOf } from "./define.js";
|
|
5
|
+
import { isDirect } from "./direct.js";
|
|
4
6
|
import { lintWorkflow } from "./lint.js";
|
|
5
7
|
import { VENDOR } from "./op.js";
|
|
6
8
|
import { outlineWithSource } from "./outline.js";
|
|
7
9
|
import { allowAll, policyOpOf } from "./policy.js";
|
|
8
10
|
import { resourceTypesOf } from "./resource.js";
|
|
9
|
-
import { readDataFiles } from "./resources.js";
|
|
10
|
-
import {
|
|
11
|
+
import { readDataFiles, } from "./resources.js";
|
|
12
|
+
import { apiNameProblem } from "./sdk.js";
|
|
13
|
+
import { apiNameOf, BUILT_IN_WORKFLOWS, DATA_VENDOR, problemLine } from "./shared.js";
|
|
14
|
+
import { readSites } from "./sites.js";
|
|
11
15
|
// `@sanoma-ai/workflows/describe`: what a UI renders from, apart from the main entry.
|
|
12
16
|
export { outlineWorkflow } from "./outline.js";
|
|
13
|
-
export { readDataFiles,
|
|
17
|
+
export { admit, readDataFiles, readPeople, } from "./resources.js";
|
|
14
18
|
// The writer: setting a resource's fields in its data file, and rendering a new one.
|
|
15
19
|
export { formatOptions, renderDataFile, setFields } from "./writer.js";
|
|
16
20
|
export { Reference } from "./datafile.js";
|
|
21
|
+
/**
|
|
22
|
+
* The resources the config's data files declare, read without importing or running them; throws
|
|
23
|
+
* one error listing every problem, each at `file:line:column`, for a test or CI to fail on.
|
|
24
|
+
* `describeConfig` lists the same, with the problems beside them instead.
|
|
25
|
+
*/
|
|
26
|
+
export function readResources(config) {
|
|
27
|
+
const { resources, problems } = readDataFiles(rootOf(config), connectorsOf(config));
|
|
28
|
+
if (problems.length) {
|
|
29
|
+
const lines = problems.map((p) => ` ${problemLine(p)}`);
|
|
30
|
+
throw new Error(`The resources' data files have problems:\n${lines.join("\n")}`);
|
|
31
|
+
}
|
|
32
|
+
return resources;
|
|
33
|
+
}
|
|
17
34
|
export { LOCKFILE, readLockfile, serializeLockfile, writeLockfile, diffLockfiles, } from "./lockfile.js";
|
|
35
|
+
// What the sites call, read from their source: a workflow's Used by.
|
|
36
|
+
export { readSites } from "./sites.js";
|
|
37
|
+
// The generated SDK, `.sanoma/api.ts`: a site's `api` typed from this description.
|
|
38
|
+
export { API_FILE, generateApi, writeApi, writeGenerated } from "./sdk.js";
|
|
39
|
+
// The Cedar schema, `.sanoma/schema.cedarschema`: what a company's policies are validated and decided against.
|
|
40
|
+
export { SCHEMA_FILE, schemaOf, schemaText } from "./schema.js";
|
|
18
41
|
/**
|
|
19
42
|
* Describes a config. Throws what `startWorker` would refuse (see `resolveConfig`), except missing
|
|
20
43
|
* credentials (`SanomaClient.credentials` gives their statuses) and what is wrong in a workflow's
|
|
21
44
|
* file, which the worker refuses when it reads the outline: that is data, on each workflow's
|
|
22
45
|
* entry, as the data files' problems are, `problems`, beside the resources read without any.
|
|
23
|
-
* Each workflow's file is read and parsed once, however many workflows it defines.
|
|
46
|
+
* Each workflow's file is read and parsed once, however many workflows it defines. The sites'
|
|
47
|
+
* code is read too (`readSites`): what each calls, and its calls to what the config lacks as its problems.
|
|
24
48
|
*/
|
|
25
49
|
export function describeConfig(config) {
|
|
26
50
|
const resolved = resolveConfig(config);
|
|
@@ -31,7 +55,7 @@ export function describeConfig(config) {
|
|
|
31
55
|
const { id, info } = connector[VENDOR];
|
|
32
56
|
vendors[id] ??= vendorEntry(id, info, resolved.fakes.has(id));
|
|
33
57
|
}
|
|
34
|
-
const resources = resourceTypesOf(config
|
|
58
|
+
const resources = resourceTypesOf(connectorsOf(config));
|
|
35
59
|
// Each resource type's state is described once, on its entry, and referenced from its operations.
|
|
36
60
|
const refs = new Map([...resources].map(([id, r]) => [r.schema, resourceTypeUri(id)]));
|
|
37
61
|
const resourceTypes = [...resources]
|
|
@@ -48,11 +72,25 @@ export function describeConfig(config) {
|
|
|
48
72
|
.toSorted(),
|
|
49
73
|
}))
|
|
50
74
|
.toSorted((a, b) => a.id.localeCompare(b.id));
|
|
75
|
+
const dataFiles = readDataFiles(resolved.root, connectorsOf(config), resources);
|
|
76
|
+
const declared = new Map(dataFiles.collections.map((d) => [d.name, d]));
|
|
77
|
+
const collections = [...resolved.collections.values()]
|
|
78
|
+
.map((c) => ({
|
|
79
|
+
name: c.name,
|
|
80
|
+
...(c.title !== undefined && { title: c.title }),
|
|
81
|
+
key: c.key,
|
|
82
|
+
fields: c.fields,
|
|
83
|
+
record: { $id: `sanoma:collection/${c.name}`, ...toJsonSchema(recordSchemaOf(c), `${c.name} record`, "input") },
|
|
84
|
+
ops: [c.get, c.list, c.save, c.delete].map((op) => op.id),
|
|
85
|
+
...(declared.has(c.name) && { declared: declared.get(c.name) }),
|
|
86
|
+
}))
|
|
87
|
+
.toSorted((a, b) => a.name.localeCompare(b.name));
|
|
51
88
|
const ops = [...resolved.ops.values()].map((op) => ({
|
|
52
89
|
...policyOpOf(op),
|
|
53
90
|
idempotent: op.idempotent,
|
|
54
91
|
description: op.description,
|
|
55
92
|
...(op.phrases && { phrases: op.phrases }),
|
|
93
|
+
direct: isDirect(op, resolved.types),
|
|
56
94
|
input: toJsonSchema(op.input, `${op.id} input`, "input", refs),
|
|
57
95
|
output: toJsonSchema(op.output, `${op.id} output`, "output", refs),
|
|
58
96
|
}));
|
|
@@ -86,7 +124,7 @@ export function describeConfig(config) {
|
|
|
86
124
|
};
|
|
87
125
|
});
|
|
88
126
|
workflows.sort((a, b) => a.name.localeCompare(b.name));
|
|
89
|
-
|
|
127
|
+
addApiNameProblems(workflows, new Set(ops.map((op) => op.vendor)));
|
|
90
128
|
return {
|
|
91
129
|
appName: resolved.appName,
|
|
92
130
|
version: resolved.version,
|
|
@@ -94,15 +132,42 @@ export function describeConfig(config) {
|
|
|
94
132
|
ops,
|
|
95
133
|
vendors,
|
|
96
134
|
resourceTypes,
|
|
135
|
+
collections,
|
|
97
136
|
resources: dataFiles.resources,
|
|
98
137
|
orphans: dataFiles.orphans,
|
|
99
138
|
problems: dataFiles.problems,
|
|
100
139
|
policy: {
|
|
101
140
|
defined: resolved.policy !== allowAll,
|
|
102
141
|
...(resolved.policy.version === undefined ? {} : { version: resolved.policy.version }),
|
|
142
|
+
...(resolved.policyProblems.length ? { problems: resolved.policyProblems } : {}),
|
|
103
143
|
},
|
|
144
|
+
sites: readSites(resolved.root, { workflows, collections, ops }),
|
|
104
145
|
};
|
|
105
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* A site's `api` names each workflow `apiNameOf(name)` beside the vendors' operations and the
|
|
149
|
+
* collections (`api.data`), so a workflow whose name comes out as another's, a vendor's id or
|
|
150
|
+
* `data` is a problem, at 1:1 of its file. A built-in is never the one renamed.
|
|
151
|
+
*/
|
|
152
|
+
function addApiNameProblems(workflows, vendors) {
|
|
153
|
+
for (const wf of workflows) {
|
|
154
|
+
if (wf.builtin)
|
|
155
|
+
continue;
|
|
156
|
+
const api = apiNameOf(wf.name);
|
|
157
|
+
const others = workflows.filter((other) => other !== wf && apiNameOf(other.name) === api);
|
|
158
|
+
const taken = others.length
|
|
159
|
+
? `as workflow ${others.map((other) => `"${other.name}"`).join(" and ")} is`
|
|
160
|
+
: api === DATA_VENDOR
|
|
161
|
+
? "which is the collections'"
|
|
162
|
+
: vendors.has(api)
|
|
163
|
+
? `which is the vendor ${api}'s operations`
|
|
164
|
+
: api === "then"
|
|
165
|
+
? "which a promise would take for its own"
|
|
166
|
+
: undefined;
|
|
167
|
+
if (taken)
|
|
168
|
+
wf.problems.push({ line: 1, column: 1, message: apiNameProblem(api, taken) });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
106
171
|
/** `fn`, called once per argument for as long as the returned function lives. */
|
|
107
172
|
function memoised(fn) {
|
|
108
173
|
const seen = new Map();
|
package/dist/describe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,UAAU,EAAmB,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,UAAU,EAAmB,MAAM,UAAU,CAAC;AACzE,OAAO,EAAc,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAqB,MAAM,aAAa,CAAC;AACrF,OAAO,EAAgB,YAAY,EAAE,OAAO,EAAY,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAe,MAAM,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAgB,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAuB,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAIL,aAAa,GAEd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,SAAS,EAAkB,MAAM,YAAY,CAAC;AAEvD,sFAAsF;AACtF,OAAO,EAAE,eAAe,EAA6C,MAAM,cAAc,CAAC;AAG1F,OAAO,EACL,KAAK,EACL,aAAa,EACb,UAAU,GAMX,MAAM,gBAAgB,CAAC;AACxB,qFAAqF;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAwB,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AACD,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,aAAa,GAId,MAAM,eAAe,CAAC;AACvB,qEAAqE;AACrE,OAAO,EAAE,SAAS,EAAiC,MAAM,YAAY,CAAC;AACtE,mFAAmF;AACnF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3E,+GAA+G;AAC/G,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAmJtF;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAgC,EAAE,CAAC;IAChD,yFAAyF;IACzF,wCAAwC;IACxC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,kGAAkG;IAClG,MAAM,IAAI,GAAG,IAAI,GAAG,CAAoB,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,MAAM,aAAa,GAAwB,CAAC,GAAG,SAAS,CAAC;SACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACtE,EAAE;QACF,MAAM;QACN,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACtF,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;aAC9B,QAAQ,EAAE;KACd,CAAC,CAAC;SACF,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,WAAW,GAAsB,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;SACtE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS,EAAE,OAAO,CAAC,EAAE;QAC/G,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;KAChE,CAAC,CAAC;SACF,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,MAAM,GAAG,GAAc,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7D,GAAG,UAAU,CAAC,EAAE,CAAC;QACjB,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,GAAG,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC;QACpC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;QAC9D,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC;KACnE,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,IAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,MAAM,SAAS,GAAoB,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/D,qFAAqF;QACrF,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChG,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE,CAAC;QACN,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,IAAa,EAAE,CAAC;YAC1C,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,QAAQ,EAAE,OAAO,CAAC;YAC1D,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YAChB,QAAQ,EAAG,EAAE,CAAC,IAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAC/E,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,OAAO;YACP,QAAQ;YACR,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;SAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,kBAAkB,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEnE,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS;QACT,GAAG;QACH,OAAO;QACP,aAAa;QACb,WAAW;QACX,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,MAAM,EAAE;YACN,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,QAAQ;YACrC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtF,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF;QACD,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,SAA0B,EAAE,OAA4B;IAClF,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,OAAO;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC1F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;YACzB,CAAC,CAAC,eAAe,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YAC5E,CAAC,CAAC,GAAG,KAAK,WAAW;gBACnB,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;oBAChB,CAAC,CAAC,uBAAuB,GAAG,eAAe;oBAC3C,CAAC,CAAC,GAAG,KAAK,MAAM;wBACd,CAAC,CAAC,wCAAwC;wBAC1C,CAAC,CAAC,SAAS,CAAC;QACpB,IAAI,KAAK;YAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,SAAS,QAAQ,CAAO,EAAiB;IACvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IAC7B,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,sBAAsB,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;AAE3F,MAAM,WAAW,GAAG,CAAC,EAAU,EAAE,IAA4B,EAAE,IAAa,EAAe,EAAE,CAAC,CAAC;IAC7F,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;IACxB,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI;QAChB,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;KACtG,CAAC;IACF,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/C,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClD,IAAI;CACL,CAAC,CAAC;AAEH,6DAA6D;AAC7D,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,wBAAwB,EAAE,EAAE,CAAC;AAErE,SAAS,YAAY,CACnB,MAAiB,EACjB,IAAY,EACZ,EAAsB,EACtB,IAAmC;IAEnC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,oBAAqB,CAAW,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;AACH,CAAC"}
|
package/dist/direct.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Op } from "./op.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Whether an operation may be called directly, outside a run (`SanomaClient.call`), as the
|
|
4
|
+
* person: a collection's (`data.<name>.<op>`), or a `read` that is neither the runtime's own
|
|
5
|
+
* (the vendor `sanoma`) nor a resource type's (`isResourceOp`), which only drift and apply call.
|
|
6
|
+
* Anything else (an effect at a vendor) is a workflow's. The one rule: the built-in `call`
|
|
7
|
+
* workflow, the SDK and the app read it, from here or from `OpEntry.direct`, and never derive it.
|
|
8
|
+
*/
|
|
9
|
+
export declare const isDirect: (op: Pick<Op, "vendor" | "resource" | "effect">, types: ReadonlyMap<string, unknown>) => boolean;
|
package/dist/direct.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { isResourceOp } from "./resource.js";
|
|
2
|
+
import { DATA_VENDOR } from "./shared.js";
|
|
3
|
+
/**
|
|
4
|
+
* Whether an operation may be called directly, outside a run (`SanomaClient.call`), as the
|
|
5
|
+
* person: a collection's (`data.<name>.<op>`), or a `read` that is neither the runtime's own
|
|
6
|
+
* (the vendor `sanoma`) nor a resource type's (`isResourceOp`), which only drift and apply call.
|
|
7
|
+
* Anything else (an effect at a vendor) is a workflow's. The one rule: the built-in `call`
|
|
8
|
+
* workflow, the SDK and the app read it, from here or from `OpEntry.direct`, and never derive it.
|
|
9
|
+
*/
|
|
10
|
+
export const isDirect = (op, types) => op.vendor === DATA_VENDOR || (op.effect === "read" && op.vendor !== "sanoma" && !isResourceOp(op, types));
|
|
11
|
+
//# sourceMappingURL=direct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct.js","sourceRoot":"","sources":["../src/direct.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,EAA8C,EAC9C,KAAmC,EAC1B,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { z } from "zod";
|
|
2
2
|
import type { Principal } from "./define.ts";
|
|
3
|
-
declare const CODES: readonly ["policy_denied", "approval_rejected", "not_approver", "no_pending_approval", "already_decided", "run_not_found", "driver_failed", "invalid_input", "run_ended", "run_running", "call_not_in_outline"];
|
|
3
|
+
declare const CODES: readonly ["policy_denied", "approval_rejected", "not_approver", "no_pending_approval", "already_decided", "run_not_found", "driver_failed", "invalid_input", "run_ended", "run_running", "call_not_in_outline", "approval_pending", "not_admitted"];
|
|
4
4
|
/**
|
|
5
5
|
* Why something failed, as a stable string a caller can branch on. Messages are for people
|
|
6
6
|
* and may change; codes are the contract.
|
|
@@ -37,6 +37,21 @@ export declare const isRunControlError: (err: unknown) => boolean;
|
|
|
37
37
|
export declare class PolicyDeniedError extends SanomaError {
|
|
38
38
|
constructor(op: string, reason: string);
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Thrown by a direct call (`SanomaClient.call`) the policy holds for an approval: the call is now
|
|
42
|
+
* run `runId` of the built-in `call` workflow, which makes it once approved.
|
|
43
|
+
*/
|
|
44
|
+
export declare class ApprovalPendingError extends SanomaError {
|
|
45
|
+
constructor(op: string, runId: string);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Thrown when the data files declare people (`sanoma.person`, in `resources/people.ts` by
|
|
49
|
+
* convention) and not this principal's id: nothing is started, called or decided.
|
|
50
|
+
*/
|
|
51
|
+
export declare class NotAdmittedError extends SanomaError {
|
|
52
|
+
/** `problems`: what is wrong in the people's files, while nobody is admitted. */
|
|
53
|
+
constructor(id: string, problems?: readonly string[]);
|
|
54
|
+
}
|
|
40
55
|
/** Thrown into the run when an approver rejects. The run fails with it. */
|
|
41
56
|
export declare class RejectedError extends SanomaError {
|
|
42
57
|
/**
|
package/dist/errors.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Error as DBOSErrors } from "@dbos-inc/dbos-sdk";
|
|
2
|
-
import { errorMessage } from "./shared.js";
|
|
2
|
+
import { CALL_WORKFLOW, errorMessage } from "./shared.js";
|
|
3
3
|
const CODES = [
|
|
4
4
|
"policy_denied",
|
|
5
5
|
"approval_rejected",
|
|
@@ -12,6 +12,8 @@ const CODES = [
|
|
|
12
12
|
"run_ended",
|
|
13
13
|
"run_running",
|
|
14
14
|
"call_not_in_outline",
|
|
15
|
+
"approval_pending",
|
|
16
|
+
"not_admitted",
|
|
15
17
|
];
|
|
16
18
|
const KNOWN = new Set(CODES);
|
|
17
19
|
/**
|
|
@@ -61,6 +63,33 @@ export class PolicyDeniedError extends SanomaError {
|
|
|
61
63
|
this.name = "PolicyDeniedError";
|
|
62
64
|
}
|
|
63
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Thrown by a direct call (`SanomaClient.call`) the policy holds for an approval: the call is now
|
|
68
|
+
* run `runId` of the built-in `call` workflow, which makes it once approved.
|
|
69
|
+
*/
|
|
70
|
+
export class ApprovalPendingError extends SanomaError {
|
|
71
|
+
constructor(op, runId) {
|
|
72
|
+
super("approval_pending", `${op} needs an approval: it waits in run ${runId}`, {
|
|
73
|
+
runId,
|
|
74
|
+
workflow: CALL_WORKFLOW,
|
|
75
|
+
op,
|
|
76
|
+
});
|
|
77
|
+
this.name = "ApprovalPendingError";
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Thrown when the data files declare people (`sanoma.person`, in `resources/people.ts` by
|
|
82
|
+
* convention) and not this principal's id: nothing is started, called or decided.
|
|
83
|
+
*/
|
|
84
|
+
export class NotAdmittedError extends SanomaError {
|
|
85
|
+
/** `problems`: what is wrong in the people's files, while nobody is admitted. */
|
|
86
|
+
constructor(id, problems = []) {
|
|
87
|
+
super("not_admitted", problems.length
|
|
88
|
+
? `${id} cannot be admitted while the people's files have problems: ${problems.join("; ")}`
|
|
89
|
+
: `${id} is not declared in resources/people.ts`, { principal: id, ...(problems.length && { problems }) });
|
|
90
|
+
this.name = "NotAdmittedError";
|
|
91
|
+
}
|
|
92
|
+
}
|
|
64
93
|
/** Thrown into the run when an approver rejects. The run fails with it. */
|
|
65
94
|
export class RejectedError extends SanomaError {
|
|
66
95
|
/**
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/expectations.d.ts
CHANGED
|
@@ -16,9 +16,9 @@ type Unstepped<T> = T extends unknown ? Omit<T, "step"> : never;
|
|
|
16
16
|
* Why an expectation of the generic steps does not hold against a run's ledger records, or
|
|
17
17
|
* undefined when it does. A call is an `op.called` record without an `error`; one with an error
|
|
18
18
|
* (a policy denial, a rejected approval, a vendor's final failure) was attempted, not made. An
|
|
19
|
-
* operation `was denied` when the policy's decision on some call to it is `deny
|
|
20
|
-
*
|
|
21
|
-
* call, or one that `covers` it. A drift or apply expectation reads the report a finished run
|
|
19
|
+
* operation `was denied` when the policy's decision on some call to it is `deny` (for the `reason`
|
|
20
|
+
* expected, when there is one), and `was held for` an approver (a group alone, as `{ group }`) when
|
|
21
|
+
* an approval for that approver holds it: one the policy asked for on its call, or one that `covers` it. A drift or apply expectation reads the report a finished run
|
|
22
22
|
* of it returned. A step named in the workflow's outline is read by the `name` its records carry
|
|
23
23
|
* (its calls made, and `waitsOf`); a record written before steps had names has none.
|
|
24
24
|
*/
|
package/dist/expectations.js
CHANGED
|
@@ -54,8 +54,12 @@ const inputs = (list) => list.map((r) => JSON.stringify(r.input)).join(", ");
|
|
|
54
54
|
const words = (d) => d.kind === "allow" ? "allowed" : d.kind === "deny" ? "denied" : `held for ${approverLabel(d.approver)}`;
|
|
55
55
|
/** What the policy decided for the calls, each decision once: `allowed and held for finance`. */
|
|
56
56
|
const decisions = (calls) => [...new Set(calls.map((r) => words(r.decision)))].join(" and ");
|
|
57
|
-
/** True when `who` names the approver: a person by id, or a group by its name. */
|
|
58
|
-
const isApprover = (approver, who) => typeof
|
|
57
|
+
/** True when `who` names the approver: a person by id, or a group by its name; `{ group }` the group alone. */
|
|
58
|
+
const isApprover = (approver, who) => typeof who !== "string"
|
|
59
|
+
? typeof approver !== "string" && approver.group === who.group
|
|
60
|
+
: typeof approver === "string"
|
|
61
|
+
? approver === who
|
|
62
|
+
: approver.group === who;
|
|
59
63
|
/** How a drift report found a resource, as words: `clean`, `gone`, `drifted in has_wiki, topics`. */
|
|
60
64
|
const found = (r) => r.status === "drifted" ? `drifted in ${r.fields.map((f) => f.path).join(", ")}` : r.status;
|
|
61
65
|
/**
|
|
@@ -104,9 +108,9 @@ function applyDetail(e, end) {
|
|
|
104
108
|
* Why an expectation of the generic steps does not hold against a run's ledger records, or
|
|
105
109
|
* undefined when it does. A call is an `op.called` record without an `error`; one with an error
|
|
106
110
|
* (a policy denial, a rejected approval, a vendor's final failure) was attempted, not made. An
|
|
107
|
-
* operation `was denied` when the policy's decision on some call to it is `deny
|
|
108
|
-
*
|
|
109
|
-
* call, or one that `covers` it. A drift or apply expectation reads the report a finished run
|
|
111
|
+
* operation `was denied` when the policy's decision on some call to it is `deny` (for the `reason`
|
|
112
|
+
* expected, when there is one), and `was held for` an approver (a group alone, as `{ group }`) when
|
|
113
|
+
* an approval for that approver holds it: one the policy asked for on its call, or one that `covers` it. A drift or apply expectation reads the report a finished run
|
|
110
114
|
* of it returned. A step named in the workflow's outline is read by the `name` its records carry
|
|
111
115
|
* (its calls made, and `waitsOf`); a record written before steps had names has none.
|
|
112
116
|
*/
|
|
@@ -119,15 +123,20 @@ export function detailOf(e, records) {
|
|
|
119
123
|
if ("decision" in e) {
|
|
120
124
|
const tries = callsTo(e.op);
|
|
121
125
|
if (e.decision === "denied") {
|
|
122
|
-
|
|
126
|
+
const denials = tries.flatMap(({ decision: d }) => (d.kind === "deny" ? [d.reason] : []));
|
|
127
|
+
if (denials.some((reason) => e.reason === undefined || reason === e.reason))
|
|
123
128
|
return undefined;
|
|
129
|
+
if (denials.length) {
|
|
130
|
+
const said = [...new Set(denials)].map((reason) => JSON.stringify(reason)).join(" and ");
|
|
131
|
+
return `${e.op} was denied with ${said}, not ${JSON.stringify(e.reason)}`;
|
|
132
|
+
}
|
|
124
133
|
return tries.length ? `${e.op} was ${decisions(tries)}, not denied` : `no call to ${e.op}`;
|
|
125
134
|
}
|
|
126
135
|
const holds = records.filter(isRequest).filter((r) => r.op === e.op || r.covers.includes(e.op));
|
|
127
136
|
if (holds.some((r) => isApprover(r.approver, e.approver)))
|
|
128
137
|
return undefined;
|
|
129
138
|
return holds.length
|
|
130
|
-
? `${e.op} was held for ${[...new Set(holds.map((r) => approverLabel(r.approver)))].join(" and ")}, not ${e.approver}`
|
|
139
|
+
? `${e.op} was held for ${[...new Set(holds.map((r) => approverLabel(r.approver)))].join(" and ")}, not ${approverLabel(e.approver)}`
|
|
131
140
|
: tries.length
|
|
132
141
|
? `${e.op} was ${decisions(tries)}, not held`
|
|
133
142
|
: `no call to ${e.op}`;
|
package/dist/expectations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expectations.js","sourceRoot":"","sources":["../src/expectations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAO9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAW5C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAe,EAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AACnF,MAAM,SAAS,GAAG,CAAC,CAAe,EAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC;AAErF,4FAA4F;AAC5F,MAAM,UAAU,QAAQ,CAAC,MAAe,EAAE,QAAiB;IACzD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjF,OAAO,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACzF,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAE,MAAkC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzG,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,GAAG,CAAC,OAAgC,EAAE,IAAY,EAAE,EAAE,CACjE,OAAO,CAAC,MAAM,CACZ,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC;IACjG,CAAC,CAAC,IAAI,KAAK,IAAI,CAClB,CAAC;AAEJ;;;GAGG;AACH,SAAS,OAAO,CAAC,IAAY,EAAE,KAAmB;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7G,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,kCAAkC;AAClC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAEnF,8GAA8G;AAC9G,SAAS,WAAW,CAAC,CAA6C,EAAE,OAAgC;IAClG,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC;IAChC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5G,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACtG,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,CAAC,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,oBAAoB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/G,OAAO,OAAO,CACZ,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,wBAAwB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAC3G,KAAK,CACN,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,MAAM,GAAG,CAAC,IAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE3F,6EAA6E;AAC7E,MAAM,KAAK,GAAG,CAAC,CAAmB,EAAE,EAAE,CACpC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AAE1G,iGAAiG;AACjG,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAE3G
|
|
1
|
+
{"version":3,"file":"expectations.js","sourceRoot":"","sources":["../src/expectations.ts"],"names":[],"mappings":"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"}
|
package/dist/fill.d.ts
CHANGED
|
@@ -5,5 +5,9 @@ export declare const seedFrom: (name: string) => void;
|
|
|
5
5
|
export declare function fill(schema: z.ZodType, given: Record<string, unknown>): unknown;
|
|
6
6
|
/** An object schema's fields by name; none for any other schema. */
|
|
7
7
|
export declare const shapeOf: (schema: z.ZodType) => Record<string, z.ZodType>;
|
|
8
|
+
/** The schema of a field an object schema does not name, when it takes such fields (`z.looseObject`, `.catchall`). */
|
|
9
|
+
export declare function restOf(schema: z.ZodType): z.ZodType | undefined;
|
|
10
|
+
/** The object schema under `schema`'s optional, nullable and default wrappers, if it is one. */
|
|
11
|
+
export declare function objectUnder(schema: z.ZodType): z.ZodObject | undefined;
|
|
8
12
|
/** A mistake in code (ours, or a fake's), not in what it was given: thrown as it is, never reported as data. */
|
|
9
13
|
export declare const isBug: (err: unknown) => err is RangeError | ReferenceError | TypeError;
|
package/dist/fill.js
CHANGED
|
@@ -12,6 +12,19 @@ export function fill(schema, given) {
|
|
|
12
12
|
}
|
|
13
13
|
/** An object schema's fields by name; none for any other schema. */
|
|
14
14
|
export const shapeOf = (schema) => schema instanceof z.ZodObject ? schema.shape : {};
|
|
15
|
+
/** The schema of a field an object schema does not name, when it takes such fields (`z.looseObject`, `.catchall`). */
|
|
16
|
+
export function restOf(schema) {
|
|
17
|
+
const rest = schema instanceof z.ZodObject ? schema.def.catchall : undefined;
|
|
18
|
+
return rest instanceof z.ZodNever ? undefined : rest;
|
|
19
|
+
}
|
|
20
|
+
/** The object schema under `schema`'s optional, nullable and default wrappers, if it is one. */
|
|
21
|
+
export function objectUnder(schema) {
|
|
22
|
+
let inner = schema;
|
|
23
|
+
while (inner instanceof z.ZodOptional || inner instanceof z.ZodNullable || inner instanceof z.ZodDefault) {
|
|
24
|
+
inner = inner.unwrap();
|
|
25
|
+
}
|
|
26
|
+
return inner instanceof z.ZodObject ? inner : undefined;
|
|
27
|
+
}
|
|
15
28
|
/** A mistake in code (ours, or a fake's), not in what it was given: thrown as it is, never reported as data. */
|
|
16
29
|
export const isBug = (err) => err instanceof TypeError || err instanceof RangeError || err instanceof ReferenceError;
|
|
17
30
|
//# sourceMappingURL=fill.js.map
|
package/dist/fill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill.js","sourceRoot":"","sources":["../src/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+DAA+D;AAE/D,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEhB,oFAAoF;AACpF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3G,8FAA8F;AAC9F,MAAM,UAAU,IAAI,CAAC,MAAiB,EAAE,KAA8B;IACpE,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,GAAI,IAAI,CAAC,MAAM,CAAY,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAiB,EAA6B,EAAE,CACtE,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAEpD,gHAAgH;AAChH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAY,EAAE,EAAE,CACpC,GAAG,YAAY,SAAS,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,YAAY,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"fill.js","sourceRoot":"","sources":["../src/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+DAA+D;AAE/D,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEhB,oFAAoF;AACpF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3G,8FAA8F;AAC9F,MAAM,UAAU,IAAI,CAAC,MAAiB,EAAE,KAA8B;IACpE,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,GAAI,IAAI,CAAC,MAAM,CAAY,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAiB,EAA6B,EAAE,CACtE,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAEpD,sHAAsH;AACtH,MAAM,UAAU,MAAM,CAAC,MAAiB;IACtC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,MAAM,CAAC,GAAG,CAAC,QAAkC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,OAAO,IAAI,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,MAAiB;IAC3C,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,OAAO,KAAK,YAAY,CAAC,CAAC,WAAW,IAAI,KAAK,YAAY,CAAC,CAAC,WAAW,IAAI,KAAK,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACzG,KAAK,GAAG,KAAK,CAAC,MAAM,EAAe,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,gHAAgH;AAChH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAY,EAAE,EAAE,CACpC,GAAG,YAAY,SAAS,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,YAAY,cAAc,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,12 +2,16 @@ export { type CallContext, type Connector, type ConnectorSetup, type ConnectorVe
|
|
|
2
2
|
export { defineWorkflow, Principal, type ApprovalRequest, type ApprovalResult, type ApprovalState, type Approver, type Builtin, type Ctx, type SleepRequest, type StepOptions, type Use, type WorkflowDefinition, } from "./define.ts";
|
|
3
3
|
export { compareDeclared, type Declared, type Declaring, defineResource, diffDeclared, type FieldReference, type PlanAction, type References, type Resource, type ResourceFields, type ResourceOps, type ResourceSpec, withoutWriteOnly, } from "./resource.ts";
|
|
4
4
|
export { defineConfig, resolveConfig, resolveDatabaseUrl, type ResolvedConfig, type SanomaConfig } from "./config.ts";
|
|
5
|
+
export { isCollection } from "./collection.ts";
|
|
5
6
|
export { type CredentialStatus, credentialsOf } from "./env.ts";
|
|
6
7
|
export { APPLY_WORKFLOW, ApplyInput, type ApplyPlan, type ApplyReport, type ApplyResult, type PlanAnswer, type PlanStep, } from "./apply.ts";
|
|
8
|
+
export { CALL_WORKFLOW, CallInput } from "./call-workflow.ts";
|
|
9
|
+
export { isDirect } from "./direct.ts";
|
|
7
10
|
export { DRIFT_WORKFLOW, type DriftDeclared, type DriftField, type DriftReport, type DriftResult, type DriftStatus, } from "./drift.ts";
|
|
8
11
|
export type { DeclaredResource, ResourceProblem } from "./resources.ts";
|
|
9
|
-
export { allow, allowAll, approve, approvedFor, type Decision,
|
|
10
|
-
export {
|
|
12
|
+
export { allow, allowAll, approve, approvedFor, type Decision, deny, type Policy, type PolicyCall, type PolicyOp, policyOpOf, type PreviewAnswer, type PreviewRequest, type RecordedDecision, } from "./policy.ts";
|
|
13
|
+
export { cedarPolicy, type CedarPolicySource, loadPolicies, POLICIES_DIR, type PolicyProblem, readPolicyFiles, validatePolicies, } from "./cedar.ts";
|
|
14
|
+
export { ApprovalPendingError, errorCode, type ErrorCode, type ErrorInfo, type InputIssue, invalidInput, NotAdmittedError, PolicyDeniedError, RejectedError, SanomaError, } from "./errors.ts";
|
|
11
15
|
export { jsonlLedger, memoryLedger, postgresLedger, type LedgerBody, type LedgerGroup, type LedgerRecord, type LedgerStore, } from "./ledger.ts";
|
|
12
16
|
export { ApprovalMessage, APPROVALS_EVENT, decisionEventOf } from "./approvals.ts";
|
|
13
17
|
export { RUNTIME_VERSION } from "./version.ts";
|
|
@@ -16,8 +20,8 @@ export { startWorker, type Worker, type WorkerOptions } from "./worker.ts";
|
|
|
16
20
|
export { generateSecret, isSecret, memorySecrets, type Resolved, resolveSecrets, type Secret, type Secrets, } from "./secret.ts";
|
|
17
21
|
export { resolveRevision, SOURCE_RESOLVE, type Source } from "./source.ts";
|
|
18
22
|
export type { HostCapabilities, HostLifetime, HostOutputs, HostSpec } from "./host.ts";
|
|
19
|
-
export { SanomaClient, type RunsFilter, type RunSummary, type StartOptions, type StoredSecret } from "./client.ts";
|
|
23
|
+
export { type CallOptions, SanomaClient, type RunsFilter, type RunSummary, type StartOptions, type StoredSecret, } from "./client.ts";
|
|
20
24
|
export { dbosClient } from "./db.ts";
|
|
21
|
-
export { approverLabel, credentialReady, DEFAULT_SLEEP_NAME, ENDED_STATUSES, errorMessage, isEnded, isLoopback, mayDecide, problemAt, problemLine, RUN_STATUSES, type RunStatus, } from "./shared.ts";
|
|
25
|
+
export { AGENTS, approverLabel, approverOf, declaresPeople, type PeopleResource, personOf, principalOf, RUNTIME_AGENTS, credentialReady, DEFAULT_SLEEP_NAME, ENDED_STATUSES, errorMessage, isEnded, isLoopback, mayDecide, problemAt, problemLine, RUN_STATUSES, type RunStatus, } from "./shared.ts";
|
|
22
26
|
export { defineDriver, type DriverImpl, type OpIdOf } from "./op.ts";
|
|
23
27
|
export { defineSteps, type Expect, type RunView, type Seed, type Steps } from "./steps.ts";
|
package/dist/index.js
CHANGED
|
@@ -2,11 +2,17 @@ export { defineConnector, DriverError, isOp, retryableStatus, withSetup, } from
|
|
|
2
2
|
export { defineWorkflow, Principal, } from "./define.js";
|
|
3
3
|
export { compareDeclared, defineResource, diffDeclared, withoutWriteOnly, } from "./resource.js";
|
|
4
4
|
export { defineConfig, resolveConfig, resolveDatabaseUrl } from "./config.js";
|
|
5
|
+
// `sanoma` itself (the people types' constructors) is at `@sanoma-ai/workflows/resources`, for data files.
|
|
6
|
+
// `collection()` itself is at `@sanoma-ai/workflows/data`, for `resources/data.ts`; this tells one apart, as the launcher does.
|
|
7
|
+
export { isCollection } from "./collection.js";
|
|
5
8
|
export { credentialsOf } from "./env.js";
|
|
6
9
|
export { APPLY_WORKFLOW, ApplyInput, } from "./apply.js";
|
|
10
|
+
export { CALL_WORKFLOW, CallInput } from "./call-workflow.js";
|
|
11
|
+
export { isDirect } from "./direct.js";
|
|
7
12
|
export { DRIFT_WORKFLOW, } from "./drift.js";
|
|
8
|
-
export { allow, allowAll, approve, approvedFor,
|
|
9
|
-
export {
|
|
13
|
+
export { allow, allowAll, approve, approvedFor, deny, policyOpOf, } from "./policy.js";
|
|
14
|
+
export { cedarPolicy, loadPolicies, POLICIES_DIR, readPolicyFiles, validatePolicies, } from "./cedar.js";
|
|
15
|
+
export { ApprovalPendingError, errorCode, invalidInput, NotAdmittedError, PolicyDeniedError, RejectedError, SanomaError, } from "./errors.js";
|
|
10
16
|
export { jsonlLedger, memoryLedger, postgresLedger, } from "./ledger.js";
|
|
11
17
|
export { ApprovalMessage, APPROVALS_EVENT, decisionEventOf } from "./approvals.js";
|
|
12
18
|
export { RUNTIME_VERSION } from "./version.js";
|
|
@@ -14,11 +20,11 @@ export { startWorker } from "./worker.js";
|
|
|
14
20
|
// `secret` itself is at `@sanoma-ai/workflows/resources`, for data files; this is the drivers' side.
|
|
15
21
|
export { generateSecret, isSecret, memorySecrets, resolveSecrets, } from "./secret.js";
|
|
16
22
|
export { resolveRevision, SOURCE_RESOLVE } from "./source.js";
|
|
17
|
-
export { SanomaClient } from "./client.js";
|
|
23
|
+
export { SanomaClient, } from "./client.js";
|
|
18
24
|
// A raw DBOS client on the runtime's database, for tests and tools that read DBOS directly.
|
|
19
25
|
export { dbosClient } from "./db.js";
|
|
20
26
|
// Also at `@sanoma-ai/workflows/shared`, which a browser bundle can import.
|
|
21
|
-
export { approverLabel, credentialReady, DEFAULT_SLEEP_NAME, ENDED_STATUSES, errorMessage, isEnded, isLoopback, mayDecide, problemAt, problemLine, RUN_STATUSES, } from "./shared.js";
|
|
27
|
+
export { AGENTS, approverLabel, approverOf, declaresPeople, personOf, principalOf, RUNTIME_AGENTS, credentialReady, DEFAULT_SLEEP_NAME, ENDED_STATUSES, errorMessage, isEnded, isLoopback, mayDecide, problemAt, problemLine, RUN_STATUSES, } from "./shared.js";
|
|
22
28
|
// describeConfig, with the outline and every problem lintWorkflow finds, lives at
|
|
23
29
|
// `@sanoma-ai/workflows/describe`: what a UI renders from, apart from what runs. The worker reads
|
|
24
30
|
// each workflow's outline too, to hold its runs to it.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,eAAe,EACf,WAAW,EAEX,IAAI,EAIJ,eAAe,EAEf,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,SAAS,GAWV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EAGf,cAAc,EACd,YAAY,EAQZ,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAA0C,MAAM,aAAa,CAAC;AACtH,OAAO,EAAyB,aAAa,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EACL,cAAc,EACd,UAAU,GAMX,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,GAMf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EAEX,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,eAAe,EACf,WAAW,EAEX,IAAI,EAIJ,eAAe,EAEf,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,SAAS,GAWV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EAGf,cAAc,EACd,YAAY,EAQZ,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAA0C,MAAM,aAAa,CAAC;AACtH,2GAA2G;AAC3G,gIAAgI;AAChI,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAyB,aAAa,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EACL,cAAc,EACd,UAAU,GAMX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,cAAc,GAMf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EAEX,IAAI,EAIJ,UAAU,GAIX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,SAAS,EAIT,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GAKf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAmC,MAAM,aAAa,CAAC;AAC3E,qGAAqG;AACrG,OAAO,EACL,cAAc,EACd,QAAQ,EACR,aAAa,EAEb,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAe,MAAM,aAAa,CAAC;AAE3E,OAAO,EAEL,YAAY,GAKb,MAAM,aAAa,CAAC;AACrB,4FAA4F;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,4EAA4E;AAC5E,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,cAAc,EAEd,QAAQ,EACR,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,YAAY,GAEb,MAAM,aAAa,CAAC;AACrB,kFAAkF;AAClF,kGAAkG;AAClG,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAgC,MAAM,SAAS,CAAC;AACrE,6FAA6F;AAC7F,OAAO,EAAE,WAAW,EAAoD,MAAM,YAAY,CAAC;AAC3F,8EAA8E"}
|
package/dist/ledger.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
import { type Db } from "./db.ts";
|
|
2
3
|
import type { Approver, Principal } from "./define.ts";
|
|
3
4
|
import { type ErrorInfo } from "./errors.ts";
|
|
4
5
|
import type { Effect } from "./op.ts";
|
|
@@ -72,6 +73,8 @@ export type LedgerRecord = {
|
|
|
72
73
|
op?: string;
|
|
73
74
|
/** The held call's `seq`, which its `op.called` record has, for a policy request. */
|
|
74
75
|
opSeq?: number;
|
|
76
|
+
/** The policies that held the call, by id, for a policy request whose policy names them. */
|
|
77
|
+
reasons?: string[];
|
|
75
78
|
}
|
|
76
79
|
/** A message the approval ignored: from someone other than the approver, or not a decision. */
|
|
77
80
|
| {
|
|
@@ -85,10 +88,12 @@ export type LedgerRecord = {
|
|
|
85
88
|
decision: "approve" | "reject";
|
|
86
89
|
by: string;
|
|
87
90
|
note?: string;
|
|
91
|
+
/** Set when `by` started the run: nobody else could decide (`mayDecide`). */
|
|
92
|
+
alone?: true;
|
|
88
93
|
}
|
|
89
94
|
/**
|
|
90
95
|
* A `ctx.sleep` began; `until` is when it ends, in ms since the epoch: the time asked for, or
|
|
91
|
-
* for a duration the
|
|
96
|
+
* for a duration the record's `at` plus the duration, as the runtime saw it. Written
|
|
92
97
|
* for a time already past too, which waits not at all.
|
|
93
98
|
*/
|
|
94
99
|
| {
|
|
@@ -195,6 +200,12 @@ export declare function jsonlLedger(dir: string): LedgerStore;
|
|
|
195
200
|
export declare function postgresLedger(databaseUrl: string): LedgerStore & {
|
|
196
201
|
close(): Promise<void>;
|
|
197
202
|
};
|
|
203
|
+
/**
|
|
204
|
+
* Stores the record in the Postgres ledger's table through `db`, unless one with its id is
|
|
205
|
+
* stored: true when this one was. What `postgresLedger` appends with, and a direct write
|
|
206
|
+
* (`SanomaClient.call`) inside the transaction that saves its record.
|
|
207
|
+
*/
|
|
208
|
+
export declare function insertRecord(db: Db, record: LedgerRecord): Promise<boolean>;
|
|
198
209
|
/** Keeps records in memory, for tests. */
|
|
199
210
|
export declare function memoryLedger(): LedgerStore;
|
|
200
211
|
type Common = "v" | "app" | "id" | "runId" | "seq" | "at" | "actor" | "workflow" | "group";
|