@sanoma-ai/workflows 0.1.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 +186 -76
- package/dist/apply-steps.d.ts +6 -0
- package/dist/apply-steps.js +93 -0
- package/dist/apply-steps.js.map +1 -0
- package/dist/apply.d.ts +197 -0
- package/dist/apply.js +470 -0
- package/dist/apply.js.map +1 -0
- 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 +35 -2
- package/dist/call.js +123 -43
- 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 +123 -9
- package/dist/client.js +355 -34
- 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 +109 -28
- 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/credentials.d.ts +25 -0
- package/dist/credentials.js +73 -5
- package/dist/credentials.js.map +1 -1
- 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 +38 -3
- package/dist/datafile.js +166 -13
- 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 +54 -8
- package/dist/describe.js +84 -11
- 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/drift.d.ts +64 -12
- package/dist/drift.js +118 -41
- package/dist/drift.js.map +1 -1
- 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 +4 -4
- package/dist/expectations.js +43 -9
- package/dist/expectations.js.map +1 -1
- package/dist/host.d.ts +56 -0
- package/dist/host.js +45 -0
- package/dist/host.js.map +1 -0
- package/dist/index.d.ts +13 -5
- package/dist/index.js +15 -5
- 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/lockfile.d.ts +36 -0
- package/dist/lockfile.js +69 -0
- package/dist/lockfile.js.map +1 -0
- package/dist/op.d.ts +9 -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 +207 -25
- package/dist/resource.js +184 -30
- package/dist/resource.js.map +1 -1
- package/dist/resources.d.ts +76 -9
- package/dist/resources.js +170 -30
- package/dist/resources.js.map +1 -1
- package/dist/run.d.ts +31 -1
- package/dist/run.js +6 -1
- package/dist/run.js.map +1 -1
- package/dist/sandbox.js +5 -1
- package/dist/sandbox.js.map +1 -1
- package/dist/scenario.d.ts +25 -9
- package/dist/scenario.js +125 -27
- 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/secret.d.ts +42 -0
- package/dist/secret.js +58 -0
- package/dist/secret.js.map +1 -0
- package/dist/shared.d.ts +188 -4
- package/dist/shared.js +165 -5
- 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/source.d.ts +58 -0
- package/dist/source.js +54 -0
- package/dist/source.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 +6 -2
- package/dist/worker.js +37 -8
- package/dist/worker.js.map +1 -1
- package/dist/writer.d.ts +35 -0
- package/dist/writer.js +201 -0
- package/dist/writer.js.map +1 -0
- package/oxlint.json +5 -16
- package/package.json +11 -1
- package/src/apply-steps.ts +110 -0
- package/src/apply.ts +626 -0
- package/src/approvals.ts +49 -13
- package/src/call-workflow.ts +44 -0
- package/src/call.ts +173 -46
- package/src/cedar.ts +493 -0
- package/src/client.ts +450 -49
- package/src/collection.ts +431 -0
- package/src/config.ts +168 -48
- package/src/constructors.ts +4 -0
- package/src/credentials.ts +90 -5
- package/src/data.ts +10 -0
- package/src/datafile.ts +207 -15
- package/src/db.ts +90 -22
- package/src/define.ts +11 -9
- package/src/describe.ts +146 -23
- package/src/direct.ts +15 -0
- package/src/drift.ts +155 -45
- package/src/errors.ts +36 -1
- package/src/expectations.ts +46 -11
- package/src/host.ts +96 -0
- package/src/index.ts +56 -2
- package/src/ledger.ts +35 -17
- package/src/lint.ts +29 -12
- package/src/lockfile.ts +95 -0
- package/src/op.ts +9 -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 +302 -52
- package/src/resources.ts +226 -30
- package/src/run.ts +33 -1
- package/src/sandbox.ts +5 -1
- package/src/scenario.ts +175 -43
- package/src/scenarios.ts +15 -8
- package/src/schema.ts +261 -0
- package/src/sdk.ts +211 -0
- package/src/secret.ts +92 -0
- package/src/shared.ts +279 -6
- package/src/sites.ts +220 -0
- package/src/source.ts +82 -0
- package/src/version.ts +3 -2
- package/src/worker.ts +45 -11
- package/src/writer.ts +225 -0
package/dist/datafile.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Node } from "./ast.ts";
|
|
2
|
+
import { type Secret } from "./secret.ts";
|
|
2
3
|
/** Something a data file may not hold, at UTF-16 offsets into its text. */
|
|
3
4
|
export interface DataFileProblem {
|
|
4
5
|
start: number;
|
|
@@ -10,8 +11,12 @@ export declare class Reference {
|
|
|
10
11
|
readonly name: string;
|
|
11
12
|
constructor(name: string);
|
|
12
13
|
}
|
|
13
|
-
/**
|
|
14
|
-
export
|
|
14
|
+
/** True for a `Reference`, made by any copy of this package: read by a registered symbol, not `instanceof`. */
|
|
15
|
+
export declare const isReference: (value: unknown) => value is Reference;
|
|
16
|
+
/** What `secret("NAME")` stands for in a data file: its marker, `{ $secret: "NAME", generate?: true }`. */
|
|
17
|
+
export type SecretRef = Secret;
|
|
18
|
+
/** A value in a data file: a literal, a reference to a declared resource, or a secret's marker. */
|
|
19
|
+
export type DataValue = null | boolean | number | string | Reference | SecretRef | DataValue[] | {
|
|
15
20
|
[field: string]: DataValue;
|
|
16
21
|
};
|
|
17
22
|
/** An `import { name } from "…"`: of a connector's constructors (`from "…/resources"`), or of another data file's resource. */
|
|
@@ -38,14 +43,38 @@ export interface DataFileExport {
|
|
|
38
43
|
start: number;
|
|
39
44
|
end: number;
|
|
40
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
|
+
}
|
|
41
56
|
export interface DataFile {
|
|
42
57
|
imports: DataFileImport[];
|
|
43
58
|
/** Each `export const` whose value is in the subset. */
|
|
44
59
|
exports: DataFileExport[];
|
|
45
|
-
/**
|
|
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`. */
|
|
46
63
|
declared: string[];
|
|
47
64
|
problems: DataFileProblem[];
|
|
48
65
|
}
|
|
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
|
+
*/
|
|
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";
|
|
49
78
|
/**
|
|
50
79
|
* Reads a data file's program without running it: its imports, each `export const` resource
|
|
51
80
|
* with its fields evaluated, and everything outside the data-file subset as a problem that says
|
|
@@ -55,8 +84,14 @@ export interface DataFile {
|
|
|
55
84
|
* `export const <name> = <vendor>.<type>({ … })`, one per statement, its argument built of
|
|
56
85
|
* strings (template literals without `${}` too), numbers, booleans, null, objects and arrays,
|
|
57
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.
|
|
58
91
|
*
|
|
59
92
|
* `root` is the directory relative imports must stay in: by default the nearest `resources/`
|
|
60
93
|
* directory above `filename`, else the file's own.
|
|
61
94
|
*/
|
|
62
95
|
export declare function readDataFile(program: Node, filename: string, root?: string): DataFile;
|
|
96
|
+
/** A property's name: an identifier's, or a literal's as a string; undefined for any other key. */
|
|
97
|
+
export declare const keyName: (key: Node) => string | undefined;
|
package/dist/datafile.js
CHANGED
|
@@ -1,5 +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
|
+
import { SECRET_NAME } from "./secret.js";
|
|
4
|
+
import { checkCollection, errorMessage } from "./shared.js";
|
|
3
5
|
/** A name in a data file that refers to a declared resource: one imported from a data file, or exported by this one. */
|
|
4
6
|
export class Reference {
|
|
5
7
|
name;
|
|
@@ -7,12 +9,32 @@ export class Reference {
|
|
|
7
9
|
this.name = name;
|
|
8
10
|
}
|
|
9
11
|
}
|
|
12
|
+
const REFERENCE = Symbol.for("sanoma.reference");
|
|
13
|
+
Object.defineProperty(Reference.prototype, REFERENCE, { value: true });
|
|
14
|
+
/** True for a `Reference`, made by any copy of this package: read by a registered symbol, not `instanceof`. */
|
|
15
|
+
export const isReference = (value) => typeof value === "object" && value !== null && REFERENCE in value;
|
|
10
16
|
/** A connector's constructors entry: a package specifier that ends in `/resources`. */
|
|
11
17
|
const CONSTRUCTORS = /^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*\/resources$/;
|
|
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
|
+
*/
|
|
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`;
|
|
33
|
+
const SECRET_CALL = '`secret("NAME")` or `secret("NAME", { generate: true })`, NAME upper case (A-Z, 0-9 and _)';
|
|
12
34
|
const SHAPE = "a data file holds only imports, `export const <name> = <vendor>.<type>({ … })` and `export default [ … ]`";
|
|
13
35
|
const IMPORTS = "import resource constructors from a connector's resources entry " +
|
|
14
36
|
'(`import { github } from "@sanoma-ai/connector-github/resources"`) ' +
|
|
15
|
-
'and resources from other data files (`import { site } from "./github.ts"`)';
|
|
37
|
+
'and resources from other data files (`import { site } from "./github.ts"`), and `secret` from "sanoma/resources"';
|
|
16
38
|
const VALUES = "write a string, number, boolean, null, object or array, or name a declared resource";
|
|
17
39
|
/**
|
|
18
40
|
* Reads a data file's program without running it: its imports, each `export const` resource
|
|
@@ -23,6 +45,10 @@ const VALUES = "write a string, number, boolean, null, object or array, or name
|
|
|
23
45
|
* `export const <name> = <vendor>.<type>({ … })`, one per statement, its argument built of
|
|
24
46
|
* strings (template literals without `${}` too), numbers, booleans, null, objects and arrays,
|
|
25
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.
|
|
26
52
|
*
|
|
27
53
|
* `root` is the directory relative imports must stay in: by default the nearest `resources/`
|
|
28
54
|
* directory above `filename`, else the file's own.
|
|
@@ -32,8 +58,15 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
32
58
|
const fail = (node, message) => problems.push({ start: node.start, end: node.end, message });
|
|
33
59
|
const imports = [];
|
|
34
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;
|
|
35
65
|
// Names a refused import or declaration binds: reported once, where they are bound.
|
|
36
66
|
const refused = new Set();
|
|
67
|
+
// The local names of `secret`, and of `collection`.
|
|
68
|
+
const secrets = new Set();
|
|
69
|
+
const collectionCalls = new Set();
|
|
37
70
|
// Imports and top-level names first, each once: imports are hoisted, and a reference may name
|
|
38
71
|
// a resource declared further down. An unexported const is refused where it is declared, not
|
|
39
72
|
// again where it is used.
|
|
@@ -72,17 +105,17 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
72
105
|
readDefault(s);
|
|
73
106
|
break;
|
|
74
107
|
case "ExportAllDeclaration":
|
|
75
|
-
fail(s, `export * is not allowed in a data file: ${
|
|
108
|
+
fail(s, `export * is not allowed in a data file: ${shape}`);
|
|
76
109
|
break;
|
|
77
110
|
case "VariableDeclaration": {
|
|
78
111
|
const name = s.declarations[0]?.id?.name;
|
|
79
112
|
fail(s, name === undefined
|
|
80
|
-
? `an unexported declaration is not allowed in a data file: ${
|
|
81
|
-
: `\`${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`);
|
|
82
115
|
break;
|
|
83
116
|
}
|
|
84
117
|
default:
|
|
85
|
-
fail(s, `${describe(s)} is not allowed in a data file: ${
|
|
118
|
+
fail(s, `${describe(s)} is not allowed in a data file: ${shape}`);
|
|
86
119
|
}
|
|
87
120
|
}
|
|
88
121
|
function readImport(s) {
|
|
@@ -91,6 +124,14 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
91
124
|
fail(s, "`import type` is not allowed in a data file: it holds values only, and the constructors type them");
|
|
92
125
|
return;
|
|
93
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
|
+
}
|
|
94
135
|
const refusal = whyRefused(spec);
|
|
95
136
|
if (refusal) {
|
|
96
137
|
fail(s.source, `import "${spec}" is not allowed in a data file: ${refusal}`);
|
|
@@ -102,6 +143,32 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
102
143
|
fail(s, `import "${spec}" is not allowed in a data file: it imports nothing, and a data file runs no code`);
|
|
103
144
|
return;
|
|
104
145
|
}
|
|
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) {
|
|
153
|
+
for (const sp of s.specifiers) {
|
|
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 });
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
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}"\``);
|
|
167
|
+
refused.add(sp.local.name);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
105
172
|
for (const sp of s.specifiers) {
|
|
106
173
|
if (sp.type !== "ImportSpecifier") {
|
|
107
174
|
const how = sp.type === "ImportNamespaceSpecifier" ? `import * as ${sp.local.name}` : `import ${sp.local.name}`;
|
|
@@ -120,9 +187,12 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
120
187
|
/** Why an import's specifier is not allowed in a data file, or undefined when it is. */
|
|
121
188
|
function whyRefused(spec) {
|
|
122
189
|
if (!RELATIVE.test(spec))
|
|
123
|
-
return CONSTRUCTORS.test(spec) ? undefined : IMPORTS;
|
|
190
|
+
return CONSTRUCTORS.test(spec) || DATA_ENTRIES.has(spec) ? undefined : IMPORTS;
|
|
124
191
|
if (!spec.endsWith(".ts"))
|
|
125
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
|
+
}
|
|
126
196
|
if (!inside(root, join(dirname(filename), spec))) {
|
|
127
197
|
return `it reaches outside ${basename(root)}/; import only other data files`;
|
|
128
198
|
}
|
|
@@ -137,7 +207,7 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
137
207
|
return;
|
|
138
208
|
}
|
|
139
209
|
if (decl.type !== "VariableDeclaration") {
|
|
140
|
-
fail(s, `${describe(decl)} is not allowed in a data file: ${
|
|
210
|
+
fail(s, `${describe(decl)} is not allowed in a data file: ${shape}`);
|
|
141
211
|
return;
|
|
142
212
|
}
|
|
143
213
|
if (decl.kind !== "const") {
|
|
@@ -155,10 +225,18 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
155
225
|
}
|
|
156
226
|
const name = d.id.name;
|
|
157
227
|
// A second declaration of the name was reported where it is bound.
|
|
158
|
-
if (exports.some((e) => e.name === name))
|
|
228
|
+
if (exports.some((e) => e.name === name) || collections.some((c) => c.export === name))
|
|
159
229
|
return;
|
|
160
230
|
const init = d.init;
|
|
161
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
|
+
}
|
|
162
240
|
if (callee?.type !== "MemberExpression" ||
|
|
163
241
|
callee.computed ||
|
|
164
242
|
callee.object.type !== "Identifier" ||
|
|
@@ -168,8 +246,6 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
168
246
|
}
|
|
169
247
|
const vendor = callee.object.name;
|
|
170
248
|
const type = callee.property.name;
|
|
171
|
-
if (refused.has(vendor))
|
|
172
|
-
return;
|
|
173
249
|
if (imports.find((i) => i.local === vendor)?.kind !== "constructors") {
|
|
174
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"\``);
|
|
175
251
|
return;
|
|
@@ -184,7 +260,47 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
184
260
|
exports.push({ name, vendor, type, desired: desired, start: s.start, end: s.end });
|
|
185
261
|
}
|
|
186
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
|
+
}
|
|
187
299
|
function readDefault(s) {
|
|
300
|
+
if (collectionsFile) {
|
|
301
|
+
fail(s, `export default is not allowed in resources/data.ts: ${COLLECTIONS_ONLY}`);
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
188
304
|
const list = s.declaration;
|
|
189
305
|
if (list.type !== "ArrayExpression") {
|
|
190
306
|
fail(list, "export default must list this file's resources: `export default [a, b]`");
|
|
@@ -261,6 +377,14 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
261
377
|
return refuse(node, "member access is not allowed in a data file: write the value out, or name the resource itself (`site`), not one of its fields");
|
|
262
378
|
}
|
|
263
379
|
case "CallExpression":
|
|
380
|
+
if (node.callee.type === "Identifier" && secrets.has(node.callee.name))
|
|
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
|
+
}
|
|
385
|
+
if (node.callee.type === "Identifier" && node.callee.name === "secret" && !bound.has("secret")) {
|
|
386
|
+
return refuse(node, `import secret to name one: \`import { secret } from "sanoma/resources"\``);
|
|
387
|
+
}
|
|
264
388
|
return refuse(node, node.callee.type === "MemberExpression" &&
|
|
265
389
|
node.callee.object.type === "Identifier" &&
|
|
266
390
|
imports.some((i) => i.kind === "constructors" && i.local === node.callee.object.name)
|
|
@@ -289,12 +413,35 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
289
413
|
}
|
|
290
414
|
if (p.computed)
|
|
291
415
|
return refuse(p.key, "a computed key is not allowed in a data file: write the field's name");
|
|
292
|
-
const key =
|
|
416
|
+
const key = keyName(p.key);
|
|
293
417
|
if (key === undefined)
|
|
294
418
|
return refuse(p.key, "write the field's name, or a string");
|
|
419
|
+
if (key === "$secret")
|
|
420
|
+
return refuse(p.key, `name a secret with ${SECRET_CALL}`);
|
|
295
421
|
const v = value(p.value);
|
|
296
422
|
return v === undefined ? undefined : [key, v];
|
|
297
423
|
}
|
|
424
|
+
/** A `secret(…)` call's marker: literal arguments only. */
|
|
425
|
+
function readSecret(node) {
|
|
426
|
+
const [name, options, ...extra] = node.arguments;
|
|
427
|
+
if (name?.type !== "Literal" || typeof name.value !== "string" || extra.length) {
|
|
428
|
+
return refuse(node, `write the secret's name as a string: ${SECRET_CALL}`);
|
|
429
|
+
}
|
|
430
|
+
if (!SECRET_NAME.test(name.value))
|
|
431
|
+
return refuse(name, `${JSON.stringify(name.value)} is not a secret's name: ${SECRET_CALL}`);
|
|
432
|
+
if (options === undefined)
|
|
433
|
+
return { $secret: name.value };
|
|
434
|
+
const [generate, ...others] = options.type === "ObjectExpression" ? options.properties : [];
|
|
435
|
+
if (others.length ||
|
|
436
|
+
generate?.type !== "Property" ||
|
|
437
|
+
generate.computed ||
|
|
438
|
+
(generate.key.name ?? generate.key.value) !== "generate" ||
|
|
439
|
+
generate.value.type !== "Literal" ||
|
|
440
|
+
typeof generate.value.value !== "boolean") {
|
|
441
|
+
return refuse(options, `a secret's options are \`{ generate: true }\` or none: ${SECRET_CALL}`);
|
|
442
|
+
}
|
|
443
|
+
return generate.value.value ? { $secret: name.value, generate: true } : { $secret: name.value };
|
|
444
|
+
}
|
|
298
445
|
function reference(node) {
|
|
299
446
|
const name = node.name;
|
|
300
447
|
if (name === "undefined")
|
|
@@ -313,8 +460,14 @@ export function readDataFile(program, filename, root = nearestDir(filename, ["re
|
|
|
313
460
|
fail(node, message);
|
|
314
461
|
return undefined;
|
|
315
462
|
}
|
|
316
|
-
return { imports, exports, declared: [...declared], problems };
|
|
463
|
+
return { imports, exports, collections, declared: collectionsFile ? [] : [...declared], problems };
|
|
317
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));
|
|
469
|
+
/** A property's name: an identifier's, or a literal's as a string; undefined for any other key. */
|
|
470
|
+
export const keyName = (key) => key.type === "Identifier" ? key.name : key.type === "Literal" ? String(key.value) : undefined;
|
|
318
471
|
/** A node's kind, for a message: `a function declaration`, `an if statement`. */
|
|
319
472
|
function describe(node) {
|
|
320
473
|
const words = String(node.type)
|
package/dist/datafile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datafile.js","sourceRoot":"","sources":["../src/datafile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datafile.js","sourceRoot":"","sources":["../src/datafile.ts"],"names":[],"mappings":"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"}
|
package/dist/db.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export type Db = Pick<Pool | Client, "query">;
|
|
|
6
6
|
export declare const CREDENTIALS_TABLE = "sanoma_credentials";
|
|
7
7
|
/** Where the Postgres ledger keeps its records. */
|
|
8
8
|
export declare const LEDGER_TABLE = "sanoma_ledger";
|
|
9
|
+
/** Where the collections keep their records (`collection.ts`): one row per collection and key, the record as JSON. */
|
|
10
|
+
export declare const DATA_TABLE = "sanoma_data";
|
|
9
11
|
/** The Postgres error code of `err`, or an empty string when it has none. */
|
|
10
12
|
export declare const pgCode: (err: unknown) => string;
|
|
11
13
|
/** True for the failure of a create that another process won: what was to be made is there. */
|
|
@@ -46,9 +48,9 @@ export declare function lazyPool(databaseUrl: string, what: string): LazyPool;
|
|
|
46
48
|
* Makes the database at `databaseUrl` ready for the runtime, once per process and URL: the
|
|
47
49
|
* database itself and DBOS's tables when they are not there yet (as a worker's launch makes
|
|
48
50
|
* them; credentials may be set, and a ledger read, before any worker has run), then the
|
|
49
|
-
* credentials and
|
|
50
|
-
* Two processes preparing one database both succeed
|
|
51
|
-
* preparation that fails is forgotten, so the next call tries again.
|
|
51
|
+
* credentials, ledger and data tables, and its idle-transaction timeout (`guardIdleTransactions`).
|
|
52
|
+
* Two processes preparing one database both succeed: the second waits for the first
|
|
53
|
+
* (`lockPreparation`). A preparation that fails is forgotten, so the next call tries again.
|
|
52
54
|
*/
|
|
53
55
|
export declare function prepareDatabase(databaseUrl: string): Promise<void>;
|
|
54
56
|
/**
|