@lynx-js/type-config 0.0.0 → 3.6.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ # CHANGELOG
2
+
3
+ ## 3.6.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Add all Lynx Config and CompilerOptions types on this packages.
package/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # Introduction
2
+
3
+ Type definitions for Lynx Config(aka PageConfig) provided by the Lynx team, used to optimize the configuration experience of Lynx Config.
4
+
5
+ # Usage
6
+
7
+ ## For Framework Developers
8
+
9
+ ```json
10
+ "peerDependencies": {
11
+ "@lynx-js/type-config": "latest"
12
+ }
13
+ ```
14
+
15
+ ## For Product Developers
16
+
17
+ ```json
18
+ "devDependencies": {
19
+ "@lynx-js/type-config": "latest"
20
+ }
21
+ ```
package/config-keys.js ADDED
@@ -0,0 +1,160 @@
1
+ // Copyright 2025 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+
5
+ const compilerOptionsKeys = [
6
+ 'debugInfoOutside',
7
+ 'defaultDisplayLinear',
8
+ 'defaultOverflowVisible',
9
+ 'disableMultipleCascadeCSS',
10
+ 'enableComponentConfig',
11
+ 'enableCSSAsyncDecode',
12
+ 'enableCSSClassMerge',
13
+ 'enableCSSEngine',
14
+ 'enableCSSExternalClass',
15
+ 'enableCSSInvalidation',
16
+ 'enableCSSLazyDecode',
17
+ 'enableCSSSelector',
18
+ 'enableCSSStrictMode',
19
+ 'enableCSSVariable',
20
+ 'enableEventRefactor',
21
+ 'enableFiberArch',
22
+ 'enableFlexibleTemplate',
23
+ 'enableKeepPageData',
24
+ 'enableRemoveCSSScope',
25
+ 'enableSimpleStyling',
26
+ 'experimental_encodeQuickjsBytecode',
27
+ 'forceCalcNewStyle',
28
+ 'implicitAnimation',
29
+ 'removeCSSParserLog',
30
+ 'targetSdkVersion',
31
+ 'templateDebugUrl',
32
+ ];
33
+
34
+ const configKeys = [
35
+ 'absoluteInContentBound',
36
+ 'asyncRedirect',
37
+ 'autoExpose',
38
+ 'CSSAlignWithLegacyW3C',
39
+ 'customCSSInheritanceList',
40
+ 'dataStrictMode',
41
+ 'disableLongpressAfterScroll',
42
+ 'disableQuickTracingGC',
43
+ 'enableA11y',
44
+ 'enableAccessibilityElement',
45
+ 'enableAsyncInitVideoEngine',
46
+ 'enableAsyncRequestImage',
47
+ 'enableAsyncResolveSubtree',
48
+ 'enableCheckExposureOptimize',
49
+ 'enableCheckLocalImage',
50
+ 'enableCircularDataCheck',
51
+ 'enableComponentAsyncDecode',
52
+ 'enableComponentNullProp',
53
+ 'enableCreateViewAsync',
54
+ 'enableCSSInheritance',
55
+ 'enableCSSInlineVariables',
56
+ 'enableCSSLazyImport',
57
+ 'enableDisexposureWhenLynxHidden',
58
+ 'enableEndGestureAtLastFingerUp',
59
+ 'enableEventHandleRefactor',
60
+ 'enableEventThrough',
61
+ 'enableExposureUIMargin',
62
+ 'enableExposureWhenLayout',
63
+ 'enableExposureWhenReload',
64
+ 'enableFixedNew',
65
+ 'enableHarmonyNewOverlay',
66
+ 'enableHarmonyVisibleAreaChangeForExposure',
67
+ 'enableICU',
68
+ 'enableImageDownsampling',
69
+ 'enableJsBindingApiThrowException',
70
+ 'enableJSDataProcessor',
71
+ 'enableListMoveOperation',
72
+ 'enableListNewArchitecture',
73
+ 'enableListPlug',
74
+ 'enableLynxScrollFluency',
75
+ 'enableMicrotaskPromisePolyfill',
76
+ 'enableMultiTouch',
77
+ 'enableMultiTouchParamsCompatible',
78
+ 'enableNativeList',
79
+ 'enableNewAnimator',
80
+ 'enableNewClipMode',
81
+ 'enableNewGesture',
82
+ 'enableNewImage',
83
+ 'enableNewIntersectionObserver',
84
+ 'enableNewListContainer',
85
+ 'enableNewTransformOrigin',
86
+ 'enablePlatformGesture',
87
+ 'enablePropertyBasedSimpleStyle',
88
+ 'enableQueryComponentSync',
89
+ 'enableReactOnlyPropsId',
90
+ 'enableReduceInitDataCopy',
91
+ 'enableReloadLifecycle',
92
+ 'enableRemoveComponentExtraData',
93
+ 'enableReuseLoadScriptExports',
94
+ 'enableSignalAPI',
95
+ 'enableSimultaneousTap',
96
+ 'enableTextBoringLayout',
97
+ 'enableTextGradientOpt',
98
+ 'enableTextLanguageAlignment',
99
+ 'enableTextLayerRender',
100
+ 'enableTextLayoutCache',
101
+ 'enableTextNonContiguousLayout',
102
+ 'enableTextOverflow',
103
+ 'enableTextRefactor',
104
+ 'enableTouchRefactor',
105
+ 'enableUIOperationOptimize',
106
+ 'enableUnifiedPipeline',
107
+ 'enableUseContextPool',
108
+ 'enableUseMapBuffer',
109
+ 'enableViewReceiveTouch',
110
+ 'enableVsyncAlignedFlush',
111
+ 'enableXTextLayoutReused',
112
+ 'extendedLayoutOnlyOpt',
113
+ 'extraInfo',
114
+ 'flatten',
115
+ 'fontScaleEffectiveOnlyOnSp',
116
+ 'implicit',
117
+ 'includeFontPadding',
118
+ 'keyboardCallbackPassRelativeHeight',
119
+ 'longPressDuration',
120
+ 'observerFrameRate',
121
+ 'pipelineSchedulerConfig',
122
+ 'preferredFps',
123
+ 'quirksMode',
124
+ 'removeDescendantSelectorScope',
125
+ 'strictPropType',
126
+ 'tapSlop',
127
+ 'trailNewImage',
128
+ 'unifyVWVHBehavior',
129
+ 'useImagePostProcessor',
130
+ 'useNewSwiper',
131
+ 'autoResumeAnimation',
132
+ 'cli',
133
+ 'compileRender',
134
+ 'customData',
135
+ 'enableA11yIDMutationObserver',
136
+ 'enableAsyncDisplay',
137
+ 'enableBackgroundShapeLayer',
138
+ 'enableCascadePseudo',
139
+ 'enableCheckDataWhenUpdatePage',
140
+ 'enableComponentLayoutOnly',
141
+ 'enableGlobalComponentMap',
142
+ 'enableNativeScheduleCreateViewAsync',
143
+ 'enableNewAccessibility',
144
+ 'enableNewLayoutOnly',
145
+ 'enableOptPushStyleToBundle',
146
+ 'enableOverlapForAccessibilityElement',
147
+ 'fixCSSImportRuleOrder',
148
+ 'forceCalcNewStyle',
149
+ 'reactVersion',
150
+ 'redBoxImageSizeWarningThreshold',
151
+ 'removeComponentElement',
152
+ 'syncImageAttach',
153
+ 'useNewImage',
154
+ 'version',
155
+ ];
156
+
157
+ module.exports = {
158
+ compilerOptionsKeys,
159
+ configKeys,
160
+ };
package/index.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ export * from './types';
2
+ import { CompilerOptions, Config } from './types';
3
+
4
+ // Copyied from https://github.com/type-challenges/type-challenges/issues/737#issuecomment-3486953045
5
+ type UnionToIntersection<U> = (U extends unknown ? (arg: U) => unknown : never) extends (arg: infer I) => void ? I : never;
6
+
7
+ type LastInUnion<T> = UnionToIntersection<T extends unknown ? () => T : never> extends () => infer R ? R : never;
8
+
9
+ type UnionToTuple<U, T extends unknown[] = []> = [U] extends [T[number]] ? T : UnionToTuple<U, [...T, LastInUnion<Exclude<U, T[number]>>]>;
10
+
11
+ export type CompilerOptionsKeys = UnionToTuple<keyof CompilerOptions>;
12
+ export type ConfigKeys = UnionToTuple<keyof Config>;
13
+
14
+ export const compilerOptionsKeys: CompilerOptionsKeys;
15
+ export const configKeys: ConfigKeys;
package/index.js CHANGED
@@ -1 +1,6 @@
1
- export {}
1
+ const { compilerOptionsKeys, configKeys } = require('./config-keys');
2
+
3
+ module.exports = {
4
+ compilerOptionsKeys,
5
+ configKeys,
6
+ };
package/package.json CHANGED
@@ -1,9 +1,34 @@
1
1
  {
2
2
  "name": "@lynx-js/type-config",
3
- "version": "0.0.0",
3
+ "version": "3.6.0",
4
4
  "description": "Type definitions for Lynx Config(aka PageConfig) provided by the Lynx team, used to optimize the configuration experience of Lynx Config.",
5
- "keywords": [],
5
+ "keywords": [
6
+ "lynx-config",
7
+ "types"
8
+ ],
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/lynx-family/lynx.git",
12
+ "directory": "js_libraries/type-config"
13
+ },
6
14
  "license": "Apache-2.0",
7
- "type": "module",
8
- "main": "index.js"
15
+ "author": "Lynx Authors",
16
+ "types": "index.d.ts",
17
+ "main": "index.js",
18
+ "scripts": {
19
+ "test": "vitest --run && tsc --noEmit"
20
+ },
21
+ "files": [
22
+ "index.js",
23
+ "index.d.ts",
24
+ "config-keys.js",
25
+ "types/",
26
+ "CHANGELOG.md"
27
+ ],
28
+ "dependencies": {},
29
+ "devDependencies": {
30
+ "typescript": "5.8.3",
31
+ "tsd": "0.30.4",
32
+ "vitest": "2.1.9"
33
+ }
9
34
  }
@@ -0,0 +1,323 @@
1
+ // Copyright 2025 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+
5
+ /**
6
+ * The Lynx compiler options to set.
7
+ *
8
+ * @public
9
+ */
10
+
11
+ export interface CompilerOptions {
12
+ /**
13
+ * NA
14
+ *
15
+ * Supported platform: Android, iOS, HarmonyOS
16
+ *
17
+ * Since: LynxSDK 3.2
18
+ *
19
+ * @defaultValue false
20
+ *
21
+ */
22
+ debugInfoOutside?: boolean;
23
+
24
+ /**
25
+ * NA
26
+ *
27
+ * Supported platform: Android, iOS, HarmonyOS
28
+ *
29
+ * Since: LynxSDK 3.2
30
+ *
31
+ * @defaultValue true
32
+ *
33
+ */
34
+ defaultDisplayLinear?: boolean;
35
+
36
+ /**
37
+ * NA
38
+ *
39
+ * Supported platform: Android, iOS, HarmonyOS
40
+ *
41
+ * Since: LynxSDK 3.2
42
+ *
43
+ * @defaultValue true
44
+ *
45
+ */
46
+ defaultOverflowVisible?: boolean;
47
+
48
+ /**
49
+ * NA
50
+ *
51
+ * Supported platform: Android, iOS, HarmonyOS
52
+ *
53
+ * Since: LynxSDK 3.2
54
+ *
55
+ * @defaultValue false
56
+ *
57
+ */
58
+ disableMultipleCascadeCSS?: boolean;
59
+
60
+ /**
61
+ * NA
62
+ *
63
+ * Supported platform: Android, iOS, HarmonyOS
64
+ *
65
+ * Since: LynxSDK 3.2
66
+ *
67
+ * @defaultValue false
68
+ *
69
+ */
70
+ enableComponentConfig?: boolean;
71
+
72
+ /**
73
+ * NA
74
+ *
75
+ * Supported platform: Android, iOS, HarmonyOS
76
+ *
77
+ * Since: LynxSDK 3.2
78
+ *
79
+ * @defaultValue undefined
80
+ *
81
+ */
82
+ enableCSSAsyncDecode?: boolean;
83
+
84
+ /**
85
+ * NA
86
+ *
87
+ * Supported platform: Android, iOS, HarmonyOS
88
+ *
89
+ * Since: LynxSDK 3.2
90
+ *
91
+ * @defaultValue false
92
+ *
93
+ */
94
+ enableCSSClassMerge?: boolean;
95
+
96
+ /**
97
+ * NA
98
+ *
99
+ * Supported platform: Android, iOS, HarmonyOS
100
+ *
101
+ * Since: LynxSDK 3.2
102
+ *
103
+ * @defaultValue true
104
+ *
105
+ */
106
+ enableCSSEngine?: boolean;
107
+
108
+ /**
109
+ * NA
110
+ *
111
+ * Supported platform: Android, iOS, HarmonyOS
112
+ *
113
+ * Since: LynxSDK 3.2
114
+ *
115
+ * @defaultValue true
116
+ *
117
+ */
118
+ enableCSSExternalClass?: boolean;
119
+
120
+ /**
121
+ * If enable CSS invalidation we use RuleInvalidationSet to gather the selector invalidation.
122
+ *
123
+ * Supported platform: Android, iOS, HarmonyOS
124
+ *
125
+ * Since: LynxSDK 3.2
126
+ *
127
+ * @defaultValue false
128
+ *
129
+ */
130
+ enableCSSInvalidation?: boolean;
131
+
132
+ /**
133
+ * NA
134
+ *
135
+ * Supported platform: Android, iOS, HarmonyOS
136
+ *
137
+ * Since: LynxSDK 3.2
138
+ *
139
+ * @defaultValue undefined
140
+ *
141
+ */
142
+ enableCSSLazyDecode?: boolean;
143
+
144
+ /**
145
+ * This switch will enable the css module in blink standard mode.
146
+ *
147
+ * Supported platform: Android, iOS, HarmonyOS
148
+ *
149
+ * Since: LynxSDK 3.2
150
+ *
151
+ * @defaultValue false
152
+ *
153
+ */
154
+ enableCSSSelector?: boolean;
155
+
156
+ /**
157
+ * CSS Length should be <number> follows a unit. Under strict mode, invalid <length> values are dropped.
158
+ *
159
+ * Supported platform: Android, HarmonyOS, iOS
160
+ *
161
+ * Since: LynxSDK 3.2
162
+ *
163
+ * @defaultValue false
164
+ *
165
+ */
166
+ enableCSSStrictMode?: boolean;
167
+
168
+ /**
169
+ * NA
170
+ *
171
+ * Supported platform: Android, iOS, HarmonyOS
172
+ *
173
+ * Since: LynxSDK 3.2
174
+ *
175
+ * @defaultValue true
176
+ *
177
+ */
178
+ enableCSSVariable?: boolean;
179
+
180
+ /**
181
+ * NA
182
+ *
183
+ * Supported platform: Android, iOS, HarmonyOS
184
+ *
185
+ * Since: LynxSDK 3.2
186
+ *
187
+ * @defaultValue undefined
188
+ *
189
+ */
190
+ enableEventRefactor?: boolean;
191
+
192
+ /**
193
+ * NA
194
+ *
195
+ * Supported platform: Android, iOS, HarmonyOS
196
+ *
197
+ * Since: LynxSDK 3.2
198
+ *
199
+ * @defaultValue false
200
+ *
201
+ */
202
+ enableFiberArch?: boolean;
203
+
204
+ /**
205
+ * If enable this value, the template will be encoded as flexible template.
206
+ *
207
+ * Supported platform: Android, iOS, HarmonyOS
208
+ *
209
+ * Since: LynxSDK 3.2
210
+ *
211
+ * @defaultValue false
212
+ *
213
+ */
214
+ enableFlexibleTemplate?: boolean;
215
+
216
+ /**
217
+ * NA
218
+ *
219
+ * Supported platform: Android, iOS, HarmonyOS
220
+ *
221
+ * Since: LynxSDK 3.2
222
+ *
223
+ * @defaultValue false
224
+ *
225
+ */
226
+ enableKeepPageData?: boolean;
227
+
228
+ /**
229
+ * NA
230
+ *
231
+ * Supported platform: Android, iOS, HarmonyOS
232
+ *
233
+ * Since: LynxSDK 3.2
234
+ *
235
+ * @defaultValue false
236
+ *
237
+ */
238
+ enableRemoveCSSScope?: boolean;
239
+
240
+ /**
241
+ * Using the simplified styling module.
242
+ *
243
+ * Supported platform: Android, iOS, HarmonyOS
244
+ *
245
+ * Since: LynxSDK 3.3
246
+ *
247
+ * @defaultValue false
248
+ *
249
+ */
250
+ enableSimpleStyling?: boolean;
251
+
252
+ /**
253
+ * Allow encoding quickjs bytecode instead of source code in template.
254
+ *
255
+ * Supported platform: Android, iOS, HarmonyOS
256
+ *
257
+ * Since: LynxSDK 3.2
258
+ *
259
+ * @defaultValue false
260
+ *
261
+ */
262
+ experimental_encodeQuickjsBytecode?: boolean;
263
+
264
+ /**
265
+ * NA
266
+ *
267
+ * Supported platform: Android, iOS, HarmonyOS
268
+ *
269
+ * Since: LynxSDK 3.2
270
+ *
271
+ * @defaultValue undefined
272
+ *
273
+ */
274
+ forceCalcNewStyle?: boolean;
275
+
276
+ /**
277
+ * NA
278
+ *
279
+ * Supported platform: Android, iOS, HarmonyOS
280
+ *
281
+ * Since: LynxSDK 3.2
282
+ *
283
+ * @defaultValue false
284
+ *
285
+ */
286
+ implicitAnimation?: boolean;
287
+
288
+ /**
289
+ * NA
290
+ *
291
+ * Supported platform: Android, iOS, HarmonyOS
292
+ *
293
+ * Since: LynxSDK 3.2
294
+ *
295
+ * @defaultValue false
296
+ *
297
+ */
298
+ removeCSSParserLog?: boolean;
299
+
300
+ /**
301
+ * NA
302
+ *
303
+ * Supported platform: Android, iOS, HarmonyOS
304
+ *
305
+ * Since: LynxSDK 3.2
306
+ *
307
+ * @defaultValue ""
308
+ *
309
+ */
310
+ targetSdkVersion?: string;
311
+
312
+ /**
313
+ * NA
314
+ *
315
+ * Supported platform: Android, iOS, HarmonyOS
316
+ *
317
+ * Since: LynxSDK 3.2
318
+ *
319
+ * @defaultValue ""
320
+ *
321
+ */
322
+ templateDebugUrl?: string;
323
+ }