@superbee/core 0.2.0-pre.16 → 0.2.0-pre.19
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 +622 -5
- package/dist/blob-journal.d.ts +187 -2
- package/dist/blob-journal.d.ts.map +1 -1
- package/dist/blob-journal.js +377 -5
- package/dist/blob-journal.js.map +1 -1
- package/dist/body-replace-guards.d.ts +50 -0
- package/dist/body-replace-guards.d.ts.map +1 -0
- package/dist/body-replace-guards.js +158 -0
- package/dist/body-replace-guards.js.map +1 -0
- package/dist/builtin-recipes/content.d.ts +93 -0
- package/dist/builtin-recipes/content.d.ts.map +1 -0
- package/dist/builtin-recipes/content.js +288 -0
- package/dist/builtin-recipes/content.js.map +1 -0
- package/dist/builtin-recipes.d.ts +10 -0
- package/dist/builtin-recipes.d.ts.map +1 -0
- package/dist/builtin-recipes.js +97 -0
- package/dist/builtin-recipes.js.map +1 -0
- package/dist/bundle-health/index.d.ts +14 -0
- package/dist/bundle-health/index.d.ts.map +1 -0
- package/dist/bundle-health/index.js +12 -0
- package/dist/bundle-health/index.js.map +1 -0
- package/dist/bundle-health/kind-findings.d.ts +44 -0
- package/dist/bundle-health/kind-findings.d.ts.map +1 -0
- package/dist/bundle-health/kind-findings.js +68 -0
- package/dist/bundle-health/kind-findings.js.map +1 -0
- package/dist/bundle-health/legacy-page.d.ts +39 -0
- package/dist/bundle-health/legacy-page.d.ts.map +1 -0
- package/dist/bundle-health/legacy-page.js +50 -0
- package/dist/bundle-health/legacy-page.js.map +1 -0
- package/dist/bundle-health/report.d.ts +202 -0
- package/dist/bundle-health/report.d.ts.map +1 -0
- package/dist/bundle-health/report.js +438 -0
- package/dist/bundle-health/report.js.map +1 -0
- package/dist/code-point-order.d.ts +8 -0
- package/dist/code-point-order.d.ts.map +1 -0
- package/dist/code-point-order.js +20 -0
- package/dist/code-point-order.js.map +1 -0
- package/dist/connectors.d.ts +223 -0
- package/dist/connectors.d.ts.map +1 -0
- package/dist/connectors.js +1143 -0
- package/dist/connectors.js.map +1 -0
- package/dist/document-field-actions.d.ts +18 -0
- package/dist/document-field-actions.d.ts.map +1 -1
- package/dist/document-field-actions.js +91 -29
- package/dist/document-field-actions.js.map +1 -1
- package/dist/document-mutation.d.ts +7 -9
- package/dist/document-mutation.d.ts.map +1 -1
- package/dist/document-mutation.js +16 -16
- package/dist/document-mutation.js.map +1 -1
- package/dist/file-journaled-backend.d.ts +31 -5
- package/dist/file-journaled-backend.d.ts.map +1 -1
- package/dist/file-journaled-backend.js +131 -118
- package/dist/file-journaled-backend.js.map +1 -1
- package/dist/hosted-client/blob-delivery.d.ts +6 -0
- package/dist/hosted-client/blob-delivery.d.ts.map +1 -1
- package/dist/hosted-client/blob-delivery.js +23 -1
- package/dist/hosted-client/blob-delivery.js.map +1 -1
- package/dist/hosted-client/blob-write.d.ts +386 -0
- package/dist/hosted-client/blob-write.d.ts.map +1 -0
- package/dist/hosted-client/blob-write.js +770 -0
- package/dist/hosted-client/blob-write.js.map +1 -0
- package/dist/hosted-client/client.d.ts +64 -0
- package/dist/hosted-client/client.d.ts.map +1 -1
- package/dist/hosted-client/client.js +31 -0
- package/dist/hosted-client/client.js.map +1 -1
- package/dist/hosted-client/directory.d.ts +46 -0
- package/dist/hosted-client/directory.d.ts.map +1 -0
- package/dist/hosted-client/directory.js +74 -0
- package/dist/hosted-client/directory.js.map +1 -0
- package/dist/hosted-client/errors.d.ts +10 -0
- package/dist/hosted-client/errors.d.ts.map +1 -1
- package/dist/hosted-client/errors.js +13 -0
- package/dist/hosted-client/errors.js.map +1 -1
- package/dist/hosted-client/inbox.d.ts +320 -0
- package/dist/hosted-client/inbox.d.ts.map +1 -0
- package/dist/hosted-client/inbox.js +379 -0
- package/dist/hosted-client/inbox.js.map +1 -0
- package/dist/hosted-client/index.d.ts +11 -4
- package/dist/hosted-client/index.d.ts.map +1 -1
- package/dist/hosted-client/index.js +11 -4
- package/dist/hosted-client/index.js.map +1 -1
- package/dist/hosted-client/journal.d.ts +103 -0
- package/dist/hosted-client/journal.d.ts.map +1 -0
- package/dist/hosted-client/journal.js +464 -0
- package/dist/hosted-client/journal.js.map +1 -0
- package/dist/hosted-client/node.d.ts +5 -1
- package/dist/hosted-client/node.d.ts.map +1 -1
- package/dist/hosted-client/node.js +6 -1
- package/dist/hosted-client/node.js.map +1 -1
- package/dist/hosted-client/write.d.ts +28 -2
- package/dist/hosted-client/write.d.ts.map +1 -1
- package/dist/hosted-client/write.js +33 -11
- package/dist/hosted-client/write.js.map +1 -1
- package/dist/hosted-transport/answer-rows.d.ts +3 -2
- package/dist/hosted-transport/answer-rows.d.ts.map +1 -1
- package/dist/hosted-transport/answer-rows.js +1 -1
- package/dist/hosted-transport/answer-rows.js.map +1 -1
- package/dist/hosted-transport/carrier.d.ts +10 -0
- package/dist/hosted-transport/carrier.d.ts.map +1 -1
- package/dist/hosted-transport/carrier.js +22 -2
- package/dist/hosted-transport/carrier.js.map +1 -1
- package/dist/hosted-transport/whole-document-transport.d.ts +1 -1
- package/dist/hosted-transport/whole-document-transport.d.ts.map +1 -1
- package/dist/hosted-transport/whole-document-transport.js +20 -12
- package/dist/hosted-transport/whole-document-transport.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/kind-authoring.d.ts +170 -0
- package/dist/kind-authoring.d.ts.map +1 -0
- package/dist/kind-authoring.js +451 -0
- package/dist/kind-authoring.js.map +1 -0
- package/dist/kind-conformance-error.d.ts +15 -0
- package/dist/kind-conformance-error.d.ts.map +1 -0
- package/dist/kind-conformance-error.js +20 -0
- package/dist/kind-conformance-error.js.map +1 -0
- package/dist/kinds-load.js +4 -4
- package/dist/kinds-load.js.map +1 -1
- package/dist/kinds.d.ts +2 -0
- package/dist/kinds.d.ts.map +1 -1
- package/dist/kinds.js +10 -2
- package/dist/kinds.js.map +1 -1
- package/dist/paths.d.ts +16 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +25 -0
- package/dist/paths.js.map +1 -1
- package/dist/query-filter.d.ts +9 -0
- package/dist/query-filter.d.ts.map +1 -1
- package/dist/query-filter.js +19 -3
- package/dist/query-filter.js.map +1 -1
- package/dist/recipe-lifecycle/stamp.d.ts +11 -0
- package/dist/recipe-lifecycle/stamp.d.ts.map +1 -1
- package/dist/recipe-lifecycle/stamp.js +6 -0
- package/dist/recipe-lifecycle/stamp.js.map +1 -1
- package/dist/record-overlay/apply.d.ts +43 -0
- package/dist/record-overlay/apply.d.ts.map +1 -0
- package/dist/record-overlay/apply.js +527 -0
- package/dist/record-overlay/apply.js.map +1 -0
- package/dist/record-overlay/canonical.d.ts +22 -0
- package/dist/record-overlay/canonical.d.ts.map +1 -0
- package/dist/record-overlay/canonical.js +47 -0
- package/dist/record-overlay/canonical.js.map +1 -0
- package/dist/record-overlay/digest.d.ts +4 -0
- package/dist/record-overlay/digest.d.ts.map +1 -0
- package/dist/record-overlay/digest.js +11 -0
- package/dist/record-overlay/digest.js.map +1 -0
- package/dist/record-overlay/errors.d.ts +44 -0
- package/dist/record-overlay/errors.d.ts.map +1 -0
- package/dist/record-overlay/errors.js +55 -0
- package/dist/record-overlay/errors.js.map +1 -0
- package/dist/record-overlay/findings.d.ts +5 -0
- package/dist/record-overlay/findings.d.ts.map +1 -0
- package/dist/record-overlay/findings.js +83 -0
- package/dist/record-overlay/findings.js.map +1 -0
- package/dist/record-overlay/index.d.ts +23 -0
- package/dist/record-overlay/index.d.ts.map +1 -0
- package/dist/record-overlay/index.js +21 -0
- package/dist/record-overlay/index.js.map +1 -0
- package/dist/record-overlay/plan.d.ts +12 -0
- package/dist/record-overlay/plan.d.ts.map +1 -0
- package/dist/record-overlay/plan.js +285 -0
- package/dist/record-overlay/plan.js.map +1 -0
- package/dist/record-overlay/policy.d.ts +69 -0
- package/dist/record-overlay/policy.d.ts.map +1 -0
- package/dist/record-overlay/policy.js +228 -0
- package/dist/record-overlay/policy.js.map +1 -0
- package/dist/record-overlay/redact.d.ts +3 -0
- package/dist/record-overlay/redact.d.ts.map +1 -0
- package/dist/record-overlay/redact.js +27 -0
- package/dist/record-overlay/redact.js.map +1 -0
- package/dist/record-overlay/signal-kind.d.ts +30 -0
- package/dist/record-overlay/signal-kind.d.ts.map +1 -0
- package/dist/record-overlay/signal-kind.js +38 -0
- package/dist/record-overlay/signal-kind.js.map +1 -0
- package/dist/record-overlay/signal-text.d.ts +45 -0
- package/dist/record-overlay/signal-text.d.ts.map +1 -0
- package/dist/record-overlay/signal-text.js +116 -0
- package/dist/record-overlay/signal-text.js.map +1 -0
- package/dist/record-overlay/source-index.d.ts +19 -0
- package/dist/record-overlay/source-index.d.ts.map +1 -0
- package/dist/record-overlay/source-index.js +102 -0
- package/dist/record-overlay/source-index.js.map +1 -0
- package/dist/record-overlay/types.d.ts +291 -0
- package/dist/record-overlay/types.d.ts.map +1 -0
- package/dist/record-overlay/types.js +2 -0
- package/dist/record-overlay/types.js.map +1 -0
- package/dist/remote-operations.js +5 -2
- package/dist/remote-operations.js.map +1 -1
- package/dist/search/contract.d.ts +151 -0
- package/dist/search/contract.d.ts.map +1 -0
- package/dist/search/contract.js +78 -0
- package/dist/search/contract.js.map +1 -0
- package/dist/search/errors.d.ts +30 -0
- package/dist/search/errors.d.ts.map +1 -0
- package/dist/search/errors.js +50 -0
- package/dist/search/errors.js.map +1 -0
- package/dist/search/identity.d.ts +12 -0
- package/dist/search/identity.d.ts.map +1 -0
- package/dist/search/identity.js +90 -0
- package/dist/search/identity.js.map +1 -0
- package/dist/search/index.d.ts +15 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +14 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/memory-source.d.ts +25 -0
- package/dist/search/memory-source.d.ts.map +1 -0
- package/dist/search/memory-source.js +230 -0
- package/dist/search/memory-source.js.map +1 -0
- package/dist/search/rank.d.ts +34 -0
- package/dist/search/rank.d.ts.map +1 -0
- package/dist/search/rank.js +129 -0
- package/dist/search/rank.js.map +1 -0
- package/dist/search/row-text.d.ts +38 -0
- package/dist/search/row-text.d.ts.map +1 -0
- package/dist/search/row-text.js +88 -0
- package/dist/search/row-text.js.map +1 -0
- package/dist/search/search.d.ts +28 -0
- package/dist/search/search.d.ts.map +1 -0
- package/dist/search/search.js +240 -0
- package/dist/search/search.js.map +1 -0
- package/dist/search/source.d.ts +67 -0
- package/dist/search/source.d.ts.map +1 -0
- package/dist/search/source.js +2 -0
- package/dist/search/source.js.map +1 -0
- package/dist/search/text.d.ts +47 -0
- package/dist/search/text.d.ts.map +1 -0
- package/dist/search/text.js +148 -0
- package/dist/search/text.js.map +1 -0
- package/dist/source-engine/guard.d.ts +82 -0
- package/dist/source-engine/guard.d.ts.map +1 -0
- package/dist/source-engine/guard.js +396 -0
- package/dist/source-engine/guard.js.map +1 -0
- package/dist/source-engine/index.d.ts +24 -0
- package/dist/source-engine/index.d.ts.map +1 -0
- package/dist/source-engine/index.js +20 -0
- package/dist/source-engine/index.js.map +1 -0
- package/dist/source-engine/machine-state.d.ts +74 -0
- package/dist/source-engine/machine-state.d.ts.map +1 -0
- package/dist/source-engine/machine-state.js +48 -0
- package/dist/source-engine/machine-state.js.map +1 -0
- package/dist/source-engine/observe.d.ts +18 -0
- package/dist/source-engine/observe.d.ts.map +1 -0
- package/dist/source-engine/observe.js +598 -0
- package/dist/source-engine/observe.js.map +1 -0
- package/dist/source-engine/robots.d.ts +53 -0
- package/dist/source-engine/robots.d.ts.map +1 -0
- package/dist/source-engine/robots.js +158 -0
- package/dist/source-engine/robots.js.map +1 -0
- package/dist/source-engine/types.d.ts +285 -0
- package/dist/source-engine/types.d.ts.map +1 -0
- package/dist/source-engine/types.js +2 -0
- package/dist/source-engine/types.js.map +1 -0
- package/dist/source-harness/conformance.d.ts +16 -0
- package/dist/source-harness/conformance.d.ts.map +1 -0
- package/dist/source-harness/conformance.js +265 -0
- package/dist/source-harness/conformance.js.map +1 -0
- package/dist/source-harness/fixture.d.ts +95 -0
- package/dist/source-harness/fixture.d.ts.map +1 -0
- package/dist/source-harness/fixture.js +261 -0
- package/dist/source-harness/fixture.js.map +1 -0
- package/dist/source-harness/index.d.ts +22 -0
- package/dist/source-harness/index.d.ts.map +1 -0
- package/dist/source-harness/index.js +19 -0
- package/dist/source-harness/index.js.map +1 -0
- package/dist/source-harness/peer.d.ts +74 -0
- package/dist/source-harness/peer.d.ts.map +1 -0
- package/dist/source-harness/peer.js +106 -0
- package/dist/source-harness/peer.js.map +1 -0
- package/dist/storage.d.ts +2 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +1 -1
- package/dist/storage.js.map +1 -1
- package/dist/uncertain-write.d.ts +39 -6
- package/dist/uncertain-write.d.ts.map +1 -1
- package/dist/uncertain-write.js +25 -3
- package/dist/uncertain-write.js.map +1 -1
- package/package.json +33 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/record-overlay/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../src/record-overlay/redact.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AAC/C,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Provider URLs may carry credentials in userinfo or query parameters; no Signal echoes them.
|
|
2
|
+
const SECRET_PARAM = /^(token|access_token|api[_-]?key|key|secret|signature|sig|auth|password|pass|apikey|client_secret|session)$/i;
|
|
3
|
+
export function redactUrl(raw) {
|
|
4
|
+
if (typeof raw !== "string" || raw === "")
|
|
5
|
+
return raw;
|
|
6
|
+
let u;
|
|
7
|
+
try {
|
|
8
|
+
u = new URL(raw);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return raw;
|
|
12
|
+
}
|
|
13
|
+
let changed = false;
|
|
14
|
+
if (u.username || u.password) {
|
|
15
|
+
u.username = "";
|
|
16
|
+
u.password = "";
|
|
17
|
+
changed = true;
|
|
18
|
+
}
|
|
19
|
+
for (const k of [...u.searchParams.keys()]) {
|
|
20
|
+
if (SECRET_PARAM.test(k)) {
|
|
21
|
+
u.searchParams.set(k, "REDACTED");
|
|
22
|
+
changed = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return changed ? u.toString() : raw;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=redact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/record-overlay/redact.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,YAAY,GAAG,8GAA8G,CAAC;AAIpI,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IACtD,IAAI,CAAM,CAAC;IACX,IAAI,CAAC;QAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,GAAG,CAAC;IAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;QAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;QAAC,OAAO,GAAG,IAAI,CAAC;IAAC,CAAC;IACnF,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;QAAC,CAAC;IAClF,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The attention Kind: the one Kind record-overlay may create documents of, and the only Kind whose
|
|
3
|
+
* documents it updates outside the owned-field guard. Resolved from the ops registry at plan time
|
|
4
|
+
* and again at apply time, by the same rules.
|
|
5
|
+
*/
|
|
6
|
+
import { type KindConvention, type KindRegistry } from "../kinds.js";
|
|
7
|
+
/** Fields an attention Kind must declare: the Signal record a raise and a collapse write. */
|
|
8
|
+
export declare const ATTENTION_FIELDS: readonly string[];
|
|
9
|
+
export interface AttentionKind {
|
|
10
|
+
name: string;
|
|
11
|
+
kind: KindConvention;
|
|
12
|
+
/** The only id prefix a Signal create may target and a Signal update may touch. */
|
|
13
|
+
prefix: string;
|
|
14
|
+
stateField: string;
|
|
15
|
+
ownerField: string;
|
|
16
|
+
}
|
|
17
|
+
export type AttentionResolution = {
|
|
18
|
+
ok: true;
|
|
19
|
+
value: AttentionKind;
|
|
20
|
+
} | {
|
|
21
|
+
ok: false;
|
|
22
|
+
reason: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* The attention Kind must be declared in the ops registry, differ from the overlay target Kind,
|
|
26
|
+
* resolve both claim coordinates on this edition, and declare every {@link ATTENTION_FIELDS} member.
|
|
27
|
+
* Its declared `path` (default `signals/`) bounds where its documents may live.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveAttentionKind(registry: KindRegistry, okfVersion: string, name: string, targetKind: string | undefined): AttentionResolution;
|
|
30
|
+
//# sourceMappingURL=signal-kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-kind.d.ts","sourceRoot":"","sources":["../../src/record-overlay/signal-kind.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAoB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvF,6FAA6F;AAC7F,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAA6F,CAAC;AAE5I,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAErG;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,mBAAmB,CAmBrB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The attention Kind: the one Kind record-overlay may create documents of, and the only Kind whose
|
|
3
|
+
* documents it updates outside the owned-field guard. Resolved from the ops registry at plan time
|
|
4
|
+
* and again at apply time, by the same rules.
|
|
5
|
+
*/
|
|
6
|
+
import { claimCoordinates } from "../kinds.js";
|
|
7
|
+
/** Fields an attention Kind must declare: the Signal record a raise and a collapse write. */
|
|
8
|
+
export const ATTENTION_FIELDS = Object.freeze(["change_kind", "observed_at", "provider", "external_id", "diff_summary"]);
|
|
9
|
+
/**
|
|
10
|
+
* The attention Kind must be declared in the ops registry, differ from the overlay target Kind,
|
|
11
|
+
* resolve both claim coordinates on this edition, and declare every {@link ATTENTION_FIELDS} member.
|
|
12
|
+
* Its declared `path` (default `signals/`) bounds where its documents may live.
|
|
13
|
+
*/
|
|
14
|
+
export function resolveAttentionKind(registry, okfVersion, name, targetKind) {
|
|
15
|
+
const kind = registry.kinds.get(name);
|
|
16
|
+
if (!kind)
|
|
17
|
+
return { ok: false, reason: `the attention Kind ${name} is not declared in the ops bundle` };
|
|
18
|
+
if (targetKind !== undefined && name === targetKind)
|
|
19
|
+
return { ok: false, reason: `the attention Kind ${name} is the overlay target Kind` };
|
|
20
|
+
const claim = claimCoordinates(okfVersion, kind);
|
|
21
|
+
if (!claim?.ownerField || !claim.stateField)
|
|
22
|
+
return { ok: false, reason: `the attention Kind ${name} declares no resolvable claim owner and state fields` };
|
|
23
|
+
const declared = new Set([...kind.fields.required, ...kind.fields.optional]);
|
|
24
|
+
const missing = ATTENTION_FIELDS.filter((field) => !declared.has(field));
|
|
25
|
+
if (missing.length)
|
|
26
|
+
return { ok: false, reason: `the attention Kind ${name} does not declare ${missing.join(", ")}` };
|
|
27
|
+
return {
|
|
28
|
+
ok: true,
|
|
29
|
+
value: {
|
|
30
|
+
name,
|
|
31
|
+
kind,
|
|
32
|
+
prefix: (kind.path ?? "signals/").replace(/\/?$/, "/"),
|
|
33
|
+
stateField: claim.stateField,
|
|
34
|
+
ownerField: claim.ownerField,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=signal-kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-kind.js","sourceRoot":"","sources":["../../src/record-overlay/signal-kind.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAA0C,MAAM,aAAa,CAAC;AAEvF,6FAA6F;AAC7F,MAAM,CAAC,MAAM,gBAAgB,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;AAa5I;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAsB,EACtB,UAAkB,EAClB,IAAY,EACZ,UAA8B;IAE9B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,IAAI,oCAAoC,EAAE,CAAC;IACxG,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,IAAI,6BAA6B,EAAE,CAAC;IAC3I,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,IAAI,sDAAsD,EAAE,CAAC;IAC5J,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,IAAI,qBAAqB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACtH,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,IAAI;YACJ,IAAI;YACJ,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;YACtD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The text of a Signal: its observation line and its body. One rendering for the planner, which
|
|
3
|
+
* writes it, and for the apply's Signal guards, which accept a Signal's text only when it is what
|
|
4
|
+
* this rendering produces from the Signal's own fields and the run, so every honest plan passes and
|
|
5
|
+
* free text does not.
|
|
6
|
+
*/
|
|
7
|
+
import type { KindConvention } from "../kinds.js";
|
|
8
|
+
/** Text kept on one line: every line break becomes a space. */
|
|
9
|
+
export declare function oneLine(text: string): string;
|
|
10
|
+
export declare function isConceptId(value: unknown): value is string;
|
|
11
|
+
/** The attention Kind's link vocabulary, derived from its convention, never hard-coded. */
|
|
12
|
+
export declare function signalLinkTexts(signalKind: KindConvention | undefined, targetKind: string | undefined, feedKind?: string): {
|
|
13
|
+
fromFeed?: string;
|
|
14
|
+
about?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function observationLine(observedAt: unknown, changeKind: unknown, digest: unknown, summary: unknown): string;
|
|
17
|
+
export declare const linkLine: (text: string, fromId: string, targetId: string) => string;
|
|
18
|
+
export declare const overlayLine: (id: string) => string;
|
|
19
|
+
export declare const relatedLine: (id: string, reason?: string) => string;
|
|
20
|
+
export declare const adoptionHint: (targetKind: unknown, provider: unknown, externalId: unknown) => string;
|
|
21
|
+
export declare function signalBody(links: readonly string[], hint: string | undefined, line: string): string;
|
|
22
|
+
export interface SignalTextContext {
|
|
23
|
+
/** The Signal's id. */
|
|
24
|
+
target: string;
|
|
25
|
+
/** The feed its plan was made for, when the plan names one. */
|
|
26
|
+
feed: string | null | undefined;
|
|
27
|
+
/** The run's target Kind, for the adoption hint and the typed overlay link. */
|
|
28
|
+
targetKind: string | undefined;
|
|
29
|
+
links: {
|
|
30
|
+
fromFeed?: string;
|
|
31
|
+
about?: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A created Signal's body is the planner's: its link lines, the adoption hint for this record when
|
|
36
|
+
* present, and the observation line rendered from the Signal's own `observed_at`, `change_kind`,
|
|
37
|
+
* `diff_summary` and the step's digest.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isPlannedSignalBody(body: string, frontmatter: Record<string, unknown>, digest: string, context: SignalTextContext): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* A collapse's observation line is the planner's: rendered from the update's own `observed_at`,
|
|
42
|
+
* `diff_summary` and the step's digest, around the change kind it records.
|
|
43
|
+
*/
|
|
44
|
+
export declare function isPlannedObservation(line: string, set: Record<string, unknown>, digest: string): boolean;
|
|
45
|
+
//# sourceMappingURL=signal-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-text.d.ts","sourceRoot":"","sources":["../../src/record-overlay/signal-text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AASlD,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAG3D;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,UAAU,EAAE,cAAc,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,SAAgB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAKvK;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAEnH;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,UAAU,MAAM,KAAG,MAAwD,CAAC;AACnI,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,MAAoC,CAAC;AAC9E,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,EAAE,SAAS,MAAM,KAAG,MAAiF,CAAC;AAC5I,eAAO,MAAM,YAAY,GAAI,YAAY,OAAO,EAAE,UAAU,OAAO,EAAE,YAAY,OAAO,KAAG,MAC2C,CAAC;AAEvI,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnG;AAeD,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,+EAA+E;IAC/E,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAuBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAUT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAOxG"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { relativeHref } from "../links.js";
|
|
2
|
+
import { assertSafeConceptId } from "../paths.js";
|
|
3
|
+
const LINE_BREAKS = /\r\n|[\r\n\u0085\u2028\u2029]/g;
|
|
4
|
+
const LINE_BREAK = /[\r\n\u0085\u2028\u2029]/;
|
|
5
|
+
const OVERLAY_PREFIX = "Overlay document (content bundle): `";
|
|
6
|
+
const RELATED_PREFIX = "Related document (content bundle): `";
|
|
7
|
+
/** Text kept on one line: every line break becomes a space. */
|
|
8
|
+
export function oneLine(text) {
|
|
9
|
+
return text.replace(LINE_BREAKS, " ");
|
|
10
|
+
}
|
|
11
|
+
export function isConceptId(value) {
|
|
12
|
+
if (typeof value !== "string")
|
|
13
|
+
return false;
|
|
14
|
+
try {
|
|
15
|
+
assertSafeConceptId(value);
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/** The attention Kind's link vocabulary, derived from its convention, never hard-coded. */
|
|
23
|
+
export function signalLinkTexts(signalKind, targetKind, feedKind = "Source Feed") {
|
|
24
|
+
const links = signalKind?.links ?? {};
|
|
25
|
+
const fromFeed = Object.keys(links).find((t) => links[t] === feedKind);
|
|
26
|
+
const about = targetKind ? Object.keys(links).find((t) => links[t] === targetKind) : undefined;
|
|
27
|
+
return { fromFeed, about };
|
|
28
|
+
}
|
|
29
|
+
export function observationLine(observedAt, changeKind, digest, summary) {
|
|
30
|
+
return `- ${observedAt} · ${changeKind} · ${digest} · ${summary}`;
|
|
31
|
+
}
|
|
32
|
+
export const linkLine = (text, fromId, targetId) => `[${text}](${relativeHref(fromId, targetId)})`;
|
|
33
|
+
export const overlayLine = (id) => `${OVERLAY_PREFIX}${id}\``;
|
|
34
|
+
export const relatedLine = (id, reason) => `${RELATED_PREFIX}${id}\`${reason === undefined ? "" : ` (${reason})`}`;
|
|
35
|
+
export const adoptionHint = (targetKind, provider, externalId) => `To overlay this record, give a document of Kind "${targetKind}" the source entry \`resource: ${provider}\`, \`id: ${externalId}\`.`;
|
|
36
|
+
export function signalBody(links, hint, line) {
|
|
37
|
+
return `${links.join("\n")}\n${hint === undefined ? "" : `\n${hint}\n`}\n# Observations\n\n${line}\n`;
|
|
38
|
+
}
|
|
39
|
+
/** The concept id a relative link from `fromId` names, or null. */
|
|
40
|
+
function linkTarget(fromId, href) {
|
|
41
|
+
const slash = fromId.lastIndexOf("/");
|
|
42
|
+
const parts = slash >= 0 ? fromId.slice(0, slash).split("/") : [];
|
|
43
|
+
for (const segment of href.split("/")) {
|
|
44
|
+
if (segment === "..") {
|
|
45
|
+
if (parts.length === 0)
|
|
46
|
+
return null;
|
|
47
|
+
parts.pop();
|
|
48
|
+
}
|
|
49
|
+
else if (segment === "" || segment === ".")
|
|
50
|
+
return null;
|
|
51
|
+
else
|
|
52
|
+
parts.push(segment);
|
|
53
|
+
}
|
|
54
|
+
const path = parts.join("/");
|
|
55
|
+
return path.endsWith(".md") ? path.slice(0, -3) : null;
|
|
56
|
+
}
|
|
57
|
+
function plannedLink(text, context) {
|
|
58
|
+
const { target, feed, links } = context;
|
|
59
|
+
if (links.fromFeed !== undefined && isConceptId(feed) && isConceptId(target) && text === linkLine(links.fromFeed, target, feed))
|
|
60
|
+
return true;
|
|
61
|
+
if (links.about !== undefined && text.startsWith(`[${links.about}](`) && text.endsWith(")")) {
|
|
62
|
+
const id = linkTarget(target, text.slice(links.about.length + 3, -1));
|
|
63
|
+
if (isConceptId(id) && isConceptId(target) && text === linkLine(links.about, target, id))
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
if (text.startsWith(OVERLAY_PREFIX) && text.endsWith("`") && isConceptId(text.slice(OVERLAY_PREFIX.length, -1)))
|
|
67
|
+
return true;
|
|
68
|
+
if (text.startsWith(RELATED_PREFIX)) {
|
|
69
|
+
const rest = text.slice(RELATED_PREFIX.length);
|
|
70
|
+
if (rest.endsWith("`") && isConceptId(rest.slice(0, -1)))
|
|
71
|
+
return true;
|
|
72
|
+
if (rest.endsWith(")")) {
|
|
73
|
+
for (let at = rest.indexOf("` ("); at > 0; at = rest.indexOf("` (", at + 1)) {
|
|
74
|
+
const reason = rest.slice(at + 3, -1);
|
|
75
|
+
if (isConceptId(rest.slice(0, at)) && reason.length <= 120 && !LINE_BREAK.test(reason))
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* A created Signal's body is the planner's: its link lines, the adoption hint for this record when
|
|
84
|
+
* present, and the observation line rendered from the Signal's own `observed_at`, `change_kind`,
|
|
85
|
+
* `diff_summary` and the step's digest.
|
|
86
|
+
*/
|
|
87
|
+
export function isPlannedSignalBody(body, frontmatter, digest, context) {
|
|
88
|
+
const suffix = `# Observations\n\n${observationLine(frontmatter.observed_at, frontmatter.change_kind, digest, frontmatter.diff_summary)}\n`;
|
|
89
|
+
if (!body.endsWith(suffix))
|
|
90
|
+
return false;
|
|
91
|
+
const preamble = body.slice(0, -suffix.length);
|
|
92
|
+
const hint = context.targetKind === undefined ? undefined : adoptionHint(context.targetKind, frontmatter.provider, frontmatter.external_id);
|
|
93
|
+
let links;
|
|
94
|
+
if (hint !== undefined && preamble.endsWith(`\n\n${hint}\n\n`))
|
|
95
|
+
links = preamble.slice(0, preamble.length - hint.length - 4);
|
|
96
|
+
else if (preamble.endsWith("\n\n"))
|
|
97
|
+
links = preamble.slice(0, -2);
|
|
98
|
+
else
|
|
99
|
+
return false;
|
|
100
|
+
return links === "" || links.split("\n").every((text) => plannedLink(text, context));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* A collapse's observation line is the planner's: rendered from the update's own `observed_at`,
|
|
104
|
+
* `diff_summary` and the step's digest, around the change kind it records.
|
|
105
|
+
*/
|
|
106
|
+
export function isPlannedObservation(line, set, digest) {
|
|
107
|
+
if (typeof set.observed_at !== "string" || typeof set.diff_summary !== "string")
|
|
108
|
+
return false;
|
|
109
|
+
const prefix = `- ${set.observed_at} · `;
|
|
110
|
+
const suffix = ` · ${digest} · ${set.diff_summary}`;
|
|
111
|
+
if (line.length <= prefix.length + suffix.length || !line.startsWith(prefix) || !line.endsWith(suffix))
|
|
112
|
+
return false;
|
|
113
|
+
const kind = line.slice(prefix.length, line.length - suffix.length);
|
|
114
|
+
return kind === set.change_kind || !LINE_BREAK.test(kind);
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=signal-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-text.js","sourceRoot":"","sources":["../../src/record-overlay/signal-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Bundle, HeadResult, OkfDocument, QueryFilter, Version } from "../types.js";
|
|
2
|
+
export declare class SourceIndex {
|
|
3
|
+
#private;
|
|
4
|
+
static fromHeads(heads: Iterable<HeadResult>): SourceIndex;
|
|
5
|
+
/**
|
|
6
|
+
* Heads whose `sources` carry `(resource, id)`, in id order. A document carrying the identity
|
|
7
|
+
* twice is returned twice, so the caller sees it as ambiguous.
|
|
8
|
+
*/
|
|
9
|
+
lookup(resource: string, id: string, opts?: {
|
|
10
|
+
type?: string;
|
|
11
|
+
}): readonly HeadResult[];
|
|
12
|
+
/** Re-derive one document's entries from a write's result. */
|
|
13
|
+
replace(doc: OkfDocument, version: Version): void;
|
|
14
|
+
/** Documents carrying at least one well-formed identity. */
|
|
15
|
+
get size(): number;
|
|
16
|
+
}
|
|
17
|
+
/** One head read of `bundle` (optionally narrowed by type or prefix), indexed by identity. */
|
|
18
|
+
export declare function buildSourceIndex(bundle: Bundle, filter?: Pick<QueryFilter, "type" | "prefix">): Promise<SourceIndex>;
|
|
19
|
+
//# sourceMappingURL=source-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-index.d.ts","sourceRoot":"","sources":["../../src/record-overlay/source-index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAa,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAgBpG,qBAAa,WAAW;;IAItB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW;IAO1D;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,SAAS,UAAU,EAAE;IAKzF,8DAA8D;IAC9D,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IASjD,4DAA4D;IAC5D,IAAI,IAAI,IAAI,MAAM,CAEjB;CA4BF;AAED,8FAA8F;AAC9F,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAK9H"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A per-run `sources[]` identity index built from one head read.
|
|
3
|
+
*
|
|
4
|
+
* Bounded to one run: build it after the run starts, pass it to every plan and apply of that run,
|
|
5
|
+
* and discard it. Overlay writes never create overlays, and the apply's `replace` keeps the
|
|
6
|
+
* versions it changes current, so the run's own writes cannot make it stale. An edited or deleted
|
|
7
|
+
* overlay is still caught at write time by the compare-and-swap and the identity guard. A second
|
|
8
|
+
* document given an indexed identity during the run is not seen: the write lands on the first
|
|
9
|
+
* claimant and the next run, with a fresh index, refuses both as ambiguous.
|
|
10
|
+
*/
|
|
11
|
+
import { queryHeads } from "../bundle-ops.js";
|
|
12
|
+
import { sourceIdentityOf } from "../query-filter.js";
|
|
13
|
+
const byId = (a, b) => a.id.localeCompare(b.id);
|
|
14
|
+
/** The `(resource, id)` pairs a frontmatter carries, once per entry naming both, by core's identity rule. */
|
|
15
|
+
function identities(frontmatter) {
|
|
16
|
+
const sources = frontmatter.sources;
|
|
17
|
+
if (!Array.isArray(sources))
|
|
18
|
+
return [];
|
|
19
|
+
const out = [];
|
|
20
|
+
for (const entry of sources) {
|
|
21
|
+
const own = sourceIdentityOf(entry);
|
|
22
|
+
if (own?.resource !== undefined && own.id !== undefined)
|
|
23
|
+
out.push({ resource: own.resource, id: own.id });
|
|
24
|
+
}
|
|
25
|
+
return out;
|
|
26
|
+
}
|
|
27
|
+
export class SourceIndex {
|
|
28
|
+
#entries = new Map();
|
|
29
|
+
#documents = new Map();
|
|
30
|
+
static fromHeads(heads) {
|
|
31
|
+
const index = new SourceIndex();
|
|
32
|
+
for (const head of heads)
|
|
33
|
+
index.#add(head);
|
|
34
|
+
for (const ids of index.#entries.values())
|
|
35
|
+
for (const rows of ids.values())
|
|
36
|
+
rows.sort(byId);
|
|
37
|
+
return index;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Heads whose `sources` carry `(resource, id)`, in id order. A document carrying the identity
|
|
41
|
+
* twice is returned twice, so the caller sees it as ambiguous.
|
|
42
|
+
*/
|
|
43
|
+
lookup(resource, id, opts = {}) {
|
|
44
|
+
const rows = this.#entries.get(resource)?.get(id) ?? [];
|
|
45
|
+
return opts.type === undefined ? [...rows] : rows.filter((head) => head.frontmatter.type === opts.type);
|
|
46
|
+
}
|
|
47
|
+
/** Re-derive one document's entries from a write's result. */
|
|
48
|
+
replace(doc, version) {
|
|
49
|
+
this.#remove(doc.id);
|
|
50
|
+
const head = { id: doc.id, frontmatter: doc.frontmatter, version };
|
|
51
|
+
this.#add(head);
|
|
52
|
+
for (const { resource, id } of identities(head.frontmatter)) {
|
|
53
|
+
this.#entries.get(resource)?.get(id)?.sort(byId);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Documents carrying at least one well-formed identity. */
|
|
57
|
+
get size() {
|
|
58
|
+
return this.#documents.size;
|
|
59
|
+
}
|
|
60
|
+
#add(head) {
|
|
61
|
+
const pairs = identities(head.frontmatter);
|
|
62
|
+
if (pairs.length === 0)
|
|
63
|
+
return;
|
|
64
|
+
this.#documents.set(head.id, head);
|
|
65
|
+
for (const { resource, id } of pairs) {
|
|
66
|
+
let ids = this.#entries.get(resource);
|
|
67
|
+
if (!ids)
|
|
68
|
+
this.#entries.set(resource, ids = new Map());
|
|
69
|
+
let rows = ids.get(id);
|
|
70
|
+
if (!rows)
|
|
71
|
+
ids.set(id, rows = []);
|
|
72
|
+
rows.push(head);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
#remove(docId) {
|
|
76
|
+
const old = this.#documents.get(docId);
|
|
77
|
+
if (!old)
|
|
78
|
+
return;
|
|
79
|
+
this.#documents.delete(docId);
|
|
80
|
+
for (const { resource, id } of identities(old.frontmatter)) {
|
|
81
|
+
const ids = this.#entries.get(resource);
|
|
82
|
+
const rows = ids?.get(id);
|
|
83
|
+
if (!ids || !rows)
|
|
84
|
+
continue;
|
|
85
|
+
const kept = rows.filter((head) => head.id !== docId);
|
|
86
|
+
if (kept.length)
|
|
87
|
+
ids.set(id, kept);
|
|
88
|
+
else
|
|
89
|
+
ids.delete(id);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/** One head read of `bundle` (optionally narrowed by type or prefix), indexed by identity. */
|
|
94
|
+
export async function buildSourceIndex(bundle, filter = {}) {
|
|
95
|
+
const narrowed = {};
|
|
96
|
+
if (filter.type !== undefined)
|
|
97
|
+
narrowed.type = filter.type;
|
|
98
|
+
if (filter.prefix !== undefined)
|
|
99
|
+
narrowed.prefix = filter.prefix;
|
|
100
|
+
return SourceIndex.fromHeads(await queryHeads(bundle, narrowed));
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=source-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-index.js","sourceRoot":"","sources":["../../src/record-overlay/source-index.ts"],"names":[],"mappings":"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"}
|