gitextract_vbywh81w/ ├── .editorconfig ├── .gitignore ├── .npm-dev-registry.json ├── .prettierignore ├── .vscode/ │ └── extensions.json ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── assets/ │ ├── frontend-backend.excalidraw │ ├── frontend-webapi-backend.excalidraw │ ├── typical-stack-vs-layr-stack-light-mode.excalidraw │ └── typical-stack-vs-layr-stack.excalidraw ├── docs/ │ ├── build.js │ ├── contents/ │ │ ├── concepts/ │ │ │ └── coming-soon.md │ │ ├── guides/ │ │ │ └── coming-soon.md │ │ ├── index.json │ │ └── introduction/ │ │ ├── handling-authorization.md │ │ ├── hello-world/ │ │ │ └── hello-world.md │ │ ├── introduction.md │ │ └── storing-data.md │ └── package.json ├── examples/ │ ├── v1/ │ │ ├── counter/ │ │ │ ├── README.md │ │ │ ├── babel.config.json │ │ │ ├── jsconfig.json │ │ │ ├── package.json │ │ │ └── src/ │ │ │ ├── backend.js │ │ │ └── frontend.js │ │ ├── counter-with-create-react-app-ts/ │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── counter.ts │ │ │ │ │ ├── http-server.ts │ │ │ │ │ └── server.ts │ │ │ │ └── tsconfig.json │ │ │ ├── frontend/ │ │ │ │ ├── .gitignore │ │ │ │ ├── package.json │ │ │ │ ├── public/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── manifest.json │ │ │ │ │ └── robots.txt │ │ │ │ ├── src/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── counter.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── react-app-env.d.ts │ │ │ │ └── tsconfig.json │ │ │ └── package.json │ │ ├── counter-with-esbuild-ts/ │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── counter.ts │ │ │ │ │ ├── http-server.ts │ │ │ │ │ └── server.ts │ │ │ │ └── tsconfig.json │ │ │ ├── frontend/ │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── counter.tsx │ │ │ │ │ ├── index.html │ │ │ │ │ └── index.tsx │ │ │ │ └── tsconfig.json │ │ │ └── package.json │ │ ├── counter-with-http/ │ │ │ ├── README.md │ │ │ ├── babel.config.json │ │ │ ├── jsconfig.json │ │ │ ├── package.json │ │ │ └── src/ │ │ │ ├── backend.js │ │ │ └── frontend.js │ │ ├── counter-with-parcel-ts/ │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── counter.ts │ │ │ │ │ ├── http-server.ts │ │ │ │ │ └── server.ts │ │ │ │ └── tsconfig.json │ │ │ ├── frontend/ │ │ │ │ ├── .gitignore │ │ │ │ ├── babel.config.js │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── counter.tsx │ │ │ │ │ ├── index.html │ │ │ │ │ └── index.tsx │ │ │ │ └── tsconfig.json │ │ │ └── package.json │ │ ├── counter-with-rollup-ts/ │ │ │ ├── README.md │ │ │ ├── backend/ │ │ │ │ ├── package.json │ │ │ │ ├── src/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── counter.ts │ │ │ │ │ ├── http-server.ts │ │ │ │ │ └── server.ts │ │ │ │ └── tsconfig.json │ │ │ ├── frontend/ │ │ │ │ ├── babel.config.js │ │ │ │ ├── package.json │ │ │ │ ├── rollup.config.js │ │ │ │ ├── src/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── counter.tsx │ │ │ │ │ ├── index.html │ │ │ │ │ └── index.tsx │ │ │ │ └── tsconfig.json │ │ │ └── package.json │ │ ├── guestbook-cli-js/ │ │ │ ├── README.md │ │ │ ├── babel.config.json │ │ │ ├── jsconfig.json │ │ │ ├── package.json │ │ │ └── src/ │ │ │ ├── backend.js │ │ │ └── frontend.js │ │ ├── guestbook-cli-ts/ │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── backend.ts │ │ │ │ └── frontend.ts │ │ │ └── tsconfig.json │ │ ├── guestbook-web-js/ │ │ │ ├── README.md │ │ │ ├── babel.config.json │ │ │ ├── jsconfig.json │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── backend.js │ │ │ │ ├── frontend.js │ │ │ │ └── index.html │ │ │ └── webpack.config.js │ │ ├── guestbook-web-ts/ │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── backend.ts │ │ │ │ ├── frontend.tsx │ │ │ │ └── index.html │ │ │ ├── tsconfig.json │ │ │ └── webpack.config.js │ │ ├── guestbook-web-with-authorization-js/ │ │ │ ├── README.md │ │ │ ├── babel.config.json │ │ │ ├── jsconfig.json │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── backend.js │ │ │ │ ├── frontend.js │ │ │ │ └── index.html │ │ │ └── webpack.config.js │ │ ├── guestbook-web-with-authorization-ts/ │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── backend.ts │ │ │ │ ├── frontend.tsx │ │ │ │ └── index.html │ │ │ ├── tsconfig.json │ │ │ └── webpack.config.js │ │ ├── guestbook-web-with-routes-js/ │ │ │ ├── README.md │ │ │ ├── babel.config.json │ │ │ ├── jsconfig.json │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── backend.js │ │ │ │ ├── frontend.js │ │ │ │ └── index.html │ │ │ └── webpack.config.js │ │ ├── guestbook-web-with-routes-ts/ │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── backend.ts │ │ │ │ ├── frontend.tsx │ │ │ │ └── index.html │ │ │ ├── tsconfig.json │ │ │ └── webpack.config.js │ │ ├── hello-world-js/ │ │ │ ├── README.md │ │ │ ├── babel.config.json │ │ │ ├── jsconfig.json │ │ │ ├── package.json │ │ │ └── src/ │ │ │ ├── backend.js │ │ │ └── frontend.js │ │ └── hello-world-ts/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── backend.ts │ │ │ └── frontend.ts │ │ └── tsconfig.json │ └── v2/ │ ├── hello-world-js/ │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── .vscode/ │ │ │ ├── extensions.json │ │ │ └── settings.json │ │ ├── README.md │ │ ├── backend/ │ │ │ ├── boostr.config.mjs │ │ │ ├── boostr.config.private-example.mjs │ │ │ ├── jsconfig.json │ │ │ ├── package.json │ │ │ └── src/ │ │ │ ├── components/ │ │ │ │ └── application.js │ │ │ └── index.js │ │ ├── boostr.config.mjs │ │ ├── database/ │ │ │ ├── .gitignore │ │ │ ├── boostr.config.mjs │ │ │ └── boostr.config.private-example.mjs │ │ ├── frontend/ │ │ │ ├── boostr.config.mjs │ │ │ ├── jsconfig.json │ │ │ ├── package.json │ │ │ └── src/ │ │ │ ├── components/ │ │ │ │ └── application.jsx │ │ │ └── index.js │ │ └── package.json │ └── hello-world-ts/ │ ├── .editorconfig │ ├── .gitignore │ ├── .prettierignore │ ├── .vscode/ │ │ ├── extensions.json │ │ └── settings.json │ ├── README.md │ ├── backend/ │ │ ├── boostr.config.mjs │ │ ├── boostr.config.private-example.mjs │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ └── application.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── boostr.config.mjs │ ├── database/ │ │ ├── .gitignore │ │ ├── boostr.config.mjs │ │ └── boostr.config.private-example.mjs │ ├── frontend/ │ │ ├── boostr.config.mjs │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ └── application.tsx │ │ │ └── index.ts │ │ └── tsconfig.json │ └── package.json ├── lerna.json ├── nx.json ├── package.json ├── packages/ │ ├── aws-integration/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lambda-execution-queue-sender.ts │ │ │ └── lambda-handler.ts │ │ └── tsconfig.json │ ├── browser-navigator/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── browser-navigator.ts │ │ │ ├── index.ts │ │ │ └── utilities.ts │ │ └── tsconfig.json │ ├── component/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── cloning.test.ts │ │ │ ├── cloning.ts │ │ │ ├── component.test.ts │ │ │ ├── component.ts │ │ │ ├── decorators.test.ts │ │ │ ├── decorators.ts │ │ │ ├── deserialization.test.ts │ │ │ ├── deserialization.ts │ │ │ ├── embedded-component.ts │ │ │ ├── forking.test.ts │ │ │ ├── forking.ts │ │ │ ├── identifiable-component.test.ts │ │ │ ├── identity-map.test.ts │ │ │ ├── identity-map.ts │ │ │ ├── index.ts │ │ │ ├── js-parser.ts │ │ │ ├── js-tests/ │ │ │ │ ├── decorators.test.js │ │ │ │ └── jsconfig.json │ │ │ ├── merging.test.ts │ │ │ ├── merging.ts │ │ │ ├── properties/ │ │ │ │ ├── attribute-selector.test.ts │ │ │ │ ├── attribute-selector.ts │ │ │ │ ├── attribute.test.ts │ │ │ │ ├── attribute.ts │ │ │ │ ├── identifier-attribute.test.ts │ │ │ │ ├── identifier-attribute.ts │ │ │ │ ├── index.ts │ │ │ │ ├── method.test.ts │ │ │ │ ├── method.ts │ │ │ │ ├── primary-identifier-attribute.test.ts │ │ │ │ ├── primary-identifier-attribute.ts │ │ │ │ ├── property.test.ts │ │ │ │ ├── property.ts │ │ │ │ ├── secondary-identifier-attribute.test.ts │ │ │ │ ├── secondary-identifier-attribute.ts │ │ │ │ └── value-types/ │ │ │ │ ├── any-value-type.ts │ │ │ │ ├── array-value-type.ts │ │ │ │ ├── boolean-value-type.ts │ │ │ │ ├── component-value-type.ts │ │ │ │ ├── date-value-type.ts │ │ │ │ ├── factory.test.ts │ │ │ │ ├── factory.ts │ │ │ │ ├── index.ts │ │ │ │ ├── number-value-type.ts │ │ │ │ ├── object-value-type.ts │ │ │ │ ├── regexp-value-type.ts │ │ │ │ ├── string-value-type.ts │ │ │ │ ├── value-type.test.ts │ │ │ │ └── value-type.ts │ │ │ ├── sanitization/ │ │ │ │ ├── index.ts │ │ │ │ ├── sanitizer-builders.test.ts │ │ │ │ ├── sanitizer-builders.ts │ │ │ │ ├── sanitizer.test.ts │ │ │ │ ├── sanitizer.ts │ │ │ │ ├── utilities.test.ts │ │ │ │ └── utilities.ts │ │ │ ├── serialization.test.ts │ │ │ ├── serialization.ts │ │ │ ├── utilities.test.ts │ │ │ ├── utilities.ts │ │ │ └── validation/ │ │ │ ├── index.ts │ │ │ ├── utilities.test.ts │ │ │ ├── utilities.ts │ │ │ ├── validator-builders.test.ts │ │ │ ├── validator-builders.ts │ │ │ ├── validator.test.ts │ │ │ └── validator.ts │ │ └── tsconfig.json │ ├── component-client/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── component-client.test.ts │ │ │ ├── component-client.ts │ │ │ ├── index.ts │ │ │ └── utilities.ts │ │ └── tsconfig.json │ ├── component-express-middleware/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── component-express-middleware.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── component-http-client/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── component-http-client.test.ts │ │ │ ├── component-http-client.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── component-http-server/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── component-http-server.test.ts │ │ │ ├── component-http-server.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── component-koa-middleware/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── component-koa-middleware.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── component-server/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── component-server.test.ts │ │ │ ├── component-server.ts │ │ │ ├── index.ts │ │ │ └── utilities.ts │ │ └── tsconfig.json │ ├── execution-queue/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── execution-queue.test.ts │ │ │ ├── execution-queue.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── integration-testing/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── client-server.test.ts │ │ │ ├── component-express-middleware.test.ts │ │ │ ├── component-koa-middleware.test.ts │ │ │ ├── counter.fixture.ts │ │ │ ├── http-client-server.test.ts │ │ │ ├── memory-navigator.test.ts │ │ │ ├── navigator.test.ts │ │ │ ├── storable.fixture.ts │ │ │ └── storable.test.ts │ │ └── tsconfig.json │ ├── memory-navigator/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── memory-navigator.ts │ │ └── tsconfig.json │ ├── memory-store/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── memory-store.ts │ │ └── tsconfig.json │ ├── mongodb-store/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── mongodb-store.test.ts │ │ │ └── mongodb-store.ts │ │ └── tsconfig.json │ ├── navigator/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── navigator.ts │ │ │ ├── utilities.test.ts │ │ │ └── utilities.ts │ │ └── tsconfig.json │ ├── observable/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── observable.test.ts │ │ │ └── observable.ts │ │ └── tsconfig.json │ ├── react-integration/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components.tsx │ │ │ ├── decorators.tsx │ │ │ ├── hooks.ts │ │ │ ├── index.ts │ │ │ └── plugins.tsx │ │ └── tsconfig.json │ ├── routable/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── addressable.ts │ │ │ ├── decorators.test.ts │ │ │ ├── decorators.ts │ │ │ ├── index.ts │ │ │ ├── js-tests/ │ │ │ │ ├── decorators.test.js │ │ │ │ └── jsconfig.json │ │ │ ├── param.ts │ │ │ ├── pattern.ts │ │ │ ├── routable.test.ts │ │ │ ├── routable.ts │ │ │ ├── route.test.ts │ │ │ ├── route.ts │ │ │ ├── utilities.ts │ │ │ └── wrapper.ts │ │ └── tsconfig.json │ ├── storable/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── decorators.test.ts │ │ │ ├── decorators.ts │ │ │ ├── index-class.test.ts │ │ │ ├── index-class.ts │ │ │ ├── index.ts │ │ │ ├── js-tests/ │ │ │ │ ├── decorators.test.js │ │ │ │ └── jsconfig.json │ │ │ ├── operator.ts │ │ │ ├── properties/ │ │ │ │ ├── index.ts │ │ │ │ ├── storable-attribute.test.ts │ │ │ │ ├── storable-attribute.ts │ │ │ │ ├── storable-method.ts │ │ │ │ ├── storable-primary-identifier-attribute.ts │ │ │ │ ├── storable-property.ts │ │ │ │ └── storable-secondary-identifier-attribute.ts │ │ │ ├── query.ts │ │ │ ├── storable.ts │ │ │ ├── store-like.ts │ │ │ └── utilities.ts │ │ └── tsconfig.json │ ├── store/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── document.ts │ │ │ ├── expression.ts │ │ │ ├── index.ts │ │ │ ├── path.ts │ │ │ ├── store.test.ts │ │ │ ├── store.ts │ │ │ └── utilities.ts │ │ └── tsconfig.json │ ├── utilities/ │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── error.test.ts │ │ │ ├── error.ts │ │ │ ├── index.ts │ │ │ └── time.ts │ │ └── tsconfig.json │ └── with-roles/ │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── decorators.test.ts │ │ ├── decorators.ts │ │ ├── index.ts │ │ ├── role.test.ts │ │ ├── role.ts │ │ ├── utilities.ts │ │ ├── with-roles.test.ts │ │ └── with-roles.ts │ └── tsconfig.json └── website/ ├── README.md ├── backend/ │ ├── boostr.config.mjs │ ├── boostr.config.private-template.mjs │ ├── package.json │ ├── src/ │ │ ├── components/ │ │ │ ├── application.ts │ │ │ ├── article.ts │ │ │ ├── entity.ts │ │ │ ├── newsletter.ts │ │ │ ├── user.ts │ │ │ └── with-author.ts │ │ ├── index.ts │ │ └── jwt.ts │ └── tsconfig.json ├── boostr.config.mjs ├── database/ │ ├── .gitignore │ ├── boostr.config.mjs │ └── boostr.config.private-template.mjs ├── frontend/ │ ├── boostr.config.mjs │ ├── package.json │ ├── public/ │ │ └── docs/ │ │ ├── v1/ │ │ │ ├── introduction/ │ │ │ │ ├── authorization-6eooNLZnaLZk4eJNHNGwUp-edited.immutable.md │ │ │ │ ├── data-storage-1YDg3LGZPF09H3opJUEDSp-edited.immutable.md │ │ │ │ ├── hello-world-7F76XnjXXBB7eeZTpEZwEX-edited.immutable.md │ │ │ │ ├── introduction-1NNtkbXN0zHvG6VR0jvPRK-edited.immutable.md │ │ │ │ ├── routing-4ubaWloMHuNNs0foagYUwi-edited.immutable.md │ │ │ │ └── web-app-5okryUyuriFFHXtFK9uZNY-edited.immutable.md │ │ │ └── reference/ │ │ │ ├── attribute-4P9dTivZ9HJ4Flr4Y8cTKv.immutable.md │ │ │ ├── attribute-selector-7FZWQpwLR7jpUHoBpvO9Et.immutable.md │ │ │ ├── aws-integration-3iPKbtjOS0uDgsZKk6Q0Kp.immutable.md │ │ │ ├── browser-router-6EIyPCgoPYsWmDmpyKMhce.immutable.md │ │ │ ├── component-6LvsJL2MA9RN6hmT0bBacd.immutable.md │ │ │ ├── component-client-1ISSjJNRL12I33addutRh4.immutable.md │ │ │ ├── component-express-middleware-6UieWJkEvLdXLYug4xuM16.immutable.md │ │ │ ├── component-http-client-6g8M9kRcBS4AQwFtAp7t9z.immutable.md │ │ │ ├── component-http-server-5VDR5fS2uD9iTkuHRSywjz.immutable.md │ │ │ ├── component-koa-middleware-402oMlpSmEIARQJLzn4qQg.immutable.md │ │ │ ├── component-server-e5RUuQXVcCIVLxHiNzCDO.immutable.md │ │ │ ├── embedded-component-4MiZBzspJQbUshU8Q93aJ8.immutable.md │ │ │ ├── identifier-attribute-6Jgrzmrlv4QJoBZVTYYDb9.immutable.md │ │ │ ├── identity-map-01fsjrVv6cSC6awmnNnn6c.immutable.md │ │ │ ├── index-1KeXILVBQNLQpRzBhIWjqB.immutable.md │ │ │ ├── memory-router-TGoBOhUXFPp3iDyKA9Sn0.immutable.md │ │ │ ├── memory-store-78uJRKSOEyr1WnXttCnd9u.immutable.md │ │ │ ├── method-3mc2TakviGDKFcdpxFaCIu.immutable.md │ │ │ ├── mongodb-store-1yTYtEyVy4ZLkF4A2QFaAh.immutable.md │ │ │ ├── observable-6JJJVlFHPe2kPQ4NhsJg7O.immutable.md │ │ │ ├── primary-identifier-attribute-6qTkOuHNN4Bq3EjC9JGVqr.immutable.md │ │ │ ├── property-5bbULbxC52tIPaMAcPEp27.immutable.md │ │ │ ├── query-Q04JuSZAcx8HGvYktmTlI.immutable.md │ │ │ ├── react-integration-3EgAB99IhnithzdqiytvwF.immutable.md │ │ │ ├── role-UodTLJi6Lg6UPXOKZdp8K.immutable.md │ │ │ ├── routable-3zt4vMLvzQR3aqOwoWd3xV.immutable.md │ │ │ ├── route-1rS9AS4eda7qe7lWTU4WKF.immutable.md │ │ │ ├── router-5zhzJL9MYM1yaHY6CXlkso.immutable.md │ │ │ ├── secondary-identifier-attribute-7BqK9EmnCMCHIAroYiQDth.immutable.md │ │ │ ├── storable-2maAYPX5kWufBfVolYVgdc.immutable.md │ │ │ ├── storable-attribute-7MiyqvA7PUf2E2YeoqA912.immutable.md │ │ │ ├── storable-method-1rnW3aKFlFYZ3kIJdCGXRv.immutable.md │ │ │ ├── storable-primary-identifier-attribute-74IwGTycdA7NVAybBly3t1.immutable.md │ │ │ ├── storable-property-5LuWR7uuQ1qdebK3iszZJO.immutable.md │ │ │ ├── storable-secondary-identifier-attribute-6CqhR0kLxoLhtWU85EcsZU.immutable.md │ │ │ ├── store-6BvlCSWkAb7smHsvoIGjv1.immutable.md │ │ │ ├── validator-2strlvnapeTZmbWT3o3VM1.immutable.md │ │ │ ├── value-type-23f3WjnZNDfFejs5ceJVcY.immutable.md │ │ │ └── with-roles-2PYi0037F3Mxg80b5YKb26.immutable.md │ │ └── v2/ │ │ ├── concepts/ │ │ │ └── coming-soon-38q4cuyCWekHuz36oHyMKG.immutable.md │ │ ├── guides/ │ │ │ └── coming-soon-6TWZbDxh3EVysir57k1tga.immutable.md │ │ ├── introduction/ │ │ │ ├── handling-authorization-1sLAebuD81FLlSvJbAuJmZ.immutable.md │ │ │ ├── hello-world/ │ │ │ │ └── hello-world-2FHBCgFRhZX9qH9O1RkTlZ.immutable.md │ │ │ ├── introduction-1iLUBREWe2BB65qw9G4uzm.immutable.md │ │ │ └── storing-data-40jzWiVleR8ZE0fqfGTbO2.immutable.md │ │ └── reference/ │ │ ├── addressable-6n5npS1cCoPKLkFrYU0Pk7.immutable.md │ │ ├── attribute-4IRansPGIm4E3gunH3Ztlq.immutable.md │ │ ├── attribute-selector-76ksImknctJspHLg12sRpR.immutable.md │ │ ├── aws-integration-3Rt2txpqioYQsmijgSqqwF.immutable.md │ │ ├── browser-navigator-eYIxYKNFdRYiKTxIWAjqd.immutable.md │ │ ├── component-1zBrZVglO2cjDP9aO87pOR.immutable.md │ │ ├── component-client-69HLk6gKzg5DfWcVC2bQWS.immutable.md │ │ ├── component-express-middleware-7KGBerWY9jB9r9eOjwLmPq.immutable.md │ │ ├── component-http-client-2rHYFMcsawI16EvGk8372w.immutable.md │ │ ├── component-http-server-5aWTLSzVvm0WohfP6af7OP.immutable.md │ │ ├── component-koa-middleware-6aVaQsSgkzWt35XyqSMuqx.immutable.md │ │ ├── component-server-i0AsOVFbGCJUrJ9mJyjPh.immutable.md │ │ ├── embedded-component-3YdGqfLNxl8c001AvWxHZ6.immutable.md │ │ ├── identifier-attribute-2w8hckqCKGHPurgIGY5vhT.immutable.md │ │ ├── identity-map-7sLdA5rsLvflf8T8OsZfGO.immutable.md │ │ ├── index-1Uz5JX1XB7V67nfM6tvnSV.immutable.md │ │ ├── memory-navigator-5wC9TEZn2cen7LuV4cGPOj.immutable.md │ │ ├── memory-store-3QHbAhGolblHx4OY17rEP.immutable.md │ │ ├── method-MAFTDipVXsOXj4o2CJLNQ.immutable.md │ │ ├── mongodb-store-37qsYI8A5ctkFlHTDVIc3O.immutable.md │ │ ├── navigator-5vNC9hp62PFUvxh0PLQcJ9.immutable.md │ │ ├── observable-7alzx5bqV1gD2Aj60hWQ0L.immutable.md │ │ ├── primary-identifier-attribute-5EqFynrkNUTa9DxYYmbmOl.immutable.md │ │ ├── property-bs5Xm31fCQXQkoZL24prZ.immutable.md │ │ ├── query-146gEiaHLp06V3LqhxRCzC.immutable.md │ │ ├── react-integration-4BgvR6gvTuqLdpNymyUYS1.immutable.md │ │ ├── role-3zJ3w6whE8RucN9kAhS5Hv.immutable.md │ │ ├── routable-7zjaksbkNa8sbNfqNnEKUu.immutable.md │ │ ├── route-3O1kMMGl4yZc9LGxH38Z3G.immutable.md │ │ ├── sanitizer-3hc34yGhzbK1cupoMtP6Dv.immutable.md │ │ ├── secondary-identifier-attribute-27lBtqHBopmgIAWwmeoLBg.immutable.md │ │ ├── storable-3UMrfeCfFVaVttjxtmCvVy.immutable.md │ │ ├── storable-attribute-1EYIvaUK2WvHmV3OxG5IzJ.immutable.md │ │ ├── storable-method-1o1egWUfiZzxO6y7Sda4rb.immutable.md │ │ ├── storable-primary-identifier-attribute-7qq06XjPnNRXumxcngJvZv.immutable.md │ │ ├── storable-property-6Ooq1wLy5pGx7Jb1qRrRyf.immutable.md │ │ ├── storable-secondary-identifier-attribute-1TKIxZX9JZ2aGFU5iEmUSv.immutable.md │ │ ├── store-1mGBVGCiO4K5X9dBakik9Z.immutable.md │ │ ├── validator-2aTKblcN30ADdXqrI3bHXv.immutable.md │ │ ├── value-type-FqKdGxNpEPIDVR56kq4NN.immutable.md │ │ ├── with-roles-CcLPnrWKVYxnZXgNTqVYi.immutable.md │ │ └── wrapper-4uhJFGS18pbZTt9qdtLnL2.immutable.md │ ├── src/ │ │ ├── components/ │ │ │ ├── application.tsx │ │ │ ├── article.tsx │ │ │ ├── blog.tsx │ │ │ ├── docs.tsx │ │ │ ├── home.tsx │ │ │ ├── newsletter.tsx │ │ │ └── user.tsx │ │ ├── custom.d.ts │ │ ├── docs.json │ │ ├── index.ts │ │ ├── markdown.tsx │ │ ├── styles.ts │ │ └── ui.tsx │ └── tsconfig.json ├── package.json └── redirection/ ├── package.json ├── public/ │ └── index.html └── simple-deployment.config.js