@lystech/core 3.0.49 → 3.0.50

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.
@@ -1,216 +1,216 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require("fs");
4
- const path = require("path");
5
-
6
- // Ne pas exécuter si on est dans le package lui-même (dev)
7
- const currentDir = process.cwd();
8
- const packageJsonPath = path.join(currentDir, "package.json");
9
-
10
- if (!fs.existsSync(packageJsonPath)) {
11
- console.log("⏭️ Pas de package.json trouvé, skip postinstall");
12
- process.exit(0);
13
- }
14
-
15
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
16
-
17
- // Skip si c'est lystech-core lui-même
18
- if (packageJson.name === "@lystech/core") {
19
- console.log("⏭️ Postinstall skipped (package lystech-core lui-même)");
20
- process.exit(0);
21
- }
22
-
23
- // Skip si variable d'environnement SKIP_LYSTECH_SETUP est définie
24
- if (process.env.SKIP_LYSTECH_SETUP === "true") {
25
- console.log("⏭️ Postinstall skipped (SKIP_LYSTECH_SETUP=true)");
26
- process.exit(0);
27
- }
28
-
29
- // Vérifier si le package contient @lystech/core
30
- const hasLystechCore = !!(
31
- (packageJson.dependencies && packageJson.dependencies["@lystech/core"]) ||
32
- (packageJson.devDependencies &&
33
- packageJson.devDependencies["@lystech/core"]) ||
34
- (packageJson.peerDependencies &&
35
- packageJson.peerDependencies["@lystech/core"])
36
- );
37
-
38
- if (!hasLystechCore) {
39
- console.log("⏭️ @lystech/core non trouvé dans les dépendances");
40
- process.exit(0);
41
- }
42
-
43
- const workflowDir = path.join(currentDir, ".github", "workflows");
44
- const workflowPath = path.join(workflowDir, "sync-package-registry.yml");
45
-
46
- // Skip si le workflow existe déjà
47
- if (fs.existsSync(workflowPath)) {
48
- console.log("✅ Workflow sync-package-registry.yml déjà présent");
49
- process.exit(0);
50
- }
51
-
52
- console.log(
53
- "\n🚀 @lystech/core - Configuration automatique du Package Registry...\n",
54
- );
55
-
56
- const WORKFLOW_CONTENT = `name: Sync Package Registry
57
-
58
- on:
59
- push:
60
- branches:
61
- - master
62
- - main
63
- workflow_dispatch:
64
-
65
- jobs:
66
- sync-registry:
67
- runs-on: ubuntu-latest
68
-
69
- steps:
70
- - name: Checkout
71
- uses: actions/checkout@v4
72
-
73
- - name: Check package.json for @lystech/core
74
- id: check-package
75
- run: |
76
- echo "🔍 Vérification de package.json..."
77
-
78
- # Extraire owner et repo depuis GITHUB_REPOSITORY (format: owner/repo)
79
- OWNER="\${GITHUB_REPOSITORY%%/*}"
80
- REPO_NAME="\${GITHUB_REPOSITORY#*/}"
81
-
82
- echo "owner=$OWNER" >> "$GITHUB_OUTPUT"
83
- echo "repo_name=$REPO_NAME" >> "$GITHUB_OUTPUT"
84
- echo "📦 Repo: $OWNER/$REPO_NAME"
85
-
86
- # Récupérer le repoId depuis l'API GitHub
87
- REPO_ID=$(curl -s -H "Authorization: token \${{ secrets.GITHUB_TOKEN }}" \\
88
- "https://api.github.com/repos/$OWNER/$REPO_NAME" | jq -r '.id')
89
-
90
- echo "repo_id=$REPO_ID" >> "$GITHUB_OUTPUT"
91
- echo "🆔 Repo ID: $REPO_ID"
92
-
93
- # Vérifier que REPO_ID est valide (non vide et non null)
94
- if [ -z "$REPO_ID" ] || [ "$REPO_ID" = "null" ]; then
95
- echo "❌ Erreur: Impossible de récupérer le repo ID"
96
- exit 1
97
- fi
98
-
99
- # Vérifier si @lystech/core est dans les dépendances
100
- HAS_PACKAGE=$(node -e "
101
- const pkg = require('./package.json');
102
- const hasIt = !!(
103
- (pkg.dependencies && pkg.dependencies['@lystech/core']) ||
104
- (pkg.devDependencies && pkg.devDependencies['@lystech/core']) ||
105
- (pkg.peerDependencies && pkg.peerDependencies['@lystech/core'])
106
- );
107
- console.log(hasIt ? 'true' : 'false');
108
- " 2>/dev/null || echo "false")
109
-
110
- echo "has_package=$HAS_PACKAGE" >> "$GITHUB_OUTPUT"
111
-
112
- if [ "$HAS_PACKAGE" = "true" ]; then
113
- echo "✅ Package @lystech/core trouvé dans les dépendances"
114
- else
115
- echo "❌ Package @lystech/core non trouvé"
116
- fi
117
-
118
- - name: Register in Package Registry
119
- if: steps.check-package.outputs.has_package == 'true'
120
- run: |
121
- echo "📝 Enregistrement dans le Package Registry..."
122
-
123
- # Construire le payload JSON
124
- PAYLOAD=$(jq -n \\
125
- --arg packageName "@lystech/core" \\
126
- --arg owner "\${{ steps.check-package.outputs.owner }}" \\
127
- --arg repo "\${{ steps.check-package.outputs.repo_name }}" \\
128
- --argjson repoId "\${{ steps.check-package.outputs.repo_id }}" \\
129
- '{packageName: $packageName, owner: $owner, repo: $repo, repoId: $repoId}')
130
-
131
- echo "📤 Payload envoyé:"
132
- echo "$PAYLOAD" | jq '.'
133
-
134
- RESPONSE=$(curl -s -X POST \\
135
- -H "Content-Type: application/json" \\
136
- -d "$PAYLOAD" \\
137
- https://lysbunback-usgg4.ondigitalocean.app/api/package-registry)
138
-
139
- echo "Réponse API:"
140
- echo "$RESPONSE" | jq '.'
141
-
142
- SUCCESS=$(echo "$RESPONSE" | jq -r '.success')
143
-
144
- if [ "$SUCCESS" = "true" ]; then
145
- echo "✅ Enregistré avec succès dans le registry"
146
- else
147
- echo "⚠️ L'enregistrement a échoué (peut-être déjà enregistré)"
148
- fi
149
-
150
- - name: Remove from Package Registry
151
- if: steps.check-package.outputs.has_package == 'false'
152
- run: |
153
- echo "🗑️ Suppression du Package Registry..."
154
-
155
- PACKAGE_NAME="@lystech/core"
156
- ENCODED_NAME=$(echo "$PACKAGE_NAME" | jq -sRr @uri)
157
-
158
- RESPONSE=$(curl -s -X DELETE \\
159
- "https://lysbunback-usgg4.ondigitalocean.app/api/package-registry/$ENCODED_NAME/\${{ steps.check-package.outputs.owner }}/\${{ steps.check-package.outputs.repo_name }}")
160
-
161
- echo "Réponse API:"
162
- echo "$RESPONSE" | jq '.'
163
-
164
- SUCCESS=$(echo "$RESPONSE" | jq -r '.success')
165
-
166
- if [ "$SUCCESS" = "true" ]; then
167
- echo "✅ Supprimé avec succès du registry"
168
- else
169
- echo "⚠️ La suppression a échoué (peut-être déjà supprimé)"
170
- fi
171
-
172
- - name: Summary
173
- if: always()
174
- run: |
175
- echo "### 📊 Résumé Sync Registry" >> $GITHUB_STEP_SUMMARY
176
- echo "" >> $GITHUB_STEP_SUMMARY
177
- echo "**Repo:** \${{ steps.check-package.outputs.owner }}/\${{ steps.check-package.outputs.repo_name }}" >> $GITHUB_STEP_SUMMARY
178
- echo "**Package @lystech/core:** \${{ steps.check-package.outputs.has_package == 'true' && '✅ Présent' || '❌ Absent' }}" >> $GITHUB_STEP_SUMMARY
179
- echo "" >> $GITHUB_STEP_SUMMARY
180
- if [ "\${{ steps.check-package.outputs.has_package }}" = "true" ]; then
181
- echo "**Action:** Enregistré dans le registry" >> $GITHUB_STEP_SUMMARY
182
- else
183
- echo "**Action:** Supprimé du registry" >> $GITHUB_STEP_SUMMARY
184
- fi
185
- `;
186
-
187
- try {
188
- // Créer le dossier .github/workflows s'il n'existe pas
189
- if (!fs.existsSync(workflowDir)) {
190
- fs.mkdirSync(workflowDir, { recursive: true });
191
- console.log("📂 Dossier .github/workflows créé");
192
- }
193
-
194
- // Créer le fichier workflow
195
- fs.writeFileSync(workflowPath, WORKFLOW_CONTENT, "utf8");
196
-
197
- console.log("✅ Workflow créé automatiquement!\n");
198
- console.log("📄 Fichier: .github/workflows/sync-package-registry.yml\n");
199
- console.log("📋 Prochaines étapes:");
200
- console.log(
201
- " 1. Commitez le workflow: git add .github/workflows/sync-package-registry.yml",
202
- );
203
- console.log(
204
- ' 2. Pushez: git commit -m "feat: add package registry auto-sync" && git push',
205
- );
206
- console.log(
207
- " 3. Votre projet recevra les mises à jour automatiques de @lystech/core!\n",
208
- );
209
- console.log(
210
- "💡 Pour désactiver: ajoutez SKIP_LYSTECH_SETUP=true dans vos variables d'environnement\n",
211
- );
212
- } catch (error) {
213
- console.error("❌ Erreur lors de la création du workflow:", error.message);
214
- // Ne pas faire échouer l'installation
215
- process.exit(0);
216
- }
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+
6
+ // Ne pas exécuter si on est dans le package lui-même (dev)
7
+ const currentDir = process.cwd();
8
+ const packageJsonPath = path.join(currentDir, "package.json");
9
+
10
+ if (!fs.existsSync(packageJsonPath)) {
11
+ console.log("⏭️ Pas de package.json trouvé, skip postinstall");
12
+ process.exit(0);
13
+ }
14
+
15
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
16
+
17
+ // Skip si c'est lystech-core lui-même
18
+ if (packageJson.name === "@lystech/core") {
19
+ console.log("⏭️ Postinstall skipped (package lystech-core lui-même)");
20
+ process.exit(0);
21
+ }
22
+
23
+ // Skip si variable d'environnement SKIP_LYSTECH_SETUP est définie
24
+ if (process.env.SKIP_LYSTECH_SETUP === "true") {
25
+ console.log("⏭️ Postinstall skipped (SKIP_LYSTECH_SETUP=true)");
26
+ process.exit(0);
27
+ }
28
+
29
+ // Vérifier si le package contient @lystech/core
30
+ const hasLystechCore = !!(
31
+ (packageJson.dependencies && packageJson.dependencies["@lystech/core"]) ||
32
+ (packageJson.devDependencies &&
33
+ packageJson.devDependencies["@lystech/core"]) ||
34
+ (packageJson.peerDependencies &&
35
+ packageJson.peerDependencies["@lystech/core"])
36
+ );
37
+
38
+ if (!hasLystechCore) {
39
+ console.log("⏭️ @lystech/core non trouvé dans les dépendances");
40
+ process.exit(0);
41
+ }
42
+
43
+ const workflowDir = path.join(currentDir, ".github", "workflows");
44
+ const workflowPath = path.join(workflowDir, "sync-package-registry.yml");
45
+
46
+ // Skip si le workflow existe déjà
47
+ if (fs.existsSync(workflowPath)) {
48
+ console.log("✅ Workflow sync-package-registry.yml déjà présent");
49
+ process.exit(0);
50
+ }
51
+
52
+ console.log(
53
+ "\n🚀 @lystech/core - Configuration automatique du Package Registry...\n",
54
+ );
55
+
56
+ const WORKFLOW_CONTENT = `name: Sync Package Registry
57
+
58
+ on:
59
+ push:
60
+ branches:
61
+ - master
62
+ - main
63
+ workflow_dispatch:
64
+
65
+ jobs:
66
+ sync-registry:
67
+ runs-on: ubuntu-latest
68
+
69
+ steps:
70
+ - name: Checkout
71
+ uses: actions/checkout@v4
72
+
73
+ - name: Check package.json for @lystech/core
74
+ id: check-package
75
+ run: |
76
+ echo "🔍 Vérification de package.json..."
77
+
78
+ # Extraire owner et repo depuis GITHUB_REPOSITORY (format: owner/repo)
79
+ OWNER="\${GITHUB_REPOSITORY%%/*}"
80
+ REPO_NAME="\${GITHUB_REPOSITORY#*/}"
81
+
82
+ echo "owner=$OWNER" >> "$GITHUB_OUTPUT"
83
+ echo "repo_name=$REPO_NAME" >> "$GITHUB_OUTPUT"
84
+ echo "📦 Repo: $OWNER/$REPO_NAME"
85
+
86
+ # Récupérer le repoId depuis l'API GitHub
87
+ REPO_ID=$(curl -s -H "Authorization: token \${{ secrets.GITHUB_TOKEN }}" \\
88
+ "https://api.github.com/repos/$OWNER/$REPO_NAME" | jq -r '.id')
89
+
90
+ echo "repo_id=$REPO_ID" >> "$GITHUB_OUTPUT"
91
+ echo "🆔 Repo ID: $REPO_ID"
92
+
93
+ # Vérifier que REPO_ID est valide (non vide et non null)
94
+ if [ -z "$REPO_ID" ] || [ "$REPO_ID" = "null" ]; then
95
+ echo "❌ Erreur: Impossible de récupérer le repo ID"
96
+ exit 1
97
+ fi
98
+
99
+ # Vérifier si @lystech/core est dans les dépendances
100
+ HAS_PACKAGE=$(node -e "
101
+ const pkg = require('./package.json');
102
+ const hasIt = !!(
103
+ (pkg.dependencies && pkg.dependencies['@lystech/core']) ||
104
+ (pkg.devDependencies && pkg.devDependencies['@lystech/core']) ||
105
+ (pkg.peerDependencies && pkg.peerDependencies['@lystech/core'])
106
+ );
107
+ console.log(hasIt ? 'true' : 'false');
108
+ " 2>/dev/null || echo "false")
109
+
110
+ echo "has_package=$HAS_PACKAGE" >> "$GITHUB_OUTPUT"
111
+
112
+ if [ "$HAS_PACKAGE" = "true" ]; then
113
+ echo "✅ Package @lystech/core trouvé dans les dépendances"
114
+ else
115
+ echo "❌ Package @lystech/core non trouvé"
116
+ fi
117
+
118
+ - name: Register in Package Registry
119
+ if: steps.check-package.outputs.has_package == 'true'
120
+ run: |
121
+ echo "📝 Enregistrement dans le Package Registry..."
122
+
123
+ # Construire le payload JSON
124
+ PAYLOAD=$(jq -n \\
125
+ --arg packageName "@lystech/core" \\
126
+ --arg owner "\${{ steps.check-package.outputs.owner }}" \\
127
+ --arg repo "\${{ steps.check-package.outputs.repo_name }}" \\
128
+ --argjson repoId "\${{ steps.check-package.outputs.repo_id }}" \\
129
+ '{packageName: $packageName, owner: $owner, repo: $repo, repoId: $repoId}')
130
+
131
+ echo "📤 Payload envoyé:"
132
+ echo "$PAYLOAD" | jq '.'
133
+
134
+ RESPONSE=$(curl -s -X POST \\
135
+ -H "Content-Type: application/json" \\
136
+ -d "$PAYLOAD" \\
137
+ https://lysbunback-usgg4.ondigitalocean.app/api/package-registry)
138
+
139
+ echo "Réponse API:"
140
+ echo "$RESPONSE" | jq '.'
141
+
142
+ SUCCESS=$(echo "$RESPONSE" | jq -r '.success')
143
+
144
+ if [ "$SUCCESS" = "true" ]; then
145
+ echo "✅ Enregistré avec succès dans le registry"
146
+ else
147
+ echo "⚠️ L'enregistrement a échoué (peut-être déjà enregistré)"
148
+ fi
149
+
150
+ - name: Remove from Package Registry
151
+ if: steps.check-package.outputs.has_package == 'false'
152
+ run: |
153
+ echo "🗑️ Suppression du Package Registry..."
154
+
155
+ PACKAGE_NAME="@lystech/core"
156
+ ENCODED_NAME=$(echo "$PACKAGE_NAME" | jq -sRr @uri)
157
+
158
+ RESPONSE=$(curl -s -X DELETE \\
159
+ "https://lysbunback-usgg4.ondigitalocean.app/api/package-registry/$ENCODED_NAME/\${{ steps.check-package.outputs.owner }}/\${{ steps.check-package.outputs.repo_name }}")
160
+
161
+ echo "Réponse API:"
162
+ echo "$RESPONSE" | jq '.'
163
+
164
+ SUCCESS=$(echo "$RESPONSE" | jq -r '.success')
165
+
166
+ if [ "$SUCCESS" = "true" ]; then
167
+ echo "✅ Supprimé avec succès du registry"
168
+ else
169
+ echo "⚠️ La suppression a échoué (peut-être déjà supprimé)"
170
+ fi
171
+
172
+ - name: Summary
173
+ if: always()
174
+ run: |
175
+ echo "### 📊 Résumé Sync Registry" >> $GITHUB_STEP_SUMMARY
176
+ echo "" >> $GITHUB_STEP_SUMMARY
177
+ echo "**Repo:** \${{ steps.check-package.outputs.owner }}/\${{ steps.check-package.outputs.repo_name }}" >> $GITHUB_STEP_SUMMARY
178
+ echo "**Package @lystech/core:** \${{ steps.check-package.outputs.has_package == 'true' && '✅ Présent' || '❌ Absent' }}" >> $GITHUB_STEP_SUMMARY
179
+ echo "" >> $GITHUB_STEP_SUMMARY
180
+ if [ "\${{ steps.check-package.outputs.has_package }}" = "true" ]; then
181
+ echo "**Action:** Enregistré dans le registry" >> $GITHUB_STEP_SUMMARY
182
+ else
183
+ echo "**Action:** Supprimé du registry" >> $GITHUB_STEP_SUMMARY
184
+ fi
185
+ `;
186
+
187
+ try {
188
+ // Créer le dossier .github/workflows s'il n'existe pas
189
+ if (!fs.existsSync(workflowDir)) {
190
+ fs.mkdirSync(workflowDir, { recursive: true });
191
+ console.log("📂 Dossier .github/workflows créé");
192
+ }
193
+
194
+ // Créer le fichier workflow
195
+ fs.writeFileSync(workflowPath, WORKFLOW_CONTENT, "utf8");
196
+
197
+ console.log("✅ Workflow créé automatiquement!\n");
198
+ console.log("📄 Fichier: .github/workflows/sync-package-registry.yml\n");
199
+ console.log("📋 Prochaines étapes:");
200
+ console.log(
201
+ " 1. Commitez le workflow: git add .github/workflows/sync-package-registry.yml",
202
+ );
203
+ console.log(
204
+ ' 2. Pushez: git commit -m "feat: add package registry auto-sync" && git push',
205
+ );
206
+ console.log(
207
+ " 3. Votre projet recevra les mises à jour automatiques de @lystech/core!\n",
208
+ );
209
+ console.log(
210
+ "💡 Pour désactiver: ajoutez SKIP_LYSTECH_SETUP=true dans vos variables d'environnement\n",
211
+ );
212
+ } catch (error) {
213
+ console.error("❌ Erreur lors de la création du workflow:", error.message);
214
+ // Ne pas faire échouer l'installation
215
+ process.exit(0);
216
+ }