rush.json 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061
  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/utils",
  477. "projectFolder": "packages/common/utils",
  478. "versionPolicyName": "publishPolicy",
  479. "tags": [
  480. "level-1",
  481. "team-flow"
  482. ]
  483. },
  484. {
  485. "packageName": "@flowgram.ai/core",
  486. "projectFolder": "packages/canvas-engine/core",
  487. "versionPolicyName": "publishPolicy",
  488. "tags": [
  489. "level-1",
  490. "team-flow"
  491. ]
  492. },
  493. {
  494. "packageName": "@flowgram.ai/document",
  495. "projectFolder": "packages/canvas-engine/document",
  496. "versionPolicyName": "publishPolicy",
  497. "tags": [
  498. "level-1",
  499. "team-flow"
  500. ]
  501. },
  502. {
  503. "packageName": "@flowgram.ai/renderer",
  504. "projectFolder": "packages/canvas-engine/renderer",
  505. "versionPolicyName": "publishPolicy",
  506. "tags": [
  507. "level-1",
  508. "team-flow"
  509. ]
  510. },
  511. {
  512. "packageName": "@flowgram.ai/reactive",
  513. "projectFolder": "packages/common/reactive",
  514. "versionPolicyName": "publishPolicy",
  515. "tags": [
  516. "level-1",
  517. "team-flow"
  518. ]
  519. },
  520. {
  521. "packageName": "@flowgram.ai/background-plugin",
  522. "projectFolder": "packages/plugins/background-plugin",
  523. "versionPolicyName": "publishPolicy",
  524. "tags": [
  525. "level-1",
  526. "team-flow"
  527. ]
  528. },
  529. {
  530. "packageName": "@flowgram.ai/test-run-plugin",
  531. "projectFolder": "packages/plugins/test-run-plugin",
  532. "versionPolicyName": "publishPolicy"
  533. },
  534. {
  535. "packageName": "@flowgram.ai/fixed-layout-core",
  536. "projectFolder": "packages/canvas-engine/fixed-layout-core",
  537. "versionPolicyName": "publishPolicy",
  538. "tags": [
  539. "level-1",
  540. "team-flow"
  541. ]
  542. },
  543. {
  544. "packageName": "@flowgram.ai/free-layout-core",
  545. "projectFolder": "packages/canvas-engine/free-layout-core",
  546. "versionPolicyName": "publishPolicy",
  547. "tags": [
  548. "level-1",
  549. "team-flow"
  550. ]
  551. },
  552. {
  553. "packageName": "@flowgram.ai/editor",
  554. "projectFolder": "packages/client/editor",
  555. "versionPolicyName": "publishPolicy",
  556. "tags": [
  557. "level-1",
  558. "team-flow"
  559. ]
  560. },
  561. {
  562. "packageName": "@flowgram.ai/fixed-drag-plugin",
  563. "projectFolder": "packages/plugins/fixed-drag-plugin",
  564. "versionPolicyName": "publishPolicy",
  565. "tags": [
  566. "level-1",
  567. "team-flow"
  568. ]
  569. },
  570. {
  571. "packageName": "@flowgram.ai/fixed-history-plugin",
  572. "projectFolder": "packages/plugins/fixed-history-plugin",
  573. "versionPolicyName": "publishPolicy",
  574. "tags": [
  575. "level-1",
  576. "team-flow"
  577. ]
  578. },
  579. {
  580. "packageName": "@flowgram.ai/fixed-layout-editor",
  581. "projectFolder": "packages/client/fixed-layout-editor",
  582. "versionPolicyName": "publishPolicy",
  583. "tags": [
  584. "level-1",
  585. "team-flow"
  586. ]
  587. },
  588. {
  589. "packageName": "@flowgram.ai/form",
  590. "projectFolder": "packages/node-engine/form",
  591. "versionPolicyName": "publishPolicy",
  592. "tags": [
  593. "level-1",
  594. "team-flow"
  595. ]
  596. },
  597. {
  598. "packageName": "@flowgram.ai/form-core",
  599. "projectFolder": "packages/node-engine/form-core",
  600. "versionPolicyName": "publishPolicy",
  601. "tags": [
  602. "level-1",
  603. "team-flow"
  604. ]
  605. },
  606. {
  607. "packageName": "@flowgram.ai/free-history-plugin",
  608. "projectFolder": "packages/plugins/free-history-plugin",
  609. "versionPolicyName": "publishPolicy",
  610. "tags": [
  611. "level-1",
  612. "team-flow"
  613. ]
  614. },
  615. {
  616. "packageName": "@flowgram.ai/free-hover-plugin",
  617. "projectFolder": "packages/plugins/free-hover-plugin",
  618. "versionPolicyName": "publishPolicy",
  619. "tags": [
  620. "level-1",
  621. "team-flow"
  622. ]
  623. },
  624. {
  625. "packageName": "@flowgram.ai/free-layout-editor",
  626. "projectFolder": "packages/client/free-layout-editor",
  627. "versionPolicyName": "publishPolicy",
  628. "tags": [
  629. "level-1",
  630. "team-flow"
  631. ]
  632. },
  633. {
  634. "packageName": "@flowgram.ai/free-lines-plugin",
  635. "projectFolder": "packages/plugins/free-lines-plugin",
  636. "versionPolicyName": "publishPolicy",
  637. "tags": [
  638. "level-1",
  639. "team-flow"
  640. ]
  641. },
  642. {
  643. "packageName": "@flowgram.ai/free-node-panel-plugin",
  644. "projectFolder": "packages/plugins/free-node-panel-plugin",
  645. "versionPolicyName": "publishPolicy",
  646. "tags": [
  647. "level-1",
  648. "team-flow"
  649. ]
  650. },
  651. {
  652. "packageName": "@flowgram.ai/free-snap-plugin",
  653. "projectFolder": "packages/plugins/free-snap-plugin",
  654. "versionPolicyName": "publishPolicy",
  655. "tags": [
  656. "level-1",
  657. "team-flow"
  658. ]
  659. },
  660. {
  661. "packageName": "@flowgram.ai/free-stack-plugin",
  662. "projectFolder": "packages/plugins/free-stack-plugin",
  663. "versionPolicyName": "publishPolicy",
  664. "tags": [
  665. "level-1",
  666. "team-flow"
  667. ]
  668. },
  669. {
  670. "packageName": "@flowgram.ai/free-container-plugin",
  671. "projectFolder": "packages/plugins/free-container-plugin",
  672. "versionPolicyName": "publishPolicy",
  673. "tags": [
  674. "level-1",
  675. "team-flow"
  676. ]
  677. },
  678. {
  679. "packageName": "@flowgram.ai/free-group-plugin",
  680. "projectFolder": "packages/plugins/free-group-plugin",
  681. "versionPolicyName": "publishPolicy",
  682. "tags": [
  683. "level-1",
  684. "team-flow"
  685. ]
  686. },
  687. {
  688. "packageName": "@flowgram.ai/group-plugin",
  689. "projectFolder": "packages/plugins/group-plugin",
  690. "versionPolicyName": "publishPolicy",
  691. "tags": [
  692. "level-1",
  693. "team-flow"
  694. ]
  695. },
  696. {
  697. "packageName": "@flowgram.ai/history-node-plugin",
  698. "projectFolder": "packages/plugins/history-node-plugin",
  699. "versionPolicyName": "publishPolicy",
  700. "tags": [
  701. "level-1",
  702. "team-flow"
  703. ]
  704. },
  705. {
  706. "packageName": "@flowgram.ai/minimap-plugin",
  707. "projectFolder": "packages/plugins/minimap-plugin",
  708. "versionPolicyName": "publishPolicy",
  709. "tags": [
  710. "level-1",
  711. "team-flow"
  712. ]
  713. },
  714. {
  715. "packageName": "@flowgram.ai/export-plugin",
  716. "projectFolder": "packages/plugins/export-plugin",
  717. "versionPolicyName": "publishPolicy",
  718. "tags": [
  719. "level-1",
  720. "team-flow"
  721. ]
  722. },
  723. {
  724. "packageName": "@flowgram.ai/node",
  725. "projectFolder": "packages/node-engine/node",
  726. "versionPolicyName": "publishPolicy",
  727. "tags": [
  728. "level-1",
  729. "team-flow"
  730. ]
  731. },
  732. {
  733. "packageName": "@flowgram.ai/node-core-plugin",
  734. "projectFolder": "packages/plugins/node-core-plugin",
  735. "versionPolicyName": "publishPolicy",
  736. "tags": [
  737. "level-1",
  738. "team-flow"
  739. ]
  740. },
  741. {
  742. "packageName": "@flowgram.ai/node-variable-plugin",
  743. "projectFolder": "packages/plugins/node-variable-plugin",
  744. "versionPolicyName": "publishPolicy",
  745. "tags": [
  746. "level-1",
  747. "team-flow"
  748. ]
  749. },
  750. {
  751. "packageName": "@flowgram.ai/playground-react",
  752. "projectFolder": "packages/client/playground-react",
  753. "versionPolicyName": "publishPolicy",
  754. "tags": [
  755. "level-1",
  756. "team-flow"
  757. ]
  758. },
  759. {
  760. "packageName": "@flowgram.ai/redux-devtool-plugin",
  761. "projectFolder": "packages/plugins/redux-devtool-plugin",
  762. "versionPolicyName": "publishPolicy",
  763. "tags": [
  764. "level-1",
  765. "team-flow"
  766. ]
  767. },
  768. {
  769. "packageName": "@flowgram.ai/select-box-plugin",
  770. "projectFolder": "packages/plugins/select-box-plugin",
  771. "versionPolicyName": "publishPolicy",
  772. "tags": [
  773. "level-1",
  774. "team-flow"
  775. ]
  776. },
  777. {
  778. "packageName": "@flowgram.ai/shortcuts-plugin",
  779. "projectFolder": "packages/plugins/shortcuts-plugin",
  780. "versionPolicyName": "publishPolicy",
  781. "tags": [
  782. "level-1",
  783. "team-flow"
  784. ]
  785. },
  786. {
  787. "packageName": "@flowgram.ai/variable-core",
  788. "projectFolder": "packages/variable-engine/variable-core",
  789. "versionPolicyName": "publishPolicy",
  790. "tags": [
  791. "level-1",
  792. "team-flow"
  793. ]
  794. },
  795. {
  796. "packageName": "@flowgram.ai/variable-layout",
  797. "projectFolder": "packages/variable-engine/variable-layout",
  798. "versionPolicyName": "publishPolicy",
  799. "tags": [
  800. "level-1",
  801. "team-flow"
  802. ]
  803. },
  804. {
  805. "packageName": "@flowgram.ai/json-schema",
  806. "projectFolder": "packages/variable-engine/json-schema",
  807. "versionPolicyName": "publishPolicy",
  808. "tags": [
  809. "level-1",
  810. "team-flow"
  811. ]
  812. },
  813. {
  814. "packageName": "@flowgram.ai/variable-plugin",
  815. "projectFolder": "packages/plugins/variable-plugin",
  816. "versionPolicyName": "publishPolicy",
  817. "tags": [
  818. "level-1",
  819. "team-flow"
  820. ]
  821. },
  822. {
  823. "packageName": "@flowgram.ai/command",
  824. "projectFolder": "packages/common/command",
  825. "versionPolicyName": "publishPolicy",
  826. "tags": [
  827. "level-1",
  828. "team-flow"
  829. ]
  830. },
  831. {
  832. "packageName": "@flowgram.ai/history",
  833. "projectFolder": "packages/common/history",
  834. "versionPolicyName": "publishPolicy",
  835. "tags": [
  836. "level-1",
  837. "team-flow"
  838. ]
  839. },
  840. {
  841. "packageName": "@flowgram.ai/history-storage",
  842. "projectFolder": "packages/common/history-storage",
  843. "versionPolicyName": "publishPolicy",
  844. "tags": [
  845. "level-2",
  846. "team-flow"
  847. ]
  848. },
  849. {
  850. "packageName": "@flowgram.ai/materials-plugin",
  851. "projectFolder": "packages/plugins/materials-plugin",
  852. "versionPolicyName": "publishPolicy",
  853. "tags": [
  854. "level-1",
  855. "team-flow"
  856. ]
  857. },
  858. {
  859. "packageName": "@flowgram.ai/fixed-semi-materials",
  860. "projectFolder": "packages/materials/fixed-semi-materials",
  861. "versionPolicyName": "publishPolicy",
  862. "tags": [
  863. "level-1",
  864. "team-flow"
  865. ]
  866. },
  867. {
  868. "packageName": "@flowgram.ai/form-materials",
  869. "projectFolder": "packages/materials/form-materials",
  870. "versionPolicyName": "publishPolicy",
  871. "tags": [
  872. "level-1",
  873. "team-flow"
  874. ]
  875. },
  876. {
  877. "packageName": "@flowgram.ai/panel-manager-plugin",
  878. "projectFolder": "packages/plugins/panel-manager-plugin",
  879. "versionPolicyName": "publishPolicy"
  880. },
  881. {
  882. "packageName": "@flowgram.ai/form-antd-materials",
  883. "projectFolder": "packages/materials/form-antd-materials",
  884. "versionPolicyName": "publishPolicy",
  885. "tags": [
  886. "level-1",
  887. "team-flow"
  888. ]
  889. },
  890. {
  891. "packageName": "@flowgram.ai/type-editor",
  892. "projectFolder": "packages/materials/type-editor",
  893. "versionPolicyName": "publishPolicy",
  894. "tags": [
  895. "level-1",
  896. "team-flow"
  897. ]
  898. },
  899. {
  900. "packageName": "@flowgram.ai/coze-editor",
  901. "projectFolder": "packages/materials/coze-editor",
  902. "versionPolicyName": "publishPolicy",
  903. "tags": [
  904. "level-1",
  905. "team-flow"
  906. ]
  907. },
  908. {
  909. "packageName": "@flowgram.ai/free-auto-layout-plugin",
  910. "projectFolder": "packages/plugins/free-auto-layout-plugin",
  911. "versionPolicyName": "publishPolicy",
  912. "tags": [
  913. "level-1",
  914. "team-flow"
  915. ]
  916. },
  917. {
  918. "packageName": "@flowgram.ai/i18n-plugin",
  919. "projectFolder": "packages/plugins/i18n-plugin",
  920. "versionPolicyName": "publishPolicy",
  921. "tags": [
  922. "level-1",
  923. "team-flow"
  924. ]
  925. },
  926. {
  927. "packageName": "@flowgram.ai/i18n",
  928. "projectFolder": "packages/common/i18n",
  929. "versionPolicyName": "publishPolicy",
  930. "tags": [
  931. "level-1",
  932. "team-flow"
  933. ]
  934. },
  935. {
  936. "packageName": "@flowgram.ai/demo-free-layout",
  937. "projectFolder": "apps/demo-free-layout",
  938. "tags": [
  939. "level-1",
  940. "team-flow",
  941. "demo"
  942. ],
  943. "versionPolicyName": "appPolicy"
  944. },
  945. {
  946. "packageName": "@flowgram.ai/demo-fixed-layout-simple",
  947. "projectFolder": "apps/demo-fixed-layout-simple",
  948. "versionPolicyName": "appPolicy",
  949. "tags": [
  950. "level-1",
  951. "team-flow",
  952. "demo"
  953. ]
  954. },
  955. {
  956. "packageName": "@flowgram.ai/demo-free-layout-simple",
  957. "projectFolder": "apps/demo-free-layout-simple",
  958. "versionPolicyName": "appPolicy",
  959. "tags": [
  960. "level-1",
  961. "team-flow",
  962. "demo"
  963. ]
  964. },
  965. {
  966. "packageName": "@flowgram.ai/demo-node-form",
  967. "projectFolder": "apps/demo-node-form",
  968. "tags": [
  969. "level-1",
  970. "team-flow",
  971. "demo"
  972. ]
  973. },
  974. {
  975. "packageName": "@flowgram.ai/demo-materials",
  976. "projectFolder": "apps/demo-materials",
  977. "tags": [
  978. "level-1",
  979. "team-flow",
  980. "demo"
  981. ]
  982. },
  983. {
  984. "packageName": "@flowgram.ai/demo-nextjs",
  985. "projectFolder": "apps/demo-nextjs",
  986. "versionPolicyName": "appPolicy",
  987. "tags": [
  988. "level-1",
  989. "team-flow",
  990. "demo"
  991. ]
  992. },
  993. {
  994. "packageName": "@flowgram.ai/demo-nextjs-antd",
  995. "projectFolder": "apps/demo-nextjs-antd",
  996. "versionPolicyName": "appPolicy",
  997. "tags": [
  998. "level-1",
  999. "team-flow",
  1000. "demo"
  1001. ]
  1002. },
  1003. {
  1004. "packageName": "@flowgram.ai/demo-react-16",
  1005. "projectFolder": "apps/demo-react-16",
  1006. "versionPolicyName": "appPolicy",
  1007. "tags": [
  1008. "level-1",
  1009. "team-flow",
  1010. "demo"
  1011. ]
  1012. },
  1013. {
  1014. "packageName": "@flowgram.ai/demo-vite",
  1015. "projectFolder": "apps/demo-vite",
  1016. "versionPolicyName": "appPolicy",
  1017. "tags": [
  1018. "level-1",
  1019. "team-flow",
  1020. "demo"
  1021. ]
  1022. },
  1023. {
  1024. "packageName": "@flowgram.ai/demo-playground",
  1025. "projectFolder": "apps/demo-playground",
  1026. "versionPolicyName": "appPolicy",
  1027. "tags": [
  1028. "level-1",
  1029. "team-flow",
  1030. "demo"
  1031. ]
  1032. },
  1033. {
  1034. "packageName": "@flowgram.ai/runtime-nodejs",
  1035. "projectFolder": "packages/runtime/nodejs",
  1036. "versionPolicyName": "publishPolicy",
  1037. "tags": [
  1038. "level-1",
  1039. "team-flow"
  1040. ]
  1041. },
  1042. {
  1043. "packageName": "@flowgram.ai/runtime-js",
  1044. "projectFolder": "packages/runtime/js-core",
  1045. "versionPolicyName": "publishPolicy",
  1046. "tags": [
  1047. "level-1",
  1048. "team-flow"
  1049. ]
  1050. },
  1051. {
  1052. "packageName": "@flowgram.ai/runtime-interface",
  1053. "projectFolder": "packages/runtime/interface",
  1054. "versionPolicyName": "publishPolicy",
  1055. "tags": [
  1056. "level-1",
  1057. "team-flow"
  1058. ]
  1059. }
  1060. ]
  1061. }