tt-minigame-ide-cli 2.0.11 → 2.0.12

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.
@@ -181,6 +181,10 @@ export declare const SLARDAR_EVENT: {
181
181
  readonly IDE_WEB_CREATE: "IDE_WEB_CREATE";
182
182
  readonly IDE_WEB_LOAD: "IDE_WEB_LOAD";
183
183
  readonly IDE_WEB_DETECT: "IDE_WEB_DETECT";
184
+ readonly IDE_ENABLE_LYNX_DEBUG: "IDE_ENABLE_LYNX_DEBUG";
185
+ readonly IDE_USE_LYNX_SCHEMA: "IDE_USE_LYNX_SCHEMA";
186
+ readonly IDE_LIVE_PLUGIN_NOT_DEV_MODE: "IDE_LIVE_PLUGIN_NOT_DEV_MODE";
187
+ readonly IDE_SHOW_DYCLOUD_MODAL: "IDE_SHOW_DYCLOUD_MODAL";
184
188
  readonly IDE_LOADER_IO_ERROR: string;
185
189
  readonly IDE_LOADER_INSTALL_RECOVER_ERROR: string;
186
190
  readonly IDE_LOADER_START_FROM_ENTRY: string;
@@ -241,6 +245,10 @@ export declare const IDE_MODULES: {
241
245
  readonly SIGN_CHECKER_GUARANTEED_PAYMENT: "SIGN_CHECKER_GUARANTEED_PAYMENT";
242
246
  readonly SIGN_CHECKER_TRADE_SYSTEM: "SIGN_CHECKER_TRADE_SYSTEM";
243
247
  readonly TEST_QRCODE: "TEST_QRCODE";
248
+ readonly LYNX_DEBUG: "LYNX_DEBUG";
249
+ readonly SIMULATOR_HEART_BEAT: "SIMULATOR_HEART_BEAT";
250
+ readonly AI_COMMAND: "AI_COMMAND";
251
+ readonly AI_FAQ: "AI_FAQ";
244
252
  };
245
253
  export declare const IDE_TIMELINE_NAMES: {
246
254
  readonly SIMULATOR_FIRST_LOADING_END: "SIMULATOR_FIRST_LOADING_END";
@@ -280,6 +288,10 @@ export declare const IDE_TIMELINE_NAMES: {
280
288
  readonly SIGN_CHECKER_GUARANTEED_PAYMENT: "SIGN_CHECKER_GUARANTEED_PAYMENT";
281
289
  readonly SIGN_CHECKER_TRADE_SYSTEM: "SIGN_CHECKER_TRADE_SYSTEM";
282
290
  readonly TEST_QRCODE: "TEST_QRCODE";
291
+ readonly LYNX_DEBUG: "LYNX_DEBUG";
292
+ readonly SIMULATOR_HEART_BEAT: "SIMULATOR_HEART_BEAT";
293
+ readonly AI_COMMAND: "AI_COMMAND";
294
+ readonly AI_FAQ: "AI_FAQ";
283
295
  };
284
296
  /**
285
297
  * IDE 性能统计 ipc 事件收敛
@@ -18,6 +18,7 @@ export interface IApp extends BaseApp {
18
18
  openDataContext?: string;
19
19
  deviceOrientation?: 'landscape' | 'portrait';
20
20
  menuButtonStyle?: 'light' | 'dark';
21
+ liveCards?: string[];
21
22
  }
22
23
  /**
23
24
  * JSON object wrapper for `app.json`
@@ -26,6 +27,7 @@ export declare class AppJSON extends JSONContainer<IApp> {
26
27
  static from(filepath: string): Promise<AppJSON>;
27
28
  private __isGame;
28
29
  get isGame(): boolean;
30
+ get isLivePlugin(): boolean;
29
31
  /**
30
32
  * Property sugar for {@link IApp.subPackages} or {@link IApp.subpackages}
31
33
  */
@@ -49,6 +49,7 @@ export interface IProjectConfig extends IProject {
49
49
  mockLogin?: boolean;
50
50
  autoPush?: boolean;
51
51
  IDEPreviewHotRestartCache?: boolean;
52
+ IDEPreviewOpenVConsole?: boolean;
52
53
  useCompilerPlugins?: CompilerPlugin[];
53
54
  bigPackageSizeSupport?: boolean;
54
55
  webDetect?: boolean;
@@ -85,12 +86,13 @@ export interface IProjectConfig extends IProject {
85
86
  * 此处的技术类型与 ide 的技术类型有区别
86
87
  * 这里的 TechType 通过项目特征获得,无法识别出小游戏和小玩法
87
88
  *
88
- * IDE 本身的项目技术类型分为 microapp、microgame、toybox
89
- * microapp 属于 app 类型
89
+ * IDE 本身的项目技术类型分为 microapp、microgame、toybox、plugin
90
+ * microapp、plugin 属于 app 类型
90
91
  * microgame、toybox 属于 game 类型
92
+ * live-plugin 为直播间互动插件
91
93
  */
92
- declare type TechType = 'app' | 'game' | 'toybox' | 'unity';
93
- declare type IDEAppTechType = 'microapp' | 'toybox' | 'microgame' | 'microapp-minicode' | 'toybox-minicode' | 'microgame-minicode' | 'unity' | '';
94
+ declare type TechType = 'app' | 'game' | 'toybox' | 'unity' | 'liveplugin';
95
+ declare type IDEAppTechType = 'microapp' | 'toybox' | 'microgame' | 'microapp-minicode' | 'plugin' | 'plugin-minicode' | 'toybox-minicode' | 'microgame-minicode' | 'liveplugin-minicode' | 'unity' | 'liveplugin' | 'microapp-plugin' | 'microapp-plugin-minicode' | '';
94
96
  export declare const PROJECT_TYPE_MAP: Record<string, TechType>;
95
97
  export declare function setIDEAppTechType(type: IDEAppTechType): void;
96
98
  export declare function getIDEAppTechType(): IDEAppTechType;
@@ -136,6 +138,7 @@ export declare class ProjectConfig extends JSONContainer<Partial<IProjectConfig>
136
138
  getPrivateRawJSON(): Partial<IProjectPrivate>;
137
139
  getAppid(): string;
138
140
  getRealAppid(): Promise<string>;
141
+ getRealPluginAppid(): Promise<string | null>;
139
142
  getSetting(): IProjectConfig['setting'];
140
143
  getProjectName(): string;
141
144
  getScripts(): IProjectConfig['scripts'];
@@ -148,7 +151,10 @@ export declare class ProjectConfig extends JSONContainer<Partial<IProjectConfig>
148
151
  getBeforeCompileScript(): string;
149
152
  getSkipDomainCheck(): boolean;
150
153
  getPreviewHotRestartCache(): boolean;
154
+ getPreviewOpenVConsole(): boolean;
151
155
  getMiniprogramRoot(): string;
156
+ getPluginRoot(): string;
157
+ isPluginProject(): boolean;
152
158
  getBigPackageSizeSupport(): boolean;
153
159
  getWebDetect(): boolean;
154
160
  getPreviewPreload(): boolean;
@@ -4,10 +4,17 @@ export declare type InpInfo = {
4
4
  inpt: number;
5
5
  inputDelay: number;
6
6
  processTime: number;
7
+ inputDelayPercent: number;
8
+ processPercent: number;
7
9
  };
8
10
  tags: {
9
11
  outerHTML?: string;
10
12
  type: string;
13
+ stageAfterDelay?: string;
14
+ stageBeforeDelay?: string;
15
+ eventBeforeDelay?: string;
16
+ eventInDelay?: string;
17
+ matchedLongtask?: string;
11
18
  };
12
19
  };
13
20
  export declare type InpReporter = (inpInfo: InpInfo, stop: () => void) => void;
@@ -0,0 +1,47 @@
1
+ declare type LongTaskExecutedInfo = {
2
+ id: string;
3
+ tag: string;
4
+ start: number;
5
+ end?: number;
6
+ duration?: number;
7
+ };
8
+ declare enum MaybeLongTask {
9
+ jsAnalyzeCode = "jsAnalyzeCode",
10
+ importTS = "importTS",
11
+ registerFileChange = "registerFileChange",
12
+ ttmlAnalyzeCode = "ttmlAnalyzeCode",
13
+ _updateButtonSelected = "_updateButtonSelected",
14
+ handleSelectedStatus = "handleSelectedStatus",
15
+ getProcessUsage = "getProcessUsage",
16
+ flushNetworkCdpMsgAndDisconnect = "flushNetworkCdpMsgAndDisconnect"
17
+ }
18
+ export declare const markUnNameLongtask: (task: Omit<LongTaskExecutedInfo, 'id'>) => void;
19
+ export declare const markMaybeLongTask: (tag: keyof typeof MaybeLongTask, of: 'start' | 'end') => LongTaskExecutedInfo;
20
+ export declare const markStage: (scope: 'init' | string, stage: string) => void;
21
+ export declare const markSlardarEventAsStage: (event: string, category: Record<string, string>) => void;
22
+ /**
23
+ * 对 slardar 发送的事件进行收集,在上报 inp 的时候选择有交集的事件进行关联
24
+ * 关联的定义: INP 的 start 时间点前的 2 个事件
25
+ */
26
+ export declare const markEvent: (eventName: string, category: Record<string, string>) => void;
27
+ /**
28
+ * 意图是通过 inp 事件的触发时间,寻找与其相关的事件,用于后续归类优化
29
+ * - stage 的概念: 几个目前比较怀疑会导致 INP 的行为: 1. 启动期间 2. 编译期间 3. 预览期间。这些通过 stage 来抽象,复用 slardar 中相关的上报事件,记录事件序列,
30
+ * 然后通过 inp 的 inpDelayStartAt 找所在的事件区间
31
+ * - event 的概念, 与用户行为进行关联,将 slardar 的事件上报用栈进行存储,然后在发生 inp 的时候,根据inpDelayStartAt查找之前发生的 3 个事件进行关联上报
32
+ * @param inpDelayStartAt
33
+ * @param inpDelayEndAt
34
+ * @returns
35
+ */
36
+ export declare const getINPRelativeInformation: (inpDelayStartAt: number, inpDelayEndAt: number, inpt: number) => {
37
+ stage: {
38
+ left?: string;
39
+ right?: string;
40
+ };
41
+ matchedEvent: {
42
+ in: string[];
43
+ before: any[];
44
+ };
45
+ matchedLongtask: string;
46
+ };
47
+ export {};
@@ -89,7 +89,7 @@ export declare const PROCESS_TYPE: {
89
89
  export declare type ProcessType = keyof typeof PROCESS_TYPE;
90
90
  export declare const startTime: number;
91
91
  export declare const skipReport: boolean;
92
- export declare type TechType = 'microapp' | 'microgame' | 'toybox' | 'microapp-minicode' | 'microgame-minicode' | 'toybox-minicode';
92
+ export declare type TechType = 'microapp' | 'microgame' | 'toybox' | 'liveplugin' | 'microapp-minicode' | 'microgame-minicode' | 'toybox-minicode' | 'liveplugin-minicode' | 'microapp-plugin' | 'microapp-plugin-minicode';
93
93
  export interface PerfConfigSettings {
94
94
  disabled: boolean;
95
95
  fps: {
@@ -4,4 +4,5 @@ export declare function createProject(options: {
4
4
  template: 'rich' | 'empty';
5
5
  type?: 'js' | 'ts';
6
6
  targetDir?: string;
7
+ plugin?: boolean;
7
8
  }): Promise<void>;
@@ -17,7 +17,7 @@ export declare function isRealToyId(appid: string): Promise<boolean>;
17
17
  * @param option
18
18
  */
19
19
  export declare function fetchMeta({ appid, isGame }: MetaOption): Promise<any>;
20
- export declare function getAppVersions(appId: string): Promise<{
20
+ export declare function getAppVersions(appId: string, isPlugin?: boolean): Promise<{
21
21
  audit_version: string;
22
22
  }>;
23
23
  export {};
@@ -34,6 +34,7 @@ export declare type UploadOption = Pick<ProjectToQRCodeOption, 'project' | 'qrco
34
34
  changeLog: string;
35
35
  needUploadSourcemap?: boolean;
36
36
  extraCheckInfoJson?: string;
37
+ channel?: string;
37
38
  };
38
39
  /**
39
40
  * 发布上传(功能入口)
@@ -58,6 +59,7 @@ export declare type ProjectToQRCodeOption = {
58
59
  changeLog: string;
59
60
  needUploadSourcemap: boolean;
60
61
  extraCheckInfoJson?: string;
62
+ channel?: string;
61
63
  };
62
64
  extraInfoJson?: string;
63
65
  localCompileVersion?: string;
@@ -81,4 +83,8 @@ export declare type ProjectToQRCodeOption = {
81
83
  isNewPlatform?: (value: boolean) => void;
82
84
  };
83
85
  export declare function projectToQRCode(options: ProjectToQRCodeOption): Promise<ProjectQRCode>;
86
+ export declare function getChannelLimit(appid: string): Promise<{
87
+ limit_num: number;
88
+ } | null>;
89
+ export declare function checkChannel(appid: string, channel: string): Promise<void>;
84
90
  export {};
@@ -32,8 +32,9 @@ declare type UploadProps = {
32
32
  version: string;
33
33
  publishDesc?: string;
34
34
  ideUid?: number;
35
+ channel?: string;
35
36
  };
36
- declare type QueryProgressProps = Pick<UploadProps, 'projectPath' | 'version' | 'ideUid'> & {
37
+ declare type QueryProgressProps = Pick<UploadProps, 'projectPath' | 'version' | 'ideUid' | 'channel'> & {
37
38
  updateStatus?: (status: number | string) => void;
38
39
  };
39
40
  declare type CompileMode = {
@@ -62,19 +63,14 @@ export declare const unityCli: {
62
63
  ctime: string;
63
64
  version: string;
64
65
  }>;
65
- testQrcode: ({ projectPath, ideUid }: {
66
- projectPath: string;
67
- ideUid?: number;
68
- }) => Promise<string>;
69
- upload: ({ projectPath, version, publishDesc, ideUid }: UploadProps) => Promise<{
66
+ upload: ({ projectPath, version, publishDesc, ideUid, channel }: UploadProps) => Promise<{
70
67
  code: number;
71
68
  message: string;
72
69
  }>;
73
- queryProgress: ({ projectPath, version, updateStatus, ideUid }: QueryProgressProps) => Promise<void>;
74
- uploadAndQueryProgress: ({ projectPath, version, publishDesc, updateStatus, ideUid }: UploadProps & QueryProgressProps) => Promise<void>;
70
+ queryProgress: ({ projectPath, version, updateStatus, ideUid, channel }: QueryProgressProps) => Promise<boolean>;
71
+ uploadAndQueryProgress: ({ projectPath, version, publishDesc, updateStatus, ideUid, channel }: UploadProps & QueryProgressProps) => Promise<boolean>;
75
72
  validateFiles: (unityConfig: UnityConfigType) => Promise<void>;
76
73
  validateAppId: (appid: string) => Promise<boolean>;
77
- validateVersion: (latestVersion: string, version: string) => boolean;
78
74
  PROGRESS: {
79
75
  0: string;
80
76
  1: string;
@@ -103,13 +99,18 @@ export declare const unityCli: {
103
99
  defaultText: string;
104
100
  };
105
101
  isUnity: (projectPath: string) => Promise<boolean>;
106
- unityUpload: (options: UploadProps & Pick<UploadProps, "projectPath" | "version" | "ideUid"> & {
102
+ unityUpload: (options: UploadProps & Pick<UploadProps, "projectPath" | "channel" | "version" | "ideUid"> & {
107
103
  updateStatus?: (status: number | string) => void;
108
104
  } & {
109
105
  publishType?: UnityConfigType['publishType'];
110
106
  deviceOrientation?: UnityGameJson['deviceOrientation'];
111
107
  output?: string;
112
- }) => Promise<void>;
108
+ channel?: string;
109
+ }) => Promise<{
110
+ short_url: string;
111
+ origin_schema: string;
112
+ expire_time: number;
113
+ }>;
113
114
  preview: ({ projectPath, ideUid, compileMode, }: {
114
115
  projectPath: string;
115
116
  ideUid?: string;
@@ -123,13 +124,15 @@ export declare const unityCli: {
123
124
  };
124
125
  msg: string;
125
126
  }>;
126
- makeSchema: ({ appId, ideConfig, ctime, scene, query, bdpLog, }: {
127
+ makeSchema: ({ appId, ideConfig, ctime, scene, query, bdpLog, version, channel, }: {
127
128
  appId: string;
128
129
  ideConfig: any;
129
- ctime: number;
130
+ ctime?: number;
130
131
  scene?: string;
131
132
  query?: string;
132
133
  bdpLog?: string;
134
+ version?: string;
135
+ channel?: string;
133
136
  }) => Promise<{
134
137
  code: number;
135
138
  data: {
@@ -148,5 +151,6 @@ export declare const unityCli: {
148
151
  origin_schema: string;
149
152
  expire_time: number;
150
153
  }>;
154
+ validatePreviewFiles: (unityConfig: UnityConfigType) => Promise<void>;
151
155
  };
152
156
  export {};
@@ -18,11 +18,12 @@ import fg from 'fast-glob';
18
18
  * @param {IProjectConfig['packOptions']} params.packOptions - 打包配置选项
19
19
  * @returns {Promise<number>} - 返回包含文件夹大小的Promise
20
20
  */
21
- export declare function getFolderSize({ folderPath, useTypeScript, options, isGame, gameFiles, rootPath, packOptions, }: {
21
+ export declare function getFolderSize({ folderPath, useTypeScript, options, isGame, isLivePlugin, gameFiles, rootPath, packOptions, }: {
22
22
  folderPath: string;
23
23
  useTypeScript: boolean;
24
24
  options?: fg.Options;
25
25
  isGame: boolean;
26
+ isLivePlugin?: boolean;
26
27
  gameFiles?: string[];
27
28
  rootPath: string;
28
29
  packOptions: IProjectConfig['packOptions'];
@@ -50,7 +51,9 @@ declare type FolderToZipStreamOption = {
50
51
  *
51
52
  * @param dir path to folder
52
53
  */
53
- export declare function folderToZipStream(dir: string, { whiteList, useTypeScript }: FolderToZipStreamOption, isGame: boolean, highWaterMark?: number): Promise<archiver.Archiver>;
54
+ export declare function folderToZipStream(dir: string, { whiteList, useTypeScript }: FolderToZipStreamOption, isGame: boolean, highWaterMark?: number, options?: {
55
+ isLivePlugin?: boolean;
56
+ }): Promise<archiver.Archiver>;
54
57
  /**
55
58
  * For cli only
56
59
  * @param input
@@ -3,6 +3,7 @@ import { ServerSize } from '@byted/miniprogram-utils/typings/project';
3
3
  import { ProjectInfo, QrcodeInfo } from '../types';
4
4
  import { IMetrics } from '../utils/metrics';
5
5
  import { IDEConfig, MakeSchemaOption } from '../utils/qrcode';
6
+ export declare type PreviewMode = 'plugin' | 'normal';
6
7
  export declare type ProjectQRCode = {
7
8
  expireTime: number;
8
9
  shortUrl: string;
@@ -25,7 +26,7 @@ declare type CompileProgressResult = {
25
26
  } & Record<string, any>;
26
27
  };
27
28
  export declare function checkProjectMatchAppid(projectConfig: ProjectConfig, appid?: string): Promise<void>;
28
- declare type PreviewOption = Pick<ProjectToQRCodeOption, 'project' | 'page' | 'qrcode' | 'cache' | 'copyToClipboard' | 'extraInfoJson' | 'localCompileVersion' | 'ideConfig' | 'interactGame' | 'penetrateMapJson' | 'lynxPackages' | 'useLocalSchema'>;
29
+ declare type PreviewOption = Pick<ProjectToQRCodeOption, 'project' | 'page' | 'qrcode' | 'cache' | 'copyToClipboard' | 'extraInfoJson' | 'localCompileVersion' | 'ideConfig' | 'interactGame' | 'penetrateMapJson' | 'lynxPackages' | 'useLocalSchema' | 'previewPluginMode'>;
29
30
  /**
30
31
  * 预览上传(功能入口)
31
32
  * @param options
@@ -68,6 +69,7 @@ export declare type ProjectToQRCodeOption = {
68
69
  };
69
70
  extraInfoJson?: string;
70
71
  localCompileVersion?: string;
72
+ previewPluginMode?: PreviewMode;
71
73
  ideConfig?: IDEConfig;
72
74
  debug?: {
73
75
  query: {
@@ -32,6 +32,7 @@ export interface TMACliConfig {
32
32
  sizeLimit: string;
33
33
  unityCompileProgress: string;
34
34
  unityPreview: string;
35
+ getChannelNumber: string;
35
36
  };
36
37
  env: {
37
38
  type: 'online' | 'ppe' | 'boe';
@@ -1,3 +1,4 @@
1
1
  export declare const IDE_SCHEMA = "bytedanceide:";
2
2
  export declare const TEMPLATE_DOWNLOAD_URL = "https://sf1-cdn-tos.douyinstatic.com/obj/microapp/frontend/ide/template/tma-demo-master.zip";
3
3
  export declare const TS_TEMPLATE_DOWNLOAD_URL = "https://sf1-cdn-tos.douyinstatic.com/obj/microapp/frontend/ide/template/tma-demo-master-ts.zip";
4
+ export declare const TEMPLATE_PLUGIN_DOWNLOAD_URL = "https://sf1-cdn-tos.douyinstatic.com/obj/microapp/frontend/ide/template/microapp-plugin-template-js.zip";
@@ -15,5 +15,5 @@ declare class CliLogger extends BaseLogger {
15
15
  loading(text: string): ora.Ora;
16
16
  stopLoading(): void;
17
17
  }
18
- declare const logger: CliLogger | Logger;
18
+ declare const logger: Logger | CliLogger;
19
19
  export default logger;
@@ -1,4 +1,4 @@
1
- import type { ProjectToQRCodeOption } from '../features/preview';
1
+ import type { PreviewMode, ProjectToQRCodeOption } from '../features/preview';
2
2
  export interface MakeSchemaResult {
3
3
  originSchema: string;
4
4
  shortUrl: string;
@@ -44,6 +44,7 @@ export interface IDEBaseConfig {
44
44
  };
45
45
  extraInfo?: IDEExtraInfo;
46
46
  performanceTest?: boolean;
47
+ openApplicationType?: string;
47
48
  }
48
49
  export interface IDESandboxConfig {
49
50
  isSandbox?: boolean;
@@ -77,6 +78,9 @@ export declare type MakeSchemaOption = {
77
78
  traceMode?: number;
78
79
  uploadOptions?: ProjectToQRCodeOption['uploadOptions'];
79
80
  lynxSchema?: string;
81
+ shelledTechType?: number;
82
+ pluginAppid?: string;
83
+ previewPluginMode?: PreviewMode;
80
84
  };
81
85
  export declare function makeSchema(options: MakeSchemaOption): Promise<MakeSchemaResult>;
82
86
  export declare function toQRCodeSVG(str: string): Promise<string>;
@@ -9,7 +9,7 @@ export declare function isMiniGameCli(): boolean;
9
9
  export declare function isIDE(): boolean;
10
10
  export declare const maxConcurrency: () => number;
11
11
  export declare function cleanArgs(cmd: any): any;
12
- export declare function createProjectConfigFile(projectName: string, projectDir: string, useTypeScript?: boolean): Promise<void>;
12
+ export declare function createProjectConfigFile(projectName: string, projectDir: string, useTypeScript?: boolean, isPlugin?: boolean): Promise<void>;
13
13
  export declare function getPackageRoot(): string;
14
14
  /**
15
15
  * Will throw {@link Error} if invalid
@@ -1,2 +1,5 @@
1
1
  export declare const ALLOWED_MICROGAME_EXTS_REG: RegExp;
2
- export declare function getWhiteList(isGame?: boolean): string[];
2
+ export declare function getWhiteList(isGame?: boolean, options?: {
3
+ isLivePlugin?: boolean;
4
+ isMicroappPlugin?: boolean;
5
+ }): string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tt-minigame-ide-cli",
3
- "version": "2.0.11",
3
+ "version": "2.0.12",
4
4
  "description": "Command line interface for micro app development",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",