@ontemper/sdk 0.5.0 → 0.5.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 CHANGED
@@ -170,6 +170,41 @@ const { key, value } = yield * partners.select({ tenantKey }); // ResourceNotFou
170
170
  - `makeManifest` lists the declarations of each endpoint in its `resources`. Deploy fails, with one
171
171
  message for each problem, when a declaration has no binding, a bound resource has a different type,
172
172
  a value breaks the declared schema, or the organization does not have a declared resource type.
173
+ - Deploy checks a value against the JSON Schema of the declared schema. Declaring a `Resource` or
174
+ `ResourceType` throws, naming the key and the field, when a check exports a weaker rule than decoding
175
+ runs. Without the throw, a value would pass deploy and fail every run with a `500`. For a string, use
176
+ the form that deploy checks exactly:
177
+
178
+ | Throws | Use instead |
179
+ | ------------------------------------------ | ---------------------------------------------- |
180
+ | `Schema.isPattern(/^[a-z0-9.-]+$/)` | `Schema.isPattern(/^[a-z0-9.-]+$/u)` |
181
+ | `Schema.isPattern(/^[a-z]+$/i)` | `Schema.isPattern(/^[A-Za-z]+$/u)` |
182
+ | `Schema.isMinLength(n)`, `n` above 1 | `Schema.isMinCodePoints(n)` |
183
+ | `Schema.isMaxLength(n)`, `n` above 0 | `Schema.isMaxCodePoints(n)` |
184
+ | `Schema.isBetweenLength(minimum, maximum)` | `Schema.isBetweenCodePoints(minimum, maximum)` |
185
+
186
+ A pattern exports only with the `u` flag (`g`, `d`, and `y` may join it). JSON Schema counts code
187
+ points and JavaScript counts UTF-16 units, so the code-point checks are the ones both sides count alike.
188
+ On an array, the length checks export exact `minItems` and `maxItems` and build unchanged.
189
+ Deploy runs `pattern` with RE2, which reads some JavaScript syntax differently or does not compile it.
190
+ A pattern that uses one of these throws too, with the rewrite that both engines read alike:
191
+
192
+ | Syntax | Write instead |
193
+ | ---------------------------- | ------------------------------------------------------------------------ |
194
+ | `.` | `[^\n\r\p{Zl}\p{Zp}]` |
195
+ | `\s`, `\S` | `[\t\n\v\f\r\p{Z}]`, `[^\t\n\v\f\r\p{Z}]`, or `[\s\S]` for any character |
196
+ | `[^]` | `[\s\S]` |
197
+ | `\u0041`, `\cA` | the character itself, or `\x41` |
198
+ | `(?i:…)`, `(?m:…)`, `(?s:…)` | the group without the modifier, for example `[Aa]` for `(?i:a)` |
199
+ | lookarounds, backreferences | a pattern without them, or the annotation below |
200
+
201
+ The `\s` rewrites differ from `\s` only on U+FEFF. `\p{…}` reads each engine's own Unicode tables:
202
+ they agree on Node 22.23 and Node 26.8 (Unicode 17), while a release on Unicode 16, such as Node 24.2,
203
+ reads letters added in Unicode 17 as not `\p{L}`.
204
+
205
+ A built-in check whose pattern uses them, such as `Schema.Trimmed`, takes the annotation below.
206
+ To keep a check that deploy does not run, annotate it: `Schema.isPattern(regExp, { toJsonSchema: () => ({}) })`.
207
+ A `Schema.makeFilter` predicate without `toJsonSchema` runs only when the workflow decodes the value.
173
208
 
174
209
  ## Invoke in a test
175
210
 
@@ -0,0 +1,7 @@
1
+ import { Schema } from 'effect';
2
+ /**
3
+ * The JSON Schema of the encoded form, which deploy validates a bound value against. Fails when a check exports a
4
+ * weaker constraint than decoding runs, because deploy would then accept a value that every run rejects.
5
+ */
6
+ export declare const deploySchemaOf: (subject: string, schema: Schema.Top) => Record<string, Schema.Json>;
7
+ //# sourceMappingURL=DeploySchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeploySchema.d.ts","sourceRoot":"","sources":["../src/DeploySchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,MAAM,EAAwB,MAAM,QAAQ,CAAC;AAuO/E;;;GAGG;AACH,eAAO,MAAM,cAAc,YAAa,MAAM,UAAU,MAAM,CAAC,GAAG,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAuB9F,CAAC"}
@@ -0,0 +1,225 @@
1
+ import { Array as Arr, Predicate, Schema, SchemaRepresentation } from 'effect';
2
+ import { JsonSchemaObject } from './Contract/Manifest.js';
3
+ /** The check, named by its representation id, whose export deploy validates exactly. */
4
+ const fixFor = (id) => {
5
+ switch (id) {
6
+ case 'effect/schema/isPattern':
7
+ return 'use a regular expression whose flags are only `u` (with `g`, `d`, or `y` if needed), for example /^[a-z0-9.-]+$/u; write `i`, `m`, or `s` into the pattern, for example [A-Za-z] for `i`';
8
+ case 'effect/schema/isMinLength':
9
+ return 'use Schema.isMinCodePoints(n)';
10
+ case 'effect/schema/isMaxLength':
11
+ return 'use Schema.isMaxCodePoints(n)';
12
+ case 'effect/schema/isBetweenLength':
13
+ return 'use Schema.isBetweenCodePoints(minimum, maximum)';
14
+ default:
15
+ return 'give the check a toJsonSchema annotation that states what deploy checks; `toJsonSchema: () => ({})` accepts that deploy does not check it';
16
+ }
17
+ };
18
+ const toJsonSchemaOf = (check) => {
19
+ const callback = check.annotations?.toJsonSchema;
20
+ // SAFETY: effect keeps a check's `toJsonSchema` annotation here and its compiler calls it with this signature.
21
+ return Predicate.isFunction(callback) ? callback : undefined;
22
+ };
23
+ // Deploy runs `pattern` with RE2 (`re2js` in the API's resource validator); each construct below reads otherwise there
24
+ // than in JavaScript with `u`, or does not compile, so its fix names a form both engines read alike.
25
+ const re2Fixes = {
26
+ dot: 'write [^\\n\\r\\p{Zl}\\p{Zp}] for `.`: RE2 matches \\r, U+2028, and U+2029 with `.`, JavaScript does not',
27
+ space: 'write [\\t\\n\\v\\f\\r\\p{Z}] for \\s and [^\\t\\n\\v\\f\\r\\p{Z}] for \\S (only U+FEFF differs), or [\\s\\S] for any character: RE2 reads \\s and \\S as ASCII only',
28
+ escape: 'write the character itself, or \\x.. for one below U+0100, for \\u and \\c: RE2 does not compile them',
29
+ lookaround: 'rewrite without lookarounds and backreferences, or annotate the check with toJsonSchema: () => ({}): RE2 has neither',
30
+ emptyClass: 'write [\\s\\S] for [^], and drop []: RE2 does not compile an empty class',
31
+ modifier: 'write the group without its (?i:), (?m:), or (?s:) modifier, for example [Aa] for (?i:a): RE2 reads them unlike JavaScript',
32
+ };
33
+ /** The fixes for each construct in `pattern` that RE2 reads unlike JavaScript with `u`. */
34
+ const re2Gaps = (pattern) => {
35
+ const gaps = new Set();
36
+ // `[\s\S]` matches every character in both engines; only a class with one of the two differs.
37
+ const classSpaces = new Set();
38
+ let inClass = false;
39
+ for (let index = 0; index < pattern.length; index++) {
40
+ const char = pattern[index];
41
+ if (char === '\\') {
42
+ const escaped = pattern[index + 1] ?? '';
43
+ if (escaped === 's' || escaped === 'S') {
44
+ if (inClass)
45
+ classSpaces.add(escaped);
46
+ else
47
+ gaps.add('space');
48
+ }
49
+ if (escaped === 'u' || escaped === 'c')
50
+ gaps.add('escape');
51
+ if (escaped === 'k' || (escaped >= '1' && escaped <= '9'))
52
+ gaps.add('lookaround');
53
+ index++;
54
+ }
55
+ else if (inClass) {
56
+ inClass = char !== ']';
57
+ if (!inClass && classSpaces.size === 1)
58
+ gaps.add('space');
59
+ if (!inClass)
60
+ classSpaces.clear();
61
+ }
62
+ else if (char === '[') {
63
+ inClass = true;
64
+ if (pattern.startsWith(']', index + 1) || pattern.startsWith('^]', index + 1))
65
+ gaps.add('emptyClass');
66
+ }
67
+ else if (char === '.') {
68
+ gaps.add('dot');
69
+ }
70
+ else if (pattern.startsWith('(?', index)) {
71
+ // Only `(?:` and `(?<name>` read alike; any other `(?` group is a lookaround or a modifier.
72
+ const group = pattern.slice(index + 2);
73
+ if (/^<?[=!]/.test(group))
74
+ gaps.add('lookaround');
75
+ else if (!/^(?::|<[^=!])/.test(group))
76
+ gaps.add('modifier');
77
+ }
78
+ }
79
+ return [...gaps].map((gap) => re2Fixes[gap]);
80
+ };
81
+ const fieldOf = (parent, name) => (parent === '' ? name : `${parent}.${name}`);
82
+ /**
83
+ * Copies a representation document so that each check callback reports when it answers `[fragment, true]`: effect's
84
+ * marker for an export weaker than the check decoding runs. Effect's own compiler then decides which callbacks run and
85
+ * with which `type`. A filter with no callback is a predicate JSON Schema cannot state, so decoding alone runs it.
86
+ */
87
+ const makeTracer = (report, definition, uses, references) => {
88
+ const traceCheck = (check, field) => {
89
+ // Effect compiles a check's nested schemas before its callback, so their findings wait for the parent's answer.
90
+ const nested = [];
91
+ const traceNested = makeTracer((weak) => nested.push(weak), definition, uses, references);
92
+ const schemas = check.representation?.schemas?.map((schema) => traceNested(schema, `${field}[key]`));
93
+ const representation = check.representation === undefined || schemas === undefined
94
+ ? check.representation
95
+ : { ...check.representation, schemas };
96
+ const callback = toJsonSchemaOf(check);
97
+ const toJsonSchema = callback === undefined
98
+ ? undefined
99
+ : (input) => {
100
+ const output = callback(input);
101
+ const fragment = Array.isArray(output) ? output[0] : output;
102
+ // Only an empty answer, such as `() => ({})`, surely drops the nested schemas; any other may keep them.
103
+ if (Object.keys(fragment).length > 0)
104
+ nested.forEach(report);
105
+ const expected = check.annotations?.expected;
106
+ const describe = Predicate.isString(expected) ? expected : 'a custom check';
107
+ if (Array.isArray(output)) {
108
+ report({ field, definition, expected: describe, fix: fixFor(check.representation?.id) });
109
+ }
110
+ else if (Predicate.isString(fragment.pattern)) {
111
+ const gaps = re2Gaps(fragment.pattern).join('; ');
112
+ // An author rewrites their own regular expression; a built-in check such as `isTrimmed` takes the annotation.
113
+ const fix = check.representation?.id === 'effect/schema/isPattern'
114
+ ? gaps
115
+ : `annotate the check with toJsonSchema: () => ({}) to run it only at decode (${gaps})`;
116
+ if (gaps.length > 0)
117
+ report({ field, definition, expected: describe, fix });
118
+ }
119
+ return output;
120
+ };
121
+ const annotations = toJsonSchema === undefined ? check.annotations : { ...check.annotations, toJsonSchema };
122
+ return check._tag === 'FilterGroup'
123
+ ? { ...check, representation, annotations, checks: Arr.map(check.checks, (child) => traceCheck(child, field)) }
124
+ : { ...check, representation, annotations };
125
+ };
126
+ const trace = (node, field) => {
127
+ switch (node._tag) {
128
+ case 'Reference':
129
+ uses.set(node.$ref, [...(uses.get(node.$ref) ?? []), { field, definition }]);
130
+ return node;
131
+ case 'Suspend':
132
+ return { ...node, thunk: trace(node.thunk, field) };
133
+ case 'Declaration':
134
+ return {
135
+ ...node,
136
+ checks: node.checks.map((check) => traceCheck(check, field)),
137
+ typeParameters: node.typeParameters.map((parameter) => trace(parameter, field)),
138
+ };
139
+ case 'Union':
140
+ return {
141
+ ...node,
142
+ checks: node.checks.map((check) => traceCheck(check, field)),
143
+ types: node.types.map((member) => trace(member, field)),
144
+ };
145
+ case 'Arrays':
146
+ // Effect drops the item schemas of a tuple with two or more rest elements and keeps only `minItems`.
147
+ if (node.rest.length > 1 && node.rest.some((rest) => !acceptsAnything(rest, references))) {
148
+ report({
149
+ field: `${field}[]`,
150
+ definition,
151
+ expected: 'a tuple with more than one rest element',
152
+ fix: 'use one rest element, or a union of the rest element types',
153
+ });
154
+ }
155
+ return {
156
+ ...node,
157
+ checks: node.checks.map((check) => traceCheck(check, field)),
158
+ elements: node.elements.map((element, index) => ({
159
+ ...element,
160
+ type: trace(element.type, `${field}[${index}]`),
161
+ })),
162
+ rest: node.rest.map((rest) => trace(rest, `${field}[]`)),
163
+ };
164
+ case 'Objects':
165
+ return {
166
+ ...node,
167
+ checks: node.checks.map((check) => traceCheck(check, field)),
168
+ propertySignatures: node.propertySignatures.map((property) => ({
169
+ ...property,
170
+ type: trace(property.type, fieldOf(field, String(property.name))),
171
+ })),
172
+ indexSignatures: node.indexSignatures.map((index) => ({
173
+ parameter: trace(index.parameter, `${field}[key]`),
174
+ type: trace(index.type, `${field}[*]`),
175
+ })),
176
+ };
177
+ default:
178
+ return { ...node, checks: node.checks.map((check) => traceCheck(check, field)) };
179
+ }
180
+ };
181
+ return trace;
182
+ };
183
+ /** Whether effect exports `node` as `{}`, the schema every JSON value matches. */
184
+ const acceptsAnything = (node, references) => Object.keys(SchemaRepresentation.toJsonSchemaDocument({ representation: node, references }).schema).length === 0;
185
+ /** The resource fields that reach `definition`, followed through the named schemas that use it. */
186
+ const fieldsUsing = (definition, uses, seen = new Set()) => (uses.get(definition) ?? []).flatMap(({ field, definition: within }) => {
187
+ if (within === undefined)
188
+ return [field];
189
+ if (seen.has(within))
190
+ return [];
191
+ // A path traced inside a named schema starts with that schema's key.
192
+ const rest = field.slice(within.length);
193
+ return fieldsUsing(within, uses, new Set([...seen, definition])).map((outer) => outer === '' ? rest.replace(/^\./, '') : `${outer}${rest}`);
194
+ });
195
+ const describe = ({ field, definition, expected, fix }, uses) => {
196
+ const where = field === '' ? 'the value' : field;
197
+ const fields = definition === undefined ? [] : [...new Set(fieldsUsing(definition, uses))];
198
+ const usedBy = fields.length === 0 ? '' : ` (used by ${fields.map((name) => (name === '' ? 'the value' : name)).join(', ')})`;
199
+ return `- ${where}${usedBy}: ${expected}. Fix: ${fix}.`;
200
+ };
201
+ /**
202
+ * The JSON Schema of the encoded form, which deploy validates a bound value against. Fails when a check exports a
203
+ * weaker constraint than decoding runs, because deploy would then accept a value that every run rejects.
204
+ */
205
+ export const deploySchemaOf = (subject, schema) => {
206
+ const document = SchemaRepresentation.toRepresentation(Schema.toCodecJson(schema).ast);
207
+ const weak = [];
208
+ const uses = new Map();
209
+ const report = (found) => weak.push(found);
210
+ const representation = makeTracer(report, undefined, uses, document.references)(document.representation, '');
211
+ const references = Object.fromEntries(Object.entries(document.references).map(([key, value]) => [
212
+ key,
213
+ makeTracer(report, key, uses, document.references)(value, key),
214
+ ]));
215
+ const { schema: root, definitions } = SchemaRepresentation.toJsonSchemaDocument({ representation, references });
216
+ if (weak.length > 0) {
217
+ throw new Error([
218
+ `${subject}: deploy checks a weaker form of ${weak.length === 1 ? 'one rule' : `${weak.length} rules`} in the declared schema, so a bound value that breaks ${weak.length === 1 ? 'it' : 'one'} would pass deploy and fail every run.`,
219
+ ...weak.map((found) => describe(found, uses)),
220
+ ].join('\n'));
221
+ }
222
+ const json = Object.keys(definitions).length === 0 ? root : { ...root, $defs: definitions };
223
+ return Schema.decodeUnknownSync(JsonSchemaObject)(json);
224
+ };
225
+ //# sourceMappingURL=DeploySchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeploySchema.js","sourceRoot":"","sources":["../src/DeploySchema.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { HttpApi, type HttpApiGroup } from 'effect/http-api';
2
2
  import { type WorkflowManifest } from './Contract/Manifest.js';
3
- export declare const SDK_VERSION = "0.5.0";
3
+ export declare const SDK_VERSION = "0.5.1";
4
4
  export declare const RUNTIME_API_VERSION = 1;
5
5
  /** The route the SDK serves for platform probes; an API declaring `GET` on it collides with it on every request. */
6
6
  export declare const HEALTHCHECK_PATH = "/healthcheck";
package/dist/Manifest.js CHANGED
@@ -5,7 +5,7 @@ import { declarationOf } from './Resource.js';
5
5
  import { Trigger } from './Trigger.js';
6
6
  const decodeTrigger = Schema.decodeUnknownSync(TriggerMetadata, { onExcessProperty: 'error' });
7
7
  const identityOf = (resource) => `${resource.kind}:${resource.kind === 'resourceType' ? resource.type : resource.key}`;
8
- export const SDK_VERSION = '0.5.0';
8
+ export const SDK_VERSION = '0.5.1';
9
9
  export const RUNTIME_API_VERSION = 1;
10
10
  /** The route the SDK serves for platform probes; an API declaring `GET` on it collides with it on every request. */
11
11
  export const HEALTHCHECK_PATH = '/healthcheck';
@@ -1,6 +1,6 @@
1
1
  import { Context, Effect, Layer, type Redacted, Schema } from 'effect';
2
2
  import { HttpApiMiddleware } from 'effect/http-api';
3
- import { type ManifestResource } from './Contract/Manifest.js';
3
+ import type { ManifestResource } from './Contract/Manifest.js';
4
4
  import { InvalidResourceError, type ResourceNotSelectableError } from './ResourcesErrors.js';
5
5
  import { type ReadError, RuntimeResources, type ResourceReader } from './RuntimeResources.js';
6
6
  type Kind = ManifestResource['kind'];
@@ -1 +1 @@
1
- {"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"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"}
package/dist/Resource.js CHANGED
@@ -1,20 +1,12 @@
1
1
  import { Context, Effect, Effectable, Layer, Schema } from 'effect';
2
2
  import { HttpApiMiddleware } from 'effect/http-api';
3
- import { JsonSchemaObject } from './Contract/Manifest.js';
3
+ import { deploySchemaOf } from './DeploySchema.js';
4
4
  import { InvalidResourceError } from './ResourcesErrors.js';
5
5
  import { RuntimeResources } from './RuntimeResources.js';
6
6
  // Keyed by the class `declare` builds; an author's `class X extends Resource<X>()(…)` inherits from it.
7
7
  const runtimes = new WeakMap();
8
8
  /** The declaration an endpoint middleware carries, if it is one. */
9
9
  export const declarationOf = (middleware) => runtimes.get(middleware) ?? runtimes.get(Object.getPrototypeOf(middleware));
10
- /** The encoded form's JSON Schema: what deploy validates the bound value against. */
11
- const jsonSchemaOf = (schema) => {
12
- const document = Schema.toJsonSchemaDocument(schema);
13
- const json = Object.keys(document.definitions).length === 0
14
- ? document.schema
15
- : { ...document.schema, $defs: document.definitions };
16
- return Schema.decodeUnknownSync(JsonSchemaObject)(json);
17
- };
18
10
  const decodeAs = (key, schema) => (value) => Schema.decodeUnknownEffect(schema)(value).pipe(Effect.mapError((error) => new InvalidResourceError({
19
11
  target: `key ${key}`,
20
12
  message: `Resource ${key} does not match the expected schema: ${error.message}`,
@@ -38,8 +30,8 @@ export const Resource = () => (name, options) => {
38
30
  // Trimmed like `@ontemper/resources`, in the manifest and every read, so deploy binds the key legacy reads (T-3915).
39
31
  const key = name.trim();
40
32
  return declare('resource', name, options.type === undefined
41
- ? { kind: 'resource', key, schema: jsonSchemaOf(options.schema) }
42
- : { kind: 'resource', key, type: options.type, schema: jsonSchemaOf(options.schema) }, (resources) => resources.resolve(key).pipe(Effect.flatMap(decodeAs(key, options.schema)), Effect.orDie));
33
+ ? { kind: 'resource', key, schema: deploySchemaOf(`Resource ${key}`, options.schema) }
34
+ : { kind: 'resource', key, type: options.type, schema: deploySchemaOf(`Resource ${key}`, options.schema) }, (resources) => resources.resolve(key).pipe(Effect.flatMap(decodeAs(key, options.schema)), Effect.orDie));
43
35
  };
44
36
  /** A Variable read by key; it arrives `Redacted` because the platform decides what is secret. */
45
37
  export const Variable = () => (name) => {
@@ -50,7 +42,7 @@ export const Variable = () => (name) => {
50
42
  * A resource type whose record the handler selects at run time, for example the tenant a request
51
43
  * names. Deploy checks that the type exists; `select` finds the record and decodes it with `schema`.
52
44
  */
53
- export const ResourceType = () => (type, options) => declare('resourceType', type, { kind: 'resourceType', type, schema: jsonSchemaOf(options.schema) }, (resources) => Effect.succeed({
45
+ export const ResourceType = () => (type, options) => declare('resourceType', type, { kind: 'resourceType', type, schema: deploySchemaOf(`ResourceType ${type}`, options.schema) }, (resources) => Effect.succeed({
54
46
  select: (match) => Effect.gen(function* () {
55
47
  const key = yield* resources.select({ resourceTypeKey: type, match });
56
48
  const value = yield* resources.resolve(key).pipe(Effect.flatMap(decodeAs(key, options.schema)));
@@ -1 +1 @@
1
- {"version":3,"file":"Resource.js","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Resource.js","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ontemper/sdk",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Effect workflow SDK for Temper.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -65,7 +65,7 @@
65
65
  },
66
66
  "license": "MIT",
67
67
  "sideEffects": false,
68
- "gitHead": "4c70367d9242d5e7bf9e2a1a516bbb4fbce7511d",
68
+ "gitHead": "6bc5a13d3f2d93b789f725656615ef0c5cec5b05",
69
69
  "scripts": {
70
70
  "build": "tsc -p tsconfig.json",
71
71
  "test": "vitest run",