@capytale/activity.js 3.1.12 → 3.1.14
Sign up to get free protection for your applications and to get access to all the features.
- package/activity/activityBunch/base/nodes/base.d.ts +1 -0
- package/activity/activityBunch/base/nodes/base.js +1 -0
- package/activity/activityBunch/base/nodes/base.js.map +1 -1
- package/api/logger.d.ts +55 -11
- package/api/logger.js +32 -16
- package/api/logger.js.map +1 -1
- package/backend/capytale/logger.d.ts +7 -11
- package/backend/capytale/logger.js +6 -0
- package/backend/capytale/logger.js.map +1 -1
- package/package.json +1 -1
@@ -18,6 +18,7 @@ declare abstract class ActivityNode extends Node {
|
|
18
18
|
readonly created: Field<'Date', 'Single', 'Read'>;
|
19
19
|
readonly changed: Field<'Date', 'Single', 'Read'>;
|
20
20
|
readonly shared_notes: Field<'String', 'Single', 'Write'>;
|
21
|
+
readonly has_evaluation: Field<'Boolean', 'Single', 'Read'>;
|
21
22
|
/**
|
22
23
|
* activityType :
|
23
24
|
* - console.python
|
@@ -25,6 +25,7 @@ class ActivityNode extends Node {
|
|
25
25
|
created: Field('Date', 'Single', 'Read', 'created'),
|
26
26
|
changed: Field('Date', 'Single', 'Read', 'changed'),
|
27
27
|
shared_notes: Field('String', 'Single', 'Write', 'field_answer_sheet'),
|
28
|
+
has_evaluation: Field('Boolean', 'Single', 'Read'),
|
28
29
|
};
|
29
30
|
/**
|
30
31
|
* activityType :
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/activity/activityBunch/base/nodes/base.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,SAAS,EAAM,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,aAAa,MAAM,SAAS,CAAC;AAEpC,SAAS,KAAK,CAAC,CAAgC;IAC3C,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC,CAAC;IACjG,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC,CAAC;IACjG,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAClE,CAAC;AAED,MAAe,YAAa,SAAQ,IAAI;IACpC,MAAM,CAAU,MAAM,GAA8B;QAChD,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;QAC1B,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC;QAC3E,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;QACpD,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QACvC,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC;QAC/C,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QAC9C,gBAAgB,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC;QACtD,cAAc,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QACjD,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC;QAC3D,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC;QACrE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;QACnD,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;QACnD,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC;
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/activity/activityBunch/base/nodes/base.ts"],"names":[],"mappings":"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","sourcesContent":["import Node from \"~entity/node\";\nimport { Field, TitleField, ReferenceField } from \"~entity/fieldDefinition\";\nimport type { FieldDefinitionCollection } from \"~entity/fieldDefinition\";\nimport { int_to_wf, wf, wf_to_int } from \"~/field/workflow\";\nimport ActivityError from \"~/error\";\n\nfunction isNew(n: ActivityNode | AssignmentNode): boolean {\n if (n.created.value == null) throw new ActivityError('La propriété created n\\'est pas définie.');\n if (n.changed.value == null) throw new ActivityError('La propriété changed n\\'est pas définie.');\n return n.created.value.getTime() >= n.changed.value.getTime();\n}\n\nabstract class ActivityNode extends Node {\n static readonly fields: FieldDefinitionCollection = {\n title: TitleField('Write'),\n _instructions: Field('FormatedText', 'Multi', 'Write', 'field_description'),\n status_clonable: Field('Boolean', 'Single', 'Write'),\n code: Field('String', 'Single', 'Read'),\n associates: Field('Reference', 'Multi', 'Read'),\n attached_files: Field('File', 'Multi', 'Read'),\n access_timerange: Field('TimeRange', 'Single', 'Read'),\n access_tr_mode: Field('String', 'Single', 'Read'),\n activity_type: Field('String', 'Single', 'Read'),\n _config: Field('String', 'Single', 'Write', 'field_config'),\n _anti_cheat: Field('AntiCheat', 'Single', 'Read', 'field_anti_cheat'),\n created: Field('Date', 'Single', 'Read', 'created'),\n changed: Field('Date', 'Single', 'Read', 'changed'),\n shared_notes: Field('String', 'Single', 'Write', 'field_answer_sheet'),\n has_evaluation: Field('Boolean', 'Single', 'Read'),\n };\n declare readonly title: TitleField<'Write'>;\n declare readonly _instructions: Field<'FormatedText', 'Multi', 'Write'>;\n declare readonly status_clonable: Field<'Boolean', 'Single', 'Write'>;\n declare readonly code: Field<'String', 'Single', 'Read'>;\n declare readonly associates: Field<'Reference', 'Multi', 'Read'>;\n declare readonly attached_files: Field<'File', 'Multi', 'Read'>;\n declare readonly access_timerange: Field<'TimeRange', 'Single', 'Read'>;\n declare readonly access_tr_mode: Field<'String', 'Single', 'Read'>;\n declare readonly activity_type: Field<'String', 'Single', 'Read'>;\n declare readonly _config: Field<'String', 'Single', 'Write'>;\n declare readonly _anti_cheat: Field<'AntiCheat', 'Single', 'Read'>;\n declare readonly created: Field<'Date', 'Single', 'Read'>;\n declare readonly changed: Field<'Date', 'Single', 'Read'>;\n declare readonly shared_notes: Field<'String', 'Single', 'Write'>;\n declare readonly has_evaluation: Field<'Boolean', 'Single', 'Read'>;\n\n /**\n * activityType :\n * - console.python\n * - notebook.python\n * - notebook.sql\n * - notebook.ocaml\n * - html\n * - pixel\n * - codabloc\n */\n get activityType(): string {\n return this.activity_type.value as string;\n };\n\n /**\n * Indique si l'objet est nouveau ou non.\n * Cette propriété n'est pas mise à jour automatiquement lors d'une sauvegarde ou d'un touch().\n */\n get isNew(): boolean {\n return isNew(this);\n }\n\n}\n\nabstract class AssignmentNode extends Node {\n static readonly bundle = 'student_assignment';\n static readonly fields: FieldDefinitionCollection = {\n activity: ReferenceField('Single'),\n grading: Field('String', 'Single', 'Write', 'field_evaluation'),\n comments: Field('String', 'Single', 'Write', 'field_appreciation'),\n _wf: Field('Number', 'Single', 'Write', 'field_workflow'),\n created: Field('Date', 'Single', 'Read', 'created'),\n changed: Field('Date', 'Single', 'Read', 'changed'),\n shared_notes: Field('String', 'Single', 'Write', 'field_answer_sheet'),\n };\n declare readonly activity: ReferenceField<'Single'>;\n declare readonly grading: Field<'String', 'Single', 'Write'>;\n declare readonly comments: Field<'String', 'Single', 'Write'>;\n declare protected readonly _wf: Field<'Number', 'Single', 'Write'>;\n declare readonly created: Field<'Date', 'Single', 'Read'>;\n declare readonly changed: Field<'Date', 'Single', 'Read'>;\n declare readonly shared_notes: Field<'String', 'Single', 'Write'>;\n get workflow(): wf { return int_to_wf(this._wf.value as number); }\n set workflow(v: wf) {\n let msg = \"Assigner une valeur à la propriété workflow est interdit. Utilisez la méthode asynchrone changeWorkflow à la place.\";\n console.log(msg);\n throw new ActivityError(msg);\n }\n\n /**\n * Indique si l'objet est nouveau ou non.\n * Cette propriété n'est pas mise à jour automatiquement lors d'une sauvegarde ou d'un touch().\n */\n get isNew(): boolean {\n return isNew(this);\n }\n changeWorkflow(v: wf): Promise<void> {\n let wfn = wf_to_int(v);\n if (this._wf.value === wfn) return Promise.resolve();\n this._wf.value = wfn;\n return this._wf.save();\n }\n}\n\nexport { ActivityNode, AssignmentNode }\n"]}
|
package/api/logger.d.ts
CHANGED
@@ -1,12 +1,56 @@
|
|
1
1
|
import type { HttpBackend } from "./http/backend";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
2
|
+
interface Report {
|
3
|
+
/**
|
4
|
+
* Log un message d'information
|
5
|
+
*
|
6
|
+
* @param message Message à logger
|
7
|
+
*/
|
8
|
+
notice(...message: string[] | [string[]]): void;
|
9
|
+
/**
|
10
|
+
* Log un message d'avertissement
|
11
|
+
*
|
12
|
+
* @param message Message à logger
|
13
|
+
*/
|
14
|
+
warning(...message: string[] | [string[]]): void;
|
15
|
+
/**
|
16
|
+
* Log un message d'erreur
|
17
|
+
*
|
18
|
+
* @param message Message à logger
|
19
|
+
*/
|
20
|
+
error(...message: string[] | [string[]]): void;
|
21
|
+
/**
|
22
|
+
* Envoie le rapport
|
23
|
+
*
|
24
|
+
* @param force Envoie le rapport même s'il est vide
|
25
|
+
*/
|
26
|
+
send(force?: boolean): void;
|
27
|
+
}
|
28
|
+
export interface Logger {
|
29
|
+
/**
|
30
|
+
* Log un message d'information
|
31
|
+
*
|
32
|
+
* @param message Message à logger
|
33
|
+
*/
|
34
|
+
notice(...message: string[] | [string[]]): void;
|
35
|
+
/**
|
36
|
+
* Log un message d'avertissement
|
37
|
+
*
|
38
|
+
* @param message Message à logger
|
39
|
+
*/
|
40
|
+
warning(...message: string[] | [string[]]): void;
|
41
|
+
/**
|
42
|
+
* Log un message d'erreur
|
43
|
+
*
|
44
|
+
* @param message Message à logger
|
45
|
+
*/
|
46
|
+
error(...message: string[] | [string[]]): void;
|
47
|
+
/**
|
48
|
+
* Crée un rapport qui peut être envoyé plus tard
|
49
|
+
*
|
50
|
+
* @param title Titre du rapport
|
51
|
+
* @returns Objet Rapport
|
52
|
+
*/
|
53
|
+
report(...title: string[] | [string[]]): Report;
|
54
|
+
}
|
55
|
+
declare const _default: (backend: HttpBackend) => (channel: string) => Logger;
|
56
|
+
export default _default;
|
package/api/logger.js
CHANGED
@@ -1,37 +1,53 @@
|
|
1
1
|
const levels = ['notice', 'warning', 'error'];
|
2
|
-
|
3
|
-
|
2
|
+
function parseParam(m) {
|
3
|
+
if (m.length === 1 && Array.isArray(m[0])) {
|
4
|
+
return m[0];
|
5
|
+
}
|
6
|
+
return m;
|
7
|
+
}
|
8
|
+
export default (function (backend) {
|
9
|
+
return (function (channel) {
|
4
10
|
function log(level, message) {
|
11
|
+
message = parseParam(message);
|
5
12
|
return backend.postJsonAsync('/web/capytale/api/logger', { channel, level: levels[level], message });
|
6
13
|
}
|
7
|
-
|
8
|
-
|
14
|
+
/**
|
15
|
+
* Crée un rapport qui peut être envoyé plus tard
|
16
|
+
*
|
17
|
+
* @param title Titre du rapport
|
18
|
+
* @returns Objet Rapport
|
19
|
+
*/
|
20
|
+
function report(...title) {
|
21
|
+
title = parseParam(title);
|
22
|
+
const msg = [];
|
9
23
|
let level = 0;
|
10
24
|
function add(l, message) {
|
25
|
+
message = parseParam(message);
|
11
26
|
if (l > level)
|
12
27
|
level = l;
|
13
|
-
|
28
|
+
message = message.map(m => `[${levels[l]}] ${m.trim()}`);
|
29
|
+
msg.push(...message);
|
14
30
|
}
|
15
31
|
function send(force = false) {
|
16
|
-
if (!force &&
|
32
|
+
if (!force && msg.length === 0)
|
17
33
|
return;
|
18
|
-
log(level,
|
19
|
-
|
34
|
+
log(level, [...title, ...msg]);
|
35
|
+
msg.length = 0;
|
20
36
|
level = 0;
|
21
37
|
}
|
22
38
|
return {
|
23
|
-
notice(message) { add(0, message); },
|
24
|
-
warning(message) { add(1, message); },
|
25
|
-
error(message) { add(2, message); },
|
39
|
+
notice(...message) { add(0, message); },
|
40
|
+
warning(...message) { add(1, message); },
|
41
|
+
error(...message) { add(2, message); },
|
26
42
|
send,
|
27
43
|
};
|
28
44
|
}
|
29
45
|
return {
|
30
|
-
notice(message) { log(0, message); },
|
31
|
-
warning(message) { log(1, message); },
|
32
|
-
error(message) { log(2, message); },
|
46
|
+
notice(...message) { log(0, message); },
|
47
|
+
warning(...message) { log(1, message); },
|
48
|
+
error(...message) { log(2, message); },
|
33
49
|
report,
|
34
50
|
};
|
35
|
-
};
|
36
|
-
}
|
51
|
+
});
|
52
|
+
});
|
37
53
|
//# sourceMappingURL=logger.js.map
|
package/api/logger.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/api/logger.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAuC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/api/logger.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAuC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAwDlF,SAAS,UAAU,CAAC,CAAwB;IAC1C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,CAAa,CAAC;AACvB,CAAC;AAGD,eAAe,CACb,UAAU,OAAoB;IAC5B,OAAO,CACL,UAAU,OAAe;QACvB,SAAS,GAAG,CACV,KAAgB,EAChB,OAA8B;YAC9B,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,OAAO,CAAC,aAAa,CAC1B,0BAA0B,EAC1B,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAC3C,CAAC;QACJ,CAAC;QAED;;;;;WAKG;QACH,SAAS,MAAM,CAAC,GAAG,KAA4B;YAC7C,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,IAAI,KAAK,GAAc,CAAC,CAAC;YAEzB,SAAS,GAAG,CAAC,CAAY,EAAE,OAA8B;gBACvD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC9B,IAAI,CAAC,GAAG,KAAK;oBAAE,KAAK,GAAG,CAAC,CAAC;gBACzB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YACvB,CAAC;YAED,SAAS,IAAI,CAAC,KAAK,GAAG,KAAK;gBACzB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBACvC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAI,KAAkB,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC7C,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBACf,KAAK,GAAG,CAAC,CAAC;YACZ,CAAC;YAED,OAAO;gBACL,MAAM,CAAC,GAAG,OAA8B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,OAA8B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/D,KAAK,CAAC,GAAG,OAA8B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7D,IAAI;aACL,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,CAAC,GAAG,OAA8B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,OAA8B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/D,KAAK,CAAC,GAAG,OAA8B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM;SACG,CAAC;IACd,CAAC,CACF,CAAC;AACJ,CAAC,CACF,CAAA","sourcesContent":["import type { HttpBackend } from \"./http/backend\";\n\nconst levels: ('notice' | 'warning' | 'error')[] = ['notice', 'warning', 'error'];\n\ninterface Report {\n /**\n * Log un message d'information\n * \n * @param message Message à logger\n */\n notice(...message: string[] | [string[]]): void;\n /**\n * Log un message d'avertissement\n * \n * @param message Message à logger\n */\n warning(...message: string[] | [string[]]): void;\n /**\n * Log un message d'erreur\n * \n * @param message Message à logger\n */\n error(...message: string[] | [string[]]): void;\n /**\n * Envoie le rapport\n * \n * @param force Envoie le rapport même s'il est vide\n */\n send(force?: boolean): void;\n}\nexport interface Logger {\n /**\n * Log un message d'information\n * \n * @param message Message à logger\n */\n notice(...message: string[] | [string[]]): void;\n /**\n * Log un message d'avertissement\n * \n * @param message Message à logger\n */\n warning(...message: string[] | [string[]]): void;\n /**\n * Log un message d'erreur\n * \n * @param message Message à logger\n */\n error(...message: string[] | [string[]]): void;\n /**\n * Crée un rapport qui peut être envoyé plus tard\n * \n * @param title Titre du rapport\n * @returns Objet Rapport\n */\n report(...title: string[] | [string[]]): Report;\n}\n\nfunction parseParam(m: string[] | [string[]]): string[] {\n if (m.length === 1 && Array.isArray(m[0])) {\n return m[0];\n }\n return m as string[];\n}\n\n\nexport default (\n function (backend: HttpBackend) {\n return (\n function (channel: string) {\n function log(\n level: 0 | 1 | 2,\n message: string[] | [string[]]): Promise<void> {\n message = parseParam(message);\n return backend.postJsonAsync(\n '/web/capytale/api/logger',\n { channel, level: levels[level], message }\n );\n }\n\n /**\n * Crée un rapport qui peut être envoyé plus tard\n * \n * @param title Titre du rapport\n * @returns Objet Rapport\n */\n function report(...title: string[] | [string[]]) {\n title = parseParam(title);\n const msg: string[] = [];\n let level: 0 | 1 | 2 = 0;\n\n function add(l: 0 | 1 | 2, message: string[] | [string[]]) {\n message = parseParam(message);\n if (l > level) level = l;\n message = message.map(m => `[${levels[l]}] ${m.trim()}`);\n msg.push(...message);\n }\n\n function send(force = false): void {\n if (!force && msg.length === 0) return;\n log(level, [...(title as string[]), ...msg]);\n msg.length = 0;\n level = 0;\n }\n\n return {\n notice(...message: string[] | [string[]]) { add(0, message); },\n warning(...message: string[] | [string[]]) { add(1, message); },\n error(...message: string[] | [string[]]) { add(2, message); },\n send,\n };\n }\n\n return {\n notice(...message: string[] | [string[]]) { log(0, message); },\n warning(...message: string[] | [string[]]) { log(1, message); },\n error(...message: string[] | [string[]]) { log(2, message); },\n report,\n } as Logger;\n }\n );\n }\n)"]}
|
@@ -1,12 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
error(message: string): void;
|
9
|
-
send: (force?: boolean) => void;
|
10
|
-
};
|
11
|
-
};
|
1
|
+
/**
|
2
|
+
* Crée un logger pour le canal donné
|
3
|
+
*
|
4
|
+
* @param channel canal de log
|
5
|
+
* @returns objet Logger
|
6
|
+
*/
|
7
|
+
declare const _default: (channel: string) => import("../../api/logger").Logger;
|
12
8
|
export default _default;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/backend/capytale/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC,eAAe,SAAS,CAAC,IAAI,CAAC,CAAC","sourcesContent":["import http from \"./http\";\nimport loggerApi from \"../../api/logger\";\n\nexport default loggerApi(http);"]}
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/backend/capytale/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC;;;;;GAKG;AACH,eAAe,SAAS,CAAC,IAAI,CAAC,CAAC","sourcesContent":["import http from \"./http\";\nimport loggerApi from \"../../api/logger\";\n\n/**\n * Crée un logger pour le canal donné\n * \n * @param channel canal de log\n * @returns objet Logger\n */\nexport default loggerApi(http);"]}
|