@superbee/core 0.2.0-pre.37 → 0.2.0-pre.38

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 (63) hide show
  1. package/README.md +79 -1
  2. package/dist/connector-request.d.ts +28 -3
  3. package/dist/connector-request.d.ts.map +1 -1
  4. package/dist/connector-request.js +128 -3
  5. package/dist/connector-request.js.map +1 -1
  6. package/dist/connectors.d.ts +27 -2
  7. package/dist/connectors.d.ts.map +1 -1
  8. package/dist/connectors.js +47 -4
  9. package/dist/connectors.js.map +1 -1
  10. package/dist/cross-bundle.d.ts.map +1 -1
  11. package/dist/cross-bundle.js +9 -4
  12. package/dist/cross-bundle.js.map +1 -1
  13. package/dist/document-transfer.d.ts +208 -0
  14. package/dist/document-transfer.d.ts.map +1 -0
  15. package/dist/document-transfer.js +928 -0
  16. package/dist/document-transfer.js.map +1 -0
  17. package/dist/engine.d.ts +6 -4
  18. package/dist/engine.d.ts.map +1 -1
  19. package/dist/engine.js +14 -7
  20. package/dist/engine.js.map +1 -1
  21. package/dist/filesystem-identity.d.ts +2 -10
  22. package/dist/filesystem-identity.d.ts.map +1 -1
  23. package/dist/filesystem-identity.js +2 -12
  24. package/dist/filesystem-identity.js.map +1 -1
  25. package/dist/identity-fold.d.ts +18 -0
  26. package/dist/identity-fold.d.ts.map +1 -0
  27. package/dist/identity-fold.js +22 -0
  28. package/dist/identity-fold.js.map +1 -0
  29. package/dist/index.d.ts +6 -2
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +4 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/link-emit.d.ts +29 -0
  34. package/dist/link-emit.d.ts.map +1 -0
  35. package/dist/link-emit.js +39 -0
  36. package/dist/link-emit.js.map +1 -0
  37. package/dist/links.d.ts +32 -1
  38. package/dist/links.d.ts.map +1 -1
  39. package/dist/links.js +49 -7
  40. package/dist/links.js.map +1 -1
  41. package/dist/paths.d.ts +2 -0
  42. package/dist/paths.d.ts.map +1 -1
  43. package/dist/paths.js +7 -0
  44. package/dist/paths.js.map +1 -1
  45. package/dist/remote-backend.d.ts.map +1 -1
  46. package/dist/remote-backend.js +1 -8
  47. package/dist/remote-backend.js.map +1 -1
  48. package/dist/source-engine/guard.d.ts +10 -1
  49. package/dist/source-engine/guard.d.ts.map +1 -1
  50. package/dist/source-engine/guard.js +5 -1
  51. package/dist/source-engine/guard.js.map +1 -1
  52. package/dist/source-engine/observe.d.ts.map +1 -1
  53. package/dist/source-engine/observe.js +12 -2
  54. package/dist/source-engine/observe.js.map +1 -1
  55. package/dist/source-engine/types.d.ts +5 -0
  56. package/dist/source-engine/types.d.ts.map +1 -1
  57. package/dist/source-harness/fixture.d.ts +3 -1
  58. package/dist/source-harness/fixture.d.ts.map +1 -1
  59. package/dist/source-harness/fixture.js +3 -0
  60. package/dist/source-harness/fixture.js.map +1 -1
  61. package/dist/source-profiles/index.d.ts +1 -1
  62. package/dist/source-profiles/index.js +1 -1
  63. package/package.json +2 -2
package/README.md CHANGED
@@ -1079,7 +1079,7 @@ the run's status interpretation and request budget.
1079
1079
  Existing declaration pins without a request block remain unchanged. Credentialed engine consumers
1080
1080
  must now supply a request declaration: `declaration_required` refuses a missing one before any
1081
1081
  transport call. Parsing and installation remain inert. Provider read paths, read-shaped POST paths,
1082
- headers and paging forms are core-owned, deeply frozen, and revalidated at every run; caller rules
1082
+ headers and paging forms default to the legacy Core-owned, deeply frozen table and are revalidated at every run; caller rules
1083
1083
  can only narrow them. Callback URL/response views are isolated from execution; changing a view
1084
1084
  cannot rewrite the request. Core rechecks its private run authority after narrowing callbacks.
1085
1085
  Keyless legacy profiles retain the declared-domain and robots rules.
@@ -1101,6 +1101,84 @@ and bound String/ID inputs. GraphQL execution is deferred to the later GraphQL p
1101
1101
  does not establish resource-scoped traversal. Mutations and malformed extension bodies are refused
1102
1102
  by the engine wrapper; caller hooks cannot enable them.
1103
1103
 
1104
+ ## Explicit local bound GET policies
1105
+
1106
+ An optional `request.read_policy` requests a new narrowly bound GET scope without adding a provider
1107
+ adapter or changing the legacy endpoint table. The local operator must review the exact endpoint,
1108
+ query and provider read semantics before accepting its feed binding. GET alone is not proof of
1109
+ absence of side effects. A package or policy declaration does not approve itself.
1110
+
1111
+ For a repository pull list, the existing request is still the only endpoint/query/header declaration:
1112
+
1113
+ ```yaml
1114
+ host: api.github.com
1115
+ method: GET
1116
+ path: '/repos/{owner}/{repo}/pulls'
1117
+ items: ''
1118
+ query: {state: all}
1119
+ headers: {accept: application/vnd.github+json, x-github-api-version: '2026-03-10'}
1120
+ paging: {kind: page-number, page_param: page, size_param: per_page, size: 30}
1121
+ read_policy:
1122
+ contract: 1
1123
+ kind: bound-get
1124
+ bindings: {owner: segment, repo: segment}
1125
+ required_permissions: {pull_requests: read}
1126
+ header_provider: github
1127
+ ```
1128
+
1129
+ Use identity resource `https://github.com/{owner}/{repo}/pulls`. For a separately bound detail
1130
+ source, use resource `https://github.com/{owner}/{repo}/pull/{number}`, request path
1131
+ `/repos/{owner}/{repo}/pulls/{number}`, `number: positive-integer`, no list query and
1132
+ `paging: {kind: none}`. Detail object normalization belongs in the integration; no Core PR adapter
1133
+ is added. GitHub documents both [GET endpoints and permission minima](https://docs.github.com/en/rest/pulls/pulls).
1134
+ `pull_requests: read` is a common minimum. GitHub App declarations must include the requested
1135
+ permissions at read or write; write grants are disclosed and do not authorize source writes.
1136
+ Opaque token grants cannot be inspected by Core: minima are declarations and the provider enforces
1137
+ actual credential access.
1138
+
1139
+ Contract 1 permits one exact host/path, GET only, no body, GraphQL or watermark. Every identity
1140
+ parameter appears once as an entire request path segment. Binding keys equal the identity
1141
+ placeholder set; `segment` uses the existing safe resource grammar, while `positive-integer` is
1142
+ canonical decimal 1 through `Number.MAX_SAFE_INTEGER`. The public resolver validates the identity
1143
+ with the existing parser and requires parameters to render `bound.resource` byte for byte, even
1144
+ when a library caller constructs `BoundFeed` directly.
1145
+
1146
+ Queries require every exact literal or whole bound-value placeholder once. Cursor, watermark and
1147
+ free page placeholders are refused. Paging supports only absent/none or page-number. Page/size
1148
+ names must be distinct and outside query; none permits no inactive fields, and page-number permits
1149
+ only kind/page_param/size_param/size. Every request requires one positive page and, when named,
1150
+ one exact pinned size. New policies inherit no provider numeric aliases or cursor forms.
1151
+
1152
+ Declared headers are required once with exact values at every hop; omission, case duplicates and
1153
+ undeclared headers refuse. An absent header map selects the existing `accept: application/json`
1154
+ default; an explicit map is complete. Incremental engine validators are the only profile-header
1155
+ exception, and complete mode refuses them. Generated user-agent/accept-encoding remain engine/transport
1156
+ owned. Existing forbidden credential/override headers and transport stripping still apply.
1157
+ `PROVIDER_HEADER_RULES` is separate from `AUTH_PROVIDERS`: GitHub permits only an exact calendar-date
1158
+ `x-github-api-version` literal toward `api.github.com`. For anonymous sources use `auth: {kind: none}`,
1159
+ `domains: [api.github.com]`, and omit permission minima. Header-provider selection never creates a
1160
+ credential destination or bypasses keyless robots rules.
1161
+
1162
+ `inspectSourceReadPolicy(connectorAuthAndDomains, bound)` from `@superbee/core/connectors` is inert
1163
+ and throws on an invalid declaration/binding. It returns normalized scope and a digest binding
1164
+ request, source, resource, parameters, auth, domains and resolved policy/header semantics. The trusted
1165
+ embedding host supplies `readPolicyApproval: {contract: 1, digest}` to `observeSource` only after its
1166
+ own exact admission. Missing/stale approval refuses before profile callbacks, state replay or transport.
1167
+ The digest is publicly computable: it is a host assertion, not an unforgeable capability or proof of a
1168
+ human click. Caller rules can only narrow Core authority.
1169
+
1170
+ `SourceFixture.readPolicyApproval` forwards the same explicit assertion to the public recorded
1171
+ harness. It is fixture-only and grants no production consent. The CLI `source test` JSON schema does
1172
+ not carry that field and does not auto-approve new policies; use supported public Core/harness APIs
1173
+ for those recorded tests. Existing legacy fixtures require no new argument.
1174
+
1175
+ The local CLI previews new-policy bindings without importing code or reading credentials and uses
1176
+ existing `source bind --accept` to record exact consent. Any change requires explicit rebind and
1177
+ resets acquired state. Unchanged legacy issue declarations retain their historical pin and consent
1178
+ projections. Managed consumers remain denied without separately deployed operator admission; this
1179
+ public API does not establish deployed managed-host adoption. Trusted plugin code still runs with
1180
+ ambient process authority; the guarded transport is not a sandbox.
1181
+
1104
1182
  ## Declared Kind model
1105
1183
 
1106
1184
  `@superbee/core/domain-model` exports `projectDomainModelV0(registry)` and its
@@ -1,7 +1,16 @@
1
1
  import { type Connector, type ConnectorSource, type BoundFeed } from "./connectors.js";
2
2
  import type { RequestRules, ProfileResponse } from "./source-engine/types.js";
3
3
  export type Scalar = string | number | boolean | null;
4
+ /** Requested local read scope; execution also requires the embedding host's exact approval. */
5
+ export interface ConnectorReadPolicy {
6
+ contract: 1;
7
+ kind: "bound-get";
8
+ bindings: Record<string, "segment" | "positive-integer">;
9
+ required_permissions?: Record<string, "read">;
10
+ header_provider?: "github";
11
+ }
4
12
  export interface ConnectorRequest {
13
+ read_policy?: ConnectorReadPolicy;
5
14
  host: string;
6
15
  method: "GET" | "POST";
7
16
  path: string;
@@ -71,6 +80,19 @@ export declare const AUTH_PROVIDER_REQUEST_RULES: Readonly<Record<string, typeof
71
80
  export declare function providerRequestRules(auth: Connector["auth"]): typeof githubRules | undefined;
72
81
  export declare const object: (v: unknown) => v is Record<string, unknown>;
73
82
  export declare const placeholders: (s: string) => string[];
83
+ /** Header constraints are independent of credential destinations and grant no credential authority. */
84
+ export declare const PROVIDER_HEADER_RULES: Readonly<{
85
+ github: Readonly<{
86
+ rules: 1;
87
+ hosts: readonly string[];
88
+ headers: Readonly<{
89
+ "x-github-api-version": "calendar-date";
90
+ }>;
91
+ }>;
92
+ }>;
93
+ export declare function readPolicySemantics(policy: ConnectorReadPolicy): object;
94
+ /** @internal One canonical integer predicate for binding and paging authority. */
95
+ export declare const readPolicyInteger: (value: string) => boolean;
74
96
  /** A parsed single query, with all string/id inputs supplied by bound variables. */
75
97
  export declare function graphqlReadProblem(query: unknown, variables: unknown, parameters?: Readonly<Record<string, string>> | null): string | undefined;
76
98
  export declare function validateConnectorRequest(source: Pick<ConnectorSource, "request" | "identity">, connector?: Pick<Connector, "auth" | "domains">): Array<{
@@ -79,9 +101,12 @@ export declare function validateConnectorRequest(source: Pick<ConnectorSource, "
79
101
  }>;
80
102
  export declare function readPath(value: unknown, path: string): unknown;
81
103
  export declare function renderRequestValue(value: Scalar, parameters: Readonly<Record<string, string>>, dynamic: Record<string, string>): Scalar;
82
- /** Guard-owned rules. Caller hooks may narrow these rules but cannot widen them. */
83
- export declare function declarationRequestRules(connector: Pick<Connector, "auth" | "domains">, bound: BoundFeed): RequestRules & {
104
+ /** Private authority, distinct from caller-supplied narrowing hooks. */
105
+ export interface DeclarationRequestRules extends RequestRules {
84
106
  response(response: ProfileResponse): void;
85
- };
107
+ headers?(entries: ReadonlyArray<readonly [string, unknown]>, conditional: boolean): boolean;
108
+ }
109
+ /** Guard-owned rules. Caller hooks may narrow these rules but cannot widen them. */
110
+ export declare function declarationRequestRules(connector: Pick<Connector, "auth" | "domains">, bound: BoundFeed): DeclarationRequestRules;
86
111
  export {};
87
112
  //# sourceMappingURL=connector-request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connector-request.d.ts","sourceRoot":"","sources":["../src/connector-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connector-request.d.ts","sourceRoot":"","sources":["../src/connector-request.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /** Closed declarative request grammar and provider-owned read scope. */
2
2
  import { parse, visit, Kind } from "graphql/language/index.js";
3
- import { CONNECTOR_KEYS, credentialHosts } from "./connectors.js";
3
+ import { CONNECTOR_KEYS, credentialHosts, inspectSourceReadPolicy, containsCredentialText } from "./connectors.js";
4
4
  const githubRules = Object.freeze({
5
5
  // GitHub Docs: REST issues/list-repository-issues, REST pagination, forming GraphQL calls.
6
6
  read_paths: Object.freeze(["/repos/{owner}/{repo}/issues", "/graphql"]),
@@ -21,6 +21,94 @@ const safeName = (s) => /^[A-Za-z_][A-Za-z0-9_-]*$/.test(s) && !["__proto__", "p
21
21
  const dotted = (s) => typeof s === "string" && s.length <= 512 && (s === "" || s.split(".").every(safeName));
22
22
  const scalar = (v) => v === null || typeof v === "string" || typeof v === "boolean" || typeof v === "number" && Number.isFinite(v);
23
23
  export const placeholders = (s) => [...s.matchAll(/\{([A-Za-z][A-Za-z0-9_]*)\}/g)].map(m => m[1]);
24
+ /** Header constraints are independent of credential destinations and grant no credential authority. */
25
+ export const PROVIDER_HEADER_RULES = Object.freeze({
26
+ github: Object.freeze({ rules: 1, hosts: Object.freeze(["api.github.com"]), headers: Object.freeze({ "x-github-api-version": "calendar-date" }) }),
27
+ });
28
+ export function readPolicySemantics(policy) {
29
+ return { rules: 1, contract: policy.contract, kind: policy.kind,
30
+ header_provider: policy.header_provider === "github" ? PROVIDER_HEADER_RULES.github : null };
31
+ }
32
+ /** @internal One canonical integer predicate for binding and paging authority. */
33
+ export const readPolicyInteger = (value) => /^[1-9][0-9]*$/.test(value) && Number.isSafeInteger(Number(value));
34
+ const calendarDate = (value) => typeof value === "string" && /^\d{4}-\d{2}-\d{2}$/.test(value)
35
+ && Number.isFinite(Date.parse(`${value}T00:00:00Z`)) && new Date(`${value}T00:00:00Z`).toISOString().slice(0, 10) === value;
36
+ function validateReadPolicy(source, connector, fail) {
37
+ const r = source.request;
38
+ const p = r.read_policy;
39
+ if (!object(p)) {
40
+ fail("/read_policy", "must be a mapping");
41
+ return;
42
+ }
43
+ for (const key of Object.keys(p))
44
+ if (!CONNECTOR_KEYS.read_policy.includes(key))
45
+ fail(`/read_policy/${key}`, "unknown read_policy key");
46
+ if (p.contract !== 1 || p.kind !== "bound-get")
47
+ fail("/read_policy", "requires contract 1 bound-get");
48
+ const params = placeholders(source.identity.resource);
49
+ if (!object(p.bindings) || Object.keys(p.bindings).length > 32)
50
+ fail("/read_policy/bindings", "requires at most 32 typed bindings");
51
+ else {
52
+ if (Object.keys(p.bindings).length !== params.length || params.some(name => !Object.hasOwn(p.bindings, name)))
53
+ fail("/read_policy/bindings", "keys must equal identity parameters");
54
+ for (const [name, type] of Object.entries(p.bindings))
55
+ if (!safeName(name) || !params.includes(name) || type !== "segment" && type !== "positive-integer")
56
+ fail("/read_policy/bindings", "invalid binding type or name");
57
+ }
58
+ const paths = typeof r.path === "string" ? placeholders(r.path) : [];
59
+ if (paths.length !== params.length || params.some(name => paths.filter(path => path === name).length !== 1))
60
+ fail("/path", "bound-get path requires each identity parameter exactly once");
61
+ if (r.method !== "GET" || r.body !== undefined || r.graphql !== undefined || r.watermark !== undefined)
62
+ fail("/read_policy", "bound-get permits only GET without body, GraphQL or watermark");
63
+ for (const value of Object.values(r.query ?? {}))
64
+ if (typeof value === "string" && placeholders(value).some(name => !params.includes(name) || ["page", "cursor", "watermark"].includes(name)))
65
+ fail("/query", "query placeholders must name only bound identity values");
66
+ const paging = r.paging;
67
+ if (paging) {
68
+ const keys = paging.kind === "none" ? ["kind"] : ["kind", "page_param", "size_param", "size"];
69
+ if (!["none", "page-number"].includes(paging.kind) || Object.keys(paging).some(key => !keys.includes(key)))
70
+ fail("/paging", "bound-get supports only none or page-number fields");
71
+ if (paging.kind === "page-number") {
72
+ if (paging.page_param === paging.size_param || [paging.page_param, paging.size_param].some(name => name !== undefined && Object.hasOwn(r.query ?? {}, name)))
73
+ fail("/paging", "paging names must be distinct and outside query");
74
+ }
75
+ }
76
+ if (p.required_permissions !== undefined && (!object(p.required_permissions) || Object.keys(p.required_permissions).length === 0 || Object.keys(p.required_permissions).length > 32
77
+ || Object.entries(p.required_permissions).some(([name, access]) => !/^[a-z][a-z0-9_]*$/.test(name) || !safeName(name) || access !== "read")))
78
+ fail("/read_policy/required_permissions", "requires 1 to 32 read permission minima");
79
+ if (p.header_provider !== undefined && p.header_provider !== "github")
80
+ fail("/read_policy/header_provider", "unknown header provider");
81
+ const headerRules = p.header_provider === "github" ? PROVIDER_HEADER_RULES.github : undefined;
82
+ if (headerRules && !headerRules.hosts.includes(r.host))
83
+ fail("/host", "header provider requires its exact host");
84
+ for (const [name, value] of Object.entries(r.headers ?? {})) {
85
+ if (typeof value !== "string" || /[{}]/.test(value) || containsCredentialText(value) || /^bearer /i.test(value) || !/^[\t\x20-\x7e]{0,8192}$/.test(value))
86
+ fail(`/headers/${name}`, "requires a bounded literal header value");
87
+ if (name !== "accept" && !(headerRules && Object.hasOwn(headerRules.headers, name) && headerRules.headers[name] === "calendar-date" && calendarDate(value)))
88
+ fail(`/headers/${name}`, "header is outside the provider name/value constraints");
89
+ }
90
+ if (connector) {
91
+ const auth = connector.auth;
92
+ const provider = auth.kind === "github-app" ? "github" : auth.provider;
93
+ if (auth.kind === "none") {
94
+ if (p.required_permissions !== undefined)
95
+ fail("/read_policy/required_permissions", "anonymous sources have no credential permission minima");
96
+ }
97
+ else {
98
+ if (auth.kind !== "github-app" && auth.kind !== "token" && auth.kind !== "oauth2" || !credentialHosts(auth).includes(r.host))
99
+ fail("/host", "bound-get credential must name its provider host");
100
+ if (!object(p.required_permissions) || Object.keys(p.required_permissions).length === 0)
101
+ fail("/read_policy/required_permissions", "credentialed bound-get requires read permission minima");
102
+ if (auth.kind === "github-app" && object(p.required_permissions))
103
+ for (const name of Object.keys(p.required_permissions)) {
104
+ if (auth.permissions?.[name] !== "read" && auth.permissions?.[name] !== "write")
105
+ fail("/read_policy/required_permissions", "required permission is not declared by auth");
106
+ }
107
+ if (p.header_provider !== undefined && p.header_provider !== provider)
108
+ fail("/read_policy/header_provider", "header provider must agree with auth");
109
+ }
110
+ }
111
+ }
24
112
  /** A parsed single query, with all string/id inputs supplied by bound variables. */
25
113
  export function graphqlReadProblem(query, variables, parameters) {
26
114
  if (typeof query !== "string" || query.length > 65536 || !object(variables))
@@ -217,19 +305,21 @@ export function validateConnectorRequest(source, connector) {
217
305
  for (const p of params)
218
306
  if (!mentions.includes(`{${p}}`))
219
307
  fail("", "every resource binding placeholder must appear in the request");
308
+ if (r.read_policy !== undefined)
309
+ validateReadPolicy(source, connector, fail);
220
310
  if (connector) {
221
311
  const credential = credentialHosts(connector.auth).includes(r.host);
222
312
  const row = providerRequestRules(connector.auth);
223
313
  if (!credential && !connector.domains.includes(r.host))
224
314
  fail("/host", "host is not declared");
225
- if (credential && !row?.read_paths.includes(r.path))
315
+ if (r.read_policy === undefined && credential && !row?.read_paths.includes(r.path))
226
316
  fail("/path", "path is outside the provider read_paths");
227
317
  if (r.method === "POST" && (!credential || !row?.read_posts.some(p => p.path === r.path)))
228
318
  fail("/method", "POST is outside provider read_posts");
229
319
  if (r.path === "/graphql" && !r.graphql)
230
320
  fail("/graphql", "GraphQL path requires a parsed query declaration");
231
321
  for (const name of Object.keys(r.headers ?? {}))
232
- if (name !== name.toLowerCase() || name !== "accept" && !row?.headers.includes(name))
322
+ if (r.read_policy === undefined && (name !== name.toLowerCase() || name !== "accept" && !row?.headers.includes(name)))
233
323
  fail(`/headers/${name}`, "header is outside the provider allowlist");
234
324
  }
235
325
  return errors;
@@ -256,6 +346,41 @@ export function renderRequestValue(value, parameters, dynamic) {
256
346
  /** Guard-owned rules. Caller hooks may narrow these rules but cannot widen them. */
257
347
  export function declarationRequestRules(connector, bound) {
258
348
  const request = bound.source.request;
349
+ if (request.read_policy !== undefined) {
350
+ const scope = inspectSourceReadPolicy(connector, bound);
351
+ return {
352
+ header: name => Object.hasOwn(scope.headers, name),
353
+ headers(entries, conditional) {
354
+ const actual = new Map();
355
+ for (const [raw, value] of entries) {
356
+ const name = raw.toLowerCase();
357
+ if (actual.has(name))
358
+ return false;
359
+ actual.set(name, value);
360
+ }
361
+ for (const [name, value] of Object.entries(scope.headers))
362
+ if (actual.get(name) !== value)
363
+ return false;
364
+ return [...actual.keys()].every(name => Object.hasOwn(scope.headers, name) || conditional && ["if-none-match", "if-modified-since"].includes(name));
365
+ },
366
+ url(url, hop) {
367
+ if (url.hostname !== scope.host || hop.method !== "GET" || url.pathname !== scope.path)
368
+ return false;
369
+ const expected = new Map(Object.entries(scope.query));
370
+ if (scope.paging.kind === "page-number") {
371
+ const values = url.searchParams.getAll(scope.paging.page_param);
372
+ if (values.length !== 1 || !readPolicyInteger(values[0]))
373
+ return false;
374
+ expected.set(scope.paging.page_param, values[0]);
375
+ if (scope.paging.size_param)
376
+ expected.set(scope.paging.size_param, String(scope.paging.size));
377
+ }
378
+ return [...url.searchParams].length === expected.size && [...expected].every(([name, value]) => url.searchParams.getAll(name).length === 1 && url.searchParams.get(name) === value);
379
+ },
380
+ post: () => false,
381
+ response() { },
382
+ };
383
+ }
259
384
  const row = providerRequestRules(connector.auth);
260
385
  const parameters = bound.parameters;
261
386
  const bindingsValid = placeholders(bound.source.identity.resource).every(name => typeof parameters[name] === "string" && parameters[name] !== "" && parameters[name] !== "." && parameters[name] !== "..");
@@ -1 +1 @@
1
- {"version":3,"file":"connector-request.js","sourceRoot":"","sources":["../src/connector-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connector-request.js","sourceRoot":"","sources":["../src/connector-request.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,8 @@
16
16
  * Storage-neutral: no Node globals or builtins.
17
17
  */
18
18
  import { type ConnectorRequest } from "./connector-request.js";
19
- export { AUTH_PROVIDER_REQUEST_RULES, validateConnectorRequest, readPath as readSourcePath, renderRequestValue } from "./connector-request.js";
20
- export type { ConnectorRequest } from "./connector-request.js";
19
+ export { AUTH_PROVIDER_REQUEST_RULES, PROVIDER_HEADER_RULES, validateConnectorRequest, readPath as readSourcePath, renderRequestValue } from "./connector-request.js";
20
+ export type { ConnectorRequest, ConnectorReadPolicy } from "./connector-request.js";
21
21
  import { type KindConvention, type KindRegistry } from "./kinds.js";
22
22
  import type { Finding, OverlayPolicy, RecordChange } from "./record-overlay/types.js";
23
23
  import type { ConceptId, Frontmatter, OkfDocument } from "./types.js";
@@ -39,6 +39,7 @@ export declare const CONNECTOR_KEYS: Readonly<{
39
39
  auth: readonly string[];
40
40
  source: readonly string[];
41
41
  request: readonly string[];
42
+ read_policy: readonly string[];
42
43
  paging: readonly string[];
43
44
  watermark: readonly string[];
44
45
  errors: readonly string[];
@@ -195,6 +196,30 @@ export declare function bindSourceFeed(connector: Connector, feed: {
195
196
  }, kinds: KindRegistry, options?: {
196
197
  okfVersion?: "0.1" | "0.2";
197
198
  }): BoundFeed;
199
+ /** Inert, normalized scope. A digest is a host approval assertion, never an unforgeable grant. */
200
+ export interface SourceReadPolicyInspection {
201
+ contract: 1;
202
+ digest: string;
203
+ host: string;
204
+ path: string;
205
+ query: Record<string, string>;
206
+ headers: Record<string, string>;
207
+ paging: {
208
+ kind: "none";
209
+ } | {
210
+ kind: "page-number";
211
+ page_param: string;
212
+ size_param?: string;
213
+ size: number;
214
+ };
215
+ resource: string;
216
+ parameters: Record<string, string>;
217
+ credential_hosts: readonly string[];
218
+ required_permissions: Record<string, "read">;
219
+ semantics: object;
220
+ }
221
+ /** Inspect a requested bound GET without executing code, consulting credentials or granting a run. */
222
+ export declare function inspectSourceReadPolicy(connector: Pick<Connector, "auth" | "domains">, bound: BoundFeed): SourceReadPolicyInspection;
198
223
  export type MappingDiagnosticCode = "VALUE_UNMAPPED" | "VALUE_NOT_SCALAR" | "VALUE_NOT_LIST" | "VALUE_MISSING" | "RECORD_REFUSED" | "IDENTITY_MISSING" | "IDENTITY_INVALID";
199
224
  /** Why a record's value was not written; `native` is the provider value, `external_id` the record's. */
200
225
  export interface MappingDiagnostic {
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../src/connectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAwF,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrJ,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,QAAQ,IAAI,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACtK,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAqD,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAKvH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEtF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,6GAA6G;AAC7G,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAErE,CAAC;AAGH,wGAAwG;AACxG,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;EAmB6B,CAAC;AACzD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,cAAc,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gFAAgG,CAAC;AAErI,eAAO,MAAM,qBAAqB,8eAkBvB,CAAC;AACZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAC9F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IAC/C,wBAAwB;IACxB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AACD,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC9B;AACD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzC,YAAY,EAAE,UAAU,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AACD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC7B;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AACD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uCAAuC;IACvC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAAE,GACjE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC;AAc5C,qEAAqE;AACrE,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,OAAoC,CAAC;AA+BpF,2GAA2G;AAC3G,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,SAAS,MAAM,EAAE,CAMjG;AAgdD,sGAAsG;AACtG,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,gBAAgB,EAAE,MAAM,GACnH;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,CAKhF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,GAAE;IAAE,KAAK,CAAC,EAAE,YAAY,CAAA;CAAO,GAAG,oBAAoB,CAgE5G;AAED,sGAAsG;AACtG,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE,CAMtG;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAkC;AA+B/F;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CA4B/D;AAID,MAAM,WAAW,SAAS;IACxB,0EAA0E;IAC1E,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,EACjD,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CAAO,GAC3C,SAAS,CAwDX;AAED,kGAAkG;AAClG,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,CAAC,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,IAAI,EAAE,aAAa,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC;IACtG,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sGAAsG;AACtG,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,GAAG,0BAA0B,CAuBpI;AAID,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAE5K,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,YAAY,GACpB;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,mFAAmF;IACnF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC,GACC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC;AAExG,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAAC;AA0CvH,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAI1H;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,YAAY,CA4CrH;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAClD,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,EAC/C,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACjD,YAAY,CAgBd;AA2BD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,EAAE,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,EAAE,CA2B3G"}
@@ -15,8 +15,8 @@
15
15
  * change; {@link findingsFor} turns diagnostics into findings for `planFindings`.
16
16
  * Storage-neutral: no Node globals or builtins.
17
17
  */
18
- import { validateConnectorRequest } from "./connector-request.js";
19
- export { AUTH_PROVIDER_REQUEST_RULES, validateConnectorRequest, readPath as readSourcePath, renderRequestValue } from "./connector-request.js";
18
+ import { validateConnectorRequest, readPolicySemantics, readPolicyInteger, renderRequestValue } from "./connector-request.js";
19
+ export { AUTH_PROVIDER_REQUEST_RULES, PROVIDER_HEADER_RULES, validateConnectorRequest, readPath as readSourcePath, renderRequestValue } from "./connector-request.js";
20
20
  import { compareCodePoints } from "./code-point-order.js";
21
21
  import { isStandardDocumentSetField } from "./document-field-actions.js";
22
22
  import { PROGRESS_STATUS_FIELD, isKindListField, isPresent } from "./kinds.js";
@@ -45,7 +45,8 @@ const GITHUB_APP_HOSTS = Object.freeze(["api.github.com"]);
45
45
  export const CONNECTOR_KEYS = Object.freeze({
46
46
  auth: Object.freeze(["kind", "provider", "permissions", "scheme"]),
47
47
  source: Object.freeze(["name", "profile", "target_kind", "mode", "identity", "fields", "completeness", "request"]),
48
- request: Object.freeze(["host", "method", "path", "query", "body", "headers", "items", "skip", "fields", "paging", "watermark", "complete", "errors", "rate", "graphql"]),
48
+ request: Object.freeze(["host", "method", "path", "query", "body", "headers", "items", "skip", "fields", "paging", "watermark", "complete", "errors", "rate", "graphql", "read_policy"]),
49
+ read_policy: Object.freeze(["contract", "kind", "bindings", "required_permissions", "header_provider"]),
49
50
  paging: Object.freeze(["kind", "cursor_path", "next_path", "size_param", "size", "page_param", "offset_param"]),
50
51
  watermark: Object.freeze(["field", "param", "overlap_seconds"]),
51
52
  errors: Object.freeze(["deferred", "credential_refused", "not_found"]),
@@ -850,8 +851,10 @@ export function connectorPinDigest(connector) {
850
851
  credential_hosts: [...credentialHosts(connector.auth)].sort(),
851
852
  domains: [...connector.domains].sort(),
852
853
  // The parsed sources, under the same label whichever document key they were read from.
854
+ ...(connector.sources.some(source => source.request?.read_policy !== undefined) ? { read_policy_semantics: byName(connector.sources).filter(source => source.request?.read_policy !== undefined).map(source => ({ name: source.name, semantics: readPolicySemantics(source.request.read_policy) })) } : {}),
853
855
  sources: byName(connector.sources).map((source) => pinBlock("source", PIN_DEFAULTS.source(source), {
854
856
  request: (v) => pinBlock("request", v, {
857
+ read_policy: (x) => pinBlock("read_policy", x),
855
858
  paging: (x) => pinBlock("paging", x), watermark: (x) => pinBlock("watermark", x),
856
859
  errors: (x) => pinBlock("errors", x), rate: (x) => pinBlock("rate", x),
857
860
  graphql: (x) => pinBlock("graphql", x), fields: mapOf("transform"),
@@ -941,7 +944,47 @@ export function bindSourceFeed(connector, feed, kinds, options = {}) {
941
944
  if (ownedLists.length && edition !== "0.2") {
942
945
  refuse("owned_fields", `owned list fields need an OKF v0.2 bundle, and this bundle is v${edition}: ${ownedLists.join(", ")}`, { fields: ownedLists, okf_version: edition });
943
946
  }
944
- return { policy: { ...policy, target_kind: bound.target_kind, completeness: bound.completeness }, source: bound, kind: kind, parameters, resource };
947
+ const result = { policy: { ...policy, target_kind: bound.target_kind, completeness: bound.completeness }, source: bound, kind: kind, parameters, resource };
948
+ if (bound.request?.read_policy !== undefined) {
949
+ try {
950
+ inspectSourceReadPolicy(connector, result);
951
+ }
952
+ catch {
953
+ refuse("url", "the bound read policy or resource is invalid");
954
+ }
955
+ }
956
+ return result;
957
+ }
958
+ /** Inspect a requested bound GET without executing code, consulting credentials or granting a run. */
959
+ export function inspectSourceReadPolicy(connector, bound) {
960
+ const request = bound.source.request;
961
+ if (request?.read_policy === undefined || validateConnectorRequest(bound.source, connector).length)
962
+ throw new Error("invalid source read policy");
963
+ const template = parseResourceTemplate(bound.source.identity.resource);
964
+ if (!template.ok || !record(bound.parameters) || typeof bound.resource !== "string")
965
+ throw new Error("invalid source resource binding");
966
+ const names = template.value.parts.flatMap(part => "name" in part ? [part.name] : []);
967
+ if (Object.keys(bound.parameters).length !== names.length || names.some(name => !Object.hasOwn(bound.parameters, name)))
968
+ throw new Error("invalid source parameter keys");
969
+ for (const name of names) {
970
+ const value = bound.parameters[name];
971
+ if (typeof value !== "string" || !new RegExp(`^${PARAMETER}$`).test(value) || value === "." || value === "..")
972
+ throw new Error("invalid source parameter");
973
+ if (request.read_policy.bindings[name] === "positive-integer" && !readPolicyInteger(value))
974
+ throw new Error("invalid integer binding");
975
+ }
976
+ const resource = template.value.parts.map(part => "name" in part ? bound.parameters[part.name] : part.literal).join("");
977
+ if (resource !== bound.resource || !template.value.matcher.test(resource))
978
+ throw new Error("inconsistent source resource binding");
979
+ const path = request.path.replace(/\{([A-Za-z][A-Za-z0-9_]*)\}/g, (_, name) => encodeURIComponent(bound.parameters[name]));
980
+ const query = Object.fromEntries(Object.entries(request.query ?? {}).map(([name, value]) => [name, String(renderRequestValue(value, bound.parameters, {}))]));
981
+ const headers = Object.fromEntries(Object.entries(request.headers ?? { accept: "application/json" }).map(([name, value]) => [name, value]));
982
+ const paging = request.paging?.kind === "page-number" ? { kind: "page-number", page_param: request.paging.page_param, size: request.paging.size, ...(request.paging.size_param ? { size_param: request.paging.size_param } : {}) } : { kind: "none" };
983
+ const semantics = readPolicySemantics(request.read_policy);
984
+ const scope = { contract: 1, host: request.host, path, query, headers, paging, resource, parameters: { ...bound.parameters },
985
+ credential_hosts: [...credentialHosts(connector.auth)].sort(), required_permissions: { ...request.read_policy.required_permissions }, semantics };
986
+ const digest = `sha256:${sha256Hex(definitionCanonicalJson({ scope, auth: connector.auth, domains: [...connector.domains].sort(), source: bound.source }))}`;
987
+ return { ...scope, digest };
945
988
  }
946
989
  /** Own properties only, through plain mappings, never a prototype name. */
947
990
  function readPath(value, path) {