@atproto/bsky 0.0.9 → 0.0.10

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 (42) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/db/index.js +55 -3
  3. package/dist/db/index.js.map +3 -3
  4. package/dist/index.js +561 -124
  5. package/dist/index.js.map +3 -3
  6. package/dist/lexicon/index.d.ts +6 -2
  7. package/dist/lexicon/lexicons.d.ts +203 -14
  8. package/dist/lexicon/types/app/bsky/actor/searchActors.d.ts +1 -0
  9. package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.d.ts +1 -0
  10. package/dist/lexicon/types/app/bsky/{unspecced/applyLabels.d.ts → feed/searchPosts.d.ts} +17 -6
  11. package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts +13 -0
  12. package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.d.ts +38 -0
  13. package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.d.ts +37 -0
  14. package/dist/lexicon/types/com/atproto/admin/searchRepos.d.ts +1 -0
  15. package/package.json +5 -6
  16. package/src/api/app/bsky/actor/searchActors.ts +7 -1
  17. package/src/api/app/bsky/actor/searchActorsTypeahead.ts +7 -1
  18. package/src/api/com/atproto/admin/searchRepos.ts +5 -0
  19. package/src/auto-moderator/index.ts +1 -17
  20. package/src/lexicon/index.ts +36 -12
  21. package/src/lexicon/lexicons.ts +229 -23
  22. package/src/lexicon/types/app/bsky/actor/searchActors.ts +3 -0
  23. package/src/lexicon/types/app/bsky/actor/searchActorsTypeahead.ts +3 -0
  24. package/src/lexicon/types/app/bsky/feed/searchPosts.ts +54 -0
  25. package/src/lexicon/types/app/bsky/unspecced/defs.ts +41 -0
  26. package/src/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.ts +56 -0
  27. package/src/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.ts +54 -0
  28. package/src/lexicon/types/com/atproto/admin/searchRepos.ts +2 -0
  29. package/src/services/indexing/plugins/block.ts +1 -1
  30. package/src/services/indexing/plugins/feed-generator.ts +1 -1
  31. package/src/services/indexing/plugins/follow.ts +1 -1
  32. package/src/services/indexing/plugins/like.ts +1 -1
  33. package/src/services/indexing/plugins/list-block.ts +1 -1
  34. package/src/services/indexing/plugins/list-item.ts +1 -1
  35. package/src/services/indexing/plugins/list.ts +1 -1
  36. package/src/services/indexing/plugins/post.ts +1 -1
  37. package/src/services/indexing/plugins/repost.ts +1 -1
  38. package/src/services/indexing/plugins/thread-gate.ts +1 -1
  39. package/src/services/label/index.ts +1 -1
  40. package/dist/services/indexing/util.d.ts +0 -1
  41. package/src/lexicon/types/app/bsky/unspecced/applyLabels.ts +0 -39
  42. package/src/services/indexing/util.ts +0 -16
package/dist/index.js CHANGED
@@ -105856,6 +105856,20 @@ var MethodNotImplementedError = class extends XRPCError2 {
105856
105856
  }
105857
105857
  };
105858
105858
 
105859
+ // ../common/src/dates.ts
105860
+ var import_iso_datestring_validator2 = __toESM(require_dist2());
105861
+ function toSimplifiedISOSafe(dateStr) {
105862
+ const date = new Date(dateStr);
105863
+ if (isNaN(date.getTime())) {
105864
+ return new Date(0).toISOString();
105865
+ }
105866
+ const iso = date.toISOString();
105867
+ if (!(0, import_iso_datestring_validator2.isValidISODateString)(iso)) {
105868
+ return new Date(0).toISOString();
105869
+ }
105870
+ return iso;
105871
+ }
105872
+
105859
105873
  // ../common/src/ipld.ts
105860
105874
  var import_crypto3 = __toESM(require("crypto"));
105861
105875
  var import_stream = require("stream");
@@ -119883,6 +119897,10 @@ var schemaDict = {
119883
119897
  type: "params",
119884
119898
  properties: {
119885
119899
  term: {
119900
+ type: "string",
119901
+ description: "DEPRECATED: use 'q' instead"
119902
+ },
119903
+ q: {
119886
119904
  type: "string"
119887
119905
  },
119888
119906
  invitedBy: {
@@ -122735,18 +122753,23 @@ var schemaDict = {
122735
122753
  defs: {
122736
122754
  main: {
122737
122755
  type: "query",
122738
- description: "Find actors matching search criteria.",
122756
+ description: "Find actors (profiles) matching search criteria.",
122739
122757
  parameters: {
122740
122758
  type: "params",
122741
122759
  properties: {
122742
122760
  term: {
122743
- type: "string"
122761
+ type: "string",
122762
+ description: "DEPRECATED: use 'q' instead"
122763
+ },
122764
+ q: {
122765
+ type: "string",
122766
+ description: "search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended"
122744
122767
  },
122745
122768
  limit: {
122746
122769
  type: "integer",
122747
122770
  minimum: 1,
122748
122771
  maximum: 100,
122749
- default: 50
122772
+ default: 25
122750
122773
  },
122751
122774
  cursor: {
122752
122775
  type: "string"
@@ -122786,13 +122809,18 @@ var schemaDict = {
122786
122809
  type: "params",
122787
122810
  properties: {
122788
122811
  term: {
122789
- type: "string"
122812
+ type: "string",
122813
+ description: "DEPRECATED: use 'q' instead"
122814
+ },
122815
+ q: {
122816
+ type: "string",
122817
+ description: "search query prefix; not a full query string"
122790
122818
  },
122791
122819
  limit: {
122792
122820
  type: "integer",
122793
122821
  minimum: 1,
122794
122822
  maximum: 100,
122795
- default: 50
122823
+ default: 10
122796
122824
  }
122797
122825
  }
122798
122826
  },
@@ -124442,6 +124470,64 @@ var schemaDict = {
124442
124470
  }
124443
124471
  }
124444
124472
  },
124473
+ AppBskyFeedSearchPosts: {
124474
+ lexicon: 1,
124475
+ id: "app.bsky.feed.searchPosts",
124476
+ defs: {
124477
+ main: {
124478
+ type: "query",
124479
+ description: "Find posts matching search criteria",
124480
+ parameters: {
124481
+ type: "params",
124482
+ required: ["q"],
124483
+ properties: {
124484
+ q: {
124485
+ type: "string",
124486
+ description: "search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended"
124487
+ },
124488
+ limit: {
124489
+ type: "integer",
124490
+ minimum: 1,
124491
+ maximum: 100,
124492
+ default: 25
124493
+ },
124494
+ cursor: {
124495
+ type: "string",
124496
+ description: "optional pagination mechanism; may not necessarily allow scrolling through entire result set"
124497
+ }
124498
+ }
124499
+ },
124500
+ output: {
124501
+ encoding: "application/json",
124502
+ schema: {
124503
+ type: "object",
124504
+ required: ["posts"],
124505
+ properties: {
124506
+ cursor: {
124507
+ type: "string"
124508
+ },
124509
+ hitsTotal: {
124510
+ type: "integer",
124511
+ description: "count of search hits. optional, may be rounded/truncated, and may not be possible to paginate through all hits"
124512
+ },
124513
+ posts: {
124514
+ type: "array",
124515
+ items: {
124516
+ type: "ref",
124517
+ ref: "lex:app.bsky.feed.defs#postView"
124518
+ }
124519
+ }
124520
+ }
124521
+ }
124522
+ },
124523
+ errors: [
124524
+ {
124525
+ name: "BadQueryString"
124526
+ }
124527
+ ]
124528
+ }
124529
+ }
124530
+ },
124445
124531
  AppBskyFeedThreadgate: {
124446
124532
  lexicon: 1,
124447
124533
  id: "app.bsky.feed.threadgate",
@@ -125553,27 +125639,27 @@ var schemaDict = {
125553
125639
  }
125554
125640
  }
125555
125641
  },
125556
- AppBskyUnspeccedApplyLabels: {
125642
+ AppBskyUnspeccedDefs: {
125557
125643
  lexicon: 1,
125558
- id: "app.bsky.unspecced.applyLabels",
125644
+ id: "app.bsky.unspecced.defs",
125559
125645
  defs: {
125560
- main: {
125561
- type: "procedure",
125562
- description: "Allow a labeler to apply labels directly.",
125563
- input: {
125564
- encoding: "application/json",
125565
- schema: {
125566
- type: "object",
125567
- required: ["labels"],
125568
- properties: {
125569
- labels: {
125570
- type: "array",
125571
- items: {
125572
- type: "ref",
125573
- ref: "lex:com.atproto.label.defs#label"
125574
- }
125575
- }
125576
- }
125646
+ skeletonSearchPost: {
125647
+ type: "object",
125648
+ required: ["uri"],
125649
+ properties: {
125650
+ uri: {
125651
+ type: "string",
125652
+ format: "at-uri"
125653
+ }
125654
+ }
125655
+ },
125656
+ skeletonSearchActor: {
125657
+ type: "object",
125658
+ required: ["did"],
125659
+ properties: {
125660
+ did: {
125661
+ type: "string",
125662
+ format: "did"
125577
125663
  }
125578
125664
  }
125579
125665
  }
@@ -125719,6 +125805,126 @@ var schemaDict = {
125719
125805
  ]
125720
125806
  }
125721
125807
  }
125808
+ },
125809
+ AppBskyUnspeccedSearchActorsSkeleton: {
125810
+ lexicon: 1,
125811
+ id: "app.bsky.unspecced.searchActorsSkeleton",
125812
+ defs: {
125813
+ main: {
125814
+ type: "query",
125815
+ description: "Backend Actors (profile) search, returning only skeleton",
125816
+ parameters: {
125817
+ type: "params",
125818
+ required: ["q"],
125819
+ properties: {
125820
+ q: {
125821
+ type: "string",
125822
+ description: "search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. For typeahead search, only simple term match is supported, not full syntax"
125823
+ },
125824
+ typeahead: {
125825
+ type: "boolean",
125826
+ description: "if true, acts as fast/simple 'typeahead' query"
125827
+ },
125828
+ limit: {
125829
+ type: "integer",
125830
+ minimum: 1,
125831
+ maximum: 100,
125832
+ default: 25
125833
+ },
125834
+ cursor: {
125835
+ type: "string",
125836
+ description: "optional pagination mechanism; may not necessarily allow scrolling through entire result set"
125837
+ }
125838
+ }
125839
+ },
125840
+ output: {
125841
+ encoding: "application/json",
125842
+ schema: {
125843
+ type: "object",
125844
+ required: ["actors"],
125845
+ properties: {
125846
+ cursor: {
125847
+ type: "string"
125848
+ },
125849
+ hitsTotal: {
125850
+ type: "integer",
125851
+ description: "count of search hits. optional, may be rounded/truncated, and may not be possible to paginate through all hits"
125852
+ },
125853
+ actors: {
125854
+ type: "array",
125855
+ items: {
125856
+ type: "ref",
125857
+ ref: "lex:app.bsky.unspecced.defs#skeletonSearchActor"
125858
+ }
125859
+ }
125860
+ }
125861
+ }
125862
+ },
125863
+ errors: [
125864
+ {
125865
+ name: "BadQueryString"
125866
+ }
125867
+ ]
125868
+ }
125869
+ }
125870
+ },
125871
+ AppBskyUnspeccedSearchPostsSkeleton: {
125872
+ lexicon: 1,
125873
+ id: "app.bsky.unspecced.searchPostsSkeleton",
125874
+ defs: {
125875
+ main: {
125876
+ type: "query",
125877
+ description: "Backend Posts search, returning only skeleton",
125878
+ parameters: {
125879
+ type: "params",
125880
+ required: ["q"],
125881
+ properties: {
125882
+ q: {
125883
+ type: "string",
125884
+ description: "search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended"
125885
+ },
125886
+ limit: {
125887
+ type: "integer",
125888
+ minimum: 1,
125889
+ maximum: 100,
125890
+ default: 25
125891
+ },
125892
+ cursor: {
125893
+ type: "string",
125894
+ description: "optional pagination mechanism; may not necessarily allow scrolling through entire result set"
125895
+ }
125896
+ }
125897
+ },
125898
+ output: {
125899
+ encoding: "application/json",
125900
+ schema: {
125901
+ type: "object",
125902
+ required: ["posts"],
125903
+ properties: {
125904
+ cursor: {
125905
+ type: "string"
125906
+ },
125907
+ hitsTotal: {
125908
+ type: "integer",
125909
+ description: "count of search hits. optional, may be rounded/truncated, and may not be possible to paginate through all hits"
125910
+ },
125911
+ posts: {
125912
+ type: "array",
125913
+ items: {
125914
+ type: "ref",
125915
+ ref: "lex:app.bsky.unspecced.defs#skeletonSearchPost"
125916
+ }
125917
+ }
125918
+ }
125919
+ }
125920
+ },
125921
+ errors: [
125922
+ {
125923
+ name: "BadQueryString"
125924
+ }
125925
+ ]
125926
+ }
125927
+ }
125722
125928
  }
125723
125929
  };
125724
125930
  var schemas = Object.values(schemaDict);
@@ -126511,126 +126717,133 @@ function toKnownErr78(e) {
126511
126717
  return e;
126512
126718
  }
126513
126719
 
126514
- // ../api/src/client/types/app/bsky/graph/getBlocks.ts
126720
+ // ../api/src/client/types/app/bsky/feed/searchPosts.ts
126721
+ var BadQueryStringError = class extends XRPCError {
126722
+ constructor(src3) {
126723
+ super(src3.status, src3.error, src3.message, src3.headers);
126724
+ }
126725
+ };
126515
126726
  function toKnownErr79(e) {
126516
126727
  if (e instanceof XRPCError) {
126728
+ if (e.error === "BadQueryString")
126729
+ return new BadQueryStringError(e);
126517
126730
  }
126518
126731
  return e;
126519
126732
  }
126520
126733
 
126521
- // ../api/src/client/types/app/bsky/graph/getFollowers.ts
126734
+ // ../api/src/client/types/app/bsky/graph/getBlocks.ts
126522
126735
  function toKnownErr80(e) {
126523
126736
  if (e instanceof XRPCError) {
126524
126737
  }
126525
126738
  return e;
126526
126739
  }
126527
126740
 
126528
- // ../api/src/client/types/app/bsky/graph/getFollows.ts
126741
+ // ../api/src/client/types/app/bsky/graph/getFollowers.ts
126529
126742
  function toKnownErr81(e) {
126530
126743
  if (e instanceof XRPCError) {
126531
126744
  }
126532
126745
  return e;
126533
126746
  }
126534
126747
 
126535
- // ../api/src/client/types/app/bsky/graph/getList.ts
126748
+ // ../api/src/client/types/app/bsky/graph/getFollows.ts
126536
126749
  function toKnownErr82(e) {
126537
126750
  if (e instanceof XRPCError) {
126538
126751
  }
126539
126752
  return e;
126540
126753
  }
126541
126754
 
126542
- // ../api/src/client/types/app/bsky/graph/getListBlocks.ts
126755
+ // ../api/src/client/types/app/bsky/graph/getList.ts
126543
126756
  function toKnownErr83(e) {
126544
126757
  if (e instanceof XRPCError) {
126545
126758
  }
126546
126759
  return e;
126547
126760
  }
126548
126761
 
126549
- // ../api/src/client/types/app/bsky/graph/getListMutes.ts
126762
+ // ../api/src/client/types/app/bsky/graph/getListBlocks.ts
126550
126763
  function toKnownErr84(e) {
126551
126764
  if (e instanceof XRPCError) {
126552
126765
  }
126553
126766
  return e;
126554
126767
  }
126555
126768
 
126556
- // ../api/src/client/types/app/bsky/graph/getLists.ts
126769
+ // ../api/src/client/types/app/bsky/graph/getListMutes.ts
126557
126770
  function toKnownErr85(e) {
126558
126771
  if (e instanceof XRPCError) {
126559
126772
  }
126560
126773
  return e;
126561
126774
  }
126562
126775
 
126563
- // ../api/src/client/types/app/bsky/graph/getMutes.ts
126776
+ // ../api/src/client/types/app/bsky/graph/getLists.ts
126564
126777
  function toKnownErr86(e) {
126565
126778
  if (e instanceof XRPCError) {
126566
126779
  }
126567
126780
  return e;
126568
126781
  }
126569
126782
 
126570
- // ../api/src/client/types/app/bsky/graph/getSuggestedFollowsByActor.ts
126783
+ // ../api/src/client/types/app/bsky/graph/getMutes.ts
126571
126784
  function toKnownErr87(e) {
126572
126785
  if (e instanceof XRPCError) {
126573
126786
  }
126574
126787
  return e;
126575
126788
  }
126576
126789
 
126577
- // ../api/src/client/types/app/bsky/graph/muteActor.ts
126790
+ // ../api/src/client/types/app/bsky/graph/getSuggestedFollowsByActor.ts
126578
126791
  function toKnownErr88(e) {
126579
126792
  if (e instanceof XRPCError) {
126580
126793
  }
126581
126794
  return e;
126582
126795
  }
126583
126796
 
126584
- // ../api/src/client/types/app/bsky/graph/muteActorList.ts
126797
+ // ../api/src/client/types/app/bsky/graph/muteActor.ts
126585
126798
  function toKnownErr89(e) {
126586
126799
  if (e instanceof XRPCError) {
126587
126800
  }
126588
126801
  return e;
126589
126802
  }
126590
126803
 
126591
- // ../api/src/client/types/app/bsky/graph/unmuteActor.ts
126804
+ // ../api/src/client/types/app/bsky/graph/muteActorList.ts
126592
126805
  function toKnownErr90(e) {
126593
126806
  if (e instanceof XRPCError) {
126594
126807
  }
126595
126808
  return e;
126596
126809
  }
126597
126810
 
126598
- // ../api/src/client/types/app/bsky/graph/unmuteActorList.ts
126811
+ // ../api/src/client/types/app/bsky/graph/unmuteActor.ts
126599
126812
  function toKnownErr91(e) {
126600
126813
  if (e instanceof XRPCError) {
126601
126814
  }
126602
126815
  return e;
126603
126816
  }
126604
126817
 
126605
- // ../api/src/client/types/app/bsky/notification/getUnreadCount.ts
126818
+ // ../api/src/client/types/app/bsky/graph/unmuteActorList.ts
126606
126819
  function toKnownErr92(e) {
126607
126820
  if (e instanceof XRPCError) {
126608
126821
  }
126609
126822
  return e;
126610
126823
  }
126611
126824
 
126612
- // ../api/src/client/types/app/bsky/notification/listNotifications.ts
126825
+ // ../api/src/client/types/app/bsky/notification/getUnreadCount.ts
126613
126826
  function toKnownErr93(e) {
126614
126827
  if (e instanceof XRPCError) {
126615
126828
  }
126616
126829
  return e;
126617
126830
  }
126618
126831
 
126619
- // ../api/src/client/types/app/bsky/notification/registerPush.ts
126832
+ // ../api/src/client/types/app/bsky/notification/listNotifications.ts
126620
126833
  function toKnownErr94(e) {
126621
126834
  if (e instanceof XRPCError) {
126622
126835
  }
126623
126836
  return e;
126624
126837
  }
126625
126838
 
126626
- // ../api/src/client/types/app/bsky/notification/updateSeen.ts
126839
+ // ../api/src/client/types/app/bsky/notification/registerPush.ts
126627
126840
  function toKnownErr95(e) {
126628
126841
  if (e instanceof XRPCError) {
126629
126842
  }
126630
126843
  return e;
126631
126844
  }
126632
126845
 
126633
- // ../api/src/client/types/app/bsky/unspecced/applyLabels.ts
126846
+ // ../api/src/client/types/app/bsky/notification/updateSeen.ts
126634
126847
  function toKnownErr96(e) {
126635
126848
  if (e instanceof XRPCError) {
126636
126849
  }
@@ -126665,6 +126878,34 @@ function toKnownErr99(e) {
126665
126878
  return e;
126666
126879
  }
126667
126880
 
126881
+ // ../api/src/client/types/app/bsky/unspecced/searchActorsSkeleton.ts
126882
+ var BadQueryStringError2 = class extends XRPCError {
126883
+ constructor(src3) {
126884
+ super(src3.status, src3.error, src3.message, src3.headers);
126885
+ }
126886
+ };
126887
+ function toKnownErr100(e) {
126888
+ if (e instanceof XRPCError) {
126889
+ if (e.error === "BadQueryString")
126890
+ return new BadQueryStringError2(e);
126891
+ }
126892
+ return e;
126893
+ }
126894
+
126895
+ // ../api/src/client/types/app/bsky/unspecced/searchPostsSkeleton.ts
126896
+ var BadQueryStringError3 = class extends XRPCError {
126897
+ constructor(src3) {
126898
+ super(src3.status, src3.error, src3.message, src3.headers);
126899
+ }
126900
+ };
126901
+ function toKnownErr101(e) {
126902
+ if (e instanceof XRPCError) {
126903
+ if (e.error === "BadQueryString")
126904
+ return new BadQueryStringError3(e);
126905
+ }
126906
+ return e;
126907
+ }
126908
+
126668
126909
  // ../api/src/client/index.ts
126669
126910
  var AtpBaseClient = class {
126670
126911
  constructor() {
@@ -127194,6 +127435,11 @@ var FeedNS = class {
127194
127435
  throw toKnownErr78(e);
127195
127436
  });
127196
127437
  }
127438
+ searchPosts(params2, opts) {
127439
+ return this._service.xrpc.call("app.bsky.feed.searchPosts", params2, void 0, opts).catch((e) => {
127440
+ throw toKnownErr79(e);
127441
+ });
127442
+ }
127197
127443
  };
127198
127444
  var GeneratorRecord = class {
127199
127445
  constructor(service2) {
@@ -127341,67 +127587,67 @@ var GraphNS = class {
127341
127587
  }
127342
127588
  getBlocks(params2, opts) {
127343
127589
  return this._service.xrpc.call("app.bsky.graph.getBlocks", params2, void 0, opts).catch((e) => {
127344
- throw toKnownErr79(e);
127590
+ throw toKnownErr80(e);
127345
127591
  });
127346
127592
  }
127347
127593
  getFollowers(params2, opts) {
127348
127594
  return this._service.xrpc.call("app.bsky.graph.getFollowers", params2, void 0, opts).catch((e) => {
127349
- throw toKnownErr80(e);
127595
+ throw toKnownErr81(e);
127350
127596
  });
127351
127597
  }
127352
127598
  getFollows(params2, opts) {
127353
127599
  return this._service.xrpc.call("app.bsky.graph.getFollows", params2, void 0, opts).catch((e) => {
127354
- throw toKnownErr81(e);
127600
+ throw toKnownErr82(e);
127355
127601
  });
127356
127602
  }
127357
127603
  getList(params2, opts) {
127358
127604
  return this._service.xrpc.call("app.bsky.graph.getList", params2, void 0, opts).catch((e) => {
127359
- throw toKnownErr82(e);
127605
+ throw toKnownErr83(e);
127360
127606
  });
127361
127607
  }
127362
127608
  getListBlocks(params2, opts) {
127363
127609
  return this._service.xrpc.call("app.bsky.graph.getListBlocks", params2, void 0, opts).catch((e) => {
127364
- throw toKnownErr83(e);
127610
+ throw toKnownErr84(e);
127365
127611
  });
127366
127612
  }
127367
127613
  getListMutes(params2, opts) {
127368
127614
  return this._service.xrpc.call("app.bsky.graph.getListMutes", params2, void 0, opts).catch((e) => {
127369
- throw toKnownErr84(e);
127615
+ throw toKnownErr85(e);
127370
127616
  });
127371
127617
  }
127372
127618
  getLists(params2, opts) {
127373
127619
  return this._service.xrpc.call("app.bsky.graph.getLists", params2, void 0, opts).catch((e) => {
127374
- throw toKnownErr85(e);
127620
+ throw toKnownErr86(e);
127375
127621
  });
127376
127622
  }
127377
127623
  getMutes(params2, opts) {
127378
127624
  return this._service.xrpc.call("app.bsky.graph.getMutes", params2, void 0, opts).catch((e) => {
127379
- throw toKnownErr86(e);
127625
+ throw toKnownErr87(e);
127380
127626
  });
127381
127627
  }
127382
127628
  getSuggestedFollowsByActor(params2, opts) {
127383
127629
  return this._service.xrpc.call("app.bsky.graph.getSuggestedFollowsByActor", params2, void 0, opts).catch((e) => {
127384
- throw toKnownErr87(e);
127630
+ throw toKnownErr88(e);
127385
127631
  });
127386
127632
  }
127387
127633
  muteActor(data, opts) {
127388
127634
  return this._service.xrpc.call("app.bsky.graph.muteActor", opts?.qp, data, opts).catch((e) => {
127389
- throw toKnownErr88(e);
127635
+ throw toKnownErr89(e);
127390
127636
  });
127391
127637
  }
127392
127638
  muteActorList(data, opts) {
127393
127639
  return this._service.xrpc.call("app.bsky.graph.muteActorList", opts?.qp, data, opts).catch((e) => {
127394
- throw toKnownErr89(e);
127640
+ throw toKnownErr90(e);
127395
127641
  });
127396
127642
  }
127397
127643
  unmuteActor(data, opts) {
127398
127644
  return this._service.xrpc.call("app.bsky.graph.unmuteActor", opts?.qp, data, opts).catch((e) => {
127399
- throw toKnownErr90(e);
127645
+ throw toKnownErr91(e);
127400
127646
  });
127401
127647
  }
127402
127648
  unmuteActorList(data, opts) {
127403
127649
  return this._service.xrpc.call("app.bsky.graph.unmuteActorList", opts?.qp, data, opts).catch((e) => {
127404
- throw toKnownErr91(e);
127650
+ throw toKnownErr92(e);
127405
127651
  });
127406
127652
  }
127407
127653
  };
@@ -127546,22 +127792,22 @@ var NotificationNS = class {
127546
127792
  }
127547
127793
  getUnreadCount(params2, opts) {
127548
127794
  return this._service.xrpc.call("app.bsky.notification.getUnreadCount", params2, void 0, opts).catch((e) => {
127549
- throw toKnownErr92(e);
127795
+ throw toKnownErr93(e);
127550
127796
  });
127551
127797
  }
127552
127798
  listNotifications(params2, opts) {
127553
127799
  return this._service.xrpc.call("app.bsky.notification.listNotifications", params2, void 0, opts).catch((e) => {
127554
- throw toKnownErr93(e);
127800
+ throw toKnownErr94(e);
127555
127801
  });
127556
127802
  }
127557
127803
  registerPush(data, opts) {
127558
127804
  return this._service.xrpc.call("app.bsky.notification.registerPush", opts?.qp, data, opts).catch((e) => {
127559
- throw toKnownErr94(e);
127805
+ throw toKnownErr95(e);
127560
127806
  });
127561
127807
  }
127562
127808
  updateSeen(data, opts) {
127563
127809
  return this._service.xrpc.call("app.bsky.notification.updateSeen", opts?.qp, data, opts).catch((e) => {
127564
- throw toKnownErr95(e);
127810
+ throw toKnownErr96(e);
127565
127811
  });
127566
127812
  }
127567
127813
  };
@@ -127574,11 +127820,6 @@ var UnspeccedNS = class {
127574
127820
  constructor(service2) {
127575
127821
  this._service = service2;
127576
127822
  }
127577
- applyLabels(data, opts) {
127578
- return this._service.xrpc.call("app.bsky.unspecced.applyLabels", opts?.qp, data, opts).catch((e) => {
127579
- throw toKnownErr96(e);
127580
- });
127581
- }
127582
127823
  getPopular(params2, opts) {
127583
127824
  return this._service.xrpc.call("app.bsky.unspecced.getPopular", params2, void 0, opts).catch((e) => {
127584
127825
  throw toKnownErr97(e);
@@ -127594,6 +127835,16 @@ var UnspeccedNS = class {
127594
127835
  throw toKnownErr99(e);
127595
127836
  });
127596
127837
  }
127838
+ searchActorsSkeleton(params2, opts) {
127839
+ return this._service.xrpc.call("app.bsky.unspecced.searchActorsSkeleton", params2, void 0, opts).catch((e) => {
127840
+ throw toKnownErr100(e);
127841
+ });
127842
+ }
127843
+ searchPostsSkeleton(params2, opts) {
127844
+ return this._service.xrpc.call("app.bsky.unspecced.searchPostsSkeleton", params2, void 0, opts).catch((e) => {
127845
+ throw toKnownErr101(e);
127846
+ });
127847
+ }
127597
127848
  };
127598
127849
 
127599
127850
  // ../api/src/agent.ts
@@ -130188,6 +130439,10 @@ var schemaDict2 = {
130188
130439
  type: "params",
130189
130440
  properties: {
130190
130441
  term: {
130442
+ type: "string",
130443
+ description: "DEPRECATED: use 'q' instead"
130444
+ },
130445
+ q: {
130191
130446
  type: "string"
130192
130447
  },
130193
130448
  invitedBy: {
@@ -133040,18 +133295,23 @@ var schemaDict2 = {
133040
133295
  defs: {
133041
133296
  main: {
133042
133297
  type: "query",
133043
- description: "Find actors matching search criteria.",
133298
+ description: "Find actors (profiles) matching search criteria.",
133044
133299
  parameters: {
133045
133300
  type: "params",
133046
133301
  properties: {
133047
133302
  term: {
133048
- type: "string"
133303
+ type: "string",
133304
+ description: "DEPRECATED: use 'q' instead"
133305
+ },
133306
+ q: {
133307
+ type: "string",
133308
+ description: "search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended"
133049
133309
  },
133050
133310
  limit: {
133051
133311
  type: "integer",
133052
133312
  minimum: 1,
133053
133313
  maximum: 100,
133054
- default: 50
133314
+ default: 25
133055
133315
  },
133056
133316
  cursor: {
133057
133317
  type: "string"
@@ -133091,13 +133351,18 @@ var schemaDict2 = {
133091
133351
  type: "params",
133092
133352
  properties: {
133093
133353
  term: {
133094
- type: "string"
133354
+ type: "string",
133355
+ description: "DEPRECATED: use 'q' instead"
133356
+ },
133357
+ q: {
133358
+ type: "string",
133359
+ description: "search query prefix; not a full query string"
133095
133360
  },
133096
133361
  limit: {
133097
133362
  type: "integer",
133098
133363
  minimum: 1,
133099
133364
  maximum: 100,
133100
- default: 50
133365
+ default: 10
133101
133366
  }
133102
133367
  }
133103
133368
  },
@@ -134747,6 +135012,64 @@ var schemaDict2 = {
134747
135012
  }
134748
135013
  }
134749
135014
  },
135015
+ AppBskyFeedSearchPosts: {
135016
+ lexicon: 1,
135017
+ id: "app.bsky.feed.searchPosts",
135018
+ defs: {
135019
+ main: {
135020
+ type: "query",
135021
+ description: "Find posts matching search criteria",
135022
+ parameters: {
135023
+ type: "params",
135024
+ required: ["q"],
135025
+ properties: {
135026
+ q: {
135027
+ type: "string",
135028
+ description: "search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended"
135029
+ },
135030
+ limit: {
135031
+ type: "integer",
135032
+ minimum: 1,
135033
+ maximum: 100,
135034
+ default: 25
135035
+ },
135036
+ cursor: {
135037
+ type: "string",
135038
+ description: "optional pagination mechanism; may not necessarily allow scrolling through entire result set"
135039
+ }
135040
+ }
135041
+ },
135042
+ output: {
135043
+ encoding: "application/json",
135044
+ schema: {
135045
+ type: "object",
135046
+ required: ["posts"],
135047
+ properties: {
135048
+ cursor: {
135049
+ type: "string"
135050
+ },
135051
+ hitsTotal: {
135052
+ type: "integer",
135053
+ description: "count of search hits. optional, may be rounded/truncated, and may not be possible to paginate through all hits"
135054
+ },
135055
+ posts: {
135056
+ type: "array",
135057
+ items: {
135058
+ type: "ref",
135059
+ ref: "lex:app.bsky.feed.defs#postView"
135060
+ }
135061
+ }
135062
+ }
135063
+ }
135064
+ },
135065
+ errors: [
135066
+ {
135067
+ name: "BadQueryString"
135068
+ }
135069
+ ]
135070
+ }
135071
+ }
135072
+ },
134750
135073
  AppBskyFeedThreadgate: {
134751
135074
  lexicon: 1,
134752
135075
  id: "app.bsky.feed.threadgate",
@@ -135858,27 +136181,27 @@ var schemaDict2 = {
135858
136181
  }
135859
136182
  }
135860
136183
  },
135861
- AppBskyUnspeccedApplyLabels: {
136184
+ AppBskyUnspeccedDefs: {
135862
136185
  lexicon: 1,
135863
- id: "app.bsky.unspecced.applyLabels",
136186
+ id: "app.bsky.unspecced.defs",
135864
136187
  defs: {
135865
- main: {
135866
- type: "procedure",
135867
- description: "Allow a labeler to apply labels directly.",
135868
- input: {
135869
- encoding: "application/json",
135870
- schema: {
135871
- type: "object",
135872
- required: ["labels"],
135873
- properties: {
135874
- labels: {
135875
- type: "array",
135876
- items: {
135877
- type: "ref",
135878
- ref: "lex:com.atproto.label.defs#label"
135879
- }
135880
- }
135881
- }
136188
+ skeletonSearchPost: {
136189
+ type: "object",
136190
+ required: ["uri"],
136191
+ properties: {
136192
+ uri: {
136193
+ type: "string",
136194
+ format: "at-uri"
136195
+ }
136196
+ }
136197
+ },
136198
+ skeletonSearchActor: {
136199
+ type: "object",
136200
+ required: ["did"],
136201
+ properties: {
136202
+ did: {
136203
+ type: "string",
136204
+ format: "did"
135882
136205
  }
135883
136206
  }
135884
136207
  }
@@ -136024,6 +136347,126 @@ var schemaDict2 = {
136024
136347
  ]
136025
136348
  }
136026
136349
  }
136350
+ },
136351
+ AppBskyUnspeccedSearchActorsSkeleton: {
136352
+ lexicon: 1,
136353
+ id: "app.bsky.unspecced.searchActorsSkeleton",
136354
+ defs: {
136355
+ main: {
136356
+ type: "query",
136357
+ description: "Backend Actors (profile) search, returning only skeleton",
136358
+ parameters: {
136359
+ type: "params",
136360
+ required: ["q"],
136361
+ properties: {
136362
+ q: {
136363
+ type: "string",
136364
+ description: "search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. For typeahead search, only simple term match is supported, not full syntax"
136365
+ },
136366
+ typeahead: {
136367
+ type: "boolean",
136368
+ description: "if true, acts as fast/simple 'typeahead' query"
136369
+ },
136370
+ limit: {
136371
+ type: "integer",
136372
+ minimum: 1,
136373
+ maximum: 100,
136374
+ default: 25
136375
+ },
136376
+ cursor: {
136377
+ type: "string",
136378
+ description: "optional pagination mechanism; may not necessarily allow scrolling through entire result set"
136379
+ }
136380
+ }
136381
+ },
136382
+ output: {
136383
+ encoding: "application/json",
136384
+ schema: {
136385
+ type: "object",
136386
+ required: ["actors"],
136387
+ properties: {
136388
+ cursor: {
136389
+ type: "string"
136390
+ },
136391
+ hitsTotal: {
136392
+ type: "integer",
136393
+ description: "count of search hits. optional, may be rounded/truncated, and may not be possible to paginate through all hits"
136394
+ },
136395
+ actors: {
136396
+ type: "array",
136397
+ items: {
136398
+ type: "ref",
136399
+ ref: "lex:app.bsky.unspecced.defs#skeletonSearchActor"
136400
+ }
136401
+ }
136402
+ }
136403
+ }
136404
+ },
136405
+ errors: [
136406
+ {
136407
+ name: "BadQueryString"
136408
+ }
136409
+ ]
136410
+ }
136411
+ }
136412
+ },
136413
+ AppBskyUnspeccedSearchPostsSkeleton: {
136414
+ lexicon: 1,
136415
+ id: "app.bsky.unspecced.searchPostsSkeleton",
136416
+ defs: {
136417
+ main: {
136418
+ type: "query",
136419
+ description: "Backend Posts search, returning only skeleton",
136420
+ parameters: {
136421
+ type: "params",
136422
+ required: ["q"],
136423
+ properties: {
136424
+ q: {
136425
+ type: "string",
136426
+ description: "search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended"
136427
+ },
136428
+ limit: {
136429
+ type: "integer",
136430
+ minimum: 1,
136431
+ maximum: 100,
136432
+ default: 25
136433
+ },
136434
+ cursor: {
136435
+ type: "string",
136436
+ description: "optional pagination mechanism; may not necessarily allow scrolling through entire result set"
136437
+ }
136438
+ }
136439
+ },
136440
+ output: {
136441
+ encoding: "application/json",
136442
+ schema: {
136443
+ type: "object",
136444
+ required: ["posts"],
136445
+ properties: {
136446
+ cursor: {
136447
+ type: "string"
136448
+ },
136449
+ hitsTotal: {
136450
+ type: "integer",
136451
+ description: "count of search hits. optional, may be rounded/truncated, and may not be possible to paginate through all hits"
136452
+ },
136453
+ posts: {
136454
+ type: "array",
136455
+ items: {
136456
+ type: "ref",
136457
+ ref: "lex:app.bsky.unspecced.defs#skeletonSearchPost"
136458
+ }
136459
+ }
136460
+ }
136461
+ }
136462
+ },
136463
+ errors: [
136464
+ {
136465
+ name: "BadQueryString"
136466
+ }
136467
+ ]
136468
+ }
136469
+ }
136027
136470
  }
136028
136471
  };
136029
136472
  var schemas2 = Object.values(schemaDict2);
@@ -136125,6 +136568,7 @@ var ids = {
136125
136568
  AppBskyFeedLike: "app.bsky.feed.like",
136126
136569
  AppBskyFeedPost: "app.bsky.feed.post",
136127
136570
  AppBskyFeedRepost: "app.bsky.feed.repost",
136571
+ AppBskyFeedSearchPosts: "app.bsky.feed.searchPosts",
136128
136572
  AppBskyFeedThreadgate: "app.bsky.feed.threadgate",
136129
136573
  AppBskyGraphBlock: "app.bsky.graph.block",
136130
136574
  AppBskyGraphDefs: "app.bsky.graph.defs",
@@ -136150,10 +136594,12 @@ var ids = {
136150
136594
  AppBskyNotificationRegisterPush: "app.bsky.notification.registerPush",
136151
136595
  AppBskyNotificationUpdateSeen: "app.bsky.notification.updateSeen",
136152
136596
  AppBskyRichtextFacet: "app.bsky.richtext.facet",
136153
- AppBskyUnspeccedApplyLabels: "app.bsky.unspecced.applyLabels",
136597
+ AppBskyUnspeccedDefs: "app.bsky.unspecced.defs",
136154
136598
  AppBskyUnspeccedGetPopular: "app.bsky.unspecced.getPopular",
136155
136599
  AppBskyUnspeccedGetPopularFeedGenerators: "app.bsky.unspecced.getPopularFeedGenerators",
136156
- AppBskyUnspeccedGetTimelineSkeleton: "app.bsky.unspecced.getTimelineSkeleton"
136600
+ AppBskyUnspeccedGetTimelineSkeleton: "app.bsky.unspecced.getTimelineSkeleton",
136601
+ AppBskyUnspeccedSearchActorsSkeleton: "app.bsky.unspecced.searchActorsSkeleton",
136602
+ AppBskyUnspeccedSearchPostsSkeleton: "app.bsky.unspecced.searchPostsSkeleton"
136157
136603
  };
136158
136604
 
136159
136605
  // src/lexicon/util.ts
@@ -137388,8 +137834,11 @@ function searchActors_default(server, ctx) {
137388
137834
  server.app.bsky.actor.searchActors({
137389
137835
  auth: ctx.authOptionalVerifier,
137390
137836
  handler: async ({ auth, params: params2 }) => {
137391
- const { cursor, limit, term: rawTerm } = params2;
137837
+ let { cursor, limit, term: rawTerm, q: rawQ } = params2;
137392
137838
  const requester = auth.credentials.did;
137839
+ if (rawQ) {
137840
+ rawTerm = rawQ;
137841
+ }
137393
137842
  const term = cleanTerm(rawTerm || "");
137394
137843
  const db = ctx.db.getReplica("search");
137395
137844
  const results = term ? await getUserSearchQuery(db, { term, limit, cursor }).select("distance").selectAll("actor").execute() : [];
@@ -137412,8 +137861,11 @@ function searchActorsTypeahead_default(server, ctx) {
137412
137861
  server.app.bsky.actor.searchActorsTypeahead({
137413
137862
  auth: ctx.authOptionalVerifier,
137414
137863
  handler: async ({ params: params2, auth }) => {
137415
- const { limit, term: rawTerm } = params2;
137864
+ let { limit, term: rawTerm, q: rawQ } = params2;
137416
137865
  const requester = auth.credentials.did;
137866
+ if (rawQ) {
137867
+ rawTerm = rawQ;
137868
+ }
137417
137869
  const term = cleanTerm(rawTerm || "");
137418
137870
  const db = ctx.db.getReplica("search");
137419
137871
  const results = term ? await getUserSearchQuerySimple(db, { term, limit }).selectAll("actor").execute() : [];
@@ -137516,20 +137968,6 @@ function isSelfLabels(v) {
137516
137968
  return isObj3(v) && hasProp3(v, "$type") && v.$type === "com.atproto.label.defs#selfLabels";
137517
137969
  }
137518
137970
 
137519
- // src/services/indexing/util.ts
137520
- var import_iso_datestring_validator2 = __toESM(require_dist2());
137521
- function toSimplifiedISOSafe(dateStr) {
137522
- const date = new Date(dateStr);
137523
- if (isNaN(date.getTime())) {
137524
- return new Date(0).toISOString();
137525
- }
137526
- const iso = date.toISOString();
137527
- if (!(0, import_iso_datestring_validator2.isValidISODateString)(iso)) {
137528
- return new Date(0).toISOString();
137529
- }
137530
- return iso;
137531
- }
137532
-
137533
137971
  // src/services/label/index.ts
137534
137972
  var LabelService = class {
137535
137973
  constructor(db, cache) {
@@ -138108,6 +138546,10 @@ function searchRepos_default(server, ctx) {
138108
138546
  if (invitedBy) {
138109
138547
  throw new InvalidRequestError("The invitedBy parameter is unsupported");
138110
138548
  }
138549
+ const { q } = params2;
138550
+ if (q) {
138551
+ params2.term = q;
138552
+ }
138111
138553
  const { results, cursor } = await ctx.services.actor(db).getSearchResults({ ...params2, includeSoftDeleted: true });
138112
138554
  return {
138113
138555
  encoding: "application/json",
@@ -139003,6 +139445,10 @@ var FeedNS2 = class {
139003
139445
  const nsid2 = "app.bsky.feed.getTimeline";
139004
139446
  return this._server.xrpc.method(nsid2, cfg);
139005
139447
  }
139448
+ searchPosts(cfg) {
139449
+ const nsid2 = "app.bsky.feed.searchPosts";
139450
+ return this._server.xrpc.method(nsid2, cfg);
139451
+ }
139006
139452
  };
139007
139453
  var GraphNS2 = class {
139008
139454
  constructor(server) {
@@ -139091,10 +139537,6 @@ var UnspeccedNS2 = class {
139091
139537
  constructor(server) {
139092
139538
  this._server = server;
139093
139539
  }
139094
- applyLabels(cfg) {
139095
- const nsid2 = "app.bsky.unspecced.applyLabels";
139096
- return this._server.xrpc.method(nsid2, cfg);
139097
- }
139098
139540
  getPopular(cfg) {
139099
139541
  const nsid2 = "app.bsky.unspecced.getPopular";
139100
139542
  return this._server.xrpc.method(nsid2, cfg);
@@ -139107,6 +139549,14 @@ var UnspeccedNS2 = class {
139107
139549
  const nsid2 = "app.bsky.unspecced.getTimelineSkeleton";
139108
139550
  return this._server.xrpc.method(nsid2, cfg);
139109
139551
  }
139552
+ searchActorsSkeleton(cfg) {
139553
+ const nsid2 = "app.bsky.unspecced.searchActorsSkeleton";
139554
+ return this._server.xrpc.method(nsid2, cfg);
139555
+ }
139556
+ searchPostsSkeleton(cfg) {
139557
+ const nsid2 = "app.bsky.unspecced.searchPostsSkeleton";
139558
+ return this._server.xrpc.method(nsid2, cfg);
139559
+ }
139110
139560
  };
139111
139561
 
139112
139562
  // src/image/uri.ts
@@ -147004,20 +147454,7 @@ var AutoModerator = class {
147004
147454
  if (labels.length < 1)
147005
147455
  return;
147006
147456
  const labelSrvc = this.services.label(this.ctx.db);
147007
- const formatted = await labelSrvc.formatAndCreate(this.ctx.cfg.labelerDid, uri2.toString(), cid2.toString(), { create: labels });
147008
- if (this.pushAgent) {
147009
- const agent = this.pushAgent;
147010
- try {
147011
- await agent.api.app.bsky.unspecced.applyLabels({ labels: formatted });
147012
- } catch (err) {
147013
- labelerLogger.error({
147014
- err,
147015
- uri: uri2.toString(),
147016
- labels,
147017
- receiver: agent.service.toString()
147018
- }, "failed to push labels");
147019
- }
147020
- }
147457
+ await labelSrvc.formatAndCreate(this.ctx.cfg.labelerDid, uri2.toString(), cid2.toString(), { create: labels });
147021
147458
  }
147022
147459
  async processAll() {
147023
147460
  await this.ctx.backgroundQueue.processAll();