@graffiti-garden/api 0.2.1 → 0.2.2
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.
- package/dist/src/1-api.d.ts +3 -12
- package/dist/src/1-api.d.ts.map +1 -1
- package/dist/src/2-types.d.ts +22 -0
- package/dist/src/2-types.d.ts.map +1 -1
- package/dist/tests/src/channel-stats.d.ts +2 -2
- package/dist/tests/src/channel-stats.d.ts.map +1 -1
- package/dist/tests/src/orphans.d.ts +2 -2
- package/dist/tests/src/orphans.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/1-api.ts +3 -11
- package/src/2-types.ts +23 -0
- package/tests/src/channel-stats.ts +5 -2
- package/tests/src/orphans.ts +5 -2
package/dist/src/1-api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GraffitiLocation, GraffitiObject, GraffitiObjectBase, GraffitiPatch, GraffitiSession, GraffitiPutObject, GraffitiStream } from "./2-types";
|
|
1
|
+
import type { GraffitiLocation, GraffitiObject, GraffitiObjectBase, GraffitiPatch, GraffitiSession, GraffitiPutObject, GraffitiStream, ChannelStats } from "./2-types";
|
|
2
2
|
import type { JSONSchema4 } from "json-schema";
|
|
3
3
|
/**
|
|
4
4
|
* This API describes a small but powerful set of methods that
|
|
@@ -513,24 +513,15 @@ export declare abstract class Graffiti {
|
|
|
513
513
|
*
|
|
514
514
|
* @group Query Methods
|
|
515
515
|
*
|
|
516
|
-
* @returns A stream of
|
|
516
|
+
* @returns A stream of statistics for each {@link GraffitiObjectBase.channels | `channel`}
|
|
517
517
|
* that the {@link GraffitiObjectBase.actor | `actor`} has posted to.
|
|
518
|
-
* The `lastModified` field is the time that the user last modified an
|
|
519
|
-
* object in that channel. The `count` field is the number of objects
|
|
520
|
-
* that the user has posted to that channel.
|
|
521
|
-
* {@link GraffitiObjectBase.tombstone | `tombstone`}d objects are not included
|
|
522
|
-
* in either the `count` or `lastModified` fields.
|
|
523
518
|
*/
|
|
524
519
|
abstract channelStats(
|
|
525
520
|
/**
|
|
526
521
|
* An implementation-specific object with information to authenticate the
|
|
527
522
|
* {@link GraffitiObjectBase.actor | `actor`}.
|
|
528
523
|
*/
|
|
529
|
-
session: GraffitiSession): GraffitiStream<
|
|
530
|
-
channel: string;
|
|
531
|
-
count: number;
|
|
532
|
-
lastModified: number;
|
|
533
|
-
}>;
|
|
524
|
+
session: GraffitiSession): GraffitiStream<ChannelStats>;
|
|
534
525
|
/**
|
|
535
526
|
* Begins the login process. Depending on the implementation, this may
|
|
536
527
|
* involve redirecting the user to a login page or opening a popup,
|
package/dist/src/1-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1-api.d.ts","sourceRoot":"","sources":["../../src/1-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,
|
|
1
|
+
{"version":3,"file":"1-api.d.ts","sourceRoot":"","sources":["../../src/1-api.ts"],"names":[],"mappings":"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"}
|
package/dist/src/2-types.d.ts
CHANGED
|
@@ -241,6 +241,28 @@ export type GraffitiStream<TValue, TReturn = void> = AsyncGenerator<{
|
|
|
241
241
|
error: Error;
|
|
242
242
|
source: string;
|
|
243
243
|
}, TReturn>;
|
|
244
|
+
/**
|
|
245
|
+
* Statistic about single channel returned by {@link Graffiti.channelStats}.
|
|
246
|
+
* These statistics only account for contributions made by the
|
|
247
|
+
* querying actor.
|
|
248
|
+
*/
|
|
249
|
+
export type ChannelStats = {
|
|
250
|
+
/**
|
|
251
|
+
* The URI of the channel.
|
|
252
|
+
*/
|
|
253
|
+
channel: string;
|
|
254
|
+
/**
|
|
255
|
+
* The number of non-{@link GraffitiObjectBase.tombstone | `tombstone`}d objects
|
|
256
|
+
* that the actor has posted to the channel.
|
|
257
|
+
*/
|
|
258
|
+
count: number;
|
|
259
|
+
/**
|
|
260
|
+
* The time that the actor {@link Graffiti.lastModified | last modified} an object in the channel,
|
|
261
|
+
* measured in milliseconds since January 1, 1970.
|
|
262
|
+
* {@link GraffitiObjectBase.tombstone | Tombstone}d objects do not effect this modification time.
|
|
263
|
+
*/
|
|
264
|
+
lastModified: number;
|
|
265
|
+
};
|
|
244
266
|
/**
|
|
245
267
|
* The event type produced in {@link Graffiti.sessionEvents}
|
|
246
268
|
* when a user logs in manually from {@link Graffiti.login}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2-types.d.ts","sourceRoot":"","sources":["../../src/2-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"2-types.d.ts","sourceRoot":"","sources":["../../src/2-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const graffitiChannelStatsTests: (useGraffiti:
|
|
1
|
+
import type { Graffiti, GraffitiSession } from "@graffiti-garden/api";
|
|
2
|
+
export declare const graffitiChannelStatsTests: (useGraffiti: () => Pick<Graffiti, "channelStats" | "put" | "delete" | "patch">, useSession1: () => GraffitiSession, useSession2: () => GraffitiSession) => void;
|
|
3
3
|
//# sourceMappingURL=channel-stats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-stats.d.ts","sourceRoot":"","sources":["../../../tests/src/channel-stats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"channel-stats.d.ts","sourceRoot":"","sources":["../../../tests/src/channel-stats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGtE,eAAO,MAAM,yBAAyB,gBACvB,MAAM,IAAI,CACrB,QAAQ,EACR,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAC5C,eACY,MAAM,eAAe,eACrB,MAAM,eAAe,SAiHnC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const graffitiOrphanTests: (useGraffiti:
|
|
1
|
+
import type { Graffiti, GraffitiSession } from "@graffiti-garden/api";
|
|
2
|
+
export declare const graffitiOrphanTests: (useGraffiti: () => Pick<Graffiti, "recoverOrphans" | "put" | "delete" | "patch">, useSession1: () => GraffitiSession, useSession2: () => GraffitiSession) => void;
|
|
3
3
|
//# sourceMappingURL=orphans.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphans.d.ts","sourceRoot":"","sources":["../../../tests/src/orphans.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"orphans.d.ts","sourceRoot":"","sources":["../../../tests/src/orphans.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGtE,eAAO,MAAM,mBAAmB,gBACjB,MAAM,IAAI,CACrB,QAAQ,EACR,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAC9C,eACY,MAAM,eAAe,eACrB,MAAM,eAAe,SA8DnC,CAAC"}
|
package/package.json
CHANGED
package/src/1-api.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type {
|
|
|
6
6
|
GraffitiSession,
|
|
7
7
|
GraffitiPutObject,
|
|
8
8
|
GraffitiStream,
|
|
9
|
+
ChannelStats,
|
|
9
10
|
} from "./2-types";
|
|
10
11
|
import type { JSONSchema4 } from "json-schema";
|
|
11
12
|
|
|
@@ -545,13 +546,8 @@ export abstract class Graffiti {
|
|
|
545
546
|
*
|
|
546
547
|
* @group Query Methods
|
|
547
548
|
*
|
|
548
|
-
* @returns A stream of
|
|
549
|
+
* @returns A stream of statistics for each {@link GraffitiObjectBase.channels | `channel`}
|
|
549
550
|
* that the {@link GraffitiObjectBase.actor | `actor`} has posted to.
|
|
550
|
-
* The `lastModified` field is the time that the user last modified an
|
|
551
|
-
* object in that channel. The `count` field is the number of objects
|
|
552
|
-
* that the user has posted to that channel.
|
|
553
|
-
* {@link GraffitiObjectBase.tombstone | `tombstone`}d objects are not included
|
|
554
|
-
* in either the `count` or `lastModified` fields.
|
|
555
551
|
*/
|
|
556
552
|
abstract channelStats(
|
|
557
553
|
/**
|
|
@@ -559,11 +555,7 @@ export abstract class Graffiti {
|
|
|
559
555
|
* {@link GraffitiObjectBase.actor | `actor`}.
|
|
560
556
|
*/
|
|
561
557
|
session: GraffitiSession,
|
|
562
|
-
): GraffitiStream<
|
|
563
|
-
channel: string;
|
|
564
|
-
count: number;
|
|
565
|
-
lastModified: number;
|
|
566
|
-
}>;
|
|
558
|
+
): GraffitiStream<ChannelStats>;
|
|
567
559
|
|
|
568
560
|
/**
|
|
569
561
|
* Begins the login process. Depending on the implementation, this may
|
package/src/2-types.ts
CHANGED
|
@@ -270,6 +270,29 @@ export type GraffitiStream<TValue, TReturn = void> = AsyncGenerator<
|
|
|
270
270
|
TReturn
|
|
271
271
|
>;
|
|
272
272
|
|
|
273
|
+
/**
|
|
274
|
+
* Statistic about single channel returned by {@link Graffiti.channelStats}.
|
|
275
|
+
* These statistics only account for contributions made by the
|
|
276
|
+
* querying actor.
|
|
277
|
+
*/
|
|
278
|
+
export type ChannelStats = {
|
|
279
|
+
/**
|
|
280
|
+
* The URI of the channel.
|
|
281
|
+
*/
|
|
282
|
+
channel: string;
|
|
283
|
+
/**
|
|
284
|
+
* The number of non-{@link GraffitiObjectBase.tombstone | `tombstone`}d objects
|
|
285
|
+
* that the actor has posted to the channel.
|
|
286
|
+
*/
|
|
287
|
+
count: number;
|
|
288
|
+
/**
|
|
289
|
+
* The time that the actor {@link Graffiti.lastModified | last modified} an object in the channel,
|
|
290
|
+
* measured in milliseconds since January 1, 1970.
|
|
291
|
+
* {@link GraffitiObjectBase.tombstone | Tombstone}d objects do not effect this modification time.
|
|
292
|
+
*/
|
|
293
|
+
lastModified: number;
|
|
294
|
+
};
|
|
295
|
+
|
|
273
296
|
/**
|
|
274
297
|
* The event type produced in {@link Graffiti.sessionEvents}
|
|
275
298
|
* when a user logs in manually from {@link Graffiti.login}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { it, expect, describe, assert } from "vitest";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Graffiti, GraffitiSession } from "@graffiti-garden/api";
|
|
3
3
|
import { randomPutObject, randomString } from "./utils";
|
|
4
4
|
|
|
5
5
|
export const graffitiChannelStatsTests = (
|
|
6
|
-
useGraffiti:
|
|
6
|
+
useGraffiti: () => Pick<
|
|
7
|
+
Graffiti,
|
|
8
|
+
"channelStats" | "put" | "delete" | "patch"
|
|
9
|
+
>,
|
|
7
10
|
useSession1: () => GraffitiSession,
|
|
8
11
|
useSession2: () => GraffitiSession,
|
|
9
12
|
) => {
|
package/tests/src/orphans.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { it, expect, describe, assert } from "vitest";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Graffiti, GraffitiSession } from "@graffiti-garden/api";
|
|
3
3
|
import { randomPutObject, randomString } from "./utils";
|
|
4
4
|
|
|
5
5
|
export const graffitiOrphanTests = (
|
|
6
|
-
useGraffiti:
|
|
6
|
+
useGraffiti: () => Pick<
|
|
7
|
+
Graffiti,
|
|
8
|
+
"recoverOrphans" | "put" | "delete" | "patch"
|
|
9
|
+
>,
|
|
7
10
|
useSession1: () => GraffitiSession,
|
|
8
11
|
useSession2: () => GraffitiSession,
|
|
9
12
|
) => {
|