├── .editorconfig ├── .github ├── FUNDING.yml ├── weekly-digest.yml └── workflows │ └── nodejs.yml ├── .gitignore ├── .gitmessage ├── .npmignore ├── .prettierrc ├── .travis.yml ├── .yarnrc ├── LICENSE ├── README.md ├── babel.config.js ├── codecov.yml ├── commitlint.config.js ├── documentation ├── .gitignore ├── .yarnrc ├── README.md ├── SUMMARY.md ├── assets │ ├── debug.md │ ├── history.md │ ├── hooks.md │ ├── i18n.md │ └── router.md ├── book.json ├── core │ ├── core.md │ └── framework.md ├── deploy.sh ├── examples │ ├── demo-mui.md │ └── demo-single-spa.md ├── frameworks │ └── framework-simple.md ├── images │ ├── favicon.ico │ ├── logo.png │ └── poster.png ├── misc │ └── tips.md ├── package.json ├── plugins │ ├── README.md │ ├── plugin-auth.md │ ├── plugin-i18n.md │ ├── plugin-lazy.md │ ├── plugin-level.md │ ├── plugin-path.md │ └── plugin-router.md ├── styles │ ├── prism.css │ └── website.css └── yarn.lock ├── examples ├── demo-simple │ ├── .env │ ├── .gitignore │ ├── .npmrc │ ├── LICENSE │ ├── README.md │ ├── config-overrides.js │ ├── deploy.sh │ ├── package.json │ ├── public │ │ ├── .gitignore │ │ ├── CNAME │ │ ├── favicon.ico │ │ ├── favicon.png │ │ ├── index.html │ │ └── manifest.json │ ├── src │ │ ├── blocks │ │ │ ├── dashboard │ │ │ │ ├── UI.tsx │ │ │ │ └── index.ts │ │ │ ├── home │ │ │ │ ├── UI.tsx │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── nested │ │ │ │ ├── UI.tsx │ │ │ │ ├── blocks │ │ │ │ └── c1 │ │ │ │ │ ├── blocks │ │ │ │ │ ├── c1 │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── c2 │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ ├── components │ │ │ ├── LocalCounter.tsx │ │ │ └── exception │ │ │ │ └── NotFound.tsx │ │ ├── config │ │ │ ├── config.dev.ts │ │ │ ├── config.prod.ts │ │ │ └── index.ts │ │ ├── framework │ │ │ ├── components │ │ │ │ ├── exception │ │ │ │ │ └── NotFound.tsx │ │ │ │ └── interaction │ │ │ │ │ └── Loading.tsx │ │ │ ├── config │ │ │ │ ├── config.dev.tsx │ │ │ │ ├── config.prod.tsx │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── plugins │ │ │ │ ├── strict │ │ │ │ └── index.tsx │ │ │ │ └── window │ │ │ │ └── index.tsx │ │ ├── global.d.ts │ │ ├── images │ │ │ └── logo.png │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ └── serviceWorker.ts │ ├── tsconfig.json │ └── yarn.lock └── demo-single-spa │ ├── .env │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── config-overrides.js │ ├── package.json │ ├── public │ └── index.html │ ├── src │ ├── BuggyCounter.tsx │ ├── ErrorBoundary.tsx │ ├── LocalCounter.tsx │ ├── app1 │ │ ├── app1.js │ │ └── root.component.js │ ├── app2 │ │ ├── app2.tsx │ │ └── root.component.tsx │ ├── app3 │ │ ├── app3.tsx │ │ └── root.component.tsx │ ├── index.ts │ └── react-app-env.d.ts │ ├── tsconfig.json │ └── yarn.lock ├── jest.config.js ├── lerna.json ├── package.json ├── packages ├── core │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── core.d.ts │ │ ├── core.js │ │ ├── hooks.d.ts │ │ ├── hooks.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── types.d.ts │ │ └── types.js │ ├── package.json │ ├── src │ │ ├── core.ts │ │ ├── hooks.ts │ │ ├── index.ts │ │ └── types.ts │ ├── test │ │ ├── core.spec.ts │ │ ├── fixtures │ │ │ ├── p.ts │ │ │ └── q.ts │ │ └── index.spec.ts │ ├── tsconfig.json │ └── yarn.lock ├── debug │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── index.d.ts │ │ └── index.js │ ├── package.json │ ├── src │ │ └── index.ts │ ├── test │ │ └── index.spec.ts │ └── tsconfig.json ├── framework-simple │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── components │ │ │ └── exception │ │ │ │ ├── Forbidden.d.ts │ │ │ │ ├── Forbidden.js │ │ │ │ ├── NotFound.d.ts │ │ │ │ └── NotFound.js │ │ ├── config │ │ │ ├── config.dev.d.ts │ │ │ ├── config.dev.js │ │ │ ├── config.prod.d.ts │ │ │ ├── config.prod.js │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── index.d.ts │ │ └── index.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ └── exception │ │ │ │ ├── Forbidden.tsx │ │ │ │ └── NotFound.tsx │ │ ├── config │ │ │ ├── config.dev.ts │ │ │ ├── config.prod.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── tsconfig.json │ └── yarn.lock ├── framework │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── context.d.ts │ │ ├── context.js │ │ ├── framework.d.ts │ │ ├── framework.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── types.d.ts │ │ └── types.js │ ├── package.json │ ├── src │ │ ├── context.ts │ │ ├── framework.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── test │ │ └── framework.spec.tsx │ ├── tsconfig.json │ └── yarn.lock ├── plugin-lazy │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── index.d.ts │ │ └── index.js │ ├── package.json │ ├── src │ │ └── index.tsx │ ├── test │ │ ├── fixtures │ │ │ ├── bar.tsx │ │ │ └── foo.tsx │ │ └── index.spec.tsx │ ├── tsconfig.json │ └── yarn.lock ├── plugin-path │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── index.d.ts │ │ └── index.js │ ├── package.json │ ├── src │ │ └── index.ts │ ├── test │ │ └── index.spec.ts │ ├── tsconfig.json │ └── yarn.lock ├── plugin-router │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── index.d.ts │ │ └── index.js │ ├── package.json │ ├── src │ │ └── index.tsx │ ├── test │ │ └── index.spec.tsx │ ├── tsconfig.json │ └── yarn.lock └── spax-cli │ ├── .eslintrc.json │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── spax-cli-init.js │ ├── spax-cli.js │ └── yarn.lock ├── poster.png ├── test └── enzyme.ts ├── tsconfig.json ├── tslint.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | custom: ['https://crossjs.com'] 4 | -------------------------------------------------------------------------------- /.github/weekly-digest.yml: -------------------------------------------------------------------------------- 1 | # Configuration for weekly-digest - https://github.com/apps/weekly-digest 2 | publishDay: sun 3 | canPublishIssues: true 4 | canPublishPullRequests: true 5 | canPublishContributors: true 6 | canPublishStargazers: true 7 | canPublishCommits: true 8 | -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- 1 | name: Node CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | strategy: 11 | matrix: 12 | node-version: [12.x] 13 | 14 | steps: 15 | - uses: actions/checkout@v1 16 | - name: Use Node.js ${{ matrix.node-version }} 17 | uses: actions/setup-node@v1 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | - name: install, build, and test 21 | run: | 22 | rm -f .yarnrc 23 | yarn 24 | yarn bootstrap 25 | yarn run build 26 | yarn test 27 | npx codecov 28 | env: 29 | CI: true 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | coverage/ 3 | dist/ 4 | .idea/ 5 | .vscode/ 6 | *.bak 7 | *.log 8 | .DS_Store 9 | -------------------------------------------------------------------------------- /.gitmessage: -------------------------------------------------------------------------------- 1 | # Type(): 2 | # 3 | #