freebox
freebox copied to clipboard
Problème d'import avec la v2.0.0
Salut, je viens d'essayer d'installer la librairie pour un projet personnel, et j'ai remarqué dans les commits que tu as remplacé la manière d'importer les paquets par la méthode CommonJS, mais cette méthode ne fonctionne pas pour les paquets externes, j'utilise Typescript, et j'ai essayé dans un contexte NextJS et avec TS-Node mais aucun ne marche. J'ai essayé de mettre la 1.3.4 et ça marche parfaitment avec la Freebox Delta, mais la 2.0.0 ne marche pas :
C:\Users\pierr\Downloads\node-typescript-template-master\node_modules\.pnpm\[email protected]\node_modules\freebox\index.js:1
import https from 'node:https';
^^^^^^
SyntaxError: Cannot use import statement outside a module
at internalCompileFunction (node:internal/vm:73:18)
at wrapSafe (node:internal/modules/cjs/loader:1149:20)
at Module._compile (node:internal/modules/cjs/loader:1190:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)
at Object.require.extensions.<computed> [as .js] (C:\Users\pierr\Downloads\node-typescript-template-master\node_modules\.pnpm\[email protected]_@[email protected][email protected]\node_modules\ts-node\src\index.ts:1608:43)
at Module.load (node:internal/modules/cjs/loader:1089:32)
at Function.Module._load (node:internal/modules/cjs/loader:930:12)
at Module.require (node:internal/modules/cjs/loader:1113:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (C:\Users\pierr\Downloads\node-typescript-template-master\src\index.ts:1:1)
[nodemon] app crashed - waiting for file changes before starting...
Avec la 1.3.4 :
Please check your Freebox Server LCD screen and authorize application access to register your app.
Your app has been granted access !
Save safely those following informations secret to connect to your Freebox API:
{
app_token: '*****************************',
app_id: 'fbx.delta',
api_domain: '*****************************',
https_port: 701,
api_base_url: '/api/',
api_version: '10.2'
}
Ca vient donc forcément des imports, mais voici tout de même mon code :
import { Freebox, FreeboxRegister } from "freebox";
import { readFile, writeFile } from "fs/promises";
import {existsSync} from "fs";
import { join } from "path";
async function main() {
const file = join(__dirname, "../freebox.json");
let preferences: any;
if (!existsSync(file)) {
const freeboxRegister = new FreeboxRegister({
app_id: "fbx.delta",
app_name: "YggDownloaderApp",
app_version: "1.0.0",
device_name: "YggServer",
});
preferences = await freeboxRegister.register();
await writeFile(file, JSON.stringify(preferences));
} else {
preferences = JSON.parse((await readFile(file)).toString());
}
const freebox = new Freebox({
...preferences,
});
await freebox.login();
const response = await freebox.request({
method: "GET",
url: "wifi/config",
});
console.log(response);
await freebox.logout();
}
main();