@sanoma-ai/workflows 0.2.0 → 0.4.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.
- package/README.md +121 -62
- 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 +10 -4
- 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/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.js +1 -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 +93 -20
- 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 +5 -16
- 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 +11 -9
- 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/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 +1 -1
- 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 +128 -33
- 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/config.js
CHANGED
|
@@ -4,12 +4,17 @@ import { pathToFileURL } from "node:url";
|
|
|
4
4
|
import { DBOS } from "@dbos-inc/dbos-sdk";
|
|
5
5
|
import { applyWorkflow } from "./apply.js";
|
|
6
6
|
import { applySteps } from "./apply-steps.js";
|
|
7
|
+
import { callWorkflow } from "./call-workflow.js";
|
|
8
|
+
import { collectionsConnector, collectionsDriver, collectionsFake, isCollection, } from "./collection.js";
|
|
9
|
+
import { lazyPool } from "./db.js";
|
|
7
10
|
import { callerFile } from "./define.js";
|
|
8
11
|
import { DRIFT_WORKFLOW, driftWorkflow } from "./drift.js";
|
|
9
12
|
import { statusesOf, unconfigured } from "./env.js";
|
|
13
|
+
import { peopleConnector } from "./person.js";
|
|
10
14
|
import { DriverError, isOp, checkConnector, setupOf, VENDOR, } from "./op.js";
|
|
15
|
+
import { policyAt } from "./cedar.js";
|
|
11
16
|
import { isChangeOp, resourceTypesOf, withoutWriteOnly } from "./resource.js";
|
|
12
|
-
import { APPLY_WORKFLOW, BUILT_IN_WORKFLOWS } from "./shared.js";
|
|
17
|
+
import { APPLY_WORKFLOW, BUILT_IN_WORKFLOWS, CALL_WORKFLOW, DATA_VENDOR } from "./shared.js";
|
|
13
18
|
import { sourceDriver, sourceOps } from "./source.js";
|
|
14
19
|
import { computeVersion } from "./version.js";
|
|
15
20
|
export const DEFAULT_DATABASE_URL = "postgresql://postgres:dbos@localhost:5433/sanoma";
|
|
@@ -43,12 +48,13 @@ export function rootOf(config) {
|
|
|
43
48
|
}
|
|
44
49
|
/**
|
|
45
50
|
* Checks a config and derives what the runtime needs from it: the drivers and fakes from the
|
|
46
|
-
* connectors' setups (`withSetup`),
|
|
47
|
-
*
|
|
48
|
-
* `
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* `
|
|
51
|
+
* connectors' setups (`withSetup`), the collections' operations, driver and fake, and from
|
|
52
|
+
* `root`, the app's name (`package.json`), the scenarios (`scenarios/`) and the policy
|
|
53
|
+
* (`policies/`, `policyAt`). Throws what
|
|
54
|
+
* `startWorker` would refuse, with the same message, so `describeConfig`, `SanomaClient.connect`
|
|
55
|
+
* and the app fail the same way the worker does. It opens nothing and reads no file outside
|
|
56
|
+
* `root`. Each entry point resolves once: the worker and the client when they start, the app at
|
|
57
|
+
* `startApp`, the `sanoma` bin when it loads the config.
|
|
52
58
|
*/
|
|
53
59
|
export function resolveConfig(config) {
|
|
54
60
|
if (!Array.isArray(config.connectors)) {
|
|
@@ -59,12 +65,14 @@ export function resolveConfig(config) {
|
|
|
59
65
|
if (!Array.isArray(config.workflows)) {
|
|
60
66
|
throw new Error("The config needs `workflows`: an array of defineWorkflow definitions");
|
|
61
67
|
}
|
|
62
|
-
if (typeof config.policy !== "function") {
|
|
63
|
-
throw new Error("The config needs a `policy`; use `allowAll` to allow every operation call");
|
|
64
|
-
}
|
|
65
68
|
// An untyped config naming fake drivers would otherwise run live. Delete once sanoma-ops has migrated.
|
|
66
69
|
if (config.drivers !== undefined || config.fakes !== undefined)
|
|
67
70
|
throw new Error("The config's `drivers` and `fakes` are gone: each connector carries its driver and its fake; leave them out");
|
|
71
|
+
// An untyped config naming its policy would otherwise run allowing everything. Delete once sanoma-ops has migrated.
|
|
72
|
+
if (config.policy !== undefined) {
|
|
73
|
+
throw new Error("The config's `policy` is gone: the policy is policies/*.cedar in the root; leave it out");
|
|
74
|
+
}
|
|
75
|
+
const collections = collectionsOf(config);
|
|
68
76
|
const ledger = ledgerOf(config);
|
|
69
77
|
const root = rootOf(config);
|
|
70
78
|
const appName = appNameAt(root);
|
|
@@ -72,10 +80,24 @@ export function resolveConfig(config) {
|
|
|
72
80
|
const types = resourceTypesOf(config.connectors);
|
|
73
81
|
// Built-in: `sanoma.source.resolve`, which apply and drift call for a host's revision.
|
|
74
82
|
const hosts = [...types.values()].some((type) => type.host);
|
|
75
|
-
|
|
83
|
+
// Built-in: the collections' operations, `data.<name>.<op>`, on the config's database.
|
|
84
|
+
const databaseUrl = resolveDatabaseUrl(config);
|
|
85
|
+
const declared = [...collections.values()];
|
|
86
|
+
const dataStore = declared.length ? lazyPool(databaseUrl, "data") : undefined;
|
|
87
|
+
const ops = indexConnectors([
|
|
88
|
+
...config.connectors,
|
|
89
|
+
...(hosts ? [sourceOps] : []),
|
|
90
|
+
...(dataStore ? [collectionsConnector(declared)] : []),
|
|
91
|
+
]);
|
|
76
92
|
const driversByVendor = new Map([...makersOf(config.connectors, "driver")].map(([vendor, make]) => [vendor, make()]));
|
|
77
|
-
const drivers = indexDrivers([
|
|
93
|
+
const drivers = indexDrivers([
|
|
94
|
+
...driversByVendor.values(),
|
|
95
|
+
...(hosts ? [sourceDriver] : []),
|
|
96
|
+
...(dataStore ? [collectionsDriver(declared, dataStore)] : []),
|
|
97
|
+
], ops);
|
|
78
98
|
const fakes = makersOf(config.connectors, "fake");
|
|
99
|
+
if (dataStore)
|
|
100
|
+
fakes.set(DATA_VENDOR, () => collectionsFake(declared));
|
|
79
101
|
const names = new Map();
|
|
80
102
|
for (const wf of config.workflows) {
|
|
81
103
|
if (BUILT_IN_WORKFLOWS.has(wf.name)) {
|
|
@@ -90,13 +112,21 @@ export function resolveConfig(config) {
|
|
|
90
112
|
}
|
|
91
113
|
// Built-in: checking the resources the data files declare against their vendors, and applying them.
|
|
92
114
|
if (types.size) {
|
|
93
|
-
const
|
|
115
|
+
const connectors = connectorsOf(config);
|
|
116
|
+
// The types the data files may declare: the vendors' and the people's, whose resources are left out.
|
|
117
|
+
const declarable = resourceTypesOf(connectors);
|
|
118
|
+
const read = () => readDeclared(root, connectors, declarable, types);
|
|
94
119
|
names.set(DRIFT_WORKFLOW, driftWorkflow(types, ops, drivers, () => DBOS.runStep(read, { name: "drift:data-files" })));
|
|
95
120
|
names.set(APPLY_WORKFLOW, applyWorkflow(types, ops, drivers, applySteps(appName, root, read)));
|
|
96
121
|
}
|
|
122
|
+
// Built-in: a direct call the policy holds for an approval, made a run, when any operation may be called directly.
|
|
123
|
+
const call = callWorkflow(ops, drivers, types);
|
|
124
|
+
if (call.uses.length)
|
|
125
|
+
names.set(CALL_WORKFLOW, call);
|
|
126
|
+
const { policy, problems: policyProblems } = policyAt(root, { ops, workflows: names, collections });
|
|
97
127
|
return {
|
|
98
128
|
appName,
|
|
99
|
-
databaseUrl
|
|
129
|
+
databaseUrl,
|
|
100
130
|
// The built-in's code and operations are part of the app's version, like the config's own.
|
|
101
131
|
version: computeVersion({ appName, workflows: [...names.values()] }),
|
|
102
132
|
queueName: `sanoma:${appName}`,
|
|
@@ -107,12 +137,43 @@ export function resolveConfig(config) {
|
|
|
107
137
|
...(scenarios && { scenarios }),
|
|
108
138
|
types,
|
|
109
139
|
steps: [...new Set([...config.connectors.flatMap((c) => setupOf(c).steps ?? []), ...(config.steps ?? [])])],
|
|
140
|
+
collections,
|
|
141
|
+
...(dataStore && { dataStore }),
|
|
110
142
|
workflows: names,
|
|
111
|
-
policy
|
|
143
|
+
policy,
|
|
144
|
+
policyProblems,
|
|
112
145
|
...(ledger !== undefined && { ledger }),
|
|
113
146
|
...(root !== undefined && { root }),
|
|
114
147
|
};
|
|
115
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* The config's collections by name, checked: each one `collection()` made, no two with one name,
|
|
151
|
+
* and no connector of their vendor, `DATA_VENDOR`.
|
|
152
|
+
*/
|
|
153
|
+
function collectionsOf(config) {
|
|
154
|
+
const list = config.collections ?? [];
|
|
155
|
+
if (!Array.isArray(list)) {
|
|
156
|
+
throw new Error("The config's `collections` must be an array of the collections `collection()` declares");
|
|
157
|
+
}
|
|
158
|
+
if (config.connectors.some((c) => c[VENDOR].id === DATA_VENDOR)) {
|
|
159
|
+
throw new Error(`A connector in \`connectors\` is of the vendor "${DATA_VENDOR}", which the collections' operations are of; name it otherwise`);
|
|
160
|
+
}
|
|
161
|
+
const collections = new Map();
|
|
162
|
+
for (const c of list) {
|
|
163
|
+
if (!isCollection(c))
|
|
164
|
+
throw new Error("`collections` holds something `collection()` did not make");
|
|
165
|
+
const other = collections.get(c.name);
|
|
166
|
+
if (other && other !== c)
|
|
167
|
+
throw new Error(`Two collections are named "${c.name}"; name each once`);
|
|
168
|
+
collections.set(c.name, c);
|
|
169
|
+
}
|
|
170
|
+
return collections;
|
|
171
|
+
}
|
|
172
|
+
/** The config's connectors and the runtime's people types' (`peopleConnector`): what its data files are read against. */
|
|
173
|
+
export const connectorsOf = (config) => [
|
|
174
|
+
...config.connectors,
|
|
175
|
+
peopleConnector,
|
|
176
|
+
];
|
|
116
177
|
/**
|
|
117
178
|
* What the connectors' setups attach under `key` (`withSetup`), by vendor id in `connectors`
|
|
118
179
|
* order. One vendor's connectors may name one maker, as copies of one connector do, never two.
|
|
@@ -164,12 +225,15 @@ function scenariosAt(root) {
|
|
|
164
225
|
* names one, and stays), which a run never compares and never records, the bindings, the orphans
|
|
165
226
|
* and the problems.
|
|
166
227
|
*/
|
|
167
|
-
async function readDeclared(root, connectors, types) {
|
|
228
|
+
async function readDeclared(root, connectors, declarable, types) {
|
|
168
229
|
// Loaded when a run reads the files, not with the worker: the reader parses with oxc-parser.
|
|
169
230
|
const { readDataFiles } = await import("./resources.js");
|
|
170
|
-
const { resources, bindings, orphans, problems } = readDataFiles(root, connectors,
|
|
231
|
+
const { resources, bindings, orphans, problems } = readDataFiles(root, connectors, declarable);
|
|
171
232
|
return {
|
|
172
|
-
|
|
233
|
+
// Only `types`' resources have a vendor object to check or apply: not the people's (vendorless).
|
|
234
|
+
resources: resources
|
|
235
|
+
.filter((r) => types.has(`${r.vendor}.${r.type}`))
|
|
236
|
+
.map(({ id, vendor, type, name, identity, binding, desired, refs }) => ({
|
|
173
237
|
id,
|
|
174
238
|
vendor,
|
|
175
239
|
type,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAsB,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAEL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAiB,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,UAAU,EAAqC,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAIL,WAAW,EAGX,IAAI,EAEJ,cAAc,EACd,OAAO,EACP,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAiB,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAsH9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,kDAAkD,CAAC;AAEvF,+GAA+G;AAC/G,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAgC,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG;IACvG,OAAO,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC,mBAAmB,IAAI,oBAAoB,CAAC;AAC/E,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,CAAU,EAAoB,EAAE,CAC/C,OAAQ,CAAwB,EAAE,MAAM,KAAK,UAAU,IAAI,OAAQ,CAAiB,CAAC,IAAI,KAAK,UAAU,CAAC;AAE3G,yDAAyD;AACzD,SAAS,QAAQ,CAAC,MAAoB;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,4GAA4G;YAC1G,2GAA2G,CAC9G,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,MAA2C;IAChE,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS;QAC9B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACtB,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;YACzB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,CAAC,CAAC,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;IACrH,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAuB;QAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IAClF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,uGAAuG;IACvG,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAC5D,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;IACJ,oHAAoH;IACpH,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjD,uFAAuF;IACvF,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,uFAAuF;IACvF,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,GAAG,GAAG,eAAe,CAAC;QAC1B,GAAG,MAAM,CAAC,UAAU;QACpB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtH,MAAM,OAAO,GAAG,YAAY,CAC1B;QACE,GAAG,eAAe,CAAC,MAAM,EAAE;QAC3B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,EACD,GAAG,CACJ,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,SAAS;QAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwC,CAAC;IAC9D,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC,IAAI,uDAAuD,CAAC,CAAC;QAC1G,CAAC;QACD,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,iDAAiD,EAAE,CAAC,IAAI,8CAA8C,CACvG,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,oGAAoG;IACpG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACxC,qGAAqG;QACrG,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACrE,KAAK,CAAC,GAAG,CACP,cAAc,EACd,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAC3F,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,mHAAmH;IACnH,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACpG,OAAO;QACL,OAAO;QACP,WAAW;QACX,2FAA2F;QAC3F,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QACpE,SAAS,EAAE,UAAU,OAAO,EAAE;QAC9B,GAAG;QACH,OAAO;QACP,eAAe;QACf,KAAK;QACL,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/B,KAAK;QACL,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3G,WAAW;QACX,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/B,SAAS,EAAE,KAAK;QAChB,MAAM;QACN,cAAc;QACd,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;KACpC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,MAAoB;IACzC,MAAM,IAAI,GAAY,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;IAC5G,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,mDAAmD,WAAW,gEAAgE,CAC/H,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACnG,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,IAAI,KAAK,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC;QACnG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,yHAAyH;AACzH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAwC,EAAyB,EAAE,CAAC;IAC/F,GAAG,MAAM,CAAC,UAAU;IACpB,eAAe;CAChB,CAAC;AAEF;;;GAGG;AACH,SAAS,QAAQ,CACf,UAA0C,EAC1C,GAAM;IAEN,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0C,CAAC;IACjE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,SAAS,MAAM,wBAAwB,CAAC,CAAC;QAC3G,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAwB;IACzC,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACzE,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7D,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qCAAsC,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,MAAM,KAAK,GAAI,QAAsC,EAAE,IAAI,CAAC;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7E,CAAC;AAED,gHAAgH;AAChH,SAAS,WAAW,CAAC,IAAwB;IAC3C,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrE,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE;QAAE,OAAO,SAAS,CAAC;IACpG,OAAO,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CACzB,IAAwB,EACxB,UAA0C,EAC1C,UAAyC,EACzC,KAAoC;IAEpC,6FAA6F;IAC7F,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACzD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC/F,OAAO;QACL,iGAAiG;QACjG,SAAS,EAAE,SAAS;aACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aACjD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACtE,EAAE;YACF,MAAM;YACN,IAAI;YACJ,IAAI;YACJ,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;YACzC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YAC1E,IAAI;SACL,CAAC,CAAC;QACL,QAAQ;QACR,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAA2B;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAc,CAAC;IAClC,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAoD,CAAC,EAAE,CAAC;YAC3F,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAE,SAAS;gBACxB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9F,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,GAAoB;IAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,gBAAgB,EAAE,iDAAiD,CAAC,CAAC;YAC1G,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,OAAO,CAAC,MAAc,EAAE,GAAc,EAAE,EAAY;IAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,YAAY,CACtB,MAAM,EACN,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAC7C,CAAC;QACF,IAAI,GAAG;YAAE,MAAM,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAChB,EAAgC,EAChC,GAAoB,EACpB,KAA2B,EAC3B,KAAoC;IAEpC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,EAAE,IAAK,EAAE,CAAC,IAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,qDAAqD,CAAC,CAAC;aACpF,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,CAAC,EAAE,4CAA4C,cAAc,qCAAqC,CACxG,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9F,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,CAAC,EAAE,6BAA6B,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI;gBACxF,2BAA2B,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CACvF,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,yDAAyD,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// `@sanoma-ai/workflows/resources`: what a data file imports from the runtime: `secret`, which
|
|
2
|
+
// names a stored secret, and `sanoma`, the constructors of its people types (`sanoma.person`, …).
|
|
3
|
+
export { secret } from "./secret.js";
|
|
4
|
+
export { sanoma } from "./person.js";
|
|
5
|
+
//# sourceMappingURL=constructors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constructors.js","sourceRoot":"","sources":["../src/constructors.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,kGAAkG;AAClG,OAAO,EAAE,MAAM,EAAe,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/data.d.ts
ADDED
package/dist/data.js
ADDED
package/dist/data.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,OAAO,EACL,UAAU,GAMX,MAAM,iBAAiB,CAAC"}
|
package/dist/datafile.d.ts
CHANGED
|
@@ -43,16 +43,38 @@ export interface DataFileExport {
|
|
|
43
43
|
start: number;
|
|
44
44
|
end: number;
|
|
45
45
|
}
|
|
46
|
+
/** An `export const name = collection({ … })` in `resources/data.ts`, its declaration one `collection()` takes. */
|
|
47
|
+
export interface DataFileCollection {
|
|
48
|
+
/** The `export const`'s name. */
|
|
49
|
+
export: string;
|
|
50
|
+
/** The collection's name. */
|
|
51
|
+
name: string;
|
|
52
|
+
/** The `export const` statement. */
|
|
53
|
+
start: number;
|
|
54
|
+
end: number;
|
|
55
|
+
}
|
|
46
56
|
export interface DataFile {
|
|
47
57
|
imports: DataFileImport[];
|
|
48
58
|
/** Each `export const` whose value is in the subset. */
|
|
49
59
|
exports: DataFileExport[];
|
|
50
|
-
/**
|
|
60
|
+
/** Each collection `resources/data.ts` declares (`COLLECTIONS_FILE`); none in any other data file. */
|
|
61
|
+
collections: DataFileCollection[];
|
|
62
|
+
/** Every name an `export const` declares as a resource, its value in the subset or not: none in `resources/data.ts`. */
|
|
51
63
|
declared: string[];
|
|
52
64
|
problems: DataFileProblem[];
|
|
53
65
|
}
|
|
54
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* Where a data file imports `secret` from, and `sanoma`, the runtime's own resource constructors
|
|
68
|
+
* (its people: `sanoma.person`, `.agent`, `.group`); checked before `CONSTRUCTORS`, which they match too.
|
|
69
|
+
*/
|
|
55
70
|
export declare const SECRET_ENTRIES: ReadonlySet<string>;
|
|
71
|
+
/** Where `resources/data.ts` imports `collection` from, and the only imports it may make. */
|
|
72
|
+
export declare const DATA_ENTRIES: ReadonlySet<string>;
|
|
73
|
+
/**
|
|
74
|
+
* The one data file that holds collections, relative to `resources/`. Workflows and the runtime
|
|
75
|
+
* import it, so it imports only `collection` from "sanoma/data" and holds nothing else.
|
|
76
|
+
*/
|
|
77
|
+
export declare const COLLECTIONS_FILE = "data.ts";
|
|
56
78
|
/**
|
|
57
79
|
* Reads a data file's program without running it: its imports, each `export const` resource
|
|
58
80
|
* with its fields evaluated, and everything outside the data-file subset as a problem that says
|
|
@@ -62,6 +84,10 @@ export declare const SECRET_ENTRIES: ReadonlySet<string>;
|
|
|
62
84
|
* `export const <name> = <vendor>.<type>({ … })`, one per statement, its argument built of
|
|
63
85
|
* strings (template literals without `${}` too), numbers, booleans, null, objects and arrays,
|
|
64
86
|
* and names of resources this file declares or imports; and `export default [a, b]`.
|
|
87
|
+
* `resources/data.ts` (`COLLECTIONS_FILE`) is the exception, the one data file workflows and the
|
|
88
|
+
* runtime import: it imports only `collection` from "sanoma/data", and each `export const` is
|
|
89
|
+
* `collection({ … })` with its values written out (`DataFile.collections`). No other data file
|
|
90
|
+
* declares a collection, and none imports one.
|
|
65
91
|
*
|
|
66
92
|
* `root` is the directory relative imports must stay in: by default the nearest `resources/`
|
|
67
93
|
* directory above `filename`, else the file's own.
|
package/dist/datafile.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { basename, dirname, join } from "node:path";
|
|
1
|
+
import { basename, dirname, join, relative } from "node:path";
|
|
2
2
|
import { inside, nearestDir, RELATIVE } from "./paths.js";
|
|
3
3
|
import { SECRET_NAME } from "./secret.js";
|
|
4
|
+
import { checkCollection, errorMessage } from "./shared.js";
|
|
4
5
|
/** A name in a data file that refers to a declared resource: one imported from a data file, or exported by this one. */
|
|
5
6
|
export class Reference {
|
|
6
7
|
name;
|
|
@@ -14,8 +15,21 @@ Object.defineProperty(Reference.prototype, REFERENCE, { value: true });
|
|
|
14
15
|
export const isReference = (value) => typeof value === "object" && value !== null && REFERENCE in value;
|
|
15
16
|
/** A connector's constructors entry: a package specifier that ends in `/resources`. */
|
|
16
17
|
const CONSTRUCTORS = /^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*\/resources$/;
|
|
17
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Where a data file imports `secret` from, and `sanoma`, the runtime's own resource constructors
|
|
20
|
+
* (its people: `sanoma.person`, `.agent`, `.group`); checked before `CONSTRUCTORS`, which they match too.
|
|
21
|
+
*/
|
|
18
22
|
export const SECRET_ENTRIES = new Set(["sanoma/resources", "@sanoma-ai/workflows/resources"]);
|
|
23
|
+
/** Where `resources/data.ts` imports `collection` from, and the only imports it may make. */
|
|
24
|
+
export const DATA_ENTRIES = new Set(["sanoma/data", "@sanoma-ai/workflows/data"]);
|
|
25
|
+
/**
|
|
26
|
+
* The one data file that holds collections, relative to `resources/`. Workflows and the runtime
|
|
27
|
+
* import it, so it imports only `collection` from "sanoma/data" and holds nothing else.
|
|
28
|
+
*/
|
|
29
|
+
export const COLLECTIONS_FILE = "data.ts";
|
|
30
|
+
const COLLECTION_CALL = '`export const <name> = collection({ name: "…", key: "…", fields: { … } })`';
|
|
31
|
+
const COLLECTIONS_ONLY = "resources/data.ts holds collections only, since workflows and the runtime import it: " +
|
|
32
|
+
`\`import { collection } from "sanoma/data"\` and ${COLLECTION_CALL}; declare a connector's resources in another data file`;
|
|
19
33
|
const SECRET_CALL = '`secret("NAME")` or `secret("NAME", { generate: true })`, NAME upper case (A-Z, 0-9 and _)';
|
|
20
34
|
const SHAPE = "a data file holds only imports, `export const <name> = <vendor>.<type>({ … })` and `export default [ … ]`";
|
|
21
35
|
const IMPORTS = "import resource constructors from a connector's resources entry " +
|
|
@@ -31,6 +45,10 @@ const VALUES = "write a string, number, boolean, null, object or array, or name
|
|
|
31
45
|
* `export const <name> = <vendor>.<type>({ … })`, one per statement, its argument built of
|
|
32
46
|
* strings (template literals without `${}` too), numbers, booleans, null, objects and arrays,
|
|
33
47
|
* and names of resources this file declares or imports; and `export default [a, b]`.
|
|
48
|
+
* `resources/data.ts` (`COLLECTIONS_FILE`) is the exception, the one data file workflows and the
|
|
49
|
+
* runtime import: it imports only `collection` from "sanoma/data", and each `export const` is
|
|
50
|
+
* `collection({ … })` with its values written out (`DataFile.collections`). No other data file
|
|
51
|
+
* declares a collection, and none imports one.
|
|
34
52
|
*
|
|
35
53
|
* `root` is the directory relative imports must stay in: by default the nearest `resources/`
|
|
36
54
|
* directory above `filename`, else the file's own.
|
|
@@ -40,10 +58,15 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
40
58
|
const fail = (node, message) => problems.push({ start: node.start, end: node.end, message });
|
|
41
59
|
const imports = [];
|
|
42
60
|
const exports = [];
|
|
61
|
+
const collections = [];
|
|
62
|
+
const collectionsFile = relative(root, filename) === COLLECTIONS_FILE;
|
|
63
|
+
// What the file may hold, for the problems that say so.
|
|
64
|
+
const shape = collectionsFile ? COLLECTIONS_ONLY : SHAPE;
|
|
43
65
|
// Names a refused import or declaration binds: reported once, where they are bound.
|
|
44
66
|
const refused = new Set();
|
|
45
|
-
// The local names of `secret`.
|
|
67
|
+
// The local names of `secret`, and of `collection`.
|
|
46
68
|
const secrets = new Set();
|
|
69
|
+
const collectionCalls = new Set();
|
|
47
70
|
// Imports and top-level names first, each once: imports are hoisted, and a reference may name
|
|
48
71
|
// a resource declared further down. An unexported const is refused where it is declared, not
|
|
49
72
|
// again where it is used.
|
|
@@ -82,17 +105,17 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
82
105
|
readDefault(s);
|
|
83
106
|
break;
|
|
84
107
|
case "ExportAllDeclaration":
|
|
85
|
-
fail(s, `export * is not allowed in a data file: ${
|
|
108
|
+
fail(s, `export * is not allowed in a data file: ${shape}`);
|
|
86
109
|
break;
|
|
87
110
|
case "VariableDeclaration": {
|
|
88
111
|
const name = s.declarations[0]?.id?.name;
|
|
89
112
|
fail(s, name === undefined
|
|
90
|
-
? `an unexported declaration is not allowed in a data file: ${
|
|
91
|
-
: `\`${s.kind} ${name}\` is not allowed in a data file: export it as a resource, \`export const ${name} = <vendor>.<type>({ … })
|
|
113
|
+
? `an unexported declaration is not allowed in a data file: ${shape}`
|
|
114
|
+
: `\`${s.kind} ${name}\` is not allowed in a data file: export it as ${collectionsFile ? `a collection, \`export const ${name} = collection({ … })\`` : `a resource, \`export const ${name} = <vendor>.<type>({ … })\``}, or write its value where it is used`);
|
|
92
115
|
break;
|
|
93
116
|
}
|
|
94
117
|
default:
|
|
95
|
-
fail(s, `${describe(s)} is not allowed in a data file: ${
|
|
118
|
+
fail(s, `${describe(s)} is not allowed in a data file: ${shape}`);
|
|
96
119
|
}
|
|
97
120
|
}
|
|
98
121
|
function readImport(s) {
|
|
@@ -101,6 +124,14 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
101
124
|
fail(s, "`import type` is not allowed in a data file: it holds values only, and the constructors type them");
|
|
102
125
|
return;
|
|
103
126
|
}
|
|
127
|
+
if (collectionsFile !== DATA_ENTRIES.has(spec)) {
|
|
128
|
+
fail(s.source, collectionsFile
|
|
129
|
+
? `import "${spec}" is not allowed in resources/data.ts: ${COLLECTIONS_ONLY}`
|
|
130
|
+
: `import "${spec}" is not allowed here: collections are declared in resources/data.ts, the one data file workflows and the runtime import; move it there`);
|
|
131
|
+
for (const sp of s.specifiers)
|
|
132
|
+
refused.add(sp.local.name);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
104
135
|
const refusal = whyRefused(spec);
|
|
105
136
|
if (refusal) {
|
|
106
137
|
fail(s.source, `import "${spec}" is not allowed in a data file: ${refusal}`);
|
|
@@ -112,15 +143,27 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
112
143
|
fail(s, `import "${spec}" is not allowed in a data file: it imports nothing, and a data file runs no code`);
|
|
113
144
|
return;
|
|
114
145
|
}
|
|
115
|
-
|
|
146
|
+
// The one name each of these entries gives a data file.
|
|
147
|
+
const [only, locals] = SECRET_ENTRIES.has(spec)
|
|
148
|
+
? ["secret", secrets]
|
|
149
|
+
: DATA_ENTRIES.has(spec)
|
|
150
|
+
? ["collection", collectionCalls]
|
|
151
|
+
: [];
|
|
152
|
+
if (locals) {
|
|
116
153
|
for (const sp of s.specifiers) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
(sp.
|
|
120
|
-
|
|
154
|
+
const imported = sp.type === "ImportSpecifier" && sp.importKind !== "type" && (sp.imported.name ?? sp.imported.value);
|
|
155
|
+
if (imported === only) {
|
|
156
|
+
locals.add(sp.local.name);
|
|
157
|
+
}
|
|
158
|
+
else if (imported === "sanoma" && SECRET_ENTRIES.has(spec)) {
|
|
159
|
+
// The runtime's own constructors, matched to its connector as a connector's are.
|
|
160
|
+
imports.push({ kind: "constructors", source: spec, imported, local: sp.local.name, start: sp.start });
|
|
121
161
|
}
|
|
122
162
|
else {
|
|
123
|
-
|
|
163
|
+
const [names, allowed] = SECRET_ENTRIES.has(spec)
|
|
164
|
+
? ["`secret` and `sanoma`", `${only}, sanoma`]
|
|
165
|
+
: [`\`${only}\``, only];
|
|
166
|
+
fail(sp, `a data file imports only ${names} from "${spec}": \`import { ${allowed} } from "${spec}"\``);
|
|
124
167
|
refused.add(sp.local.name);
|
|
125
168
|
}
|
|
126
169
|
}
|
|
@@ -144,9 +187,12 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
144
187
|
/** Why an import's specifier is not allowed in a data file, or undefined when it is. */
|
|
145
188
|
function whyRefused(spec) {
|
|
146
189
|
if (!RELATIVE.test(spec))
|
|
147
|
-
return CONSTRUCTORS.test(spec) ? undefined : IMPORTS;
|
|
190
|
+
return CONSTRUCTORS.test(spec) || DATA_ENTRIES.has(spec) ? undefined : IMPORTS;
|
|
148
191
|
if (!spec.endsWith(".ts"))
|
|
149
192
|
return "name the data file with its `.ts` extension";
|
|
193
|
+
if (join(dirname(filename), spec) === join(root, COLLECTIONS_FILE)) {
|
|
194
|
+
return "resources/data.ts holds collections, which no resource names; import resources from other data files";
|
|
195
|
+
}
|
|
150
196
|
if (!inside(root, join(dirname(filename), spec))) {
|
|
151
197
|
return `it reaches outside ${basename(root)}/; import only other data files`;
|
|
152
198
|
}
|
|
@@ -161,7 +207,7 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
161
207
|
return;
|
|
162
208
|
}
|
|
163
209
|
if (decl.type !== "VariableDeclaration") {
|
|
164
|
-
fail(s, `${describe(decl)} is not allowed in a data file: ${
|
|
210
|
+
fail(s, `${describe(decl)} is not allowed in a data file: ${shape}`);
|
|
165
211
|
return;
|
|
166
212
|
}
|
|
167
213
|
if (decl.kind !== "const") {
|
|
@@ -179,10 +225,18 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
179
225
|
}
|
|
180
226
|
const name = d.id.name;
|
|
181
227
|
// A second declaration of the name was reported where it is bound.
|
|
182
|
-
if (exports.some((e) => e.name === name))
|
|
228
|
+
if (exports.some((e) => e.name === name) || collections.some((c) => c.export === name))
|
|
183
229
|
return;
|
|
184
230
|
const init = d.init;
|
|
185
231
|
const callee = init?.type === "CallExpression" ? init.callee : undefined;
|
|
232
|
+
// A name a refused import binds was reported with the import.
|
|
233
|
+
const head = callee?.type === "MemberExpression" ? callee.object : callee;
|
|
234
|
+
if (head?.type === "Identifier" && refused.has(head.name))
|
|
235
|
+
return;
|
|
236
|
+
if (collectionsFile) {
|
|
237
|
+
readCollection(s, init, name);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
186
240
|
if (callee?.type !== "MemberExpression" ||
|
|
187
241
|
callee.computed ||
|
|
188
242
|
callee.object.type !== "Identifier" ||
|
|
@@ -192,8 +246,6 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
192
246
|
}
|
|
193
247
|
const vendor = callee.object.name;
|
|
194
248
|
const type = callee.property.name;
|
|
195
|
-
if (refused.has(vendor))
|
|
196
|
-
return;
|
|
197
249
|
if (imports.find((i) => i.local === vendor)?.kind !== "constructors") {
|
|
198
250
|
fail(callee.object, `${vendor} is not a connector's resource constructors: import it from the connector's resources entry, \`import { ${vendor} } from "@sanoma-ai/connector-${vendor}/resources"\``);
|
|
199
251
|
return;
|
|
@@ -208,7 +260,47 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
208
260
|
exports.push({ name, vendor, type, desired: desired, start: s.start, end: s.end });
|
|
209
261
|
}
|
|
210
262
|
}
|
|
263
|
+
/** An `export const` in resources/data.ts: a collection, its declaration plain values `collection()` takes. */
|
|
264
|
+
function readCollection(s, init, name) {
|
|
265
|
+
if (init?.type !== "CallExpression" ||
|
|
266
|
+
init.callee.type !== "Identifier" ||
|
|
267
|
+
!collectionCalls.has(init.callee.name)) {
|
|
268
|
+
fail(init ?? s, `export const ${name} must be a collection: ${COLLECTIONS_ONLY}`);
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
const [arg] = init.arguments;
|
|
272
|
+
if (init.arguments.length !== 1 || arg.type !== "ObjectExpression") {
|
|
273
|
+
fail(init, `collection() takes one object literal: ${COLLECTION_CALL}`);
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
const declaration = value(arg);
|
|
277
|
+
if (declaration === undefined) {
|
|
278
|
+
// What value() refused it reported; the collection is still declared here, which the
|
|
279
|
+
// runtime runs, when its name is written out.
|
|
280
|
+
const named = arg.properties.find((p) => p.type === "Property" && !p.computed && keyName(p.key) === "name")?.value;
|
|
281
|
+
if (named?.type === "Literal" && typeof named.value === "string") {
|
|
282
|
+
collections.push({ export: name, name: named.value, start: s.start, end: s.end });
|
|
283
|
+
}
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
if (Object.keys(declaration).some((k) => !DECLARATION_KEYS.has(k)) || namesDeclaration(declaration)) {
|
|
287
|
+
fail(arg, `collection() takes \`{ name, key, fields, title? }\`, its values written out: ${COLLECTION_CALL}`);
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
try {
|
|
291
|
+
checkCollection(declaration);
|
|
292
|
+
}
|
|
293
|
+
catch (err) {
|
|
294
|
+
fail(arg, errorMessage(err));
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
collections.push({ export: name, name: declaration.name, start: s.start, end: s.end });
|
|
298
|
+
}
|
|
211
299
|
function readDefault(s) {
|
|
300
|
+
if (collectionsFile) {
|
|
301
|
+
fail(s, `export default is not allowed in resources/data.ts: ${COLLECTIONS_ONLY}`);
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
212
304
|
const list = s.declaration;
|
|
213
305
|
if (list.type !== "ArrayExpression") {
|
|
214
306
|
fail(list, "export default must list this file's resources: `export default [a, b]`");
|
|
@@ -287,6 +379,9 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
287
379
|
case "CallExpression":
|
|
288
380
|
if (node.callee.type === "Identifier" && secrets.has(node.callee.name))
|
|
289
381
|
return readSecret(node);
|
|
382
|
+
if (node.callee.type === "Identifier" && collectionCalls.has(node.callee.name)) {
|
|
383
|
+
return refuse(node, `a collection is declared at the top of resources/data.ts: ${COLLECTION_CALL}`);
|
|
384
|
+
}
|
|
290
385
|
if (node.callee.type === "Identifier" && node.callee.name === "secret" && !bound.has("secret")) {
|
|
291
386
|
return refuse(node, `import secret to name one: \`import { secret } from "sanoma/resources"\``);
|
|
292
387
|
}
|
|
@@ -365,8 +460,12 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
365
460
|
fail(node, message);
|
|
366
461
|
return undefined;
|
|
367
462
|
}
|
|
368
|
-
return { imports, exports, declared: [...declared], problems };
|
|
463
|
+
return { imports, exports, collections, declared: collectionsFile ? [] : [...declared], problems };
|
|
369
464
|
}
|
|
465
|
+
/** What `collection()` reads of its declaration. */
|
|
466
|
+
const DECLARATION_KEYS = new Set(["name", "key", "fields", "title"]);
|
|
467
|
+
/** True when a value names a declaration: a collection's declaration is plain values only. */
|
|
468
|
+
const namesDeclaration = (v) => v instanceof Reference || (typeof v === "object" && v !== null && Object.values(v).some(namesDeclaration));
|
|
370
469
|
/** A property's name: an identifier's, or a literal's as a string; undefined for any other key. */
|
|
371
470
|
export const keyName = (key) => key.type === "Identifier" ? key.name : key.type === "Literal" ? String(key.value) : undefined;
|
|
372
471
|
/** A node's kind, for a message: `a function declaration`, `an if statement`. */
|