@iveri/contracts 0.18.0 → 0.19.0

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
@@ -3,6 +3,11 @@
3
3
  The wire contract every Iveri service and frontend compiles against: shared types and plain
4
4
  enums, and nothing else.
5
5
 
6
+ Release `0.19.0` adds `MessageVariableInput` — a declaration as a client sends it, where the
7
+ optional halves may be absent. A separate type rather than `MessageVariable` with everything
8
+ optional, because omitting a field on the way in and receiving `null` on the way out are
9
+ different statements.
10
+
6
11
  Release `0.18.0` adds the localization contract under `@iveri/contracts/localization` —
7
12
  `Locale`, `Namespace`, `Message` with its declared `MessageVariable` list, `Translation`,
8
13
  `Release`, the build-time `TranslationBundle` and the runtime render shapes — plus five
@@ -24,6 +24,22 @@ export interface MessageVariable {
24
24
  */
25
25
  options: Nullable<string[]>;
26
26
  }
27
+ /**
28
+ * A declaration as a *client sends* it, where the optional halves may simply be absent.
29
+ *
30
+ * A separate type from {@link MessageVariable} rather than that one with everything optional,
31
+ * because the two directions genuinely differ: on the way in, omitting `description` means "I
32
+ * have nothing to say"; on the way out, the field is always present and `null` says the same
33
+ * thing explicitly. Collapsing them forces every reader to handle `undefined` for a field the
34
+ * server always sends.
35
+ */
36
+ export interface MessageVariableInput {
37
+ name: string;
38
+ type: VariableType;
39
+ description?: Nullable<string>;
40
+ example?: Nullable<string>;
41
+ options?: Nullable<string[]>;
42
+ }
27
43
  /**
28
44
  * A translatable string, identified by a key that never changes.
29
45
  *
@@ -71,7 +87,7 @@ export type MessagesPage = Paginated<Message>;
71
87
  export interface CreateMessageBody {
72
88
  key: string;
73
89
  description?: Nullable<string>;
74
- variables?: MessageVariable[];
90
+ variables?: MessageVariableInput[];
75
91
  /** The source-locale text. Written as an `APPROVED` translation in the same transaction. */
76
92
  sourceValue: string;
77
93
  }
@@ -84,7 +100,7 @@ export interface CreateMessageBody {
84
100
  */
85
101
  export interface UpdateMessageBody {
86
102
  description?: Nullable<string>;
87
- variables?: MessageVariable[];
103
+ variables?: MessageVariableInput[];
88
104
  isArchived?: boolean;
89
105
  }
90
106
  //# sourceMappingURL=message.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.type.d.ts","sourceRoot":"","sources":["../../../../src/api/localization/message.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC5B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,YAAY,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9B,iFAAiF;IACjF,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE1B;;;OAGG;IACH,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,IAAI,CAAC;IAET,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAErB,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;OAOG;IACH,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9B,SAAS,EAAE,eAAe,EAAE,CAAC;IAE7B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,uFAAuF;IACvF,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAE3C,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;CACpC;AAED,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAE9C,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"message.type.d.ts","sourceRoot":"","sources":["../../../../src/api/localization/message.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC5B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,YAAY,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9B,iFAAiF;IACjF,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE1B;;;OAGG;IACH,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,IAAI,CAAC;IAET,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAErB,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;OAOG;IACH,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9B,SAAS,EAAE,eAAe,EAAE,CAAC;IAE7B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,uFAAuF;IACvF,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAE3C,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;CACpC;AAED,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAE9C,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACnC,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB"}
@@ -24,6 +24,22 @@ export interface MessageVariable {
24
24
  */
25
25
  options: Nullable<string[]>;
26
26
  }
27
+ /**
28
+ * A declaration as a *client sends* it, where the optional halves may simply be absent.
29
+ *
30
+ * A separate type from {@link MessageVariable} rather than that one with everything optional,
31
+ * because the two directions genuinely differ: on the way in, omitting `description` means "I
32
+ * have nothing to say"; on the way out, the field is always present and `null` says the same
33
+ * thing explicitly. Collapsing them forces every reader to handle `undefined` for a field the
34
+ * server always sends.
35
+ */
36
+ export interface MessageVariableInput {
37
+ name: string;
38
+ type: VariableType;
39
+ description?: Nullable<string>;
40
+ example?: Nullable<string>;
41
+ options?: Nullable<string[]>;
42
+ }
27
43
  /**
28
44
  * A translatable string, identified by a key that never changes.
29
45
  *
@@ -71,7 +87,7 @@ export type MessagesPage = Paginated<Message>;
71
87
  export interface CreateMessageBody {
72
88
  key: string;
73
89
  description?: Nullable<string>;
74
- variables?: MessageVariable[];
90
+ variables?: MessageVariableInput[];
75
91
  /** The source-locale text. Written as an `APPROVED` translation in the same transaction. */
76
92
  sourceValue: string;
77
93
  }
@@ -84,7 +100,7 @@ export interface CreateMessageBody {
84
100
  */
85
101
  export interface UpdateMessageBody {
86
102
  description?: Nullable<string>;
87
- variables?: MessageVariable[];
103
+ variables?: MessageVariableInput[];
88
104
  isArchived?: boolean;
89
105
  }
90
106
  //# sourceMappingURL=message.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.type.d.ts","sourceRoot":"","sources":["../../../../src/api/localization/message.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC5B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,YAAY,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9B,iFAAiF;IACjF,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE1B;;;OAGG;IACH,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,IAAI,CAAC;IAET,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAErB,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;OAOG;IACH,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9B,SAAS,EAAE,eAAe,EAAE,CAAC;IAE7B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,uFAAuF;IACvF,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAE3C,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;CACpC;AAED,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAE9C,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"message.type.d.ts","sourceRoot":"","sources":["../../../../src/api/localization/message.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC5B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,YAAY,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9B,iFAAiF;IACjF,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE1B;;;OAGG;IACH,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,IAAI,CAAC;IAET,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAErB,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;OAOG;IACH,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE9B,SAAS,EAAE,eAAe,EAAE,CAAC;IAE7B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,uFAAuF;IACvF,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAE3C,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;CACpC;AAED,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAE9C,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACnC,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iveri/contracts",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "Wire contracts shared by every Iveri backend and frontend. Zero runtime dependencies.",
5
5
  "license": "MIT",
6
6
  "repository": {