rush.json 41 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057
  1. /**
  2. * This is the main configuration file for Rush.
  3. * For full documentation, please see https://rushjs.io
  4. */
  5. {
  6. "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush.schema.json",
  7. /**
  8. * (Required) This specifies the version of the Rush engine to be used in this repo.
  9. * Rush's "version selector" feature ensures that the globally installed tool will
  10. * behave like this release, regardless of which version is installed globally.
  11. *
  12. * The common/scripts/install-run-rush.js automation script also uses this version.
  13. *
  14. * NOTE: If you upgrade to a new major version of Rush, you should replace the "v5"
  15. * path segment in the "$schema" field for all your Rush config files. This will ensure
  16. * correct error-underlining and tab-completion for editors such as VS Code.
  17. */
  18. "rushVersion": "5.150.0",
  19. /**
  20. * The next field selects which package manager should be installed and determines its version.
  21. * Rush installs its own local copy of the package manager to ensure that your build process
  22. * is fully isolated from whatever tools are present in the local environment.
  23. *
  24. * Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation
  25. * for details about these alternatives.
  26. */
  27. "pnpmVersion": "10.6.5",
  28. // "npmVersion": "6.14.15",
  29. // "yarnVersion": "1.9.4",
  30. /**
  31. * Older releases of the Node.js engine may be missing features required by your system.
  32. * Other releases may have bugs. In particular, the "latest" version will not be a
  33. * Long Term Support (LTS) version and is likely to have regressions.
  34. *
  35. * Specify a SemVer range to ensure developers use a Node.js version that is appropriate
  36. * for your repo.
  37. *
  38. * LTS schedule: https://nodejs.org/en/about/releases/
  39. * LTS versions: https://nodejs.org/en/download/releases/
  40. */
  41. "nodeSupportedVersionRange": ">=18.20.3 <19.0.0 || >=20.14.0 <23.0.0",
  42. /**
  43. * If the version check above fails, Rush will display a message showing the current
  44. * node version and the supported version range. You can use this setting to provide
  45. * additional instructions that will display below the warning, if there's a specific
  46. * tool or script you'd like the user to use to get in line with the expected version.
  47. */
  48. // "nodeSupportedVersionInstructions": "Run 'nvs use' to switch to the expected node version.",
  49. /**
  50. * Odd-numbered major versions of Node.js are experimental. Even-numbered releases
  51. * spend six months in a stabilization period before the first Long Term Support (LTS) version.
  52. * For example, 8.9.0 was the first LTS version of Node.js 8. Pre-LTS versions are not recommended
  53. * for production usage because they frequently have bugs. They may cause Rush itself
  54. * to malfunction.
  55. *
  56. * Rush normally prints a warning if it detects a pre-LTS Node.js version. If you are testing
  57. * pre-LTS versions in preparation for supporting the first LTS version, you can use this setting
  58. * to disable Rush's warning.
  59. */
  60. // "suppressNodeLtsWarning": false,
  61. /**
  62. * Rush normally prints a warning if it detects that the current version is not one published to the
  63. * public npmjs.org registry. If you need to block calls to the npm registry, you can use this setting to disable
  64. * Rush's check.
  65. */
  66. // "suppressRushIsPublicVersionCheck": false,
  67. /**
  68. * Large monorepos can become intimidating for newcomers if project folder paths don't follow
  69. * a consistent and recognizable pattern. When the system allows nested folder trees,
  70. * we've found that teams will often use subfolders to create islands that isolate
  71. * their work from others ("shipping the org"). This hinders collaboration and code sharing.
  72. *
  73. * The Rush developers recommend a "category folder" model, where buildable project folders
  74. * must always be exactly two levels below the repo root. The parent folder acts as the category.
  75. * This provides a basic facility for grouping related projects (e.g. "apps", "libraries",
  76. * "tools", "prototypes") while still encouraging teams to organize their projects into
  77. * a unified taxonomy. Limiting to 2 levels seems very restrictive at first, but if you have
  78. * 20 categories and 20 projects in each category, this scheme can easily accommodate hundreds
  79. * of projects. In practice, you will find that the folder hierarchy needs to be rebalanced
  80. * occasionally, but if that's painful, it's a warning sign that your development style may
  81. * discourage refactoring. Reorganizing the categories should be an enlightening discussion
  82. * that brings people together, and maybe also identifies poor coding practices (e.g. file
  83. * references that reach into other project's folders without using Node.js module resolution).
  84. *
  85. * The defaults are projectFolderMinDepth=1 and projectFolderMaxDepth=2.
  86. *
  87. * To remove these restrictions, you could set projectFolderMinDepth=1
  88. * and set projectFolderMaxDepth to a large number.
  89. */
  90. "projectFolderMinDepth": 2,
  91. "projectFolderMaxDepth": 4,
  92. /**
  93. * Today the npmjs.com registry enforces fairly strict naming rules for packages, but in the early
  94. * days there was no standard and hardly any enforcement. A few large legacy projects are still using
  95. * nonstandard package names, and private registries sometimes allow it. Set "allowMostlyStandardPackageNames"
  96. * to true to relax Rush's enforcement of package names. This allows upper case letters and in the future may
  97. * relax other rules, however we want to minimize these exceptions. Many popular tools use certain punctuation
  98. * characters as delimiters, based on the assumption that they will never appear in a package name; thus if we relax
  99. * the rules too much it is likely to cause very confusing malfunctions.
  100. *
  101. * The default value is false.
  102. */
  103. // "allowMostlyStandardPackageNames": true,
  104. /**
  105. * This feature helps you to review and approve new packages before they are introduced
  106. * to your monorepo. For example, you may be concerned about licensing, code quality,
  107. * performance, or simply accumulating too many libraries with overlapping functionality.
  108. * The approvals are tracked in two config files "browser-approved-packages.json"
  109. * and "nonbrowser-approved-packages.json". See the Rush documentation for details.
  110. */
  111. // "approvedPackagesPolicy": {
  112. // /**
  113. // * The review categories allow you to say for example "This library is approved for usage
  114. // * in prototypes, but not in production code."
  115. // *
  116. // * Each project can be associated with one review category, by assigning the "reviewCategory" field
  117. // * in the "projects" section of rush.json. The approval is then recorded in the files
  118. // * "common/config/rush/browser-approved-packages.json" and "nonbrowser-approved-packages.json"
  119. // * which are automatically generated during "rush update".
  120. // *
  121. // * Designate categories with whatever granularity is appropriate for your review process,
  122. // * or you could just have a single category called "default".
  123. // */
  124. // "reviewCategories": [
  125. // // Some example categories:
  126. // "production", // projects that ship to production
  127. // "tools", // non-shipping projects that are part of the developer toolchain
  128. // "prototypes" // experiments that should mostly be ignored by the review process
  129. // ],
  130. //
  131. // /**
  132. // * A list of NPM package scopes that will be excluded from review.
  133. // * We recommend to exclude TypeScript typings (the "@types" scope), because
  134. // * if the underlying package was already approved, this would imply that the typings
  135. // * are also approved.
  136. // */
  137. // // "ignoredNpmScopes": ["@types"]
  138. // },
  139. /**
  140. * If you use Git as your version control system, this section has some additional
  141. * optional features you can use.
  142. */
  143. "gitPolicy": {
  144. /**
  145. * Work at a big company? Tired of finding Git commits at work with unprofessional Git
  146. * emails such as "beer-lover@my-college.edu"? Rush can validate people's Git email address
  147. * before they get started.
  148. *
  149. * Define a list of regular expressions describing allowable e-mail patterns for Git commits.
  150. * They are case-insensitive anchored JavaScript RegExps. Example: ".*@example\.com"
  151. *
  152. * IMPORTANT: Because these are regular expressions encoded as JSON string literals,
  153. * RegExp escapes need two backslashes, and ordinary periods should be "\\.".
  154. */
  155. // "allowedEmailRegExps": [
  156. // "[^@]+@users\\.noreply\\.github\\.com",
  157. // "rush-bot@example\\.org"
  158. // ],
  159. /**
  160. * When Rush reports that the address is malformed, the notice can include an example
  161. * of a recommended email. Make sure it conforms to one of the allowedEmailRegExps
  162. * expressions.
  163. */
  164. // "sampleEmail": "example@users.noreply.github.com",
  165. /**
  166. * The commit message to use when committing changes during 'rush publish'.
  167. *
  168. * For example, if you want to prevent these commits from triggering a CI build,
  169. * you might configure your system's trigger to look for a special string such as "[skip-ci]"
  170. * in the commit message, and then customize Rush's message to contain that string.
  171. */
  172. // "versionBumpCommitMessage": "Bump versions [skip ci]",
  173. /**
  174. * The commit message to use when committing changes during 'rush version'.
  175. *
  176. * For example, if you want to prevent these commits from triggering a CI build,
  177. * you might configure your system's trigger to look for a special string such as "[skip-ci]"
  178. * in the commit message, and then customize Rush's message to contain that string.
  179. */
  180. // "changeLogUpdateCommitMessage": "Update changelogs [skip ci]",
  181. /**
  182. * The commit message to use when committing changefiles during 'rush change --commit'
  183. *
  184. * If no commit message is set it will default to 'Rush change'
  185. */
  186. // "changefilesCommitMessage": "Rush change"
  187. },
  188. "repository": {
  189. /**
  190. * The URL of this Git repository, used by "rush change" to determine the base branch for your PR.
  191. *
  192. * The "rush change" command needs to determine which files are affected by your PR diff.
  193. * If you merged or cherry-picked commits from the main branch into your PR branch, those commits
  194. * should be excluded from this diff (since they belong to some other PR). In order to do that,
  195. * Rush needs to know where to find the base branch for your PR. This information cannot be
  196. * determined from Git alone, since the "pull request" feature is not a Git concept. Ideally
  197. * Rush would use a vendor-specific protocol to query the information from GitHub, Azure DevOps, etc.
  198. * But to keep things simple, "rush change" simply assumes that your PR is against the "main" branch
  199. * of the Git remote indicated by the repository.url setting in rush.json. If you are working in
  200. * a GitHub "fork" of the real repo, this setting will be different from the repository URL of your
  201. * your PR branch, and in this situation "rush change" will also automatically invoke "git fetch"
  202. * to retrieve the latest activity for the remote main branch.
  203. */
  204. // "url": "https://github.com/microsoft/rush-example",
  205. /**
  206. * The default branch name. This tells "rush change" which remote branch to compare against.
  207. * The default value is "main"
  208. */
  209. // "defaultBranch": "main",
  210. /**
  211. * The default remote. This tells "rush change" which remote to compare against if the remote URL is
  212. * not set or if a remote matching the provided remote URL is not found.
  213. */
  214. // "defaultRemote": "origin"
  215. },
  216. /**
  217. * Event hooks are customized script actions that Rush executes when specific events occur
  218. */
  219. "eventHooks": {
  220. /**
  221. * A list of shell commands to run before "rush install" or "rush update" starts installation
  222. */
  223. "preRushInstall": [
  224. // "common/scripts/pre-rush-install.js"
  225. ],
  226. /**
  227. * A list of shell commands to run after "rush install" or "rush update" finishes installation
  228. */
  229. "postRushInstall": [],
  230. /**
  231. * A list of shell commands to run before "rush build" or "rush rebuild" starts building
  232. */
  233. "preRushBuild": [],
  234. /**
  235. * A list of shell commands to run after "rush build" or "rush rebuild" finishes building
  236. */
  237. "postRushBuild": [],
  238. /**
  239. * A list of shell commands to run before the "rushx" command starts
  240. */
  241. "preRushx": [],
  242. /**
  243. * A list of shell commands to run after the "rushx" command finishes
  244. */
  245. "postRushx": []
  246. },
  247. /**
  248. * Installation variants allow you to maintain a parallel set of configuration files that can be
  249. * used to build the entire monorepo with an alternate set of dependencies. For example, suppose
  250. * you upgrade all your projects to use a new release of an important framework, but during a transition period
  251. * you intend to maintain compatibility with the old release. In this situation, you probably want your
  252. * CI validation to build the entire repo twice: once with the old release, and once with the new release.
  253. *
  254. * Rush "installation variants" correspond to sets of config files located under this folder:
  255. *
  256. * common/config/rush/variants/<variant_name>
  257. *
  258. * The variant folder can contain an alternate common-versions.json file. Its "preferredVersions" field can be used
  259. * to select older versions of dependencies (within a loose SemVer range specified in your package.json files).
  260. * To install a variant, run "rush install --variant <variant_name>".
  261. *
  262. * For more details and instructions, see this article: https://rushjs.io/pages/advanced/installation_variants/
  263. */
  264. "variants": [
  265. // {
  266. // /**
  267. // * The folder name for this variant.
  268. // */
  269. // "variantName": "old-sdk",
  270. //
  271. // /**
  272. // * An informative description
  273. // */
  274. // "description": "Build this repo using the previous release of the SDK"
  275. // }
  276. ],
  277. /**
  278. * Rush can collect anonymous telemetry about everyday developer activity such as
  279. * success/failure of installs, builds, and other operations. You can use this to identify
  280. * problems with your toolchain or Rush itself. THIS TELEMETRY IS NOT SHARED WITH MICROSOFT.
  281. * It is written into JSON files in the common/temp folder. It's up to you to write scripts
  282. * that read these JSON files and do something with them. These scripts are typically registered
  283. * in the "eventHooks" section.
  284. */
  285. // "telemetryEnabled": false,
  286. /**
  287. * Allows creation of hotfix changes. This feature is experimental so it is disabled by default.
  288. * If this is set, 'rush change' only allows a 'hotfix' change type to be specified. This change type
  289. * will be used when publishing subsequent changes from the monorepo.
  290. */
  291. // "hotfixChangeEnabled": false,
  292. /**
  293. * This is an optional, but recommended, list of allowed tags that can be applied to Rush projects
  294. * using the "tags" setting in this file. This list is useful for preventing mistakes such as misspelling,
  295. * and it also provides a centralized place to document your tags. If "allowedProjectTags" list is
  296. * not specified, then any valid tag is allowed. A tag name must be one or more words
  297. * separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits,
  298. * ".", and "@" characters.
  299. */
  300. // "allowedProjectTags": [ "tools", "frontend-team", "1.0.0-release" ],
  301. /**
  302. * (Required) This is the inventory of projects to be managed by Rush.
  303. *
  304. * Rush does not automatically scan for projects using wildcards, for a few reasons:
  305. * 1. Depth-first scans are expensive, particularly when tools need to repeatedly collect the list.
  306. * 2. On a caching CI machine, scans can accidentally pick up files left behind from a previous build.
  307. * 3. It's useful to have a centralized inventory of all projects and their important metadata.
  308. */
  309. "projects": [
  310. // {
  311. // /**
  312. // * The NPM package name of the project (must match package.json)
  313. // */
  314. // "packageName": "my-app",
  315. //
  316. // /**
  317. // * The path to the project folder, relative to the rush.json config file.
  318. // */
  319. // "projectFolder": "apps/my-app",
  320. //
  321. // /**
  322. // * This field is only used if "subspacesEnabled" is true in subspaces.json.
  323. // * It specifies the subspace that this project belongs to. If omitted, then the
  324. // * project belongs to the "default" subspace.
  325. // */
  326. // // "subspaceName": "my-subspace",
  327. //
  328. // /**
  329. // * An optional category for usage in the "browser-approved-packages.json"
  330. // * and "nonbrowser-approved-packages.json" files. The value must be one of the
  331. // * strings from the "reviewCategories" defined above.
  332. // */
  333. // "reviewCategory": "production",
  334. //
  335. // /**
  336. // * A list of Rush project names that are to be installed from NPM
  337. // * instead of linking to the local project.
  338. // *
  339. // * If a project's package.json specifies a dependency that is another Rush project
  340. // * in the monorepo workspace, normally Rush will locally link its folder instead of
  341. // * installing from NPM. If you are using PNPM workspaces, this is indicated by
  342. // * a SemVer range such as "workspace:^1.2.3". To prevent mistakes, Rush reports
  343. // * an error if the "workspace:" protocol is missing.
  344. // *
  345. // * Locally linking ensures that regressions are caught as early as possible and is
  346. // * a key benefit of monorepos. However there are occasional situations where
  347. // * installing from NPM is needed. A classic example is a cyclic dependency.
  348. // * Imagine three Rush projects: "my-toolchain" depends on "my-tester", which depends
  349. // * on "my-library". Suppose that we add "my-toolchain" to the "devDependencies"
  350. // * of "my-library" so it can be built by our toolchain. This cycle creates
  351. // * a problem -- Rush can't build a project using a not-yet-built dependency.
  352. // * We can solve it by adding "my-toolchain" to the "decoupledLocalDependencies"
  353. // * of "my-library", so it builds using the last published release. Choose carefully
  354. // * which package to decouple; some choices are much easier to manage than others.
  355. // *
  356. // * (In older Rush releases, this setting was called "cyclicDependencyProjects".)
  357. // */
  358. // "decoupledLocalDependencies": [
  359. // // "my-toolchain"
  360. // ],
  361. //
  362. // /**
  363. // * If true, then this project will be ignored by the "rush check" command.
  364. // * The default value is false.
  365. // */
  366. // // "skipRushCheck": false,
  367. //
  368. // /**
  369. // * A flag indicating that changes to this project will be published to npm, which affects
  370. // * the Rush change and publish workflows. The default value is false.
  371. // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both.
  372. // */
  373. // // "shouldPublish": false,
  374. //
  375. // /**
  376. // * Facilitates postprocessing of a project's files prior to publishing.
  377. // *
  378. // * If specified, the "publishFolder" is the relative path to a subfolder of the project folder.
  379. // * The "rush publish" command will publish the subfolder instead of the project folder. The subfolder
  380. // * must contain its own package.json file, which is typically a build output.
  381. // */
  382. // // "publishFolder": "temp/publish",
  383. //
  384. // /**
  385. // * An optional version policy associated with the project. Version policies are defined
  386. // * in "version-policies.json" file. See the "rush publish" documentation for more info.
  387. // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both.
  388. // */
  389. // // "versionPolicyName": "",
  390. //
  391. // /**
  392. // * An optional set of custom tags that can be used to select this project. For example,
  393. // * adding "my-custom-tag" will allow this project to be selected by the
  394. // * command "rush list --only tag:my-custom-tag". The tag name must be one or more words
  395. // * separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits,
  396. // * ".", and "@" characters.
  397. // */
  398. // // "tags": [ "1.0.0-release", "frontend-team" ]
  399. // },
  400. //
  401. // {
  402. // "packageName": "my-controls",
  403. // "projectFolder": "libraries/my-controls",
  404. // "reviewCategory": "production",
  405. // "tags": [ "frontend-team" ]
  406. // },
  407. //
  408. {
  409. "packageName": "@flowgram.ai/e2e-fixed-layout",
  410. "projectFolder": "e2e/fixed-layout",
  411. "tags": [
  412. "e2e"
  413. ]
  414. },
  415. {
  416. "packageName": "@flowgram.ai/e2e-free-layout",
  417. "projectFolder": "e2e/free-layout",
  418. "tags": [
  419. "e2e"
  420. ]
  421. },
  422. // eslint 通用配置
  423. {
  424. "packageName": "@flowgram.ai/eslint-config",
  425. "projectFolder": "config/eslint-config",
  426. "versionPolicyName": "publishPolicy",
  427. "tags": [
  428. "config"
  429. ]
  430. },
  431. // ts 通用配置
  432. {
  433. "packageName": "@flowgram.ai/ts-config",
  434. "projectFolder": "config/ts-config",
  435. "versionPolicyName": "publishPolicy",
  436. "tags": [
  437. "config"
  438. ]
  439. },
  440. {
  441. "packageName": "@flowgram.ai/create-app",
  442. "projectFolder": "apps/create-app",
  443. "versionPolicyName": "publishPolicy",
  444. "tags": [
  445. "cli"
  446. ]
  447. },
  448. {
  449. "packageName": "@flowgram.ai/cli",
  450. "projectFolder": "apps/cli",
  451. "versionPolicyName": "publishPolicy",
  452. "tags": [
  453. "cli"
  454. ]
  455. },
  456. // 官网
  457. {
  458. "packageName": "@flowgram.ai/docs",
  459. "projectFolder": "apps/docs",
  460. "tags": [
  461. "docs"
  462. ]
  463. },
  464. // demos
  465. {
  466. "packageName": "@flowgram.ai/demo-fixed-layout",
  467. "projectFolder": "apps/demo-fixed-layout",
  468. "tags": [
  469. "level-1",
  470. "team-flow",
  471. "demo"
  472. ],
  473. "versionPolicyName": "appPolicy"
  474. },
  475. {
  476. "packageName": "@flowgram.ai/demo-fixed-layout-animation",
  477. "projectFolder": "apps/demo-fixed-layout-animation",
  478. "tags": [
  479. "level-1",
  480. "team-flow",
  481. "demo"
  482. ],
  483. "versionPolicyName": "appPolicy"
  484. },
  485. {
  486. "packageName": "@flowgram.ai/utils",
  487. "projectFolder": "packages/common/utils",
  488. "versionPolicyName": "publishPolicy",
  489. "tags": [
  490. "level-1",
  491. "team-flow"
  492. ]
  493. },
  494. {
  495. "packageName": "@flowgram.ai/core",
  496. "projectFolder": "packages/canvas-engine/core",
  497. "versionPolicyName": "publishPolicy",
  498. "tags": [
  499. "level-1",
  500. "team-flow"
  501. ]
  502. },
  503. {
  504. "packageName": "@flowgram.ai/document",
  505. "projectFolder": "packages/canvas-engine/document",
  506. "versionPolicyName": "publishPolicy",
  507. "tags": [
  508. "level-1",
  509. "team-flow"
  510. ]
  511. },
  512. {
  513. "packageName": "@flowgram.ai/renderer",
  514. "projectFolder": "packages/canvas-engine/renderer",
  515. "versionPolicyName": "publishPolicy",
  516. "tags": [
  517. "level-1",
  518. "team-flow"
  519. ]
  520. },
  521. {
  522. "packageName": "@flowgram.ai/reactive",
  523. "projectFolder": "packages/common/reactive",
  524. "versionPolicyName": "publishPolicy",
  525. "tags": [
  526. "level-1",
  527. "team-flow"
  528. ]
  529. },
  530. {
  531. "packageName": "@flowgram.ai/background-plugin",
  532. "projectFolder": "packages/plugins/background-plugin",
  533. "versionPolicyName": "publishPolicy",
  534. "tags": [
  535. "level-1",
  536. "team-flow"
  537. ]
  538. },
  539. {
  540. "packageName": "@flowgram.ai/fixed-layout-core",
  541. "projectFolder": "packages/canvas-engine/fixed-layout-core",
  542. "versionPolicyName": "publishPolicy",
  543. "tags": [
  544. "level-1",
  545. "team-flow"
  546. ]
  547. },
  548. {
  549. "packageName": "@flowgram.ai/free-layout-core",
  550. "projectFolder": "packages/canvas-engine/free-layout-core",
  551. "versionPolicyName": "publishPolicy",
  552. "tags": [
  553. "level-1",
  554. "team-flow"
  555. ]
  556. },
  557. {
  558. "packageName": "@flowgram.ai/editor",
  559. "projectFolder": "packages/client/editor",
  560. "versionPolicyName": "publishPolicy",
  561. "tags": [
  562. "level-1",
  563. "team-flow"
  564. ]
  565. },
  566. {
  567. "packageName": "@flowgram.ai/fixed-drag-plugin",
  568. "projectFolder": "packages/plugins/fixed-drag-plugin",
  569. "versionPolicyName": "publishPolicy",
  570. "tags": [
  571. "level-1",
  572. "team-flow"
  573. ]
  574. },
  575. {
  576. "packageName": "@flowgram.ai/fixed-history-plugin",
  577. "projectFolder": "packages/plugins/fixed-history-plugin",
  578. "versionPolicyName": "publishPolicy",
  579. "tags": [
  580. "level-1",
  581. "team-flow"
  582. ]
  583. },
  584. {
  585. "packageName": "@flowgram.ai/fixed-layout-editor",
  586. "projectFolder": "packages/client/fixed-layout-editor",
  587. "versionPolicyName": "publishPolicy",
  588. "tags": [
  589. "level-1",
  590. "team-flow"
  591. ]
  592. },
  593. {
  594. "packageName": "@flowgram.ai/form",
  595. "projectFolder": "packages/node-engine/form",
  596. "versionPolicyName": "publishPolicy",
  597. "tags": [
  598. "level-1",
  599. "team-flow"
  600. ]
  601. },
  602. {
  603. "packageName": "@flowgram.ai/form-core",
  604. "projectFolder": "packages/node-engine/form-core",
  605. "versionPolicyName": "publishPolicy",
  606. "tags": [
  607. "level-1",
  608. "team-flow"
  609. ]
  610. },
  611. {
  612. "packageName": "@flowgram.ai/free-history-plugin",
  613. "projectFolder": "packages/plugins/free-history-plugin",
  614. "versionPolicyName": "publishPolicy",
  615. "tags": [
  616. "level-1",
  617. "team-flow"
  618. ]
  619. },
  620. {
  621. "packageName": "@flowgram.ai/free-hover-plugin",
  622. "projectFolder": "packages/plugins/free-hover-plugin",
  623. "versionPolicyName": "publishPolicy",
  624. "tags": [
  625. "level-1",
  626. "team-flow"
  627. ]
  628. },
  629. {
  630. "packageName": "@flowgram.ai/free-layout-editor",
  631. "projectFolder": "packages/client/free-layout-editor",
  632. "versionPolicyName": "publishPolicy",
  633. "tags": [
  634. "level-1",
  635. "team-flow"
  636. ]
  637. },
  638. {
  639. "packageName": "@flowgram.ai/free-lines-plugin",
  640. "projectFolder": "packages/plugins/free-lines-plugin",
  641. "versionPolicyName": "publishPolicy",
  642. "tags": [
  643. "level-1",
  644. "team-flow"
  645. ]
  646. },
  647. {
  648. "packageName": "@flowgram.ai/free-node-panel-plugin",
  649. "projectFolder": "packages/plugins/free-node-panel-plugin",
  650. "versionPolicyName": "publishPolicy",
  651. "tags": [
  652. "level-1",
  653. "team-flow"
  654. ]
  655. },
  656. {
  657. "packageName": "@flowgram.ai/free-snap-plugin",
  658. "projectFolder": "packages/plugins/free-snap-plugin",
  659. "versionPolicyName": "publishPolicy",
  660. "tags": [
  661. "level-1",
  662. "team-flow"
  663. ]
  664. },
  665. {
  666. "packageName": "@flowgram.ai/free-stack-plugin",
  667. "projectFolder": "packages/plugins/free-stack-plugin",
  668. "versionPolicyName": "publishPolicy",
  669. "tags": [
  670. "level-1",
  671. "team-flow"
  672. ]
  673. },
  674. {
  675. "packageName": "@flowgram.ai/free-container-plugin",
  676. "projectFolder": "packages/plugins/free-container-plugin",
  677. "versionPolicyName": "publishPolicy",
  678. "tags": [
  679. "level-1",
  680. "team-flow"
  681. ]
  682. },
  683. {
  684. "packageName": "@flowgram.ai/free-group-plugin",
  685. "projectFolder": "packages/plugins/free-group-plugin",
  686. "versionPolicyName": "publishPolicy",
  687. "tags": [
  688. "level-1",
  689. "team-flow"
  690. ]
  691. },
  692. {
  693. "packageName": "@flowgram.ai/group-plugin",
  694. "projectFolder": "packages/plugins/group-plugin",
  695. "versionPolicyName": "publishPolicy",
  696. "tags": [
  697. "level-1",
  698. "team-flow"
  699. ]
  700. },
  701. {
  702. "packageName": "@flowgram.ai/history-node-plugin",
  703. "projectFolder": "packages/plugins/history-node-plugin",
  704. "versionPolicyName": "publishPolicy",
  705. "tags": [
  706. "level-1",
  707. "team-flow"
  708. ]
  709. },
  710. {
  711. "packageName": "@flowgram.ai/minimap-plugin",
  712. "projectFolder": "packages/plugins/minimap-plugin",
  713. "versionPolicyName": "publishPolicy",
  714. "tags": [
  715. "level-1",
  716. "team-flow"
  717. ]
  718. },
  719. {
  720. "packageName": "@flowgram.ai/node",
  721. "projectFolder": "packages/node-engine/node",
  722. "versionPolicyName": "publishPolicy",
  723. "tags": [
  724. "level-1",
  725. "team-flow"
  726. ]
  727. },
  728. {
  729. "packageName": "@flowgram.ai/node-core-plugin",
  730. "projectFolder": "packages/plugins/node-core-plugin",
  731. "versionPolicyName": "publishPolicy",
  732. "tags": [
  733. "level-1",
  734. "team-flow"
  735. ]
  736. },
  737. {
  738. "packageName": "@flowgram.ai/node-variable-plugin",
  739. "projectFolder": "packages/plugins/node-variable-plugin",
  740. "versionPolicyName": "publishPolicy",
  741. "tags": [
  742. "level-1",
  743. "team-flow"
  744. ]
  745. },
  746. {
  747. "packageName": "@flowgram.ai/playground-react",
  748. "projectFolder": "packages/client/playground-react",
  749. "versionPolicyName": "publishPolicy",
  750. "tags": [
  751. "level-1",
  752. "team-flow"
  753. ]
  754. },
  755. {
  756. "packageName": "@flowgram.ai/redux-devtool-plugin",
  757. "projectFolder": "packages/plugins/redux-devtool-plugin",
  758. "versionPolicyName": "publishPolicy",
  759. "tags": [
  760. "level-1",
  761. "team-flow"
  762. ]
  763. },
  764. {
  765. "packageName": "@flowgram.ai/select-box-plugin",
  766. "projectFolder": "packages/plugins/select-box-plugin",
  767. "versionPolicyName": "publishPolicy",
  768. "tags": [
  769. "level-1",
  770. "team-flow"
  771. ]
  772. },
  773. {
  774. "packageName": "@flowgram.ai/shortcuts-plugin",
  775. "projectFolder": "packages/plugins/shortcuts-plugin",
  776. "versionPolicyName": "publishPolicy",
  777. "tags": [
  778. "level-1",
  779. "team-flow"
  780. ]
  781. },
  782. {
  783. "packageName": "@flowgram.ai/variable-core",
  784. "projectFolder": "packages/variable-engine/variable-core",
  785. "versionPolicyName": "publishPolicy",
  786. "tags": [
  787. "level-1",
  788. "team-flow"
  789. ]
  790. },
  791. {
  792. "packageName": "@flowgram.ai/variable-layout",
  793. "projectFolder": "packages/variable-engine/variable-layout",
  794. "versionPolicyName": "publishPolicy",
  795. "tags": [
  796. "level-1",
  797. "team-flow"
  798. ]
  799. },
  800. {
  801. "packageName": "@flowgram.ai/json-schema",
  802. "projectFolder": "packages/variable-engine/json-schema",
  803. "versionPolicyName": "publishPolicy",
  804. "tags": [
  805. "level-1",
  806. "team-flow"
  807. ]
  808. },
  809. {
  810. "packageName": "@flowgram.ai/variable-plugin",
  811. "projectFolder": "packages/plugins/variable-plugin",
  812. "versionPolicyName": "publishPolicy",
  813. "tags": [
  814. "level-1",
  815. "team-flow"
  816. ]
  817. },
  818. {
  819. "packageName": "@flowgram.ai/command",
  820. "projectFolder": "packages/common/command",
  821. "versionPolicyName": "publishPolicy",
  822. "tags": [
  823. "level-1",
  824. "team-flow"
  825. ]
  826. },
  827. {
  828. "packageName": "@flowgram.ai/history",
  829. "projectFolder": "packages/common/history",
  830. "versionPolicyName": "publishPolicy",
  831. "tags": [
  832. "level-1",
  833. "team-flow"
  834. ]
  835. },
  836. {
  837. "packageName": "@flowgram.ai/history-storage",
  838. "projectFolder": "packages/common/history-storage",
  839. "versionPolicyName": "publishPolicy",
  840. "tags": [
  841. "level-2",
  842. "team-flow"
  843. ]
  844. },
  845. {
  846. "packageName": "@flowgram.ai/materials-plugin",
  847. "projectFolder": "packages/plugins/materials-plugin",
  848. "versionPolicyName": "publishPolicy",
  849. "tags": [
  850. "level-1",
  851. "team-flow"
  852. ]
  853. },
  854. {
  855. "packageName": "@flowgram.ai/fixed-semi-materials",
  856. "projectFolder": "packages/materials/fixed-semi-materials",
  857. "versionPolicyName": "publishPolicy",
  858. "tags": [
  859. "level-1",
  860. "team-flow"
  861. ]
  862. },
  863. {
  864. "packageName": "@flowgram.ai/form-materials",
  865. "projectFolder": "packages/materials/form-materials",
  866. "versionPolicyName": "publishPolicy",
  867. "tags": [
  868. "level-1",
  869. "team-flow"
  870. ]
  871. },
  872. {
  873. "packageName": "@flowgram.ai/panel-manager-plugin",
  874. "projectFolder": "packages/plugins/panel-manager-plugin",
  875. "versionPolicyName": "publishPolicy"
  876. },
  877. {
  878. "packageName": "@flowgram.ai/form-antd-materials",
  879. "projectFolder": "packages/materials/form-antd-materials",
  880. "versionPolicyName": "publishPolicy",
  881. "tags": [
  882. "level-1",
  883. "team-flow"
  884. ]
  885. },
  886. {
  887. "packageName": "@flowgram.ai/type-editor",
  888. "projectFolder": "packages/materials/type-editor",
  889. "versionPolicyName": "publishPolicy",
  890. "tags": [
  891. "level-1",
  892. "team-flow"
  893. ]
  894. },
  895. {
  896. "packageName": "@flowgram.ai/coze-editor",
  897. "projectFolder": "packages/materials/coze-editor",
  898. "versionPolicyName": "publishPolicy",
  899. "tags": [
  900. "level-1",
  901. "team-flow"
  902. ]
  903. },
  904. {
  905. "packageName": "@flowgram.ai/free-auto-layout-plugin",
  906. "projectFolder": "packages/plugins/free-auto-layout-plugin",
  907. "versionPolicyName": "publishPolicy",
  908. "tags": [
  909. "level-1",
  910. "team-flow"
  911. ]
  912. },
  913. {
  914. "packageName": "@flowgram.ai/i18n-plugin",
  915. "projectFolder": "packages/plugins/i18n-plugin",
  916. "versionPolicyName": "publishPolicy",
  917. "tags": [
  918. "level-1",
  919. "team-flow"
  920. ]
  921. },
  922. {
  923. "packageName": "@flowgram.ai/i18n",
  924. "projectFolder": "packages/common/i18n",
  925. "versionPolicyName": "publishPolicy",
  926. "tags": [
  927. "level-1",
  928. "team-flow"
  929. ]
  930. },
  931. {
  932. "packageName": "@flowgram.ai/demo-free-layout",
  933. "projectFolder": "apps/demo-free-layout",
  934. "tags": [
  935. "level-1",
  936. "team-flow",
  937. "demo"
  938. ],
  939. "versionPolicyName": "appPolicy"
  940. },
  941. {
  942. "packageName": "@flowgram.ai/demo-fixed-layout-simple",
  943. "projectFolder": "apps/demo-fixed-layout-simple",
  944. "versionPolicyName": "appPolicy",
  945. "tags": [
  946. "level-1",
  947. "team-flow",
  948. "demo"
  949. ]
  950. },
  951. {
  952. "packageName": "@flowgram.ai/demo-free-layout-simple",
  953. "projectFolder": "apps/demo-free-layout-simple",
  954. "versionPolicyName": "appPolicy",
  955. "tags": [
  956. "level-1",
  957. "team-flow",
  958. "demo"
  959. ]
  960. },
  961. {
  962. "packageName": "@flowgram.ai/demo-node-form",
  963. "projectFolder": "apps/demo-node-form",
  964. "tags": [
  965. "level-1",
  966. "team-flow",
  967. "demo"
  968. ]
  969. },
  970. {
  971. "packageName": "@flowgram.ai/demo-materials",
  972. "projectFolder": "apps/demo-materials",
  973. "tags": [
  974. "level-1",
  975. "team-flow",
  976. "demo"
  977. ]
  978. },
  979. {
  980. "packageName": "@flowgram.ai/demo-nextjs",
  981. "projectFolder": "apps/demo-nextjs",
  982. "versionPolicyName": "appPolicy",
  983. "tags": [
  984. "level-1",
  985. "team-flow",
  986. "demo"
  987. ]
  988. },
  989. {
  990. "packageName": "@flowgram.ai/demo-nextjs-antd",
  991. "projectFolder": "apps/demo-nextjs-antd",
  992. "versionPolicyName": "appPolicy",
  993. "tags": [
  994. "level-1",
  995. "team-flow",
  996. "demo"
  997. ]
  998. },
  999. {
  1000. "packageName": "@flowgram.ai/demo-react-16",
  1001. "projectFolder": "apps/demo-react-16",
  1002. "versionPolicyName": "appPolicy",
  1003. "tags": [
  1004. "level-1",
  1005. "team-flow",
  1006. "demo"
  1007. ]
  1008. },
  1009. {
  1010. "packageName": "@flowgram.ai/demo-vite",
  1011. "projectFolder": "apps/demo-vite",
  1012. "versionPolicyName": "appPolicy",
  1013. "tags": [
  1014. "level-1",
  1015. "team-flow",
  1016. "demo"
  1017. ]
  1018. },
  1019. {
  1020. "packageName": "@flowgram.ai/demo-playground",
  1021. "projectFolder": "apps/demo-playground",
  1022. "versionPolicyName": "appPolicy",
  1023. "tags": [
  1024. "level-1",
  1025. "team-flow",
  1026. "demo"
  1027. ]
  1028. },
  1029. {
  1030. "packageName": "@flowgram.ai/runtime-nodejs",
  1031. "projectFolder": "packages/runtime/nodejs",
  1032. "versionPolicyName": "publishPolicy",
  1033. "tags": [
  1034. "level-1",
  1035. "team-flow"
  1036. ]
  1037. },
  1038. {
  1039. "packageName": "@flowgram.ai/runtime-js",
  1040. "projectFolder": "packages/runtime/js-core",
  1041. "versionPolicyName": "publishPolicy",
  1042. "tags": [
  1043. "level-1",
  1044. "team-flow"
  1045. ]
  1046. },
  1047. {
  1048. "packageName": "@flowgram.ai/runtime-interface",
  1049. "projectFolder": "packages/runtime/interface",
  1050. "versionPolicyName": "publishPolicy",
  1051. "tags": [
  1052. "level-1",
  1053. "team-flow"
  1054. ]
  1055. }
  1056. ]
  1057. }