{"_id":"@semtalk/tbase","_rev":"41-58fdfa78477cba06e31367723440b768","name":"@semtalk/tbase","dist-tags":{"latest":"1.0.39"},"versions":{"1.0.0":{"name":"@semtalk/tbase","version":"1.0.0","_id":"@semtalk/tbase@1.0.0","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"}],"dist":{"shasum":"cbe7c70fdd8fce931eba826574e7cbb102a7f384","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.0.tgz","fileCount":71,"integrity":"sha512-GpMpzMHnUsca1XtmJd9IwlwX79mXtvUJ2uyV3fdQFUvr2K3pIJEkvdoxXIL+OyFhNy54ReQ3EqhObd/xWRhH4w==","signatures":[{"sig":"MEYCIQDSqkz4ntZJaKtB0Tn2lYnPob9HdoXp1spwWDYcy+YCzAIhAOaT3AsRLGrR8/hj6fpqyDzTTFHjzoBx3ZwhEHaaumHE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1417159},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"38cf06f992ece37df5d49207994d63a9d863215f","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.2.4","directories":{},"_nodeVersion":"18.19.1","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.0_1740570800024_0.4377786557560115","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@semtalk/tbase","version":"1.0.1","_id":"@semtalk/tbase@1.0.1","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"}],"dist":{"shasum":"86d0627e15d35aacd4cf80c860b6c26b40e59ca4","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.1.tgz","fileCount":76,"integrity":"sha512-nKmiFwUMy2SPn0dEB7cifX7rCZPEOroTMLDjpL5h9S/z6+ZR5nVuoB0aaj4cbrjDOzS3U2u8i7SZivSUWd+lwA==","signatures":[{"sig":"MEUCIQD7NZYnnWd4fIT0C0iAOQsLBP37sfksB684c+RyuegkpgIgC45bZrIrO3wR0O2BiRQ09hNwJ0+z2lq294h0vwOvkas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1417375},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"38cf06f992ece37df5d49207994d63a9d863215f","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.2.4","directories":{},"_nodeVersion":"18.19.1","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.1_1740572264391_0.6164232153333435","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@semtalk/tbase","version":"1.0.2","_id":"@semtalk/tbase@1.0.2","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"}],"dist":{"shasum":"1927a4395a43f8d17740db045ef5ed154e6d3b28","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.2.tgz","fileCount":75,"integrity":"sha512-a/IeVMFEslKs5npQBUn5aJKgQs5rQO/d4DgmDcrx6I5S/lWqHg5M1d7thVIUk1qNJSh61WPK/xC5h8+XEcBf2g==","signatures":[{"sig":"MEYCIQCu5Fkue33OZaSPjfoQ2knBJOzdwXgfvag+p1VN8g59dgIhANNRTuIRobotO27PHOqu65WLbrIf1zP2QCp2MvLNTiy+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1411435},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"38cf06f992ece37df5d49207994d63a9d863215f","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.2.4","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"18.19.1","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.2_1740584870029_0.3133551202854037","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@semtalk/tbase","version":"1.0.3","_id":"@semtalk/tbase@1.0.3","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"}],"dist":{"shasum":"603126e46b20b213523b1992216aed89fe53df1c","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.3.tgz","fileCount":75,"integrity":"sha512-On2AvFUZ7Ntwbjl6y+b3/g4SPQFuTchCWhPUPwyCLkqo42WDfU472mcI03iOnJteTJuhTBKnI3OYIx958dJRaw==","signatures":[{"sig":"MEUCIQCWMUVgY6tPTSqKSzzFgcCSCVmye756IgBE/aFReAVDHwIgDuW3Q5hz30joHrFTdjBegFoZBu0QQC7BejWPWyO14aQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1414383},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"123dcddae476cba3727a89624d9baea7af7f5cce","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.2.4","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"18.19.1","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.3_1741264088601_0.2556570924661048","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@semtalk/tbase","version":"1.0.4","_id":"@semtalk/tbase@1.0.4","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"}],"dist":{"shasum":"e92eee5c3ac046ea6fc294b8f1dbea79cadaf532","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.4.tgz","fileCount":75,"integrity":"sha512-u7TKucQnsGN7TWU5TBX7kDsKBZ40EfauncQY0DUQWD2wUloGzN0GmlCdUIm+2vaFOxGt1QUhk6HzjA0uZXpB6A==","signatures":[{"sig":"MEYCIQCr9q89w8uh2mE7KiJDE6reTECzdKzanvOptmstbbB+LgIhAOgvokMQu0KaAbNgQWHDqXak9Ke4wyHF9ue8hCknonH5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1414484},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"123dcddae476cba3727a89624d9baea7af7f5cce","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.2.4","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"18.19.1","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.4_1741264952109_0.14658745668200734","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@semtalk/tbase","version":"1.0.5","_id":"@semtalk/tbase@1.0.5","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"}],"dist":{"shasum":"d4f703845f4e67b366562e6c1b3024f534827cd7","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.5.tgz","fileCount":75,"integrity":"sha512-CbSEIGnDM5gz6F72rQO2y9tYQSpsG6unoODEn0DO6EmHIsyzAGhmsO5qdJ3vXSDZR3IAZE7+89hIPiJQOE1YoA==","signatures":[{"sig":"MEYCIQC49b8o4CVr4BBY3L58pbyTQauHXMWhE5fwIfqEg79zJAIhAK0ZPjagXBSh/yycyXvxMa6TyO19wEQo2jT4m/eI4avL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1419404},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"123dcddae476cba3727a89624d9baea7af7f5cce","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.2.4","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"18.19.1","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.5_1741344375851_0.5538422531361689","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@semtalk/tbase","version":"1.0.6","_id":"@semtalk/tbase@1.0.6","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"}],"dist":{"shasum":"618445cbf670c4de6bd076ab0304407ef44b811d","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.6.tgz","fileCount":75,"integrity":"sha512-aMDSaccyGZHE7Vc+cFkZakBSGeVQZO6RgftvEn2SWqLD3BNcJid9mJ6P9KSWkS/ADoVU3r99yoL0SFlUFpJI9A==","signatures":[{"sig":"MEYCIQCUXHa2xbKylTQGAefa5iC8sYPThQpfqC1/v8DSkvpGiAIhAP/vBpmfGCWgD9JVo9zABwp2FyzxrgWAzgvfC59cRmOZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1421289},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"123dcddae476cba3727a89624d9baea7af7f5cce","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.2.4","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"18.19.1","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.6_1741347968053_0.9866372537852912","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@semtalk/tbase","version":"1.0.7","_id":"@semtalk/tbase@1.0.7","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"6a1cf9b89ee2308a5fc95439480a1aa55eb55513","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.7.tgz","fileCount":75,"integrity":"sha512-m8HdUiN2wyn+UE6rozSEZO2+MuRX6xd7au2DjCfvUGqdGOcTjd8Pp/lbBm/kpZRUIlZuuSdVeVoGAno+HafzqQ==","signatures":[{"sig":"MEQCIFIEGJRGLekFhT07ODK7BzJYNogHFxYu6zPYcIhSs96eAiAILL3X48R1L4IhoCdePw10jZakozSrObVQv8ASbbA6VA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1420887},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"6731fd347fadf0162e5c6b6ac3fe07a0f6ff86f3","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.2.4","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"18.19.1","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.7_1743078422745_0.5515287496992489","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@semtalk/tbase","version":"1.0.8","_id":"@semtalk/tbase@1.0.8","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"8726005635f10e15eecd57384f2665a8d2925cd4","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.8.tgz","fileCount":75,"integrity":"sha512-WpJkoB1lsa02UiKJWTPOFf3LNY94P3o/Q8rZVnFkjMETQ+N5qNmwIMXW/E1MzhME3qMrQ554NYlyvvIAGfrlgw==","signatures":[{"sig":"MEUCIHRSWdupVITwgL1AGgbRLFY5f80ele8Xexo5NXPExWspAiEA31CXosecKpnDtEkDEeyroCilp+v7z2XCDyVqU4WmO28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1421354},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"6731fd347fadf0162e5c6b6ac3fe07a0f6ff86f3","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.2.4","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"18.19.1","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.8_1743081961067_0.10469159766772185","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@semtalk/tbase","version":"1.0.9","_id":"@semtalk/tbase@1.0.9","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"f19bd52ddfc2643c4405c0cbdab4c4e816c294e5","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.9.tgz","fileCount":75,"integrity":"sha512-GO8Zy1yyrfNEpJxv7TDHlzrBE04Oyone4XZ6WAmSFh9E7uqCQbOU3C3c+DIXAaX4GrwLCANHaQ79frJWYnT/4A==","signatures":[{"sig":"MEQCIDKFvuKqL0lfy7sQUw3OM6DXW3VGDggwd2sqWuy3DeGhAiAxHUSAD+Lm6kjB3t1BENMkOuYZz4itfyUhm07BgTEXGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1421538},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"b25001f98a761d0eb45c143dd96ae78957c37533","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"11.3.0","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.9_1753694509023_0.8707087754956704","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@semtalk/tbase","version":"1.0.10","_id":"@semtalk/tbase@1.0.10","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"632e5c9664c736972398d12683dbaeed15569768","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.10.tgz","fileCount":75,"integrity":"sha512-ki/c9m9MvgeSHPcg90m1HYR7Uq+PV7iMBZYAENbcPJ9MDyc2BxROgoYqD1rH+dxMSGu3D5yEtafoI04fiEmQ2Q==","signatures":[{"sig":"MEYCIQCxEH+FkR+5Hrem6U7xavV/HHMrsqFMPEj8BIFoUQzwuAIhAORMQ6grC7+5mfHHsDF6U5JLT9KYT/+HYIy9dYaDergn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1421860},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"b25001f98a761d0eb45c143dd96ae78957c37533","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"11.3.0","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.10_1753695014074_0.41952608153335946","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@semtalk/tbase","version":"1.0.11","_id":"@semtalk/tbase@1.0.11","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"b013a2a15a2df57b4e0a2857b3d9f70a6673df61","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.11.tgz","fileCount":75,"integrity":"sha512-r8CpIYts8aXDsCvYkqNtYGo5Msm4lHxZC90QBUelZrXBfWVU+Ut1sHPXipqjduq/lhUf8VX8XZJxsXysgVbYQg==","signatures":[{"sig":"MEUCIQCmEtCshL54j8T5VFuoKzblauu9fFgrwWqPJ3jOf7upPwIgBf9Fb98tC3YtTduTNAS4J6A73T72Hfo2T7BAWWHK3kM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1422048},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"b25001f98a761d0eb45c143dd96ae78957c37533","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"11.3.0","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.11_1753695476854_0.540081849476737","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@semtalk/tbase","version":"1.0.12","_id":"@semtalk/tbase@1.0.12","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"1d19bbacb63610d93a5275eed5a11496c1da6bbf","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.12.tgz","fileCount":75,"integrity":"sha512-hbUt7VIN7K5/pryaRHSKfy5sg4Yi0VZE/ugec5j5/i0nZxoOxK1jJDydYFzCTyn42aPieOrxOaWMlR4JiU4SuQ==","signatures":[{"sig":"MEQCIGkbeHVZMrxUSlpGAbIulBYQ89dUjJfWuodIUyEJTDiCAiBaCyls6gVi4wmkHsqKZDc7nJX+Zty1Negq3Ha6nSnhjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1422156},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"b25001f98a761d0eb45c143dd96ae78957c37533","scripts":{"build":"tsc"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"11.3.0","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.0.0","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.12_1753703408274_0.3779937281856136","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@semtalk/tbase","version":"1.0.14","_id":"@semtalk/tbase@1.0.14","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"2e637a413d9bfda2caeccdf68d5c7bc53a26d212","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.14.tgz","fileCount":125,"integrity":"sha512-CCq8xRxEwv8sMKfNAvdR/IDtjCAxh/iTI7BLLtuJtXDyatEDIFLwXYB8W0QGjtbbS5NfvFk7HhDQJ5tR4nrMFw==","signatures":[{"sig":"MEUCIA+/27KAG6eQ9FOThBXFb9ROGu/M5z6XrXuVgcbVWfLMAiEAj9uIQssA2dddSG+ftOjCqWRHWJLJkG/dAd6SBttp6Hw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2359621},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"a21c4e06d472807879d36caf763c69d2626dcf37","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.9.2","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"22.14.0","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.14_1754229161933_0.7890789301800665","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@semtalk/tbase","version":"1.0.15","_id":"@semtalk/tbase@1.0.15","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"c6f11d11c964d6ecacb35dbc7381501191ab53ca","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.15.tgz","fileCount":125,"integrity":"sha512-QTzFpEJLIZlOIa8TyjxS7ByXCSSvmISiQJcwTeioEGPOve/sqiRrzFG4SN3SVeBhOuFNn8i+G+H5LVh/rbZSsw==","signatures":[{"sig":"MEUCIQDd7ZGhu6Ly/Md128Aq9RJyGgRC/XTUGQCCPR3DGYmShQIgbEMDIPLMYRvwzlhWdS73dzCxl394RIZvm20XtnkfXdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2359660},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"a21c4e06d472807879d36caf763c69d2626dcf37","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.9.2","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"22.14.0","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.15_1754230285363_0.4358515602367894","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@semtalk/tbase","version":"1.0.16","_id":"@semtalk/tbase@1.0.16","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"7888a1c92ff368e7832178f35ef9c7c57ce91fad","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.16.tgz","fileCount":125,"integrity":"sha512-vOdtslEWKUFawGxO/TZkX6mLykAGhjaC3geSn48Q98X8olh+5e3QCe4XjPpugxy7A8porkb1CC10BsU/AxfH5g==","signatures":[{"sig":"MEUCIQDtj/tKd4UBI9BWTIrI2EZK7mZv3eQWBMF+vnNR3Y4qzQIgdIHFbvZi87aQClJIzQsNaxHDMJoe/QP+UMhuj5SfCLw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2359397},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"a21c4e06d472807879d36caf763c69d2626dcf37","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.9.2","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"22.14.0","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.16_1754231950911_0.3445386717840351","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@semtalk/tbase","version":"1.0.17","_id":"@semtalk/tbase@1.0.17","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"3d6e79203063857478c7080a2ad020c3295f3ac5","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.17.tgz","fileCount":186,"integrity":"sha512-k6CR1lWPCWByXEF955QKgVDY8N94q//6fAThhE6SmdqQFm0TWy6+5GEYmiwFVwtxv00cZmsO8gi9pp+2PWB65g==","signatures":[{"sig":"MEQCIE1r56Cv1Nq6dHElGSRgtPJDWlU7fyjiJ4zH7Mhwx1OQAiAYRC839bWZoled9+7asmDwL27IxmczyCwF9K6o5MqgKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3374867},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"404fee33d33a1d2b1540d53210a406bcd039d6d6","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.17_1761226998717_0.8566828856494046","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@semtalk/tbase","version":"1.0.18","_id":"@semtalk/tbase@1.0.18","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"c0ae3e6fda87323f33364111d34e795f6351aeb3","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.18.tgz","fileCount":186,"integrity":"sha512-dDuqA1Q60TtdvnnPthqrKtX8JmztdVZM7P8jSDISnKzQ/7hemsTErWF0YSlqG1mIeaBwzHjetBfDx8u399vz4w==","signatures":[{"sig":"MEUCIQCtsNzE3gmkYkk0XQ7j/2cNSxv54uSXgp7c4LA0UGE6mgIgFnvy9T5vnaFjRzchjouMbqdHTkjuTxv9Tf2Z8Q10DaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3381000},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"404fee33d33a1d2b1540d53210a406bcd039d6d6","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.0","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.18_1761295459735_0.33839398248257013","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@semtalk/tbase","version":"1.0.19","_id":"@semtalk/tbase@1.0.19","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"9be736defe43e210702469a17ad9c72e213bef03","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.19.tgz","fileCount":186,"integrity":"sha512-ZPVThuEmXuvfyggW8ErfUtb/fRrjdpFB+ZV/wW3IsEMBPYdoN1j1/lgEATBRgLvKCc9So/vl9u4RnyIW+B6Quw==","signatures":[{"sig":"MEUCIBHy3KF2CnUVxIKMyhwBrN48toXCS9hoJMDHIhyyImj7AiEAkkmLwCM0YqRuWArfc4A796RPOAMCdCFTsCWsZjJ46Mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3386460},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"4a032b42784643e0dcfbbbea84dc6e4413643303","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.19_1765276988181_0.7371047774585513","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@semtalk/tbase","version":"1.0.20","_id":"@semtalk/tbase@1.0.20","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"1c207016e131f6fb1da58ac32d145173b7cb99e3","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.20.tgz","fileCount":186,"integrity":"sha512-TrCWhWjYcGFKRN3ojydfe9lVrXv6KLfGUMdQqCE6VJW031DP6M6L3HYtxc95dCIutAC+EJnxIX7uQj172K1/Tw==","signatures":[{"sig":"MEQCIEcivYQarNw7eB4ABfY+zkKp4DmyK5Y262UROgT/C5frAiBZvKW3wazNH1zC15t+NsPHYlbZ8xddCSqmMzHeeufRhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3387570},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"4a032b42784643e0dcfbbbea84dc6e4413643303","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.20_1765281670686_0.6079294282342407","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@semtalk/tbase","version":"1.0.21","_id":"@semtalk/tbase@1.0.21","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"9568bbae5f2855697e06c2322f83dcb702908cd3","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.21.tgz","fileCount":186,"integrity":"sha512-sszs5rawT0PfYmkD4fcffvkqMH/anG3pUpeRR+y3kA5AUEZyDvpE1jnN2Q+ODEIK30K0Ev9rk7mI4Q0cxmSUNg==","signatures":[{"sig":"MEYCIQDIP/+HKACcxNNFOZXNO60QwFxrRtgZ2pQy2YUqOCkIZAIhAPSXFcUCyLeib8KtiLIejBWtYOWbJaNGN5oOSuxWky8X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3387790},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"273888c9e1f580cc256ccd119f9fb9ea373dad0c","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.21_1767367799825_0.7258151066937883","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@semtalk/tbase","version":"1.0.22","_id":"@semtalk/tbase@1.0.22","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"a90d40345450783b91756031080339a0147caad3","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.22.tgz","fileCount":186,"integrity":"sha512-z/I7BUCICK+Qzv1tv2pEfT1FDSQzHsFzNFuss9r4vtoQhZsqA4z092uHMNeeVZgubuvnwDWelntcpt+xm5jGRA==","signatures":[{"sig":"MEYCIQC4w2v171DXIxbNb/ZcP2O6b2A5d+WueVDtDxl6zg2mkwIhAPIrPBWXje83z0lwhWgZv/tccxZESac2WXdFNNQuuHJZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3388833},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"e86828c870d1b0e712f66652264ab6d28bbebd50","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.22_1768903543234_0.12382542235520955","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@semtalk/tbase","version":"1.0.23","_id":"@semtalk/tbase@1.0.23","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"3e3d214a7a1274ffb1aa1f190bc09a05c3ad1a22","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.23.tgz","fileCount":186,"integrity":"sha512-8A74jja8pRmDQ68l36/HhWIbi6REdI0j2ScnlnoBy/4zNKAmarCf4AU8hb7+0T2r6uvdoFP7Bl19fTw/eNNhbQ==","signatures":[{"sig":"MEUCIGsvEUSEfkhBiGIRlvI0MRhOTC8DZjMD/kiUB1UVLGGpAiEAhxr/xU1JljJTP9ZNCyGhbZYWVnKh4AvvI9XVTn0KSZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3389125},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"016d4418ea1226c58736d493955aa990bc2bc035","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.23_1769529991382_0.3734824321843122","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"@semtalk/tbase","version":"1.0.24","_id":"@semtalk/tbase@1.0.24","maintainers":[{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"a0068517ab07f6deab14fd8b0a58a10de68a4e72","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.24.tgz","fileCount":186,"integrity":"sha512-4dqutcbuIRBm1WqXIFQH2Y5cQgsHKIJ0S/sejJvosYsKCuteM4I5Iyhtbuv8ddulBki44LxIuxEagM4HqbWKKA==","signatures":[{"sig":"MEYCIQD2FE7qIDkF1yb++VjD+ykjfOOdF7JptOI918VZ1WQU5AIhANkXEoWPX7cxZS4c+pNlHzdN73s2q4NcY+MDIdx7zxxU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3394496},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"35492f35a83859a66eaac2ac82a72665dc545682","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.24_1771234323941_0.9257432667456333","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"@semtalk/tbase","version":"1.0.25","_id":"@semtalk/tbase@1.0.25","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"8b844d2caaf6a21a54907fe7aac8e52f86d2cb7b","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.25.tgz","fileCount":186,"integrity":"sha512-68V3B9T8enXEba531CzGOK+73RvuX4rXrmgoJGdO9PB3Vlu2QjJpcedlJZPRjuxpfTGMK5vOwkD75JaanRH3xg==","signatures":[{"sig":"MEUCIQC9b6Q0+/nK0Kl+AzS9HkSV7O3G4x/yTvnWgG9EkDJVtAIgeyhFjH0JwoZk1k05shy7DR/SGxK0AyAq6h+TlVYMDyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3395332},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"727b4ccfeb9266b4cb835b63bb1fc8ca62c69ca9","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.25_1773137494015_0.9741975533581011","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"@semtalk/tbase","version":"1.0.26","_id":"@semtalk/tbase@1.0.26","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"742fde767f557bfa00f19ade80d9f0dc075caea4","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.26.tgz","fileCount":186,"integrity":"sha512-iRHgb/dRj9YCvSa37GM7m0NvSbzjj6sdjmmykPoU5fkaUA6AoXYkRg+z0RqYsudewnIATDmtEUzxa2v5QIUOaw==","signatures":[{"sig":"MEYCIQDemiwTAHCuJZuHUBKD0lDYiXsncB0DV00zlWAnysDglgIhALfqlbZbdONuioWBt/cF6fK3PC2mMPNAZmWOY5ebwU/6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3395743},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"5b420e7a11ce186684a220fa6532a681c37daa9f","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.26_1773156883419_0.5091112694571112","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"@semtalk/tbase","version":"1.0.27","_id":"@semtalk/tbase@1.0.27","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"2162b6a3f10eaef1f6da8000bd1013462e6f3b57","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.27.tgz","fileCount":186,"integrity":"sha512-KRugdFEPqSyPqUgaJD8FJXEp+Q6Uge/gA/M4dliOyAGGp5J3fKLaebvOkitVi3kRXePBIoLTmv2gDCgnDJAO8Q==","signatures":[{"sig":"MEYCIQDjtvjQeipegJDomY3AAngbYo0AylHlUFCgARav63Li6wIhAKMdeYvCLpI4JfuTP74e3RcD4fA1EI7pKf7Qn1VZ3mct","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3396741},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"d3b9a1f58855c751352c9a2fee77b5a2fb115276","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.27_1773327494611_0.23715351835095455","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"@semtalk/tbase","version":"1.0.28","_id":"@semtalk/tbase@1.0.28","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"fa7e0fff87a3a3bea830c3bc6ff8bc07f84c7b64","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.28.tgz","fileCount":186,"integrity":"sha512-AI1zFrQlZqy4h5dBqSrex9HmACjqXqFpmQHxIoxMgrOWnj8+oi5+QYfSNG6AAiep6QJ0Bkt+CXyRYKRBRsJRlw==","signatures":[{"sig":"MEYCIQDuNt4eIsLpZ+NEHUfL3USzSJ93W9wOfxKoomMOyCTTywIhAIZ7TvxWoR3emoMjFppspXPH8sBo8ZdUVcvmIic3y9Lo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3397107},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"3df0c77246114b3779a3af8e1f955f4790f353e0","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.28_1774612719275_0.4378353414328211","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"@semtalk/tbase","version":"1.0.29","_id":"@semtalk/tbase@1.0.29","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"f56c5013f84b86e2f6084a0ee61d3b0dc1bfe8ee","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.29.tgz","fileCount":186,"integrity":"sha512-XyiE6b/W3QP/bEULclSBQkd1W3LJAKWH6lV9Kv6SgniRzmxiDZ+8S2nfSg+3ExqhFqC1itCwzn0AVXRjbO91mQ==","signatures":[{"sig":"MEYCIQCu2vy0usULKklGYtqrEtSmHk+msge00lAKkzdWIo5BvgIhAPBTJhsLFRU2Bi7UnpMLACDC9/eylRpmYgts+AHjKack","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3397509},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"a96135ad08786b96193e75a39201710d204c96e5","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.29_1776952931101_0.1419012200617622","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"@semtalk/tbase","version":"1.0.30","_id":"@semtalk/tbase@1.0.30","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"c4f8ef1dbc3359856f7df081254380795dbe21ac","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.30.tgz","fileCount":186,"integrity":"sha512-n4g9ZPefq9OqWGnLLlWbo28pLbG9aoIeJ4gNwloYUAE6wnNKKswfIXaaH94GZlh2WGBM3VbLNjl0dqYnEFiYlg==","signatures":[{"sig":"MEUCIGFDwUFZWJviAEPVlBPS4EgdRiukyHik3/u5cBI05b/uAiEA/nNGuowiOTu1VFp7WqZK4WjwTGIU7KooaR4NvnD3CRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3397749},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"3a69088a9c7efe2e17d65aeeaeaa3697b10f8062","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.30_1777194949862_0.6733755670084047","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"@semtalk/tbase","version":"1.0.31","_id":"@semtalk/tbase@1.0.31","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"60f193c45ad6ea594256bb719a3a7da713d707a7","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.31.tgz","fileCount":186,"integrity":"sha512-xoaWjNMfxMqG4C0+UNzbLU0LivZtI5Ei52M9JD3BHpSe+0E5Dp3YizbFUG7Y+O1Il2bAWbX3bnpYAuYqO3gD+g==","signatures":[{"sig":"MEUCIQD1SWQ6up9MyQ7WckD9umMVHfJsh23OV7gOjyh/M1tf9wIgJBAtUMnSkKrBbCBaihvnJkznUjvniEFVmqa4Di3udEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3398521},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"f30a162c81ab8986c0d0cb7b145590e7b5049f1e","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.31_1777278413467_0.5422544596664143","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"@semtalk/tbase","version":"1.0.32","_id":"@semtalk/tbase@1.0.32","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"61539b74a2abcd4c7a9ff85dd1827369da418d76","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.32.tgz","fileCount":186,"integrity":"sha512-g4mE9r1FzeiPQY163qsCRdXpt7B3fcKsJMkJKBCWsJYA42aMX08KTNubuLK0Pm/EJ6k7zm860GbJW8Qp/SF3Yg==","signatures":[{"sig":"MEUCIQDCqnXqRyJyxv7RP8f7Hd3BoG9jNz69PXGB++2BCS/xSAIgIiyUMtFhufFKiq8EUyoq3NfvupqONqAk1O0JNzAn4zU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3398526},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"1eaf6ab326abb561093e172cc2176195d5ced994","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.32_1777292687946_0.1690312480292795","host":"s3://npm-registry-packages-npm-production"}},"1.0.33":{"name":"@semtalk/tbase","version":"1.0.33","_id":"@semtalk/tbase@1.0.33","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"93b19ce48065c116defadc458adf9bc15494ebcd","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.33.tgz","fileCount":186,"integrity":"sha512-Tt+rcF7UESaoyRVgwX5ilWCtDhv+LN4BXSjHeqKbn4wTW2H7s8GpkCqbcOu5jEewb1oqUHBgo1udZV/9PxBDKw==","signatures":[{"sig":"MEYCIQD9++37I6qQJnV2n2C9j8cTGcrDJAgg5GwRq4l1n14k6gIhAIErKZRGKNzUwcXYWNF2MwLKYJ9X+PB87dBdCT+wTphU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3404699},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"112243743b795ab1dcc48a55e8f9244bdbbc7de9","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.33_1777373671295_0.3313097964224734","host":"s3://npm-registry-packages-npm-production"}},"1.0.34":{"name":"@semtalk/tbase","version":"1.0.34","_id":"@semtalk/tbase@1.0.34","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"51f06337b3f8ca9776c5d5f681537bfcdda4b92c","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.34.tgz","fileCount":186,"integrity":"sha512-I3hw2iRVAeseDpGA1elVS6APfzH7+ugjS4tDDKVJaIqL84RscmkPZ9H25w3NSGXOyrEJmw+Cb90rv6PWAnc2gg==","signatures":[{"sig":"MEYCIQC5ZdUAUg73b2XgO5DU32bRO0v804eG0MOv6aWdpe1BaQIhALmFLYOPPhSgm2G+eQ1FdXmv09gaD3XeUJuHcs5oYTFT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3406849},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"33af0dd0c5e5e59e31f12975ae62a8e984f811b4","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.34_1777379961023_0.77498478277279","host":"s3://npm-registry-packages-npm-production"}},"1.0.35":{"name":"@semtalk/tbase","version":"1.0.35","_id":"@semtalk/tbase@1.0.35","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"3d0d1efdf377db0d091297974600e3c1f2a20c95","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.35.tgz","fileCount":186,"integrity":"sha512-EaWIZfCvXezdMb3Bj6ySTCsGsayEYxmSmj7hSsWE9kzLztkXONYvdElnGEJuzQoIHRLIBP7bq3fiyXWcLGvUng==","signatures":[{"sig":"MEYCIQD+Mo1MY3n+oKZyzSvajDZC38xqHkLn469uqFr5G3LWBwIhAK1ccHwJMLDwoUwe67vuya8PHz5ZmuLT6ag5Nnf1duXd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3409477},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"43a2c1469136620308b531c9b9231c3f5a438205","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.35_1777381996690_0.8586333382424498","host":"s3://npm-registry-packages-npm-production"}},"1.0.36":{"name":"@semtalk/tbase","version":"1.0.36","_id":"@semtalk/tbase@1.0.36","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"64c977d9b4d344f0391c97332142121b2e924dac","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.36.tgz","fileCount":186,"integrity":"sha512-9ABLnUhu03EJn2ICq0UMreJhOkWgrrRNEGuBYD+fSL1TGzAjQ3c0+dUOybSlwODIPGCUeUDgSPen+NfzcfdsGw==","signatures":[{"sig":"MEUCIC0PUUG441mlJN9oaJEA2BUockucMjEZURv8v7igmY/iAiEA1wH8AMCUvehPvKRIosAY/laG68+2vjAPCzpm9t32w5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3409477},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"3e7528bde5c7b4526c32756c44c9cb1a76946cf4","scripts":{"build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.36_1777387260087_0.4161233498021526","host":"s3://npm-registry-packages-npm-production"}},"1.0.37":{"name":"@semtalk/tbase","version":"1.0.37","_id":"@semtalk/tbase@1.0.37","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"38430d25d45607dac6881b59db67ce009e27e6d8","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.37.tgz","fileCount":190,"integrity":"sha512-PDh7Re0NY4UN83grABZN4y7F/72ci7cRGDvOC8GN2/DFPGT0nwZlsFbWboi0o9c1Pm/5pOan2UUEIRq9UHBhQg==","signatures":[{"sig":"MEUCIQC0Y3uwm0dhIw6lK0ZomfciD9hUsywiSr6YthuYooS7TwIgI6ZC5gmVjDz1OHnaxKqdoVv2iYMojqDQdjm6JARKDTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3385432},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"e9fa9374a160e439ca2684e5a26b2023bc409d19","scripts":{"test":"tsc -p tsconfig.testbuild.json && node ../../app/node_modules/jest/bin/jest.js -c jest.config.js --runInBand","build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"npm login\r npm run build\r npm publish --access=public","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.37_1777457967719_0.7469870166192354","host":"s3://npm-registry-packages-npm-production"}},"1.0.38":{"name":"@semtalk/tbase","version":"1.0.38","_id":"@semtalk/tbase@1.0.38","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"dist":{"shasum":"b1ea7dafc55ffcd50bbc2955c14efb33a43c4d10","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.38.tgz","fileCount":190,"integrity":"sha512-NfFRgETMXt1lxrR6v7jGj1E6zmWjDzUHgFCPv1PxXDxT5TJwjWiFAYKaHJvZPYvImtKfR44bIoYhcQmPiu+ECA==","signatures":[{"sig":"MEUCIFm3TdYAqYaet7K189iDB0deR6fwmK8bDrxSUb9ue4VcAiEAhbT0EGKkHOlOeBiMAGpq0NPc+fXBsyi+eyF4NGwrzVY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3403436},"main":"lib/cjs/index.js","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","gitHead":"946b9ad6a3b31cfc0dab09b17524a79c8fdec7e2","scripts":{"test":"tsc -p tsconfig.testbuild.json && node ../../app/node_modules/jest/bin/jest.js -c jest.config.js --runInBand","build":"npm run build:esm && npm run build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json"},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"_npmVersion":"10.8.2","description":"`tbase` is the in-memory model layer behind SemTalk. It gives you one object graph that holds:","directories":{},"_nodeVersion":"20.19.3","dependencies":{"lodash":"^4.17.21","xpath-ts":"^1.3.13","@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.9.5","@types/lodash":"^4.14.170"},"_npmOperationalInternal":{"tmp":"tmp/tbase_1.0.38_1777969722927_0.6289809733883174","host":"s3://npm-registry-packages-npm-production"}},"1.0.39":{"name":"@semtalk/tbase","version":"1.0.39","main":"lib/cjs/index.js","module":"lib/esm/index.js","types":"lib/esm/index.d.ts","scripts":{"build:esm":"tsc -p tsconfig.esm.json","build:cjs":"tsc -p tsconfig.cjs.json","build":"npm run build:esm && npm run build:cjs","test":"tsc -p tsconfig.testbuild.json && node ../../app/node_modules/jest/bin/jest.js -c jest.config.js --runInBand"},"dependencies":{"@semtalk/global":"^1.0.2","guid-typescript":"^1.0.9","lodash":"^4.17.21","xpath-ts":"^1.3.13"},"devDependencies":{"@types/lodash":"^4.14.170","typescript":"^4.9.5"},"_id":"@semtalk/tbase@1.0.39","gitHead":"8731c54c4b1e5d9a44dfb154c36da1c5dc7bc039","description":"`tbase` is the in-memory model layer behind SemTalk. It gives you one object graph that holds:","_nodeVersion":"22.15.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-EPYJpha08sJEJS98GYr+92jJUVHW9Ez3Z7vtmaYdDl9WT/kABqTz82Lm6oyeV3Si3MfG40aVRev2dVLNC5by1w==","shasum":"ad18c3f080afc434940ae8cdea75f36b97145117","tarball":"https://registry.npmjs.org/@semtalk/tbase/-/tbase-1.0.39.tgz","fileCount":190,"unpackedSize":3408013,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDATLlSb3uP13rVBI2lSa7SW8BvJQEGgH78RXCfiUwYDAiEA/n5FFhWt2WamJHKIwUcAx6A+pGsFKHH/05kkNu78Bzs="}]},"_npmUser":{"name":"cfillies","email":"npm@semtalk.com"},"directories":{},"maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tbase_1.0.39_1789467313436_0.5655524327588108"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-26T11:53:19.959Z","modified":"2026-09-15T10:15:13.753Z","1.0.0":"2025-02-26T11:53:20.284Z","1.0.1":"2025-02-26T12:17:44.637Z","1.0.2":"2025-02-26T15:47:50.313Z","1.0.3":"2025-03-06T12:28:08.837Z","1.0.4":"2025-03-06T12:42:32.481Z","1.0.5":"2025-03-07T10:46:16.111Z","1.0.6":"2025-03-07T11:46:08.293Z","1.0.7":"2025-03-27T12:27:03.009Z","1.0.8":"2025-03-27T13:26:01.259Z","1.0.9":"2025-07-28T09:21:49.251Z","1.0.10":"2025-07-28T09:30:14.301Z","1.0.11":"2025-07-28T09:37:57.062Z","1.0.12":"2025-07-28T11:50:08.490Z","1.0.14":"2025-08-03T13:52:42.255Z","1.0.15":"2025-08-03T14:11:25.593Z","1.0.16":"2025-08-03T14:39:11.152Z","1.0.17":"2025-10-23T13:43:18.984Z","1.0.18":"2025-10-24T08:44:19.974Z","1.0.19":"2025-12-09T10:43:08.380Z","1.0.20":"2025-12-09T12:01:10.865Z","1.0.21":"2026-01-02T15:30:00.019Z","1.0.22":"2026-01-20T10:05:43.451Z","1.0.23":"2026-01-27T16:06:31.578Z","1.0.24":"2026-02-16T09:32:04.101Z","1.0.25":"2026-03-10T10:11:34.208Z","1.0.26":"2026-03-10T15:34:43.616Z","1.0.27":"2026-03-12T14:58:14.812Z","1.0.28":"2026-03-27T11:58:39.454Z","1.0.29":"2026-04-23T14:02:11.254Z","1.0.30":"2026-04-26T09:15:50.111Z","1.0.31":"2026-04-27T08:26:53.616Z","1.0.32":"2026-04-27T12:24:48.182Z","1.0.33":"2026-04-28T10:54:31.494Z","1.0.34":"2026-04-28T12:39:21.309Z","1.0.35":"2026-04-28T13:13:16.889Z","1.0.36":"2026-04-28T14:41:00.249Z","1.0.37":"2026-04-29T10:19:27.927Z","1.0.38":"2026-05-05T08:28:43.143Z","1.0.39":"2026-09-15T10:15:13.593Z"},"description":"`tbase` is the in-memory model layer behind SemTalk. It gives you one object graph that holds:","maintainers":[{"name":"cfillieshotmail","email":"cfillies@hotmail.com"},{"name":"cfillies","email":"npm@semtalk.com"},{"name":"henrikstr","email":"hstrauss@semtalk.com"}],"readme":"# `@semtalk/tbase`\r\n\r\n`tbase` is the in-memory model layer behind SemTalk. It gives you one object graph that holds:\r\n\r\n- classes and instances\r\n- typed attributes and relations\r\n- business concepts like methods, states, and compositions\r\n- system-class metadata like labels and edit-dialog tab specs\r\n- diagrams, nodes, and JSON/XML persistence\r\n\r\nThis guide is meant to get a new engineer productive quickly.\r\n\r\n## Mental Model\r\n\r\nThere are three layers that matter most in day-to-day work:\r\n\r\n1. `ObjectBase`\r\n   Holds the whole model and acts as the factory, registry, and lookup service.\r\n2. model objects\r\n   `SemTalkClass`, `SemTalkInstance`, `SemTalkAssociation`, `SemTalkAttribute`, and the business/system variants.\r\n3. serializers and UI metadata\r\n   `OB2JSON`, `OB2XML`, labels, and `TabSpec` definitions.\r\n\r\nThe most important rule is:\r\n\r\n- create everything from `ObjectBase`\r\n- navigate and mutate from the returned objects\r\n- persist with `OB2JSON` or `OB2XML`\r\n\r\n## Importing\r\n\r\n```ts\r\nimport {\r\n  ObjectBase,\r\n  OB2JSON,\r\n  SemTalkRelation,\r\n  SemTalkValueType,\r\n} from \"@semtalk/tbase\";\r\n```\r\n\r\n## Quick Start\r\n\r\n```ts\r\nimport { ObjectBase, OB2JSON } from \"@semtalk/tbase\";\r\n\r\nconst tb = new ObjectBase();\r\ntb.SetModelAttribute(\"modname\", \"DemoModel\");\r\n\r\nconst person = tb.MakeClass(\"Person\");\r\nconst company = tb.MakeClass(\"Company\");\r\nconst alice = person.MakeInstance(\"Alice\");\r\n\r\nalice.SetValue(\"firstName\", \"Alice\");\r\nalice.SetValue(\"isActive\", true);\r\nalice.MakeAssociation(\"worksFor\", company);\r\n\r\nconst codec = new OB2JSON();\r\nconst json = codec.SaveJSON(tb);\r\n\r\nconst loaded = new ObjectBase();\r\ncodec.LoadJSON(loaded, json);\r\n```\r\n\r\nIf you only remember one workflow, remember that one.\r\n\r\n## Core Concepts\r\n\r\n### `ObjectBase`\r\n\r\n`ObjectBase` is the root container for the whole model.\r\n\r\nCommon things you do with it:\r\n\r\n- create objects: `MakeClass`, `MakeBusinessClass`, `MakeSystemClass`, `MakeInstance`\r\n- create reusable types: `MakeAttributeType`, `MakeAssociationType`, `MakeMethodType`, `MakeStateType`, `MakeDiagramType`\r\n- find objects: `FindClass`, `FindInstance`, `FindAssociationType`, `FindObjectByID`\r\n- enumerate: `AllClasses`, `AllInstances`, `AllObjects`, `AllAssociationTypes`\r\n- persist: pass it to `OB2JSON` or `OB2XML`\r\n\r\nTypical setup:\r\n\r\n```ts\r\nconst tb = new ObjectBase();\r\ntb.SetModelAttribute(\"modname\", \"OrderModel\");\r\ntb.SetModelAttribute(\"currentnsp\", \"en\");\r\n```\r\n\r\nUseful model attributes:\r\n\r\n- `modname`: model name\r\n- `currentnsp`: active language/namespace\r\n- `showNamespace`: whether captions show namespaces\r\n\r\n### Classes and Instances\r\n\r\nUse classes for types and instances for concrete objects.\r\n\r\n```ts\r\nconst person = tb.MakeClass(\"Person\");\r\nconst alice = person.MakeInstance(\"Alice\");\r\n```\r\n\r\nImportant methods on classes:\r\n\r\n- `MakeInstance(name?)`\r\n- `AddSubclassOf(superClass)`\r\n- `SuperClasses()`\r\n- `AllSuperClasses()`\r\n- `AllSubClasses()`\r\n- `IsParent(classOrSuperClass)`\r\n\r\nImportant methods on instances:\r\n\r\n- `ClassOf()`\r\n- `SetClass(newClass)`\r\n- `ToClass()`\r\n\r\n### Attributes\r\n\r\nThe simplest way to work with attributes is through `SetValue` and `GetValue`.\r\n\r\n```ts\r\nalice.SetValue(\"priority\", \"high\");\r\nconst value = alice.GetValue(\"priority\");\r\n```\r\n\r\nUnder the hood, `tbase` creates an attribute type if needed and then creates an attribute on the object.\r\n\r\nIf you need the real attribute object:\r\n\r\n```ts\r\nconst attr = alice.MakeAttribute(\"isActive\", false);\r\nattr.ValueType = SemTalkValueType.Boolean;\r\nattr.Min = 0;\r\nattr.Max = 1;\r\n```\r\n\r\nUseful attribute APIs:\r\n\r\n- `FindAttribute(nameOrType)`\r\n- `Attributes()`\r\n- `AllAttributes()`\r\n- `AllAttributeTypes()`\r\n- `GetAttributeOwner(nameOrType)`\r\n\r\nInheritance behavior:\r\n\r\n- local attributes shadow inherited ones with the same attribute type name\r\n- `AllAttributes()` returns local attributes first, then inherited ones\r\n- `GetAttributeOwner()` returns the nearest class in the hierarchy that defines the attribute\r\n\r\n### Associations\r\n\r\nRelations are first-class objects.\r\n\r\n```ts\r\nalice.MakeAssociation(\"worksFor\", company);\r\n```\r\n\r\nUseful APIs:\r\n\r\n- `MakeAssociation(nameOrType, toObject)`\r\n- `Associations()`\r\n- `InvAssociations()`\r\n- `HasDirectLink(nameOrType, target)`\r\n- `HasLink(nameOrType, target)`\r\n- `LinkedObjects(nameOrType, recursive?)`\r\n- `InvLinkedObjects(nameOrType, recursive?)`\r\n- `AllAssociations()`\r\n\r\nNotes:\r\n\r\n- `MakeAssociation()` reuses an existing link if the same source, relation type, and target already exist\r\n- `HasLink()` follows recursive paths and is cycle-safe\r\n- `AllAssociations()` includes inherited associations; in raw results it can also include the actual `subClassOf_` inheritance link\r\n\r\n### Inheritance and Validity\r\n\r\nHierarchy lookup is a major part of `tbase`.\r\n\r\nExamples:\r\n\r\n```ts\r\nconst root = tb.MakeBusinessClass(\"Root\");\r\nconst middle = tb.MakeBusinessClass(\"Middle\");\r\nconst leaf = tb.MakeBusinessClass(\"Leaf\");\r\n\r\nmiddle.AddSubclassOf(root);\r\nleaf.AddSubclassOf(middle);\r\n\r\nroot.SetValue(\"shared\", \"root\");\r\nmiddle.SetValue(\"shared\", \"middle\");\r\n\r\nleaf.GetAttributeOwner(\"shared\"); // middle's attribute\r\nleaf.AllAttributes();             // local first, inherited after\r\n```\r\n\r\n`IsValid(dst, rel)` is used when deciding whether a relation is allowed to connect to a target object.\r\n\r\nIn practice:\r\n\r\n- class relations can be inherited from superclasses\r\n- target subclasses are accepted when the relation points to a parent class\r\n- unrelated targets are rejected\r\n\r\n## Business Classes\r\n\r\n`SemTalkBusinessClass` extends `SemTalkClass` with business semantics:\r\n\r\n- methods\r\n- states\r\n- compositions\r\n\r\nCreate one with:\r\n\r\n```ts\r\nconst order = tb.MakeBusinessClass(\"Order\");\r\n```\r\n\r\n### Methods and States\r\n\r\n```ts\r\norder.MakeMethod(\"Approve\");\r\norder.MakeState(\"Ready\");\r\n```\r\n\r\nUseful APIs:\r\n\r\n- methods: `MakeMethod`, `FindMethod`, `FindAMethod`, `Methods`, `AllMethods`, `AllMethodTypes`\r\n- states: `MakeState`, `FindState`, `FindAState`, `States`, `AllStates`, `AllStateTypes`\r\n\r\nInheritance behavior matches attributes:\r\n\r\n- local definition wins\r\n- inherited methods/states are visible via the `All...` and `FindA...` helpers\r\n\r\n### Composition\r\n\r\nCompositions are business-specific constraints or conditions attached to an object.\r\n\r\nExample:\r\n\r\n```ts\r\nconst ownerClass = tb.MakeBusinessClass(\"OwnerBusiness\");\r\nconst owner = ownerClass.MakeInstance(\"Owner\");\r\nconst composed = tb.MakeBusinessClass(\"Order\");\r\nconst methodType = tb.MakeMethodType(\"Approve\");\r\nconst stateType = tb.MakeStateType(\"Ready\");\r\nconst attributeType = tb.MakeAttributeType(\"Priority\");\r\n\r\nowner.MakeComposition(\r\n  composed,\r\n  methodType,\r\n  stateType,\r\n  attributeType,\r\n  null,\r\n  \"=\",\r\n  false,\r\n  \"High\",\r\n);\r\n```\r\n\r\nUseful APIs:\r\n\r\n- `MakeComposition(...)`\r\n- `Composition()`\r\n- `DeleteComposition()`\r\n- inverse lists like `InvCompositions()`\r\n\r\n## System Classes\r\n\r\n`SemTalkSystemClass` is where UI behavior and rendering metadata live.\r\n\r\nCreate one with:\r\n\r\n```ts\r\nconst taskSystem = tb.MakeSystemClass(\"TaskSystem\");\r\n```\r\n\r\nTypical use:\r\n\r\n- define labels for shapes\r\n- define edit-dialog tabs\r\n- hold UI flags like `Hide`, `Composeable`, `Refineable`\r\n\r\nBusiness or normal classes often inherit from a system class, directly or indirectly:\r\n\r\n```ts\r\nconst baseTask = tb.MakeClass(\"BaseTask\");\r\nconst task = tb.MakeBusinessClass(\"Task\");\r\n\r\nbaseTask.AddSubclassOf(taskSystem);\r\ntask.AddSubclassOf(baseTask);\r\n```\r\n\r\nWhen label resolution runs, `tbase` walks up the hierarchy to the actual system class.\r\n\r\n## Labels\r\n\r\nLabels define how objects are rendered in diagrams.\r\n\r\nUseful APIs on `SemTalkSystemClass`:\r\n\r\n- `MakeLabel(text, master)`\r\n- `MakeClassLabel(text, master)`\r\n- `Labels(master?)`\r\n- `ClassLabels(master?)`\r\n- `FindLabelForMaster(master, text?)`\r\n\r\nExample:\r\n\r\n```ts\r\nconst taskSystem = tb.MakeSystemClass(\"TaskSystem\");\r\ntaskSystem.MakeLabel(\"Task: Name\", \"\");\r\ntaskSystem.MakeClassLabel(\"Class: Name\", \"\");\r\n```\r\n\r\nThe label engine supports master-specific labels and the historic slot syntax used by the old Visio-based version.\r\n\r\n## Tab Specs for Edit Dialogs\r\n\r\nTab specs live on `SemTalkSystemClass` and define which tabs the UI should show for class and instance dialogs.\r\n\r\nGet the definition object:\r\n\r\n```ts\r\nconst system = tb.MakeSystemClass(\"TaskSystem\");\r\nconst tabs = system.TabSpecDefinitions();\r\n```\r\n\r\nThere are four main kinds:\r\n\r\n### 1. Plain tab specs\r\n\r\nSimple named tabs.\r\n\r\n```ts\r\ntabs.MakeTabSpec(\"General\", false); // instance dialog\r\ntabs.MakeTabSpec(\"Class Data\", true); // class dialog\r\n```\r\n\r\nKey fields:\r\n\r\n- `Text`: visible title\r\n- `IsClass`: `true` for class dialogs, `false` for instance dialogs\r\n- `Visible`\r\n- `Index`: sort order\r\n\r\n### 2. Generic relation tabs\r\n\r\nTabs backed by a relation.\r\n\r\n```ts\r\ntabs.MakeGenericTabSpec(\r\n  \"Related Orders\",\r\n  \"worksFor\",\r\n  \"Order\",\r\n  true,\r\n  false,\r\n  false,\r\n  false,\r\n);\r\n```\r\n\r\nArguments:\r\n\r\n1. `text`: tab title\r\n2. `relname`: relation type name\r\n3. `toobj`: target class name\r\n4. `isinst`: include instances\r\n5. `isinv`: inverse direction\r\n6. `isuni`: treat as unidirectional\r\n7. `isclass`: class dialog or instance dialog\r\n\r\n### 3. Generic attribute tabs\r\n\r\nTabs backed by a list of attributes.\r\n\r\n```ts\r\ntabs.MakeGenericAttributeTabSpec(\r\n  \"Audit\",\r\n  \"Metadata\",\r\n  [\"CreatedBy\", \"ChangedBy\", \"Created\", \"Changed\"],\r\n  false,\r\n);\r\n```\r\n\r\n### 4. Tab-spec list tabs\r\n\r\nTabs that group other tabs.\r\n\r\n```ts\r\ntabs.MakeTabSpecListTabSpec(\r\n  \"Advanced\",\r\n  \"Details\",\r\n  [\"Audit\", \"Relations\"],\r\n  false,\r\n);\r\n```\r\n\r\nUseful retrieval methods:\r\n\r\n- `TabSpecs()`\r\n- `ClassTabSpecs()`\r\n- `InstanceTabSpecs()`\r\n- `GenericTabSpecs()`\r\n- `GenericAttributeTabSpecs()`\r\n- `FindTabSpec(name)`\r\n\r\n## Persistence\r\n\r\n### JSON\r\n\r\n`OB2JSON` is the most relevant serializer for current work.\r\n\r\n```ts\r\nimport { ObjectBase, OB2JSON } from \"@semtalk/tbase\";\r\n\r\nconst codec = new OB2JSON();\r\nconst json = codec.SaveJSON(tb);\r\n\r\nconst loaded = new ObjectBase();\r\ncodec.LoadJSON(loaded, json);\r\n```\r\n\r\nRound-trip coverage in tests currently includes:\r\n\r\n- model attributes\r\n- classes and instances\r\n- inheritance links\r\n- attributes and falsy values like `false` and `0`\r\n- associations\r\n- comments and color metadata\r\n\r\n### XML\r\n\r\n`OB2XML` also exists, but use JSON first unless you specifically need XML compatibility.\r\n\r\n## Search and Lookup\r\n\r\nUseful global lookup methods on `ObjectBase`:\r\n\r\n- `FindClass(name)`\r\n- `FindBusinessClass(name)`\r\n- `FindSystemClass(name)`\r\n- `FindInstance(name)`\r\n- `FindObjectByID(id)`\r\n- `SearchObjects(text)`\r\n- `SearchNodes(text, pagingFrom?, pagingTo?)`\r\n\r\nPrefer ID-based lookup when objects may be renamed.\r\n\r\n## Events\r\n\r\n`ObjectBase` emits many events internally through `PostEvent`, for example:\r\n\r\n- create/delete\r\n- rename\r\n- attribute changes\r\n- association changes\r\n- load/save\r\n\r\nThe current callback mechanism uses the internal `_callbacks` array and expects callback objects with a `getMessage(...)` method. It works, but it is closer to internal infrastructure than a polished public API, so treat it carefully.\r\n\r\n## Common Patterns\r\n\r\n### Create a reusable relation type first\r\n\r\n```ts\r\ntb.MakeAssociationType(SemTalkRelation.SemTalkProperty, \"worksFor\");\r\nalice.MakeAssociation(\"worksFor\", company);\r\n```\r\n\r\nThis is not strictly required, but it can make model setup more explicit.\r\n\r\n### Start simple with `SetValue`\r\n\r\nPrefer:\r\n\r\n```ts\r\nobj.SetValue(\"priority\", \"high\");\r\n```\r\n\r\nOnly drop down to `MakeAttribute()` when you need metadata such as:\r\n\r\n- `ValueType`\r\n- `Min`\r\n- `Max`\r\n- `Weight`\r\n\r\n### Use hierarchy helpers instead of manually walking associations\r\n\r\nPrefer:\r\n\r\n- `AllAttributes()`\r\n- `AllAssociations()`\r\n- `FindAMethod()`\r\n- `FindAState()`\r\n- `GetAttributeOwner()`\r\n\r\nThey encode the shadowing and inheritance rules already.\r\n\r\n## Gotchas\r\n\r\n- `MakeClass(\"Name\")` and similar factory methods return existing objects if the name already exists.\r\n- Anonymous instances are auto-named like `ClassName.<id>`.\r\n- Renaming a class updates anonymous instance names, but not explicitly named instances.\r\n- `AllAssociations()` is a raw association view and can include inheritance links like `subClassOf_`.\r\n- Inheritance shadowing is name-based for attributes, methods, states, and association types.\r\n- Prefer `FindObjectByID()` when identity matters more than caption or name.\r\n\r\n## Small Cookbook\r\n\r\n### Build a tiny hierarchy\r\n\r\n```ts\r\nconst root = tb.MakeBusinessClass(\"Root\");\r\nconst child = tb.MakeBusinessClass(\"Child\");\r\n\r\nchild.AddSubclassOf(root);\r\nroot.SetValue(\"priority\", \"high\");\r\n\r\nconsole.log(child.GetValue(\"priority\"));\r\nconsole.log(child.GetAttributeOwner(\"priority\")?.Owner.ObjectName);\r\n```\r\n\r\n### Traverse a relation graph\r\n\r\n```ts\r\nconst a = tb.MakeClass(\"A\");\r\nconst b = tb.MakeClass(\"B\");\r\nconst c = tb.MakeClass(\"C\");\r\n\r\na.MakeAssociation(\"rel\", b);\r\nb.MakeAssociation(\"rel\", c);\r\n\r\nconsole.log(a.HasLink(\"rel\", c));            // true\r\nconsole.log(a.LinkedObjects(\"rel\", true));   // [b, c]\r\n```\r\n\r\n### Configure a system class for UI\r\n\r\n```ts\r\nconst system = tb.MakeSystemClass(\"TaskSystem\");\r\nsystem.MakeLabel(\"Task: Name\", \"\");\r\nsystem.MakeClassLabel(\"Task Type: Name\", \"\");\r\n\r\nconst tabs = system.TabSpecDefinitions();\r\ntabs.MakeTabSpec(\"General\", false);\r\ntabs.MakeGenericAttributeTabSpec(\"Audit\", \"Metadata\", [\"CreatedBy\", \"ChangedBy\"], false);\r\n```\r\n\r\n## Where to Look Next\r\n\r\nGood source files for learning the code:\r\n\r\n- [ObjectBase.ts](./src/ObjectBase.ts)\r\n- [Tbase.ts](./src/Tbase.ts)\r\n- [BusinessClass.ts](./src/BusinessClass.ts)\r\n- [SystemClass.ts](./src/SystemClass.ts)\r\n- [TabSpec.ts](./src/TabSpec.ts)\r\n\r\nGood examples in tests:\r\n\r\n- [graph.test.js](./test/graph.test.js)\r\n- [lifecycle.test.js](./test/lifecycle.test.js)\r\n- [businessclass.test.js](./test/businessclass.test.js)\r\n- [labels.test.js](./test/labels.test.js)\r\n- [serialization.test.js](./test/serialization.test.js)\r\n\r\n## Package Maintenance\r\n\r\n```bash\r\nnpm login\r\nnpm run build\r\nnpm publish --access=public\r\n```\r\n","readmeFilename":"README.md"}