Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions server/routerlicious/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
"@fluid-tools/build-cli": "^0.57.0",
"@fluidframework/build-common": "^2.0.3",
"@fluidframework/build-tools": "^0.57.0",
"@microsoft/api-extractor": "^7.45.1",
"@microsoft/api-extractor": "^7.52.11",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dedup caused the exact version of @microsoft/api-extractor to change, and since we have a patch for it, that broke.

To fix it I just updated the version to match client, which also removed the imports from the API reports.

"c8": "^10.1.3",
"changesets-format-with-issue-links": "^0.3.0",
"concurrently": "^8.2.1",
Expand Down Expand Up @@ -138,11 +138,11 @@
},
"pnpm": {
"commentsOverrides": [
"@types/node is overridden to v18 to ensure all packages are building using the v18 types.",
"@types/node is overridden to v20 to ensure all packages are building using the v20 types, matching the version of note required according to the readme. This also fixes a compile error due to conflicting overloads from multiple versions of the globals in @types/node/module.d.ts",
"oclif includes some AWS-related features, but we don't use them, so we override those dependencies with empty packages. This helps reduce lockfile churn since the deps release very frequently."
],
"overrides": {
"@types/node@<18": "^18.19.39",
"@types/node": "~20.0.0",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without this change, the build was filing with a compile error from conflicting global.

I made this specific change to align with the readme's required node version.

Annoyingly this doesn't seem to fully work as the lock file still has another version in it, but it fixed it enough for the build to work.

"oclif>@aws-sdk/client-cloudfront": "npm:[email protected]",
"oclif>@aws-sdk/client-s3": "npm:[email protected]",
"qs": "^6.11.0",
Expand All @@ -159,7 +159,7 @@
]
},
"patchedDependencies": {
"@microsoft/api-extractor@7.45.1": "patches/@microsoft__api-extractor@7.45.1.patch"
"@microsoft/api-extractor@7.52.11": "patches/@microsoft__api-extractor@7.52.11.patch"
}
}
}
2 changes: 1 addition & 1 deletion server/routerlicious/packages/gitresources/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"@fluidframework/build-tools": "^0.57.0",
"@fluidframework/eslint-config-fluid": "^6.0.0",
"@fluidframework/gitresources-previous": "npm:@fluidframework/[email protected]",
"@microsoft/api-extractor": "^7.45.1",
"@microsoft/api-extractor": "^7.52.11",
"concurrently": "^8.2.1",
"copyfiles": "^2.4.1",
"eslint": "~8.55.0",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/kafka-orderer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"@fluidframework/build-tools": "^0.57.0",
"@fluidframework/eslint-config-fluid": "^6.0.0",
"@fluidframework/server-kafka-orderer-previous": "npm:@fluidframework/[email protected]",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"concurrently": "^8.2.1",
"eslint": "~8.55.0",
"prettier": "~3.0.3",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/lambdas-driver/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
"@types/async": "^3.2.9",
"@types/lodash": "^4.14.118",
"@types/mocha": "^10.0.1",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"c8": "^10.1.3",
"concurrently": "^8.2.1",
"eslint": "~8.55.0",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/lambdas/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
"@types/lodash": "^4.14.118",
"@types/mocha": "^10.0.1",
"@types/nconf": "^0.10.2",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/sinon": "^17.0.3",
"c8": "^10.1.3",
"concurrently": "^8.2.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,6 @@

```ts

import { ICheckpointRepository } from '@fluidframework/server-services-core';
import type { IClient } from '@fluidframework/protocol-definitions';
import type { IConnected } from '@fluidframework/protocol-definitions';
import { IDatabaseManager } from '@fluidframework/server-services-core';
import { IDocumentRepository } from '@fluidframework/server-services-core';
import { IDocumentStorage } from '@fluidframework/server-services-core';
import { IHistorian } from '@fluidframework/server-services-client';
import { ILogger } from '@fluidframework/server-services-core';
import { IOrderer } from '@fluidframework/server-services-core';
import { IOrdererManager } from '@fluidframework/server-services-core';
import { IPubSub } from '@fluidframework/server-memory-orderer';
import { IServiceConfiguration } from '@fluidframework/server-services-core';
import { ITestDbFactory } from '@fluidframework/server-test-utils';
import { IWebSocket } from '@fluidframework/server-services-core';
import { IWebSocketServer } from '@fluidframework/server-services-core';

// @alpha
export interface ILocalDeltaConnectionServer {
// (undocumented)
Expand Down
4 changes: 2 additions & 2 deletions server/routerlicious/packages/local-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@
"@fluidframework/build-tools": "^0.57.0",
"@fluidframework/eslint-config-fluid": "^6.0.0",
"@fluidframework/server-local-server-previous": "npm:@fluidframework/[email protected]",
"@microsoft/api-extractor": "^7.45.1",
"@microsoft/api-extractor": "^7.52.11",
"@types/jsrsasign": "^10.5.12",
"@types/mocha": "^10.0.1",
"@types/nock": "^9.3.0",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/sinon": "^17.0.3",
"c8": "^10.1.3",
"concurrently": "^8.2.1",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/memory-orderer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
"@types/debug": "^4.1.5",
"@types/double-ended-queue": "^2.1.0",
"@types/lodash": "^4.14.118",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/ws": "^6.0.1",
"assert": "^2.0.0",
"debug": "^4.3.4",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,6 @@

```ts

import type * as git from '@fluidframework/gitresources';
import { ICommittedProposal } from '@fluidframework/protocol-definitions';
import { IDocumentAttributes } from '@fluidframework/protocol-definitions';
import { IProcessMessageResult } from '@fluidframework/protocol-definitions';
import { IQuorum } from '@fluidframework/protocol-definitions';
import type { IQuorumClients } from '@fluidframework/protocol-definitions';
import type { IQuorumProposals } from '@fluidframework/protocol-definitions';
import { ISequencedClient } from '@fluidframework/protocol-definitions';
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
import { ISequencedProposal } from '@fluidframework/protocol-definitions';
import { ISnapshotTreeEx } from '@fluidframework/protocol-definitions';
import { SummaryObject } from '@fluidframework/protocol-definitions';
import { TypedEventEmitter } from '@fluidframework/common-utils';

// @internal
export function buildGitTreeHierarchy(flatTree: git.ITree, blobsShaToPathCache?: Map<string, string>, removeAppTreePrefix?: boolean): ISnapshotTreeEx;

Expand Down
4 changes: 2 additions & 2 deletions server/routerlicious/packages/protocol-base/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,10 @@
"@fluidframework/build-tools": "^0.57.0",
"@fluidframework/eslint-config-fluid": "^6.0.0",
"@fluidframework/protocol-base-previous": "npm:@fluidframework/[email protected]",
"@microsoft/api-extractor": "^7.45.1",
"@microsoft/api-extractor": "^7.52.11",
"@types/assert": "^1.5.1",
"@types/mocha": "^10.0.1",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"c8": "^10.1.3",
"concurrently": "^8.2.1",
"copyfiles": "^2.4.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@
"@types/lodash": "^4.14.118",
"@types/mocha": "^10.0.1",
"@types/nconf": "^0.10.2",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/sinon": "^17.0.3",
"@types/split": "^0.3.28",
"@types/supertest": "^2.0.5",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/routerlicious/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
"@fluidframework/server-local-server": "workspace:~",
"@fluidframework/server-test-utils": "workspace:~",
"@types/nconf": "^0.10.2",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"concurrently": "^8.2.1",
"eslint": "~8.55.0",
"prettier": "~3.0.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,6 @@

```ts

import * as api from '@fluidframework/protocol-definitions';
import { AxiosError } from 'axios';
import { AxiosInstance } from 'axios';
import { AxiosRequestConfig } from 'axios';
import type { ICreateTreeEntry } from '@fluidframework/gitresources';
import type { IQuorumSnapshot } from '@fluidframework/protocol-base';
import type { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
import type { ISnapshotTree } from '@fluidframework/protocol-definitions';
import { ISnapshotTreeEx } from '@fluidframework/protocol-definitions';
import type { ISummaryHandle } from '@fluidframework/protocol-definitions';
import { ISummaryTree as ISummaryTree_2 } from '@fluidframework/protocol-definitions';
import type { ITokenClaims } from '@fluidframework/protocol-definitions';
import type { ITree } from '@fluidframework/gitresources';
import { ITreeEntry } from '@fluidframework/protocol-definitions';
import type { IUser } from '@fluidframework/protocol-definitions';
import { RawAxiosRequestHeaders } from 'axios';
import type * as resources from '@fluidframework/gitresources';
import type { ScopeType } from '@fluidframework/protocol-definitions';
import type { SummaryObject } from '@fluidframework/protocol-definitions';

// @internal (undocumented)
export class BasicRestWrapper extends RestWrapper {
constructor(baseurl?: string, defaultQueryString?: Record<string, string | number | boolean>, maxBodyLength?: number, maxContentLength?: number, defaultHeaders?: RawAxiosRequestHeaders, axios?: AxiosInstance, refreshDefaultQueryString?: (() => Record<string, string | number | boolean>) | undefined, refreshDefaultHeaders?: (() => RawAxiosRequestHeaders) | undefined, getCorrelationId?: (() => string | undefined) | undefined, getTelemetryContextProperties?: (() => Record<string, string | number | boolean> | undefined) | undefined, refreshTokenIfNeeded?: ((authorizationHeader: RawAxiosRequestHeaders) => Promise<RawAxiosRequestHeaders | undefined>) | undefined, logHttpMetrics?: ((requestProps: IBasicRestWrapperMetricProps) => void) | undefined, getCallingServiceName?: (() => string | undefined) | undefined);
Expand Down
4 changes: 2 additions & 2 deletions server/routerlicious/packages/services-client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,11 @@
"@fluidframework/build-tools": "^0.57.0",
"@fluidframework/eslint-config-fluid": "^6.0.0",
"@fluidframework/server-services-client-previous": "npm:@fluidframework/[email protected]",
"@microsoft/api-extractor": "^7.45.1",
"@microsoft/api-extractor": "^7.52.11",
"@types/debug": "^4.1.5",
"@types/jsrsasign": "^10.5.12",
"@types/mocha": "^10.0.1",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"axios-mock-adapter": "^1.19.0",
"c8": "^10.1.3",
"concurrently": "^8.2.1",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/services-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"@fluidframework/server-services-client": "workspace:~",
"@fluidframework/server-services-telemetry": "workspace:~",
"@types/nconf": "^0.10.2",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"debug": "^4.3.4",
"events": "^3.1.0",
"nconf": "^0.12.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"@fluidframework/server-test-utils": "workspace:~",
"@types/debug": "^4.1.5",
"@types/lru-cache": "^5.1.0",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/sinon": "^17.0.3",
"concurrently": "^8.2.1",
"eslint": "~8.55.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
"@types/amqplib": "^0.5.17",
"@types/debug": "^4.1.5",
"@types/lru-cache": "^5.1.0",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/sinon": "^17.0.3",
"concurrently": "^8.2.1",
"eslint": "~8.55.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"@fluidframework/server-test-utils": "workspace:~",
"@types/debug": "^4.1.5",
"@types/lru-cache": "^5.1.0",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/sinon": "^17.0.3",
"concurrently": "^8.2.1",
"eslint": "~8.55.0",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/services-shared/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
"@types/lodash": "^4.14.118",
"@types/mocha": "^10.0.1",
"@types/nconf": "^0.10.2",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/supertest": "^2.0.5",
"axios": "^1.8.4",
"c8": "^10.1.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
"@fluidframework/eslint-config-fluid": "^6.0.0",
"@fluidframework/server-services-telemetry-previous": "npm:@fluidframework/[email protected]",
"@types/mocha": "^10.0.1",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/sinon": "^17.0.3",
"@types/supertest": "^2.0.5",
"c8": "^10.1.3",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/services-utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@
"@types/mocha": "^10.0.1",
"@types/morgan": "^1.7.35",
"@types/nconf": "^0.10.2",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/supertest": "^2.0.5",
"c8": "^10.1.3",
"concurrently": "^8.2.1",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/services/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
"@types/debug": "^4.1.5",
"@types/lru-cache": "^5.1.0",
"@types/mocha": "^10.0.1",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/sinon": "^17.0.3",
"c8": "^10.1.3",
"concurrently": "^8.2.1",
Expand Down
2 changes: 1 addition & 1 deletion server/routerlicious/packages/test-utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
"@fluidframework/server-test-utils-previous": "npm:@fluidframework/[email protected]",
"@types/lodash": "^4.14.118",
"@types/mocha": "^10.0.1",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/sinon": "^17.0.3",
"@types/string-hash": "^1.1.1",
"c8": "^10.1.3",
Expand Down
4 changes: 2 additions & 2 deletions server/routerlicious/packages/tinylicious/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
"@fluid-internal/mocha-test-setup": "~2.0.5",
"@fluidframework/build-common": "^2.0.3",
"@fluidframework/eslint-config-fluid": "^6.0.0",
"@microsoft/api-extractor": "^7.45.1",
"@microsoft/api-extractor": "^7.52.11",
"@types/compression": "^1.7.2",
"@types/cookie-parser": "^1.4.1",
"@types/cors": "^2.8.4",
Expand All @@ -86,7 +86,7 @@
"@types/mocha": "^10.0.10",
"@types/morgan": "^1.7.35",
"@types/nconf": "^0.10.0",
"@types/node": "^18.19.39",
"@types/node": "~20.0.0",
"@types/rimraf": "^3.0.0",
"@types/split": "^0.3.28",
"copyfiles": "^2.4.1",
Expand Down
28 changes: 0 additions & 28 deletions server/routerlicious/patches/@[email protected]

This file was deleted.

44 changes: 44 additions & 0 deletions server/routerlicious/patches/@[email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
diff --git a/lib/enhancers/ValidationEnhancer.js b/lib/enhancers/ValidationEnhancer.js
index cdb0b22ed2e06592ea1c5f9dd3d18ae2c51b2484..202d2f0b44dad1206fff946e0275bba1e6691ade 100644
--- a/lib/enhancers/ValidationEnhancer.js
+++ b/lib/enhancers/ValidationEnhancer.js
@@ -187,7 +187,8 @@ class ValidationEnhancer {
else {
continue;
}
- if (collectorEntity && collectorEntity.consumable) {
+ // BUG MITIGATION: Always check release tag compatibility.
Copy link

Copilot AI Sep 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The comment 'BUG MITIGATION: Always check release tag compatibility' should be more descriptive. Consider explaining what specific bug this mitigates and why the original conditional logic was problematic.

Suggested change
+ // BUG MITIGATION: Always check release tag compatibility.
+ // BUG MITIGATION: Previously, release tag compatibility was only checked when collectorEntity.consumable was true.
+ // This led to missed analyzer issues when entities were not marked as consumable, causing incorrect API surface validation.
+ // To ensure all relevant symbols are checked for release tag compatibility, this block always performs the comparison,
+ // regardless of the consumable status. This mitigates bugs where incompatible release tags were not reported.

Copilot uses AI. Check for mistakes.
+ {
if (api_extractor_model_1.ReleaseTag.compare(declarationReleaseTag, referencedReleaseTag) > 0) {
collector.messageRouter.addAnalyzerIssue(ExtractorMessageId_1.ExtractorMessageId.IncompatibleReleaseTags, `The symbol "${astDeclaration.astSymbol.localName}"` +
` is marked as ${api_extractor_model_1.ReleaseTag.getTagName(declarationReleaseTag)},` +
@@ -195,7 +196,7 @@ class ValidationEnhancer {
` which is marked as ${api_extractor_model_1.ReleaseTag.getTagName(referencedReleaseTag)}`, astDeclaration);
}
}
- else {
+ if (!(collectorEntity === null || collectorEntity === void 0 ? void 0 : collectorEntity.consumable)) {
const entryPointFilename = path.basename(collector.workingPackage.entryPointSourceFile.fileName);
if (!alreadyWarnedEntities.has(referencedEntity)) {
alreadyWarnedEntities.add(referencedEntity);
diff --git a/lib/generators/ApiReportGenerator.js b/lib/generators/ApiReportGenerator.js
index c12b2665102901f971a4e2b5067dbe556a74c04f..7fece8d5f7b63b08b5f0de7941bcc4712d4d9ff5 100644
--- a/lib/generators/ApiReportGenerator.js
+++ b/lib/generators/ApiReportGenerator.js
@@ -85,13 +85,9 @@ class ApiReportGenerator {
writer.writeLine(`/// <reference lib="${libDirectiveReference}" />`);
}
writer.ensureSkippedLine();
- // Emit the imports
- for (const entity of collector.entities) {
- if (entity.astEntity instanceof AstImport_1.AstImport) {
- DtsEmitHelpers_1.DtsEmitHelpers.emitImport(writer, entity, entity.astEntity);
- }
- }
- writer.ensureSkippedLine();
+
+ // PATCH: Don't emit imports
Copy link

Copilot AI Sep 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The comment 'PATCH: Don't emit imports' should explain why imports are not being emitted. This could help future maintainers understand the reasoning behind this patch modification.

Suggested change
+ // PATCH: Don't emit imports
+ // PATCH: Don't emit imports.
+ // This patch disables emitting import statements in the generated API report.
+ // Rationale: Emitting imports can cause issues with downstream consumers of the API report,
+ // such as breaking type resolution or introducing unwanted dependencies. By omitting imports,
+ // we ensure the API report remains self-contained and compatible with our tooling and usage patterns.

Copilot uses AI. Check for mistakes.
+
// Emit the regular declarations
for (const entity of collector.entities) {
const astEntity = entity.astEntity;
Loading
Loading