@guanjinke/artifact-client 1.19.0 → 1.20.1

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 (55) hide show
  1. package/README.md +2 -0
  2. package/dist/cli/environment.js +1 -1
  3. package/dist/cli/environment.js.map +1 -1
  4. package/dist/cli/setup.js +3 -2
  5. package/dist/cli/setup.js.map +1 -1
  6. package/dist/environment/builder.d.ts +12 -0
  7. package/dist/environment/builder.d.ts.map +1 -1
  8. package/dist/environment/builder.js +66 -6
  9. package/dist/environment/builder.js.map +1 -1
  10. package/dist/environment/catalog.d.ts +7 -0
  11. package/dist/environment/catalog.d.ts.map +1 -1
  12. package/dist/environment/catalog.js +15 -0
  13. package/dist/environment/catalog.js.map +1 -1
  14. package/dist/environment/config.d.ts +3 -1
  15. package/dist/environment/config.d.ts.map +1 -1
  16. package/dist/environment/config.js +103 -1
  17. package/dist/environment/config.js.map +1 -1
  18. package/dist/environment/manager.d.ts.map +1 -1
  19. package/dist/environment/manager.js +42 -9
  20. package/dist/environment/manager.js.map +1 -1
  21. package/dist/environment/manifest.d.ts +4 -0
  22. package/dist/environment/manifest.d.ts.map +1 -1
  23. package/dist/environment/manifest.js +5 -0
  24. package/dist/environment/manifest.js.map +1 -1
  25. package/dist/environment/plan.d.ts +3 -0
  26. package/dist/environment/plan.d.ts.map +1 -1
  27. package/dist/environment/plan.js +38 -6
  28. package/dist/environment/plan.js.map +1 -1
  29. package/dist/environment/ports.d.ts +34 -0
  30. package/dist/environment/ports.d.ts.map +1 -0
  31. package/dist/environment/ports.js +128 -0
  32. package/dist/environment/ports.js.map +1 -0
  33. package/dist/environment/process.d.ts +9 -0
  34. package/dist/environment/process.d.ts.map +1 -1
  35. package/dist/environment/process.js +60 -20
  36. package/dist/environment/process.js.map +1 -1
  37. package/dist/environment/registry.d.ts +3 -0
  38. package/dist/environment/registry.d.ts.map +1 -1
  39. package/dist/environment/registry.js +5 -0
  40. package/dist/environment/registry.js.map +1 -1
  41. package/dist/environment/types.d.ts +24 -1
  42. package/dist/environment/types.d.ts.map +1 -1
  43. package/dist/environment/types.js.map +1 -1
  44. package/dist/environment/update.d.ts +6 -16
  45. package/dist/environment/update.d.ts.map +1 -1
  46. package/dist/environment/update.js +120 -16
  47. package/dist/environment/update.js.map +1 -1
  48. package/dist/environment/validate.d.ts +2 -0
  49. package/dist/environment/validate.d.ts.map +1 -1
  50. package/dist/environment/validate.js +5 -2
  51. package/dist/environment/validate.js.map +1 -1
  52. package/dist/web/api.js +2 -1
  53. package/dist/web/api.js.map +1 -1
  54. package/dist/web/static/app.js +7 -7
  55. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/environment/registry.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC;AAClD,MAAM,WAAW,eAAe;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AACzG,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAC3E,GAAG,CAAC,EAAE,eAAe,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AACD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IACzH,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACzF,8GAA8G;IAC9G,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,eAAe,CAAC;IAAC,GAAG,CAAC,EAAE,eAAe,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC3H,mFAAmF;IACnF,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE/C;AACD,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,KAAG,MAA0C,CAAC;AAClF,qBAAa,mBAAmB;IAGU,OAAO,CAAC,QAAQ,CAAC,WAAW;IAFpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,SAAS,SAAiB,EAAmB,WAAW,SAAO;IACrE,IAAI,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAuBpC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAa5D,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASxE,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ7E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACxC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/environment/registry.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC;AAClD,MAAM,WAAW,eAAe;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AACzG,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAC3E,GAAG,CAAC,EAAE,eAAe,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AACD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IACzH,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACzF,8GAA8G;IAC9G,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,eAAe,CAAC;IAAC,GAAG,CAAC,EAAE,eAAe,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC3H,mFAAmF;IACnF,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,iFAAiF;IACjF,IAAI,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE/C;AACD,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,KAAG,MAA0C,CAAC;AAClF,qBAAa,mBAAmB;IAGU,OAAO,CAAC,QAAQ,CAAC,WAAW;IAFpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,SAAS,SAAiB,EAAmB,WAAW,SAAO;IACrE,IAAI,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAyBpC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAa5D,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASxE,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ7E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACxC"}
@@ -40,6 +40,7 @@ const path = __importStar(require("path"));
40
40
  const crypto_1 = require("crypto");
41
41
  const config_manager_1 = require("../cli/config-manager");
42
42
  const atomic_1 = require("../utils/atomic");
43
+ const ports_1 = require("./ports");
43
44
  function validateName(name) {
44
45
  if (typeof name !== 'string' || !/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/.test(name))
45
46
  throw new Error('Invalid environment name (ASCII letters, digits, dot, underscore and hyphen; 1-64 characters).');
@@ -83,6 +84,10 @@ class EnvironmentRegistry {
83
84
  throw new Error('Corrupt process identity.');
84
85
  if (entry.lastMode !== undefined && !['foreground', 'background'].includes(entry.lastMode))
85
86
  throw new Error('Corrupt previous runtime mode.');
87
+ if (entry.mode !== undefined && !['single-process', 'multi-process'].includes(entry.mode))
88
+ throw new Error('Corrupt environment mode.');
89
+ if (entry.ports !== undefined && !(0, ports_1.validatePortAssignments)(entry.ports))
90
+ throw new Error('Corrupt environment port assignment.');
86
91
  if (entry.jdbcService !== undefined) {
87
92
  const service = entry.jdbcService;
88
93
  if (!service || typeof service !== 'object' || typeof service.version !== 'string' || !Number.isInteger(service.port) || service.port < 1 || service.port > 65535 || typeof service.url !== 'string' || typeof service.username !== 'string' || typeof service.java !== 'string')
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/environment/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/environment/registry.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ArtifactClient } from '../artifact-client';
2
- export type EnvironmentModule = 'dashboard' | 'reporting' | 'data-monitoring' | 'reportsheet' | 'ai' | 'analysis' | 'sheets' | 'documents' | 'collaboration' | 'patch';
2
+ export type EnvironmentModule = 'dashboard' | 'reporting' | 'data-monitoring' | 'reportsheet' | 'ai' | 'analysis' | 'sheets' | 'documents' | 'collaboration' | 'patch' | 'datasource-service' | 'memorydb-service';
3
3
  export interface EnvironmentOptions {
4
4
  root: string;
5
5
  major: string;
@@ -15,6 +15,17 @@ export interface EnvironmentOptions {
15
15
  * caller does not know, and resolution fails on its own if the module is absent.
16
16
  */
17
17
  provider?: 'az' | 'oss';
18
+ /**
19
+ * Build a non-single-process environment: the workers, the Java data source and
20
+ * memory services and the collaboration service run as their own processes under
21
+ * the Monitor, while the scheduler stays embedded in the Server. A contiguous
22
+ * port block is allocated for the environment and recorded with it.
23
+ */
24
+ multiProcess?: boolean;
25
+ /** Ports another registered environment already holds; never assign them again. */
26
+ reservedPorts?: number[];
27
+ /** A block the caller already allocated (manager); validated and reused by the plan. */
28
+ ports?: Record<string, number>;
18
29
  }
19
30
  export type EnvironmentClient = Pick<ArtifactClient, 'getLatestVersion' | 'listArtifacts' | 'downloadArtifact'>;
20
31
  export interface LayoutMapping {
@@ -70,6 +81,13 @@ export interface LayoutMapping {
70
81
  * never nested inside the plugin's destination.
71
82
  */
72
83
  exclude?: string[];
84
+ /**
85
+ * How the Monitor starts this out-of-process service: the command (a Java
86
+ * service sets the resolved `java` executable) and, for a Java service, which
87
+ * generated settings file must be rewritten with this environment's ports.
88
+ */
89
+ command?: string;
90
+ rewriteConfig?: 'datasource' | 'memorydb';
73
91
  }
74
92
  interface EnvironmentArtifactBase {
75
93
  module: string;
@@ -147,6 +165,9 @@ export interface EnvironmentPlan {
147
165
  schema: EnvironmentSchema | 'pending';
148
166
  edition: 'cn' | 'en';
149
167
  profile: 'embedded';
168
+ multiProcess: boolean;
169
+ /** Every port a multi-process environment holds; absent in single-process mode. */
170
+ ports?: Record<string, number>;
150
171
  port: number;
151
172
  selectedModules: EnvironmentModule[];
152
173
  autoAddedModules: string[];
@@ -159,6 +180,8 @@ export interface EnvironmentResult {
159
180
  manifest: string;
160
181
  requirements: string[];
161
182
  warnings?: string[];
183
+ multiProcess?: boolean;
184
+ ports?: Record<string, number>;
162
185
  }
163
186
  export type EnvironmentProgress = (message: string) => void;
164
187
  export interface EnvironmentDependencies {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/environment/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/environment/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/environment/types.ts"],"names":[],"mappings":";;AAyIA,gDAEC;AAHD,uFAAuF;AACvF,SAAgB,kBAAkB,CAAC,QAAyB;IAC1D,OAAQ,QAAmC,CAAC,QAAQ,KAAK,IAAI,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/environment/types.ts"],"names":[],"mappings":";;AA2JA,gDAEC;AAHD,uFAAuF;AACvF,SAAgB,kBAAkB,CAAC,QAAyB;IAC1D,OAAQ,QAAmC,CAAC,QAAQ,KAAK,IAAI,CAAC;AAChE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { EnvironmentRegistry } from './registry';
2
2
  import { ProcessBackend } from './process';
3
3
  import { EnvironmentClient, EnvironmentProgress } from './types';
4
+ import { PortAssignments } from './ports';
4
5
  /**
5
6
  * Every catalog module a user may refresh. Both the create-only modules and the
6
7
  * internal ones are excluded: a create-only module seeds a tree the Server owns
@@ -70,6 +71,7 @@ export interface PluginEntry {
70
71
  path: string;
71
72
  role?: 'plugin' | 'worker' | 'server' | 'service';
72
73
  service?: string;
74
+ command?: string;
73
75
  }
74
76
  /**
75
77
  * Parse `--modules` values into module specs.
@@ -80,22 +82,10 @@ export interface PluginEntry {
80
82
  * `all` selects every configured module from remote and must be used alone.
81
83
  */
82
84
  export declare function parseModuleSpecs(values: string[]): ModuleUpdateSpec[];
83
- /**
84
- * Rewrite the `<Server><Plugins>`, `<Server><PluginWorkers>` and worker service
85
- * entries of a Wyn configuration document.
86
- *
87
- * The document is parsed with the creation path's parser options, only the
88
- * `sys:string` path lists and the matching worker service nodes are mutated, and
89
- * the result is rebuilt with the same builder options and re-validated before it
90
- * is returned. Dashboard stays the first `Plugins` entry; every other entry keeps
91
- * its order. A worker service keeps all of its other fields, including
92
- * `Disabled`; a configuration without that node is updated through
93
- * `<PluginWorkers>` alone. The Server service is kept in step the same way a
94
- * worker is, and a native service the environment does not declare yet gets the
95
- * empty node `create-env` writes, so a freshly installed collaboration service is
96
- * actually loaded.
97
- */
98
- export declare function patchEnvironmentConfiguration(xml: string, entries: PluginEntry[], platform?: NodeJS.Platform): string;
85
+ export declare function patchEnvironmentConfiguration(xml: string, entries: PluginEntry[], platform?: NodeJS.Platform, multiProcess?: {
86
+ ports: PortAssignments;
87
+ java?: string;
88
+ }): string;
99
89
  /**
100
90
  * Update selected modules of a registered environment.
101
91
  *
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/environment/update.ts"],"names":[],"mappings":"AAaA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAyB,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAoC,MAAM,SAAS,CAAC;AAUnG;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UAAyG,CAAC;AAsMvI,MAAM,WAAW,gBAAgB;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AAC7G,2FAA2F;AAC3F,MAAM,WAAW,WAAW;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAC5J,MAAM,WAAW,YAAY;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAAE;AACvM,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAA;KAAE,EAAE,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,WAAW,EAAE,CAAA;CAAE;AAC1P,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAAC,SAAS,CAAC,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC1H;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAwG7J;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAarE;AA+DD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,CA4DvI;AAqTD;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAKjB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAJzC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsB;gBACrB,YAAY,GAAE,kBAAuB;IAM5D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,gBAAgB,GAAG,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,iBAAiB,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;QAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;KAAO,GAAG,OAAO,CAAC,YAAY,CAAC;CAkjB/N"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/environment/update.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,7 @@ const registry_1 = require("./registry");
52
52
  const validate_1 = require("./validate");
53
53
  const process_1 = require("./process");
54
54
  const posix_process_1 = require("./posix-process");
55
+ const ports_1 = require("./ports");
55
56
  const atomic_1 = require("../utils/atomic");
56
57
  const local_path_1 = require("../utils/local-path");
57
58
  /** Same parser options as the creation path, so a rewrite round-trips identically. */
@@ -68,7 +69,7 @@ const separatorOf = (platform) => (platform === 'win32' ? '\\' : '/');
68
69
  * itself — so an update never refreshes, preserves or re-deploys either on
69
70
  * request. The web update picker reads this same list.
70
71
  */
71
- exports.updatableModules = Object.keys(catalog_1.catalog).filter(module => !catalog_1.catalog[module].createOnly && !catalog_1.catalog[module].internal).sort();
72
+ exports.updatableModules = Object.keys(catalog_1.catalog).filter(module => !catalog_1.catalog[module].createOnly && !catalog_1.catalog[module].internal && !catalog_1.catalog[module].multiProcessOnly).sort();
72
73
  /**
73
74
  * Server-root settings the environment owns.
74
75
  *
@@ -189,7 +190,7 @@ function readConfigurationView(configuration) {
189
190
  * so they force a deployment. A module with a local source is never current: the
190
191
  * remote spec is the way back to the published artifact.
191
192
  */
192
- async function moduleIsCurrent(entry, manifest, artifact, edition, configuration, platform) {
193
+ async function moduleIsCurrent(entry, manifest, artifact, edition, configuration, platform, multiProcess = false, ports) {
193
194
  const recorded = (manifest.artifacts ?? []).find(candidate => candidate.module === artifact.module);
194
195
  if (!recorded || recorded.version !== artifact.version)
195
196
  return false;
@@ -203,7 +204,13 @@ async function moduleIsCurrent(entry, manifest, artifact, edition, configuration
203
204
  if (mapping.role === 'resource')
204
205
  continue;
205
206
  if (mapping.role === 'service') {
206
- if (mapping.service && !view.services.get(mapping.service))
207
+ if (multiProcess) {
208
+ const spec = multiProcessServiceNodes[mapping.destination];
209
+ const node = spec && ports ? view.services.get(spec.node) : undefined;
210
+ if (!node || node.Disabled !== 'false' || String(node.UrlPort) !== String(ports[spec.port]))
211
+ return false;
212
+ }
213
+ else if (mapping.service && !view.services.get(mapping.service))
207
214
  return false;
208
215
  continue;
209
216
  }
@@ -225,11 +232,23 @@ async function moduleIsCurrent(entry, manifest, artifact, edition, configuration
225
232
  return false;
226
233
  }
227
234
  else if (mapping.role === 'worker') {
228
- if (!view.workers.some(value => value.toLowerCase() === configured))
229
- return false;
230
- const node = mapping.service ? view.services.get(mapping.service) : undefined;
231
- if (!node || String(node.Assembly ?? '').toLowerCase() !== path.posix.basename(assembly).toLowerCase())
232
- return false;
235
+ if (multiProcess) {
236
+ const spec = multiProcessServiceNodes[mapping.destination];
237
+ const node = spec ? view.services.get(spec.node) : undefined;
238
+ if (!node || node.Disabled !== 'false')
239
+ return false;
240
+ if (ports && String(node.UrlPort) !== String(ports[spec.port]))
241
+ return false;
242
+ if (String(node.Assembly ?? '').toLowerCase() !== path.posix.basename(assembly).toLowerCase())
243
+ return false;
244
+ }
245
+ else {
246
+ if (!view.workers.some(value => value.toLowerCase() === configured))
247
+ return false;
248
+ const node = mapping.service ? view.services.get(mapping.service) : undefined;
249
+ if (!node || String(node.Assembly ?? '').toLowerCase() !== path.posix.basename(assembly).toLowerCase())
250
+ return false;
251
+ }
233
252
  }
234
253
  else if (mapping.role === 'server') {
235
254
  const node = view.services.get('Server');
@@ -480,7 +499,22 @@ function rewritePathList(values, entries, platform) {
480
499
  * empty node `create-env` writes, so a freshly installed collaboration service is
481
500
  * actually loaded.
482
501
  */
483
- function patchEnvironmentConfiguration(xml, entries, platform = process.platform) {
502
+ /**
503
+ * Where a worker or service lives in a non-single-process configuration: the
504
+ * service node, its listening port and, for a worker process, its local scheduler
505
+ * port. `SmartDocumentsWorker` is the one destination whose node is singular.
506
+ */
507
+ const multiProcessServiceNodes = {
508
+ DashboardWorker: { node: 'DashboardWorker', port: 'dashboardWorker', schedule: 'dashboardSchedule' },
509
+ ReportingWorker: { node: 'ReportingWorker', port: 'reportingWorker', schedule: 'reportingSchedule' },
510
+ CotWorker: { node: 'CotWorker', port: 'cotWorker', schedule: 'cotSchedule' },
511
+ SpreadsheetWorker: { node: 'SpreadsheetWorker', port: 'spreadsheetWorker', schedule: 'spreadsheetSchedule' },
512
+ SmartDocumentsWorker: { node: 'SmartDocumentWorker', port: 'smartDocumentWorker', schedule: 'smartDocumentSchedule' },
513
+ DataSourceService: { node: 'DataSourceService', port: 'datasource' },
514
+ MemoryDBService: { node: 'MemoryDBService', port: 'memorydb' },
515
+ CollaborationService: { node: 'CollaborationService', port: 'collaboration' },
516
+ };
517
+ function patchEnvironmentConfiguration(xml, entries, platform = process.platform, multiProcess) {
484
518
  if (typeof xml !== 'string' || /<!DOCTYPE|<!ENTITY/i.test(xml) || fast_xml_parser_1.XMLValidator.validate(xml) !== true)
485
519
  throw new Error('Invalid environment configuration.');
486
520
  const document = new fast_xml_parser_1.XMLParser(parserOptions).parse(xml);
@@ -504,7 +538,13 @@ function patchEnvironmentConfiguration(xml, entries, platform = process.platform
504
538
  server.Plugins = plugins;
505
539
  }
506
540
  const workers = entries.filter(entry => entry.role === 'worker');
507
- if (workers.length) {
541
+ if (multiProcess) {
542
+ // A multi-process worker is spawned by the Monitor through its own
543
+ // `<Services>` node; listing it in <PluginWorkers> would load it inside the
544
+ // Server as well, so that list is never written here.
545
+ delete server.PluginWorkers;
546
+ }
547
+ else if (workers.length) {
508
548
  const pluginWorkers = server.PluginWorkers === undefined || server.PluginWorkers === '' ? {} : server.PluginWorkers;
509
549
  if (typeof pluginWorkers !== 'object' || Array.isArray(pluginWorkers))
510
550
  throw new Error('Invalid environment configuration.');
@@ -519,7 +559,48 @@ function patchEnvironmentConfiguration(xml, entries, platform = process.platform
519
559
  // exactly like the product's own `conf/Wyn.conf`: the Server loads it itself.
520
560
  const declared = entries.filter(entry => entry.role === 'service' && entry.service);
521
561
  const services = document?.SystemConfig?.Services;
522
- if ((hosted.length || declared.length) && services && typeof services === 'object' && !Array.isArray(services)) {
562
+ if (multiProcess && services && typeof services === 'object' && !Array.isArray(services)) {
563
+ const nodes = services;
564
+ for (const entry of entries.filter(candidate => candidate.role === 'server' && candidate.service)) {
565
+ const node = nodes[entry.service];
566
+ if (!node || typeof node !== 'object' || Array.isArray(node))
567
+ continue;
568
+ const fields = node;
569
+ fields.WorkingDirectory = windowsPath((0, local_path_1.directoryOf)(entry.path, platform), platform);
570
+ fields.Assembly = (0, local_path_1.baseNameOf)(entry.path);
571
+ }
572
+ for (const entry of [...workers, ...declared]) {
573
+ const spec = multiProcessServiceNodes[entry.destination];
574
+ if (!spec)
575
+ continue;
576
+ let node = nodes[spec.node];
577
+ if (node === undefined) {
578
+ node = {};
579
+ nodes[spec.node] = node;
580
+ }
581
+ if (!node || typeof node !== 'object' || Array.isArray(node))
582
+ throw new Error('Invalid environment configuration.');
583
+ const fields = node;
584
+ const port = multiProcess.ports[spec.port];
585
+ if (!Number.isInteger(port))
586
+ throw new Error(`Missing ${spec.port} port assignment for ${spec.node}.`);
587
+ fields.Disabled = 'false';
588
+ fields.UrlPort = String(port);
589
+ if (spec.schedule) {
590
+ const localPort = multiProcess.ports[spec.schedule];
591
+ if (!Number.isInteger(localPort))
592
+ throw new Error(`Missing ${spec.schedule} port assignment for ${spec.node}.`);
593
+ fields.WorkingDirectory = windowsPath((0, local_path_1.directoryOf)(entry.path, platform), platform);
594
+ fields.Assembly = (0, local_path_1.baseNameOf)(entry.path);
595
+ fields.SchedulerConfig = { LocalPort: String(localPort), ServerPort: String(multiProcess.ports.schedulerServer) };
596
+ }
597
+ else if (entry.command === 'java') {
598
+ fields.Command = multiProcess.java ?? 'java';
599
+ delete fields.Assembly;
600
+ }
601
+ }
602
+ }
603
+ else if ((hosted.length || declared.length) && services && typeof services === 'object' && !Array.isArray(services)) {
523
604
  const nodes = services;
524
605
  for (const entry of declared)
525
606
  if (nodes[entry.service] === undefined)
@@ -954,6 +1035,10 @@ class EnvironmentUpdater {
954
1035
  const entry = await this.registry.get(name);
955
1036
  if (entry.id !== original.id || entry.root !== original.root)
956
1037
  throw new Error('Environment changed during operation.');
1038
+ const multiProcess = entry.mode === 'multi-process';
1039
+ const ports = multiProcess ? entry.ports : undefined;
1040
+ if (multiProcess && !(0, ports_1.validatePortAssignments)(ports))
1041
+ throw new Error(`${entry.name} is a multi-process environment without a valid recorded port assignment; recreate it with create-env.`);
957
1042
  onProgress?.(`Validating environment ${entry.name} at ${entry.root}`);
958
1043
  await (0, validate_1.validateEnvironmentRoot)(entry, this.registry.directory);
959
1044
  await (0, validate_1.validateEnvironmentOwnership)(entry, this.registry.directory);
@@ -966,7 +1051,9 @@ class EnvironmentUpdater {
966
1051
  // `all` means every configured module from remote; modules that already
967
1052
  // point at a local developer build are left exactly as they are.
968
1053
  const localModules = new Set([...Object.keys(manifest.moduleSources ?? {}), ...(entry.localModules ?? [])]);
969
- const configured = [...new Set(artifacts.map(artifact => artifact.module))].filter(module => exports.updatableModules.includes(module)).sort();
1054
+ const configured = [...new Set(artifacts.map(artifact => artifact.module))]
1055
+ .filter(module => exports.updatableModules.includes(module) || (multiProcess && catalog_1.catalog[module]?.multiProcessOnly === true))
1056
+ .sort();
970
1057
  for (const module of configured) {
971
1058
  if (localModules.has(module))
972
1059
  skipped.push({ module, reason: 'local' });
@@ -984,6 +1071,11 @@ class EnvironmentUpdater {
984
1071
  const localOverrides = new Map();
985
1072
  const selectedTargets = new Set();
986
1073
  for (const spec of parsed) {
1074
+ // The two Java services exist only in a non-single-process environment;
1075
+ // naming one in a single-process update would install a service the Server
1076
+ // never starts, so it is refused before any resolution or write.
1077
+ if (catalog_1.catalog[spec.module]?.multiProcessOnly && !multiProcess)
1078
+ throw new Error(`Module ${spec.module} is only available in a multi-process environment; ${entry.name} was created without --multi-process.`);
987
1079
  if (['sheets', 'documents'].includes(spec.module) && entry.edition !== 'en')
988
1080
  throw new Error(`Module ${spec.module} requires an EN edition environment; ${entry.name} is ${entry.edition}.`);
989
1081
  if (spec.module === 'reportsheet' && entry.edition !== 'cn')
@@ -1095,7 +1187,7 @@ class EnvironmentUpdater {
1095
1187
  if (spec.version !== undefined || autoRefreshed.includes(spec.module) || autoReplaced.includes(spec.module))
1096
1188
  continue;
1097
1189
  const artifact = resolved.get(spec.module);
1098
- if (await moduleIsCurrent(entry, manifest, artifact, editionOf(entry), configured, this.platform)) {
1190
+ if (await moduleIsCurrent(entry, manifest, artifact, editionOf(entry), configured, this.platform, multiProcess, ports)) {
1099
1191
  current.set(spec.module, artifact.version);
1100
1192
  onProgress?.(`${artifact.module}/${artifact.version}: already deployed; nothing downloaded`);
1101
1193
  }
@@ -1316,7 +1408,7 @@ class EnvironmentUpdater {
1316
1408
  // empty node: the Server loads it from that entry and supplies the rest.
1317
1409
  if (mapping.role === 'service') {
1318
1410
  if (mapping.service)
1319
- entries.push({ destination: mapping.destination, assemblies: [], path: mapping.destination, role: 'service', service: mapping.service });
1411
+ entries.push({ destination: mapping.destination, assemblies: [], path: mapping.destination, role: 'service', service: mapping.service, ...(mapping.command ? { command: mapping.command } : {}) });
1320
1412
  continue;
1321
1413
  }
1322
1414
  const assembly = stagedArtifact?.assemblies.get(mapping.destination) ?? knownAssembly(configured, mapping, this.platform);
@@ -1361,7 +1453,10 @@ class EnvironmentUpdater {
1361
1453
  });
1362
1454
  }
1363
1455
  const changes = plans.map(plan => ({ module: plan.module, previous: plan.previous, next: plan.next, copiedDirectories: plan.copiedDirectories, removedDirectories: plan.removedDirectories }));
1364
- const configuration = patchEnvironmentConfiguration(configured, plans.flatMap(plan => plan.entries), this.platform);
1456
+ // The Java services written into a multi-process configuration need the same
1457
+ // executable a create used; resolve it before the configuration is patched.
1458
+ const java = multiProcess && plans.some(plan => plan.module === 'datasource-service' || plan.module === 'memorydb-service') ? (0, builder_1.resolveJavaExecutable)() : undefined;
1459
+ const configuration = patchEnvironmentConfiguration(configured, plans.flatMap(plan => plan.entries), this.platform, multiProcess ? { ports: ports, ...(java ? { java } : {}) } : undefined);
1365
1460
  const nextArtifacts = [...artifacts];
1366
1461
  const nextDownloads = [...downloads];
1367
1462
  for (const plan of plans) {
@@ -1468,7 +1563,7 @@ class EnvironmentUpdater {
1468
1563
  removedCreateOnly.push(module);
1469
1564
  }
1470
1565
  }
1471
- const nextManifest = { ...manifest, artifacts: nextArtifacts, downloads: nextDownloads, requirements: [...new Set(requirements)] };
1566
+ const nextManifest = { ...manifest, ...(multiProcess ? { mode: 'multi-process', ports: ports } : {}), artifacts: nextArtifacts, downloads: nextDownloads, requirements: [...new Set(requirements)] };
1472
1567
  if (autoAddedModules)
1473
1568
  nextManifest.autoAddedModules = autoAddedModules;
1474
1569
  if (Object.keys(moduleSources).length)
@@ -1537,6 +1632,15 @@ class EnvironmentUpdater {
1537
1632
  await fs.rm(removal, { recursive: true, force: true });
1538
1633
  for (const copy of plan.copies)
1539
1634
  await (0, builder_1.copyTree)(copy.source, copy.destination, copy.exclude);
1635
+ // A refreshed Java service package ships its own settings file; the
1636
+ // environment-specific port and identity URL are written back after the
1637
+ // directory swap, exactly like create-env writes them.
1638
+ if (multiProcess && ports) {
1639
+ for (const mapping of plan.staged?.layout ?? []) {
1640
+ if (mapping.rewriteConfig)
1641
+ await (0, builder_1.rewriteServiceConfig)(path.join(entry.root, mapping.destination), mapping.rewriteConfig, ports);
1642
+ }
1643
+ }
1540
1644
  for (const file of plan.preserved)
1541
1645
  await fs.copyFile(file.source, path.join(file.directory, file.name));
1542
1646
  // The replacement is applied after the directory it lives in has been