@platforma-sdk/bootstrap 5.2.40 → 5.2.42

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 (168) hide show
  1. package/README.md +10 -2
  2. package/assets/compose-backend.yaml +2 -2
  3. package/bin/run.js +3 -3
  4. package/dist/block.cjs +36 -31
  5. package/dist/block.cjs.map +1 -1
  6. package/dist/block.d.ts +2 -2
  7. package/dist/block.d.ts.map +1 -1
  8. package/dist/block.js +36 -31
  9. package/dist/block.js.map +1 -1
  10. package/dist/cmd-opts.cjs +74 -74
  11. package/dist/cmd-opts.cjs.map +1 -1
  12. package/dist/cmd-opts.d.ts +23 -23
  13. package/dist/cmd-opts.d.ts.map +1 -1
  14. package/dist/cmd-opts.js +74 -74
  15. package/dist/cmd-opts.js.map +1 -1
  16. package/dist/commands/create-block.cjs +3 -3
  17. package/dist/commands/create-block.cjs.map +1 -1
  18. package/dist/commands/create-block.d.ts +2 -2
  19. package/dist/commands/create-block.d.ts.map +1 -1
  20. package/dist/commands/create-block.js +3 -3
  21. package/dist/commands/create-block.js.map +1 -1
  22. package/dist/commands/reset.cjs +3 -3
  23. package/dist/commands/reset.cjs.map +1 -1
  24. package/dist/commands/reset.d.ts +2 -2
  25. package/dist/commands/reset.d.ts.map +1 -1
  26. package/dist/commands/reset.js +3 -3
  27. package/dist/commands/reset.js.map +1 -1
  28. package/dist/commands/start/docker/s3.cjs +18 -18
  29. package/dist/commands/start/docker/s3.cjs.map +1 -1
  30. package/dist/commands/start/docker/s3.d.ts +15 -15
  31. package/dist/commands/start/docker/s3.d.ts.map +1 -1
  32. package/dist/commands/start/docker/s3.js +18 -18
  33. package/dist/commands/start/docker/s3.js.map +1 -1
  34. package/dist/commands/start/docker.cjs +18 -18
  35. package/dist/commands/start/docker.cjs.map +1 -1
  36. package/dist/commands/start/docker.d.ts +16 -16
  37. package/dist/commands/start/docker.d.ts.map +1 -1
  38. package/dist/commands/start/docker.js +18 -18
  39. package/dist/commands/start/docker.js.map +1 -1
  40. package/dist/commands/start/local/s3.cjs +36 -34
  41. package/dist/commands/start/local/s3.cjs.map +1 -1
  42. package/dist/commands/start/local/s3.d.ts +18 -18
  43. package/dist/commands/start/local/s3.d.ts.map +1 -1
  44. package/dist/commands/start/local/s3.js +36 -34
  45. package/dist/commands/start/local/s3.js.map +1 -1
  46. package/dist/commands/start/local.cjs +32 -30
  47. package/dist/commands/start/local.cjs.map +1 -1
  48. package/dist/commands/start/local.d.ts +16 -16
  49. package/dist/commands/start/local.d.ts.map +1 -1
  50. package/dist/commands/start/local.js +32 -30
  51. package/dist/commands/start/local.js.map +1 -1
  52. package/dist/commands/start.cjs +3 -3
  53. package/dist/commands/start.cjs.map +1 -1
  54. package/dist/commands/start.d.ts +2 -2
  55. package/dist/commands/start.js +3 -3
  56. package/dist/commands/start.js.map +1 -1
  57. package/dist/commands/stop.cjs +4 -4
  58. package/dist/commands/stop.cjs.map +1 -1
  59. package/dist/commands/stop.d.ts +2 -2
  60. package/dist/commands/stop.js +4 -4
  61. package/dist/commands/stop.js.map +1 -1
  62. package/dist/commands/svc/create/arg-parser.cjs +13 -13
  63. package/dist/commands/svc/create/arg-parser.cjs.map +1 -1
  64. package/dist/commands/svc/create/arg-parser.d.ts +1 -1
  65. package/dist/commands/svc/create/arg-parser.js +13 -13
  66. package/dist/commands/svc/create/arg-parser.js.map +1 -1
  67. package/dist/commands/svc/create/docker/s3.cjs +27 -27
  68. package/dist/commands/svc/create/docker/s3.cjs.map +1 -1
  69. package/dist/commands/svc/create/docker/s3.d.ts +15 -15
  70. package/dist/commands/svc/create/docker/s3.d.ts.map +1 -1
  71. package/dist/commands/svc/create/docker/s3.js +27 -27
  72. package/dist/commands/svc/create/docker/s3.js.map +1 -1
  73. package/dist/commands/svc/create/docker.cjs +35 -35
  74. package/dist/commands/svc/create/docker.cjs.map +1 -1
  75. package/dist/commands/svc/create/docker.d.ts +16 -16
  76. package/dist/commands/svc/create/docker.js +35 -35
  77. package/dist/commands/svc/create/docker.js.map +1 -1
  78. package/dist/commands/svc/create/local/s3.cjs +37 -35
  79. package/dist/commands/svc/create/local/s3.cjs.map +1 -1
  80. package/dist/commands/svc/create/local/s3.d.ts +18 -18
  81. package/dist/commands/svc/create/local/s3.d.ts.map +1 -1
  82. package/dist/commands/svc/create/local/s3.js +37 -35
  83. package/dist/commands/svc/create/local/s3.js.map +1 -1
  84. package/dist/commands/svc/create/local.cjs +35 -35
  85. package/dist/commands/svc/create/local.cjs.map +1 -1
  86. package/dist/commands/svc/create/local.d.ts +16 -16
  87. package/dist/commands/svc/create/local.d.ts.map +1 -1
  88. package/dist/commands/svc/create/local.js +35 -35
  89. package/dist/commands/svc/create/local.js.map +1 -1
  90. package/dist/commands/svc/delete.cjs +4 -4
  91. package/dist/commands/svc/delete.cjs.map +1 -1
  92. package/dist/commands/svc/delete.d.ts +2 -2
  93. package/dist/commands/svc/delete.js +4 -4
  94. package/dist/commands/svc/delete.js.map +1 -1
  95. package/dist/commands/svc/down.cjs +3 -3
  96. package/dist/commands/svc/down.cjs.map +1 -1
  97. package/dist/commands/svc/down.d.ts +2 -2
  98. package/dist/commands/svc/down.js +3 -3
  99. package/dist/commands/svc/down.js.map +1 -1
  100. package/dist/commands/svc/list.cjs +5 -5
  101. package/dist/commands/svc/list.cjs.map +1 -1
  102. package/dist/commands/svc/list.d.ts +1 -1
  103. package/dist/commands/svc/list.d.ts.map +1 -1
  104. package/dist/commands/svc/list.js +5 -5
  105. package/dist/commands/svc/list.js.map +1 -1
  106. package/dist/commands/svc/up.cjs +5 -5
  107. package/dist/commands/svc/up.cjs.map +1 -1
  108. package/dist/commands/svc/up.d.ts +2 -2
  109. package/dist/commands/svc/up.d.ts.map +1 -1
  110. package/dist/commands/svc/up.js +5 -5
  111. package/dist/commands/svc/up.js.map +1 -1
  112. package/dist/core.cjs +261 -231
  113. package/dist/core.cjs.map +1 -1
  114. package/dist/core.d.ts +10 -10
  115. package/dist/core.d.ts.map +1 -1
  116. package/dist/core.js +261 -231
  117. package/dist/core.js.map +1 -1
  118. package/dist/index.cjs +16 -16
  119. package/dist/index.cjs.map +1 -1
  120. package/dist/index.d.ts +29 -29
  121. package/dist/index.js +16 -16
  122. package/dist/index.js.map +1 -1
  123. package/dist/package.cjs +2 -2
  124. package/dist/package.cjs.map +1 -1
  125. package/dist/package.js +2 -2
  126. package/dist/package.js.map +1 -1
  127. package/dist/platforma.cjs +24 -24
  128. package/dist/platforma.cjs.map +1 -1
  129. package/dist/platforma.d.ts +1 -1
  130. package/dist/platforma.d.ts.map +1 -1
  131. package/dist/platforma.js +24 -24
  132. package/dist/platforma.js.map +1 -1
  133. package/dist/run.cjs +6 -6
  134. package/dist/run.cjs.map +1 -1
  135. package/dist/run.d.ts +3 -3
  136. package/dist/run.d.ts.map +1 -1
  137. package/dist/run.js +6 -6
  138. package/dist/run.js.map +1 -1
  139. package/dist/state.cjs +16 -14
  140. package/dist/state.cjs.map +1 -1
  141. package/dist/state.d.ts +5 -5
  142. package/dist/state.d.ts.map +1 -1
  143. package/dist/state.js +16 -14
  144. package/dist/state.js.map +1 -1
  145. package/dist/templates/compose.cjs +2 -2
  146. package/dist/templates/compose.cjs.map +1 -1
  147. package/dist/templates/compose.d.ts.map +1 -1
  148. package/dist/templates/compose.js +2 -2
  149. package/dist/templates/compose.js.map +1 -1
  150. package/dist/templates/pl-config.cjs +49 -49
  151. package/dist/templates/pl-config.cjs.map +1 -1
  152. package/dist/templates/pl-config.d.ts +2 -2
  153. package/dist/templates/pl-config.d.ts.map +1 -1
  154. package/dist/templates/pl-config.js +49 -49
  155. package/dist/templates/pl-config.js.map +1 -1
  156. package/dist/templates/types.cjs +12 -12
  157. package/dist/templates/types.cjs.map +1 -1
  158. package/dist/templates/types.d.ts +6 -6
  159. package/dist/templates/types.d.ts.map +1 -1
  160. package/dist/templates/types.js +12 -12
  161. package/dist/templates/types.js.map +1 -1
  162. package/dist/util.cjs +19 -17
  163. package/dist/util.cjs.map +1 -1
  164. package/dist/util.d.ts +2 -2
  165. package/dist/util.d.ts.map +1 -1
  166. package/dist/util.js +19 -17
  167. package/dist/util.js.map +1 -1
  168. package/package.json +23 -22
@@ -1 +1 @@
1
- {"version":3,"file":"pl-config.cjs","sources":["../../src/templates/pl-config.ts"],"sourcesContent":["import fs from 'node:fs';\nimport * as types from './types';\nimport { assertNever, resolveTilde } from '../util';\nimport state from '../state';\n\nexport type { plOptions } from './types';\n\nexport function storageSettingsFromURL(\n storageURL: string,\n baseDir?: string,\n defaults?: types.storageOptions,\n): types.storageOptions {\n storageURL = resolveTilde(storageURL);\n const url = new URL(storageURL, `file:${baseDir}`);\n\n switch (url.protocol) {\n case 's3:': {\n const bucketName = url.hostname;\n const region = url.searchParams.get('region');\n const keyPrefix = url.pathname.slice(1); // 's3://bucket/' will have '/' as pathname. We don't want to always have '/' prefix\n\n return {\n ...defaults,\n\n type: 'S3',\n bucketName,\n region,\n keyPrefix,\n } as types.storageOptions;\n }\n case 's3e:': {\n const p = url.pathname.split('/').slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']\n const bucketName = p[0];\n const keyPrefix = p.length > 1 ? p.slice(1).join('/') : '';\n\n return {\n ...defaults,\n\n type: 'S3',\n endpoint: `http://${url.host}/`,\n bucketName,\n keyPrefix,\n region: url.searchParams.get('region'),\n key: url.username ? `static:${url.username}` : '',\n secret: url.password ? `static:${url.password}` : '',\n } as types.storageOptions;\n }\n case 's3es:': {\n const p = url.pathname.split('/').slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']\n const bucketName = p[0];\n const keyPrefix = p.length > 1 ? p.slice(1).join('/') : '';\n\n return {\n ...defaults,\n\n type: 'S3',\n endpoint: `https://${url.host}/`,\n bucketName,\n keyPrefix,\n region: url.searchParams.get('region'),\n key: url.username ? `static:${url.username}` : '',\n secret: url.password ? `static:${url.password}` : '',\n } as types.storageOptions;\n }\n case 'file:':\n return {\n type: 'FS',\n rootPath: url.pathname,\n };\n\n default:\n throw new Error(`storage protocol '${url.protocol}' is not supported`);\n }\n}\n\nexport function loadDefaults(jwtKey: string, options?: types.plOptions): types.plSettings {\n const localRoot = options?.localRoot ?? state.instanceDir('default');\n\n const log: types.logSettings = {\n level: options?.log?.level ?? 'info',\n path: options?.log?.path ?? `${localRoot}/logs/platforma.log`,\n };\n\n const grpc: types.grpcSettings = {\n listen: options?.grpc?.listen ?? 'localhost:6345',\n tls: {\n enable: defaultBool(options?.grpc?.tls?.enable, false),\n clientAuthMode: options?.grpc?.tls?.clientAuthMode ?? 'NoAuth',\n certFile: options?.grpc?.tls?.certFile ?? `${localRoot}/certs/tls.cert`,\n keyFile: options?.grpc?.tls?.keyFile ?? `${localRoot}/certs/tls.key`,\n\n ...options?.grpc?.tls,\n },\n };\n\n const core: types.coreSettings = {\n auth: {\n enabled: options?.core?.auth?.enabled ?? false,\n drivers: options?.core?.auth?.drivers ?? [\n { driver: 'jwt', key: jwtKey },\n { driver: 'htpasswd', path: `${localRoot}/users.htpasswd` },\n ],\n },\n db: {\n path: `${localRoot}/db`,\n },\n };\n\n const primary = defaultStorageSettings(\n 'main',\n `${localRoot}/storages/main`,\n 'platforma-primary-bucket',\n options?.storages?.primary,\n );\n\n let work: types.storageSettings;\n const wType = options?.storages?.work?.type;\n switch (wType) {\n case undefined:\n case 'FS':\n work = types.emptyFSSettings('work');\n work.rootPath = options?.storages?.work?.rootPath ?? `${localRoot}/storages/work`;\n work.indexCachePeriod = options?.storages?.work?.indexCachePeriod ?? '1m';\n break;\n\n default:\n throw new Error('work storage MUST have \\'FS\\' type as it is used for working directories management');\n }\n\n const library = defaultStorageSettings(\n 'library',\n `${localRoot}/storages/library`,\n 'platforma-library-bucket',\n options?.storages?.library,\n );\n\n const monitoring: types.monitoringSettings = {\n enabled: defaultBool(options?.monitoring?.enabled, true),\n listen: options?.monitoring?.listen ?? '127.0.0.1:9090',\n };\n const debug: types.debugSettings = {\n enabled: defaultBool(options?.debug?.enabled, true),\n listen: options?.debug?.listen ?? '127.0.0.1:9091',\n };\n const license: types.licenseSettings = {\n value: options?.license?.value ?? '',\n file: options?.license?.file ?? '',\n };\n\n return {\n localRoot,\n license,\n log,\n grpc,\n core,\n monitoring,\n debug,\n numCpu: options?.numCpu,\n storages: { primary, work, library },\n hacks: { libraryDownloadable: true },\n };\n}\n\nfunction defaultStorageSettings(\n storageID: string,\n defaultLocation: string,\n defaultBucket: string,\n options?: types.storageOptions,\n): types.storageSettings {\n let storage: types.storageSettings;\n const pType = options?.type;\n switch (pType) {\n case undefined:\n case 'FS':\n storage = types.emptyFSSettings(storageID);\n storage.rootPath = options?.rootPath ?? defaultLocation;\n break;\n\n case 'S3':\n storage = types.emptyS3Settings(storageID);\n\n storage.endpoint = options?.endpoint;\n storage.region = options?.region;\n storage.presignEndpoint = options?.presignEndpoint ?? options?.endpoint;\n storage.bucketName = options?.bucketName ?? defaultBucket;\n storage.createBucket = defaultBool(options?.createBucket, true);\n storage.forcePathStyle = defaultBool(options?.forcePathStyle, true);\n storage.key = options?.key ?? '';\n storage.secret = options?.secret ?? '';\n storage.keyPrefix = options?.keyPrefix ?? '';\n storage.accessPrefixes = options?.accessPrefixes ?? [''];\n storage.uploadKeyPrefix = options?.uploadKeyPrefix ?? '';\n break;\n\n default:\n assertNever(pType);\n throw new Error('unknown storage type'); // calm down TS type analyzer\n }\n\n return storage;\n}\n\nexport function render(options: types.plSettings): string {\n const disableMon = options.monitoring.enabled ? '' : ' disabled';\n const disableDbg = options.debug.enabled ? '' : ' disabled';\n const libraryDownloadable = options.hacks.libraryDownloadable ? 'true' : 'false';\n let miLicenseSecret = options.license.value;\n if (options.license.file != '') {\n miLicenseSecret = fs.readFileSync(options.license.file).toString().trimEnd();\n }\n\n let cpuLimit = '';\n if (options.numCpu) {\n cpuLimit = `\n resources:\n cpu: ${options.numCpu}\n`;\n }\n\n return `\nlicense:\n value: '${options.license.value}'\n file: '${options.license.file}'\n\nlogging:\n level: '${options.log.level}'\n destinations:\n - path: '${options.log.path}'\n rotation:\n maxSize: 1GiB\n maxBackups: 15\n compress: true\n\nmonitoring${disableMon}:\n listen: '${options.monitoring.listen}'\n\ndebug${disableDbg}:\n listen: '${options.debug.listen}'\n\ncore:\n logging:\n extendedInfo: true\n dumpResourceData: false\n\n grpc:\n listen: '${options.grpc.listen}'\n\n tlsEnabled: ${JSON.stringify(options.grpc.tls.enable)}\n tls:\n clientAuthMode: '${options.grpc.tls.clientAuthMode}'\n certificates:\n - certFile: '${options.grpc.tls.certFile}'\n keyFile: '${options.grpc.tls.keyFile}'\n\n\n authEnabled: ${JSON.stringify(options.core.auth.enabled)}\n auth: ${JSON.stringify(options.core.auth.drivers)}\n db:\n path: '${options.core.db.path}'\n\ncontrollers:\n data:\n main:\n storages:\n main:\n mode: primary\n downloadable: true\n\n library:\n mode: passive\n downloadable: ${libraryDownloadable}\n\n work:\n mode: active\n downloadable: false\n\n storages:\n - ${JSON.stringify(options.storages.primary)}\n - ${JSON.stringify(options.storages.library)}\n - ${JSON.stringify(options.storages.work)}\n\n runner:\n type: local\n storageRoot: '${(options.storages.work).rootPath}'\n workdirCacheOnSuccess: 20m\n workdirCacheOnFailure: 1h\n${cpuLimit}\n secrets:\n - map:\n MI_LICENSE: ${JSON.stringify(miLicenseSecret)}\n\n packageLoader:\n packagesRoot: '${options.localRoot}/packages'\n\n workflows:\n features:\n pureFutureFields: true\n commandExpressions: true\n workdirLimits: true\n computeLimits: false\n`;\n}\n\nfunction defaultBool(v: boolean | undefined, def: boolean): boolean {\n return v === undefined ? def : v;\n}\n"],"names":["resolveTilde","types.emptyFSSettings","types.emptyS3Settings","assertNever"],"mappings":";;;;;;;SAOgB,sBAAsB,CACpC,UAAkB,EAClB,OAAgB,EAChB,QAA+B,EAAA;AAE/B,IAAA,UAAU,GAAGA,iBAAY,CAAC,UAAU,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAA,KAAA,EAAQ,OAAO,CAAA,CAAE,CAAC;AAElD,IAAA,QAAQ,GAAG,CAAC,QAAQ;QAClB,KAAK,KAAK,EAAE;AACV,YAAA,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ;YAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7C,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAExC,OAAO;AACL,gBAAA,GAAG,QAAQ;AAEX,gBAAA,IAAI,EAAE,IAAI;gBACV,UAAU;gBACV,MAAM;gBACN,SAAS;aACc;QAC3B;QACA,KAAK,MAAM,EAAE;AACX,YAAA,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YAE1D,OAAO;AACL,gBAAA,GAAG,QAAQ;AAEX,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,CAAA,OAAA,EAAU,GAAG,CAAC,IAAI,CAAA,CAAA,CAAG;gBAC/B,UAAU;gBACV,SAAS;gBACT,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACjD,gBAAA,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;aAC7B;QAC3B;QACA,KAAK,OAAO,EAAE;AACZ,YAAA,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YAE1D,OAAO;AACL,gBAAA,GAAG,QAAQ;AAEX,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,CAAA,QAAA,EAAW,GAAG,CAAC,IAAI,CAAA,CAAA,CAAG;gBAChC,UAAU;gBACV,SAAS;gBACT,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACjD,gBAAA,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;aAC7B;QAC3B;AACA,QAAA,KAAK,OAAO;YACV,OAAO;AACL,gBAAA,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB;AAEH,QAAA;YACE,MAAM,IAAI,KAAK,CAAC,CAAA,kBAAA,EAAqB,GAAG,CAAC,QAAQ,CAAA,kBAAA,CAAoB,CAAC;;AAE5E;AAEM,SAAU,YAAY,CAAC,MAAc,EAAE,OAAyB,EAAA;AACpE,IAAA,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;AAEpE,IAAA,MAAM,GAAG,GAAsB;AAC7B,QAAA,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,MAAM;QACpC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,CAAA,EAAG,SAAS,CAAA,mBAAA,CAAqB;KAC9D;AAED,IAAA,MAAM,IAAI,GAAuB;AAC/B,QAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,gBAAgB;AACjD,QAAA,GAAG,EAAE;AACH,YAAA,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;YACtD,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,IAAI,QAAQ;YAC9D,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,IAAI,CAAA,EAAG,SAAS,CAAA,eAAA,CAAiB;YACvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,CAAA,EAAG,SAAS,CAAA,cAAA,CAAgB;AAEpE,YAAA,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG;AACtB,SAAA;KACF;AAED,IAAA,MAAM,IAAI,GAAuB;AAC/B,QAAA,IAAI,EAAE;YACJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;YAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI;AACvC,gBAAA,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC9B,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,eAAA,CAAiB,EAAE;AAC5D,aAAA;AACF,SAAA;AACD,QAAA,EAAE,EAAE;YACF,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,GAAA,CAAK;AACxB,SAAA;KACF;AAED,IAAA,MAAM,OAAO,GAAG,sBAAsB,CACpC,MAAM,EACN,GAAG,SAAS,CAAA,cAAA,CAAgB,EAC5B,0BAA0B,EAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,CAC3B;AAED,IAAA,IAAI,IAA2B;IAC/B,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;IAC3C,QAAQ,KAAK;AACX,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,IAAI;AACP,YAAA,IAAI,GAAGC,qBAAqB,CAAC,MAAM,CAAC;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAA,EAAG,SAAS,gBAAgB;AACjF,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,IAAI,IAAI;YACzE;AAEF,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC;;AAG1G,IAAA,MAAM,OAAO,GAAG,sBAAsB,CACpC,SAAS,EACT,GAAG,SAAS,CAAA,iBAAA,CAAmB,EAC/B,0BAA0B,EAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,CAC3B;AAED,IAAA,MAAM,UAAU,GAA6B;QAC3C,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AACxD,QAAA,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,gBAAgB;KACxD;AACD,IAAA,MAAM,KAAK,GAAwB;QACjC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AACnD,QAAA,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,gBAAgB;KACnD;AACD,IAAA,MAAM,OAAO,GAA0B;AACrC,QAAA,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;AACpC,QAAA,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;KACnC;IAED,OAAO;QACL,SAAS;QACT,OAAO;QACP,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,KAAK;QACL,MAAM,EAAE,OAAO,EAAE,MAAM;AACvB,QAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAA,KAAK,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE;KACrC;AACH;AAEA,SAAS,sBAAsB,CAC7B,SAAiB,EACjB,eAAuB,EACvB,aAAqB,EACrB,OAA8B,EAAA;AAE9B,IAAA,IAAI,OAA8B;AAClC,IAAA,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI;IAC3B,QAAQ,KAAK;AACX,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,GAAGA,qBAAqB,CAAC,SAAS,CAAC;YAC1C,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,eAAe;YACvD;AAEF,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,GAAGC,qBAAqB,CAAC,SAAS,CAAC;AAE1C,YAAA,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ;AACpC,YAAA,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM;YAChC,OAAO,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,QAAQ;YACvE,OAAO,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,aAAa;YACzD,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC;YAC/D,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC;YACnE,OAAO,CAAC,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE;YAChC,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,EAAE;YACtC,OAAO,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE;YAC5C,OAAO,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,EAAE;YACxD;AAEF,QAAA;YACEC,gBAAW,CAAM,CAAC;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;;AAG5C,IAAA,OAAO,OAAO;AAChB;AAEM,SAAU,MAAM,CAAC,OAAyB,EAAA;AAC9C,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,GAAG,WAAW;AAChE,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,WAAW;AAC3D,IAAA,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,MAAM,GAAG,OAAO;AAChF,IAAA,IAAI,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK;IAC3C,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE;AAC9B,QAAA,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;IAC9E;IAEA,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAA,QAAQ,GAAG;;AAEF,WAAA,EAAA,OAAO,CAAC,MAAM;CAC1B;IACC;IAEA,OAAO;;YAEG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAA;WACtB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;;;YAGnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA;;eAEd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA;;;;;;YAMnB,UAAU,CAAA;aACT,OAAO,CAAC,UAAU,CAAC,MAAM,CAAA;;OAE/B,UAAU,CAAA;aACJ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAA;;;;;;;;eAQlB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;;kBAEhB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;;AAEhC,uBAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAA;;AAEjC,qBAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;AAC1B,oBAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;;;iBAG7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;UAChD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;AAEtC,WAAA,EAAA,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA;;;;;;;;;;;;8BAYH,mBAAmB;;;;;;;UAOvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;UACxC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;UACxC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;;;;AAI3B,kBAAA,EAAA,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;;;EAGlD,QAAQ;;;AAGc,sBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;AAGlC,mBAAA,EAAA,OAAO,CAAC,SAAS,CAAA;;;;;;;;CAQrC;AACD;AAEA,SAAS,WAAW,CAAC,CAAsB,EAAE,GAAY,EAAA;IACvD,OAAO,CAAC,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC;AAClC;;;;;;"}
1
+ {"version":3,"file":"pl-config.cjs","sources":["../../src/templates/pl-config.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport * as types from \"./types\";\nimport { assertNever, resolveTilde } from \"../util\";\nimport state from \"../state\";\n\nexport type { plOptions } from \"./types\";\n\nexport function storageSettingsFromURL(\n storageURL: string,\n baseDir?: string,\n defaults?: types.storageOptions,\n): types.storageOptions {\n storageURL = resolveTilde(storageURL);\n const url = new URL(storageURL, `file:${baseDir}`);\n\n switch (url.protocol) {\n case \"s3:\": {\n const bucketName = url.hostname;\n const region = url.searchParams.get(\"region\");\n const keyPrefix = url.pathname.slice(1); // 's3://bucket/' will have '/' as pathname. We don't want to always have '/' prefix\n\n return {\n ...defaults,\n\n type: \"S3\",\n bucketName,\n region,\n keyPrefix,\n } as types.storageOptions;\n }\n case \"s3e:\": {\n const p = url.pathname.split(\"/\").slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']\n const bucketName = p[0];\n const keyPrefix = p.length > 1 ? p.slice(1).join(\"/\") : \"\";\n\n return {\n ...defaults,\n\n type: \"S3\",\n endpoint: `http://${url.host}/`,\n bucketName,\n keyPrefix,\n region: url.searchParams.get(\"region\"),\n key: url.username ? `static:${url.username}` : \"\",\n secret: url.password ? `static:${url.password}` : \"\",\n } as types.storageOptions;\n }\n case \"s3es:\": {\n const p = url.pathname.split(\"/\").slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']\n const bucketName = p[0];\n const keyPrefix = p.length > 1 ? p.slice(1).join(\"/\") : \"\";\n\n return {\n ...defaults,\n\n type: \"S3\",\n endpoint: `https://${url.host}/`,\n bucketName,\n keyPrefix,\n region: url.searchParams.get(\"region\"),\n key: url.username ? `static:${url.username}` : \"\",\n secret: url.password ? `static:${url.password}` : \"\",\n } as types.storageOptions;\n }\n case \"file:\":\n return {\n type: \"FS\",\n rootPath: url.pathname,\n };\n\n default:\n throw new Error(`storage protocol '${url.protocol}' is not supported`);\n }\n}\n\nexport function loadDefaults(jwtKey: string, options?: types.plOptions): types.plSettings {\n const localRoot = options?.localRoot ?? state.instanceDir(\"default\");\n\n const log: types.logSettings = {\n level: options?.log?.level ?? \"info\",\n path: options?.log?.path ?? `${localRoot}/logs/platforma.log`,\n };\n\n const grpc: types.grpcSettings = {\n listen: options?.grpc?.listen ?? \"localhost:6345\",\n tls: {\n enable: defaultBool(options?.grpc?.tls?.enable, false),\n clientAuthMode: options?.grpc?.tls?.clientAuthMode ?? \"NoAuth\",\n certFile: options?.grpc?.tls?.certFile ?? `${localRoot}/certs/tls.cert`,\n keyFile: options?.grpc?.tls?.keyFile ?? `${localRoot}/certs/tls.key`,\n\n ...options?.grpc?.tls,\n },\n };\n\n const core: types.coreSettings = {\n auth: {\n enabled: options?.core?.auth?.enabled ?? false,\n drivers: options?.core?.auth?.drivers ?? [\n { driver: \"jwt\", key: jwtKey },\n { driver: \"htpasswd\", path: `${localRoot}/users.htpasswd` },\n ],\n },\n db: {\n path: `${localRoot}/db`,\n },\n };\n\n const primary = defaultStorageSettings(\n \"main\",\n `${localRoot}/storages/main`,\n \"platforma-primary-bucket\",\n options?.storages?.primary,\n );\n\n let work: types.storageSettings;\n const wType = options?.storages?.work?.type;\n switch (wType) {\n case undefined:\n case \"FS\":\n work = types.emptyFSSettings(\"work\");\n work.rootPath = options?.storages?.work?.rootPath ?? `${localRoot}/storages/work`;\n work.indexCachePeriod = options?.storages?.work?.indexCachePeriod ?? \"1m\";\n break;\n\n default:\n throw new Error(\n \"work storage MUST have 'FS' type as it is used for working directories management\",\n );\n }\n\n const library = defaultStorageSettings(\n \"library\",\n `${localRoot}/storages/library`,\n \"platforma-library-bucket\",\n options?.storages?.library,\n );\n\n const monitoring: types.monitoringSettings = {\n enabled: defaultBool(options?.monitoring?.enabled, true),\n listen: options?.monitoring?.listen ?? \"127.0.0.1:9090\",\n };\n const debug: types.debugSettings = {\n enabled: defaultBool(options?.debug?.enabled, true),\n listen: options?.debug?.listen ?? \"127.0.0.1:9091\",\n };\n const license: types.licenseSettings = {\n value: options?.license?.value ?? \"\",\n file: options?.license?.file ?? \"\",\n };\n\n return {\n localRoot,\n license,\n log,\n grpc,\n core,\n monitoring,\n debug,\n numCpu: options?.numCpu,\n storages: { primary, work, library },\n hacks: { libraryDownloadable: true },\n };\n}\n\nfunction defaultStorageSettings(\n storageID: string,\n defaultLocation: string,\n defaultBucket: string,\n options?: types.storageOptions,\n): types.storageSettings {\n let storage: types.storageSettings;\n const pType = options?.type;\n switch (pType) {\n case undefined:\n case \"FS\":\n storage = types.emptyFSSettings(storageID);\n storage.rootPath = options?.rootPath ?? defaultLocation;\n break;\n\n case \"S3\":\n storage = types.emptyS3Settings(storageID);\n\n storage.endpoint = options?.endpoint;\n storage.region = options?.region;\n storage.presignEndpoint = options?.presignEndpoint ?? options?.endpoint;\n storage.bucketName = options?.bucketName ?? defaultBucket;\n storage.createBucket = defaultBool(options?.createBucket, true);\n storage.forcePathStyle = defaultBool(options?.forcePathStyle, true);\n storage.key = options?.key ?? \"\";\n storage.secret = options?.secret ?? \"\";\n storage.keyPrefix = options?.keyPrefix ?? \"\";\n storage.accessPrefixes = options?.accessPrefixes ?? [\"\"];\n storage.uploadKeyPrefix = options?.uploadKeyPrefix ?? \"\";\n break;\n\n default:\n assertNever(pType);\n throw new Error(\"unknown storage type\"); // calm down TS type analyzer\n }\n\n return storage;\n}\n\nexport function render(options: types.plSettings): string {\n const disableMon = options.monitoring.enabled ? \"\" : \" disabled\";\n const disableDbg = options.debug.enabled ? \"\" : \" disabled\";\n const libraryDownloadable = options.hacks.libraryDownloadable ? \"true\" : \"false\";\n let miLicenseSecret = options.license.value;\n if (options.license.file != \"\") {\n miLicenseSecret = fs.readFileSync(options.license.file).toString().trimEnd();\n }\n\n let cpuLimit = \"\";\n if (options.numCpu) {\n cpuLimit = `\n resources:\n cpu: ${options.numCpu}\n`;\n }\n\n return `\nlicense:\n value: '${options.license.value}'\n file: '${options.license.file}'\n\nlogging:\n level: '${options.log.level}'\n destinations:\n - path: '${options.log.path}'\n rotation:\n maxSize: 1GiB\n maxBackups: 15\n compress: true\n\nmonitoring${disableMon}:\n listen: '${options.monitoring.listen}'\n\ndebug${disableDbg}:\n listen: '${options.debug.listen}'\n\ncore:\n logging:\n extendedInfo: true\n dumpResourceData: false\n\n grpc:\n listen: '${options.grpc.listen}'\n\n tlsEnabled: ${JSON.stringify(options.grpc.tls.enable)}\n tls:\n clientAuthMode: '${options.grpc.tls.clientAuthMode}'\n certificates:\n - certFile: '${options.grpc.tls.certFile}'\n keyFile: '${options.grpc.tls.keyFile}'\n\n\n authEnabled: ${JSON.stringify(options.core.auth.enabled)}\n auth: ${JSON.stringify(options.core.auth.drivers)}\n db:\n path: '${options.core.db.path}'\n\ncontrollers:\n data:\n main:\n storages:\n main:\n mode: primary\n downloadable: true\n\n library:\n mode: passive\n downloadable: ${libraryDownloadable}\n\n work:\n mode: active\n downloadable: false\n\n storages:\n - ${JSON.stringify(options.storages.primary)}\n - ${JSON.stringify(options.storages.library)}\n - ${JSON.stringify(options.storages.work)}\n\n runner:\n type: local\n storageRoot: '${options.storages.work.rootPath}'\n workdirCacheOnSuccess: 20m\n workdirCacheOnFailure: 1h\n${cpuLimit}\n secrets:\n - map:\n MI_LICENSE: ${JSON.stringify(miLicenseSecret)}\n\n packageLoader:\n packagesRoot: '${options.localRoot}/packages'\n\n workflows:\n features:\n pureFutureFields: true\n commandExpressions: true\n workdirLimits: true\n computeLimits: false\n`;\n}\n\nfunction defaultBool(v: boolean | undefined, def: boolean): boolean {\n return v === undefined ? def : v;\n}\n"],"names":["resolveTilde","types.emptyFSSettings","types.emptyS3Settings","assertNever"],"mappings":";;;;;;;SAOgB,sBAAsB,CACpC,UAAkB,EAClB,OAAgB,EAChB,QAA+B,EAAA;AAE/B,IAAA,UAAU,GAAGA,iBAAY,CAAC,UAAU,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAA,KAAA,EAAQ,OAAO,CAAA,CAAE,CAAC;AAElD,IAAA,QAAQ,GAAG,CAAC,QAAQ;QAClB,KAAK,KAAK,EAAE;AACV,YAAA,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ;YAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7C,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAExC,OAAO;AACL,gBAAA,GAAG,QAAQ;AAEX,gBAAA,IAAI,EAAE,IAAI;gBACV,UAAU;gBACV,MAAM;gBACN,SAAS;aACc;QAC3B;QACA,KAAK,MAAM,EAAE;AACX,YAAA,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YAE1D,OAAO;AACL,gBAAA,GAAG,QAAQ;AAEX,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,CAAA,OAAA,EAAU,GAAG,CAAC,IAAI,CAAA,CAAA,CAAG;gBAC/B,UAAU;gBACV,SAAS;gBACT,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACjD,gBAAA,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;aAC7B;QAC3B;QACA,KAAK,OAAO,EAAE;AACZ,YAAA,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YAE1D,OAAO;AACL,gBAAA,GAAG,QAAQ;AAEX,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,CAAA,QAAA,EAAW,GAAG,CAAC,IAAI,CAAA,CAAA,CAAG;gBAChC,UAAU;gBACV,SAAS;gBACT,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACjD,gBAAA,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;aAC7B;QAC3B;AACA,QAAA,KAAK,OAAO;YACV,OAAO;AACL,gBAAA,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB;AAEH,QAAA;YACE,MAAM,IAAI,KAAK,CAAC,CAAA,kBAAA,EAAqB,GAAG,CAAC,QAAQ,CAAA,kBAAA,CAAoB,CAAC;;AAE5E;AAEM,SAAU,YAAY,CAAC,MAAc,EAAE,OAAyB,EAAA;AACpE,IAAA,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;AAEpE,IAAA,MAAM,GAAG,GAAsB;AAC7B,QAAA,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,MAAM;QACpC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,CAAA,EAAG,SAAS,CAAA,mBAAA,CAAqB;KAC9D;AAED,IAAA,MAAM,IAAI,GAAuB;AAC/B,QAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,gBAAgB;AACjD,QAAA,GAAG,EAAE;AACH,YAAA,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;YACtD,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,IAAI,QAAQ;YAC9D,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,IAAI,CAAA,EAAG,SAAS,CAAA,eAAA,CAAiB;YACvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,CAAA,EAAG,SAAS,CAAA,cAAA,CAAgB;AAEpE,YAAA,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG;AACtB,SAAA;KACF;AAED,IAAA,MAAM,IAAI,GAAuB;AAC/B,QAAA,IAAI,EAAE;YACJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;YAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI;AACvC,gBAAA,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC9B,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,eAAA,CAAiB,EAAE;AAC5D,aAAA;AACF,SAAA;AACD,QAAA,EAAE,EAAE;YACF,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,GAAA,CAAK;AACxB,SAAA;KACF;AAED,IAAA,MAAM,OAAO,GAAG,sBAAsB,CACpC,MAAM,EACN,GAAG,SAAS,CAAA,cAAA,CAAgB,EAC5B,0BAA0B,EAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,CAC3B;AAED,IAAA,IAAI,IAA2B;IAC/B,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;IAC3C,QAAQ,KAAK;AACX,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,IAAI;AACP,YAAA,IAAI,GAAGC,qBAAqB,CAAC,MAAM,CAAC;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAA,EAAG,SAAS,gBAAgB;AACjF,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,IAAI,IAAI;YACzE;AAEF,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF;;AAGL,IAAA,MAAM,OAAO,GAAG,sBAAsB,CACpC,SAAS,EACT,GAAG,SAAS,CAAA,iBAAA,CAAmB,EAC/B,0BAA0B,EAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,CAC3B;AAED,IAAA,MAAM,UAAU,GAA6B;QAC3C,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AACxD,QAAA,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,gBAAgB;KACxD;AACD,IAAA,MAAM,KAAK,GAAwB;QACjC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AACnD,QAAA,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,gBAAgB;KACnD;AACD,IAAA,MAAM,OAAO,GAA0B;AACrC,QAAA,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;AACpC,QAAA,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;KACnC;IAED,OAAO;QACL,SAAS;QACT,OAAO;QACP,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,KAAK;QACL,MAAM,EAAE,OAAO,EAAE,MAAM;AACvB,QAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAA,KAAK,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE;KACrC;AACH;AAEA,SAAS,sBAAsB,CAC7B,SAAiB,EACjB,eAAuB,EACvB,aAAqB,EACrB,OAA8B,EAAA;AAE9B,IAAA,IAAI,OAA8B;AAClC,IAAA,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI;IAC3B,QAAQ,KAAK;AACX,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,GAAGA,qBAAqB,CAAC,SAAS,CAAC;YAC1C,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,eAAe;YACvD;AAEF,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,GAAGC,qBAAqB,CAAC,SAAS,CAAC;AAE1C,YAAA,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ;AACpC,YAAA,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM;YAChC,OAAO,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,QAAQ;YACvE,OAAO,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,aAAa;YACzD,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC;YAC/D,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC;YACnE,OAAO,CAAC,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE;YAChC,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,EAAE;YACtC,OAAO,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE;YAC5C,OAAO,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,EAAE;YACxD;AAEF,QAAA;YACEC,gBAAW,CAAM,CAAC;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;;AAG5C,IAAA,OAAO,OAAO;AAChB;AAEM,SAAU,MAAM,CAAC,OAAyB,EAAA;AAC9C,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,GAAG,WAAW;AAChE,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,WAAW;AAC3D,IAAA,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,MAAM,GAAG,OAAO;AAChF,IAAA,IAAI,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK;IAC3C,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE;AAC9B,QAAA,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;IAC9E;IAEA,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAA,QAAQ,GAAG;;AAEF,WAAA,EAAA,OAAO,CAAC,MAAM;CAC1B;IACC;IAEA,OAAO;;YAEG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAA;WACtB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;;;YAGnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA;;eAEd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA;;;;;;YAMnB,UAAU,CAAA;aACT,OAAO,CAAC,UAAU,CAAC,MAAM,CAAA;;OAE/B,UAAU,CAAA;aACJ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAA;;;;;;;;eAQlB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;;kBAEhB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;;AAEhC,uBAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAA;;AAEjC,qBAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;AAC1B,oBAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;;;iBAG7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;UAChD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;AAEtC,WAAA,EAAA,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA;;;;;;;;;;;;8BAYH,mBAAmB;;;;;;;UAOvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;UACxC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;UACxC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;;;;AAI3B,kBAAA,EAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAA;;;EAGhD,QAAQ;;;AAGc,sBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;AAGlC,mBAAA,EAAA,OAAO,CAAC,SAAS,CAAA;;;;;;;;CAQrC;AACD;AAEA,SAAS,WAAW,CAAC,CAAsB,EAAE,GAAY,EAAA;IACvD,OAAO,CAAC,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC;AAClC;;;;;;"}
@@ -1,5 +1,5 @@
1
- import * as types from './types';
2
- export type { plOptions } from './types';
1
+ import * as types from "./types";
2
+ export type { plOptions } from "./types";
3
3
  export declare function storageSettingsFromURL(storageURL: string, baseDir?: string, defaults?: types.storageOptions): types.storageOptions;
4
4
  export declare function loadDefaults(jwtKey: string, options?: types.plOptions): types.plSettings;
5
5
  export declare function render(options: types.plSettings): string;
@@ -1 +1 @@
1
- {"version":3,"file":"pl-config.d.ts","sourceRoot":"","sources":["../../src/templates/pl-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAIjC,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,cAAc,GAC9B,KAAK,CAAC,cAAc,CA8DtB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAsFxF;AAyCD,wBAAgB,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAmGxD"}
1
+ {"version":3,"file":"pl-config.d.ts","sourceRoot":"","sources":["../../src/templates/pl-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAIjC,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,cAAc,GAC9B,KAAK,CAAC,cAAc,CA8DtB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAwFxF;AAyCD,wBAAgB,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAmGxD"}
@@ -7,51 +7,51 @@ function storageSettingsFromURL(storageURL, baseDir, defaults) {
7
7
  storageURL = resolveTilde(storageURL);
8
8
  const url = new URL(storageURL, `file:${baseDir}`);
9
9
  switch (url.protocol) {
10
- case 's3:': {
10
+ case "s3:": {
11
11
  const bucketName = url.hostname;
12
- const region = url.searchParams.get('region');
12
+ const region = url.searchParams.get("region");
13
13
  const keyPrefix = url.pathname.slice(1); // 's3://bucket/' will have '/' as pathname. We don't want to always have '/' prefix
14
14
  return {
15
15
  ...defaults,
16
- type: 'S3',
16
+ type: "S3",
17
17
  bucketName,
18
18
  region,
19
19
  keyPrefix,
20
20
  };
21
21
  }
22
- case 's3e:': {
23
- const p = url.pathname.split('/').slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']
22
+ case "s3e:": {
23
+ const p = url.pathname.split("/").slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']
24
24
  const bucketName = p[0];
25
- const keyPrefix = p.length > 1 ? p.slice(1).join('/') : '';
25
+ const keyPrefix = p.length > 1 ? p.slice(1).join("/") : "";
26
26
  return {
27
27
  ...defaults,
28
- type: 'S3',
28
+ type: "S3",
29
29
  endpoint: `http://${url.host}/`,
30
30
  bucketName,
31
31
  keyPrefix,
32
- region: url.searchParams.get('region'),
33
- key: url.username ? `static:${url.username}` : '',
34
- secret: url.password ? `static:${url.password}` : '',
32
+ region: url.searchParams.get("region"),
33
+ key: url.username ? `static:${url.username}` : "",
34
+ secret: url.password ? `static:${url.password}` : "",
35
35
  };
36
36
  }
37
- case 's3es:': {
38
- const p = url.pathname.split('/').slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']
37
+ case "s3es:": {
38
+ const p = url.pathname.split("/").slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']
39
39
  const bucketName = p[0];
40
- const keyPrefix = p.length > 1 ? p.slice(1).join('/') : '';
40
+ const keyPrefix = p.length > 1 ? p.slice(1).join("/") : "";
41
41
  return {
42
42
  ...defaults,
43
- type: 'S3',
43
+ type: "S3",
44
44
  endpoint: `https://${url.host}/`,
45
45
  bucketName,
46
46
  keyPrefix,
47
- region: url.searchParams.get('region'),
48
- key: url.username ? `static:${url.username}` : '',
49
- secret: url.password ? `static:${url.password}` : '',
47
+ region: url.searchParams.get("region"),
48
+ key: url.username ? `static:${url.username}` : "",
49
+ secret: url.password ? `static:${url.password}` : "",
50
50
  };
51
51
  }
52
- case 'file:':
52
+ case "file:":
53
53
  return {
54
- type: 'FS',
54
+ type: "FS",
55
55
  rootPath: url.pathname,
56
56
  };
57
57
  default:
@@ -59,16 +59,16 @@ function storageSettingsFromURL(storageURL, baseDir, defaults) {
59
59
  }
60
60
  }
61
61
  function loadDefaults(jwtKey, options) {
62
- const localRoot = options?.localRoot ?? state.instanceDir('default');
62
+ const localRoot = options?.localRoot ?? state.instanceDir("default");
63
63
  const log = {
64
- level: options?.log?.level ?? 'info',
64
+ level: options?.log?.level ?? "info",
65
65
  path: options?.log?.path ?? `${localRoot}/logs/platforma.log`,
66
66
  };
67
67
  const grpc = {
68
- listen: options?.grpc?.listen ?? 'localhost:6345',
68
+ listen: options?.grpc?.listen ?? "localhost:6345",
69
69
  tls: {
70
70
  enable: defaultBool(options?.grpc?.tls?.enable, false),
71
- clientAuthMode: options?.grpc?.tls?.clientAuthMode ?? 'NoAuth',
71
+ clientAuthMode: options?.grpc?.tls?.clientAuthMode ?? "NoAuth",
72
72
  certFile: options?.grpc?.tls?.certFile ?? `${localRoot}/certs/tls.cert`,
73
73
  keyFile: options?.grpc?.tls?.keyFile ?? `${localRoot}/certs/tls.key`,
74
74
  ...options?.grpc?.tls,
@@ -78,39 +78,39 @@ function loadDefaults(jwtKey, options) {
78
78
  auth: {
79
79
  enabled: options?.core?.auth?.enabled ?? false,
80
80
  drivers: options?.core?.auth?.drivers ?? [
81
- { driver: 'jwt', key: jwtKey },
82
- { driver: 'htpasswd', path: `${localRoot}/users.htpasswd` },
81
+ { driver: "jwt", key: jwtKey },
82
+ { driver: "htpasswd", path: `${localRoot}/users.htpasswd` },
83
83
  ],
84
84
  },
85
85
  db: {
86
86
  path: `${localRoot}/db`,
87
87
  },
88
88
  };
89
- const primary = defaultStorageSettings('main', `${localRoot}/storages/main`, 'platforma-primary-bucket', options?.storages?.primary);
89
+ const primary = defaultStorageSettings("main", `${localRoot}/storages/main`, "platforma-primary-bucket", options?.storages?.primary);
90
90
  let work;
91
91
  const wType = options?.storages?.work?.type;
92
92
  switch (wType) {
93
93
  case undefined:
94
- case 'FS':
95
- work = emptyFSSettings('work');
94
+ case "FS":
95
+ work = emptyFSSettings("work");
96
96
  work.rootPath = options?.storages?.work?.rootPath ?? `${localRoot}/storages/work`;
97
- work.indexCachePeriod = options?.storages?.work?.indexCachePeriod ?? '1m';
97
+ work.indexCachePeriod = options?.storages?.work?.indexCachePeriod ?? "1m";
98
98
  break;
99
99
  default:
100
- throw new Error('work storage MUST have \'FS\' type as it is used for working directories management');
100
+ throw new Error("work storage MUST have 'FS' type as it is used for working directories management");
101
101
  }
102
- const library = defaultStorageSettings('library', `${localRoot}/storages/library`, 'platforma-library-bucket', options?.storages?.library);
102
+ const library = defaultStorageSettings("library", `${localRoot}/storages/library`, "platforma-library-bucket", options?.storages?.library);
103
103
  const monitoring = {
104
104
  enabled: defaultBool(options?.monitoring?.enabled, true),
105
- listen: options?.monitoring?.listen ?? '127.0.0.1:9090',
105
+ listen: options?.monitoring?.listen ?? "127.0.0.1:9090",
106
106
  };
107
107
  const debug = {
108
108
  enabled: defaultBool(options?.debug?.enabled, true),
109
- listen: options?.debug?.listen ?? '127.0.0.1:9091',
109
+ listen: options?.debug?.listen ?? "127.0.0.1:9091",
110
110
  };
111
111
  const license = {
112
- value: options?.license?.value ?? '',
113
- file: options?.license?.file ?? '',
112
+ value: options?.license?.value ?? "",
113
+ file: options?.license?.file ?? "",
114
114
  };
115
115
  return {
116
116
  localRoot,
@@ -130,11 +130,11 @@ function defaultStorageSettings(storageID, defaultLocation, defaultBucket, optio
130
130
  const pType = options?.type;
131
131
  switch (pType) {
132
132
  case undefined:
133
- case 'FS':
133
+ case "FS":
134
134
  storage = emptyFSSettings(storageID);
135
135
  storage.rootPath = options?.rootPath ?? defaultLocation;
136
136
  break;
137
- case 'S3':
137
+ case "S3":
138
138
  storage = emptyS3Settings(storageID);
139
139
  storage.endpoint = options?.endpoint;
140
140
  storage.region = options?.region;
@@ -142,27 +142,27 @@ function defaultStorageSettings(storageID, defaultLocation, defaultBucket, optio
142
142
  storage.bucketName = options?.bucketName ?? defaultBucket;
143
143
  storage.createBucket = defaultBool(options?.createBucket, true);
144
144
  storage.forcePathStyle = defaultBool(options?.forcePathStyle, true);
145
- storage.key = options?.key ?? '';
146
- storage.secret = options?.secret ?? '';
147
- storage.keyPrefix = options?.keyPrefix ?? '';
148
- storage.accessPrefixes = options?.accessPrefixes ?? [''];
149
- storage.uploadKeyPrefix = options?.uploadKeyPrefix ?? '';
145
+ storage.key = options?.key ?? "";
146
+ storage.secret = options?.secret ?? "";
147
+ storage.keyPrefix = options?.keyPrefix ?? "";
148
+ storage.accessPrefixes = options?.accessPrefixes ?? [""];
149
+ storage.uploadKeyPrefix = options?.uploadKeyPrefix ?? "";
150
150
  break;
151
151
  default:
152
152
  assertNever();
153
- throw new Error('unknown storage type'); // calm down TS type analyzer
153
+ throw new Error("unknown storage type"); // calm down TS type analyzer
154
154
  }
155
155
  return storage;
156
156
  }
157
157
  function render(options) {
158
- const disableMon = options.monitoring.enabled ? '' : ' disabled';
159
- const disableDbg = options.debug.enabled ? '' : ' disabled';
160
- const libraryDownloadable = options.hacks.libraryDownloadable ? 'true' : 'false';
158
+ const disableMon = options.monitoring.enabled ? "" : " disabled";
159
+ const disableDbg = options.debug.enabled ? "" : " disabled";
160
+ const libraryDownloadable = options.hacks.libraryDownloadable ? "true" : "false";
161
161
  let miLicenseSecret = options.license.value;
162
- if (options.license.file != '') {
162
+ if (options.license.file != "") {
163
163
  miLicenseSecret = fs__default.readFileSync(options.license.file).toString().trimEnd();
164
164
  }
165
- let cpuLimit = '';
165
+ let cpuLimit = "";
166
166
  if (options.numCpu) {
167
167
  cpuLimit = `
168
168
  resources:
@@ -233,7 +233,7 @@ controllers:
233
233
 
234
234
  runner:
235
235
  type: local
236
- storageRoot: '${(options.storages.work).rootPath}'
236
+ storageRoot: '${options.storages.work.rootPath}'
237
237
  workdirCacheOnSuccess: 20m
238
238
  workdirCacheOnFailure: 1h
239
239
  ${cpuLimit}
@@ -1 +1 @@
1
- {"version":3,"file":"pl-config.js","sources":["../../src/templates/pl-config.ts"],"sourcesContent":["import fs from 'node:fs';\nimport * as types from './types';\nimport { assertNever, resolveTilde } from '../util';\nimport state from '../state';\n\nexport type { plOptions } from './types';\n\nexport function storageSettingsFromURL(\n storageURL: string,\n baseDir?: string,\n defaults?: types.storageOptions,\n): types.storageOptions {\n storageURL = resolveTilde(storageURL);\n const url = new URL(storageURL, `file:${baseDir}`);\n\n switch (url.protocol) {\n case 's3:': {\n const bucketName = url.hostname;\n const region = url.searchParams.get('region');\n const keyPrefix = url.pathname.slice(1); // 's3://bucket/' will have '/' as pathname. We don't want to always have '/' prefix\n\n return {\n ...defaults,\n\n type: 'S3',\n bucketName,\n region,\n keyPrefix,\n } as types.storageOptions;\n }\n case 's3e:': {\n const p = url.pathname.split('/').slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']\n const bucketName = p[0];\n const keyPrefix = p.length > 1 ? p.slice(1).join('/') : '';\n\n return {\n ...defaults,\n\n type: 'S3',\n endpoint: `http://${url.host}/`,\n bucketName,\n keyPrefix,\n region: url.searchParams.get('region'),\n key: url.username ? `static:${url.username}` : '',\n secret: url.password ? `static:${url.password}` : '',\n } as types.storageOptions;\n }\n case 's3es:': {\n const p = url.pathname.split('/').slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']\n const bucketName = p[0];\n const keyPrefix = p.length > 1 ? p.slice(1).join('/') : '';\n\n return {\n ...defaults,\n\n type: 'S3',\n endpoint: `https://${url.host}/`,\n bucketName,\n keyPrefix,\n region: url.searchParams.get('region'),\n key: url.username ? `static:${url.username}` : '',\n secret: url.password ? `static:${url.password}` : '',\n } as types.storageOptions;\n }\n case 'file:':\n return {\n type: 'FS',\n rootPath: url.pathname,\n };\n\n default:\n throw new Error(`storage protocol '${url.protocol}' is not supported`);\n }\n}\n\nexport function loadDefaults(jwtKey: string, options?: types.plOptions): types.plSettings {\n const localRoot = options?.localRoot ?? state.instanceDir('default');\n\n const log: types.logSettings = {\n level: options?.log?.level ?? 'info',\n path: options?.log?.path ?? `${localRoot}/logs/platforma.log`,\n };\n\n const grpc: types.grpcSettings = {\n listen: options?.grpc?.listen ?? 'localhost:6345',\n tls: {\n enable: defaultBool(options?.grpc?.tls?.enable, false),\n clientAuthMode: options?.grpc?.tls?.clientAuthMode ?? 'NoAuth',\n certFile: options?.grpc?.tls?.certFile ?? `${localRoot}/certs/tls.cert`,\n keyFile: options?.grpc?.tls?.keyFile ?? `${localRoot}/certs/tls.key`,\n\n ...options?.grpc?.tls,\n },\n };\n\n const core: types.coreSettings = {\n auth: {\n enabled: options?.core?.auth?.enabled ?? false,\n drivers: options?.core?.auth?.drivers ?? [\n { driver: 'jwt', key: jwtKey },\n { driver: 'htpasswd', path: `${localRoot}/users.htpasswd` },\n ],\n },\n db: {\n path: `${localRoot}/db`,\n },\n };\n\n const primary = defaultStorageSettings(\n 'main',\n `${localRoot}/storages/main`,\n 'platforma-primary-bucket',\n options?.storages?.primary,\n );\n\n let work: types.storageSettings;\n const wType = options?.storages?.work?.type;\n switch (wType) {\n case undefined:\n case 'FS':\n work = types.emptyFSSettings('work');\n work.rootPath = options?.storages?.work?.rootPath ?? `${localRoot}/storages/work`;\n work.indexCachePeriod = options?.storages?.work?.indexCachePeriod ?? '1m';\n break;\n\n default:\n throw new Error('work storage MUST have \\'FS\\' type as it is used for working directories management');\n }\n\n const library = defaultStorageSettings(\n 'library',\n `${localRoot}/storages/library`,\n 'platforma-library-bucket',\n options?.storages?.library,\n );\n\n const monitoring: types.monitoringSettings = {\n enabled: defaultBool(options?.monitoring?.enabled, true),\n listen: options?.monitoring?.listen ?? '127.0.0.1:9090',\n };\n const debug: types.debugSettings = {\n enabled: defaultBool(options?.debug?.enabled, true),\n listen: options?.debug?.listen ?? '127.0.0.1:9091',\n };\n const license: types.licenseSettings = {\n value: options?.license?.value ?? '',\n file: options?.license?.file ?? '',\n };\n\n return {\n localRoot,\n license,\n log,\n grpc,\n core,\n monitoring,\n debug,\n numCpu: options?.numCpu,\n storages: { primary, work, library },\n hacks: { libraryDownloadable: true },\n };\n}\n\nfunction defaultStorageSettings(\n storageID: string,\n defaultLocation: string,\n defaultBucket: string,\n options?: types.storageOptions,\n): types.storageSettings {\n let storage: types.storageSettings;\n const pType = options?.type;\n switch (pType) {\n case undefined:\n case 'FS':\n storage = types.emptyFSSettings(storageID);\n storage.rootPath = options?.rootPath ?? defaultLocation;\n break;\n\n case 'S3':\n storage = types.emptyS3Settings(storageID);\n\n storage.endpoint = options?.endpoint;\n storage.region = options?.region;\n storage.presignEndpoint = options?.presignEndpoint ?? options?.endpoint;\n storage.bucketName = options?.bucketName ?? defaultBucket;\n storage.createBucket = defaultBool(options?.createBucket, true);\n storage.forcePathStyle = defaultBool(options?.forcePathStyle, true);\n storage.key = options?.key ?? '';\n storage.secret = options?.secret ?? '';\n storage.keyPrefix = options?.keyPrefix ?? '';\n storage.accessPrefixes = options?.accessPrefixes ?? [''];\n storage.uploadKeyPrefix = options?.uploadKeyPrefix ?? '';\n break;\n\n default:\n assertNever(pType);\n throw new Error('unknown storage type'); // calm down TS type analyzer\n }\n\n return storage;\n}\n\nexport function render(options: types.plSettings): string {\n const disableMon = options.monitoring.enabled ? '' : ' disabled';\n const disableDbg = options.debug.enabled ? '' : ' disabled';\n const libraryDownloadable = options.hacks.libraryDownloadable ? 'true' : 'false';\n let miLicenseSecret = options.license.value;\n if (options.license.file != '') {\n miLicenseSecret = fs.readFileSync(options.license.file).toString().trimEnd();\n }\n\n let cpuLimit = '';\n if (options.numCpu) {\n cpuLimit = `\n resources:\n cpu: ${options.numCpu}\n`;\n }\n\n return `\nlicense:\n value: '${options.license.value}'\n file: '${options.license.file}'\n\nlogging:\n level: '${options.log.level}'\n destinations:\n - path: '${options.log.path}'\n rotation:\n maxSize: 1GiB\n maxBackups: 15\n compress: true\n\nmonitoring${disableMon}:\n listen: '${options.monitoring.listen}'\n\ndebug${disableDbg}:\n listen: '${options.debug.listen}'\n\ncore:\n logging:\n extendedInfo: true\n dumpResourceData: false\n\n grpc:\n listen: '${options.grpc.listen}'\n\n tlsEnabled: ${JSON.stringify(options.grpc.tls.enable)}\n tls:\n clientAuthMode: '${options.grpc.tls.clientAuthMode}'\n certificates:\n - certFile: '${options.grpc.tls.certFile}'\n keyFile: '${options.grpc.tls.keyFile}'\n\n\n authEnabled: ${JSON.stringify(options.core.auth.enabled)}\n auth: ${JSON.stringify(options.core.auth.drivers)}\n db:\n path: '${options.core.db.path}'\n\ncontrollers:\n data:\n main:\n storages:\n main:\n mode: primary\n downloadable: true\n\n library:\n mode: passive\n downloadable: ${libraryDownloadable}\n\n work:\n mode: active\n downloadable: false\n\n storages:\n - ${JSON.stringify(options.storages.primary)}\n - ${JSON.stringify(options.storages.library)}\n - ${JSON.stringify(options.storages.work)}\n\n runner:\n type: local\n storageRoot: '${(options.storages.work).rootPath}'\n workdirCacheOnSuccess: 20m\n workdirCacheOnFailure: 1h\n${cpuLimit}\n secrets:\n - map:\n MI_LICENSE: ${JSON.stringify(miLicenseSecret)}\n\n packageLoader:\n packagesRoot: '${options.localRoot}/packages'\n\n workflows:\n features:\n pureFutureFields: true\n commandExpressions: true\n workdirLimits: true\n computeLimits: false\n`;\n}\n\nfunction defaultBool(v: boolean | undefined, def: boolean): boolean {\n return v === undefined ? def : v;\n}\n"],"names":["types.emptyFSSettings","types.emptyS3Settings","fs"],"mappings":"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"}
1
+ {"version":3,"file":"pl-config.js","sources":["../../src/templates/pl-config.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport * as types from \"./types\";\nimport { assertNever, resolveTilde } from \"../util\";\nimport state from \"../state\";\n\nexport type { plOptions } from \"./types\";\n\nexport function storageSettingsFromURL(\n storageURL: string,\n baseDir?: string,\n defaults?: types.storageOptions,\n): types.storageOptions {\n storageURL = resolveTilde(storageURL);\n const url = new URL(storageURL, `file:${baseDir}`);\n\n switch (url.protocol) {\n case \"s3:\": {\n const bucketName = url.hostname;\n const region = url.searchParams.get(\"region\");\n const keyPrefix = url.pathname.slice(1); // 's3://bucket/' will have '/' as pathname. We don't want to always have '/' prefix\n\n return {\n ...defaults,\n\n type: \"S3\",\n bucketName,\n region,\n keyPrefix,\n } as types.storageOptions;\n }\n case \"s3e:\": {\n const p = url.pathname.split(\"/\").slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']\n const bucketName = p[0];\n const keyPrefix = p.length > 1 ? p.slice(1).join(\"/\") : \"\";\n\n return {\n ...defaults,\n\n type: \"S3\",\n endpoint: `http://${url.host}/`,\n bucketName,\n keyPrefix,\n region: url.searchParams.get(\"region\"),\n key: url.username ? `static:${url.username}` : \"\",\n secret: url.password ? `static:${url.password}` : \"\",\n } as types.storageOptions;\n }\n case \"s3es:\": {\n const p = url.pathname.split(\"/\").slice(1); // '/bucket/key/prefix' -> ['', 'bucket', 'key' 'prefix'] -> ['bucket', 'key', 'prefix']\n const bucketName = p[0];\n const keyPrefix = p.length > 1 ? p.slice(1).join(\"/\") : \"\";\n\n return {\n ...defaults,\n\n type: \"S3\",\n endpoint: `https://${url.host}/`,\n bucketName,\n keyPrefix,\n region: url.searchParams.get(\"region\"),\n key: url.username ? `static:${url.username}` : \"\",\n secret: url.password ? `static:${url.password}` : \"\",\n } as types.storageOptions;\n }\n case \"file:\":\n return {\n type: \"FS\",\n rootPath: url.pathname,\n };\n\n default:\n throw new Error(`storage protocol '${url.protocol}' is not supported`);\n }\n}\n\nexport function loadDefaults(jwtKey: string, options?: types.plOptions): types.plSettings {\n const localRoot = options?.localRoot ?? state.instanceDir(\"default\");\n\n const log: types.logSettings = {\n level: options?.log?.level ?? \"info\",\n path: options?.log?.path ?? `${localRoot}/logs/platforma.log`,\n };\n\n const grpc: types.grpcSettings = {\n listen: options?.grpc?.listen ?? \"localhost:6345\",\n tls: {\n enable: defaultBool(options?.grpc?.tls?.enable, false),\n clientAuthMode: options?.grpc?.tls?.clientAuthMode ?? \"NoAuth\",\n certFile: options?.grpc?.tls?.certFile ?? `${localRoot}/certs/tls.cert`,\n keyFile: options?.grpc?.tls?.keyFile ?? `${localRoot}/certs/tls.key`,\n\n ...options?.grpc?.tls,\n },\n };\n\n const core: types.coreSettings = {\n auth: {\n enabled: options?.core?.auth?.enabled ?? false,\n drivers: options?.core?.auth?.drivers ?? [\n { driver: \"jwt\", key: jwtKey },\n { driver: \"htpasswd\", path: `${localRoot}/users.htpasswd` },\n ],\n },\n db: {\n path: `${localRoot}/db`,\n },\n };\n\n const primary = defaultStorageSettings(\n \"main\",\n `${localRoot}/storages/main`,\n \"platforma-primary-bucket\",\n options?.storages?.primary,\n );\n\n let work: types.storageSettings;\n const wType = options?.storages?.work?.type;\n switch (wType) {\n case undefined:\n case \"FS\":\n work = types.emptyFSSettings(\"work\");\n work.rootPath = options?.storages?.work?.rootPath ?? `${localRoot}/storages/work`;\n work.indexCachePeriod = options?.storages?.work?.indexCachePeriod ?? \"1m\";\n break;\n\n default:\n throw new Error(\n \"work storage MUST have 'FS' type as it is used for working directories management\",\n );\n }\n\n const library = defaultStorageSettings(\n \"library\",\n `${localRoot}/storages/library`,\n \"platforma-library-bucket\",\n options?.storages?.library,\n );\n\n const monitoring: types.monitoringSettings = {\n enabled: defaultBool(options?.monitoring?.enabled, true),\n listen: options?.monitoring?.listen ?? \"127.0.0.1:9090\",\n };\n const debug: types.debugSettings = {\n enabled: defaultBool(options?.debug?.enabled, true),\n listen: options?.debug?.listen ?? \"127.0.0.1:9091\",\n };\n const license: types.licenseSettings = {\n value: options?.license?.value ?? \"\",\n file: options?.license?.file ?? \"\",\n };\n\n return {\n localRoot,\n license,\n log,\n grpc,\n core,\n monitoring,\n debug,\n numCpu: options?.numCpu,\n storages: { primary, work, library },\n hacks: { libraryDownloadable: true },\n };\n}\n\nfunction defaultStorageSettings(\n storageID: string,\n defaultLocation: string,\n defaultBucket: string,\n options?: types.storageOptions,\n): types.storageSettings {\n let storage: types.storageSettings;\n const pType = options?.type;\n switch (pType) {\n case undefined:\n case \"FS\":\n storage = types.emptyFSSettings(storageID);\n storage.rootPath = options?.rootPath ?? defaultLocation;\n break;\n\n case \"S3\":\n storage = types.emptyS3Settings(storageID);\n\n storage.endpoint = options?.endpoint;\n storage.region = options?.region;\n storage.presignEndpoint = options?.presignEndpoint ?? options?.endpoint;\n storage.bucketName = options?.bucketName ?? defaultBucket;\n storage.createBucket = defaultBool(options?.createBucket, true);\n storage.forcePathStyle = defaultBool(options?.forcePathStyle, true);\n storage.key = options?.key ?? \"\";\n storage.secret = options?.secret ?? \"\";\n storage.keyPrefix = options?.keyPrefix ?? \"\";\n storage.accessPrefixes = options?.accessPrefixes ?? [\"\"];\n storage.uploadKeyPrefix = options?.uploadKeyPrefix ?? \"\";\n break;\n\n default:\n assertNever(pType);\n throw new Error(\"unknown storage type\"); // calm down TS type analyzer\n }\n\n return storage;\n}\n\nexport function render(options: types.plSettings): string {\n const disableMon = options.monitoring.enabled ? \"\" : \" disabled\";\n const disableDbg = options.debug.enabled ? \"\" : \" disabled\";\n const libraryDownloadable = options.hacks.libraryDownloadable ? \"true\" : \"false\";\n let miLicenseSecret = options.license.value;\n if (options.license.file != \"\") {\n miLicenseSecret = fs.readFileSync(options.license.file).toString().trimEnd();\n }\n\n let cpuLimit = \"\";\n if (options.numCpu) {\n cpuLimit = `\n resources:\n cpu: ${options.numCpu}\n`;\n }\n\n return `\nlicense:\n value: '${options.license.value}'\n file: '${options.license.file}'\n\nlogging:\n level: '${options.log.level}'\n destinations:\n - path: '${options.log.path}'\n rotation:\n maxSize: 1GiB\n maxBackups: 15\n compress: true\n\nmonitoring${disableMon}:\n listen: '${options.monitoring.listen}'\n\ndebug${disableDbg}:\n listen: '${options.debug.listen}'\n\ncore:\n logging:\n extendedInfo: true\n dumpResourceData: false\n\n grpc:\n listen: '${options.grpc.listen}'\n\n tlsEnabled: ${JSON.stringify(options.grpc.tls.enable)}\n tls:\n clientAuthMode: '${options.grpc.tls.clientAuthMode}'\n certificates:\n - certFile: '${options.grpc.tls.certFile}'\n keyFile: '${options.grpc.tls.keyFile}'\n\n\n authEnabled: ${JSON.stringify(options.core.auth.enabled)}\n auth: ${JSON.stringify(options.core.auth.drivers)}\n db:\n path: '${options.core.db.path}'\n\ncontrollers:\n data:\n main:\n storages:\n main:\n mode: primary\n downloadable: true\n\n library:\n mode: passive\n downloadable: ${libraryDownloadable}\n\n work:\n mode: active\n downloadable: false\n\n storages:\n - ${JSON.stringify(options.storages.primary)}\n - ${JSON.stringify(options.storages.library)}\n - ${JSON.stringify(options.storages.work)}\n\n runner:\n type: local\n storageRoot: '${options.storages.work.rootPath}'\n workdirCacheOnSuccess: 20m\n workdirCacheOnFailure: 1h\n${cpuLimit}\n secrets:\n - map:\n MI_LICENSE: ${JSON.stringify(miLicenseSecret)}\n\n packageLoader:\n packagesRoot: '${options.localRoot}/packages'\n\n workflows:\n features:\n pureFutureFields: true\n commandExpressions: true\n workdirLimits: true\n computeLimits: false\n`;\n}\n\nfunction defaultBool(v: boolean | undefined, def: boolean): boolean {\n return v === undefined ? def : v;\n}\n"],"names":["types.emptyFSSettings","types.emptyS3Settings","fs"],"mappings":";;;;;SAOgB,sBAAsB,CACpC,UAAkB,EAClB,OAAgB,EAChB,QAA+B,EAAA;AAE/B,IAAA,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAA,KAAA,EAAQ,OAAO,CAAA,CAAE,CAAC;AAElD,IAAA,QAAQ,GAAG,CAAC,QAAQ;QAClB,KAAK,KAAK,EAAE;AACV,YAAA,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ;YAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7C,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAExC,OAAO;AACL,gBAAA,GAAG,QAAQ;AAEX,gBAAA,IAAI,EAAE,IAAI;gBACV,UAAU;gBACV,MAAM;gBACN,SAAS;aACc;QAC3B;QACA,KAAK,MAAM,EAAE;AACX,YAAA,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YAE1D,OAAO;AACL,gBAAA,GAAG,QAAQ;AAEX,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,CAAA,OAAA,EAAU,GAAG,CAAC,IAAI,CAAA,CAAA,CAAG;gBAC/B,UAAU;gBACV,SAAS;gBACT,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACjD,gBAAA,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;aAC7B;QAC3B;QACA,KAAK,OAAO,EAAE;AACZ,YAAA,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YAE1D,OAAO;AACL,gBAAA,GAAG,QAAQ;AAEX,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,CAAA,QAAA,EAAW,GAAG,CAAC,IAAI,CAAA,CAAA,CAAG;gBAChC,UAAU;gBACV,SAAS;gBACT,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,gBAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACjD,gBAAA,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAA,OAAA,EAAU,GAAG,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;aAC7B;QAC3B;AACA,QAAA,KAAK,OAAO;YACV,OAAO;AACL,gBAAA,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB;AAEH,QAAA;YACE,MAAM,IAAI,KAAK,CAAC,CAAA,kBAAA,EAAqB,GAAG,CAAC,QAAQ,CAAA,kBAAA,CAAoB,CAAC;;AAE5E;AAEM,SAAU,YAAY,CAAC,MAAc,EAAE,OAAyB,EAAA;AACpE,IAAA,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;AAEpE,IAAA,MAAM,GAAG,GAAsB;AAC7B,QAAA,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,MAAM;QACpC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,CAAA,EAAG,SAAS,CAAA,mBAAA,CAAqB;KAC9D;AAED,IAAA,MAAM,IAAI,GAAuB;AAC/B,QAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,gBAAgB;AACjD,QAAA,GAAG,EAAE;AACH,YAAA,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;YACtD,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,IAAI,QAAQ;YAC9D,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,IAAI,CAAA,EAAG,SAAS,CAAA,eAAA,CAAiB;YACvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,CAAA,EAAG,SAAS,CAAA,cAAA,CAAgB;AAEpE,YAAA,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG;AACtB,SAAA;KACF;AAED,IAAA,MAAM,IAAI,GAAuB;AAC/B,QAAA,IAAI,EAAE;YACJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;YAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI;AACvC,gBAAA,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC9B,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,eAAA,CAAiB,EAAE;AAC5D,aAAA;AACF,SAAA;AACD,QAAA,EAAE,EAAE;YACF,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,GAAA,CAAK;AACxB,SAAA;KACF;AAED,IAAA,MAAM,OAAO,GAAG,sBAAsB,CACpC,MAAM,EACN,GAAG,SAAS,CAAA,cAAA,CAAgB,EAC5B,0BAA0B,EAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,CAC3B;AAED,IAAA,IAAI,IAA2B;IAC/B,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;IAC3C,QAAQ,KAAK;AACX,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,IAAI;AACP,YAAA,IAAI,GAAGA,eAAqB,CAAC,MAAM,CAAC;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAA,EAAG,SAAS,gBAAgB;AACjF,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,IAAI,IAAI;YACzE;AAEF,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF;;AAGL,IAAA,MAAM,OAAO,GAAG,sBAAsB,CACpC,SAAS,EACT,GAAG,SAAS,CAAA,iBAAA,CAAmB,EAC/B,0BAA0B,EAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,CAC3B;AAED,IAAA,MAAM,UAAU,GAA6B;QAC3C,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AACxD,QAAA,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,gBAAgB;KACxD;AACD,IAAA,MAAM,KAAK,GAAwB;QACjC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AACnD,QAAA,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,gBAAgB;KACnD;AACD,IAAA,MAAM,OAAO,GAA0B;AACrC,QAAA,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;AACpC,QAAA,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;KACnC;IAED,OAAO;QACL,SAAS;QACT,OAAO;QACP,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,KAAK;QACL,MAAM,EAAE,OAAO,EAAE,MAAM;AACvB,QAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAA,KAAK,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE;KACrC;AACH;AAEA,SAAS,sBAAsB,CAC7B,SAAiB,EACjB,eAAuB,EACvB,aAAqB,EACrB,OAA8B,EAAA;AAE9B,IAAA,IAAI,OAA8B;AAClC,IAAA,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI;IAC3B,QAAQ,KAAK;AACX,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,GAAGA,eAAqB,CAAC,SAAS,CAAC;YAC1C,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,eAAe;YACvD;AAEF,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,GAAGC,eAAqB,CAAC,SAAS,CAAC;AAE1C,YAAA,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ;AACpC,YAAA,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM;YAChC,OAAO,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,QAAQ;YACvE,OAAO,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,aAAa;YACzD,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC;YAC/D,OAAO,CAAC,cAAc,GAAG,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC;YACnE,OAAO,CAAC,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE;YAChC,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,EAAE;YACtC,OAAO,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE;YAC5C,OAAO,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,EAAE;YACxD;AAEF,QAAA;YACE,WAAW,CAAM,CAAC;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;;AAG5C,IAAA,OAAO,OAAO;AAChB;AAEM,SAAU,MAAM,CAAC,OAAyB,EAAA;AAC9C,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,GAAG,WAAW;AAChE,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,WAAW;AAC3D,IAAA,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,MAAM,GAAG,OAAO;AAChF,IAAA,IAAI,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK;IAC3C,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE;AAC9B,QAAA,eAAe,GAAGC,WAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;IAC9E;IAEA,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAA,QAAQ,GAAG;;AAEF,WAAA,EAAA,OAAO,CAAC,MAAM;CAC1B;IACC;IAEA,OAAO;;YAEG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAA;WACtB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;;;YAGnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA;;eAEd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA;;;;;;YAMnB,UAAU,CAAA;aACT,OAAO,CAAC,UAAU,CAAC,MAAM,CAAA;;OAE/B,UAAU,CAAA;aACJ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAA;;;;;;;;eAQlB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;;kBAEhB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;;AAEhC,uBAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAA;;AAEjC,qBAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAA;AAC1B,oBAAA,EAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA;;;iBAG7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;UAChD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;AAEtC,WAAA,EAAA,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA;;;;;;;;;;;;8BAYH,mBAAmB;;;;;;;UAOvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;UACxC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;UACxC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;;;;AAI3B,kBAAA,EAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAA;;;EAGhD,QAAQ;;;AAGc,sBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;AAGlC,mBAAA,EAAA,OAAO,CAAC,SAAS,CAAA;;;;;;;;CAQrC;AACD;AAEA,SAAS,WAAW,CAAC,CAAsB,EAAE,GAAY,EAAA;IACvD,OAAO,CAAC,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC;AAClC;;;;"}
@@ -3,26 +3,26 @@
3
3
  function emptyS3Settings(id) {
4
4
  return {
5
5
  id: id,
6
- type: 'S3',
7
- indexCachePeriod: '0s',
8
- endpoint: '',
9
- region: '',
10
- bucketName: '',
6
+ type: "S3",
7
+ indexCachePeriod: "0s",
8
+ endpoint: "",
9
+ region: "",
10
+ bucketName: "",
11
11
  createBucket: false,
12
12
  forcePathStyle: false,
13
- key: '',
14
- secret: '',
15
- keyPrefix: '',
13
+ key: "",
14
+ secret: "",
15
+ keyPrefix: "",
16
16
  accessPrefixes: [],
17
- uploadKeyPrefix: '',
17
+ uploadKeyPrefix: "",
18
18
  };
19
19
  }
20
20
  function emptyFSSettings(id) {
21
21
  return {
22
22
  id: id,
23
- type: 'FS',
24
- indexCachePeriod: '0s',
25
- rootPath: '',
23
+ type: "FS",
24
+ indexCachePeriod: "0s",
25
+ rootPath: "",
26
26
  };
27
27
  }
28
28
 
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sources":["../../src/templates/types.ts"],"sourcesContent":["export type plSettings = {\n localRoot: string;\n\n license: licenseSettings;\n log: logSettings;\n grpc: grpcSettings;\n core: coreSettings;\n storages: storagesSettings;\n\n monitoring: monitoringSettings;\n debug: debugSettings;\n\n numCpu?: number;\n\n hacks: {\n libraryDownloadable: boolean;\n };\n};\nexport type plOptions = {\n localRoot?: string;\n\n license?: licenseOptions;\n log?: logOptions;\n grpc?: grpcOptions;\n core?: coreOptions;\n storages?: storagesOptions;\n\n numCpu?: number;\n\n monitoring?: monitoringOptions;\n debug?: debugOptions;\n};\n\nexport type licenseSettings = {\n value: string;\n file: string;\n};\nexport type licenseOptions = DeepPartial<licenseSettings>;\n\nexport type logSettings = {\n level: string;\n path: string;\n};\nexport type logOptions = DeepPartial<logSettings>;\n\nexport type coreSettings = {\n auth: authSettings;\n db: dbSettings;\n};\nexport type coreOptions = {\n auth?: authOptions;\n db?: dbOptions;\n};\n\nexport type authSettings = {\n enabled: boolean;\n drivers: authDriver[];\n};\nexport type authOptions = Partial<authSettings>;\n\nexport type dbSettings = {\n path: string;\n};\nexport type dbOptions = Partial<dbSettings>;\n\nexport type authDriver =\n | {\n driver: 'ldap';\n serverUrl: string; // 'ldaps://ldap.example.com:1111'\n defaultDN: string; // 'cn=%u,ou=users,ou=users,dc=example,dc=com'\n }\n | {\n driver: 'jwt';\n key: string;\n }\n | {\n driver: 'htpasswd';\n path: string;\n };\n\nexport type grpcSettings = {\n listen: string;\n tls: tlsSettings;\n};\nexport type grpcOptions = Partial<grpcSettings>;\n\nexport type tlsSettings = {\n enable: boolean;\n clientAuthMode: tlsAuthMode;\n certFile: string;\n keyFile: string;\n};\nexport type tlsOptions = Partial<tlsSettings>;\n\nexport type tlsAuthMode = 'NoAuth' | 'RequestAnyCert' | 'RequireAnyCert' | 'RequestValidCert' | 'RequireValidCert';\n\nexport type storagesSettings = {\n primary: storageSettings;\n work: fsStorageSettings;\n library: storageSettings;\n};\nexport type storagesOptions = {\n primary?: storageOptions;\n work?: storageOptions;\n library?: storageOptions;\n};\n\nexport type storageSettings = s3StorageSettings | fsStorageSettings;\nexport type storageOptions = s3StorageOptions | fsStorageOptions;\n\ntype storageID = { id: string };\ntype commonStorageSettings = {\n indexCachePeriod: string;\n};\n\nexport type s3StorageSettings = storageID & s3StorageType & commonStorageSettings & s3StorageTypeSettings;\nexport type s3StorageOptions = s3StorageType & Partial<commonStorageSettings> & Partial<s3StorageTypeSettings>;\nexport function emptyS3Settings(id: string): s3StorageSettings {\n return {\n id: id,\n type: 'S3',\n indexCachePeriod: '0s',\n endpoint: '',\n region: '',\n bucketName: '',\n createBucket: false,\n forcePathStyle: false,\n key: '',\n secret: '',\n keyPrefix: '',\n accessPrefixes: [],\n uploadKeyPrefix: '',\n };\n}\n\ntype s3StorageType = { type: 'S3' };\ntype s3StorageTypeSettings = {\n endpoint?: string;\n presignEndpoint?: string;\n region?: string;\n bucketName: string;\n createBucket: boolean;\n forcePathStyle: boolean;\n key: string;\n secret: string;\n keyPrefix: string;\n accessPrefixes: string[];\n uploadKeyPrefix: string;\n};\n\nexport type fsStorageSettings = storageID & fsStorageType & commonStorageSettings & fsStorageTypeSettings;\nexport type fsStorageOptions = fsStorageType & Partial<commonStorageSettings> & Partial<fsStorageTypeSettings>;\nexport function emptyFSSettings(id: string): fsStorageSettings {\n return {\n id: id,\n type: 'FS',\n indexCachePeriod: '0s',\n rootPath: '',\n };\n}\n\ntype fsStorageType = { type: 'FS' };\ntype fsStorageTypeSettings = {\n rootPath: string;\n};\n\nexport type monitoringSettings = {\n enabled: boolean;\n listen: string;\n};\nexport type monitoringOptions = Partial<monitoringSettings>;\n\nexport type debugSettings = {\n enabled: boolean;\n listen: string;\n};\nexport type debugOptions = Partial<debugSettings>;\n\n/** Makes all keys and keys in sub-objects optional. */\ntype DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n"],"names":[],"mappings":";;AAqHM,SAAU,eAAe,CAAC,EAAU,EAAA;IACxC,OAAO;AACL,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,SAAS,EAAE,EAAE;AACb,QAAA,cAAc,EAAE,EAAE;AAClB,QAAA,eAAe,EAAE,EAAE;KACpB;AACH;AAmBM,SAAU,eAAe,CAAC,EAAU,EAAA;IACxC,OAAO;AACL,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,QAAQ,EAAE,EAAE;KACb;AACH;;;;;"}
1
+ {"version":3,"file":"types.cjs","sources":["../../src/templates/types.ts"],"sourcesContent":["export type plSettings = {\n localRoot: string;\n\n license: licenseSettings;\n log: logSettings;\n grpc: grpcSettings;\n core: coreSettings;\n storages: storagesSettings;\n\n monitoring: monitoringSettings;\n debug: debugSettings;\n\n numCpu?: number;\n\n hacks: {\n libraryDownloadable: boolean;\n };\n};\nexport type plOptions = {\n localRoot?: string;\n\n license?: licenseOptions;\n log?: logOptions;\n grpc?: grpcOptions;\n core?: coreOptions;\n storages?: storagesOptions;\n\n numCpu?: number;\n\n monitoring?: monitoringOptions;\n debug?: debugOptions;\n};\n\nexport type licenseSettings = {\n value: string;\n file: string;\n};\nexport type licenseOptions = DeepPartial<licenseSettings>;\n\nexport type logSettings = {\n level: string;\n path: string;\n};\nexport type logOptions = DeepPartial<logSettings>;\n\nexport type coreSettings = {\n auth: authSettings;\n db: dbSettings;\n};\nexport type coreOptions = {\n auth?: authOptions;\n db?: dbOptions;\n};\n\nexport type authSettings = {\n enabled: boolean;\n drivers: authDriver[];\n};\nexport type authOptions = Partial<authSettings>;\n\nexport type dbSettings = {\n path: string;\n};\nexport type dbOptions = Partial<dbSettings>;\n\nexport type authDriver =\n | {\n driver: \"ldap\";\n serverUrl: string; // 'ldaps://ldap.example.com:1111'\n defaultDN: string; // 'cn=%u,ou=users,ou=users,dc=example,dc=com'\n }\n | {\n driver: \"jwt\";\n key: string;\n }\n | {\n driver: \"htpasswd\";\n path: string;\n };\n\nexport type grpcSettings = {\n listen: string;\n tls: tlsSettings;\n};\nexport type grpcOptions = Partial<grpcSettings>;\n\nexport type tlsSettings = {\n enable: boolean;\n clientAuthMode: tlsAuthMode;\n certFile: string;\n keyFile: string;\n};\nexport type tlsOptions = Partial<tlsSettings>;\n\nexport type tlsAuthMode =\n | \"NoAuth\"\n | \"RequestAnyCert\"\n | \"RequireAnyCert\"\n | \"RequestValidCert\"\n | \"RequireValidCert\";\n\nexport type storagesSettings = {\n primary: storageSettings;\n work: fsStorageSettings;\n library: storageSettings;\n};\nexport type storagesOptions = {\n primary?: storageOptions;\n work?: storageOptions;\n library?: storageOptions;\n};\n\nexport type storageSettings = s3StorageSettings | fsStorageSettings;\nexport type storageOptions = s3StorageOptions | fsStorageOptions;\n\ntype storageID = { id: string };\ntype commonStorageSettings = {\n indexCachePeriod: string;\n};\n\nexport type s3StorageSettings = storageID &\n s3StorageType &\n commonStorageSettings &\n s3StorageTypeSettings;\nexport type s3StorageOptions = s3StorageType &\n Partial<commonStorageSettings> &\n Partial<s3StorageTypeSettings>;\nexport function emptyS3Settings(id: string): s3StorageSettings {\n return {\n id: id,\n type: \"S3\",\n indexCachePeriod: \"0s\",\n endpoint: \"\",\n region: \"\",\n bucketName: \"\",\n createBucket: false,\n forcePathStyle: false,\n key: \"\",\n secret: \"\",\n keyPrefix: \"\",\n accessPrefixes: [],\n uploadKeyPrefix: \"\",\n };\n}\n\ntype s3StorageType = { type: \"S3\" };\ntype s3StorageTypeSettings = {\n endpoint?: string;\n presignEndpoint?: string;\n region?: string;\n bucketName: string;\n createBucket: boolean;\n forcePathStyle: boolean;\n key: string;\n secret: string;\n keyPrefix: string;\n accessPrefixes: string[];\n uploadKeyPrefix: string;\n};\n\nexport type fsStorageSettings = storageID &\n fsStorageType &\n commonStorageSettings &\n fsStorageTypeSettings;\nexport type fsStorageOptions = fsStorageType &\n Partial<commonStorageSettings> &\n Partial<fsStorageTypeSettings>;\nexport function emptyFSSettings(id: string): fsStorageSettings {\n return {\n id: id,\n type: \"FS\",\n indexCachePeriod: \"0s\",\n rootPath: \"\",\n };\n}\n\ntype fsStorageType = { type: \"FS\" };\ntype fsStorageTypeSettings = {\n rootPath: string;\n};\n\nexport type monitoringSettings = {\n enabled: boolean;\n listen: string;\n};\nexport type monitoringOptions = Partial<monitoringSettings>;\n\nexport type debugSettings = {\n enabled: boolean;\n listen: string;\n};\nexport type debugOptions = Partial<debugSettings>;\n\n/** Makes all keys and keys in sub-objects optional. */\ntype DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n"],"names":[],"mappings":";;AA+HM,SAAU,eAAe,CAAC,EAAU,EAAA;IACxC,OAAO;AACL,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,SAAS,EAAE,EAAE;AACb,QAAA,cAAc,EAAE,EAAE;AAClB,QAAA,eAAe,EAAE,EAAE;KACpB;AACH;AAwBM,SAAU,eAAe,CAAC,EAAU,EAAA;IACxC,OAAO;AACL,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,QAAQ,EAAE,EAAE;KACb;AACH;;;;;"}
@@ -51,14 +51,14 @@ export type dbSettings = {
51
51
  };
52
52
  export type dbOptions = Partial<dbSettings>;
53
53
  export type authDriver = {
54
- driver: 'ldap';
54
+ driver: "ldap";
55
55
  serverUrl: string;
56
56
  defaultDN: string;
57
57
  } | {
58
- driver: 'jwt';
58
+ driver: "jwt";
59
59
  key: string;
60
60
  } | {
61
- driver: 'htpasswd';
61
+ driver: "htpasswd";
62
62
  path: string;
63
63
  };
64
64
  export type grpcSettings = {
@@ -73,7 +73,7 @@ export type tlsSettings = {
73
73
  keyFile: string;
74
74
  };
75
75
  export type tlsOptions = Partial<tlsSettings>;
76
- export type tlsAuthMode = 'NoAuth' | 'RequestAnyCert' | 'RequireAnyCert' | 'RequestValidCert' | 'RequireValidCert';
76
+ export type tlsAuthMode = "NoAuth" | "RequestAnyCert" | "RequireAnyCert" | "RequestValidCert" | "RequireValidCert";
77
77
  export type storagesSettings = {
78
78
  primary: storageSettings;
79
79
  work: fsStorageSettings;
@@ -96,7 +96,7 @@ export type s3StorageSettings = storageID & s3StorageType & commonStorageSetting
96
96
  export type s3StorageOptions = s3StorageType & Partial<commonStorageSettings> & Partial<s3StorageTypeSettings>;
97
97
  export declare function emptyS3Settings(id: string): s3StorageSettings;
98
98
  type s3StorageType = {
99
- type: 'S3';
99
+ type: "S3";
100
100
  };
101
101
  type s3StorageTypeSettings = {
102
102
  endpoint?: string;
@@ -115,7 +115,7 @@ export type fsStorageSettings = storageID & fsStorageType & commonStorageSetting
115
115
  export type fsStorageOptions = fsStorageType & Partial<commonStorageSettings> & Partial<fsStorageTypeSettings>;
116
116
  export declare function emptyFSSettings(id: string): fsStorageSettings;
117
117
  type fsStorageType = {
118
- type: 'FS';
118
+ type: "FS";
119
119
  };
120
120
  type fsStorageTypeSettings = {
121
121
  rootPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/templates/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/templates/types.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,26 @@
1
1
  function emptyS3Settings(id) {
2
2
  return {
3
3
  id: id,
4
- type: 'S3',
5
- indexCachePeriod: '0s',
6
- endpoint: '',
7
- region: '',
8
- bucketName: '',
4
+ type: "S3",
5
+ indexCachePeriod: "0s",
6
+ endpoint: "",
7
+ region: "",
8
+ bucketName: "",
9
9
  createBucket: false,
10
10
  forcePathStyle: false,
11
- key: '',
12
- secret: '',
13
- keyPrefix: '',
11
+ key: "",
12
+ secret: "",
13
+ keyPrefix: "",
14
14
  accessPrefixes: [],
15
- uploadKeyPrefix: '',
15
+ uploadKeyPrefix: "",
16
16
  };
17
17
  }
18
18
  function emptyFSSettings(id) {
19
19
  return {
20
20
  id: id,
21
- type: 'FS',
22
- indexCachePeriod: '0s',
23
- rootPath: '',
21
+ type: "FS",
22
+ indexCachePeriod: "0s",
23
+ rootPath: "",
24
24
  };
25
25
  }
26
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../src/templates/types.ts"],"sourcesContent":["export type plSettings = {\n localRoot: string;\n\n license: licenseSettings;\n log: logSettings;\n grpc: grpcSettings;\n core: coreSettings;\n storages: storagesSettings;\n\n monitoring: monitoringSettings;\n debug: debugSettings;\n\n numCpu?: number;\n\n hacks: {\n libraryDownloadable: boolean;\n };\n};\nexport type plOptions = {\n localRoot?: string;\n\n license?: licenseOptions;\n log?: logOptions;\n grpc?: grpcOptions;\n core?: coreOptions;\n storages?: storagesOptions;\n\n numCpu?: number;\n\n monitoring?: monitoringOptions;\n debug?: debugOptions;\n};\n\nexport type licenseSettings = {\n value: string;\n file: string;\n};\nexport type licenseOptions = DeepPartial<licenseSettings>;\n\nexport type logSettings = {\n level: string;\n path: string;\n};\nexport type logOptions = DeepPartial<logSettings>;\n\nexport type coreSettings = {\n auth: authSettings;\n db: dbSettings;\n};\nexport type coreOptions = {\n auth?: authOptions;\n db?: dbOptions;\n};\n\nexport type authSettings = {\n enabled: boolean;\n drivers: authDriver[];\n};\nexport type authOptions = Partial<authSettings>;\n\nexport type dbSettings = {\n path: string;\n};\nexport type dbOptions = Partial<dbSettings>;\n\nexport type authDriver =\n | {\n driver: 'ldap';\n serverUrl: string; // 'ldaps://ldap.example.com:1111'\n defaultDN: string; // 'cn=%u,ou=users,ou=users,dc=example,dc=com'\n }\n | {\n driver: 'jwt';\n key: string;\n }\n | {\n driver: 'htpasswd';\n path: string;\n };\n\nexport type grpcSettings = {\n listen: string;\n tls: tlsSettings;\n};\nexport type grpcOptions = Partial<grpcSettings>;\n\nexport type tlsSettings = {\n enable: boolean;\n clientAuthMode: tlsAuthMode;\n certFile: string;\n keyFile: string;\n};\nexport type tlsOptions = Partial<tlsSettings>;\n\nexport type tlsAuthMode = 'NoAuth' | 'RequestAnyCert' | 'RequireAnyCert' | 'RequestValidCert' | 'RequireValidCert';\n\nexport type storagesSettings = {\n primary: storageSettings;\n work: fsStorageSettings;\n library: storageSettings;\n};\nexport type storagesOptions = {\n primary?: storageOptions;\n work?: storageOptions;\n library?: storageOptions;\n};\n\nexport type storageSettings = s3StorageSettings | fsStorageSettings;\nexport type storageOptions = s3StorageOptions | fsStorageOptions;\n\ntype storageID = { id: string };\ntype commonStorageSettings = {\n indexCachePeriod: string;\n};\n\nexport type s3StorageSettings = storageID & s3StorageType & commonStorageSettings & s3StorageTypeSettings;\nexport type s3StorageOptions = s3StorageType & Partial<commonStorageSettings> & Partial<s3StorageTypeSettings>;\nexport function emptyS3Settings(id: string): s3StorageSettings {\n return {\n id: id,\n type: 'S3',\n indexCachePeriod: '0s',\n endpoint: '',\n region: '',\n bucketName: '',\n createBucket: false,\n forcePathStyle: false,\n key: '',\n secret: '',\n keyPrefix: '',\n accessPrefixes: [],\n uploadKeyPrefix: '',\n };\n}\n\ntype s3StorageType = { type: 'S3' };\ntype s3StorageTypeSettings = {\n endpoint?: string;\n presignEndpoint?: string;\n region?: string;\n bucketName: string;\n createBucket: boolean;\n forcePathStyle: boolean;\n key: string;\n secret: string;\n keyPrefix: string;\n accessPrefixes: string[];\n uploadKeyPrefix: string;\n};\n\nexport type fsStorageSettings = storageID & fsStorageType & commonStorageSettings & fsStorageTypeSettings;\nexport type fsStorageOptions = fsStorageType & Partial<commonStorageSettings> & Partial<fsStorageTypeSettings>;\nexport function emptyFSSettings(id: string): fsStorageSettings {\n return {\n id: id,\n type: 'FS',\n indexCachePeriod: '0s',\n rootPath: '',\n };\n}\n\ntype fsStorageType = { type: 'FS' };\ntype fsStorageTypeSettings = {\n rootPath: string;\n};\n\nexport type monitoringSettings = {\n enabled: boolean;\n listen: string;\n};\nexport type monitoringOptions = Partial<monitoringSettings>;\n\nexport type debugSettings = {\n enabled: boolean;\n listen: string;\n};\nexport type debugOptions = Partial<debugSettings>;\n\n/** Makes all keys and keys in sub-objects optional. */\ntype DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n"],"names":[],"mappings":"AAqHM,SAAU,eAAe,CAAC,EAAU,EAAA;IACxC,OAAO;AACL,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,SAAS,EAAE,EAAE;AACb,QAAA,cAAc,EAAE,EAAE;AAClB,QAAA,eAAe,EAAE,EAAE;KACpB;AACH;AAmBM,SAAU,eAAe,CAAC,EAAU,EAAA;IACxC,OAAO;AACL,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,QAAQ,EAAE,EAAE;KACb;AACH;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../src/templates/types.ts"],"sourcesContent":["export type plSettings = {\n localRoot: string;\n\n license: licenseSettings;\n log: logSettings;\n grpc: grpcSettings;\n core: coreSettings;\n storages: storagesSettings;\n\n monitoring: monitoringSettings;\n debug: debugSettings;\n\n numCpu?: number;\n\n hacks: {\n libraryDownloadable: boolean;\n };\n};\nexport type plOptions = {\n localRoot?: string;\n\n license?: licenseOptions;\n log?: logOptions;\n grpc?: grpcOptions;\n core?: coreOptions;\n storages?: storagesOptions;\n\n numCpu?: number;\n\n monitoring?: monitoringOptions;\n debug?: debugOptions;\n};\n\nexport type licenseSettings = {\n value: string;\n file: string;\n};\nexport type licenseOptions = DeepPartial<licenseSettings>;\n\nexport type logSettings = {\n level: string;\n path: string;\n};\nexport type logOptions = DeepPartial<logSettings>;\n\nexport type coreSettings = {\n auth: authSettings;\n db: dbSettings;\n};\nexport type coreOptions = {\n auth?: authOptions;\n db?: dbOptions;\n};\n\nexport type authSettings = {\n enabled: boolean;\n drivers: authDriver[];\n};\nexport type authOptions = Partial<authSettings>;\n\nexport type dbSettings = {\n path: string;\n};\nexport type dbOptions = Partial<dbSettings>;\n\nexport type authDriver =\n | {\n driver: \"ldap\";\n serverUrl: string; // 'ldaps://ldap.example.com:1111'\n defaultDN: string; // 'cn=%u,ou=users,ou=users,dc=example,dc=com'\n }\n | {\n driver: \"jwt\";\n key: string;\n }\n | {\n driver: \"htpasswd\";\n path: string;\n };\n\nexport type grpcSettings = {\n listen: string;\n tls: tlsSettings;\n};\nexport type grpcOptions = Partial<grpcSettings>;\n\nexport type tlsSettings = {\n enable: boolean;\n clientAuthMode: tlsAuthMode;\n certFile: string;\n keyFile: string;\n};\nexport type tlsOptions = Partial<tlsSettings>;\n\nexport type tlsAuthMode =\n | \"NoAuth\"\n | \"RequestAnyCert\"\n | \"RequireAnyCert\"\n | \"RequestValidCert\"\n | \"RequireValidCert\";\n\nexport type storagesSettings = {\n primary: storageSettings;\n work: fsStorageSettings;\n library: storageSettings;\n};\nexport type storagesOptions = {\n primary?: storageOptions;\n work?: storageOptions;\n library?: storageOptions;\n};\n\nexport type storageSettings = s3StorageSettings | fsStorageSettings;\nexport type storageOptions = s3StorageOptions | fsStorageOptions;\n\ntype storageID = { id: string };\ntype commonStorageSettings = {\n indexCachePeriod: string;\n};\n\nexport type s3StorageSettings = storageID &\n s3StorageType &\n commonStorageSettings &\n s3StorageTypeSettings;\nexport type s3StorageOptions = s3StorageType &\n Partial<commonStorageSettings> &\n Partial<s3StorageTypeSettings>;\nexport function emptyS3Settings(id: string): s3StorageSettings {\n return {\n id: id,\n type: \"S3\",\n indexCachePeriod: \"0s\",\n endpoint: \"\",\n region: \"\",\n bucketName: \"\",\n createBucket: false,\n forcePathStyle: false,\n key: \"\",\n secret: \"\",\n keyPrefix: \"\",\n accessPrefixes: [],\n uploadKeyPrefix: \"\",\n };\n}\n\ntype s3StorageType = { type: \"S3\" };\ntype s3StorageTypeSettings = {\n endpoint?: string;\n presignEndpoint?: string;\n region?: string;\n bucketName: string;\n createBucket: boolean;\n forcePathStyle: boolean;\n key: string;\n secret: string;\n keyPrefix: string;\n accessPrefixes: string[];\n uploadKeyPrefix: string;\n};\n\nexport type fsStorageSettings = storageID &\n fsStorageType &\n commonStorageSettings &\n fsStorageTypeSettings;\nexport type fsStorageOptions = fsStorageType &\n Partial<commonStorageSettings> &\n Partial<fsStorageTypeSettings>;\nexport function emptyFSSettings(id: string): fsStorageSettings {\n return {\n id: id,\n type: \"FS\",\n indexCachePeriod: \"0s\",\n rootPath: \"\",\n };\n}\n\ntype fsStorageType = { type: \"FS\" };\ntype fsStorageTypeSettings = {\n rootPath: string;\n};\n\nexport type monitoringSettings = {\n enabled: boolean;\n listen: string;\n};\nexport type monitoringOptions = Partial<monitoringSettings>;\n\nexport type debugSettings = {\n enabled: boolean;\n listen: string;\n};\nexport type debugOptions = Partial<debugSettings>;\n\n/** Makes all keys and keys in sub-objects optional. */\ntype DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n"],"names":[],"mappings":"AA+HM,SAAU,eAAe,CAAC,EAAU,EAAA;IACxC,OAAO;AACL,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,SAAS,EAAE,EAAE;AACb,QAAA,cAAc,EAAE,EAAE;AAClB,QAAA,eAAe,EAAE,EAAE;KACpB;AACH;AAwBM,SAAU,eAAe,CAAC,EAAU,EAAA;IACxC,OAAO;AACL,QAAA,EAAE,EAAE,EAAE;AACN,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,QAAQ,EAAE,EAAE;KACb;AACH;;;;"}