@infomaximum/widget-sdk 7.0.0-2603.0 → 7.0.0-2603.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-2603.2](https://github.com/Infomaximum/widget-sdk/compare/v7.0.0-2603.1...v7.0.0-2603.2) (2026-05-13)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * исправлен порядок схем в union ActionSchema, влиял на парсинг по схеме ([24cd4be](https://github.com/Infomaximum/widget-sdk/commit/24cd4be69ddc788496501318fa0328053d4b4ee2))
11
+
12
+ ## [7.0.0-2603.1](https://github.com/Infomaximum/widget-sdk/compare/v7.0.0-2603.0...v7.0.0-2603.1) (2026-04-15)
13
+
14
+
15
+ ### Features
16
+
17
+ * добавлена вспомогательная функция mapValues (для внутреннего использования) ([6673ff9](https://github.com/Infomaximum/widget-sdk/commit/6673ff97aece9e50a831a1b96540f03de7f0c354))
18
+ * добавлено кеширование результатов вызова фабрик схем ([23698e3](https://github.com/Infomaximum/widget-sdk/commit/23698e3c53924dc41efd2d56c96c0a234217f79b))
19
+
5
20
  ## [7.0.0-2603.0](https://github.com/Infomaximum/widget-sdk/compare/v7.0.0-14...v7.0.0-2603.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
  }
@@ -14931,15 +14941,14 @@ declare const ViewActionSchema: TVersionedSchema<{
14931
14941
  }, zod_v4_core.$strip>;
14932
14942
  }, "17">;
14933
14943
  declare const ActionSchema: TVersionedSchema<{
14934
- "17": (z: TZod) => zod.ZodUnion<readonly [zod.ZodUnion<readonly [zod.ZodObject<{
14944
+ "17": (z: TZod) => zod.ZodUnion<readonly [zod.ZodObject<{
14935
14945
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
14936
14946
  name: zod.ZodString;
14937
- type: zod.ZodLiteral<EActionTypes.OPEN_URL>;
14938
- url: zod.ZodString;
14939
- newWindow: zod.ZodDefault<zod.ZodBoolean>;
14940
- variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
14947
+ parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
14941
14948
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
14942
14949
  name: zod.ZodString;
14950
+ displayName: zod.ZodDefault<zod.ZodString>;
14951
+ isHidden: zod.ZodDefault<zod.ZodBoolean>;
14943
14952
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
14944
14953
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.COLUMN>;
14945
14954
  tableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
@@ -14953,17 +14962,6 @@ declare const ActionSchema: TVersionedSchema<{
14953
14962
  formula: zod.ZodDefault<zod.ZodString>;
14954
14963
  considerFilters: zod.ZodDefault<zod.ZodBoolean>;
14955
14964
  dbDataType: zod.ZodOptional<zod.ZodString>;
14956
- }, zod_v4_core.$strip>, zod.ZodObject<{
14957
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.EVENT>;
14958
- }, zod_v4_core.$strip>, zod.ZodObject<{
14959
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.START_EVENT>;
14960
- }, zod_v4_core.$strip>, zod.ZodObject<{
14961
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.FINISH_EVENT>;
14962
- }, zod_v4_core.$strip>, zod.ZodObject<{
14963
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
14964
- formula: zod.ZodDefault<zod.ZodString>;
14965
- considerFilters: zod.ZodDefault<zod.ZodBoolean>;
14966
- dbDataType: zod.ZodOptional<zod.ZodString>;
14967
14965
  }, zod_v4_core.$strip>, zod.ZodObject<{
14968
14966
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.MANUALLY>;
14969
14967
  description: zod.ZodDefault<zod.ZodString>;
@@ -15026,18 +15024,35 @@ declare const ActionSchema: TVersionedSchema<{
15026
15024
  insertAnyValues: zod.ZodDefault<zod.ZodBoolean>;
15027
15025
  validation: zod.ZodDefault<zod.ZodString>;
15028
15026
  acceptEmptyValue: zod.ZodDefault<zod.ZodBoolean>;
15027
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15028
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
15029
+ formula: zod.ZodDefault<zod.ZodString>;
15030
+ considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15031
+ dbDataType: zod.ZodOptional<zod.ZodString>;
15029
15032
  }, zod_v4_core.$strip>, zod.ZodObject<{
15030
15033
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.DATA_MODEL>;
15031
15034
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15032
15035
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15033
15036
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15034
- }, zod_v4_core.$strip>, zod.ZodObject<{
15035
- id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15036
- name: zod.ZodString;
15037
15037
  type: zod.ZodLiteral<EActionTypes.EXECUTE_SCRIPT>;
15038
- parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15038
+ scriptKey: zod.ZodString;
15039
+ autoUpdate: zod.ZodDefault<zod.ZodEnum<typeof EAutoUpdateMode>>;
15040
+ description: zod.ZodDefault<zod.ZodString>;
15041
+ hideInactiveButton: zod.ZodDefault<zod.ZodBoolean>;
15042
+ hint: zod.ZodDefault<zod.ZodString>;
15043
+ activateCondition: zod.ZodDefault<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15044
+ mode: zod.ZodLiteral<EActivateConditionMode.FORMULA>;
15045
+ formula: zod.ZodDefault<zod.ZodString>;
15046
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15047
+ mode: zod.ZodLiteral<EActivateConditionMode.VARIABLE>;
15048
+ variableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15049
+ variableValue: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15050
+ }, zod_v4_core.$strip>], "mode">>;
15051
+ variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15039
15052
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15040
15053
  name: zod.ZodString;
15054
+ displayName: zod.ZodDefault<zod.ZodString>;
15055
+ isHidden: zod.ZodDefault<zod.ZodBoolean>;
15041
15056
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15042
15057
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.COLUMN>;
15043
15058
  tableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
@@ -15051,17 +15066,6 @@ declare const ActionSchema: TVersionedSchema<{
15051
15066
  formula: zod.ZodDefault<zod.ZodString>;
15052
15067
  considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15053
15068
  dbDataType: zod.ZodOptional<zod.ZodString>;
15054
- }, zod_v4_core.$strip>, zod.ZodObject<{
15055
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.EVENT>;
15056
- }, zod_v4_core.$strip>, zod.ZodObject<{
15057
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.START_EVENT>;
15058
- }, zod_v4_core.$strip>, zod.ZodObject<{
15059
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.FINISH_EVENT>;
15060
- }, zod_v4_core.$strip>, zod.ZodObject<{
15061
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
15062
- formula: zod.ZodDefault<zod.ZodString>;
15063
- considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15064
- dbDataType: zod.ZodOptional<zod.ZodString>;
15065
15069
  }, zod_v4_core.$strip>, zod.ZodObject<{
15066
15070
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.MANUALLY>;
15067
15071
  description: zod.ZodDefault<zod.ZodString>;
@@ -15124,23 +15128,23 @@ declare const ActionSchema: TVersionedSchema<{
15124
15128
  insertAnyValues: zod.ZodDefault<zod.ZodBoolean>;
15125
15129
  validation: zod.ZodDefault<zod.ZodString>;
15126
15130
  acceptEmptyValue: zod.ZodDefault<zod.ZodBoolean>;
15131
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15132
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
15133
+ formula: zod.ZodDefault<zod.ZodString>;
15134
+ considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15135
+ dbDataType: zod.ZodOptional<zod.ZodString>;
15127
15136
  }, zod_v4_core.$strip>, zod.ZodObject<{
15128
15137
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.DATA_MODEL>;
15129
15138
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15130
15139
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15131
15140
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15132
- scriptKey: zod.ZodString;
15133
- autoUpdate: zod.ZodDefault<zod.ZodEnum<typeof EAutoUpdateMode>>;
15134
- hideInactiveButton: zod.ZodDefault<zod.ZodBoolean>;
15135
- activateCondition: zod.ZodDefault<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15136
- mode: zod.ZodLiteral<EActivateConditionMode.FORMULA>;
15137
- formula: zod.ZodDefault<zod.ZodString>;
15138
- }, zod_v4_core.$strip>, zod.ZodObject<{
15139
- mode: zod.ZodLiteral<EActivateConditionMode.VARIABLE>;
15140
- variableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15141
- variableValue: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15142
- }, zod_v4_core.$strip>], "mode">>;
15143
- hint: zod.ZodDefault<zod.ZodString>;
15141
+ runButtonText: zod.ZodDefault<zod.ZodString>;
15142
+ }, zod_v4_core.$strip>, zod.ZodUnion<readonly [zod.ZodObject<{
15143
+ id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15144
+ name: zod.ZodString;
15145
+ type: zod.ZodLiteral<EActionTypes.OPEN_URL>;
15146
+ url: zod.ZodString;
15147
+ newWindow: zod.ZodDefault<zod.ZodBoolean>;
15144
15148
  variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15145
15149
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15146
15150
  name: zod.ZodString;
@@ -15235,12 +15239,11 @@ declare const ActionSchema: TVersionedSchema<{
15235
15239
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15236
15240
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15237
15241
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15238
- runButtonText: zod.ZodDefault<zod.ZodString>;
15239
15242
  }, zod_v4_core.$strip>, zod.ZodObject<{
15240
15243
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15241
15244
  name: zod.ZodString;
15242
- type: zod.ZodLiteral<EActionTypes.UPDATE_VARIABLE>;
15243
- variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15245
+ type: zod.ZodLiteral<EActionTypes.EXECUTE_SCRIPT>;
15246
+ parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15244
15247
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15245
15248
  name: zod.ZodString;
15246
15249
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
@@ -15334,10 +15337,18 @@ declare const ActionSchema: TVersionedSchema<{
15334
15337
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15335
15338
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15336
15339
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15337
- }, zod_v4_core.$strip>, zod.ZodIntersection<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15338
- id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15339
- name: zod.ZodString;
15340
- type: zod.ZodLiteral<EActionTypes.OPEN_VIEW>;
15340
+ scriptKey: zod.ZodString;
15341
+ autoUpdate: zod.ZodDefault<zod.ZodEnum<typeof EAutoUpdateMode>>;
15342
+ hideInactiveButton: zod.ZodDefault<zod.ZodBoolean>;
15343
+ activateCondition: zod.ZodDefault<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15344
+ mode: zod.ZodLiteral<EActivateConditionMode.FORMULA>;
15345
+ formula: zod.ZodDefault<zod.ZodString>;
15346
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15347
+ mode: zod.ZodLiteral<EActivateConditionMode.VARIABLE>;
15348
+ variableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15349
+ variableValue: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15350
+ }, zod_v4_core.$strip>], "mode">>;
15351
+ hint: zod.ZodDefault<zod.ZodString>;
15341
15352
  variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15342
15353
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15343
15354
  name: zod.ZodString;
@@ -15432,9 +15443,12 @@ declare const ActionSchema: TVersionedSchema<{
15432
15443
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15433
15444
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15434
15445
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15435
- mode: zod.ZodLiteral<EViewMode.GENERATED_BY_SCRIPT>;
15436
- scriptKey: zod.ZodOptional<zod.ZodString>;
15437
- parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15446
+ runButtonText: zod.ZodDefault<zod.ZodString>;
15447
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15448
+ id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15449
+ name: zod.ZodString;
15450
+ type: zod.ZodLiteral<EActionTypes.UPDATE_VARIABLE>;
15451
+ variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15438
15452
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15439
15453
  name: zod.ZodString;
15440
15454
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
@@ -15528,8 +15542,7 @@ declare const ActionSchema: TVersionedSchema<{
15528
15542
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15529
15543
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15530
15544
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15531
- displayName: zod.ZodDefault<zod.ZodString>;
15532
- }, zod_v4_core.$strip>, zod.ZodObject<{
15545
+ }, zod_v4_core.$strip>, zod.ZodIntersection<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15533
15546
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15534
15547
  name: zod.ZodString;
15535
15548
  type: zod.ZodLiteral<EActionTypes.OPEN_VIEW>;
@@ -15627,8 +15640,8 @@ declare const ActionSchema: TVersionedSchema<{
15627
15640
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15628
15641
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15629
15642
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15630
- mode: zod.ZodLiteral<EViewMode.EXISTED_VIEW>;
15631
- viewKey: zod.ZodOptional<zod.ZodString>;
15643
+ mode: zod.ZodLiteral<EViewMode.GENERATED_BY_SCRIPT>;
15644
+ scriptKey: zod.ZodOptional<zod.ZodString>;
15632
15645
  parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15633
15646
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15634
15647
  name: zod.ZodString;
@@ -15723,6 +15736,7 @@ declare const ActionSchema: TVersionedSchema<{
15723
15736
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15724
15737
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15725
15738
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15739
+ displayName: zod.ZodDefault<zod.ZodString>;
15726
15740
  }, zod_v4_core.$strip>, zod.ZodObject<{
15727
15741
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15728
15742
  name: zod.ZodString;
@@ -15821,29 +15835,9 @@ declare const ActionSchema: TVersionedSchema<{
15821
15835
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15822
15836
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15823
15837
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15824
- mode: zod.ZodLiteral<EViewMode.EMPTY>;
15825
- placeholderName: zod.ZodOptional<zod.ZodString>;
15826
- openIn: zod.ZodLiteral<EViewOpenIn.PLACEHOLDER>;
15827
- }, zod_v4_core.$strip>], "mode">, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15828
- openIn: zod.ZodLiteral<EViewOpenIn.DRAWER_WINDOW>;
15829
- alignment: zod.ZodDefault<zod.ZodEnum<typeof EDrawerPlacement>>;
15830
- inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
15831
- }, zod_v4_core.$strip>, zod.ZodObject<{
15832
- openIn: zod.ZodLiteral<EViewOpenIn.PLACEHOLDER>;
15833
- placeholderName: zod.ZodOptional<zod.ZodString>;
15834
- }, zod_v4_core.$strip>, zod.ZodObject<{
15835
- openIn: zod.ZodLiteral<EViewOpenIn.MODAL_WINDOW>;
15836
- positionByClick: zod.ZodDefault<zod.ZodBoolean>;
15837
- inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
15838
- }, zod_v4_core.$strip>, zod.ZodObject<{
15839
- openIn: zod.ZodLiteral<EViewOpenIn.WINDOW>;
15840
- newWindow: zod.ZodDefault<zod.ZodBoolean>;
15841
- inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
15842
- }, zod_v4_core.$strip>], "openIn">>, zod.ZodObject<{
15843
- id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15844
- name: zod.ZodString;
15845
- type: zod.ZodLiteral<EActionTypes.DRILL_DOWN>;
15846
- variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15838
+ mode: zod.ZodLiteral<EViewMode.EXISTED_VIEW>;
15839
+ viewKey: zod.ZodOptional<zod.ZodString>;
15840
+ parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15847
15841
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15848
15842
  name: zod.ZodString;
15849
15843
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
@@ -15937,14 +15931,13 @@ declare const ActionSchema: TVersionedSchema<{
15937
15931
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
15938
15932
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
15939
15933
  }, zod_v4_core.$strip>], "inputMethod">>>>;
15940
- }, zod_v4_core.$strip>]>, zod.ZodObject<{
15934
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15941
15935
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15942
15936
  name: zod.ZodString;
15943
- parameters: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15937
+ type: zod.ZodLiteral<EActionTypes.OPEN_VIEW>;
15938
+ variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
15944
15939
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
15945
15940
  name: zod.ZodString;
15946
- displayName: zod.ZodDefault<zod.ZodString>;
15947
- isHidden: zod.ZodDefault<zod.ZodBoolean>;
15948
15941
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
15949
15942
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.COLUMN>;
15950
15943
  tableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
@@ -15958,6 +15951,17 @@ declare const ActionSchema: TVersionedSchema<{
15958
15951
  formula: zod.ZodDefault<zod.ZodString>;
15959
15952
  considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15960
15953
  dbDataType: zod.ZodOptional<zod.ZodString>;
15954
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15955
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.EVENT>;
15956
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15957
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.START_EVENT>;
15958
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15959
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.FINISH_EVENT>;
15960
+ }, zod_v4_core.$strip>, zod.ZodObject<{
15961
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
15962
+ formula: zod.ZodDefault<zod.ZodString>;
15963
+ considerFilters: zod.ZodDefault<zod.ZodBoolean>;
15964
+ dbDataType: zod.ZodOptional<zod.ZodString>;
15961
15965
  }, zod_v4_core.$strip>, zod.ZodObject<{
15962
15966
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.MANUALLY>;
15963
15967
  description: zod.ZodDefault<zod.ZodString>;
@@ -16020,35 +16024,36 @@ declare const ActionSchema: TVersionedSchema<{
16020
16024
  insertAnyValues: zod.ZodDefault<zod.ZodBoolean>;
16021
16025
  validation: zod.ZodDefault<zod.ZodString>;
16022
16026
  acceptEmptyValue: zod.ZodDefault<zod.ZodBoolean>;
16023
- }, zod_v4_core.$strip>, zod.ZodObject<{
16024
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
16025
- formula: zod.ZodDefault<zod.ZodString>;
16026
- considerFilters: zod.ZodDefault<zod.ZodBoolean>;
16027
- dbDataType: zod.ZodOptional<zod.ZodString>;
16028
16027
  }, zod_v4_core.$strip>, zod.ZodObject<{
16029
16028
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.DATA_MODEL>;
16030
16029
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
16031
16030
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
16032
16031
  }, zod_v4_core.$strip>], "inputMethod">>>>;
16033
- type: zod.ZodLiteral<EActionTypes.EXECUTE_SCRIPT>;
16034
- scriptKey: zod.ZodString;
16035
- autoUpdate: zod.ZodDefault<zod.ZodEnum<typeof EAutoUpdateMode>>;
16036
- description: zod.ZodDefault<zod.ZodString>;
16037
- hideInactiveButton: zod.ZodDefault<zod.ZodBoolean>;
16038
- hint: zod.ZodDefault<zod.ZodString>;
16039
- activateCondition: zod.ZodDefault<zod.ZodDiscriminatedUnion<[zod.ZodObject<{
16040
- mode: zod.ZodLiteral<EActivateConditionMode.FORMULA>;
16041
- formula: zod.ZodDefault<zod.ZodString>;
16042
- }, zod_v4_core.$strip>, zod.ZodObject<{
16043
- mode: zod.ZodLiteral<EActivateConditionMode.VARIABLE>;
16044
- variableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
16045
- variableValue: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
16046
- }, zod_v4_core.$strip>], "mode">>;
16032
+ mode: zod.ZodLiteral<EViewMode.EMPTY>;
16033
+ placeholderName: zod.ZodOptional<zod.ZodString>;
16034
+ openIn: zod.ZodLiteral<EViewOpenIn.PLACEHOLDER>;
16035
+ }, zod_v4_core.$strip>], "mode">, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
16036
+ openIn: zod.ZodLiteral<EViewOpenIn.DRAWER_WINDOW>;
16037
+ alignment: zod.ZodDefault<zod.ZodEnum<typeof EDrawerPlacement>>;
16038
+ inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
16039
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16040
+ openIn: zod.ZodLiteral<EViewOpenIn.PLACEHOLDER>;
16041
+ placeholderName: zod.ZodOptional<zod.ZodString>;
16042
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16043
+ openIn: zod.ZodLiteral<EViewOpenIn.MODAL_WINDOW>;
16044
+ positionByClick: zod.ZodDefault<zod.ZodBoolean>;
16045
+ inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
16046
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16047
+ openIn: zod.ZodLiteral<EViewOpenIn.WINDOW>;
16048
+ newWindow: zod.ZodDefault<zod.ZodBoolean>;
16049
+ inheritFilter: zod.ZodDefault<zod.ZodBoolean>;
16050
+ }, zod_v4_core.$strip>], "openIn">>, zod.ZodObject<{
16051
+ id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
16052
+ name: zod.ZodString;
16053
+ type: zod.ZodLiteral<EActionTypes.DRILL_DOWN>;
16047
16054
  variables: zod.ZodDefault<zod.ZodArray<zod.ZodIntersection<zod.ZodObject<{
16048
16055
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
16049
16056
  name: zod.ZodString;
16050
- displayName: zod.ZodDefault<zod.ZodString>;
16051
- isHidden: zod.ZodDefault<zod.ZodBoolean>;
16052
16057
  }, zod_v4_core.$strip>, zod.ZodDiscriminatedUnion<[zod.ZodObject<{
16053
16058
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.COLUMN>;
16054
16059
  tableName: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
@@ -16062,6 +16067,17 @@ declare const ActionSchema: TVersionedSchema<{
16062
16067
  formula: zod.ZodDefault<zod.ZodString>;
16063
16068
  considerFilters: zod.ZodDefault<zod.ZodBoolean>;
16064
16069
  dbDataType: zod.ZodOptional<zod.ZodString>;
16070
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16071
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.EVENT>;
16072
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16073
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.START_EVENT>;
16074
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16075
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.FINISH_EVENT>;
16076
+ }, zod_v4_core.$strip>, zod.ZodObject<{
16077
+ inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
16078
+ formula: zod.ZodDefault<zod.ZodString>;
16079
+ considerFilters: zod.ZodDefault<zod.ZodBoolean>;
16080
+ dbDataType: zod.ZodOptional<zod.ZodString>;
16065
16081
  }, zod_v4_core.$strip>, zod.ZodObject<{
16066
16082
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.MANUALLY>;
16067
16083
  description: zod.ZodDefault<zod.ZodString>;
@@ -16124,18 +16140,12 @@ declare const ActionSchema: TVersionedSchema<{
16124
16140
  insertAnyValues: zod.ZodDefault<zod.ZodBoolean>;
16125
16141
  validation: zod.ZodDefault<zod.ZodString>;
16126
16142
  acceptEmptyValue: zod.ZodDefault<zod.ZodBoolean>;
16127
- }, zod_v4_core.$strip>, zod.ZodObject<{
16128
- inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.AGGREGATION>;
16129
- formula: zod.ZodDefault<zod.ZodString>;
16130
- considerFilters: zod.ZodDefault<zod.ZodBoolean>;
16131
- dbDataType: zod.ZodOptional<zod.ZodString>;
16132
16143
  }, zod_v4_core.$strip>, zod.ZodObject<{
16133
16144
  inputMethod: zod.ZodLiteral<EWidgetActionInputMethod.DATA_MODEL>;
16134
16145
  option: zod.ZodDefault<zod.ZodEnum<typeof EDataModelOption>>;
16135
16146
  parent: zod.ZodDefault<zod.ZodNullable<zod.ZodString>>;
16136
16147
  }, zod_v4_core.$strip>], "inputMethod">>>>;
16137
- runButtonText: zod.ZodDefault<zod.ZodString>;
16138
- }, zod_v4_core.$strip>, zod.ZodObject<{
16148
+ }, zod_v4_core.$strip>]>, zod.ZodObject<{
16139
16149
  id: zod.ZodPipe<zod.ZodDefault<zod.ZodNumber>, zod.ZodTransform<number, number>>;
16140
16150
  name: zod.ZodString;
16141
16151
  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;
@@ -1560,8 +1594,11 @@ var ActionSchema = SchemaRegistry.define({
1560
1594
  history: {
1561
1595
  "17": function (z) {
1562
1596
  return z.union([
1563
- ActionsOnClickSchema.forVersion("17")(z),
1597
+ /* Изменение порядка схем связано с отсутствием strict
1598
+ Strict будет добавлен в BI-16355
1599
+ */
1564
1600
  WidgetActionSchema.forVersion("17")(z),
1601
+ ActionsOnClickSchema.forVersion("17")(z),
1565
1602
  ViewActionSchema.forVersion("17")(z),
1566
1603
  ]);
1567
1604
  },
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;
@@ -1561,8 +1595,11 @@ var ActionSchema = SchemaRegistry.define({
1561
1595
  history: {
1562
1596
  "17": function (z) {
1563
1597
  return z.union([
1564
- ActionsOnClickSchema.forVersion("17")(z),
1598
+ /* Изменение порядка схем связано с отсутствием strict
1599
+ Strict будет добавлен в BI-16355
1600
+ */
1565
1601
  WidgetActionSchema.forVersion("17")(z),
1602
+ ActionsOnClickSchema.forVersion("17")(z),
1566
1603
  ViewActionSchema.forVersion("17")(z),
1567
1604
  ]);
1568
1605
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infomaximum/widget-sdk",
3
- "version": "7.0.0-2603.0",
3
+ "version": "7.0.0-2603.2",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",