kitty-agent 11.0.0 → 11.1.0

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.
@@ -2,14 +2,8 @@ import { KittyAgent } from "./agent.js";
2
2
  import type { ActorIdentifier, Did, Nsid, RecordKey } from "@atcute/lexicons";
3
3
  import type { Records } from "@atcute/lexicons/ambient";
4
4
  import type { UriString } from "@atproto/syntax";
5
+ import type { BlueMicrocosmLinksGetBacklinks } from "./lexicons/index.js";
5
6
  export declare class ConstellationClient extends KittyAgent {
6
- protected paginationHelperSimple<K extends string, T extends {
7
- cursor?: string | undefined;
8
- } & {
9
- [k in K]: U[];
10
- }, U>(limit: number | undefined, key: K, query: (cursor: string | undefined, limit: number) => Promise<T>): AsyncIterable<U, {
11
- cursor: string | undefined;
12
- }>;
13
7
  constructor({ userAgent, service }: {
14
8
  userAgent: string;
15
9
  service?: string;
@@ -37,8 +31,8 @@ export declare class ConstellationClient extends KittyAgent {
37
31
  did?: Did[];
38
32
  limit?: number;
39
33
  reverse?: boolean;
40
- }): Promise<AsyncIterable<unknown, {
41
- cursor: string | undefined;
42
- }>>;
34
+ }): AsyncIterable<BlueMicrocosmLinksGetBacklinks.LinkRecord, {
35
+ cursor?: string | undefined;
36
+ }>;
43
37
  }
44
38
  //# sourceMappingURL=constellation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constellation.d.ts","sourceRoot":"","sources":["../src/constellation.ts"],"names":[],"mappings":"AAAoD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAe,MAAM,kBAAkB,CAAC;AAC3F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,mBAAoB,SAAQ,UAAU;cAE9B,sBAAsB,CACnC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;KAAE,EAC7D,CAAC,EAED,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACjE,aAAa,CAAC,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;KAAE,CAAC;gBA2BxC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAiBrE,YAAY,CAAC,EACf,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EACP,MAAM,EACT,EAAE;QACC,OAAO,EAAE,QAAQ,eAAe,IAAI,IAAI,IAAI,SAAS,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC;QAC1E,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9C,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;KAClB;;;;;;;;;;IAcK,eAAe,CAAC,EAClB,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EACV,EAAE;QACC,OAAO,EAAE,QAAQ,eAAe,IAAI,IAAI,IAAI,SAAS,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC;QAC1E,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9C,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAA;KACpB;gBApF6B,MAAM,GAAG,SAAS;;CAoGnD"}
1
+ {"version":3,"file":"constellation.d.ts","sourceRoot":"","sources":["../src/constellation.ts"],"names":[],"mappings":"AAAoD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAe,MAAM,kBAAkB,CAAC;AAC3F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAE1E,qBAAa,mBAAoB,SAAQ,UAAU;gBACnC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAiBrE,YAAY,CAAC,EACf,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EACP,MAAM,EACT,EAAE;QACC,OAAO,EAAE,QAAQ,eAAe,IAAI,IAAI,IAAI,SAAS,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC;QAC1E,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9C,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;KAClB;;;;;;;;;;IAcD,eAAe,CAAC,EACZ,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EACV,EAAE;QACC,OAAO,EAAE,QAAQ,eAAe,IAAI,IAAI,IAAI,SAAS,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC;QAC1E,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;QAC9C,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAA;KACpB,GAAG,aAAa,CAAC,8BAA8B,CAAC,UAAU,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAAE,CAAC;CAgBjG"}
@@ -1,25 +1,6 @@
1
1
  import { simpleFetchHandler } from "@atcute/client";
2
2
  import { KittyAgent } from "./agent.js";
3
3
  export class ConstellationClient extends KittyAgent {
4
- // Idk why the original paginationHelper is so complicated; it should eventually be replaced with this.
5
- async *paginationHelperSimple(limit, key, query) {
6
- const PER_PAGE = 100;
7
- let cursor = undefined;
8
- do {
9
- const data = await query(cursor, limit === undefined
10
- ? PER_PAGE
11
- : limit / PER_PAGE > 1
12
- ? PER_PAGE
13
- : limit);
14
- const theseResults = data[key];
15
- if (limit !== undefined) {
16
- limit -= theseResults.length;
17
- }
18
- yield* theseResults;
19
- cursor = data.cursor;
20
- } while (cursor);
21
- return { cursor };
22
- }
23
4
  constructor({ userAgent, service }) {
24
5
  super({
25
6
  handler: simpleFetchHandler({
@@ -49,8 +30,8 @@ export class ConstellationClient extends KittyAgent {
49
30
  }
50
31
  });
51
32
  }
52
- async getAllBacklinks({ subject, source, did, limit, reverse }) {
53
- return await this.paginationHelperSimple(limit, 'records', async (cursor, limit) => {
33
+ getAllBacklinks({ subject, source, did, limit, reverse }) {
34
+ return this.paginationHelper(limit, 'records', async (cursor, limit) => {
54
35
  return await this.getBacklinks({
55
36
  subject,
56
37
  source,
@@ -1 +1 @@
1
- {"version":3,"file":"constellation.js","sourceRoot":"","sources":["../src/constellation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK5F,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAC/C,uGAAuG;IAC7F,KAAK,CAAC,CAAC,sBAAsB,CAKnC,KAAyB,EACzB,GAAM,EACN,KAAgE;QAEhE,MAAM,QAAQ,GAAG,GAAG,CAAC;QAErB,IAAI,MAAM,GAAuB,SAAS,CAAC;QAC3C,GAAG,CAAC;YACA,MAAM,IAAI,GAAG,MAAM,KAAK,CACpB,MAAM,EACN,KAAK,KAAK,SAAS;gBACf,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC;oBAClB,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,KAAK,CAAC,CAAC;YAErB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC;YACjC,CAAC;YAED,KAAK,CAAC,CAAC,YAAY,CAAC;YAEpB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,CAAC,QAAQ,MAAM,EAAE;QAEjB,OAAO,EAAE,MAAM,EAAE,CAAC;IACtB,CAAC;IAED,YAAY,EAAE,SAAS,EAAE,OAAO,EAA2C;QACvE,KAAK,CAAC;YACF,OAAO,EAAE,kBAAkB,CAAC;gBACxB,OAAO,EAAE,OAAO,IAAI,sCAAsC;gBAC1D,KAAK,CAAC,KAAK,EAAE,IAAI;oBACb,OAAO,KAAK,CAAC,KAAK,EAAE;wBAChB,GAAG,IAAI;wBACP,OAAO,EAAE;4BACL,GAAG,IAAI,EAAE,OAAO;4BAChB,YAAY,EAAE,SAAS;yBAC1B;qBACJ,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC;SACL,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACf,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EACP,MAAM,EAQT;QACG,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,mCAAmC,EAAE;YAC3D,EAAE,EAAE,MAAM;YACV,MAAM,EAAE;gBACJ,OAAO,EAAE,OAAoB;gBAC7B,MAAM;gBACN,GAAG;gBACH,KAAK;gBACL,OAAO;gBACP,MAAM;aACT;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAClB,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EAOV;QACG,OAAO,MAAM,IAAI,CAAC,sBAAsB,CACpC,KAAK,EACL,SAAS,EACT,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YACpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC;gBAC3B,OAAO;gBACP,MAAM;gBACN,GAAG;gBACH,KAAK;gBACL,OAAO;gBACP,MAAM;aACT,CAAC,CAAC;QACP,CAAC,CACJ,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"constellation.js","sourceRoot":"","sources":["../src/constellation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM5F,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAC/C,YAAY,EAAE,SAAS,EAAE,OAAO,EAA2C;QACvE,KAAK,CAAC;YACF,OAAO,EAAE,kBAAkB,CAAC;gBACxB,OAAO,EAAE,OAAO,IAAI,sCAAsC;gBAC1D,KAAK,CAAC,KAAK,EAAE,IAAI;oBACb,OAAO,KAAK,CAAC,KAAK,EAAE;wBAChB,GAAG,IAAI;wBACP,OAAO,EAAE;4BACL,GAAG,IAAI,EAAE,OAAO;4BAChB,YAAY,EAAE,SAAS;yBAC1B;qBACJ,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC;SACL,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACf,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EACP,MAAM,EAQT;QACG,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,mCAAmC,EAAE;YAC3D,EAAE,EAAE,MAAM;YACV,MAAM,EAAE;gBACJ,OAAO,EAAE,OAAoB;gBAC7B,MAAM;gBACN,GAAG;gBACH,KAAK;gBACL,OAAO;gBACP,MAAM;aACT;SACJ,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,EACZ,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EAOV;QACG,OAAO,IAAI,CAAC,gBAAgB,CACxB,KAAK,EACL,SAAS,EACT,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YACpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC;gBAC3B,OAAO;gBACP,MAAM;gBACN,GAAG;gBACH,KAAK;gBACL,OAAO;gBACP,MAAM;aACT,CAAC,CAAC;QACP,CAAC,CACJ,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,52 @@
1
+ import type { Did } from "@atcute/lexicons";
2
+ import type { KittyAgent } from "./agent.js";
3
+ import { BaseStatefulOAuthClient, type Account, type LoginState } from "./oauth-stateful-base.js";
4
+ type UseSyncExternalStore = <Snapshot>(subscribe: (onStoreChange: () => void) => () => void, getSnapshot: () => Snapshot, getServerSnapshot?: () => Snapshot) => Snapshot;
5
+ type SignalValues<Args extends readonly Signal<any>[]> = {
6
+ [K in keyof Args]: Args[K] extends Signal<infer T> ? T : never;
7
+ };
8
+ declare class Signal<T> {
9
+ private _value;
10
+ private readonly useSyncExternalStore;
11
+ private readonly listeners;
12
+ constructor(_value: T, useSyncExternalStore: UseSyncExternalStore);
13
+ subscribe(fn: (value: T) => void): () => void;
14
+ set(value: T): void;
15
+ get value(): T;
16
+ useSignal(): T;
17
+ static computed<Args extends readonly Signal<any>[], T>(computeFn: (...args: SignalValues<Args>) => T, dependencies: Args): Signal<T>;
18
+ }
19
+ export declare function useAccount<TClient>(client: StatefulPreactOAuthClient<TClient>): Account | undefined;
20
+ export declare function useUser<TClient>(client: StatefulPreactOAuthClient<TClient>): LoginState<TClient> | undefined;
21
+ export declare function useHandle<TClient>(client: StatefulPreactOAuthClient<TClient>): string | undefined;
22
+ export declare function useDid<TClient>(client: StatefulPreactOAuthClient<TClient>): Did | undefined;
23
+ export declare function usePds<TClient>(client: StatefulPreactOAuthClient<TClient>): string | undefined;
24
+ export declare class StatefulPreactOAuthClient<TClient> extends BaseStatefulOAuthClient<TClient> {
25
+ private _account;
26
+ private _agent;
27
+ private _client;
28
+ get account(): Signal<Account | undefined>;
29
+ readonly user: Signal<LoginState<TClient> | undefined>;
30
+ readonly handle: Signal<string | undefined>;
31
+ readonly did: Signal<Did | undefined>;
32
+ readonly pds: Signal<string | undefined>;
33
+ protected get internal_account(): Account | undefined;
34
+ protected get internal_user(): LoginState<TClient> | undefined;
35
+ protected get internal_agent(): KittyAgent | undefined;
36
+ protected get internal_client(): TClient | undefined;
37
+ protected set internal_account(value: Account | undefined);
38
+ protected set internal_agent(value: KittyAgent | undefined);
39
+ protected set internal_client(value: TClient | undefined);
40
+ constructor(options: {
41
+ clientId: string;
42
+ redirectUri: string;
43
+ scope: string;
44
+ }, useSyncExternalStore: UseSyncExternalStore, createClient: (loginState: {
45
+ readonly handle: string;
46
+ readonly did: Did;
47
+ readonly pds: string;
48
+ readonly agent: KittyAgent;
49
+ }) => TClient);
50
+ }
51
+ export {};
52
+ //# sourceMappingURL=oauth-react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-react.d.ts","sourceRoot":"","sources":["../src/oauth-react.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import { BaseStatefulOAuthClient, LoginStateImpl } from "./oauth-stateful-base.js";
2
+ class Signal {
3
+ _value;
4
+ useSyncExternalStore;
5
+ listeners = new Set();
6
+ constructor(_value, useSyncExternalStore) {
7
+ this._value = _value;
8
+ this.useSyncExternalStore = useSyncExternalStore;
9
+ }
10
+ subscribe(fn) {
11
+ this.listeners.add(fn);
12
+ return () => this.listeners.delete(fn);
13
+ }
14
+ set(value) {
15
+ this._value = value;
16
+ for (const listener of this.listeners) {
17
+ listener(value);
18
+ }
19
+ }
20
+ get value() {
21
+ return this._value;
22
+ }
23
+ useSignal() {
24
+ const subscribe = (callback) => {
25
+ this.listeners.add(callback);
26
+ return () => this.listeners.delete(callback);
27
+ };
28
+ const getSnapshot = () => this._value;
29
+ return this.useSyncExternalStore(subscribe, getSnapshot);
30
+ }
31
+ static computed(computeFn, dependencies) {
32
+ const useSyncExternalStore = dependencies[0].useSyncExternalStore;
33
+ const computedSignal = new Signal(computeFn(...dependencies.map(dep => dep.value)), useSyncExternalStore);
34
+ for (const dep of dependencies) {
35
+ dep.subscribe(() => {
36
+ computedSignal.set(computeFn(...dependencies.map(dep => dep.value)));
37
+ });
38
+ }
39
+ return computedSignal;
40
+ }
41
+ }
42
+ export function useAccount(client) {
43
+ return client.account.useSignal();
44
+ }
45
+ export function useUser(client) {
46
+ return client.user.useSignal();
47
+ }
48
+ export function useHandle(client) {
49
+ return client.handle.useSignal();
50
+ }
51
+ export function useDid(client) {
52
+ return client.did.useSignal();
53
+ }
54
+ export function usePds(client) {
55
+ return client.pds.useSignal();
56
+ }
57
+ export class StatefulPreactOAuthClient extends BaseStatefulOAuthClient {
58
+ _account;
59
+ _agent;
60
+ _client;
61
+ get account() { return this._account; }
62
+ user;
63
+ handle;
64
+ did;
65
+ pds;
66
+ get internal_account() { return this._account.value; }
67
+ get internal_user() { return this.user.value; }
68
+ get internal_agent() { return this._agent.value; }
69
+ get internal_client() { return this._client.value; }
70
+ set internal_account(value) { this._account.set(value); }
71
+ set internal_agent(value) { this._agent.set(value); }
72
+ set internal_client(value) { this._client.set(value); }
73
+ constructor(options, useSyncExternalStore, createClient) {
74
+ super(options, createClient);
75
+ function useLocalStorage(key, initialValue, options) {
76
+ const value = new Signal(initialValue, useSyncExternalStore);
77
+ if (key in localStorage) {
78
+ value.set(options.deserializer(localStorage[key]));
79
+ }
80
+ value.subscribe(newValue => {
81
+ localStorage[key] = options.serializer(newValue);
82
+ });
83
+ return value;
84
+ }
85
+ this._account = useLocalStorage('user', undefined, {
86
+ deserializer(raw) { return raw === 'null' ? undefined : JSON.parse(raw); },
87
+ serializer(value) { return value === undefined ? 'null' : JSON.stringify(value); },
88
+ });
89
+ this._agent = new Signal(undefined, useSyncExternalStore);
90
+ this._client = new Signal(undefined, useSyncExternalStore);
91
+ this.user = Signal.computed((account, agent, client) => {
92
+ return account && agent && client ? new LoginStateImpl(account, agent, client) : undefined;
93
+ }, [this._account, this._agent, this._client]);
94
+ this.handle = Signal.computed((account) => account?.handle, [
95
+ this._account,
96
+ ]);
97
+ this.did = Signal.computed((account) => account?.did, [
98
+ this._account,
99
+ ]);
100
+ this.pds = Signal.computed((account) => account?.pds, [
101
+ this._account,
102
+ ]);
103
+ }
104
+ }
105
+ //# sourceMappingURL=oauth-react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-react.js","sourceRoot":"","sources":["../src/oauth-react.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,5 @@
1
1
  import { KittyAgent } from "./agent.js";
2
2
  export declare class SlingshotClient extends KittyAgent {
3
- protected paginationHelperSimple<K extends string, T extends {
4
- cursor?: string | undefined;
5
- } & {
6
- [k in K]: U[];
7
- }, U>(limit: number | undefined, key: K, query: (cursor: string | undefined, limit: number) => Promise<T>): AsyncIterable<U, {
8
- cursor: string | undefined;
9
- }>;
10
3
  constructor({ service, userAgent }: {
11
4
  service?: string;
12
5
  userAgent: string;
@@ -1 +1 @@
1
- {"version":3,"file":"slingshot.d.ts","sourceRoot":"","sources":["../src/slingshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,qBAAa,eAAgB,SAAQ,UAAU;cAE1B,sBAAsB,CACnC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;KAAE,EAC7D,CAAC,EAED,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACjE,aAAa,CAAC,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;KAAE,CAAC;gBA2BxC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAgB9E"}
1
+ {"version":3,"file":"slingshot.d.ts","sourceRoot":"","sources":["../src/slingshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,qBAAa,eAAgB,SAAQ,UAAU;gBAC/B,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAgB9E"}
package/out/slingshot.js CHANGED
@@ -1,25 +1,6 @@
1
1
  import { simpleFetchHandler } from "@atcute/client";
2
2
  import { KittyAgent } from "./agent.js";
3
3
  export class SlingshotClient extends KittyAgent {
4
- // Idk why the original paginationHelper is so complicated; it should eventually be replaced with this.
5
- async *paginationHelperSimple(limit, key, query) {
6
- const PER_PAGE = 100;
7
- let cursor = undefined;
8
- do {
9
- const data = await query(cursor, limit === undefined
10
- ? PER_PAGE
11
- : limit / PER_PAGE > 1
12
- ? PER_PAGE
13
- : limit);
14
- const theseResults = data[key];
15
- if (limit !== undefined) {
16
- limit -= theseResults.length;
17
- }
18
- yield* theseResults;
19
- cursor = data.cursor;
20
- } while (cursor);
21
- return { cursor };
22
- }
23
4
  constructor({ service, userAgent }) {
24
5
  super({
25
6
  handler: simpleFetchHandler({
@@ -1 +1 @@
1
- {"version":3,"file":"slingshot.js","sourceRoot":"","sources":["../src/slingshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC3C,uGAAuG;IAC7F,KAAK,CAAC,CAAC,sBAAsB,CAKnC,KAAyB,EACzB,GAAM,EACN,KAAgE;QAEhE,MAAM,QAAQ,GAAG,GAAG,CAAC;QAErB,IAAI,MAAM,GAAuB,SAAS,CAAC;QAC3C,GAAG,CAAC;YACA,MAAM,IAAI,GAAG,MAAM,KAAK,CACpB,MAAM,EACN,KAAK,KAAK,SAAS;gBACf,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC;oBAClB,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,KAAK,CAAC,CAAC;YAErB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC;YACjC,CAAC;YAED,KAAK,CAAC,CAAC,YAAY,CAAC;YAEpB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,CAAC,QAAQ,MAAM,EAAE;QAEjB,OAAO,EAAE,MAAM,EAAE,CAAC;IACtB,CAAC;IAED,YAAY,EAAE,OAAO,EAAE,SAAS,EAA2C;QACvE,KAAK,CAAC;YACF,OAAO,EAAE,kBAAkB,CAAC;gBACxB,OAAO,EAAE,OAAO,IAAI,kCAAkC;gBACtD,KAAK,CAAC,KAAK,EAAE,IAAI;oBACb,OAAO,KAAK,CAAC,KAAK,EAAE;wBAChB,GAAG,IAAI;wBACP,OAAO,EAAE;4BACL,GAAG,IAAI,EAAE,OAAO;4BAChB,YAAY,EAAE,SAAS;yBAC1B;qBACJ,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC;SACL,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"slingshot.js","sourceRoot":"","sources":["../src/slingshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC3C,YAAY,EAAE,OAAO,EAAE,SAAS,EAA2C;QACvE,KAAK,CAAC;YACF,OAAO,EAAE,kBAAkB,CAAC;gBACxB,OAAO,EAAE,OAAO,IAAI,kCAAkC;gBACtD,KAAK,CAAC,KAAK,EAAE,IAAI;oBACb,OAAO,KAAK,CAAC,KAAK,EAAE;wBAChB,GAAG,IAAI;wBACP,OAAO,EAAE;4BACL,GAAG,IAAI,EAAE,OAAO;4BAChB,YAAY,EAAE,SAAS;yBAC1B;qBACJ,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC;SACL,CAAC,CAAC;IACP,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kitty-agent",
3
3
  "type": "module",
4
- "version": "11.0.0",
4
+ "version": "11.1.0",
5
5
  "description": "Helpers for @atcute/client",
6
6
  "main": "out/index.js",
7
7
  "types": "out/index.d.ts",
@@ -31,20 +31,27 @@
31
31
  "./oauth-preact": {
32
32
  "default": "./out/oauth-preact.js",
33
33
  "types": "./out/oauth-preact.d.ts"
34
+ },
35
+ "./oauth-react": {
36
+ "default": "./out/oauth-react.js",
37
+ "types": "./out/oauth-react.d.ts"
34
38
  }
35
39
  },
36
40
  "keywords": [],
37
41
  "author": "",
38
42
  "license": "ISC",
39
43
  "peerDependencies": {
44
+ "@atcute/atproto": "^3.1.10",
40
45
  "@atcute/cid": "^2.4.1",
41
46
  "@atcute/client": "^4.2.1",
42
- "@atcute/oauth-browser-client": "^3.0.0",
43
- "@atproto/syntax": "^0.4.3",
44
- "@atcute/atproto": "^3.1.10",
45
47
  "@atcute/identity": "^1.1.3",
46
48
  "@atcute/identity-resolver": "^1.2.2",
47
- "@atcute/lexicons": "^1.2.9"
49
+ "@atcute/lexicons": "^1.2.9",
50
+ "@atcute/oauth-browser-client": "^3.0.0",
51
+ "@atproto/syntax": "^0.4.3"
52
+ },
53
+ "devDependencies": {
54
+ "@types/react": "^19.2.14"
48
55
  },
49
56
  "scripts": {
50
57
  "build": "pnpm --package=typescript dlx tsc"