@atproto/api 0.18.3 → 0.18.5

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 (75) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/age-assurance.d.ts +29 -0
  3. package/dist/age-assurance.d.ts.map +1 -0
  4. package/dist/age-assurance.js +95 -0
  5. package/dist/age-assurance.js.map +1 -0
  6. package/dist/age-assurance.test.d.ts +2 -0
  7. package/dist/age-assurance.test.d.ts.map +1 -0
  8. package/dist/age-assurance.test.js +186 -0
  9. package/dist/age-assurance.test.js.map +1 -0
  10. package/dist/agent.d.ts +1 -1
  11. package/dist/agent.d.ts.map +1 -1
  12. package/dist/client/index.d.ts +27 -0
  13. package/dist/client/index.d.ts.map +1 -1
  14. package/dist/client/index.js +91 -8
  15. package/dist/client/index.js.map +1 -1
  16. package/dist/client/lexicons.d.ts +668 -0
  17. package/dist/client/lexicons.d.ts.map +1 -1
  18. package/dist/client/lexicons.js +356 -0
  19. package/dist/client/lexicons.js.map +1 -1
  20. package/dist/client/types/app/bsky/contact/defs.d.ts +24 -0
  21. package/dist/client/types/app/bsky/contact/defs.d.ts.map +1 -0
  22. package/dist/client/types/app/bsky/contact/defs.js +25 -0
  23. package/dist/client/types/app/bsky/contact/defs.js.map +1 -0
  24. package/dist/client/types/app/bsky/contact/dismissMatch.d.ts +27 -0
  25. package/dist/client/types/app/bsky/contact/dismissMatch.d.ts.map +1 -0
  26. package/dist/client/types/app/bsky/contact/dismissMatch.js +26 -0
  27. package/dist/client/types/app/bsky/contact/dismissMatch.js.map +1 -0
  28. package/dist/client/types/app/bsky/contact/getMatches.d.ts +28 -0
  29. package/dist/client/types/app/bsky/contact/getMatches.d.ts.map +1 -0
  30. package/dist/client/types/app/bsky/contact/getMatches.js +26 -0
  31. package/dist/client/types/app/bsky/contact/getMatches.js.map +1 -0
  32. package/dist/client/types/app/bsky/contact/getSyncStatus.d.ts +24 -0
  33. package/dist/client/types/app/bsky/contact/getSyncStatus.d.ts.map +1 -0
  34. package/dist/client/types/app/bsky/contact/getSyncStatus.js +26 -0
  35. package/dist/client/types/app/bsky/contact/getSyncStatus.js.map +1 -0
  36. package/dist/client/types/app/bsky/contact/importContacts.d.ts +32 -0
  37. package/dist/client/types/app/bsky/contact/importContacts.d.ts.map +1 -0
  38. package/dist/client/types/app/bsky/contact/importContacts.js +26 -0
  39. package/dist/client/types/app/bsky/contact/importContacts.js.map +1 -0
  40. package/dist/client/types/app/bsky/contact/removeData.d.ts +25 -0
  41. package/dist/client/types/app/bsky/contact/removeData.d.ts.map +1 -0
  42. package/dist/client/types/app/bsky/contact/removeData.js +26 -0
  43. package/dist/client/types/app/bsky/contact/removeData.js.map +1 -0
  44. package/dist/client/types/app/bsky/contact/startPhoneVerification.d.ts +27 -0
  45. package/dist/client/types/app/bsky/contact/startPhoneVerification.d.ts.map +1 -0
  46. package/dist/client/types/app/bsky/contact/startPhoneVerification.js +26 -0
  47. package/dist/client/types/app/bsky/contact/startPhoneVerification.js.map +1 -0
  48. package/dist/client/types/app/bsky/contact/verifyPhone.d.ts +31 -0
  49. package/dist/client/types/app/bsky/contact/verifyPhone.d.ts.map +1 -0
  50. package/dist/client/types/app/bsky/contact/verifyPhone.js +26 -0
  51. package/dist/client/types/app/bsky/contact/verifyPhone.js.map +1 -0
  52. package/dist/client/types/app/bsky/graph/defs.d.ts +8 -0
  53. package/dist/client/types/app/bsky/graph/defs.d.ts.map +1 -1
  54. package/dist/client/types/app/bsky/graph/defs.js.map +1 -1
  55. package/dist/index.d.ts +1 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +1 -0
  58. package/dist/index.js.map +1 -1
  59. package/package.json +7 -6
  60. package/src/age-assurance.test.ts +213 -0
  61. package/src/age-assurance.ts +137 -0
  62. package/src/client/index.ts +103 -0
  63. package/src/client/lexicons.ts +377 -0
  64. package/src/client/types/app/bsky/contact/defs.ts +52 -0
  65. package/src/client/types/app/bsky/contact/dismissMatch.ts +52 -0
  66. package/src/client/types/app/bsky/contact/getMatches.ts +53 -0
  67. package/src/client/types/app/bsky/contact/getSyncStatus.ts +49 -0
  68. package/src/client/types/app/bsky/contact/importContacts.ts +58 -0
  69. package/src/client/types/app/bsky/contact/removeData.ts +49 -0
  70. package/src/client/types/app/bsky/contact/startPhoneVerification.ts +52 -0
  71. package/src/client/types/app/bsky/contact/verifyPhone.ts +57 -0
  72. package/src/client/types/app/bsky/graph/defs.ts +8 -0
  73. package/src/index.ts +1 -0
  74. package/tests/atp-agent.test.ts +1 -1
  75. package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @atproto/api
2
2
 
3
+ ## 0.18.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#4393](https://github.com/bluesky-social/atproto/pull/4393) [`380aa3b`](https://github.com/bluesky-social/atproto/commit/380aa3bfe73b5c4e59961c27ae988786b69c129d) Thanks [@rafaeleyng](https://github.com/rafaeleyng)! - Add app.bsky.contact.\* lexicons, still without error handling. This is unstable and should not be used at this state.
8
+
9
+ - [#4418](https://github.com/bluesky-social/atproto/pull/4418) [`308f432`](https://github.com/bluesky-social/atproto/commit/308f432f7aef196b4df0a6dc7c5367ab5a8b8964) Thanks [@rafaeleyng](https://github.com/rafaeleyng)! - Expand return type of relationships in app.bsky.graph.getRelationships
10
+
11
+ - [#4423](https://github.com/bluesky-social/atproto/pull/4423) [`a6e16cd`](https://github.com/bluesky-social/atproto/commit/a6e16cd0cd3029caf63ce2312dc5207532654763) Thanks [@foysalit](https://github.com/foysalit)! - Add min length for required comment fields in ozone events
12
+
13
+ - Updated dependencies [[`d551b0e`](https://github.com/bluesky-social/atproto/commit/d551b0e3527714c111c3ec6e4c90ad7f46369fab), [`693784c`](https://github.com/bluesky-social/atproto/commit/693784c3a0dee4b6a29aa1e018fce682dcae148f)]:
14
+ - @atproto/lexicon@0.6.0
15
+ - @atproto/common-web@0.4.7
16
+ - @atproto/xrpc@0.7.7
17
+
18
+ ## 0.18.4
19
+
20
+ ### Patch Changes
21
+
22
+ - [#4407](https://github.com/bluesky-social/atproto/pull/4407) [`90f1569`](https://github.com/bluesky-social/atproto/commit/90f15698ee63d9a7374f1206754eda5d530873d7) Thanks [@estrattonbailey](https://github.com/estrattonbailey)! - Adds ageassurance namespace, methods, and utils for Age Assurance V2
23
+
24
+ - Updated dependencies [[`bcae2b7`](https://github.com/bluesky-social/atproto/commit/bcae2b77b68da6dc2ec202651c8bf41fd5769f69)]:
25
+ - @atproto/syntax@0.4.2
26
+ - @atproto/common-web@0.4.6
27
+
3
28
  ## 0.18.3
4
29
 
5
30
  ### Patch Changes
@@ -0,0 +1,29 @@
1
+ import { AppBskyAgeassuranceDefs } from './client';
2
+ export type AgeAssuranceRuleID = Exclude<AppBskyAgeassuranceDefs.ConfigRegionRuleDefault['$type'] | AppBskyAgeassuranceDefs.ConfigRegionRuleIfDeclaredOverAge['$type'] | AppBskyAgeassuranceDefs.ConfigRegionRuleIfDeclaredUnderAge['$type'] | AppBskyAgeassuranceDefs.ConfigRegionRuleIfAssuredOverAge['$type'] | AppBskyAgeassuranceDefs.ConfigRegionRuleIfAssuredUnderAge['$type'] | AppBskyAgeassuranceDefs.ConfigRegionRuleIfAccountNewerThan['$type'] | AppBskyAgeassuranceDefs.ConfigRegionRuleIfAccountOlderThan['$type'], undefined>;
3
+ export declare const ageAssuranceRuleIDs: Record<string, AgeAssuranceRuleID>;
4
+ /**
5
+ * Returns the first matched region configuration based on the provided geolocation.
6
+ */
7
+ export declare function getAgeAssuranceRegionConfig(config: AppBskyAgeassuranceDefs.Config, geolocation: {
8
+ countryCode: string;
9
+ regionCode?: string;
10
+ }): AppBskyAgeassuranceDefs.ConfigRegion | undefined;
11
+ export declare function computeAgeAssuranceRegionAccess(region: AppBskyAgeassuranceDefs.ConfigRegion, data: {
12
+ /**
13
+ * The account creation date in ISO 8601 format. Only checked if we
14
+ * don't have an assured age, such as on the client.
15
+ */
16
+ accountCreatedAt?: string;
17
+ /**
18
+ * The user's declared age
19
+ */
20
+ declaredAge?: number;
21
+ /**
22
+ * The user's minimum age as assured by a trusted third party.
23
+ */
24
+ assuredAge?: number;
25
+ } | undefined): {
26
+ access: AppBskyAgeassuranceDefs.Access;
27
+ reason: AgeAssuranceRuleID;
28
+ } | undefined;
29
+ //# sourceMappingURL=age-assurance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"age-assurance.d.ts","sourceRoot":"","sources":["../src/age-assurance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAGlD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACpC,uBAAuB,CAAC,uBAAuB,CAAC,OAAO,CAAC,GACxD,uBAAuB,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAClE,uBAAuB,CAAC,kCAAkC,CAAC,OAAO,CAAC,GACnE,uBAAuB,CAAC,gCAAgC,CAAC,OAAO,CAAC,GACjE,uBAAuB,CAAC,iCAAiC,CAAC,OAAO,CAAC,GAClE,uBAAuB,CAAC,kCAAkC,CAAC,OAAO,CAAC,GACnE,uBAAuB,CAAC,kCAAkC,CAAC,OAAO,CAAC,EACrE,SAAS,CACV,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAQlE,CAAA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,uBAAuB,CAAC,MAAM,EACtC,WAAW,EAAE;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GACA,uBAAuB,CAAC,YAAY,GAAG,SAAS,CAOlD;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,uBAAuB,CAAC,YAAY,EAC5C,IAAI,EACA;IACE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GACD,SAAS,GAEX;IACE,MAAM,EAAE,uBAAuB,CAAC,MAAM,CAAA;IACtC,MAAM,EAAE,kBAAkB,CAAA;CAC3B,GACD,SAAS,CAsEZ"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ageAssuranceRuleIDs = void 0;
4
+ exports.getAgeAssuranceRegionConfig = getAgeAssuranceRegionConfig;
5
+ exports.computeAgeAssuranceRegionAccess = computeAgeAssuranceRegionAccess;
6
+ const client_1 = require("./client");
7
+ const lexicons_1 = require("./client/lexicons");
8
+ exports.ageAssuranceRuleIDs = {
9
+ Default: `${lexicons_1.ids.AppBskyAgeassuranceDefs}#configRegionRuleDefault`,
10
+ IfDeclaredOverAge: `${lexicons_1.ids.AppBskyAgeassuranceDefs}#configRegionRuleIfDeclaredOverAge`,
11
+ IfDeclaredUnderAge: `${lexicons_1.ids.AppBskyAgeassuranceDefs}#configRegionRuleIfDeclaredUnderAge`,
12
+ IfAssuredOverAge: `${lexicons_1.ids.AppBskyAgeassuranceDefs}#configRegionRuleIfAssuredOverAge`,
13
+ IfAssuredUnderAge: `${lexicons_1.ids.AppBskyAgeassuranceDefs}#configRegionRuleIfAssuredUnderAge`,
14
+ IfAccountNewerThan: `${lexicons_1.ids.AppBskyAgeassuranceDefs}#configRegionRuleIfAccountNewerThan`,
15
+ IfAccountOlderThan: `${lexicons_1.ids.AppBskyAgeassuranceDefs}#configRegionRuleIfAccountOlderThan`,
16
+ };
17
+ /**
18
+ * Returns the first matched region configuration based on the provided geolocation.
19
+ */
20
+ function getAgeAssuranceRegionConfig(config, geolocation) {
21
+ const { regions } = config;
22
+ return regions.find(({ countryCode, regionCode }) => {
23
+ if (countryCode === geolocation.countryCode) {
24
+ return !regionCode || regionCode === geolocation.regionCode;
25
+ }
26
+ });
27
+ }
28
+ function computeAgeAssuranceRegionAccess(region, data) {
29
+ // first match wins
30
+ for (const rule of region.rules) {
31
+ if (client_1.AppBskyAgeassuranceDefs.isConfigRegionRuleIfAccountNewerThan(rule)) {
32
+ if (data?.accountCreatedAt && !data?.assuredAge) {
33
+ const accountCreatedAt = new Date(data.accountCreatedAt);
34
+ const threshold = new Date(rule.date);
35
+ if (accountCreatedAt >= threshold) {
36
+ return {
37
+ access: rule.access,
38
+ reason: rule.$type,
39
+ };
40
+ }
41
+ }
42
+ }
43
+ else if (client_1.AppBskyAgeassuranceDefs.isConfigRegionRuleIfAccountOlderThan(rule)) {
44
+ if (data?.accountCreatedAt && !data?.assuredAge) {
45
+ const accountCreatedAt = new Date(data.accountCreatedAt);
46
+ const threshold = new Date(rule.date);
47
+ if (accountCreatedAt < threshold) {
48
+ return {
49
+ access: rule.access,
50
+ reason: rule.$type,
51
+ };
52
+ }
53
+ }
54
+ }
55
+ else if (client_1.AppBskyAgeassuranceDefs.isConfigRegionRuleIfDeclaredOverAge(rule)) {
56
+ if (data?.declaredAge !== undefined && data.declaredAge >= rule.age) {
57
+ return {
58
+ access: rule.access,
59
+ reason: rule.$type,
60
+ };
61
+ }
62
+ }
63
+ else if (client_1.AppBskyAgeassuranceDefs.isConfigRegionRuleIfDeclaredUnderAge(rule)) {
64
+ if (data?.declaredAge !== undefined && data.declaredAge < rule.age) {
65
+ return {
66
+ access: rule.access,
67
+ reason: rule.$type,
68
+ };
69
+ }
70
+ }
71
+ else if (client_1.AppBskyAgeassuranceDefs.isConfigRegionRuleIfAssuredOverAge(rule)) {
72
+ if (data?.assuredAge && data.assuredAge >= rule.age) {
73
+ return {
74
+ access: rule.access,
75
+ reason: rule.$type,
76
+ };
77
+ }
78
+ }
79
+ else if (client_1.AppBskyAgeassuranceDefs.isConfigRegionRuleIfAssuredUnderAge(rule)) {
80
+ if (data?.assuredAge && data.assuredAge < rule.age) {
81
+ return {
82
+ access: rule.access,
83
+ reason: rule.$type,
84
+ };
85
+ }
86
+ }
87
+ else if (client_1.AppBskyAgeassuranceDefs.isConfigRegionRuleDefault(rule)) {
88
+ return {
89
+ access: rule.access,
90
+ reason: rule.$type,
91
+ };
92
+ }
93
+ }
94
+ }
95
+ //# sourceMappingURL=age-assurance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"age-assurance.js","sourceRoot":"","sources":["../src/age-assurance.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppBskyAgeassuranceDefs } from './client'\nimport { ids } from './client/lexicons'\n\nexport type AgeAssuranceRuleID = Exclude<\n | AppBskyAgeassuranceDefs.ConfigRegionRuleDefault['$type']\n | AppBskyAgeassuranceDefs.ConfigRegionRuleIfDeclaredOverAge['$type']\n | AppBskyAgeassuranceDefs.ConfigRegionRuleIfDeclaredUnderAge['$type']\n | AppBskyAgeassuranceDefs.ConfigRegionRuleIfAssuredOverAge['$type']\n | AppBskyAgeassuranceDefs.ConfigRegionRuleIfAssuredUnderAge['$type']\n | AppBskyAgeassuranceDefs.ConfigRegionRuleIfAccountNewerThan['$type']\n | AppBskyAgeassuranceDefs.ConfigRegionRuleIfAccountOlderThan['$type'],\n undefined\n>\n\nexport const ageAssuranceRuleIDs: Record<string, AgeAssuranceRuleID> = {\n Default: `${ids.AppBskyAgeassuranceDefs}#configRegionRuleDefault`,\n IfDeclaredOverAge: `${ids.AppBskyAgeassuranceDefs}#configRegionRuleIfDeclaredOverAge`,\n IfDeclaredUnderAge: `${ids.AppBskyAgeassuranceDefs}#configRegionRuleIfDeclaredUnderAge`,\n IfAssuredOverAge: `${ids.AppBskyAgeassuranceDefs}#configRegionRuleIfAssuredOverAge`,\n IfAssuredUnderAge: `${ids.AppBskyAgeassuranceDefs}#configRegionRuleIfAssuredUnderAge`,\n IfAccountNewerThan: `${ids.AppBskyAgeassuranceDefs}#configRegionRuleIfAccountNewerThan`,\n IfAccountOlderThan: `${ids.AppBskyAgeassuranceDefs}#configRegionRuleIfAccountOlderThan`,\n}\n\n/**\n * Returns the first matched region configuration based on the provided geolocation.\n */\nexport function getAgeAssuranceRegionConfig(\n config: AppBskyAgeassuranceDefs.Config,\n geolocation: {\n countryCode: string\n regionCode?: string\n },\n): AppBskyAgeassuranceDefs.ConfigRegion | undefined {\n const { regions } = config\n return regions.find(({ countryCode, regionCode }) => {\n if (countryCode === geolocation.countryCode) {\n return !regionCode || regionCode === geolocation.regionCode\n }\n })\n}\n\nexport function computeAgeAssuranceRegionAccess(\n region: AppBskyAgeassuranceDefs.ConfigRegion,\n data:\n | {\n /**\n * The account creation date in ISO 8601 format. Only checked if we\n * don't have an assured age, such as on the client.\n */\n accountCreatedAt?: string\n /**\n * The user's declared age\n */\n declaredAge?: number\n /**\n * The user's minimum age as assured by a trusted third party.\n */\n assuredAge?: number\n }\n | undefined,\n):\n | {\n access: AppBskyAgeassuranceDefs.Access\n reason: AgeAssuranceRuleID\n }\n | undefined {\n // first match wins\n for (const rule of region.rules) {\n if (AppBskyAgeassuranceDefs.isConfigRegionRuleIfAccountNewerThan(rule)) {\n if (data?.accountCreatedAt && !data?.assuredAge) {\n const accountCreatedAt = new Date(data.accountCreatedAt)\n const threshold = new Date(rule.date)\n if (accountCreatedAt >= threshold) {\n return {\n access: rule.access,\n reason: rule.$type,\n }\n }\n }\n } else if (\n AppBskyAgeassuranceDefs.isConfigRegionRuleIfAccountOlderThan(rule)\n ) {\n if (data?.accountCreatedAt && !data?.assuredAge) {\n const accountCreatedAt = new Date(data.accountCreatedAt)\n const threshold = new Date(rule.date)\n if (accountCreatedAt < threshold) {\n return {\n access: rule.access,\n reason: rule.$type,\n }\n }\n }\n } else if (\n AppBskyAgeassuranceDefs.isConfigRegionRuleIfDeclaredOverAge(rule)\n ) {\n if (data?.declaredAge !== undefined && data.declaredAge >= rule.age) {\n return {\n access: rule.access,\n reason: rule.$type,\n }\n }\n } else if (\n AppBskyAgeassuranceDefs.isConfigRegionRuleIfDeclaredUnderAge(rule)\n ) {\n if (data?.declaredAge !== undefined && data.declaredAge < rule.age) {\n return {\n access: rule.access,\n reason: rule.$type,\n }\n }\n } else if (\n AppBskyAgeassuranceDefs.isConfigRegionRuleIfAssuredOverAge(rule)\n ) {\n if (data?.assuredAge && data.assuredAge >= rule.age) {\n return {\n access: rule.access,\n reason: rule.$type,\n }\n }\n } else if (\n AppBskyAgeassuranceDefs.isConfigRegionRuleIfAssuredUnderAge(rule)\n ) {\n if (data?.assuredAge && data.assuredAge < rule.age) {\n return {\n access: rule.access,\n reason: rule.$type,\n }\n }\n } else if (AppBskyAgeassuranceDefs.isConfigRegionRuleDefault(rule)) {\n return {\n access: rule.access,\n reason: rule.$type,\n }\n }\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=age-assurance.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"age-assurance.test.d.ts","sourceRoot":"","sources":["../src/age-assurance.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const globals_1 = require("@jest/globals");
4
+ const age_assurance_1 = require("./age-assurance");
5
+ (0, globals_1.describe)('age-assurance', () => {
6
+ (0, globals_1.describe)('getAgeAssuranceRegionConfig', () => {
7
+ const config = {
8
+ regions: [
9
+ {
10
+ countryCode: 'US',
11
+ regionCode: 'CA',
12
+ rules: [],
13
+ },
14
+ {
15
+ countryCode: 'US',
16
+ rules: [],
17
+ },
18
+ ],
19
+ };
20
+ (0, globals_1.it)('should find region by country code only', () => {
21
+ const result = (0, age_assurance_1.getAgeAssuranceRegionConfig)(config, {
22
+ countryCode: 'US',
23
+ });
24
+ (0, globals_1.expect)(result).toEqual({
25
+ countryCode: 'US',
26
+ rules: [],
27
+ });
28
+ });
29
+ (0, globals_1.it)('should find region by country code and region code', () => {
30
+ const result = (0, age_assurance_1.getAgeAssuranceRegionConfig)(config, {
31
+ countryCode: 'US',
32
+ regionCode: 'CA',
33
+ });
34
+ (0, globals_1.expect)(result).toEqual({
35
+ countryCode: 'US',
36
+ regionCode: 'CA',
37
+ rules: [],
38
+ });
39
+ });
40
+ (0, globals_1.it)('should return undefined when no matching region found', () => {
41
+ const result = (0, age_assurance_1.getAgeAssuranceRegionConfig)(config, {
42
+ countryCode: 'GB',
43
+ });
44
+ (0, globals_1.expect)(result).toBeUndefined();
45
+ });
46
+ });
47
+ (0, globals_1.describe)('computeAgeAssuranceRegionAccess', () => {
48
+ const region = {
49
+ countryCode: 'US',
50
+ rules: [
51
+ {
52
+ $type: age_assurance_1.ageAssuranceRuleIDs.IfAccountNewerThan,
53
+ date: '2025-12-10T00:00:00Z',
54
+ access: 'none',
55
+ },
56
+ {
57
+ $type: age_assurance_1.ageAssuranceRuleIDs.IfAssuredOverAge,
58
+ age: 18,
59
+ access: 'full',
60
+ },
61
+ {
62
+ $type: age_assurance_1.ageAssuranceRuleIDs.IfAssuredOverAge,
63
+ age: 16,
64
+ access: 'safe',
65
+ },
66
+ {
67
+ $type: age_assurance_1.ageAssuranceRuleIDs.IfDeclaredOverAge,
68
+ age: 16,
69
+ access: 'safe',
70
+ },
71
+ {
72
+ $type: age_assurance_1.ageAssuranceRuleIDs.Default,
73
+ access: 'none',
74
+ },
75
+ ],
76
+ };
77
+ (0, globals_1.it)('should apply default if no data provided', () => {
78
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {});
79
+ (0, globals_1.expect)(result).toEqual({
80
+ access: 'none',
81
+ reason: age_assurance_1.ageAssuranceRuleIDs.Default,
82
+ });
83
+ });
84
+ (0, globals_1.describe)('IfAccountNewerThan', () => {
85
+ (0, globals_1.it)('should block accounts created after threshold', () => {
86
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
87
+ accountCreatedAt: new Date(2025, 11, 15).toISOString(),
88
+ declaredAge: 18,
89
+ });
90
+ (0, globals_1.expect)(result).toEqual({
91
+ access: 'none',
92
+ reason: age_assurance_1.ageAssuranceRuleIDs.IfAccountNewerThan,
93
+ });
94
+ });
95
+ (0, globals_1.it)('should allow accounts created before threshold', () => {
96
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
97
+ accountCreatedAt: new Date(2025, 10, 1).toISOString(),
98
+ declaredAge: 18,
99
+ });
100
+ (0, globals_1.expect)(result).toEqual({
101
+ access: 'safe',
102
+ reason: age_assurance_1.ageAssuranceRuleIDs.IfDeclaredOverAge,
103
+ });
104
+ });
105
+ (0, globals_1.it)('should allow accounts created exactly at threshold', () => {
106
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
107
+ accountCreatedAt: new Date(2025, 11, 1).toISOString(),
108
+ declaredAge: 18,
109
+ });
110
+ (0, globals_1.expect)(result).toEqual({
111
+ access: 'safe',
112
+ reason: age_assurance_1.ageAssuranceRuleIDs.IfDeclaredOverAge,
113
+ });
114
+ });
115
+ (0, globals_1.it)('should not apply rule when accountCreatedAt is not provided', () => {
116
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
117
+ declaredAge: 15,
118
+ });
119
+ (0, globals_1.expect)(result).toEqual({
120
+ access: 'none',
121
+ reason: age_assurance_1.ageAssuranceRuleIDs.Default,
122
+ });
123
+ });
124
+ (0, globals_1.it)('should not apply rule when assuredAge is present', () => {
125
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
126
+ accountCreatedAt: new Date(2025, 11, 15).toISOString(),
127
+ assuredAge: 20,
128
+ });
129
+ (0, globals_1.expect)(result).toEqual({
130
+ access: 'full',
131
+ reason: age_assurance_1.ageAssuranceRuleIDs.IfAssuredOverAge,
132
+ });
133
+ });
134
+ });
135
+ (0, globals_1.describe)('IfDeclaredOverAge rule', () => {
136
+ (0, globals_1.it)('should allow users at or above age threshold', () => {
137
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
138
+ declaredAge: 18,
139
+ });
140
+ (0, globals_1.expect)(result).toEqual({
141
+ access: 'safe',
142
+ reason: age_assurance_1.ageAssuranceRuleIDs.IfDeclaredOverAge,
143
+ });
144
+ });
145
+ (0, globals_1.it)('should allow users above age threshold', () => {
146
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
147
+ declaredAge: 25,
148
+ });
149
+ (0, globals_1.expect)(result).toEqual({
150
+ access: 'safe',
151
+ reason: age_assurance_1.ageAssuranceRuleIDs.IfDeclaredOverAge,
152
+ });
153
+ });
154
+ (0, globals_1.it)('should not allow users below age threshold', () => {
155
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
156
+ declaredAge: 17,
157
+ });
158
+ (0, globals_1.expect)(result).toEqual({
159
+ access: 'safe',
160
+ reason: age_assurance_1.ageAssuranceRuleIDs.IfDeclaredOverAge,
161
+ });
162
+ });
163
+ });
164
+ (0, globals_1.describe)('IfAssuredOverAge rule', () => {
165
+ (0, globals_1.it)('should allow users at or above assured age threshold', () => {
166
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
167
+ assuredAge: 18,
168
+ });
169
+ (0, globals_1.expect)(result).toEqual({
170
+ access: 'full',
171
+ reason: age_assurance_1.ageAssuranceRuleIDs.IfAssuredOverAge,
172
+ });
173
+ });
174
+ (0, globals_1.it)('should not allow users below assured age threshold', () => {
175
+ const result = (0, age_assurance_1.computeAgeAssuranceRegionAccess)(region, {
176
+ assuredAge: 17,
177
+ });
178
+ (0, globals_1.expect)(result).toEqual({
179
+ access: 'safe',
180
+ reason: age_assurance_1.ageAssuranceRuleIDs.IfAssuredOverAge,
181
+ });
182
+ });
183
+ });
184
+ });
185
+ });
186
+ //# sourceMappingURL=age-assurance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"age-assurance.test.js","sourceRoot":"","sources":["../src/age-assurance.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from '@jest/globals'\nimport {\n ageAssuranceRuleIDs,\n computeAgeAssuranceRegionAccess,\n getAgeAssuranceRegionConfig,\n} from './age-assurance'\nimport { AppBskyAgeassuranceDefs } from './client'\n\ndescribe('age-assurance', () => {\n describe('getAgeAssuranceRegionConfig', () => {\n const config: AppBskyAgeassuranceDefs.Config = {\n regions: [\n {\n countryCode: 'US',\n regionCode: 'CA',\n rules: [],\n },\n {\n countryCode: 'US',\n rules: [],\n },\n ],\n }\n\n it('should find region by country code only', () => {\n const result = getAgeAssuranceRegionConfig(config, {\n countryCode: 'US',\n })\n\n expect(result).toEqual({\n countryCode: 'US',\n rules: [],\n })\n })\n\n it('should find region by country code and region code', () => {\n const result = getAgeAssuranceRegionConfig(config, {\n countryCode: 'US',\n regionCode: 'CA',\n })\n\n expect(result).toEqual({\n countryCode: 'US',\n regionCode: 'CA',\n rules: [],\n })\n })\n\n it('should return undefined when no matching region found', () => {\n const result = getAgeAssuranceRegionConfig(config, {\n countryCode: 'GB',\n })\n\n expect(result).toBeUndefined()\n })\n })\n\n describe('computeAgeAssuranceRegionAccess', () => {\n const region: AppBskyAgeassuranceDefs.ConfigRegion = {\n countryCode: 'US',\n rules: [\n {\n $type: ageAssuranceRuleIDs.IfAccountNewerThan,\n date: '2025-12-10T00:00:00Z',\n access: 'none',\n },\n {\n $type: ageAssuranceRuleIDs.IfAssuredOverAge,\n age: 18,\n access: 'full',\n },\n {\n $type: ageAssuranceRuleIDs.IfAssuredOverAge,\n age: 16,\n access: 'safe',\n },\n {\n $type: ageAssuranceRuleIDs.IfDeclaredOverAge,\n age: 16,\n access: 'safe',\n },\n {\n $type: ageAssuranceRuleIDs.Default,\n access: 'none',\n },\n ],\n }\n\n it('should apply default if no data provided', () => {\n const result = computeAgeAssuranceRegionAccess(region, {})\n\n expect(result).toEqual({\n access: 'none',\n reason: ageAssuranceRuleIDs.Default,\n })\n })\n\n describe('IfAccountNewerThan', () => {\n it('should block accounts created after threshold', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n accountCreatedAt: new Date(2025, 11, 15).toISOString(),\n declaredAge: 18,\n })\n expect(result).toEqual({\n access: 'none',\n reason: ageAssuranceRuleIDs.IfAccountNewerThan,\n })\n })\n\n it('should allow accounts created before threshold', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n accountCreatedAt: new Date(2025, 10, 1).toISOString(),\n declaredAge: 18,\n })\n expect(result).toEqual({\n access: 'safe',\n reason: ageAssuranceRuleIDs.IfDeclaredOverAge,\n })\n })\n\n it('should allow accounts created exactly at threshold', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n accountCreatedAt: new Date(2025, 11, 1).toISOString(),\n declaredAge: 18,\n })\n expect(result).toEqual({\n access: 'safe',\n reason: ageAssuranceRuleIDs.IfDeclaredOverAge,\n })\n })\n\n it('should not apply rule when accountCreatedAt is not provided', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n declaredAge: 15,\n })\n expect(result).toEqual({\n access: 'none',\n reason: ageAssuranceRuleIDs.Default,\n })\n })\n\n it('should not apply rule when assuredAge is present', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n accountCreatedAt: new Date(2025, 11, 15).toISOString(),\n assuredAge: 20,\n })\n expect(result).toEqual({\n access: 'full',\n reason: ageAssuranceRuleIDs.IfAssuredOverAge,\n })\n })\n })\n\n describe('IfDeclaredOverAge rule', () => {\n it('should allow users at or above age threshold', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n declaredAge: 18,\n })\n\n expect(result).toEqual({\n access: 'safe',\n reason: ageAssuranceRuleIDs.IfDeclaredOverAge,\n })\n })\n\n it('should allow users above age threshold', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n declaredAge: 25,\n })\n\n expect(result).toEqual({\n access: 'safe',\n reason: ageAssuranceRuleIDs.IfDeclaredOverAge,\n })\n })\n\n it('should not allow users below age threshold', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n declaredAge: 17,\n })\n\n expect(result).toEqual({\n access: 'safe',\n reason: ageAssuranceRuleIDs.IfDeclaredOverAge,\n })\n })\n })\n\n describe('IfAssuredOverAge rule', () => {\n it('should allow users at or above assured age threshold', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n assuredAge: 18,\n })\n\n expect(result).toEqual({\n access: 'full',\n reason: ageAssuranceRuleIDs.IfAssuredOverAge,\n })\n })\n\n it('should not allow users below assured age threshold', () => {\n const result = computeAgeAssuranceRegionAccess(region, {\n assuredAge: 17,\n })\n\n expect(result).toEqual({\n access: 'safe',\n reason: ageAssuranceRuleIDs.IfAssuredOverAge,\n })\n })\n })\n })\n})\n"]}
package/dist/agent.d.ts CHANGED
@@ -144,7 +144,7 @@ export declare class Agent extends XrpcClient {
144
144
  cid: string;
145
145
  }>;
146
146
  unblockModList(uri: string): Promise<void>;
147
- updateSeenNotifications(seenAt?: string): Promise<import("./client/types/app/bsky/notification/updateSeen").Response>;
147
+ updateSeenNotifications(seenAt?: `${string}-${string}-${string}T${string}:${string}:${string}Z`): Promise<import("./client/types/app/bsky/notification/updateSeen").Response>;
148
148
  getPreferences(): Promise<BskyPreferences>;
149
149
  overwriteSavedFeeds(savedFeeds: AppBskyActorDefs.SavedFeed[]): Promise<AppBskyActorDefs.SavedFeed[]>;
150
150
  updateSavedFeeds(savedFeedsToUpdate: AppBskyActorDefs.SavedFeed[]): Promise<AppBskyActorDefs.SavedFeed[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,13 @@ import * as AppBskyAgeassuranceGetState from './types/app/bsky/ageassurance/getS
18
18
  import * as AppBskyBookmarkCreateBookmark from './types/app/bsky/bookmark/createBookmark.js';
19
19
  import * as AppBskyBookmarkDeleteBookmark from './types/app/bsky/bookmark/deleteBookmark.js';
20
20
  import * as AppBskyBookmarkGetBookmarks from './types/app/bsky/bookmark/getBookmarks.js';
21
+ import * as AppBskyContactDismissMatch from './types/app/bsky/contact/dismissMatch.js';
22
+ import * as AppBskyContactGetMatches from './types/app/bsky/contact/getMatches.js';
23
+ import * as AppBskyContactGetSyncStatus from './types/app/bsky/contact/getSyncStatus.js';
24
+ import * as AppBskyContactImportContacts from './types/app/bsky/contact/importContacts.js';
25
+ import * as AppBskyContactRemoveData from './types/app/bsky/contact/removeData.js';
26
+ import * as AppBskyContactStartPhoneVerification from './types/app/bsky/contact/startPhoneVerification.js';
27
+ import * as AppBskyContactVerifyPhone from './types/app/bsky/contact/verifyPhone.js';
21
28
  import * as AppBskyFeedDescribeFeedGenerator from './types/app/bsky/feed/describeFeedGenerator.js';
22
29
  import * as AppBskyFeedGenerator from './types/app/bsky/feed/generator.js';
23
30
  import * as AppBskyFeedGetActorFeeds from './types/app/bsky/feed/getActorFeeds.js';
@@ -281,6 +288,14 @@ export * as AppBskyBookmarkCreateBookmark from './types/app/bsky/bookmark/create
281
288
  export * as AppBskyBookmarkDefs from './types/app/bsky/bookmark/defs.js';
282
289
  export * as AppBskyBookmarkDeleteBookmark from './types/app/bsky/bookmark/deleteBookmark.js';
283
290
  export * as AppBskyBookmarkGetBookmarks from './types/app/bsky/bookmark/getBookmarks.js';
291
+ export * as AppBskyContactDefs from './types/app/bsky/contact/defs.js';
292
+ export * as AppBskyContactDismissMatch from './types/app/bsky/contact/dismissMatch.js';
293
+ export * as AppBskyContactGetMatches from './types/app/bsky/contact/getMatches.js';
294
+ export * as AppBskyContactGetSyncStatus from './types/app/bsky/contact/getSyncStatus.js';
295
+ export * as AppBskyContactImportContacts from './types/app/bsky/contact/importContacts.js';
296
+ export * as AppBskyContactRemoveData from './types/app/bsky/contact/removeData.js';
297
+ export * as AppBskyContactStartPhoneVerification from './types/app/bsky/contact/startPhoneVerification.js';
298
+ export * as AppBskyContactVerifyPhone from './types/app/bsky/contact/verifyPhone.js';
284
299
  export * as AppBskyEmbedDefs from './types/app/bsky/embed/defs.js';
285
300
  export * as AppBskyEmbedExternal from './types/app/bsky/embed/external.js';
286
301
  export * as AppBskyEmbedImages from './types/app/bsky/embed/images.js';
@@ -669,6 +684,7 @@ export declare class AppBskyNS {
669
684
  actor: AppBskyActorNS;
670
685
  ageassurance: AppBskyAgeassuranceNS;
671
686
  bookmark: AppBskyBookmarkNS;
687
+ contact: AppBskyContactNS;
672
688
  embed: AppBskyEmbedNS;
673
689
  feed: AppBskyFeedNS;
674
690
  graph: AppBskyGraphNS;
@@ -756,6 +772,17 @@ export declare class AppBskyBookmarkNS {
756
772
  deleteBookmark(data?: AppBskyBookmarkDeleteBookmark.InputSchema, opts?: AppBskyBookmarkDeleteBookmark.CallOptions): Promise<AppBskyBookmarkDeleteBookmark.Response>;
757
773
  getBookmarks(params?: AppBskyBookmarkGetBookmarks.QueryParams, opts?: AppBskyBookmarkGetBookmarks.CallOptions): Promise<AppBskyBookmarkGetBookmarks.Response>;
758
774
  }
775
+ export declare class AppBskyContactNS {
776
+ _client: XrpcClient;
777
+ constructor(client: XrpcClient);
778
+ dismissMatch(data?: AppBskyContactDismissMatch.InputSchema, opts?: AppBskyContactDismissMatch.CallOptions): Promise<AppBskyContactDismissMatch.Response>;
779
+ getMatches(params?: AppBskyContactGetMatches.QueryParams, opts?: AppBskyContactGetMatches.CallOptions): Promise<AppBskyContactGetMatches.Response>;
780
+ getSyncStatus(params?: AppBskyContactGetSyncStatus.QueryParams, opts?: AppBskyContactGetSyncStatus.CallOptions): Promise<AppBskyContactGetSyncStatus.Response>;
781
+ importContacts(data?: AppBskyContactImportContacts.InputSchema, opts?: AppBskyContactImportContacts.CallOptions): Promise<AppBskyContactImportContacts.Response>;
782
+ removeData(data?: AppBskyContactRemoveData.InputSchema, opts?: AppBskyContactRemoveData.CallOptions): Promise<AppBskyContactRemoveData.Response>;
783
+ startPhoneVerification(data?: AppBskyContactStartPhoneVerification.InputSchema, opts?: AppBskyContactStartPhoneVerification.CallOptions): Promise<AppBskyContactStartPhoneVerification.Response>;
784
+ verifyPhone(data?: AppBskyContactVerifyPhone.InputSchema, opts?: AppBskyContactVerifyPhone.CallOptions): Promise<AppBskyContactVerifyPhone.Response>;
785
+ }
759
786
  export declare class AppBskyEmbedNS {
760
787
  _client: XrpcClient;
761
788
  constructor(client: XrpcClient);