@doordeck/headless-react-native-sdk 0.86.0 → 1.0.8

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 (30) hide show
  1. package/HeadlessReactNativeSdk.podspec +17 -23
  2. package/README.md +9 -0
  3. package/android/build.gradle +7 -7
  4. package/android/generated/jni/CMakeLists.txt +1 -9
  5. package/android/generated/jni/react/renderer/components/RNHeadlessReactNativeSdkSpec/RNHeadlessReactNativeSdkSpecJSI.h +66 -108
  6. package/android/gradle.properties +4 -4
  7. package/android/src/main/java/com/doordeck/headlessreactnativesdk/HeadlessReactNativeSdkModule.kt +25 -23
  8. package/android/src/main/java/com/doordeck/headlessreactnativesdk/HeadlessReactNativeSdkPackage.kt +5 -6
  9. package/ios/HeadlessReactNativeSdk.h +1 -1
  10. package/ios/HeadlessReactNativeSdk.mm +8 -0
  11. package/ios/HeadlessReactNativeSdkImpl.swift +103 -77
  12. package/ios/generated/{RNHeadlessReactNativeSdkSpecJSI.h → ReactCodegen/RNHeadlessReactNativeSdkSpecJSI.h} +66 -108
  13. package/lib/commonjs/NativeHeadlessReactNativeSdk.js.map +1 -1
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/package.json +1 -0
  16. package/lib/module/NativeHeadlessReactNativeSdk.js.map +1 -1
  17. package/lib/module/index.js.map +1 -1
  18. package/lib/module/package.json +1 -0
  19. package/lib/typescript/commonjs/src/NativeHeadlessReactNativeSdk.d.ts.map +1 -1
  20. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  21. package/lib/typescript/module/src/NativeHeadlessReactNativeSdk.d.ts.map +1 -1
  22. package/lib/typescript/module/src/index.d.ts +1 -1
  23. package/lib/typescript/module/src/index.d.ts.map +1 -1
  24. package/package.json +32 -52
  25. package/src/NativeHeadlessReactNativeSdk.ts +8 -8
  26. package/src/index.tsx +13 -8
  27. package/android/generated/jni/react/renderer/components/RNHeadlessReactNativeSdkSpec/RNHeadlessReactNativeSdkSpecJSI-generated.cpp +0 -68
  28. package/ios/generated/RNHeadlessReactNativeSdkSpecJSI-generated.cpp +0 -68
  29. /package/ios/generated/{RNHeadlessReactNativeSdkSpec → ReactCodegen/RNHeadlessReactNativeSdkSpec}/RNHeadlessReactNativeSdkSpec-generated.mm +0 -0
  30. /package/ios/generated/{RNHeadlessReactNativeSdkSpec → ReactCodegen/RNHeadlessReactNativeSdkSpec}/RNHeadlessReactNativeSdkSpec.h +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doordeck/headless-react-native-sdk",
3
- "version": "0.86.0",
3
+ "version": "1.0.8",
4
4
  "description": "Doordeck React Native headless SDK",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
@@ -42,7 +42,6 @@
42
42
  "typecheck": "tsc",
43
43
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
44
44
  "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
45
- "prepare": "bob build",
46
45
  "release": "release-it"
47
46
  },
48
47
  "keywords": [
@@ -52,52 +51,58 @@
52
51
  ],
53
52
  "repository": {
54
53
  "type": "git",
55
- "url": "git+https://github.com/doordeck/doordeck-headless-sdk.git"
54
+ "url": "git+https://github.com/doordeck/doordeck-headless-sdk-react-native.git"
56
55
  },
57
56
  "author": "Doordeck <developers@doordeck.com> (https://doordeck.com)",
58
57
  "license": "MIT",
59
58
  "bugs": {
60
- "url": "https://github.com/doordeck/doordeck-headless-sdk/issues"
59
+ "url": "https://github.com/doordeck/doordeck-headless-sdk-react-native/issues"
61
60
  },
62
- "homepage": "https://github.com/doordeck/doordeck-headless-sdk#readme",
61
+ "homepage": "https://github.com/doordeck/doordeck-headless-sdk-react-native#readme",
63
62
  "publishConfig": {
64
63
  "registry": "https://registry.npmjs.org/"
65
64
  },
66
65
  "devDependencies": {
67
- "@commitlint/config-conventional": "^17.0.2",
68
- "@evilmartians/lefthook": "^1.5.0",
69
- "@react-native-community/cli": "15.0.1",
70
- "@react-native/eslint-config": "^0.73.1",
71
- "@release-it/conventional-changelog": "^9.0.2",
72
- "@types/jest": "^29.5.5",
73
- "@types/react": "^18.2.44",
74
- "commitlint": "^17.0.2",
75
- "del-cli": "^5.1.0",
76
- "eslint": "^8.51.0",
77
- "eslint-config-prettier": "^9.0.0",
66
+ "@commitlint/config-conventional": "^21.2.0",
67
+ "@evilmartians/lefthook": "^2.1.10",
68
+ "@react-native-community/cli": "20.2.0",
69
+ "@react-native/eslint-config": "0.86.2",
70
+ "@react-native/jest-preset": "0.86.2",
71
+ "@release-it/conventional-changelog": "^12.0.0",
72
+ "@types/jest": "^29.5.13",
73
+ "@types/react": "^19.2.0",
74
+ "commitlint": "^21.2.0",
75
+ "del-cli": "^7.0.0",
76
+ "eslint": "^9.39.5",
77
+ "eslint-config-prettier": "^10.1.8",
78
78
  "eslint-plugin-prettier": "^5.0.1",
79
79
  "jest": "^29.7.0",
80
80
  "prettier": "^3.0.3",
81
- "react": "18.3.1",
82
- "react-native": "0.77.1",
83
- "react-native-builder-bob": "^0.37.0",
84
- "release-it": "^17.10.0",
85
- "turbo": "^1.10.7",
86
- "typescript": "^5.2.2"
81
+ "react": "19.2.8",
82
+ "react-native": "0.86.2",
83
+ "react-native-builder-bob": "^0.43.0",
84
+ "release-it": "^21.0.0",
85
+ "turbo": "^2.10.1",
86
+ "typescript": "^6.0.3"
87
87
  },
88
88
  "resolutions": {
89
- "@types/react": "^18.2.44"
89
+ "@types/react": "^19.2.0",
90
+ "lodash": "^4.18.0",
91
+ "on-headers": "^1.1.0",
92
+ "tmp": "^0.2.6",
93
+ "@octokit/plugin-paginate-rest": "^11.4.1",
94
+ "fast-xml-parser": "^5.7.0"
90
95
  },
91
96
  "peerDependencies": {
92
- "react": "*",
93
- "react-native": "*"
97
+ "react": ">=19.0.0",
98
+ "react-native": ">=0.86.0"
94
99
  },
95
100
  "workspaces": [
96
101
  "example"
97
102
  ],
98
103
  "packageManager": "yarn@3.6.1",
99
104
  "jest": {
100
- "preset": "react-native",
105
+ "preset": "@react-native/jest-preset",
101
106
  "modulePathIgnorePatterns": [
102
107
  "<rootDir>/example/node_modules",
103
108
  "<rootDir>/lib/"
@@ -125,30 +130,6 @@
125
130
  }
126
131
  }
127
132
  },
128
- "eslintConfig": {
129
- "root": true,
130
- "extends": [
131
- "@react-native",
132
- "prettier"
133
- ],
134
- "rules": {
135
- "react/react-in-jsx-scope": "off",
136
- "prettier/prettier": [
137
- "error",
138
- {
139
- "quoteProps": "consistent",
140
- "singleQuote": true,
141
- "tabWidth": 2,
142
- "trailingComma": "es5",
143
- "useTabs": false
144
- }
145
- ]
146
- }
147
- },
148
- "eslintIgnore": [
149
- "node_modules/",
150
- "lib/"
151
- ],
152
133
  "prettier": {
153
134
  "quoteProps": "consistent",
154
135
  "singleQuote": true,
@@ -176,8 +157,7 @@
176
157
  [
177
158
  "typescript",
178
159
  {
179
- "project": "tsconfig.build.json",
180
- "esm": true
160
+ "project": "tsconfig.build.json"
181
161
  }
182
162
  ]
183
163
  ]
@@ -1,5 +1,5 @@
1
- import type {TurboModule} from 'react-native';
2
- import {TurboModuleRegistry} from 'react-native';
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
3
 
4
4
  export interface Spec extends TurboModule {
5
5
  /**
@@ -14,7 +14,7 @@ export interface Spec extends TurboModule {
14
14
  */
15
15
  login(
16
16
  email: string,
17
- password: string,
17
+ password: string
18
18
  ): Promise<AssistedRegisterEphemeralKeyResponse>;
19
19
 
20
20
  /**
@@ -27,7 +27,7 @@ export interface Spec extends TurboModule {
27
27
  * 60-second throttle for this operation
28
28
  */
29
29
  setAuthToken(
30
- authToken: string,
30
+ authToken: string
31
31
  ): Promise<AssistedRegisterEphemeralKeyResponse>;
32
32
 
33
33
  /**
@@ -41,7 +41,7 @@ export interface Spec extends TurboModule {
41
41
  /**
42
42
  * @param code - code sent for verification
43
43
  */
44
- verify(code: string): Promise<void>
44
+ verify(code: string): Promise<void>;
45
45
 
46
46
  /**
47
47
  * Logs out the user inside the SDK.
@@ -49,7 +49,7 @@ export interface Spec extends TurboModule {
49
49
  *
50
50
  * @return a Promise when it's done.
51
51
  */
52
- logout(): Promise<void>
52
+ logout(): Promise<void>;
53
53
 
54
54
  /**
55
55
  * @param tileId - tile UUID usually scanned from a QR code or obtained from an NFC tag
@@ -72,7 +72,7 @@ export type TileLocksResponse = {
72
72
 
73
73
  export type AssistedRegisterEphemeralKeyResponse = {
74
74
  requiresVerification: boolean;
75
- }
75
+ };
76
76
 
77
77
  export type UserDetailsResponse = {
78
78
  userId?: string;
@@ -82,6 +82,6 @@ export type UserDetailsResponse = {
82
82
  emailVerified: boolean;
83
83
  certificateChainAboutToExpire: boolean;
84
84
  tokenAboutToExpire: boolean;
85
- }
85
+ };
86
86
 
87
87
  export default TurboModuleRegistry.getEnforcing<Spec>('HeadlessReactNativeSdk');
package/src/index.tsx CHANGED
@@ -1,16 +1,19 @@
1
1
  import HeadlessReactNativeSdk, {
2
2
  type AssistedRegisterEphemeralKeyResponse,
3
- type TileLocksResponse, type UserDetailsResponse,
3
+ type TileLocksResponse,
4
+ type UserDetailsResponse,
4
5
  } from './NativeHeadlessReactNativeSdk';
5
6
 
6
- export function login(email: string, password: string): Promise<AssistedRegisterEphemeralKeyResponse> {
7
- return HeadlessReactNativeSdk.login(
8
- email,
9
- password,
10
- );
7
+ export function login(
8
+ email: string,
9
+ password: string
10
+ ): Promise<AssistedRegisterEphemeralKeyResponse> {
11
+ return HeadlessReactNativeSdk.login(email, password);
11
12
  }
12
13
 
13
- export function setAuthToken(authToken: string): Promise<AssistedRegisterEphemeralKeyResponse> {
14
+ export function setAuthToken(
15
+ authToken: string
16
+ ): Promise<AssistedRegisterEphemeralKeyResponse> {
14
17
  return HeadlessReactNativeSdk.setAuthToken(authToken);
15
18
  }
16
19
 
@@ -26,7 +29,9 @@ export function logout(): Promise<void> {
26
29
  return HeadlessReactNativeSdk.logout();
27
30
  }
28
31
 
29
- export function getLocksBelongingToTile(tileId: string): Promise<TileLocksResponse> {
32
+ export function getLocksBelongingToTile(
33
+ tileId: string
34
+ ): Promise<TileLocksResponse> {
30
35
  return HeadlessReactNativeSdk.getLocksBelongingToTile(tileId);
31
36
  }
32
37
 
@@ -1,68 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GenerateModuleCpp.js
8
- */
9
-
10
- #include "RNHeadlessReactNativeSdkSpecJSI.h"
11
-
12
- namespace facebook::react {
13
-
14
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_login(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
15
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->login(
16
- rt,
17
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
18
- count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
19
- );
20
- }
21
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_setAuthToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
22
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->setAuthToken(
23
- rt,
24
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
25
- );
26
- }
27
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_getUserDetails(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
28
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->getUserDetails(
29
- rt
30
- );
31
- }
32
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_verify(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
33
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->verify(
34
- rt,
35
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
36
- );
37
- }
38
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_logout(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
39
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->logout(
40
- rt
41
- );
42
- }
43
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_getLocksBelongingToTile(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
44
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->getLocksBelongingToTile(
45
- rt,
46
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
47
- );
48
- }
49
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_unlockDevice(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
50
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->unlockDevice(
51
- rt,
52
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
53
- );
54
- }
55
-
56
- NativeHeadlessReactNativeSdkCxxSpecJSI::NativeHeadlessReactNativeSdkCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
57
- : TurboModule("HeadlessReactNativeSdk", jsInvoker) {
58
- methodMap_["login"] = MethodMetadata {2, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_login};
59
- methodMap_["setAuthToken"] = MethodMetadata {1, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_setAuthToken};
60
- methodMap_["getUserDetails"] = MethodMetadata {0, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_getUserDetails};
61
- methodMap_["verify"] = MethodMetadata {1, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_verify};
62
- methodMap_["logout"] = MethodMetadata {0, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_logout};
63
- methodMap_["getLocksBelongingToTile"] = MethodMetadata {1, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_getLocksBelongingToTile};
64
- methodMap_["unlockDevice"] = MethodMetadata {1, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_unlockDevice};
65
- }
66
-
67
-
68
- } // namespace facebook::react
@@ -1,68 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GenerateModuleCpp.js
8
- */
9
-
10
- #include "RNHeadlessReactNativeSdkSpecJSI.h"
11
-
12
- namespace facebook::react {
13
-
14
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_login(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
15
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->login(
16
- rt,
17
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
18
- count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
19
- );
20
- }
21
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_setAuthToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
22
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->setAuthToken(
23
- rt,
24
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
25
- );
26
- }
27
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_getUserDetails(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
28
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->getUserDetails(
29
- rt
30
- );
31
- }
32
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_verify(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
33
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->verify(
34
- rt,
35
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
36
- );
37
- }
38
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_logout(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
39
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->logout(
40
- rt
41
- );
42
- }
43
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_getLocksBelongingToTile(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
44
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->getLocksBelongingToTile(
45
- rt,
46
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
47
- );
48
- }
49
- static jsi::Value __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_unlockDevice(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
50
- return static_cast<NativeHeadlessReactNativeSdkCxxSpecJSI *>(&turboModule)->unlockDevice(
51
- rt,
52
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
53
- );
54
- }
55
-
56
- NativeHeadlessReactNativeSdkCxxSpecJSI::NativeHeadlessReactNativeSdkCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
57
- : TurboModule("HeadlessReactNativeSdk", jsInvoker) {
58
- methodMap_["login"] = MethodMetadata {2, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_login};
59
- methodMap_["setAuthToken"] = MethodMetadata {1, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_setAuthToken};
60
- methodMap_["getUserDetails"] = MethodMetadata {0, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_getUserDetails};
61
- methodMap_["verify"] = MethodMetadata {1, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_verify};
62
- methodMap_["logout"] = MethodMetadata {0, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_logout};
63
- methodMap_["getLocksBelongingToTile"] = MethodMetadata {1, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_getLocksBelongingToTile};
64
- methodMap_["unlockDevice"] = MethodMetadata {1, __hostFunction_NativeHeadlessReactNativeSdkCxxSpecJSI_unlockDevice};
65
- }
66
-
67
-
68
- } // namespace facebook::react