@infomaximum/widget-sdk 7.0.0-2602.0 → 7.0.0-2602.2

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/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [7.0.0-2602.2](https://github.com/Infomaximum/widget-sdk/compare/v7.0.0-2602.1...v7.0.0-2602.2) (2026-05-13)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * исправлен порядок схем в union ActionSchema, влиял на парсинг по схеме ([052ade9](https://github.com/Infomaximum/widget-sdk/commit/052ade92815ecaa0a895a993540e0e184c880317))
11
+
12
+ ## [7.0.0-2602.1](https://github.com/Infomaximum/widget-sdk/compare/v7.0.0-2602.0...v7.0.0-2602.1) (2026-04-15)
13
+
14
+
15
+ ### Features
16
+
17
+ * добавлена вспомогательная функция mapValues (для внутреннего использования) ([5e2cfba](https://github.com/Infomaximum/widget-sdk/commit/5e2cfba26963560f9a0aac7b9b9e9de5982fa154))
18
+ * добавлено кеширование результатов вызова фабрик схем ([efee707](https://github.com/Infomaximum/widget-sdk/commit/efee707d9f6c946ce07144b77f61e88d2b3be446))
19
+
5
20
  ## [7.0.0-2602.0](https://github.com/Infomaximum/widget-sdk/compare/v7.0.0-12...v7.0.0-2602.0) (2026-04-06)
6
21
 
7
22
 
package/dist/index.d.ts CHANGED
@@ -134,6 +134,16 @@ declare class VersionedSchemaFactory {
134
134
  private static findClosestVersion;
135
135
  /** Добавляет метаданные к схеме (curried) */
136
136
  private static annotateSchema;
137
+ /**
138
+ * Оборачивает фабрику схемы, добавляя кеширование результата.
139
+ *
140
+ * Предполагается, что `z` — синглтон (один экземпляр на всё приложение),
141
+ * поэтому достаточно закешировать единственный результат.
142
+ *
143
+ * Вызовы с дополнительными аргументами (restArgs) не кешируются,
144
+ * так как результат может зависеть от их значений.
145
+ */
146
+ private static withCache;
137
147
  /** Построить версионированную схему */
138
148
  static build<THistory extends Record<string, ISchemaFactory>, TLatestVersion extends keyof THistory>({ history, latestVersion, meta, }: IVersionedSchemaBuildParams<THistory, TLatestVersion>): TVersionedSchema<THistory, TLatestVersion>;
139
149
  }
@@ -14916,15 +14926,14 @@ declare const ViewActionSchema: TVersionedSchema<{
14916
14926
  }, zod_v4_core.$strip>;
14917
14927
  }, "17">;
14918
14928
  declare const ActionSchema: TVersionedSchema<{
14919
- "17": (z: TZod) => zod.ZodUnion<readonly [zod.ZodUnion<readonly [zod.ZodObject<{
14929
+ "17": (z: TZod) => zod.ZodUnion<readonly [zod.ZodObject<{
14920
14930
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
14921
14931
  name: zod.ZodString;
14922
- type: zod.ZodLiteral<EActionTypes.OPEN_URL>;
14923
- url: zod.ZodString;
14924
- newWindow: zod.ZodDefault<zod.ZodBoolean>;
14925
- variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
14932
+ parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
14926
14933
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
14927
14934
  name: zod.ZodString;
14935
+ displayName: zod.ZodDefault<zod.ZodString>;
14936
+ isHidden: zod.ZodDefault<zod.ZodBoolean>;
14928
14937
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
14929
14938
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.COLUMN>;
14930
14939
  tableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
@@ -14938,17 +14947,6 @@ declare const ActionSchema: TVersionedSchema<{
14938
14947
  formula: zod.ZodDefault<zod.ZodString>;
14939
14948
  considerFilters: zod.ZodDefault<zod.ZodBoolean>;
14940
14949
  dbDataType: zod.ZodOptional<zod.ZodString>;
14941
- }, zod_v4_core.$strip>, zod.ZodObject<{
14942
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.EVENT>;
14943
- }, zod_v4_core.$strip>, zod.ZodObject<{
14944
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.START_EVENT>;
14945
- }, zod_v4_core.$strip>, zod.ZodObject<{
14946
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.FINISH_EVENT>;
14947
- }, zod_v4_core.$strip>, zod.ZodObject<{
14948
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
14949
- formula: zod.ZodDefault<zod.ZodString>;
14950
- considerFilters: zod.ZodDefault<zod.ZodBoolean>;
14951
- dbDataType: zod.ZodOptional<zod.ZodString>;
14952
14950
  }, zod_v4_core.$strip>, zod.ZodObject<{
14953
14951
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.MANUALLY>;
14954
14952
  description: zod.ZodDefault<zod.ZodString>;
@@ -15011,18 +15009,35 @@ declare const ActionSchema: TVersionedSchema<{
15011
15009
  insertAnyValues: zod.ZodDefault<zod.ZodBoolean>;
15012
15010
  validation: zod.ZodDefault<zod.ZodString>;
15013
15011
  acceptEmptyValue: zod.ZodDefault<zod.ZodBoolean>;
15012
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15013
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
15014
+ formula: zod.ZodDefault<zod.ZodString>;
15015
+ considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15016
+ dbDataType: zod.ZodOptional<zod.ZodString>;
15014
15017
  }, zod_v4_core.$strip>, zod.ZodObject<{
15015
15018
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.DATA_MODEL>;
15016
15019
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15017
15020
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15018
15021
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15019
- }, zod_v4_core.$strip>, zod.ZodObject<{
15020
- id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15021
- name: zod.ZodString;
15022
15022
  type: zod.ZodLiteral<EActionTypes.EXECUTE_SCRIPT>;
15023
- parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15023
+ scriptKey: zod.ZodString;
15024
+ autoUpdate: zod.ZodDefault<zod.ZodEnum<typeof EAutoUpdateMode>>;
15025
+ description: zod.ZodDefault<zod.ZodString>;
15026
+ hideInactiveButton: zod.ZodDefault<zod.ZodBoolean>;
15027
+ hint: zod.ZodDefault<zod.ZodString>;
15028
+ activateCondition: zod.ZodDefault<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15029
+ mode: zod.ZodLiteral<EActivateConditionMode.FORMULA>;
15030
+ formula: zod.ZodDefault<zod.ZodString>;
15031
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15032
+ mode: zod.ZodLiteral<EActivateConditionMode.VARIABLE>;
15033
+ variableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15034
+ variableValue: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15035
+ }, zod_v4_core.$strip>], "mode">>;
15036
+ variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15024
15037
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15025
15038
  name: zod.ZodString;
15039
+ displayName: zod.ZodDefault<zod.ZodString>;
15040
+ isHidden: zod.ZodDefault<zod.ZodBoolean>;
15026
15041
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15027
15042
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.COLUMN>;
15028
15043
  tableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
@@ -15036,17 +15051,6 @@ declare const ActionSchema: TVersionedSchema<{
15036
15051
  formula: zod.ZodDefault<zod.ZodString>;
15037
15052
  considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15038
15053
  dbDataType: zod.ZodOptional<zod.ZodString>;
15039
- }, zod_v4_core.$strip>, zod.ZodObject<{
15040
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.EVENT>;
15041
- }, zod_v4_core.$strip>, zod.ZodObject<{
15042
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.START_EVENT>;
15043
- }, zod_v4_core.$strip>, zod.ZodObject<{
15044
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.FINISH_EVENT>;
15045
- }, zod_v4_core.$strip>, zod.ZodObject<{
15046
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
15047
- formula: zod.ZodDefault<zod.ZodString>;
15048
- considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15049
- dbDataType: zod.ZodOptional<zod.ZodString>;
15050
15054
  }, zod_v4_core.$strip>, zod.ZodObject<{
15051
15055
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.MANUALLY>;
15052
15056
  description: zod.ZodDefault<zod.ZodString>;
@@ -15109,23 +15113,22 @@ declare const ActionSchema: TVersionedSchema<{
15109
15113
  insertAnyValues: zod.ZodDefault<zod.ZodBoolean>;
15110
15114
  validation: zod.ZodDefault<zod.ZodString>;
15111
15115
  acceptEmptyValue: zod.ZodDefault<zod.ZodBoolean>;
15116
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15117
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
15118
+ formula: zod.ZodDefault<zod.ZodString>;
15119
+ considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15120
+ dbDataType: zod.ZodOptional<zod.ZodString>;
15112
15121
  }, zod_v4_core.$strip>, zod.ZodObject<{
15113
15122
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.DATA_MODEL>;
15114
15123
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15115
15124
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15116
15125
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15117
- scriptKey: zod.ZodString;
15118
- autoUpdate: zod.ZodDefault<zod.ZodEnum<typeof EAutoUpdateMode>>;
15119
- hideInactiveButton: zod.ZodDefault<zod.ZodBoolean>;
15120
- activateCondition: zod.ZodDefault<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15121
- mode: zod.ZodLiteral<EActivateConditionMode.FORMULA>;
15122
- formula: zod.ZodDefault<zod.ZodString>;
15123
- }, zod_v4_core.$strip>, zod.ZodObject<{
15124
- mode: zod.ZodLiteral<EActivateConditionMode.VARIABLE>;
15125
- variableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15126
- variableValue: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15127
- }, zod_v4_core.$strip>], "mode">>;
15128
- hint: zod.ZodDefault<zod.ZodString>;
15126
+ }, zod_v4_core.$strip>, zod.ZodUnion<readonly [zod.ZodObject<{
15127
+ id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15128
+ name: zod.ZodString;
15129
+ type: zod.ZodLiteral<EActionTypes.OPEN_URL>;
15130
+ url: zod.ZodString;
15131
+ newWindow: zod.ZodDefault<zod.ZodBoolean>;
15129
15132
  variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15130
15133
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15131
15134
  name: zod.ZodString;
@@ -15223,8 +15226,8 @@ declare const ActionSchema: TVersionedSchema<{
15223
15226
  }, zod_v4_core.$strip>, zod.ZodObject<{
15224
15227
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15225
15228
  name: zod.ZodString;
15226
- type: zod.ZodLiteral<EActionTypes.UPDATE_VARIABLE>;
15227
- variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15229
+ type: zod.ZodLiteral<EActionTypes.EXECUTE_SCRIPT>;
15230
+ parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15228
15231
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15229
15232
  name: zod.ZodString;
15230
15233
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
@@ -15318,10 +15321,18 @@ declare const ActionSchema: TVersionedSchema<{
15318
15321
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15319
15322
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15320
15323
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15321
- }, zod_v4_core.$strip>, zod.ZodIntersection<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15322
- id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15323
- name: zod.ZodString;
15324
- type: zod.ZodLiteral<EActionTypes.OPEN_VIEW>;
15324
+ scriptKey: zod.ZodString;
15325
+ autoUpdate: zod.ZodDefault<zod.ZodEnum<typeof EAutoUpdateMode>>;
15326
+ hideInactiveButton: zod.ZodDefault<zod.ZodBoolean>;
15327
+ activateCondition: zod.ZodDefault<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15328
+ mode: zod.ZodLiteral<EActivateConditionMode.FORMULA>;
15329
+ formula: zod.ZodDefault<zod.ZodString>;
15330
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15331
+ mode: zod.ZodLiteral<EActivateConditionMode.VARIABLE>;
15332
+ variableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15333
+ variableValue: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15334
+ }, zod_v4_core.$strip>], "mode">>;
15335
+ hint: zod.ZodDefault<zod.ZodString>;
15325
15336
  variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15326
15337
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15327
15338
  name: zod.ZodString;
@@ -15416,9 +15427,11 @@ declare const ActionSchema: TVersionedSchema<{
15416
15427
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15417
15428
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15418
15429
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15419
- mode: zod.ZodLiteral<EViewMode.GENERATED_BY_SCRIPT>;
15420
- scriptKey: zod.ZodOptional<zod.ZodString>;
15421
- parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15430
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15431
+ id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15432
+ name: zod.ZodString;
15433
+ type: zod.ZodLiteral<EActionTypes.UPDATE_VARIABLE>;
15434
+ variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15422
15435
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15423
15436
  name: zod.ZodString;
15424
15437
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
@@ -15512,8 +15525,7 @@ declare const ActionSchema: TVersionedSchema<{
15512
15525
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15513
15526
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15514
15527
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15515
- displayName: zod.ZodDefault<zod.ZodString>;
15516
- }, zod_v4_core.$strip>, zod.ZodObject<{
15528
+ }, zod_v4_core.$strip>, zod.ZodIntersection<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15517
15529
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15518
15530
  name: zod.ZodString;
15519
15531
  type: zod.ZodLiteral<EActionTypes.OPEN_VIEW>;
@@ -15611,8 +15623,8 @@ declare const ActionSchema: TVersionedSchema<{
15611
15623
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15612
15624
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15613
15625
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15614
- mode: zod.ZodLiteral<EViewMode.EXISTED_VIEW>;
15615
- viewKey: zod.ZodOptional<zod.ZodString>;
15626
+ mode: zod.ZodLiteral<EViewMode.GENERATED_BY_SCRIPT>;
15627
+ scriptKey: zod.ZodOptional<zod.ZodString>;
15616
15628
  parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15617
15629
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15618
15630
  name: zod.ZodString;
@@ -15707,6 +15719,7 @@ declare const ActionSchema: TVersionedSchema<{
15707
15719
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15708
15720
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15709
15721
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15722
+ displayName: zod.ZodDefault<zod.ZodString>;
15710
15723
  }, zod_v4_core.$strip>, zod.ZodObject<{
15711
15724
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15712
15725
  name: zod.ZodString;
@@ -15805,29 +15818,9 @@ declare const ActionSchema: TVersionedSchema<{
15805
15818
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15806
15819
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15807
15820
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15808
- mode: zod.ZodLiteral<EViewMode.EMPTY>;
15809
- placeholderName: zod.ZodOptional<zod.ZodString>;
15810
- openIn: zod.ZodLiteral<EViewOpenIn.PLACEHOLDER>;
15811
- }, zod_v4_core.$strip>], "mode">, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15812
- openIn: zod.ZodLiteral<EViewOpenIn.DRAWER_WINDOW>;
15813
- alignment: zod.ZodDefault<zod.ZodEnum<typeof EDrawerPlacement>>;
15814
- inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
15815
- }, zod_v4_core.$strip>, zod.ZodObject<{
15816
- openIn: zod.ZodLiteral<EViewOpenIn.PLACEHOLDER>;
15817
- placeholderName: zod.ZodOptional<zod.ZodString>;
15818
- }, zod_v4_core.$strip>, zod.ZodObject<{
15819
- openIn: zod.ZodLiteral<EViewOpenIn.MODAL_WINDOW>;
15820
- positionByClick: zod.ZodDefault<zod.ZodBoolean>;
15821
- inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
15822
- }, zod_v4_core.$strip>, zod.ZodObject<{
15823
- openIn: zod.ZodLiteral<EViewOpenIn.WINDOW>;
15824
- newWindow: zod.ZodDefault<zod.ZodBoolean>;
15825
- inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
15826
- }, zod_v4_core.$strip>], "openIn">>, zod.ZodObject<{
15827
- id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15828
- name: zod.ZodString;
15829
- type: zod.ZodLiteral<EActionTypes.DRILL_DOWN>;
15830
- variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15821
+ mode: zod.ZodLiteral<EViewMode.EXISTED_VIEW>;
15822
+ viewKey: zod.ZodOptional<zod.ZodString>;
15823
+ parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15831
15824
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15832
15825
  name: zod.ZodString;
15833
15826
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
@@ -15921,14 +15914,13 @@ declare const ActionSchema: TVersionedSchema<{
15921
15914
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15922
15915
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15923
15916
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15924
- }, zod_v4_core.$strip>]>, zod.ZodObject<{
15917
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15925
15918
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15926
15919
  name: zod.ZodString;
15927
- parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15920
+ type: zod.ZodLiteral<EActionTypes.OPEN_VIEW>;
15921
+ variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15928
15922
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15929
15923
  name: zod.ZodString;
15930
- displayName: zod.ZodDefault<zod.ZodString>;
15931
- isHidden: zod.ZodDefault<zod.ZodBoolean>;
15932
15924
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15933
15925
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.COLUMN>;
15934
15926
  tableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
@@ -15942,6 +15934,17 @@ declare const ActionSchema: TVersionedSchema<{
15942
15934
  formula: zod.ZodDefault<zod.ZodString>;
15943
15935
  considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15944
15936
  dbDataType: zod.ZodOptional<zod.ZodString>;
15937
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15938
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.EVENT>;
15939
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15940
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.START_EVENT>;
15941
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15942
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.FINISH_EVENT>;
15943
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15944
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
15945
+ formula: zod.ZodDefault<zod.ZodString>;
15946
+ considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15947
+ dbDataType: zod.ZodOptional<zod.ZodString>;
15945
15948
  }, zod_v4_core.$strip>, zod.ZodObject<{
15946
15949
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.MANUALLY>;
15947
15950
  description: zod.ZodDefault<zod.ZodString>;
@@ -16004,35 +16007,36 @@ declare const ActionSchema: TVersionedSchema<{
16004
16007
  insertAnyValues: zod.ZodDefault<zod.ZodBoolean>;
16005
16008
  validation: zod.ZodDefault<zod.ZodString>;
16006
16009
  acceptEmptyValue: zod.ZodDefault<zod.ZodBoolean>;
16007
- }, zod_v4_core.$strip>, zod.ZodObject<{
16008
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
16009
- formula: zod.ZodDefault<zod.ZodString>;
16010
- considerFilters: zod.ZodDefault<zod.ZodBoolean>;
16011
- dbDataType: zod.ZodOptional<zod.ZodString>;
16012
16010
  }, zod_v4_core.$strip>, zod.ZodObject<{
16013
16011
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.DATA_MODEL>;
16014
16012
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
16015
16013
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
16016
16014
  }, zod_v4_core.$strip>], "inputMethod">>>>;
16017
- type: zod.ZodLiteral<EActionTypes.EXECUTE_SCRIPT>;
16018
- scriptKey: zod.ZodString;
16019
- autoUpdate: zod.ZodDefault<zod.ZodEnum<typeof EAutoUpdateMode>>;
16020
- description: zod.ZodDefault<zod.ZodString>;
16021
- hideInactiveButton: zod.ZodDefault<zod.ZodBoolean>;
16022
- hint: zod.ZodDefault<zod.ZodString>;
16023
- activateCondition: zod.ZodDefault<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
16024
- mode: zod.ZodLiteral<EActivateConditionMode.FORMULA>;
16025
- formula: zod.ZodDefault<zod.ZodString>;
16026
- }, zod_v4_core.$strip>, zod.ZodObject<{
16027
- mode: zod.ZodLiteral<EActivateConditionMode.VARIABLE>;
16028
- variableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
16029
- variableValue: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
16030
- }, zod_v4_core.$strip>], "mode">>;
16015
+ mode: zod.ZodLiteral<EViewMode.EMPTY>;
16016
+ placeholderName: zod.ZodOptional<zod.ZodString>;
16017
+ openIn: zod.ZodLiteral<EViewOpenIn.PLACEHOLDER>;
16018
+ }, zod_v4_core.$strip>], "mode">, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
16019
+ openIn: zod.ZodLiteral<EViewOpenIn.DRAWER_WINDOW>;
16020
+ alignment: zod.ZodDefault<zod.ZodEnum<typeof EDrawerPlacement>>;
16021
+ inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
16022
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16023
+ openIn: zod.ZodLiteral<EViewOpenIn.PLACEHOLDER>;
16024
+ placeholderName: zod.ZodOptional<zod.ZodString>;
16025
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16026
+ openIn: zod.ZodLiteral<EViewOpenIn.MODAL_WINDOW>;
16027
+ positionByClick: zod.ZodDefault<zod.ZodBoolean>;
16028
+ inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
16029
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16030
+ openIn: zod.ZodLiteral<EViewOpenIn.WINDOW>;
16031
+ newWindow: zod.ZodDefault<zod.ZodBoolean>;
16032
+ inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
16033
+ }, zod_v4_core.$strip>], "openIn">>, zod.ZodObject<{
16034
+ id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
16035
+ name: zod.ZodString;
16036
+ type: zod.ZodLiteral<EActionTypes.DRILL_DOWN>;
16031
16037
  variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
16032
16038
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
16033
16039
  name: zod.ZodString;
16034
- displayName: zod.ZodDefault<zod.ZodString>;
16035
- isHidden: zod.ZodDefault<zod.ZodBoolean>;
16036
16040
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
16037
16041
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.COLUMN>;
16038
16042
  tableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
@@ -16046,6 +16050,17 @@ declare const ActionSchema: TVersionedSchema<{
16046
16050
  formula: zod.ZodDefault<zod.ZodString>;
16047
16051
  considerFilters: zod.ZodDefault<zod.ZodBoolean>;
16048
16052
  dbDataType: zod.ZodOptional<zod.ZodString>;
16053
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16054
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.EVENT>;
16055
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16056
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.START_EVENT>;
16057
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16058
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.FINISH_EVENT>;
16059
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16060
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
16061
+ formula: zod.ZodDefault<zod.ZodString>;
16062
+ considerFilters: zod.ZodDefault<zod.ZodBoolean>;
16063
+ dbDataType: zod.ZodOptional<zod.ZodString>;
16049
16064
  }, zod_v4_core.$strip>, zod.ZodObject<{
16050
16065
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.MANUALLY>;
16051
16066
  description: zod.ZodDefault<zod.ZodString>;
@@ -16108,17 +16123,12 @@ declare const ActionSchema: TVersionedSchema<{
16108
16123
  insertAnyValues: zod.ZodDefault<zod.ZodBoolean>;
16109
16124
  validation: zod.ZodDefault<zod.ZodString>;
16110
16125
  acceptEmptyValue: zod.ZodDefault<zod.ZodBoolean>;
16111
- }, zod_v4_core.$strip>, zod.ZodObject<{
16112
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
16113
- formula: zod.ZodDefault<zod.ZodString>;
16114
- considerFilters: zod.ZodDefault<zod.ZodBoolean>;
16115
- dbDataType: zod.ZodOptional<zod.ZodString>;
16116
16126
  }, zod_v4_core.$strip>, zod.ZodObject<{
16117
16127
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.DATA_MODEL>;
16118
16128
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
16119
16129
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
16120
16130
  }, zod_v4_core.$strip>], "inputMethod">>>>;
16121
- }, zod_v4_core.$strip>, zod.ZodObject<{
16131
+ }, zod_v4_core.$strip>]>, zod.ZodObject<{
16122
16132
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
16123
16133
  name: zod.ZodString;
16124
16134
  buttonType: zod.ZodDefault<zod.ZodEnum<typeof EActionButtonsTypes>>;
package/dist/index.esm.js CHANGED
@@ -221,6 +221,12 @@ function memoize(fn) {
221
221
  return result;
222
222
  };
223
223
  }
224
+ function mapValues(obj, fn) {
225
+ return Object.fromEntries(Object.entries(obj).map(function (_a) {
226
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
227
+ return [key, fn(value, key)];
228
+ }));
229
+ }
224
230
  /** Добавляет свойства к функции */
225
231
  function assignPropsToFn(fn, props) {
226
232
  return Object.assign(fn, props);
@@ -265,6 +271,31 @@ var VersionedSchemaFactory = /** @class */ (function () {
265
271
  });
266
272
  };
267
273
  };
274
+ /**
275
+ * Оборачивает фабрику схемы, добавляя кеширование результата.
276
+ *
277
+ * Предполагается, что `z` — синглтон (один экземпляр на всё приложение),
278
+ * поэтому достаточно закешировать единственный результат.
279
+ *
280
+ * Вызовы с дополнительными аргументами (restArgs) не кешируются,
281
+ * так как результат может зависеть от их значений.
282
+ */
283
+ VersionedSchemaFactory.withCache = function (schemaFactory) {
284
+ var cached;
285
+ return (function (z) {
286
+ var restArgs = [];
287
+ for (var _i = 1; _i < arguments.length; _i++) {
288
+ restArgs[_i - 1] = arguments[_i];
289
+ }
290
+ if (restArgs.length > 0) {
291
+ return schemaFactory.apply(void 0, __spreadArray([z], __read(restArgs), false));
292
+ }
293
+ if (cached === undefined) {
294
+ cached = schemaFactory(z);
295
+ }
296
+ return cached;
297
+ });
298
+ };
268
299
  /** Построить версионированную схему */
269
300
  VersionedSchemaFactory.build = function (_a) {
270
301
  var _this = this;
@@ -273,20 +304,23 @@ var VersionedSchemaFactory = /** @class */ (function () {
273
304
  if (!latestFactory) {
274
305
  throw new Error("Не найдено записи в 'history' по 'latestVersion'");
275
306
  }
276
- var map = this.annotateSchema(meta);
277
- var schema = assignPropsToFn(map(latestFactory), {
307
+ var annotate = this.annotateSchema(meta);
308
+ var preparedHistory = mapValues(history, function (factory) {
309
+ return _this.withCache(annotate(factory));
310
+ });
311
+ var schema = assignPropsToFn(preparedHistory[latestVersion], {
278
312
  forVersion: function (targetVersion) {
279
313
  if (targetVersion === null || targetVersion === undefined) {
280
- return map(latestFactory);
314
+ return preparedHistory[latestVersion];
281
315
  }
282
- if (targetVersion in history) {
283
- return map(history[targetVersion]);
316
+ if (targetVersion in preparedHistory) {
317
+ return preparedHistory[targetVersion];
284
318
  }
285
- var closestVersion = _this.findClosestVersion(Object.keys(history), targetVersion, VersionedSchemaFactory.compareVersions);
286
- if (closestVersion === undefined || !(closestVersion in history)) {
319
+ var closestVersion = _this.findClosestVersion(Object.keys(preparedHistory), targetVersion, VersionedSchemaFactory.compareVersions);
320
+ if (closestVersion === undefined || !(closestVersion in preparedHistory)) {
287
321
  throw new Error("\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u0435\u0439 \u0441\u0445\u0435\u043C\u044B \u0434\u043B\u044F \u0432\u0435\u0440\u0441\u0438\u0438 '".concat(targetVersion, "'"));
288
322
  }
289
- return map(history[closestVersion]);
323
+ return preparedHistory[closestVersion];
290
324
  },
291
325
  });
292
326
  return schema;
@@ -1558,8 +1592,11 @@ var ActionSchema = SchemaRegistry.define({
1558
1592
  history: {
1559
1593
  "17": function (z) {
1560
1594
  return z.union([
1561
- ActionsOnClickSchema.forVersion("17")(z),
1595
+ /* Изменение порядка схем связано с отсутствием strict
1596
+ Strict будет добавлен в BI-16355
1597
+ */
1562
1598
  WidgetActionSchema.forVersion("17")(z),
1599
+ ActionsOnClickSchema.forVersion("17")(z),
1563
1600
  ViewActionSchema.forVersion("17")(z),
1564
1601
  ]);
1565
1602
  },
package/dist/index.js CHANGED
@@ -222,6 +222,12 @@ function memoize(fn) {
222
222
  return result;
223
223
  };
224
224
  }
225
+ function mapValues(obj, fn) {
226
+ return Object.fromEntries(Object.entries(obj).map(function (_a) {
227
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
228
+ return [key, fn(value, key)];
229
+ }));
230
+ }
225
231
  /** Добавляет свойства к функции */
226
232
  function assignPropsToFn(fn, props) {
227
233
  return Object.assign(fn, props);
@@ -266,6 +272,31 @@ var VersionedSchemaFactory = /** @class */ (function () {
266
272
  });
267
273
  };
268
274
  };
275
+ /**
276
+ * Оборачивает фабрику схемы, добавляя кеширование результата.
277
+ *
278
+ * Предполагается, что `z` — синглтон (один экземпляр на всё приложение),
279
+ * поэтому достаточно закешировать единственный результат.
280
+ *
281
+ * Вызовы с дополнительными аргументами (restArgs) не кешируются,
282
+ * так как результат может зависеть от их значений.
283
+ */
284
+ VersionedSchemaFactory.withCache = function (schemaFactory) {
285
+ var cached;
286
+ return (function (z) {
287
+ var restArgs = [];
288
+ for (var _i = 1; _i < arguments.length; _i++) {
289
+ restArgs[_i - 1] = arguments[_i];
290
+ }
291
+ if (restArgs.length > 0) {
292
+ return schemaFactory.apply(void 0, __spreadArray([z], __read(restArgs), false));
293
+ }
294
+ if (cached === undefined) {
295
+ cached = schemaFactory(z);
296
+ }
297
+ return cached;
298
+ });
299
+ };
269
300
  /** Построить версионированную схему */
270
301
  VersionedSchemaFactory.build = function (_a) {
271
302
  var _this = this;
@@ -274,20 +305,23 @@ var VersionedSchemaFactory = /** @class */ (function () {
274
305
  if (!latestFactory) {
275
306
  throw new Error("Не найдено записи в 'history' по 'latestVersion'");
276
307
  }
277
- var map = this.annotateSchema(meta);
278
- var schema = assignPropsToFn(map(latestFactory), {
308
+ var annotate = this.annotateSchema(meta);
309
+ var preparedHistory = mapValues(history, function (factory) {
310
+ return _this.withCache(annotate(factory));
311
+ });
312
+ var schema = assignPropsToFn(preparedHistory[latestVersion], {
279
313
  forVersion: function (targetVersion) {
280
314
  if (targetVersion === null || targetVersion === undefined) {
281
- return map(latestFactory);
315
+ return preparedHistory[latestVersion];
282
316
  }
283
- if (targetVersion in history) {
284
- return map(history[targetVersion]);
317
+ if (targetVersion in preparedHistory) {
318
+ return preparedHistory[targetVersion];
285
319
  }
286
- var closestVersion = _this.findClosestVersion(Object.keys(history), targetVersion, VersionedSchemaFactory.compareVersions);
287
- if (closestVersion === undefined || !(closestVersion in history)) {
320
+ var closestVersion = _this.findClosestVersion(Object.keys(preparedHistory), targetVersion, VersionedSchemaFactory.compareVersions);
321
+ if (closestVersion === undefined || !(closestVersion in preparedHistory)) {
288
322
  throw new Error("\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u0435\u0439 \u0441\u0445\u0435\u043C\u044B \u0434\u043B\u044F \u0432\u0435\u0440\u0441\u0438\u0438 '".concat(targetVersion, "'"));
289
323
  }
290
- return map(history[closestVersion]);
324
+ return preparedHistory[closestVersion];
291
325
  },
292
326
  });
293
327
  return schema;
@@ -1559,8 +1593,11 @@ var ActionSchema = SchemaRegistry.define({
1559
1593
  history: {
1560
1594
  "17": function (z) {
1561
1595
  return z.union([
1562
- ActionsOnClickSchema.forVersion("17")(z),
1596
+ /* Изменение порядка схем связано с отсутствием strict
1597
+ Strict будет добавлен в BI-16355
1598
+ */
1563
1599
  WidgetActionSchema.forVersion("17")(z),
1600
+ ActionsOnClickSchema.forVersion("17")(z),
1564
1601
  ViewActionSchema.forVersion("17")(z),
1565
1602
  ]);
1566
1603
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infomaximum/widget-sdk",
3
- "version": "7.0.0-2602.0",
3
+ "version": "7.0.0-2602.2",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",