diff --git a/packages/mlkit-core/typings/objc!MLKitObjectDetection.d.ts b/packages/mlkit-core/typings/objc!MLKitObjectDetection.d.ts
index 6d7cf1b..3303a08 100644
--- a/packages/mlkit-core/typings/objc!MLKitObjectDetection.d.ts
+++ b/packages/mlkit-core/typings/objc!MLKitObjectDetection.d.ts
@@ -24,4 +24,8 @@ declare class MLKObjectDetectorOptions extends MLKCommonObjectDetectorOptions {
static alloc(): MLKObjectDetectorOptions; // inherited from NSObject
static new(): MLKObjectDetectorOptions; // inherited from NSObject
+ loadCustomModel(path: string) {
+ return MLKLocalModel *localModel =
+ [[MLKLocalModel alloc] initWithPath:path];
+ }
}
diff --git a/packages/mlkit-custom-image-labeling/.eslintrc.json b/packages/mlkit-custom-image-labeling/.eslintrc.json
new file mode 100644
index 0000000..53c06c8
--- /dev/null
+++ b/packages/mlkit-custom-image-labeling/.eslintrc.json
@@ -0,0 +1,18 @@
+{
+ "extends": ["../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*", "node_modules/**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.ts", "*.tsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.js", "*.jsx"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/packages/mlkit-custom-image-labeling/README.md b/packages/mlkit-custom-image-labeling/README.md
new file mode 100644
index 0000000..dfffcbc
--- /dev/null
+++ b/packages/mlkit-custom-image-labeling/README.md
@@ -0,0 +1,37 @@
+# @nativescript/mlkit-image-labeling
+
+A plugin that is used with [@nativescript/mlkit-core](../mlkit-core/) to enable Image Labeling and provide the [ImageLabelingResult](#imagelabelingresult) type for the image labeling event data.
+
+## Contents
+* [Installation](#installation)
+* [Use @nativescript/mlkit-image-labeling](#use-nativescriptmlkit-image-labeling)
+* [API](#api)
+ * [ImageLabelingResult](#imagelabelingresult)
+* [License](#license)
+
+## Installation
+
+```cli
+npm install @nativescript/mlkit-image-labeling
+```
+
+## Use @nativescript/mlkit-image-labeling
+
+For an example, read [Use @nativescript/mlkit-core](../mlkit-core#use-nativescriptmlkit-core) and [Image Labeling](../mlkit-core#image-labeling)
+
+## API
+
+### ImageLabelingResult
+
+The Image Labeling event data type.
+
+```ts
+interface ImageLabelingResult {
+ text?: string
+ confidence?: number;
+ index?: number;
+}
+```
+## License
+
+Apache License Version 2.0
diff --git a/packages/mlkit-custom-image-labeling/index.ts b/packages/mlkit-custom-image-labeling/index.ts
new file mode 100644
index 0000000..3b569ce
--- /dev/null
+++ b/packages/mlkit-custom-image-labeling/index.ts
@@ -0,0 +1,5 @@
+export interface ImageLabelingResult {
+ text?: string
+ confidence?: number;
+ index?: number;
+}
\ No newline at end of file
diff --git a/packages/mlkit-custom-image-labeling/package.json b/packages/mlkit-custom-image-labeling/package.json
new file mode 100644
index 0000000..be145ef
--- /dev/null
+++ b/packages/mlkit-custom-image-labeling/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "@nativescript/mlkit-image-labeling",
+ "version": "2.0.0",
+ "description": "NativeScript MLKit Image Labeling module",
+ "main": "index",
+ "typings": "index.d.ts",
+ "nativescript": {
+ "platforms": {
+ "ios": "6.0.0",
+ "android": "6.0.0"
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/NativeScript/mlkit.git"
+ },
+ "keywords": [
+ "NativeScript",
+ "JavaScript",
+ "TypeScript",
+ "iOS",
+ "Android"
+ ],
+ "author": {
+ "name": "NativeScript",
+ "email": "oss@nativescript.org"
+ },
+ "bugs": {
+ "url": "https://github.com/NativeScript/mlkit/issues"
+ },
+ "license": "Apache-2.0",
+ "homepage": "https://github.com/NativeScript/mlkit",
+ "readmeFilename": "README.md",
+ "bootstrapper": "@nativescript/plugin-seed"
+}
diff --git a/packages/mlkit-custom-image-labeling/platforms/android/include.gradle b/packages/mlkit-custom-image-labeling/platforms/android/include.gradle
new file mode 100644
index 0000000..6bc0586
--- /dev/null
+++ b/packages/mlkit-custom-image-labeling/platforms/android/include.gradle
@@ -0,0 +1,4 @@
+dependencies {
+implementation 'com.google.mlkit:object-detection-custom:17.0.0'
+implementation 'com.google.mlkit:linkfirebase:17.0.0'
+}
diff --git a/packages/mlkit-custom-image-labeling/platforms/ios/Podfile b/packages/mlkit-custom-image-labeling/platforms/ios/Podfile
new file mode 100644
index 0000000..051c5a4
--- /dev/null
+++ b/packages/mlkit-custom-image-labeling/platforms/ios/Podfile
@@ -0,0 +1,2 @@
+platform :ios, '11.0'
+pod 'GoogleMLKit/ImageLabeling', '4.0.0'
diff --git a/packages/mlkit-custom-image-labeling/project.json b/packages/mlkit-custom-image-labeling/project.json
new file mode 100644
index 0000000..7b01eab
--- /dev/null
+++ b/packages/mlkit-custom-image-labeling/project.json
@@ -0,0 +1,63 @@
+{
+ "name": "mlkit-image-labeling",
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
+ "projectType": "library",
+ "sourceRoot": "packages/mlkit-image-labeling",
+ "targets": {
+ "build": {
+ "executor": "@nrwl/js:tsc",
+ "options": {
+ "outputPath": "dist/packages/mlkit-image-labeling",
+ "tsConfig": "packages/mlkit-image-labeling/tsconfig.json",
+ "packageJson": "packages/mlkit-image-labeling/package.json",
+ "main": "packages/mlkit-image-labeling/index.ts",
+ "assets": [
+ "packages/mlkit-image-labeling/*.md",
+ "LICENSE",
+ {
+ "glob": "**/*",
+ "input": "packages/mlkit-image-labeling/platforms/",
+ "output": "./platforms/"
+ }
+ ]
+ },
+ "dependsOn": [
+ {
+ "target": "build.all",
+ "projects": "dependencies"
+ }
+ ]
+ },
+ "build.all": {
+ "executor": "nx:run-commands",
+ "options": {
+ "commands": ["node tools/scripts/build-finish.ts mlkit-image-labeling"],
+ "parallel": false
+ },
+ "outputs": ["{workspaceRoot}/dist/packages/mlkit-image-labeling"],
+ "dependsOn": [
+ {
+ "target": "build.all",
+ "projects": "dependencies"
+ },
+ {
+ "target": "build",
+ "projects": "self"
+ }
+ ]
+ },
+ "focus": {
+ "executor": "nx:run-commands",
+ "options": {
+ "commands": ["nx g @nativescript/plugin-tools:focus-packages mlkit-image-labeling"],
+ "parallel": false
+ }
+ },
+ "lint": {
+ "executor": "@nrwl/linter:eslint",
+ "options": {
+ "lintFilePatterns": ["packages/mlkit-image-labeling/**/*.ts"]
+ }
+ }
+ }
+}
diff --git a/packages/mlkit-custom-image-labeling/references.d.ts b/packages/mlkit-custom-image-labeling/references.d.ts
new file mode 100644
index 0000000..98c5393
--- /dev/null
+++ b/packages/mlkit-custom-image-labeling/references.d.ts
@@ -0,0 +1 @@
+///
\ No newline at end of file
diff --git a/packages/mlkit-custom-image-labeling/tsconfig.json b/packages/mlkit-custom-image-labeling/tsconfig.json
new file mode 100644
index 0000000..a2ef9cc
--- /dev/null
+++ b/packages/mlkit-custom-image-labeling/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "rootDir": "."
+ },
+ "exclude": ["**/*.spec.ts", "angular"],
+ "include": ["**/*.ts", "references.d.ts"]
+}
diff --git a/packages/mlkit-custom-object-detection/.eslintrc.json b/packages/mlkit-custom-object-detection/.eslintrc.json
new file mode 100644
index 0000000..53c06c8
--- /dev/null
+++ b/packages/mlkit-custom-object-detection/.eslintrc.json
@@ -0,0 +1,18 @@
+{
+ "extends": ["../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*", "node_modules/**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.ts", "*.tsx"],
+ "rules": {}
+ },
+ {
+ "files": ["*.js", "*.jsx"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/packages/mlkit-custom-object-detection/README.md b/packages/mlkit-custom-object-detection/README.md
new file mode 100644
index 0000000..bb3a0cd
--- /dev/null
+++ b/packages/mlkit-custom-object-detection/README.md
@@ -0,0 +1,73 @@
+# @nativescript/mlkit-custom-object-detection
+
+A plugin that is used with [@nativescript/mlkit-core](../mlkit-core/) to enable Custom Object Detection and provide the [ObjectResult](#objectresult) type for the object detection event data.
+
+## Contents
+* [Installation](#installation)
+* [Use @nativescript/mlkit-custom-object-detection](#use-nativescriptmlkit-custom-object-detection)
+* [CustomObjectResult](#customobjectresult)
+* [API](#api)
+ * [CustomObjectResult]
+
+## Installation
+
+Install `@nativescript/mlkit-custom-object-detection` by running the following command:
+
+```cli
+npm install @nativescript/mlkit-custom-object-detection
+```
+
+## Use @nativescript/mlkit-custom-object-detection
+
+For an example, read [Use @nativescript/mlkit-core](../mlkit-core#use-nativescriptmlkit-core) and [Custom Object Detection](../mlkit-core#custom-object-detection).
+
+## API
+
+### ObjectResult
+
+The type of object detection event data.
+
+```ts
+interface CustomObjectResult {
+ trackingId?: number
+ bounds: Bounds
+ labels: CustomObjectLabeling[]
+}
+```
+#### CustomObjectLabeling
+
+```ts
+interface CustomObjectLabeling {
+ text?: string
+ confidence?: number
+ index?: number
+}
+```
+#### Bounds
+
+```ts
+interface Bounds {
+ origin: Origin;
+ size: Size;
+}
+```
+#### Origin
+
+```ts
+export interface Origin {
+ x: number;
+ y: number;
+}
+```
+#### Size
+
+```ts
+interface Size {
+ width: number;
+ height: number;
+}
+```
+
+## License
+
+Apache License Version 2.0
diff --git a/packages/mlkit-custom-object-detection/index.ts b/packages/mlkit-custom-object-detection/index.ts
new file mode 100644
index 0000000..eae3721
--- /dev/null
+++ b/packages/mlkit-custom-object-detection/index.ts
@@ -0,0 +1,28 @@
+export interface CustomObjectLabeling {
+ text?: string
+ confidence?: number
+ index?: number
+}
+
+
+export interface Origin {
+ x: number;
+ y: number;
+}
+
+export interface Size {
+ width: number;
+ height: number;
+}
+
+export interface Bounds {
+ origin: Origin;
+ size: Size;
+}
+
+
+export interface CustomObjectResult {
+ trackingId?: number
+ bounds: Bounds
+ labels: CustomObjectLabeling[]
+}
diff --git a/packages/mlkit-custom-object-detection/package.json b/packages/mlkit-custom-object-detection/package.json
new file mode 100644
index 0000000..670d844
--- /dev/null
+++ b/packages/mlkit-custom-object-detection/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "@nativescript/mlkit-object-detection",
+ "version": "2.0.0",
+ "description": "NativeScript MLKit Object Detection module",
+ "main": "index",
+ "typings": "index.d.ts",
+ "nativescript": {
+ "platforms": {
+ "ios": "6.0.0",
+ "android": "6.0.0"
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/NativeScript/mlkit.git"
+ },
+ "keywords": [
+ "NativeScript",
+ "JavaScript",
+ "TypeScript",
+ "iOS",
+ "Android"
+ ],
+ "author": {
+ "name": "NativeScript",
+ "email": "oss@nativescript.org"
+ },
+ "bugs": {
+ "url": "https://github.com/NativeScript/mlkit/issues"
+ },
+ "license": "Apache-2.0",
+ "homepage": "https://github.com/NativeScript/mlkit",
+ "readmeFilename": "README.md",
+ "bootstrapper": "@nativescript/plugin-seed"
+}
diff --git a/packages/mlkit-custom-object-detection/platforms/android/include.gradle b/packages/mlkit-custom-object-detection/platforms/android/include.gradle
new file mode 100644
index 0000000..92e7d50
--- /dev/null
+++ b/packages/mlkit-custom-object-detection/platforms/android/include.gradle
@@ -0,0 +1,4 @@
+dependencies {
+ implementation 'com.google.mlkit:object-detection-custom:17.0.0'
+ implementation 'com.google.mlkit:linkfirebase:17.0.0'
+}
diff --git a/packages/mlkit-custom-object-detection/platforms/ios/Podfile b/packages/mlkit-custom-object-detection/platforms/ios/Podfile
new file mode 100644
index 0000000..537751f
--- /dev/null
+++ b/packages/mlkit-custom-object-detection/platforms/ios/Podfile
@@ -0,0 +1,3 @@
+platform :ios, '11.0'
+pod 'GoogleMLKit/ObjectDetectionCustom', '3.2.0'
+pod 'GoogleMLKit/LinkFirebase', '3.2.0'
diff --git a/packages/mlkit-custom-object-detection/project.json b/packages/mlkit-custom-object-detection/project.json
new file mode 100644
index 0000000..0dd5d8a
--- /dev/null
+++ b/packages/mlkit-custom-object-detection/project.json
@@ -0,0 +1,63 @@
+{
+ "name": "mlkit-object-detection",
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
+ "projectType": "library",
+ "sourceRoot": "packages/mlkit-object-detection",
+ "targets": {
+ "build": {
+ "executor": "@nrwl/js:tsc",
+ "options": {
+ "outputPath": "dist/packages/mlkit-object-detection",
+ "tsConfig": "packages/mlkit-object-detection/tsconfig.json",
+ "packageJson": "packages/mlkit-object-detection/package.json",
+ "main": "packages/mlkit-object-detection/index.ts",
+ "assets": [
+ "packages/mlkit-object-detection/*.md",
+ "LICENSE",
+ {
+ "glob": "**/*",
+ "input": "packages/mlkit-object-detection/platforms/",
+ "output": "./platforms/"
+ }
+ ]
+ },
+ "dependsOn": [
+ {
+ "target": "build.all",
+ "projects": "dependencies"
+ }
+ ]
+ },
+ "build.all": {
+ "executor": "nx:run-commands",
+ "options": {
+ "commands": ["node tools/scripts/build-finish.ts mlkit-object-detection"],
+ "parallel": false
+ },
+ "outputs": ["{workspaceRoot}/dist/packages/mlkit-object-detection"],
+ "dependsOn": [
+ {
+ "target": "build.all",
+ "projects": "dependencies"
+ },
+ {
+ "target": "build",
+ "projects": "self"
+ }
+ ]
+ },
+ "focus": {
+ "executor": "nx:run-commands",
+ "options": {
+ "commands": ["nx g @nativescript/plugin-tools:focus-packages mlkit-object-detection"],
+ "parallel": false
+ }
+ },
+ "lint": {
+ "executor": "@nrwl/linter:eslint",
+ "options": {
+ "lintFilePatterns": ["packages/mlkit-object-detection/**/*.ts"]
+ }
+ }
+ }
+}
diff --git a/packages/mlkit-custom-object-detection/references.d.ts b/packages/mlkit-custom-object-detection/references.d.ts
new file mode 100644
index 0000000..98c5393
--- /dev/null
+++ b/packages/mlkit-custom-object-detection/references.d.ts
@@ -0,0 +1 @@
+///
\ No newline at end of file
diff --git a/packages/mlkit-custom-object-detection/tsconfig.json b/packages/mlkit-custom-object-detection/tsconfig.json
new file mode 100644
index 0000000..a2ef9cc
--- /dev/null
+++ b/packages/mlkit-custom-object-detection/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "rootDir": "."
+ },
+ "exclude": ["**/*.spec.ts", "angular"],
+ "include": ["**/*.ts", "references.d.ts"]
+}