@harperfast/harper 5.0.0-alpha.10
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/CODE_OF_CONDUCT.md +83 -0
- package/LICENSE +201 -0
- package/README.md +54 -0
- package/SECURITY.md +18 -0
- package/SUPPORT.md +26 -0
- package/dist/bin/BinObjects.d.ts +9 -0
- package/dist/bin/BinObjects.js +15 -0
- package/dist/bin/BinObjects.js.map +1 -0
- package/dist/bin/cliOperations.d.ts +12 -0
- package/dist/bin/cliOperations.js +156 -0
- package/dist/bin/cliOperations.js.map +1 -0
- package/dist/bin/copyDb.d.ts +2 -0
- package/dist/bin/copyDb.js +298 -0
- package/dist/bin/copyDb.js.map +1 -0
- package/dist/bin/harper.d.ts +2 -0
- package/dist/bin/harper.js +148 -0
- package/dist/bin/harper.js.map +1 -0
- package/dist/bin/install.d.ts +2 -0
- package/dist/bin/install.js +16 -0
- package/dist/bin/install.js.map +1 -0
- package/dist/bin/lite.d.ts +1 -0
- package/dist/bin/lite.js +6 -0
- package/dist/bin/lite.js.map +1 -0
- package/dist/bin/restart.d.ts +13 -0
- package/dist/bin/restart.js +194 -0
- package/dist/bin/restart.js.map +1 -0
- package/dist/bin/run.d.ts +21 -0
- package/dist/bin/run.js +365 -0
- package/dist/bin/run.js.map +1 -0
- package/dist/bin/status.d.ts +2 -0
- package/dist/bin/status.js +56 -0
- package/dist/bin/status.js.map +1 -0
- package/dist/bin/stop.d.ts +2 -0
- package/dist/bin/stop.js +17 -0
- package/dist/bin/stop.js.map +1 -0
- package/dist/bin/upgrade.d.ts +7 -0
- package/dist/bin/upgrade.js +111 -0
- package/dist/bin/upgrade.js.map +1 -0
- package/dist/components/Application.d.ts +110 -0
- package/dist/components/Application.js +509 -0
- package/dist/components/Application.js.map +1 -0
- package/dist/components/ApplicationScope.d.ts +28 -0
- package/dist/components/ApplicationScope.js +81 -0
- package/dist/components/ApplicationScope.js.map +1 -0
- package/dist/components/Component.d.ts +21 -0
- package/dist/components/Component.js +43 -0
- package/dist/components/Component.js.map +1 -0
- package/dist/components/ComponentV1.d.ts +69 -0
- package/dist/components/ComponentV1.js +263 -0
- package/dist/components/ComponentV1.js.map +1 -0
- package/dist/components/DEFAULT_CONFIG.d.ts +18 -0
- package/dist/components/DEFAULT_CONFIG.js +22 -0
- package/dist/components/DEFAULT_CONFIG.js.map +1 -0
- package/dist/components/EntryHandler.d.ts +61 -0
- package/dist/components/EntryHandler.js +148 -0
- package/dist/components/EntryHandler.js.map +1 -0
- package/dist/components/OptionsWatcher.d.ts +75 -0
- package/dist/components/OptionsWatcher.js +281 -0
- package/dist/components/OptionsWatcher.js.map +1 -0
- package/dist/components/PluginModule.d.ts +5 -0
- package/dist/components/PluginModule.js +3 -0
- package/dist/components/PluginModule.js.map +1 -0
- package/dist/components/Scope.d.ts +49 -0
- package/dist/components/Scope.js +262 -0
- package/dist/components/Scope.js.map +1 -0
- package/dist/components/componentLoader.js +498 -0
- package/dist/components/componentLoader.js.map +1 -0
- package/dist/components/deriveCommonPatternBase.d.ts +1 -0
- package/dist/components/deriveCommonPatternBase.js +34 -0
- package/dist/components/deriveCommonPatternBase.js.map +1 -0
- package/dist/components/deriveGlobOptions.d.ts +13 -0
- package/dist/components/deriveGlobOptions.js +30 -0
- package/dist/components/deriveGlobOptions.js.map +1 -0
- package/dist/components/deriveURLPath.d.ts +3 -0
- package/dist/components/deriveURLPath.js +55 -0
- package/dist/components/deriveURLPath.js.map +1 -0
- package/dist/components/operations.d.ts +97 -0
- package/dist/components/operations.js +556 -0
- package/dist/components/operations.js.map +1 -0
- package/dist/components/operationsValidation.d.ts +44 -0
- package/dist/components/operationsValidation.js +221 -0
- package/dist/components/operationsValidation.js.map +1 -0
- package/dist/components/packageComponent.d.ts +8 -0
- package/dist/components/packageComponent.js +42 -0
- package/dist/components/packageComponent.js.map +1 -0
- package/dist/components/requestRestart.d.ts +3 -0
- package/dist/components/requestRestart.js +27 -0
- package/dist/components/requestRestart.js.map +1 -0
- package/dist/components/resolveBaseURLPath.d.ts +15 -0
- package/dist/components/resolveBaseURLPath.js +38 -0
- package/dist/components/resolveBaseURLPath.js.map +1 -0
- package/dist/components/status/ComponentStatus.d.ts +61 -0
- package/dist/components/status/ComponentStatus.js +102 -0
- package/dist/components/status/ComponentStatus.js.map +1 -0
- package/dist/components/status/ComponentStatusRegistry.d.ts +89 -0
- package/dist/components/status/ComponentStatusRegistry.js +195 -0
- package/dist/components/status/ComponentStatusRegistry.js.map +1 -0
- package/dist/components/status/api.d.ts +104 -0
- package/dist/components/status/api.js +137 -0
- package/dist/components/status/api.js.map +1 -0
- package/dist/components/status/crossThread.d.ts +62 -0
- package/dist/components/status/crossThread.js +343 -0
- package/dist/components/status/crossThread.js.map +1 -0
- package/dist/components/status/errors.d.ts +68 -0
- package/dist/components/status/errors.js +123 -0
- package/dist/components/status/errors.js.map +1 -0
- package/dist/components/status/index.d.ts +35 -0
- package/dist/components/status/index.js +75 -0
- package/dist/components/status/index.js.map +1 -0
- package/dist/components/status/internal.d.ts +40 -0
- package/dist/components/status/internal.js +76 -0
- package/dist/components/status/internal.js.map +1 -0
- package/dist/components/status/registry.d.ts +10 -0
- package/dist/components/status/registry.js +14 -0
- package/dist/components/status/registry.js.map +1 -0
- package/dist/components/status/types.d.ts +94 -0
- package/dist/components/status/types.js +20 -0
- package/dist/components/status/types.js.map +1 -0
- package/dist/config/RootConfigWatcher.d.ts +10 -0
- package/dist/config/RootConfigWatcher.js +59 -0
- package/dist/config/RootConfigWatcher.js.map +1 -0
- package/dist/config/configHelpers.d.ts +6 -0
- package/dist/config/configHelpers.js +47 -0
- package/dist/config/configHelpers.js.map +1 -0
- package/dist/config/configUtils.d.ts +85 -0
- package/dist/config/configUtils.js +801 -0
- package/dist/config/configUtils.js.map +1 -0
- package/dist/config/harperConfigEnvVars.d.ts +46 -0
- package/dist/config/harperConfigEnvVars.js +527 -0
- package/dist/config/harperConfigEnvVars.js.map +1 -0
- package/dist/dataLayer/CreateAttributeObject.d.ts +19 -0
- package/dist/dataLayer/CreateAttributeObject.js +23 -0
- package/dist/dataLayer/CreateAttributeObject.js.map +1 -0
- package/dist/dataLayer/CreateTableObject.d.ts +7 -0
- package/dist/dataLayer/CreateTableObject.js +10 -0
- package/dist/dataLayer/CreateTableObject.js.map +1 -0
- package/dist/dataLayer/DataLayerObjects.d.ts +22 -0
- package/dist/dataLayer/DataLayerObjects.js +33 -0
- package/dist/dataLayer/DataLayerObjects.js.map +1 -0
- package/dist/dataLayer/DeleteBeforeObject.d.ts +18 -0
- package/dist/dataLayer/DeleteBeforeObject.js +21 -0
- package/dist/dataLayer/DeleteBeforeObject.js.map +1 -0
- package/dist/dataLayer/DeleteObject.d.ts +19 -0
- package/dist/dataLayer/DeleteObject.js +23 -0
- package/dist/dataLayer/DeleteObject.js.map +1 -0
- package/dist/dataLayer/DropAttributeObject.d.ts +7 -0
- package/dist/dataLayer/DropAttributeObject.js +10 -0
- package/dist/dataLayer/DropAttributeObject.js.map +1 -0
- package/dist/dataLayer/GetBackupObject.d.ts +16 -0
- package/dist/dataLayer/GetBackupObject.js +20 -0
- package/dist/dataLayer/GetBackupObject.js.map +1 -0
- package/dist/dataLayer/InsertObject.d.ts +20 -0
- package/dist/dataLayer/InsertObject.js +24 -0
- package/dist/dataLayer/InsertObject.js.map +1 -0
- package/dist/dataLayer/ReadAuditLogObject.d.ts +18 -0
- package/dist/dataLayer/ReadAuditLogObject.js +22 -0
- package/dist/dataLayer/ReadAuditLogObject.js.map +1 -0
- package/dist/dataLayer/SQLSearch.d.ts +171 -0
- package/dist/dataLayer/SQLSearch.js +1168 -0
- package/dist/dataLayer/SQLSearch.js.map +1 -0
- package/dist/dataLayer/SearchByConditionsObject.d.ts +85 -0
- package/dist/dataLayer/SearchByConditionsObject.js +57 -0
- package/dist/dataLayer/SearchByConditionsObject.js.map +1 -0
- package/dist/dataLayer/SearchByHashObject.d.ts +17 -0
- package/dist/dataLayer/SearchByHashObject.js +20 -0
- package/dist/dataLayer/SearchByHashObject.js.map +1 -0
- package/dist/dataLayer/SearchObject.d.ts +30 -0
- package/dist/dataLayer/SearchObject.js +33 -0
- package/dist/dataLayer/SearchObject.js.map +1 -0
- package/dist/dataLayer/SqlSearchObject.d.ts +10 -0
- package/dist/dataLayer/SqlSearchObject.js +13 -0
- package/dist/dataLayer/SqlSearchObject.js.map +1 -0
- package/dist/dataLayer/UpdateObject.d.ts +18 -0
- package/dist/dataLayer/UpdateObject.js +22 -0
- package/dist/dataLayer/UpdateObject.js.map +1 -0
- package/dist/dataLayer/UpsertObject.d.ts +18 -0
- package/dist/dataLayer/UpsertObject.js +22 -0
- package/dist/dataLayer/UpsertObject.js.map +1 -0
- package/dist/dataLayer/bulkLoad.d.ts +28 -0
- package/dist/dataLayer/bulkLoad.js +624 -0
- package/dist/dataLayer/bulkLoad.js.map +1 -0
- package/dist/dataLayer/dataObjects/BulkLoadObjects.d.ts +17 -0
- package/dist/dataLayer/dataObjects/BulkLoadObjects.js +25 -0
- package/dist/dataLayer/dataObjects/BulkLoadObjects.js.map +1 -0
- package/dist/dataLayer/dataObjects/UpsertObject.d.ts +18 -0
- package/dist/dataLayer/dataObjects/UpsertObject.js +22 -0
- package/dist/dataLayer/dataObjects/UpsertObject.js.map +1 -0
- package/dist/dataLayer/delete.d.ts +22 -0
- package/dist/dataLayer/delete.js +111 -0
- package/dist/dataLayer/delete.js.map +1 -0
- package/dist/dataLayer/export.d.ts +15 -0
- package/dist/dataLayer/export.js +302 -0
- package/dist/dataLayer/export.js.map +1 -0
- package/dist/dataLayer/getBackup.d.ts +8 -0
- package/dist/dataLayer/getBackup.js +28 -0
- package/dist/dataLayer/getBackup.js.map +1 -0
- package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +24 -0
- package/dist/dataLayer/harperBridge/BridgeMethods.js +62 -0
- package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +104 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.js +630 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.d.ts +14 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.js +24 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.js.map +1 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +11 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +68 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js.map +1 -0
- package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -0
- package/dist/dataLayer/harperBridge/harperBridge.js +18 -0
- package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/LMDBBridge.d.ts +47 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/LMDBBridge.js +99 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/LMDBBridge.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +15 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +18 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +12 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +74 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +13 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +54 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +23 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +62 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +82 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.d.ts +11 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +76 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +9 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +83 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +73 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +110 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.d.ts +14 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +33 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.d.ts +7 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +110 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +21 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.d.ts +14 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +25 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.d.ts +7 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +180 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +134 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +14 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +15 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +26 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.js +17 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.d.ts +12 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +52 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +15 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +56 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +16 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +20 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.d.ts +16 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.js +22 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.d.ts +16 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.js +21 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.d.ts +19 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.js +22 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.d.ts +18 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.js +23 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.d.ts +18 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.js +23 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.d.ts +21 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +24 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.d.ts +7 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +19 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.d.ts +22 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +137 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.d.ts +9 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +73 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +38 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +29 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +17 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +63 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.d.ts +106 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +251 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +66 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js.map +1 -0
- package/dist/dataLayer/hdbInfoController.d.ts +28 -0
- package/dist/dataLayer/hdbInfoController.js +203 -0
- package/dist/dataLayer/hdbInfoController.js.map +1 -0
- package/dist/dataLayer/insert.d.ts +44 -0
- package/dist/dataLayer/insert.js +192 -0
- package/dist/dataLayer/insert.js.map +1 -0
- package/dist/dataLayer/readAuditLog.d.ts +8 -0
- package/dist/dataLayer/readAuditLog.js +37 -0
- package/dist/dataLayer/readAuditLog.js.map +1 -0
- package/dist/dataLayer/schema.d.ts +24 -0
- package/dist/dataLayer/schema.js +225 -0
- package/dist/dataLayer/schema.js.map +1 -0
- package/dist/dataLayer/schemaDescribe.d.ts +26 -0
- package/dist/dataLayer/schemaDescribe.js +265 -0
- package/dist/dataLayer/schemaDescribe.js.map +1 -0
- package/dist/dataLayer/search.d.ts +4 -0
- package/dist/dataLayer/search.js +56 -0
- package/dist/dataLayer/search.js.map +1 -0
- package/dist/dataLayer/transaction.d.ts +8 -0
- package/dist/dataLayer/transaction.js +16 -0
- package/dist/dataLayer/transaction.js.map +1 -0
- package/dist/dataLayer/update.d.ts +15 -0
- package/dist/dataLayer/update.js +107 -0
- package/dist/dataLayer/update.js.map +1 -0
- package/dist/globals.d.ts +7 -0
- package/dist/globals.js +12 -0
- package/dist/globals.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/json/systemSchema.json +373 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.d.ts +4 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js +13 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -0
- package/dist/resources/DatabaseTransaction.d.ts +96 -0
- package/dist/resources/DatabaseTransaction.js +354 -0
- package/dist/resources/DatabaseTransaction.js.map +1 -0
- package/dist/resources/ErrorResource.d.ts +26 -0
- package/dist/resources/ErrorResource.js +60 -0
- package/dist/resources/ErrorResource.js.map +1 -0
- package/dist/resources/IterableEventQueue.d.ts +19 -0
- package/dist/resources/IterableEventQueue.js +103 -0
- package/dist/resources/IterableEventQueue.js.map +1 -0
- package/dist/resources/LMDBTransaction.d.ts +43 -0
- package/dist/resources/LMDBTransaction.js +371 -0
- package/dist/resources/LMDBTransaction.js.map +1 -0
- package/dist/resources/RecordEncoder.d.ts +65 -0
- package/dist/resources/RecordEncoder.js +700 -0
- package/dist/resources/RecordEncoder.js.map +1 -0
- package/dist/resources/RequestTarget.d.ts +57 -0
- package/dist/resources/RequestTarget.js +91 -0
- package/dist/resources/RequestTarget.js.map +1 -0
- package/dist/resources/Resource.d.ts +152 -0
- package/dist/resources/Resource.js +727 -0
- package/dist/resources/Resource.js.map +1 -0
- package/dist/resources/ResourceInterface.d.ts +162 -0
- package/dist/resources/ResourceInterface.js +3 -0
- package/dist/resources/ResourceInterface.js.map +1 -0
- package/dist/resources/ResourceInterfaceV2.d.ts +21 -0
- package/dist/resources/ResourceInterfaceV2.js +3 -0
- package/dist/resources/ResourceInterfaceV2.js.map +1 -0
- package/dist/resources/ResourceV2.d.ts +30 -0
- package/dist/resources/ResourceV2.js +27 -0
- package/dist/resources/ResourceV2.js.map +1 -0
- package/dist/resources/Resources.d.ts +36 -0
- package/dist/resources/Resources.js +155 -0
- package/dist/resources/Resources.js.map +1 -0
- package/dist/resources/RocksIndexStore.d.ts +24 -0
- package/dist/resources/RocksIndexStore.js +54 -0
- package/dist/resources/RocksIndexStore.js.map +1 -0
- package/dist/resources/RocksTransactionLogStore.d.ts +60 -0
- package/dist/resources/RocksTransactionLogStore.js +344 -0
- package/dist/resources/RocksTransactionLogStore.js.map +1 -0
- package/dist/resources/Table.d.ts +854 -0
- package/dist/resources/Table.js +4350 -0
- package/dist/resources/Table.js.map +1 -0
- package/dist/resources/analytics/hostnames.d.ts +16 -0
- package/dist/resources/analytics/hostnames.js +72 -0
- package/dist/resources/analytics/hostnames.js.map +1 -0
- package/dist/resources/analytics/metadata.d.ts +9 -0
- package/dist/resources/analytics/metadata.js +12 -0
- package/dist/resources/analytics/metadata.js.map +1 -0
- package/dist/resources/analytics/profile.d.ts +2 -0
- package/dist/resources/analytics/profile.js +144 -0
- package/dist/resources/analytics/profile.js.map +1 -0
- package/dist/resources/analytics/read.d.ts +41 -0
- package/dist/resources/analytics/read.js +189 -0
- package/dist/resources/analytics/read.js.map +1 -0
- package/dist/resources/analytics/write.d.ts +131 -0
- package/dist/resources/analytics/write.js +822 -0
- package/dist/resources/analytics/write.js.map +1 -0
- package/dist/resources/auditStore.d.ts +81 -0
- package/dist/resources/auditStore.js +572 -0
- package/dist/resources/auditStore.js.map +1 -0
- package/dist/resources/blob.d.ts +137 -0
- package/dist/resources/blob.js +1273 -0
- package/dist/resources/blob.js.map +1 -0
- package/dist/resources/crdt.d.ts +19 -0
- package/dist/resources/crdt.js +146 -0
- package/dist/resources/crdt.js.map +1 -0
- package/dist/resources/dataLoader.d.ts +98 -0
- package/dist/resources/dataLoader.js +461 -0
- package/dist/resources/dataLoader.js.map +1 -0
- package/dist/resources/databases.d.ts +131 -0
- package/dist/resources/databases.js +1220 -0
- package/dist/resources/databases.js.map +1 -0
- package/dist/resources/graphql.d.ts +19 -0
- package/dist/resources/graphql.js +223 -0
- package/dist/resources/graphql.js.map +1 -0
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +87 -0
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +598 -0
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -0
- package/dist/resources/indexes/customIndexes.d.ts +4 -0
- package/dist/resources/indexes/customIndexes.js +10 -0
- package/dist/resources/indexes/customIndexes.js.map +1 -0
- package/dist/resources/indexes/vector.d.ts +2 -0
- package/dist/resources/indexes/vector.js +40 -0
- package/dist/resources/indexes/vector.js.map +1 -0
- package/dist/resources/jsResource.d.ts +24 -0
- package/dist/resources/jsResource.js +82 -0
- package/dist/resources/jsResource.js.map +1 -0
- package/dist/resources/loadEnv.d.ts +5 -0
- package/dist/resources/loadEnv.js +28 -0
- package/dist/resources/loadEnv.js.map +1 -0
- package/dist/resources/login.d.ts +3 -0
- package/dist/resources/login.js +22 -0
- package/dist/resources/login.js.map +1 -0
- package/dist/resources/openApi.d.ts +27 -0
- package/dist/resources/openApi.js +327 -0
- package/dist/resources/openApi.js.map +1 -0
- package/dist/resources/registrationDeprecated.d.ts +4 -0
- package/dist/resources/registrationDeprecated.js +11 -0
- package/dist/resources/registrationDeprecated.js.map +1 -0
- package/dist/resources/replayLogs.d.ts +2 -0
- package/dist/resources/replayLogs.js +170 -0
- package/dist/resources/replayLogs.js.map +1 -0
- package/dist/resources/roles.d.ts +11 -0
- package/dist/resources/roles.js +102 -0
- package/dist/resources/roles.js.map +1 -0
- package/dist/resources/search.d.ts +39 -0
- package/dist/resources/search.js +1333 -0
- package/dist/resources/search.js.map +1 -0
- package/dist/resources/tracked.d.ts +49 -0
- package/dist/resources/tracked.js +665 -0
- package/dist/resources/tracked.js.map +1 -0
- package/dist/resources/transaction.d.ts +9 -0
- package/dist/resources/transaction.js +89 -0
- package/dist/resources/transaction.js.map +1 -0
- package/dist/resources/transactionBroadcast.d.ts +38 -0
- package/dist/resources/transactionBroadcast.js +263 -0
- package/dist/resources/transactionBroadcast.js.map +1 -0
- package/dist/security/auth.d.ts +9 -0
- package/dist/security/auth.js +408 -0
- package/dist/security/auth.js.map +1 -0
- package/dist/security/certificateVerification/certificateVerificationSource.d.ts +18 -0
- package/dist/security/certificateVerification/certificateVerificationSource.js +78 -0
- package/dist/security/certificateVerification/certificateVerificationSource.js.map +1 -0
- package/dist/security/certificateVerification/configValidation.d.ts +14 -0
- package/dist/security/certificateVerification/configValidation.js +101 -0
- package/dist/security/certificateVerification/configValidation.js.map +1 -0
- package/dist/security/certificateVerification/crlVerification.d.ts +29 -0
- package/dist/security/certificateVerification/crlVerification.js +564 -0
- package/dist/security/certificateVerification/crlVerification.js.map +1 -0
- package/dist/security/certificateVerification/index.d.ts +31 -0
- package/dist/security/certificateVerification/index.js +111 -0
- package/dist/security/certificateVerification/index.js.map +1 -0
- package/dist/security/certificateVerification/ocspVerification.d.ts +23 -0
- package/dist/security/certificateVerification/ocspVerification.js +117 -0
- package/dist/security/certificateVerification/ocspVerification.js.map +1 -0
- package/dist/security/certificateVerification/pkijs-ed25519-patch.d.ts +14 -0
- package/dist/security/certificateVerification/pkijs-ed25519-patch.js +183 -0
- package/dist/security/certificateVerification/pkijs-ed25519-patch.js.map +1 -0
- package/dist/security/certificateVerification/types.d.ts +105 -0
- package/dist/security/certificateVerification/types.js +6 -0
- package/dist/security/certificateVerification/types.js.map +1 -0
- package/dist/security/certificateVerification/verificationConfig.d.ts +29 -0
- package/dist/security/certificateVerification/verificationConfig.js +121 -0
- package/dist/security/certificateVerification/verificationConfig.js.map +1 -0
- package/dist/security/certificateVerification/verificationUtils.d.ts +79 -0
- package/dist/security/certificateVerification/verificationUtils.js +441 -0
- package/dist/security/certificateVerification/verificationUtils.js.map +1 -0
- package/dist/security/cryptoHash.d.ts +2 -0
- package/dist/security/cryptoHash.js +35 -0
- package/dist/security/cryptoHash.js.map +1 -0
- package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +11 -0
- package/dist/security/data_objects/PermissionAttributeResponseObject.js +14 -0
- package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -0
- package/dist/security/data_objects/PermissionResponseObject.d.ts +57 -0
- package/dist/security/data_objects/PermissionResponseObject.js +105 -0
- package/dist/security/data_objects/PermissionResponseObject.js.map +1 -0
- package/dist/security/data_objects/PermissionTableResponseObject.d.ts +16 -0
- package/dist/security/data_objects/PermissionTableResponseObject.js +19 -0
- package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -0
- package/dist/security/fastifyAuth.d.ts +2 -0
- package/dist/security/fastifyAuth.js +135 -0
- package/dist/security/fastifyAuth.js.map +1 -0
- package/dist/security/impersonation.d.ts +11 -0
- package/dist/security/impersonation.js +139 -0
- package/dist/security/impersonation.js.map +1 -0
- package/dist/security/jsLoader.d.ts +9 -0
- package/dist/security/jsLoader.js +522 -0
- package/dist/security/jsLoader.js.map +1 -0
- package/dist/security/keys.d.ts +119 -0
- package/dist/security/keys.js +866 -0
- package/dist/security/keys.js.map +1 -0
- package/dist/security/permissionsTranslator.d.ts +9 -0
- package/dist/security/permissionsTranslator.js +269 -0
- package/dist/security/permissionsTranslator.js.map +1 -0
- package/dist/security/role.d.ts +5 -0
- package/dist/security/role.js +160 -0
- package/dist/security/role.js.map +1 -0
- package/dist/security/tokenAuthentication.d.ts +38 -0
- package/dist/security/tokenAuthentication.js +205 -0
- package/dist/security/tokenAuthentication.js.map +1 -0
- package/dist/security/user.d.ts +77 -0
- package/dist/security/user.js +349 -0
- package/dist/security/user.js.map +1 -0
- package/dist/server/DurableSubscriptionsSession.d.ts +74 -0
- package/dist/server/DurableSubscriptionsSession.js +511 -0
- package/dist/server/DurableSubscriptionsSession.js.map +1 -0
- package/dist/server/REST.d.ts +16 -0
- package/dist/server/REST.js +423 -0
- package/dist/server/REST.js.map +1 -0
- package/dist/server/Server.d.ts +62 -0
- package/dist/server/Server.js +27 -0
- package/dist/server/Server.js.map +1 -0
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.d.ts +11 -0
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +32 -0
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.js.map +1 -0
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.d.ts +6 -0
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +13 -0
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js.map +1 -0
- package/dist/server/fastifyRoutes/helpers/getServerOptions.d.ts +12 -0
- package/dist/server/fastifyRoutes/helpers/getServerOptions.js +30 -0
- package/dist/server/fastifyRoutes/helpers/getServerOptions.js.map +1 -0
- package/dist/server/fastifyRoutes/plugins/hdbCore.d.ts +2 -0
- package/dist/server/fastifyRoutes/plugins/hdbCore.js +31 -0
- package/dist/server/fastifyRoutes/plugins/hdbCore.js.map +1 -0
- package/dist/server/fastifyRoutes.d.ts +25 -0
- package/dist/server/fastifyRoutes.js +235 -0
- package/dist/server/fastifyRoutes.js.map +1 -0
- package/dist/server/graphqlQuerying.d.ts +1 -0
- package/dist/server/graphqlQuerying.js +630 -0
- package/dist/server/graphqlQuerying.js.map +1 -0
- package/dist/server/http.d.ts +15 -0
- package/dist/server/http.js +650 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server/itc/serverHandlers.d.ts +10 -0
- package/dist/server/itc/serverHandlers.js +153 -0
- package/dist/server/itc/serverHandlers.js.map +1 -0
- package/dist/server/itc/utility/ITCEventObject.d.ts +6 -0
- package/dist/server/itc/utility/ITCEventObject.js +9 -0
- package/dist/server/itc/utility/ITCEventObject.js.map +1 -0
- package/dist/server/jobs/JobObject.d.ts +15 -0
- package/dist/server/jobs/JobObject.js +22 -0
- package/dist/server/jobs/JobObject.js.map +1 -0
- package/dist/server/jobs/jobProcess.d.ts +1 -0
- package/dist/server/jobs/jobProcess.js +66 -0
- package/dist/server/jobs/jobProcess.js.map +1 -0
- package/dist/server/jobs/jobRunner.d.ts +11 -0
- package/dist/server/jobs/jobRunner.js +160 -0
- package/dist/server/jobs/jobRunner.js.map +1 -0
- package/dist/server/jobs/jobs.d.ts +20 -0
- package/dist/server/jobs/jobs.js +267 -0
- package/dist/server/jobs/jobs.js.map +1 -0
- package/dist/server/loadRootComponents.d.ts +5 -0
- package/dist/server/loadRootComponents.js +45 -0
- package/dist/server/loadRootComponents.js.map +1 -0
- package/dist/server/mqtt.d.ts +9 -0
- package/dist/server/mqtt.js +466 -0
- package/dist/server/mqtt.js.map +1 -0
- package/dist/server/nodeName.d.ts +5 -0
- package/dist/server/nodeName.js +84 -0
- package/dist/server/nodeName.js.map +1 -0
- package/dist/server/operationsServer.d.ts +48 -0
- package/dist/server/operationsServer.js +265 -0
- package/dist/server/operationsServer.js.map +1 -0
- package/dist/server/serverHelpers/Headers.d.ts +20 -0
- package/dist/server/serverHelpers/Headers.js +134 -0
- package/dist/server/serverHelpers/Headers.js.map +1 -0
- package/dist/server/serverHelpers/JSONStream.d.ts +14 -0
- package/dist/server/serverHelpers/JSONStream.js +322 -0
- package/dist/server/serverHelpers/JSONStream.js.map +1 -0
- package/dist/server/serverHelpers/OperationFunctionObject.d.ts +9 -0
- package/dist/server/serverHelpers/OperationFunctionObject.js +17 -0
- package/dist/server/serverHelpers/OperationFunctionObject.js.map +1 -0
- package/dist/server/serverHelpers/Request.d.ts +69 -0
- package/dist/server/serverHelpers/Request.js +141 -0
- package/dist/server/serverHelpers/Request.js.map +1 -0
- package/dist/server/serverHelpers/contentTypes.d.ts +57 -0
- package/dist/server/serverHelpers/contentTypes.js +639 -0
- package/dist/server/serverHelpers/contentTypes.js.map +1 -0
- package/dist/server/serverHelpers/requestTimePlugin.d.ts +2 -0
- package/dist/server/serverHelpers/requestTimePlugin.js +56 -0
- package/dist/server/serverHelpers/requestTimePlugin.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.d.ts +6 -0
- package/dist/server/serverHelpers/serverHandlers.js +130 -0
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -0
- package/dist/server/serverHelpers/serverUtilities.d.ts +29 -0
- package/dist/server/serverHelpers/serverUtilities.js +356 -0
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -0
- package/dist/server/serverRegistry.d.ts +3 -0
- package/dist/server/serverRegistry.js +11 -0
- package/dist/server/serverRegistry.js.map +1 -0
- package/dist/server/static.d.ts +16 -0
- package/dist/server/static.js +164 -0
- package/dist/server/static.js.map +1 -0
- package/dist/server/status/definitions.d.ts +27 -0
- package/dist/server/status/definitions.js +22 -0
- package/dist/server/status/definitions.js.map +1 -0
- package/dist/server/status/index.d.ts +26 -0
- package/dist/server/status/index.js +89 -0
- package/dist/server/status/index.js.map +1 -0
- package/dist/server/storageReclamation.d.ts +18 -0
- package/dist/server/storageReclamation.js +96 -0
- package/dist/server/storageReclamation.js.map +1 -0
- package/dist/server/threads/itc.d.ts +53 -0
- package/dist/server/threads/itc.js +81 -0
- package/dist/server/threads/itc.js.map +1 -0
- package/dist/server/threads/manageThreads.d.ts +30 -0
- package/dist/server/threads/manageThreads.js +579 -0
- package/dist/server/threads/manageThreads.js.map +1 -0
- package/dist/server/threads/socketRouter.d.ts +6 -0
- package/dist/server/threads/socketRouter.js +395 -0
- package/dist/server/threads/socketRouter.js.map +1 -0
- package/dist/server/threads/threadServer.d.ts +5 -0
- package/dist/server/threads/threadServer.js +288 -0
- package/dist/server/threads/threadServer.js.map +1 -0
- package/dist/server/throttle.d.ts +7 -0
- package/dist/server/throttle.js +71 -0
- package/dist/server/throttle.js.map +1 -0
- package/dist/sqlTranslator/SelectValidator.d.ts +79 -0
- package/dist/sqlTranslator/SelectValidator.js +274 -0
- package/dist/sqlTranslator/SelectValidator.js.map +1 -0
- package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +2 -0
- package/dist/sqlTranslator/alasqlFunctionImporter.js +55 -0
- package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -0
- package/dist/sqlTranslator/deleteTranslator.d.ts +2 -0
- package/dist/sqlTranslator/deleteTranslator.js +56 -0
- package/dist/sqlTranslator/deleteTranslator.js.map +1 -0
- package/dist/sqlTranslator/index.d.ts +16 -0
- package/dist/sqlTranslator/index.js +215 -0
- package/dist/sqlTranslator/index.js.map +1 -0
- package/dist/sqlTranslator/sql_statement_bucket.d.ts +46 -0
- package/dist/sqlTranslator/sql_statement_bucket.js +430 -0
- package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -0
- package/dist/upgrade/UpgradeObjects.d.ts +5 -0
- package/dist/upgrade/UpgradeObjects.js +12 -0
- package/dist/upgrade/UpgradeObjects.js.map +1 -0
- package/dist/upgrade/directives/directivesController.d.ts +30 -0
- package/dist/upgrade/directives/directivesController.js +76 -0
- package/dist/upgrade/directives/directivesController.js.map +1 -0
- package/dist/upgrade/directivesManager.d.ts +7 -0
- package/dist/upgrade/directivesManager.js +125 -0
- package/dist/upgrade/directivesManager.js.map +1 -0
- package/dist/upgrade/upgradePrompt.d.ts +13 -0
- package/dist/upgrade/upgradePrompt.js +102 -0
- package/dist/upgrade/upgradePrompt.js.map +1 -0
- package/dist/upgrade/upgradeUtilities.d.ts +10 -0
- package/dist/upgrade/upgradeUtilities.js +26 -0
- package/dist/upgrade/upgradeUtilities.js.map +1 -0
- package/dist/utility/AWS/AWSConnector.d.ts +2 -0
- package/dist/utility/AWS/AWSConnector.js +26 -0
- package/dist/utility/AWS/AWSConnector.js.map +1 -0
- package/dist/utility/OperationFunctionCaller.d.ts +9 -0
- package/dist/utility/OperationFunctionCaller.js +58 -0
- package/dist/utility/OperationFunctionCaller.js.map +1 -0
- package/dist/utility/assignCmdEnvVariables.d.ts +10 -0
- package/dist/utility/assignCmdEnvVariables.js +55 -0
- package/dist/utility/assignCmdEnvVariables.js.map +1 -0
- package/dist/utility/common_utils.d.ts +264 -0
- package/dist/utility/common_utils.js +806 -0
- package/dist/utility/common_utils.js.map +1 -0
- package/dist/utility/environment/environmentManager.d.ts +41 -0
- package/dist/utility/environment/environmentManager.js +179 -0
- package/dist/utility/environment/environmentManager.js.map +1 -0
- package/dist/utility/environment/systemInformation.d.ts +67 -0
- package/dist/utility/environment/systemInformation.js +326 -0
- package/dist/utility/environment/systemInformation.js.map +1 -0
- package/dist/utility/errors/commonErrors.d.ts +171 -0
- package/dist/utility/errors/commonErrors.js +230 -0
- package/dist/utility/errors/commonErrors.js.map +1 -0
- package/dist/utility/errors/hdbError.d.ts +76 -0
- package/dist/utility/errors/hdbError.js +128 -0
- package/dist/utility/errors/hdbError.js.map +1 -0
- package/dist/utility/functions/date/dateFunctions.d.ts +11 -0
- package/dist/utility/functions/date/dateFunctions.js +64 -0
- package/dist/utility/functions/date/dateFunctions.js.map +1 -0
- package/dist/utility/functions/geo.d.ts +74 -0
- package/dist/utility/functions/geo.js +311 -0
- package/dist/utility/functions/geo.js.map +1 -0
- package/dist/utility/functions/sql/alaSQLExtension.d.ts +13 -0
- package/dist/utility/functions/sql/alaSQLExtension.js +96 -0
- package/dist/utility/functions/sql/alaSQLExtension.js.map +1 -0
- package/dist/utility/globalSchema.d.ts +151 -0
- package/dist/utility/globalSchema.js +34 -0
- package/dist/utility/globalSchema.js.map +1 -0
- package/dist/utility/hdbTerms.d.ts +737 -0
- package/dist/utility/hdbTerms.js +756 -0
- package/dist/utility/hdbTerms.js.map +1 -0
- package/dist/utility/install/checkJWTTokensExist.d.ts +5 -0
- package/dist/utility/install/checkJWTTokensExist.js +53 -0
- package/dist/utility/install/checkJWTTokensExist.js.map +1 -0
- package/dist/utility/install/installer.d.ts +17 -0
- package/dist/utility/install/installer.js +569 -0
- package/dist/utility/install/installer.js.map +1 -0
- package/dist/utility/installation.d.ts +12 -0
- package/dist/utility/installation.js +64 -0
- package/dist/utility/installation.js.map +1 -0
- package/dist/utility/lmdb/DBIDefinition.d.ts +16 -0
- package/dist/utility/lmdb/DBIDefinition.js +19 -0
- package/dist/utility/lmdb/DBIDefinition.js.map +1 -0
- package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +21 -0
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js +24 -0
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -0
- package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +18 -0
- package/dist/utility/lmdb/InsertRecordsResponseObject.js +21 -0
- package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -0
- package/dist/utility/lmdb/OpenDBIObject.d.ts +23 -0
- package/dist/utility/lmdb/OpenDBIObject.js +29 -0
- package/dist/utility/lmdb/OpenDBIObject.js.map +1 -0
- package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +22 -0
- package/dist/utility/lmdb/OpenEnvironmentObject.js +40 -0
- package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -0
- package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +21 -0
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js +24 -0
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -0
- package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +18 -0
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js +21 -0
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -0
- package/dist/utility/lmdb/cleanLMDBMap.d.ts +6 -0
- package/dist/utility/lmdb/cleanLMDBMap.js +63 -0
- package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -0
- package/dist/utility/lmdb/commonUtility.d.ts +28 -0
- package/dist/utility/lmdb/commonUtility.js +120 -0
- package/dist/utility/lmdb/commonUtility.js.map +1 -0
- package/dist/utility/lmdb/deleteUtility.d.ts +10 -0
- package/dist/utility/lmdb/deleteUtility.js +115 -0
- package/dist/utility/lmdb/deleteUtility.js.map +1 -0
- package/dist/utility/lmdb/environmentUtility.d.ts +81 -0
- package/dist/utility/lmdb/environmentUtility.js +432 -0
- package/dist/utility/lmdb/environmentUtility.js.map +1 -0
- package/dist/utility/lmdb/searchCursorFunctions.d.ts +93 -0
- package/dist/utility/lmdb/searchCursorFunctions.js +174 -0
- package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -0
- package/dist/utility/lmdb/searchUtility.d.ts +204 -0
- package/dist/utility/lmdb/searchUtility.js +724 -0
- package/dist/utility/lmdb/searchUtility.js.map +1 -0
- package/dist/utility/lmdb/terms.d.ts +34 -0
- package/dist/utility/lmdb/terms.js +52 -0
- package/dist/utility/lmdb/terms.js.map +1 -0
- package/dist/utility/lmdb/writeUtility.d.ts +32 -0
- package/dist/utility/lmdb/writeUtility.js +360 -0
- package/dist/utility/lmdb/writeUtility.js.map +1 -0
- package/dist/utility/logging/harper_logger.d.ts +141 -0
- package/dist/utility/logging/harper_logger.js +862 -0
- package/dist/utility/logging/harper_logger.js.map +1 -0
- package/dist/utility/logging/logRotator.d.ts +19 -0
- package/dist/utility/logging/logRotator.js +146 -0
- package/dist/utility/logging/logRotator.js.map +1 -0
- package/dist/utility/logging/logger.d.ts +11 -0
- package/dist/utility/logging/logger.js +19 -0
- package/dist/utility/logging/logger.js.map +1 -0
- package/dist/utility/logging/readLog.d.ts +8 -0
- package/dist/utility/logging/readLog.js +339 -0
- package/dist/utility/logging/readLog.js.map +1 -0
- package/dist/utility/logging/transactionLog.d.ts +8 -0
- package/dist/utility/logging/transactionLog.js +46 -0
- package/dist/utility/logging/transactionLog.js.map +1 -0
- package/dist/utility/mount_hdb.d.ts +2 -0
- package/dist/utility/mount_hdb.js +51 -0
- package/dist/utility/mount_hdb.js.map +1 -0
- package/dist/utility/npmUtilities.d.ts +6 -0
- package/dist/utility/npmUtilities.js +91 -0
- package/dist/utility/npmUtilities.js.map +1 -0
- package/dist/utility/operationPermissions.d.ts +36 -0
- package/dist/utility/operationPermissions.js +116 -0
- package/dist/utility/operationPermissions.js.map +1 -0
- package/dist/utility/operation_authorization.d.ts +18 -0
- package/dist/utility/operation_authorization.js +667 -0
- package/dist/utility/operation_authorization.js.map +1 -0
- package/dist/utility/packageUtils.d.ts +9 -0
- package/dist/utility/packageUtils.js +52 -0
- package/dist/utility/packageUtils.js.map +1 -0
- package/dist/utility/password.d.ts +20 -0
- package/dist/utility/password.js +119 -0
- package/dist/utility/password.js.map +1 -0
- package/dist/utility/processManagement/processManagement.d.ts +35 -0
- package/dist/utility/processManagement/processManagement.js +188 -0
- package/dist/utility/processManagement/processManagement.js.map +1 -0
- package/dist/utility/processManagement/servicesConfig.d.ts +29 -0
- package/dist/utility/processManagement/servicesConfig.js +52 -0
- package/dist/utility/processManagement/servicesConfig.js.map +1 -0
- package/dist/utility/scripts/restartHdb.d.ts +1 -0
- package/dist/utility/scripts/restartHdb.js +23 -0
- package/dist/utility/scripts/restartHdb.js.map +1 -0
- package/dist/utility/signalling.d.ts +2 -0
- package/dist/utility/signalling.js +35 -0
- package/dist/utility/signalling.js.map +1 -0
- package/dist/utility/terms/certificates.d.ts +46 -0
- package/dist/utility/terms/certificates.js +65 -0
- package/dist/utility/terms/certificates.js.map +1 -0
- package/dist/utility/when.d.ts +3 -0
- package/dist/utility/when.js +18 -0
- package/dist/utility/when.js.map +1 -0
- package/dist/validation/bulkDeleteValidator.d.ts +2 -0
- package/dist/validation/bulkDeleteValidator.js +21 -0
- package/dist/validation/bulkDeleteValidator.js.map +1 -0
- package/dist/validation/check_permissions.d.ts +2 -0
- package/dist/validation/check_permissions.js +20 -0
- package/dist/validation/check_permissions.js.map +1 -0
- package/dist/validation/common_validators.d.ts +19 -0
- package/dist/validation/common_validators.js +76 -0
- package/dist/validation/common_validators.js.map +1 -0
- package/dist/validation/configValidator.d.ts +8 -0
- package/dist/validation/configValidator.js +292 -0
- package/dist/validation/configValidator.js.map +1 -0
- package/dist/validation/deleteValidator.d.ts +2 -0
- package/dist/validation/deleteValidator.js +15 -0
- package/dist/validation/deleteValidator.js.map +1 -0
- package/dist/validation/fileLoadValidator.d.ts +4 -0
- package/dist/validation/fileLoadValidator.js +138 -0
- package/dist/validation/fileLoadValidator.js.map +1 -0
- package/dist/validation/insertValidator.d.ts +2 -0
- package/dist/validation/insertValidator.js +38 -0
- package/dist/validation/insertValidator.js.map +1 -0
- package/dist/validation/installValidator.d.ts +7 -0
- package/dist/validation/installValidator.js +28 -0
- package/dist/validation/installValidator.js.map +1 -0
- package/dist/validation/readLogValidator.d.ts +2 -0
- package/dist/validation/readLogValidator.js +48 -0
- package/dist/validation/readLogValidator.js.map +1 -0
- package/dist/validation/role_validation.d.ts +3 -0
- package/dist/validation/role_validation.js +284 -0
- package/dist/validation/role_validation.js.map +1 -0
- package/dist/validation/schemaMetadataValidator.d.ts +16 -0
- package/dist/validation/schemaMetadataValidator.js +38 -0
- package/dist/validation/schemaMetadataValidator.js.map +1 -0
- package/dist/validation/searchValidator.d.ts +2 -0
- package/dist/validation/searchValidator.js +141 -0
- package/dist/validation/searchValidator.js.map +1 -0
- package/dist/validation/statusValidator.d.ts +19 -0
- package/dist/validation/statusValidator.js +95 -0
- package/dist/validation/statusValidator.js.map +1 -0
- package/dist/validation/transactionLogValidator.d.ts +2 -0
- package/dist/validation/transactionLogValidator.js +28 -0
- package/dist/validation/transactionLogValidator.js.map +1 -0
- package/dist/validation/user_validation.d.ts +3 -0
- package/dist/validation/user_validation.js +52 -0
- package/dist/validation/user_validation.js.map +1 -0
- package/dist/validation/validationWrapper.d.ts +15 -0
- package/dist/validation/validationWrapper.js +95 -0
- package/dist/validation/validationWrapper.js.map +1 -0
- package/package.json +225 -0
- package/static/README.md +13 -0
- package/static/ascii_logo.txt +21 -0
- package/static/defaultConfig.yaml +75 -0
|
@@ -0,0 +1,630 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.start = start;
|
|
40
|
+
const graphql = __importStar(require("graphql"));
|
|
41
|
+
const contentTypes_ts_1 = require("./serverHelpers/contentTypes.js");
|
|
42
|
+
const Resources_ts_1 = require("../resources/Resources.js");
|
|
43
|
+
const harper_logger_js_1 = __importDefault(require("../utility/logging/harper_logger.js"));
|
|
44
|
+
// This code makes heavy use of the word "node" to refer to a node in the GraphQL AST.
|
|
45
|
+
/**
|
|
46
|
+
* Assert a given node is an executable definition node.
|
|
47
|
+
*/
|
|
48
|
+
function assertExecutableDefinitionNode(definitionNode) {
|
|
49
|
+
if (definitionNode.kind !== graphql.Kind.OPERATION_DEFINITION &&
|
|
50
|
+
definitionNode.kind !== graphql.Kind.FRAGMENT_DEFINITION) {
|
|
51
|
+
throw new GraphQLQueryingError(`Unexpected non-executable definition type ${definitionNode.kind}.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Asserts that the given data is a valid request body.
|
|
56
|
+
*/
|
|
57
|
+
function assertRequestParams(data) {
|
|
58
|
+
if (typeof data !== 'object' || data === null) {
|
|
59
|
+
throw new HTTPError('Request body must be an object.');
|
|
60
|
+
}
|
|
61
|
+
if (!('query' in data)) {
|
|
62
|
+
throw new HTTPError('Request body must contain a `query` field.');
|
|
63
|
+
}
|
|
64
|
+
if (typeof data.query !== 'string') {
|
|
65
|
+
throw new HTTPError('Request body `query` field must be a string.');
|
|
66
|
+
}
|
|
67
|
+
if ('variables' in data && (typeof data.variables !== 'object' || data.variables === null)) {
|
|
68
|
+
throw new HTTPError('Request body `variables` field must be an object.');
|
|
69
|
+
}
|
|
70
|
+
if ('operationName' in data && typeof data.operationName !== 'string') {
|
|
71
|
+
throw new HTTPError('Request body `operationName` field must be a string.');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Transforms a GraphQL IntValueNode into a JavaScript number.
|
|
76
|
+
*/
|
|
77
|
+
function processIntValueNode(valueNode) {
|
|
78
|
+
return parseInt(valueNode.value, 10);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Transforms a GraphQL FloatValueNode into a JavaScript number.
|
|
82
|
+
*/
|
|
83
|
+
function processFloatValueNode(valueNode) {
|
|
84
|
+
return parseFloat(valueNode.value);
|
|
85
|
+
}
|
|
86
|
+
// NOTE: `processValueNode` and `processConstValueNode` are very similar and could probably be merged, but it makes TypeScript unhappy and they are simple enough to keep separate.
|
|
87
|
+
/**
|
|
88
|
+
* NOTE: This function is not used since we removed support for lists. It may be useful in the future.
|
|
89
|
+
*
|
|
90
|
+
* While very similar to `processConstValueNode`, this function can handle variables as well.
|
|
91
|
+
* It is responsible for converting a value node into a JavaScript value.
|
|
92
|
+
* - Objects should not be flattened (nested structures should be preserved).
|
|
93
|
+
* - Lists and Enum values are not supported.
|
|
94
|
+
* - Null values are returned as JavaScript `null`.
|
|
95
|
+
* - Strings and Booleans are returned as is.
|
|
96
|
+
* - Numbers are parsed by their relevant JavaScript parsers (`parseInt` and `parseFloat`).
|
|
97
|
+
*/
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
99
|
+
function processValueNode(valueNode, resolvedVariables) {
|
|
100
|
+
switch (valueNode.kind) {
|
|
101
|
+
case graphql.Kind.NULL:
|
|
102
|
+
return null;
|
|
103
|
+
case graphql.Kind.INT:
|
|
104
|
+
return processIntValueNode(valueNode);
|
|
105
|
+
case graphql.Kind.FLOAT:
|
|
106
|
+
return processFloatValueNode(valueNode);
|
|
107
|
+
case graphql.Kind.BOOLEAN:
|
|
108
|
+
case graphql.Kind.STRING:
|
|
109
|
+
return valueNode.value;
|
|
110
|
+
case graphql.Kind.VARIABLE:
|
|
111
|
+
return resolvedVariables.get(valueNode.name.value).toString();
|
|
112
|
+
case graphql.Kind.OBJECT:
|
|
113
|
+
return valueNode.fields.reduce((acc, field) => ({ [field.name.value]: processValueNode(field.value, resolvedVariables), ...acc }), {});
|
|
114
|
+
case graphql.Kind.LIST:
|
|
115
|
+
// No longer supporting lists as values, as they are not supported by Harper.
|
|
116
|
+
// return valueNode.values.map((valueNode) => processValueNode(valueNode, resolvedVariables));
|
|
117
|
+
// eslint-disable-next-line no-fallthrough
|
|
118
|
+
case graphql.Kind.ENUM:
|
|
119
|
+
default:
|
|
120
|
+
throw new GraphQLQueryingError(`Value type, ${valueNode.kind}, is not supported.`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Process a variable node into an attribute query.
|
|
125
|
+
* - If the variable is an object, it will be transformed into a series of conditions.
|
|
126
|
+
* - If the variable is a single value, it will be returned as an attribute and value pair.
|
|
127
|
+
*/
|
|
128
|
+
function processVariableNode(variableNode, attributeName, resolvedVariables) {
|
|
129
|
+
const value = resolvedVariables.get(variableNode.name.value);
|
|
130
|
+
return isObject(value)
|
|
131
|
+
? transformObjectIntoQueryCondition(value, attributeName)
|
|
132
|
+
: { attribute: attributeName, value };
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Utility function to check if a value is an object.
|
|
136
|
+
* Does not include `null` or arrays.
|
|
137
|
+
*/
|
|
138
|
+
function isObject(value) {
|
|
139
|
+
return typeof value === 'object' && value != null && !Array.isArray(value);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Intended to be used when a variable value is an object, this transforms the object into a series of conditions.
|
|
143
|
+
* It compiles attributes into a list, and returns everything as a flat array of conditions, which will further be flattened into the final query.
|
|
144
|
+
*/
|
|
145
|
+
function transformObjectIntoQueryCondition(object, attributes) {
|
|
146
|
+
attributes = typeof attributes === 'string' ? [attributes] : attributes;
|
|
147
|
+
return Object.entries(object).flatMap(([key, value]) => {
|
|
148
|
+
attributes = [...attributes, key];
|
|
149
|
+
return isObject(value) ? transformObjectIntoQueryCondition(value, attributes) : { attribute: attributes, value };
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Processes an object field node into a condition query.
|
|
154
|
+
* For many values, it simply returns the attribute and value.
|
|
155
|
+
* For objects, it returns a list of conditions.
|
|
156
|
+
* Lists and Enums are not supported.
|
|
157
|
+
*/
|
|
158
|
+
function processObjectFieldNode(objectFieldNode, attributes, resolvedVariables) {
|
|
159
|
+
attributes = [...attributes, objectFieldNode.name.value];
|
|
160
|
+
switch (objectFieldNode.value.kind) {
|
|
161
|
+
case graphql.Kind.NULL:
|
|
162
|
+
return { attribute: attributes, value: null };
|
|
163
|
+
case graphql.Kind.INT:
|
|
164
|
+
return { attribute: attributes, value: processIntValueNode(objectFieldNode.value) };
|
|
165
|
+
case graphql.Kind.FLOAT:
|
|
166
|
+
return { attribute: attributes, value: processFloatValueNode(objectFieldNode.value) };
|
|
167
|
+
case graphql.Kind.BOOLEAN:
|
|
168
|
+
case graphql.Kind.STRING:
|
|
169
|
+
return {
|
|
170
|
+
attribute: attributes,
|
|
171
|
+
value: objectFieldNode.value.value,
|
|
172
|
+
};
|
|
173
|
+
case graphql.Kind.VARIABLE: {
|
|
174
|
+
return processVariableNode(objectFieldNode.value, attributes, resolvedVariables);
|
|
175
|
+
}
|
|
176
|
+
case graphql.Kind.OBJECT:
|
|
177
|
+
return processObjectValueNode(objectFieldNode.value, attributes, resolvedVariables);
|
|
178
|
+
case graphql.Kind.LIST:
|
|
179
|
+
// No longer supporting lists as values, as they are not supported by Harper.
|
|
180
|
+
// return {
|
|
181
|
+
// attribute: attributes,
|
|
182
|
+
// value: objectFieldNode.value.values.map((valueNode) => processValueNode(valueNode, resolvedVariables)),
|
|
183
|
+
// };
|
|
184
|
+
// eslint-disable-next-line no-fallthrough
|
|
185
|
+
case graphql.Kind.ENUM:
|
|
186
|
+
default:
|
|
187
|
+
throw new GraphQLQueryingError(`Value type, ${objectFieldNode.value.kind}, is not supported.`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Object Value Nodes have unique handling; each field must be transformed into a condition and all conditions must be flattened for the query.
|
|
192
|
+
* For example, `{ name: "Lincoln", owner: { name: "Ethan" } }` would be transformed into two conditions:
|
|
193
|
+
* 1. `{ attribute: ["name"], value: "Lincoln" }`
|
|
194
|
+
* 2. `{ attribute: ["owner", "name"], value: "Ethan" }`
|
|
195
|
+
*/
|
|
196
|
+
function processObjectValueNode(objectValueNode, attributes, resolvedVariables) {
|
|
197
|
+
return objectValueNode.fields.flatMap((field) => processObjectFieldNode(field, attributes, resolvedVariables));
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Processes an argument node into a condition query.
|
|
201
|
+
* - Lists and Enum values are not supported.
|
|
202
|
+
* - Null values are returned as JavaScript `null`.
|
|
203
|
+
* - Strings and Booleans are returned as is.
|
|
204
|
+
* - Numbers are parsed by their relevant JavaScript parsers (`parseInt` and `parseFloat`).
|
|
205
|
+
* - Objects are the most complex, as we need to flatten their nested structure into a series of conditions.
|
|
206
|
+
*/
|
|
207
|
+
function processArgumentNode(argumentNode, resolvedVariables) {
|
|
208
|
+
switch (argumentNode.value.kind) {
|
|
209
|
+
case graphql.Kind.NULL:
|
|
210
|
+
return { attribute: argumentNode.name.value, value: null };
|
|
211
|
+
case graphql.Kind.INT:
|
|
212
|
+
return { attribute: argumentNode.name.value, value: processIntValueNode(argumentNode.value) };
|
|
213
|
+
case graphql.Kind.FLOAT:
|
|
214
|
+
return { attribute: argumentNode.name.value, value: processFloatValueNode(argumentNode.value) };
|
|
215
|
+
case graphql.Kind.BOOLEAN:
|
|
216
|
+
case graphql.Kind.STRING:
|
|
217
|
+
return { attribute: argumentNode.name.value, value: argumentNode.value.value };
|
|
218
|
+
case graphql.Kind.VARIABLE:
|
|
219
|
+
return processVariableNode(argumentNode.value, argumentNode.name.value, resolvedVariables);
|
|
220
|
+
case graphql.Kind.OBJECT:
|
|
221
|
+
return processObjectValueNode(argumentNode.value, [argumentNode.name.value], resolvedVariables);
|
|
222
|
+
case graphql.Kind.LIST:
|
|
223
|
+
// No longer supporting lists as values, as they are not supported by Harper.
|
|
224
|
+
// return {
|
|
225
|
+
// attribute: argumentNode.name.value,
|
|
226
|
+
// value: argumentNode.value.values.map((valueNode) => processValueNode(valueNode, resolvedVariables)),
|
|
227
|
+
// };
|
|
228
|
+
// eslint-disable-next-line no-fallthrough
|
|
229
|
+
case graphql.Kind.ENUM:
|
|
230
|
+
default:
|
|
231
|
+
throw new GraphQLQueryingError(`Argument type, ${argumentNode.value.kind}, is not supported.`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Builds a conditions query from a list of argument nodes.
|
|
236
|
+
*
|
|
237
|
+
* We support two querying forms:
|
|
238
|
+
* 1. Short form: direct attribute and value matching
|
|
239
|
+
* 2. (TODO) Long form: Harper Resource Query API
|
|
240
|
+
*
|
|
241
|
+
* This method should return an array that is assigned to the top level `conditions` field of the query.
|
|
242
|
+
*/
|
|
243
|
+
function buildConditionsQuery(argumentNodes, resolvedVariables) {
|
|
244
|
+
// Note (@Ethan-Arrowood): This is simple for now, but I imagine we will need to implement some more checks when we support Long Form queries.
|
|
245
|
+
// `flatMap` is necessary for handling the list of conditions from an ObjectValueNode
|
|
246
|
+
return argumentNodes.flatMap((argumentNode) => processArgumentNode(argumentNode, resolvedVariables));
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* This method does not modify the input selection set node.
|
|
250
|
+
* It replaces fragment nodes with their respective selection sets.
|
|
251
|
+
* It only operates on the first level of selections, so nested fragments will not be resolved.
|
|
252
|
+
* The resulting selection set can then be used for further processing where every node should now be a `FieldNode`.
|
|
253
|
+
* And since a Field Node can still contain a fragment, whatever is processing the Field Node needs to pass those selections back to this method.
|
|
254
|
+
* This is best exemplified by `buildSelectQuery`, which starts with a list of selection nodes, these are passed to `fillInFragments`, and then mapped.
|
|
255
|
+
* If the resulting field node has further selections, it is passed back to `buildSelectQuery` and the process repeats.
|
|
256
|
+
*/
|
|
257
|
+
function fillInFragments(selectionSetNode, fragments) {
|
|
258
|
+
return selectionSetNode.selections.flatMap((selectionNode) => {
|
|
259
|
+
switch (selectionNode.kind) {
|
|
260
|
+
case graphql.Kind.FIELD:
|
|
261
|
+
return selectionNode;
|
|
262
|
+
case graphql.Kind.FRAGMENT_SPREAD: {
|
|
263
|
+
const fragmentName = selectionNode.name.value;
|
|
264
|
+
const fragment = fragments.get(fragmentName);
|
|
265
|
+
if (fragment == null) {
|
|
266
|
+
throw new GraphQLQueryingError(`Fragment \`${fragmentName}\` not found.`);
|
|
267
|
+
}
|
|
268
|
+
return fillInFragments(fragment.selectionSet, fragments);
|
|
269
|
+
}
|
|
270
|
+
case graphql.Kind.INLINE_FRAGMENT:
|
|
271
|
+
return fillInFragments(selectionNode.selectionSet, fragments);
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Builds a select query from a selection set node by iterating through the selections.
|
|
277
|
+
* Supports nested selections.
|
|
278
|
+
*/
|
|
279
|
+
function buildSelectQuery(selectionSetNode, fragments) {
|
|
280
|
+
return fillInFragments(selectionSetNode, fragments).map((fieldNode) => {
|
|
281
|
+
return fieldNode.selectionSet?.selections.length > 0
|
|
282
|
+
? { name: fieldNode.name.value, select: buildSelectQuery(fieldNode.selectionSet, fragments) }
|
|
283
|
+
: fieldNode.name.value;
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* This is the main execution function for the GraphQL handler.
|
|
288
|
+
* Queries must use Harper Resources in the top-level selection set.
|
|
289
|
+
* This function maps those top-level selections to Harper Resources, builds a query, and executes the search operation.
|
|
290
|
+
* Results are returned as a tuple with the selection (Resource) name and the array of results.
|
|
291
|
+
*/
|
|
292
|
+
async function processFieldNode(fieldNode, resolvedVariables, fragments, request) {
|
|
293
|
+
const entry = Resources_ts_1.resources.getMatch(fieldNode.name.value, 'graphql');
|
|
294
|
+
if (entry === undefined) {
|
|
295
|
+
throw new GraphQLQueryingError(`Resource \`${fieldNode.name.value}\` not found.`);
|
|
296
|
+
}
|
|
297
|
+
const resource = entry.Resource;
|
|
298
|
+
const query = {
|
|
299
|
+
select: buildSelectQuery(fieldNode.selectionSet, fragments),
|
|
300
|
+
conditions: buildConditionsQuery(fieldNode.arguments, resolvedVariables),
|
|
301
|
+
};
|
|
302
|
+
const results = [];
|
|
303
|
+
// @ts-expect-error: `authorize` is a custom property on the request object.
|
|
304
|
+
request.authorize = true;
|
|
305
|
+
for await (const result of resource.search(query, request)) {
|
|
306
|
+
results.push(result);
|
|
307
|
+
}
|
|
308
|
+
return [fieldNode.name.value, results];
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* This method processes the default value of a variable definition node into a JavaScript value.
|
|
312
|
+
* - Objects should not be flattened (nested structures should be preserved).
|
|
313
|
+
* - Lists and Enum values are not supported.
|
|
314
|
+
* - Null values are returned as JavaScript `null`.
|
|
315
|
+
* - Strings and Booleans are returned as is.
|
|
316
|
+
* - Numbers are parsed by their relevant JavaScript parsers (`parseInt` and `parseFloat`).
|
|
317
|
+
*/
|
|
318
|
+
function processConstValueNode(constValueNode) {
|
|
319
|
+
switch (constValueNode.kind) {
|
|
320
|
+
case graphql.Kind.NULL:
|
|
321
|
+
return null;
|
|
322
|
+
case graphql.Kind.INT:
|
|
323
|
+
return processIntValueNode(constValueNode);
|
|
324
|
+
case graphql.Kind.FLOAT:
|
|
325
|
+
return parseFloat(constValueNode.value);
|
|
326
|
+
case graphql.Kind.STRING:
|
|
327
|
+
case graphql.Kind.BOOLEAN:
|
|
328
|
+
return constValueNode.value;
|
|
329
|
+
case graphql.Kind.OBJECT:
|
|
330
|
+
return constValueNode.fields.reduce((acc, field) => ({
|
|
331
|
+
[field.name.value]: processConstValueNode(field.value),
|
|
332
|
+
...acc,
|
|
333
|
+
}), {});
|
|
334
|
+
case graphql.Kind.LIST:
|
|
335
|
+
// No longer supporting lists as values, as they are not supported by Harper.
|
|
336
|
+
// return constValueNode.values.map((currentNode) => processConstValueNode(currentNode));
|
|
337
|
+
// eslint-disable-next-line no-fallthrough
|
|
338
|
+
case graphql.Kind.ENUM:
|
|
339
|
+
default:
|
|
340
|
+
throw new GraphQLQueryingError(`Value type, ${constValueNode.kind}, is not supported.`);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* A query is responsible for declaring its variables. This function uses the
|
|
345
|
+
* variable definitions of a query and the variables provided in the request to
|
|
346
|
+
* create a Map of resolved variables.
|
|
347
|
+
*
|
|
348
|
+
* It handles `null` values, default values, and required variables.
|
|
349
|
+
*/
|
|
350
|
+
function resolveVariables(variableDefinitions, variables) {
|
|
351
|
+
const resolvedVariables = new Map();
|
|
352
|
+
for (const variableDefinition of variableDefinitions) {
|
|
353
|
+
const variableName = variableDefinition.variable.name.value;
|
|
354
|
+
// First, check if the variable is provided in the request
|
|
355
|
+
let variableValue = variables?.[variableName];
|
|
356
|
+
// If not, and there is a default, process the default value
|
|
357
|
+
if (variableValue === undefined && variableDefinition.defaultValue !== undefined) {
|
|
358
|
+
variableValue = processConstValueNode(variableDefinition.defaultValue);
|
|
359
|
+
}
|
|
360
|
+
// If the variable is non-nullable, not provided, and has no default, throw an error
|
|
361
|
+
if (variableDefinition.type.kind === graphql.Kind.NON_NULL_TYPE &&
|
|
362
|
+
!(variableName in variables) &&
|
|
363
|
+
variableValue === undefined) {
|
|
364
|
+
throw new GraphQLQueryingError(`Variable $${variableName} is required, but not provided.`);
|
|
365
|
+
}
|
|
366
|
+
resolvedVariables.set(variableDefinition.variable.name.value, variableValue ?? null);
|
|
367
|
+
}
|
|
368
|
+
return resolvedVariables;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Executes a GraphQL operation via the OperationDefinitionNode.
|
|
372
|
+
* It starts by resolving variables, then iterating over the top level selections
|
|
373
|
+
* and executing Harper search queries using the relative Resources.
|
|
374
|
+
*/
|
|
375
|
+
async function executeOperation(operationNode, variables, fragments, request) {
|
|
376
|
+
if (operationNode.operation === graphql.OperationTypeNode.SUBSCRIPTION) {
|
|
377
|
+
throw new GraphQLQueryingError('Subscriptions are not supported.');
|
|
378
|
+
}
|
|
379
|
+
if (operationNode.operation === graphql.OperationTypeNode.MUTATION) {
|
|
380
|
+
throw new GraphQLQueryingError('Mutations are not supported yet.');
|
|
381
|
+
}
|
|
382
|
+
// Resolve variables ahead of execution.
|
|
383
|
+
// Based on the specification, variables must be defined in the query (i.e. `query GetDogs($id: ID!) { ... }`)
|
|
384
|
+
// So even if the variables are provided in the request, they must also be defined in the query.
|
|
385
|
+
// Thus, we can resolve all of the specified variables ahead of time, and then the execution process can use them as needed.
|
|
386
|
+
// We can catch missing variables early (non-nullable variables without a value) and throw an error.
|
|
387
|
+
// We can resolve default values for variables if they are not provided.
|
|
388
|
+
const resolvedVariables = resolveVariables(operationNode.variableDefinitions, variables);
|
|
389
|
+
// This is the top level of a query or mutation.
|
|
390
|
+
// Due to the constraints of our system, users must use Harper Resources in the selection set.
|
|
391
|
+
// Multiple resources can be queried in a single operation and any attribute of a resource can be selected.
|
|
392
|
+
const results = await Promise.all(fillInFragments(operationNode.selectionSet, fragments).map((fieldNode) => processFieldNode(fieldNode, resolvedVariables, fragments, request)));
|
|
393
|
+
const result = {
|
|
394
|
+
data: {},
|
|
395
|
+
};
|
|
396
|
+
for (const [key, value] of results) {
|
|
397
|
+
result.data[key] = value;
|
|
398
|
+
}
|
|
399
|
+
return result;
|
|
400
|
+
}
|
|
401
|
+
async function resolver({ query, variables = {}, operationName }, request) {
|
|
402
|
+
const ast = graphql.parse(query);
|
|
403
|
+
const operations = new Map();
|
|
404
|
+
const fragments = new Map();
|
|
405
|
+
// Iterate through each operation definition in the document
|
|
406
|
+
for (const definitionNode of ast.definitions) {
|
|
407
|
+
// If they aren't executable, error (spec: https://spec.graphql.org/October2021/#sel-DAFPDPAACRAo1T)
|
|
408
|
+
assertExecutableDefinitionNode(definitionNode);
|
|
409
|
+
// At the top level of the document there can be only operations and fragments
|
|
410
|
+
// Operations are limited to queries and mutations. Subscriptions are not supported. These are differentiated by the operation type (definitionNode.operation)
|
|
411
|
+
// Fragments do not have multiple types.
|
|
412
|
+
// If the document contains only one operation, it can be unnamed. And if that operation has no variables or directives, it can be a shorthand query (omitting the `query` keyword).
|
|
413
|
+
// Luckily, the AST handles this for us. The definitionNode will have `operation` set to `query` if it is an unnamed or shorthand query. And the `name` property will be undefined.
|
|
414
|
+
// This automatic resolver can only match query/field names to existing Harper Resources.
|
|
415
|
+
// All queries, named or unnamed, must use Harper Resources in the selection set. For example, all three of the following queries are identical (aside from their name):
|
|
416
|
+
// 1. `{ Dog { name breed } }` (shorthand query)
|
|
417
|
+
// 2. `query { Dog { name breed } }` (unnamed query)
|
|
418
|
+
// 3. `query GetDogs { Dog { name breed } }` (named query)
|
|
419
|
+
// We must be careful not to conflate the query name with the Harper Resource name. The query name is only used to differentiate multiple queries in the same document.
|
|
420
|
+
// So if the query is `query Dog { name breed }`, we should error.
|
|
421
|
+
// (This is a pattern we _could_ support, but it may make the resolution process more complex.)
|
|
422
|
+
if (definitionNode.kind === graphql.Kind.FRAGMENT_DEFINITION) {
|
|
423
|
+
// Fragments are stored in a separate map for later reference
|
|
424
|
+
// They only need to be processed if referenced in the operation being executed
|
|
425
|
+
// However, since fragments can be nested, we need to collect all of them and recursively resolve later.
|
|
426
|
+
fragments.set(definitionNode.name.value, definitionNode);
|
|
427
|
+
}
|
|
428
|
+
else {
|
|
429
|
+
// Error if unnamed operation is not the only operation in the document
|
|
430
|
+
if (definitionNode.name === undefined && ast.definitions.length > 1) {
|
|
431
|
+
throw new GraphQLQueryingError(`Unnamed operations are only allowed when there is a single operation in the document.`);
|
|
432
|
+
}
|
|
433
|
+
// Safely default the definition name to 'Unnamed Query'
|
|
434
|
+
const operationName = definitionNode.name?.value ?? 'Unnamed Query';
|
|
435
|
+
if (operations.has(operationName)) {
|
|
436
|
+
throw new GraphQLQueryingError(`Duplicate operation definition: ${operationName}`);
|
|
437
|
+
}
|
|
438
|
+
operations.set(operationName, definitionNode);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
// After all of the operations and fragments have been processed, we can determine which operation to execute.
|
|
442
|
+
// This is based off of the GraphQl Spec `ExecuteRequest` algorithm (https://spec.graphql.org/draft/#sec-Executing-Requests)
|
|
443
|
+
// 1. Determine Operation using GetOperation algorithm (https://spec.graphql.org/draft/#GetOperation())
|
|
444
|
+
let operation;
|
|
445
|
+
if (operationName == null) {
|
|
446
|
+
if (operations.size === 1) {
|
|
447
|
+
operation = operations.entries().next().value[1];
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
throw new GraphQLQueryingError('Operation name is required when there are multiple operations in the document.');
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
else {
|
|
454
|
+
operation = operations.get(operationName);
|
|
455
|
+
if (operation == null) {
|
|
456
|
+
throw new GraphQLQueryingError(`Operation \`${operationName}\` not found.`);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
// This is where our implementation diverges from the spec.
|
|
460
|
+
// We will not be executing the operation as specified (using provided GraphQL resolvers), but instead using a custom resolution algorithm based on Harper resources.
|
|
461
|
+
const responseBody = await executeOperation(operation, variables, fragments, request);
|
|
462
|
+
return {
|
|
463
|
+
status: 200,
|
|
464
|
+
headers: {
|
|
465
|
+
'Content-Type': 'application/graphql-response+json; charset=utf-8',
|
|
466
|
+
},
|
|
467
|
+
body: JSON.stringify(responseBody),
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
class GraphQLQueryingError extends Error {
|
|
471
|
+
}
|
|
472
|
+
class HTTPError extends Error {
|
|
473
|
+
statusCode;
|
|
474
|
+
headers;
|
|
475
|
+
constructor(message, statusCode = 400, headers = {}) {
|
|
476
|
+
super(message);
|
|
477
|
+
this.statusCode = statusCode;
|
|
478
|
+
this.headers = headers;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
// TODO: Improve type here with an actual representation of the request object (its WHATWG Request like but has some differences).
|
|
482
|
+
async function graphqlQueryingHandler(request) {
|
|
483
|
+
switch (request.method) {
|
|
484
|
+
case 'GET': {
|
|
485
|
+
const searchParams = new URLSearchParams(request.url.split('?')[1]);
|
|
486
|
+
const requestParams = {};
|
|
487
|
+
for (const [key, value] of searchParams) {
|
|
488
|
+
requestParams[key] = key === 'variables' || key === 'extensions' ? JSON.parse(value) : value;
|
|
489
|
+
}
|
|
490
|
+
assertRequestParams(requestParams);
|
|
491
|
+
return resolver(requestParams, request);
|
|
492
|
+
}
|
|
493
|
+
case 'POST': {
|
|
494
|
+
const requestBodyDeserialize = (0, contentTypes_ts_1.getDeserializer)(request.headers.get('content-type'), true);
|
|
495
|
+
// @ts-expect-error: _nodeRequest is a custom property on request and is the IncomingMessage with is a Readable
|
|
496
|
+
const requestParams = await requestBodyDeserialize(request._nodeRequest);
|
|
497
|
+
assertRequestParams(requestParams);
|
|
498
|
+
return resolver(requestParams, request);
|
|
499
|
+
}
|
|
500
|
+
default: {
|
|
501
|
+
throw new HTTPError('Method Not Allowed', 405, { Allow: 'GET, POST' });
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
function start(options) {
|
|
506
|
+
options.server.http(async (request, nextLayer) => {
|
|
507
|
+
if (!request.url.startsWith('/graphql')) {
|
|
508
|
+
return nextLayer(request);
|
|
509
|
+
}
|
|
510
|
+
try {
|
|
511
|
+
// Await the `graphqlHandler` call here so that errors are caught.
|
|
512
|
+
return await graphqlQueryingHandler(request);
|
|
513
|
+
}
|
|
514
|
+
catch (error) {
|
|
515
|
+
harper_logger_js_1.default.error(error);
|
|
516
|
+
// Error Handling
|
|
517
|
+
// Based on the GraphQL specification, a GraphQL response (non-http) are a map with a `data` field and an `errors` field.
|
|
518
|
+
// In context of GraphQL Over HTTP, the GraphQL Response is used and will always be returned in the body of the response (regardless of status code).
|
|
519
|
+
// The status code changes based on the Accept header and the response contents.
|
|
520
|
+
// - In `application/json`, the status code is always 200, unless something is wrong with the http request itself (wrong method, invalid body, etc).
|
|
521
|
+
// - Even if the query itself is invalid (like it doesn't parse), we still use 200, and include the parsing error in `errors`, and `data` is undefined
|
|
522
|
+
// - It may be difficult to accomplish in our system, but the query can be partially successful, and we would still return 200 with `data` and `errors`.
|
|
523
|
+
// - In `application/graphql-response+json`, the status code will generally be 4xx if anything goes wrong. From HTTP issues to query parsing, and even query execution.
|
|
524
|
+
// - Using 405 for method not allowed
|
|
525
|
+
// - 403 for unauthorized
|
|
526
|
+
// - 400 for bad request (we detect something is wrong, or the parsing step fails, or the operation is not found, or we don't support that piece of the spec)
|
|
527
|
+
// - 500 for internal server error (like something is bugged in the code in this file).
|
|
528
|
+
// - If the query is valid, and some part of it is successful, then and only then does the status code become 200.
|
|
529
|
+
// - If the fails partially, we can include those errors in the `errors` field, and still return 200.
|
|
530
|
+
// "Partial success/failure" - GraphQL has two types of error concepts, Request and Field. Field errors are generally when a single field in a request has an error resolving. Request errors are not about HTTP semantics, but GraphQL semantics (like valid query)
|
|
531
|
+
// In a standard graphql system, that is okay. It can be null and things can continue. When something is specified as non-null, then it can provide an error.
|
|
532
|
+
// Since our system is a bit unique, and we are taking many liberties with the spec, we may not really support partial success.
|
|
533
|
+
// We don't really type check so there is little purpose in strictly validating the data coming out of a query.
|
|
534
|
+
// In general, we will behave as expected regarding request errors (like missing variables, or invalid query syntax).
|
|
535
|
+
// For now, we likely will not support partial failure. If a query fails, it will likely fail entirely. And as confusing as that might be for a `application/json` user, it is
|
|
536
|
+
// the most spec compliant and expected behavior. Furthermore, we will default to `application/graphql-response+json` so that the better UX (of receiving 4xx on any errors) will be the default experience.
|
|
537
|
+
const responseType = request.headers.get('accept') ?? 'application/graphql-response+json';
|
|
538
|
+
switch (responseType) {
|
|
539
|
+
case 'application/json': {
|
|
540
|
+
if (error instanceof HTTPError) {
|
|
541
|
+
return {
|
|
542
|
+
status: error.statusCode,
|
|
543
|
+
body: JSON.stringify({ errors: [{ message: error.message }] }),
|
|
544
|
+
headers: {
|
|
545
|
+
'Content-Type': 'application/json',
|
|
546
|
+
...error.headers,
|
|
547
|
+
},
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
else if (error instanceof graphql.GraphQLError) {
|
|
551
|
+
// This error comes from graphql.parse
|
|
552
|
+
return {
|
|
553
|
+
status: 200,
|
|
554
|
+
body: JSON.stringify({ errors: [error] }),
|
|
555
|
+
headers: {
|
|
556
|
+
'Content-Type': 'application/json',
|
|
557
|
+
},
|
|
558
|
+
};
|
|
559
|
+
}
|
|
560
|
+
else if (error instanceof GraphQLQueryingError) {
|
|
561
|
+
return {
|
|
562
|
+
status: 200,
|
|
563
|
+
body: JSON.stringify({ errors: [{ message: error.message }] }),
|
|
564
|
+
headers: {
|
|
565
|
+
'Content-Type': 'application/json',
|
|
566
|
+
},
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
else if (error instanceof Error) {
|
|
570
|
+
return {
|
|
571
|
+
status: 500,
|
|
572
|
+
body: JSON.stringify({ errors: [{ message: error.message }] }),
|
|
573
|
+
headers: {
|
|
574
|
+
'Content-Type': 'application/json',
|
|
575
|
+
},
|
|
576
|
+
};
|
|
577
|
+
}
|
|
578
|
+
break;
|
|
579
|
+
}
|
|
580
|
+
default:
|
|
581
|
+
harper_logger_js_1.default.info(`Unsupported accept header, ${responseType}, defaulting to application/graphql-response+json`);
|
|
582
|
+
// eslint-disable-next-line no-fallthrough
|
|
583
|
+
case 'application/graphql-response+json': {
|
|
584
|
+
if (error instanceof HTTPError) {
|
|
585
|
+
return {
|
|
586
|
+
status: error.statusCode,
|
|
587
|
+
body: JSON.stringify({ errors: [{ message: error.message }] }),
|
|
588
|
+
headers: {
|
|
589
|
+
'Content-Type': 'application/graphql-response+json',
|
|
590
|
+
...error.headers,
|
|
591
|
+
},
|
|
592
|
+
};
|
|
593
|
+
}
|
|
594
|
+
else if (error instanceof graphql.GraphQLError) {
|
|
595
|
+
// This error comes from graphql.parse
|
|
596
|
+
return {
|
|
597
|
+
status: 400,
|
|
598
|
+
body: JSON.stringify({ errors: [error] }),
|
|
599
|
+
headers: {
|
|
600
|
+
'Content-Type': 'application/graphql-response+json',
|
|
601
|
+
},
|
|
602
|
+
};
|
|
603
|
+
}
|
|
604
|
+
else if (error instanceof GraphQLQueryingError) {
|
|
605
|
+
return {
|
|
606
|
+
status: 400,
|
|
607
|
+
body: JSON.stringify({ errors: [{ message: error.message }] }),
|
|
608
|
+
headers: {
|
|
609
|
+
'Content-Type': 'application/graphql-response+json',
|
|
610
|
+
},
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
else if (error instanceof Error) {
|
|
614
|
+
return {
|
|
615
|
+
status: 500,
|
|
616
|
+
body: JSON.stringify({ errors: [{ message: error.message }] }),
|
|
617
|
+
headers: {
|
|
618
|
+
'Content-Type': 'application/graphql-response+json',
|
|
619
|
+
},
|
|
620
|
+
};
|
|
621
|
+
}
|
|
622
|
+
break;
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
// The handler should not throw anything but Errors, but rethrow anything else just in case.
|
|
626
|
+
throw error;
|
|
627
|
+
}
|
|
628
|
+
}, { port: options.port, securePort: options.securePort });
|
|
629
|
+
}
|
|
630
|
+
//# sourceMappingURL=graphqlQuerying.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphqlQuerying.js","sourceRoot":"","sources":["../../server/graphqlQuerying.ts"],"names":[],"mappings":"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"}
|