@relayfile/adapter-core 0.3.6 → 0.3.8
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/dist/src/digest/index.d.ts +61 -0
- package/dist/src/digest/index.d.ts.map +1 -0
- package/dist/src/digest/index.js +150 -0
- package/dist/src/digest/index.js.map +1 -0
- package/dist/src/digest/index.test.d.ts +2 -0
- package/dist/src/digest/index.test.d.ts.map +1 -0
- package/dist/src/digest/index.test.js +103 -0
- package/dist/src/digest/index.test.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export interface DigestWindow {
|
|
2
|
+
readonly from: string;
|
|
3
|
+
readonly to: string;
|
|
4
|
+
}
|
|
5
|
+
export interface DigestChangeEvent {
|
|
6
|
+
readonly id?: string;
|
|
7
|
+
readonly timestamp?: string;
|
|
8
|
+
readonly occurredAt?: string;
|
|
9
|
+
readonly eventType?: string;
|
|
10
|
+
readonly type?: string;
|
|
11
|
+
readonly action?: string;
|
|
12
|
+
readonly canonicalPath?: string;
|
|
13
|
+
readonly path?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface DigestContext {
|
|
16
|
+
readonly provider: string;
|
|
17
|
+
readonly window: DigestWindow;
|
|
18
|
+
changeEvents(filter?: {
|
|
19
|
+
providers?: string[];
|
|
20
|
+
paths?: string[];
|
|
21
|
+
}): Promise<readonly DigestChangeEvent[]>;
|
|
22
|
+
}
|
|
23
|
+
export interface DigestBullet {
|
|
24
|
+
readonly text: string;
|
|
25
|
+
readonly canonicalPath: string;
|
|
26
|
+
}
|
|
27
|
+
export interface DigestSection {
|
|
28
|
+
readonly provider: string;
|
|
29
|
+
readonly bullets: readonly DigestBullet[];
|
|
30
|
+
}
|
|
31
|
+
export type DigestHandler = (ctx: DigestContext) => Promise<DigestSection | null>;
|
|
32
|
+
export interface DigestActionRule {
|
|
33
|
+
readonly verbs: string;
|
|
34
|
+
readonly pastTense: string;
|
|
35
|
+
}
|
|
36
|
+
export interface DigestAliasConfig {
|
|
37
|
+
readonly mode?: "parent-scoped" | "any";
|
|
38
|
+
readonly segments?: readonly string[];
|
|
39
|
+
readonly parentSegments?: readonly string[];
|
|
40
|
+
}
|
|
41
|
+
export interface CreateDigestHandlerOptions {
|
|
42
|
+
readonly provider?: string;
|
|
43
|
+
readonly pathPrefix?: string;
|
|
44
|
+
readonly identify: (canonicalPath: string) => string;
|
|
45
|
+
readonly actionRules?: readonly DigestActionRule[];
|
|
46
|
+
readonly defaultPastTense?: string;
|
|
47
|
+
readonly alias?: DigestAliasConfig;
|
|
48
|
+
/**
|
|
49
|
+
* Optional additional event-level guard. Called after provider-prefix and
|
|
50
|
+
* canonical-path checks pass. Return false to skip an event.
|
|
51
|
+
*/
|
|
52
|
+
readonly acceptEvent?: (event: DigestChangeEvent, canonicalPath: string) => boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Optional custom classifier. Return a verb phrase (for example
|
|
55
|
+
* "was merged") to override rule-based matching for that event.
|
|
56
|
+
* Return null/undefined to fall back to actionRules/defaultPastTense.
|
|
57
|
+
*/
|
|
58
|
+
readonly classify?: (event: DigestChangeEvent, canonicalPath: string) => string | null | undefined;
|
|
59
|
+
}
|
|
60
|
+
export declare function createDigestHandler(options: CreateDigestHandlerOptions): DigestHandler;
|
|
61
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/digest/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,YAAY,CAAC,MAAM,CAAC,EAAE;QACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,GAAG,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC;IACpF;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACpG;AA4CD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,aAAa,CAmCtF"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
const DEFAULT_ALIAS_SEGMENTS = new Set([
|
|
2
|
+
"by-assignee",
|
|
3
|
+
"by-creator",
|
|
4
|
+
"by-day",
|
|
5
|
+
"by-database",
|
|
6
|
+
"by-folder",
|
|
7
|
+
"by-id",
|
|
8
|
+
"by-key",
|
|
9
|
+
"by-name",
|
|
10
|
+
"by-parent",
|
|
11
|
+
"by-priority",
|
|
12
|
+
"by-ref",
|
|
13
|
+
"by-space",
|
|
14
|
+
"by-state",
|
|
15
|
+
"by-status",
|
|
16
|
+
"by-title",
|
|
17
|
+
"by-uuid",
|
|
18
|
+
]);
|
|
19
|
+
const DEFAULT_PARENT_SEGMENTS = new Set([
|
|
20
|
+
"channels",
|
|
21
|
+
"commits",
|
|
22
|
+
"databases",
|
|
23
|
+
"deployments",
|
|
24
|
+
"issues",
|
|
25
|
+
"pages",
|
|
26
|
+
"pipelines",
|
|
27
|
+
"projects",
|
|
28
|
+
"pulls",
|
|
29
|
+
"sprints",
|
|
30
|
+
"spaces",
|
|
31
|
+
"tags",
|
|
32
|
+
"tasks",
|
|
33
|
+
"teams",
|
|
34
|
+
"users",
|
|
35
|
+
]);
|
|
36
|
+
export function createDigestHandler(options) {
|
|
37
|
+
const compiledRules = compileActionRules(options.actionRules ?? []);
|
|
38
|
+
const defaultPastTense = options.defaultPastTense ?? "was updated";
|
|
39
|
+
const aliasMode = options.alias?.mode ?? "parent-scoped";
|
|
40
|
+
const aliasSegments = new Set(options.alias?.segments ?? DEFAULT_ALIAS_SEGMENTS);
|
|
41
|
+
const aliasParents = new Set(options.alias?.parentSegments ?? DEFAULT_PARENT_SEGMENTS);
|
|
42
|
+
return async (ctx) => {
|
|
43
|
+
const provider = options.provider ?? ctx.provider;
|
|
44
|
+
const prefix = normalizeDigestPath(options.pathPrefix ?? provider);
|
|
45
|
+
const events = await ctx.changeEvents({ providers: [ctx.provider] });
|
|
46
|
+
const bullets = events
|
|
47
|
+
.filter((event) => hasDigestPath(event, prefix, provider, aliasMode, aliasSegments, aliasParents, options.acceptEvent))
|
|
48
|
+
.slice()
|
|
49
|
+
.sort(compareEvents)
|
|
50
|
+
.map((event) => {
|
|
51
|
+
const canonicalPath = normalizeDigestPath(digestEventPath(event));
|
|
52
|
+
return {
|
|
53
|
+
text: `${options.identify(canonicalPath)} ${pastTense(event, canonicalPath, compiledRules, defaultPastTense, options.classify)}`,
|
|
54
|
+
canonicalPath,
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
return bullets.length === 0 ? null : { provider: ctx.provider, bullets };
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function hasDigestPath(event, prefix, provider, aliasMode, aliasSegments, aliasParents, acceptEvent) {
|
|
61
|
+
const eventPath = digestEventPath(event);
|
|
62
|
+
if (!eventPath || !isCanonicalDigestPath(eventPath, provider, aliasMode, aliasSegments, aliasParents)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
const prefixMatch = (eventPath === prefix
|
|
66
|
+
|| eventPath === `/${prefix}`
|
|
67
|
+
|| eventPath.startsWith(`${prefix}/`)
|
|
68
|
+
|| eventPath.startsWith(`/${prefix}/`));
|
|
69
|
+
if (!prefixMatch)
|
|
70
|
+
return false;
|
|
71
|
+
const canonicalPath = normalizeDigestPath(eventPath);
|
|
72
|
+
if (acceptEvent) {
|
|
73
|
+
return acceptEvent(event, canonicalPath);
|
|
74
|
+
}
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
function isCanonicalDigestPath(path, provider, aliasMode, aliasSegments, aliasParents) {
|
|
78
|
+
const segments = normalizeDigestPath(path).split("/").filter(Boolean);
|
|
79
|
+
const leaf = segments.at(-1) ?? "";
|
|
80
|
+
return (leaf !== "LAYOUT.md" &&
|
|
81
|
+
leaf !== "_index.json" &&
|
|
82
|
+
!hasDigestAliasDirectory(segments, provider, aliasMode, aliasSegments, aliasParents));
|
|
83
|
+
}
|
|
84
|
+
function hasDigestAliasDirectory(segments, provider, aliasMode, aliasSegments, aliasParents) {
|
|
85
|
+
if ((segments[0] ?? "") !== provider)
|
|
86
|
+
return false;
|
|
87
|
+
for (let index = 1; index < segments.length - 1; index += 1) {
|
|
88
|
+
const segment = segments[index];
|
|
89
|
+
if (!segment || !aliasSegments.has(segment))
|
|
90
|
+
continue;
|
|
91
|
+
if (aliasMode === "any")
|
|
92
|
+
return true;
|
|
93
|
+
const parent = segments[index - 1];
|
|
94
|
+
if (parent && aliasParents.has(parent)) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
function compareEvents(left, right) {
|
|
101
|
+
const leftMs = eventTimeMs(left);
|
|
102
|
+
const rightMs = eventTimeMs(right);
|
|
103
|
+
return (leftMs - rightMs ||
|
|
104
|
+
compareDigestStrings(left.id ?? "", right.id ?? "") ||
|
|
105
|
+
compareDigestStrings(digestEventPath(left), digestEventPath(right)));
|
|
106
|
+
}
|
|
107
|
+
function compareDigestStrings(left, right) {
|
|
108
|
+
if (left < right)
|
|
109
|
+
return -1;
|
|
110
|
+
if (left > right)
|
|
111
|
+
return 1;
|
|
112
|
+
return 0;
|
|
113
|
+
}
|
|
114
|
+
function eventTime(event) {
|
|
115
|
+
return event.timestamp ?? event.occurredAt ?? "";
|
|
116
|
+
}
|
|
117
|
+
function eventTimeMs(event) {
|
|
118
|
+
const raw = eventTime(event);
|
|
119
|
+
if (!raw)
|
|
120
|
+
return Number.NEGATIVE_INFINITY;
|
|
121
|
+
const ms = Date.parse(raw);
|
|
122
|
+
return Number.isNaN(ms) ? Number.NEGATIVE_INFINITY : ms;
|
|
123
|
+
}
|
|
124
|
+
function digestEventPath(event) {
|
|
125
|
+
return event.canonicalPath ?? event.path ?? "";
|
|
126
|
+
}
|
|
127
|
+
function normalizeDigestPath(path) {
|
|
128
|
+
return path.replace(/^\/+/u, "");
|
|
129
|
+
}
|
|
130
|
+
function pastTense(event, canonicalPath, rules, defaultPastTense, classify) {
|
|
131
|
+
if (classify) {
|
|
132
|
+
const custom = classify(event, canonicalPath);
|
|
133
|
+
if (custom)
|
|
134
|
+
return custom;
|
|
135
|
+
}
|
|
136
|
+
const action = (event.action ?? event.eventType ?? event.type ?? "").toLowerCase();
|
|
137
|
+
for (const rule of rules) {
|
|
138
|
+
if (rule.regex.test(action)) {
|
|
139
|
+
return rule.pastTense;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return defaultPastTense;
|
|
143
|
+
}
|
|
144
|
+
function compileActionRules(rules) {
|
|
145
|
+
return rules.map((rule) => ({
|
|
146
|
+
regex: new RegExp(`(^|[^a-z0-9])(${rule.verbs})([^a-z0-9]|$)`, "u"),
|
|
147
|
+
pastTense: rule.pastTense,
|
|
148
|
+
}));
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/digest/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/digest/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import test from "node:test";
|
|
3
|
+
import { createDigestHandler, } from "./index.js";
|
|
4
|
+
test("createDigestHandler emits sorted bullets and filters alias/index/layout paths", async () => {
|
|
5
|
+
const digest = createDigestHandler({
|
|
6
|
+
provider: "alpha",
|
|
7
|
+
identify: (path) => path.split("/").at(-1) ?? path,
|
|
8
|
+
actionRules: [
|
|
9
|
+
{ verbs: "create|created", pastTense: "was created" },
|
|
10
|
+
{ verbs: "delete|deleted", pastTense: "was deleted" },
|
|
11
|
+
],
|
|
12
|
+
});
|
|
13
|
+
const ctx = {
|
|
14
|
+
provider: "alpha",
|
|
15
|
+
window: { from: "2026-01-01T00:00:00.000Z", to: "2026-01-02T00:00:00.000Z" },
|
|
16
|
+
async changeEvents(filter) {
|
|
17
|
+
assert.deepEqual(filter, { providers: ["alpha"] });
|
|
18
|
+
return [
|
|
19
|
+
{ id: "2", timestamp: "2026-01-01T09:00:00.000Z", action: "updated", canonicalPath: "/alpha/issues/by-id/ISS-1.json" },
|
|
20
|
+
{ id: "1", timestamp: "2026-01-01T08:00:00.000Z", action: "created", canonicalPath: "/alpha/issues/ISS-1.json" },
|
|
21
|
+
{ id: "3", timestamp: "2026-01-01T10:00:00.000Z", action: "deleted", canonicalPath: "/alpha/issues/_index.json" },
|
|
22
|
+
{ id: "4", timestamp: "2026-01-01T11:00:00.000Z", action: "deleted", canonicalPath: "/alpha/LAYOUT.md" },
|
|
23
|
+
];
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
assert.deepEqual(await digest(ctx), {
|
|
27
|
+
provider: "alpha",
|
|
28
|
+
bullets: [
|
|
29
|
+
{
|
|
30
|
+
text: "ISS-1.json was created",
|
|
31
|
+
canonicalPath: "alpha/issues/ISS-1.json",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
test("createDigestHandler supports provider aliases with alias.mode=any", async () => {
|
|
37
|
+
const digest = createDigestHandler({
|
|
38
|
+
provider: "beta",
|
|
39
|
+
identify: (path) => path,
|
|
40
|
+
alias: {
|
|
41
|
+
mode: "any",
|
|
42
|
+
segments: ["by-folder"],
|
|
43
|
+
},
|
|
44
|
+
actionRules: [
|
|
45
|
+
{ verbs: "archive|archived", pastTense: "was archived" },
|
|
46
|
+
],
|
|
47
|
+
});
|
|
48
|
+
const ctx = {
|
|
49
|
+
provider: "beta",
|
|
50
|
+
window: { from: "2026-01-01T00:00:00.000Z", to: "2026-01-02T00:00:00.000Z" },
|
|
51
|
+
async changeEvents() {
|
|
52
|
+
return [
|
|
53
|
+
{ id: "1", timestamp: "2026-01-01T08:00:00.000Z", action: "archived", canonicalPath: "/beta/notes/not_1.json" },
|
|
54
|
+
{ id: "2", timestamp: "2026-01-01T09:00:00.000Z", action: "archived", canonicalPath: "/beta/notes/by-folder/fol_1/_index.json" },
|
|
55
|
+
];
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
assert.deepEqual(await digest(ctx), {
|
|
59
|
+
provider: "beta",
|
|
60
|
+
bullets: [
|
|
61
|
+
{
|
|
62
|
+
text: "beta/notes/not_1.json was archived",
|
|
63
|
+
canonicalPath: "beta/notes/not_1.json",
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
test("createDigestHandler supports custom acceptEvent and classify hooks", async () => {
|
|
69
|
+
const digest = createDigestHandler({
|
|
70
|
+
provider: "gamma",
|
|
71
|
+
identify: (path) => path,
|
|
72
|
+
actionRules: [{ verbs: "create|created", pastTense: "was created" }],
|
|
73
|
+
acceptEvent: (event, canonicalPath) => canonicalPath !== "gamma/skip/me.json" && event.id !== "skip-id",
|
|
74
|
+
classify: (event, canonicalPath) => {
|
|
75
|
+
if (canonicalPath.endsWith("/terminal.json"))
|
|
76
|
+
return "was closed";
|
|
77
|
+
if ((event.action ?? "") === "noop")
|
|
78
|
+
return "was updated";
|
|
79
|
+
return null;
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
const ctx = {
|
|
83
|
+
provider: "gamma",
|
|
84
|
+
window: { from: "2026-01-01T00:00:00.000Z", to: "2026-01-02T00:00:00.000Z" },
|
|
85
|
+
async changeEvents() {
|
|
86
|
+
return [
|
|
87
|
+
{ id: "skip-id", timestamp: "2026-01-01T08:00:00.000Z", action: "created", canonicalPath: "/gamma/items/a.json" },
|
|
88
|
+
{ id: "ok-1", timestamp: "2026-01-01T09:00:00.000Z", action: "created", canonicalPath: "/gamma/skip/me.json" },
|
|
89
|
+
{ id: "ok-2", timestamp: "2026-01-01T10:00:00.000Z", action: "created", canonicalPath: "/gamma/items/terminal.json" },
|
|
90
|
+
];
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
assert.deepEqual(await digest(ctx), {
|
|
94
|
+
provider: "gamma",
|
|
95
|
+
bullets: [
|
|
96
|
+
{
|
|
97
|
+
text: "gamma/items/terminal.json was closed",
|
|
98
|
+
canonicalPath: "gamma/items/terminal.json",
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/digest/index.test.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export * from "./docs/updater.js";
|
|
|
22
22
|
export * from "./storage-bridge/index.js";
|
|
23
23
|
export * from "./atomic-index/index.js";
|
|
24
24
|
export * from "./emit-auxiliary/index.js";
|
|
25
|
+
export * from "./digest/index.js";
|
|
25
26
|
export * from "./alias-slug.js";
|
|
26
27
|
export * from "./layout-contract.js";
|
|
27
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export * from "./docs/updater.js";
|
|
|
22
22
|
export * from "./storage-bridge/index.js";
|
|
23
23
|
export * from "./atomic-index/index.js";
|
|
24
24
|
export * from "./emit-auxiliary/index.js";
|
|
25
|
+
export * from "./digest/index.js";
|
|
25
26
|
export * from "./alias-slug.js";
|
|
26
27
|
export * from "./layout-contract.js";
|
|
27
28
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|