@venizia/ignis-inversion 0.2.1 → 0.2.2-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.
@@ -5,6 +5,12 @@ export declare class ApplicationError extends Error {
5
5
  extra?: Record<string, unknown>;
6
6
  readonly logLevel?: TErrorLogLevel;
7
7
  constructor(opts: TError);
8
+ /**
9
+ * The message with its args filled in: `Only 2 left of TRA-01`. `message` itself stays the template,
10
+ * so a log or an error tracker never prints a value outside the args it redacts by key - call this
11
+ * where a plain reader stores or shows the text, such as a queue's failure reason.
12
+ */
13
+ toFilledText(): string;
8
14
  static getError(opts: TError): ApplicationError;
9
15
  static fromError(opts: {
10
16
  error: TResponsedError;
@@ -1 +1 @@
1
- {"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAgB1F,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;gBAEvB,IAAI,EAAE,MAAM;IA2CxB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,eAAe,CAAA;KAAE,GAAG,gBAAgB;CAcrE;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,gBAAmD,CAAC;AAE5F,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,KAAG,gBAC3B,CAAC;AAEnC,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAE5D,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAgB1F,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;gBAEvB,IAAI,EAAE,MAAM;IA2CxB;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAItB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,eAAe,CAAA;KAAE,GAAG,gBAAgB;CAcrE;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,gBAAmD,CAAC;AAE5F,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,KAAG,gBAC3B,CAAC;AAEnC,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAE5D,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isApplicationError = exports.fromError = exports.getError = exports.ApplicationError = void 0;
4
4
  const utilities_1 = require("../../common/utilities");
5
5
  const message_code_1 = require("./message-code");
6
+ const message_template_1 = require("./message-template");
6
7
  /** Consumed keys. Everything else rides into `extra`. */
7
8
  const KNOWN_KEYS = [
8
9
  'error',
@@ -49,6 +50,14 @@ class ApplicationError extends Error {
49
50
  })
50
51
  : normalized;
51
52
  }
53
+ /**
54
+ * The message with its args filled in: `Only 2 left of TRA-01`. `message` itself stays the template,
55
+ * so a log or an error tracker never prints a value outside the args it redacts by key - call this
56
+ * where a plain reader stores or shows the text, such as a queue's failure reason.
57
+ */
58
+ toFilledText() {
59
+ return message_template_1.MessageTemplate.render({ text: this.message, args: this.normalized.args }).text;
60
+ }
52
61
  static getError(opts) {
53
62
  return new ApplicationError(opts);
54
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export * from './app-error';
2
2
  export * from './common';
3
3
  export * from './definition';
4
4
  export * from './message-code';
5
+ export * from './message-template';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -18,4 +18,5 @@ __exportStar(require("./app-error"), exports);
18
18
  __exportStar(require("./common"), exports);
19
19
  __exportStar(require("./definition"), exports);
20
20
  __exportStar(require("./message-code"), exports);
21
+ __exportStar(require("./message-template"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/error/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/error/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Fills a catalog template - `Only %{available} left of %{sku}` - from its args. The error keeps the
3
+ * template in `message` and `normalized.text`, so a log redacts values by key and a client can
4
+ * translate `code` + `args`; this is where a reader that wants the sentence gets it.
5
+ */
6
+ export declare class MessageTemplate {
7
+ /**
8
+ * Each `%{key}` replaced by `String(args[key])`. A key with no arg (absent or `undefined`) stays as
9
+ * written and is listed in `missing`. Never throws: it runs inside the last-resort error handler.
10
+ */
11
+ static render(opts: {
12
+ text: string;
13
+ args: unknown;
14
+ }): {
15
+ text: string;
16
+ missing: Array<string>;
17
+ };
18
+ }
19
+ //# sourceMappingURL=message-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-template.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/message-template.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE;CAuB/F"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageTemplate = void 0;
4
+ /** `%{key}`: a placeholder a catalog message carries for one of its args. */
5
+ const PLACEHOLDER_PATTERN = /%\{(\w+)\}/g;
6
+ /**
7
+ * Fills a catalog template - `Only %{available} left of %{sku}` - from its args. The error keeps the
8
+ * template in `message` and `normalized.text`, so a log redacts values by key and a client can
9
+ * translate `code` + `args`; this is where a reader that wants the sentence gets it.
10
+ */
11
+ class MessageTemplate {
12
+ /**
13
+ * Each `%{key}` replaced by `String(args[key])`. A key with no arg (absent or `undefined`) stays as
14
+ * written and is listed in `missing`. Never throws: it runs inside the last-resort error handler.
15
+ */
16
+ static render(opts) {
17
+ const { text, args } = opts;
18
+ const values = typeof args === 'object' && args !== null ? args : {};
19
+ const missing = new Set();
20
+ const rendered = text.replace(PLACEHOLDER_PATTERN, (placeholder, key) => {
21
+ const value = Object.hasOwn(values, key) ? Reflect.get(values, key) : undefined;
22
+ if (value === undefined) {
23
+ missing.add(key);
24
+ return placeholder;
25
+ }
26
+ try {
27
+ return String(value);
28
+ }
29
+ catch {
30
+ // A null-prototype object has no `toString`; leave its placeholder rather than fail.
31
+ return placeholder;
32
+ }
33
+ });
34
+ return { text: rendered, missing: [...missing] };
35
+ }
36
+ }
37
+ exports.MessageTemplate = MessageTemplate;
38
+ //# sourceMappingURL=message-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-template.js","sourceRoot":"","sources":["../../../../src/modules/error/message-template.ts"],"names":[],"mappings":";;;AAAA,6EAA6E;AAC7E,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAE1C;;;;GAIG;AACH,MAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAqC;QACjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,WAAW,EAAE,GAAW,EAAE,EAAE;YAC9E,MAAM,KAAK,GAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEzF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,qFAAqF;gBACrF,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;IACnD,CAAC;CACF;AA5BD,0CA4BC"}
@@ -5,6 +5,12 @@ export declare class ApplicationError extends Error {
5
5
  extra?: Record<string, unknown>;
6
6
  readonly logLevel?: TErrorLogLevel;
7
7
  constructor(opts: TError);
8
+ /**
9
+ * The message with its args filled in: `Only 2 left of TRA-01`. `message` itself stays the template,
10
+ * so a log or an error tracker never prints a value outside the args it redacts by key - call this
11
+ * where a plain reader stores or shows the text, such as a queue's failure reason.
12
+ */
13
+ toFilledText(): string;
8
14
  static getError(opts: TError): ApplicationError;
9
15
  static fromError(opts: {
10
16
  error: TResponsedError;
@@ -1 +1 @@
1
- {"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAgB1F,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;gBAEvB,IAAI,EAAE,MAAM;IA2CxB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,eAAe,CAAA;KAAE,GAAG,gBAAgB;CAcrE;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,gBAAmD,CAAC;AAE5F,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,KAAG,gBAC3B,CAAC;AAEnC,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAE5D,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAgB1F,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;gBAEvB,IAAI,EAAE,MAAM;IA2CxB;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAItB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,eAAe,CAAA;KAAE,GAAG,gBAAgB;CAcrE;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,gBAAmD,CAAC;AAE5F,eAAO,MAAM,SAAS,GAAI,MAAM;IAAE,KAAK,EAAE,eAAe,CAAA;CAAE,KAAG,gBAC3B,CAAC;AAEnC,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,gBAE5D,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { omit } from '../../common/utilities.js';
2
2
  import { MessageCode } from './message-code.js';
3
+ import { MessageTemplate } from './message-template.js';
3
4
  /** Consumed keys. Everything else rides into `extra`. */
4
5
  const KNOWN_KEYS = [
5
6
  'error',
@@ -46,6 +47,14 @@ export class ApplicationError extends Error {
46
47
  })
47
48
  : normalized;
48
49
  }
50
+ /**
51
+ * The message with its args filled in: `Only 2 left of TRA-01`. `message` itself stays the template,
52
+ * so a log or an error tracker never prints a value outside the args it redacts by key - call this
53
+ * where a plain reader stores or shows the text, such as a queue's failure reason.
54
+ */
55
+ toFilledText() {
56
+ return MessageTemplate.render({ text: this.message, args: this.normalized.args }).text;
57
+ }
49
58
  static getError(opts) {
50
59
  return new ApplicationError(opts);
51
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../../../src/modules/error/app-error.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export * from './app-error.js';
2
2
  export * from './common/index.js';
3
3
  export * from './definition.js';
4
4
  export * from './message-code.js';
5
+ export * from './message-template.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -2,4 +2,5 @@ export * from './app-error.js';
2
2
  export * from './common/index.js';
3
3
  export * from './definition.js';
4
4
  export * from './message-code.js';
5
+ export * from './message-template.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Fills a catalog template - `Only %{available} left of %{sku}` - from its args. The error keeps the
3
+ * template in `message` and `normalized.text`, so a log redacts values by key and a client can
4
+ * translate `code` + `args`; this is where a reader that wants the sentence gets it.
5
+ */
6
+ export declare class MessageTemplate {
7
+ /**
8
+ * Each `%{key}` replaced by `String(args[key])`. A key with no arg (absent or `undefined`) stays as
9
+ * written and is listed in `missing`. Never throws: it runs inside the last-resort error handler.
10
+ */
11
+ static render(opts: {
12
+ text: string;
13
+ args: unknown;
14
+ }): {
15
+ text: string;
16
+ missing: Array<string>;
17
+ };
18
+ }
19
+ //# sourceMappingURL=message-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-template.d.ts","sourceRoot":"","sources":["../../../../src/modules/error/message-template.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE;CAuB/F"}
@@ -0,0 +1,34 @@
1
+ /** `%{key}`: a placeholder a catalog message carries for one of its args. */
2
+ const PLACEHOLDER_PATTERN = /%\{(\w+)\}/g;
3
+ /**
4
+ * Fills a catalog template - `Only %{available} left of %{sku}` - from its args. The error keeps the
5
+ * template in `message` and `normalized.text`, so a log redacts values by key and a client can
6
+ * translate `code` + `args`; this is where a reader that wants the sentence gets it.
7
+ */
8
+ export class MessageTemplate {
9
+ /**
10
+ * Each `%{key}` replaced by `String(args[key])`. A key with no arg (absent or `undefined`) stays as
11
+ * written and is listed in `missing`. Never throws: it runs inside the last-resort error handler.
12
+ */
13
+ static render(opts) {
14
+ const { text, args } = opts;
15
+ const values = typeof args === 'object' && args !== null ? args : {};
16
+ const missing = new Set();
17
+ const rendered = text.replace(PLACEHOLDER_PATTERN, (placeholder, key) => {
18
+ const value = Object.hasOwn(values, key) ? Reflect.get(values, key) : undefined;
19
+ if (value === undefined) {
20
+ missing.add(key);
21
+ return placeholder;
22
+ }
23
+ try {
24
+ return String(value);
25
+ }
26
+ catch {
27
+ // A null-prototype object has no `toString`; leave its placeholder rather than fail.
28
+ return placeholder;
29
+ }
30
+ });
31
+ return { text: rendered, missing: [...missing] };
32
+ }
33
+ }
34
+ //# sourceMappingURL=message-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-template.js","sourceRoot":"","sources":["../../../../src/modules/error/message-template.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAE1C;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAqC;QACjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,WAAW,EAAE,GAAW,EAAE,EAAE;YAC9E,MAAM,KAAK,GAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEzF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,qFAAqF;gBACrF,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;IACnD,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venizia/ignis-inversion",
3
- "version": "0.2.1",
3
+ "version": "0.2.2-0",
4
4
  "description": "Lightweight, high-performance Dependency Injection and Inversion of Control container for TypeScript (~350 lines). Features decorator-based constructor and property injection, fluent Binding API, singleton/transient scoping, namespace auto-tagging, Provider pattern, tag-based discovery, and reflect-metadata integration. Inspired by LoopBack 4 and InversifyJS but simpler. Zero framework lock-in — works standalone or with Ignis.",
5
5
  "keywords": [
6
6
  "architecture",