@osdk/faux 0.1.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/CHANGELOG.md +1047 -0
- package/build/browser/BaseError.js +21 -0
- package/build/browser/BaseError.js.map +1 -0
- package/build/browser/FauxFoundry/BaseOsdkObjectType.js +2 -0
- package/build/browser/FauxFoundry/BaseOsdkObjectType.js.map +1 -0
- package/build/browser/FauxFoundry/BaseServerObject.js +30 -0
- package/build/browser/FauxFoundry/BaseServerObject.js.map +1 -0
- package/build/browser/FauxFoundry/FauxActionImpl.js +2 -0
- package/build/browser/FauxFoundry/FauxActionImpl.js.map +1 -0
- package/build/browser/FauxFoundry/FauxAttachmentStore.js +60 -0
- package/build/browser/FauxFoundry/FauxAttachmentStore.js.map +1 -0
- package/build/browser/FauxFoundry/FauxDataStore.js +470 -0
- package/build/browser/FauxFoundry/FauxDataStore.js.map +1 -0
- package/build/browser/FauxFoundry/FauxDataStore.test.js +190 -0
- package/build/browser/FauxFoundry/FauxDataStore.test.js.map +1 -0
- package/build/browser/FauxFoundry/FauxDataStoreBatch.js +125 -0
- package/build/browser/FauxFoundry/FauxDataStoreBatch.js.map +1 -0
- package/build/browser/FauxFoundry/FauxFoundry.js +87 -0
- package/build/browser/FauxFoundry/FauxFoundry.js.map +1 -0
- package/build/browser/FauxFoundry/FauxOntology.js +228 -0
- package/build/browser/FauxFoundry/FauxOntology.js.map +1 -0
- package/build/browser/FauxFoundry/FauxQueryImpl.js +2 -0
- package/build/browser/FauxFoundry/FauxQueryImpl.js.map +1 -0
- package/build/browser/FauxFoundry/ObjectLocator.js +29 -0
- package/build/browser/FauxFoundry/ObjectLocator.js.map +1 -0
- package/build/browser/FauxFoundry/filterObjects.js +122 -0
- package/build/browser/FauxFoundry/filterObjects.js.map +1 -0
- package/build/browser/FauxFoundry/filterTimeSeriesData.js +70 -0
- package/build/browser/FauxFoundry/filterTimeSeriesData.js.map +1 -0
- package/build/browser/FauxFoundry/filterTimeSeriesData.test.js +116 -0
- package/build/browser/FauxFoundry/filterTimeSeriesData.test.js.map +1 -0
- package/build/browser/FauxFoundry/getObjectsFromSet.js +217 -0
- package/build/browser/FauxFoundry/getObjectsFromSet.js.map +1 -0
- package/build/browser/FauxFoundry/typeHelpers/ActionTypeBuilder.js +64 -0
- package/build/browser/FauxFoundry/typeHelpers/ActionTypeBuilder.js.map +1 -0
- package/build/browser/FauxFoundry/typeHelpers/JustProps.js +2 -0
- package/build/browser/FauxFoundry/typeHelpers/JustProps.js.map +1 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ActionDefinition.js +2 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ActionDefinition.js.map +1 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ActionParameterV2.js +25 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ActionParameterV2.js.map +1 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ActionTypeV2.js +35 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ActionTypeV2.js.map +1 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ApplyActionRequestV2.js +2 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ApplyActionRequestV2.js.map +1 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ObjectTypeFullMetadata.js +2 -0
- package/build/browser/FauxFoundry/typeHelpers/TH_ObjectTypeFullMetadata.js.map +1 -0
- package/build/browser/FauxFoundry/typeHelpers/ToObjectTypeDefinition.js +2 -0
- package/build/browser/FauxFoundry/typeHelpers/ToObjectTypeDefinition.js.map +1 -0
- package/build/browser/FauxFoundry/typeHelpers/index.js +20 -0
- package/build/browser/FauxFoundry/typeHelpers/index.js.map +1 -0
- package/build/browser/FauxFoundry/validateAction.js +245 -0
- package/build/browser/FauxFoundry/validateAction.js.map +1 -0
- package/build/browser/defaultOntologyForConjure.js +25 -0
- package/build/browser/defaultOntologyForConjure.js.map +1 -0
- package/build/browser/defaultOntologyMetadata.js +23 -0
- package/build/browser/defaultOntologyMetadata.js.map +1 -0
- package/build/browser/errors.js +134 -0
- package/build/browser/errors.js.map +1 -0
- package/build/browser/filterObjects.js +86 -0
- package/build/browser/filterObjects.js.map +1 -0
- package/build/browser/handlers/authHandlerMiddleware.js +41 -0
- package/build/browser/handlers/authHandlerMiddleware.js.map +1 -0
- package/build/browser/handlers/createActionHandlers.js +49 -0
- package/build/browser/handlers/createActionHandlers.js.map +1 -0
- package/build/browser/handlers/createAttachmentHandlers.js +88 -0
- package/build/browser/handlers/createAttachmentHandlers.js.map +1 -0
- package/build/browser/handlers/createFauxFoundryHandlers.js +29 -0
- package/build/browser/handlers/createFauxFoundryHandlers.js.map +1 -0
- package/build/browser/handlers/createLoadObjectsHandlers.js +91 -0
- package/build/browser/handlers/createLoadObjectsHandlers.js.map +1 -0
- package/build/browser/handlers/createMediaRefHandlers.js +70 -0
- package/build/browser/handlers/createMediaRefHandlers.js.map +1 -0
- package/build/browser/handlers/createMultipassServerHandlers.js +67 -0
- package/build/browser/handlers/createMultipassServerHandlers.js.map +1 -0
- package/build/browser/handlers/createObjectSetHandlers.js +50 -0
- package/build/browser/handlers/createObjectSetHandlers.js.map +1 -0
- package/build/browser/handlers/createOntologyHandlers.js +122 -0
- package/build/browser/handlers/createOntologyHandlers.js.map +1 -0
- package/build/browser/handlers/createQueryHandlers.js +38 -0
- package/build/browser/handlers/createQueryHandlers.js.map +1 -0
- package/build/browser/handlers/createTimeseriesAndGeotimeHandlers.js +95 -0
- package/build/browser/handlers/createTimeseriesAndGeotimeHandlers.js.map +1 -0
- package/build/browser/handlers/util/getPaginationParams.js +33 -0
- package/build/browser/handlers/util/getPaginationParams.js.map +1 -0
- package/build/browser/handlers/util/handleOpenApiCall.js +85 -0
- package/build/browser/handlers/util/handleOpenApiCall.js.map +1 -0
- package/build/browser/handlers/util/loadAll.js +24 -0
- package/build/browser/handlers/util/loadAll.js.map +1 -0
- package/build/browser/handlers/util/pageThroughResponseSearchParams.js +39 -0
- package/build/browser/handlers/util/pageThroughResponseSearchParams.js.map +1 -0
- package/build/browser/handlers/util/requireParam.js +29 -0
- package/build/browser/handlers/util/requireParam.js.map +1 -0
- package/build/browser/handlers/util/requireSearchParams.js +29 -0
- package/build/browser/handlers/util/requireSearchParams.js.map +1 -0
- package/build/browser/index.js +29 -0
- package/build/browser/index.js.map +1 -0
- package/build/browser/mock/OntologiesV2/ActionTypesV2.js +21 -0
- package/build/browser/mock/OntologiesV2/ActionTypesV2.js.map +1 -0
- package/build/browser/mock/OntologiesV2/Actions.js +21 -0
- package/build/browser/mock/OntologiesV2/Actions.js.map +1 -0
- package/build/browser/mock/OntologiesV2/AttachmentPropertiesV2.js +21 -0
- package/build/browser/mock/OntologiesV2/AttachmentPropertiesV2.js.map +1 -0
- package/build/browser/mock/OntologiesV2/Attachments.js +22 -0
- package/build/browser/mock/OntologiesV2/Attachments.js.map +1 -0
- package/build/browser/mock/OntologiesV2/LinkedObjectsV2.js +21 -0
- package/build/browser/mock/OntologiesV2/LinkedObjectsV2.js.map +1 -0
- package/build/browser/mock/OntologiesV2/MediaReferenceProperties.js +22 -0
- package/build/browser/mock/OntologiesV2/MediaReferenceProperties.js.map +1 -0
- package/build/browser/mock/OntologiesV2/ObjectTypesV2.js +24 -0
- package/build/browser/mock/OntologiesV2/ObjectTypesV2.js.map +1 -0
- package/build/browser/mock/OntologiesV2/OntologiesV2.js +27 -0
- package/build/browser/mock/OntologiesV2/OntologiesV2.js.map +1 -0
- package/build/browser/mock/OntologiesV2/OntologyInterfaces.js +21 -0
- package/build/browser/mock/OntologiesV2/OntologyInterfaces.js.map +1 -0
- package/build/browser/mock/OntologiesV2/OntologyObjectSets.js +22 -0
- package/build/browser/mock/OntologiesV2/OntologyObjectSets.js.map +1 -0
- package/build/browser/mock/OntologiesV2/OntologyObjectsV2.js +21 -0
- package/build/browser/mock/OntologiesV2/OntologyObjectsV2.js.map +1 -0
- package/build/browser/mock/OntologiesV2/Queries.js +20 -0
- package/build/browser/mock/OntologiesV2/Queries.js.map +1 -0
- package/build/browser/mock/OntologiesV2/QueryTypes.js +21 -0
- package/build/browser/mock/OntologiesV2/QueryTypes.js.map +1 -0
- package/build/browser/mock/OntologiesV2/TimeSeriesPropertiesV2.js +22 -0
- package/build/browser/mock/OntologiesV2/TimeSeriesPropertiesV2.js.map +1 -0
- package/build/browser/mock/OntologiesV2/TimeSeriesValueBankProperties.js +21 -0
- package/build/browser/mock/OntologiesV2/TimeSeriesValueBankProperties.js.map +1 -0
- package/build/browser/mock/OntologiesV2/index.js +32 -0
- package/build/browser/mock/OntologiesV2/index.js.map +1 -0
- package/build/browser/mock/index.js +18 -0
- package/build/browser/mock/index.js.map +1 -0
- package/build/browser/withoutRid.js +24 -0
- package/build/browser/withoutRid.js.map +1 -0
- package/build/cjs/index.cjs +2983 -0
- package/build/cjs/index.cjs.map +1 -0
- package/build/cjs/index.d.cts +562 -0
- package/build/esm/BaseError.js +21 -0
- package/build/esm/BaseError.js.map +1 -0
- package/build/esm/FauxFoundry/BaseOsdkObjectType.js +2 -0
- package/build/esm/FauxFoundry/BaseOsdkObjectType.js.map +1 -0
- package/build/esm/FauxFoundry/BaseServerObject.js +30 -0
- package/build/esm/FauxFoundry/BaseServerObject.js.map +1 -0
- package/build/esm/FauxFoundry/FauxActionImpl.js +2 -0
- package/build/esm/FauxFoundry/FauxActionImpl.js.map +1 -0
- package/build/esm/FauxFoundry/FauxAttachmentStore.js +60 -0
- package/build/esm/FauxFoundry/FauxAttachmentStore.js.map +1 -0
- package/build/esm/FauxFoundry/FauxDataStore.js +470 -0
- package/build/esm/FauxFoundry/FauxDataStore.js.map +1 -0
- package/build/esm/FauxFoundry/FauxDataStore.test.js +190 -0
- package/build/esm/FauxFoundry/FauxDataStore.test.js.map +1 -0
- package/build/esm/FauxFoundry/FauxDataStoreBatch.js +125 -0
- package/build/esm/FauxFoundry/FauxDataStoreBatch.js.map +1 -0
- package/build/esm/FauxFoundry/FauxFoundry.js +87 -0
- package/build/esm/FauxFoundry/FauxFoundry.js.map +1 -0
- package/build/esm/FauxFoundry/FauxOntology.js +228 -0
- package/build/esm/FauxFoundry/FauxOntology.js.map +1 -0
- package/build/esm/FauxFoundry/FauxQueryImpl.js +2 -0
- package/build/esm/FauxFoundry/FauxQueryImpl.js.map +1 -0
- package/build/esm/FauxFoundry/ObjectLocator.js +29 -0
- package/build/esm/FauxFoundry/ObjectLocator.js.map +1 -0
- package/build/esm/FauxFoundry/filterObjects.js +122 -0
- package/build/esm/FauxFoundry/filterObjects.js.map +1 -0
- package/build/esm/FauxFoundry/filterTimeSeriesData.js +70 -0
- package/build/esm/FauxFoundry/filterTimeSeriesData.js.map +1 -0
- package/build/esm/FauxFoundry/filterTimeSeriesData.test.js +116 -0
- package/build/esm/FauxFoundry/filterTimeSeriesData.test.js.map +1 -0
- package/build/esm/FauxFoundry/getObjectsFromSet.js +217 -0
- package/build/esm/FauxFoundry/getObjectsFromSet.js.map +1 -0
- package/build/esm/FauxFoundry/typeHelpers/ActionTypeBuilder.js +64 -0
- package/build/esm/FauxFoundry/typeHelpers/ActionTypeBuilder.js.map +1 -0
- package/build/esm/FauxFoundry/typeHelpers/JustProps.js +2 -0
- package/build/esm/FauxFoundry/typeHelpers/JustProps.js.map +1 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ActionDefinition.js +2 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ActionDefinition.js.map +1 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ActionParameterV2.js +25 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ActionParameterV2.js.map +1 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ActionTypeV2.js +35 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ActionTypeV2.js.map +1 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ApplyActionRequestV2.js +2 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ApplyActionRequestV2.js.map +1 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ObjectTypeFullMetadata.js +2 -0
- package/build/esm/FauxFoundry/typeHelpers/TH_ObjectTypeFullMetadata.js.map +1 -0
- package/build/esm/FauxFoundry/typeHelpers/ToObjectTypeDefinition.js +2 -0
- package/build/esm/FauxFoundry/typeHelpers/ToObjectTypeDefinition.js.map +1 -0
- package/build/esm/FauxFoundry/typeHelpers/index.js +20 -0
- package/build/esm/FauxFoundry/typeHelpers/index.js.map +1 -0
- package/build/esm/FauxFoundry/validateAction.js +245 -0
- package/build/esm/FauxFoundry/validateAction.js.map +1 -0
- package/build/esm/defaultOntologyForConjure.js +25 -0
- package/build/esm/defaultOntologyForConjure.js.map +1 -0
- package/build/esm/defaultOntologyMetadata.js +23 -0
- package/build/esm/defaultOntologyMetadata.js.map +1 -0
- package/build/esm/errors.js +134 -0
- package/build/esm/errors.js.map +1 -0
- package/build/esm/filterObjects.js +86 -0
- package/build/esm/filterObjects.js.map +1 -0
- package/build/esm/handlers/authHandlerMiddleware.js +41 -0
- package/build/esm/handlers/authHandlerMiddleware.js.map +1 -0
- package/build/esm/handlers/createActionHandlers.js +49 -0
- package/build/esm/handlers/createActionHandlers.js.map +1 -0
- package/build/esm/handlers/createAttachmentHandlers.js +88 -0
- package/build/esm/handlers/createAttachmentHandlers.js.map +1 -0
- package/build/esm/handlers/createFauxFoundryHandlers.js +29 -0
- package/build/esm/handlers/createFauxFoundryHandlers.js.map +1 -0
- package/build/esm/handlers/createLoadObjectsHandlers.js +91 -0
- package/build/esm/handlers/createLoadObjectsHandlers.js.map +1 -0
- package/build/esm/handlers/createMediaRefHandlers.js +70 -0
- package/build/esm/handlers/createMediaRefHandlers.js.map +1 -0
- package/build/esm/handlers/createMultipassServerHandlers.js +67 -0
- package/build/esm/handlers/createMultipassServerHandlers.js.map +1 -0
- package/build/esm/handlers/createObjectSetHandlers.js +50 -0
- package/build/esm/handlers/createObjectSetHandlers.js.map +1 -0
- package/build/esm/handlers/createOntologyHandlers.js +122 -0
- package/build/esm/handlers/createOntologyHandlers.js.map +1 -0
- package/build/esm/handlers/createQueryHandlers.js +38 -0
- package/build/esm/handlers/createQueryHandlers.js.map +1 -0
- package/build/esm/handlers/createTimeseriesAndGeotimeHandlers.js +95 -0
- package/build/esm/handlers/createTimeseriesAndGeotimeHandlers.js.map +1 -0
- package/build/esm/handlers/util/getPaginationParams.js +33 -0
- package/build/esm/handlers/util/getPaginationParams.js.map +1 -0
- package/build/esm/handlers/util/handleOpenApiCall.js +85 -0
- package/build/esm/handlers/util/handleOpenApiCall.js.map +1 -0
- package/build/esm/handlers/util/loadAll.js +24 -0
- package/build/esm/handlers/util/loadAll.js.map +1 -0
- package/build/esm/handlers/util/pageThroughResponseSearchParams.js +39 -0
- package/build/esm/handlers/util/pageThroughResponseSearchParams.js.map +1 -0
- package/build/esm/handlers/util/requireParam.js +29 -0
- package/build/esm/handlers/util/requireParam.js.map +1 -0
- package/build/esm/handlers/util/requireSearchParams.js +29 -0
- package/build/esm/handlers/util/requireSearchParams.js.map +1 -0
- package/build/esm/index.js +29 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/mock/OntologiesV2/ActionTypesV2.js +21 -0
- package/build/esm/mock/OntologiesV2/ActionTypesV2.js.map +1 -0
- package/build/esm/mock/OntologiesV2/Actions.js +21 -0
- package/build/esm/mock/OntologiesV2/Actions.js.map +1 -0
- package/build/esm/mock/OntologiesV2/AttachmentPropertiesV2.js +21 -0
- package/build/esm/mock/OntologiesV2/AttachmentPropertiesV2.js.map +1 -0
- package/build/esm/mock/OntologiesV2/Attachments.js +22 -0
- package/build/esm/mock/OntologiesV2/Attachments.js.map +1 -0
- package/build/esm/mock/OntologiesV2/LinkedObjectsV2.js +21 -0
- package/build/esm/mock/OntologiesV2/LinkedObjectsV2.js.map +1 -0
- package/build/esm/mock/OntologiesV2/MediaReferenceProperties.js +22 -0
- package/build/esm/mock/OntologiesV2/MediaReferenceProperties.js.map +1 -0
- package/build/esm/mock/OntologiesV2/ObjectTypesV2.js +24 -0
- package/build/esm/mock/OntologiesV2/ObjectTypesV2.js.map +1 -0
- package/build/esm/mock/OntologiesV2/OntologiesV2.js +27 -0
- package/build/esm/mock/OntologiesV2/OntologiesV2.js.map +1 -0
- package/build/esm/mock/OntologiesV2/OntologyInterfaces.js +21 -0
- package/build/esm/mock/OntologiesV2/OntologyInterfaces.js.map +1 -0
- package/build/esm/mock/OntologiesV2/OntologyObjectSets.js +22 -0
- package/build/esm/mock/OntologiesV2/OntologyObjectSets.js.map +1 -0
- package/build/esm/mock/OntologiesV2/OntologyObjectsV2.js +21 -0
- package/build/esm/mock/OntologiesV2/OntologyObjectsV2.js.map +1 -0
- package/build/esm/mock/OntologiesV2/Queries.js +20 -0
- package/build/esm/mock/OntologiesV2/Queries.js.map +1 -0
- package/build/esm/mock/OntologiesV2/QueryTypes.js +21 -0
- package/build/esm/mock/OntologiesV2/QueryTypes.js.map +1 -0
- package/build/esm/mock/OntologiesV2/TimeSeriesPropertiesV2.js +22 -0
- package/build/esm/mock/OntologiesV2/TimeSeriesPropertiesV2.js.map +1 -0
- package/build/esm/mock/OntologiesV2/TimeSeriesValueBankProperties.js +21 -0
- package/build/esm/mock/OntologiesV2/TimeSeriesValueBankProperties.js.map +1 -0
- package/build/esm/mock/OntologiesV2/index.js +32 -0
- package/build/esm/mock/OntologiesV2/index.js.map +1 -0
- package/build/esm/mock/index.js +18 -0
- package/build/esm/mock/index.js.map +1 -0
- package/build/esm/withoutRid.js +24 -0
- package/build/esm/withoutRid.js.map +1 -0
- package/build/types/BaseError.d.ts +7 -0
- package/build/types/BaseError.d.ts.map +1 -0
- package/build/types/FauxFoundry/BaseOsdkObjectType.d.ts +5 -0
- package/build/types/FauxFoundry/BaseOsdkObjectType.d.ts.map +1 -0
- package/build/types/FauxFoundry/BaseServerObject.d.ts +18 -0
- package/build/types/FauxFoundry/BaseServerObject.d.ts.map +1 -0
- package/build/types/FauxFoundry/FauxActionImpl.d.ts +8 -0
- package/build/types/FauxFoundry/FauxActionImpl.d.ts.map +1 -0
- package/build/types/FauxFoundry/FauxAttachmentStore.d.ts +10 -0
- package/build/types/FauxFoundry/FauxAttachmentStore.d.ts.map +1 -0
- package/build/types/FauxFoundry/FauxDataStore.d.ts +70 -0
- package/build/types/FauxFoundry/FauxDataStore.d.ts.map +1 -0
- package/build/types/FauxFoundry/FauxDataStore.test.d.ts +1 -0
- package/build/types/FauxFoundry/FauxDataStore.test.d.ts.map +1 -0
- package/build/types/FauxFoundry/FauxDataStoreBatch.d.ts +22 -0
- package/build/types/FauxFoundry/FauxDataStoreBatch.d.ts.map +1 -0
- package/build/types/FauxFoundry/FauxFoundry.d.ts +25 -0
- package/build/types/FauxFoundry/FauxFoundry.d.ts.map +1 -0
- package/build/types/FauxFoundry/FauxOntology.d.ts +39 -0
- package/build/types/FauxFoundry/FauxOntology.d.ts.map +1 -0
- package/build/types/FauxFoundry/FauxQueryImpl.d.ts +5 -0
- package/build/types/FauxFoundry/FauxQueryImpl.d.ts.map +1 -0
- package/build/types/FauxFoundry/ObjectLocator.d.ts +11 -0
- package/build/types/FauxFoundry/ObjectLocator.d.ts.map +1 -0
- package/build/types/FauxFoundry/filterObjects.d.ts +3 -0
- package/build/types/FauxFoundry/filterObjects.d.ts.map +1 -0
- package/build/types/FauxFoundry/filterTimeSeriesData.d.ts +2 -0
- package/build/types/FauxFoundry/filterTimeSeriesData.d.ts.map +1 -0
- package/build/types/FauxFoundry/filterTimeSeriesData.test.d.ts +1 -0
- package/build/types/FauxFoundry/filterTimeSeriesData.test.d.ts.map +1 -0
- package/build/types/FauxFoundry/getObjectsFromSet.d.ts +6 -0
- package/build/types/FauxFoundry/getObjectsFromSet.d.ts.map +1 -0
- package/build/types/FauxFoundry/typeHelpers/ActionTypeBuilder.d.ts +27 -0
- package/build/types/FauxFoundry/typeHelpers/ActionTypeBuilder.d.ts.map +1 -0
- package/build/types/FauxFoundry/typeHelpers/JustProps.d.ts +4 -0
- package/build/types/FauxFoundry/typeHelpers/JustProps.d.ts.map +1 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ActionDefinition.d.ts +43 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ActionDefinition.d.ts.map +1 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ActionParameterV2.d.ts +15 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ActionParameterV2.d.ts.map +1 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ActionTypeV2.d.ts +8 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ActionTypeV2.d.ts.map +1 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ApplyActionRequestV2.d.ts +24 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ApplyActionRequestV2.d.ts.map +1 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ObjectTypeFullMetadata.d.ts +18 -0
- package/build/types/FauxFoundry/typeHelpers/TH_ObjectTypeFullMetadata.d.ts.map +1 -0
- package/build/types/FauxFoundry/typeHelpers/ToObjectTypeDefinition.d.ts +12 -0
- package/build/types/FauxFoundry/typeHelpers/ToObjectTypeDefinition.d.ts.map +1 -0
- package/build/types/FauxFoundry/typeHelpers/index.d.ts +10 -0
- package/build/types/FauxFoundry/typeHelpers/index.d.ts.map +1 -0
- package/build/types/FauxFoundry/validateAction.d.ts +9 -0
- package/build/types/FauxFoundry/validateAction.d.ts.map +1 -0
- package/build/types/defaultOntologyForConjure.d.ts +7 -0
- package/build/types/defaultOntologyForConjure.d.ts.map +1 -0
- package/build/types/defaultOntologyMetadata.d.ts +2 -0
- package/build/types/defaultOntologyMetadata.d.ts.map +1 -0
- package/build/types/errors.d.ts +14 -0
- package/build/types/errors.d.ts.map +1 -0
- package/build/types/filterObjects.d.ts +8 -0
- package/build/types/filterObjects.d.ts.map +1 -0
- package/build/types/handlers/authHandlerMiddleware.d.ts +5 -0
- package/build/types/handlers/authHandlerMiddleware.d.ts.map +1 -0
- package/build/types/handlers/createActionHandlers.d.ts +3 -0
- package/build/types/handlers/createActionHandlers.d.ts.map +1 -0
- package/build/types/handlers/createAttachmentHandlers.d.ts +2 -0
- package/build/types/handlers/createAttachmentHandlers.d.ts.map +1 -0
- package/build/types/handlers/createFauxFoundryHandlers.d.ts +4 -0
- package/build/types/handlers/createFauxFoundryHandlers.d.ts.map +1 -0
- package/build/types/handlers/createLoadObjectsHandlers.d.ts +2 -0
- package/build/types/handlers/createLoadObjectsHandlers.d.ts.map +1 -0
- package/build/types/handlers/createMediaRefHandlers.d.ts +2 -0
- package/build/types/handlers/createMediaRefHandlers.d.ts.map +1 -0
- package/build/types/handlers/createMultipassServerHandlers.d.ts +2 -0
- package/build/types/handlers/createMultipassServerHandlers.d.ts.map +1 -0
- package/build/types/handlers/createObjectSetHandlers.d.ts +3 -0
- package/build/types/handlers/createObjectSetHandlers.d.ts.map +1 -0
- package/build/types/handlers/createOntologyHandlers.d.ts +4 -0
- package/build/types/handlers/createOntologyHandlers.d.ts.map +1 -0
- package/build/types/handlers/createQueryHandlers.d.ts +2 -0
- package/build/types/handlers/createQueryHandlers.d.ts.map +1 -0
- package/build/types/handlers/createTimeseriesAndGeotimeHandlers.d.ts +2 -0
- package/build/types/handlers/createTimeseriesAndGeotimeHandlers.d.ts.map +1 -0
- package/build/types/handlers/util/getPaginationParams.d.ts +11 -0
- package/build/types/handlers/util/getPaginationParams.d.ts.map +1 -0
- package/build/types/handlers/util/handleOpenApiCall.d.ts +49 -0
- package/build/types/handlers/util/handleOpenApiCall.d.ts.map +1 -0
- package/build/types/handlers/util/loadAll.d.ts +1 -0
- package/build/types/handlers/util/loadAll.d.ts.map +1 -0
- package/build/types/handlers/util/pageThroughResponseSearchParams.d.ts +20 -0
- package/build/types/handlers/util/pageThroughResponseSearchParams.d.ts.map +1 -0
- package/build/types/handlers/util/requireParam.d.ts +8 -0
- package/build/types/handlers/util/requireParam.d.ts.map +1 -0
- package/build/types/handlers/util/requireSearchParams.d.ts +2 -0
- package/build/types/handlers/util/requireSearchParams.d.ts.map +1 -0
- package/build/types/index.d.ts +14 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/ActionTypesV2.d.ts +4 -0
- package/build/types/mock/OntologiesV2/ActionTypesV2.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/Actions.d.ts +4 -0
- package/build/types/mock/OntologiesV2/Actions.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/AttachmentPropertiesV2.d.ts +4 -0
- package/build/types/mock/OntologiesV2/AttachmentPropertiesV2.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/Attachments.d.ts +5 -0
- package/build/types/mock/OntologiesV2/Attachments.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/LinkedObjectsV2.d.ts +4 -0
- package/build/types/mock/OntologiesV2/LinkedObjectsV2.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/MediaReferenceProperties.d.ts +5 -0
- package/build/types/mock/OntologiesV2/MediaReferenceProperties.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/ObjectTypesV2.d.ts +7 -0
- package/build/types/mock/OntologiesV2/ObjectTypesV2.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/OntologiesV2.d.ts +9 -0
- package/build/types/mock/OntologiesV2/OntologiesV2.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/OntologyInterfaces.d.ts +4 -0
- package/build/types/mock/OntologiesV2/OntologyInterfaces.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/OntologyObjectSets.d.ts +5 -0
- package/build/types/mock/OntologiesV2/OntologyObjectSets.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/OntologyObjectsV2.d.ts +4 -0
- package/build/types/mock/OntologiesV2/OntologyObjectsV2.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/Queries.d.ts +3 -0
- package/build/types/mock/OntologiesV2/Queries.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/QueryTypes.d.ts +4 -0
- package/build/types/mock/OntologiesV2/QueryTypes.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/TimeSeriesPropertiesV2.d.ts +5 -0
- package/build/types/mock/OntologiesV2/TimeSeriesPropertiesV2.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/TimeSeriesValueBankProperties.d.ts +4 -0
- package/build/types/mock/OntologiesV2/TimeSeriesValueBankProperties.d.ts.map +1 -0
- package/build/types/mock/OntologiesV2/index.d.ts +15 -0
- package/build/types/mock/OntologiesV2/index.d.ts.map +1 -0
- package/build/types/mock/index.d.ts +1 -0
- package/build/types/mock/index.d.ts.map +1 -0
- package/build/types/withoutRid.d.ts +3 -0
- package/build/types/withoutRid.d.ts.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
18
|
+
import { FauxAttachmentStore } from "./FauxAttachmentStore.js";
|
|
19
|
+
import { FauxDataStore } from "./FauxDataStore.js";
|
|
20
|
+
import { FauxOntology } from "./FauxOntology.js";
|
|
21
|
+
describe(FauxDataStore, () => {
|
|
22
|
+
describe("Simple Employee ontology", () => {
|
|
23
|
+
let attachmentsStore;
|
|
24
|
+
let fauxOntology;
|
|
25
|
+
let fauxDataStore;
|
|
26
|
+
const employees = Object.fromEntries(["a", "b", "c", "d"].map(id => [id, {
|
|
27
|
+
__apiName: "Employee",
|
|
28
|
+
__primaryKey: id,
|
|
29
|
+
id
|
|
30
|
+
}]));
|
|
31
|
+
beforeEach(() => {
|
|
32
|
+
attachmentsStore = new FauxAttachmentStore();
|
|
33
|
+
fauxOntology = new FauxOntology({
|
|
34
|
+
apiName: "foo",
|
|
35
|
+
description: "foo",
|
|
36
|
+
displayName: "foo",
|
|
37
|
+
rid: "ri.foo"
|
|
38
|
+
});
|
|
39
|
+
fauxDataStore = new FauxDataStore(fauxOntology, attachmentsStore);
|
|
40
|
+
fauxOntology.registerObjectType({
|
|
41
|
+
implementsInterfaces: [],
|
|
42
|
+
implementsInterfaces2: {},
|
|
43
|
+
linkTypes: [{
|
|
44
|
+
apiName: "peeps",
|
|
45
|
+
status: "EXPERIMENTAL",
|
|
46
|
+
objectTypeApiName: "Employee",
|
|
47
|
+
cardinality: "MANY",
|
|
48
|
+
displayName: "Peeps",
|
|
49
|
+
linkTypeRid: "rid.link-type.327"
|
|
50
|
+
}, {
|
|
51
|
+
apiName: "lead",
|
|
52
|
+
status: "EXPERIMENTAL",
|
|
53
|
+
objectTypeApiName: "Employee",
|
|
54
|
+
cardinality: "ONE",
|
|
55
|
+
displayName: "Lead",
|
|
56
|
+
linkTypeRid: "rid.link-type.327"
|
|
57
|
+
}],
|
|
58
|
+
objectType: {
|
|
59
|
+
apiName: "Employee",
|
|
60
|
+
description: "Employee",
|
|
61
|
+
displayName: "Employee",
|
|
62
|
+
rid: "ri.Employee",
|
|
63
|
+
icon: {
|
|
64
|
+
color: "#000000",
|
|
65
|
+
name: "whoCares",
|
|
66
|
+
type: "blueprint"
|
|
67
|
+
},
|
|
68
|
+
pluralDisplayName: "Employees",
|
|
69
|
+
primaryKey: "id",
|
|
70
|
+
properties: {
|
|
71
|
+
id: {
|
|
72
|
+
dataType: {
|
|
73
|
+
type: "string"
|
|
74
|
+
},
|
|
75
|
+
rid: "ri.id",
|
|
76
|
+
displayName: "id",
|
|
77
|
+
description: "id"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
status: "ACTIVE",
|
|
81
|
+
titleProperty: "id"
|
|
82
|
+
},
|
|
83
|
+
sharedPropertyTypeMapping: {}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
const getLeadsAndPeeps = id => ({
|
|
87
|
+
lead: fauxDataStore.getLinksOrThrow("Employee", id, "lead")[0],
|
|
88
|
+
peeps: fauxDataStore.getLinksOrThrow("Employee", id, "peeps")
|
|
89
|
+
});
|
|
90
|
+
it("should work in the happy paths", () => {
|
|
91
|
+
const {
|
|
92
|
+
a,
|
|
93
|
+
b,
|
|
94
|
+
c,
|
|
95
|
+
d
|
|
96
|
+
} = employees;
|
|
97
|
+
|
|
98
|
+
// set a's lead to b
|
|
99
|
+
fauxDataStore.registerObject(a);
|
|
100
|
+
fauxDataStore.registerObject(b);
|
|
101
|
+
fauxDataStore.registerLink(a, "lead", b, "peeps");
|
|
102
|
+
expect(getLeadsAndPeeps("a")).toMatchObject({
|
|
103
|
+
lead: b,
|
|
104
|
+
peeps: []
|
|
105
|
+
});
|
|
106
|
+
expect(getLeadsAndPeeps("b")).toMatchObject({
|
|
107
|
+
lead: undefined,
|
|
108
|
+
peeps: [a]
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// try the reverse (many to one this time)
|
|
112
|
+
fauxDataStore.registerObject(c);
|
|
113
|
+
fauxDataStore.registerObject(d);
|
|
114
|
+
// set c's lead to d
|
|
115
|
+
fauxDataStore.registerLink(d, "peeps", c, "lead");
|
|
116
|
+
expect(getLeadsAndPeeps("d")).toMatchObject({
|
|
117
|
+
lead: undefined,
|
|
118
|
+
peeps: [c]
|
|
119
|
+
});
|
|
120
|
+
expect(getLeadsAndPeeps("c")).toMatchObject({
|
|
121
|
+
lead: d,
|
|
122
|
+
peeps: []
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
// set b's lead to c
|
|
126
|
+
fauxDataStore.registerLink(c, "peeps", b, "lead");
|
|
127
|
+
expect(getLeadsAndPeeps("b")).toMatchObject({
|
|
128
|
+
lead: c,
|
|
129
|
+
peeps: [a]
|
|
130
|
+
});
|
|
131
|
+
expect(getLeadsAndPeeps("c")).toMatchObject({
|
|
132
|
+
lead: d,
|
|
133
|
+
peeps: [b]
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
// change b's lead to d
|
|
137
|
+
fauxDataStore.registerLink(d, "peeps", b, "lead");
|
|
138
|
+
expect(getLeadsAndPeeps("b")).toMatchObject({
|
|
139
|
+
lead: d,
|
|
140
|
+
peeps: [a] // b's peeps should not change
|
|
141
|
+
});
|
|
142
|
+
expect(getLeadsAndPeeps("c")).toMatchObject({
|
|
143
|
+
lead: d,
|
|
144
|
+
peeps: [] // c should no longer have b as a peep
|
|
145
|
+
});
|
|
146
|
+
expect(getLeadsAndPeeps("d")).toMatchObject({
|
|
147
|
+
lead: undefined,
|
|
148
|
+
peeps: [c, b] // d has two peeps now
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
// remove b's lead
|
|
152
|
+
fauxDataStore.unregisterLink(d, "peeps", b, "lead");
|
|
153
|
+
expect(getLeadsAndPeeps("b")).toMatchObject({
|
|
154
|
+
lead: undefined,
|
|
155
|
+
peeps: [a] // b's peeps should not change
|
|
156
|
+
});
|
|
157
|
+
expect(getLeadsAndPeeps("d")).toMatchObject({
|
|
158
|
+
lead: undefined,
|
|
159
|
+
peeps: [c] // d no longer leads b
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// change b's lead to d but in the other direction
|
|
163
|
+
fauxDataStore.registerLink(b, "lead", d, "peeps");
|
|
164
|
+
expect(getLeadsAndPeeps("b")).toMatchObject({
|
|
165
|
+
lead: d,
|
|
166
|
+
peeps: [a] // b's peeps should not change
|
|
167
|
+
});
|
|
168
|
+
expect(getLeadsAndPeeps("c")).toMatchObject({
|
|
169
|
+
lead: d,
|
|
170
|
+
peeps: [] // c should no longer have b as a peep
|
|
171
|
+
});
|
|
172
|
+
expect(getLeadsAndPeeps("d")).toMatchObject({
|
|
173
|
+
lead: undefined,
|
|
174
|
+
peeps: [c, b] // d has two peeps now
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
// remove b's lead in the other direction
|
|
178
|
+
fauxDataStore.unregisterLink(b, "lead", d, "peeps");
|
|
179
|
+
expect(getLeadsAndPeeps("b")).toMatchObject({
|
|
180
|
+
lead: undefined,
|
|
181
|
+
peeps: [a] // b's peeps should not change
|
|
182
|
+
});
|
|
183
|
+
expect(getLeadsAndPeeps("d")).toMatchObject({
|
|
184
|
+
lead: undefined,
|
|
185
|
+
peeps: [c] // d no longer leads b
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
//# sourceMappingURL=FauxDataStore.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FauxDataStore.test.js","names":["beforeEach","describe","expect","it","FauxAttachmentStore","FauxDataStore","FauxOntology","attachmentsStore","fauxOntology","fauxDataStore","employees","Object","fromEntries","map","id","__apiName","__primaryKey","apiName","description","displayName","rid","registerObjectType","implementsInterfaces","implementsInterfaces2","linkTypes","status","objectTypeApiName","cardinality","linkTypeRid","objectType","icon","color","name","type","pluralDisplayName","primaryKey","properties","dataType","titleProperty","sharedPropertyTypeMapping","getLeadsAndPeeps","lead","getLinksOrThrow","peeps","a","b","c","d","registerObject","registerLink","toMatchObject","undefined","unregisterLink"],"sources":["FauxDataStore.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { beforeEach, describe, expect, it } from \"vitest\";\nimport type { BaseServerObject } from \"./BaseServerObject.js\";\nimport { FauxAttachmentStore } from \"./FauxAttachmentStore.js\";\nimport { FauxDataStore } from \"./FauxDataStore.js\";\nimport { FauxOntology } from \"./FauxOntology.js\";\n\ndescribe(FauxDataStore, () => {\n describe(\"Simple Employee ontology\", () => {\n let attachmentsStore: FauxAttachmentStore;\n let fauxOntology: FauxOntology;\n let fauxDataStore: FauxDataStore;\n\n const pks = [\"a\", \"b\", \"c\", \"d\"] as const;\n const employees = Object\n .fromEntries(\n pks.map((id) =>\n [id, {\n __apiName: \"Employee\",\n __primaryKey: id,\n id,\n }] as const\n ),\n ) as unknown as Record<typeof pks[number], BaseServerObject>;\n\n beforeEach(() => {\n attachmentsStore = new FauxAttachmentStore();\n fauxOntology = new FauxOntology({\n apiName: \"foo\",\n description: \"foo\",\n displayName: \"foo\",\n rid: \"ri.foo\",\n });\n fauxDataStore = new FauxDataStore(fauxOntology, attachmentsStore);\n\n const Employee = {\n implementsInterfaces: [],\n implementsInterfaces2: {},\n linkTypes: [{\n apiName: \"peeps\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"MANY\",\n displayName: \"Peeps\",\n linkTypeRid: \"rid.link-type.327\",\n }, {\n apiName: \"lead\",\n status: \"EXPERIMENTAL\",\n objectTypeApiName: \"Employee\",\n cardinality: \"ONE\",\n displayName: \"Lead\",\n linkTypeRid: \"rid.link-type.327\",\n }],\n objectType: {\n apiName: \"Employee\",\n description: \"Employee\",\n displayName: \"Employee\",\n rid: \"ri.Employee\",\n icon: {\n color: \"#000000\",\n name: \"whoCares\",\n type: \"blueprint\",\n },\n pluralDisplayName: \"Employees\",\n primaryKey: \"id\",\n properties: {\n id: {\n dataType: { type: \"string\" },\n rid: \"ri.id\",\n displayName: \"id\",\n description: \"id\",\n },\n },\n status: \"ACTIVE\",\n titleProperty: \"id\",\n },\n sharedPropertyTypeMapping: {},\n } as const;\n\n fauxOntology.registerObjectType(Employee);\n });\n\n const getLeadsAndPeeps = (id: string) => ({\n lead: fauxDataStore.getLinksOrThrow(\"Employee\", id, \"lead\")[0],\n peeps: fauxDataStore.getLinksOrThrow(\"Employee\", id, \"peeps\"),\n });\n\n it(\"should work in the happy paths\", () => {\n const { a, b, c, d } = employees;\n\n // set a's lead to b\n fauxDataStore.registerObject(a);\n fauxDataStore.registerObject(b);\n fauxDataStore.registerLink(a, \"lead\", b, \"peeps\");\n\n expect(getLeadsAndPeeps(\"a\")).toMatchObject({\n lead: b,\n peeps: [],\n });\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: undefined,\n peeps: [a],\n });\n\n // try the reverse (many to one this time)\n fauxDataStore.registerObject(c);\n fauxDataStore.registerObject(d);\n // set c's lead to d\n fauxDataStore.registerLink(d, \"peeps\", c, \"lead\");\n\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c],\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [],\n });\n\n // set b's lead to c\n fauxDataStore.registerLink(c, \"peeps\", b, \"lead\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: c,\n peeps: [a],\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [b],\n });\n\n // change b's lead to d\n fauxDataStore.registerLink(d, \"peeps\", b, \"lead\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: d,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [], // c should no longer have b as a peep\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c, b], // d has two peeps now\n });\n\n // remove b's lead\n fauxDataStore.unregisterLink(d, \"peeps\", b, \"lead\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: undefined,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c], // d no longer leads b\n });\n\n // change b's lead to d but in the other direction\n fauxDataStore.registerLink(b, \"lead\", d, \"peeps\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: d,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"c\")).toMatchObject({\n lead: d,\n peeps: [], // c should no longer have b as a peep\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c, b], // d has two peeps now\n });\n\n // remove b's lead in the other direction\n fauxDataStore.unregisterLink(b, \"lead\", d, \"peeps\");\n expect(getLeadsAndPeeps(\"b\")).toMatchObject({\n lead: undefined,\n peeps: [a], // b's peeps should not change\n });\n expect(getLeadsAndPeeps(\"d\")).toMatchObject({\n lead: undefined,\n peeps: [c], // d no longer leads b\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import deepEqual from "fast-deep-equal";
|
|
18
|
+
import { OpenApiCallError } from "../handlers/util/handleOpenApiCall.js";
|
|
19
|
+
/**
|
|
20
|
+
* This is separate from the FauxDataStore so that we can in the future support
|
|
21
|
+
* this not-committing on errors. That functionality just does not exist at the moment
|
|
22
|
+
*/
|
|
23
|
+
export class FauxDataStoreBatch {
|
|
24
|
+
#fauxDataStore;
|
|
25
|
+
objectEdits = {
|
|
26
|
+
addedLinksCount: 0,
|
|
27
|
+
addedObjectCount: 0,
|
|
28
|
+
deletedLinksCount: 0,
|
|
29
|
+
deletedObjectsCount: 0,
|
|
30
|
+
modifiedObjectsCount: 0,
|
|
31
|
+
edits: []
|
|
32
|
+
};
|
|
33
|
+
constructor(fauxDataStore) {
|
|
34
|
+
this.#fauxDataStore = fauxDataStore;
|
|
35
|
+
}
|
|
36
|
+
getObject = (objectType, primaryKey) => {
|
|
37
|
+
return this.#fauxDataStore.getObjectOrThrow(objectType, primaryKey);
|
|
38
|
+
};
|
|
39
|
+
addObject(objectType, primaryKey, object) {
|
|
40
|
+
const existingObject = this.#fauxDataStore.getObject(objectType, primaryKey);
|
|
41
|
+
if (existingObject) {
|
|
42
|
+
throw new OpenApiCallError(500, {
|
|
43
|
+
errorCode: "CONFLICT",
|
|
44
|
+
errorName: "ObjectAlreadyExists",
|
|
45
|
+
errorInstanceId: "",
|
|
46
|
+
parameters: {
|
|
47
|
+
objectType,
|
|
48
|
+
primaryKey
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const fullMetadata = this.#fauxDataStore.ontology.getObjectTypeFullMetadataOrThrow(objectType);
|
|
53
|
+
this.#fauxDataStore.registerObject({
|
|
54
|
+
...object,
|
|
55
|
+
__apiName: objectType,
|
|
56
|
+
__primaryKey: primaryKey,
|
|
57
|
+
[fullMetadata.objectType.primaryKey]: primaryKey
|
|
58
|
+
});
|
|
59
|
+
this.objectEdits.edits.push({
|
|
60
|
+
type: "addObject",
|
|
61
|
+
primaryKey,
|
|
62
|
+
objectType
|
|
63
|
+
});
|
|
64
|
+
this.objectEdits.addedObjectCount += 1;
|
|
65
|
+
}
|
|
66
|
+
modifyObject(objectType, primaryKey, update) {
|
|
67
|
+
const origObj = this.#fauxDataStore.getObjectOrThrow(objectType, primaryKey);
|
|
68
|
+
const newObj = {
|
|
69
|
+
...origObj,
|
|
70
|
+
...update
|
|
71
|
+
};
|
|
72
|
+
if (!deepEqual(origObj, newObj)) {
|
|
73
|
+
this.#fauxDataStore.replaceObjectOrThrow(newObj);
|
|
74
|
+
this.objectEdits.edits.push({
|
|
75
|
+
type: "modifyObject",
|
|
76
|
+
primaryKey,
|
|
77
|
+
objectType
|
|
78
|
+
});
|
|
79
|
+
this.objectEdits.modifiedObjectsCount += 1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
deleteObject = (objectType, primaryKey) => {
|
|
83
|
+
this.#fauxDataStore.unregisterObjectOrThrow(objectType, primaryKey);
|
|
84
|
+
this.objectEdits.edits.push({
|
|
85
|
+
type: "deleteObject",
|
|
86
|
+
objectType,
|
|
87
|
+
primaryKey: primaryKey
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
addLink = (leftObjectType, leftPrimaryKey, leftLinkName, rightObjectType, rightPrimaryKey) => {
|
|
91
|
+
const [leftTypeSideV2, rightTypeSideV2] = this.#fauxDataStore.ontology.getBothLinkTypeSides(leftObjectType, leftLinkName, rightObjectType);
|
|
92
|
+
this.#fauxDataStore.registerLink({
|
|
93
|
+
__apiName: leftObjectType,
|
|
94
|
+
__primaryKey: leftPrimaryKey
|
|
95
|
+
}, leftTypeSideV2.apiName, {
|
|
96
|
+
__apiName: rightObjectType,
|
|
97
|
+
__primaryKey: rightPrimaryKey
|
|
98
|
+
}, rightTypeSideV2.apiName);
|
|
99
|
+
this.objectEdits.edits.push({
|
|
100
|
+
type: "addLink",
|
|
101
|
+
aSideObject: {
|
|
102
|
+
objectType: leftObjectType,
|
|
103
|
+
primaryKey: leftPrimaryKey
|
|
104
|
+
},
|
|
105
|
+
bSideObject: {
|
|
106
|
+
objectType: rightObjectType,
|
|
107
|
+
primaryKey: rightPrimaryKey
|
|
108
|
+
},
|
|
109
|
+
linkTypeApiNameAtoB: leftLinkName,
|
|
110
|
+
linkTypeApiNameBtoA: rightTypeSideV2.apiName
|
|
111
|
+
});
|
|
112
|
+
this.objectEdits.addedLinksCount += 1;
|
|
113
|
+
};
|
|
114
|
+
removeLink = (leftObjectType, leftPrimaryKey, leftLinkName, rightObjectType, rightPrimaryKey) => {
|
|
115
|
+
const [leftTypeSideV2, rightTypeSideV2] = this.#fauxDataStore.ontology.getBothLinkTypeSides(leftObjectType, leftLinkName, rightObjectType);
|
|
116
|
+
this.#fauxDataStore.unregisterLink({
|
|
117
|
+
__apiName: leftObjectType,
|
|
118
|
+
__primaryKey: leftPrimaryKey
|
|
119
|
+
}, leftTypeSideV2.apiName, {
|
|
120
|
+
__apiName: rightObjectType,
|
|
121
|
+
__primaryKey: rightPrimaryKey
|
|
122
|
+
}, rightTypeSideV2.apiName);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=FauxDataStoreBatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FauxDataStoreBatch.js","names":["deepEqual","OpenApiCallError","FauxDataStoreBatch","fauxDataStore","objectEdits","addedLinksCount","addedObjectCount","deletedLinksCount","deletedObjectsCount","modifiedObjectsCount","edits","constructor","getObject","objectType","primaryKey","getObjectOrThrow","addObject","object","existingObject","errorCode","errorName","errorInstanceId","parameters","fullMetadata","ontology","getObjectTypeFullMetadataOrThrow","registerObject","__apiName","__primaryKey","push","type","modifyObject","update","origObj","newObj","replaceObjectOrThrow","deleteObject","unregisterObjectOrThrow","addLink","leftObjectType","leftPrimaryKey","leftLinkName","rightObjectType","rightPrimaryKey","leftTypeSideV2","rightTypeSideV2","getBothLinkTypeSides","registerLink","apiName","aSideObject","bSideObject","linkTypeApiNameAtoB","linkTypeApiNameBtoA","removeLink","unregisterLink"],"sources":["FauxDataStoreBatch.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CompileTimeMetadata,\n ObjectTypeDefinition,\n PrimaryKeyType,\n} from \"@osdk/api\";\nimport type * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport deepEqual from \"fast-deep-equal\";\nimport { OpenApiCallError } from \"../handlers/util/handleOpenApiCall.js\";\nimport type { BaseServerObject } from \"./BaseServerObject.js\";\nimport type { FauxDataStore } from \"./FauxDataStore.js\";\nimport type { JustProps } from \"./typeHelpers/JustProps.js\";\n\n/**\n * This is separate from the FauxDataStore so that we can in the future support\n * this not-committing on errors. That functionality just does not exist at the moment\n */\nexport class FauxDataStoreBatch {\n #fauxDataStore: FauxDataStore;\n objectEdits: OntologiesV2.ObjectEdits = {\n addedLinksCount: 0,\n addedObjectCount: 0,\n deletedLinksCount: 0,\n deletedObjectsCount: 0,\n modifiedObjectsCount: 0,\n edits: [],\n };\n\n constructor(fauxDataStore: FauxDataStore) {\n this.#fauxDataStore = fauxDataStore;\n }\n\n getObject = (\n objectType: string,\n primaryKey: string | number | boolean,\n ): BaseServerObject => {\n return this.#fauxDataStore.getObjectOrThrow(\n objectType,\n primaryKey,\n );\n };\n\n public addObject<T extends ObjectTypeDefinition>(\n objectType: T[\"apiName\"],\n primaryKey: PrimaryKeyType<T>,\n update: Omit<JustProps<T>, CompileTimeMetadata<T>[\"primaryKeyApiName\"]>,\n ): void;\n public addObject(\n objectType: string,\n primaryKey: string | number | boolean,\n object: BaseServerObject,\n ): void;\n public addObject(\n objectType: string,\n primaryKey: string | number | boolean,\n object: BaseServerObject,\n ): void {\n const existingObject = this.#fauxDataStore.getObject(\n objectType,\n primaryKey,\n );\n if (existingObject) {\n throw new OpenApiCallError(\n 500,\n {\n errorCode: \"CONFLICT\",\n errorName: \"ObjectAlreadyExists\",\n errorInstanceId: \"\",\n parameters: {\n objectType,\n primaryKey,\n },\n } satisfies OntologiesV2.ObjectAlreadyExists,\n );\n }\n\n const fullMetadata = this.#fauxDataStore.ontology\n .getObjectTypeFullMetadataOrThrow(objectType);\n\n this.#fauxDataStore.registerObject({\n ...object,\n __apiName: objectType,\n __primaryKey: primaryKey,\n [fullMetadata.objectType.primaryKey]: primaryKey,\n });\n this.objectEdits.edits.push({\n type: \"addObject\",\n primaryKey,\n objectType,\n });\n this.objectEdits.addedObjectCount += 1;\n }\n\n public modifyObject<T extends ObjectTypeDefinition>(\n objectType: T[\"apiName\"],\n primaryKey: PrimaryKeyType<T>,\n update: Partial<JustProps<T>>,\n ): void;\n public modifyObject(\n objectType: string,\n primaryKey: string | number | boolean,\n update: Partial<BaseServerObject>,\n ): void;\n public modifyObject(\n objectType: string,\n primaryKey: string | number | boolean,\n update: Partial<BaseServerObject>,\n ): void {\n const origObj = this.#fauxDataStore.getObjectOrThrow(\n objectType,\n primaryKey,\n );\n const newObj = {\n ...origObj,\n ...update,\n };\n\n if (!deepEqual(origObj, newObj)) {\n this.#fauxDataStore.replaceObjectOrThrow(newObj);\n this.objectEdits.edits.push({\n type: \"modifyObject\",\n primaryKey,\n objectType,\n });\n this.objectEdits.modifiedObjectsCount += 1;\n }\n }\n\n deleteObject = (\n objectType: string,\n primaryKey: string | number | boolean,\n ): void => {\n this.#fauxDataStore.unregisterObjectOrThrow(objectType, primaryKey);\n this.objectEdits.edits.push({\n type: \"deleteObject\",\n objectType,\n primaryKey: primaryKey,\n });\n };\n\n addLink = (\n leftObjectType: string,\n leftPrimaryKey: string | number | boolean,\n leftLinkName: string,\n rightObjectType: string,\n rightPrimaryKey: string | number | boolean,\n ): void => {\n const [leftTypeSideV2, rightTypeSideV2] = this.#fauxDataStore.ontology\n .getBothLinkTypeSides(\n leftObjectType,\n leftLinkName,\n rightObjectType,\n );\n\n this.#fauxDataStore.registerLink(\n { __apiName: leftObjectType, __primaryKey: leftPrimaryKey },\n leftTypeSideV2.apiName,\n { __apiName: rightObjectType, __primaryKey: rightPrimaryKey },\n rightTypeSideV2.apiName,\n );\n\n this.objectEdits.edits.push({\n type: \"addLink\",\n aSideObject: {\n objectType: leftObjectType,\n primaryKey: leftPrimaryKey,\n },\n bSideObject: {\n objectType: rightObjectType,\n primaryKey: rightPrimaryKey,\n },\n linkTypeApiNameAtoB: leftLinkName,\n linkTypeApiNameBtoA: rightTypeSideV2.apiName,\n });\n\n this.objectEdits.addedLinksCount += 1;\n };\n\n removeLink = (\n leftObjectType: string,\n leftPrimaryKey: string | number | boolean,\n leftLinkName: string,\n rightObjectType: string,\n rightPrimaryKey: string | number | boolean,\n ): void => {\n const [leftTypeSideV2, rightTypeSideV2] = this.#fauxDataStore.ontology\n .getBothLinkTypeSides(\n leftObjectType,\n leftLinkName,\n rightObjectType,\n );\n\n this.#fauxDataStore.unregisterLink(\n { __apiName: leftObjectType, __primaryKey: leftPrimaryKey },\n leftTypeSideV2.apiName,\n { __apiName: rightObjectType, __primaryKey: rightPrimaryKey },\n rightTypeSideV2.apiName,\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import * as crypto from "node:crypto";
|
|
18
|
+
import { OntologyNotFoundError } from "../errors.js";
|
|
19
|
+
import { createFauxFoundryHandlers } from "../handlers/createFauxFoundryHandlers.js";
|
|
20
|
+
import { OpenApiCallError } from "../handlers/util/handleOpenApiCall.js";
|
|
21
|
+
import { FauxAttachmentStore } from "./FauxAttachmentStore.js";
|
|
22
|
+
import { FauxDataStore } from "./FauxDataStore.js";
|
|
23
|
+
import { FauxOntology } from "./FauxOntology.js";
|
|
24
|
+
export class FauxFoundry {
|
|
25
|
+
#ontologiesByRid = new Map();
|
|
26
|
+
#ontologiesByApiName = new Map();
|
|
27
|
+
#dataStoresByOntologyApiName = new Map();
|
|
28
|
+
#handlers;
|
|
29
|
+
attachments = new FauxAttachmentStore();
|
|
30
|
+
constructor(baseUrl, defaultOntology = {
|
|
31
|
+
apiName: "default-ontology",
|
|
32
|
+
displayName: "Ontology",
|
|
33
|
+
description: "The default ontology",
|
|
34
|
+
rid: `ri.ontology.main.ontology.${crypto.randomUUID()}`
|
|
35
|
+
}, {
|
|
36
|
+
logger
|
|
37
|
+
} = {}) {
|
|
38
|
+
this.baseUrl = baseUrl;
|
|
39
|
+
this.#handlers = createFauxFoundryHandlers(baseUrl, this);
|
|
40
|
+
this.createOntology(defaultOntology);
|
|
41
|
+
this.defaultOntologyRid = defaultOntology.rid;
|
|
42
|
+
this.logger = logger;
|
|
43
|
+
}
|
|
44
|
+
get handlers() {
|
|
45
|
+
return this.#handlers;
|
|
46
|
+
}
|
|
47
|
+
getDefaultOntology() {
|
|
48
|
+
return this.getOntology(this.defaultOntologyRid);
|
|
49
|
+
}
|
|
50
|
+
getDefaultDataStore() {
|
|
51
|
+
return this.getDataStore(this.defaultOntologyRid);
|
|
52
|
+
}
|
|
53
|
+
createOntology(metadata) {
|
|
54
|
+
const ret = new FauxOntology(metadata);
|
|
55
|
+
this.registerOntology(ret);
|
|
56
|
+
return ret;
|
|
57
|
+
}
|
|
58
|
+
registerOntology(ontology) {
|
|
59
|
+
this.#ontologiesByApiName.set(ontology.getOntologyFullMetadata().ontology.apiName, ontology);
|
|
60
|
+
this.#ontologiesByRid.set(ontology.getOntologyFullMetadata().ontology.rid, ontology);
|
|
61
|
+
}
|
|
62
|
+
getOntology(ontologyApiNameOrRid) {
|
|
63
|
+
const ontology = this.#ontologiesByApiName.get(ontologyApiNameOrRid) ?? this.#ontologiesByRid.get(ontologyApiNameOrRid);
|
|
64
|
+
if (!ontology) {
|
|
65
|
+
throw new OpenApiCallError(404, OntologyNotFoundError(ontologyApiNameOrRid));
|
|
66
|
+
}
|
|
67
|
+
return ontology;
|
|
68
|
+
}
|
|
69
|
+
setDataStore(ontologyApiNameOrRid, fauxDataStore) {
|
|
70
|
+
const ontology = this.getOntology(ontologyApiNameOrRid); // will throw
|
|
71
|
+
this.#dataStoresByOntologyApiName.set(ontology.apiName, fauxDataStore);
|
|
72
|
+
}
|
|
73
|
+
getDataStore(ontologyApiNameOrRid) {
|
|
74
|
+
const ontology = this.getOntology(ontologyApiNameOrRid); // will throw
|
|
75
|
+
const dataStore = this.#dataStoresByOntologyApiName.get(ontology.apiName);
|
|
76
|
+
if (!dataStore) {
|
|
77
|
+
const ret = new FauxDataStore(ontology, this.attachments);
|
|
78
|
+
this.setDataStore(ontologyApiNameOrRid, ret);
|
|
79
|
+
return ret;
|
|
80
|
+
}
|
|
81
|
+
return dataStore;
|
|
82
|
+
}
|
|
83
|
+
getEveryOntology() {
|
|
84
|
+
return Object.values(this.#ontologiesByApiName);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=FauxFoundry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FauxFoundry.js","names":["crypto","OntologyNotFoundError","createFauxFoundryHandlers","OpenApiCallError","FauxAttachmentStore","FauxDataStore","FauxOntology","FauxFoundry","ontologiesByRid","Map","ontologiesByApiName","dataStoresByOntologyApiName","handlers","attachments","constructor","baseUrl","defaultOntology","apiName","displayName","description","rid","randomUUID","logger","createOntology","defaultOntologyRid","getDefaultOntology","getOntology","getDefaultDataStore","getDataStore","metadata","ret","registerOntology","ontology","set","getOntologyFullMetadata","ontologyApiNameOrRid","get","setDataStore","fauxDataStore","dataStore","getEveryOntology","Object","values"],"sources":["FauxFoundry.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Logger } from \"@osdk/api\";\nimport type { Ontology, OntologyV2 } from \"@osdk/foundry.ontologies\";\nimport type { RequestHandler } from \"msw\";\nimport * as crypto from \"node:crypto\";\nimport { OntologyNotFoundError } from \"../errors.js\";\nimport { createFauxFoundryHandlers } from \"../handlers/createFauxFoundryHandlers.js\";\nimport { OpenApiCallError } from \"../handlers/util/handleOpenApiCall.js\";\nimport { FauxAttachmentStore } from \"./FauxAttachmentStore.js\";\nimport { FauxDataStore } from \"./FauxDataStore.js\";\nimport { FauxOntology } from \"./FauxOntology.js\";\n\nexport class FauxFoundry {\n #ontologiesByRid = new Map<string, FauxOntology>();\n #ontologiesByApiName = new Map<string, FauxOntology>();\n\n #dataStoresByOntologyApiName = new Map<string, FauxDataStore>();\n\n #handlers: RequestHandler[];\n\n readonly attachments: FauxAttachmentStore = new FauxAttachmentStore();\n readonly baseUrl: string;\n readonly defaultOntologyRid: any;\n readonly logger: Logger | undefined;\n\n constructor(\n baseUrl: string,\n defaultOntology: Ontology = {\n apiName: \"default-ontology\",\n displayName: \"Ontology\",\n description: \"The default ontology\",\n rid: `ri.ontology.main.ontology.${crypto.randomUUID()}`,\n },\n { logger }: { logger?: Logger } = {},\n ) {\n this.baseUrl = baseUrl;\n this.#handlers = createFauxFoundryHandlers(baseUrl, this);\n this.createOntology(defaultOntology);\n this.defaultOntologyRid = defaultOntology.rid;\n this.logger = logger;\n }\n\n get handlers(): RequestHandler[] {\n return this.#handlers;\n }\n\n getDefaultOntology(): FauxOntology {\n return this.getOntology(this.defaultOntologyRid);\n }\n\n getDefaultDataStore(): FauxDataStore {\n return this.getDataStore(this.defaultOntologyRid);\n }\n\n createOntology(metadata: OntologyV2): FauxOntology {\n const ret = new FauxOntology(metadata);\n this.registerOntology(ret);\n\n return ret;\n }\n\n registerOntology(ontology: FauxOntology): void {\n this.#ontologiesByApiName.set(\n ontology.getOntologyFullMetadata().ontology.apiName,\n ontology,\n );\n\n this.#ontologiesByRid.set(\n ontology.getOntologyFullMetadata().ontology.rid,\n ontology,\n );\n }\n\n getOntology(ontologyApiNameOrRid: string): FauxOntology {\n const ontology = this.#ontologiesByApiName.get(ontologyApiNameOrRid)\n ?? this.#ontologiesByRid.get(ontologyApiNameOrRid);\n if (!ontology) {\n throw new OpenApiCallError(\n 404,\n OntologyNotFoundError(ontologyApiNameOrRid),\n );\n }\n return ontology;\n }\n\n setDataStore(\n ontologyApiNameOrRid: string,\n fauxDataStore: FauxDataStore,\n ): void {\n const ontology = this.getOntology(ontologyApiNameOrRid); // will throw\n this.#dataStoresByOntologyApiName.set(\n ontology.apiName,\n fauxDataStore,\n );\n }\n\n getDataStore(ontologyApiNameOrRid: string): FauxDataStore {\n const ontology = this.getOntology(ontologyApiNameOrRid); // will throw\n const dataStore = this.#dataStoresByOntologyApiName.get(ontology.apiName);\n if (!dataStore) {\n const ret = new FauxDataStore(ontology, this.attachments);\n this.setDataStore(ontologyApiNameOrRid, ret);\n return ret;\n }\n return dataStore;\n }\n\n getEveryOntology(): FauxOntology[] {\n return Object.values(this.#ontologiesByApiName);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,KAAKA,MAAM,MAAM,aAAa;AACrC,SAASC,qBAAqB,QAAQ,cAAc;AACpD,SAASC,yBAAyB,QAAQ,0CAA0C;AACpF,SAASC,gBAAgB,QAAQ,uCAAuC;AACxE,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,YAAY,QAAQ,mBAAmB;AAEhD,OAAO,MAAMC,WAAW,CAAC;EACvB,CAACC,eAAe,GAAG,IAAIC,GAAG,CAAuB,CAAC;EAClD,CAACC,mBAAmB,GAAG,IAAID,GAAG,CAAuB,CAAC;EAEtD,CAACE,2BAA2B,GAAG,IAAIF,GAAG,CAAwB,CAAC;EAE/D,CAACG,QAAQ;EAEAC,WAAW,GAAwB,IAAIT,mBAAmB,CAAC,CAAC;EAKrEU,WAAWA,CACTC,OAAe,EACfC,eAAyB,GAAG;IAC1BC,OAAO,EAAE,kBAAkB;IAC3BC,WAAW,EAAE,UAAU;IACvBC,WAAW,EAAE,sBAAsB;IACnCC,GAAG,EAAE,6BAA6BpB,MAAM,CAACqB,UAAU,CAAC,CAAC;EACvD,CAAC,EACD;IAAEC;EAA4B,CAAC,GAAG,CAAC,CAAC,EACpC;IACA,IAAI,CAACP,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC,CAACH,QAAQ,GAAGV,yBAAyB,CAACa,OAAO,EAAE,IAAI,CAAC;IACzD,IAAI,CAACQ,cAAc,CAACP,eAAe,CAAC;IACpC,IAAI,CAACQ,kBAAkB,GAAGR,eAAe,CAACI,GAAG;IAC7C,IAAI,CAACE,MAAM,GAAGA,MAAM;EACtB;EAEA,IAAIV,QAAQA,CAAA,EAAqB;IAC/B,OAAO,IAAI,CAAC,CAACA,QAAQ;EACvB;EAEAa,kBAAkBA,CAAA,EAAiB;IACjC,OAAO,IAAI,CAACC,WAAW,CAAC,IAAI,CAACF,kBAAkB,CAAC;EAClD;EAEAG,mBAAmBA,CAAA,EAAkB;IACnC,OAAO,IAAI,CAACC,YAAY,CAAC,IAAI,CAACJ,kBAAkB,CAAC;EACnD;EAEAD,cAAcA,CAACM,QAAoB,EAAgB;IACjD,MAAMC,GAAG,GAAG,IAAIxB,YAAY,CAACuB,QAAQ,CAAC;IACtC,IAAI,CAACE,gBAAgB,CAACD,GAAG,CAAC;IAE1B,OAAOA,GAAG;EACZ;EAEAC,gBAAgBA,CAACC,QAAsB,EAAQ;IAC7C,IAAI,CAAC,CAACtB,mBAAmB,CAACuB,GAAG,CAC3BD,QAAQ,CAACE,uBAAuB,CAAC,CAAC,CAACF,QAAQ,CAACf,OAAO,EACnDe,QACF,CAAC;IAED,IAAI,CAAC,CAACxB,eAAe,CAACyB,GAAG,CACvBD,QAAQ,CAACE,uBAAuB,CAAC,CAAC,CAACF,QAAQ,CAACZ,GAAG,EAC/CY,QACF,CAAC;EACH;EAEAN,WAAWA,CAACS,oBAA4B,EAAgB;IACtD,MAAMH,QAAQ,GAAG,IAAI,CAAC,CAACtB,mBAAmB,CAAC0B,GAAG,CAACD,oBAAoB,CAAC,IAC/D,IAAI,CAAC,CAAC3B,eAAe,CAAC4B,GAAG,CAACD,oBAAoB,CAAC;IACpD,IAAI,CAACH,QAAQ,EAAE;MACb,MAAM,IAAI7B,gBAAgB,CACxB,GAAG,EACHF,qBAAqB,CAACkC,oBAAoB,CAC5C,CAAC;IACH;IACA,OAAOH,QAAQ;EACjB;EAEAK,YAAYA,CACVF,oBAA4B,EAC5BG,aAA4B,EACtB;IACN,MAAMN,QAAQ,GAAG,IAAI,CAACN,WAAW,CAACS,oBAAoB,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,CAACxB,2BAA2B,CAACsB,GAAG,CACnCD,QAAQ,CAACf,OAAO,EAChBqB,aACF,CAAC;EACH;EAEAV,YAAYA,CAACO,oBAA4B,EAAiB;IACxD,MAAMH,QAAQ,GAAG,IAAI,CAACN,WAAW,CAACS,oBAAoB,CAAC,CAAC,CAAC;IACzD,MAAMI,SAAS,GAAG,IAAI,CAAC,CAAC5B,2BAA2B,CAACyB,GAAG,CAACJ,QAAQ,CAACf,OAAO,CAAC;IACzE,IAAI,CAACsB,SAAS,EAAE;MACd,MAAMT,GAAG,GAAG,IAAIzB,aAAa,CAAC2B,QAAQ,EAAE,IAAI,CAACnB,WAAW,CAAC;MACzD,IAAI,CAACwB,YAAY,CAACF,oBAAoB,EAAEL,GAAG,CAAC;MAC5C,OAAOA,GAAG;IACZ;IACA,OAAOS,SAAS;EAClB;EAEAC,gBAAgBA,CAAA,EAAmB;IACjC,OAAOC,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC,CAAChC,mBAAmB,CAAC;EACjD;AACF","ignoreList":[]}
|