@letpeoplework/lighthouse-client 1.4.0 → 1.6.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/index.cjs CHANGED
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
+ FEATURE_REQUIRES_SERVER_NEWER_THAN: () => FEATURE_REQUIRES_SERVER_NEWER_THAN,
23
24
  createLighthouseAuthContext: () => createLighthouseAuthContext,
24
25
  createLighthouseClient: () => createLighthouseClient,
25
26
  getClientPackageContract: () => getClientPackageContract,
@@ -785,7 +786,9 @@ var deriveTotalWorkItemAgeOverTime = (startDate, endDate, wipData) => {
785
786
  var FEATURE_REQUIRES_SERVER_NEWER_THAN = {
786
787
  cumulativeStateTime: "v26.5.24.10",
787
788
  recurringBlackoutRules: "v26.5.29.5",
788
- workItemAgePercentiles: "v26.6.7.1"
789
+ workItemAgePercentiles: "v26.6.7.1",
790
+ mcpOAuthPassThrough: "v26.6.16.14",
791
+ blockedCountHistory: "v26.7.3.1"
789
792
  };
790
793
  var parseServerVersion = (raw) => {
791
794
  const trimmed = raw.trim().replace(/^v/iu, "");
@@ -1229,6 +1232,32 @@ var createLighthouseClient = (configuration, dependencies = {}) => {
1229
1232
  )
1230
1233
  };
1231
1234
  },
1235
+ getTeamBlockedCountHistory: async (teamId, range) => {
1236
+ const unsupported = await ensureServerSupports("blockedCountHistory");
1237
+ if (unsupported) {
1238
+ return unsupported;
1239
+ }
1240
+ const r = getResolvedMetricsDateRange(range);
1241
+ return requestJson(
1242
+ configuration,
1243
+ dependencies,
1244
+ `/v1/teams/${teamId}/metrics/blockedCountHistory?${getMetricsDateRangeQuery(r)}`,
1245
+ { method: "GET" }
1246
+ );
1247
+ },
1248
+ getPortfolioBlockedCountHistory: async (portfolioId, range) => {
1249
+ const unsupported = await ensureServerSupports("blockedCountHistory");
1250
+ if (unsupported) {
1251
+ return unsupported;
1252
+ }
1253
+ const r = getResolvedMetricsDateRange(range);
1254
+ return requestJson(
1255
+ configuration,
1256
+ dependencies,
1257
+ `/v1/portfolios/${portfolioId}/metrics/blockedCountHistory?${getMetricsDateRangeQuery(r)}`,
1258
+ { method: "GET" }
1259
+ );
1260
+ },
1232
1261
  getTeamCumulativeStateTime: async (teamId, range, itemIds) => {
1233
1262
  const unsupported = await ensureServerSupports("cumulativeStateTime");
1234
1263
  if (unsupported) {
@@ -1419,6 +1448,7 @@ var createLighthouseClient = (configuration, dependencies = {}) => {
1419
1448
  };
1420
1449
  // Annotate the CommonJS export names for ESM import in node:
1421
1450
  0 && (module.exports = {
1451
+ FEATURE_REQUIRES_SERVER_NEWER_THAN,
1422
1452
  createLighthouseAuthContext,
1423
1453
  createLighthouseClient,
1424
1454
  getClientPackageContract,
package/dist/index.d.cts CHANGED
@@ -219,6 +219,20 @@ type TotalWorkItemAgeOverTimeResult = {
219
219
  readonly endDate: string;
220
220
  readonly daily: readonly DailyTotalWorkItemAge[];
221
221
  };
222
+ /**
223
+ * One captured point on the blocked-items-over-time trend: how many items were
224
+ * blocked on {@link recordedAt}. Returned by the team/portfolio
225
+ * `blockedCountHistory` metric. `recordedAt` is an ISO date string.
226
+ *
227
+ * The complementary "what is blocked right now, and for how long" view rides on
228
+ * the existing WIP snapshot (`getTeamWip` / `getPortfolioWip`): from Lighthouse
229
+ * newer than v26.7.3.1 each WIP work item carries `isBlocked` and, when blocked,
230
+ * a `blockedSince` timestamp.
231
+ */
232
+ type BlockedCountSnapshot = {
233
+ readonly recordedAt: string;
234
+ readonly blockedCount: number;
235
+ };
222
236
  type CumulativeStateTimeStateRow = {
223
237
  readonly state: string;
224
238
  readonly workflowOrder: number;
@@ -318,6 +332,8 @@ type LighthouseClient = {
318
332
  readonly getPortfolioTotalWorkItemAgeInfo: (portfolioId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<unknown>>;
319
333
  readonly getPortfolioWorkItemAgeOverTime: (portfolioId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<WorkItemAgeOverTimeResult>>;
320
334
  readonly getPortfolioTotalWorkItemAgeOverTime: (portfolioId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<TotalWorkItemAgeOverTimeResult>>;
335
+ readonly getTeamBlockedCountHistory: (teamId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<readonly BlockedCountSnapshot[]>>;
336
+ readonly getPortfolioBlockedCountHistory: (portfolioId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<readonly BlockedCountSnapshot[]>>;
321
337
  readonly getTeamCumulativeStateTime: (teamId: number, range?: MetricsDateRange, itemIds?: readonly number[]) => Promise<LighthouseApiResult<CumulativeStateTimeResult>>;
322
338
  readonly getTeamCumulativeStateTimeItems: (teamId: number, state: string, range?: MetricsDateRange, itemIds?: readonly number[]) => Promise<LighthouseApiResult<CumulativeStateTimeItemsResult>>;
323
339
  readonly getTeamCumulativeStateTimeCandidates: (teamId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<CumulativeStateTimeCandidatesResult>>;
@@ -341,6 +357,21 @@ type LighthouseClient = {
341
357
  type LighthouseClientDependencies = {
342
358
  readonly fetch?: (url: string, init?: RequestInit) => Promise<ConnectivityFetchResponse>;
343
359
  };
360
+ /**
361
+ * Server-version gating for endpoints that did not exist in older Lighthouse
362
+ * releases. At development time the NEXT release number is unknown, so each
363
+ * feature records the LAST released version that did NOT have it; the server
364
+ * must report a version STRICTLY NEWER than that baseline for the feature to be
365
+ * callable. Update the baseline to the current latest release whenever a new
366
+ * server-dependent feature is wrapped.
367
+ */
368
+ declare const FEATURE_REQUIRES_SERVER_NEWER_THAN: {
369
+ readonly cumulativeStateTime: "v26.5.24.10";
370
+ readonly recurringBlackoutRules: "v26.5.29.5";
371
+ readonly workItemAgePercentiles: "v26.6.7.1";
372
+ readonly mcpOAuthPassThrough: "v26.6.16.14";
373
+ readonly blockedCountHistory: "v26.7.3.1";
374
+ };
344
375
  /**
345
376
  * Returns true when `candidate` is strictly newer than `baseline`, false when
346
377
  * it is equal-or-older, and null when either string is unparseable (treat as
@@ -349,4 +380,4 @@ type LighthouseClientDependencies = {
349
380
  declare const isServerVersionNewerThan: (candidate: string, baseline: string) => boolean | null;
350
381
  declare const createLighthouseClient: (configuration: LighthouseClientConfiguration, dependencies?: LighthouseClientDependencies) => LighthouseClient;
351
382
 
352
- export { type BacktestInput, type CliAuthSessionPollResult, type CliAuthSessionStartError, type CliAuthSessionStartOutcome, type CliAuthSessionStartResult, type CliConnection, type CliServerAuthMode, type CliServerConnection, type CliStandaloneConnection, type ClientCapability, type ClientPackageContract, type ConnectivityCategory, type ConnectivityDependencies, type ConnectivityFetchResponse, type ConnectivityValidationResult, type CumulativeStateTimeCandidateRow, type CumulativeStateTimeCandidatesResult, type CumulativeStateTimeItemRow, type CumulativeStateTimeItemsResult, type CumulativeStateTimeResult, type CumulativeStateTimeStateRow, type DailyTotalWorkItemAge, type DailyWorkItemAge, type DayOfWeek, type LighthouseApiError, type LighthouseApiResult, type LighthouseAuthContext, type LighthouseAuthOverrides, type LighthouseAuthStatus, type LighthouseAuthStore, type LighthouseClient, type LighthouseClientAuth, type LighthouseClientConfiguration, type LighthouseClientDependencies, type LighthouseConnectionConfiguration, type LighthouseWritePayload, type ManualForecastInput, type MetricsDateRange, type RecurringBlackoutRule, type RecurringBlackoutRuleInput, type ResolvedLighthouseEndpoint, type ServerAuthModeResult, type StandaloneDiscoveryContract, type StandaloneDiscoveryContractParseResult, type StoredLighthouseAuth, type ThroughputFilterView, type TotalWorkItemAgeOverTimeResult, type WorkItemAgeEntry, type WorkItemAgeOverTimeResult, createLighthouseAuthContext, createLighthouseClient, getClientPackageContract, getDefaultMetricsDateRange, getStandaloneDiscoveryLockfilePath, isServerVersionNewerThan, loadStandaloneDiscoveryContract, parseStandaloneDiscoveryContract, pollCliAuthSession, queryServerAuthMode, startCliAuthSession, validateLighthouseConnectivity };
383
+ export { type BacktestInput, type BlockedCountSnapshot, type CliAuthSessionPollResult, type CliAuthSessionStartError, type CliAuthSessionStartOutcome, type CliAuthSessionStartResult, type CliConnection, type CliServerAuthMode, type CliServerConnection, type CliStandaloneConnection, type ClientCapability, type ClientPackageContract, type ConnectivityCategory, type ConnectivityDependencies, type ConnectivityFetchResponse, type ConnectivityValidationResult, type CumulativeStateTimeCandidateRow, type CumulativeStateTimeCandidatesResult, type CumulativeStateTimeItemRow, type CumulativeStateTimeItemsResult, type CumulativeStateTimeResult, type CumulativeStateTimeStateRow, type DailyTotalWorkItemAge, type DailyWorkItemAge, type DayOfWeek, FEATURE_REQUIRES_SERVER_NEWER_THAN, type LighthouseApiError, type LighthouseApiResult, type LighthouseAuthContext, type LighthouseAuthOverrides, type LighthouseAuthStatus, type LighthouseAuthStore, type LighthouseClient, type LighthouseClientAuth, type LighthouseClientConfiguration, type LighthouseClientDependencies, type LighthouseConnectionConfiguration, type LighthouseWritePayload, type ManualForecastInput, type MetricsDateRange, type RecurringBlackoutRule, type RecurringBlackoutRuleInput, type ResolvedLighthouseEndpoint, type ServerAuthModeResult, type StandaloneDiscoveryContract, type StandaloneDiscoveryContractParseResult, type StoredLighthouseAuth, type ThroughputFilterView, type TotalWorkItemAgeOverTimeResult, type WorkItemAgeEntry, type WorkItemAgeOverTimeResult, createLighthouseAuthContext, createLighthouseClient, getClientPackageContract, getDefaultMetricsDateRange, getStandaloneDiscoveryLockfilePath, isServerVersionNewerThan, loadStandaloneDiscoveryContract, parseStandaloneDiscoveryContract, pollCliAuthSession, queryServerAuthMode, startCliAuthSession, validateLighthouseConnectivity };
package/dist/index.d.ts CHANGED
@@ -219,6 +219,20 @@ type TotalWorkItemAgeOverTimeResult = {
219
219
  readonly endDate: string;
220
220
  readonly daily: readonly DailyTotalWorkItemAge[];
221
221
  };
222
+ /**
223
+ * One captured point on the blocked-items-over-time trend: how many items were
224
+ * blocked on {@link recordedAt}. Returned by the team/portfolio
225
+ * `blockedCountHistory` metric. `recordedAt` is an ISO date string.
226
+ *
227
+ * The complementary "what is blocked right now, and for how long" view rides on
228
+ * the existing WIP snapshot (`getTeamWip` / `getPortfolioWip`): from Lighthouse
229
+ * newer than v26.7.3.1 each WIP work item carries `isBlocked` and, when blocked,
230
+ * a `blockedSince` timestamp.
231
+ */
232
+ type BlockedCountSnapshot = {
233
+ readonly recordedAt: string;
234
+ readonly blockedCount: number;
235
+ };
222
236
  type CumulativeStateTimeStateRow = {
223
237
  readonly state: string;
224
238
  readonly workflowOrder: number;
@@ -318,6 +332,8 @@ type LighthouseClient = {
318
332
  readonly getPortfolioTotalWorkItemAgeInfo: (portfolioId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<unknown>>;
319
333
  readonly getPortfolioWorkItemAgeOverTime: (portfolioId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<WorkItemAgeOverTimeResult>>;
320
334
  readonly getPortfolioTotalWorkItemAgeOverTime: (portfolioId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<TotalWorkItemAgeOverTimeResult>>;
335
+ readonly getTeamBlockedCountHistory: (teamId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<readonly BlockedCountSnapshot[]>>;
336
+ readonly getPortfolioBlockedCountHistory: (portfolioId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<readonly BlockedCountSnapshot[]>>;
321
337
  readonly getTeamCumulativeStateTime: (teamId: number, range?: MetricsDateRange, itemIds?: readonly number[]) => Promise<LighthouseApiResult<CumulativeStateTimeResult>>;
322
338
  readonly getTeamCumulativeStateTimeItems: (teamId: number, state: string, range?: MetricsDateRange, itemIds?: readonly number[]) => Promise<LighthouseApiResult<CumulativeStateTimeItemsResult>>;
323
339
  readonly getTeamCumulativeStateTimeCandidates: (teamId: number, range?: MetricsDateRange) => Promise<LighthouseApiResult<CumulativeStateTimeCandidatesResult>>;
@@ -341,6 +357,21 @@ type LighthouseClient = {
341
357
  type LighthouseClientDependencies = {
342
358
  readonly fetch?: (url: string, init?: RequestInit) => Promise<ConnectivityFetchResponse>;
343
359
  };
360
+ /**
361
+ * Server-version gating for endpoints that did not exist in older Lighthouse
362
+ * releases. At development time the NEXT release number is unknown, so each
363
+ * feature records the LAST released version that did NOT have it; the server
364
+ * must report a version STRICTLY NEWER than that baseline for the feature to be
365
+ * callable. Update the baseline to the current latest release whenever a new
366
+ * server-dependent feature is wrapped.
367
+ */
368
+ declare const FEATURE_REQUIRES_SERVER_NEWER_THAN: {
369
+ readonly cumulativeStateTime: "v26.5.24.10";
370
+ readonly recurringBlackoutRules: "v26.5.29.5";
371
+ readonly workItemAgePercentiles: "v26.6.7.1";
372
+ readonly mcpOAuthPassThrough: "v26.6.16.14";
373
+ readonly blockedCountHistory: "v26.7.3.1";
374
+ };
344
375
  /**
345
376
  * Returns true when `candidate` is strictly newer than `baseline`, false when
346
377
  * it is equal-or-older, and null when either string is unparseable (treat as
@@ -349,4 +380,4 @@ type LighthouseClientDependencies = {
349
380
  declare const isServerVersionNewerThan: (candidate: string, baseline: string) => boolean | null;
350
381
  declare const createLighthouseClient: (configuration: LighthouseClientConfiguration, dependencies?: LighthouseClientDependencies) => LighthouseClient;
351
382
 
352
- export { type BacktestInput, type CliAuthSessionPollResult, type CliAuthSessionStartError, type CliAuthSessionStartOutcome, type CliAuthSessionStartResult, type CliConnection, type CliServerAuthMode, type CliServerConnection, type CliStandaloneConnection, type ClientCapability, type ClientPackageContract, type ConnectivityCategory, type ConnectivityDependencies, type ConnectivityFetchResponse, type ConnectivityValidationResult, type CumulativeStateTimeCandidateRow, type CumulativeStateTimeCandidatesResult, type CumulativeStateTimeItemRow, type CumulativeStateTimeItemsResult, type CumulativeStateTimeResult, type CumulativeStateTimeStateRow, type DailyTotalWorkItemAge, type DailyWorkItemAge, type DayOfWeek, type LighthouseApiError, type LighthouseApiResult, type LighthouseAuthContext, type LighthouseAuthOverrides, type LighthouseAuthStatus, type LighthouseAuthStore, type LighthouseClient, type LighthouseClientAuth, type LighthouseClientConfiguration, type LighthouseClientDependencies, type LighthouseConnectionConfiguration, type LighthouseWritePayload, type ManualForecastInput, type MetricsDateRange, type RecurringBlackoutRule, type RecurringBlackoutRuleInput, type ResolvedLighthouseEndpoint, type ServerAuthModeResult, type StandaloneDiscoveryContract, type StandaloneDiscoveryContractParseResult, type StoredLighthouseAuth, type ThroughputFilterView, type TotalWorkItemAgeOverTimeResult, type WorkItemAgeEntry, type WorkItemAgeOverTimeResult, createLighthouseAuthContext, createLighthouseClient, getClientPackageContract, getDefaultMetricsDateRange, getStandaloneDiscoveryLockfilePath, isServerVersionNewerThan, loadStandaloneDiscoveryContract, parseStandaloneDiscoveryContract, pollCliAuthSession, queryServerAuthMode, startCliAuthSession, validateLighthouseConnectivity };
383
+ export { type BacktestInput, type BlockedCountSnapshot, type CliAuthSessionPollResult, type CliAuthSessionStartError, type CliAuthSessionStartOutcome, type CliAuthSessionStartResult, type CliConnection, type CliServerAuthMode, type CliServerConnection, type CliStandaloneConnection, type ClientCapability, type ClientPackageContract, type ConnectivityCategory, type ConnectivityDependencies, type ConnectivityFetchResponse, type ConnectivityValidationResult, type CumulativeStateTimeCandidateRow, type CumulativeStateTimeCandidatesResult, type CumulativeStateTimeItemRow, type CumulativeStateTimeItemsResult, type CumulativeStateTimeResult, type CumulativeStateTimeStateRow, type DailyTotalWorkItemAge, type DailyWorkItemAge, type DayOfWeek, FEATURE_REQUIRES_SERVER_NEWER_THAN, type LighthouseApiError, type LighthouseApiResult, type LighthouseAuthContext, type LighthouseAuthOverrides, type LighthouseAuthStatus, type LighthouseAuthStore, type LighthouseClient, type LighthouseClientAuth, type LighthouseClientConfiguration, type LighthouseClientDependencies, type LighthouseConnectionConfiguration, type LighthouseWritePayload, type ManualForecastInput, type MetricsDateRange, type RecurringBlackoutRule, type RecurringBlackoutRuleInput, type ResolvedLighthouseEndpoint, type ServerAuthModeResult, type StandaloneDiscoveryContract, type StandaloneDiscoveryContractParseResult, type StoredLighthouseAuth, type ThroughputFilterView, type TotalWorkItemAgeOverTimeResult, type WorkItemAgeEntry, type WorkItemAgeOverTimeResult, createLighthouseAuthContext, createLighthouseClient, getClientPackageContract, getDefaultMetricsDateRange, getStandaloneDiscoveryLockfilePath, isServerVersionNewerThan, loadStandaloneDiscoveryContract, parseStandaloneDiscoveryContract, pollCliAuthSession, queryServerAuthMode, startCliAuthSession, validateLighthouseConnectivity };
package/dist/index.js CHANGED
@@ -750,7 +750,9 @@ var deriveTotalWorkItemAgeOverTime = (startDate, endDate, wipData) => {
750
750
  var FEATURE_REQUIRES_SERVER_NEWER_THAN = {
751
751
  cumulativeStateTime: "v26.5.24.10",
752
752
  recurringBlackoutRules: "v26.5.29.5",
753
- workItemAgePercentiles: "v26.6.7.1"
753
+ workItemAgePercentiles: "v26.6.7.1",
754
+ mcpOAuthPassThrough: "v26.6.16.14",
755
+ blockedCountHistory: "v26.7.3.1"
754
756
  };
755
757
  var parseServerVersion = (raw) => {
756
758
  const trimmed = raw.trim().replace(/^v/iu, "");
@@ -1194,6 +1196,32 @@ var createLighthouseClient = (configuration, dependencies = {}) => {
1194
1196
  )
1195
1197
  };
1196
1198
  },
1199
+ getTeamBlockedCountHistory: async (teamId, range) => {
1200
+ const unsupported = await ensureServerSupports("blockedCountHistory");
1201
+ if (unsupported) {
1202
+ return unsupported;
1203
+ }
1204
+ const r = getResolvedMetricsDateRange(range);
1205
+ return requestJson(
1206
+ configuration,
1207
+ dependencies,
1208
+ `/v1/teams/${teamId}/metrics/blockedCountHistory?${getMetricsDateRangeQuery(r)}`,
1209
+ { method: "GET" }
1210
+ );
1211
+ },
1212
+ getPortfolioBlockedCountHistory: async (portfolioId, range) => {
1213
+ const unsupported = await ensureServerSupports("blockedCountHistory");
1214
+ if (unsupported) {
1215
+ return unsupported;
1216
+ }
1217
+ const r = getResolvedMetricsDateRange(range);
1218
+ return requestJson(
1219
+ configuration,
1220
+ dependencies,
1221
+ `/v1/portfolios/${portfolioId}/metrics/blockedCountHistory?${getMetricsDateRangeQuery(r)}`,
1222
+ { method: "GET" }
1223
+ );
1224
+ },
1197
1225
  getTeamCumulativeStateTime: async (teamId, range, itemIds) => {
1198
1226
  const unsupported = await ensureServerSupports("cumulativeStateTime");
1199
1227
  if (unsupported) {
@@ -1383,6 +1411,7 @@ var createLighthouseClient = (configuration, dependencies = {}) => {
1383
1411
  };
1384
1412
  };
1385
1413
  export {
1414
+ FEATURE_REQUIRES_SERVER_NEWER_THAN,
1386
1415
  createLighthouseAuthContext,
1387
1416
  createLighthouseClient,
1388
1417
  getClientPackageContract,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letpeoplework/lighthouse-client",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "Shared Lighthouse API client contracts",
5
5
  "repository": "https://github.com/LetPeopleWork/lighthouse-clients",
6
6
  "type": "module",