@aitos/sense 1.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.
@@ -0,0 +1,3 @@
1
+ export * from './motion';
2
+ import { Atom } from '@aitos/core';
3
+ export declare const allAtoms: Atom[];
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.allAtoms = void 0;
18
+ __exportStar(require("./motion"), exports);
19
+ const motion_1 = require("./motion");
20
+ exports.allAtoms = [
21
+ motion_1.getAccelerometerAtom,
22
+ motion_1.getGyroscopeAtom,
23
+ motion_1.getLocationAtom,
24
+ motion_1.getBatteryAtom,
25
+ motion_1.getNetworkStatusAtom,
26
+ ];
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUd6QixxQ0FNa0I7QUFFTCxRQUFBLFFBQVEsR0FBVztJQUM5Qiw2QkFBb0I7SUFDcEIseUJBQWdCO0lBQ2hCLHdCQUFlO0lBQ2YsdUJBQWM7SUFDZCw2QkFBb0I7Q0FDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW90aW9uJztcblxuaW1wb3J0IHsgQXRvbSB9IGZyb20gJ0BhaXRvcy9jb3JlJztcbmltcG9ydCB7XG4gIGdldEFjY2VsZXJvbWV0ZXJBdG9tLFxuICBnZXRHeXJvc2NvcGVBdG9tLFxuICBnZXRMb2NhdGlvbkF0b20sXG4gIGdldEJhdHRlcnlBdG9tLFxuICBnZXROZXR3b3JrU3RhdHVzQXRvbSxcbn0gZnJvbSAnLi9tb3Rpb24nO1xuXG5leHBvcnQgY29uc3QgYWxsQXRvbXM6IEF0b21bXSA9IFtcbiAgZ2V0QWNjZWxlcm9tZXRlckF0b20sXG4gIGdldEd5cm9zY29wZUF0b20sXG4gIGdldExvY2F0aW9uQXRvbSxcbiAgZ2V0QmF0dGVyeUF0b20sXG4gIGdldE5ldHdvcmtTdGF0dXNBdG9tLFxuXTtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { Atom } from '@aitos/core';
2
+ export declare const getAccelerometerAtom: Atom;
3
+ export declare const getGyroscopeAtom: Atom;
4
+ export declare const getLocationAtom: Atom;
5
+ export declare const getBatteryAtom: Atom;
6
+ export declare const getNetworkStatusAtom: Atom;
package/dist/motion.js ADDED
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNetworkStatusAtom = exports.getBatteryAtom = exports.getLocationAtom = exports.getGyroscopeAtom = exports.getAccelerometerAtom = void 0;
4
+ exports.getAccelerometerAtom = {
5
+ name: 'getAccelerometer',
6
+ version: '1.0.0',
7
+ meta: {
8
+ input: [
9
+ { name: 'xKey', type: 'string', description: 'Store key for X axis' },
10
+ { name: 'yKey', type: 'string', description: 'Store key for Y axis' },
11
+ { name: 'zKey', type: 'string', description: 'Store key for Z axis' }
12
+ ],
13
+ output: { type: 'void', description: 'Nothing' }
14
+ },
15
+ characteristics: { stateless: true, atomic: true, composable: true },
16
+ execute: async (input, context) => {
17
+ return new Promise((resolve) => {
18
+ if (!('Accelerometer' in window)) {
19
+ resolve({ success: false, error: 'Accelerometer not supported' });
20
+ return;
21
+ }
22
+ const sensor = new window.Accelerometer({ frequency: 60 });
23
+ sensor.addEventListener('reading', () => {
24
+ context.store.set(input.xKey, sensor.x);
25
+ context.store.set(input.yKey, sensor.y);
26
+ context.store.set(input.zKey, sensor.z);
27
+ });
28
+ sensor.addEventListener('error', (event) => {
29
+ console.error('Accelerometer error:', event.error);
30
+ });
31
+ sensor.start();
32
+ resolve({ success: true, data: { done: true } });
33
+ });
34
+ },
35
+ };
36
+ exports.getGyroscopeAtom = {
37
+ name: 'getGyroscope',
38
+ version: '1.0.0',
39
+ meta: {
40
+ input: [
41
+ { name: 'xKey', type: 'string', description: 'Store key for X axis' },
42
+ { name: 'yKey', type: 'string', description: 'Store key for Y axis' },
43
+ { name: 'zKey', type: 'string', description: 'Store key for Z axis' }
44
+ ],
45
+ output: { type: 'void', description: 'Nothing' }
46
+ },
47
+ characteristics: { stateless: true, atomic: true, composable: true },
48
+ execute: async (input, context) => {
49
+ return new Promise((resolve) => {
50
+ if (!('Gyroscope' in window)) {
51
+ resolve({ success: false, error: 'Gyroscope not supported' });
52
+ return;
53
+ }
54
+ const sensor = new window.Gyroscope({ frequency: 60 });
55
+ sensor.addEventListener('reading', () => {
56
+ context.store.set(input.xKey, sensor.x);
57
+ context.store.set(input.yKey, sensor.y);
58
+ context.store.set(input.zKey, sensor.z);
59
+ });
60
+ sensor.addEventListener('error', (event) => {
61
+ console.error('Gyroscope error:', event.error);
62
+ });
63
+ sensor.start();
64
+ resolve({ success: true, data: { done: true } });
65
+ });
66
+ },
67
+ };
68
+ exports.getLocationAtom = {
69
+ name: 'getLocation',
70
+ version: '1.0.0',
71
+ meta: {
72
+ input: [
73
+ { name: 'latKey', type: 'string', description: 'Store key for latitude' },
74
+ { name: 'lonKey', type: 'string', description: 'Store key for longitude' }
75
+ ],
76
+ output: { type: 'void', description: 'Nothing' }
77
+ },
78
+ characteristics: { stateless: true, atomic: true, composable: true },
79
+ execute: async (input, context) => {
80
+ return new Promise((resolve) => {
81
+ if (!navigator.geolocation) {
82
+ resolve({ success: false, error: 'Geolocation not supported' });
83
+ return;
84
+ }
85
+ navigator.geolocation.getCurrentPosition((position) => {
86
+ context.store.set(input.latKey, position.coords.latitude);
87
+ context.store.set(input.lonKey, position.coords.longitude);
88
+ resolve({ success: true, data: { done: true } });
89
+ }, (error) => {
90
+ resolve({ success: false, error: `Geolocation error: ${error.message}` });
91
+ });
92
+ });
93
+ },
94
+ };
95
+ exports.getBatteryAtom = {
96
+ name: 'getBattery',
97
+ version: '1.0.0',
98
+ meta: {
99
+ input: [
100
+ { name: 'levelKey', type: 'string', description: 'Store key for battery level' },
101
+ { name: 'chargingKey', type: 'string', description: 'Store key for charging status' }
102
+ ],
103
+ output: { type: 'void', description: 'Nothing' }
104
+ },
105
+ characteristics: { stateless: true, atomic: true, composable: true },
106
+ execute: async (input, context) => {
107
+ try {
108
+ const battery = await navigator.getBattery();
109
+ context.store.set(input.levelKey, battery.level);
110
+ context.store.set(input.chargingKey, battery.charging);
111
+ return { success: true, data: { done: true } };
112
+ }
113
+ catch (error) {
114
+ return { success: false, error: 'Battery API not supported' };
115
+ }
116
+ },
117
+ };
118
+ exports.getNetworkStatusAtom = {
119
+ name: 'getNetworkStatus',
120
+ version: '1.0.0',
121
+ meta: {
122
+ input: [
123
+ { name: 'onlineKey', type: 'string', description: 'Store key for online status' }
124
+ ],
125
+ output: { type: 'void', description: 'Nothing' }
126
+ },
127
+ characteristics: { stateless: true, atomic: true, composable: true },
128
+ execute: async (input, context) => {
129
+ context.store.set(input.onlineKey, navigator.onLine);
130
+ return { success: true, data: { done: true } };
131
+ },
132
+ };
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW90aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbW90aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsb0JBQW9CLEdBQVM7SUFDeEMsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixPQUFPLEVBQUUsT0FBTztJQUNoQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUU7WUFDTCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUU7WUFDckUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFO1lBQ3JFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTtTQUN0RTtRQUNELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtLQUNqRDtJQUNELGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFO0lBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBbUQsRUFBRSxPQUFnQixFQUFtQixFQUFFO1FBQ3hHLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLElBQUssTUFBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRXBF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TSxDQUFDLENBQUM7UUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7SUFDakQsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdG9tLCBDb250ZXh0LCBSZXN1bHQgfSBmcm9tICdAYWl0b3MvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRBY2NlbGVyb21ldGVyQXRvbTogQXRvbSA9IHtcbiAgbmFtZTogJ2dldEFjY2VsZXJvbWV0ZXInLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ3hLZXknLCB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdG9yZSBrZXkgZm9yIFggYXhpcycgfSxcbiAgICAgIHsgbmFtZTogJ3lLZXknLCB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdG9yZSBrZXkgZm9yIFkgYXhpcycgfSxcbiAgICAgIHsgbmFtZTogJ3pLZXknLCB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdG9yZSBrZXkgZm9yIFogYXhpcycgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICd2b2lkJywgZGVzY3JpcHRpb246ICdOb3RoaW5nJyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgeEtleTogc3RyaW5nOyB5S2V5OiBzdHJpbmc7IHpLZXk6IHN0cmluZyB9LCBjb250ZXh0OiBDb250ZXh0KTogUHJvbWlzZTxSZXN1bHQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmICghKCdBY2NlbGVyb21ldGVyJyBpbiB3aW5kb3cpKSB7XG4gICAgICAgIHJlc29sdmUoeyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICdBY2NlbGVyb21ldGVyIG5vdCBzdXBwb3J0ZWQnIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNlbnNvciA9IG5ldyAod2luZG93IGFzIGFueSkuQWNjZWxlcm9tZXRlcih7IGZyZXF1ZW5jeTogNjAgfSk7XG4gICAgICBcbiAgICAgIHNlbnNvci5hZGRFdmVudExpc3RlbmVyKCdyZWFkaW5nJywgKCkgPT4ge1xuICAgICAgICBjb250ZXh0LnN0b3JlLnNldChpbnB1dC54S2V5LCBzZW5zb3IueCk7XG4gICAgICAgIGNvbnRleHQuc3RvcmUuc2V0KGlucHV0LnlLZXksIHNlbnNvci55KTtcbiAgICAgICAgY29udGV4dC5zdG9yZS5zZXQoaW5wdXQuektleSwgc2Vuc29yLnopO1xuICAgICAgfSk7XG5cbiAgICAgIHNlbnNvci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FjY2VsZXJvbWV0ZXIgZXJyb3I6JywgZXZlbnQuZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICAgIHNlbnNvci5zdGFydCgpO1xuICAgICAgcmVzb2x2ZSh7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IHsgZG9uZTogdHJ1ZSB9IH0pO1xuICAgIH0pO1xuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGdldEd5cm9zY29wZUF0b206IEF0b20gPSB7XG4gIG5hbWU6ICdnZXRHeXJvc2NvcGUnLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ3hLZXknLCB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdG9yZSBrZXkgZm9yIFggYXhpcycgfSxcbiAgICAgIHsgbmFtZTogJ3lLZXknLCB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdG9yZSBrZXkgZm9yIFkgYXhpcycgfSxcbiAgICAgIHsgbmFtZTogJ3pLZXknLCB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdG9yZSBrZXkgZm9yIFogYXhpcycgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICd2b2lkJywgZGVzY3JpcHRpb246ICdOb3RoaW5nJyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgeEtleTogc3RyaW5nOyB5S2V5OiBzdHJpbmc7IHpLZXk6IHN0cmluZyB9LCBjb250ZXh0OiBDb250ZXh0KTogUHJvbWlzZTxSZXN1bHQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmICghKCdHeXJvc2NvcGUnIGluIHdpbmRvdykpIHtcbiAgICAgICAgcmVzb2x2ZSh7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ0d5cm9zY29wZSBub3Qgc3VwcG9ydGVkJyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzZW5zb3IgPSBuZXcgKHdpbmRvdyBhcyBhbnkpLkd5cm9zY29wZSh7IGZyZXF1ZW5jeTogNjAgfSk7XG4gICAgICBcbiAgICAgIHNlbnNvci5hZGRFdmVudExpc3RlbmVyKCdyZWFkaW5nJywgKCkgPT4ge1xuICAgICAgICBjb250ZXh0LnN0b3JlLnNldChpbnB1dC54S2V5LCBzZW5zb3IueCk7XG4gICAgICAgIGNvbnRleHQuc3RvcmUuc2V0KGlucHV0LnlLZXksIHNlbnNvci55KTtcbiAgICAgICAgY29udGV4dC5zdG9yZS5zZXQoaW5wdXQuektleSwgc2Vuc29yLnopO1xuICAgICAgfSk7XG5cbiAgICAgIHNlbnNvci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0d5cm9zY29wZSBlcnJvcjonLCBldmVudC5lcnJvcik7XG4gICAgICB9KTtcblxuICAgICAgc2Vuc29yLnN0YXJ0KCk7XG4gICAgICByZXNvbHZlKHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogeyBkb25lOiB0cnVlIH0gfSk7XG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TG9jYXRpb25BdG9tOiBBdG9tID0ge1xuICBuYW1lOiAnZ2V0TG9jYXRpb24nLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ2xhdEtleScsIHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1N0b3JlIGtleSBmb3IgbGF0aXR1ZGUnIH0sXG4gICAgICB7IG5hbWU6ICdsb25LZXknLCB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdG9yZSBrZXkgZm9yIGxvbmdpdHVkZScgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICd2b2lkJywgZGVzY3JpcHRpb246ICdOb3RoaW5nJyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgbGF0S2V5OiBzdHJpbmc7IGxvbktleTogc3RyaW5nIH0sIGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPFJlc3VsdD4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKCFuYXZpZ2F0b3IuZ2VvbG9jYXRpb24pIHtcbiAgICAgICAgcmVzb2x2ZSh7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogJ0dlb2xvY2F0aW9uIG5vdCBzdXBwb3J0ZWQnIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oXG4gICAgICAgIChwb3NpdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnRleHQuc3RvcmUuc2V0KGlucHV0LmxhdEtleSwgcG9zaXRpb24uY29vcmRzLmxhdGl0dWRlKTtcbiAgICAgICAgICBjb250ZXh0LnN0b3JlLnNldChpbnB1dC5sb25LZXksIHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUpO1xuICAgICAgICAgIHJlc29sdmUoeyBzdWNjZXNzOiB0cnVlLCBkYXRhOiB7IGRvbmU6IHRydWUgfSB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSh7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcjogYEdlb2xvY2F0aW9uIGVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCYXR0ZXJ5QXRvbTogQXRvbSA9IHtcbiAgbmFtZTogJ2dldEJhdHRlcnknLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ2xldmVsS2V5JywgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnU3RvcmUga2V5IGZvciBiYXR0ZXJ5IGxldmVsJyB9LFxuICAgICAgeyBuYW1lOiAnY2hhcmdpbmdLZXknLCB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdG9yZSBrZXkgZm9yIGNoYXJnaW5nIHN0YXR1cycgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICd2b2lkJywgZGVzY3JpcHRpb246ICdOb3RoaW5nJyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgbGV2ZWxLZXk6IHN0cmluZzsgY2hhcmdpbmdLZXk6IHN0cmluZyB9LCBjb250ZXh0OiBDb250ZXh0KTogUHJvbWlzZTxSZXN1bHQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYmF0dGVyeSA9IGF3YWl0IChuYXZpZ2F0b3IgYXMgYW55KS5nZXRCYXR0ZXJ5KCk7XG4gICAgICBjb250ZXh0LnN0b3JlLnNldChpbnB1dC5sZXZlbEtleSwgYmF0dGVyeS5sZXZlbCk7XG4gICAgICBjb250ZXh0LnN0b3JlLnNldChpbnB1dC5jaGFyZ2luZ0tleSwgYmF0dGVyeS5jaGFyZ2luZyk7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiB7IGRvbmU6IHRydWUgfSB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICdCYXR0ZXJ5IEFQSSBub3Qgc3VwcG9ydGVkJyB9O1xuICAgIH1cbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXROZXR3b3JrU3RhdHVzQXRvbTogQXRvbSA9IHtcbiAgbmFtZTogJ2dldE5ldHdvcmtTdGF0dXMnLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICBtZXRhOiB7XG4gICAgaW5wdXQ6IFtcbiAgICAgIHsgbmFtZTogJ29ubGluZUtleScsIHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1N0b3JlIGtleSBmb3Igb25saW5lIHN0YXR1cycgfVxuICAgIF0sXG4gICAgb3V0cHV0OiB7IHR5cGU6ICd2b2lkJywgZGVzY3JpcHRpb246ICdOb3RoaW5nJyB9XG4gIH0sXG4gIGNoYXJhY3RlcmlzdGljczogeyBzdGF0ZWxlc3M6IHRydWUsIGF0b21pYzogdHJ1ZSwgY29tcG9zYWJsZTogdHJ1ZSB9LFxuICBleGVjdXRlOiBhc3luYyAoaW5wdXQ6IHsgb25saW5lS2V5OiBzdHJpbmcgfSwgY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8UmVzdWx0PiA9PiB7XG4gICAgY29udGV4dC5zdG9yZS5zZXQoaW5wdXQub25saW5lS2V5LCBuYXZpZ2F0b3Iub25MaW5lKTtcbiAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiB7IGRvbmU6IHRydWUgfSB9O1xuICB9LFxufTtcbiJdfQ==
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@aitos/sense",
3
+ "version": "1.0.0",
4
+ "description": "AITOS Sense Capability Package - Motion, Environment, and Device sensing atoms",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "dev": "tsc --watch"
10
+ },
11
+ "keywords": [
12
+ "aitos",
13
+ "sense",
14
+ "motion",
15
+ "environment",
16
+ "device",
17
+ "capability"
18
+ ],
19
+ "author": "AITOS Team",
20
+ "license": "MIT",
21
+ "files": [
22
+ "dist"
23
+ ],
24
+ "peerDependencies": {
25
+ "@aitos/core": "^1.0.0"
26
+ },
27
+ "devDependencies": {
28
+ "@aitos/core": "file:../../../aitos",
29
+ "@types/node": "^20.0.0",
30
+ "typescript": "^5.0.0"
31
+ }
32
+ }