diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index f534b77f1f..a8e5fd4c4d 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -361,6 +361,15 @@ importers: '@rush-temp/love-resources': specifier: file:./projects/love-resources.tgz version: file:projects/love-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/mail': + specifier: file:./projects/mail.tgz + version: file:projects/mail.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/mail-assets': + specifier: file:./projects/mail-assets.tgz + version: file:projects/mail-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/mail-resources': + specifier: file:./projects/mail-resources.tgz + version: file:projects/mail-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) '@rush-temp/middleware': specifier: file:./projects/middleware.tgz version: file:projects/middleware.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) @@ -439,9 +448,15 @@ importers: '@rush-temp/model-love': specifier: file:./projects/model-love.tgz version: file:projects/model-love.tgz + '@rush-temp/model-mail': + specifier: file:./projects/model-mail.tgz + version: file:projects/model-mail.tgz '@rush-temp/model-notification': specifier: file:./projects/model-notification.tgz version: file:projects/model-notification.tgz + '@rush-temp/model-my-space': + specifier: file:./projects/model-my-space.tgz + version: file:projects/model-my-space.tgz '@rush-temp/model-preference': specifier: file:./projects/model-preference.tgz version: file:projects/model-preference.tgz @@ -634,6 +649,15 @@ importers: '@rush-temp/panel': specifier: file:./projects/panel.tgz version: file:projects/panel.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/my-space': + specifier: file:./projects/my-space.tgz + version: file:projects/my-space.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/my-space-assets': + specifier: file:./projects/my-space-assets.tgz + version: file:projects/my-space-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + '@rush-temp/my-space-resources': + specifier: file:./projects/my-space-resources.tgz + version: file:projects/my-space-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) '@rush-temp/platform': specifier: file:./projects/platform.tgz version: file:projects/platform.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) @@ -4318,6 +4342,18 @@ packages: resolution: {integrity: sha512-D9QBf+/PREVaj/zqju1EnET+45ImzmEpqYThK+I2fbGxZ2t128DbfspBi3Lf2pUure8yF2PSTlTJSzKmUtgvpA==, tarball: file:projects/love.tgz} version: 0.0.0 + '@rush-temp/mail-assets@file:projects/mail-assets.tgz': + resolution: {integrity: sha512-Lp1APt1DRMNrH2DhlOTTJjjIPhThHuc1+3Jj1fJU1ryH4FcJwCDFRw9InLEhjphf9cGC6z06EpgL3+3FtHOmJg==, tarball: file:projects/mail-assets.tgz} + version: 0.0.0 + + '@rush-temp/mail-resources@file:projects/mail-resources.tgz': + resolution: {integrity: sha512-8PtetoobhgQAiaGjqRf2aOgVY3Xh0KkyWTVLA2GIKaWY0lD0Vt69jDk1jptyXJOfkQLXRTSk7JxTs9lH96q8UQ==, tarball: file:projects/mail-resources.tgz} + version: 0.0.0 + + '@rush-temp/mail@file:projects/mail.tgz': + resolution: {integrity: sha512-khCqnHqt/MDtJv8eTx08ov9GkvC00wPeb1Q+QE5zk7xqbjK/QYJWPmdMRkvOJobCHLh2/g6ST2lgNbV938hrJA==, tarball: file:projects/mail.tgz} + version: 0.0.0 + '@rush-temp/middleware@file:projects/middleware.tgz': resolution: {integrity: sha512-d3bnkZYGycgZKQg4veVLwKczJdPhg65urbHhl9FJI3MV2izx8zCRu01frLW6zn61nYGW1fffugXfGoWBv4xxcA==, tarball: file:projects/middleware.tgz} version: 0.0.0 @@ -4418,10 +4454,18 @@ packages: resolution: {integrity: sha512-7bncZHfFYZKaCX+Wv+mcOHFU328pUC8qmqDw2V/o4Ee+fZAMCpudJuevAwtjf9uIu3fuyf1E+SLCgz8YXjyQBQ==, tarball: file:projects/model-love.tgz} version: 0.0.0 + '@rush-temp/model-mail@file:projects/model-mail.tgz': + resolution: {integrity: sha512-Z2WZ+9IF0119TDZDyODrcI3ptuQLQ/h7WaxvbPIFsUQm+MI5VPV6hCNUBNp8if2XQLmSn0YByejtW1bSBz/WAg==, tarball: file:projects/model-mail.tgz} + version: 0.0.0 + '@rush-temp/model-notification@file:projects/model-notification.tgz': resolution: {integrity: sha512-k7valecajKQwOhAeROASPm+RO2/D3xZSkan8Z09kmy+9dNLYBxQT/mr7k+HBdlzU4JD3fDQRP6EStyJBkLFZsQ==, tarball: file:projects/model-notification.tgz} version: 0.0.0 + '@rush-temp/model-my-space@file:projects/model-my-space.tgz': + resolution: {integrity: sha512-OxBDKFosN/3hsy9Ot0fDJTpzqFJvNLWxgJXtmculo1ksyKacMGZc4+9Ouxj49NFQ4JPl1UpBLZjaWPQ7xuyo3w==, tarball: file:projects/model-my-space.tgz} + version: 0.0.0 + '@rush-temp/model-preference@file:projects/model-preference.tgz': resolution: {integrity: sha512-r2RLrTIRHQ4txZegXOqXQfcPMJmA6HQz5i9EOi8RH7mGB+f6lqnBoYCf+mihfazPXLyF8NXbhPuNX1XHXMqvyg==, tarball: file:projects/model-preference.tgz} version: 0.0.0 @@ -4682,6 +4726,18 @@ packages: resolution: {integrity: sha512-cjwk9I0RxeNJQTgtbbcQlwiurbp+/T5MbiRnYTLWvxsMBVWnnxD5nToECUt1QdW/CjSSbPsaYP8hoMgt/AufCw==, tarball: file:projects/panel.tgz} version: 0.0.0 + '@rush-temp/my-space-assets@file:projects/my-space-assets.tgz': + resolution: {integrity: sha512-yGiP0aFiYA6RZiY4Ufqhk2egfhWvjEi3GOjcmLZ3eAl3samu/g4b3BcAKzo6SimMwKM2GQF+9oKHn1F/5LmSjA==, tarball: file:projects/my-space-assets.tgz} + version: 0.0.0 + + '@rush-temp/my-space-resources@file:projects/my-space-resources.tgz': + resolution: {integrity: sha512-dE2Jeu1rsu0l18l6oKj0Z+D99sS8fkuAcqoqh9alzavqquUvgGSXtTUB24l6Y6A0tbpshtAMLhmFSFgwPtSGHw==, tarball: file:projects/my-space-resources.tgz} + version: 0.0.0 + + '@rush-temp/my-space@file:projects/my-space.tgz': + resolution: {integrity: sha512-dBx6We9vl3uuETflughn1Q1jmxjzQdxZ0rf+OiZZ6lRM0u304BhlM7459AMcaZ76oxkqZ6ulRYVVxr8k7ZGHaA==, tarball: file:projects/my-space.tgz} + version: 0.0.0 + '@rush-temp/platform-rig@file:projects/platform-rig.tgz': resolution: {integrity: sha512-Ex4y6Gru0FdNgfJ8Q/TOIOZLrvmk+4eDiepGH95XOsHgcTQTfhHPfNwYBgC5yOqQrY9O8GDqWUZtV+KySEAQjg==, tarball: file:projects/platform-rig.tgz} version: 0.0.0 @@ -19105,6 +19161,96 @@ snapshots: - svelte - ts-node + '@rush-temp/mail-assets@file:projects/mail-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + + '@rush-temp/mail-resources@file:projects/mail-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-svelte: 2.35.1(eslint@8.56.0)(svelte@4.2.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.19) + sass: 1.71.1 + svelte: 4.2.19 + svelte-check: 3.6.9(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.19) + svelte-eslint-parser: 0.33.1(svelte@4.2.19) + svelte-loader: 3.2.0(svelte@4.2.19) + svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.19)(typescript@5.6.2) + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - coffeescript + - esbuild + - less + - node-notifier + - postcss + - postcss-load-config + - pug + - stylus + - sugarss + - supports-color + - ts-node + + '@rush-temp/mail@file:projects/mail.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + '@rush-temp/middleware@file:projects/middleware.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': dependencies: '@types/jest': 29.5.12 @@ -19488,6 +19634,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@rush-temp/model-mail@file:projects/model-mail.tgz': + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + prettier: 3.2.5 + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + '@rush-temp/model-notification@file:projects/model-notification.tgz': dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3) @@ -19502,6 +19662,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@rush-temp/model-my-space@file:projects/model-my-space.tgz': + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + prettier: 3.2.5 + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + '@rush-temp/model-preference@file:projects/model-preference.tgz': dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3) @@ -20621,6 +20795,97 @@ snapshots: - supports-color - ts-node + '@rush-temp/my-space-assets@file:projects/my-space-assets.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + + '@rush-temp/my-space-resources@file:projects/my-space-resources.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-svelte: 2.35.1(eslint@8.56.0)(svelte@4.2.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + fast-equals: 5.2.2 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.19) + sass: 1.71.1 + svelte: 4.2.19 + svelte-check: 3.6.9(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.19) + svelte-eslint-parser: 0.33.1(svelte@4.2.19) + svelte-loader: 3.2.0(svelte@4.2.19) + svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.19)(typescript@5.6.2) + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - coffeescript + - esbuild + - less + - node-notifier + - postcss + - postcss-load-config + - pug + - stylus + - sugarss + - supports-color + - ts-node + + '@rush-temp/my-space@file:projects/my-space.tgz(@babel/core@7.23.9)(@jest/types@29.6.3)(@types/node@20.11.19)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3))': + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.6.2) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0)(typescript@5.6.2) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)) + prettier: 3.2.5 + ts-jest: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.11.19)(ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3)))(typescript@5.6.2) + typescript: 5.6.2 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + '@rush-temp/platform-rig@file:projects/platform-rig.tgz(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3))(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint-plugin-n@15.7.0(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(svelte@4.2.19)': dependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) diff --git a/desktop/package.json b/desktop/package.json index 37c083bd9f..e1a7f9531f 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -215,6 +215,12 @@ "@hcengineering/card": "^0.6.0", "@hcengineering/card-assets": "^0.6.0", "@hcengineering/card-resources": "^0.6.0", + "@hcengineering/my-space": "^0.6.0", + "@hcengineering/my-space-assets": "^0.6.0", + "@hcengineering/my-space-resources": "^0.6.0", + "@hcengineering/mail": "^0.6.0", + "@hcengineering/mail-assets": "^0.6.0", + "@hcengineering/mail-resources": "^0.6.0", "electron-squirrel-startup": "~1.0.0", "dotenv": "~16.0.0", "electron-context-menu": "^4.0.4", diff --git a/desktop/src/ui/index.ts b/desktop/src/ui/index.ts index ecb4675626..2658d01ea9 100644 --- a/desktop/src/ui/index.ts +++ b/desktop/src/ui/index.ts @@ -58,12 +58,12 @@ window.addEventListener('DOMContentLoaded', () => { }) ipcMain.on('logout', () => { - const tokens = fetchMetadataLocalStorage(login.metadata.LoginTokens) + const tokens = fetchMetadataLocalStorage(login.metadata.LoginTokensV2) if (tokens !== null) { const loc = getCurrentLocation() // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete tokens[loc.path[1]] - setMetadataLocalStorage(login.metadata.LoginTokens, tokens) + setMetadataLocalStorage(login.metadata.LoginTokensV2, tokens) } setMetadata(presentation.metadata.Token, null) setMetadataLocalStorage(login.metadata.LastToken, null) diff --git a/desktop/src/ui/platform.ts b/desktop/src/ui/platform.ts index 5cb0b7a5cf..30fe696568 100644 --- a/desktop/src/ui/platform.ts +++ b/desktop/src/ui/platform.ts @@ -57,6 +57,8 @@ import { documentsId } from '@hcengineering/controlled-documents' import aiBot, { aiBotId } from '@hcengineering/ai-bot' import { testManagementId } from '@hcengineering/test-management' import { surveyId } from '@hcengineering/survey' +import { mySpaceId } from '@hcengineering/my-space' +import { mailId } from '@hcengineering/mail' import '@hcengineering/activity-assets' import '@hcengineering/attachment-assets' @@ -101,6 +103,7 @@ import '@hcengineering/text-editor-assets' import '@hcengineering/test-management-assets' import '@hcengineering/survey-assets' import '@hcengineering/card-assets' +import '@hcengineering/mail-assets' import { coreId } from '@hcengineering/core' import presentation, { parsePreviewConfig, parseUploadConfig, presentationId } from '@hcengineering/presentation' @@ -195,6 +198,8 @@ function configureI18n (): void { addStringsLoader(testManagementId, async (lang: string) => await import(`@hcengineering/test-management-assets/lang/${lang}.json`)) addStringsLoader(surveyId, async (lang: string) => await import(`@hcengineering/survey-assets/lang/${lang}.json`)) addStringsLoader(cardId, async (lang: string) => await import(`@hcengineering/card-assets/lang/${lang}.json`)) + addStringsLoader(mySpaceId, async (lang: string) => await import(`@hcengineering/my-space-assets/lang/${lang}.json`)) + addStringsLoader(mailId, async (lang: string) => await import(`@hcengineering/mail-assets/lang/${lang}.json`)) } export async function configurePlatform (): Promise { @@ -322,6 +327,7 @@ export async function configurePlatform (): Promise { addLocation(testManagementId, () => import(/* webpackChunkName: "test-management" */ '@hcengineering/test-management-resources')) addLocation(surveyId, () => import(/* webpackChunkName: "survey" */ '@hcengineering/survey-resources')) addLocation(cardId, () => import(/* webpackChunkName: "card" */ '@hcengineering/card-resources')) + addLocation(mySpaceId, () => import(/* webpackChunkName: "card" */ '@hcengineering/my-space-resources')) setMetadata(client.metadata.FilterModel, 'ui') setMetadata(client.metadata.ExtraPlugins, ['preference' as Plugin]) diff --git a/dev/docker-compose.yaml b/dev/docker-compose.yaml index bb7e47299e..99a9ceab8e 100644 --- a/dev/docker-compose.yaml +++ b/dev/docker-compose.yaml @@ -73,6 +73,7 @@ services: environment: - ACCOUNT_PORT=3000 - SERVER_SECRET=secret + - ADMIN_EMAILS=admin - STATS_URL=http://host.docker.internal:4900 # - DB_URL=postgresql://root@host.docker.internal:26257/defaultdb?sslmode=disable - DB_URL=${MONGO_URL} diff --git a/dev/prod/package.json b/dev/prod/package.json index aa685c2f8a..d08fe1f598 100644 --- a/dev/prod/package.json +++ b/dev/prod/package.json @@ -209,6 +209,12 @@ "@hcengineering/card": "^0.6.0", "@hcengineering/card-assets": "^0.6.0", "@hcengineering/card-resources": "^0.6.0", + "@hcengineering/my-space": "^0.6.0", + "@hcengineering/my-space-assets": "^0.6.0", + "@hcengineering/my-space-resources": "^0.6.0", + "@hcengineering/mail": "^0.6.0", + "@hcengineering/mail-assets": "^0.6.0", + "@hcengineering/mail-resources": "^0.6.0", "@sentry/svelte": "^8.52.1", "posthog-js": "~1.122.0" } diff --git a/dev/prod/public/config-worker.json b/dev/prod/public/config-worker.json index a8056e3d04..3fd5bb9b6c 100644 --- a/dev/prod/public/config-worker.json +++ b/dev/prod/public/config-worker.json @@ -26,5 +26,5 @@ "TELEGRAM_URL": "https://telegram.hc.engineering", "UPLOAD_CONFIG": "", "UPLOAD_URL": "https://dl.hc.engineering/upload/form-data/:workspace", - "TRANSACTOR_OVERRIDE": "wss://transactor00.hc.engineering" + "TRANSACTOR_OVERRIDE": "ws://localhost:3335" } \ No newline at end of file diff --git a/dev/prod/src/platform.ts b/dev/prod/src/platform.ts index c1739b7c04..ecf8d83a74 100644 --- a/dev/prod/src/platform.ts +++ b/dev/prod/src/platform.ts @@ -40,6 +40,7 @@ import login, { loginId } from '@hcengineering/login' import love, { loveId } from '@hcengineering/love' import notification, { notificationId } from '@hcengineering/notification' import onboard, { onboardId } from '@hcengineering/onboard' +import { mySpaceId } from '@hcengineering/my-space' import presence, { presenceId } from '@hcengineering/presence' import print, { printId } from '@hcengineering/print' import { productsId } from '@hcengineering/products' @@ -64,6 +65,7 @@ import uiPlugin from '@hcengineering/ui' import { uploaderId } from '@hcengineering/uploader' import { viewId } from '@hcengineering/view' import workbench, { workbenchId } from '@hcengineering/workbench' +import { mailId } from '@hcengineering/mail' import { bitrixId } from '@hcengineering/bitrix' @@ -89,6 +91,7 @@ import '@hcengineering/lead-assets' import '@hcengineering/login-assets' import '@hcengineering/love-assets' import '@hcengineering/notification-assets' +import '@hcengineering/my-space-assets' import '@hcengineering/preference-assets' import '@hcengineering/print-assets' import '@hcengineering/products-assets' @@ -323,6 +326,8 @@ function configureI18n(): void { ) addStringsLoader(surveyId, async (lang: string) => await import(`@hcengineering/survey-assets/lang/${lang}.json`)) addStringsLoader(cardId, async (lang: string) => await import(`@hcengineering/card-assets/lang/${lang}.json`)) + addStringsLoader(mySpaceId, async (lang: string) => await import(`@hcengineering/my-space-assets/lang/${lang}.json`)) + addStringsLoader(mailId, async (lang: string) => await import(`@hcengineering/mail-assets/lang/${lang}.json`)) } export async function configurePlatform() { @@ -511,6 +516,8 @@ export async function configurePlatform() { addLocation(surveyId, () => import(/* webpackChunkName: "survey" */ '@hcengineering/survey-resources')) addLocation(presenceId, () => import(/* webpackChunkName: "presence" */ '@hcengineering/presence-resources')) addLocation(cardId, () => import(/* webpackChunkName: "card" */ '@hcengineering/card-resources')) + addLocation(mySpaceId, () => import(/* webpackChunkName: "card" */ '@hcengineering/my-space-resources')) + addLocation(mailId, () => import(/* webpackChunkName: "card" */ '@hcengineering/mail-resources')) setMetadata(client.metadata.FilterModel, 'ui') setMetadata(client.metadata.ExtraPlugins, ['preference' as Plugin]) diff --git a/models/activity/src/plugin.ts b/models/activity/src/plugin.ts index 210ab46c36..f820672389 100644 --- a/models/activity/src/plugin.ts +++ b/models/activity/src/plugin.ts @@ -16,7 +16,7 @@ import { activityId, type ActivityMessage, type DocUpdateMessageViewlet } from ' import activity from '@hcengineering/activity-resources/src/plugin' import { type IntlString, mergeIds, type Resource } from '@hcengineering/platform' import { type Doc, type Ref } from '@hcengineering/core' -import type { Location } from '@hcengineering/ui' +import type { Location } from '@hcengineering/ui/src/types' import { type Action, type ActionCategory, diff --git a/models/all/package.json b/models/all/package.json index 9069c256d1..f69ddf04b5 100644 --- a/models/all/package.json +++ b/models/all/package.json @@ -115,6 +115,8 @@ "@hcengineering/model-test-management": "^0.6.0", "@hcengineering/model-survey": "^0.6.0", "@hcengineering/model-presence": "^0.6.0", - "@hcengineering/model-card": "^0.6.0" + "@hcengineering/model-card": "^0.6.0", + "@hcengineering/model-mail": "^0.6.0", + "@hcengineering/model-my-space": "^0.6.0" } } diff --git a/models/all/src/index.ts b/models/all/src/index.ts index e80c6707d2..ca532e1ddf 100644 --- a/models/all/src/index.ts +++ b/models/all/src/index.ts @@ -101,6 +101,8 @@ import testManagement, { testManagementId, createModel as testManagementModel } from '@hcengineering/model-test-management' +import mySpace, { mySpaceId, createModel as mySpaceModel } from '@hcengineering/model-my-space' +import { mailId, createModel as mailModel } from '@hcengineering/model-mail' import { serverDocumentsId, @@ -430,6 +432,18 @@ export default function buildModel (enabled: string[] = ['*'], disabled: string[ ], [surveyModel, surveyId], [presenceModel, presenceId], + [ + mySpaceModel, + mySpaceId, + { + label: mySpace.string.ConfigLabel, + description: mySpace.string.ConfigDescription, + enabled: true, + beta: true, + classFilter: defaultFilter + } + ], + [mailModel, mailId], [serverCoreModel, serverCoreId], [serverAttachmentModel, serverAttachmentId], diff --git a/models/card/src/index.ts b/models/card/src/index.ts index e36e4f342d..6d41c44afb 100644 --- a/models/card/src/index.ts +++ b/models/card/src/index.ts @@ -43,7 +43,7 @@ import view, { createAction } from '@hcengineering/model-view' import workbench from '@hcengineering/model-workbench' import { getEmbeddedLabel, type IntlString } from '@hcengineering/platform' import time, { type ToDo } from '@hcengineering/time' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import card from './plugin' export { cardId } from '@hcengineering/card' diff --git a/models/card/src/plugin.ts b/models/card/src/plugin.ts index ef1ce2aa73..f8fc7524d4 100644 --- a/models/card/src/plugin.ts +++ b/models/card/src/plugin.ts @@ -19,7 +19,7 @@ import type { Client, Doc, Ref } from '@hcengineering/core' import {} from '@hcengineering/core' import { mergeIds, type Resource } from '@hcengineering/platform' import { type ObjectSearchCategory, type ObjectSearchFactory } from '@hcengineering/model-presentation' -import { type Location, type ResolvedLocation } from '@hcengineering/ui' +import { type Location, type ResolvedLocation } from '@hcengineering/ui/src/types' import { type LocationData } from '@hcengineering/workbench' import { type Action, type ViewAction } from '@hcengineering/view' diff --git a/models/controlled-documents/src/plugin.ts b/models/controlled-documents/src/plugin.ts index 8d9c54b779..fdde0039ed 100644 --- a/models/controlled-documents/src/plugin.ts +++ b/models/controlled-documents/src/plugin.ts @@ -19,7 +19,7 @@ import type { Client, Doc, Ref } from '@hcengineering/core' import { type ObjectSearchCategory, type ObjectSearchFactory } from '@hcengineering/model-presentation' import { mergeIds, type Resource } from '@hcengineering/platform' import { type TagCategory } from '@hcengineering/tags' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import { type ActionCategory, type ViewAction } from '@hcengineering/view' import { type NotificationType, type NotificationGroup } from '@hcengineering/notification' import { type TextActionVisibleFunction, type TextActionFunction } from '@hcengineering/text-editor' diff --git a/models/document/src/plugin.ts b/models/document/src/plugin.ts index e83a4ff7c7..78b3ce3f2d 100644 --- a/models/document/src/plugin.ts +++ b/models/document/src/plugin.ts @@ -20,7 +20,7 @@ import document from '@hcengineering/document-resources/src/plugin' import { type ObjectSearchCategory, type ObjectSearchFactory } from '@hcengineering/model-presentation' import { type IntlString, mergeIds, type Resource } from '@hcengineering/platform' import { type TagCategory } from '@hcengineering/tags' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import type { Action, ActionCategory, ViewAction, Viewlet } from '@hcengineering/view' export default mergeIds(documentId, document, { diff --git a/models/drive/src/plugin.ts b/models/drive/src/plugin.ts index dc05a8f62e..3f351771c0 100644 --- a/models/drive/src/plugin.ts +++ b/models/drive/src/plugin.ts @@ -19,7 +19,7 @@ import { driveId } from '@hcengineering/drive' import drive from '@hcengineering/drive-resources/src/plugin' import { type ObjectSearchCategory, type ObjectSearchFactory } from '@hcengineering/model-presentation' import { type IntlString, type Resource, mergeIds } from '@hcengineering/platform' -import { type AnyComponent, type Location } from '@hcengineering/ui' +import { type AnyComponent, type Location } from '@hcengineering/ui/src/types' import { type Action, type ActionCategory, diff --git a/models/guest/src/index.ts b/models/guest/src/index.ts index 5c6e3ff038..743b4d37cc 100644 --- a/models/guest/src/index.ts +++ b/models/guest/src/index.ts @@ -2,7 +2,7 @@ import { type Class, type IndexingConfiguration, type Doc, type Domain, type Ref import { type PublicLink, type Restrictions } from '@hcengineering/guest' import { type Builder, Model } from '@hcengineering/model' import core, { TDoc } from '@hcengineering/model-core' -import { type Location } from '@hcengineering/ui' +import { type Location } from '@hcengineering/ui/src/types' import guest from './plugin' export const GUEST_DOMAIN = 'guest' as Domain diff --git a/models/guest/src/plugin.ts b/models/guest/src/plugin.ts index 855d30cd84..9d6aa4d3d8 100644 --- a/models/guest/src/plugin.ts +++ b/models/guest/src/plugin.ts @@ -2,7 +2,7 @@ import { type Doc, type Ref } from '@hcengineering/core' import { guestId } from '@hcengineering/guest' import guest from '@hcengineering/guest-resources/src/plugin' import { mergeIds } from '@hcengineering/platform' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import { type Action, type ActionCategory } from '@hcengineering/view' export default mergeIds(guestId, guest, { diff --git a/models/love/src/plugin.ts b/models/love/src/plugin.ts index 1829a21dfd..f8819f6ed0 100644 --- a/models/love/src/plugin.ts +++ b/models/love/src/plugin.ts @@ -16,7 +16,7 @@ import { type Client, type Doc, type Ref } from '@hcengineering/core' import { type NotificationType, type NotificationGroup } from '@hcengineering/notification' import { type Resource, mergeIds } from '@hcengineering/platform' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import { type ActionCategory, type ViewAction } from '@hcengineering/view' import { loveId } from '@hcengineering/love' import love from '@hcengineering/love-resources/src/plugin' diff --git a/models/mail/.eslintrc.js b/models/mail/.eslintrc.js new file mode 100644 index 0000000000..c1cf82cba0 --- /dev/null +++ b/models/mail/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/models/mail/.npmignore b/models/mail/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/models/mail/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/models/mail/config/rig.json b/models/mail/config/rig.json new file mode 100644 index 0000000000..2f6be36605 --- /dev/null +++ b/models/mail/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "model" +} diff --git a/models/mail/package.json b/models/mail/package.json new file mode 100644 index 0000000000..237d860888 --- /dev/null +++ b/models/mail/package.json @@ -0,0 +1,41 @@ +{ + "name": "@hcengineering/model-mail", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "author": "Anticrm Platform Contributors", + "template": "@hcengineering/model-package", + "license": "EPL-2.0", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "_phase:build": "compile transpile src", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier": "^3.1.0", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/activity": "^0.6.0", + "@hcengineering/chunter": "^0.6.20", + "@hcengineering/model": "^0.6.11", + "@hcengineering/model-contact": "^0.6.1", + "@hcengineering/model-chunter": "^0.6.0", + "@hcengineering/core": "^0.6.32", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/model-view": "^0.6.0", + "@hcengineering/mail": "^0.6.0" + } +} diff --git a/models/mail/src/index.ts b/models/mail/src/index.ts new file mode 100644 index 0000000000..f9c0a5f5e5 --- /dev/null +++ b/models/mail/src/index.ts @@ -0,0 +1,68 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import activity from '@hcengineering/activity' +import core, { IndexKind } from '@hcengineering/core' +import { type Builder, Index, Model, Prop, TypeString, UX } from '@hcengineering/model' +import contact from '@hcengineering/model-contact' +import view from '@hcengineering/model-view' +import { TChunterSpace } from '@hcengineering/model-chunter' + +import chunter from '@hcengineering/chunter' +import mail, { type MailThread } from '@hcengineering/mail' + +export { mailId } from '@hcengineering/mail' +export { default } from './plugin' + +@Model(mail.class.MailThread, chunter.class.ChunterSpace) +@UX(mail.string.MailThread, contact.icon.Person, undefined, undefined, undefined, mail.string.MailThread) +export class TMailThread extends TChunterSpace implements MailThread { + @Prop(TypeString(), mail.string.Subject) + @Index(IndexKind.FullText) + subject!: string + + @Prop(TypeString(), mail.string.MailThreadId) + @Index(IndexKind.Indexed) + mailThreadId!: string + + @Prop(TypeString(), mail.string.From) + @Index(IndexKind.FullText) + from!: string + + @Prop(TypeString(), mail.string.To) + @Index(IndexKind.FullText) + to!: string + + @Prop(TypeString(), mail.string.MailPreview) + preview!: string +} + +export function createModel (builder: Builder): void { + builder.createModel(TMailThread) + + builder.mixin(mail.class.MailThread, core.class.Class, activity.mixin.ActivityDoc, {}) + + builder.mixin(mail.class.MailThread, core.class.Class, view.mixin.ObjectPresenter, { + presenter: mail.component.MailThreadPresenter + }) + + builder.mixin(mail.class.MailThread, core.class.Class, view.mixin.ObjectEditor, { + editor: mail.component.MailThread + }) + + builder.mixin(mail.class.MailThread, core.class.Class, view.mixin.ObjectPanel, { + component: mail.component.MailThread + }) +} diff --git a/models/mail/src/plugin.ts b/models/mail/src/plugin.ts new file mode 100644 index 0000000000..e83fc27360 --- /dev/null +++ b/models/mail/src/plugin.ts @@ -0,0 +1,15 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +export { default } from '@hcengineering/mail' diff --git a/models/mail/tsconfig.json b/models/mail/tsconfig.json new file mode 100644 index 0000000000..9765b6086d --- /dev/null +++ b/models/mail/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/model/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/models/my-space/.eslintrc.js b/models/my-space/.eslintrc.js new file mode 100644 index 0000000000..c1cf82cba0 --- /dev/null +++ b/models/my-space/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/models/my-space/.npmignore b/models/my-space/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/models/my-space/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/models/my-space/config/rig.json b/models/my-space/config/rig.json new file mode 100644 index 0000000000..2f6be36605 --- /dev/null +++ b/models/my-space/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "model" +} diff --git a/models/my-space/package.json b/models/my-space/package.json new file mode 100644 index 0000000000..3d2512a7ce --- /dev/null +++ b/models/my-space/package.json @@ -0,0 +1,43 @@ +{ + "name": "@hcengineering/model-my-space", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "author": "Hardcore Engineering Inc.", + "template": "@hcengineering/model-package", + "license": "EPL-2.0", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "_phase:build": "compile transpile src", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier": "^3.1.0", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/core": "^0.6.32", + "@hcengineering/mail": "^0.6.0", + "@hcengineering/model": "^0.6.11", + "@hcengineering/model-core": "^0.6.0", + "@hcengineering/model-presentation": "^0.6.0", + "@hcengineering/model-workbench": "^0.6.1", + "@hcengineering/model-view": "^0.6.0", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/ui": "^0.6.15", + "@hcengineering/my-space": "^0.6.0", + "@hcengineering/my-space-resources": "^0.6.0" + } +} diff --git a/models/my-space/src/index.ts b/models/my-space/src/index.ts new file mode 100644 index 0000000000..4cb8f3de63 --- /dev/null +++ b/models/my-space/src/index.ts @@ -0,0 +1,81 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { AccountRole } from '@hcengineering/core' +import { type Builder } from '@hcengineering/model' +import core from '@hcengineering/model-core' +import view, { type Viewlet } from '@hcengineering/model-view' +import workbench from '@hcengineering/model-workbench' +import mail from '@hcengineering/mail' +import { mySpaceId } from '@hcengineering/my-space' + +import mySpace from './plugin' + +export { mySpaceId } from '@hcengineering/my-space' + +export { mySpace as default } + +export function createModel (builder: Builder): void { + builder.createDoc( + workbench.class.Application, + core.space.Model, + { + label: mySpace.string.MySpace, + icon: mySpace.icon.MySpace, + alias: mySpaceId, + accessLevel: AccountRole.User, + hidden: false, + locationResolver: mySpace.resolver.Location, + navigatorModel: { + spaces: [], + specials: [ + { + id: 'mail', + label: mySpace.string.Mail, + icon: mySpace.icon.Mail, + component: workbench.component.SpecialView, + componentProps: { + _class: mail.class.MailThread, + icon: mySpace.icon.Mail, + label: mySpace.string.Mail, + createLabel: mail.string.CreateMail, + createComponent: mail.component.CreateMail + } + } + ] + } + }, + mySpace.app.MySpace + ) + + builder.createDoc( + view.class.Viewlet, + core.space.Model, + { + attachTo: mail.class.MailThread, + descriptor: view.viewlet.Table, + config: [ + { key: 'createdBy', label: mail.string.From, displayProps: { fixed: 'left', key: 'app' } }, + '', + { key: 'modifiedOn', label: mail.string.Date, displayProps: { key: 'modified', fixed: 'right' } } + ], + configOptions: { + hiddenKeys: ['name'], + sortable: true + } + }, + mySpace.viewlet.TableMail + ) +} diff --git a/models/my-space/src/plugin.ts b/models/my-space/src/plugin.ts new file mode 100644 index 0000000000..629b4a354b --- /dev/null +++ b/models/my-space/src/plugin.ts @@ -0,0 +1,22 @@ +// +// Copyright © 2025 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { mergeIds } from '@hcengineering/platform' +import { mySpaceId } from '@hcengineering/my-space' +import mySpace from '@hcengineering/my-space-resources/src/plugin' + +export default mergeIds(mySpaceId, mySpace, { + component: {} +}) diff --git a/models/my-space/tsconfig.json b/models/my-space/tsconfig.json new file mode 100644 index 0000000000..9765b6086d --- /dev/null +++ b/models/my-space/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/model/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/models/presence/src/plugin.ts b/models/presence/src/plugin.ts index 1cb9b1449d..3c7bd4c46d 100644 --- a/models/presence/src/plugin.ts +++ b/models/presence/src/plugin.ts @@ -14,7 +14,7 @@ // import { mergeIds } from '@hcengineering/platform' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import { presenceId } from '@hcengineering/presence' import presence from '@hcengineering/presence-resources/src/plugin' diff --git a/models/print/src/plugin.ts b/models/print/src/plugin.ts index 154799ed6d..ae258440d3 100644 --- a/models/print/src/plugin.ts +++ b/models/print/src/plugin.ts @@ -16,7 +16,7 @@ import { type Doc, type Ref } from '@hcengineering/core' import { mergeIds } from '@hcengineering/platform' import { type ViewAction, type Action } from '@hcengineering/view' -import { type FilePreviewExtension } from '@hcengineering/presentation' +import { type FilePreviewExtension } from '@hcengineering/presentation/src/types' import { printId } from '@hcengineering/print' // This import is needed because of similar import in print plugin // Otherwise, TS complains about missing types for resulting merge diff --git a/models/task/src/index.ts b/models/task/src/index.ts index 5ef7c5f540..288c95d57f 100644 --- a/models/task/src/index.ts +++ b/models/task/src/index.ts @@ -76,8 +76,8 @@ import { type TaskTypeDescriptor, type TaskTypeKind } from '@hcengineering/task' -import type { AnyComponent } from '@hcengineering/ui' import { PaletteColorIndexes } from '@hcengineering/ui/src/colors' +import type { AnyComponent } from '@hcengineering/ui/src/types' import task from './plugin' diff --git a/models/text-editor/src/index.ts b/models/text-editor/src/index.ts index 82557e4dfb..0576c24f58 100644 --- a/models/text-editor/src/index.ts +++ b/models/text-editor/src/index.ts @@ -31,7 +31,7 @@ import { type TextEditorActionKind } from '@hcengineering/text-editor' // eslint-disable-next-line @typescript-eslint/no-unused-vars -import type { EditorKitOptions } from '@hcengineering/text-editor-resources' +import type { EditorKitOptions } from '@hcengineering/text-editor-resources/src/kits/editor-kit' import textEditor from './plugin' export { textEditorOperation } from './migration' diff --git a/models/time/src/index.ts b/models/time/src/index.ts index 77ad3f89fa..09ed08557b 100644 --- a/models/time/src/index.ts +++ b/models/time/src/index.ts @@ -53,7 +53,7 @@ import workbench from '@hcengineering/model-workbench' import notification from '@hcengineering/notification' import recruit from '@hcengineering/recruit' import tags from '@hcengineering/tags' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import { type TodoDoneTester, timeId, diff --git a/models/time/src/plugin.ts b/models/time/src/plugin.ts index 19b134da99..5e799286fc 100644 --- a/models/time/src/plugin.ts +++ b/models/time/src/plugin.ts @@ -16,7 +16,7 @@ import { type Client, type Doc, type Ref } from '@hcengineering/core' import { type Application } from '@hcengineering/model-workbench' import { type IntlString, mergeIds, type Resource } from '@hcengineering/platform' -import type { AnyComponent } from '@hcengineering/ui' +import type { AnyComponent } from '@hcengineering/ui/src/types' import { type Action, type ActionCategory } from '@hcengineering/view' import { timeId } from '@hcengineering/time' import time from '@hcengineering/time-resources/src/plugin' diff --git a/models/training/src/plugin.ts b/models/training/src/plugin.ts index 2f78c449d9..b75a6c85e6 100644 --- a/models/training/src/plugin.ts +++ b/models/training/src/plugin.ts @@ -18,7 +18,7 @@ import { trainingId } from '@hcengineering/training' import training from '@hcengineering/training-resources/src/plugin' import { mergeIds, type Resource } from '@hcengineering/platform' import { type Doc, type Ref } from '@hcengineering/core' -import { type Location, type ResolvedLocation } from '@hcengineering/ui' +import { type Location, type ResolvedLocation } from '@hcengineering/ui/src/types' import { type Application } from '@hcengineering/workbench' import { type ActionCategory } from '@hcengineering/view' diff --git a/models/uploader/src/plugin.ts b/models/uploader/src/plugin.ts index b9ca3910b3..1f9566018b 100644 --- a/models/uploader/src/plugin.ts +++ b/models/uploader/src/plugin.ts @@ -14,7 +14,7 @@ // import { mergeIds } from '@hcengineering/platform' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import { uploaderId } from '@hcengineering/uploader' import uploader from '@hcengineering/uploader-resources/src/plugin' diff --git a/models/view/src/utils.ts b/models/view/src/utils.ts index f0c2f599b7..db2a45edbc 100644 --- a/models/view/src/utils.ts +++ b/models/view/src/utils.ts @@ -16,7 +16,7 @@ import { type Class, type Data, type Doc, type Ref } from '@hcengineering/core' import { type Builder } from '@hcengineering/model' import core from '@hcengineering/model-core' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import { type Action, type AttributeCategory } from '@hcengineering/view' import view from '.' diff --git a/models/workbench/src/index.ts b/models/workbench/src/index.ts index 325f8272d5..2a346890f5 100644 --- a/models/workbench/src/index.ts +++ b/models/workbench/src/index.ts @@ -33,7 +33,7 @@ import type { SidebarEvent, WorkbenchTab } from '@hcengineering/workbench' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import core, { TClass, TDoc, TTx } from '@hcengineering/model-core' import presentation from '@hcengineering/model-presentation' diff --git a/packages/account-client/src/client.ts b/packages/account-client/src/client.ts index 7595b7c74a..0958eeb884 100644 --- a/packages/account-client/src/client.ts +++ b/packages/account-client/src/client.ts @@ -24,7 +24,8 @@ import { type WorkspaceInfoWithStatus, type WorkspaceMemberInfo, WorkspaceMode, - concatLink + concatLink, + type WorkspaceUserOperation } from '@hcengineering/core' import platform, { PlatformError, Severity, Status } from '@hcengineering/platform' import type { LoginInfo, OtpInfo, WorkspaceLoginInfo, RegionInfo, WorkspaceOperation } from './types' @@ -99,7 +100,7 @@ export interface AccountClient { listWorkspaces: (region?: string | null, mode?: WorkspaceMode | null) => Promise performWorkspaceOperation: ( workspaceId: string | string[], - event: 'archive' | 'migrate-to' | 'unarchive' | 'delete', + event: WorkspaceUserOperation, ...params: any ) => Promise assignWorkspace: (email: string, workspaceUuid: string, role: AccountRole) => Promise @@ -517,7 +518,7 @@ class AccountClientImpl implements AccountClient { async performWorkspaceOperation ( workspaceId: string | string[], - event: 'archive' | 'migrate-to' | 'unarchive' | 'delete', + event: WorkspaceUserOperation, ...params: any ): Promise { const request = { diff --git a/packages/account-client/src/types.ts b/packages/account-client/src/types.ts index 4dd45b92ad..e403cf5890 100644 --- a/packages/account-client/src/types.ts +++ b/packages/account-client/src/types.ts @@ -1,7 +1,16 @@ -import { WorkspaceDataId, WorkspaceUuid, type AccountRole, type PersonUuid, type Timestamp } from '@hcengineering/core' +import { + PersonId, + WorkspaceDataId, + WorkspaceUuid, + type AccountRole, + type PersonUuid, + type Timestamp +} from '@hcengineering/core' export interface LoginInfo { account: PersonUuid + name?: string + socialId?: PersonId token?: string } diff --git a/packages/core/src/classes.ts b/packages/core/src/classes.ts index 08ad008ad6..346abc96f3 100644 --- a/packages/core/src/classes.ts +++ b/packages/core/src/classes.ts @@ -737,6 +737,8 @@ export type WorkspaceMode = | 'pending-restore' // -> 'restoring' | 'restoring' // -> 'active' +export type WorkspaceUserOperation = 'archive' | 'migrate-to' | 'unarchive' | 'delete' | 'reset-attempts' + export function isActiveMode (mode?: WorkspaceMode): boolean { return mode === 'active' } diff --git a/packages/platform-rig/profiles/assets/tsconfig.json b/packages/platform-rig/profiles/assets/tsconfig.json index 8e578db9f7..94a2d03e17 100644 --- a/packages/platform-rig/profiles/assets/tsconfig.json +++ b/packages/platform-rig/profiles/assets/tsconfig.json @@ -16,6 +16,8 @@ "dom" ], "types": ["node", "jest"], - "incremental": true + "incremental": true, + "isolatedModules": true, + } } \ No newline at end of file diff --git a/packages/platform-rig/profiles/default/tsconfig.json b/packages/platform-rig/profiles/default/tsconfig.json index c434de43a6..f6ccee4ce9 100644 --- a/packages/platform-rig/profiles/default/tsconfig.json +++ b/packages/platform-rig/profiles/default/tsconfig.json @@ -17,6 +17,7 @@ "rootDir": "./src", "outDir": "./lib", "incremental": true, - "isolatedModules": true + "isolatedModules": true, + } } \ No newline at end of file diff --git a/packages/platform-rig/profiles/model/tsconfig.json b/packages/platform-rig/profiles/model/tsconfig.json index 3a7ae70f1b..1a954bd001 100644 --- a/packages/platform-rig/profiles/model/tsconfig.json +++ b/packages/platform-rig/profiles/model/tsconfig.json @@ -13,6 +13,7 @@ "esModuleInterop": true, "incremental": true, "types" : [], - "isolatedModules": true + "isolatedModules": true, + } } \ No newline at end of file diff --git a/packages/platform-rig/profiles/node/tsconfig.json b/packages/platform-rig/profiles/node/tsconfig.json index be325351a1..5430cf1c5a 100644 --- a/packages/platform-rig/profiles/node/tsconfig.json +++ b/packages/platform-rig/profiles/node/tsconfig.json @@ -15,6 +15,7 @@ "rootDir": "./src", "outDir": "./lib", "incremental": true, - "isolatedModules": true + "isolatedModules": true, + } } diff --git a/packages/platform-rig/profiles/package/tsconfig.json b/packages/platform-rig/profiles/package/tsconfig.json index 6c389326f9..be76b62921 100644 --- a/packages/platform-rig/profiles/package/tsconfig.json +++ b/packages/platform-rig/profiles/package/tsconfig.json @@ -15,6 +15,7 @@ "rootDir": "./src", "outDir": "./lib", "incremental": true, - "isolatedModules": true + "isolatedModules": true, + } } \ No newline at end of file diff --git a/packages/platform-rig/profiles/ui/tsconfig.json b/packages/platform-rig/profiles/ui/tsconfig.json index b2ec4aec54..fbddd04bc2 100644 --- a/packages/platform-rig/profiles/ui/tsconfig.json +++ b/packages/platform-rig/profiles/ui/tsconfig.json @@ -15,6 +15,7 @@ "lib": ["esnext", "dom"], "incremental": true, "types": ["jest"], - "isolatedModules": true + "isolatedModules": true, + } } diff --git a/packages/presentation/src/components/breadcrumbs/types.ts b/packages/presentation/src/components/breadcrumbs/types.ts index d26b8ff2c5..d3dc40a1c3 100644 --- a/packages/presentation/src/components/breadcrumbs/types.ts +++ b/packages/presentation/src/components/breadcrumbs/types.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { type AnyComponent, type AnySvelteComponent } from '@hcengineering/ui' +import { type AnyComponent, type AnySvelteComponent } from '@hcengineering/ui/src/types' interface BreadcrumbsProps { readonly color?: number | undefined diff --git a/packages/presentation/src/file.ts b/packages/presentation/src/file.ts index 4b0e6860e8..2e3b615c53 100644 --- a/packages/presentation/src/file.ts +++ b/packages/presentation/src/file.ts @@ -13,7 +13,7 @@ // limitations under the License. // -import { concatLink, type WorkspaceDataId, type Blob as PlatformBlob, type Ref } from '@hcengineering/core' +import { concatLink, type Blob as PlatformBlob, type Ref, type WorkspaceUuid } from '@hcengineering/core' import { PlatformError, Severity, Status, getMetadata } from '@hcengineering/platform' import { v4 as uuid } from 'uuid' @@ -99,12 +99,9 @@ function getFilesUrl (): string { return filesUrl.includes('://') ? filesUrl : concatLink(frontUrl, filesUrl) } -export function getCurrentWorkspaceId (): WorkspaceDataId { - return ( - getMetadata(plugin.metadata.WorkspaceDataId) ?? - (getMetadata(plugin.metadata.WorkspaceUuid) as unknown as WorkspaceDataId) ?? - ('' as WorkspaceDataId) - ) +export function getCurrentWorkspaceUuid (): WorkspaceUuid { + const workspaceUuid = getMetadata(plugin.metadata.WorkspaceUuid) ?? '' + return workspaceUuid as WorkspaceUuid } /** @@ -120,7 +117,7 @@ export function generateFileId (): string { export function getUploadUrl (): string { const template = getMetadata(plugin.metadata.UploadURL) ?? defaultUploadUrl - return template.replaceAll(':workspace', encodeURIComponent(getCurrentWorkspaceId())) + return template.replaceAll(':workspace', encodeURIComponent(getCurrentWorkspaceUuid())) } function getUploadConfig (): UploadConfig { @@ -142,7 +139,7 @@ function getFileUploadMethod (blob: Blob): { method: FileUploadMethod, url: stri * @public */ export function getFileUploadParams (blobId: string, blob: Blob): FileUploadParams { - const workspaceId = encodeURIComponent(getCurrentWorkspaceId()) + const workspaceId = encodeURIComponent(getCurrentWorkspaceUuid()) const fileId = encodeURIComponent(blobId) const { method, url: urlTemplate } = getFileUploadMethod(blob) @@ -170,7 +167,7 @@ export function getFileUrl (file: string, filename?: string): string { const template = getFilesUrl() return template .replaceAll(':filename', encodeURIComponent(filename ?? file)) - .replaceAll(':workspace', encodeURIComponent(getCurrentWorkspaceId())) + .replaceAll(':workspace', encodeURIComponent(getCurrentWorkspaceUuid())) .replaceAll(':blobId', encodeURIComponent(file)) } @@ -289,12 +286,12 @@ async function uploadFileWithSignedUrl (file: File, uuid: string, uploadUrl: str } } -export async function getJsonOrEmpty (file: string, name: string): Promise { +export async function getJsonOrEmpty (file: string, name: string): Promise { try { const fileUrl = getFileUrl(file, name) const resp = await fetch(fileUrl) - return await resp.json() + return (await resp.json()) as T } catch { - return {} + return undefined } } diff --git a/packages/presentation/src/plugin.ts b/packages/presentation/src/plugin.ts index c7704e663e..b339742cce 100644 --- a/packages/presentation/src/plugin.ts +++ b/packages/presentation/src/plugin.ts @@ -34,7 +34,7 @@ import { } from '@hcengineering/core' import type { Asset, IntlString, Metadata, Plugin, StatusCode } from '@hcengineering/platform' import { plugin } from '@hcengineering/platform' -import { type ComponentExtensionId } from '@hcengineering/ui' +import { type ComponentExtensionId } from '@hcengineering/ui/src/types' import { type PresentationMiddlewareFactory } from './pipeline' import type { PreviewConfig } from './preview' import { diff --git a/packages/presentation/src/preview.ts b/packages/presentation/src/preview.ts index 256a9cd1c1..b91827c2bc 100644 --- a/packages/presentation/src/preview.ts +++ b/packages/presentation/src/preview.ts @@ -2,7 +2,7 @@ import type { Blob, Ref } from '@hcengineering/core' import { concatLink } from '@hcengineering/core' import { getMetadata } from '@hcengineering/platform' -import { getFileUrl, getCurrentWorkspaceId } from './file' +import { getFileUrl, getCurrentWorkspaceUuid } from './file' import presentation from './plugin' export interface PreviewConfig { @@ -16,7 +16,7 @@ export interface VideoMeta { hls: string } -const defaultImagePreview = (): string => `/files/${getCurrentWorkspaceId()}?file=:blobId&size=:size` +const defaultImagePreview = (): string => `/files/${getCurrentWorkspaceUuid()}?file=:blobId&size=:size` /** * @@ -93,7 +93,7 @@ function blobToSrcSet ( return '' } - let url = cfg.image.replaceAll(':workspace', encodeURIComponent(getCurrentWorkspaceId())) + let url = cfg.image.replaceAll(':workspace', encodeURIComponent(getCurrentWorkspaceUuid())) const downloadUrl = getFileUrl(blob) const frontUrl = getMetadata(presentation.metadata.FrontUrl) ?? window.location.origin @@ -139,7 +139,7 @@ export async function getVideoMeta (file: string, filename?: string): Promise>): boolean { return client.getHierarchy().isDerived(_class, core.class.Space) } -export function setPresentationCookie (token: string, workspaceUuid: WorkspaceDataId): void { +export function setPresentationCookie (token: string, workspaceUuid: WorkspaceUuid): void { function setToken (path: string): void { const res = encodeURIComponent(plugin.metadata.Token.replaceAll(':', '-')) + diff --git a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte index 2d1a904afd..d6c1cf2f00 100644 --- a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte +++ b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte @@ -123,45 +123,49 @@ {#await getJsonOrEmpty(value.file, value.name)} {:then linkPreviewDetails} -
- {#if linkPreviewDetails.icon !== undefined && !useDefaultIcon} - link-preview { - useDefaultIcon = true - }} - /> - {:else} - - {/if} -
-
- -
- - {#if linkPreviewDetails.description} - {trimFilename(linkPreviewDetails.description)} - - {/if} - { - ev.stopPropagation() - ev.preventDefault() - dispatch('remove', value) + {#if linkPreviewDetails !== undefined} +
+ {#if linkPreviewDetails.icon !== undefined && !useDefaultIcon} + link-preview { + useDefaultIcon = true }} - > -
-
+
+ +
+ + {#if linkPreviewDetails.description} + {trimFilename(linkPreviewDetails.description)} + + {/if} + + + { + ev.stopPropagation() + ev.preventDefault() + dispatch('remove', value) + }} + > + + +
+
+ {/if} {/await} {:else} {#await getBlobRef(value.file, value.name, sizeToWidth('large')) then valueRef} diff --git a/plugins/attachment-resources/src/components/AttachmentRefInput.svelte b/plugins/attachment-resources/src/components/AttachmentRefInput.svelte index a22c3bb714..9f26072d92 100644 --- a/plugins/attachment-resources/src/components/AttachmentRefInput.svelte +++ b/plugins/attachment-resources/src/components/AttachmentRefInput.svelte @@ -29,15 +29,15 @@ import { Asset, IntlString, setPlatformStatus, unknownError } from '@hcengineering/platform' import { DraftController, + canDisplayLinkPreview, createQuery, deleteFile, draftsStore, + fetchLinkPreviewDetails, getClient, getFileMetadata, - uploadFile, - fetchLinkPreviewDetails, - canDisplayLinkPreview, - isLinkPreviewEnabled + isLinkPreviewEnabled, + uploadFile } from '@hcengineering/presentation' import { EmptyMarkup } from '@hcengineering/text' import textEditor, { type RefAction } from '@hcengineering/text-editor' @@ -46,7 +46,6 @@ import { createEventDispatcher, onDestroy, tick } from 'svelte' import attachment from '../plugin' import AttachmentPresenter from './AttachmentPresenter.svelte' - import { rmSync } from 'fs' export let objectId: Ref export let space: Ref diff --git a/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte b/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte index ff72a3994a..6218c23ad9 100644 --- a/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte +++ b/plugins/attachment-resources/src/components/LinkPreviewPresenter.svelte @@ -26,7 +26,7 @@ let useDefaultIcon = false let retryCount = 0 - let viewModel: LinkPreviewDetails + let viewModel: LinkPreviewDetails | undefined let previewImageSrc: string | undefined function refreshPreviewImage (): void { @@ -53,12 +53,13 @@ ) } onMount(() => { - void getJsonOrEmpty(attachment.file, attachment.name) + void getJsonOrEmpty(attachment.file, attachment.name) .then((res) => { - viewModel = res as LinkPreviewDetails + viewModel = res refreshPreviewImage() }) .catch((err) => { + viewModel = undefined console.error(err) }) }) diff --git a/plugins/bitrix-resources/src/plugin.ts b/plugins/bitrix-resources/src/plugin.ts index 35eac13619..e9d48e46e1 100644 --- a/plugins/bitrix-resources/src/plugin.ts +++ b/plugins/bitrix-resources/src/plugin.ts @@ -18,7 +18,7 @@ import { type IntlString, mergeIds } from '@hcengineering/platform' import bitrix, { bitrixId } from '@hcengineering/bitrix' import { type Ref } from '@hcengineering/core' import { type Handler, type IntegrationType } from '@hcengineering/setting' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' export default mergeIds(bitrixId, bitrix, { string: { diff --git a/plugins/board-resources/src/plugin.ts b/plugins/board-resources/src/plugin.ts index 40fa6ec7f6..7937afe3b5 100644 --- a/plugins/board-resources/src/plugin.ts +++ b/plugins/board-resources/src/plugin.ts @@ -16,7 +16,7 @@ import board, { boardId } from '@hcengineering/board' import { type Ref, type StatusCategory } from '@hcengineering/core' import { type IntlString, mergeIds } from '@hcengineering/platform' -import type { AnyComponent } from '@hcengineering/ui' +import type { AnyComponent } from '@hcengineering/ui/src/types' export default mergeIds(boardId, board, { string: { diff --git a/plugins/card-resources/src/plugin.ts b/plugins/card-resources/src/plugin.ts index b1134284c1..8de66b1f4a 100644 --- a/plugins/card-resources/src/plugin.ts +++ b/plugins/card-resources/src/plugin.ts @@ -16,7 +16,7 @@ import card, { cardId } from '@hcengineering/card' import { type Ref } from '@hcengineering/core' import { type IntlString, mergeIds } from '@hcengineering/platform' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' import { type Viewlet } from '@hcengineering/view' export default mergeIds(cardId, card, { diff --git a/plugins/chunter-resources/src/plugin.ts b/plugins/chunter-resources/src/plugin.ts index 5e70cb1c77..d2f93c3bdd 100644 --- a/plugins/chunter-resources/src/plugin.ts +++ b/plugins/chunter-resources/src/plugin.ts @@ -17,7 +17,7 @@ import chunter, { chunterId } from '@hcengineering/chunter' import type { Client, Doc, Ref, Space } from '@hcengineering/core' import type { IntlString, Resource } from '@hcengineering/platform' import { mergeIds } from '@hcengineering/platform' -import type { AnyComponent } from '@hcengineering/ui' +import type { AnyComponent } from '@hcengineering/ui/src/types' import { type ViewAction } from '@hcengineering/view' import { type DocNotifyContext, type InboxNotification } from '@hcengineering/notification' diff --git a/plugins/contact-resources/src/plugin.ts b/plugins/contact-resources/src/plugin.ts index b3c630f321..fe38707508 100644 --- a/plugins/contact-resources/src/plugin.ts +++ b/plugins/contact-resources/src/plugin.ts @@ -17,7 +17,7 @@ import contact, { contactId } from '@hcengineering/contact' import { type Client, type Doc } from '@hcengineering/core' import { type IntlString, mergeIds, type Resource } from '@hcengineering/platform' -import { type LabelAndProps, type Location } from '@hcengineering/ui' +import { type LabelAndProps, type Location } from '@hcengineering/ui/src/types' import { type CreateAggregationManagerFunc, type GrouppingManagerResource, diff --git a/plugins/controlled-documents-resources/src/plugin.ts b/plugins/controlled-documents-resources/src/plugin.ts index 2c139b36c7..bf16bd4b75 100644 --- a/plugins/controlled-documents-resources/src/plugin.ts +++ b/plugins/controlled-documents-resources/src/plugin.ts @@ -20,7 +20,7 @@ import documents, { } from '@hcengineering/controlled-documents' import { type Client, type Doc, type Ref, type Space } from '@hcengineering/core' import { type IntlString, mergeIds, type Resource } from '@hcengineering/platform' -import { type AnyComponent, type Location } from '@hcengineering/ui' +import { type AnyComponent, type Location } from '@hcengineering/ui/src/types' import type { KeyFilter, SortFunc, ViewActionAvailabilityFunction } from '@hcengineering/view' export default mergeIds(documentsId, documents, { diff --git a/plugins/controlled-documents/src/plugin.ts b/plugins/controlled-documents/src/plugin.ts index 28bca7c96d..d4262a15df 100644 --- a/plugins/controlled-documents/src/plugin.ts +++ b/plugins/controlled-documents/src/plugin.ts @@ -12,7 +12,7 @@ import { } from '@hcengineering/core' import type { Asset, Plugin, Resource } from '@hcengineering/platform' import { IntlString, plugin } from '@hcengineering/platform' -import type { AnyComponent, ResolvedLocation, Location } from '@hcengineering/ui' +import type { AnyComponent, ResolvedLocation, Location } from '@hcengineering/ui/src/types' import { Action } from '@hcengineering/view' import type { diff --git a/plugins/document-resources/src/plugin.ts b/plugins/document-resources/src/plugin.ts index 52e193a833..957500ec3a 100644 --- a/plugins/document-resources/src/plugin.ts +++ b/plugins/document-resources/src/plugin.ts @@ -16,7 +16,7 @@ import { type Client, type Doc, type Ref } from '@hcengineering/core' import document, { type Document, documentId } from '@hcengineering/document' import { mergeIds, type IntlString, type Resource } from '@hcengineering/platform' -import { type AnyComponent, type Location } from '@hcengineering/ui' +import { type AnyComponent, type Location } from '@hcengineering/ui/src/types' export default mergeIds(documentId, document, { component: { diff --git a/plugins/document/src/plugin.ts b/plugins/document/src/plugin.ts index 2c8fabcb29..7613d355f7 100644 --- a/plugins/document/src/plugin.ts +++ b/plugins/document/src/plugin.ts @@ -17,7 +17,7 @@ import type { Class, Doc, Mixin, Ref, SpaceType, SpaceTypeDescriptor } from '@hc import { NotificationGroup, NotificationType } from '@hcengineering/notification' import type { Asset, Plugin, Resource } from '@hcengineering/platform' import { IntlString, plugin } from '@hcengineering/platform' -import type { AnyComponent, Location, ResolvedLocation } from '@hcengineering/ui' +import type { AnyComponent, Location, ResolvedLocation } from '@hcengineering/ui/src/types' import { Action } from '@hcengineering/view' import { Document, DocumentSnapshot, SavedDocument, Teamspace } from './types' diff --git a/plugins/drive/src/plugin.ts b/plugins/drive/src/plugin.ts index 11c7d89a8b..4d52c95798 100644 --- a/plugins/drive/src/plugin.ts +++ b/plugins/drive/src/plugin.ts @@ -16,7 +16,7 @@ import type { Class, Doc, Mixin, Ref, SpaceType, SpaceTypeDescriptor, Type } from '@hcengineering/core' import type { Asset, IntlString, Plugin, Resource as PlatformResource } from '@hcengineering/platform' import { plugin } from '@hcengineering/platform' -import type { Location, ResolvedLocation } from '@hcengineering/ui' +import type { Location, ResolvedLocation } from '@hcengineering/ui/src/types' import { Drive, File, FileVersion, Folder, Resource } from './types' export * from './types' diff --git a/plugins/guest-resources/src/connect.ts b/plugins/guest-resources/src/connect.ts index d146e5b803..a6a099f126 100644 --- a/plugins/guest-resources/src/connect.ts +++ b/plugins/guest-resources/src/connect.ts @@ -9,7 +9,6 @@ import core, { type Client, type Version, type Ref, - type WorkspaceDataId, type PersonId } from '@hcengineering/core' import { setCurrentEmployee, type Employee } from '@hcengineering/contact' @@ -65,10 +64,7 @@ export async function connect (title: string): Promise { return } - setPresentationCookie( - token, - workspaceLoginInfo.workspaceDataId ?? (workspaceLoginInfo.workspace as unknown as WorkspaceDataId) - ) + setPresentationCookie(token, workspaceLoginInfo.workspace) setMetadata(presentation.metadata.Token, token) setMetadata(presentation.metadata.WorkspaceUuid, workspaceLoginInfo.workspace) @@ -246,16 +242,14 @@ export async function connect (title: string): Promise { } function clearMetadata (ws: string): void { - const tokens = fetchMetadataLocalStorage(login.metadata.LoginTokens) + const tokens = fetchMetadataLocalStorage(login.metadata.LoginTokensV2) if (tokens !== null) { const loc = getCurrentLocation() // eslint-disable-next-line delete tokens[loc.path[1]] - setMetadataLocalStorage(login.metadata.LoginTokens, tokens) + setMetadataLocalStorage(login.metadata.LoginTokensV2, tokens) } - const currentWorkspace = - getMetadata(presentation.metadata.WorkspaceDataId) ?? - (getMetadata(presentation.metadata.WorkspaceUuid) as unknown as WorkspaceDataId) + const currentWorkspace = getMetadata(presentation.metadata.WorkspaceUuid) if (currentWorkspace !== undefined) { setPresentationCookie('', currentWorkspace) } diff --git a/plugins/guest-resources/src/utils.ts b/plugins/guest-resources/src/utils.ts index ece1ad820b..7c98303d1c 100644 --- a/plugins/guest-resources/src/utils.ts +++ b/plugins/guest-resources/src/utils.ts @@ -11,7 +11,7 @@ import { workbenchId } from '@hcengineering/workbench' export async function checkAccess (doc: Doc): Promise { const loc = getCurrentLocation() const ws = loc.path[1] - const tokens: Record = fetchMetadataLocalStorage(login.metadata.LoginTokens) ?? {} + const tokens: Record = fetchMetadataLocalStorage(login.metadata.LoginTokensV2) ?? {} const token = tokens[ws] const endpoint = getMetadata(presentation.metadata.Endpoint) if (token === undefined || endpoint === undefined) return diff --git a/plugins/lead-resources/src/plugin.ts b/plugins/lead-resources/src/plugin.ts index 1a2a1c354b..c8f5f879bc 100644 --- a/plugins/lead-resources/src/plugin.ts +++ b/plugins/lead-resources/src/plugin.ts @@ -16,7 +16,7 @@ import lead, { leadId } from '@hcengineering/lead' import { type IntlString, mergeIds, type Resource } from '@hcengineering/platform' import { type Client, type Doc, type Ref } from '@hcengineering/core' -import { type AnyComponent } from '@hcengineering/ui' +import { type AnyComponent } from '@hcengineering/ui/src/types' export default mergeIds(leadId, lead, { string: { diff --git a/plugins/login-resources/src/components/AdminWorkspaces.svelte b/plugins/login-resources/src/components/AdminWorkspaces.svelte index 2093540748..f7843ceec9 100644 --- a/plugins/login-resources/src/components/AdminWorkspaces.svelte +++ b/plugins/login-resources/src/components/AdminWorkspaces.svelte @@ -1,4 +1,5 @@ + + + + 0 && isValidEmail(to)} + on:close={() => { + dispatch('close') + }} + on:changeContent +> + +
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
diff --git a/plugins/mail-resources/src/components/MailThread.svelte b/plugins/mail-resources/src/components/MailThread.svelte new file mode 100644 index 0000000000..edfc34f958 --- /dev/null +++ b/plugins/mail-resources/src/components/MailThread.svelte @@ -0,0 +1,120 @@ + + + + +{#if object !== undefined} + + dispatch('close')} + > + +