@hanwha-ss1/plugin 0.1.9 → 0.2.1

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/README.md CHANGED
@@ -12,7 +12,7 @@ npx cap sync
12
12
  import { HanwhaPlugin } from "@hanwha-ss1/plugin"
13
13
 
14
14
  // 앱 실행
15
- await HanwhaPlugin.execute({
15
+ await HanwhaPlugin.executeApp({
16
16
  package: "패키지명"
17
17
  })
18
18
 
@@ -7,7 +7,7 @@ import android.view.WindowManager;
7
7
 
8
8
  public class Bio {
9
9
 
10
- public interface OnResult {
10
+ public interface OnBioResult {
11
11
  void onSuccess();
12
12
  void onFail(String error);
13
13
  }
@@ -22,7 +22,7 @@ public class Bio {
22
22
  *
23
23
  * @param activity
24
24
  */
25
- public void authenticate(Activity activity, OnResult result) {
25
+ public void authenticate(Activity activity, OnBioResult result) {
26
26
  BioAuthManager.getInstance().authenticate(activity, result);
27
27
  }
28
28
  }
@@ -116,7 +116,7 @@ public class BioAuthManager {
116
116
  }
117
117
 
118
118
 
119
- public void authenticate(Activity activity, Bio.OnResult callback) {
119
+ public void authenticate(Activity activity, Bio.OnBioResult callback) {
120
120
 
121
121
  keyManager = KeyManager.getInstance();
122
122
  // api 28 ( ANDROID 9.0 ) 이상은 biometricPrompt 사용
@@ -25,7 +25,7 @@ public class BioPlugin extends Plugin{
25
25
  if(implementation == null) {
26
26
  implementation = new Bio();
27
27
  }
28
- implementation.authenticate(getActivity(), new Bio.OnResult() {
28
+ implementation.authenticate(getActivity(), new Bio.OnBioResult() {
29
29
  @Override
30
30
  public void onSuccess() {
31
31
  JSObject ret = new JSObject();
@@ -12,7 +12,7 @@ public class Linker {
12
12
  return value;
13
13
  }
14
14
 
15
- public interface OnResult {
15
+ public interface OnLinkerResult {
16
16
  void onSuccess();
17
17
  void onFail();
18
18
  }
@@ -23,7 +23,7 @@ public class Linker {
23
23
  * @param activity
24
24
  * @param packageName 패키지명
25
25
  */
26
- public void execute(Activity activity, String packageName, OnResult result) {
26
+ public void execute(Activity activity, String packageName, OnLinkerResult result) {
27
27
  try{
28
28
  Intent intent = activity.getPackageManager().getLaunchIntentForPackage(packageName);
29
29
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -21,12 +21,12 @@ public class LinkerPlugin extends Plugin{
21
21
  }
22
22
 
23
23
  @PluginMethod
24
- public void execute(PluginCall call) {
24
+ public void executeApp(PluginCall call) {
25
25
  String packageName = call.getString("package");
26
26
  if(implementation == null) {
27
27
  implementation = new Linker();
28
28
  }
29
- implementation.execute(getActivity(), packageName, new Linker.OnResult() {
29
+ implementation.execute(getActivity(), packageName, new Linker.OnLinkerResult() {
30
30
  @Override
31
31
  public void onSuccess() {
32
32
  JSObject ret = new JSObject();
@@ -3,7 +3,7 @@ export interface Plugin {
3
3
  * 앱 실행
4
4
  * @param options package : 패키지명
5
5
  */
6
- execute(options: {
6
+ executeApp(options: {
7
7
  package: string;
8
8
  }): Promise<{
9
9
  value: string;
@@ -26,12 +26,9 @@ export interface Plugin {
26
26
  value: string;
27
27
  }>;
28
28
  /**
29
- * 캡쳐 방지
30
- * @param options disabled : 캡쳐 방지 여부 (true, false)
29
+ * TouchID, FaceID
31
30
  */
32
- setScreenCaptureDisabled(options: {
33
- disabled: string;
34
- }): Promise<{
31
+ auth(): Promise<{
35
32
  value: string;
36
33
  }>;
37
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface Plugin {\n /**\n * 앱 실행\n * @param options package : 패키지명\n */\n execute(options: {\n package: string;\n }): Promise<{ value: string }>;\n\n /**\n * 연락처 저장\n * @param options name : 성명\n * @param options phone : 전화번호\n * @param options email : 이메일\n * @param options dept : 소속\n * @param options ext : 내선번호\n */\n addContact(options: {\n name: string;\n phone: string;\n email: string;\n dept: string;\n ext: string;\n }): Promise<{ value: string }>;\n\n\n /**\n * 캡쳐 방지\n * @param options disabled : 캡쳐 방지 여부 (true, false)\n */\n setScreenCaptureDisabled(options: {\n disabled: string;\n }): Promise<{ value: string }>;\n}\n"]}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface Plugin {\n /**\n * 앱 실행\n * @param options package : 패키지명\n */\n executeApp(options: {\n package: string;\n }): Promise<{ value: string }>;\n\n /**\n * 연락처 저장\n * @param options name : 성명\n * @param options phone : 전화번호\n * @param options email : 이메일\n * @param options dept : 소속\n * @param options ext : 내선번호\n */\n addContact(options: {\n name: string;\n phone: string;\n email: string;\n dept: string;\n ext: string;\n }): Promise<{ value: string }>;\n\n /**\n * TouchID, FaceID\n */\n auth(): Promise<{ value: string }>;\n}\n\n"]}
package/dist/esm/web.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { WebPlugin } from '@capacitor/core';
2
2
  import type { Plugin } from './definitions';
3
3
  export declare class PluginWeb extends WebPlugin implements Plugin {
4
- execute(): Promise<any>;
4
+ executeApp(): Promise<any>;
5
5
  addContact(): Promise<any>;
6
- setScreenCaptureDisabled(): Promise<any>;
6
+ auth(): Promise<any>;
7
7
  }
package/dist/esm/web.js CHANGED
@@ -1,13 +1,13 @@
1
1
  /* eslint-disable @typescript-eslint/no-unused-vars */
2
2
  import { WebPlugin } from '@capacitor/core';
3
3
  export class PluginWeb extends WebPlugin {
4
- async execute() {
4
+ async executeApp() {
5
5
  return { results: {} };
6
6
  }
7
7
  async addContact() {
8
8
  return { results: {} };
9
9
  }
10
- async setScreenCaptureDisabled() {
10
+ async auth() {
11
11
  return { results: {} };
12
12
  }
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,OAAO,SAAU,SAAQ,SAAS;IAEtC,KAAK,CAAC,OAAO;QACX,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nimport type { Plugin } from './definitions';\nexport class PluginWeb extends WebPlugin implements Plugin {\n\n async execute(): Promise<any> {\n return { results: {} };\n }\n\n async addContact(): Promise<any> {\n return { results: {} };\n }\n\n async setScreenCaptureDisabled(): Promise<any> {\n return { results: {} };\n }\n}\n"]}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,OAAO,SAAU,SAAQ,SAAS;IAEtC,KAAK,CAAC,UAAU;QACd,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nimport type { Plugin } from './definitions';\nexport class PluginWeb extends WebPlugin implements Plugin {\n\n async executeApp(): Promise<any> {\n return { results: {} };\n }\n\n async addContact(): Promise<any> {\n return { results: {} };\n }\n\n async auth(): Promise<any> {\n return { results: {} };\n }\n}\n"]}
@@ -10,13 +10,13 @@ const HanwhaPlugin = core.registerPlugin('Plugin', {
10
10
 
11
11
  /* eslint-disable @typescript-eslint/no-unused-vars */
12
12
  class PluginWeb extends core.WebPlugin {
13
- async execute() {
13
+ async executeApp() {
14
14
  return { results: {} };
15
15
  }
16
16
  async addContact() {
17
17
  return { results: {} };
18
18
  }
19
- async setScreenCaptureDisabled() {
19
+ async auth() {
20
20
  return { results: {} };
21
21
  }
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst HanwhaPlugin = registerPlugin('Plugin', {\n web: () => import('./web').then(m => new m.PluginWeb()),\n});\nexport * from './definitions';\nexport { HanwhaPlugin };\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nexport class PluginWeb extends WebPlugin {\n async execute() {\n return { results: {} };\n }\n async addContact() {\n return { results: {} };\n }\n async setScreenCaptureDisabled() {\n return { results: {} };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;;;AACK,MAAC,YAAY,GAAGA,mBAAc,CAAC,QAAQ,EAAE;AAC9C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AAC3D,CAAC;;ACHD;AAEO,MAAM,SAAS,SAASC,cAAS,CAAC;AACzC,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,wBAAwB,GAAG;AACrC,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL;;;;;;;;;"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst HanwhaPlugin = registerPlugin('Plugin', {\n web: () => import('./web').then(m => new m.PluginWeb()),\n});\nexport * from './definitions';\nexport { HanwhaPlugin };\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nexport class PluginWeb extends WebPlugin {\n async executeApp() {\n return { results: {} };\n }\n async addContact() {\n return { results: {} };\n }\n async auth() {\n return { results: {} };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;;;AACK,MAAC,YAAY,GAAGA,mBAAc,CAAC,QAAQ,EAAE;AAC9C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AAC3D,CAAC;;ACHD;AAEO,MAAM,SAAS,SAASC,cAAS,CAAC;AACzC,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/B,KAAK;AACL;;;;;;;;;"}
package/dist/plugin.js CHANGED
@@ -7,13 +7,13 @@ var capacitorContact = (function (exports, core) {
7
7
 
8
8
  /* eslint-disable @typescript-eslint/no-unused-vars */
9
9
  class PluginWeb extends core.WebPlugin {
10
- async execute() {
10
+ async executeApp() {
11
11
  return { results: {} };
12
12
  }
13
13
  async addContact() {
14
14
  return { results: {} };
15
15
  }
16
- async setScreenCaptureDisabled() {
16
+ async auth() {
17
17
  return { results: {} };
18
18
  }
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst HanwhaPlugin = registerPlugin('Plugin', {\n web: () => import('./web').then(m => new m.PluginWeb()),\n});\nexport * from './definitions';\nexport { HanwhaPlugin };\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nexport class PluginWeb extends WebPlugin {\n async execute() {\n return { results: {} };\n }\n async addContact() {\n return { results: {} };\n }\n async setScreenCaptureDisabled() {\n return { results: {} };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,YAAY,GAAGA,mBAAc,CAAC,QAAQ,EAAE;IAC9C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;;ICHD;IAEO,MAAM,SAAS,SAASC,cAAS,CAAC;IACzC,IAAI,MAAM,OAAO,GAAG;IACpB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,UAAU,GAAG;IACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,wBAAwB,GAAG;IACrC,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst HanwhaPlugin = registerPlugin('Plugin', {\n web: () => import('./web').then(m => new m.PluginWeb()),\n});\nexport * from './definitions';\nexport { HanwhaPlugin };\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { WebPlugin } from '@capacitor/core';\nexport class PluginWeb extends WebPlugin {\n async executeApp() {\n return { results: {} };\n }\n async addContact() {\n return { results: {} };\n }\n async auth() {\n return { results: {} };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,YAAY,GAAGA,mBAAc,CAAC,QAAQ,EAAE;IAC9C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;;ICHD;IAEO,MAAM,SAAS,SAASC,cAAS,CAAC;IACzC,IAAI,MAAM,UAAU,GAAG;IACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,UAAU,GAAG;IACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL,IAAI,MAAM,IAAI,GAAG;IACjB,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC/B,KAAK;IACL;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,15 @@
1
+ import Foundation
2
+ import Capacitor
3
+ import Contacts
4
+ /**
5
+ * Please read the Capacitor iOS Plugin Development Guide
6
+ * here: https://capacitorjs.com/docs/plugins/ios
7
+ */
8
+ public class AuthPlugin: CAPPlugin {
9
+ private let implementation = AuthService()
10
+
11
+ @objc func auth(_ call: CAPPluginCall) {
12
+ implementation.authService(call: call)
13
+ }
14
+ }
15
+
@@ -0,0 +1,59 @@
1
+ import Foundation
2
+ import UIKit
3
+ import LocalAuthentication
4
+ import Capacitor
5
+
6
+ public class AuthService: NSObject {
7
+ public func authService(call: CAPPluginCall) {
8
+
9
+ let context = LAContext()
10
+ var error: NSError?
11
+
12
+ // Face ID 또는 Touch ID 사용 가능 여부 확인
13
+ if context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error) {
14
+ let reason = "생체 인식을 사용하여 로그인합니다."
15
+
16
+ // Face ID 또는 Touch ID 인증 시도
17
+ context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: reason) { success, error in
18
+ DispatchQueue.main.async {
19
+ if success {
20
+ // 인증 성공
21
+ call.resolve(self.settingResult(result: true, message: "생체 인식에 성공 하였습니다."))
22
+ } else {
23
+ // 인증 실패
24
+ if let error = error as NSError? {
25
+ let message: String
26
+ switch error.code {
27
+ case LAError.authenticationFailed.rawValue:
28
+ message = "인증에 실패했습니다."
29
+ case LAError.userCancel.rawValue:
30
+ message = "사용자가 취소했습니다."
31
+ case LAError.userFallback.rawValue:
32
+ message = "비밀번호를 입력하여 로그인하세요."
33
+ case LAError.biometryNotAvailable.rawValue:
34
+ message = "생체 인식을 사용할 수 없습니다."
35
+ case LAError.biometryNotEnrolled.rawValue:
36
+ message = "생체 인식이 등록되어 있지 않습니다."
37
+ case LAError.biometryLockout.rawValue:
38
+ message = "생체 인식이 잠겼습니다. 잠시 후 다시 시도하세요."
39
+ default:
40
+ message = "생체 인식에 실패했습니다."
41
+ }
42
+ call.resolve(self.settingResult(result: false, message: message))
43
+ }
44
+ }
45
+ }
46
+ }
47
+ } else {
48
+ call.resolve(self.settingResult(result: false, message: "생체 인식을 사용할 수 없습니다."))
49
+ }
50
+
51
+ }
52
+
53
+ func settingResult(result: Bool, message: String) -> [String: Any] {
54
+ return [
55
+ "result": result,
56
+ "message": message
57
+ ]
58
+ }
59
+ }
@@ -1,13 +1,9 @@
1
1
  import Foundation
2
2
  import Capacitor
3
3
  import Contacts
4
- /**
5
- * Please read the Capacitor iOS Plugin Development Guide
6
- * here: https://capacitorjs.com/docs/plugins/ios
7
- */
8
- @objc(Plugin)
9
- public class Plugin: CAPPlugin {
10
- private let implementation = Contact()
4
+
5
+ public class ContactPlugin: CAPPlugin {
6
+ private let implementation = ContactService()
11
7
 
12
8
  @objc func addContact(_ call: CAPPluginCall) {
13
9
  let name = call.getString("name") ?? ""
@@ -113,32 +109,5 @@ public class Plugin: CAPPlugin {
113
109
 
114
110
  return result
115
111
  }
116
- //
117
- // let store = CNContactStore()
118
- // let keysToFetch: [CNKeyDescriptor] = [CNContactGivenNameKey as CNKeyDescriptor, CNContactFamilyNameKey as CNKeyDescriptor, CNContactPhoneNumbersKey as CNKeyDescriptor]
119
- //
120
- // // 전화번호에 일치하는 연락처를 검색하기 위한 NSPredicate를 생성
121
- // let predicate = CNContact.predicateForContacts(withIdentifiers: [phoneNumber])
122
- //
123
- // do {
124
- // // 모든 연락처 가져오기
125
- // let allContacts = try store.unifiedContacts(matching: predicate, keysToFetch: keysToFetch)
126
- //
127
- // // 전화번호와 일치하는 연락처를 선택
128
- // for contact in allContacts {
129
- // for phoneNumberValue in contact.phoneNumbers {
130
- // let number = phoneNumberValue.value
131
- // if number.stringValue.contains(phoneNumber) {
132
- // matchingContacts.append(contact)
133
- // break
134
- // }
135
- // }
136
- // }
137
- // } catch {
138
- // // 검색 중 오류 처리
139
- // }
140
- //
141
- // return matchingContacts
142
- // }
143
112
  }
144
113
 
@@ -2,7 +2,7 @@ import Foundation
2
2
  import UIKit
3
3
 
4
4
 
5
- @objc public class Contact: NSObject {
5
+ @objc public class ContactService: NSObject {
6
6
  @objc public func echo(_ value: String) -> String {
7
7
  print(value)
8
8
  return value
@@ -3,6 +3,8 @@
3
3
 
4
4
  // Define the plugin using the CAP_PLUGIN Macro, and
5
5
  // each method the plugin supports using the CAP_PLUGIN_METHOD macro.
6
+
6
7
  CAP_PLUGIN(Plugin, "Plugin",
8
+ CAP_PLUGIN_METHOD(auth, CAPPluginReturnPromise);
7
9
  CAP_PLUGIN_METHOD(addContact, CAPPluginReturnPromise);
8
10
  )
@@ -0,0 +1,30 @@
1
+ import Foundation
2
+ import Capacitor
3
+ import Contacts
4
+ /**
5
+ * Please read the Capacitor iOS Plugin Development Guide
6
+ * here: https://capacitorjs.com/docs/plugins/ios
7
+ */
8
+ @objc(Plugin)
9
+ public class Plugin: CAPPlugin {
10
+
11
+ /**
12
+ 안드로이드에서만 사용
13
+ */
14
+ @objc func executeApp(_ call: CAPPluginCall) {
15
+ call.resolve([
16
+ "result": true,
17
+ "message": "완료"
18
+ ])
19
+ }
20
+
21
+ @objc func auth(_ call: CAPPluginCall) {
22
+ AuthPlugin().auth(call)
23
+ }
24
+
25
+ @objc func addContact(_ call: CAPPluginCall) {
26
+ ContactPlugin().addContact(call)
27
+ }
28
+
29
+ }
30
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanwha-ss1/plugin",
3
- "version": "0.1.9",
3
+ "version": "0.2.1",
4
4
  "description": "Plugin",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",
File without changes