@burdenoff/be-sdk 2026.803.2 → 2026.804.1

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.
Files changed (41) hide show
  1. package/dist/cache/index.js +1 -1
  2. package/dist/{chunk-ESLJ2732.js → chunk-FMUOYMV4.js} +3 -3
  3. package/dist/{chunk-ESLJ2732.js.map → chunk-FMUOYMV4.js.map} +1 -1
  4. package/dist/{chunk-YH6PCW6L.js → chunk-I4PU5B7Q.js} +13 -5
  5. package/dist/chunk-I4PU5B7Q.js.map +1 -0
  6. package/dist/{chunk-ZVZ4RAIH.js → chunk-MVXXLAO5.js} +3 -3
  7. package/dist/{chunk-ZVZ4RAIH.js.map → chunk-MVXXLAO5.js.map} +1 -1
  8. package/dist/{chunk-S32JOMMW.js → chunk-N3YN6ZII.js} +16 -4
  9. package/dist/chunk-N3YN6ZII.js.map +1 -0
  10. package/dist/{chunk-QMDYY6GJ.js → chunk-N4RXJ5QR.js} +2 -2
  11. package/dist/{chunk-QMDYY6GJ.js.map → chunk-N4RXJ5QR.js.map} +1 -1
  12. package/dist/{chunk-IIYIO2GG.js → chunk-NSGICODT.js} +4 -3
  13. package/dist/chunk-NSGICODT.js.map +1 -0
  14. package/dist/{chunk-KUM4N4CO.js → chunk-RJK4MPDW.js} +147 -20
  15. package/dist/chunk-RJK4MPDW.js.map +1 -0
  16. package/dist/{chunk-VOJROV6C.js → chunk-VDYBUTFI.js} +3 -3
  17. package/dist/{chunk-VOJROV6C.js.map → chunk-VDYBUTFI.js.map} +1 -1
  18. package/dist/{chunk-GTX65XAP.js → chunk-WW6P2S6L.js} +28 -2
  19. package/dist/chunk-WW6P2S6L.js.map +1 -0
  20. package/dist/export/index.js +3 -3
  21. package/dist/gateway/index.js +2 -2
  22. package/dist/gateway/security/index.js +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.js +14 -14
  25. package/dist/index.js.map +1 -1
  26. package/dist/init/index.js +5 -4
  27. package/dist/instrumentation/index.js +1 -1
  28. package/dist/rbac/index.d.ts +1 -0
  29. package/dist/rbac/index.js +1 -1
  30. package/dist/resource-caps/index.d.ts +18 -3
  31. package/dist/resource-caps/index.js +2 -1
  32. package/dist/server/index.js +10 -3
  33. package/dist/server/index.js.map +1 -1
  34. package/dist/telemetry/index.js +2 -2
  35. package/dist/tracker/index.js +2 -2
  36. package/package.json +1 -1
  37. package/dist/chunk-GTX65XAP.js.map +0 -1
  38. package/dist/chunk-IIYIO2GG.js.map +0 -1
  39. package/dist/chunk-KUM4N4CO.js.map +0 -1
  40. package/dist/chunk-S32JOMMW.js.map +0 -1
  41. package/dist/chunk-YH6PCW6L.js.map +0 -1
@@ -1,7 +1,8 @@
1
- export { getSDKState, initializeBurdenoffSDK, isSDKInitialized, resetSDK } from '../chunk-YH6PCW6L.js';
2
- import '../chunk-KUM4N4CO.js';
3
- import '../chunk-ZVZ4RAIH.js';
4
- import '../chunk-QMDYY6GJ.js';
1
+ export { getSDKState, initializeBurdenoffSDK, isSDKInitialized, resetSDK } from '../chunk-I4PU5B7Q.js';
2
+ import '../chunk-RJK4MPDW.js';
3
+ import '../chunk-Q6UAOZFZ.js';
4
+ import '../chunk-MVXXLAO5.js';
5
+ import '../chunk-N4RXJ5QR.js';
5
6
  import '../chunk-7UJXIX4I.js';
6
7
  import '../chunk-VFCMR5GX.js';
7
8
  import '../chunk-RZOFS2BQ.js';
@@ -1,4 +1,4 @@
1
- export { Instrument, Log, Metric, STANDARD_METRICS, SpanKind, SpanStatus, Trace, Tracer, createApolloInlineTracePlugin, createGraphQLInstrumentationPlugin, createPrometheusPlugin, extractOperationInfo, extractTraceContext, getGraphQLOperationFromContext, getGraphQLSpanFromContext, getLogger, getTraceContext, getTracer, initializeInstrumentation, initializeTracer, injectTraceContext, instrumentResolver, instrumentResolverMap, instrumented, isApolloInlineTraceAvailable, isInstrumentationInitialized, isPrometheusAvailable, isTracerInitialized, resetInstrumentation, setupInstrumentation, startSpan, traced, withSpan } from '../chunk-GTX65XAP.js';
1
+ export { Instrument, Log, Metric, STANDARD_METRICS, SpanKind, SpanStatus, Trace, Tracer, createApolloInlineTracePlugin, createGraphQLInstrumentationPlugin, createPrometheusPlugin, extractOperationInfo, extractTraceContext, getGraphQLOperationFromContext, getGraphQLSpanFromContext, getLogger, getTraceContext, getTracer, initializeInstrumentation, initializeTracer, injectTraceContext, instrumentResolver, instrumentResolverMap, instrumented, isApolloInlineTraceAvailable, isInstrumentationInitialized, isPrometheusAvailable, isTracerInitialized, resetInstrumentation, setupInstrumentation, startSpan, traced, withSpan } from '../chunk-WW6P2S6L.js';
2
2
  export { DEFAULT_CACHE_CONFIG, DEFAULT_DATABASE_CONFIG, DEFAULT_EVENT_QUEUE_CONFIG, DEFAULT_FEATURE_FLAGS, DEFAULT_GRAPHQL_CONFIG, DEFAULT_HTTP_CONFIG, DEFAULT_LOGGING_CONFIG, DEFAULT_METRICS_CONFIG, DEFAULT_TRACING_CONFIG, ENV_VARS, MetricsRegistry, buildDatabaseConfig, buildFeatureFlags, buildGraphQLConfig, buildInstrumentationConfig, buildMetricsConfig, buildTracingConfig, createCounter, createGauge, createHistogram, createUpDownCounter, getInstrumentationConfig, getMetricsRegistry, initializeInstrumentationConfig, initializeMetricsRegistry, isFeatureEnabled, isInstrumentationConfigInitialized, isMetricsRegistryInitialized, resetInstrumentationConfig, resetMetricsRegistry, updateInstrumentationConfig } from '../chunk-Q6UAOZFZ.js';
3
3
  export { logger } from '../chunk-CBZNP6RF.js';
4
4
  import '../chunk-XE4OXN2W.js';
@@ -25,6 +25,7 @@ declare class RBACClient {
25
25
  private client;
26
26
  private cache?;
27
27
  private config;
28
+ private timeoutMs;
28
29
  constructor(config: RBACDirectiveConfig);
29
30
  private parsePermission;
30
31
  checkPermission(actorId: string, actorType: ActorType, scopeId: string, permission: string, resourceId?: string): Promise<CheckPermissionResult>;
@@ -1,4 +1,4 @@
1
- export { RBACClient, RBACModule, createRBACClientFromEnv, createRBACDirective, createRBACDirectiveForLayer, createRBACDirectiveFromEnv } from '../chunk-S32JOMMW.js';
1
+ export { RBACClient, RBACModule, createRBACClientFromEnv, createRBACDirective, createRBACDirectiveForLayer, createRBACDirectiveFromEnv } from '../chunk-N3YN6ZII.js';
2
2
  import '../chunk-QGBXVNRM.js';
3
3
  import '../chunk-YFOHAHZE.js';
4
4
  import '../chunk-CBZNP6RF.js';
@@ -18,14 +18,21 @@ interface ResourceCap {
18
18
  planName: string;
19
19
  planTier: PlanTier;
20
20
  isFallback: boolean;
21
+ fallbackReason?: 'clientless' | 'billing_error';
22
+ }
23
+ interface WorkspaceResourceCapScope {
24
+ workspaceId: string;
25
+ organizationId: string;
21
26
  }
22
27
  type BillingPlanTransport = (query: string, variables: Record<string, unknown>) => Promise<unknown>;
23
28
  interface ResourceCapsConfig {
24
29
  client?: BurdenoffGraphQLClient;
25
30
  transport?: BillingPlanTransport;
26
31
  cacheTtlMs?: number;
27
- defaultTier?: PlanTier;
32
+ clientlessTier?: PlanTier;
33
+ billingFailureTier?: PlanTier;
28
34
  onFallback?: () => void;
35
+ onBillingFailure?: () => void;
29
36
  }
30
37
  declare class ResourceCapExceededError extends GraphQLError {
31
38
  constructor(detail: {
@@ -39,17 +46,25 @@ declare class ResourceCapsModule {
39
46
  private client?;
40
47
  private transport?;
41
48
  private cacheTtlMs;
42
- private defaultTier;
49
+ private clientlessTier;
50
+ private billingFailureTier;
43
51
  private onFallback?;
52
+ private onBillingFailure?;
44
53
  private warnedClientless;
45
54
  private readonly planCache;
55
+ private readonly planResolutionCounter;
56
+ private readonly enforcementCounter;
46
57
  constructor(config?: ResourceCapsConfig);
47
58
  configure(config: ResourceCapsConfig): void;
48
59
  hasBillingSource(): boolean;
49
60
  getResourceCap(userId: string, resource: ResourceName): Promise<ResourceCap>;
50
61
  enforceResourceCap(userId: string, resource: ResourceName, currentCount: number): Promise<ResourceCap>;
62
+ getWorkspaceResourceCap(scope: WorkspaceResourceCapScope, resource: ResourceName): Promise<ResourceCap>;
63
+ enforceWorkspaceResourceCap(scope: WorkspaceResourceCapScope, resource: ResourceName, currentCount: number): Promise<ResourceCap>;
51
64
  invalidate(userId: string): void;
65
+ invalidateWorkspace(workspaceId: string): void;
52
66
  invalidateAll(): void;
67
+ private workspaceCacheKey;
53
68
  private resolvePlan;
54
69
  private fetchPlan;
55
70
  private fetchPlanNode;
@@ -60,4 +75,4 @@ declare function getResourceCaps(config?: ResourceCapsConfig): ResourceCapsModul
60
75
  declare function configureResourceCaps(config: ResourceCapsConfig): ResourceCapsModule;
61
76
  declare function __resetResourceCapsForTests(): void;
62
77
 
63
- export { type BillingPlanTransport, type PlanTier, RESOURCE_CAP_DEFAULTS, type ResourceCap, type ResourceCapDefaults, ResourceCapExceededError, type ResourceCapsConfig, ResourceCapsModule, type ResourceName, __resetResourceCapsForTests, configureResourceCaps, getResourceCaps };
78
+ export { type BillingPlanTransport, type PlanTier, RESOURCE_CAP_DEFAULTS, type ResourceCap, type ResourceCapDefaults, ResourceCapExceededError, type ResourceCapsConfig, ResourceCapsModule, type ResourceName, type WorkspaceResourceCapScope, __resetResourceCapsForTests, configureResourceCaps, getResourceCaps };
@@ -1,4 +1,5 @@
1
- export { RESOURCE_CAP_DEFAULTS, ResourceCapExceededError, ResourceCapsModule, __resetResourceCapsForTests, configureResourceCaps, getResourceCaps } from '../chunk-KUM4N4CO.js';
1
+ export { RESOURCE_CAP_DEFAULTS, ResourceCapExceededError, ResourceCapsModule, __resetResourceCapsForTests, configureResourceCaps, getResourceCaps } from '../chunk-RJK4MPDW.js';
2
+ import '../chunk-Q6UAOZFZ.js';
2
3
  import '../chunk-CBZNP6RF.js';
3
4
  import '../chunk-XE4OXN2W.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -2,8 +2,8 @@ import { createHumanReadableErrorPlugin, formatHttpError, normalizeGraphQLRespon
2
2
  export { UserFacingGraphQLError, createHttpErrorResponse, createHumanReadableErrorPlugin, createWorkspaceGuardPlugin, formatHttpError, normalizeError, normalizeExecutionResultErrors, normalizeGraphQLResponse, normalizeGraphQLResponsePayload, toUserFacingGraphQLError } from '../chunk-OQLDXOZ3.js';
3
3
  import { getWorkspaceQuotaRegistry } from '../chunk-4OPOVK54.js';
4
4
  import { setWorkspaceContext } from '../chunk-KESVEZB2.js';
5
- import { getMetricsRegistry } from '../chunk-Q6UAOZFZ.js';
6
5
  import { I18n } from '../chunk-ULFFX3YE.js';
6
+ import { getMetricsRegistry } from '../chunk-Q6UAOZFZ.js';
7
7
  import { ContextManager } from '../chunk-RZOFS2BQ.js';
8
8
  import { logger } from '../chunk-CBZNP6RF.js';
9
9
  import { __name } from '../chunk-XE4OXN2W.js';
@@ -467,8 +467,15 @@ function canAccessGraphExport(actor) {
467
467
  __name(canAccessGraphExport, "canAccessGraphExport");
468
468
 
469
469
  // src/server/quotaGaugeRefresh.ts
470
- var QUOTA_GAUGE_TTL_MS = 6e4;
471
- var QUOTA_GAUGE_REFRESH_TIMEOUT_MS = 5e3;
470
+ function envMs(name, fallback) {
471
+ const raw = process.env[name];
472
+ if (!raw) return fallback;
473
+ const parsed = Number.parseInt(raw, 10);
474
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
475
+ }
476
+ __name(envMs, "envMs");
477
+ var QUOTA_GAUGE_TTL_MS = envMs("BOFF_QUOTA_GAUGE_TTL_MS", 6e4);
478
+ var QUOTA_GAUGE_REFRESH_TIMEOUT_MS = envMs("BOFF_QUOTA_GAUGE_TIMEOUT_MS", 5e3);
472
479
  function createQuotaGaugeRefresher(opts) {
473
480
  const ttlMs = opts.ttlMs ?? QUOTA_GAUGE_TTL_MS;
474
481
  const timeoutMs = opts.timeoutMs ?? QUOTA_GAUGE_REFRESH_TIMEOUT_MS;