@workos/oagen 0.19.5 → 0.19.6
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 +47 -2
- package/dist/cli/index.mjs.map +1 -1
- package/dist/{diff-DE8ycKqW.mjs → diff-C8mjApjv.mjs} +48 -3
- package/dist/diff-C8mjApjv.mjs.map +1 -0
- package/dist/index.mjs +1 -1
- package/dist/verify/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/diff-DE8ycKqW.mjs.map +0 -1
|
@@ -706,11 +706,21 @@ function extractKotlinClassMembers(classBody, source) {
|
|
|
706
706
|
}
|
|
707
707
|
members.push({
|
|
708
708
|
key: memberName,
|
|
709
|
-
text: source.slice(startIdx, endIdx)
|
|
709
|
+
text: source.slice(startIdx, endIdx),
|
|
710
|
+
startIndex: startIdx,
|
|
711
|
+
endIndex: endIdx
|
|
710
712
|
});
|
|
711
713
|
}
|
|
712
714
|
return members;
|
|
713
715
|
}
|
|
716
|
+
/**
|
|
717
|
+
* KDoc signature that identifies a generator-emitted service accessor inside
|
|
718
|
+
* the WorkOS class. The Kotlin client emitter writes every accessor with this
|
|
719
|
+
* exact doc preamble — when the existing file carries a member with this doc
|
|
720
|
+
* but the regenerated content omits it, the member is stale (its mount target
|
|
721
|
+
* was remapped or removed) and gets pruned.
|
|
722
|
+
*/
|
|
723
|
+
const KOTLIN_MANAGED_ACCESSOR_DOC = /\/\*\*[\s\S]*?Lazily-constructed \[[^\]]+\] accessor for this \[WorkOS\] client\.[\s\S]*?\*\//;
|
|
714
724
|
const kotlinMergeAdapter = {
|
|
715
725
|
language: "kotlin",
|
|
716
726
|
grammarModule: "tree-sitter-kotlin",
|
|
@@ -751,6 +761,9 @@ const kotlinMergeAdapter = {
|
|
|
751
761
|
renderImports(imports) {
|
|
752
762
|
return imports.map((entry) => entry.text);
|
|
753
763
|
},
|
|
764
|
+
isManagedMember(member) {
|
|
765
|
+
return KOTLIN_MANAGED_ACCESSOR_DOC.test(member.text);
|
|
766
|
+
},
|
|
754
767
|
shouldSkipDeepMerge(_symbolName, existingMemberKeys, newMembers) {
|
|
755
768
|
const newText = newMembers.map((m) => m.text).join("\n");
|
|
756
769
|
for (const match of newText.matchAll(/this\.(\w+)/g)) {
|
|
@@ -1839,6 +1852,7 @@ async function mergeIntoExisting(existingContent, generatedContent, language, he
|
|
|
1839
1852
|
let result = existingContent;
|
|
1840
1853
|
if (toAppend.length > 0) result = result.trimEnd() + "\n\n" + toAppend.join("\n\n") + "\n";
|
|
1841
1854
|
let deepAdded = 0;
|
|
1855
|
+
let deepPruned = 0;
|
|
1842
1856
|
const insertions = [];
|
|
1843
1857
|
if (adapter.extractMembers) {
|
|
1844
1858
|
const parser = await getParser(language);
|
|
@@ -1848,6 +1862,37 @@ async function mergeIntoExisting(existingContent, generatedContent, language, he
|
|
|
1848
1862
|
const generatedSymbols = adapter.extractMembers(generatedTree, generatedContent);
|
|
1849
1863
|
const existingTree = safeParse(parser, existingContent);
|
|
1850
1864
|
const deepIgnoredSymbols = buildIgnoredSymbolNames(adapter.extractDocstrings(existingTree, existingContent), findIgnoredRegions(existingContent));
|
|
1865
|
+
if (adapter.isManagedMember) {
|
|
1866
|
+
const pruneEdits = [];
|
|
1867
|
+
for (const [symbolName, genSymbol] of generatedSymbols) {
|
|
1868
|
+
if (deepIgnoredSymbols.has(symbolName)) continue;
|
|
1869
|
+
const existSymbol = resultSymbols.get(symbolName);
|
|
1870
|
+
if (!existSymbol) continue;
|
|
1871
|
+
const genMemberKeys = new Set(genSymbol.members.map((m) => m.key));
|
|
1872
|
+
for (const existMember of existSymbol.members) {
|
|
1873
|
+
if (genMemberKeys.has(existMember.key)) continue;
|
|
1874
|
+
if (existMember.startIndex === void 0 || existMember.endIndex === void 0) continue;
|
|
1875
|
+
if (!adapter.isManagedMember(existMember)) continue;
|
|
1876
|
+
pruneEdits.push({
|
|
1877
|
+
start: existMember.startIndex,
|
|
1878
|
+
end: existMember.endIndex
|
|
1879
|
+
});
|
|
1880
|
+
}
|
|
1881
|
+
}
|
|
1882
|
+
if (pruneEdits.length > 0) {
|
|
1883
|
+
pruneEdits.sort((a, b) => b.start - a.start);
|
|
1884
|
+
for (const edit of pruneEdits) {
|
|
1885
|
+
let end = edit.end;
|
|
1886
|
+
while (end < result.length && (result[end] === " " || result[end] === " ")) end++;
|
|
1887
|
+
if (result[end] === "\n") end++;
|
|
1888
|
+
result = result.slice(0, edit.start) + result.slice(end);
|
|
1889
|
+
}
|
|
1890
|
+
deepPruned = pruneEdits.length;
|
|
1891
|
+
const reTree = safeParse(parser, result);
|
|
1892
|
+
resultSymbols.clear();
|
|
1893
|
+
for (const [k, v] of adapter.extractMembers(reTree, result)) resultSymbols.set(k, v);
|
|
1894
|
+
}
|
|
1895
|
+
}
|
|
1851
1896
|
for (const [symbolName, genSymbol] of generatedSymbols) {
|
|
1852
1897
|
if (deepIgnoredSymbols.has(symbolName)) continue;
|
|
1853
1898
|
const existSymbol = resultSymbols.get(symbolName);
|
|
@@ -2030,7 +2075,7 @@ async function mergeIntoExisting(existingContent, generatedContent, language, he
|
|
|
2030
2075
|
}
|
|
2031
2076
|
}
|
|
2032
2077
|
const totalAdded = (toAppend.length > 0 || deepAdded > 0 ? adapter.renderImports ? adapter.renderImports(newImports).length : newImports.length : 0) + toAppend.length + deepAdded;
|
|
2033
|
-
if (totalAdded === 0 && docstringUpdates === 0) return {
|
|
2078
|
+
if (totalAdded === 0 && docstringUpdates === 0 && deepPruned === 0) return {
|
|
2034
2079
|
content: existingContent,
|
|
2035
2080
|
added: 0,
|
|
2036
2081
|
preserved,
|
|
@@ -3491,4 +3536,4 @@ function summarize(changes) {
|
|
|
3491
3536
|
//#endregion
|
|
3492
3537
|
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 };
|
|
3493
3538
|
|
|
3494
|
-
//# sourceMappingURL=diff-
|
|
3539
|
+
//# sourceMappingURL=diff-C8mjApjv.mjs.map
|