@harperfast/harper 5.2.0-beta.1 → 5.2.0-beta.2
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/bin/cliOperations.ts +76 -12
- package/bin/run.ts +10 -0
- package/bin/status.ts +1 -1
- package/components/Application.ts +146 -83
- package/components/Scope.ts +4 -0
- package/components/componentLoader.ts +7 -0
- package/components/operations.js +21 -1
- package/config/configUtils.ts +139 -5
- package/config-app.schema.json +70 -0
- package/dist/bin/cliOperations.js +76 -12
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/run.js +9 -0
- package/dist/bin/run.js.map +1 -1
- package/dist/bin/status.js +1 -1
- package/dist/bin/status.js.map +1 -1
- package/dist/components/Application.d.ts +12 -5
- package/dist/components/Application.js +121 -60
- package/dist/components/Application.js.map +1 -1
- package/dist/components/Scope.d.ts +1 -0
- package/dist/components/Scope.js +4 -0
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/componentLoader.js +7 -0
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/operations.js +20 -1
- package/dist/components/operations.js.map +1 -1
- package/dist/config/configUtils.d.ts +31 -0
- package/dist/config/configUtils.js +127 -5
- package/dist/config/configUtils.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +12 -0
- package/dist/resources/DatabaseTransaction.js +97 -0
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/RequestTarget.js +13 -3
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.js +16 -0
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/Table.js +35 -2
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/metadata.d.ts +3 -0
- package/dist/resources/analytics/metadata.js +3 -0
- package/dist/resources/analytics/metadata.js.map +1 -1
- package/dist/resources/analytics/write.js +22 -0
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/defineResource.js +20 -7
- package/dist/resources/defineResource.js.map +1 -1
- package/dist/resources/jsResource.d.ts +24 -0
- package/dist/resources/jsResource.js +58 -2
- package/dist/resources/jsResource.js.map +1 -1
- package/dist/resources/openApi.js +45 -20
- package/dist/resources/openApi.js.map +1 -1
- package/dist/resources/scheduler/CronExpression.d.ts +71 -0
- package/dist/resources/scheduler/CronExpression.js +367 -0
- package/dist/resources/scheduler/CronExpression.js.map +1 -0
- package/dist/resources/scheduler/engine.d.ts +91 -0
- package/dist/resources/scheduler/engine.js +767 -0
- package/dist/resources/scheduler/engine.js.map +1 -0
- package/dist/resources/scheduler/scheduler.d.ts +33 -0
- package/dist/resources/scheduler/scheduler.js +200 -0
- package/dist/resources/scheduler/scheduler.js.map +1 -0
- package/dist/security/auth.js +1 -0
- package/dist/security/auth.js.map +1 -1
- package/dist/security/jsLoader.js +8 -0
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/keys.d.ts +32 -0
- package/dist/security/keys.js +147 -0
- package/dist/security/keys.js.map +1 -1
- package/dist/server/REST.js +67 -1
- package/dist/server/REST.js.map +1 -1
- package/dist/server/Server.d.ts +6 -0
- package/dist/server/Server.js.map +1 -1
- package/dist/server/http.d.ts +2 -0
- package/dist/server/http.js +139 -14
- package/dist/server/http.js.map +1 -1
- package/dist/server/operationsServer.js +3 -3
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/progressEmitter.js +5 -1
- package/dist/server/serverHelpers/progressEmitter.js.map +1 -1
- package/dist/server/threads/threadServer.js +9 -5
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/utility/common_utils.js +25 -0
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/install/installer.d.ts +9 -1
- package/dist/utility/install/installer.js +21 -0
- package/dist/utility/install/installer.js.map +1 -1
- package/dist/validation/configValidator.js +3 -0
- package/dist/validation/configValidator.js.map +1 -1
- package/npm-shrinkwrap.json +272 -230
- package/package.json +3 -3
- package/resources/DESIGN.md +1 -1
- package/resources/DatabaseTransaction.ts +95 -0
- package/resources/RequestTarget.ts +12 -3
- package/resources/Resource.ts +18 -0
- package/resources/Table.ts +34 -3
- package/resources/analytics/metadata.ts +3 -0
- package/resources/analytics/write.ts +23 -0
- package/resources/defineResource.ts +17 -4
- package/resources/jsResource.ts +61 -2
- package/resources/openApi.ts +44 -19
- package/resources/scheduler/CronExpression.ts +394 -0
- package/resources/scheduler/engine.ts +812 -0
- package/resources/scheduler/scheduler.ts +236 -0
- package/security/auth.ts +1 -0
- package/security/jsLoader.ts +8 -0
- package/security/keys.ts +152 -0
- package/server/REST.ts +70 -1
- package/server/Server.ts +6 -0
- package/server/http.ts +122 -15
- package/server/operationsServer.ts +5 -3
- package/server/serverHelpers/progressEmitter.ts +5 -1
- package/server/threads/threadServer.js +9 -5
- package/studio/web/assets/{Chat-BZks8dVF.js → Chat-DHP4XpID.js} +2 -2
- package/studio/web/assets/{Chat-BZks8dVF.js.map → Chat-DHP4XpID.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-Dic8paVO.js → FloatingChat-CJ7PssCv.js} +4 -4
- package/studio/web/assets/{FloatingChat-Dic8paVO.js.map → FloatingChat-CJ7PssCv.js.map} +1 -1
- package/studio/web/assets/{applications-uOXkeUIN.js → applications-DxXiGpsR.js} +2 -2
- package/studio/web/assets/{applications-uOXkeUIN.js.map → applications-DxXiGpsR.js.map} +1 -1
- package/studio/web/assets/{index-i-2wrKhv.js → index-BdbBanDP.js} +6 -6
- package/studio/web/assets/{index-i-2wrKhv.js.map → index-BdbBanDP.js.map} +1 -1
- package/studio/web/assets/{index.lazy-Csk8eCoB.js → index.lazy-B2eH28zD.js} +4 -4
- package/studio/web/assets/{index.lazy-Csk8eCoB.js.map → index.lazy-B2eH28zD.js.map} +1 -1
- package/studio/web/assets/{profile-Sb3mGDl6.js → profile-DK5hgucv.js} +2 -2
- package/studio/web/assets/{profile-Sb3mGDl6.js.map → profile-DK5hgucv.js.map} +1 -1
- package/studio/web/assets/{setComponentFile-BgZcaPJ2.js → setComponentFile-BVDWRYxx.js} +2 -2
- package/studio/web/assets/{setComponentFile-BgZcaPJ2.js.map → setComponentFile-BVDWRYxx.js.map} +1 -1
- package/studio/web/assets/{setup-DKtlLgmT.js → setup-DJ9BInoK.js} +2 -2
- package/studio/web/assets/{setup-DKtlLgmT.js.map → setup-DJ9BInoK.js.map} +1 -1
- package/studio/web/assets/{status-B45iLeug.js → status-B_qzmgfD.js} +2 -2
- package/studio/web/assets/{status-B45iLeug.js.map → status-B_qzmgfD.js.map} +1 -1
- package/studio/web/assets/{swagger-ui-react-Csu4026e.js → swagger-ui-react-DOL5jCqg.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-Csu4026e.js.map → swagger-ui-react-DOL5jCqg.js.map} +1 -1
- package/studio/web/assets/{tsMode-DVgxUr_l.js → tsMode-DpxUxfTW.js} +2 -2
- package/studio/web/assets/{tsMode-DVgxUr_l.js.map → tsMode-DpxUxfTW.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-yfDQMV1f.js → useEntityRestURL-CU_lY6XW.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-yfDQMV1f.js.map → useEntityRestURL-CU_lY6XW.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/utility/common_utils.ts +26 -0
- package/utility/install/installer.ts +26 -1
- package/validation/configValidator.ts +3 -0
|
@@ -27,6 +27,7 @@ import * as globalSchema from '../globalSchema.ts';
|
|
|
27
27
|
import { promisify } from 'util';
|
|
28
28
|
const pSchemaToGlobal = promisify(globalSchema.setSchemaDataToGlobal);
|
|
29
29
|
import * as keys from '../../security/keys.ts';
|
|
30
|
+
import { resolveConfiguredPath } from '../../config/componentEnvPrepass.ts';
|
|
30
31
|
|
|
31
32
|
// Removes the color formatting that was being applied to the prompt answer.
|
|
32
33
|
const PROMPT_ANSWER_TRANSFORMER = (answer) => answer;
|
|
@@ -84,9 +85,20 @@ let ignoreExisting = false;
|
|
|
84
85
|
* This module orchestrates the installation of Harper.
|
|
85
86
|
*/
|
|
86
87
|
|
|
87
|
-
export { install, updateConfigEnv, setIgnoreExisting };
|
|
88
|
+
export { install, updateConfigEnv, setIgnoreExisting, resolveInstallDestination };
|
|
88
89
|
install.createSuperUser = createSuperUser;
|
|
89
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Expands a `~/...` install destination to an absolute path so every downstream consumer
|
|
93
|
+
* (directory creation, boot props file, harperdb-config.yaml) resolves the same location instead
|
|
94
|
+
* of each independently (and inconsistently) trying to expand it (harper#672). Absolute paths and
|
|
95
|
+
* plain relative paths (no `~`, no leading `/`) are returned unchanged, preserving the existing
|
|
96
|
+
* cwd-relative behavior for relative paths.
|
|
97
|
+
*/
|
|
98
|
+
function resolveInstallDestination(value: string): string {
|
|
99
|
+
return resolveConfiguredPath(value, undefined) ?? value;
|
|
100
|
+
}
|
|
101
|
+
|
|
90
102
|
/**
|
|
91
103
|
* Calls all the functions that are needed to install Harper.
|
|
92
104
|
* @returns {Promise<void>}
|
|
@@ -103,6 +115,16 @@ async function install() {
|
|
|
103
115
|
// Check to see if any cmd/env vars are passed that override install prompts.
|
|
104
116
|
const promptOverride = checkForPromptOverride();
|
|
105
117
|
Object.assign(promptOverride, configFromFile);
|
|
118
|
+
|
|
119
|
+
// A cmd/env/config-file-sourced ROOTPATH skips the install prompt (and its `~/...`-expanding
|
|
120
|
+
// filter) entirely, so resolve it here - before it's validated (installValidator, below) or
|
|
121
|
+
// used anywhere else - to keep it consistent with the interactively-entered path (harper#672).
|
|
122
|
+
if (promptOverride[hdbTerms.INSTALL_PROMPTS.ROOTPATH] != null) {
|
|
123
|
+
promptOverride[hdbTerms.INSTALL_PROMPTS.ROOTPATH] = resolveInstallDestination(
|
|
124
|
+
promptOverride[hdbTerms.INSTALL_PROMPTS.ROOTPATH]
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
106
128
|
const hasRequiredPromptOverrides =
|
|
107
129
|
promptOverride[hdbTerms.INSTALL_PROMPTS.ROOTPATH] &&
|
|
108
130
|
promptOverride[hdbTerms.INSTALL_PROMPTS.HDB_ADMIN_USERNAME] &&
|
|
@@ -237,6 +259,9 @@ async function installPrompts(promptOverride) {
|
|
|
237
259
|
name: hdbTerms.INSTALL_PROMPTS.ROOTPATH,
|
|
238
260
|
prefix: PROMPT_PREFIX,
|
|
239
261
|
default: DEFAULT_HDB_ROOT,
|
|
262
|
+
// Runs before validate, so the existing-install check below (and everything after it)
|
|
263
|
+
// sees the same expanded path rather than a literal, unresolved `~/...` string.
|
|
264
|
+
filter: resolveInstallDestination,
|
|
240
265
|
validate: async (value) => {
|
|
241
266
|
if (checkForEmptyValue(value)) return checkForEmptyValue(value);
|
|
242
267
|
if (await fs.pathExists(path.join(value, 'system', 'hdb_user.mdb')))
|
|
@@ -329,6 +329,9 @@ export function configValidator(configJson, skipFsValidation = false) {
|
|
|
329
329
|
}),
|
|
330
330
|
]),
|
|
331
331
|
threadRange: Joi.alternatives([array.optional(), string.optional()]),
|
|
332
|
+
securityHeaders: Joi.object()
|
|
333
|
+
.pattern(string, Joi.alternatives([string, number, boolean]))
|
|
334
|
+
.optional(),
|
|
332
335
|
}).required(),
|
|
333
336
|
threads: Joi.alternatives(
|
|
334
337
|
threadsConstraints.optional(),
|