@platforma-sdk/bootstrap 5.2.51 → 5.2.53

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 (176) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  2. package/dist/block.cjs +106 -146
  3. package/dist/block.cjs.map +1 -1
  4. package/dist/block.js +100 -125
  5. package/dist/block.js.map +1 -1
  6. package/dist/cmd-opts.cjs +87 -177
  7. package/dist/cmd-opts.cjs.map +1 -1
  8. package/dist/cmd-opts.js +87 -172
  9. package/dist/cmd-opts.js.map +1 -1
  10. package/dist/commands/create-block.cjs +19 -20
  11. package/dist/commands/create-block.cjs.map +1 -1
  12. package/dist/commands/create-block.d.ts +12 -7
  13. package/dist/commands/create-block.js +17 -17
  14. package/dist/commands/create-block.js.map +1 -1
  15. package/dist/commands/reset.cjs +18 -21
  16. package/dist/commands/reset.cjs.map +1 -1
  17. package/dist/commands/reset.d.ts +12 -7
  18. package/dist/commands/reset.js +16 -18
  19. package/dist/commands/reset.js.map +1 -1
  20. package/dist/commands/start/docker/s3.cjs +64 -67
  21. package/dist/commands/start/docker/s3.cjs.map +1 -1
  22. package/dist/commands/start/docker/s3.d.ts +32 -27
  23. package/dist/commands/start/docker/s3.js +61 -64
  24. package/dist/commands/start/docker/s3.js.map +1 -1
  25. package/dist/commands/start/docker.cjs +64 -67
  26. package/dist/commands/start/docker.cjs.map +1 -1
  27. package/dist/commands/start/docker.d.ts +32 -27
  28. package/dist/commands/start/docker.js +61 -64
  29. package/dist/commands/start/docker.js.map +1 -1
  30. package/dist/commands/start/local/s3.cjs +101 -135
  31. package/dist/commands/start/local/s3.cjs.map +1 -1
  32. package/dist/commands/start/local/s3.d.ts +36 -31
  33. package/dist/commands/start/local/s3.js +97 -113
  34. package/dist/commands/start/local/s3.js.map +1 -1
  35. package/dist/commands/start/local.cjs +95 -122
  36. package/dist/commands/start/local.cjs.map +1 -1
  37. package/dist/commands/start/local.d.ts +34 -29
  38. package/dist/commands/start/local.js +91 -100
  39. package/dist/commands/start/local.js.map +1 -1
  40. package/dist/commands/start.cjs +18 -21
  41. package/dist/commands/start.cjs.map +1 -1
  42. package/dist/commands/start.d.ts +12 -7
  43. package/dist/commands/start.js +16 -18
  44. package/dist/commands/start.js.map +1 -1
  45. package/dist/commands/stop.cjs +22 -27
  46. package/dist/commands/stop.cjs.map +1 -1
  47. package/dist/commands/stop.d.ts +12 -7
  48. package/dist/commands/stop.js +20 -24
  49. package/dist/commands/stop.js.map +1 -1
  50. package/dist/commands/svc/create/arg-parser.cjs +102 -172
  51. package/dist/commands/svc/create/arg-parser.cjs.map +1 -1
  52. package/dist/commands/svc/create/arg-parser.js +102 -171
  53. package/dist/commands/svc/create/arg-parser.js.map +1 -1
  54. package/dist/commands/svc/create/docker/s3.cjs +78 -96
  55. package/dist/commands/svc/create/docker/s3.cjs.map +1 -1
  56. package/dist/commands/svc/create/docker/s3.d.ts +35 -30
  57. package/dist/commands/svc/create/docker/s3.js +75 -93
  58. package/dist/commands/svc/create/docker/s3.js.map +1 -1
  59. package/dist/commands/svc/create/docker.cjs +82 -103
  60. package/dist/commands/svc/create/docker.cjs.map +1 -1
  61. package/dist/commands/svc/create/docker.d.ts +35 -30
  62. package/dist/commands/svc/create/docker.js +79 -100
  63. package/dist/commands/svc/create/docker.js.map +1 -1
  64. package/dist/commands/svc/create/local/s3.cjs +107 -139
  65. package/dist/commands/svc/create/local/s3.cjs.map +1 -1
  66. package/dist/commands/svc/create/local/s3.d.ts +39 -34
  67. package/dist/commands/svc/create/local/s3.js +103 -117
  68. package/dist/commands/svc/create/local/s3.js.map +1 -1
  69. package/dist/commands/svc/create/local.cjs +101 -138
  70. package/dist/commands/svc/create/local.cjs.map +1 -1
  71. package/dist/commands/svc/create/local.d.ts +37 -32
  72. package/dist/commands/svc/create/local.js +97 -116
  73. package/dist/commands/svc/create/local.js.map +1 -1
  74. package/dist/commands/svc/delete.cjs +36 -38
  75. package/dist/commands/svc/delete.cjs.map +1 -1
  76. package/dist/commands/svc/delete.d.ts +16 -11
  77. package/dist/commands/svc/delete.js +34 -35
  78. package/dist/commands/svc/delete.js.map +1 -1
  79. package/dist/commands/svc/down.cjs +27 -30
  80. package/dist/commands/svc/down.cjs.map +1 -1
  81. package/dist/commands/svc/down.d.ts +15 -10
  82. package/dist/commands/svc/down.js +25 -27
  83. package/dist/commands/svc/down.js.map +1 -1
  84. package/dist/commands/svc/list.cjs +25 -29
  85. package/dist/commands/svc/list.cjs.map +1 -1
  86. package/dist/commands/svc/list.d.ts +9 -5
  87. package/dist/commands/svc/list.js +23 -26
  88. package/dist/commands/svc/list.js.map +1 -1
  89. package/dist/commands/svc/up.cjs +33 -49
  90. package/dist/commands/svc/up.cjs.map +1 -1
  91. package/dist/commands/svc/up.d.ts +15 -10
  92. package/dist/commands/svc/up.js +31 -46
  93. package/dist/commands/svc/up.js.map +1 -1
  94. package/dist/core.cjs +712 -881
  95. package/dist/core.cjs.map +1 -1
  96. package/dist/core.js +709 -877
  97. package/dist/core.js.map +1 -1
  98. package/dist/index.cjs +36 -36
  99. package/dist/index.cjs.map +1 -1
  100. package/dist/index.d.ts +37 -33
  101. package/dist/index.js +35 -34
  102. package/dist/index.js.map +1 -1
  103. package/dist/package.cjs +15 -36
  104. package/dist/package.cjs.map +1 -1
  105. package/dist/package.js +14 -14
  106. package/dist/package.js.map +1 -1
  107. package/dist/platforma.cjs +119 -148
  108. package/dist/platforma.cjs.map +1 -1
  109. package/dist/platforma.js +114 -122
  110. package/dist/platforma.js.map +1 -1
  111. package/dist/run.cjs +55 -58
  112. package/dist/run.cjs.map +1 -1
  113. package/dist/run.js +56 -56
  114. package/dist/run.js.map +1 -1
  115. package/dist/state.cjs +114 -141
  116. package/dist/state.cjs.map +1 -1
  117. package/dist/state.js +110 -139
  118. package/dist/state.js.map +1 -1
  119. package/dist/templates/compose.cjs +38 -65
  120. package/dist/templates/compose.cjs.map +1 -1
  121. package/dist/templates/compose.js +35 -63
  122. package/dist/templates/compose.js.map +1 -1
  123. package/dist/templates/pl-config.cjs +163 -165
  124. package/dist/templates/pl-config.cjs.map +1 -1
  125. package/dist/templates/pl-config.js +161 -163
  126. package/dist/templates/pl-config.js.map +1 -1
  127. package/dist/templates/types.cjs +24 -23
  128. package/dist/templates/types.cjs.map +1 -1
  129. package/dist/templates/types.js +24 -22
  130. package/dist/templates/types.js.map +1 -1
  131. package/dist/util.cjs +57 -74
  132. package/dist/util.cjs.map +1 -1
  133. package/dist/util.js +51 -72
  134. package/dist/util.js.map +1 -1
  135. package/package.json +7 -7
  136. package/dist/block.d.ts +0 -25
  137. package/dist/block.d.ts.map +0 -1
  138. package/dist/cmd-opts.d.ts +0 -89
  139. package/dist/cmd-opts.d.ts.map +0 -1
  140. package/dist/commands/create-block.d.ts.map +0 -1
  141. package/dist/commands/reset.d.ts.map +0 -1
  142. package/dist/commands/start/docker/s3.d.ts.map +0 -1
  143. package/dist/commands/start/docker.d.ts.map +0 -1
  144. package/dist/commands/start/local/s3.d.ts.map +0 -1
  145. package/dist/commands/start/local.d.ts.map +0 -1
  146. package/dist/commands/start.d.ts.map +0 -1
  147. package/dist/commands/stop.d.ts.map +0 -1
  148. package/dist/commands/svc/create/arg-parser.d.ts +0 -43
  149. package/dist/commands/svc/create/arg-parser.d.ts.map +0 -1
  150. package/dist/commands/svc/create/docker/s3.d.ts.map +0 -1
  151. package/dist/commands/svc/create/docker.d.ts.map +0 -1
  152. package/dist/commands/svc/create/local/s3.d.ts.map +0 -1
  153. package/dist/commands/svc/create/local.d.ts.map +0 -1
  154. package/dist/commands/svc/delete.d.ts.map +0 -1
  155. package/dist/commands/svc/down.d.ts.map +0 -1
  156. package/dist/commands/svc/list.d.ts.map +0 -1
  157. package/dist/commands/svc/up.d.ts.map +0 -1
  158. package/dist/core.d.ts +0 -105
  159. package/dist/core.d.ts.map +0 -1
  160. package/dist/index.d.ts.map +0 -1
  161. package/dist/package.d.ts +0 -7
  162. package/dist/package.d.ts.map +0 -1
  163. package/dist/platforma.d.ts +0 -24
  164. package/dist/platforma.d.ts.map +0 -1
  165. package/dist/run.d.ts +0 -13
  166. package/dist/run.d.ts.map +0 -1
  167. package/dist/state.d.ts +0 -63
  168. package/dist/state.d.ts.map +0 -1
  169. package/dist/templates/compose.d.ts +0 -14
  170. package/dist/templates/compose.d.ts.map +0 -1
  171. package/dist/templates/pl-config.d.ts +0 -6
  172. package/dist/templates/pl-config.d.ts.map +0 -1
  173. package/dist/templates/types.d.ts +0 -138
  174. package/dist/templates/types.d.ts.map +0 -1
  175. package/dist/util.d.ts +0 -18
  176. package/dist/util.d.ts.map +0 -1
@@ -1,70 +1,43 @@
1
- 'use strict';
2
-
3
- var fs = require('node:fs');
4
- var YAML = require('yaml');
1
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+ let node_fs = require("node:fs");
3
+ node_fs = require_runtime.__toESM(node_fs);
4
+ let yaml = require("yaml");
5
+ yaml = require_runtime.__toESM(yaml);
5
6
 
7
+ //#region src/templates/compose.ts
6
8
  function render(composeSource, composeDest, deployName, services, options) {
7
- const composeSrcData = fs.readFileSync(composeSource, { encoding: "utf-8" });
8
- const compose = YAML.parse(composeSrcData.toString());
9
- if (!compose.services) {
10
- throw new Error(`file '${composeSource}' seems to be not a docker-compose file or has unsupported version`);
11
- }
12
- if (services) {
13
- for (const svcName of Object.keys(compose.services)) {
14
- if (!services.has(svcName)) {
15
- delete compose.services[svcName];
16
- }
17
- }
18
- }
19
- compose.name = deployName;
20
- for (const [svcName, options] of services?.entries() ?? []) {
21
- const svcSpec = compose.services[svcName];
22
- if (!svcSpec) {
23
- throw new Error(`docker compose '${composeSource}' has no declaration of service '${svcName}'`);
24
- }
25
- if (options.platform) {
26
- svcSpec.platform = options.platform;
27
- }
28
- if (options.envs) {
29
- if (!svcSpec.environment) {
30
- svcSpec.environment = [];
31
- }
32
- for (let envSpecI = 0; envSpecI < (svcSpec?.environment.length ?? 0);) {
33
- const envSpec = svcSpec.environment[envSpecI];
34
- const envName = envSpec.split("=")[0];
35
- if (options.envs[envName]) {
36
- // Drop env expression from list as we will replace it later by our custom configuration
37
- const last = svcSpec.environment.pop();
38
- // Do not insert back last element we just removed.
39
- if (last && svcSpec.environment.length !== envSpecI) {
40
- svcSpec.environment[envSpecI] = last;
41
- }
42
- }
43
- else {
44
- envSpecI++;
45
- }
46
- }
47
- for (const [envName, envValue] of Object.entries(options.envs)) {
48
- svcSpec.environment.push(`${envName}=${envValue}`);
49
- }
50
- }
51
- if (options.mounts) {
52
- if (!svcSpec.volumes) {
53
- svcSpec.volumes = [];
54
- }
55
- for (const mount of options.mounts) {
56
- svcSpec.volumes.push(`${mount.hostPath}:${mount.containerPath}`);
57
- }
58
- }
59
- if (options.commands) {
60
- svcSpec.command = options.commands;
61
- }
62
- }
63
- if (options?.dropVolumes) {
64
- delete compose.volumes;
65
- }
66
- fs.writeFileSync(composeDest, YAML.stringify(compose));
9
+ const composeSrcData = node_fs.default.readFileSync(composeSource, { encoding: "utf-8" });
10
+ const compose = yaml.default.parse(composeSrcData.toString());
11
+ if (!compose.services) throw new Error(`file '${composeSource}' seems to be not a docker-compose file or has unsupported version`);
12
+ if (services) {
13
+ for (const svcName of Object.keys(compose.services)) if (!services.has(svcName)) delete compose.services[svcName];
14
+ }
15
+ compose.name = deployName;
16
+ for (const [svcName, options] of services?.entries() ?? []) {
17
+ const svcSpec = compose.services[svcName];
18
+ if (!svcSpec) throw new Error(`docker compose '${composeSource}' has no declaration of service '${svcName}'`);
19
+ if (options.platform) svcSpec.platform = options.platform;
20
+ if (options.envs) {
21
+ if (!svcSpec.environment) svcSpec.environment = [];
22
+ for (let envSpecI = 0; envSpecI < (svcSpec?.environment.length ?? 0);) {
23
+ const envName = svcSpec.environment[envSpecI].split("=")[0];
24
+ if (options.envs[envName]) {
25
+ const last = svcSpec.environment.pop();
26
+ if (last && svcSpec.environment.length !== envSpecI) svcSpec.environment[envSpecI] = last;
27
+ } else envSpecI++;
28
+ }
29
+ for (const [envName, envValue] of Object.entries(options.envs)) svcSpec.environment.push(`${envName}=${envValue}`);
30
+ }
31
+ if (options.mounts) {
32
+ if (!svcSpec.volumes) svcSpec.volumes = [];
33
+ for (const mount of options.mounts) svcSpec.volumes.push(`${mount.hostPath}:${mount.containerPath}`);
34
+ }
35
+ if (options.commands) svcSpec.command = options.commands;
36
+ }
37
+ if (options?.dropVolumes) delete compose.volumes;
38
+ node_fs.default.writeFileSync(composeDest, yaml.default.stringify(compose));
67
39
  }
68
40
 
41
+ //#endregion
69
42
  exports.render = render;
70
- //# sourceMappingURL=compose.cjs.map
43
+ //# sourceMappingURL=compose.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.cjs","sources":["../../src/templates/compose.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport YAML from \"yaml\";\n\nexport type VolumeMountOption = {\n hostPath: string;\n containerPath: string;\n};\n\nexport type ServiceOptions = {\n platform?: string;\n envs?: NodeJS.ProcessEnv;\n mounts?: VolumeMountOption[];\n commands?: string[];\n};\n\ntype ComposeYamlSpec = {\n name: string;\n services: Record<\n string,\n {\n platform?: string;\n environment?: string[];\n volumes?: string[];\n command?: string[];\n }\n >;\n\n volumes?: unknown;\n};\n\nexport function render(\n composeSource: string,\n composeDest: string,\n deployName: string,\n services?: Map<string, ServiceOptions>,\n options?: {\n dropVolumes: boolean;\n },\n) {\n const composeSrcData = fs.readFileSync(composeSource, { encoding: \"utf-8\" });\n const compose = YAML.parse(composeSrcData.toString()) as ComposeYamlSpec;\n\n if (!compose.services) {\n throw new Error(\n `file '${composeSource}' seems to be not a docker-compose file or has unsupported version`,\n );\n }\n\n if (services) {\n for (const svcName of Object.keys(compose.services)) {\n if (!services.has(svcName)) {\n delete compose.services[svcName];\n }\n }\n }\n\n compose.name = deployName;\n\n for (const [svcName, options] of services?.entries() ?? []) {\n const svcSpec = compose.services[svcName];\n\n if (!svcSpec) {\n throw new Error(\n `docker compose '${composeSource}' has no declaration of service '${svcName}'`,\n );\n }\n\n if (options.platform) {\n svcSpec.platform = options.platform;\n }\n\n if (options.envs) {\n if (!svcSpec.environment) {\n svcSpec.environment = [];\n }\n for (let envSpecI = 0; envSpecI < (svcSpec?.environment.length ?? 0); ) {\n const envSpec: string = svcSpec.environment[envSpecI];\n const envName = envSpec.split(\"=\")[0];\n if (options.envs[envName]) {\n // Drop env expression from list as we will replace it later by our custom configuration\n const last = svcSpec.environment.pop();\n\n // Do not insert back last element we just removed.\n if (last && svcSpec.environment.length !== envSpecI) {\n svcSpec.environment[envSpecI] = last;\n }\n } else {\n envSpecI++;\n }\n }\n\n for (const [envName, envValue] of Object.entries(options.envs)) {\n svcSpec.environment.push(`${envName}=${envValue}`);\n }\n }\n\n if (options.mounts) {\n if (!svcSpec.volumes) {\n svcSpec.volumes = [];\n }\n for (const mount of options.mounts) {\n svcSpec.volumes.push(`${mount.hostPath}:${mount.containerPath}`);\n }\n }\n\n if (options.commands) {\n svcSpec.command = options.commands;\n }\n }\n\n if (options?.dropVolumes) {\n delete compose.volumes;\n }\n\n fs.writeFileSync(composeDest, YAML.stringify(compose));\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.cjs","names":["fs","YAML"],"sources":["../../src/templates/compose.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport YAML from \"yaml\";\n\nexport type VolumeMountOption = {\n hostPath: string;\n containerPath: string;\n};\n\nexport type ServiceOptions = {\n platform?: string;\n envs?: NodeJS.ProcessEnv;\n mounts?: VolumeMountOption[];\n commands?: string[];\n};\n\ntype ComposeYamlSpec = {\n name: string;\n services: Record<\n string,\n {\n platform?: string;\n environment?: string[];\n volumes?: string[];\n command?: string[];\n }\n >;\n\n volumes?: unknown;\n};\n\nexport function render(\n composeSource: string,\n composeDest: string,\n deployName: string,\n services?: Map<string, ServiceOptions>,\n options?: {\n dropVolumes: boolean;\n },\n) {\n const composeSrcData = fs.readFileSync(composeSource, { encoding: \"utf-8\" });\n const compose = YAML.parse(composeSrcData.toString()) as ComposeYamlSpec;\n\n if (!compose.services) {\n throw new Error(\n `file '${composeSource}' seems to be not a docker-compose file or has unsupported version`,\n );\n }\n\n if (services) {\n for (const svcName of Object.keys(compose.services)) {\n if (!services.has(svcName)) {\n delete compose.services[svcName];\n }\n }\n }\n\n compose.name = deployName;\n\n for (const [svcName, options] of services?.entries() ?? []) {\n const svcSpec = compose.services[svcName];\n\n if (!svcSpec) {\n throw new Error(\n `docker compose '${composeSource}' has no declaration of service '${svcName}'`,\n );\n }\n\n if (options.platform) {\n svcSpec.platform = options.platform;\n }\n\n if (options.envs) {\n if (!svcSpec.environment) {\n svcSpec.environment = [];\n }\n for (let envSpecI = 0; envSpecI < (svcSpec?.environment.length ?? 0); ) {\n const envSpec: string = svcSpec.environment[envSpecI];\n const envName = envSpec.split(\"=\")[0];\n if (options.envs[envName]) {\n // Drop env expression from list as we will replace it later by our custom configuration\n const last = svcSpec.environment.pop();\n\n // Do not insert back last element we just removed.\n if (last && svcSpec.environment.length !== envSpecI) {\n svcSpec.environment[envSpecI] = last;\n }\n } else {\n envSpecI++;\n }\n }\n\n for (const [envName, envValue] of Object.entries(options.envs)) {\n svcSpec.environment.push(`${envName}=${envValue}`);\n }\n }\n\n if (options.mounts) {\n if (!svcSpec.volumes) {\n svcSpec.volumes = [];\n }\n for (const mount of options.mounts) {\n svcSpec.volumes.push(`${mount.hostPath}:${mount.containerPath}`);\n }\n }\n\n if (options.commands) {\n svcSpec.command = options.commands;\n }\n }\n\n if (options?.dropVolumes) {\n delete compose.volumes;\n }\n\n fs.writeFileSync(composeDest, YAML.stringify(compose));\n}\n"],"mappings":";;;;;;;AA8BA,SAAgB,OACd,eACA,aACA,YACA,UACA,SAGA;CACA,MAAM,iBAAiBA,gBAAG,aAAa,eAAe,EAAE,UAAU,SAAS,CAAC;CAC5E,MAAM,UAAUC,aAAK,MAAM,eAAe,UAAU,CAAC;AAErD,KAAI,CAAC,QAAQ,SACX,OAAM,IAAI,MACR,SAAS,cAAc,oEACxB;AAGH,KAAI,UACF;OAAK,MAAM,WAAW,OAAO,KAAK,QAAQ,SAAS,CACjD,KAAI,CAAC,SAAS,IAAI,QAAQ,CACxB,QAAO,QAAQ,SAAS;;AAK9B,SAAQ,OAAO;AAEf,MAAK,MAAM,CAAC,SAAS,YAAY,UAAU,SAAS,IAAI,EAAE,EAAE;EAC1D,MAAM,UAAU,QAAQ,SAAS;AAEjC,MAAI,CAAC,QACH,OAAM,IAAI,MACR,mBAAmB,cAAc,mCAAmC,QAAQ,GAC7E;AAGH,MAAI,QAAQ,SACV,SAAQ,WAAW,QAAQ;AAG7B,MAAI,QAAQ,MAAM;AAChB,OAAI,CAAC,QAAQ,YACX,SAAQ,cAAc,EAAE;AAE1B,QAAK,IAAI,WAAW,GAAG,YAAY,SAAS,YAAY,UAAU,KAAM;IAEtE,MAAM,UADkB,QAAQ,YAAY,UACpB,MAAM,IAAI,CAAC;AACnC,QAAI,QAAQ,KAAK,UAAU;KAEzB,MAAM,OAAO,QAAQ,YAAY,KAAK;AAGtC,SAAI,QAAQ,QAAQ,YAAY,WAAW,SACzC,SAAQ,YAAY,YAAY;UAGlC;;AAIJ,QAAK,MAAM,CAAC,SAAS,aAAa,OAAO,QAAQ,QAAQ,KAAK,CAC5D,SAAQ,YAAY,KAAK,GAAG,QAAQ,GAAG,WAAW;;AAItD,MAAI,QAAQ,QAAQ;AAClB,OAAI,CAAC,QAAQ,QACX,SAAQ,UAAU,EAAE;AAEtB,QAAK,MAAM,SAAS,QAAQ,OAC1B,SAAQ,QAAQ,KAAK,GAAG,MAAM,SAAS,GAAG,MAAM,gBAAgB;;AAIpE,MAAI,QAAQ,SACV,SAAQ,UAAU,QAAQ;;AAI9B,KAAI,SAAS,YACX,QAAO,QAAQ;AAGjB,iBAAG,cAAc,aAAaA,aAAK,UAAU,QAAQ,CAAC"}
@@ -1,68 +1,40 @@
1
- import fs__default from 'node:fs';
2
- import YAML from 'yaml';
1
+ import fs from "node:fs";
2
+ import YAML from "yaml";
3
3
 
4
+ //#region src/templates/compose.ts
4
5
  function render(composeSource, composeDest, deployName, services, options) {
5
- const composeSrcData = fs__default.readFileSync(composeSource, { encoding: "utf-8" });
6
- const compose = YAML.parse(composeSrcData.toString());
7
- if (!compose.services) {
8
- throw new Error(`file '${composeSource}' seems to be not a docker-compose file or has unsupported version`);
9
- }
10
- if (services) {
11
- for (const svcName of Object.keys(compose.services)) {
12
- if (!services.has(svcName)) {
13
- delete compose.services[svcName];
14
- }
15
- }
16
- }
17
- compose.name = deployName;
18
- for (const [svcName, options] of services?.entries() ?? []) {
19
- const svcSpec = compose.services[svcName];
20
- if (!svcSpec) {
21
- throw new Error(`docker compose '${composeSource}' has no declaration of service '${svcName}'`);
22
- }
23
- if (options.platform) {
24
- svcSpec.platform = options.platform;
25
- }
26
- if (options.envs) {
27
- if (!svcSpec.environment) {
28
- svcSpec.environment = [];
29
- }
30
- for (let envSpecI = 0; envSpecI < (svcSpec?.environment.length ?? 0);) {
31
- const envSpec = svcSpec.environment[envSpecI];
32
- const envName = envSpec.split("=")[0];
33
- if (options.envs[envName]) {
34
- // Drop env expression from list as we will replace it later by our custom configuration
35
- const last = svcSpec.environment.pop();
36
- // Do not insert back last element we just removed.
37
- if (last && svcSpec.environment.length !== envSpecI) {
38
- svcSpec.environment[envSpecI] = last;
39
- }
40
- }
41
- else {
42
- envSpecI++;
43
- }
44
- }
45
- for (const [envName, envValue] of Object.entries(options.envs)) {
46
- svcSpec.environment.push(`${envName}=${envValue}`);
47
- }
48
- }
49
- if (options.mounts) {
50
- if (!svcSpec.volumes) {
51
- svcSpec.volumes = [];
52
- }
53
- for (const mount of options.mounts) {
54
- svcSpec.volumes.push(`${mount.hostPath}:${mount.containerPath}`);
55
- }
56
- }
57
- if (options.commands) {
58
- svcSpec.command = options.commands;
59
- }
60
- }
61
- if (options?.dropVolumes) {
62
- delete compose.volumes;
63
- }
64
- fs__default.writeFileSync(composeDest, YAML.stringify(compose));
6
+ const composeSrcData = fs.readFileSync(composeSource, { encoding: "utf-8" });
7
+ const compose = YAML.parse(composeSrcData.toString());
8
+ if (!compose.services) throw new Error(`file '${composeSource}' seems to be not a docker-compose file or has unsupported version`);
9
+ if (services) {
10
+ for (const svcName of Object.keys(compose.services)) if (!services.has(svcName)) delete compose.services[svcName];
11
+ }
12
+ compose.name = deployName;
13
+ for (const [svcName, options] of services?.entries() ?? []) {
14
+ const svcSpec = compose.services[svcName];
15
+ if (!svcSpec) throw new Error(`docker compose '${composeSource}' has no declaration of service '${svcName}'`);
16
+ if (options.platform) svcSpec.platform = options.platform;
17
+ if (options.envs) {
18
+ if (!svcSpec.environment) svcSpec.environment = [];
19
+ for (let envSpecI = 0; envSpecI < (svcSpec?.environment.length ?? 0);) {
20
+ const envName = svcSpec.environment[envSpecI].split("=")[0];
21
+ if (options.envs[envName]) {
22
+ const last = svcSpec.environment.pop();
23
+ if (last && svcSpec.environment.length !== envSpecI) svcSpec.environment[envSpecI] = last;
24
+ } else envSpecI++;
25
+ }
26
+ for (const [envName, envValue] of Object.entries(options.envs)) svcSpec.environment.push(`${envName}=${envValue}`);
27
+ }
28
+ if (options.mounts) {
29
+ if (!svcSpec.volumes) svcSpec.volumes = [];
30
+ for (const mount of options.mounts) svcSpec.volumes.push(`${mount.hostPath}:${mount.containerPath}`);
31
+ }
32
+ if (options.commands) svcSpec.command = options.commands;
33
+ }
34
+ if (options?.dropVolumes) delete compose.volumes;
35
+ fs.writeFileSync(composeDest, YAML.stringify(compose));
65
36
  }
66
37
 
38
+ //#endregion
67
39
  export { render };
68
- //# sourceMappingURL=compose.js.map
40
+ //# sourceMappingURL=compose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sources":["../../src/templates/compose.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport YAML from \"yaml\";\n\nexport type VolumeMountOption = {\n hostPath: string;\n containerPath: string;\n};\n\nexport type ServiceOptions = {\n platform?: string;\n envs?: NodeJS.ProcessEnv;\n mounts?: VolumeMountOption[];\n commands?: string[];\n};\n\ntype ComposeYamlSpec = {\n name: string;\n services: Record<\n string,\n {\n platform?: string;\n environment?: string[];\n volumes?: string[];\n command?: string[];\n }\n >;\n\n volumes?: unknown;\n};\n\nexport function render(\n composeSource: string,\n composeDest: string,\n deployName: string,\n services?: Map<string, ServiceOptions>,\n options?: {\n dropVolumes: boolean;\n },\n) {\n const composeSrcData = fs.readFileSync(composeSource, { encoding: \"utf-8\" });\n const compose = YAML.parse(composeSrcData.toString()) as ComposeYamlSpec;\n\n if (!compose.services) {\n throw new Error(\n `file '${composeSource}' seems to be not a docker-compose file or has unsupported version`,\n );\n }\n\n if (services) {\n for (const svcName of Object.keys(compose.services)) {\n if (!services.has(svcName)) {\n delete compose.services[svcName];\n }\n }\n }\n\n compose.name = deployName;\n\n for (const [svcName, options] of services?.entries() ?? []) {\n const svcSpec = compose.services[svcName];\n\n if (!svcSpec) {\n throw new Error(\n `docker compose '${composeSource}' has no declaration of service '${svcName}'`,\n );\n }\n\n if (options.platform) {\n svcSpec.platform = options.platform;\n }\n\n if (options.envs) {\n if (!svcSpec.environment) {\n svcSpec.environment = [];\n }\n for (let envSpecI = 0; envSpecI < (svcSpec?.environment.length ?? 0); ) {\n const envSpec: string = svcSpec.environment[envSpecI];\n const envName = envSpec.split(\"=\")[0];\n if (options.envs[envName]) {\n // Drop env expression from list as we will replace it later by our custom configuration\n const last = svcSpec.environment.pop();\n\n // Do not insert back last element we just removed.\n if (last && svcSpec.environment.length !== envSpecI) {\n svcSpec.environment[envSpecI] = last;\n }\n } else {\n envSpecI++;\n }\n }\n\n for (const [envName, envValue] of Object.entries(options.envs)) {\n svcSpec.environment.push(`${envName}=${envValue}`);\n }\n }\n\n if (options.mounts) {\n if (!svcSpec.volumes) {\n svcSpec.volumes = [];\n }\n for (const mount of options.mounts) {\n svcSpec.volumes.push(`${mount.hostPath}:${mount.containerPath}`);\n }\n }\n\n if (options.commands) {\n svcSpec.command = options.commands;\n }\n }\n\n if (options?.dropVolumes) {\n delete compose.volumes;\n }\n\n fs.writeFileSync(composeDest, YAML.stringify(compose));\n}\n"],"names":["fs"],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","names":[],"sources":["../../src/templates/compose.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport YAML from \"yaml\";\n\nexport type VolumeMountOption = {\n hostPath: string;\n containerPath: string;\n};\n\nexport type ServiceOptions = {\n platform?: string;\n envs?: NodeJS.ProcessEnv;\n mounts?: VolumeMountOption[];\n commands?: string[];\n};\n\ntype ComposeYamlSpec = {\n name: string;\n services: Record<\n string,\n {\n platform?: string;\n environment?: string[];\n volumes?: string[];\n command?: string[];\n }\n >;\n\n volumes?: unknown;\n};\n\nexport function render(\n composeSource: string,\n composeDest: string,\n deployName: string,\n services?: Map<string, ServiceOptions>,\n options?: {\n dropVolumes: boolean;\n },\n) {\n const composeSrcData = fs.readFileSync(composeSource, { encoding: \"utf-8\" });\n const compose = YAML.parse(composeSrcData.toString()) as ComposeYamlSpec;\n\n if (!compose.services) {\n throw new Error(\n `file '${composeSource}' seems to be not a docker-compose file or has unsupported version`,\n );\n }\n\n if (services) {\n for (const svcName of Object.keys(compose.services)) {\n if (!services.has(svcName)) {\n delete compose.services[svcName];\n }\n }\n }\n\n compose.name = deployName;\n\n for (const [svcName, options] of services?.entries() ?? []) {\n const svcSpec = compose.services[svcName];\n\n if (!svcSpec) {\n throw new Error(\n `docker compose '${composeSource}' has no declaration of service '${svcName}'`,\n );\n }\n\n if (options.platform) {\n svcSpec.platform = options.platform;\n }\n\n if (options.envs) {\n if (!svcSpec.environment) {\n svcSpec.environment = [];\n }\n for (let envSpecI = 0; envSpecI < (svcSpec?.environment.length ?? 0); ) {\n const envSpec: string = svcSpec.environment[envSpecI];\n const envName = envSpec.split(\"=\")[0];\n if (options.envs[envName]) {\n // Drop env expression from list as we will replace it later by our custom configuration\n const last = svcSpec.environment.pop();\n\n // Do not insert back last element we just removed.\n if (last && svcSpec.environment.length !== envSpecI) {\n svcSpec.environment[envSpecI] = last;\n }\n } else {\n envSpecI++;\n }\n }\n\n for (const [envName, envValue] of Object.entries(options.envs)) {\n svcSpec.environment.push(`${envName}=${envValue}`);\n }\n }\n\n if (options.mounts) {\n if (!svcSpec.volumes) {\n svcSpec.volumes = [];\n }\n for (const mount of options.mounts) {\n svcSpec.volumes.push(`${mount.hostPath}:${mount.containerPath}`);\n }\n }\n\n if (options.commands) {\n svcSpec.command = options.commands;\n }\n }\n\n if (options?.dropVolumes) {\n delete compose.volumes;\n }\n\n fs.writeFileSync(composeDest, YAML.stringify(compose));\n}\n"],"mappings":";;;;AA8BA,SAAgB,OACd,eACA,aACA,YACA,UACA,SAGA;CACA,MAAM,iBAAiB,GAAG,aAAa,eAAe,EAAE,UAAU,SAAS,CAAC;CAC5E,MAAM,UAAU,KAAK,MAAM,eAAe,UAAU,CAAC;AAErD,KAAI,CAAC,QAAQ,SACX,OAAM,IAAI,MACR,SAAS,cAAc,oEACxB;AAGH,KAAI,UACF;OAAK,MAAM,WAAW,OAAO,KAAK,QAAQ,SAAS,CACjD,KAAI,CAAC,SAAS,IAAI,QAAQ,CACxB,QAAO,QAAQ,SAAS;;AAK9B,SAAQ,OAAO;AAEf,MAAK,MAAM,CAAC,SAAS,YAAY,UAAU,SAAS,IAAI,EAAE,EAAE;EAC1D,MAAM,UAAU,QAAQ,SAAS;AAEjC,MAAI,CAAC,QACH,OAAM,IAAI,MACR,mBAAmB,cAAc,mCAAmC,QAAQ,GAC7E;AAGH,MAAI,QAAQ,SACV,SAAQ,WAAW,QAAQ;AAG7B,MAAI,QAAQ,MAAM;AAChB,OAAI,CAAC,QAAQ,YACX,SAAQ,cAAc,EAAE;AAE1B,QAAK,IAAI,WAAW,GAAG,YAAY,SAAS,YAAY,UAAU,KAAM;IAEtE,MAAM,UADkB,QAAQ,YAAY,UACpB,MAAM,IAAI,CAAC;AACnC,QAAI,QAAQ,KAAK,UAAU;KAEzB,MAAM,OAAO,QAAQ,YAAY,KAAK;AAGtC,SAAI,QAAQ,QAAQ,YAAY,WAAW,SACzC,SAAQ,YAAY,YAAY;UAGlC;;AAIJ,QAAK,MAAM,CAAC,SAAS,aAAa,OAAO,QAAQ,QAAQ,KAAK,CAC5D,SAAQ,YAAY,KAAK,GAAG,QAAQ,GAAG,WAAW;;AAItD,MAAI,QAAQ,QAAQ;AAClB,OAAI,CAAC,QAAQ,QACX,SAAQ,UAAU,EAAE;AAEtB,QAAK,MAAM,SAAS,QAAQ,OAC1B,SAAQ,QAAQ,KAAK,GAAG,MAAM,SAAS,GAAG,MAAM,gBAAgB;;AAIpE,MAAI,QAAQ,SACV,SAAQ,UAAU,QAAQ;;AAI9B,KAAI,SAAS,YACX,QAAO,QAAQ;AAGjB,IAAG,cAAc,aAAa,KAAK,UAAU,QAAQ,CAAC"}
@@ -1,177 +1,174 @@
1
- 'use strict';
2
-
3
- var fs = require('node:fs');
4
- var types = require('./types.cjs');
5
- var util = require('../util.cjs');
6
- var state = require('../state.cjs');
1
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+ const require_util = require('../util.cjs');
3
+ const require_state = require('../state.cjs');
4
+ const require_types = require('./types.cjs');
5
+ let node_fs = require("node:fs");
6
+ node_fs = require_runtime.__toESM(node_fs);
7
7
 
8
+ //#region src/templates/pl-config.ts
8
9
  function storageSettingsFromURL(storageURL, baseDir, defaults) {
9
- storageURL = util.resolveTilde(storageURL);
10
- const url = new URL(storageURL, `file:${baseDir}`);
11
- switch (url.protocol) {
12
- case "s3:": {
13
- const bucketName = url.hostname;
14
- const region = url.searchParams.get("region");
15
- const keyPrefix = url.pathname.slice(1); // 's3://bucket/' will have '/' as pathname. We don't want to always have '/' prefix
16
- return {
17
- ...defaults,
18
- type: "S3",
19
- bucketName,
20
- region,
21
- keyPrefix,
22
- };
23
- }
24
- case "s3e:": {
25
- const p = url.pathname.split("/").slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']
26
- const bucketName = p[0];
27
- const keyPrefix = p.length > 1 ? p.slice(1).join("/") : "";
28
- return {
29
- ...defaults,
30
- type: "S3",
31
- endpoint: `http://${url.host}/`,
32
- bucketName,
33
- keyPrefix,
34
- region: url.searchParams.get("region"),
35
- key: url.username ? `static:${url.username}` : "",
36
- secret: url.password ? `static:${url.password}` : "",
37
- };
38
- }
39
- case "s3es:": {
40
- const p = url.pathname.split("/").slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']
41
- const bucketName = p[0];
42
- const keyPrefix = p.length > 1 ? p.slice(1).join("/") : "";
43
- return {
44
- ...defaults,
45
- type: "S3",
46
- endpoint: `https://${url.host}/`,
47
- bucketName,
48
- keyPrefix,
49
- region: url.searchParams.get("region"),
50
- key: url.username ? `static:${url.username}` : "",
51
- secret: url.password ? `static:${url.password}` : "",
52
- };
53
- }
54
- case "file:":
55
- return {
56
- type: "FS",
57
- rootPath: url.pathname,
58
- };
59
- default:
60
- throw new Error(`storage protocol '${url.protocol}' is not supported`);
61
- }
10
+ storageURL = require_util.resolveTilde(storageURL);
11
+ const url = new URL(storageURL, `file:${baseDir}`);
12
+ switch (url.protocol) {
13
+ case "s3:": {
14
+ const bucketName = url.hostname;
15
+ const region = url.searchParams.get("region");
16
+ const keyPrefix = url.pathname.slice(1);
17
+ return {
18
+ ...defaults,
19
+ type: "S3",
20
+ bucketName,
21
+ region,
22
+ keyPrefix
23
+ };
24
+ }
25
+ case "s3e:": {
26
+ const p = url.pathname.split("/").slice(1);
27
+ const bucketName = p[0];
28
+ const keyPrefix = p.length > 1 ? p.slice(1).join("/") : "";
29
+ return {
30
+ ...defaults,
31
+ type: "S3",
32
+ endpoint: `http://${url.host}/`,
33
+ bucketName,
34
+ keyPrefix,
35
+ region: url.searchParams.get("region"),
36
+ key: url.username ? `static:${url.username}` : "",
37
+ secret: url.password ? `static:${url.password}` : ""
38
+ };
39
+ }
40
+ case "s3es:": {
41
+ const p = url.pathname.split("/").slice(1);
42
+ const bucketName = p[0];
43
+ const keyPrefix = p.length > 1 ? p.slice(1).join("/") : "";
44
+ return {
45
+ ...defaults,
46
+ type: "S3",
47
+ endpoint: `https://${url.host}/`,
48
+ bucketName,
49
+ keyPrefix,
50
+ region: url.searchParams.get("region"),
51
+ key: url.username ? `static:${url.username}` : "",
52
+ secret: url.password ? `static:${url.password}` : ""
53
+ };
54
+ }
55
+ case "file:": return {
56
+ type: "FS",
57
+ rootPath: url.pathname
58
+ };
59
+ default: throw new Error(`storage protocol '${url.protocol}' is not supported`);
60
+ }
62
61
  }
63
62
  function loadDefaults(jwtKey, options) {
64
- const localRoot = options?.localRoot ?? state.instanceDir("default");
65
- const log = {
66
- level: options?.log?.level ?? "info",
67
- path: options?.log?.path ?? `${localRoot}/logs/platforma.log`,
68
- };
69
- const grpc = {
70
- listen: options?.grpc?.listen ?? "localhost:6345",
71
- tls: {
72
- enable: defaultBool(options?.grpc?.tls?.enable, false),
73
- clientAuthMode: options?.grpc?.tls?.clientAuthMode ?? "NoAuth",
74
- certFile: options?.grpc?.tls?.certFile ?? `${localRoot}/certs/tls.cert`,
75
- keyFile: options?.grpc?.tls?.keyFile ?? `${localRoot}/certs/tls.key`,
76
- ...options?.grpc?.tls,
77
- },
78
- };
79
- const core = {
80
- auth: {
81
- enabled: options?.core?.auth?.enabled ?? false,
82
- drivers: options?.core?.auth?.drivers ?? [
83
- { driver: "jwt", key: jwtKey },
84
- { driver: "htpasswd", path: `${localRoot}/users.htpasswd` },
85
- ],
86
- },
87
- db: {
88
- path: `${localRoot}/db`,
89
- },
90
- };
91
- const primary = defaultStorageSettings("main", `${localRoot}/storages/main`, "platforma-primary-bucket", options?.storages?.primary);
92
- let work;
93
- const wType = options?.storages?.work?.type;
94
- switch (wType) {
95
- case undefined:
96
- case "FS":
97
- work = types.emptyFSSettings("work");
98
- work.rootPath = options?.storages?.work?.rootPath ?? `${localRoot}/storages/work`;
99
- work.indexCachePeriod = options?.storages?.work?.indexCachePeriod ?? "1m";
100
- break;
101
- default:
102
- throw new Error("work storage MUST have 'FS' type as it is used for working directories management");
103
- }
104
- const library = defaultStorageSettings("library", `${localRoot}/storages/library`, "platforma-library-bucket", options?.storages?.library);
105
- const monitoring = {
106
- enabled: defaultBool(options?.monitoring?.enabled, true),
107
- listen: options?.monitoring?.listen ?? "127.0.0.1:9090",
108
- };
109
- const debug = {
110
- enabled: defaultBool(options?.debug?.enabled, true),
111
- listen: options?.debug?.listen ?? "127.0.0.1:9091",
112
- };
113
- const license = {
114
- value: options?.license?.value ?? "",
115
- file: options?.license?.file ?? "",
116
- };
117
- return {
118
- localRoot,
119
- license,
120
- log,
121
- grpc,
122
- core,
123
- monitoring,
124
- debug,
125
- numCpu: options?.numCpu,
126
- storages: { primary, work, library },
127
- hacks: { libraryDownloadable: true },
128
- };
63
+ const localRoot = options?.localRoot ?? require_state.default.instanceDir("default");
64
+ const log = {
65
+ level: options?.log?.level ?? "info",
66
+ path: options?.log?.path ?? `${localRoot}/logs/platforma.log`
67
+ };
68
+ const grpc = {
69
+ listen: options?.grpc?.listen ?? "localhost:6345",
70
+ tls: {
71
+ enable: defaultBool(options?.grpc?.tls?.enable, false),
72
+ clientAuthMode: options?.grpc?.tls?.clientAuthMode ?? "NoAuth",
73
+ certFile: options?.grpc?.tls?.certFile ?? `${localRoot}/certs/tls.cert`,
74
+ keyFile: options?.grpc?.tls?.keyFile ?? `${localRoot}/certs/tls.key`,
75
+ ...options?.grpc?.tls
76
+ }
77
+ };
78
+ const core = {
79
+ auth: {
80
+ enabled: options?.core?.auth?.enabled ?? false,
81
+ drivers: options?.core?.auth?.drivers ?? [{
82
+ driver: "jwt",
83
+ key: jwtKey
84
+ }, {
85
+ driver: "htpasswd",
86
+ path: `${localRoot}/users.htpasswd`
87
+ }]
88
+ },
89
+ db: { path: `${localRoot}/db` }
90
+ };
91
+ const primary = defaultStorageSettings("main", `${localRoot}/storages/main`, "platforma-primary-bucket", options?.storages?.primary);
92
+ let work;
93
+ switch (options?.storages?.work?.type) {
94
+ case void 0:
95
+ case "FS":
96
+ work = require_types.emptyFSSettings("work");
97
+ work.rootPath = options?.storages?.work?.rootPath ?? `${localRoot}/storages/work`;
98
+ work.indexCachePeriod = options?.storages?.work?.indexCachePeriod ?? "1m";
99
+ break;
100
+ default: throw new Error("work storage MUST have 'FS' type as it is used for working directories management");
101
+ }
102
+ const library = defaultStorageSettings("library", `${localRoot}/storages/library`, "platforma-library-bucket", options?.storages?.library);
103
+ const monitoring = {
104
+ enabled: defaultBool(options?.monitoring?.enabled, true),
105
+ listen: options?.monitoring?.listen ?? "127.0.0.1:9090"
106
+ };
107
+ const debug = {
108
+ enabled: defaultBool(options?.debug?.enabled, true),
109
+ listen: options?.debug?.listen ?? "127.0.0.1:9091"
110
+ };
111
+ return {
112
+ localRoot,
113
+ license: {
114
+ value: options?.license?.value ?? "",
115
+ file: options?.license?.file ?? ""
116
+ },
117
+ log,
118
+ grpc,
119
+ core,
120
+ monitoring,
121
+ debug,
122
+ numCpu: options?.numCpu,
123
+ storages: {
124
+ primary,
125
+ work,
126
+ library
127
+ },
128
+ hacks: { libraryDownloadable: true }
129
+ };
129
130
  }
130
131
  function defaultStorageSettings(storageID, defaultLocation, defaultBucket, options) {
131
- let storage;
132
- const pType = options?.type;
133
- switch (pType) {
134
- case undefined:
135
- case "FS":
136
- storage = types.emptyFSSettings(storageID);
137
- storage.rootPath = options?.rootPath ?? defaultLocation;
138
- break;
139
- case "S3":
140
- storage = types.emptyS3Settings(storageID);
141
- storage.endpoint = options?.endpoint;
142
- storage.region = options?.region;
143
- storage.presignEndpoint = options?.presignEndpoint ?? options?.endpoint;
144
- storage.bucketName = options?.bucketName ?? defaultBucket;
145
- storage.createBucket = defaultBool(options?.createBucket, true);
146
- storage.forcePathStyle = defaultBool(options?.forcePathStyle, true);
147
- storage.key = options?.key ?? "";
148
- storage.secret = options?.secret ?? "";
149
- storage.keyPrefix = options?.keyPrefix ?? "";
150
- storage.accessPrefixes = options?.accessPrefixes ?? [""];
151
- storage.uploadKeyPrefix = options?.uploadKeyPrefix ?? "";
152
- break;
153
- default:
154
- util.assertNever();
155
- throw new Error("unknown storage type"); // calm down TS type analyzer
156
- }
157
- return storage;
132
+ let storage;
133
+ const pType = options?.type;
134
+ switch (pType) {
135
+ case void 0:
136
+ case "FS":
137
+ storage = require_types.emptyFSSettings(storageID);
138
+ storage.rootPath = options?.rootPath ?? defaultLocation;
139
+ break;
140
+ case "S3":
141
+ storage = require_types.emptyS3Settings(storageID);
142
+ storage.endpoint = options?.endpoint;
143
+ storage.region = options?.region;
144
+ storage.presignEndpoint = options?.presignEndpoint ?? options?.endpoint;
145
+ storage.bucketName = options?.bucketName ?? defaultBucket;
146
+ storage.createBucket = defaultBool(options?.createBucket, true);
147
+ storage.forcePathStyle = defaultBool(options?.forcePathStyle, true);
148
+ storage.key = options?.key ?? "";
149
+ storage.secret = options?.secret ?? "";
150
+ storage.keyPrefix = options?.keyPrefix ?? "";
151
+ storage.accessPrefixes = options?.accessPrefixes ?? [""];
152
+ storage.uploadKeyPrefix = options?.uploadKeyPrefix ?? "";
153
+ break;
154
+ default:
155
+ require_util.assertNever(pType);
156
+ throw new Error("unknown storage type");
157
+ }
158
+ return storage;
158
159
  }
159
160
  function render(options) {
160
- const disableMon = options.monitoring.enabled ? "" : " disabled";
161
- const disableDbg = options.debug.enabled ? "" : " disabled";
162
- const libraryDownloadable = options.hacks.libraryDownloadable ? "true" : "false";
163
- let miLicenseSecret = options.license.value;
164
- if (options.license.file != "") {
165
- miLicenseSecret = fs.readFileSync(options.license.file).toString().trimEnd();
166
- }
167
- let cpuLimit = "";
168
- if (options.numCpu) {
169
- cpuLimit = `
161
+ const disableMon = options.monitoring.enabled ? "" : " disabled";
162
+ const disableDbg = options.debug.enabled ? "" : " disabled";
163
+ const libraryDownloadable = options.hacks.libraryDownloadable ? "true" : "false";
164
+ let miLicenseSecret = options.license.value;
165
+ if (options.license.file != "") miLicenseSecret = node_fs.default.readFileSync(options.license.file).toString().trimEnd();
166
+ let cpuLimit = "";
167
+ if (options.numCpu) cpuLimit = `
170
168
  resources:
171
169
  cpu: ${options.numCpu}
172
170
  `;
173
- }
174
- return `
171
+ return `
175
172
  license:
176
173
  value: '${options.license.value}'
177
174
  file: '${options.license.file}'
@@ -255,10 +252,11 @@ ${cpuLimit}
255
252
  `;
256
253
  }
257
254
  function defaultBool(v, def) {
258
- return v === undefined ? def : v;
255
+ return v === void 0 ? def : v;
259
256
  }
260
257
 
258
+ //#endregion
261
259
  exports.loadDefaults = loadDefaults;
262
260
  exports.render = render;
263
261
  exports.storageSettingsFromURL = storageSettingsFromURL;
264
- //# sourceMappingURL=pl-config.cjs.map
262
+ //# sourceMappingURL=pl-config.cjs.map