@robosystems/client 0.5.8 → 0.5.10

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.
@@ -379,10 +379,20 @@ export declare class LedgerClient {
379
379
  * columns cross the actuals/forecast seam and forecast columns carry
380
380
  * `periods[].forecast === true`. Non-statement block types ignore it
381
381
  * (metric envelopes are always the full series).
382
+ *
383
+ * `options.seriesHistory` / `options.seriesForecast` window the series
384
+ * to its seam-adjacent columns — the last N actual columns and the
385
+ * first N forecast columns; omitted = unbounded. Passing either sends
386
+ * the windowed query document, which requires a backend that knows the
387
+ * window arguments — a pre-window server rejects it. Callers that
388
+ * never pass a window keep the un-windowed document and stay
389
+ * compatible with older backends.
382
390
  */
383
391
  getInformationBlock(graphId: string, id: string, options?: {
384
392
  scenarioId?: string;
385
393
  series?: boolean;
394
+ seriesHistory?: number;
395
+ seriesForecast?: number;
386
396
  }): Promise<InformationBlock | null>;
387
397
  /**
388
398
  * List Information Block envelopes with optional block_type + category
@@ -265,13 +265,30 @@ class LedgerClient {
265
265
  * columns cross the actuals/forecast seam and forecast columns carry
266
266
  * `periods[].forecast === true`. Non-statement block types ignore it
267
267
  * (metric envelopes are always the full series).
268
+ *
269
+ * `options.seriesHistory` / `options.seriesForecast` window the series
270
+ * to its seam-adjacent columns — the last N actual columns and the
271
+ * first N forecast columns; omitted = unbounded. Passing either sends
272
+ * the windowed query document, which requires a backend that knows the
273
+ * window arguments — a pre-window server rejects it. Callers that
274
+ * never pass a window keep the un-windowed document and stay
275
+ * compatible with older backends.
268
276
  */
269
277
  async getInformationBlock(graphId, id, options) {
270
- const block = await this.gqlQuery(graphId, graphql_1.GetInformationBlockDocument, {
271
- id,
272
- scenarioId: options?.scenarioId ?? null,
273
- series: options?.series ?? false,
274
- }, 'Get information block', (data) => data.informationBlock ?? null);
278
+ const windowed = options?.seriesHistory !== undefined || options?.seriesForecast !== undefined;
279
+ const block = windowed
280
+ ? await this.gqlQuery(graphId, graphql_1.GetInformationBlockWindowedDocument, {
281
+ id,
282
+ scenarioId: options?.scenarioId ?? null,
283
+ series: options?.series ?? false,
284
+ seriesHistory: options?.seriesHistory ?? null,
285
+ seriesForecast: options?.seriesForecast ?? null,
286
+ }, 'Get information block', (data) => data.informationBlock ?? null)
287
+ : await this.gqlQuery(graphId, graphql_1.GetInformationBlockDocument, {
288
+ id,
289
+ scenarioId: options?.scenarioId ?? null,
290
+ series: options?.series ?? false,
291
+ }, 'Get information block', (data) => data.informationBlock ?? null);
275
292
  return block ?? null;
276
293
  }
277
294
  /**
@@ -130,6 +130,7 @@ import type { TokenProvider } from './graphql/client'
130
130
  import { GraphQLClientCache } from './graphql/client'
131
131
  import {
132
132
  GetInformationBlockDocument,
133
+ GetInformationBlockWindowedDocument,
133
134
  GetLedgerAccountRollupsDocument,
134
135
  GetLedgerAccountTreeDocument,
135
136
  GetLedgerAgentDocument,
@@ -1091,23 +1092,51 @@ export class LedgerClient {
1091
1092
  * columns cross the actuals/forecast seam and forecast columns carry
1092
1093
  * `periods[].forecast === true`. Non-statement block types ignore it
1093
1094
  * (metric envelopes are always the full series).
1095
+ *
1096
+ * `options.seriesHistory` / `options.seriesForecast` window the series
1097
+ * to its seam-adjacent columns — the last N actual columns and the
1098
+ * first N forecast columns; omitted = unbounded. Passing either sends
1099
+ * the windowed query document, which requires a backend that knows the
1100
+ * window arguments — a pre-window server rejects it. Callers that
1101
+ * never pass a window keep the un-windowed document and stay
1102
+ * compatible with older backends.
1094
1103
  */
1095
1104
  async getInformationBlock(
1096
1105
  graphId: string,
1097
1106
  id: string,
1098
- options?: { scenarioId?: string; series?: boolean }
1107
+ options?: {
1108
+ scenarioId?: string
1109
+ series?: boolean
1110
+ seriesHistory?: number
1111
+ seriesForecast?: number
1112
+ }
1099
1113
  ): Promise<InformationBlock | null> {
1100
- const block = await this.gqlQuery(
1101
- graphId,
1102
- GetInformationBlockDocument,
1103
- {
1104
- id,
1105
- scenarioId: options?.scenarioId ?? null,
1106
- series: options?.series ?? false,
1107
- },
1108
- 'Get information block',
1109
- (data) => data.informationBlock ?? null
1110
- )
1114
+ const windowed = options?.seriesHistory !== undefined || options?.seriesForecast !== undefined
1115
+ const block = windowed
1116
+ ? await this.gqlQuery(
1117
+ graphId,
1118
+ GetInformationBlockWindowedDocument,
1119
+ {
1120
+ id,
1121
+ scenarioId: options?.scenarioId ?? null,
1122
+ series: options?.series ?? false,
1123
+ seriesHistory: options?.seriesHistory ?? null,
1124
+ seriesForecast: options?.seriesForecast ?? null,
1125
+ },
1126
+ 'Get information block',
1127
+ (data) => data.informationBlock ?? null
1128
+ )
1129
+ : await this.gqlQuery(
1130
+ graphId,
1131
+ GetInformationBlockDocument,
1132
+ {
1133
+ id,
1134
+ scenarioId: options?.scenarioId ?? null,
1135
+ series: options?.series ?? false,
1136
+ },
1137
+ 'Get information block',
1138
+ (data) => data.informationBlock ?? null
1139
+ )
1111
1140
  return block ?? null
1112
1141
  }
1113
1142
 
@@ -563,6 +563,8 @@ export type InformationBlockConnection = {
563
563
  export type InformationBlockElement = {
564
564
  balanceType: Maybe<Scalars['String']['output']>;
565
565
  code: Maybe<Scalars['String']['output']>;
566
+ /** The element's documentation-role label — the catalog's authoritative value semantics (e.g. whether a percent driver is a growth rate or a rate-on-base fraction). None when the element carries no documentation label. */
567
+ documentation: Maybe<Scalars['String']['output']>;
566
568
  /** concept | abstract | axis | member | hypercube */
567
569
  elementType: Scalars['String']['output'];
568
570
  id: Scalars['String']['output'];
@@ -1625,6 +1627,8 @@ export type QueryInformationBlockArgs = {
1625
1627
  id: Scalars['ID']['input'];
1626
1628
  scenarioId?: InputMaybe<Scalars['String']['input']>;
1627
1629
  series?: Scalars['Boolean']['input'];
1630
+ seriesForecast?: InputMaybe<Scalars['Int']['input']>;
1631
+ seriesHistory?: InputMaybe<Scalars['Int']['input']>;
1628
1632
  };
1629
1633
  export type QueryInformationBlocksArgs = {
1630
1634
  blockType?: InputMaybe<Scalars['String']['input']>;
@@ -2929,6 +2933,164 @@ export type GetInformationBlockQuery = {
2929
2933
  };
2930
2934
  } | null;
2931
2935
  };
2936
+ export type GetInformationBlockWindowedQueryVariables = Exact<{
2937
+ id: Scalars['ID']['input'];
2938
+ scenarioId: InputMaybe<Scalars['String']['input']>;
2939
+ series?: Scalars['Boolean']['input'];
2940
+ seriesHistory: InputMaybe<Scalars['Int']['input']>;
2941
+ seriesForecast: InputMaybe<Scalars['Int']['input']>;
2942
+ }>;
2943
+ export type GetInformationBlockWindowedQuery = {
2944
+ informationBlock: {
2945
+ id: string;
2946
+ blockType: string;
2947
+ name: string;
2948
+ displayName: string;
2949
+ category: string;
2950
+ taxonomyId: string | null;
2951
+ taxonomyName: string | null;
2952
+ informationModel: {
2953
+ conceptArrangement: string | null;
2954
+ memberArrangement: string | null;
2955
+ };
2956
+ artifact: {
2957
+ topic: string | null;
2958
+ rendererNote: string | null;
2959
+ template: any | null;
2960
+ mechanics: any;
2961
+ };
2962
+ elements: Array<{
2963
+ id: string;
2964
+ qname: string | null;
2965
+ name: string;
2966
+ code: string | null;
2967
+ elementType: string;
2968
+ isAbstract: boolean;
2969
+ isMonetary: boolean;
2970
+ balanceType: string | null;
2971
+ periodType: string | null;
2972
+ }>;
2973
+ connections: Array<{
2974
+ id: string;
2975
+ fromElementId: string;
2976
+ toElementId: string;
2977
+ associationType: string;
2978
+ arcrole: string | null;
2979
+ orderValue: number | null;
2980
+ weight: number | null;
2981
+ }>;
2982
+ facts: Array<{
2983
+ id: string;
2984
+ elementId: string;
2985
+ value: number | null;
2986
+ textValue: string | null;
2987
+ factType: string;
2988
+ contentType: string | null;
2989
+ periodStart: any | null;
2990
+ periodEnd: any;
2991
+ periodType: string;
2992
+ unit: string;
2993
+ factScope: string;
2994
+ factSetId: string | null;
2995
+ }>;
2996
+ rules: Array<{
2997
+ id: string;
2998
+ ruleCategory: string;
2999
+ rulePattern: string | null;
3000
+ ruleCheckKind: string | null;
3001
+ ruleExpression: string;
3002
+ ruleMessage: string | null;
3003
+ ruleSeverity: string;
3004
+ ruleOrigin: string;
3005
+ ruleTarget: {
3006
+ targetKind: string;
3007
+ targetRefId: string;
3008
+ } | null;
3009
+ ruleVariables: Array<{
3010
+ variableName: string;
3011
+ variableQname: string | null;
3012
+ }>;
3013
+ }>;
3014
+ factSet: {
3015
+ id: string;
3016
+ structureId: string | null;
3017
+ periodStart: any | null;
3018
+ periodEnd: any;
3019
+ factsetType: string;
3020
+ entityId: string;
3021
+ reportId: string | null;
3022
+ scenarioId: string | null;
3023
+ provenance: any | null;
3024
+ } | null;
3025
+ verificationResults: Array<{
3026
+ id: string;
3027
+ ruleId: string;
3028
+ structureId: string | null;
3029
+ factSetId: string | null;
3030
+ status: string;
3031
+ message: string | null;
3032
+ periodStart: any | null;
3033
+ periodEnd: any | null;
3034
+ evaluatedAt: any | null;
3035
+ }>;
3036
+ verificationSummary: {
3037
+ total: number;
3038
+ passed: number;
3039
+ failed: number;
3040
+ errored: number;
3041
+ skipped: number;
3042
+ byCategory: Array<{
3043
+ category: string;
3044
+ total: number;
3045
+ passed: number;
3046
+ failed: number;
3047
+ errored: number;
3048
+ skipped: number;
3049
+ }>;
3050
+ } | null;
3051
+ view: {
3052
+ rendering: {
3053
+ unmappedCount: number;
3054
+ rows: Array<{
3055
+ elementId: string;
3056
+ elementQname: string | null;
3057
+ elementName: string;
3058
+ classification: string | null;
3059
+ balanceType: string | null;
3060
+ itemType: string | null;
3061
+ values: Array<number | null>;
3062
+ textValue: string | null;
3063
+ isSubtotal: boolean;
3064
+ depth: number;
3065
+ }>;
3066
+ periods: Array<{
3067
+ start: any;
3068
+ end: any;
3069
+ label: string | null;
3070
+ forecast: boolean | null;
3071
+ }>;
3072
+ validation: {
3073
+ passed: boolean;
3074
+ checks: Array<string>;
3075
+ failures: Array<string>;
3076
+ warnings: Array<string>;
3077
+ } | null;
3078
+ } | null;
3079
+ chart: {
3080
+ panels: Array<{
3081
+ label: string | null;
3082
+ itemType: string | null;
3083
+ kind: string;
3084
+ series: Array<{
3085
+ key: string;
3086
+ elementId: string;
3087
+ label: string;
3088
+ }>;
3089
+ }>;
3090
+ } | null;
3091
+ };
3092
+ } | null;
3093
+ };
2932
3094
  export type ListInformationBlocksQueryVariables = Exact<{
2933
3095
  blockType: InputMaybe<Scalars['String']['input']>;
2934
3096
  category: InputMaybe<Scalars['String']['input']>;
@@ -4037,6 +4199,7 @@ export declare const GetLedgerEventBlockDocument: DocumentNode<GetLedgerEventBlo
4037
4199
  export declare const ListLedgerEventBlocksDocument: DocumentNode<ListLedgerEventBlocksQuery, ListLedgerEventBlocksQueryVariables>;
4038
4200
  export declare const GetLedgerFiscalCalendarDocument: DocumentNode<GetLedgerFiscalCalendarQuery, GetLedgerFiscalCalendarQueryVariables>;
4039
4201
  export declare const GetInformationBlockDocument: DocumentNode<GetInformationBlockQuery, GetInformationBlockQueryVariables>;
4202
+ export declare const GetInformationBlockWindowedDocument: DocumentNode<GetInformationBlockWindowedQuery, GetInformationBlockWindowedQueryVariables>;
4040
4203
  export declare const ListInformationBlocksDocument: DocumentNode<ListInformationBlocksQuery, ListInformationBlocksQueryVariables>;
4041
4204
  export declare const GetLedgerMappedTrialBalanceDocument: DocumentNode<GetLedgerMappedTrialBalanceQuery, GetLedgerMappedTrialBalanceQueryVariables>;
4042
4205
  export declare const GetLedgerMappingDocument: DocumentNode<GetLedgerMappingQuery, GetLedgerMappingQueryVariables>;