@lovrozagar/oat 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +71 -22
  2. package/dist/cli.js +7 -2
  3. package/dist/config/define-config.d.ts +41 -1
  4. package/dist/config/define-config.d.ts.map +1 -1
  5. package/dist/config/define-config.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/reference/defects.d.ts +14 -0
  8. package/dist/reference/defects.d.ts.map +1 -1
  9. package/dist/reference/defects.js +14 -0
  10. package/dist/reference/defects.js.map +1 -1
  11. package/dist/reference/http.d.ts.map +1 -1
  12. package/dist/reference/http.js +4 -1
  13. package/dist/reference/http.js.map +1 -1
  14. package/dist/report/matrix.d.ts.map +1 -1
  15. package/dist/report/matrix.js +2 -0
  16. package/dist/report/matrix.js.map +1 -1
  17. package/dist/report/render.d.ts.map +1 -1
  18. package/dist/report/render.js +28 -5
  19. package/dist/report/render.js.map +1 -1
  20. package/dist/runtime/auth.d.ts.map +1 -1
  21. package/dist/runtime/auth.js +30 -3
  22. package/dist/runtime/auth.js.map +1 -1
  23. package/dist/runtime/body.d.ts +33 -0
  24. package/dist/runtime/body.d.ts.map +1 -0
  25. package/dist/runtime/body.js +218 -0
  26. package/dist/runtime/body.js.map +1 -0
  27. package/dist/runtime/checks.d.ts +3 -0
  28. package/dist/runtime/checks.d.ts.map +1 -1
  29. package/dist/runtime/checks.js +329 -18
  30. package/dist/runtime/checks.js.map +1 -1
  31. package/dist/runtime/client.d.ts +20 -1
  32. package/dist/runtime/client.d.ts.map +1 -1
  33. package/dist/runtime/client.js +207 -8
  34. package/dist/runtime/client.js.map +1 -1
  35. package/dist/runtime/dummy.d.ts +23 -0
  36. package/dist/runtime/dummy.d.ts.map +1 -0
  37. package/dist/runtime/dummy.js +214 -0
  38. package/dist/runtime/dummy.js.map +1 -0
  39. package/dist/runtime/fixture.d.ts.map +1 -1
  40. package/dist/runtime/fixture.js +4 -3
  41. package/dist/runtime/fixture.js.map +1 -1
  42. package/dist/runtime/payloads.d.ts +20 -0
  43. package/dist/runtime/payloads.d.ts.map +1 -0
  44. package/dist/runtime/payloads.js +250 -0
  45. package/dist/runtime/payloads.js.map +1 -0
  46. package/dist/runtime/progress.d.ts +4 -0
  47. package/dist/runtime/progress.d.ts.map +1 -1
  48. package/dist/runtime/progress.js +23 -0
  49. package/dist/runtime/progress.js.map +1 -1
  50. package/dist/runtime/run.d.ts +4 -1
  51. package/dist/runtime/run.d.ts.map +1 -1
  52. package/dist/runtime/run.js +15 -1
  53. package/dist/runtime/run.js.map +1 -1
  54. package/dist/runtime/upload.d.ts +21 -0
  55. package/dist/runtime/upload.d.ts.map +1 -0
  56. package/dist/runtime/upload.js +247 -0
  57. package/dist/runtime/upload.js.map +1 -0
  58. package/dist/runtime/world.d.ts +2 -0
  59. package/dist/runtime/world.d.ts.map +1 -1
  60. package/dist/runtime/world.js +16 -11
  61. package/dist/runtime/world.js.map +1 -1
  62. package/dist/spec/collection.d.ts +13 -0
  63. package/dist/spec/collection.d.ts.map +1 -1
  64. package/dist/spec/collection.js +36 -6
  65. package/dist/spec/collection.js.map +1 -1
  66. package/dist/spec/graph.js +2 -2
  67. package/dist/spec/graph.js.map +1 -1
  68. package/dist/spec/load.d.ts +2 -0
  69. package/dist/spec/load.d.ts.map +1 -1
  70. package/dist/spec/load.js +12 -0
  71. package/dist/spec/load.js.map +1 -1
  72. package/dist/spec/types.d.ts +3 -0
  73. package/dist/spec/types.d.ts.map +1 -1
  74. package/dist/spec/types.js.map +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Turns a generated field map into the body the document asked for.
3
+ *
4
+ * JSON stays a plain object. urlencoded becomes URLSearchParams. Multipart becomes
5
+ * FormData — file parts are resolved (hook → pool → dummy), never JSON.stringified.
6
+ */
7
+ import { requestContent } from "../spec/collection.js";
8
+ import { isFieldOverride, isUploadFile, resolveUploadFile, resolveUploadOverride, } from "./upload.js";
9
+ export function requestContentOf(op, model) {
10
+ const raw = model.rawOperations.get(op.operationId);
11
+ return raw === undefined ? null : requestContent(raw);
12
+ }
13
+ export async function encodeForOperation(op, model, fields, uploads, variant = "baseline", index = 0) {
14
+ const content = requestContentOf(op, model);
15
+ if (content === null)
16
+ return { body: fields, contentType: undefined };
17
+ const options = {
18
+ fields,
19
+ index,
20
+ mediaType: content.mediaType,
21
+ operationId: op.operationId,
22
+ schema: content.schema,
23
+ uploads,
24
+ variant,
25
+ };
26
+ if (content.encoding !== undefined)
27
+ options.encoding = content.encoding;
28
+ return encodeRequest(options);
29
+ }
30
+ export async function encodeRequest(options) {
31
+ const media = options.mediaType.toLowerCase();
32
+ if (media.startsWith("multipart/")) {
33
+ return { body: await encodeMultipart(options), contentType: null };
34
+ }
35
+ if (media.includes("x-www-form-urlencoded")) {
36
+ return { body: encodeUrlencoded(options.fields), contentType: "application/x-www-form-urlencoded" };
37
+ }
38
+ return { body: options.fields, contentType: undefined };
39
+ }
40
+ async function encodeMultipart(options) {
41
+ const form = new FormData();
42
+ const properties = propertiesOf(options.schema);
43
+ const required = requiredOf(options.schema);
44
+ const names = filePartNames(properties, required, options);
45
+ const hookHits = new Map();
46
+ for (const name of names) {
47
+ const schema = properties[name] ?? additionalSchema(options.schema) ?? {};
48
+ const resolved = await resolveUploadOverride(uploadRequest(name, schema, options), options.uploads);
49
+ hookHits.set(name, resolved);
50
+ if (isFieldOverride(resolved)) {
51
+ appendFields(form, resolved.fields);
52
+ return form;
53
+ }
54
+ }
55
+ const sent = new Set();
56
+ for (const [name, schema] of Object.entries(properties)) {
57
+ sent.add(name);
58
+ if (isFilePart(schema, options.encoding?.[name])) {
59
+ const hit = hookHits.get(name);
60
+ const file = isUploadFile(hit)
61
+ ? hit
62
+ : await fileForPart(name, schema, { ...options, uploads: { ...options.uploads, resolveUpload: undefined } });
63
+ appendFile(form, name, file);
64
+ continue;
65
+ }
66
+ const value = options.fields[name];
67
+ if (value === undefined || value === null)
68
+ continue;
69
+ appendScalar(form, name, value);
70
+ }
71
+ await appendAdditionalFile(form, options, sent, required);
72
+ return form;
73
+ }
74
+ function encodeUrlencoded(fields) {
75
+ const params = new URLSearchParams();
76
+ for (const [name, value] of Object.entries(fields)) {
77
+ if (value === undefined || value === null)
78
+ continue;
79
+ if (typeof value === "object")
80
+ continue;
81
+ params.set(name, String(value));
82
+ }
83
+ return params;
84
+ }
85
+ function filePartNames(properties, required, options) {
86
+ const fromProps = Object.entries(properties)
87
+ .filter(([name, schema]) => isFilePart(schema, options.encoding?.[name]))
88
+ .map(([name]) => name);
89
+ if (fromProps.length > 0)
90
+ return fromProps;
91
+ if (isFilePart(additionalSchema(options.schema) ?? {}, undefined)) {
92
+ const extra = required.find((name) => properties[name] === undefined);
93
+ if (extra !== undefined)
94
+ return [extra];
95
+ }
96
+ return [];
97
+ }
98
+ async function appendAdditionalFile(form, options, sent, required) {
99
+ const additional = additionalSchema(options.schema);
100
+ if (!isFilePart(additional ?? {}, undefined))
101
+ return;
102
+ const already = [...form.keys()].some((name) => {
103
+ const value = form.get(name);
104
+ return typeof File !== "undefined" && value instanceof File;
105
+ });
106
+ if (already)
107
+ return;
108
+ const name = required.find((item) => !sent.has(item)) ??
109
+ required.find((item) => isFilePart(propertiesOf(options.schema)[item] ?? {}, options.encoding?.[item]));
110
+ if (name === undefined)
111
+ return;
112
+ appendFile(form, name, await fileForPart(name, additional ?? {}, options));
113
+ }
114
+ async function fileForPart(name, schema, options) {
115
+ const request = uploadRequest(name, schema, options);
116
+ const file = await resolveUploadFile(request, options.uploads);
117
+ return file;
118
+ }
119
+ function uploadRequest(name, schema, options) {
120
+ const contentMediaType = contentMediaTypeOf(schema, options.encoding?.[name]);
121
+ const request = {
122
+ field: name,
123
+ index: options.index,
124
+ mediaType: options.mediaType,
125
+ operationId: options.operationId,
126
+ variant: options.variant,
127
+ };
128
+ if (contentMediaType !== undefined)
129
+ request.contentMediaType = contentMediaType;
130
+ const filename = typeof schema.filename === "string" ? schema.filename : undefined;
131
+ if (filename !== undefined)
132
+ request.filename = filename;
133
+ return request;
134
+ }
135
+ function appendFields(form, fields) {
136
+ for (const [name, value] of Object.entries(fields)) {
137
+ if (typeof value === "string")
138
+ form.append(name, value);
139
+ else
140
+ appendFile(form, name, value);
141
+ }
142
+ }
143
+ function appendFile(form, name, file) {
144
+ const blob = new File([file.bytes], file.filename, { type: file.mediaType });
145
+ form.append(name, blob, file.filename);
146
+ }
147
+ function appendScalar(form, name, value) {
148
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
149
+ form.append(name, String(value));
150
+ return;
151
+ }
152
+ form.append(name, JSON.stringify(value));
153
+ }
154
+ export function isFilePart(schema, encoding) {
155
+ if (schema === null || typeof schema !== "object")
156
+ return false;
157
+ const record = schema;
158
+ if (isBinarySchema(record))
159
+ return true;
160
+ const encoded = encoding?.contentType;
161
+ if (typeof encoded === "string" && encoded !== "" && !isJsonMedia(encoded))
162
+ return true;
163
+ const union = record.oneOf ?? record.anyOf;
164
+ if (Array.isArray(union))
165
+ return union.some((branch) => isFilePart(branch, encoding));
166
+ return false;
167
+ }
168
+ function isBinarySchema(schema) {
169
+ const format = typeof schema.format === "string" ? schema.format.toLowerCase() : "";
170
+ if (format === "binary" || format === "byte")
171
+ return true;
172
+ const encoding = typeof schema.contentEncoding === "string" ? schema.contentEncoding.toLowerCase() : "";
173
+ if (encoding === "binary" || encoding === "base64")
174
+ return true;
175
+ const media = typeof schema.contentMediaType === "string" ? schema.contentMediaType : "";
176
+ if (media !== "" && !isJsonMedia(media))
177
+ return true;
178
+ return false;
179
+ }
180
+ function isJsonMedia(mediaType) {
181
+ const bare = mediaType.split(";")[0]?.trim().toLowerCase() ?? "";
182
+ return bare.includes("json");
183
+ }
184
+ function contentMediaTypeOf(schema, encoding) {
185
+ if (typeof encoding?.contentType === "string" && encoding.contentType !== "") {
186
+ return encoding.contentType.split(",")[0]?.trim();
187
+ }
188
+ if (typeof schema.contentMediaType === "string" && schema.contentMediaType !== "") {
189
+ return schema.contentMediaType;
190
+ }
191
+ const format = typeof schema.format === "string" ? schema.format.toLowerCase() : "";
192
+ if (format === "binary" || format === "byte")
193
+ return "application/octet-stream";
194
+ return undefined;
195
+ }
196
+ function propertiesOf(schema) {
197
+ const properties = schema.properties;
198
+ if (properties === null || typeof properties !== "object" || Array.isArray(properties))
199
+ return {};
200
+ const out = {};
201
+ for (const [name, raw] of Object.entries(properties)) {
202
+ if (raw !== null && typeof raw === "object" && !Array.isArray(raw))
203
+ out[name] = raw;
204
+ }
205
+ return out;
206
+ }
207
+ function requiredOf(schema) {
208
+ return Array.isArray(schema.required)
209
+ ? schema.required.filter((item) => typeof item === "string")
210
+ : [];
211
+ }
212
+ function additionalSchema(schema) {
213
+ const additional = schema.additionalProperties;
214
+ if (additional === null || typeof additional !== "object" || Array.isArray(additional))
215
+ return undefined;
216
+ return additional;
217
+ }
218
+ //# sourceMappingURL=body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../src/runtime/body.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import type { QueryCapability } from "../spec/extensions.ts";
10
10
  import type { OperationModel, SpecModel } from "../spec/graph.ts";
11
11
  import type { Client } from "./client.ts";
12
12
  import type { FindingCollector } from "./finding.ts";
13
+ import type { UploadContext } from "./upload.ts";
13
14
  import type { SchemaValidator } from "./validate.ts";
14
15
  import { type Record_ } from "./world.ts";
15
16
  /** A resolved principal as checks see it — identity, lattice position, and how to speak as it. */
@@ -53,6 +54,8 @@ export interface CheckContext {
53
54
  altScope: Record<string, string> | undefined;
54
55
  validator: SchemaValidator | undefined;
55
56
  seed: number;
57
+ /** File pool / dummy resolution for multipart parts. */
58
+ uploads: UploadContext;
56
59
  /** Operations on this entity declared async via `x-async`. */
57
60
  asyncOps: OperationModel[];
58
61
  /** Operations on this entity that declare `x-effects`. */
@@ -1 +1 @@
1
- {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../src/runtime/checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../src/runtime/checks.ts"],"names":[],"mappings":"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"}