@agora-sdk/social-core 0.6.5 → 0.8.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.
- package/dist/cjs/context/social-context.d.ts +6 -2
- package/dist/cjs/context/social-context.js +8 -8
- package/dist/cjs/context/social-context.js.map +1 -1
- package/dist/cjs/transport/rest.d.ts +2 -2
- package/dist/cjs/transport/rest.js +3 -3
- package/dist/cjs/transport/rest.js.map +1 -1
- package/dist/esm/context/social-context.d.ts +6 -2
- package/dist/esm/context/social-context.js +8 -8
- package/dist/esm/context/social-context.js.map +1 -1
- package/dist/esm/transport/rest.d.ts +2 -2
- package/dist/esm/transport/rest.js +3 -3
- package/dist/esm/transport/rest.js.map +1 -1
- package/package.json +1 -2
|
@@ -35,8 +35,12 @@ export interface SocialProviderProps {
|
|
|
35
35
|
accessToken?: string;
|
|
36
36
|
/** Override token resolution (takes precedence over `accessToken`). */
|
|
37
37
|
getAccessToken?: () => string | undefined;
|
|
38
|
-
/**
|
|
39
|
-
|
|
38
|
+
/**
|
|
39
|
+
* API base URL including the version prefix (e.g. `https://api.example.com/v7`). Required — social
|
|
40
|
+
* is a standalone transport and does not resolve a URL from any ambient SDK runtime. Read lazily per
|
|
41
|
+
* request, so re-passing a changed value takes effect on the next call.
|
|
42
|
+
*/
|
|
43
|
+
baseUrl: string;
|
|
40
44
|
children: React.ReactNode;
|
|
41
45
|
}
|
|
42
46
|
/**
|
|
@@ -6,18 +6,18 @@ exports.useSocial = useSocial;
|
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
// SocialProvider — wires the social REST transport and auto-resolves the project's feature config.
|
|
8
8
|
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
9
|
+
// Standalone transport: the caller supplies the API base URL directly — this package has NO dependency
|
|
10
|
+
// on @agora-sdk/core (it previously fell back to core's getApiBaseUrl runtime singleton, a coupling
|
|
11
|
+
// whose only purpose was auto-inheriting a Replyke app's config). On mount it fetches
|
|
12
|
+
// `GET /social/transparency` once and stores the resolved config so every hook/component can self-gate
|
|
13
|
+
// on the per-project feature flags WITHOUT each issuing its own probe (SOCIAL.md §7 — "check
|
|
14
|
+
// transparency at app init"). There is no crypto and no persistence here: social data is
|
|
15
|
+
// public/server-side and slow-moving, so the provider holds fetched config in React state only.
|
|
15
16
|
//
|
|
16
17
|
// Graceful degradation: a `503 social/graph-unavailable` is treated as "the whole graph is off" — we
|
|
17
18
|
// store an ALL-DISABLED sentinel rather than an error, so surfaces hide silently instead of throwing
|
|
18
19
|
// at members. Any other failure is surfaced via `configError` for the host app to decide on.
|
|
19
20
|
const react_1 = require("react");
|
|
20
|
-
const core_1 = require("@agora-sdk/core");
|
|
21
21
|
const rest_js_1 = require("../transport/rest.js");
|
|
22
22
|
const rest_js_2 = require("../transport/rest.js");
|
|
23
23
|
/**
|
|
@@ -68,7 +68,7 @@ function SocialProvider({ projectId, accessToken, getAccessToken, baseUrl, child
|
|
|
68
68
|
const rest = (0, react_1.useMemo)(() => new rest_js_1.SocialRestClient({
|
|
69
69
|
projectId,
|
|
70
70
|
getAccessToken: resolveToken,
|
|
71
|
-
getBaseUrl: () => baseUrl
|
|
71
|
+
getBaseUrl: () => baseUrl,
|
|
72
72
|
}), [projectId, resolveToken, baseUrl]);
|
|
73
73
|
const [config, setConfig] = (0, react_1.useState)(null);
|
|
74
74
|
const [configLoading, setConfigLoading] = (0, react_1.useState)(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-context.js","sourceRoot":"","sources":["../../../src/context/social-context.tsx"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"social-context.js","sourceRoot":"","sources":["../../../src/context/social-context.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { ResolvedSocialConfig, SocialConstellation, SocialNeighborhood, SocialWe
|
|
|
5
5
|
* next request without rebuilding the client.
|
|
6
6
|
*/
|
|
7
7
|
export interface SocialRestConfig {
|
|
8
|
-
/** Resolve the API base URL (e.g. `
|
|
8
|
+
/** Resolve the API base URL incl. the version prefix (e.g. `() => "https://host/v7"`). */
|
|
9
9
|
getBaseUrl: () => string;
|
|
10
10
|
/** Resolve the current access token, or undefined when signed out. */
|
|
11
11
|
getAccessToken: () => string | undefined;
|
|
@@ -53,7 +53,7 @@ export declare function isSocialDegradation(err: unknown): boolean;
|
|
|
53
53
|
* ```typescript
|
|
54
54
|
* const rest = new SocialRestClient({
|
|
55
55
|
* projectId,
|
|
56
|
-
* getBaseUrl: () =>
|
|
56
|
+
* getBaseUrl: () => "https://host/v7",
|
|
57
57
|
* getAccessToken: () => session.accessToken,
|
|
58
58
|
* });
|
|
59
59
|
* const weather = await rest.getWeather();
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// Typed REST client for the Agora social graph (Weather / Constellation / Neighborhood / Transparency).
|
|
3
3
|
//
|
|
4
4
|
// Covers every endpoint in `docs/SOCIAL.md` §1–4. Base URL and access token are resolved **lazily per
|
|
5
|
-
// request**
|
|
6
|
-
//
|
|
5
|
+
// request** via caller-supplied resolvers, so a token refresh or a late-set baseUrl always wins. Every
|
|
6
|
+
// endpoint is path-scoped to `{baseUrl}/{projectId}/social` — the `:projectId`
|
|
7
7
|
// boundary is a privacy boundary (no cross-project social data; see SOCIAL.md §6).
|
|
8
8
|
//
|
|
9
9
|
// All four lenses are feature-gated server-side and degrade with specific error codes (SOCIAL.md §7).
|
|
@@ -92,7 +92,7 @@ function extractCode(data) {
|
|
|
92
92
|
* ```typescript
|
|
93
93
|
* const rest = new SocialRestClient({
|
|
94
94
|
* projectId,
|
|
95
|
-
* getBaseUrl: () =>
|
|
95
|
+
* getBaseUrl: () => "https://host/v7",
|
|
96
96
|
* getAccessToken: () => session.accessToken,
|
|
97
97
|
* });
|
|
98
98
|
* const weather = await rest.getWeather();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../src/transport/rest.ts"],"names":[],"mappings":";AAAA,wGAAwG;AACxG,EAAE;AACF,sGAAsG;AACtG,
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../src/transport/rest.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,8 +35,12 @@ export interface SocialProviderProps {
|
|
|
35
35
|
accessToken?: string;
|
|
36
36
|
/** Override token resolution (takes precedence over `accessToken`). */
|
|
37
37
|
getAccessToken?: () => string | undefined;
|
|
38
|
-
/**
|
|
39
|
-
|
|
38
|
+
/**
|
|
39
|
+
* API base URL including the version prefix (e.g. `https://api.example.com/v7`). Required — social
|
|
40
|
+
* is a standalone transport and does not resolve a URL from any ambient SDK runtime. Read lazily per
|
|
41
|
+
* request, so re-passing a changed value takes effect on the next call.
|
|
42
|
+
*/
|
|
43
|
+
baseUrl: string;
|
|
40
44
|
children: React.ReactNode;
|
|
41
45
|
}
|
|
42
46
|
/**
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// SocialProvider — wires the social REST transport and auto-resolves the project's feature config.
|
|
3
3
|
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
4
|
+
// Standalone transport: the caller supplies the API base URL directly — this package has NO dependency
|
|
5
|
+
// on @agora-sdk/core (it previously fell back to core's getApiBaseUrl runtime singleton, a coupling
|
|
6
|
+
// whose only purpose was auto-inheriting a Replyke app's config). On mount it fetches
|
|
7
|
+
// `GET /social/transparency` once and stores the resolved config so every hook/component can self-gate
|
|
8
|
+
// on the per-project feature flags WITHOUT each issuing its own probe (SOCIAL.md §7 — "check
|
|
9
|
+
// transparency at app init"). There is no crypto and no persistence here: social data is
|
|
10
|
+
// public/server-side and slow-moving, so the provider holds fetched config in React state only.
|
|
10
11
|
//
|
|
11
12
|
// Graceful degradation: a `503 social/graph-unavailable` is treated as "the whole graph is off" — we
|
|
12
13
|
// store an ALL-DISABLED sentinel rather than an error, so surfaces hide silently instead of throwing
|
|
13
14
|
// at members. Any other failure is surfaced via `configError` for the host app to decide on.
|
|
14
15
|
import { createContext, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
15
|
-
import { getApiBaseUrl } from "@agora-sdk/core";
|
|
16
16
|
import { SocialRestClient } from "../transport/rest.js";
|
|
17
17
|
import { SocialApiError } from "../transport/rest.js";
|
|
18
18
|
/**
|
|
@@ -63,7 +63,7 @@ export function SocialProvider({ projectId, accessToken, getAccessToken, baseUrl
|
|
|
63
63
|
const rest = useMemo(() => new SocialRestClient({
|
|
64
64
|
projectId,
|
|
65
65
|
getAccessToken: resolveToken,
|
|
66
|
-
getBaseUrl: () => baseUrl
|
|
66
|
+
getBaseUrl: () => baseUrl,
|
|
67
67
|
}), [projectId, resolveToken, baseUrl]);
|
|
68
68
|
const [config, setConfig] = useState(null);
|
|
69
69
|
const [configLoading, setConfigLoading] = useState(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-context.js","sourceRoot":"","sources":["../../../src/context/social-context.tsx"],"names":[],"mappings":";AAAA,mGAAmG;AACnG,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"social-context.js","sourceRoot":"","sources":["../../../src/context/social-context.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { ResolvedSocialConfig, SocialConstellation, SocialNeighborhood, SocialWe
|
|
|
5
5
|
* next request without rebuilding the client.
|
|
6
6
|
*/
|
|
7
7
|
export interface SocialRestConfig {
|
|
8
|
-
/** Resolve the API base URL (e.g. `
|
|
8
|
+
/** Resolve the API base URL incl. the version prefix (e.g. `() => "https://host/v7"`). */
|
|
9
9
|
getBaseUrl: () => string;
|
|
10
10
|
/** Resolve the current access token, or undefined when signed out. */
|
|
11
11
|
getAccessToken: () => string | undefined;
|
|
@@ -53,7 +53,7 @@ export declare function isSocialDegradation(err: unknown): boolean;
|
|
|
53
53
|
* ```typescript
|
|
54
54
|
* const rest = new SocialRestClient({
|
|
55
55
|
* projectId,
|
|
56
|
-
* getBaseUrl: () =>
|
|
56
|
+
* getBaseUrl: () => "https://host/v7",
|
|
57
57
|
* getAccessToken: () => session.accessToken,
|
|
58
58
|
* });
|
|
59
59
|
* const weather = await rest.getWeather();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Typed REST client for the Agora social graph (Weather / Constellation / Neighborhood / Transparency).
|
|
2
2
|
//
|
|
3
3
|
// Covers every endpoint in `docs/SOCIAL.md` §1–4. Base URL and access token are resolved **lazily per
|
|
4
|
-
// request**
|
|
5
|
-
//
|
|
4
|
+
// request** via caller-supplied resolvers, so a token refresh or a late-set baseUrl always wins. Every
|
|
5
|
+
// endpoint is path-scoped to `{baseUrl}/{projectId}/social` — the `:projectId`
|
|
6
6
|
// boundary is a privacy boundary (no cross-project social data; see SOCIAL.md §6).
|
|
7
7
|
//
|
|
8
8
|
// All four lenses are feature-gated server-side and degrade with specific error codes (SOCIAL.md §7).
|
|
@@ -84,7 +84,7 @@ function extractCode(data) {
|
|
|
84
84
|
* ```typescript
|
|
85
85
|
* const rest = new SocialRestClient({
|
|
86
86
|
* projectId,
|
|
87
|
-
* getBaseUrl: () =>
|
|
87
|
+
* getBaseUrl: () => "https://host/v7",
|
|
88
88
|
* getAccessToken: () => session.accessToken,
|
|
89
89
|
* });
|
|
90
90
|
* const weather = await rest.getWeather();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../src/transport/rest.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,EAAE;AACF,sGAAsG;AACtG,
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../src/transport/rest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agora-sdk/social-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Agora SDK Plus, maintained by Jenova Marie",
|
|
@@ -39,7 +39,6 @@
|
|
|
39
39
|
"axios": "^1.4.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@agora-sdk/core": "^1.2.2",
|
|
43
42
|
"react": "^18.0.0 || ^19.0.0"
|
|
44
43
|
},
|
|
45
44
|
"scripts": {
|