@platforma-sdk/bootstrap 1.19.3
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.
- package/assets/compose-fs.yaml +68 -0
- package/assets/compose-minio.yaml +25 -0
- package/assets/compose-s3.yaml +95 -0
- package/assets/users.htpasswd +3 -0
- package/bin/run.cmd +3 -0
- package/bin/run.js +7 -0
- package/dist/block.d.ts +19 -0
- package/dist/block.js +89 -0
- package/dist/block.js.map +1 -0
- package/dist/cmd-opts.d.ts +64 -0
- package/dist/cmd-opts.js +121 -0
- package/dist/cmd-opts.js.map +1 -0
- package/dist/commands/create-block.d.ts +9 -0
- package/dist/commands/create-block.js +43 -0
- package/dist/commands/create-block.js.map +1 -0
- package/dist/commands/reset.d.ts +9 -0
- package/dist/commands/reset.js +47 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/start/docker/fs.d.ts +19 -0
- package/dist/commands/start/docker/fs.js +71 -0
- package/dist/commands/start/docker/fs.js.map +1 -0
- package/dist/commands/start/docker/s3.d.ts +19 -0
- package/dist/commands/start/docker/s3.js +69 -0
- package/dist/commands/start/docker/s3.js.map +1 -0
- package/dist/commands/start/local/fs.d.ts +24 -0
- package/dist/commands/start/local/fs.js +98 -0
- package/dist/commands/start/local/fs.js.map +1 -0
- package/dist/commands/start/local/s3.d.ts +25 -0
- package/dist/commands/start/local/s3.js +100 -0
- package/dist/commands/start/local/s3.js.map +1 -0
- package/dist/commands/start.d.ts +9 -0
- package/dist/commands/start.js +47 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/stop.d.ts +9 -0
- package/dist/commands/stop.js +47 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/core.d.ts +70 -0
- package/dist/core.js +523 -0
- package/dist/core.js.map +1 -0
- package/dist/package.d.ts +11 -0
- package/dist/package.js +52 -0
- package/dist/package.js.map +1 -0
- package/dist/platforma.d.ts +23 -0
- package/dist/platforma.js +172 -0
- package/dist/platforma.js.map +1 -0
- package/dist/run.d.ts +6 -0
- package/dist/run.js +88 -0
- package/dist/run.js.map +1 -0
- package/dist/state.d.ts +38 -0
- package/dist/state.js +86 -0
- package/dist/state.js.map +1 -0
- package/dist/templates/pl-config.d.ts +5 -0
- package/dist/templates/pl-config.js +239 -0
- package/dist/templates/pl-config.js.map +1 -0
- package/dist/templates/types.d.ts +128 -0
- package/dist/templates/types.js +30 -0
- package/dist/templates/types.js.map +1 -0
- package/dist/util.d.ts +6 -0
- package/dist/util.js +54 -0
- package/dist/util.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.storageSettingsFromURL = storageSettingsFromURL;
|
|
30
|
+
exports.loadDefaults = loadDefaults;
|
|
31
|
+
exports.render = render;
|
|
32
|
+
const types = __importStar(require("./types"));
|
|
33
|
+
const util_1 = require("../util");
|
|
34
|
+
const state_1 = __importDefault(require("../state"));
|
|
35
|
+
function storageSettingsFromURL(storageURL, baseDir) {
|
|
36
|
+
storageURL = (0, util_1.resolveTilde)(storageURL);
|
|
37
|
+
const url = new URL(storageURL, `file:${baseDir}`);
|
|
38
|
+
switch (url.protocol) {
|
|
39
|
+
case 's3:':
|
|
40
|
+
var bucketName = url.hostname;
|
|
41
|
+
var region = url.searchParams.get('region');
|
|
42
|
+
return {
|
|
43
|
+
type: 'S3',
|
|
44
|
+
bucketName,
|
|
45
|
+
region
|
|
46
|
+
};
|
|
47
|
+
case 's3e:':
|
|
48
|
+
return {
|
|
49
|
+
type: 'S3',
|
|
50
|
+
endpoint: `http://${url.host}/`,
|
|
51
|
+
bucketName: url.pathname.split('/')[1], // '/bucket/key' -> ['', 'bucket', 'key']. Leading slash causes '' to be first element
|
|
52
|
+
region: url.searchParams.get('region'),
|
|
53
|
+
key: url.username ? `static:${url.username}` : '',
|
|
54
|
+
secret: url.password ? `static:${url.password}` : ''
|
|
55
|
+
};
|
|
56
|
+
case 's3es:':
|
|
57
|
+
return {
|
|
58
|
+
type: 'S3',
|
|
59
|
+
endpoint: `https://${url.host}/`,
|
|
60
|
+
bucketName: url.pathname.split('/')[1], // '/bucket/key' -> ['', 'bucket', 'key']. Leading slash causes '' to be first element
|
|
61
|
+
region: url.searchParams.get('region'),
|
|
62
|
+
key: url.username ? `static:${url.username}` : '',
|
|
63
|
+
secret: url.password ? `static:${url.password}` : ''
|
|
64
|
+
};
|
|
65
|
+
case 'file:':
|
|
66
|
+
return {
|
|
67
|
+
type: 'FS',
|
|
68
|
+
rootPath: url.pathname
|
|
69
|
+
};
|
|
70
|
+
default:
|
|
71
|
+
throw new Error(`storage protocol '${url.protocol}' is not supported`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function loadDefaults(jwtKey, options) {
|
|
75
|
+
const localRoot = options?.localRoot ?? state_1.default.path('local-pl');
|
|
76
|
+
const log = {
|
|
77
|
+
level: options?.log?.level ?? 'info',
|
|
78
|
+
path: options?.log?.path ?? `${localRoot}/platforma.log`
|
|
79
|
+
};
|
|
80
|
+
const grpc = {
|
|
81
|
+
listen: options?.grpc?.listen ?? 'localhost:6345',
|
|
82
|
+
tls: {
|
|
83
|
+
enable: defaultBool(options?.grpc?.tls?.enable, false),
|
|
84
|
+
clientAuthMode: options?.grpc?.tls?.clientAuthMode ?? 'NoAuth',
|
|
85
|
+
certFile: options?.grpc?.tls?.certFile ?? `${localRoot}/certs/server-cert.pem`,
|
|
86
|
+
keyFile: options?.grpc?.tls?.keyFile ?? `${localRoot}/certs/server-key.pem`,
|
|
87
|
+
...options?.grpc?.tls
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const core = {
|
|
91
|
+
auth: {
|
|
92
|
+
enabled: options?.core?.auth?.enabled ?? false,
|
|
93
|
+
drivers: options?.core?.auth?.drivers ?? [
|
|
94
|
+
{ driver: 'jwt', key: jwtKey },
|
|
95
|
+
{ driver: 'htpasswd', path: `${localRoot}/users.htpasswd` }
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const primary = defaultStorageSettings('main', `${localRoot}/storages/main`, 'main-bucket', options?.storages?.primary);
|
|
100
|
+
var work;
|
|
101
|
+
const wType = options?.storages?.work?.type;
|
|
102
|
+
switch (wType) {
|
|
103
|
+
case undefined:
|
|
104
|
+
case 'FS':
|
|
105
|
+
work = types.emptyFSSettings('work');
|
|
106
|
+
work.rootPath = options?.storages?.work?.rootPath ?? `${localRoot}/storages/work`;
|
|
107
|
+
work.indexCachePeriod = options?.storages?.work?.indexCachePeriod ?? '1m';
|
|
108
|
+
break;
|
|
109
|
+
default:
|
|
110
|
+
throw new Error("work storage MUST have 'FS' type as it is used for working directories management");
|
|
111
|
+
}
|
|
112
|
+
const library = defaultStorageSettings('library', `${localRoot}/storages/library`, 'library-bucket', options?.storages?.library);
|
|
113
|
+
const monitoring = {
|
|
114
|
+
enabled: defaultBool(options?.monitoring?.enabled, true),
|
|
115
|
+
listen: options?.monitoring?.listen ?? '127.0.0.1:9090'
|
|
116
|
+
};
|
|
117
|
+
const debug = {
|
|
118
|
+
enabled: defaultBool(options?.debug?.enabled, true),
|
|
119
|
+
listen: options?.debug?.listen ?? '127.0.0.1:9091'
|
|
120
|
+
};
|
|
121
|
+
const license = {
|
|
122
|
+
value: options?.license?.value ?? '',
|
|
123
|
+
file: options?.license?.file ?? ''
|
|
124
|
+
};
|
|
125
|
+
return {
|
|
126
|
+
localRoot,
|
|
127
|
+
license,
|
|
128
|
+
log,
|
|
129
|
+
grpc,
|
|
130
|
+
core,
|
|
131
|
+
monitoring,
|
|
132
|
+
debug,
|
|
133
|
+
storages: { primary, work, library },
|
|
134
|
+
hacks: { libraryDownloadable: true }
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function defaultStorageSettings(storageID, defaultLocation, defaultBucket, options) {
|
|
138
|
+
var storage;
|
|
139
|
+
const pType = options?.type;
|
|
140
|
+
switch (pType) {
|
|
141
|
+
case undefined:
|
|
142
|
+
case 'FS':
|
|
143
|
+
storage = types.emptyFSSettings(storageID);
|
|
144
|
+
storage.rootPath = options?.rootPath ?? defaultLocation;
|
|
145
|
+
break;
|
|
146
|
+
case 'S3':
|
|
147
|
+
storage = types.emptyS3Settings(storageID);
|
|
148
|
+
storage.endpoint = options?.endpoint ?? 'http://localhost:9000';
|
|
149
|
+
storage.presignEndpoint = options?.presignEndpoint ?? 'http://localhost:9000';
|
|
150
|
+
storage.bucketName = options?.bucketName ?? defaultBucket;
|
|
151
|
+
storage.createBucket = defaultBool(options?.createBucket, true);
|
|
152
|
+
storage.forcePathStyle = defaultBool(options?.forcePathStyle, true);
|
|
153
|
+
storage.key = options?.key ?? '';
|
|
154
|
+
storage.secret = options?.secret ?? '';
|
|
155
|
+
storage.accessPrefixes = options?.accessPrefixes ?? [''];
|
|
156
|
+
storage.uploadKeyPrefix = options?.uploadKeyPrefix ?? '';
|
|
157
|
+
break;
|
|
158
|
+
default:
|
|
159
|
+
(0, util_1.assertNever)(pType);
|
|
160
|
+
throw new Error('unknown storage type'); // calm down TS type analyzer
|
|
161
|
+
}
|
|
162
|
+
return storage;
|
|
163
|
+
}
|
|
164
|
+
function render(options) {
|
|
165
|
+
const disableMon = options.monitoring.enabled ? '' : ' disabled';
|
|
166
|
+
const disableDbg = options.debug.enabled ? '' : ' disabled';
|
|
167
|
+
const disableTLS = options.grpc.tls.enable ? '' : ' disabled';
|
|
168
|
+
const libraryDownloadable = options.hacks.libraryDownloadable ? 'true' : 'false';
|
|
169
|
+
return `
|
|
170
|
+
license:
|
|
171
|
+
value: '${options.license.value}'
|
|
172
|
+
file: '${options.license.file}'
|
|
173
|
+
|
|
174
|
+
logging:
|
|
175
|
+
level: '${options.log.level}'
|
|
176
|
+
destinations:
|
|
177
|
+
- path: '${options.log.path}'
|
|
178
|
+
|
|
179
|
+
monitoring${disableMon}:
|
|
180
|
+
listen: '${options.monitoring.listen}'
|
|
181
|
+
|
|
182
|
+
debug${disableDbg}:
|
|
183
|
+
listen: '${options.debug.listen}'
|
|
184
|
+
|
|
185
|
+
core:
|
|
186
|
+
logging:
|
|
187
|
+
extendedInfo: true
|
|
188
|
+
dumpResourceData: true
|
|
189
|
+
|
|
190
|
+
grpc:
|
|
191
|
+
listen: '${options.grpc.listen}'
|
|
192
|
+
|
|
193
|
+
tls${disableTLS}:
|
|
194
|
+
clientAuthMode: '${options.grpc.tls.clientAuthMode}'
|
|
195
|
+
certificates:
|
|
196
|
+
- certFile: '${options.grpc.tls.certFile}'
|
|
197
|
+
keyFile: '${options.grpc.tls.keyFile}'
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
authEnabled: ${JSON.stringify(options.core.auth.enabled)}
|
|
201
|
+
auth: ${JSON.stringify(options.core.auth.drivers)}
|
|
202
|
+
db:
|
|
203
|
+
path: '${options.localRoot}/db'
|
|
204
|
+
|
|
205
|
+
controllers:
|
|
206
|
+
data:
|
|
207
|
+
main:
|
|
208
|
+
storages:
|
|
209
|
+
main:
|
|
210
|
+
mode: primary
|
|
211
|
+
downloadable: true
|
|
212
|
+
|
|
213
|
+
library:
|
|
214
|
+
mode: passive
|
|
215
|
+
downloadable: ${libraryDownloadable}
|
|
216
|
+
|
|
217
|
+
work:
|
|
218
|
+
mode: active
|
|
219
|
+
downloadable: false
|
|
220
|
+
|
|
221
|
+
storages:
|
|
222
|
+
- ${JSON.stringify(options.storages.primary)}
|
|
223
|
+
- ${JSON.stringify(options.storages.library)}
|
|
224
|
+
- ${JSON.stringify(options.storages.work)}
|
|
225
|
+
|
|
226
|
+
runner:
|
|
227
|
+
type: local
|
|
228
|
+
storageRoot: '${options.storages.work.rootPath}'
|
|
229
|
+
|
|
230
|
+
packageLoader:
|
|
231
|
+
packagesRoot: '${options.localRoot}/packages'
|
|
232
|
+
|
|
233
|
+
workflows: {}
|
|
234
|
+
`;
|
|
235
|
+
}
|
|
236
|
+
function defaultBool(v, def) {
|
|
237
|
+
return v === undefined ? def : v;
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=pl-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pl-config.js","sourceRoot":"","sources":["../../src/templates/pl-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
export type plSettings = {
|
|
2
|
+
localRoot: string;
|
|
3
|
+
license: licenseSettings;
|
|
4
|
+
log: logSettings;
|
|
5
|
+
grpc: grpcSettings;
|
|
6
|
+
core: coreSettings;
|
|
7
|
+
storages: storagesSettings;
|
|
8
|
+
monitoring: monitoringSettings;
|
|
9
|
+
debug: debugSettings;
|
|
10
|
+
hacks: {
|
|
11
|
+
libraryDownloadable: boolean;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export type plOptions = {
|
|
15
|
+
localRoot?: string;
|
|
16
|
+
license?: licenseOptions;
|
|
17
|
+
log?: logOptions;
|
|
18
|
+
grpc?: grpcOptions;
|
|
19
|
+
core?: coreOptions;
|
|
20
|
+
storages?: storagesOptions;
|
|
21
|
+
monitoring?: monitoringOptions;
|
|
22
|
+
debug?: debugOptions;
|
|
23
|
+
};
|
|
24
|
+
export type licenseSettings = {
|
|
25
|
+
value: string;
|
|
26
|
+
file: string;
|
|
27
|
+
};
|
|
28
|
+
export type licenseOptions = DeepPartial<licenseSettings>;
|
|
29
|
+
export type logSettings = {
|
|
30
|
+
level: string;
|
|
31
|
+
path: string;
|
|
32
|
+
};
|
|
33
|
+
export type logOptions = DeepPartial<logSettings>;
|
|
34
|
+
export type coreSettings = {
|
|
35
|
+
auth: authSettings;
|
|
36
|
+
};
|
|
37
|
+
export type coreOptions = {
|
|
38
|
+
auth?: authOptions;
|
|
39
|
+
};
|
|
40
|
+
export type authSettings = {
|
|
41
|
+
enabled: boolean;
|
|
42
|
+
drivers: authDriver[];
|
|
43
|
+
};
|
|
44
|
+
export type authOptions = Partial<authSettings>;
|
|
45
|
+
export type authDriver = {
|
|
46
|
+
driver: 'ldap';
|
|
47
|
+
serverUrl: string;
|
|
48
|
+
defaultDN: string;
|
|
49
|
+
} | {
|
|
50
|
+
driver: 'jwt';
|
|
51
|
+
key: string;
|
|
52
|
+
} | {
|
|
53
|
+
driver: 'htpasswd';
|
|
54
|
+
path: string;
|
|
55
|
+
};
|
|
56
|
+
export type grpcSettings = {
|
|
57
|
+
listen: string;
|
|
58
|
+
tls: tlsSettings;
|
|
59
|
+
};
|
|
60
|
+
export type grpcOptions = Partial<grpcSettings>;
|
|
61
|
+
export type tlsSettings = {
|
|
62
|
+
enable: boolean;
|
|
63
|
+
clientAuthMode: tlsAuthMode;
|
|
64
|
+
certFile: string;
|
|
65
|
+
keyFile: string;
|
|
66
|
+
};
|
|
67
|
+
export type tlsOptions = Partial<tlsSettings>;
|
|
68
|
+
export type tlsAuthMode = 'NoAuth' | 'RequestAnyCert' | 'RequireAnyCert' | 'RequestValidCert' | 'RequireValidCert';
|
|
69
|
+
export type storagesSettings = {
|
|
70
|
+
primary: storageSettings;
|
|
71
|
+
work: storageSettings;
|
|
72
|
+
library: storageSettings;
|
|
73
|
+
};
|
|
74
|
+
export type storagesOptions = {
|
|
75
|
+
primary?: storageOptions;
|
|
76
|
+
work?: storageOptions;
|
|
77
|
+
library?: storageOptions;
|
|
78
|
+
};
|
|
79
|
+
export type storageSettings = s3StorageSettings | fsStorageSettings;
|
|
80
|
+
export type storageOptions = s3StorageOptions | fsStorageOptions;
|
|
81
|
+
type storageID = {
|
|
82
|
+
id: string;
|
|
83
|
+
};
|
|
84
|
+
type commonStorageSettings = {
|
|
85
|
+
indexCachePeriod: string;
|
|
86
|
+
};
|
|
87
|
+
export type s3StorageSettings = storageID & s3StorageType & commonStorageSettings & s3StorageTypeSettings;
|
|
88
|
+
export type s3StorageOptions = s3StorageType & Partial<commonStorageSettings> & Partial<s3StorageTypeSettings>;
|
|
89
|
+
export declare function emptyS3Settings(id: string): s3StorageSettings;
|
|
90
|
+
type s3StorageType = {
|
|
91
|
+
type: 'S3';
|
|
92
|
+
};
|
|
93
|
+
type s3StorageTypeSettings = {
|
|
94
|
+
endpoint: string;
|
|
95
|
+
presignEndpoint: string;
|
|
96
|
+
region: string;
|
|
97
|
+
bucketName: string;
|
|
98
|
+
createBucket: boolean;
|
|
99
|
+
forcePathStyle: boolean;
|
|
100
|
+
key: string;
|
|
101
|
+
secret: string;
|
|
102
|
+
accessPrefixes: string[];
|
|
103
|
+
uploadKeyPrefix: string;
|
|
104
|
+
};
|
|
105
|
+
export type fsStorageSettings = storageID & fsStorageType & commonStorageSettings & fsStorageTypeSettings;
|
|
106
|
+
export type fsStorageOptions = fsStorageType & Partial<commonStorageSettings> & Partial<fsStorageTypeSettings>;
|
|
107
|
+
export declare function emptyFSSettings(id: string): fsStorageSettings;
|
|
108
|
+
type fsStorageType = {
|
|
109
|
+
type: 'FS';
|
|
110
|
+
};
|
|
111
|
+
type fsStorageTypeSettings = {
|
|
112
|
+
rootPath: string;
|
|
113
|
+
};
|
|
114
|
+
export type monitoringSettings = {
|
|
115
|
+
enabled: boolean;
|
|
116
|
+
listen: string;
|
|
117
|
+
};
|
|
118
|
+
export type monitoringOptions = Partial<monitoringSettings>;
|
|
119
|
+
export type debugSettings = {
|
|
120
|
+
enabled: boolean;
|
|
121
|
+
listen: string;
|
|
122
|
+
};
|
|
123
|
+
export type debugOptions = Partial<debugSettings>;
|
|
124
|
+
/** Makes all keys and keys in sub-objects optional. */
|
|
125
|
+
type DeepPartial<T> = {
|
|
126
|
+
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
127
|
+
};
|
|
128
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emptyS3Settings = emptyS3Settings;
|
|
4
|
+
exports.emptyFSSettings = emptyFSSettings;
|
|
5
|
+
function emptyS3Settings(id) {
|
|
6
|
+
return {
|
|
7
|
+
id: id,
|
|
8
|
+
type: 'S3',
|
|
9
|
+
indexCachePeriod: '0s',
|
|
10
|
+
endpoint: '',
|
|
11
|
+
region: '',
|
|
12
|
+
presignEndpoint: '',
|
|
13
|
+
bucketName: '',
|
|
14
|
+
createBucket: false,
|
|
15
|
+
forcePathStyle: false,
|
|
16
|
+
key: '',
|
|
17
|
+
secret: '',
|
|
18
|
+
accessPrefixes: [],
|
|
19
|
+
uploadKeyPrefix: ''
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function emptyFSSettings(id) {
|
|
23
|
+
return {
|
|
24
|
+
id: id,
|
|
25
|
+
type: 'FS',
|
|
26
|
+
indexCachePeriod: '0s',
|
|
27
|
+
rootPath: ''
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/templates/types.ts"],"names":[],"mappings":";;AA0GA,0CAgBC;AAkBD,0CAOC;AAzCD,SAAgB,eAAe,CAAC,EAAU;IACxC,OAAO;QACL,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,IAAI;QACtB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,KAAK;QACrB,GAAG,EAAE,EAAE;QACP,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,EAAE;KACpB,CAAC;AACJ,CAAC;AAkBD,SAAgB,eAAe,CAAC,EAAU;IACxC,OAAO;QACL,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,IAAI;QACtB,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC"}
|
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import winston from 'winston';
|
|
2
|
+
export declare function askYN(prompt: string): boolean;
|
|
3
|
+
export declare function assertNever(n: never): void;
|
|
4
|
+
export declare function createLogger(level?: string): winston.Logger;
|
|
5
|
+
export declare function randomStr(len: number): string;
|
|
6
|
+
export declare function resolveTilde(p: string): string;
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.askYN = askYN;
|
|
7
|
+
exports.assertNever = assertNever;
|
|
8
|
+
exports.createLogger = createLogger;
|
|
9
|
+
exports.randomStr = randomStr;
|
|
10
|
+
exports.resolveTilde = resolveTilde;
|
|
11
|
+
const os_1 = __importDefault(require("os"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const winston_1 = __importDefault(require("winston"));
|
|
14
|
+
const crypto_1 = require("crypto");
|
|
15
|
+
const readline_sync_1 = __importDefault(require("readline-sync"));
|
|
16
|
+
function askYN(prompt) {
|
|
17
|
+
const answer = readline_sync_1.default.question(`${prompt} [y/N] `);
|
|
18
|
+
return answer.toLowerCase() === 'y';
|
|
19
|
+
}
|
|
20
|
+
function assertNever(n) {
|
|
21
|
+
throw new Error('this should never happen');
|
|
22
|
+
}
|
|
23
|
+
function createLogger(level = 'debug') {
|
|
24
|
+
return winston_1.default.createLogger({
|
|
25
|
+
level: level,
|
|
26
|
+
format: winston_1.default.format.combine(winston_1.default.format.printf(({ level, message }) => {
|
|
27
|
+
const indent = ' '.repeat(level.length + 2); // For ': ' after the level
|
|
28
|
+
const indentedMessage = message
|
|
29
|
+
.split('\n')
|
|
30
|
+
.map((line, index) => (index === 0 ? line : indent + line))
|
|
31
|
+
.join('\n');
|
|
32
|
+
const colorize = (l) => winston_1.default.format.colorize().colorize(l, l);
|
|
33
|
+
return `${colorize(level)}: ${indentedMessage}`;
|
|
34
|
+
})),
|
|
35
|
+
transports: [
|
|
36
|
+
new winston_1.default.transports.Console({
|
|
37
|
+
stderrLevels: ['error', 'warn', 'info', 'debug'],
|
|
38
|
+
handleExceptions: true
|
|
39
|
+
})
|
|
40
|
+
]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function randomStr(len) {
|
|
44
|
+
return (0, crypto_1.randomBytes)(Math.ceil(len / 2))
|
|
45
|
+
.toString('hex')
|
|
46
|
+
.slice(0, len);
|
|
47
|
+
}
|
|
48
|
+
function resolveTilde(p) {
|
|
49
|
+
if (p.startsWith('~')) {
|
|
50
|
+
return path_1.default.join(os_1.default.homedir(), p.slice(1));
|
|
51
|
+
}
|
|
52
|
+
return p;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;AAOA,sBAGC;AAED,kCAEC;AAED,oCAyBC;AAED,8BAIC;AAED,oCAKC;AAtDD,4CAAoB;AACpB,gDAAwB;AAExB,sDAA8B;AAC9B,mCAAqC;AACrC,kEAAyC;AAEzC,SAAgB,KAAK,CAAC,MAAc;IAClC,MAAM,MAAM,GAAG,uBAAY,CAAC,QAAQ,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;AACtC,CAAC;AAED,SAAgB,WAAW,CAAC,CAAQ;IAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB,OAAO;IAClD,OAAO,iBAAO,CAAC,YAAY,CAAC;QAC1B,KAAK,EAAE,KAAK;QAEZ,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,2BAA2B;YACxE,MAAM,eAAe,GAAG,OAAO;iBAC5B,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;iBAC1E,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,iBAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEzE,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,eAAe,EAAE,CAAC;QAClD,CAAC,CAAC,CACH;QAED,UAAU,EAAE;YACV,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;gBAChD,gBAAgB,EAAE,IAAI;aACvB,CAAC;SACH;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,SAAS,CAAC,GAAW;IACnC,OAAO,IAAA,oBAAW,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACnC,QAAQ,CAAC,KAAK,CAAC;SACf,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAgB,YAAY,CAAC,CAAS;IACpC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@platforma-sdk/bootstrap",
|
|
3
|
+
"version": "1.19.3",
|
|
4
|
+
"pl-version": "1.11.0",
|
|
5
|
+
"description": "MiLaboratories Platforma Backend bootstrap code: configuration generators, service run wrappers and so on",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "rm -rf ./dist/ && tsc",
|
|
8
|
+
"test": "jest",
|
|
9
|
+
"prettier-format": "prettier --config .prettierrc 'src/**/*.ts' --write"
|
|
10
|
+
},
|
|
11
|
+
"bin": {
|
|
12
|
+
"pl-service": "./bin/run.js"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"bin/run.cmd",
|
|
16
|
+
"bin/run.js",
|
|
17
|
+
"dist",
|
|
18
|
+
"assets",
|
|
19
|
+
"postinstall.js"
|
|
20
|
+
],
|
|
21
|
+
"keywords": [],
|
|
22
|
+
"license": "UNLICENSED",
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/decompress": "^4.2.7",
|
|
25
|
+
"@types/jest": "^29.5.12",
|
|
26
|
+
"@types/node": "^20.14.10",
|
|
27
|
+
"@types/readline-sync": "^1.4.8",
|
|
28
|
+
"prettier": "^3.3.3",
|
|
29
|
+
"ts-jest": "^29.1.5",
|
|
30
|
+
"ts-node": "^10.9.2",
|
|
31
|
+
"tsconfig-paths": "^4.2.0",
|
|
32
|
+
"typescript": "^5.5.3"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@oclif/core": "^3.26.6",
|
|
36
|
+
"canonicalize": "^2.0.0",
|
|
37
|
+
"decompress": "^4.2.1",
|
|
38
|
+
"readline-sync": "^1.4.10",
|
|
39
|
+
"tar": "^7.4.3",
|
|
40
|
+
"winston": "^3.13.0",
|
|
41
|
+
"yaml": "^2.5.0",
|
|
42
|
+
"zod": "^3.23.8"
|
|
43
|
+
},
|
|
44
|
+
"oclif": {
|
|
45
|
+
"bin": "pl-service",
|
|
46
|
+
"commands": "./dist/commands",
|
|
47
|
+
"dirname": "pl-service",
|
|
48
|
+
"topicSeparator": " "
|
|
49
|
+
}
|
|
50
|
+
}
|