diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml
index 6145db6184..6f762d74cc 100644
--- a/common/config/rush/pnpm-lock.yaml
+++ b/common/config/rush/pnpm-lock.yaml
@@ -13,7 +13,7 @@ importers:
../../packages/measurements:
devDependencies:
'@hcengineering/platform-rig':
- specifier: workspace:^0.7.16
+ specifier: workspace:^0.7.17
version: link:../platform-rig
'@types/jest':
specifier: ^29.5.5
@@ -98,7 +98,7 @@ importers:
version: 2.1.0(@opentelemetry/api@1.9.0)
devDependencies:
'@hcengineering/platform-rig':
- specifier: workspace:^0.7.16
+ specifier: workspace:^0.7.17
version: link:../platform-rig
'@types/jest':
specifier: ^29.5.5
@@ -177,9 +177,9 @@ importers:
version: 4.2.20
svelte-preprocess:
specifier: ^5.1.3
- version: 5.1.4(@babel/core@7.28.4)(svelte@4.2.20)(typescript@5.9.3)
+ version: 5.1.4(@babel/core@7.28.4)(sass@1.93.2)(svelte@4.2.20)(typescript@5.9.3)
svelte2tsx:
- specifier: ^0.7.25
+ specifier: ^0.7.45
version: 0.7.45(svelte@4.2.20)(typescript@5.9.3)
typescript:
specifier: ^5.9.3
@@ -192,7 +192,7 @@ importers:
version: 3.4.7
devDependencies:
'@hcengineering/platform-rig':
- specifier: workspace:^0.7.16
+ specifier: workspace:^0.7.17
version: link:../platform-rig
'@types/jest':
specifier: ^29.5.5
@@ -231,10 +231,65 @@ importers:
specifier: ^29.1.1
version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1))(typescript@5.9.3)
+ ../../packages/ui-test:
+ dependencies:
+ svelte:
+ specifier: ^4.2.20
+ version: 4.2.20
+ devDependencies:
+ '@hcengineering/platform-rig':
+ specifier: workspace:^0.7.17
+ version: link:../platform-rig
+ '@types/jest':
+ specifier: ^29.5.5
+ version: 29.5.14
+ '@types/node':
+ specifier: ^22.15.29
+ version: 22.18.1
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^6.21.0
+ version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)
+ '@typescript-eslint/parser':
+ specifier: ^6.21.0
+ version: 6.21.0(eslint@8.57.1)(typescript@5.9.3)
+ eslint:
+ specifier: ^8.54.0
+ version: 8.57.1
+ eslint-config-standard-with-typescript:
+ specifier: ^40.0.0
+ version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint-plugin-import@2.32.0(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)(typescript@5.9.3)
+ eslint-plugin-import:
+ specifier: ^2.26.0
+ version: 2.32.0(eslint@8.57.1)
+ eslint-plugin-n:
+ specifier: ^15.4.0
+ version: 15.7.0(eslint@8.57.1)
+ eslint-plugin-node:
+ specifier: ^11.1.0
+ version: 11.1.0(eslint@8.57.1)
+ eslint-plugin-promise:
+ specifier: ^6.1.1
+ version: 6.6.0(eslint@8.57.1)
+ jest:
+ specifier: ^29.7.0
+ version: 29.7.0(@types/node@22.18.1)
+ sass:
+ specifier: ^1.53.0
+ version: 1.93.2
+ svelte-loader:
+ specifier: ^3.2.0
+ version: 3.2.4(svelte@4.2.20)
+ svelte-preprocess:
+ specifier: ^5.1.3
+ version: 5.1.4(@babel/core@7.28.4)(sass@1.93.2)(svelte@4.2.20)(typescript@5.9.3)
+ ts-jest:
+ specifier: ^29.1.1
+ version: 29.4.1(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.18.1))(typescript@5.9.3)
+
../scripts:
devDependencies:
'@hcengineering/platform-rig':
- specifier: workspace:^0.7.16
+ specifier: workspace:^0.7.17
version: link:../../packages/platform-rig
'@typescript-eslint/eslint-plugin':
specifier: ^6.21.0
@@ -1221,6 +1276,88 @@ packages:
peerDependencies:
'@opentelemetry/api': ^1.1.0
+ '@parcel/watcher-android-arm64@2.5.1':
+ resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@parcel/watcher-darwin-arm64@2.5.1':
+ resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@parcel/watcher-darwin-x64@2.5.1':
+ resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@parcel/watcher-freebsd-x64@2.5.1':
+ resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@parcel/watcher-linux-arm-glibc@2.5.1':
+ resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@parcel/watcher-linux-arm-musl@2.5.1':
+ resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.1':
+ resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@parcel/watcher-linux-arm64-musl@2.5.1':
+ resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@parcel/watcher-linux-x64-glibc@2.5.1':
+ resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ '@parcel/watcher-linux-x64-musl@2.5.1':
+ resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ '@parcel/watcher-win32-arm64@2.5.1':
+ resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@parcel/watcher-win32-ia32@2.5.1':
+ resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@parcel/watcher-win32-x64@2.5.1':
+ resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@parcel/watcher@2.5.1':
+ resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
+ engines: {node: '>= 10.0.0'}
+
'@protobufjs/aspromise@1.1.2':
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
@@ -1525,6 +1662,9 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ big.js@5.2.2:
+ resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+
bignumber.js@9.3.1:
resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
@@ -1603,6 +1743,10 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
+ chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
+
ci-info@3.9.0:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
@@ -1704,6 +1848,11 @@ packages:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
engines: {node: '>=8'}
+ detect-libc@1.0.3:
+ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
detect-newline@3.1.0:
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
engines: {node: '>=8'}
@@ -1738,6 +1887,10 @@ packages:
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ emojis-list@3.0.0:
+ resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
+ engines: {node: '>= 4'}
+
error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
@@ -2140,6 +2293,9 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
+ immutable@5.1.3:
+ resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==}
+
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
@@ -2513,6 +2669,10 @@ packages:
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ loader-utils@2.0.4:
+ resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
+ engines: {node: '>=8.9.0'}
+
locate-character@3.0.0:
resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
@@ -2604,6 +2764,9 @@ packages:
neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+ node-addon-api@7.1.1:
+ resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+
node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
@@ -2810,6 +2973,10 @@ packages:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+
reflect.getprototypeof@1.0.10:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
@@ -2883,6 +3050,11 @@ packages:
sander@0.5.1:
resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
+ sass@1.93.2:
+ resolution: {integrity: sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
scule@1.3.0:
resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
@@ -3023,6 +3195,20 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
+ svelte-dev-helper@1.1.9:
+ resolution: {integrity: sha512-oU+Xv7Dl4kRU2kdFjsoPLfJfnt5hUhsFUZtuzI3Ku/f2iAFZqBoEuXOqK3N9ngD4dxQOmN4OKWPHVi3NeAeAfQ==}
+
+ svelte-hmr@0.14.12:
+ resolution: {integrity: sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w==}
+ engines: {node: ^12.20 || ^14.13.1 || >= 16}
+ peerDependencies:
+ svelte: '>=3.19.0'
+
+ svelte-loader@3.2.4:
+ resolution: {integrity: sha512-e0HdDnkYH/MDx4/IfTSka5AOFg9yYJcPuoZJB5x0l60fkHjVjNvrrxr+rJegDG9J7ZymmdHt00/hdLw+QF299w==}
+ peerDependencies:
+ svelte: ^3.0.0 || ^4.0.0-next.0 || ^5.0.0-next.1
+
svelte-preprocess@5.1.4:
resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==}
engines: {node: '>= 16.0.0'}
@@ -4503,6 +4689,67 @@ snapshots:
'@opentelemetry/api': 1.9.0
'@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
+ '@parcel/watcher-android-arm64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-darwin-arm64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-darwin-x64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-freebsd-x64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm-glibc@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm-musl@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.5.1':
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-win32-ia32@2.5.1':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.5.1':
+ optional: true
+
+ '@parcel/watcher@2.5.1':
+ dependencies:
+ detect-libc: 1.0.3
+ is-glob: 4.0.3
+ micromatch: 4.0.8
+ node-addon-api: 7.1.1
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.5.1
+ '@parcel/watcher-darwin-arm64': 2.5.1
+ '@parcel/watcher-darwin-x64': 2.5.1
+ '@parcel/watcher-freebsd-x64': 2.5.1
+ '@parcel/watcher-linux-arm-glibc': 2.5.1
+ '@parcel/watcher-linux-arm-musl': 2.5.1
+ '@parcel/watcher-linux-arm64-glibc': 2.5.1
+ '@parcel/watcher-linux-arm64-musl': 2.5.1
+ '@parcel/watcher-linux-x64-glibc': 2.5.1
+ '@parcel/watcher-linux-x64-musl': 2.5.1
+ '@parcel/watcher-win32-arm64': 2.5.1
+ '@parcel/watcher-win32-ia32': 2.5.1
+ '@parcel/watcher-win32-x64': 2.5.1
+ optional: true
+
'@protobufjs/aspromise@1.1.2': {}
'@protobufjs/base64@1.1.2': {}
@@ -4885,6 +5132,8 @@ snapshots:
balanced-match@1.0.2: {}
+ big.js@5.2.2: {}
+
bignumber.js@9.3.1: {}
binary-extensions@2.3.0: {}
@@ -4969,6 +5218,10 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ chokidar@4.0.3:
+ dependencies:
+ readdirp: 4.1.2
+
ci-info@3.9.0: {}
cjs-module-lexer@1.4.3: {}
@@ -5075,6 +5328,9 @@ snapshots:
detect-indent@6.1.0: {}
+ detect-libc@1.0.3:
+ optional: true
+
detect-newline@3.1.0: {}
diff-sequences@29.6.3: {}
@@ -5103,6 +5359,8 @@ snapshots:
emoji-regex@8.0.0: {}
+ emojis-list@3.0.0: {}
+
error-ex@1.3.2:
dependencies:
is-arrayish: 0.2.1
@@ -5663,6 +5921,8 @@ snapshots:
ignore@5.3.2: {}
+ immutable@5.1.3: {}
+
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
@@ -6226,6 +6486,12 @@ snapshots:
lines-and-columns@1.2.4: {}
+ loader-utils@2.0.4:
+ dependencies:
+ big.js: 5.2.2
+ emojis-list: 3.0.0
+ json5: 2.2.3
+
locate-character@3.0.0: {}
locate-path@5.0.0:
@@ -6301,6 +6567,9 @@ snapshots:
neo-async@2.6.2: {}
+ node-addon-api@7.1.1:
+ optional: true
+
node-fetch@2.7.0:
dependencies:
whatwg-url: 5.0.0
@@ -6499,6 +6768,8 @@ snapshots:
dependencies:
picomatch: 2.3.1
+ readdirp@4.1.2: {}
+
reflect.getprototypeof@1.0.10:
dependencies:
call-bind: 1.0.8
@@ -6587,6 +6858,14 @@ snapshots:
mkdirp: 0.5.6
rimraf: 2.7.1
+ sass@1.93.2:
+ dependencies:
+ chokidar: 4.0.3
+ immutable: 5.1.3
+ source-map-js: 1.2.1
+ optionalDependencies:
+ '@parcel/watcher': 2.5.1
+
scule@1.3.0: {}
semver@6.3.1: {}
@@ -6742,7 +7021,20 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- svelte-preprocess@5.1.4(@babel/core@7.28.4)(svelte@4.2.20)(typescript@5.9.3):
+ svelte-dev-helper@1.1.9: {}
+
+ svelte-hmr@0.14.12(svelte@4.2.20):
+ dependencies:
+ svelte: 4.2.20
+
+ svelte-loader@3.2.4(svelte@4.2.20):
+ dependencies:
+ loader-utils: 2.0.4
+ svelte: 4.2.20
+ svelte-dev-helper: 1.1.9
+ svelte-hmr: 0.14.12(svelte@4.2.20)
+
+ svelte-preprocess@5.1.4(@babel/core@7.28.4)(sass@1.93.2)(svelte@4.2.20)(typescript@5.9.3):
dependencies:
'@types/pug': 2.0.10
detect-indent: 6.1.0
@@ -6752,6 +7044,7 @@ snapshots:
svelte: 4.2.20
optionalDependencies:
'@babel/core': 7.28.4
+ sass: 1.93.2
typescript: 5.9.3
svelte2tsx@0.7.45(svelte@4.2.20)(typescript@5.9.3):
diff --git a/common/scripts/package.json b/common/scripts/package.json
index 9f10550ac1..6e9ec7d22c 100644
--- a/common/scripts/package.json
+++ b/common/scripts/package.json
@@ -5,7 +5,7 @@
"format": "echo \"No format specified\""
},
"devDependencies": {
- "@hcengineering/platform-rig": "workspace:^0.7.16",
+ "@hcengineering/platform-rig": "workspace:^0.7.17",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.1.1",
diff --git a/packages/measurements-otlp/package.json b/packages/measurements-otlp/package.json
index 1764651662..045916b146 100644
--- a/packages/measurements-otlp/package.json
+++ b/packages/measurements-otlp/package.json
@@ -27,7 +27,7 @@
"_phase:validate": "compile validate"
},
"devDependencies": {
- "@hcengineering/platform-rig": "workspace:^0.7.16",
+ "@hcengineering/platform-rig": "workspace:^0.7.17",
"jest": "^29.7.0",
"ts-jest": "^29.1.1",
"@types/jest": "^29.5.5",
diff --git a/packages/measurements/package.json b/packages/measurements/package.json
index 83e47edaca..21d1751066 100644
--- a/packages/measurements/package.json
+++ b/packages/measurements/package.json
@@ -27,7 +27,7 @@
"_phase:validate": "compile validate"
},
"devDependencies": {
- "@hcengineering/platform-rig": "workspace:^0.7.16",
+ "@hcengineering/platform-rig": "workspace:^0.7.17",
"jest": "^29.7.0",
"ts-jest": "^29.1.1",
"@types/jest": "^29.5.5",
diff --git a/packages/platform-rig/CHANGELOG.json b/packages/platform-rig/CHANGELOG.json
index e6c110fd25..ef6895e454 100644
--- a/packages/platform-rig/CHANGELOG.json
+++ b/packages/platform-rig/CHANGELOG.json
@@ -1,6 +1,18 @@
{
"name": "@hcengineering/platform-rig",
"entries": [
+ {
+ "version": "0.7.17",
+ "tag": "@hcengineering/platform-rig_v0.7.17",
+ "date": "Sun, 12 Oct 2025 03:31:47 GMT",
+ "comments": {
+ "patch": [
+ {
+ "comment": "Fix svelte build"
+ }
+ ]
+ }
+ },
{
"version": "0.7.16",
"tag": "@hcengineering/platform-rig_v0.7.16",
diff --git a/packages/platform-rig/CHANGELOG.md b/packages/platform-rig/CHANGELOG.md
index 1eee7524a5..b0eb7db5e4 100644
--- a/packages/platform-rig/CHANGELOG.md
+++ b/packages/platform-rig/CHANGELOG.md
@@ -1,6 +1,13 @@
# Change Log - @hcengineering/platform-rig
-This log was last generated on Sun, 12 Oct 2025 02:49:17 GMT and should not be manually modified.
+This log was last generated on Sun, 12 Oct 2025 03:31:47 GMT and should not be manually modified.
+
+## 0.7.17
+Sun, 12 Oct 2025 03:31:47 GMT
+
+### Patches
+
+- Fix svelte build
## 0.7.16
Sun, 12 Oct 2025 02:49:17 GMT
diff --git a/packages/platform-rig/bin/compile.js b/packages/platform-rig/bin/compile.js
index a12563e5b8..281b979418 100755
--- a/packages/platform-rig/bin/compile.js
+++ b/packages/platform-rig/bin/compile.js
@@ -142,12 +142,15 @@ switch (args[0]) {
collectFileStats('lib', before)
collectFileStats('types', before)
- Promise.all([performESBuildWithSvelte(filesToTranspile), validateTSC(), generateSvelteTypes()]).then(() => {
- console.log('UI build time: ', Math.round((performance.now() - st) * 100) / 100)
- collectFileStats('lib', after)
- collectFileStats('types', after)
- cleanNonModified(before, after)
- })
+ performESBuildWithSvelte(filesToTranspile)
+ .then(() => generateSvelteTypes())
+ .then(() => validateTSC())
+ .then(() => {
+ console.log('UI build time: ', Math.round((performance.now() - st) * 100) / 100)
+ collectFileStats('lib', after)
+ collectFileStats('types', after)
+ cleanNonModified(before, after)
+ })
break
}
case 'transpile': {
@@ -218,6 +221,7 @@ async function performESBuildWithSvelte(filesToTranspile) {
bundle: false,
minify: false,
outdir: 'lib',
+ outbase: 'src',
keepNames: true,
sourcemap: 'linked',
allowOverwrite: true,
@@ -243,6 +247,7 @@ async function performESBuildWithSvelte(filesToTranspile) {
bundle: false,
minify: false,
outdir: 'lib',
+ outbase: 'src',
outExtension: { '.js': '.svelte.js' },
keepNames: true,
sourcemap: 'linked',
@@ -304,6 +309,7 @@ async function generateSvelteTypes() {
async function validateTSC(st) {
const buildDir = '.validate'
+ const typesDir = join(process.cwd(), 'types')
if (!existsSync(buildDir)) {
mkdirSync(buildDir, { recursive: true })
@@ -321,11 +327,29 @@ async function validateTSC(st) {
}
const configFile = ts.readConfigFile(configPath, ts.sys.readFile)
- const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, process.cwd(), {
+
+ // Prepare compiler options that include the types directory
+ const compilerOptionsOverride = {
emitDeclarationOnly: true,
incremental: true,
tsBuildInfoFile: join(buildDir, 'tsBuildInfoFile.info')
- })
+ }
+
+ // Add types directory to typeRoots if it exists
+ if (existsSync(typesDir)) {
+ compilerOptionsOverride.typeRoots = [
+ ...(configFile.config.compilerOptions?.typeRoots || ['./node_modules/@types']),
+ typesDir
+ ]
+ }
+
+ const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, process.cwd(), compilerOptionsOverride)
+
+ // Add generated Svelte type files to the file list
+ if (existsSync(typesDir)) {
+ const svelteTypeFiles = collectFiles(typesDir).filter((f) => f.endsWith('.svelte.d.ts'))
+ parsedConfig.fileNames.push(...svelteTypeFiles)
+ }
// Create the TypeScript program
const program = ts.createProgram({
diff --git a/packages/platform-rig/package.json b/packages/platform-rig/package.json
index 8a01dd3072..e0c10f3aa8 100644
--- a/packages/platform-rig/package.json
+++ b/packages/platform-rig/package.json
@@ -1,6 +1,6 @@
{
"name": "@hcengineering/platform-rig",
- "version": "0.7.16",
+ "version": "0.7.17",
"scripts": {
"build": "echo 'Not required'",
"format": "echo 'Not required'"
@@ -16,7 +16,7 @@
"esbuild-svelte": "^0.8.2",
"svelte": "^4.2.20",
"svelte-preprocess": "^5.1.3",
- "svelte2tsx": "^0.7.25",
+ "svelte2tsx": "^0.7.45",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-promise": "^6.1.1",
diff --git a/packages/postgres-base/package.json b/packages/postgres-base/package.json
index 7b46b5b9fc..717705bcf4 100644
--- a/packages/postgres-base/package.json
+++ b/packages/postgres-base/package.json
@@ -28,7 +28,7 @@
"_phase:validate": "compile validate"
},
"devDependencies": {
- "@hcengineering/platform-rig": "workspace:^0.7.16",
+ "@hcengineering/platform-rig": "workspace:^0.7.17",
"jest": "^29.7.0",
"ts-jest": "^29.1.1",
"@types/jest": "^29.5.5",
diff --git a/packages/ui-test/.eslintignore b/packages/ui-test/.eslintignore
new file mode 100644
index 0000000000..8dc69cef22
--- /dev/null
+++ b/packages/ui-test/.eslintignore
@@ -0,0 +1,5 @@
+lib
+types
+dist
+node_modules
+.build
diff --git a/packages/ui-test/.eslintrc.js b/packages/ui-test/.eslintrc.js
new file mode 100644
index 0000000000..1ff9bc7c24
--- /dev/null
+++ b/packages/ui-test/.eslintrc.js
@@ -0,0 +1,8 @@
+module.exports = {
+ extends: ['./node_modules/@hcengineering/platform-rig/profiles/node/eslint.config.json'],
+ parserOptions: {
+ tsconfigRootDir: __dirname,
+ project: './tsconfig.json',
+ extraFileExtensions: ['.svelte']
+ }
+}
diff --git a/packages/ui-test/.npmignore b/packages/ui-test/.npmignore
new file mode 100644
index 0000000000..9b083cb0c4
--- /dev/null
+++ b/packages/ui-test/.npmignore
@@ -0,0 +1,8 @@
+*
+!/lib/**
+!/types/**
+!/src/**
+!CHANGELOG.md
+/lib/**/__test__/
+/types/**/__test__/
+/src/**/__test__/
\ No newline at end of file
diff --git a/packages/ui-test/config/rig.json b/packages/ui-test/config/rig.json
new file mode 100644
index 0000000000..1a4b944f83
--- /dev/null
+++ b/packages/ui-test/config/rig.json
@@ -0,0 +1,5 @@
+{
+ "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
+ "rigPackageName": "@hcengineering/platform-rig",
+ "rigProfile": "ui"
+}
diff --git a/packages/ui-test/jest.config.js b/packages/ui-test/jest.config.js
new file mode 100644
index 0000000000..2cfd408b67
--- /dev/null
+++ b/packages/ui-test/jest.config.js
@@ -0,0 +1,7 @@
+module.exports = {
+ preset: 'ts-jest',
+ testEnvironment: 'node',
+ testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'],
+ roots: ["./src"],
+ coverageReporters: ["text-summary", "html"]
+}
diff --git a/packages/ui-test/package.json b/packages/ui-test/package.json
new file mode 100644
index 0000000000..ca9d53d921
--- /dev/null
+++ b/packages/ui-test/package.json
@@ -0,0 +1,59 @@
+{
+ "name": "@hcengineering/ui-test",
+ "version": "0.7.12",
+ "author": "Copyright © Hardcore Engineering Inc.",
+ "template": "@hcengineering/node-package",
+ "license": "EPL-2.0",
+ "main": "./lib/index.js",
+ "types": "./types/index.d.ts",
+ "files": [
+ "lib",
+ "types",
+ "src",
+ "fonts",
+ "styles"
+ ],
+ "exports": {
+ ".": {
+ "types": "./types/index.d.ts",
+ "default": "./lib/index.js"
+ },
+ "./lang/*": "./lang/*",
+ "./styles/*": "./styles/*"
+ },
+ "scripts": {
+ "build": "compile ui",
+ "build:watch": "compile ui",
+ "test": "jest --passWithNoTests --silent --forceExit",
+ "format": "format src",
+ "_phase:build": "compile ui",
+ "_phase:test": "jest --passWithNoTests --silent --forceExit",
+ "_phase:format": "format src",
+ "_phase:validate": "compile validate"
+ },
+ "devDependencies": {
+ "@hcengineering/platform-rig": "workspace:^0.7.17",
+ "svelte-loader": "^3.2.0",
+ "sass": "^1.53.0",
+ "svelte-preprocess": "^5.1.3",
+ "jest": "^29.7.0",
+ "ts-jest": "^29.1.1",
+ "@types/jest": "^29.5.5",
+ "@types/node": "^22.15.29",
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
+ "@typescript-eslint/parser": "^6.21.0",
+ "eslint": "^8.54.0",
+ "eslint-config-standard-with-typescript": "^40.0.0",
+ "eslint-plugin-import": "^2.26.0",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^6.1.1",
+ "eslint-plugin-n": "^15.4.0"
+ },
+ "dependencies": {
+ "svelte": "^4.2.20"
+ },
+ "repository": "https://github.com/hcengineering/huly.utils",
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/packages/ui-test/postcss.config.js b/packages/ui-test/postcss.config.js
new file mode 100644
index 0000000000..88752c6cb0
--- /dev/null
+++ b/packages/ui-test/postcss.config.js
@@ -0,0 +1,5 @@
+module.exports = {
+ plugins: [
+ require('autoprefixer')
+ ]
+}
diff --git a/packages/ui-test/src/component/Test.svelte b/packages/ui-test/src/component/Test.svelte
new file mode 100644
index 0000000000..7579eba4c2
--- /dev/null
+++ b/packages/ui-test/src/component/Test.svelte
@@ -0,0 +1,6 @@
+
+
+Test component
+{variable}
\ No newline at end of file
diff --git a/packages/ui-test/src/index.ts b/packages/ui-test/src/index.ts
new file mode 100644
index 0000000000..68e17b80c9
--- /dev/null
+++ b/packages/ui-test/src/index.ts
@@ -0,0 +1,4 @@
+import Test from './component/Test.svelte'
+export {
+ Test
+}
diff --git a/packages/ui-test/src/svelte.d.ts_ b/packages/ui-test/src/svelte.d.ts_
new file mode 100644
index 0000000000..81cd9a1388
--- /dev/null
+++ b/packages/ui-test/src/svelte.d.ts_
@@ -0,0 +1,4 @@
+declare module '*.svelte' {
+ import { SvelteComponentTyped } from 'svelte'
+ export default class extends SvelteComponentTyped {}
+}
diff --git a/packages/ui-test/svelte.config.js b/packages/ui-test/svelte.config.js
new file mode 100644
index 0000000000..944a06f73e
--- /dev/null
+++ b/packages/ui-test/svelte.config.js
@@ -0,0 +1,5 @@
+const sveltePreprocess = require('svelte-preprocess')
+
+module.exports = {
+ preprocess: sveltePreprocess()
+};
\ No newline at end of file
diff --git a/packages/ui-test/tsconfig.json b/packages/ui-test/tsconfig.json
new file mode 100644
index 0000000000..d815a54801
--- /dev/null
+++ b/packages/ui-test/tsconfig.json
@@ -0,0 +1,12 @@
+{
+ "extends": "./node_modules/@hcengineering/platform-rig/profiles/ui/tsconfig.json",
+
+ "compilerOptions": {
+ "rootDir": "./src",
+ "outDir": "./lib",
+ "declarationDir": "./types",
+ "tsBuildInfoFile": ".build/build.tsbuildinfo"
+ },
+ "include": ["src/**/*"],
+ "exclude": ["node_modules", "lib", "dist", "types", "bundle"]
+}
diff --git a/rush.json b/rush.json
index 113e70aa26..4142d81375 100644
--- a/rush.json
+++ b/rush.json
@@ -355,6 +355,11 @@
"packageName": "@hcengineering/postgres-base",
"projectFolder": "packages/postgres-base",
"shouldPublish": true
+ },
+ {
+ "packageName": "@hcengineering/ui-test",
+ "projectFolder": "packages/ui-test",
+ "shouldPublish": false
}
]
}