@forumone/throughline 1.0.0-next.0 → 1.0.0-next.2
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/CHANGELOG.md +46 -0
- package/README.md +70 -324
- package/bin/throughline.mjs +6 -0
- package/dist/approvals/tokens.d.ts +2 -2
- package/dist/approvals/tokens.d.ts.map +1 -1
- package/dist/approvals/tokens.js +2 -2
- package/dist/audit/query/options.d.ts +6 -4
- package/dist/audit/query/options.d.ts.map +1 -1
- package/dist/audit/query/options.js.map +1 -1
- package/dist/audit/query/plugin.d.ts.map +1 -1
- package/dist/audit/query/plugin.js +5 -1
- package/dist/audit/query/plugin.js.map +1 -1
- package/dist/audit/query/tools/get-change-history.d.ts +3 -1
- package/dist/audit/query/tools/get-change-history.d.ts.map +1 -1
- package/dist/audit/query/tools/get-change-history.js +2 -2
- package/dist/audit/query/tools/get-change-history.js.map +1 -1
- package/dist/audit/query/tools/get-recent-failures.d.ts +3 -1
- package/dist/audit/query/tools/get-recent-failures.d.ts.map +1 -1
- package/dist/audit/query/tools/get-recent-failures.js +2 -2
- package/dist/audit/query/tools/get-recent-failures.js.map +1 -1
- package/dist/audit/query/tools/query-audit.d.ts +5 -3
- package/dist/audit/query/tools/query-audit.d.ts.map +1 -1
- package/dist/audit/query/tools/query-audit.js +2 -2
- package/dist/audit/query/tools/query-audit.js.map +1 -1
- package/dist/audit/query/tools/what-changed-in-range.d.ts +3 -1
- package/dist/audit/query/tools/what-changed-in-range.d.ts.map +1 -1
- package/dist/audit/query/tools/what-changed-in-range.js +2 -2
- package/dist/audit/query/tools/what-changed-in-range.js.map +1 -1
- package/dist/audit/query/tools/who-changed-what.d.ts +3 -1
- package/dist/audit/query/tools/who-changed-what.d.ts.map +1 -1
- package/dist/audit/query/tools/who-changed-what.js +2 -2
- package/dist/audit/query/tools/who-changed-what.js.map +1 -1
- package/dist/components/manifest-source.d.ts +1 -1
- package/dist/components/manifest-source.d.ts.map +1 -1
- package/dist/components/manifest-source.js +1 -1
- package/dist/components/manifest-source.js.map +1 -1
- package/dist/components/matching/tfidf.d.ts +1 -1
- package/dist/components/matching/tfidf.d.ts.map +1 -1
- package/dist/components/matching/types.d.ts +1 -1
- package/dist/components/matching/types.d.ts.map +1 -1
- package/dist/components/options.d.ts +1 -1
- package/dist/components/options.d.ts.map +1 -1
- package/dist/components/validation/composition.d.ts +1 -1
- package/dist/components/validation/composition.d.ts.map +1 -1
- package/dist/email/client.d.ts.map +1 -1
- package/dist/email/client.js +3 -2
- package/dist/email/client.js.map +1 -1
- package/dist/email/functions/_shared.d.ts +6 -0
- package/dist/email/functions/_shared.d.ts.map +1 -1
- package/dist/email/functions/_shared.js +9 -0
- package/dist/email/functions/_shared.js.map +1 -1
- package/dist/email/functions/notify-approval-decision.d.ts.map +1 -1
- package/dist/email/functions/notify-approval-decision.js +2 -1
- package/dist/email/functions/notify-approval-decision.js.map +1 -1
- package/dist/email/functions/notify-approval-expired.d.ts.map +1 -1
- package/dist/email/functions/notify-approval-expired.js +2 -1
- package/dist/email/functions/notify-approval-expired.js.map +1 -1
- package/dist/email/functions/notify-approval-request.d.ts.map +1 -1
- package/dist/email/functions/notify-approval-request.js +2 -1
- package/dist/email/functions/notify-approval-request.js.map +1 -1
- package/dist/email/index.d.ts +1 -1
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +1 -1
- package/dist/email/index.js.map +1 -1
- package/dist/email/options.js +1 -1
- package/dist/email/options.js.map +1 -1
- package/dist/env/index.d.ts +0 -1
- package/dist/env/index.d.ts.map +1 -1
- package/dist/env/index.js +0 -1
- package/dist/env/index.js.map +1 -1
- package/dist/index.d.ts +3 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -11
- package/dist/index.js.map +1 -1
- package/dist/integrations/index.d.ts +1 -1
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +1 -1
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/integrations/webhook/config-fields.d.ts.map +1 -1
- package/dist/integrations/integrations/webhook/config-fields.js +3 -0
- package/dist/integrations/integrations/webhook/config-fields.js.map +1 -1
- package/dist/integrations/integrations/webhook/functions.d.ts.map +1 -1
- package/dist/integrations/integrations/webhook/functions.js +0 -1
- package/dist/integrations/integrations/webhook/functions.js.map +1 -1
- package/dist/integrations/integrations/webhook/index.d.ts.map +1 -1
- package/dist/integrations/integrations/webhook/index.js +0 -1
- package/dist/integrations/integrations/webhook/index.js.map +1 -1
- package/dist/integrations/jobs/healthcheck.js +1 -1
- package/dist/integrations/jobs/healthcheck.js.map +1 -1
- package/dist/integrations/plugin.js +1 -1
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/registry.d.ts +1 -1
- package/dist/integrations/registry.js +1 -1
- package/dist/integrations/types.d.ts +11 -9
- package/dist/integrations/types.d.ts.map +1 -1
- package/dist/jobs/failure-handler.d.ts.map +1 -1
- package/dist/jobs/failure-handler.js +5 -2
- package/dist/jobs/failure-handler.js.map +1 -1
- package/dist/jobs/workflow-types.d.ts +5 -1
- package/dist/jobs/workflow-types.d.ts.map +1 -1
- package/dist/mcp/audit-server.js +1 -1
- package/dist/mcp/audit-server.js.map +1 -1
- package/dist/mcp/meta.d.ts +8 -8
- package/dist/migrate/cli.d.ts +9 -0
- package/dist/migrate/cli.d.ts.map +1 -0
- package/dist/migrate/cli.js +105 -0
- package/dist/migrate/cli.js.map +1 -0
- package/dist/migrate/exports.json +601 -0
- package/dist/migrate/rewrite.d.ts +28 -0
- package/dist/migrate/rewrite.d.ts.map +1 -0
- package/dist/migrate/rewrite.js +188 -0
- package/dist/migrate/rewrite.js.map +1 -0
- package/dist/observability/collection.d.ts +3 -0
- package/dist/observability/collection.d.ts.map +1 -1
- package/dist/observability/collection.js +2 -0
- package/dist/observability/collection.js.map +1 -1
- package/dist/publishing/hooks/block-status-writes.d.ts +32 -0
- package/dist/publishing/hooks/block-status-writes.d.ts.map +1 -1
- package/dist/publishing/hooks/block-status-writes.js +52 -9
- package/dist/publishing/hooks/block-status-writes.js.map +1 -1
- package/dist/publishing/index.d.ts +6 -0
- package/dist/publishing/index.d.ts.map +1 -1
- package/dist/publishing/index.js +6 -0
- package/dist/publishing/index.js.map +1 -1
- package/dist/publishing/pipeline/steps/accessibility.d.ts +4 -3
- package/dist/publishing/pipeline/steps/accessibility.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/accessibility.js +10 -4
- package/dist/publishing/pipeline/steps/accessibility.js.map +1 -1
- package/dist/publishing/pipeline/steps/approval.js +1 -1
- package/dist/publishing/pipeline/steps/approval.js.map +1 -1
- package/dist/throughline.d.ts +123 -0
- package/dist/throughline.d.ts.map +1 -0
- package/dist/throughline.js +190 -0
- package/dist/throughline.js.map +1 -0
- package/dist/utils/optionalPeer.d.ts +12 -0
- package/dist/utils/optionalPeer.d.ts.map +1 -0
- package/dist/utils/optionalPeer.js +28 -0
- package/dist/utils/optionalPeer.js.map +1 -0
- package/package.json +33 -17
package/dist/mcp/meta.d.ts
CHANGED
|
@@ -9,13 +9,13 @@ export declare const McpMetaSchema: z.ZodOptional<z.ZodObject<{
|
|
|
9
9
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
10
10
|
changesSummary: z.ZodOptional<z.ZodString>;
|
|
11
11
|
}, "strip", z.ZodTypeAny, {
|
|
12
|
-
userPrompt?: string | undefined;
|
|
13
12
|
reasoning?: string | undefined;
|
|
14
13
|
changesSummary?: string | undefined;
|
|
15
|
-
}, {
|
|
16
14
|
userPrompt?: string | undefined;
|
|
15
|
+
}, {
|
|
17
16
|
reasoning?: string | undefined;
|
|
18
17
|
changesSummary?: string | undefined;
|
|
18
|
+
userPrompt?: string | undefined;
|
|
19
19
|
}>>;
|
|
20
20
|
export type McpMeta = z.infer<typeof McpMetaSchema>;
|
|
21
21
|
/**
|
|
@@ -34,13 +34,13 @@ export declare function withMeta<Shape extends z.ZodRawShape>(shape: Shape): z.Z
|
|
|
34
34
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
35
35
|
changesSummary: z.ZodOptional<z.ZodString>;
|
|
36
36
|
}, "strip", z.ZodTypeAny, {
|
|
37
|
-
userPrompt?: string | undefined;
|
|
38
37
|
reasoning?: string | undefined;
|
|
39
38
|
changesSummary?: string | undefined;
|
|
40
|
-
}, {
|
|
41
39
|
userPrompt?: string | undefined;
|
|
40
|
+
}, {
|
|
42
41
|
reasoning?: string | undefined;
|
|
43
42
|
changesSummary?: string | undefined;
|
|
43
|
+
userPrompt?: string | undefined;
|
|
44
44
|
}>>;
|
|
45
45
|
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Shape & {
|
|
46
46
|
_meta: z.ZodOptional<z.ZodObject<{
|
|
@@ -48,13 +48,13 @@ export declare function withMeta<Shape extends z.ZodRawShape>(shape: Shape): z.Z
|
|
|
48
48
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
49
49
|
changesSummary: z.ZodOptional<z.ZodString>;
|
|
50
50
|
}, "strip", z.ZodTypeAny, {
|
|
51
|
-
userPrompt?: string | undefined;
|
|
52
51
|
reasoning?: string | undefined;
|
|
53
52
|
changesSummary?: string | undefined;
|
|
54
|
-
}, {
|
|
55
53
|
userPrompt?: string | undefined;
|
|
54
|
+
}, {
|
|
56
55
|
reasoning?: string | undefined;
|
|
57
56
|
changesSummary?: string | undefined;
|
|
57
|
+
userPrompt?: string | undefined;
|
|
58
58
|
}>>;
|
|
59
59
|
}>, any> extends infer T ? { [k in keyof T]: T[k]; } : never, z.baseObjectInputType<Shape & {
|
|
60
60
|
_meta: z.ZodOptional<z.ZodObject<{
|
|
@@ -62,13 +62,13 @@ export declare function withMeta<Shape extends z.ZodRawShape>(shape: Shape): z.Z
|
|
|
62
62
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
63
63
|
changesSummary: z.ZodOptional<z.ZodString>;
|
|
64
64
|
}, "strip", z.ZodTypeAny, {
|
|
65
|
-
userPrompt?: string | undefined;
|
|
66
65
|
reasoning?: string | undefined;
|
|
67
66
|
changesSummary?: string | undefined;
|
|
68
|
-
}, {
|
|
69
67
|
userPrompt?: string | undefined;
|
|
68
|
+
}, {
|
|
70
69
|
reasoning?: string | undefined;
|
|
71
70
|
changesSummary?: string | undefined;
|
|
71
|
+
userPrompt?: string | undefined;
|
|
72
72
|
}>>;
|
|
73
73
|
}> extends infer T_1 ? { [k_1 in keyof T_1]: T_1[k_1]; } : never>;
|
|
74
74
|
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface Write {
|
|
2
|
+
stdout: (line: string) => void;
|
|
3
|
+
stderr: (line: string) => void;
|
|
4
|
+
}
|
|
5
|
+
export declare function migrateImports(args: readonly string[], out?: Write): Promise<number>;
|
|
6
|
+
/** The `throughline` bin: one subcommand so far. */
|
|
7
|
+
export declare function main(argv: readonly string[]): Promise<number>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/migrate/cli.ts"],"names":[],"mappings":"AA0BA,UAAU,KAAK;IACb,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/B;AAgBD,wBAAsB,cAAc,CAClC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,KAAsD,GAC1D,OAAO,CAAC,MAAM,CAAC,CAyDjB;AAED,oDAAoD;AACpD,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAKnE"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* eslint-disable no-console -- a command-line tool, whose output is the console */
|
|
2
|
+
import { readdir, readFile, stat, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { join, relative, resolve } from 'node:path';
|
|
4
|
+
import { COUNTERPARTS, rewriteSource } from './rewrite.js';
|
|
5
|
+
/*
|
|
6
|
+
`throughline migrate-imports [paths…] [--dry-run]`
|
|
7
|
+
|
|
8
|
+
Rewrites every 0.x Throughline import under the given paths (default: the
|
|
9
|
+
working directory) to its 1.0 home, and reports what it could not place. Exits 1
|
|
10
|
+
when anything is left unresolved, so a migration can gate on it.
|
|
11
|
+
*/
|
|
12
|
+
const SOURCE = /\.(ts|tsx|mts|cts|js|jsx|mjs|cjs)$/;
|
|
13
|
+
const SKIP = new Set(['node_modules', 'dist', '.next', '.turbo', 'build', 'coverage', '.git']);
|
|
14
|
+
const OLD_PACKAGES = [
|
|
15
|
+
...new Set(Object.keys(COUNTERPARTS).map((s) => s.split('/').slice(0, 2).join('/'))),
|
|
16
|
+
];
|
|
17
|
+
const USAGE = `Usage: throughline migrate-imports [paths…] [--dry-run]
|
|
18
|
+
|
|
19
|
+
Rewrites imports of the 0.x @forumone/throughline-* packages to
|
|
20
|
+
@forumone/throughline and @forumone/throughline-design-system 1.0.
|
|
21
|
+
|
|
22
|
+
--dry-run report what would change, and write nothing`;
|
|
23
|
+
async function* walk(path) {
|
|
24
|
+
const info = await stat(path);
|
|
25
|
+
if (info.isFile()) {
|
|
26
|
+
yield path;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
for (const entry of await readdir(path, { withFileTypes: true })) {
|
|
30
|
+
if (SKIP.has(entry.name))
|
|
31
|
+
continue;
|
|
32
|
+
const full = join(path, entry.name);
|
|
33
|
+
if (entry.isDirectory())
|
|
34
|
+
yield* walk(full);
|
|
35
|
+
else
|
|
36
|
+
yield full;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export async function migrateImports(args, out = { stdout: console.log, stderr: console.error }) {
|
|
40
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
41
|
+
out.stdout(USAGE);
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
const dryRun = args.includes('--dry-run');
|
|
45
|
+
const roots = args.filter((a) => !a.startsWith('--'));
|
|
46
|
+
const cwd = process.cwd();
|
|
47
|
+
let changed = 0;
|
|
48
|
+
const review = [];
|
|
49
|
+
const unresolved = [];
|
|
50
|
+
const manifests = [];
|
|
51
|
+
for (const root of roots.length > 0 ? roots : ['.']) {
|
|
52
|
+
for await (const file of walk(resolve(root))) {
|
|
53
|
+
const name = relative(cwd, file) || file;
|
|
54
|
+
if (file.endsWith('package.json')) {
|
|
55
|
+
const manifest = JSON.parse(await readFile(file, 'utf8'));
|
|
56
|
+
const deps = ['dependencies', 'devDependencies', 'peerDependencies'].flatMap((field) => Object.keys(manifest[field] ?? {}).filter((dep) => OLD_PACKAGES.includes(dep)));
|
|
57
|
+
if (deps.length > 0)
|
|
58
|
+
manifests.push({ file: name, deps });
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (!SOURCE.test(file))
|
|
62
|
+
continue;
|
|
63
|
+
const text = await readFile(file, 'utf8');
|
|
64
|
+
if (!text.includes('@forumone/throughline-'))
|
|
65
|
+
continue;
|
|
66
|
+
const result = rewriteSource(text);
|
|
67
|
+
for (const finding of result.review)
|
|
68
|
+
review.push({ file: name, ...finding });
|
|
69
|
+
for (const finding of result.unresolved)
|
|
70
|
+
unresolved.push({ file: name, ...finding });
|
|
71
|
+
if (result.changed) {
|
|
72
|
+
changed++;
|
|
73
|
+
if (!dryRun)
|
|
74
|
+
await writeFile(file, result.text);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
out.stdout(`${dryRun ? 'Would rewrite' : 'Rewrote'} ${changed} file${changed === 1 ? '' : 's'}.`);
|
|
79
|
+
if (review.length > 0) {
|
|
80
|
+
out.stdout(`\nRewritten, but check (${review.length}):`);
|
|
81
|
+
for (const f of review)
|
|
82
|
+
out.stdout(` ${f.file}:${f.line} ${f.message}`);
|
|
83
|
+
}
|
|
84
|
+
if (manifests.length > 0) {
|
|
85
|
+
out.stdout('\nDependencies to replace with @forumone/throughline (and @forumone/throughline-design-system for design-contract and design-system-payload):');
|
|
86
|
+
for (const m of manifests)
|
|
87
|
+
out.stdout(` ${m.file}: ${m.deps.join(', ')}`);
|
|
88
|
+
}
|
|
89
|
+
if (unresolved.length > 0) {
|
|
90
|
+
out.stderr(`\nLeft as they were (${unresolved.length}):`);
|
|
91
|
+
for (const f of unresolved)
|
|
92
|
+
out.stderr(` ${f.file}:${f.line} ${f.message}`);
|
|
93
|
+
return 1;
|
|
94
|
+
}
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
/** The `throughline` bin: one subcommand so far. */
|
|
98
|
+
export async function main(argv) {
|
|
99
|
+
const [command, ...rest] = argv;
|
|
100
|
+
if (command === 'migrate-imports')
|
|
101
|
+
return migrateImports(rest);
|
|
102
|
+
console.error(command ? `Unknown command: ${command}\n\n${USAGE}` : USAGE);
|
|
103
|
+
return command ? 2 : 0;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/migrate/cli.ts"],"names":[],"mappings":"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"}
|