@robosystems/client 0.5.9 → 0.5.11

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
 
@@ -1627,6 +1627,8 @@ export type QueryInformationBlockArgs = {
1627
1627
  id: Scalars['ID']['input'];
1628
1628
  scenarioId?: InputMaybe<Scalars['String']['input']>;
1629
1629
  series?: Scalars['Boolean']['input'];
1630
+ seriesForecast?: InputMaybe<Scalars['Int']['input']>;
1631
+ seriesHistory?: InputMaybe<Scalars['Int']['input']>;
1630
1632
  };
1631
1633
  export type QueryInformationBlocksArgs = {
1632
1634
  blockType?: InputMaybe<Scalars['String']['input']>;
@@ -2931,6 +2933,164 @@ export type GetInformationBlockQuery = {
2931
2933
  };
2932
2934
  } | null;
2933
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
+ };
2934
3094
  export type ListInformationBlocksQueryVariables = Exact<{
2935
3095
  blockType: InputMaybe<Scalars['String']['input']>;
2936
3096
  category: InputMaybe<Scalars['String']['input']>;
@@ -4039,6 +4199,7 @@ export declare const GetLedgerEventBlockDocument: DocumentNode<GetLedgerEventBlo
4039
4199
  export declare const ListLedgerEventBlocksDocument: DocumentNode<ListLedgerEventBlocksQuery, ListLedgerEventBlocksQueryVariables>;
4040
4200
  export declare const GetLedgerFiscalCalendarDocument: DocumentNode<GetLedgerFiscalCalendarQuery, GetLedgerFiscalCalendarQueryVariables>;
4041
4201
  export declare const GetInformationBlockDocument: DocumentNode<GetInformationBlockQuery, GetInformationBlockQueryVariables>;
4202
+ export declare const GetInformationBlockWindowedDocument: DocumentNode<GetInformationBlockWindowedQuery, GetInformationBlockWindowedQueryVariables>;
4042
4203
  export declare const ListInformationBlocksDocument: DocumentNode<ListInformationBlocksQuery, ListInformationBlocksQueryVariables>;
4043
4204
  export declare const GetLedgerMappedTrialBalanceDocument: DocumentNode<GetLedgerMappedTrialBalanceQuery, GetLedgerMappedTrialBalanceQueryVariables>;
4044
4205
  export declare const GetLedgerMappingDocument: DocumentNode<GetLedgerMappingQuery, GetLedgerMappingQueryVariables>;