@oxyhq/core 3.18.1 → 4.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 (52) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/OxyServices.js +3 -2
  3. package/dist/cjs/i18n/locales/en-US.json +391 -17
  4. package/dist/cjs/i18n/locales/es-ES.json +391 -17
  5. package/dist/cjs/i18n/locales/locales/en-US.json +391 -17
  6. package/dist/cjs/i18n/locales/locales/es-ES.json +391 -17
  7. package/dist/cjs/mixins/OxyServices.accounts.js +480 -0
  8. package/dist/cjs/mixins/OxyServices.connectedApps.js +73 -0
  9. package/dist/cjs/mixins/OxyServices.utility.js +3 -2
  10. package/dist/cjs/mixins/index.js +9 -6
  11. package/dist/esm/.tsbuildinfo +1 -1
  12. package/dist/esm/OxyServices.js +3 -2
  13. package/dist/esm/i18n/locales/en-US.json +391 -17
  14. package/dist/esm/i18n/locales/es-ES.json +391 -17
  15. package/dist/esm/i18n/locales/locales/en-US.json +391 -17
  16. package/dist/esm/i18n/locales/locales/es-ES.json +391 -17
  17. package/dist/esm/mixins/OxyServices.accounts.js +477 -0
  18. package/dist/esm/mixins/OxyServices.connectedApps.js +70 -0
  19. package/dist/esm/mixins/OxyServices.utility.js +3 -2
  20. package/dist/esm/mixins/index.js +9 -6
  21. package/dist/types/.tsbuildinfo +1 -1
  22. package/dist/types/OxyServices.d.ts +3 -2
  23. package/dist/types/index.d.ts +2 -3
  24. package/dist/types/mixins/OxyServices.accounts.d.ts +642 -0
  25. package/dist/types/mixins/OxyServices.auth.d.ts +1 -1
  26. package/dist/types/mixins/OxyServices.connectedApps.d.ts +168 -0
  27. package/dist/types/mixins/OxyServices.utility.d.ts +6 -3
  28. package/dist/types/mixins/index.d.ts +3 -4
  29. package/package.json +1 -1
  30. package/src/OxyServices.ts +3 -2
  31. package/src/i18n/locales/en-US.json +391 -17
  32. package/src/i18n/locales/es-ES.json +391 -17
  33. package/src/index.ts +33 -34
  34. package/src/mixins/OxyServices.accounts.ts +1079 -0
  35. package/src/mixins/OxyServices.auth.ts +1 -1
  36. package/src/mixins/OxyServices.connectedApps.ts +165 -0
  37. package/src/mixins/OxyServices.utility.ts +7 -4
  38. package/src/mixins/__tests__/accounts.test.ts +667 -0
  39. package/src/mixins/__tests__/connectedApps.test.ts +1 -1
  40. package/src/mixins/index.ts +11 -9
  41. package/dist/cjs/mixins/OxyServices.applications.js +0 -350
  42. package/dist/cjs/mixins/OxyServices.managedAccounts.js +0 -143
  43. package/dist/cjs/mixins/OxyServices.workspaces.js +0 -181
  44. package/dist/esm/mixins/OxyServices.applications.js +0 -347
  45. package/dist/esm/mixins/OxyServices.managedAccounts.js +0 -140
  46. package/dist/esm/mixins/OxyServices.workspaces.js +0 -178
  47. package/dist/types/mixins/OxyServices.applications.d.ts +0 -496
  48. package/dist/types/mixins/OxyServices.managedAccounts.d.ts +0 -145
  49. package/dist/types/mixins/OxyServices.workspaces.d.ts +0 -219
  50. package/src/mixins/OxyServices.applications.ts +0 -773
  51. package/src/mixins/OxyServices.managedAccounts.ts +0 -173
  52. package/src/mixins/OxyServices.workspaces.ts +0 -351
@@ -20,8 +20,9 @@ import { composeOxyServices } from './mixins/index.js';
20
20
  * - **Payment**: Payment processing
21
21
  * - **Reputation**: Reputation system (Oxy Trust)
22
22
  * - **Assets**: File upload and asset management
23
- * - **Applications**: Application, membership, and credential management
24
- * - **Workspaces**: Workspace and membership management
23
+ * - **Accounts**: Unified account graph (tree, members, roles, bot credentials)
24
+ * and the applications owned within it (Application = OAuth client)
25
+ * - **Connected apps**: OAuth-consent surface (public app identity, grants)
25
26
  * - **Location**: Location-based features
26
27
  * - **Analytics**: Analytics tracking
27
28
  * - **Devices**: Device management
@@ -154,6 +154,10 @@
154
154
  "skip": "Skip",
155
155
  "enter": "Enter",
156
156
  "continue": "Continue"
157
+ },
158
+ "trust": {
159
+ "title": "Oxy Trust = Trust & Growth",
160
+ "body": "Oxy Trust is a reputation system that reacts to what you do. Helpful, respectful, constructive actions earn reputation. Harmful or low‑effort stuff chips it away. More reputation raises your trust tier and can unlock benefits; low reputation can limit features. It keeps things fair and rewards real contribution."
157
161
  }
158
162
  },
159
163
  "language": {
@@ -162,7 +166,8 @@
162
166
  "current": "Current Language",
163
167
  "available": "Available Languages",
164
168
  "changed": "Language changed to {{lang}}",
165
- "saveFailed": "Failed to save language preference"
169
+ "saveFailed": "Failed to save language preference",
170
+ "search": "Search languages"
166
171
  },
167
172
  "profile": {
168
173
  "edit": "Edit Profile",
@@ -172,7 +177,9 @@
172
177
  "reputation": "Reputation",
173
178
  "followers": "Followers",
174
179
  "following": "Following",
175
- "more": "+ {{count}} more"
180
+ "more": "+ {{count}} more",
181
+ "errorTitle": "Profile Error",
182
+ "errorSubtext": "This could happen if the user doesn't exist or the profile service is unavailable."
176
183
  },
177
184
  "feedback": {
178
185
  "type": {
@@ -215,7 +222,8 @@
215
222
  "priority": "Priority:",
216
223
  "category": "Category:",
217
224
  "titleLabel": "Title:",
218
- "contact": "Contact:"
225
+ "contact": "Contact:",
226
+ "titleField": "Title:"
219
227
  },
220
228
  "actions": {
221
229
  "submit": "Submit Feedback",
@@ -230,7 +238,9 @@
230
238
  "thanks": "Thank you for your feedback!",
231
239
  "submitFailed": "Failed to submit feedback",
232
240
  "submitSuccess": "Feedback submitted successfully!"
233
- }
241
+ },
242
+ "title": "Feedback",
243
+ "subtitle": "Tell us what you think"
234
244
  },
235
245
  "recover": {
236
246
  "title": "Recover Account",
@@ -264,7 +274,8 @@
264
274
  "accountManagement": "Account Management",
265
275
  "multiAccount": "Multi-Account",
266
276
  "addAccount": "Add Account",
267
- "moreOptions": "More Options"
277
+ "moreOptions": "More Options",
278
+ "accounts": "Accounts"
268
279
  },
269
280
  "quickActions": {
270
281
  "overview": "Overview",
@@ -326,7 +337,10 @@
326
337
  "sections": {
327
338
  "current": "Current Account",
328
339
  "otherWithCount": "Other Accounts ({{count}})",
329
- "deviceSessions": "Device Sessions"
340
+ "deviceSessions": "Device Sessions",
341
+ "sharedWithYou": "Shared with you",
342
+ "thisDevice": "On this device",
343
+ "yourAccounts": "Your accounts"
330
344
  },
331
345
  "currentBadge": "Current",
332
346
  "loading": "Loading accounts...",
@@ -361,7 +375,9 @@
361
375
  "empty": {
362
376
  "title": "No saved accounts",
363
377
  "subtitle": "Add another account to switch between them quickly"
364
- }
378
+ },
379
+ "label": "Account switcher",
380
+ "searchPlaceholder": "Search accounts"
365
381
  },
366
382
  "reputation": {
367
383
  "faq": {
@@ -522,7 +538,9 @@
522
538
  },
523
539
  "confirms": {
524
540
  "cancelSub": "Are you sure you want to cancel your subscription? You will lose access to premium features at the end of your current billing period.",
525
- "unsubscribeFeature": "Are you sure you want to unsubscribe from {{name}}?"
541
+ "unsubscribeFeature": "Are you sure you want to unsubscribe from {{name}}?",
542
+ "cancelSubTitle": "Cancel Subscription",
543
+ "unsubscribeFeatureTitle": "Unsubscribe from Feature"
526
544
  },
527
545
  "current": {
528
546
  "title": "Current Subscription",
@@ -540,11 +558,13 @@
540
558
  "billing": {
541
559
  "monthly": "Monthly",
542
560
  "yearly": "Yearly",
543
- "saveYearly": "💰 Save 20% with yearly billing"
561
+ "saveYearly": "💰 Save 20% with yearly billing",
562
+ "label": "Billing period"
544
563
  },
545
564
  "tabs": {
546
565
  "plans": "Full Plans",
547
- "features": "Individual Features"
566
+ "features": "Individual Features",
567
+ "label": "Subscription type"
548
568
  },
549
569
  "plan": {
550
570
  "scope": {
@@ -554,7 +574,8 @@
554
574
  },
555
575
  "badge": {
556
576
  "appExclusive": "App Exclusive",
557
- "notAvailable": "Not Available"
577
+ "notAvailable": "Not Available",
578
+ "mostPopular": "Most Popular"
558
579
  },
559
580
  "perInterval": "per {{interval}}",
560
581
  "current": "Current Plan",
@@ -566,7 +587,16 @@
566
587
  "availableIn": "Available in: {{apps}}"
567
588
  },
568
589
  "includedInPlan": "Included in your plan",
569
- "subscribed": "Subscribed"
590
+ "subscribed": "Subscribed",
591
+ "included": "Included",
592
+ "plansOnly": "Only available in subscription plans"
593
+ },
594
+ "features": {
595
+ "title": "Individual Features",
596
+ "subtitle": "Subscribe to specific features you need. Some features are included in subscription plans."
597
+ },
598
+ "dev": {
599
+ "appContext": "Test App Context (Dev Only)"
570
600
  }
571
601
  },
572
602
  "editProfile": {
@@ -692,7 +722,8 @@
692
722
  "cropMeasureFailed": "Could not measure the image",
693
723
  "cropNotReady": "Image not ready yet",
694
724
  "cropFailed": "Failed to crop image"
695
- }
725
+ },
726
+ "changeAvatar": "Change avatar"
696
727
  },
697
728
  "accountOverview": {
698
729
  "title": "Account",
@@ -884,6 +915,9 @@
884
915
  "description": "Use your activity to improve search results",
885
916
  "updated": "Search personalization updated",
886
917
  "error": "Failed to update personalization"
918
+ },
919
+ "searchPersonalization": {
920
+ "error": "Failed to update personalization"
887
921
  }
888
922
  },
889
923
  "privacySettings": {
@@ -945,7 +979,8 @@
945
979
  "title": "Account Verification",
946
980
  "description": "Request a verified badge for your account. Verified accounts help establish authenticity and credibility.",
947
981
  "sections": {
948
- "request": "VERIFICATION REQUEST"
982
+ "request": "VERIFICATION REQUEST",
983
+ "benefits": "What verification gives you"
949
984
  },
950
985
  "reasonLabel": "Reason for Verification *",
951
986
  "reasonPlaceholder": "Explain why you need a verified badge (e.g., public figure, brand, organization)",
@@ -958,7 +993,13 @@
958
993
  "successMessage": "Your verification request has been submitted. Request ID: {{requestId}}",
959
994
  "ok": "OK",
960
995
  "error": "Service not available",
961
- "note": "Note: Verification requests are reviewed manually and may take several days. We will notify you once your request has been reviewed."
996
+ "note": "Note: Verification requests are reviewed manually and may take several days. We will notify you once your request has been reviewed.",
997
+ "heroTitle": "Get a verified badge",
998
+ "benefits": {
999
+ "authenticity": "Confirms your identity is authentic and trusted",
1000
+ "badge": "Displays a verified badge across the platform",
1001
+ "credibility": "Builds credibility with people who follow you"
1002
+ }
962
1003
  },
963
1004
  "help": {
964
1005
  "title": "Help & Support",
@@ -1069,7 +1110,8 @@
1069
1110
  "verify": "Verify",
1070
1111
  "resetPassword": "Reset Password",
1071
1112
  "signedOut": "Signed out",
1072
- "close": "Close"
1113
+ "close": "Close",
1114
+ "delete": "Delete"
1073
1115
  },
1074
1116
  "cancel": "Cancel",
1075
1117
  "revoke": "Revoke",
@@ -1088,7 +1130,9 @@
1088
1130
  "email": "Email",
1089
1131
  "password": "Password",
1090
1132
  "confirmPassword": "Confirm Password"
1091
- }
1133
+ },
1134
+ "back": "Back",
1135
+ "remove": "Remove"
1092
1136
  },
1093
1137
  "sessionManagement": {
1094
1138
  "title": "Active Sessions",
@@ -1518,5 +1562,335 @@
1518
1562
  "openWithUser": "Account menu for {{name}}",
1519
1563
  "switching": "Switching account…",
1520
1564
  "signOutAccount": "Sign out {{name}}"
1565
+ },
1566
+ "accounts": {
1567
+ "activeAccount": {
1568
+ "a11y": "Active account: {{name}}. Tap to switch accounts.",
1569
+ "label": "Active account"
1570
+ },
1571
+ "roles": {
1572
+ "owner": {
1573
+ "label": "Owner"
1574
+ },
1575
+ "admin": {
1576
+ "label": "Admin"
1577
+ },
1578
+ "editor": {
1579
+ "label": "Editor"
1580
+ },
1581
+ "developer": {
1582
+ "label": "Developer"
1583
+ },
1584
+ "billing": {
1585
+ "label": "Billing"
1586
+ },
1587
+ "viewer": {
1588
+ "label": "Viewer"
1589
+ }
1590
+ },
1591
+ "kinds": {
1592
+ "organization": {
1593
+ "label": "Organization",
1594
+ "description": "A shared team account with members"
1595
+ },
1596
+ "project": {
1597
+ "label": "Project",
1598
+ "description": "A separate account you control"
1599
+ },
1600
+ "bot": {
1601
+ "label": "Bot",
1602
+ "description": "A programmatic account with service credentials"
1603
+ }
1604
+ },
1605
+ "create": {
1606
+ "title": "Create account",
1607
+ "subtitle": "Create an account you control. It will have its own profile, members, and apps.",
1608
+ "displayName": {
1609
+ "label": "Display name"
1610
+ },
1611
+ "bio": {
1612
+ "label": "Bio (optional)"
1613
+ },
1614
+ "username": {
1615
+ "label": "Username",
1616
+ "available": "Username is available",
1617
+ "taken": "Username is taken",
1618
+ "tooShort": "Username must be at least 3 characters",
1619
+ "invalidChars": "Only letters, numbers, hyphens, and underscores",
1620
+ "checkFailed": "Could not check availability"
1621
+ },
1622
+ "toasts": {
1623
+ "success": "Account created",
1624
+ "failed": "Failed to create account"
1625
+ }
1626
+ },
1627
+ "manage": {
1628
+ "create": {
1629
+ "subtitle": "Add an organization, project, or bot"
1630
+ },
1631
+ "switch": {
1632
+ "title": "Switch account",
1633
+ "count": "{{count}} accounts",
1634
+ "empty": "Accounts you own or share"
1635
+ }
1636
+ },
1637
+ "members": {
1638
+ "title": "Members",
1639
+ "subtitle": "People with access to this account.",
1640
+ "empty": "No members yet.",
1641
+ "actions": {
1642
+ "remove": "Remove member",
1643
+ "transfer": "Transfer ownership"
1644
+ },
1645
+ "errors": {
1646
+ "identifierRequired": "Enter a username or email to invite",
1647
+ "missingAccount": "No account selected.",
1648
+ "noPermission": "You do not have permission to view members.",
1649
+ "userNotFound": "User not found"
1650
+ },
1651
+ "invite": {
1652
+ "title": "Add a member",
1653
+ "identifierLabel": "Username or email",
1654
+ "roleLabel": "Role",
1655
+ "submit": "Add member"
1656
+ },
1657
+ "removeConfirm": {
1658
+ "title": "Remove member",
1659
+ "description": "Remove this member from the account? They will lose all access."
1660
+ },
1661
+ "transferConfirm": {
1662
+ "title": "Transfer ownership",
1663
+ "description": "Transfer ownership of this account to this member? You will be demoted to admin. This cannot be undone."
1664
+ },
1665
+ "toasts": {
1666
+ "added": "Member added",
1667
+ "addFailed": "Failed to add member",
1668
+ "removed": "Member removed",
1669
+ "removeFailed": "Failed to remove member",
1670
+ "roleUpdated": "Role updated",
1671
+ "roleFailed": "Failed to update role",
1672
+ "transferred": "Ownership transferred",
1673
+ "transferFailed": "Failed to transfer ownership"
1674
+ }
1675
+ },
1676
+ "settings": {
1677
+ "title": "Account settings",
1678
+ "subtitle": "Manage this account’s profile, members, and access.",
1679
+ "save": "Save changes",
1680
+ "displayName": {
1681
+ "label": "Display name"
1682
+ },
1683
+ "bio": {
1684
+ "label": "Bio (optional)"
1685
+ },
1686
+ "sections": {
1687
+ "access": "Access",
1688
+ "dangerZone": "Danger zone"
1689
+ },
1690
+ "members": {
1691
+ "subtitle": "Invite people and manage roles"
1692
+ },
1693
+ "archive": {
1694
+ "title": "Archive account",
1695
+ "subtitle": "Deactivate this account",
1696
+ "confirmTitle": "Archive account",
1697
+ "confirmDescription": "Archive this account? It will be deactivated and its members will lose access."
1698
+ },
1699
+ "errors": {
1700
+ "missingAccount": "No account selected."
1701
+ },
1702
+ "toasts": {
1703
+ "saved": "Account updated",
1704
+ "saveFailed": "Failed to update account",
1705
+ "archived": "Account archived",
1706
+ "archiveFailed": "Failed to archive account"
1707
+ }
1708
+ }
1709
+ },
1710
+ "deleteAccount": {
1711
+ "title": "Delete Account",
1712
+ "warning": "This action cannot be undone. Your account and all associated data will be permanently deleted.",
1713
+ "confirmLabel": "Type \"{{username}}\" to confirm",
1714
+ "confirm": "Delete Forever",
1715
+ "error": "Failed to delete account"
1716
+ },
1717
+ "manageAccount": {
1718
+ "title": "Manage your Oxy Account",
1719
+ "signOutOfThisAccount": "Sign out of this account",
1720
+ "sections": {
1721
+ "profile": "Profile",
1722
+ "preferences": "Preferences",
1723
+ "security": "Security",
1724
+ "sessions": "Sessions & devices",
1725
+ "legal": "Legal",
1726
+ "dangerZone": "Danger zone"
1727
+ },
1728
+ "items": {
1729
+ "editProfile": {
1730
+ "title": "Edit profile",
1731
+ "subtitle": "Name, username, bio, links"
1732
+ },
1733
+ "theme": {
1734
+ "title": "Theme color",
1735
+ "subtitle": "Personalize your Bloom color"
1736
+ },
1737
+ "security": {
1738
+ "title": "Security settings",
1739
+ "subtitle": "Password, 2FA, recovery"
1740
+ },
1741
+ "billing": {
1742
+ "title": "Billing",
1743
+ "subtitle": "Manage subscription and payment methods"
1744
+ }
1745
+ },
1746
+ "sessions": {
1747
+ "thisDevice": "This device",
1748
+ "lastActive": "Last active {{relative}}",
1749
+ "loading": "Loading sessions…",
1750
+ "empty": "No active sessions",
1751
+ "signOutAllOnThisDevice": "Sign out of all other devices",
1752
+ "signOutAllSubtitle": "End {{count}} other device session(s)"
1753
+ },
1754
+ "confirms": {
1755
+ "removeDeviceTitle": "Remove device",
1756
+ "removeDevice": "Sign out from \"{{name}}\"?",
1757
+ "signOutAllDevicesTitle": "Sign out of all other devices",
1758
+ "signOutAllDevices": "End {{count}} other device session(s)? This won't sign you out here."
1759
+ },
1760
+ "toasts": {
1761
+ "deviceRemoved": "Signed out from {{name}}",
1762
+ "deviceRemoveFailed": "Failed to remove device",
1763
+ "allDevicesSignedOut": "Signed out from all other devices",
1764
+ "allDevicesFailed": "Failed to sign out from other devices"
1765
+ }
1766
+ },
1767
+ "trust": {
1768
+ "tiers": {
1769
+ "new": "New",
1770
+ "trusted": "Trusted",
1771
+ "high_trust": "High Trust",
1772
+ "verified": "Verified",
1773
+ "restricted": "Restricted"
1774
+ },
1775
+ "center": {
1776
+ "title": "Trust Center",
1777
+ "balance": "reputation points",
1778
+ "history": "Reputation History",
1779
+ "noHistory": "No reputation history yet.",
1780
+ "noDescription": "No description",
1781
+ "info": "Reputation can only be earned by positive actions in the Oxy Ecosystem. It cannot be sent or received directly.",
1782
+ "loadError": "Failed to load reputation data",
1783
+ "actions": {
1784
+ "title": "Explore",
1785
+ "about": "About",
1786
+ "faq": "FAQ",
1787
+ "leaderboard": "Leaderboard",
1788
+ "rewards": "Rewards",
1789
+ "rules": "Rules"
1790
+ }
1791
+ },
1792
+ "about": {
1793
+ "title": "About Oxy Trust",
1794
+ "subtitle": "Learn about the reputation system",
1795
+ "intro": "Oxy Trust is a recognition of your positive actions in the Oxy Ecosystem. Reputation cannot be sent or received directly, only earned by contributing to the community.",
1796
+ "how": {
1797
+ "title": "How to Earn Reputation",
1798
+ "contribute": "Contributing content",
1799
+ "help": "Helping other users",
1800
+ "participate": "Participating in events",
1801
+ "report": "Reporting bugs",
1802
+ "other": "Other positive actions"
1803
+ },
1804
+ "why": {
1805
+ "title": "Why Oxy Trust?",
1806
+ "text": "Your reputation and trust tier unlock special features and recognition in the Oxy Ecosystem. The more you contribute, the more you earn!"
1807
+ }
1808
+ },
1809
+ "faq": {
1810
+ "title": "Trust FAQ",
1811
+ "subtitle": "Frequently asked questions about Oxy Trust",
1812
+ "search": "Search FAQ...",
1813
+ "noResults": "No FAQ items found matching \"{{query}}\"",
1814
+ "items": {
1815
+ "what": {
1816
+ "q": "What is Oxy Trust?",
1817
+ "a": "Oxy Trust is a reputation system that recognizes your positive contributions across the Oxy Ecosystem. Your reputation reflects how helpful, respectful, and constructive your actions are."
1818
+ },
1819
+ "earn": {
1820
+ "q": "How do I earn reputation?",
1821
+ "a": "You earn reputation by contributing content, helping other users, participating in events, and reporting bugs. Constructive, positive actions raise your reputation over time."
1822
+ },
1823
+ "lose": {
1824
+ "q": "Can I lose reputation?",
1825
+ "a": "Yes. Harmful, abusive, or low-effort actions can reduce your reputation and lower your trust tier."
1826
+ },
1827
+ "use": {
1828
+ "q": "What is reputation used for?",
1829
+ "a": "Your reputation and trust tier unlock special features, recognition, and privileges across the Oxy Ecosystem."
1830
+ },
1831
+ "transfer": {
1832
+ "q": "Can I send or receive reputation?",
1833
+ "a": "No. Reputation cannot be transferred between accounts. It can only be earned through your own actions."
1834
+ },
1835
+ "support": {
1836
+ "q": "Where can I get help?",
1837
+ "a": "If you have questions about Oxy Trust, read the About section or contact support from the Help screen."
1838
+ }
1839
+ }
1840
+ },
1841
+ "leaderboard": {
1842
+ "title": "Trust Leaderboard",
1843
+ "subtitle": "Top contributors in the community",
1844
+ "rankLabel": "rank {{rank}}",
1845
+ "empty": "No leaderboard data",
1846
+ "emptyDesc": "Top contributors will appear here as the community grows.",
1847
+ "error": "Failed to load leaderboard"
1848
+ },
1849
+ "rewards": {
1850
+ "title": "Trust Rewards",
1851
+ "subtitle": "Unlock special features and recognition"
1852
+ },
1853
+ "rules": {
1854
+ "title": "Trust Rules",
1855
+ "subtitle": "How to earn reputation",
1856
+ "empty": "No rules found.",
1857
+ "categories": {
1858
+ "content": "Content",
1859
+ "social": "Social",
1860
+ "trust": "Trust",
1861
+ "moderation": "Moderation",
1862
+ "physical": "Real Life",
1863
+ "penalty": "Penalties",
1864
+ "other": "Other"
1865
+ }
1866
+ },
1867
+ "achievements": {
1868
+ "unlocked": "Achievements",
1869
+ "locked": "Locked Achievements",
1870
+ "firstStep": "First Step",
1871
+ "firstStepDesc": "Earned your first reputation point",
1872
+ "novice": "Novice",
1873
+ "noviceDesc": "Reached 10 reputation points",
1874
+ "contributor": "Contributor",
1875
+ "contributorDesc": "Reached 50 reputation points",
1876
+ "risingStar": "Rising Star",
1877
+ "risingStarDesc": "Reached 100 reputation points",
1878
+ "communityHero": "Community Hero",
1879
+ "communityHeroDesc": "Reached 500 reputation points",
1880
+ "legend": "Legend",
1881
+ "legendDesc": "Reached 1000 reputation points",
1882
+ "phoenix": "Phoenix",
1883
+ "phoenixDesc": "Reached 2500 reputation points",
1884
+ "unstoppable": "Unstoppable",
1885
+ "unstoppableDesc": "Reached 5000 reputation points",
1886
+ "helper": "Helper",
1887
+ "helperDesc": "Helped 10 users",
1888
+ "bugHunter": "Bug Hunter",
1889
+ "bugHunterDesc": "Reported helpful bugs",
1890
+ "streakMaster": "Streak Master",
1891
+ "streakMasterDesc": "7 day activity streak",
1892
+ "earlyAdopter": "Early Adopter",
1893
+ "earlyAdopterDesc": "Been part of the community from the start"
1894
+ }
1521
1895
  }
1522
1896
  }