@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
package/dist/cli/index.mjs
CHANGED
|
@@ -3148,11 +3148,21 @@ function extractKotlinClassMembers(classBody, source) {
|
|
|
3148
3148
|
}
|
|
3149
3149
|
members.push({
|
|
3150
3150
|
key: memberName,
|
|
3151
|
-
text: source.slice(startIdx, endIdx)
|
|
3151
|
+
text: source.slice(startIdx, endIdx),
|
|
3152
|
+
startIndex: startIdx,
|
|
3153
|
+
endIndex: endIdx
|
|
3152
3154
|
});
|
|
3153
3155
|
}
|
|
3154
3156
|
return members;
|
|
3155
3157
|
}
|
|
3158
|
+
/**
|
|
3159
|
+
* KDoc signature that identifies a generator-emitted service accessor inside
|
|
3160
|
+
* the WorkOS class. The Kotlin client emitter writes every accessor with this
|
|
3161
|
+
* exact doc preamble — when the existing file carries a member with this doc
|
|
3162
|
+
* but the regenerated content omits it, the member is stale (its mount target
|
|
3163
|
+
* was remapped or removed) and gets pruned.
|
|
3164
|
+
*/
|
|
3165
|
+
const KOTLIN_MANAGED_ACCESSOR_DOC = /\/\*\*[\s\S]*?Lazily-constructed \[[^\]]+\] accessor for this \[WorkOS\] client\.[\s\S]*?\*\//;
|
|
3156
3166
|
const kotlinMergeAdapter = {
|
|
3157
3167
|
language: "kotlin",
|
|
3158
3168
|
grammarModule: "tree-sitter-kotlin",
|
|
@@ -3193,6 +3203,9 @@ const kotlinMergeAdapter = {
|
|
|
3193
3203
|
renderImports(imports) {
|
|
3194
3204
|
return imports.map((entry) => entry.text);
|
|
3195
3205
|
},
|
|
3206
|
+
isManagedMember(member) {
|
|
3207
|
+
return KOTLIN_MANAGED_ACCESSOR_DOC.test(member.text);
|
|
3208
|
+
},
|
|
3196
3209
|
shouldSkipDeepMerge(_symbolName, existingMemberKeys, newMembers) {
|
|
3197
3210
|
const newText = newMembers.map((m) => m.text).join("\n");
|
|
3198
3211
|
for (const match of newText.matchAll(/this\.(\w+)/g)) {
|
|
@@ -4288,6 +4301,7 @@ async function mergeIntoExisting(existingContent, generatedContent, language, he
|
|
|
4288
4301
|
let result = existingContent;
|
|
4289
4302
|
if (toAppend.length > 0) result = result.trimEnd() + "\n\n" + toAppend.join("\n\n") + "\n";
|
|
4290
4303
|
let deepAdded = 0;
|
|
4304
|
+
let deepPruned = 0;
|
|
4291
4305
|
const insertions = [];
|
|
4292
4306
|
if (adapter.extractMembers) {
|
|
4293
4307
|
const parser = await getParser(language);
|
|
@@ -4297,6 +4311,37 @@ async function mergeIntoExisting(existingContent, generatedContent, language, he
|
|
|
4297
4311
|
const generatedSymbols = adapter.extractMembers(generatedTree, generatedContent);
|
|
4298
4312
|
const existingTree = safeParse(parser, existingContent);
|
|
4299
4313
|
const deepIgnoredSymbols = buildIgnoredSymbolNames(adapter.extractDocstrings(existingTree, existingContent), findIgnoredRegions(existingContent));
|
|
4314
|
+
if (adapter.isManagedMember) {
|
|
4315
|
+
const pruneEdits = [];
|
|
4316
|
+
for (const [symbolName, genSymbol] of generatedSymbols) {
|
|
4317
|
+
if (deepIgnoredSymbols.has(symbolName)) continue;
|
|
4318
|
+
const existSymbol = resultSymbols.get(symbolName);
|
|
4319
|
+
if (!existSymbol) continue;
|
|
4320
|
+
const genMemberKeys = new Set(genSymbol.members.map((m) => m.key));
|
|
4321
|
+
for (const existMember of existSymbol.members) {
|
|
4322
|
+
if (genMemberKeys.has(existMember.key)) continue;
|
|
4323
|
+
if (existMember.startIndex === void 0 || existMember.endIndex === void 0) continue;
|
|
4324
|
+
if (!adapter.isManagedMember(existMember)) continue;
|
|
4325
|
+
pruneEdits.push({
|
|
4326
|
+
start: existMember.startIndex,
|
|
4327
|
+
end: existMember.endIndex
|
|
4328
|
+
});
|
|
4329
|
+
}
|
|
4330
|
+
}
|
|
4331
|
+
if (pruneEdits.length > 0) {
|
|
4332
|
+
pruneEdits.sort((a, b) => b.start - a.start);
|
|
4333
|
+
for (const edit of pruneEdits) {
|
|
4334
|
+
let end = edit.end;
|
|
4335
|
+
while (end < result.length && (result[end] === " " || result[end] === " ")) end++;
|
|
4336
|
+
if (result[end] === "\n") end++;
|
|
4337
|
+
result = result.slice(0, edit.start) + result.slice(end);
|
|
4338
|
+
}
|
|
4339
|
+
deepPruned = pruneEdits.length;
|
|
4340
|
+
const reTree = safeParse(parser, result);
|
|
4341
|
+
resultSymbols.clear();
|
|
4342
|
+
for (const [k, v] of adapter.extractMembers(reTree, result)) resultSymbols.set(k, v);
|
|
4343
|
+
}
|
|
4344
|
+
}
|
|
4300
4345
|
for (const [symbolName, genSymbol] of generatedSymbols) {
|
|
4301
4346
|
if (deepIgnoredSymbols.has(symbolName)) continue;
|
|
4302
4347
|
const existSymbol = resultSymbols.get(symbolName);
|
|
@@ -4479,7 +4524,7 @@ async function mergeIntoExisting(existingContent, generatedContent, language, he
|
|
|
4479
4524
|
}
|
|
4480
4525
|
}
|
|
4481
4526
|
const totalAdded = (toAppend.length > 0 || deepAdded > 0 ? adapter.renderImports ? adapter.renderImports(newImports).length : newImports.length : 0) + toAppend.length + deepAdded;
|
|
4482
|
-
if (totalAdded === 0 && docstringUpdates === 0) return {
|
|
4527
|
+
if (totalAdded === 0 && docstringUpdates === 0 && deepPruned === 0) return {
|
|
4483
4528
|
content: existingContent,
|
|
4484
4529
|
added: 0,
|
|
4485
4530
|
preserved,
|