@digipair/skill-qrcode 0.89.0 → 0.91.0-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/.swcrc ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "jsc": {
3
+ "target": "es2017",
4
+ "parser": {
5
+ "syntax": "typescript",
6
+ "decorators": true,
7
+ "dynamicImport": true
8
+ },
9
+ "transform": {
10
+ "decoratorMetadata": true,
11
+ "legacyDecorator": true
12
+ },
13
+ "keepClassNames": true,
14
+ "externalHelpers": true,
15
+ "loose": true
16
+ },
17
+ "module": {
18
+ "type": "es6"
19
+ },
20
+ "sourceMaps": true,
21
+ "exclude": [
22
+ "jest.config.ts",
23
+ ".*\\.spec.tsx?$",
24
+ ".*\\.test.tsx?$",
25
+ "./src/jest-setup.ts$",
26
+ "./**/jest-setup.ts$"
27
+ ]
28
+ }
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # mylib
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build mylib` to build the library.
@@ -0,0 +1,22 @@
1
+ import baseConfig from '../../eslint.config.mjs';
2
+
3
+ export default [
4
+ ...baseConfig,
5
+ {
6
+ files: ['**/*.json'],
7
+ rules: {
8
+ '@nx/dependency-checks': [
9
+ 'error',
10
+ {
11
+ ignoredFiles: [
12
+ '{projectRoot}/eslint.config.{js,cjs,mjs}',
13
+ '{projectRoot}/rollup.config.{js,ts,mjs,mts,cjs,cts}',
14
+ ],
15
+ },
16
+ ],
17
+ },
18
+ languageOptions: {
19
+ parser: await import('jsonc-eslint-parser'),
20
+ },
21
+ },
22
+ ];
package/package.json CHANGED
@@ -1,15 +1,29 @@
1
1
  {
2
2
  "name": "@digipair/skill-qrcode",
3
- "version": "0.89.0",
3
+ "version": "0.91.0-0",
4
+ "type": "module",
5
+ "main": "dist/libs/skill-qrcode/index.cjs.js",
6
+ "module": "dist/libs/skill-qrcode/index.esm.js",
7
+ "types": "dist/libs/skill-qrcode/index.esm.d.ts",
8
+ "exports": {
9
+ "./package.json": "./libs/skill-qrcode/package.json",
10
+ ".": {
11
+ "development": "./dist/libs/skill-qrcode/src/index.ts",
12
+ "types": "./dist/libs/skill-qrcode/index.esm.d.ts",
13
+ "import": "./dist/libs/skill-qrcode/index.esm.js",
14
+ "default": "./dist/libs/skill-qrcode/index.cjs.js"
15
+ }
16
+ },
4
17
  "keywords": [
5
18
  "digipair",
6
- "web",
19
+ "tool",
7
20
  "service",
8
- "tool"
21
+ "web"
9
22
  ],
10
- "dependencies": {
11
- "canvas": "^2.11.2"
23
+ "nx": {
24
+ "name": "skill-qrcode"
12
25
  },
13
- "main": "./index.cjs.js",
14
- "module": "./index.esm.js"
15
- }
26
+ "dependencies": {
27
+ "@digipair/engine": "0.91.0-0"
28
+ }
29
+ }
@@ -0,0 +1,28 @@
1
+ const { withNx } = require('@nx/rollup/with-nx');
2
+
3
+ module.exports = withNx(
4
+ {
5
+ main: 'libs/skill-qrcode/src/index.ts',
6
+ outputPath: 'dist/libs/skill-qrcode',
7
+ tsConfig: 'libs/skill-qrcode/tsconfig.lib.json',
8
+ compiler: 'swc',
9
+ format: ['esm', "cjs"],
10
+ assets: [
11
+ {
12
+ input: 'libs/skill-qrcode/',
13
+ glob: 'package.json',
14
+ output: '.'
15
+ },
16
+ {
17
+ input: 'libs/skill-qrcode/src/',
18
+ glob: '*.json',
19
+ output: '.'
20
+ }
21
+ ]
22
+ },
23
+ {
24
+ // Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options
25
+ // e.g.
26
+ // output: { sourcemap: true },
27
+ }
28
+ );
@@ -0,0 +1,7 @@
1
+ import { skillQrcode } from './skill-qrcode';
2
+
3
+ describe('skillQrcode', () => {
4
+ it('should work', () => {
5
+ expect(skillQrcode()).toEqual('skill-qrcode');
6
+ });
7
+ });
@@ -0,0 +1,57 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable @typescript-eslint/no-unused-vars */
3
+ import { PinsSettings } from '@digipair/engine';
4
+ import jsQR from 'jsqr';
5
+ import QRCode from 'qrcode';
6
+
7
+ class JsQrService {
8
+ async encode(params: any, _pinsSettingsList: PinsSettings[], _context: any): Promise<any> {
9
+ const { data } = params;
10
+ const qrCodeDataURL = await QRCode.toDataURL(data);
11
+
12
+ return qrCodeDataURL;
13
+ }
14
+
15
+ async decode(params: any, _pinsSettingsList: PinsSettings[], _context: any): Promise<any> {
16
+ const { image } = params;
17
+
18
+ const { createCanvas, loadImage } =
19
+ typeof window === 'undefined'
20
+ ? require('canvas')
21
+ : {
22
+ createCanvas: () => document.createElement('canvas'),
23
+ loadImage: (src: any) =>
24
+ new Promise((resolve, reject) => {
25
+ const img = new Image();
26
+ img.onload = () => resolve(img);
27
+ img.onerror = reject;
28
+ img.src = src;
29
+ }),
30
+ };
31
+ const matches = image.match(/^data:(.+);base64,(.+)$/);
32
+
33
+ if (!matches || matches.length !== 3) {
34
+ throw new Error(`Bad base64 format`);
35
+ }
36
+
37
+ const buffer = Buffer.from(matches[2], 'base64');
38
+ const img = await loadImage(buffer);
39
+ const canvas = createCanvas(img.width, img.height);
40
+ const context = canvas.getContext('2d');
41
+ context.drawImage(img, 0, 0, img.width, img.height);
42
+
43
+ // Get the image data from the canvas
44
+ const { data, width, height } = context.getImageData(0, 0, img.width, img.height);
45
+
46
+ const qrCode = jsQR(new Uint8ClampedArray(data), width, height);
47
+
48
+ return qrCode?.data;
49
+ }
50
+ }
51
+
52
+
53
+ export const encode = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
54
+ new JsQrService().encode(params, pinsSettingsList, context);
55
+
56
+ export const decode = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
57
+ new JsQrService().decode(params, pinsSettingsList, context);
@@ -0,0 +1 @@
1
+ declare module 'qrcode';
package/tsconfig.json ADDED
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "files": [],
4
+ "include": [],
5
+ "references": [
6
+ {
7
+ "path": "../engine"
8
+ },
9
+ {
10
+ "path": "./tsconfig.lib.json"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "outDir": "dist",
6
+ "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
7
+ "emitDeclarationOnly": true,
8
+ "module": "esnext",
9
+ "moduleResolution": "node",
10
+ "forceConsistentCasingInFileNames": true,
11
+ "types": ["node"]
12
+ },
13
+ "include": ["src/**/*.ts"],
14
+ "references": [
15
+ {
16
+ "path": "../engine/tsconfig.lib.json"
17
+ }
18
+ ]
19
+ }
package/index.cjs.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./src/index";