@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.
@@ -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;KACzE,CAAC;IAgBF;;;;;;;;;OASG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAe,CAAC;IAC9C,CAAC;IAAA,CAAC;IAEF;;;OAGG;IACH,IAAI,KAAK;QACL,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;;AAIL,MAAe,cAAe,SAAQ,IAAI;IACtC,MAAM,CAAU,MAAM,GAAG,oBAAoB,CAAC;IAC9C,MAAM,CAAU,MAAM,GAA8B;QAChD,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;QAClC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAC/D,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC;QAClE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC;QACzD,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;KACzE,CAAC;IAQF,IAAI,QAAQ,KAAS,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,QAAQ,CAAC,CAAK;QACd,IAAI,GAAG,GAAG,qHAAqH,CAAC;QAChI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACL,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,cAAc,CAAC,CAAK;QAChB,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;;AAGL,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAA","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 };\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\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"]}
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
- export default function (backend: HttpBackend): (channel: string) => {
3
- notice(message: string | string[]): void;
4
- warning(message: string | string[]): void;
5
- error(message: string | string[]): void;
6
- report: (title: string) => {
7
- notice(message: string): void;
8
- warning(message: string): void;
9
- error(message: string): void;
10
- send: (force?: boolean) => void;
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
- export default function (backend) {
3
- return function (channel) {
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
- function report(title) {
8
- const messages = [title];
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
- messages.push(message);
28
+ message = message.map(m => `[${levels[l]}] ${m.trim()}`);
29
+ msg.push(...message);
14
30
  }
15
31
  function send(force = false) {
16
- if (!force && messages.length === 1)
32
+ if (!force && msg.length === 0)
17
33
  return;
18
- log(level, messages.slice());
19
- messages.length = 1;
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;AAElF,MAAM,CAAC,OAAO,WAAW,OAAoB;IAC3C,OAAO,UAAU,OAAe;QAC9B,SAAS,GAAG,CACV,KAAgB,EAChB,OAA0B;YAC1B,OAAO,OAAO,CAAC,aAAa,CAC1B,0BAA0B,EAC1B,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAC3C,CAAC;QACJ,CAAC;QAED,SAAS,MAAM,CAAC,KAAa;YAC3B,MAAM,QAAQ,GAAa,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,KAAK,GAAc,CAAC,CAAC;YAEzB,SAAS,GAAG,CAAC,CAAY,EAAE,OAAe;gBACxC,IAAI,CAAC,GAAG,KAAK;oBAAE,KAAK,GAAG,CAAC,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YAED,SAAS,IAAI,CAAC,KAAK,GAAG,KAAK;gBACzB,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAC5C,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpB,KAAK,GAAG,CAAC,CAAC;YACZ,CAAC;YAED,OAAO;gBACL,MAAM,CAAC,OAAe,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,OAAe,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7C,KAAK,CAAC,OAAe,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI;aACL,CAAA;QACH,CAAC;QAED,OAAO;YACL,MAAM,CAAC,OAA0B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,OAA0B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACxD,KAAK,CAAC,OAA0B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM;SACP,CAAC;IACJ,CAAC,CAAA;AACH,CAAC","sourcesContent":["import type { HttpBackend } from \"./http/backend\";\n\nconst levels: ('notice' | 'warning' | 'error')[] = ['notice', 'warning', 'error'];\n\nexport default function (backend: HttpBackend) {\n return function (channel: string) {\n function log(\n level: 0 | 1 | 2,\n message: string | string[]): Promise<void> {\n return backend.postJsonAsync(\n '/web/capytale/api/logger',\n { channel, level: levels[level], message }\n );\n }\n\n function report(title: string) {\n const messages: string[] = [title];\n let level: 0 | 1 | 2 = 0;\n\n function add(l: 0 | 1 | 2, message: string) {\n if (l > level) level = l;\n messages.push(message);\n }\n\n function send(force = false): void {\n if (!force && messages.length === 1) return;\n log(level, messages.slice());\n messages.length = 1;\n level = 0;\n }\n\n return {\n notice(message: string) { add(0, message); },\n warning(message: string) { add(1, message); },\n error(message: 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 };\n }\n}"]}
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
- declare const _default: (channel: string) => {
2
- notice(message: string | string[]): void;
3
- warning(message: string | string[]): void;
4
- error(message: string | string[]): void;
5
- report: (title: string) => {
6
- notice(message: string): void;
7
- warning(message: string): void;
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,4 +1,10 @@
1
1
  import http from "./http";
2
2
  import loggerApi from "../../api/logger";
3
+ /**
4
+ * Crée un logger pour le canal donné
5
+ *
6
+ * @param channel canal de log
7
+ * @returns objet Logger
8
+ */
3
9
  export default loggerApi(http);
4
10
  //# sourceMappingURL=logger.js.map
@@ -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);"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capytale/activity.js",
3
- "version": "3.1.12",
3
+ "version": "3.1.14",
4
4
  "bin": {
5
5
  "cactjs": "./bin/cactjs.js"
6
6
  },