@ternent/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/.changeset/README.md +8 -0
  2. package/.changeset/config.json +17 -0
  3. package/.github/workflows/deploy-armour.yml +42 -0
  4. package/.github/workflows/deploy-identity.yml +42 -0
  5. package/.github/workflows/deploy-seal.yml +42 -0
  6. package/.github/workflows/deploy-ui.yml +42 -0
  7. package/.github/workflows/deploy-utils.yml +42 -0
  8. package/.github/workflows/release-create.yml +59 -0
  9. package/.github/workflows/release-publish.yml +54 -0
  10. package/.nvmrc +1 -0
  11. package/.ops/publish.mjs +31 -0
  12. package/package.json +16 -0
  13. package/packages/README.md +0 -0
  14. package/packages/armour/CHANGELOG.md +66 -0
  15. package/packages/armour/CLAUDE.md +8 -0
  16. package/packages/armour/README.md +103 -0
  17. package/packages/armour/SPEC.md +92 -0
  18. package/packages/armour/package.json +45 -0
  19. package/packages/armour/src/constants.ts +5 -0
  20. package/packages/armour/src/deps.d.ts +56 -0
  21. package/packages/armour/src/errors.ts +172 -0
  22. package/packages/armour/src/files.ts +73 -0
  23. package/packages/armour/src/identity.ts +72 -0
  24. package/packages/armour/src/index.ts +56 -0
  25. package/packages/armour/src/init.ts +10 -0
  26. package/packages/armour/src/passphrase.ts +33 -0
  27. package/packages/armour/src/recipients.ts +73 -0
  28. package/packages/armour/src/text.ts +68 -0
  29. package/packages/armour/src/types.ts +93 -0
  30. package/packages/armour/test/armour.test.ts +270 -0
  31. package/packages/armour/tsconfig.build.json +12 -0
  32. package/packages/armour/tsconfig.json +12 -0
  33. package/packages/armour/vite.config.ts +29 -0
  34. package/packages/concord/CHANGELOG.md +83 -0
  35. package/packages/concord/CLAUDE.md +9 -0
  36. package/packages/concord/README.md +146 -0
  37. package/packages/concord/SPEC.md +287 -0
  38. package/packages/concord/package.json +51 -0
  39. package/packages/concord/src/app.ts +717 -0
  40. package/packages/concord/src/errors.ts +9 -0
  41. package/packages/concord/src/index.ts +20 -0
  42. package/packages/concord/src/types.ts +127 -0
  43. package/packages/concord/test/concord.test.ts +978 -0
  44. package/packages/concord/tsconfig.json +12 -0
  45. package/packages/concord/vite.browser.config.ts +27 -0
  46. package/packages/concord/vite.config.ts +35 -0
  47. package/packages/concord/vite.config.ts.timestamp-1774262297922-ffd76e35ea668.mjs +83 -0
  48. package/packages/identity/CHANGELOG.md +47 -0
  49. package/packages/identity/README.md +236 -0
  50. package/packages/identity/package.json +41 -0
  51. package/packages/identity/src/index.ts +538 -0
  52. package/packages/identity/test/identity.test.ts +172 -0
  53. package/packages/identity/tsconfig.build.json +12 -0
  54. package/packages/identity/vite.config.ts +17 -0
  55. package/packages/ledger/CHANGELOG.md +69 -0
  56. package/packages/ledger/CLAUDE.md +9 -0
  57. package/packages/ledger/SPEC.md +304 -0
  58. package/packages/ledger/package.json +48 -0
  59. package/packages/ledger/src/index.ts +2 -0
  60. package/packages/ledger/src/ledger.ts +1286 -0
  61. package/packages/ledger/src/seal-cli.d.ts +25 -0
  62. package/packages/ledger/src/types.ts +294 -0
  63. package/packages/ledger/test/ledger.test.ts +838 -0
  64. package/packages/ledger/tsconfig.json +12 -0
  65. package/packages/ledger/vite.browser.config.ts +27 -0
  66. package/packages/ledger/vite.config.ts +39 -0
  67. package/packages/seal/CHANGELOG.md +137 -0
  68. package/packages/seal/CLAUDE.md +8 -0
  69. package/packages/seal/README.md +258 -0
  70. package/packages/seal/bin/seal +6 -0
  71. package/packages/seal/package.json +59 -0
  72. package/packages/seal/src/artifact.ts +380 -0
  73. package/packages/seal/src/cli.ts +372 -0
  74. package/packages/seal/src/commands/identity.ts +52 -0
  75. package/packages/seal/src/commands/manifest.ts +71 -0
  76. package/packages/seal/src/commands/publicKey.ts +7 -0
  77. package/packages/seal/src/commands/sign.ts +56 -0
  78. package/packages/seal/src/commands/verify.ts +54 -0
  79. package/packages/seal/src/crypto.ts +85 -0
  80. package/packages/seal/src/errors.ts +88 -0
  81. package/packages/seal/src/index.ts +5 -0
  82. package/packages/seal/src/manifest.ts +114 -0
  83. package/packages/seal/src/node.ts +18 -0
  84. package/packages/seal/src/proof.ts +344 -0
  85. package/packages/seal/test/artifact.test.ts +86 -0
  86. package/packages/seal/test/cli.test.ts +208 -0
  87. package/packages/seal/test/crypto.test.ts +21 -0
  88. package/packages/seal/test/manifest.test.ts +32 -0
  89. package/packages/seal/test/proof.test.ts +60 -0
  90. package/packages/seal/tsconfig.json +12 -0
  91. package/packages/seal/vite.config.ts +54 -0
  92. package/packages/ui/CHANGELOG.md +393 -0
  93. package/packages/ui/README.md +57 -0
  94. package/packages/ui/jsconfig.json +19 -0
  95. package/packages/ui/package.json +64 -0
  96. package/packages/ui/scripts/check-tokens.js +56 -0
  97. package/packages/ui/scripts/generate-theme-css.mjs +85 -0
  98. package/packages/ui/src/design-system/base.css +8 -0
  99. package/packages/ui/src/design-system/docs/ACCESSIBILITY_RULES.md +186 -0
  100. package/packages/ui/src/design-system/docs/AI_SYSTEM.md +281 -0
  101. package/packages/ui/src/design-system/docs/PATTERN_RULES.md +83 -0
  102. package/packages/ui/src/design-system/docs/PRIMITIVE_RULES.md +258 -0
  103. package/packages/ui/src/design-system/docs/TOKEN_RULES.md +235 -0
  104. package/packages/ui/src/design-system/docs/VISUAL_DIRECTION.md +68 -0
  105. package/packages/ui/src/design-system/foundation.js +420 -0
  106. package/packages/ui/src/design-system/tokens.css +140 -0
  107. package/packages/ui/src/design-system/tokens.js +327 -0
  108. package/packages/ui/src/design-system/utils.js +246 -0
  109. package/packages/ui/src/main.js +4 -0
  110. package/packages/ui/src/patterns/FeatureCard/FeatureCard.spec.md +24 -0
  111. package/packages/ui/src/patterns/FeatureCard/FeatureCard.types.ts +8 -0
  112. package/packages/ui/src/patterns/FeatureCard/FeatureCard.vue +175 -0
  113. package/packages/ui/src/patterns/FormField/FormField.spec.md +65 -0
  114. package/packages/ui/src/patterns/FormField/FormField.types.ts +11 -0
  115. package/packages/ui/src/patterns/FormField/FormField.vue +87 -0
  116. package/packages/ui/src/patterns/IdentityGlyph/IdentityGlyph.vue +61 -0
  117. package/packages/ui/src/patterns/IdentityGlyph/IdentityHandle.vue +58 -0
  118. package/packages/ui/src/patterns/IdentityGlyph/identityGlyph.types.ts +36 -0
  119. package/packages/ui/src/patterns/IdentityGlyph/identityGlyph.utils.ts +585 -0
  120. package/packages/ui/src/patterns/IdentityGlyph/index.ts +5 -0
  121. package/packages/ui/src/patterns/KeyValueList/KeyValueList.spec.md +28 -0
  122. package/packages/ui/src/patterns/KeyValueList/KeyValueList.types.ts +16 -0
  123. package/packages/ui/src/patterns/KeyValueList/KeyValueList.vue +50 -0
  124. package/packages/ui/src/patterns/LandingPage/LandingIcon.vue +90 -0
  125. package/packages/ui/src/patterns/LandingPage/LandingPage.spec.md +24 -0
  126. package/packages/ui/src/patterns/LandingPage/LandingPage.types.ts +212 -0
  127. package/packages/ui/src/patterns/LandingPage/LandingPage.vue +599 -0
  128. package/packages/ui/src/patterns/ListWorkspaceLayout/ListWorkspaceLayout.test.ts +33 -0
  129. package/packages/ui/src/patterns/ListWorkspaceLayout/ListWorkspaceLayout.vue +44 -0
  130. package/packages/ui/src/patterns/Logo/Logo.spec.md +22 -0
  131. package/packages/ui/src/patterns/Logo/Logo.vue +160 -0
  132. package/packages/ui/src/patterns/PageSurface/PageSurface.spec.md +15 -0
  133. package/packages/ui/src/patterns/PageSurface/PageSurface.vue +85 -0
  134. package/packages/ui/src/patterns/PanelChrome/PanelChrome.spec.md +39 -0
  135. package/packages/ui/src/patterns/PanelChrome/PanelChrome.types.ts +1 -0
  136. package/packages/ui/src/patterns/PanelChrome/PanelChrome.vue +187 -0
  137. package/packages/ui/src/patterns/PreviewPanel/PreviewPanel.spec.md +31 -0
  138. package/packages/ui/src/patterns/PreviewPanel/PreviewPanel.types.ts +23 -0
  139. package/packages/ui/src/patterns/PreviewPanel/PreviewPanel.vue +354 -0
  140. package/packages/ui/src/patterns/RecordList/RecordList.spec.md +35 -0
  141. package/packages/ui/src/patterns/RecordList/RecordList.test.ts +42 -0
  142. package/packages/ui/src/patterns/RecordList/RecordList.types.ts +9 -0
  143. package/packages/ui/src/patterns/RecordList/RecordList.utils.ts +5 -0
  144. package/packages/ui/src/patterns/RecordList/RecordList.vue +134 -0
  145. package/packages/ui/src/patterns/SectionClarifier/SectionClarifier.vue +85 -0
  146. package/packages/ui/src/patterns/SectionIntro/SectionIntro.spec.md +25 -0
  147. package/packages/ui/src/patterns/SectionIntro/SectionIntro.types.ts +7 -0
  148. package/packages/ui/src/patterns/SectionIntro/SectionIntro.vue +141 -0
  149. package/packages/ui/src/patterns/SidebarNav/SidebarNav.spec.md +34 -0
  150. package/packages/ui/src/patterns/SidebarNav/SidebarNav.types.ts +17 -0
  151. package/packages/ui/src/patterns/SidebarNav/SidebarNav.vue +110 -0
  152. package/packages/ui/src/patterns/SplitView/SplitView.spec.md +28 -0
  153. package/packages/ui/src/patterns/SplitView/SplitView.test.ts +22 -0
  154. package/packages/ui/src/patterns/SplitView/SplitView.types.ts +3 -0
  155. package/packages/ui/src/patterns/SplitView/SplitView.utils.ts +13 -0
  156. package/packages/ui/src/patterns/SplitView/SplitView.vue +39 -0
  157. package/packages/ui/src/patterns/StepList/StepList.spec.md +15 -0
  158. package/packages/ui/src/patterns/StepList/StepList.types.ts +4 -0
  159. package/packages/ui/src/patterns/StepList/StepList.vue +91 -0
  160. package/packages/ui/src/patterns/Verification/VerificationBadge.vue +97 -0
  161. package/packages/ui/src/patterns/Verification/VerificationComponents.test.ts +153 -0
  162. package/packages/ui/src/patterns/Verification/VerificationDetailsPanel.vue +270 -0
  163. package/packages/ui/src/patterns/Verification/VerificationSummary.vue +171 -0
  164. package/packages/ui/src/patterns/Verification/index.ts +6 -0
  165. package/packages/ui/src/patterns/Verification/verification.types.ts +8 -0
  166. package/packages/ui/src/patterns/Verification/verification.utils.test.ts +37 -0
  167. package/packages/ui/src/patterns/Verification/verification.utils.ts +75 -0
  168. package/packages/ui/src/patterns/index.ts +25 -0
  169. package/packages/ui/src/primitives/Accordian/Accordian.vue +11 -0
  170. package/packages/ui/src/primitives/Accordian/AccordianItem.vue +14 -0
  171. package/packages/ui/src/primitives/Accordion/Accordion.props.ts +21 -0
  172. package/packages/ui/src/primitives/Accordion/Accordion.spec.md +50 -0
  173. package/packages/ui/src/primitives/Accordion/Accordion.types.ts +4 -0
  174. package/packages/ui/src/primitives/Accordion/Accordion.variants.ts +12 -0
  175. package/packages/ui/src/primitives/Accordion/Accordion.vue +71 -0
  176. package/packages/ui/src/primitives/Accordion/AccordionItem.props.ts +14 -0
  177. package/packages/ui/src/primitives/Accordion/AccordionItem.vue +40 -0
  178. package/packages/ui/src/primitives/Badge/Badge.props.ts +17 -0
  179. package/packages/ui/src/primitives/Badge/Badge.spec.md +17 -0
  180. package/packages/ui/src/primitives/Badge/Badge.types.ts +15 -0
  181. package/packages/ui/src/primitives/Badge/Badge.variants.ts +48 -0
  182. package/packages/ui/src/primitives/Badge/Badge.vue +31 -0
  183. package/packages/ui/src/primitives/Button/Button.props.ts +29 -0
  184. package/packages/ui/src/primitives/Button/Button.spec.md +139 -0
  185. package/packages/ui/src/primitives/Button/Button.types.ts +19 -0
  186. package/packages/ui/src/primitives/Button/Button.variants.ts +72 -0
  187. package/packages/ui/src/primitives/Button/Button.vue +90 -0
  188. package/packages/ui/src/primitives/Card/Card.props.ts +17 -0
  189. package/packages/ui/src/primitives/Card/Card.spec.md +29 -0
  190. package/packages/ui/src/primitives/Card/Card.types.ts +12 -0
  191. package/packages/ui/src/primitives/Card/Card.variants.ts +27 -0
  192. package/packages/ui/src/primitives/Card/Card.vue +37 -0
  193. package/packages/ui/src/primitives/Checkbox/Checkbox.props.ts +21 -0
  194. package/packages/ui/src/primitives/Checkbox/Checkbox.spec.md +51 -0
  195. package/packages/ui/src/primitives/Checkbox/Checkbox.types.ts +4 -0
  196. package/packages/ui/src/primitives/Checkbox/Checkbox.variants.ts +34 -0
  197. package/packages/ui/src/primitives/Checkbox/Checkbox.vue +92 -0
  198. package/packages/ui/src/primitives/Dialog/Dialog.props.ts +29 -0
  199. package/packages/ui/src/primitives/Dialog/Dialog.spec.md +52 -0
  200. package/packages/ui/src/primitives/Dialog/Dialog.types.ts +3 -0
  201. package/packages/ui/src/primitives/Dialog/Dialog.variants.ts +27 -0
  202. package/packages/ui/src/primitives/Dialog/Dialog.vue +78 -0
  203. package/packages/ui/src/primitives/Drawer/Drawer.props.ts +33 -0
  204. package/packages/ui/src/primitives/Drawer/Drawer.spec.md +50 -0
  205. package/packages/ui/src/primitives/Drawer/Drawer.types.ts +5 -0
  206. package/packages/ui/src/primitives/Drawer/Drawer.variants.ts +35 -0
  207. package/packages/ui/src/primitives/Drawer/Drawer.vue +88 -0
  208. package/packages/ui/src/primitives/FieldMessage/FieldMessage.props.ts +17 -0
  209. package/packages/ui/src/primitives/FieldMessage/FieldMessage.spec.md +35 -0
  210. package/packages/ui/src/primitives/FieldMessage/FieldMessage.types.ts +5 -0
  211. package/packages/ui/src/primitives/FieldMessage/FieldMessage.variants.ts +14 -0
  212. package/packages/ui/src/primitives/FieldMessage/FieldMessage.vue +40 -0
  213. package/packages/ui/src/primitives/FileInput/FileInput.props.ts +41 -0
  214. package/packages/ui/src/primitives/FileInput/FileInput.types.ts +6 -0
  215. package/packages/ui/src/primitives/FileInput/FileInput.variants.ts +46 -0
  216. package/packages/ui/src/primitives/FileInput/FileInput.vue +163 -0
  217. package/packages/ui/src/primitives/Input/Input.props.ts +29 -0
  218. package/packages/ui/src/primitives/Input/Input.spec.md +79 -0
  219. package/packages/ui/src/primitives/Input/Input.types.ts +13 -0
  220. package/packages/ui/src/primitives/Input/Input.variants.ts +54 -0
  221. package/packages/ui/src/primitives/Input/Input.vue +99 -0
  222. package/packages/ui/src/primitives/Label/Label.props.ts +25 -0
  223. package/packages/ui/src/primitives/Label/Label.spec.md +31 -0
  224. package/packages/ui/src/primitives/Label/Label.types.ts +3 -0
  225. package/packages/ui/src/primitives/Label/Label.variants.ts +17 -0
  226. package/packages/ui/src/primitives/Label/Label.vue +38 -0
  227. package/packages/ui/src/primitives/Menu/Menu.props.ts +17 -0
  228. package/packages/ui/src/primitives/Menu/Menu.spec.md +38 -0
  229. package/packages/ui/src/primitives/Menu/Menu.types.ts +10 -0
  230. package/packages/ui/src/primitives/Menu/Menu.variants.ts +10 -0
  231. package/packages/ui/src/primitives/Menu/Menu.vue +57 -0
  232. package/packages/ui/src/primitives/Popover/Popover.props.ts +25 -0
  233. package/packages/ui/src/primitives/Popover/Popover.spec.md +49 -0
  234. package/packages/ui/src/primitives/Popover/Popover.types.ts +3 -0
  235. package/packages/ui/src/primitives/Popover/Popover.variants.ts +18 -0
  236. package/packages/ui/src/primitives/Popover/Popover.vue +74 -0
  237. package/packages/ui/src/primitives/RadioGroup/RadioGroup.props.ts +29 -0
  238. package/packages/ui/src/primitives/RadioGroup/RadioGroup.spec.md +50 -0
  239. package/packages/ui/src/primitives/RadioGroup/RadioGroup.types.ts +12 -0
  240. package/packages/ui/src/primitives/RadioGroup/RadioGroup.variants.ts +48 -0
  241. package/packages/ui/src/primitives/RadioGroup/RadioGroup.vue +87 -0
  242. package/packages/ui/src/primitives/Separator/Separator.props.ts +9 -0
  243. package/packages/ui/src/primitives/Separator/Separator.spec.md +15 -0
  244. package/packages/ui/src/primitives/Separator/Separator.types.ts +3 -0
  245. package/packages/ui/src/primitives/Separator/Separator.variants.ts +8 -0
  246. package/packages/ui/src/primitives/Separator/Separator.vue +23 -0
  247. package/packages/ui/src/primitives/Skeleton/Skeleton.props.ts +21 -0
  248. package/packages/ui/src/primitives/Skeleton/Skeleton.spec.md +18 -0
  249. package/packages/ui/src/primitives/Skeleton/Skeleton.types.ts +5 -0
  250. package/packages/ui/src/primitives/Skeleton/Skeleton.variants.ts +18 -0
  251. package/packages/ui/src/primitives/Skeleton/Skeleton.vue +37 -0
  252. package/packages/ui/src/primitives/Spinner/Spinner.props.ts +13 -0
  253. package/packages/ui/src/primitives/Spinner/Spinner.spec.md +16 -0
  254. package/packages/ui/src/primitives/Spinner/Spinner.types.ts +5 -0
  255. package/packages/ui/src/primitives/Spinner/Spinner.variants.ts +15 -0
  256. package/packages/ui/src/primitives/Spinner/Spinner.vue +33 -0
  257. package/packages/ui/src/primitives/SplitButton/SplitButton.vue +108 -0
  258. package/packages/ui/src/primitives/Switch/Switch.props.ts +21 -0
  259. package/packages/ui/src/primitives/Switch/Switch.spec.md +49 -0
  260. package/packages/ui/src/primitives/Switch/Switch.types.ts +3 -0
  261. package/packages/ui/src/primitives/Switch/Switch.variants.ts +34 -0
  262. package/packages/ui/src/primitives/Switch/Switch.vue +71 -0
  263. package/packages/ui/src/primitives/Tabs/Tabs.props.ts +25 -0
  264. package/packages/ui/src/primitives/Tabs/Tabs.spec.md +48 -0
  265. package/packages/ui/src/primitives/Tabs/Tabs.types.ts +11 -0
  266. package/packages/ui/src/primitives/Tabs/Tabs.variants.ts +28 -0
  267. package/packages/ui/src/primitives/Tabs/Tabs.vue +59 -0
  268. package/packages/ui/src/primitives/Textarea/Textarea.props.ts +33 -0
  269. package/packages/ui/src/primitives/Textarea/Textarea.spec.md +59 -0
  270. package/packages/ui/src/primitives/Textarea/Textarea.types.ts +5 -0
  271. package/packages/ui/src/primitives/Textarea/Textarea.variants.ts +27 -0
  272. package/packages/ui/src/primitives/Textarea/Textarea.vue +74 -0
  273. package/packages/ui/src/primitives/Tooltip/Tooltip.props.ts +21 -0
  274. package/packages/ui/src/primitives/Tooltip/Tooltip.spec.md +45 -0
  275. package/packages/ui/src/primitives/Tooltip/Tooltip.types.ts +3 -0
  276. package/packages/ui/src/primitives/Tooltip/Tooltip.variants.ts +4 -0
  277. package/packages/ui/src/primitives/Tooltip/Tooltip.vue +31 -0
  278. package/packages/ui/src/primitives/TreeView/TreeView.types.ts +10 -0
  279. package/packages/ui/src/primitives/TreeView/TreeView.vue +113 -0
  280. package/packages/ui/src/primitives/TreeView/TreeViewNode.vue +190 -0
  281. package/packages/ui/src/primitives/index.ts +29 -0
  282. package/packages/ui/src/style.css +7 -0
  283. package/packages/ui/src/style.js +1 -0
  284. package/packages/ui/src/themes/armour.css +147 -0
  285. package/packages/ui/src/themes/aurora.css +147 -0
  286. package/packages/ui/src/themes/citrine-ash.css +147 -0
  287. package/packages/ui/src/themes/concord.css +147 -0
  288. package/packages/ui/src/themes/garnet-honey.css +147 -0
  289. package/packages/ui/src/themes/harbor-rose.css +147 -0
  290. package/packages/ui/src/themes/ledger.css +147 -0
  291. package/packages/ui/src/themes/neon-noir.css +74 -0
  292. package/packages/ui/src/themes/obsidian-iris.css +147 -0
  293. package/packages/ui/src/themes/pixpax.css +147 -0
  294. package/packages/ui/src/themes/print.css +147 -0
  295. package/packages/ui/src/themes/prism.css +147 -0
  296. package/packages/ui/src/themes/proof.css +145 -0
  297. package/packages/ui/src/themes/semanticThemeContract.js +2256 -0
  298. package/packages/ui/src/themes/spruce-ink.css +147 -0
  299. package/packages/ui/src/themes/sunset.css +147 -0
  300. package/packages/ui/tailwind.config.js +64 -0
  301. package/packages/ui/vite.config.js +35 -0
  302. package/packages/ui/vite.config.js.timestamp-1780697224943-89fbc929987bc.mjs +38 -0
  303. package/packages/utils/CHANGELOG.md +111 -0
  304. package/packages/utils/README.md +3 -0
  305. package/packages/utils/package.json +46 -0
  306. package/packages/utils/src/index.test.js +39 -0
  307. package/packages/utils/src/index.ts +289 -0
  308. package/packages/utils/tsconfig.build.json +12 -0
  309. package/packages/utils/vite.config.js +28 -0
  310. package/pnpm-workspace.yaml +8 -0
  311. package/scripts/vite/package-lib-config.ts +59 -0
  312. package/tsconfig.json +24 -0
  313. package/tsconfig.node.json +9 -0
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "target": "ES2020",
5
+ "module": "NodeNext",
6
+ "moduleResolution": "NodeNext",
7
+ "lib": ["ES2020", "DOM"],
8
+ "types": ["node", "vitest/globals"]
9
+ },
10
+ "include": ["src/**/*.ts", "test/**/*.ts", "vite.config.ts"],
11
+ "exclude": ["dist", "node_modules"]
12
+ }
@@ -0,0 +1,27 @@
1
+ import { dirname, resolve } from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import { defineConfig } from "vite";
4
+
5
+ const configDir = dirname(fileURLToPath(import.meta.url));
6
+
7
+ export default defineConfig({
8
+ build: {
9
+ outDir: "dist",
10
+ emptyOutDir: false,
11
+ sourcemap: true,
12
+ target: "es2020",
13
+ minify: false,
14
+ lib: {
15
+ entry: resolve(configDir, "src/index.ts"),
16
+ name: "ternentConcordBrowser",
17
+ fileName: () => "browser.js",
18
+ formats: ["es"],
19
+ },
20
+ rollupOptions: {
21
+ output: {
22
+ format: "es",
23
+ inlineDynamicImports: true,
24
+ },
25
+ },
26
+ },
27
+ });
@@ -0,0 +1,35 @@
1
+ import { dirname, resolve } from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import { defineConfig } from "vite";
4
+ import dts from "vite-plugin-dts";
5
+ import { createPackageExternal, resolvePackageDir } from "../../scripts/vite/package-lib-config";
6
+
7
+ const configDir = dirname(fileURLToPath(import.meta.url));
8
+ const external = createPackageExternal(resolvePackageDir(import.meta.url));
9
+
10
+ export default defineConfig({
11
+ build: {
12
+ outDir: "dist",
13
+ sourcemap: true,
14
+ target: "es2020",
15
+ minify: false,
16
+ lib: {
17
+ entry: resolve(configDir, "src/index.ts"),
18
+ name: "ternentConcord",
19
+ fileName: "index",
20
+ formats: ["es"],
21
+ },
22
+ rollupOptions: {
23
+ external,
24
+ output: {
25
+ format: "es",
26
+ entryFileNames: "index.js",
27
+ },
28
+ },
29
+ },
30
+ plugins: [
31
+ dts({
32
+ tsConfigFilePath: resolve(configDir, "tsconfig.json"),
33
+ }),
34
+ ],
35
+ });
@@ -0,0 +1,83 @@
1
+ // vite.config.ts
2
+ import { dirname as dirname2, resolve as resolve2 } from "node:path";
3
+ import { fileURLToPath as fileURLToPath2 } from "node:url";
4
+ import { defineConfig } from "file:///Users/sam/dev/samternent/home/node_modules/.pnpm/vite@4.5.3_@types+node@24.10.4/node_modules/vite/dist/node/index.js";
5
+ import dts from "file:///Users/sam/dev/samternent/home/node_modules/.pnpm/vite-plugin-dts@1.7.3_@types+node@24.10.4_vite@4.5.3/node_modules/vite-plugin-dts/dist/index.mjs";
6
+
7
+ // ../../scripts/vite/package-lib-config.ts
8
+ import { builtinModules } from "node:module";
9
+ import { readFileSync } from "node:fs";
10
+ import { dirname, resolve } from "node:path";
11
+ import { fileURLToPath } from "node:url";
12
+ function loadPackageJson(packageDir) {
13
+ const packageJsonPath = resolve(packageDir, "package.json");
14
+ return JSON.parse(readFileSync(packageJsonPath, "utf8"));
15
+ }
16
+ function createPackageNames(packageJson) {
17
+ return /* @__PURE__ */ new Set([
18
+ ...Object.keys(packageJson.dependencies || {}),
19
+ ...Object.keys(packageJson.peerDependencies || {}),
20
+ ...Object.keys(packageJson.optionalDependencies || {}),
21
+ ]);
22
+ }
23
+ function isExternalId(id, packageNames, includeNodeBuiltins) {
24
+ if (includeNodeBuiltins) {
25
+ if (builtinModules.includes(id) || builtinModules.includes(id.replace(/^node:/, ""))) {
26
+ return true;
27
+ }
28
+ if (id.startsWith("node:")) {
29
+ return true;
30
+ }
31
+ }
32
+ for (const packageName of packageNames) {
33
+ if (id === packageName || id.startsWith(`${packageName}/`)) {
34
+ return true;
35
+ }
36
+ }
37
+ return false;
38
+ }
39
+ function createPackageExternal(packageDir, options = {}) {
40
+ const packageJson = loadPackageJson(packageDir);
41
+ const packageNames = createPackageNames(packageJson);
42
+ const includeNodeBuiltins = options.includeNodeBuiltins === true;
43
+ return function external2(id) {
44
+ return isExternalId(id, packageNames, includeNodeBuiltins);
45
+ };
46
+ }
47
+ function resolvePackageDir(metaUrl) {
48
+ return dirname(fileURLToPath(metaUrl));
49
+ }
50
+
51
+ // vite.config.ts
52
+ var __vite_injected_original_import_meta_url =
53
+ "file:///Users/sam/dev/samternent/home/packages/concord/vite.config.ts";
54
+ var configDir = dirname2(fileURLToPath2(__vite_injected_original_import_meta_url));
55
+ var external = createPackageExternal(resolvePackageDir(__vite_injected_original_import_meta_url));
56
+ var vite_config_default = defineConfig({
57
+ build: {
58
+ outDir: "dist",
59
+ sourcemap: true,
60
+ target: "es2020",
61
+ minify: false,
62
+ lib: {
63
+ entry: resolve2(configDir, "src/index.ts"),
64
+ name: "ternentConcord",
65
+ fileName: "index",
66
+ formats: ["es"],
67
+ },
68
+ rollupOptions: {
69
+ external,
70
+ output: {
71
+ format: "es",
72
+ entryFileNames: "index.js",
73
+ },
74
+ },
75
+ },
76
+ plugins: [
77
+ dts({
78
+ tsConfigFilePath: resolve2(configDir, "tsconfig.json"),
79
+ }),
80
+ ],
81
+ });
82
+ export { vite_config_default as default };
83
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAiLi4vLi4vc2NyaXB0cy92aXRlL3BhY2thZ2UtbGliLWNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIi9Vc2Vycy9zYW0vZGV2L3NhbXRlcm5lbnQvaG9tZS9wYWNrYWdlcy9jb25jb3JkXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvc2FtL2Rldi9zYW10ZXJuZW50L2hvbWUvcGFja2FnZXMvY29uY29yZC92aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvc2FtL2Rldi9zYW10ZXJuZW50L2hvbWUvcGFja2FnZXMvY29uY29yZC92aXRlLmNvbmZpZy50c1wiO2ltcG9ydCB7IGRpcm5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZVwiO1xuaW1wb3J0IGR0cyBmcm9tIFwidml0ZS1wbHVnaW4tZHRzXCI7XG5pbXBvcnQgeyBjcmVhdGVQYWNrYWdlRXh0ZXJuYWwsIHJlc29sdmVQYWNrYWdlRGlyIH0gZnJvbSBcIi4uLy4uL3NjcmlwdHMvdml0ZS9wYWNrYWdlLWxpYi1jb25maWdcIjtcblxuY29uc3QgY29uZmlnRGlyID0gZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuY29uc3QgZXh0ZXJuYWwgPSBjcmVhdGVQYWNrYWdlRXh0ZXJuYWwocmVzb2x2ZVBhY2thZ2VEaXIoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7XG4gIGJ1aWxkOiB7XG4gICAgb3V0RGlyOiBcImRpc3RcIixcbiAgICBzb3VyY2VtYXA6IHRydWUsXG4gICAgdGFyZ2V0OiBcImVzMjAyMFwiLFxuICAgIG1pbmlmeTogZmFsc2UsXG4gICAgbGliOiB7XG4gICAgICBlbnRyeTogcmVzb2x2ZShjb25maWdEaXIsIFwic3JjL2luZGV4LnRzXCIpLFxuICAgICAgbmFtZTogXCJ0ZXJuZW50Q29uY29yZFwiLFxuICAgICAgZmlsZU5hbWU6IFwiaW5kZXhcIixcbiAgICAgIGZvcm1hdHM6IFtcImVzXCJdLFxuICAgIH0sXG4gICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgZXh0ZXJuYWwsXG4gICAgICBvdXRwdXQ6IHtcbiAgICAgICAgZm9ybWF0OiBcImVzXCIsXG4gICAgICAgIGVudHJ5RmlsZU5hbWVzOiBcImluZGV4LmpzXCIsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHBsdWdpbnM6IFtcbiAgICBkdHMoe1xuICAgICAgdHNDb25maWdGaWxlUGF0aDogcmVzb2x2ZShjb25maWdEaXIsIFwidHNjb25maWcuanNvblwiKSxcbiAgICB9KSxcbiAgXSxcbn0pO1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvc2FtL2Rldi9zYW10ZXJuZW50L2hvbWUvc2NyaXB0cy92aXRlXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvc2FtL2Rldi9zYW10ZXJuZW50L2hvbWUvc2NyaXB0cy92aXRlL3BhY2thZ2UtbGliLWNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvc2FtL2Rldi9zYW10ZXJuZW50L2hvbWUvc2NyaXB0cy92aXRlL3BhY2thZ2UtbGliLWNvbmZpZy50c1wiO2ltcG9ydCB7IGJ1aWx0aW5Nb2R1bGVzIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgZGlybmFtZSwgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwibm9kZTp1cmxcIjtcblxudHlwZSBQYWNrYWdlSnNvblNoYXBlID0ge1xuICBkZXBlbmRlbmNpZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwZWVyRGVwZW5kZW5jaWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgb3B0aW9uYWxEZXBlbmRlbmNpZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufTtcblxuZnVuY3Rpb24gbG9hZFBhY2thZ2VKc29uKHBhY2thZ2VEaXI6IHN0cmluZyk6IFBhY2thZ2VKc29uU2hhcGUge1xuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSByZXNvbHZlKHBhY2thZ2VEaXIsIFwicGFja2FnZS5qc29uXCIpO1xuICByZXR1cm4gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMocGFja2FnZUpzb25QYXRoLCBcInV0ZjhcIikpIGFzIFBhY2thZ2VKc29uU2hhcGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBhY2thZ2VOYW1lcyhwYWNrYWdlSnNvbjogUGFja2FnZUpzb25TaGFwZSkge1xuICByZXR1cm4gbmV3IFNldChbXG4gICAgLi4uT2JqZWN0LmtleXMocGFja2FnZUpzb24uZGVwZW5kZW5jaWVzIHx8IHt9KSxcbiAgICAuLi5PYmplY3Qua2V5cyhwYWNrYWdlSnNvbi5wZWVyRGVwZW5kZW5jaWVzIHx8IHt9KSxcbiAgICAuLi5PYmplY3Qua2V5cyhwYWNrYWdlSnNvbi5vcHRpb25hbERlcGVuZGVuY2llcyB8fCB7fSksXG4gIF0pO1xufVxuXG5mdW5jdGlvbiBpc0V4dGVybmFsSWQoaWQ6IHN0cmluZywgcGFja2FnZU5hbWVzOiBTZXQ8c3RyaW5nPiwgaW5jbHVkZU5vZGVCdWlsdGluczogYm9vbGVhbikge1xuICBpZiAoaW5jbHVkZU5vZGVCdWlsdGlucykge1xuICAgIGlmIChidWlsdGluTW9kdWxlcy5pbmNsdWRlcyhpZCkgfHwgYnVpbHRpbk1vZHVsZXMuaW5jbHVkZXMoaWQucmVwbGFjZSgvXm5vZGU6LywgXCJcIikpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGlkLnN0YXJ0c1dpdGgoXCJub2RlOlwiKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBwYWNrYWdlTmFtZSBvZiBwYWNrYWdlTmFtZXMpIHtcbiAgICBpZiAoaWQgPT09IHBhY2thZ2VOYW1lIHx8IGlkLnN0YXJ0c1dpdGgoYCR7cGFja2FnZU5hbWV9L2ApKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYWNrYWdlRXh0ZXJuYWwoXG4gIHBhY2thZ2VEaXI6IHN0cmluZyxcbiAgb3B0aW9uczogeyBpbmNsdWRlTm9kZUJ1aWx0aW5zPzogYm9vbGVhbiB9ID0ge30sXG4pIHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBsb2FkUGFja2FnZUpzb24ocGFja2FnZURpcik7XG4gIGNvbnN0IHBhY2thZ2VOYW1lcyA9IGNyZWF0ZVBhY2thZ2VOYW1lcyhwYWNrYWdlSnNvbik7XG4gIGNvbnN0IGluY2x1ZGVOb2RlQnVpbHRpbnMgPSBvcHRpb25zLmluY2x1ZGVOb2RlQnVpbHRpbnMgPT09IHRydWU7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIGV4dGVybmFsKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXNFeHRlcm5hbElkKGlkLCBwYWNrYWdlTmFtZXMsIGluY2x1ZGVOb2RlQnVpbHRpbnMpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhY2thZ2VEaXIobWV0YVVybDogc3RyaW5nKSB7XG4gIHJldHVybiBkaXJuYW1lKGZpbGVVUkxUb1BhdGgobWV0YVVybCkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUErVCxTQUFTLFdBQUFBLFVBQVMsV0FBQUMsZ0JBQWU7QUFDaFcsU0FBUyxpQkFBQUMsc0JBQXFCO0FBQzlCLFNBQVMsb0JBQW9CO0FBQzdCLE9BQU8sU0FBUzs7O0FDSGlULFNBQVMsc0JBQXNCO0FBQ2hXLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsU0FBUyxlQUFlO0FBQ2pDLFNBQVMscUJBQXFCO0FBUTlCLFNBQVMsZ0JBQWdCLFlBQXNDO0FBQzdELFFBQU0sa0JBQWtCLFFBQVEsWUFBWSxjQUFjO0FBQzFELFNBQU8sS0FBSyxNQUFNLGFBQWEsaUJBQWlCLE1BQU0sQ0FBQztBQUN6RDtBQUVBLFNBQVMsbUJBQW1CLGFBQStCO0FBQ3pELFNBQU8sb0JBQUksSUFBSTtBQUFBLElBQ2IsR0FBRyxPQUFPLEtBQUssWUFBWSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQUEsSUFDN0MsR0FBRyxPQUFPLEtBQUssWUFBWSxvQkFBb0IsQ0FBQyxDQUFDO0FBQUEsSUFDakQsR0FBRyxPQUFPLEtBQUssWUFBWSx3QkFBd0IsQ0FBQyxDQUFDO0FBQUEsRUFDdkQsQ0FBQztBQUNIO0FBRUEsU0FBUyxhQUFhLElBQVksY0FBMkIscUJBQThCO0FBQ3pGLE1BQUkscUJBQXFCO0FBQ3ZCLFFBQUksZUFBZSxTQUFTLEVBQUUsS0FBSyxlQUFlLFNBQVMsR0FBRyxRQUFRLFVBQVUsRUFBRSxDQUFDLEdBQUc7QUFDcEYsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLEdBQUcsV0FBVyxPQUFPLEdBQUc7QUFDMUIsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBRUEsYUFBVyxlQUFlLGNBQWM7QUFDdEMsUUFBSSxPQUFPLGVBQWUsR0FBRyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUc7QUFDMUQsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUO0FBRU8sU0FBUyxzQkFDZCxZQUNBLFVBQTZDLENBQUMsR0FDOUM7QUFDQSxRQUFNLGNBQWMsZ0JBQWdCLFVBQVU7QUFDOUMsUUFBTSxlQUFlLG1CQUFtQixXQUFXO0FBQ25ELFFBQU0sc0JBQXNCLFFBQVEsd0JBQXdCO0FBRTVELFNBQU8sU0FBU0MsVUFBUyxJQUFZO0FBQ25DLFdBQU8sYUFBYSxJQUFJLGNBQWMsbUJBQW1CO0FBQUEsRUFDM0Q7QUFDRjtBQUVPLFNBQVMsa0JBQWtCLFNBQWlCO0FBQ2pELFNBQU8sUUFBUSxjQUFjLE9BQU8sQ0FBQztBQUN2Qzs7O0FEMURzTSxJQUFNLDJDQUEyQztBQU12UCxJQUFNLFlBQVlDLFNBQVFDLGVBQWMsd0NBQWUsQ0FBQztBQUN4RCxJQUFNLFdBQVcsc0JBQXNCLGtCQUFrQix3Q0FBZSxDQUFDO0FBRXpFLElBQU8sc0JBQVEsYUFBYTtBQUFBLEVBQzFCLE9BQU87QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxNQUNILE9BQU9DLFNBQVEsV0FBVyxjQUFjO0FBQUEsTUFDeEMsTUFBTTtBQUFBLE1BQ04sVUFBVTtBQUFBLE1BQ1YsU0FBUyxDQUFDLElBQUk7QUFBQSxJQUNoQjtBQUFBLElBQ0EsZUFBZTtBQUFBLE1BQ2I7QUFBQSxNQUNBLFFBQVE7QUFBQSxRQUNOLFFBQVE7QUFBQSxRQUNSLGdCQUFnQjtBQUFBLE1BQ2xCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNQLElBQUk7QUFBQSxNQUNGLGtCQUFrQkEsU0FBUSxXQUFXLGVBQWU7QUFBQSxJQUN0RCxDQUFDO0FBQUEsRUFDSDtBQUNGLENBQUM7IiwKICAibmFtZXMiOiBbImRpcm5hbWUiLCAicmVzb2x2ZSIsICJmaWxlVVJMVG9QYXRoIiwgImV4dGVybmFsIiwgImRpcm5hbWUiLCAiZmlsZVVSTFRvUGF0aCIsICJyZXNvbHZlIl0KfQo=
@@ -0,0 +1,47 @@
1
+ # @ternent/identity
2
+
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`89ed4d7`](https://github.com/ternent/core/commit/89ed4d73d016d1d3b7b2905298cf22977b7f26be) Thanks [@samternent](https://github.com/samternent)! - fix package formats
8
+
9
+ ## 0.4.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [`9aa260e`](https://github.com/ternent/core/commit/9aa260e70bf5750a01369404cdc29340f1bf3d39) Thanks [@samternent](https://github.com/samternent)! - fix builds
14
+
15
+ ## 0.4.1
16
+
17
+ ### Patch Changes
18
+
19
+ - [`46c60f6`](https://github.com/ternent/core/commit/46c60f6407ba8ac659aee5254bc5e74936989a61) Thanks [@samternent](https://github.com/samternent)! - Fix publish script
20
+
21
+ ## 0.4.0
22
+
23
+ ### Minor Changes
24
+
25
+ - [`b85f1eb`](https://github.com/ternent/core/commit/b85f1ebc2e47199e6259e5102e3cc16e1db279f6) Thanks [@samternent](https://github.com/samternent)! - Migrate to ternent org
26
+
27
+ ## 0.3.1
28
+
29
+ ### Patch Changes
30
+
31
+ - [`cb63d9c1dc91e0cd3924bafd5abcde89cc02992f`](https://github.com/samternent/home/commit/cb63d9c1dc91e0cd3924bafd5abcde89cc02992f) Thanks [@samternent](https://github.com/samternent)! - Fix workflows
32
+
33
+ ## 0.3.0
34
+
35
+ ### Minor Changes
36
+
37
+ - [`f364cb7d38f18770d32fe4a628b3c8b4bcccc31f`](https://github.com/samternent/home/commit/f364cb7d38f18770d32fe4a628b3c8b4bcccc31f) Thanks [@samternent](https://github.com/samternent)! - Introduce the new `@ternent/identity` package with Ed25519 signing, BIP-39 mnemonic recovery, Noble-backed Curve25519 conversion helpers, and versioned JSON identity exports. Migrate `@ternent/seal-cli` and the Seal web app to the seed-material envelope format, `SEAL_IDENTITY` configuration, and Ed25519 proof artifacts while keeping `ternent-identity` as the documented legacy package for existing Concord and PixPax consumers.
38
+
39
+ ## 0.2.0
40
+
41
+ ### Minor Changes
42
+
43
+ - [`f364cb7d38f18770d32fe4a628b3c8b4bcccc31f`](https://github.com/samternent/home/commit/f364cb7d38f18770d32fe4a628b3c8b4bcccc31f) Thanks [@samternent](https://github.com/samternent)! - Introduce the new `@ternent/identity` package with Ed25519 signing, X25519 bridge helpers, and versioned JSON identity exports. Migrate `@ternent/seal-cli` and the Seal web app to the new identity format, `SEAL_IDENTITY` configuration, and Ed25519 proof artifacts while keeping `ternent-identity` as the documented legacy package for existing Concord and PixPax consumers.
44
+
45
+ ### Patch Changes
46
+
47
+ - [`f364cb7d38f18770d32fe4a628b3c8b4bcccc31f`](https://github.com/samternent/home/commit/f364cb7d38f18770d32fe4a628b3c8b4bcccc31f) Thanks [@samternent](https://github.com/samternent)! - Move idenity algo with v2
@@ -0,0 +1,236 @@
1
+ # @ternent/identity
2
+
3
+ Ed25519 identity utilities with mnemonic support, signing, verification,
4
+ X25519 derivation, and Age-compatible key helpers.
5
+
6
+ ---
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ pnpm add @ternent/identity
12
+ # or
13
+ npm install @ternent/identity
14
+ # or
15
+ yarn add @ternent/identity
16
+ ```
17
+
18
+ ---
19
+
20
+ ## Quick Start
21
+
22
+ ### Create Identity
23
+
24
+ ```ts
25
+ import { createIdentity } from "@ternent/identity";
26
+
27
+ const identity = await createIdentity();
28
+
29
+ console.log(identity.publicKey);
30
+ console.log(identity.keyId);
31
+ ```
32
+
33
+ ### Create Mnemonic Identity
34
+
35
+ ```ts
36
+ import { createMnemonicIdentity } from "@ternent/identity";
37
+
38
+ const { mnemonic, identity } = await createMnemonicIdentity({ words: 12 });
39
+
40
+ console.log(mnemonic);
41
+ console.log(identity);
42
+ ```
43
+
44
+ ### Restore From Mnemonic
45
+
46
+ ```ts
47
+ import { createIdentityFromMnemonic } from "@ternent/identity";
48
+
49
+ const identity = await createIdentityFromMnemonic({
50
+ mnemonic:
51
+ "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about",
52
+ });
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Signing
58
+
59
+ ### Sign UTF-8
60
+
61
+ ```ts
62
+ import { signUtf8 } from "@ternent/identity";
63
+
64
+ const signature = await signUtf8(identity, "hello world");
65
+ ```
66
+
67
+ ### Verify UTF-8
68
+
69
+ ```ts
70
+ import { verifyUtf8 } from "@ternent/identity";
71
+
72
+ const ok = await verifyUtf8(identity.publicKey, "hello world", signature);
73
+ ```
74
+
75
+ ### Custom Context
76
+
77
+ ```ts
78
+ await signUtf8(identity, "payload", { context: "my-app/v1" });
79
+ ```
80
+
81
+ ---
82
+
83
+ ## Mnemonics
84
+
85
+ ### Generate
86
+
87
+ ```ts
88
+ import { generateMnemonic } from "@ternent/identity";
89
+
90
+ const mnemonic = generateMnemonic({ words: 24 });
91
+ ```
92
+
93
+ ### Validate
94
+
95
+ ```ts
96
+ import { validateMnemonic } from "@ternent/identity";
97
+
98
+ const valid = validateMnemonic(mnemonic);
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Identity Utilities
104
+
105
+ ### Parse
106
+
107
+ ```ts
108
+ import { parseIdentity } from "@ternent/identity";
109
+
110
+ const identity = parseIdentity(json);
111
+ ```
112
+
113
+ ### Serialize
114
+
115
+ ```ts
116
+ import { serializeIdentity } from "@ternent/identity";
117
+
118
+ const json = serializeIdentity(identity);
119
+ ```
120
+
121
+ ### Validate Integrity
122
+
123
+ ```ts
124
+ import { validateIdentity } from "@ternent/identity";
125
+
126
+ await validateIdentity(identity);
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Public Key & Key ID
132
+
133
+ ### Derive Public Key
134
+
135
+ ```ts
136
+ import { derivePublicKey } from "@ternent/identity";
137
+
138
+ const publicKey = await derivePublicKey(seed);
139
+ ```
140
+
141
+ ### Derive Key ID
142
+
143
+ ```ts
144
+ import { deriveKeyId } from "@ternent/identity";
145
+
146
+ const keyId = await deriveKeyId(publicKey);
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Raw Signing
152
+
153
+ ### Sign Bytes
154
+
155
+ ```ts
156
+ import { signBytes } from "@ternent/identity";
157
+
158
+ const signature = await signBytes(identity, bytes);
159
+ ```
160
+
161
+ ### Verify Bytes
162
+
163
+ ```ts
164
+ import { verifyBytes } from "@ternent/identity";
165
+
166
+ const ok = await verifyBytes(identity.publicKey, bytes, signature);
167
+ ```
168
+
169
+ ---
170
+
171
+ ## X25519 & Age
172
+
173
+ ### X25519 Private Key
174
+
175
+ ```ts
176
+ import { deriveX25519PrivateKey } from "@ternent/identity";
177
+
178
+ const privateKey = await deriveX25519PrivateKey(identity);
179
+ ```
180
+
181
+ ### X25519 Public Key
182
+
183
+ ```ts
184
+ import { deriveX25519PublicKey } from "@ternent/identity";
185
+
186
+ const publicKey = await deriveX25519PublicKey(identity);
187
+ ```
188
+
189
+ ### Convert Ed25519 → X25519
190
+
191
+ ```ts
192
+ import { convertEd25519PublicKeyToX25519PublicKey } from "@ternent/identity";
193
+
194
+ const x25519 = await convertEd25519PublicKeyToX25519PublicKey(identity.publicKey);
195
+ ```
196
+
197
+ ### Age Recipient
198
+
199
+ ```ts
200
+ import { deriveAgeRecipient } from "@ternent/identity";
201
+
202
+ const recipient = await deriveAgeRecipient(identity);
203
+ ```
204
+
205
+ ### Age Secret Key
206
+
207
+ ```ts
208
+ import { deriveAgeSecretKey } from "@ternent/identity";
209
+
210
+ const secret = await deriveAgeSecretKey(identity);
211
+ ```
212
+
213
+ ---
214
+
215
+ ## Types
216
+
217
+ ```ts
218
+ type MnemonicWordCount = 12 | 24;
219
+
220
+ type SerializedIdentity = {
221
+ format: "ternent-identity";
222
+ version: "2";
223
+ algorithm: "Ed25519";
224
+ createdAt: string;
225
+ publicKey: string;
226
+ keyId: string;
227
+ material: {
228
+ kind: "seed";
229
+ seed: string;
230
+ };
231
+ };
232
+ ```
233
+
234
+ ---
235
+
236
+ MIT License
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@ternent/identity",
3
+ "version": "0.5.0",
4
+ "description": "Seed-based Ed25519 identity primitives with X25519 bridge helpers",
5
+ "license": "ISC",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/ternent/core.git",
9
+ "directory": "packages/identity"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "README.md"
14
+ ],
15
+ "type": "module",
16
+ "sideEffects": false,
17
+ "main": "dist/index.umd.js",
18
+ "module": "dist/index.es.js",
19
+ "types": "dist/index.d.ts",
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.es.js",
24
+ "default": "./dist/index.es.js"
25
+ }
26
+ },
27
+ "scripts": {
28
+ "build": "vite build && tsc -p tsconfig.build.json",
29
+ "test": "vitest run"
30
+ },
31
+ "dependencies": {
32
+ "@noble/curves": "^2.0.1",
33
+ "@noble/hashes": "^2.0.1",
34
+ "@scure/bip39": "^2.0.1"
35
+ },
36
+ "devDependencies": {
37
+ "typescript": "^5.9.3",
38
+ "vite": "^2.9.18",
39
+ "vitest": "^1.6.0"
40
+ }
41
+ }