@harperfast/harper 5.0.0-alpha.10 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/BinObjects.js +17 -0
- package/bin/cliOperations.js +157 -0
- package/bin/copyDb.ts +280 -0
- package/bin/harper.js +156 -0
- package/bin/install.js +15 -0
- package/bin/lite.js +5 -0
- package/bin/restart.js +201 -0
- package/bin/run.js +409 -0
- package/bin/status.js +65 -0
- package/bin/stop.js +22 -0
- package/bin/upgrade.js +134 -0
- package/components/Application.ts +646 -0
- package/components/ApplicationScope.ts +49 -0
- package/components/Component.ts +53 -0
- package/components/ComponentV1.ts +342 -0
- package/components/DEFAULT_CONFIG.ts +18 -0
- package/components/EntryHandler.ts +227 -0
- package/components/Logger.ts +14 -0
- package/components/OptionsWatcher.ts +354 -0
- package/components/PluginModule.ts +6 -0
- package/components/Scope.ts +329 -0
- package/components/componentLoader.ts +529 -0
- package/components/deriveCommonPatternBase.ts +31 -0
- package/components/deriveGlobOptions.ts +44 -0
- package/components/deriveURLPath.ts +57 -0
- package/components/operations.js +658 -0
- package/components/operationsValidation.js +246 -0
- package/components/packageComponent.ts +39 -0
- package/components/requestRestart.ts +26 -0
- package/components/resolveBaseURLPath.ts +38 -0
- package/components/status/ComponentStatus.ts +110 -0
- package/components/status/ComponentStatusRegistry.ts +251 -0
- package/components/status/api.ts +153 -0
- package/components/status/crossThread.ts +405 -0
- package/components/status/errors.ts +152 -0
- package/components/status/index.ts +44 -0
- package/components/status/internal.ts +65 -0
- package/components/status/registry.ts +12 -0
- package/components/status/types.ts +96 -0
- package/config/RootConfigWatcher.ts +59 -0
- package/config/configHelpers.ts +11 -0
- package/config/configUtils.js +967 -0
- package/config/harperConfigEnvVars.ts +641 -0
- package/dataLayer/CreateAttributeObject.js +25 -0
- package/dataLayer/CreateTableObject.js +11 -0
- package/dataLayer/DataLayerObjects.js +43 -0
- package/dataLayer/DeleteBeforeObject.js +22 -0
- package/dataLayer/DeleteObject.js +25 -0
- package/dataLayer/DropAttributeObject.js +11 -0
- package/dataLayer/GetBackupObject.js +22 -0
- package/dataLayer/InsertObject.js +24 -0
- package/dataLayer/ReadAuditLogObject.js +24 -0
- package/dataLayer/SQLSearch.js +1335 -0
- package/dataLayer/SearchByConditionsObject.js +61 -0
- package/dataLayer/SearchByHashObject.js +21 -0
- package/dataLayer/SearchObject.js +45 -0
- package/dataLayer/SqlSearchObject.js +14 -0
- package/dataLayer/UpdateObject.js +23 -0
- package/dataLayer/UpsertObject.js +23 -0
- package/dataLayer/bulkLoad.js +813 -0
- package/dataLayer/dataObjects/BulkLoadObjects.js +27 -0
- package/dataLayer/dataObjects/UpsertObject.js +23 -0
- package/dataLayer/delete.js +164 -0
- package/dataLayer/export.js +381 -0
- package/dataLayer/getBackup.js +40 -0
- package/dataLayer/harperBridge/BridgeMethods.js +81 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +633 -0
- package/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.js +28 -0
- package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +88 -0
- package/dataLayer/harperBridge/harperBridge.js +21 -0
- package/dataLayer/harperBridge/lmdbBridge/LMDBBridge.js +119 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +19 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +112 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +67 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +31 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +94 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +98 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +89 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +109 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +107 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +137 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +35 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +111 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +28 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +29 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +207 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +156 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +21 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +30 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.js +19 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +64 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +70 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +22 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.js +23 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.js +22 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.js +23 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.js +24 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.js +24 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +25 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +21 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +157 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +94 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +39 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +34 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +100 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +371 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +109 -0
- package/dataLayer/hdbInfoController.js +254 -0
- package/dataLayer/insert.js +266 -0
- package/dataLayer/readAuditLog.js +59 -0
- package/dataLayer/schema.js +366 -0
- package/dataLayer/schemaDescribe.js +289 -0
- package/dataLayer/search.js +60 -0
- package/dataLayer/transaction.js +17 -0
- package/dataLayer/update.js +124 -0
- package/dist/components/Logger.d.ts +12 -0
- package/dist/components/Logger.js +3 -0
- package/dist/components/Logger.js.map +1 -0
- package/dist/components/Scope.d.ts +14 -4
- package/dist/components/Scope.js +18 -10
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/componentLoader.js +16 -9
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/operations.js +2 -2
- package/dist/components/operations.js.map +1 -1
- package/dist/config/configUtils.d.ts +1 -1
- package/dist/config/configUtils.js +1 -1
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/CreateTableObject.d.ts +2 -2
- package/dist/dataLayer/CreateTableObject.js +2 -2
- package/dist/dataLayer/CreateTableObject.js.map +1 -1
- package/dist/dataLayer/delete.d.ts +1 -1
- package/dist/dataLayer/schema.js +6 -5
- package/dist/dataLayer/schema.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +1 -1
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +1 -1
- package/dist/resources/IterableEventQueue.d.ts +1 -1
- package/dist/resources/LMDBTransaction.d.ts +5 -1
- package/dist/resources/Resource.d.ts +1 -1
- package/dist/resources/RocksIndexStore.d.ts +3 -3
- package/dist/resources/RocksTransactionLogStore.d.ts +6 -3
- package/dist/resources/Table.d.ts +15 -6
- package/dist/resources/Table.js +4 -1
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/read.js +32 -22
- package/dist/resources/analytics/read.js.map +1 -1
- package/dist/resources/analytics/write.js +3 -6
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/auditStore.d.ts +3 -3
- package/dist/resources/blob.d.ts +25 -2
- package/dist/resources/databases.d.ts +12 -2
- package/dist/resources/databases.js +22 -19
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/search.js +11 -5
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/transaction.d.ts +2 -1
- package/dist/security/auth.js +1 -1
- package/dist/security/auth.js.map +1 -1
- package/dist/security/cryptoHash.d.ts +2 -2
- package/dist/security/jsLoader.js +243 -66
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/keys.js +4 -5
- package/dist/security/keys.js.map +1 -1
- package/dist/security/user.js +3 -3
- package/dist/security/user.js.map +1 -1
- package/dist/server/REST.js +16 -2
- package/dist/server/REST.js.map +1 -1
- package/dist/server/Server.d.ts +2 -1
- package/dist/server/Server.js.map +1 -1
- package/dist/server/fastifyRoutes/plugins/hdbCore.d.ts +6 -1
- package/dist/server/fastifyRoutes.js +2 -0
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/http.js +12 -6
- package/dist/server/http.js.map +1 -1
- package/dist/server/jobs/JobObject.d.ts +3 -3
- package/dist/server/loadRootComponents.js +1 -0
- package/dist/server/loadRootComponents.js.map +1 -1
- package/dist/server/operationsServer.js +3 -1
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/JSONStream.d.ts +3 -3
- package/dist/server/serverHelpers/Request.d.ts +5 -5
- package/dist/server/serverHelpers/requestTimePlugin.d.ts +1 -1
- package/dist/server/threads/manageThreads.d.ts +2 -2
- package/dist/server/threads/manageThreads.js +50 -35
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.d.ts +1 -1
- package/dist/sqlTranslator/deleteTranslator.d.ts +1 -1
- package/dist/utility/AWS/AWSConnector.d.ts +3 -2
- package/dist/utility/common_utils.d.ts +3 -3
- package/dist/utility/environment/systemInformation.d.ts +1 -0
- package/dist/utility/functions/date/dateFunctions.d.ts +11 -11
- package/dist/utility/globalSchema.d.ts +1 -1
- package/dist/utility/hdbTerms.d.ts +3 -0
- package/dist/utility/hdbTerms.js +3 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/installation.d.ts +2 -4
- package/dist/utility/installation.js.map +1 -1
- package/dist/utility/lmdb/commonUtility.d.ts +1 -0
- package/dist/utility/lmdb/deleteUtility.d.ts +1 -0
- package/dist/utility/lmdb/environmentUtility.d.ts +1 -0
- package/dist/utility/lmdb/searchUtility.d.ts +2 -1
- package/dist/utility/lmdb/writeUtility.d.ts +1 -0
- package/dist/utility/logging/harper_logger.d.ts +6 -6
- package/dist/utility/processManagement/processManagement.d.ts +1 -1
- package/dist/utility/processManagement/servicesConfig.d.ts +12 -6
- package/dist/validation/common_validators.d.ts +4 -3
- package/dist/validation/configValidator.d.ts +3 -2
- package/index.d.ts +56 -0
- package/index.js +41 -0
- package/json/systemSchema.json +373 -0
- package/launchServiceScripts/launchHarperDB.js +3 -0
- package/launchServiceScripts/utility/checkNodeVersion.js +15 -0
- package/package.json +21 -3
- package/resources/DatabaseTransaction.ts +378 -0
- package/resources/ErrorResource.ts +57 -0
- package/resources/IterableEventQueue.ts +94 -0
- package/resources/LMDBTransaction.ts +349 -0
- package/resources/RecordEncoder.ts +702 -0
- package/resources/RequestTarget.ts +134 -0
- package/resources/Resource.ts +789 -0
- package/resources/ResourceInterface.ts +221 -0
- package/resources/ResourceInterfaceV2.ts +53 -0
- package/resources/ResourceV2.ts +67 -0
- package/resources/Resources.ts +162 -0
- package/resources/RocksIndexStore.ts +70 -0
- package/resources/RocksTransactionLogStore.ts +352 -0
- package/resources/Table.ts +4527 -0
- package/resources/analytics/hostnames.ts +72 -0
- package/resources/analytics/metadata.ts +10 -0
- package/resources/analytics/read.ts +252 -0
- package/resources/analytics/write.ts +803 -0
- package/resources/auditStore.ts +556 -0
- package/resources/blob.ts +1268 -0
- package/resources/crdt.ts +125 -0
- package/resources/dataLoader.ts +527 -0
- package/resources/databases.ts +1290 -0
- package/resources/graphql.ts +221 -0
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +638 -0
- package/resources/indexes/customIndexes.ts +7 -0
- package/resources/indexes/vector.ts +38 -0
- package/resources/jsResource.ts +86 -0
- package/resources/loadEnv.ts +22 -0
- package/resources/login.ts +18 -0
- package/resources/openApi.ts +409 -0
- package/resources/registrationDeprecated.ts +8 -0
- package/resources/replayLogs.ts +136 -0
- package/resources/roles.ts +98 -0
- package/resources/search.ts +1301 -0
- package/resources/tracked.ts +584 -0
- package/resources/transaction.ts +89 -0
- package/resources/transactionBroadcast.ts +258 -0
- package/security/auth.ts +376 -0
- package/security/certificateVerification/certificateVerificationSource.ts +84 -0
- package/security/certificateVerification/configValidation.ts +107 -0
- package/security/certificateVerification/crlVerification.ts +623 -0
- package/security/certificateVerification/index.ts +121 -0
- package/security/certificateVerification/ocspVerification.ts +148 -0
- package/security/certificateVerification/pkijs-ed25519-patch.ts +188 -0
- package/security/certificateVerification/types.ts +128 -0
- package/security/certificateVerification/verificationConfig.ts +138 -0
- package/security/certificateVerification/verificationUtils.ts +447 -0
- package/security/cryptoHash.js +42 -0
- package/security/data_objects/PermissionAttributeResponseObject.js +15 -0
- package/security/data_objects/PermissionResponseObject.js +115 -0
- package/security/data_objects/PermissionTableResponseObject.js +20 -0
- package/security/fastifyAuth.js +169 -0
- package/security/impersonation.ts +160 -0
- package/security/jsLoader.ts +716 -0
- package/security/keys.js +948 -0
- package/security/permissionsTranslator.js +300 -0
- package/security/role.js +218 -0
- package/security/tokenAuthentication.ts +228 -0
- package/security/user.ts +449 -0
- package/server/DurableSubscriptionsSession.ts +503 -0
- package/server/REST.ts +407 -0
- package/server/Server.ts +89 -0
- package/server/fastifyRoutes/helpers/getCORSOptions.js +36 -0
- package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +15 -0
- package/server/fastifyRoutes/helpers/getServerOptions.js +33 -0
- package/server/fastifyRoutes/plugins/hdbCore.js +39 -0
- package/server/fastifyRoutes.ts +205 -0
- package/server/graphqlQuerying.ts +700 -0
- package/server/http.ts +640 -0
- package/server/itc/serverHandlers.js +161 -0
- package/server/itc/utility/ITCEventObject.js +10 -0
- package/server/jobs/JobObject.js +24 -0
- package/server/jobs/jobProcess.js +69 -0
- package/server/jobs/jobRunner.js +162 -0
- package/server/jobs/jobs.js +304 -0
- package/server/loadRootComponents.js +44 -0
- package/server/mqtt.ts +485 -0
- package/server/nodeName.ts +75 -0
- package/server/operationsServer.ts +313 -0
- package/server/serverHelpers/Headers.ts +108 -0
- package/server/serverHelpers/JSONStream.ts +269 -0
- package/server/serverHelpers/OperationFunctionObject.ts +13 -0
- package/server/serverHelpers/Request.ts +158 -0
- package/server/serverHelpers/contentTypes.ts +637 -0
- package/server/serverHelpers/requestTimePlugin.js +57 -0
- package/server/serverHelpers/serverHandlers.js +148 -0
- package/server/serverHelpers/serverUtilities.ts +473 -0
- package/server/serverRegistry.ts +8 -0
- package/server/static.ts +187 -0
- package/server/status/definitions.ts +37 -0
- package/server/status/index.ts +125 -0
- package/server/storageReclamation.ts +93 -0
- package/server/threads/itc.js +89 -0
- package/server/threads/manageThreads.js +594 -0
- package/server/threads/socketRouter.ts +360 -0
- package/server/threads/threadServer.js +279 -0
- package/server/throttle.ts +73 -0
- package/sqlTranslator/SelectValidator.js +330 -0
- package/sqlTranslator/alasqlFunctionImporter.js +62 -0
- package/sqlTranslator/deleteTranslator.js +67 -0
- package/sqlTranslator/index.js +242 -0
- package/sqlTranslator/sql_statement_bucket.js +472 -0
- package/static/defaultConfig.yaml +3 -0
- package/studio/web/HDBDogOnly.svg +78 -0
- package/studio/web/assets/PPRadioGrotesk-Bold-DDaUYG8E.woff +0 -0
- package/studio/web/assets/fa-brands-400-CEJbCg16.woff +0 -0
- package/studio/web/assets/fa-brands-400-CSYNqBb_.ttf +0 -0
- package/studio/web/assets/fa-brands-400-DnkPfk3o.eot +0 -0
- package/studio/web/assets/fa-brands-400-UxlILjvJ.woff2 +0 -0
- package/studio/web/assets/fa-brands-400-cH1MgKbP.svg +3717 -0
- package/studio/web/assets/fa-regular-400-BhTwtT8w.eot +0 -0
- package/studio/web/assets/fa-regular-400-D1vz6WBx.ttf +0 -0
- package/studio/web/assets/fa-regular-400-DFnMcJPd.woff +0 -0
- package/studio/web/assets/fa-regular-400-DGzu1beS.woff2 +0 -0
- package/studio/web/assets/fa-regular-400-gwj8Pxq-.svg +801 -0
- package/studio/web/assets/fa-solid-900-B4ZZ7kfP.svg +5034 -0
- package/studio/web/assets/fa-solid-900-B6Axprfb.eot +0 -0
- package/studio/web/assets/fa-solid-900-BUswJgRo.woff2 +0 -0
- package/studio/web/assets/fa-solid-900-DOXgCApm.woff +0 -0
- package/studio/web/assets/fa-solid-900-mxuxnBEa.ttf +0 -0
- package/studio/web/assets/index-BTgXJX9d.js +235 -0
- package/studio/web/assets/index-BTgXJX9d.js.map +1 -0
- package/studio/web/assets/index-C-GXfcup.js +37 -0
- package/studio/web/assets/index-C-GXfcup.js.map +1 -0
- package/studio/web/assets/index-PFlNdimM.js +2 -0
- package/studio/web/assets/index-PFlNdimM.js.map +1 -0
- package/studio/web/assets/index-Y2g_iFpU.css +1 -0
- package/studio/web/assets/index-jiPwkrsB.css +1 -0
- package/studio/web/assets/index.lazy-C3TJZJ4o.js +266 -0
- package/studio/web/assets/index.lazy-C3TJZJ4o.js.map +1 -0
- package/studio/web/assets/profiler-DotzgiCJ.js +2 -0
- package/studio/web/assets/profiler-DotzgiCJ.js.map +1 -0
- package/studio/web/assets/react-redux-VxUEx_mU.js +6 -0
- package/studio/web/assets/react-redux-VxUEx_mU.js.map +1 -0
- package/studio/web/assets/startRecording-B_9J9Csd.js +3 -0
- package/studio/web/assets/startRecording-B_9J9Csd.js.map +1 -0
- package/studio/web/fabric-signup-background.webp +0 -0
- package/studio/web/fabric-signup-text.png +0 -0
- package/studio/web/favicon_purple.png +0 -0
- package/studio/web/github-icon.svg +15 -0
- package/studio/web/harper-fabric_black.png +0 -0
- package/studio/web/harper-fabric_white.png +0 -0
- package/studio/web/harper-studio_white.png +0 -0
- package/studio/web/index.html +16 -0
- package/studio/web/running.css +148 -0
- package/studio/web/running.html +147 -0
- package/studio/web/running.js +111 -0
- package/upgrade/UpgradeObjects.js +13 -0
- package/upgrade/directives/directivesController.js +90 -0
- package/upgrade/directivesManager.js +139 -0
- package/upgrade/upgradePrompt.js +124 -0
- package/upgrade/upgradeUtilities.js +28 -0
- package/utility/AWS/AWSConnector.js +29 -0
- package/utility/OperationFunctionCaller.js +63 -0
- package/utility/assignCmdEnvVariables.js +62 -0
- package/utility/common_utils.js +867 -0
- package/utility/environment/environmentManager.js +208 -0
- package/utility/environment/systemInformation.js +355 -0
- package/utility/errors/commonErrors.js +267 -0
- package/utility/errors/hdbError.js +146 -0
- package/utility/functions/date/dateFunctions.js +65 -0
- package/utility/functions/geo.js +355 -0
- package/utility/functions/sql/alaSQLExtension.js +104 -0
- package/utility/globalSchema.js +35 -0
- package/utility/hdbTerms.ts +819 -0
- package/utility/install/checkJWTTokensExist.js +62 -0
- package/utility/install/harperdb.conf +15 -0
- package/utility/install/harperdb.service +14 -0
- package/utility/install/installer.js +635 -0
- package/utility/installation.ts +30 -0
- package/utility/lmdb/DBIDefinition.js +20 -0
- package/utility/lmdb/DeleteRecordsResponseObject.js +25 -0
- package/utility/lmdb/InsertRecordsResponseObject.js +22 -0
- package/utility/lmdb/OpenDBIObject.js +31 -0
- package/utility/lmdb/OpenEnvironmentObject.js +41 -0
- package/utility/lmdb/UpdateRecordsResponseObject.js +25 -0
- package/utility/lmdb/UpsertRecordsResponseObject.js +22 -0
- package/utility/lmdb/cleanLMDBMap.js +65 -0
- package/utility/lmdb/commonUtility.js +119 -0
- package/utility/lmdb/deleteUtility.js +128 -0
- package/utility/lmdb/environmentUtility.js +477 -0
- package/utility/lmdb/searchCursorFunctions.js +187 -0
- package/utility/lmdb/searchUtility.js +918 -0
- package/utility/lmdb/terms.js +57 -0
- package/utility/lmdb/writeUtility.js +407 -0
- package/utility/logging/harper_logger.js +876 -0
- package/utility/logging/logRotator.js +157 -0
- package/utility/logging/logger.ts +24 -0
- package/utility/logging/readLog.js +355 -0
- package/utility/logging/transactionLog.js +57 -0
- package/utility/mount_hdb.js +59 -0
- package/utility/npmUtilities.js +102 -0
- package/utility/operationPermissions.ts +112 -0
- package/utility/operation_authorization.js +836 -0
- package/utility/packageUtils.js +55 -0
- package/utility/password.ts +99 -0
- package/utility/processManagement/processManagement.js +187 -0
- package/utility/processManagement/servicesConfig.js +56 -0
- package/utility/scripts/restartHdb.js +24 -0
- package/utility/scripts/user_data.sh +13 -0
- package/utility/signalling.js +36 -0
- package/utility/terms/certificates.js +81 -0
- package/utility/when.ts +20 -0
- package/v1.d.ts +39 -0
- package/v1.js +41 -0
- package/v2.d.ts +39 -0
- package/v2.js +41 -0
- package/validation/bulkDeleteValidator.js +24 -0
- package/validation/check_permissions.js +19 -0
- package/validation/common_validators.js +95 -0
- package/validation/configValidator.js +331 -0
- package/validation/deleteValidator.js +15 -0
- package/validation/fileLoadValidator.js +153 -0
- package/validation/insertValidator.js +40 -0
- package/validation/installValidator.js +37 -0
- package/validation/readLogValidator.js +64 -0
- package/validation/role_validation.js +320 -0
- package/validation/schemaMetadataValidator.js +42 -0
- package/validation/searchValidator.js +166 -0
- package/validation/statusValidator.ts +66 -0
- package/validation/transactionLogValidator.js +33 -0
- package/validation/user_validation.js +55 -0
- package/validation/validationWrapper.js +105 -0
- package/dist/resources/analytics/profile.d.ts +0 -2
- package/dist/resources/analytics/profile.js +0 -144
- package/dist/resources/analytics/profile.js.map +0 -1
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/***
|
|
4
|
+
* geo.js
|
|
5
|
+
*
|
|
6
|
+
* Module created as a wrapper for our implementation of turf.js into the sql parser
|
|
7
|
+
* turf.js has very robust internal validation as such we offload the validation to turf.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const turfArea = require('@turf/area');
|
|
11
|
+
const turfLength = require('@turf/length');
|
|
12
|
+
const turfCircle = require('@turf/circle');
|
|
13
|
+
const turfDifference = require('@turf/difference');
|
|
14
|
+
const turfDistance = require('@turf/distance');
|
|
15
|
+
const turfBooleanContains = require('@turf/boolean-contains');
|
|
16
|
+
const turfBooleanEqual = require('@turf/boolean-equal');
|
|
17
|
+
const turfBooleanDisjoint = require('@turf/boolean-disjoint');
|
|
18
|
+
const turfHelpers = require('@turf/helpers');
|
|
19
|
+
const hdbTerms = require('../hdbTerms.ts');
|
|
20
|
+
const commonUtils = require('../common_utils.js');
|
|
21
|
+
const hdbLog = require('../logging/harper_logger.js');
|
|
22
|
+
|
|
23
|
+
module.exports = {
|
|
24
|
+
geoArea,
|
|
25
|
+
geoLength,
|
|
26
|
+
geoCircle,
|
|
27
|
+
geoDifference,
|
|
28
|
+
geoDistance,
|
|
29
|
+
geoNear,
|
|
30
|
+
geoContains,
|
|
31
|
+
geoEqual,
|
|
32
|
+
geoCrosses,
|
|
33
|
+
geoConvert,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/***
|
|
37
|
+
* Takes one or more features and returns the area in square meters
|
|
38
|
+
* @param geoJSON
|
|
39
|
+
* @returns {number}
|
|
40
|
+
*/
|
|
41
|
+
function geoArea(geoJSON) {
|
|
42
|
+
if (commonUtils.isEmpty(geoJSON)) {
|
|
43
|
+
return NaN;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (typeof geoJSON === 'string') {
|
|
47
|
+
geoJSON = commonUtils.autoCastJSON(geoJSON);
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
return turfArea.default(geoJSON);
|
|
51
|
+
} catch (err) {
|
|
52
|
+
hdbLog.trace(err, geoJSON);
|
|
53
|
+
return NaN;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/***
|
|
58
|
+
* Takes a GeoJSON and measures its length in the specified units (default is kilometers)
|
|
59
|
+
* @param geoJSON
|
|
60
|
+
* @param units
|
|
61
|
+
* @returns {number}
|
|
62
|
+
*/
|
|
63
|
+
function geoLength(geoJSON, units) {
|
|
64
|
+
if (commonUtils.isEmpty(geoJSON)) {
|
|
65
|
+
return NaN;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (typeof geoJSON === 'string') {
|
|
69
|
+
geoJSON = commonUtils.autoCastJSON(geoJSON);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
try {
|
|
73
|
+
return turfLength.default(geoJSON, { units: units ? units : 'kilometers' });
|
|
74
|
+
} catch (err) {
|
|
75
|
+
hdbLog.trace(err, geoJSON);
|
|
76
|
+
return NaN;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/***
|
|
81
|
+
* Takes a Point and calculates the circle polygon given a radius in units (default units are kilometers)
|
|
82
|
+
* @param point
|
|
83
|
+
* @param radius
|
|
84
|
+
* @param units
|
|
85
|
+
* @returns {Feature<Polygon>}
|
|
86
|
+
*/
|
|
87
|
+
function geoCircle(point, radius, units) {
|
|
88
|
+
if (commonUtils.isEmpty(point)) {
|
|
89
|
+
return NaN;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (commonUtils.isEmpty(radius)) {
|
|
93
|
+
return NaN;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (typeof point === 'string') {
|
|
97
|
+
point = commonUtils.autoCastJSON(point);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
return turfCircle.default(point, radius, { units: units ? units : 'kilometers' });
|
|
102
|
+
} catch (err) {
|
|
103
|
+
hdbLog.trace(err, point, radius);
|
|
104
|
+
return NaN;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/***
|
|
109
|
+
* returns a new polygon with the difference of the second polygon clipped from the first polygon
|
|
110
|
+
* @param poly1
|
|
111
|
+
* @param poly2
|
|
112
|
+
* @returns {Feature<Polygon | MultiPolygon> | null}
|
|
113
|
+
*/
|
|
114
|
+
function geoDifference(poly1, poly2) {
|
|
115
|
+
if (commonUtils.isEmpty(poly1)) {
|
|
116
|
+
return NaN;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (commonUtils.isEmpty(poly2)) {
|
|
120
|
+
return NaN;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (typeof poly1 === 'string') {
|
|
124
|
+
poly1 = commonUtils.autoCastJSON(poly1);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (typeof poly2 === 'string') {
|
|
128
|
+
poly2 = commonUtils.autoCastJSON(poly2);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
try {
|
|
132
|
+
return turfDifference(poly1, poly2);
|
|
133
|
+
} catch (err) {
|
|
134
|
+
hdbLog.trace(err, poly1, poly2);
|
|
135
|
+
return NaN;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/***
|
|
140
|
+
* Calculates the distance between two points, default unit is kilometers
|
|
141
|
+
* @param point1
|
|
142
|
+
* @param point2
|
|
143
|
+
* @param units
|
|
144
|
+
* @returns {number}
|
|
145
|
+
*/
|
|
146
|
+
function geoDistance(point1, point2, units) {
|
|
147
|
+
if (commonUtils.isEmpty(point1)) {
|
|
148
|
+
return NaN;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (commonUtils.isEmpty(point2)) {
|
|
152
|
+
return NaN;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (typeof point1 === 'string') {
|
|
156
|
+
point1 = commonUtils.autoCastJSON(point1);
|
|
157
|
+
}
|
|
158
|
+
if (typeof point2 === 'string') {
|
|
159
|
+
point2 = commonUtils.autoCastJSON(point2);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
try {
|
|
163
|
+
return turfDistance.default(point1, point2, { units: units ? units : 'kilometers' });
|
|
164
|
+
} catch (err) {
|
|
165
|
+
hdbLog.trace(err, point1, point2);
|
|
166
|
+
return NaN;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/***
|
|
171
|
+
* determines if point1 and point2 are within a specified distance from each other, default units are kilometers
|
|
172
|
+
* @param point1
|
|
173
|
+
* @param point2
|
|
174
|
+
* @param distance
|
|
175
|
+
* @param units
|
|
176
|
+
* @returns {boolean}
|
|
177
|
+
*/
|
|
178
|
+
function geoNear(point1, point2, distance, units) {
|
|
179
|
+
if (commonUtils.isEmpty(point1)) {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
if (commonUtils.isEmpty(point2)) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (commonUtils.isEmpty(distance)) {
|
|
188
|
+
throw new Error('distance is required');
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (typeof point1 === 'string') {
|
|
192
|
+
point1 = commonUtils.autoCastJSON(point1);
|
|
193
|
+
}
|
|
194
|
+
if (typeof point2 === 'string') {
|
|
195
|
+
point2 = commonUtils.autoCastJSON(point2);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (isNaN(distance)) {
|
|
199
|
+
throw new Error('distance must be a number');
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
try {
|
|
203
|
+
let pointsDistance = geoDistance(point1, point2, units);
|
|
204
|
+
return pointsDistance <= distance;
|
|
205
|
+
} catch (err) {
|
|
206
|
+
hdbLog.trace(err, point1, point2);
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/***
|
|
212
|
+
* Determines if geo2 is completely contained by geo1
|
|
213
|
+
* @param geo1
|
|
214
|
+
* @param geo2
|
|
215
|
+
* @returns {boolean}
|
|
216
|
+
*/
|
|
217
|
+
function geoContains(geo1, geo2) {
|
|
218
|
+
if (commonUtils.isEmpty(geo1)) {
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
if (commonUtils.isEmpty(geo2)) {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
if (geo1.coordinates && geo1.coordinates.includes?.(null)) {
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
if (geo2.coordinates && geo2.coordinates.includes?.(null)) {
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
if (typeof geo1 === 'string') {
|
|
235
|
+
geo1 = commonUtils.autoCastJSON(geo1);
|
|
236
|
+
}
|
|
237
|
+
if (typeof geo2 === 'string') {
|
|
238
|
+
geo2 = commonUtils.autoCastJSON(geo2);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
try {
|
|
242
|
+
return turfBooleanContains.default(geo1, geo2);
|
|
243
|
+
} catch (err) {
|
|
244
|
+
hdbLog.trace(err, geo1, geo2);
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/***
|
|
250
|
+
* Determines if geo1 & geo2 are the same type and have identical x,y coordinate values based on: http://edndoc.esri.com/arcsde/9.0/generalTopics/understandSpatialRelations.htm
|
|
251
|
+
* @param geo1
|
|
252
|
+
* @param geo2
|
|
253
|
+
* @returns {boolean}
|
|
254
|
+
*/
|
|
255
|
+
function geoEqual(geo1, geo2) {
|
|
256
|
+
if (commonUtils.isEmpty(geo1)) {
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
if (commonUtils.isEmpty(geo2)) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
if (geo1.coordinates && geo1.coordinates.includes?.(null)) {
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
if (geo2.coordinates && geo2.coordinates.includes?.(null)) {
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (typeof geo1 === 'string') {
|
|
273
|
+
geo1 = commonUtils.autoCastJSON(geo1);
|
|
274
|
+
}
|
|
275
|
+
if (typeof geo2 === 'string') {
|
|
276
|
+
geo2 = commonUtils.autoCastJSON(geo2);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
try {
|
|
280
|
+
return turfBooleanEqual.default(geo1, geo2);
|
|
281
|
+
} catch (err) {
|
|
282
|
+
hdbLog.trace(err, geo1, geo2);
|
|
283
|
+
return false;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/***
|
|
288
|
+
* Determines if the geometries cross over each other
|
|
289
|
+
* @param geo1
|
|
290
|
+
* @param geo2
|
|
291
|
+
* @returns {boolean}
|
|
292
|
+
*/
|
|
293
|
+
function geoCrosses(geo1, geo2) {
|
|
294
|
+
if (commonUtils.isEmpty(geo1)) {
|
|
295
|
+
return false;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
if (commonUtils.isEmpty(geo2)) {
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
if (geo1.coordinates && geo1.coordinates.includes?.(null)) {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (geo2.coordinates && geo2.coordinates.includes?.(null)) {
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
if (typeof geo1 === 'string') {
|
|
311
|
+
geo1 = commonUtils.autoCastJSON(geo1);
|
|
312
|
+
}
|
|
313
|
+
if (typeof geo2 === 'string') {
|
|
314
|
+
geo2 = commonUtils.autoCastJSON(geo2);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
try {
|
|
318
|
+
//need to do ! as this checks for non-intersections of geometries
|
|
319
|
+
return !turfBooleanDisjoint.default(geo1, geo2);
|
|
320
|
+
} catch (err) {
|
|
321
|
+
hdbLog.trace(err, geo1, geo2);
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/***
|
|
327
|
+
* Converts a series of coordinates into the desired type
|
|
328
|
+
* @param coordinates
|
|
329
|
+
* @param geoType
|
|
330
|
+
* @param properties
|
|
331
|
+
* @returns {*}
|
|
332
|
+
*/
|
|
333
|
+
function geoConvert(coordinates, geoType, properties) {
|
|
334
|
+
if (commonUtils.isEmptyOrZeroLength(coordinates)) {
|
|
335
|
+
throw new Error('coordinates is required');
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
if (commonUtils.isEmpty(geoType)) {
|
|
339
|
+
throw new Error('geo_type is required');
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
if (commonUtils.isEmpty(hdbTerms.GEO_CONVERSION_ENUM[geoType])) {
|
|
343
|
+
throw new Error(
|
|
344
|
+
`geoType of ${geoType} is invalid please use one of the following types: ${Object.keys(
|
|
345
|
+
hdbTerms.GEO_CONVERSION_ENUM
|
|
346
|
+
).join(',')}`
|
|
347
|
+
);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (typeof coordinates === 'string') {
|
|
351
|
+
coordinates = commonUtils.autoCastJSON(coordinates);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
return turfHelpers[geoType](coordinates, properties);
|
|
355
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/***
|
|
4
|
+
* alaSQLExtension.js
|
|
5
|
+
* purpose of this module is to hold custom functions for alasql
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const _ = require('lodash');
|
|
9
|
+
const mathjs = require('mathjs');
|
|
10
|
+
const jsonata = require('jsonata');
|
|
11
|
+
const hdbUtils = require('../../common_utils.js');
|
|
12
|
+
|
|
13
|
+
module.exports = {
|
|
14
|
+
/***
|
|
15
|
+
* distinctArray takes in an array an dedupes its values using lodash. this works on complex as well as simple datatypes
|
|
16
|
+
* @param array
|
|
17
|
+
* @returns array
|
|
18
|
+
*/
|
|
19
|
+
distinct_array: (array) => {
|
|
20
|
+
if (Array.isArray(array) && array.length > 1) {
|
|
21
|
+
return _.uniqWith(array, _.isEqual);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return array;
|
|
25
|
+
},
|
|
26
|
+
searchJSON,
|
|
27
|
+
/***
|
|
28
|
+
* median absolute deviation aggregate function based on http://mathjs.org/docs/reference/functions/mad.html
|
|
29
|
+
*/
|
|
30
|
+
mad: aggregateFunction.bind(null, mathjs.mad),
|
|
31
|
+
/***
|
|
32
|
+
* mean aggregate function based on http://mathjs.org/docs/reference/functions/mean.html
|
|
33
|
+
*/
|
|
34
|
+
mean: aggregateFunction.bind(null, mathjs.mean),
|
|
35
|
+
/***
|
|
36
|
+
* computes the mode of values on http://mathjs.org/docs/reference/functions/mode.html
|
|
37
|
+
*/
|
|
38
|
+
mode: aggregateFunction.bind(null, mathjs.mode),
|
|
39
|
+
/***
|
|
40
|
+
* compute the product based on http://mathjs.org/docs/reference/functions/prod.html
|
|
41
|
+
*/
|
|
42
|
+
prod: aggregateFunction.bind(null, mathjs.prod),
|
|
43
|
+
/***
|
|
44
|
+
* compute the median based on http://mathjs.org/docs/reference/functions/median.html
|
|
45
|
+
*/
|
|
46
|
+
median: aggregateFunction.bind(null, mathjs.median),
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/***
|
|
50
|
+
* handles the 3 pass loop for aggregates and executes the final calc with the passed in aggregator function
|
|
51
|
+
* alasql's stages work like the following:
|
|
52
|
+
* stage 1 is the very first record and requires you to return what is the array variable from then on
|
|
53
|
+
* stage 2 occurs for every following row
|
|
54
|
+
* stage 3 is where the processing occurs and returns the final result
|
|
55
|
+
* @param calculationFunction - function to execute to perform the calculation
|
|
56
|
+
* @param value - value per row
|
|
57
|
+
* @param array - the aggregate list of values
|
|
58
|
+
* @param stage - defines the stage in processing see description above
|
|
59
|
+
* @returns {*}
|
|
60
|
+
*/
|
|
61
|
+
function aggregateFunction(calculationFunction, value, array, stage) {
|
|
62
|
+
if (stage === 1) {
|
|
63
|
+
if (value === null || value === undefined) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return [value];
|
|
68
|
+
} else if (stage === 2) {
|
|
69
|
+
if (value !== null && value !== undefined) {
|
|
70
|
+
array.push(value);
|
|
71
|
+
}
|
|
72
|
+
return array;
|
|
73
|
+
} else {
|
|
74
|
+
if (array !== null && array !== undefined && array.length > 0) {
|
|
75
|
+
return calculationFunction(array);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* wrapper function that implements the JSONata library, which performs searches, transforms, etc... on JSON
|
|
84
|
+
* @param {String} jsonataExpression - the JSONata expression to execute
|
|
85
|
+
* @param {any} data - data which will be evaluated
|
|
86
|
+
* @returns {any}
|
|
87
|
+
*/
|
|
88
|
+
function searchJSON(jsonataExpression, data) {
|
|
89
|
+
if (typeof jsonataExpression !== 'string' || jsonataExpression.length === 0) {
|
|
90
|
+
throw new Error('search json expression must be a non-empty string');
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
let alias = '__' + jsonataExpression + '__';
|
|
94
|
+
|
|
95
|
+
if (hdbUtils.isEmpty(this.__ala__.res)) {
|
|
96
|
+
this.__ala__.res = {};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (hdbUtils.isEmpty(this.__ala__.res[alias])) {
|
|
100
|
+
let expression = jsonata(jsonataExpression);
|
|
101
|
+
this.__ala__.res[alias] = expression;
|
|
102
|
+
}
|
|
103
|
+
return this.__ala__.res[alias].evaluate(data);
|
|
104
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const systemSchema = require('../json/systemSchema.json');
|
|
2
|
+
const { promisify } = require('util');
|
|
3
|
+
const { getDatabases } = require('../resources/databases.ts');
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
setSchemaDataToGlobal,
|
|
7
|
+
getTableSchema,
|
|
8
|
+
getSystemSchema,
|
|
9
|
+
setSchemaDataToGlobalAsync: promisify(setSchemaDataToGlobal),
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
function setSchemaDataToGlobal(callback) {
|
|
13
|
+
global.hdb_schema = getDatabases();
|
|
14
|
+
if (callback) callback();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function getTableSchema(schemaName, tableName, callback) {
|
|
18
|
+
const database = getDatabases()[schemaName];
|
|
19
|
+
if (!database) {
|
|
20
|
+
return callback(`schema ${schemaName} does not exist`);
|
|
21
|
+
}
|
|
22
|
+
const table = database[tableName];
|
|
23
|
+
if (!table) {
|
|
24
|
+
return callback(`table ${schemaName}.${tableName} does not exist`);
|
|
25
|
+
}
|
|
26
|
+
return callback(null, {
|
|
27
|
+
schema: schemaName,
|
|
28
|
+
name: tableName,
|
|
29
|
+
hash_attribute: table.primaryKey,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function getSystemSchema() {
|
|
34
|
+
return systemSchema;
|
|
35
|
+
}
|