@workos/oagen 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.mjs +1190 -512
- package/dist/cli/index.mjs.map +1 -1
- package/dist/compat/index.d.mts +144 -57
- package/dist/compat/index.d.mts.map +1 -1
- package/dist/compat/index.mjs +362 -41
- package/dist/compat/index.mjs.map +1 -1
- package/dist/{diff-BYadQQV7.mjs → diff-DZvzV9p3.mjs} +31 -22
- package/dist/{diff-BYadQQV7.mjs.map → diff-DZvzV9p3.mjs.map} +1 -1
- package/dist/differ-CTl98yoS.d.mts +116 -0
- package/dist/differ-CTl98yoS.d.mts.map +1 -0
- package/dist/index.d.mts +13 -4
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +50 -10
- package/dist/index.mjs.map +1 -1
- package/dist/{differ-CG5ZErKl.mjs → overlay-Bt6oz0dg.mjs} +1112 -553
- package/dist/overlay-Bt6oz0dg.mjs.map +1 -0
- package/dist/scripts/smoke/baseline.mjs +49 -9
- package/dist/scripts/smoke/baseline.mjs.map +1 -1
- package/dist/smoke.d.mts +10 -0
- package/dist/smoke.d.mts.map +1 -1
- package/dist/smoke.mjs +49 -9
- package/dist/smoke.mjs.map +1 -1
- package/dist/tree-sitter-C53w_0WE.mjs.map +1 -1
- package/dist/{types-DJMbCtIO.d.mts → types-mTtkgy_h.d.mts} +180 -2
- package/dist/types-mTtkgy_h.d.mts.map +1 -0
- package/dist/verify/index.d.mts +4 -3
- package/dist/verify/index.d.mts.map +1 -1
- package/dist/verify/index.mjs +56 -39
- package/dist/verify/index.mjs.map +1 -1
- package/docs/architecture/emitter-contract.md +2 -2
- package/docs/architecture/extractor-contract.md +6 -5
- package/docs/architecture/pipeline.md +4 -3
- package/docs/architecture/workflows.md +5 -3
- package/docs/cli.md +148 -6
- package/docs/contributor/public-api.md +1 -1
- package/docs/core/compatibility-ir.md +200 -0
- package/docs/core/compatibility-policy.md +170 -0
- package/docs/core/compatibility.md +83 -0
- package/docs/core/index.md +5 -0
- package/docs/core/manifest-schema.md +76 -0
- package/docs/core/quickstart.md +9 -2
- package/docs/core/verify-compat.md +235 -0
- package/package.json +1 -1
- package/skills/generate-emitter/SKILL.md +12 -7
- package/skills/generate-emitter/references/project-scaffold.md +27 -6
- package/skills/generate-extractor/SKILL.md +14 -8
- package/skills/generate-sdk/SKILL.md +2 -2
- package/skills/generate-smoke-test/SKILL.md +9 -5
- package/skills/review-operations/SKILL.md +2 -2
- package/skills/verify-compat/SKILL.md +1 -1
- package/dist/differ-CG5ZErKl.mjs.map +0 -1
- package/dist/types-DJMbCtIO.d.mts.map +0 -1
|
@@ -2439,8 +2439,7 @@ function generateAllFiles(spec, emitter, ctx) {
|
|
|
2439
2439
|
...emitter.generateClient(spec, ctx),
|
|
2440
2440
|
...emitter.generateErrors(ctx),
|
|
2441
2441
|
...emitter.generateTypeSignatures?.(reachableSpec, ctx) ?? [],
|
|
2442
|
-
...emitter.generateTests(reachableSpec, ctx)
|
|
2443
|
-
...emitter.generateManifest?.(spec, ctx) ?? []
|
|
2442
|
+
...emitter.generateTests(reachableSpec, ctx)
|
|
2444
2443
|
];
|
|
2445
2444
|
}
|
|
2446
2445
|
/** Apply file header to generated files, respecting headerPlacement and JSON files. */
|
|
@@ -2454,11 +2453,13 @@ function applyFileHeaders(files, header) {
|
|
|
2454
2453
|
function generateFiles(spec, emitter, options) {
|
|
2455
2454
|
const ctx = buildEmitterContext(spec, options);
|
|
2456
2455
|
const files = generateAllFiles(spec, emitter, ctx);
|
|
2456
|
+
const operations = emitter.buildOperationsMap?.(spec, ctx);
|
|
2457
2457
|
const header = emitter.fileHeader();
|
|
2458
2458
|
return {
|
|
2459
2459
|
files: applyFileHeaders(files, header),
|
|
2460
2460
|
ctx,
|
|
2461
|
-
header
|
|
2461
|
+
header,
|
|
2462
|
+
operations
|
|
2462
2463
|
};
|
|
2463
2464
|
}
|
|
2464
2465
|
//#endregion
|
|
@@ -2689,7 +2690,7 @@ async function formatTargetFiles(emitter, targetDir, filePaths) {
|
|
|
2689
2690
|
* one-line notice is printed — no surprise deletions.
|
|
2690
2691
|
*/
|
|
2691
2692
|
const MANIFEST_FILENAME = ".oagen-manifest.json";
|
|
2692
|
-
const MANIFEST_VERSION =
|
|
2693
|
+
const MANIFEST_VERSION = 2;
|
|
2693
2694
|
/** Read `.oagen-manifest.json` from a directory. Returns null if absent or malformed. */
|
|
2694
2695
|
async function readManifest(dir) {
|
|
2695
2696
|
const manifestPath = path$1.join(dir, MANIFEST_FILENAME);
|
|
@@ -2716,8 +2717,16 @@ async function writeManifest(dir, opts) {
|
|
|
2716
2717
|
const manifest = {
|
|
2717
2718
|
version: MANIFEST_VERSION,
|
|
2718
2719
|
language: opts.language,
|
|
2720
|
+
...opts.sdkName !== void 0 ? { sdkName: opts.sdkName } : {},
|
|
2719
2721
|
generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
2720
|
-
|
|
2722
|
+
...opts.specSha !== void 0 ? { specSha: opts.specSha } : {},
|
|
2723
|
+
...opts.specPath !== void 0 ? { specPath: opts.specPath } : {},
|
|
2724
|
+
...opts.emitterSha !== void 0 ? { emitterSha: opts.emitterSha } : {},
|
|
2725
|
+
...opts.emitterVersion !== void 0 ? { emitterVersion: opts.emitterVersion } : {},
|
|
2726
|
+
...opts.configSha !== void 0 ? { configSha: opts.configSha } : {},
|
|
2727
|
+
...opts.compatSchemaVersion !== void 0 ? { compatSchemaVersion: opts.compatSchemaVersion } : {},
|
|
2728
|
+
files: [...new Set(opts.files)].sort(),
|
|
2729
|
+
...opts.operations !== void 0 ? { operations: opts.operations } : {}
|
|
2721
2730
|
};
|
|
2722
2731
|
const manifestPath = path$1.join(dir, MANIFEST_FILENAME);
|
|
2723
2732
|
await fs.mkdir(dir, { recursive: true });
|
|
@@ -2799,7 +2808,7 @@ async function removeEmptyParents(startDir, stopDir) {
|
|
|
2799
2808
|
async function generate(spec, emitter, options) {
|
|
2800
2809
|
const targetManifestForCtx = options.target && !options.noPrune ? await readManifest(options.target) : null;
|
|
2801
2810
|
const priorTargetManifestPaths = targetManifestForCtx ? new Set(targetManifestForCtx.files) : void 0;
|
|
2802
|
-
const { files: withHeaders, header } = generateFiles(spec, emitter, {
|
|
2811
|
+
const { files: withHeaders, header, operations } = generateFiles(spec, emitter, {
|
|
2803
2812
|
...options,
|
|
2804
2813
|
priorTargetManifestPaths
|
|
2805
2814
|
});
|
|
@@ -2825,8 +2834,11 @@ async function generate(spec, emitter, options) {
|
|
|
2825
2834
|
currentPaths: outputEmittedPaths,
|
|
2826
2835
|
language: emitter.language,
|
|
2827
2836
|
header,
|
|
2828
|
-
noPrune: options.noPrune
|
|
2837
|
+
noPrune: options.noPrune,
|
|
2838
|
+
operations
|
|
2829
2839
|
});
|
|
2840
|
+
const allOutputFiles = [...writeResult.written, ...writeResult.merged];
|
|
2841
|
+
if (allOutputFiles.length > 0) await formatTargetFiles(emitter, options.outputDir, allOutputFiles);
|
|
2830
2842
|
if (options.target) {
|
|
2831
2843
|
const targetPrevManifest = targetManifestForCtx;
|
|
2832
2844
|
const targetResult = await integrateGeneratedFiles({
|
|
@@ -2845,7 +2857,8 @@ async function generate(spec, emitter, options) {
|
|
|
2845
2857
|
currentPaths: targetResult.emittedPaths,
|
|
2846
2858
|
language: emitter.language,
|
|
2847
2859
|
header,
|
|
2848
|
-
noPrune: options.noPrune
|
|
2860
|
+
noPrune: options.noPrune,
|
|
2861
|
+
operations
|
|
2849
2862
|
});
|
|
2850
2863
|
const allTargetFiles = [
|
|
2851
2864
|
...targetResult.written,
|
|
@@ -2861,19 +2874,18 @@ async function generate(spec, emitter, options) {
|
|
|
2861
2874
|
* then write the fresh manifest. Safe on first adoption (no previous manifest).
|
|
2862
2875
|
*/
|
|
2863
2876
|
async function applyManifestPrune(opts) {
|
|
2877
|
+
const manifestOpts = {
|
|
2878
|
+
language: opts.language,
|
|
2879
|
+
files: opts.currentPaths,
|
|
2880
|
+
operations: opts.operations
|
|
2881
|
+
};
|
|
2864
2882
|
if (opts.noPrune) {
|
|
2865
|
-
await writeManifest(opts.dir,
|
|
2866
|
-
language: opts.language,
|
|
2867
|
-
files: opts.currentPaths
|
|
2868
|
-
});
|
|
2883
|
+
await writeManifest(opts.dir, manifestOpts);
|
|
2869
2884
|
return;
|
|
2870
2885
|
}
|
|
2871
2886
|
if (!opts.prevManifest) {
|
|
2872
2887
|
console.log(`${opts.label}: no ${MANIFEST_FILENAME} found — skipping prune (this baseline manifest will be written now).`);
|
|
2873
|
-
await writeManifest(opts.dir,
|
|
2874
|
-
language: opts.language,
|
|
2875
|
-
files: opts.currentPaths
|
|
2876
|
-
});
|
|
2888
|
+
await writeManifest(opts.dir, manifestOpts);
|
|
2877
2889
|
return;
|
|
2878
2890
|
}
|
|
2879
2891
|
const stale = computeStalePaths(opts.prevManifest, opts.currentPaths);
|
|
@@ -2885,10 +2897,7 @@ async function applyManifestPrune(opts) {
|
|
|
2885
2897
|
for (const p of preserved) console.log(` ${p}`);
|
|
2886
2898
|
}
|
|
2887
2899
|
}
|
|
2888
|
-
await writeManifest(opts.dir,
|
|
2889
|
-
language: opts.language,
|
|
2890
|
-
files: opts.currentPaths
|
|
2891
|
-
});
|
|
2900
|
+
await writeManifest(opts.dir, manifestOpts);
|
|
2892
2901
|
}
|
|
2893
2902
|
//#endregion
|
|
2894
2903
|
//#region src/engine/registry.ts
|
|
@@ -3248,6 +3257,6 @@ function summarize(changes) {
|
|
|
3248
3257
|
};
|
|
3249
3258
|
}
|
|
3250
3259
|
//#endregion
|
|
3251
|
-
export {
|
|
3260
|
+
export { MANIFEST_FILENAME as a, treeShakeFiles as c, collectReferencedNames as d, generateAllFiles as f, resolveOperations as h, generate as i, applyFileHeaders as l, deriveMethodName as m, getEmitter as n, integrateGeneratedFiles as o, generateFiles as p, registerEmitter as r, mapFilesForTargetIntegration as s, diffSpecs as t, buildEmitterContext as u };
|
|
3252
3261
|
|
|
3253
|
-
//# sourceMappingURL=diff-
|
|
3262
|
+
//# sourceMappingURL=diff-DZvzV9p3.mjs.map
|