@channel.io/app-sdk-wam 0.24.2 → 0.26.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/hooks/useNativeFunction.d.ts +6 -4
- package/dist/hooks/useNativeFunction.d.ts.map +1 -1
- package/dist/hooks/useNativeFunction.js +0 -29
- package/dist/hooks/useNativeFunction.js.map +1 -1
- package/dist/hooks/useNativeFunction.test.d.ts +2 -0
- package/dist/hooks/useNativeFunction.test.d.ts.map +1 -0
- package/dist/hooks/useNativeFunction.test.js +22 -0
- package/dist/hooks/useNativeFunction.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
import type { NativeFunctionMethod, NativeFunctionParams, NativeFunctionResult } from "@channel.io/app-sdk-core";
|
|
1
2
|
/**
|
|
2
3
|
* Options for useNativeFunction hook
|
|
3
4
|
*/
|
|
4
|
-
export interface UseNativeFunctionOptions {
|
|
5
|
+
export interface UseNativeFunctionOptions<TName extends string = string> {
|
|
5
6
|
/** Native function name */
|
|
6
|
-
name:
|
|
7
|
+
name: TName;
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
9
10
|
* Result of useNativeFunction hook
|
|
10
11
|
*/
|
|
11
|
-
export interface UseNativeFunctionResult<T
|
|
12
|
+
export interface UseNativeFunctionResult<T, TParams = Record<string, unknown>> {
|
|
12
13
|
/** Function to call the native function */
|
|
13
|
-
call: (params:
|
|
14
|
+
call: (params: TParams) => Promise<T>;
|
|
14
15
|
/** Whether the function is currently being called */
|
|
15
16
|
loading: boolean;
|
|
16
17
|
/** Error from the last call, if any */
|
|
@@ -49,5 +50,6 @@ export interface UseNativeFunctionResult<T> {
|
|
|
49
50
|
* }
|
|
50
51
|
* ```
|
|
51
52
|
*/
|
|
53
|
+
export declare function useNativeFunction<TMethod extends NativeFunctionMethod>(options: UseNativeFunctionOptions<TMethod>): UseNativeFunctionResult<NativeFunctionResult<TMethod>, NativeFunctionParams<TMethod>>;
|
|
52
54
|
export declare function useNativeFunction<T = unknown>(options: UseNativeFunctionOptions): UseNativeFunctionResult<T>;
|
|
53
55
|
//# sourceMappingURL=useNativeFunction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNativeFunction.d.ts","sourceRoot":"","sources":["../../src/hooks/useNativeFunction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useNativeFunction.d.ts","sourceRoot":"","sources":["../../src/hooks/useNativeFunction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IACrE,2BAA2B;IAC3B,IAAI,EAAE,KAAK,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3E,2CAA2C;IAC3C,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,yCAAyC;IACzC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,sBAAsB;IACtB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,oBAAoB,EACpE,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,GACzC,uBAAuB,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,OAAO,EAC3C,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,33 +1,4 @@
|
|
|
1
1
|
import { useState, useCallback } from "react";
|
|
2
|
-
/**
|
|
3
|
-
* Hook for calling Channel.io native functions from WAM
|
|
4
|
-
*
|
|
5
|
-
* @param options - Native function call options
|
|
6
|
-
* @returns Object with call function and state
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* function MessageWidget() {
|
|
11
|
-
* const { call, loading } = useNativeFunction<void>({
|
|
12
|
-
* name: 'sendMessage',
|
|
13
|
-
* });
|
|
14
|
-
*
|
|
15
|
-
* const handleSend = async () => {
|
|
16
|
-
* await call({
|
|
17
|
-
* channelId: '...',
|
|
18
|
-
* groupId: '...',
|
|
19
|
-
* content: 'Hello from WAM!',
|
|
20
|
-
* });
|
|
21
|
-
* };
|
|
22
|
-
*
|
|
23
|
-
* return (
|
|
24
|
-
* <button onClick={handleSend} disabled={loading}>
|
|
25
|
-
* Send Message
|
|
26
|
-
* </button>
|
|
27
|
-
* );
|
|
28
|
-
* }
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
2
|
export function useNativeFunction(options) {
|
|
32
3
|
const [loading, setLoading] = useState(false);
|
|
33
4
|
const [error, setError] = useState(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNativeFunction.js","sourceRoot":"","sources":["../../src/hooks/useNativeFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useNativeFunction.js","sourceRoot":"","sources":["../../src/hooks/useNativeFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAkE9C,MAAM,UAAU,iBAAiB,CAC/B,OAAiC;IAEjC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAW,IAAI,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG,WAAW,CACtB,KAAK,EAAE,MAA+B,EAAc,EAAE;QACpD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAI;gBAC7C,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM;aACP,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,CAAC;YAChB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChB,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,IAAI,CAAC,CACf,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNativeFunction.test.d.ts","sourceRoot":"","sources":["../../src/hooks/useNativeFunction.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { describe, expectTypeOf, it } from "vitest";
|
|
2
|
+
import { useNativeFunction } from "./useNativeFunction.js";
|
|
3
|
+
describe("useNativeFunction types", () => {
|
|
4
|
+
it("infers OAuth flow parameters and results while preserving explicit result types", () => {
|
|
5
|
+
// Typechecked as a component without invoking React hooks outside a renderer.
|
|
6
|
+
function FlowSettings() {
|
|
7
|
+
const resume = useNativeFunction({ name: "resumeOAuthFlow" });
|
|
8
|
+
expectTypeOf(resume.call).parameter(0).toEqualTypeOf();
|
|
9
|
+
expectTypeOf(resume.data).toEqualTypeOf();
|
|
10
|
+
void resume.call({ flowId: "flow-1", resumeNonce: "nonce" });
|
|
11
|
+
// @ts-expect-error The Native requires the opaque flow ID.
|
|
12
|
+
void resume.call({});
|
|
13
|
+
// @ts-expect-error Manager identity comes from the authenticated session.
|
|
14
|
+
void resume.call({ flowId: "flow-1", managerId: "manager-2" });
|
|
15
|
+
const custom = useNativeFunction({ name: "customNative" });
|
|
16
|
+
expectTypeOf(custom.data).toEqualTypeOf();
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
void FlowSettings;
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=useNativeFunction.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNativeFunction.test.js","sourceRoot":"","sources":["../../src/hooks/useNativeFunction.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,8EAA8E;QAC9E,SAAS,YAAY;YACnB,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC9D,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAGhD,CAAC;YACL,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAgC,CAAC;YACxE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7D,2DAA2D;YAC3D,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,0EAA0E;YAC1E,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,iBAAiB,CAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YAC5E,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAA0B,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,YAAY,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./types/index.js";
|
|
2
|
+
export type { NativeOAuthFlow, NativeGetOAuthFlowParams, NativeResumeOAuthFlowParams, NativeCancelOAuthFlowParams, NativeOAuthFlowResult, } from "@channel.io/app-sdk-core";
|
|
2
3
|
export * from "./hooks/index.js";
|
|
3
4
|
export * from "./components/index.js";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,kBAAkB,CAAC;AASjC,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@channel.io/app-sdk-wam",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "React SDK for Channel.io WAM (Web App Module)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@channel.io/app-sdk-core": "0.
|
|
19
|
+
"@channel.io/app-sdk-core": "0.26.0"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
22
|
"react": ">=17.0.0"
|