@spinajs/configuration 2.0.556 → 3.0.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.
Files changed (89) hide show
  1. package/lib/cjs/config/configuration.d.ts +1 -5
  2. package/lib/cjs/config/configuration.d.ts.map +1 -1
  3. package/lib/cjs/config/configuration.js +3 -1
  4. package/lib/cjs/config/configuration.js.map +1 -1
  5. package/lib/cjs/configuration.d.ts +24 -1
  6. package/lib/cjs/configuration.d.ts.map +1 -1
  7. package/lib/cjs/configuration.js +357 -82
  8. package/lib/cjs/configuration.js.map +1 -1
  9. package/lib/cjs/decorators.d.ts +77 -4
  10. package/lib/cjs/decorators.d.ts.map +1 -1
  11. package/lib/cjs/decorators.js +212 -11
  12. package/lib/cjs/decorators.js.map +1 -1
  13. package/lib/cjs/exception.d.ts +9 -1
  14. package/lib/cjs/exception.d.ts.map +1 -1
  15. package/lib/cjs/exception.js +2 -1
  16. package/lib/cjs/exception.js.map +1 -1
  17. package/lib/cjs/helpers.d.ts.map +1 -1
  18. package/lib/cjs/helpers.js +3 -2
  19. package/lib/cjs/helpers.js.map +1 -1
  20. package/lib/cjs/index.browser.d.ts +1 -0
  21. package/lib/cjs/index.browser.d.ts.map +1 -1
  22. package/lib/cjs/index.browser.js +4 -0
  23. package/lib/cjs/index.browser.js.map +1 -1
  24. package/lib/cjs/index.d.ts +3 -0
  25. package/lib/cjs/index.d.ts.map +1 -1
  26. package/lib/cjs/index.js +6 -0
  27. package/lib/cjs/index.js.map +1 -1
  28. package/lib/cjs/lib-dirs.d.ts +8 -0
  29. package/lib/cjs/lib-dirs.d.ts.map +1 -0
  30. package/lib/cjs/lib-dirs.js +16 -0
  31. package/lib/cjs/lib-dirs.js.map +1 -0
  32. package/lib/cjs/schemas.d.ts +20 -0
  33. package/lib/cjs/schemas.d.ts.map +1 -0
  34. package/lib/cjs/schemas.js +58 -0
  35. package/lib/cjs/schemas.js.map +1 -0
  36. package/lib/cjs/sources.d.ts +9 -3
  37. package/lib/cjs/sources.d.ts.map +1 -1
  38. package/lib/cjs/sources.js +27 -10
  39. package/lib/cjs/sources.js.map +1 -1
  40. package/lib/cjs/util.d.ts +8 -0
  41. package/lib/cjs/util.d.ts.map +1 -1
  42. package/lib/cjs/util.js +7 -1
  43. package/lib/cjs/util.js.map +1 -1
  44. package/lib/mjs/config/configuration.d.ts +1 -5
  45. package/lib/mjs/config/configuration.d.ts.map +1 -1
  46. package/lib/mjs/config/configuration.js +3 -1
  47. package/lib/mjs/config/configuration.js.map +1 -1
  48. package/lib/mjs/configuration.d.ts +24 -1
  49. package/lib/mjs/configuration.d.ts.map +1 -1
  50. package/lib/mjs/configuration.js +326 -84
  51. package/lib/mjs/configuration.js.map +1 -1
  52. package/lib/mjs/decorators.d.ts +77 -4
  53. package/lib/mjs/decorators.d.ts.map +1 -1
  54. package/lib/mjs/decorators.js +207 -12
  55. package/lib/mjs/decorators.js.map +1 -1
  56. package/lib/mjs/exception.d.ts +9 -1
  57. package/lib/mjs/exception.d.ts.map +1 -1
  58. package/lib/mjs/exception.js +2 -1
  59. package/lib/mjs/exception.js.map +1 -1
  60. package/lib/mjs/helpers.d.ts.map +1 -1
  61. package/lib/mjs/helpers.js +3 -2
  62. package/lib/mjs/helpers.js.map +1 -1
  63. package/lib/mjs/index.browser.d.ts +1 -0
  64. package/lib/mjs/index.browser.d.ts.map +1 -1
  65. package/lib/mjs/index.browser.js +1 -0
  66. package/lib/mjs/index.browser.js.map +1 -1
  67. package/lib/mjs/index.d.ts +3 -0
  68. package/lib/mjs/index.d.ts.map +1 -1
  69. package/lib/mjs/index.js +3 -0
  70. package/lib/mjs/index.js.map +1 -1
  71. package/lib/mjs/lib-dirs.d.ts +8 -0
  72. package/lib/mjs/lib-dirs.d.ts.map +1 -0
  73. package/lib/mjs/lib-dirs.js +13 -0
  74. package/lib/mjs/lib-dirs.js.map +1 -0
  75. package/lib/mjs/schemas.d.ts +20 -0
  76. package/lib/mjs/schemas.d.ts.map +1 -0
  77. package/lib/mjs/schemas.js +54 -0
  78. package/lib/mjs/schemas.js.map +1 -0
  79. package/lib/mjs/sources.d.ts +9 -3
  80. package/lib/mjs/sources.d.ts.map +1 -1
  81. package/lib/mjs/sources.js +27 -10
  82. package/lib/mjs/sources.js.map +1 -1
  83. package/lib/mjs/util.d.ts +8 -0
  84. package/lib/mjs/util.d.ts.map +1 -1
  85. package/lib/mjs/util.js +4 -0
  86. package/lib/mjs/util.js.map +1 -1
  87. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  88. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  89. package/package.json +7 -7
@@ -16,6 +16,7 @@
16
16
  *
17
17
  * These stay ordinary configuration values, so an app may override them in its own config - that
18
18
  * is the point of deciding it here rather than re-deriving it at each call site.
19
+ * `FrameworkConfiguration.load()` sets them from the `APP_ENV` it resolved, before the sources merge.
19
20
  *
20
21
  * @param env - process.env, taken as an argument so the derivation is testable without reloading
21
22
  * the module
@@ -26,11 +27,6 @@ export declare function buildEnvironmentFlags(env: NodeJS.ProcessEnv): {
26
27
  isLocal: boolean;
27
28
  };
28
29
  declare const config: {
29
- configuration: {
30
- isDevelopment: boolean;
31
- isProduction: boolean;
32
- isLocal: boolean;
33
- };
34
30
  app: {
35
31
  name: string;
36
32
  version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../src/config/configuration.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU;IAYxD,aAAa;IACb,YAAY;IACZ,OAAO;EAEV;AAED,QAAA,MAAM,MAAM;IACV,aAAa;;;;;IAEb,GAAG;QACD,IAAI;QACJ,OAAO;;CAEV,CAAC;eAEa,MAAM"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../src/config/configuration.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU;IAYxD,aAAa;IACb,YAAY;IACZ,OAAO;EAEV;AAID,QAAA,MAAM,MAAM;IACV,GAAG;QACD,IAAI;QACJ,OAAO;;CAEV,CAAC;eAEa,MAAM"}
@@ -20,6 +20,7 @@ const configuration_common_1 = require("@spinajs/configuration-common");
20
20
  *
21
21
  * These stay ordinary configuration values, so an app may override them in its own config - that
22
22
  * is the point of deciding it here rather than re-deriving it at each call site.
23
+ * `FrameworkConfiguration.load()` sets them from the `APP_ENV` it resolved, before the sources merge.
23
24
  *
24
25
  * @param env - process.env, taken as an argument so the derivation is testable without reloading
25
26
  * the module
@@ -40,8 +41,9 @@ function buildEnvironmentFlags(env) {
40
41
  isLocal: environment === 'local',
41
42
  };
42
43
  }
44
+ // No environment flags here: this file is evaluated at import, before `--env` and the `process.env`
45
+ // DI value are known, and as a config file it would override the flags load() derives from them.
43
46
  const config = {
44
- configuration: buildEnvironmentFlags(process.env),
45
47
  app: {
46
48
  name: 'spinajs',
47
49
  version: '1.0.0',
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/config/configuration.ts"],"names":[],"mappings":";;;AAAA,wEAAqE;AAErE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,+BAAsC,GAAsB;IAC1D,2EAA2E;IAC3E,iGAAiG;IACjG,uFAAuF;IACvF,EAAE;IACF,0FAA0F;IAC1F,gGAAgG;IAChG,+FAA+F;IAC/F,WAAW;IACX,MAAM,WAAW,GAAG,IAAA,2CAAoB,EAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC;IAEvF,OAAO;QACL,aAAa,EAAE,WAAW,KAAK,KAAK;QACpC,YAAY,EAAE,WAAW,KAAK,MAAM;QACpC,OAAO,EAAE,WAAW,KAAK,OAAO;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG;IACb,aAAa,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC;IAEjD,GAAG,EAAE;QACH,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO;KACjB;CACF,CAAC;kBAEa,MAAM"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/config/configuration.ts"],"names":[],"mappings":";;;AAAA,wEAAqE;AAErE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,+BAAsC,GAAsB;IAC1D,2EAA2E;IAC3E,iGAAiG;IACjG,uFAAuF;IACvF,EAAE;IACF,0FAA0F;IAC1F,gGAAgG;IAChG,+FAA+F;IAC/F,WAAW;IACX,MAAM,WAAW,GAAG,IAAA,2CAAoB,EAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC;IAEvF,OAAO;QACL,aAAa,EAAE,WAAW,KAAK,KAAK;QACpC,YAAY,EAAE,WAAW,KAAK,MAAM;QACpC,OAAO,EAAE,WAAW,KAAK,OAAO;KACjC,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,iGAAiG;AACjG,MAAM,MAAM,GAAG;IACb,GAAG,EAAE;QACH,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO;KACjB;CACF,CAAC;kBAEa,MAAM"}
@@ -1,5 +1,6 @@
1
1
  import { ConfigurationSource, IConfigLike, Configuration, ConfigurationOptions, IConfigurationSchema } from '@spinajs/configuration-common';
2
- import { Class, Container } from '@spinajs/di';
2
+ import { Class, Container, IContainer } from '@spinajs/di';
3
+ import { InvalidConfiguration } from './exception.js';
3
4
  import './sources.js';
4
5
  /**
5
6
  * HACK:
@@ -31,6 +32,12 @@ export declare class FrameworkConfiguration extends Configuration {
31
32
  */
32
33
  protected Validator: any;
33
34
  protected ValidationSchemas: IConfigurationSchema[];
35
+ /** Schemas applied after boot that refused the loaded value, by schema; a read of their module throws. */
36
+ protected RefusedModules: Map<string, {
37
+ module: string[];
38
+ error: InvalidConfiguration;
39
+ }>;
40
+ private Loading;
34
41
  get RootConfig(): IConfigLike;
35
42
  protected Container: Container;
36
43
  /**
@@ -47,6 +54,8 @@ export declare class FrameworkConfiguration extends Configuration {
47
54
  * @param defaultValue - optional, if value at specified path not exists returns default value
48
55
  */
49
56
  get<T>(path: string[] | string, defaultValue?: T): T;
57
+ private isUnresolvedVar;
58
+ private throwIfRefused;
50
59
  /**
51
60
  * Sets at given path configuration value. Use when you want to override config
52
61
  * loaded from files programatically
@@ -68,11 +77,25 @@ export declare class FrameworkConfiguration extends Configuration {
68
77
  * Reloads configuration data
69
78
  */
70
79
  load(): Promise<void>;
80
+ private loadTree;
71
81
  protected loadProtocolVars(): Promise<void>;
72
82
  protected onLoad(): unknown;
73
83
  protected loadSources(): void;
74
84
  protected validate(): void;
85
+ /** The Configuration of `container` that has run its check but is not resolved (cached) yet. */
86
+ static checkedIn(container: IContainer): FrameworkConfiguration | undefined;
87
+ private checkAll;
88
+ private schemasAt;
89
+ private checkChange;
90
+ private applySchemas;
91
+ /** Validates one module after boot; a refused module stays refused for reads until a later check passes. */
92
+ validateModule(s: IConfigurationSchema): void;
93
+ private throwIfInvalid;
94
+ private checkModule;
95
+ private failureOf;
96
+ private validateInPlace;
75
97
  protected initValidator(): void;
98
+ private schemasOfLineage;
76
99
  protected dir(toJoin: string): string;
77
100
  /**
78
101
  * adds app dirs to system.dirs config
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/configuration.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,oBAAoB,EAEpB,oBAAoB,EAGrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAc,KAAK,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AAK3E,OAAO,cAAc,CAAC;AAStB;;;;GAIG;AAEH,qBACa,sBAAuB,SAAQ,aAAa;IACvD;;OAEG;IACI,UAAU,SAAQ;IAEzB;;OAEG;IACI,GAAG,EAAG,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACI,MAAM,SAAM;IAEnB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAE/C,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAEtC,SAAS,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAEzC;;;OAGG;IAEH,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;IAEzB,SAAS,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;IAEpD,IAAW,UAAU,IACG,WAAW,CAClC;IAGD,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAE/B;;;;;OAKG;IACH,YAAY,OAAO,CAAC,EAAE,oBAAoB,EAMzC;IAED;;;;;OAKG;IACI,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAE1D;IAED;;;;;;OAMG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,QAEjD;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,QAEnD;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA4CpC;IAEY,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,iBASzD;IAED;;OAEG;IACU,IAAI,kBA0EhB;IAED,UAAgB,gBAAgB,kBA6E/B;IAED,SAAS,CAAC,MAAM,IAAI,OAAO,CAE1B;IAED,SAAS,CAAC,WAAW,SAYpB;IAED,SAAS,CAAC,QAAQ,SA+BjB;IAED,SAAS,CAAC,aAAa,SAmDtB;IAED,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,UAE3B;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,SAQrB;IAED;;;OAGG;IACH,SAAS,CAAC,SAAS,SAalB;CACF"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/configuration.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,oBAAoB,EAEpB,oBAAoB,EAGrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAc,KAAK,EAAE,SAAS,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAEnF,OAAO,EAA0B,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG9E,OAAO,cAAc,CAAC;AAoFtB;;;;GAIG;AAEH,qBACa,sBAAuB,SAAQ,aAAa;IACvD;;OAEG;IACI,UAAU,SAAQ;IAEzB;;OAEG;IACI,GAAG,EAAG,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACI,MAAM,SAAM;IAEnB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAE/C,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAEtC,SAAS,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAEzC;;;OAGG;IAEH,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;IAEzB,SAAS,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;IAEpD,0GAA0G;IAC1G,SAAS,CAAC,cAAc;gBAA6B,MAAM,EAAE;eAAS,oBAAoB;OAAM;IAEhG,OAAO,CAAC,OAAO,CAAS;IAExB,IAAW,UAAU,IACG,WAAW,CAClC;IAGD,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAE/B;;;;;OAKG;IACH,YAAY,OAAO,CAAC,EAAE,oBAAoB,EAMzC;IAED;;;;;OAKG;IACI,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAK1D;IAED,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAYtB;;;;;;OAMG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,QAMjD;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,QAMnD;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA6CpC;IAEY,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,iBAYzD;IAED;;OAEG;IACU,IAAI,kBAahB;YAEa,QAAQ;IA0EtB,UAAgB,gBAAgB,kBA+E/B;IAED,SAAS,CAAC,MAAM,IAAI,OAAO,CAE1B;IAED,SAAS,CAAC,WAAW,SAYpB;IAED,SAAS,CAAC,QAAQ,SAQjB;IAED,gGAAgG;IAChG,OAAc,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,sBAAsB,GAAG,SAAS,CAEjF;IAED,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,YAAY;IAQpB,4GAA4G;IACrG,cAAc,CAAC,CAAC,EAAE,oBAAoB,QAU5C;IAED,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,eAAe;IASvB,SAAS,CAAC,aAAa,SAgDtB;IAGD,OAAO,CAAC,gBAAgB;IAUxB,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,UAE3B;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,SASrB;IAED;;;OAGG;IACH,SAAS,CAAC,SAAS,SAalB;CACF"}