this.me 2.9.3 → 2.9.41

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
@@ -4,6 +4,10 @@
4
4
  **This.Me** is a data-structured identity.
5
5
  <img src="https://suign.github.io/assets/imgs/point.png" alt="Me" width="144"> Consider **.me** as a point.
6
6
 
7
+ this.me is designed to generate and manage identities. It's responsible for creating a user’s identity, handling attributes, and generating hashes.
8
+
9
+ Use Case: Suppose you're building an app where users need to create profiles or identities. You can install this.me locally in that project to manage user identities.
10
+
7
11
  1. ### **Install `this.me`:**
8
12
  Open your terminal and run the following command to install the `this.me` package:
9
13
  ```js
package/index.js CHANGED
@@ -8,3 +8,5 @@
8
8
  import Me from './src/me.js';
9
9
  //when a user declares "I am %.me," their digital existence is affirmed and recorded in the system.
10
10
  export default Me;
11
+
12
+ console.log("this.me is loaded...");
package/md/context.md ADDED
@@ -0,0 +1,42 @@
1
+ Lo que estás describiendo sobre **this.me** y el proceso de autenticación con **Cleaker** como una red de identificación descentralizada (**DID**) tiene sentido dentro de un marco de criptografía y autenticación distribuida. A continuación, desgloso los puntos importantes para asegurarnos de que el concepto sea claro y funcional:
2
+
3
+ ### **Inmutabilidad de la Identidad Básica**
4
+ Tu sistema **this.me** se basa en la creación de una identidad criptográficamente segura. Los componentes inmutables que mencionas (nombre de usuario, email y la red de autenticación) son fundamentales para que el sistema garantice que la identidad siempre se pueda verificar a partir de un hash único.
5
+
6
+ 1. **Nombre de Usuario (username)**: El nombre de usuario es clave en la identidad. No puede cambiar una vez creado porque el hash que lo representa depende de esta cadena de caracteres.
7
+ 2. **Correo Electrónico (email)**: Esto actúa como otra pieza inmutable, probablemente porque es un dato importante para autenticar usuarios a través de redes o servicios.
8
+ 3. **Red de Autenticación (Cleaker)**: Como mencionas, **Cleaker** actuaría como el **DID**, o sea, la autoridad central que autentica tu identidad. Es clave para asegurar que no cualquiera pueda crear una identidad falsa.
9
+
10
+ ### **Proceso de Creación del Hash**
11
+ Lo que estás describiendo es un esquema de hashing similar al que se usa en la criptografía para asegurar que los datos no sean manipulados. Cuando generas una identidad con `this.me`, combinas información inmutable (username, email, red) para generar un **hash único**, que se convierte en tu **clave pública**.
12
+
13
+ 1. **Hash como Clave Pública**: Cuando hasheas tu información (e.g., nombre + email + red), se genera una clave pública (hash). Esta clave es única para cada combinación de información.
14
+ - Si cambias incluso una letra de tu nombre o red, el hash resultante será completamente diferente.
15
+ - Este hash será tu "firma digital" o clave pública para verificarte ante otros sistemas.
16
+
17
+ 2. **Encriptación y Desencriptación de Datos**: Utilizando tu **clave pública** (hash generado), puedes firmar o desencriptar información que hayas dejado en el sistema. Esencialmente, es una forma de probar que eres el propietario legítimo de esa clave.
18
+ - Si alguien intenta usar un hash distinto (porque cambió alguna información), no podrá desencriptar la información asociada a tu clave pública original.
19
+
20
+ ### **Uso de Cleaker como DID**
21
+ **Cleaker** sería la red de confianza que actúa como verificador. En este caso:
22
+ - **Cleaker** puede autenticar tu identidad, asegurando que el hash generado sea correcto, en el sentido de que el nombre de usuario, email, y red de autenticación son válidos.
23
+ - **Cleaker** también sirve como autoridad para evitar que cualquiera pueda generar una identidad falsa o duplicada. Si intentas acceder a la red con información diferente, el sistema rechaza la autenticación porque el hash no coincide con los registros en la red.
24
+
25
+ ### **Flujo Ejemplificado de Autenticación**
26
+ 1. Creas tu identidad en **this.me** con tu nombre de usuario, email y red de autenticación (**Cleaker**).
27
+ 2. **this.me** genera un **hash único** para esa combinación de datos, lo que te da una **clave pública**.
28
+ 3. Puedes usar esa clave pública para autenticarte en cualquier servicio compatible, y solo tú puedes desencriptar los datos usando tu hash, ya que corresponde exactamente con la información que usaste para crearlo.
29
+ 4. Si cambias cualquier parte de tu información (nombre, email o red), obtendrás un hash completamente diferente, lo que efectivamente cambia tu identidad digital.
30
+
31
+ ### **Encriptación y Desencriptación**
32
+ Al tener tu clave pública, puedes usarla para desencriptar datos que hayas almacenado en sistemas que utilizan **this.me**. La clave pública se usa para verificar tu identidad y acceder a la información que has dejado. Como mencionabas:
33
+
34
+ - Si hasheas "jose" y "abella", obtendrás un hash específico.
35
+ - Si cambias "abella" por "abellae", el hash cambia y no podrás desencriptar la información almacenada bajo el hash anterior.
36
+
37
+ Este proceso asegura que tu identidad es única y está protegida criptográficamente.
38
+
39
+ ### **Conclusión**
40
+ Este sistema de identidad descentralizada que estás describiendo se asemeja a los **DIDs** utilizados en blockchain y criptografía, donde las identidades no dependen de un servidor centralizado, sino de la prueba criptográfica de su validez. **Cleaker** actuaría como una red que verifica la validez del hash, y **this.me** genera y gestiona las identidades de una forma flexible pero segura. El uso de hashes y criptografía garantiza que las identidades sean inmutables y verificables sin depender de terceros centralizados.
41
+
42
+ Este sistema tiene aplicaciones en una amplia gama de servicios donde la autenticación segura es fundamental y donde se quiere evitar la creación de múltiples credenciales en diferentes plataformas.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "this.me",
3
- "version": "2.9.3",
3
+ "version": "2.9.41",
4
4
  "description": "_me-Centric.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -16,7 +16,7 @@
16
16
  ],
17
17
  "repository": {
18
18
  "type": "git",
19
- "url": "git+https://github.com/suiGn/this.me.git"
19
+ "url": "git+https://github.com/neurons-me/this.me.git"
20
20
  },
21
21
  "homepage": "https://www.npmjs.com/package/this.me",
22
22
  "docs": "https://suiGn.github.io/this.me",
@@ -27,6 +27,7 @@
27
27
  "category": "dataformatter",
28
28
  "dependencies": {
29
29
  "chalk": "^5.3.0",
30
+ "commander": "^12.1.0",
30
31
  "inquirer": "^9.2.16"
31
32
  }
32
33
  }
package/src/example.js CHANGED
@@ -20,4 +20,6 @@ users[user].be({ fullName: "ZZZ", lastName: "WWW" });
20
20
  users[user].be({ xy: "axax" });
21
21
  console.log(users[user]);
22
22
 
23
+ console.log(users);
24
+
23
25
 
package/src/me.js CHANGED
@@ -3,7 +3,7 @@ import crypto from 'crypto';
3
3
  import os from 'os';
4
4
 
5
5
  // Define the .me class
6
- class Me {
6
+ class Me{
7
7
  // Static property to keep track of all users globally
8
8
  static registry = {};
9
9
 
@@ -52,3 +52,5 @@ class Me {
52
52
  return Me.registry;
53
53
  }
54
54
  }
55
+
56
+ export default Me;
package/jsdoc.json DELETED
@@ -1,49 +0,0 @@
1
- {
2
- "source": {
3
- "include": ["./src/me.js", "./src/.me.cli.js", "./index.js", "./README.md"]
4
- },
5
- "opts": {
6
- "destination": "./docs",
7
- "template": "../../../suign.github.io/dev_tools/Sandbox/better-docs/",
8
- "readme": "./README.md"
9
- },
10
- "templates": {
11
- "cleverLinks": false,
12
- "monospaceLinks": false,
13
- "search": true,
14
- "default": {
15
- "staticFiles": {
16
- "include": ["./README.md"]
17
- }
18
- },
19
- "better-docs": {
20
- "name": "This.Me",
21
- "title": "This.Me",
22
- "css": "style.css",
23
- "trackingCode": "...",
24
- "hideGenerator": false,
25
- "navLinks": [
26
- {
27
- "label": "All.This",
28
- "href": "https://suign.github.io/all.this/"
29
- },
30
- {
31
- "label": "@Source",
32
- "href": "https://suign.github.io/"
33
- },
34
- {
35
- "label": "Github",
36
- "href": "https://github.com/suiGn/this.me"
37
- },
38
- {
39
- "label": "Cleaker.me",
40
- "href": "https://cleaker.me"
41
- },
42
- {
43
- "label": "What is all.this?",
44
- "href": "https://www.neurons.me/this"
45
- }
46
- ]
47
- }
48
- }
49
- }
package/src/CLI/AddMe.js DELETED
@@ -1,35 +0,0 @@
1
- //CLI/AddMe.js
2
- import inquirer from 'inquirer';
3
- import chalk from 'chalk';
4
- import fs from 'fs';
5
- import path from 'path';
6
-
7
- const getConfigPath = () => path.join(process.env.HOME, '.me_config');
8
-
9
- const saveNewUser = (username) => {
10
- const configPath = getConfigPath();
11
- let users = [];
12
- if (fs.existsSync(configPath)) {
13
- users = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
14
- }
15
- users.push(username);
16
- fs.writeFileSync(configPath, JSON.stringify(users));
17
- };
18
-
19
- const AddMe = async () => {
20
- const response = await inquirer.prompt([
21
- {
22
- type: 'input',
23
- name: 'newMe',
24
- message: 'Enter your new .me username:',
25
- // Validate input: adjust as per your validation rules
26
- validate: (input) => !!input.trim() || 'Username cannot be empty!',
27
- },
28
- ]);
29
-
30
- const newMe = response.newMe.trim();
31
- saveNewUser(newMe);
32
- console.log(chalk.green(`New .me username added: ${newMe}`));
33
- };
34
-
35
- export default AddMe;
package/src/CLI/LogMe.js DELETED
@@ -1,26 +0,0 @@
1
- // Source: CLI/LogMe.js
2
- import inquirer from 'inquirer';
3
- import chalk from 'chalk';
4
-
5
- const getExistingUsers = () => {
6
- // Simulate fetching existing users: adjust to your actual logic
7
- return ['user1', 'user2']; // Example user names
8
- };
9
-
10
- const LogMe = async () => {
11
- const existingUsers = getExistingUsers();
12
-
13
- const response = await inquirer.prompt([
14
- {
15
- type: 'list',
16
- name: 'selectedUser',
17
- message: 'Confirm your identity:',
18
- choices: existingUsers,
19
- },
20
- ]);
21
-
22
- const selectedUser = response.selectedUser;
23
- console.log(chalk.green(`.me confirmed: ${selectedUser}`));
24
- };
25
-
26
- export default LogMe;
@@ -1,28 +0,0 @@
1
- // CLI/me_MainMenu.js
2
- import inquirer from 'inquirer';
3
- import chalk from 'chalk';
4
- import AddMe from './AddMe.js'; // Corrected import statement
5
- import LogMe from './LogMe.js'; // Corrected import statement
6
-
7
- export async function meMainChoices() {
8
- const answers = await inquirer.prompt([
9
- {
10
- type: 'list',
11
- name: 'action',
12
- message: 'Choose an action:',
13
- choices: ['Add .me', 'Log .me', new inquirer.Separator(), 'Exit'],
14
- },
15
- ]);
16
-
17
- switch (answers.action) {
18
- case 'Add .me':
19
- AddMe();
20
- break;
21
- case 'Log .me':
22
- LogMe();
23
- break;
24
- case 'Exit':
25
- console.log(chalk.green('Exiting...'));
26
- process.exit();
27
- }
28
- }