@dereekb/dbx-cli 13.13.0 → 13.14.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/firebase-api-manifest/main.js +65 -7
- package/firebase-api-manifest/package.json +3 -3
- package/generate-firestore-indexes/main.js +2 -2
- package/generate-firestore-indexes/package.json +2 -2
- package/generate-mcp-manifest/main.js +94 -14
- package/generate-mcp-manifest/package.json +3 -3
- package/index.cjs.js +120 -0
- package/index.esm.js +113 -1
- package/lint-cache/package.json +2 -2
- package/manifest-extract/index.cjs.js +138 -4
- package/manifest-extract/index.esm.js +138 -4
- package/manifest-extract/package.json +2 -2
- package/manifest-extract/src/lib/types.d.ts +19 -0
- package/package.json +6 -6
- package/src/lib/manifest/types.d.ts +136 -0
- package/test/package.json +9 -9
package/index.esm.js
CHANGED
|
@@ -11528,6 +11528,118 @@ function parseJsonData(rawData) {
|
|
|
11528
11528
|
var isDefault = specifier == null || specifier === '_';
|
|
11529
11529
|
return isDefault ? "".concat(modelType, ".").concat(call, "._") : "".concat(modelType, ".").concat(call, ".").concat(specifier);
|
|
11530
11530
|
}
|
|
11531
|
+
/**
|
|
11532
|
+
* Default specifier key used when a handler is not behind a specifier router.
|
|
11533
|
+
*
|
|
11534
|
+
* Mirrors `DEFAULT_SPECIFIER_KEY` in `@dereekb/firebase-server/mcp` — kept in sync so the
|
|
11535
|
+
* build-time renderer composes the same tool names as the runtime generator.
|
|
11536
|
+
*/ var DEFAULT_SPECIFIER_KEY = '_';
|
|
11537
|
+
/**
|
|
11538
|
+
* Soft limit for an MCP tool name. Mirrors `MCP_TOOL_NAME_WARN_LENGTH` in
|
|
11539
|
+
* `@dereekb/firebase-server/mcp`. Names over this are flagged at manifest-generation time.
|
|
11540
|
+
*/ var MCP_TOOL_NAME_WARN_LENGTH = 55;
|
|
11541
|
+
/**
|
|
11542
|
+
* Hard limit for an MCP tool name. Mirrors `MCP_TOOL_NAME_MAX_LENGTH` in
|
|
11543
|
+
* `@dereekb/firebase-server/mcp`. Remote MCP clients reject a `tools/list` payload containing any
|
|
11544
|
+
* tool whose `name` exceeds this, so manifest generation fails when a name is over the cap.
|
|
11545
|
+
*/ var MCP_TOOL_NAME_MAX_LENGTH = 64;
|
|
11546
|
+
/**
|
|
11547
|
+
* Builds the MCP tool name for a (modelSegment, callType, specifier) triple.
|
|
11548
|
+
*
|
|
11549
|
+
* Mirrors `buildMcpToolName` in `@dereekb/firebase-server/mcp` so the build-time manifest validation
|
|
11550
|
+
* sees the same names the runtime advertises. The call-type segment is only emitted for the default
|
|
11551
|
+
* (`_`) specifier; named specifiers drop it (`worker-syncCheckHqEmployee`).
|
|
11552
|
+
*
|
|
11553
|
+
* @param modelSegment - The model segment of the name (model type, or a per-model override).
|
|
11554
|
+
* @param callType - The call type / verb.
|
|
11555
|
+
* @param specifier - The specifier key, or `_` / undefined for the default entry.
|
|
11556
|
+
* @returns The hyphen-joined tool name.
|
|
11557
|
+
*
|
|
11558
|
+
* @example
|
|
11559
|
+
* ```ts
|
|
11560
|
+
* buildMcpToolName('worker', 'update', 'syncCheckHqEmployee'); // 'worker-syncCheckHqEmployee'
|
|
11561
|
+
* ```
|
|
11562
|
+
*/ function buildMcpToolName(modelSegment, callType, specifier) {
|
|
11563
|
+
var isDefault = specifier == null || specifier === DEFAULT_SPECIFIER_KEY;
|
|
11564
|
+
return isDefault ? "".concat(modelSegment, "-").concat(callType) : "".concat(modelSegment, "-").concat(specifier);
|
|
11565
|
+
}
|
|
11566
|
+
/**
|
|
11567
|
+
* Classifies a tool name's length against the soft/hard MCP name-length limits.
|
|
11568
|
+
*
|
|
11569
|
+
* Mirrors `validateMcpToolName` in `@dereekb/firebase-server/mcp`.
|
|
11570
|
+
*
|
|
11571
|
+
* @param name - The fully-resolved tool name.
|
|
11572
|
+
* @returns The length classification — `error` over {@link MCP_TOOL_NAME_MAX_LENGTH}, `warn` over
|
|
11573
|
+
* {@link MCP_TOOL_NAME_WARN_LENGTH}, otherwise `ok`.
|
|
11574
|
+
*
|
|
11575
|
+
* @example
|
|
11576
|
+
* ```ts
|
|
11577
|
+
* validateMcpToolName('worker-create').level; // 'ok'
|
|
11578
|
+
* ```
|
|
11579
|
+
*/ function validateMcpToolName(name) {
|
|
11580
|
+
var length = name.length;
|
|
11581
|
+
var level = 'ok';
|
|
11582
|
+
if (length > MCP_TOOL_NAME_MAX_LENGTH) {
|
|
11583
|
+
level = 'error';
|
|
11584
|
+
} else if (length > MCP_TOOL_NAME_WARN_LENGTH) {
|
|
11585
|
+
level = 'warn';
|
|
11586
|
+
}
|
|
11587
|
+
return {
|
|
11588
|
+
name: name,
|
|
11589
|
+
length: length,
|
|
11590
|
+
level: level
|
|
11591
|
+
};
|
|
11592
|
+
}
|
|
11593
|
+
/**
|
|
11594
|
+
* Single-character abbreviations for the standard CRUDQ + invoke call types.
|
|
11595
|
+
*
|
|
11596
|
+
* Mirrors `MCP_CALL_TYPE_ABBREVIATIONS` in `@dereekb/firebase-server/mcp` so the build-time renderer
|
|
11597
|
+
* disambiguates colliding names exactly like the runtime generator.
|
|
11598
|
+
*/ var MCP_CALL_TYPE_ABBREVIATIONS = {
|
|
11599
|
+
create: 'c',
|
|
11600
|
+
read: 'r',
|
|
11601
|
+
update: 'u',
|
|
11602
|
+
delete: 'd',
|
|
11603
|
+
query: 'q',
|
|
11604
|
+
invoke: 'i'
|
|
11605
|
+
};
|
|
11606
|
+
/**
|
|
11607
|
+
* Abbreviates a call type for a disambiguated tool name; a custom call type is returned unchanged.
|
|
11608
|
+
*
|
|
11609
|
+
* Mirrors `abbreviateMcpCallType` in `@dereekb/firebase-server/mcp`.
|
|
11610
|
+
*
|
|
11611
|
+
* @param callType - The call type / verb.
|
|
11612
|
+
* @returns The single-character abbreviation, or the original string for a custom call type.
|
|
11613
|
+
*
|
|
11614
|
+
* @example
|
|
11615
|
+
* ```ts
|
|
11616
|
+
* abbreviateMcpCallType('update'); // 'u'
|
|
11617
|
+
* ```
|
|
11618
|
+
*/ function abbreviateMcpCallType(callType) {
|
|
11619
|
+
var _MCP_CALL_TYPE_ABBREVIATIONS_callType;
|
|
11620
|
+
return (_MCP_CALL_TYPE_ABBREVIATIONS_callType = MCP_CALL_TYPE_ABBREVIATIONS[callType]) !== null && _MCP_CALL_TYPE_ABBREVIATIONS_callType !== void 0 ? _MCP_CALL_TYPE_ABBREVIATIONS_callType : callType;
|
|
11621
|
+
}
|
|
11622
|
+
/**
|
|
11623
|
+
* Builds the disambiguated MCP tool name — the form used only when {@link buildMcpToolName} collides
|
|
11624
|
+
* with another visible tool. Named specifiers re-insert the abbreviated call type
|
|
11625
|
+
* (`worker-u-syncCheckHqEmployee`); default (`_`) specifiers already carry the full call type and are
|
|
11626
|
+
* returned unchanged.
|
|
11627
|
+
*
|
|
11628
|
+
* Mirrors `buildDisambiguatedMcpToolName` in `@dereekb/firebase-server/mcp`.
|
|
11629
|
+
*
|
|
11630
|
+
* @param modelSegment - The model segment of the name (model type, or a per-model override).
|
|
11631
|
+
* @param callType - The call type / verb.
|
|
11632
|
+
* @param specifier - The specifier key, or `_` / undefined for the default entry.
|
|
11633
|
+
* @returns The hyphen-joined disambiguated tool name.
|
|
11634
|
+
*
|
|
11635
|
+
* @example
|
|
11636
|
+
* ```ts
|
|
11637
|
+
* buildDisambiguatedMcpToolName('worker', 'update', 'syncCheckHqEmployee'); // 'worker-u-syncCheckHqEmployee'
|
|
11638
|
+
* ```
|
|
11639
|
+
*/ function buildDisambiguatedMcpToolName(modelSegment, callType, specifier) {
|
|
11640
|
+
var isDefault = specifier == null || specifier === DEFAULT_SPECIFIER_KEY;
|
|
11641
|
+
return isDefault ? "".concat(modelSegment, "-").concat(callType) : "".concat(modelSegment, "-").concat(abbreviateMcpCallType(callType), "-").concat(specifier);
|
|
11642
|
+
}
|
|
11531
11643
|
|
|
11532
11644
|
/**
|
|
11533
11645
|
* One entry in `<cluster>.scan[]`. Mirrors the shape of the legacy
|
|
@@ -56779,4 +56891,4 @@ function printPaginatedOutput(input) {
|
|
|
56779
56891
|
})();
|
|
56780
56892
|
}
|
|
56781
56893
|
|
|
56782
|
-
export { ACTIONS_SCAN_CONFIG_FILENAME, ACTION_ENTRY_ROLES, ACTION_ROLE_ORDER, ActionDirectiveEntry, ActionEntry, ActionInputEntry, ActionManifest, ActionOutputEntry, ActionStateEntry, ActionStoreEntry, ActionStoreMethodEntry, ActionStoreObservableEntry, ActionsScanConfig, ActionsScanSection, BUILTIN_AUTH_CLAIMS, BUILTIN_AUTH_ROLES, BUILTIN_AUTH_SCOPES, CALL_MODEL_API_PATH, CALL_PASSTHROUGH_COMMAND, CLI_EXIT_CODE_AUTH, CLI_EXIT_CODE_HANDLER, CORE_TOPICS, CORE_TOPICS_SET, CSS_UTILITIES_SCAN_CONFIG_FILENAME, CSS_UTILITY_ROLES, CSS_UTILITY_SCOPES, CliError, CssUtilitiesScanConfig, CssUtilitiesScanSection, CssUtilityDeclaration, CssUtilityEntry, CssUtilityManifest, DBX_ACTION_STATE_VALUES, DBX_DOCS_UI_EXAMPLES_SCAN_CONFIG_FILENAME, DBX_DOCS_UI_EXAMPLE_USE_KINDS, DEFAULT_ACTIONS_SCAN_OUT_PATH, DEFAULT_ACTION_COMMAND_NAME, DEFAULT_CLI_OIDC_SCOPES, DEFAULT_CLI_REDIRECT_URI, DEFAULT_CLI_SECRET_PATTERNS, DEFAULT_CSS_UTILITIES_SCAN_OUT_PATH, DEFAULT_DBX_DOCS_UI_EXAMPLES_SCAN_OUT_PATH, DEFAULT_FILTERS_SCAN_OUT_PATH, DEFAULT_FORGE_FIELDS_SCAN_OUT_PATH, DEFAULT_MANIFEST_HELP_DATA_FORMAT, DEFAULT_MANIFEST_HELP_MODE, DEFAULT_MANIFEST_MODEL_COMMAND_NAME, DEFAULT_MODEL_DECODE_COMMAND_NAME, DEFAULT_MODEL_INFO_COMMAND_NAME, DEFAULT_MODEL_SNAPSHOT_FIELDS_SCAN_OUT_PATH, DEFAULT_PIPES_SCAN_OUT_PATH, DEFAULT_SCAN_OUT_PATH, DEFAULT_UI_COMPONENTS_SCAN_OUT_PATH, DEFAULT_UTILS_SCAN_OUT_PATH, DOWNSTREAM_CLUSTERS, DUMP_MERGE_MODES, DUMP_OUTPUT_MODES, DbxDocsUiExampleEntry, DbxDocsUiExampleManifest, DbxDocsUiExampleUseEntry, DbxDocsUiExamplesScanConfig, DbxDocsUiExamplesScanSection, DbxMcpConfig, EMPTY_ACTION_REGISTRY, EMPTY_AUTH_REGISTRY, EMPTY_CSS_UTILITY_REGISTRY, EMPTY_DBX_DOCS_UI_EXAMPLES_REGISTRY, EMPTY_FILTER_REGISTRY, EMPTY_FORGE_FIELD_REGISTRY, EMPTY_MODEL_SNAPSHOT_FIELD_REGISTRY, EMPTY_PIPE_REGISTRY, EMPTY_SEMANTIC_TYPE_REGISTRY, EMPTY_TOKEN_REGISTRY, EMPTY_UI_COMPONENT_REGISTRY, EMPTY_UTIL_REGISTRY, ExtractedDbxDocsUiExampleEntrySchema, ExtractedEntrySchema, ExtractedForgeFieldEntrySchema, ExtractedUiEntrySchema, FILTERS_SCAN_CONFIG_FILENAME, FILTER_KINDS, FILTER_KIND_ORDER, FIREBASE_MODELS, FIREBASE_MODEL_GROUPS, FORGE_FIELDS_SCAN_CONFIG_FILENAME, FORGE_FIELD_ARRAY_OUTPUTS, FORGE_FIELD_COMPOSITE_SUFFIXES, FORGE_FIELD_TIERS, FORGE_FIELD_WRAPPER_PATTERNS, FORM_FIELDS, FORM_TIER_ORDER, FilterDirectiveEntry, FilterEntry, FilterInputEntry, FilterManifest, FilterPatternEntry, FiltersScanConfig, FiltersScanSection, ForgeFieldEntry, ForgeFieldManifest, ForgeFieldPropertyEntry, ForgeFieldsScanConfig, ForgeFieldsScanSection, GET_COMMAND, GET_MANY_COMMAND, MAX_MODEL_ACCESS_MULTI_READ_KEYS, MCP_MANIFEST_VERSION, MODEL_ARCHETYPES, MODEL_ARCHETYPE_ADDON_SLUGS, MODEL_ARCHETYPE_SYNC_MODES, MODEL_SNAPSHOT_FIELDS_SCAN_CONFIG_FILENAME, MODEL_SNAPSHOT_FIELD_KINDS, MODEL_WRITE_OIDC_SCOPES, MULTIPLE_PAGES_OUTPUT_MODES, ModelSnapshotFieldEntry, ModelSnapshotFieldManifest, ModelSnapshotFieldParamEntry, ModelSnapshotFieldsScanConfig, ModelSnapshotFieldsScanSection, PIPES_SCAN_CONFIG_FILENAME, PIPE_CATEGORIES, PIPE_CATEGORY_ORDER, PIPE_PURITIES, PROMPT_CANCELLED_ERROR_CODE, PipeArgEntry, PipeEntry, PipeManifest, PipesScanConfig, PipesScanSection, RESERVED_MODEL_FOLDERS, SCAN_CONFIG_FILENAME$1 as SCAN_CONFIG_FILENAME, SERVICE_TOKEN_REQUIRED_OIDC_SCOPES, STANDARD_GLOBAL_OPTION_NAMES, SemanticTypeEntry, SemanticTypeManifest, SemanticTypeScanConfig, TOKEN_ROLES, TOKEN_SOURCES, TokenDefaults, TokenEntry, TokenManifest, UI_COMPONENTS_SCAN_CONFIG_FILENAME, UI_COMPONENT_CATEGORIES, UI_COMPONENT_KINDS, UTILS_SCAN_CONFIG_FILENAME, UTIL_KINDS, UiComponentEntry, UiComponentInputEntry, UiComponentManifest, UiComponentOutputEntry, UiComponentsScanConfig, UiComponentsScanSection, UtilEntry, UtilManifest, UtilParamEntry, UtilsScanConfig, UtilsScanSection, WORKSPACE_AUTH_APPS, WORKSPACE_AUTH_CLAIMS, WORKSPACE_FACTORY_SCAN_EXCLUDE, WORKSPACE_FACTORY_SCAN_INCLUDE, applyEnvVarOverrides, buildActionCommands, buildActionsManifest, buildAuthorizationUrl, buildCliPaths, buildCssUtilitiesManifest, buildDbxDocsUiExamplesManifest, buildDispatcherCreditByName, buildDumpFilePath, buildErrorOutput, buildFiltersManifest, buildForgeFieldsManifest, buildManifest, buildManifestCommands, buildModelDecodeCommand, buildModelInfoCommand, buildModelSnapshotFieldsManifest, buildOidcDiscoveryCandidates, buildPipesManifest, buildScanProject, buildUiComponentsManifest, buildUtilsManifest, callModelOverHttp, clearDownstreamCatalogCache, collectClassPropertiesWithInheritance, configureCliErrorMapper, configureCliSecretPatterns, configureOutputOptions, createActionCommand, createActionRegistry, createActionRegistryFromEntries, createAuthCommand, createAuthMiddleware, createAuthRegistryFromEntries, createCallModelCommand, createCli, createCliContext, createCliTokenCacheStore, createContextSlot, createCssUtilityRegistry, createCssUtilityRegistryFromEntries, createDbxDocsUiExamplesRegistry, createDbxDocsUiExamplesRegistryFromEntries, createDoctorCommand, createEnvCommand, createFilterRegistry, createFilterRegistryFromEntries, createForgeFieldRegistry, createForgeFieldRegistryFromEntries, createModelSnapshotFieldRegistry, createModelSnapshotFieldRegistryFromEntries, createOutputCommand, createOutputMiddleware, createPassthroughAuthMiddleware, createPipeRegistry, createPipeRegistryFromEntries, createSemanticTypeRegistry, createSemanticTypeRegistryFromEntries, createTokenRegistry, createTokenRegistryFromEntries, createUiComponentRegistry, createUiComponentRegistryFromEntries, createUtilRegistry, createUtilRegistryFromEntries, decodeFirestoreModelKey, defaultDoctorChecks, defaultGlobber, defaultReadFile, deriveOptionalFromName, detectDataHelpFormat, detectHelpMode, discoverDownstreamFirebasePackages, discoverDownstreamPackages, discoverOidcMetadata, dumpTimestamp, exchangeAuthorizationCode, expandModelKeys, extractActionEntries, extractAngularInputs, extractAngularOutputs, extractAuthEntries, extractCssUtilityEntries, extractDbxDocsUiExampleEntries, extractEntries, extractFilterEntries, extractForgeFieldEntries, extractModelSnapshotFieldEntries, extractModels, extractPipeEntries, extractUiEntries, extractUtilEntries, fetchSessionInfo, fetchUserInfo, filterReadOnlyModelScopes, findAndLoadConfig, findCliEnvDefault, findCliModelManifestEntry, flattenList, generateOAuthState, generatePkceMaterial, getBundledManifestsDirectory, getCliContext, getCliEnvVarName, getCliTimeoutMs, getDefaultBundledActionManifestPaths, getDefaultBundledCssUtilityManifestPaths, getDefaultBundledDbxDocsUiExamplesManifestPaths, getDefaultBundledFilterManifestPaths, getDefaultBundledForgeFieldManifestPaths, getDefaultBundledManifestPaths, getDefaultBundledModelFirebaseIndexManifestPaths, getDefaultBundledModelSnapshotFieldManifestPaths, getDefaultBundledPipeManifestPaths, getDefaultBundledTokenManifestPaths, getDefaultBundledUiManifestPaths, getDefaultBundledUtilManifestPaths, getDownstreamCatalog, getFirebaseBucketKeyedByIdModels, getFirebaseDistrictKeyedByIdModels, getFirebaseExternalIdKeyedByIdModels, getFirebaseModel, getFirebaseModelByPrefix, getFirebaseModelGroup, getFirebaseModelGroups, getFirebaseModels, getFirebaseModelsByArchetype, getFirebasePrefixCatalog, getFirebaseRegionKeyedByIdModels, getFirebaseSubcollectionsOf, getFirebaseUserKeyedByIdModels, getFirebaseUserRelatedModels, getModelArchetypeBySlug, getModelArchetypesByAxisValue, getModelArchetypesByCollectionKind, getModelArchetypesBySyncMode, getModelOverHttp, getMultipleModelsOverHttp, getMultipleModelsOverHttpChunked, getOutputOptions, globToRegex, isCliEnvConfigComplete, isCliVerbose, isCoreTopic, isStdinSentinel, isTokenExpired, isVisibleProperty, iterateDbxCliCallModel, loadActionManifests, loadActionRegistry, loadAuthRegistry, loadCliConfig, loadCssUtilityRegistry, loadDbxDocsUiExamplesManifests, loadDbxDocsUiExamplesRegistry, loadFilterManifests, loadFilterRegistry, loadForgeFieldManifests, loadForgeFieldRegistry, loadModelFirebaseIndexManifests, loadModelFirebaseIndexRegistry, loadModelSnapshotFieldManifests, loadModelSnapshotFieldRegistry, loadPackageName, loadPipeManifests, loadPipeRegistry, loadScanSection, loadSemanticTypeManifests, loadSemanticTypeRegistry, loadTokenManifests, loadTokenRegistry, loadUiComponentManifests, loadUiComponentRegistry, loadUtilManifests, loadUtilRegistry, maskEnv, maskSecret, mcpManifestKey, mergeCliConfig, mergeCliEnvWithDefault, mergeOutputConfig, openStreamingDump, outputError, outputResult, packageNameToSlug, parseAnnotation, parseDeclarations$1 as parseDeclarations, parseGetArgs, parseGetManyArgs, parsePastedRedirect, parseScanArgs, pickFields, promptLine, readAllStdin, readDirectiveDecorator, readEnvTokenEntry, readPropertyDescription, readSelector, readStdinTokens, readStringProperty, refreshAccessToken, renderDecodedKey, renderModelManifestEntry, renderModelManifestFields, renderModelManifestList, requireCliContext, resolveActiveEnvName, resolveCliEnv, resolveCliEnvOrThrow, resolveCliModel, resolveDemoClaimsPath, resolveExplicitFirebasePackages, resolveModelArchetype, resolveOutputConfig, resolvePerModelGetKey, revokeToken, runActionsScanCli, runCli, runCssUtilitiesScanCli, runDbxDocsUiExamplesScanCli, runFiltersScanCli, runForgeFieldsScanCli, runModelFirebaseIndexScanCli, runModelSnapshotFieldsScanCli, runPaginatedList, runPipesScanCli, runScanCli, runScanCliBase, runUiComponentsScanCli, runUtilsScanCli, sanitizeString, saveCliConfig, scanFactoryReferences, serializeActionManifest, serializeCssUtilityManifest, serializeDbxDocsUiExamplesManifest, serializeFilterManifest, serializeForgeFieldManifest, serializeManifest, serializeModelSnapshotFieldsManifest, serializePipeManifest, serializeUiComponentManifest, serializeUtilManifest, setCliContext, setCliTimeoutMs, setCliVerbose, splitListTagText$1 as splitListTagText, toActionEntryInfo, toFilterEntryInfo, toFormFieldInfo, tracedFetch, unwrapFenced, verboseLog, withCallModelArgs, withEnv, withMultiplePages, withOutput, withServiceTokenScopes, wrapCommandHandler, wrapSyncCommandHandler };
|
|
56894
|
+
export { ACTIONS_SCAN_CONFIG_FILENAME, ACTION_ENTRY_ROLES, ACTION_ROLE_ORDER, ActionDirectiveEntry, ActionEntry, ActionInputEntry, ActionManifest, ActionOutputEntry, ActionStateEntry, ActionStoreEntry, ActionStoreMethodEntry, ActionStoreObservableEntry, ActionsScanConfig, ActionsScanSection, BUILTIN_AUTH_CLAIMS, BUILTIN_AUTH_ROLES, BUILTIN_AUTH_SCOPES, CALL_MODEL_API_PATH, CALL_PASSTHROUGH_COMMAND, CLI_EXIT_CODE_AUTH, CLI_EXIT_CODE_HANDLER, CORE_TOPICS, CORE_TOPICS_SET, CSS_UTILITIES_SCAN_CONFIG_FILENAME, CSS_UTILITY_ROLES, CSS_UTILITY_SCOPES, CliError, CssUtilitiesScanConfig, CssUtilitiesScanSection, CssUtilityDeclaration, CssUtilityEntry, CssUtilityManifest, DBX_ACTION_STATE_VALUES, DBX_DOCS_UI_EXAMPLES_SCAN_CONFIG_FILENAME, DBX_DOCS_UI_EXAMPLE_USE_KINDS, DEFAULT_ACTIONS_SCAN_OUT_PATH, DEFAULT_ACTION_COMMAND_NAME, DEFAULT_CLI_OIDC_SCOPES, DEFAULT_CLI_REDIRECT_URI, DEFAULT_CLI_SECRET_PATTERNS, DEFAULT_CSS_UTILITIES_SCAN_OUT_PATH, DEFAULT_DBX_DOCS_UI_EXAMPLES_SCAN_OUT_PATH, DEFAULT_FILTERS_SCAN_OUT_PATH, DEFAULT_FORGE_FIELDS_SCAN_OUT_PATH, DEFAULT_MANIFEST_HELP_DATA_FORMAT, DEFAULT_MANIFEST_HELP_MODE, DEFAULT_MANIFEST_MODEL_COMMAND_NAME, DEFAULT_MODEL_DECODE_COMMAND_NAME, DEFAULT_MODEL_INFO_COMMAND_NAME, DEFAULT_MODEL_SNAPSHOT_FIELDS_SCAN_OUT_PATH, DEFAULT_PIPES_SCAN_OUT_PATH, DEFAULT_SCAN_OUT_PATH, DEFAULT_SPECIFIER_KEY, DEFAULT_UI_COMPONENTS_SCAN_OUT_PATH, DEFAULT_UTILS_SCAN_OUT_PATH, DOWNSTREAM_CLUSTERS, DUMP_MERGE_MODES, DUMP_OUTPUT_MODES, DbxDocsUiExampleEntry, DbxDocsUiExampleManifest, DbxDocsUiExampleUseEntry, DbxDocsUiExamplesScanConfig, DbxDocsUiExamplesScanSection, DbxMcpConfig, EMPTY_ACTION_REGISTRY, EMPTY_AUTH_REGISTRY, EMPTY_CSS_UTILITY_REGISTRY, EMPTY_DBX_DOCS_UI_EXAMPLES_REGISTRY, EMPTY_FILTER_REGISTRY, EMPTY_FORGE_FIELD_REGISTRY, EMPTY_MODEL_SNAPSHOT_FIELD_REGISTRY, EMPTY_PIPE_REGISTRY, EMPTY_SEMANTIC_TYPE_REGISTRY, EMPTY_TOKEN_REGISTRY, EMPTY_UI_COMPONENT_REGISTRY, EMPTY_UTIL_REGISTRY, ExtractedDbxDocsUiExampleEntrySchema, ExtractedEntrySchema, ExtractedForgeFieldEntrySchema, ExtractedUiEntrySchema, FILTERS_SCAN_CONFIG_FILENAME, FILTER_KINDS, FILTER_KIND_ORDER, FIREBASE_MODELS, FIREBASE_MODEL_GROUPS, FORGE_FIELDS_SCAN_CONFIG_FILENAME, FORGE_FIELD_ARRAY_OUTPUTS, FORGE_FIELD_COMPOSITE_SUFFIXES, FORGE_FIELD_TIERS, FORGE_FIELD_WRAPPER_PATTERNS, FORM_FIELDS, FORM_TIER_ORDER, FilterDirectiveEntry, FilterEntry, FilterInputEntry, FilterManifest, FilterPatternEntry, FiltersScanConfig, FiltersScanSection, ForgeFieldEntry, ForgeFieldManifest, ForgeFieldPropertyEntry, ForgeFieldsScanConfig, ForgeFieldsScanSection, GET_COMMAND, GET_MANY_COMMAND, MAX_MODEL_ACCESS_MULTI_READ_KEYS, MCP_CALL_TYPE_ABBREVIATIONS, MCP_MANIFEST_VERSION, MCP_TOOL_NAME_MAX_LENGTH, MCP_TOOL_NAME_WARN_LENGTH, MODEL_ARCHETYPES, MODEL_ARCHETYPE_ADDON_SLUGS, MODEL_ARCHETYPE_SYNC_MODES, MODEL_SNAPSHOT_FIELDS_SCAN_CONFIG_FILENAME, MODEL_SNAPSHOT_FIELD_KINDS, MODEL_WRITE_OIDC_SCOPES, MULTIPLE_PAGES_OUTPUT_MODES, ModelSnapshotFieldEntry, ModelSnapshotFieldManifest, ModelSnapshotFieldParamEntry, ModelSnapshotFieldsScanConfig, ModelSnapshotFieldsScanSection, PIPES_SCAN_CONFIG_FILENAME, PIPE_CATEGORIES, PIPE_CATEGORY_ORDER, PIPE_PURITIES, PROMPT_CANCELLED_ERROR_CODE, PipeArgEntry, PipeEntry, PipeManifest, PipesScanConfig, PipesScanSection, RESERVED_MODEL_FOLDERS, SCAN_CONFIG_FILENAME$1 as SCAN_CONFIG_FILENAME, SERVICE_TOKEN_REQUIRED_OIDC_SCOPES, STANDARD_GLOBAL_OPTION_NAMES, SemanticTypeEntry, SemanticTypeManifest, SemanticTypeScanConfig, TOKEN_ROLES, TOKEN_SOURCES, TokenDefaults, TokenEntry, TokenManifest, UI_COMPONENTS_SCAN_CONFIG_FILENAME, UI_COMPONENT_CATEGORIES, UI_COMPONENT_KINDS, UTILS_SCAN_CONFIG_FILENAME, UTIL_KINDS, UiComponentEntry, UiComponentInputEntry, UiComponentManifest, UiComponentOutputEntry, UiComponentsScanConfig, UiComponentsScanSection, UtilEntry, UtilManifest, UtilParamEntry, UtilsScanConfig, UtilsScanSection, WORKSPACE_AUTH_APPS, WORKSPACE_AUTH_CLAIMS, WORKSPACE_FACTORY_SCAN_EXCLUDE, WORKSPACE_FACTORY_SCAN_INCLUDE, abbreviateMcpCallType, applyEnvVarOverrides, buildActionCommands, buildActionsManifest, buildAuthorizationUrl, buildCliPaths, buildCssUtilitiesManifest, buildDbxDocsUiExamplesManifest, buildDisambiguatedMcpToolName, buildDispatcherCreditByName, buildDumpFilePath, buildErrorOutput, buildFiltersManifest, buildForgeFieldsManifest, buildManifest, buildManifestCommands, buildMcpToolName, buildModelDecodeCommand, buildModelInfoCommand, buildModelSnapshotFieldsManifest, buildOidcDiscoveryCandidates, buildPipesManifest, buildScanProject, buildUiComponentsManifest, buildUtilsManifest, callModelOverHttp, clearDownstreamCatalogCache, collectClassPropertiesWithInheritance, configureCliErrorMapper, configureCliSecretPatterns, configureOutputOptions, createActionCommand, createActionRegistry, createActionRegistryFromEntries, createAuthCommand, createAuthMiddleware, createAuthRegistryFromEntries, createCallModelCommand, createCli, createCliContext, createCliTokenCacheStore, createContextSlot, createCssUtilityRegistry, createCssUtilityRegistryFromEntries, createDbxDocsUiExamplesRegistry, createDbxDocsUiExamplesRegistryFromEntries, createDoctorCommand, createEnvCommand, createFilterRegistry, createFilterRegistryFromEntries, createForgeFieldRegistry, createForgeFieldRegistryFromEntries, createModelSnapshotFieldRegistry, createModelSnapshotFieldRegistryFromEntries, createOutputCommand, createOutputMiddleware, createPassthroughAuthMiddleware, createPipeRegistry, createPipeRegistryFromEntries, createSemanticTypeRegistry, createSemanticTypeRegistryFromEntries, createTokenRegistry, createTokenRegistryFromEntries, createUiComponentRegistry, createUiComponentRegistryFromEntries, createUtilRegistry, createUtilRegistryFromEntries, decodeFirestoreModelKey, defaultDoctorChecks, defaultGlobber, defaultReadFile, deriveOptionalFromName, detectDataHelpFormat, detectHelpMode, discoverDownstreamFirebasePackages, discoverDownstreamPackages, discoverOidcMetadata, dumpTimestamp, exchangeAuthorizationCode, expandModelKeys, extractActionEntries, extractAngularInputs, extractAngularOutputs, extractAuthEntries, extractCssUtilityEntries, extractDbxDocsUiExampleEntries, extractEntries, extractFilterEntries, extractForgeFieldEntries, extractModelSnapshotFieldEntries, extractModels, extractPipeEntries, extractUiEntries, extractUtilEntries, fetchSessionInfo, fetchUserInfo, filterReadOnlyModelScopes, findAndLoadConfig, findCliEnvDefault, findCliModelManifestEntry, flattenList, generateOAuthState, generatePkceMaterial, getBundledManifestsDirectory, getCliContext, getCliEnvVarName, getCliTimeoutMs, getDefaultBundledActionManifestPaths, getDefaultBundledCssUtilityManifestPaths, getDefaultBundledDbxDocsUiExamplesManifestPaths, getDefaultBundledFilterManifestPaths, getDefaultBundledForgeFieldManifestPaths, getDefaultBundledManifestPaths, getDefaultBundledModelFirebaseIndexManifestPaths, getDefaultBundledModelSnapshotFieldManifestPaths, getDefaultBundledPipeManifestPaths, getDefaultBundledTokenManifestPaths, getDefaultBundledUiManifestPaths, getDefaultBundledUtilManifestPaths, getDownstreamCatalog, getFirebaseBucketKeyedByIdModels, getFirebaseDistrictKeyedByIdModels, getFirebaseExternalIdKeyedByIdModels, getFirebaseModel, getFirebaseModelByPrefix, getFirebaseModelGroup, getFirebaseModelGroups, getFirebaseModels, getFirebaseModelsByArchetype, getFirebasePrefixCatalog, getFirebaseRegionKeyedByIdModels, getFirebaseSubcollectionsOf, getFirebaseUserKeyedByIdModels, getFirebaseUserRelatedModels, getModelArchetypeBySlug, getModelArchetypesByAxisValue, getModelArchetypesByCollectionKind, getModelArchetypesBySyncMode, getModelOverHttp, getMultipleModelsOverHttp, getMultipleModelsOverHttpChunked, getOutputOptions, globToRegex, isCliEnvConfigComplete, isCliVerbose, isCoreTopic, isStdinSentinel, isTokenExpired, isVisibleProperty, iterateDbxCliCallModel, loadActionManifests, loadActionRegistry, loadAuthRegistry, loadCliConfig, loadCssUtilityRegistry, loadDbxDocsUiExamplesManifests, loadDbxDocsUiExamplesRegistry, loadFilterManifests, loadFilterRegistry, loadForgeFieldManifests, loadForgeFieldRegistry, loadModelFirebaseIndexManifests, loadModelFirebaseIndexRegistry, loadModelSnapshotFieldManifests, loadModelSnapshotFieldRegistry, loadPackageName, loadPipeManifests, loadPipeRegistry, loadScanSection, loadSemanticTypeManifests, loadSemanticTypeRegistry, loadTokenManifests, loadTokenRegistry, loadUiComponentManifests, loadUiComponentRegistry, loadUtilManifests, loadUtilRegistry, maskEnv, maskSecret, mcpManifestKey, mergeCliConfig, mergeCliEnvWithDefault, mergeOutputConfig, openStreamingDump, outputError, outputResult, packageNameToSlug, parseAnnotation, parseDeclarations$1 as parseDeclarations, parseGetArgs, parseGetManyArgs, parsePastedRedirect, parseScanArgs, pickFields, promptLine, readAllStdin, readDirectiveDecorator, readEnvTokenEntry, readPropertyDescription, readSelector, readStdinTokens, readStringProperty, refreshAccessToken, renderDecodedKey, renderModelManifestEntry, renderModelManifestFields, renderModelManifestList, requireCliContext, resolveActiveEnvName, resolveCliEnv, resolveCliEnvOrThrow, resolveCliModel, resolveDemoClaimsPath, resolveExplicitFirebasePackages, resolveModelArchetype, resolveOutputConfig, resolvePerModelGetKey, revokeToken, runActionsScanCli, runCli, runCssUtilitiesScanCli, runDbxDocsUiExamplesScanCli, runFiltersScanCli, runForgeFieldsScanCli, runModelFirebaseIndexScanCli, runModelSnapshotFieldsScanCli, runPaginatedList, runPipesScanCli, runScanCli, runScanCliBase, runUiComponentsScanCli, runUtilsScanCli, sanitizeString, saveCliConfig, scanFactoryReferences, serializeActionManifest, serializeCssUtilityManifest, serializeDbxDocsUiExamplesManifest, serializeFilterManifest, serializeForgeFieldManifest, serializeManifest, serializeModelSnapshotFieldsManifest, serializePipeManifest, serializeUiComponentManifest, serializeUtilManifest, setCliContext, setCliTimeoutMs, setCliVerbose, splitListTagText$1 as splitListTagText, toActionEntryInfo, toFilterEntryInfo, toFormFieldInfo, tracedFetch, unwrapFenced, validateMcpToolName, verboseLog, withCallModelArgs, withEnv, withMultiplePages, withOutput, withServiceTokenScopes, wrapCommandHandler, wrapSyncCommandHandler };
|
package/lint-cache/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/dbx-cli-lint-cache",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.14.0",
|
|
4
4
|
"private": true,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"devDependencies": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"eslint": "10.4.0"
|
|
9
9
|
},
|
|
10
10
|
"peerDependencies": {
|
|
11
|
-
"@dereekb/util": "13.
|
|
11
|
+
"@dereekb/util": "13.14.0",
|
|
12
12
|
"yargs": "^18.0.0"
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -57,6 +57,11 @@ var SUPPORTED_VERBS = new Set([
|
|
|
57
57
|
'query',
|
|
58
58
|
'invoke'
|
|
59
59
|
]);
|
|
60
|
+
/**
|
|
61
|
+
* JSDoc tag (without leading `@`) on a CRUD leaf naming the interface that a handler's
|
|
62
|
+
* `mapSuccessfulResult` produces for MCP. When present, the MCP manifest output schema is
|
|
63
|
+
* synthesized from this type instead of the raw result type.
|
|
64
|
+
*/ var DBX_MODEL_API_MCP_RESULT_MARKER = 'dbxModelApiMcpResult';
|
|
60
65
|
/**
|
|
61
66
|
* Walks a `<model>.api.ts` source and returns one {@link CrudEntry} per
|
|
62
67
|
* callable leaf (CRUD or standalone). Best-effort: malformed configs return
|
|
@@ -136,6 +141,7 @@ function extractCrudEntries(source) {
|
|
|
136
141
|
valueNode: verbValueNode,
|
|
137
142
|
entries: entries,
|
|
138
143
|
fallbackDescription: readJsDocSummary(verbMember),
|
|
144
|
+
fallbackMcpResultTypeName: readJsDocTagValue(verbMember, DBX_MODEL_API_MCP_RESULT_MARKER),
|
|
139
145
|
resolveTypeDocs: resolveTypeDocs
|
|
140
146
|
});
|
|
141
147
|
}
|
|
@@ -187,6 +193,8 @@ function extractCrudEntries(source) {
|
|
|
187
193
|
var tuple = valueNode1 ? readTupleParamsResult(valueNode1) : undefined;
|
|
188
194
|
var paramsDocs = resolveTypeDocs(tuple === null || tuple === void 0 ? void 0 : tuple.params);
|
|
189
195
|
var resultDocs = resolveTypeDocs(tuple === null || tuple === void 0 ? void 0 : tuple.result);
|
|
196
|
+
var mcpResultTypeName = readJsDocTagValue(member1, DBX_MODEL_API_MCP_RESULT_MARKER);
|
|
197
|
+
var mcpResultDocs = resolveTypeDocs(mcpResultTypeName);
|
|
190
198
|
entries.push({
|
|
191
199
|
model: key,
|
|
192
200
|
verb: 'standalone',
|
|
@@ -199,7 +207,10 @@ function extractCrudEntries(source) {
|
|
|
199
207
|
paramsFields: paramsDocs === null || paramsDocs === void 0 ? void 0 : paramsDocs.fields,
|
|
200
208
|
paramsHasApiParamsTag: paramsDocs === null || paramsDocs === void 0 ? void 0 : paramsDocs.hasApiParamsTag,
|
|
201
209
|
resultTypeDescription: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.typeDescription,
|
|
202
|
-
resultFields: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.fields
|
|
210
|
+
resultFields: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.fields,
|
|
211
|
+
mcpResultTypeName: mcpResultTypeName,
|
|
212
|
+
mcpResultTypeDescription: mcpResultDocs === null || mcpResultDocs === void 0 ? void 0 : mcpResultDocs.typeDescription,
|
|
213
|
+
mcpResultFields: mcpResultDocs === null || mcpResultDocs === void 0 ? void 0 : mcpResultDocs.fields
|
|
203
214
|
});
|
|
204
215
|
}
|
|
205
216
|
} catch (err) {
|
|
@@ -355,7 +366,7 @@ function isNullLiteralType(node) {
|
|
|
355
366
|
}
|
|
356
367
|
function collectVerbEntries(input) {
|
|
357
368
|
var _readTupleParamsResult;
|
|
358
|
-
var modelName = input.modelName, verb = input.verb, valueNode = input.valueNode, entries = input.entries, fallbackDescription = input.fallbackDescription, resolveTypeDocs = input.resolveTypeDocs;
|
|
369
|
+
var modelName = input.modelName, verb = input.verb, valueNode = input.valueNode, entries = input.entries, fallbackDescription = input.fallbackDescription, fallbackMcpResultTypeName = input.fallbackMcpResultTypeName, resolveTypeDocs = input.resolveTypeDocs;
|
|
359
370
|
if (tsMorph.Node.isTypeLiteral(valueNode)) {
|
|
360
371
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
361
372
|
try {
|
|
@@ -370,6 +381,8 @@ function collectVerbEntries(input) {
|
|
|
370
381
|
var leaf = leafNode ? (_readTupleParamsResult1 = readTupleParamsResult(leafNode)) !== null && _readTupleParamsResult1 !== void 0 ? _readTupleParamsResult1 : readBareParams(leafNode) : undefined;
|
|
371
382
|
var paramsDocs = resolveTypeDocs(leaf === null || leaf === void 0 ? void 0 : leaf.params);
|
|
372
383
|
var resultDocs = resolveTypeDocs(leaf === null || leaf === void 0 ? void 0 : leaf.result);
|
|
384
|
+
var mcpResultTypeName = readJsDocTagValue(specMember, DBX_MODEL_API_MCP_RESULT_MARKER);
|
|
385
|
+
var mcpResultDocs = resolveTypeDocs(mcpResultTypeName);
|
|
373
386
|
entries.push({
|
|
374
387
|
model: modelName,
|
|
375
388
|
verb: verb,
|
|
@@ -382,7 +395,10 @@ function collectVerbEntries(input) {
|
|
|
382
395
|
paramsFields: paramsDocs === null || paramsDocs === void 0 ? void 0 : paramsDocs.fields,
|
|
383
396
|
paramsHasApiParamsTag: paramsDocs === null || paramsDocs === void 0 ? void 0 : paramsDocs.hasApiParamsTag,
|
|
384
397
|
resultTypeDescription: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.typeDescription,
|
|
385
|
-
resultFields: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.fields
|
|
398
|
+
resultFields: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.fields,
|
|
399
|
+
mcpResultTypeName: mcpResultTypeName,
|
|
400
|
+
mcpResultTypeDescription: mcpResultDocs === null || mcpResultDocs === void 0 ? void 0 : mcpResultDocs.typeDescription,
|
|
401
|
+
mcpResultFields: mcpResultDocs === null || mcpResultDocs === void 0 ? void 0 : mcpResultDocs.fields
|
|
386
402
|
});
|
|
387
403
|
}
|
|
388
404
|
} catch (err) {
|
|
@@ -404,6 +420,7 @@ function collectVerbEntries(input) {
|
|
|
404
420
|
var leaf1 = (_readTupleParamsResult = readTupleParamsResult(valueNode)) !== null && _readTupleParamsResult !== void 0 ? _readTupleParamsResult : readBareParams(valueNode);
|
|
405
421
|
var paramsDocs1 = resolveTypeDocs(leaf1 === null || leaf1 === void 0 ? void 0 : leaf1.params);
|
|
406
422
|
var resultDocs1 = resolveTypeDocs(leaf1 === null || leaf1 === void 0 ? void 0 : leaf1.result);
|
|
423
|
+
var mcpResultDocs1 = resolveTypeDocs(fallbackMcpResultTypeName);
|
|
407
424
|
entries.push({
|
|
408
425
|
model: modelName,
|
|
409
426
|
verb: verb,
|
|
@@ -416,7 +433,10 @@ function collectVerbEntries(input) {
|
|
|
416
433
|
paramsFields: paramsDocs1 === null || paramsDocs1 === void 0 ? void 0 : paramsDocs1.fields,
|
|
417
434
|
paramsHasApiParamsTag: paramsDocs1 === null || paramsDocs1 === void 0 ? void 0 : paramsDocs1.hasApiParamsTag,
|
|
418
435
|
resultTypeDescription: resultDocs1 === null || resultDocs1 === void 0 ? void 0 : resultDocs1.typeDescription,
|
|
419
|
-
resultFields: resultDocs1 === null || resultDocs1 === void 0 ? void 0 : resultDocs1.fields
|
|
436
|
+
resultFields: resultDocs1 === null || resultDocs1 === void 0 ? void 0 : resultDocs1.fields,
|
|
437
|
+
mcpResultTypeName: fallbackMcpResultTypeName,
|
|
438
|
+
mcpResultTypeDescription: mcpResultDocs1 === null || mcpResultDocs1 === void 0 ? void 0 : mcpResultDocs1.typeDescription,
|
|
439
|
+
mcpResultFields: mcpResultDocs1 === null || mcpResultDocs1 === void 0 ? void 0 : mcpResultDocs1.fields
|
|
420
440
|
});
|
|
421
441
|
}
|
|
422
442
|
function readTupleParamsResult(node) {
|
|
@@ -569,6 +589,64 @@ function readTypeDocs(sourceFile, typeName) {
|
|
|
569
589
|
}
|
|
570
590
|
return result;
|
|
571
591
|
}
|
|
592
|
+
/**
|
|
593
|
+
* Reads the value token of a JSDoc tag (e.g. the `Foo` in `@dbxModelApiMcpResult Foo`).
|
|
594
|
+
*
|
|
595
|
+
* Used for value-carrying tags like `@dbxModelApiMcpResult` where the first token after the tag
|
|
596
|
+
* name names a type. Returns the first whitespace-delimited token of the tag's comment text.
|
|
597
|
+
*
|
|
598
|
+
* @param node - Any JSDocable ts-morph node (property signature, etc.).
|
|
599
|
+
* @param tagName - Tag name without the leading `@` (e.g. `'dbxModelApiMcpResult'`).
|
|
600
|
+
* @returns The first token of the tag's value, or `undefined` when the tag is absent or empty.
|
|
601
|
+
*/ function readJsDocTagValue(node, tagName) {
|
|
602
|
+
var result;
|
|
603
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
604
|
+
try {
|
|
605
|
+
for(var _iterator = node.getJsDocs()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
606
|
+
var doc = _step.value;
|
|
607
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
608
|
+
try {
|
|
609
|
+
for(var _iterator1 = doc.getTags()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
610
|
+
var tag = _step1.value;
|
|
611
|
+
if (tag.getTagName() === tagName) {
|
|
612
|
+
var _tag_getCommentText;
|
|
613
|
+
var token = (_tag_getCommentText = tag.getCommentText()) === null || _tag_getCommentText === void 0 ? void 0 : _tag_getCommentText.trim().split(/\s+/)[0];
|
|
614
|
+
if (token) {
|
|
615
|
+
result = token;
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
} catch (err) {
|
|
620
|
+
_didIteratorError1 = true;
|
|
621
|
+
_iteratorError1 = err;
|
|
622
|
+
} finally{
|
|
623
|
+
try {
|
|
624
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
625
|
+
_iterator1.return();
|
|
626
|
+
}
|
|
627
|
+
} finally{
|
|
628
|
+
if (_didIteratorError1) {
|
|
629
|
+
throw _iteratorError1;
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
} catch (err) {
|
|
635
|
+
_didIteratorError = true;
|
|
636
|
+
_iteratorError = err;
|
|
637
|
+
} finally{
|
|
638
|
+
try {
|
|
639
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
640
|
+
_iterator.return();
|
|
641
|
+
}
|
|
642
|
+
} finally{
|
|
643
|
+
if (_didIteratorError) {
|
|
644
|
+
throw _iteratorError;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
return result;
|
|
649
|
+
}
|
|
572
650
|
function readJsDocSummary(node) {
|
|
573
651
|
var result;
|
|
574
652
|
var docs = node.getJsDocs();
|
|
@@ -617,7 +695,9 @@ var READ_LEVEL_VALUES = new Set([
|
|
|
617
695
|
'permissions'
|
|
618
696
|
]);
|
|
619
697
|
var SERVICE_FACTORY_TAG = 'dbxModelServiceFactory';
|
|
698
|
+
var MCP_TOOL_NAME_SEGMENT_TAG = 'dbxModelMcpToolNameSegment';
|
|
620
699
|
var MODEL_TYPE_VALUE_PATTERN = /^[a-z][A-Za-z0-9_$]*$/;
|
|
700
|
+
var TOOL_NAME_SEGMENT_PATTERN = /^[A-Za-z][A-Za-z0-9_$]*$/;
|
|
621
701
|
/**
|
|
622
702
|
* TS utility/structural wrappers that don't change the field surface for
|
|
623
703
|
* inheritance walks — `Partial<T>`, `Required<T>`, `Readonly<T>`,
|
|
@@ -803,6 +883,7 @@ function buildInterface(decl) {
|
|
|
803
883
|
var jsDocs = decl.getJsDocs();
|
|
804
884
|
var hasDbxModelTag = jsDocsHaveTag(jsDocs, 'dbxModel');
|
|
805
885
|
var dbxModelRead = readDbxModelReadTag(jsDocs);
|
|
886
|
+
var mcpToolNameSegment = readMcpToolNameSegmentTag(jsDocs);
|
|
806
887
|
var extendsNames = decl.getExtends().map(resolveExtendsName);
|
|
807
888
|
var props = [];
|
|
808
889
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
@@ -847,8 +928,61 @@ function buildInterface(decl) {
|
|
|
847
928
|
props: props
|
|
848
929
|
}, dbxModelRead === undefined ? {} : {
|
|
849
930
|
dbxModelRead: dbxModelRead
|
|
931
|
+
}, mcpToolNameSegment === undefined ? {} : {
|
|
932
|
+
mcpToolNameSegment: mcpToolNameSegment
|
|
850
933
|
});
|
|
851
934
|
}
|
|
935
|
+
function readMcpToolNameSegmentTag(jsDocs) {
|
|
936
|
+
var result;
|
|
937
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
938
|
+
try {
|
|
939
|
+
for(var _iterator = jsDocs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
940
|
+
var doc = _step.value;
|
|
941
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
942
|
+
try {
|
|
943
|
+
for(var _iterator1 = doc.getTags()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
944
|
+
var tag = _step1.value;
|
|
945
|
+
var _tag_getCommentText;
|
|
946
|
+
if (tag.getTagName() !== MCP_TOOL_NAME_SEGMENT_TAG) continue;
|
|
947
|
+
if (result !== undefined) continue;
|
|
948
|
+
var raw = (_tag_getCommentText = tag.getCommentText()) === null || _tag_getCommentText === void 0 ? void 0 : _tag_getCommentText.trim();
|
|
949
|
+
if (raw === undefined || raw.length === 0) continue;
|
|
950
|
+
var firstToken = raw.split(/\s+/)[0];
|
|
951
|
+
if (TOOL_NAME_SEGMENT_PATTERN.test(firstToken)) {
|
|
952
|
+
result = firstToken;
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
} catch (err) {
|
|
956
|
+
_didIteratorError1 = true;
|
|
957
|
+
_iteratorError1 = err;
|
|
958
|
+
} finally{
|
|
959
|
+
try {
|
|
960
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
961
|
+
_iterator1.return();
|
|
962
|
+
}
|
|
963
|
+
} finally{
|
|
964
|
+
if (_didIteratorError1) {
|
|
965
|
+
throw _iteratorError1;
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
} catch (err) {
|
|
971
|
+
_didIteratorError = true;
|
|
972
|
+
_iteratorError = err;
|
|
973
|
+
} finally{
|
|
974
|
+
try {
|
|
975
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
976
|
+
_iterator.return();
|
|
977
|
+
}
|
|
978
|
+
} finally{
|
|
979
|
+
if (_didIteratorError) {
|
|
980
|
+
throw _iteratorError;
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
return result;
|
|
985
|
+
}
|
|
852
986
|
function readDbxModelReadTag(jsDocs) {
|
|
853
987
|
var result;
|
|
854
988
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
@@ -55,6 +55,11 @@ var SUPPORTED_VERBS = new Set([
|
|
|
55
55
|
'query',
|
|
56
56
|
'invoke'
|
|
57
57
|
]);
|
|
58
|
+
/**
|
|
59
|
+
* JSDoc tag (without leading `@`) on a CRUD leaf naming the interface that a handler's
|
|
60
|
+
* `mapSuccessfulResult` produces for MCP. When present, the MCP manifest output schema is
|
|
61
|
+
* synthesized from this type instead of the raw result type.
|
|
62
|
+
*/ var DBX_MODEL_API_MCP_RESULT_MARKER = 'dbxModelApiMcpResult';
|
|
58
63
|
/**
|
|
59
64
|
* Walks a `<model>.api.ts` source and returns one {@link CrudEntry} per
|
|
60
65
|
* callable leaf (CRUD or standalone). Best-effort: malformed configs return
|
|
@@ -134,6 +139,7 @@ function extractCrudEntries(source) {
|
|
|
134
139
|
valueNode: verbValueNode,
|
|
135
140
|
entries: entries,
|
|
136
141
|
fallbackDescription: readJsDocSummary(verbMember),
|
|
142
|
+
fallbackMcpResultTypeName: readJsDocTagValue(verbMember, DBX_MODEL_API_MCP_RESULT_MARKER),
|
|
137
143
|
resolveTypeDocs: resolveTypeDocs
|
|
138
144
|
});
|
|
139
145
|
}
|
|
@@ -185,6 +191,8 @@ function extractCrudEntries(source) {
|
|
|
185
191
|
var tuple = valueNode1 ? readTupleParamsResult(valueNode1) : undefined;
|
|
186
192
|
var paramsDocs = resolveTypeDocs(tuple === null || tuple === void 0 ? void 0 : tuple.params);
|
|
187
193
|
var resultDocs = resolveTypeDocs(tuple === null || tuple === void 0 ? void 0 : tuple.result);
|
|
194
|
+
var mcpResultTypeName = readJsDocTagValue(member1, DBX_MODEL_API_MCP_RESULT_MARKER);
|
|
195
|
+
var mcpResultDocs = resolveTypeDocs(mcpResultTypeName);
|
|
188
196
|
entries.push({
|
|
189
197
|
model: key,
|
|
190
198
|
verb: 'standalone',
|
|
@@ -197,7 +205,10 @@ function extractCrudEntries(source) {
|
|
|
197
205
|
paramsFields: paramsDocs === null || paramsDocs === void 0 ? void 0 : paramsDocs.fields,
|
|
198
206
|
paramsHasApiParamsTag: paramsDocs === null || paramsDocs === void 0 ? void 0 : paramsDocs.hasApiParamsTag,
|
|
199
207
|
resultTypeDescription: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.typeDescription,
|
|
200
|
-
resultFields: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.fields
|
|
208
|
+
resultFields: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.fields,
|
|
209
|
+
mcpResultTypeName: mcpResultTypeName,
|
|
210
|
+
mcpResultTypeDescription: mcpResultDocs === null || mcpResultDocs === void 0 ? void 0 : mcpResultDocs.typeDescription,
|
|
211
|
+
mcpResultFields: mcpResultDocs === null || mcpResultDocs === void 0 ? void 0 : mcpResultDocs.fields
|
|
201
212
|
});
|
|
202
213
|
}
|
|
203
214
|
} catch (err) {
|
|
@@ -353,7 +364,7 @@ function isNullLiteralType(node) {
|
|
|
353
364
|
}
|
|
354
365
|
function collectVerbEntries(input) {
|
|
355
366
|
var _readTupleParamsResult;
|
|
356
|
-
var modelName = input.modelName, verb = input.verb, valueNode = input.valueNode, entries = input.entries, fallbackDescription = input.fallbackDescription, resolveTypeDocs = input.resolveTypeDocs;
|
|
367
|
+
var modelName = input.modelName, verb = input.verb, valueNode = input.valueNode, entries = input.entries, fallbackDescription = input.fallbackDescription, fallbackMcpResultTypeName = input.fallbackMcpResultTypeName, resolveTypeDocs = input.resolveTypeDocs;
|
|
357
368
|
if (Node.isTypeLiteral(valueNode)) {
|
|
358
369
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
359
370
|
try {
|
|
@@ -368,6 +379,8 @@ function collectVerbEntries(input) {
|
|
|
368
379
|
var leaf = leafNode ? (_readTupleParamsResult1 = readTupleParamsResult(leafNode)) !== null && _readTupleParamsResult1 !== void 0 ? _readTupleParamsResult1 : readBareParams(leafNode) : undefined;
|
|
369
380
|
var paramsDocs = resolveTypeDocs(leaf === null || leaf === void 0 ? void 0 : leaf.params);
|
|
370
381
|
var resultDocs = resolveTypeDocs(leaf === null || leaf === void 0 ? void 0 : leaf.result);
|
|
382
|
+
var mcpResultTypeName = readJsDocTagValue(specMember, DBX_MODEL_API_MCP_RESULT_MARKER);
|
|
383
|
+
var mcpResultDocs = resolveTypeDocs(mcpResultTypeName);
|
|
371
384
|
entries.push({
|
|
372
385
|
model: modelName,
|
|
373
386
|
verb: verb,
|
|
@@ -380,7 +393,10 @@ function collectVerbEntries(input) {
|
|
|
380
393
|
paramsFields: paramsDocs === null || paramsDocs === void 0 ? void 0 : paramsDocs.fields,
|
|
381
394
|
paramsHasApiParamsTag: paramsDocs === null || paramsDocs === void 0 ? void 0 : paramsDocs.hasApiParamsTag,
|
|
382
395
|
resultTypeDescription: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.typeDescription,
|
|
383
|
-
resultFields: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.fields
|
|
396
|
+
resultFields: resultDocs === null || resultDocs === void 0 ? void 0 : resultDocs.fields,
|
|
397
|
+
mcpResultTypeName: mcpResultTypeName,
|
|
398
|
+
mcpResultTypeDescription: mcpResultDocs === null || mcpResultDocs === void 0 ? void 0 : mcpResultDocs.typeDescription,
|
|
399
|
+
mcpResultFields: mcpResultDocs === null || mcpResultDocs === void 0 ? void 0 : mcpResultDocs.fields
|
|
384
400
|
});
|
|
385
401
|
}
|
|
386
402
|
} catch (err) {
|
|
@@ -402,6 +418,7 @@ function collectVerbEntries(input) {
|
|
|
402
418
|
var leaf1 = (_readTupleParamsResult = readTupleParamsResult(valueNode)) !== null && _readTupleParamsResult !== void 0 ? _readTupleParamsResult : readBareParams(valueNode);
|
|
403
419
|
var paramsDocs1 = resolveTypeDocs(leaf1 === null || leaf1 === void 0 ? void 0 : leaf1.params);
|
|
404
420
|
var resultDocs1 = resolveTypeDocs(leaf1 === null || leaf1 === void 0 ? void 0 : leaf1.result);
|
|
421
|
+
var mcpResultDocs1 = resolveTypeDocs(fallbackMcpResultTypeName);
|
|
405
422
|
entries.push({
|
|
406
423
|
model: modelName,
|
|
407
424
|
verb: verb,
|
|
@@ -414,7 +431,10 @@ function collectVerbEntries(input) {
|
|
|
414
431
|
paramsFields: paramsDocs1 === null || paramsDocs1 === void 0 ? void 0 : paramsDocs1.fields,
|
|
415
432
|
paramsHasApiParamsTag: paramsDocs1 === null || paramsDocs1 === void 0 ? void 0 : paramsDocs1.hasApiParamsTag,
|
|
416
433
|
resultTypeDescription: resultDocs1 === null || resultDocs1 === void 0 ? void 0 : resultDocs1.typeDescription,
|
|
417
|
-
resultFields: resultDocs1 === null || resultDocs1 === void 0 ? void 0 : resultDocs1.fields
|
|
434
|
+
resultFields: resultDocs1 === null || resultDocs1 === void 0 ? void 0 : resultDocs1.fields,
|
|
435
|
+
mcpResultTypeName: fallbackMcpResultTypeName,
|
|
436
|
+
mcpResultTypeDescription: mcpResultDocs1 === null || mcpResultDocs1 === void 0 ? void 0 : mcpResultDocs1.typeDescription,
|
|
437
|
+
mcpResultFields: mcpResultDocs1 === null || mcpResultDocs1 === void 0 ? void 0 : mcpResultDocs1.fields
|
|
418
438
|
});
|
|
419
439
|
}
|
|
420
440
|
function readTupleParamsResult(node) {
|
|
@@ -567,6 +587,64 @@ function readTypeDocs(sourceFile, typeName) {
|
|
|
567
587
|
}
|
|
568
588
|
return result;
|
|
569
589
|
}
|
|
590
|
+
/**
|
|
591
|
+
* Reads the value token of a JSDoc tag (e.g. the `Foo` in `@dbxModelApiMcpResult Foo`).
|
|
592
|
+
*
|
|
593
|
+
* Used for value-carrying tags like `@dbxModelApiMcpResult` where the first token after the tag
|
|
594
|
+
* name names a type. Returns the first whitespace-delimited token of the tag's comment text.
|
|
595
|
+
*
|
|
596
|
+
* @param node - Any JSDocable ts-morph node (property signature, etc.).
|
|
597
|
+
* @param tagName - Tag name without the leading `@` (e.g. `'dbxModelApiMcpResult'`).
|
|
598
|
+
* @returns The first token of the tag's value, or `undefined` when the tag is absent or empty.
|
|
599
|
+
*/ function readJsDocTagValue(node, tagName) {
|
|
600
|
+
var result;
|
|
601
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
602
|
+
try {
|
|
603
|
+
for(var _iterator = node.getJsDocs()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
604
|
+
var doc = _step.value;
|
|
605
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
606
|
+
try {
|
|
607
|
+
for(var _iterator1 = doc.getTags()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
608
|
+
var tag = _step1.value;
|
|
609
|
+
if (tag.getTagName() === tagName) {
|
|
610
|
+
var _tag_getCommentText;
|
|
611
|
+
var token = (_tag_getCommentText = tag.getCommentText()) === null || _tag_getCommentText === void 0 ? void 0 : _tag_getCommentText.trim().split(/\s+/)[0];
|
|
612
|
+
if (token) {
|
|
613
|
+
result = token;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
} catch (err) {
|
|
618
|
+
_didIteratorError1 = true;
|
|
619
|
+
_iteratorError1 = err;
|
|
620
|
+
} finally{
|
|
621
|
+
try {
|
|
622
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
623
|
+
_iterator1.return();
|
|
624
|
+
}
|
|
625
|
+
} finally{
|
|
626
|
+
if (_didIteratorError1) {
|
|
627
|
+
throw _iteratorError1;
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
} catch (err) {
|
|
633
|
+
_didIteratorError = true;
|
|
634
|
+
_iteratorError = err;
|
|
635
|
+
} finally{
|
|
636
|
+
try {
|
|
637
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
638
|
+
_iterator.return();
|
|
639
|
+
}
|
|
640
|
+
} finally{
|
|
641
|
+
if (_didIteratorError) {
|
|
642
|
+
throw _iteratorError;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
return result;
|
|
647
|
+
}
|
|
570
648
|
function readJsDocSummary(node) {
|
|
571
649
|
var result;
|
|
572
650
|
var docs = node.getJsDocs();
|
|
@@ -615,7 +693,9 @@ var READ_LEVEL_VALUES = new Set([
|
|
|
615
693
|
'permissions'
|
|
616
694
|
]);
|
|
617
695
|
var SERVICE_FACTORY_TAG = 'dbxModelServiceFactory';
|
|
696
|
+
var MCP_TOOL_NAME_SEGMENT_TAG = 'dbxModelMcpToolNameSegment';
|
|
618
697
|
var MODEL_TYPE_VALUE_PATTERN = /^[a-z][A-Za-z0-9_$]*$/;
|
|
698
|
+
var TOOL_NAME_SEGMENT_PATTERN = /^[A-Za-z][A-Za-z0-9_$]*$/;
|
|
619
699
|
/**
|
|
620
700
|
* TS utility/structural wrappers that don't change the field surface for
|
|
621
701
|
* inheritance walks — `Partial<T>`, `Required<T>`, `Readonly<T>`,
|
|
@@ -801,6 +881,7 @@ function buildInterface(decl) {
|
|
|
801
881
|
var jsDocs = decl.getJsDocs();
|
|
802
882
|
var hasDbxModelTag = jsDocsHaveTag(jsDocs, 'dbxModel');
|
|
803
883
|
var dbxModelRead = readDbxModelReadTag(jsDocs);
|
|
884
|
+
var mcpToolNameSegment = readMcpToolNameSegmentTag(jsDocs);
|
|
804
885
|
var extendsNames = decl.getExtends().map(resolveExtendsName);
|
|
805
886
|
var props = [];
|
|
806
887
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
@@ -845,8 +926,61 @@ function buildInterface(decl) {
|
|
|
845
926
|
props: props
|
|
846
927
|
}, dbxModelRead === undefined ? {} : {
|
|
847
928
|
dbxModelRead: dbxModelRead
|
|
929
|
+
}, mcpToolNameSegment === undefined ? {} : {
|
|
930
|
+
mcpToolNameSegment: mcpToolNameSegment
|
|
848
931
|
});
|
|
849
932
|
}
|
|
933
|
+
function readMcpToolNameSegmentTag(jsDocs) {
|
|
934
|
+
var result;
|
|
935
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
936
|
+
try {
|
|
937
|
+
for(var _iterator = jsDocs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
938
|
+
var doc = _step.value;
|
|
939
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
940
|
+
try {
|
|
941
|
+
for(var _iterator1 = doc.getTags()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
942
|
+
var tag = _step1.value;
|
|
943
|
+
var _tag_getCommentText;
|
|
944
|
+
if (tag.getTagName() !== MCP_TOOL_NAME_SEGMENT_TAG) continue;
|
|
945
|
+
if (result !== undefined) continue;
|
|
946
|
+
var raw = (_tag_getCommentText = tag.getCommentText()) === null || _tag_getCommentText === void 0 ? void 0 : _tag_getCommentText.trim();
|
|
947
|
+
if (raw === undefined || raw.length === 0) continue;
|
|
948
|
+
var firstToken = raw.split(/\s+/)[0];
|
|
949
|
+
if (TOOL_NAME_SEGMENT_PATTERN.test(firstToken)) {
|
|
950
|
+
result = firstToken;
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
} catch (err) {
|
|
954
|
+
_didIteratorError1 = true;
|
|
955
|
+
_iteratorError1 = err;
|
|
956
|
+
} finally{
|
|
957
|
+
try {
|
|
958
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
959
|
+
_iterator1.return();
|
|
960
|
+
}
|
|
961
|
+
} finally{
|
|
962
|
+
if (_didIteratorError1) {
|
|
963
|
+
throw _iteratorError1;
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
} catch (err) {
|
|
969
|
+
_didIteratorError = true;
|
|
970
|
+
_iteratorError = err;
|
|
971
|
+
} finally{
|
|
972
|
+
try {
|
|
973
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
974
|
+
_iterator.return();
|
|
975
|
+
}
|
|
976
|
+
} finally{
|
|
977
|
+
if (_didIteratorError) {
|
|
978
|
+
throw _iteratorError;
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
return result;
|
|
983
|
+
}
|
|
850
984
|
function readDbxModelReadTag(jsDocs) {
|
|
851
985
|
var result;
|
|
852
986
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/dbx-cli/manifest-extract",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.14.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"ts-morph": "^21.0.0"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
|
-
"@dereekb/firebase": "13.
|
|
9
|
+
"@dereekb/firebase": "13.14.0"
|
|
10
10
|
},
|
|
11
11
|
"exports": {
|
|
12
12
|
"./package.json": "./package.json",
|