@osdk/client 2.1.0-beta.9 → 2.1.0
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 +529 -0
- package/build/browser/Client.js +7 -0
- package/build/browser/Client.js.map +1 -1
- package/build/browser/Definitions.test.js +1 -0
- package/build/browser/Definitions.test.js.map +1 -1
- package/build/browser/Logger.js +0 -15
- package/build/browser/Logger.js.map +1 -1
- package/build/browser/MinimalClientContext.js +0 -15
- package/build/browser/MinimalClientContext.js.map +1 -1
- package/build/browser/ResultOrError.js +1 -0
- package/build/browser/ResultOrError.js.map +1 -1
- package/build/browser/SatisfiesSemver.js +0 -15
- package/build/browser/SatisfiesSemver.js.map +1 -1
- package/build/browser/SatisfiesSemver.test.js +1 -0
- package/build/browser/SatisfiesSemver.test.js.map +1 -1
- package/build/browser/__unstable/ConjureSupport.js +8 -2
- package/build/browser/__unstable/ConjureSupport.js.map +1 -1
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js +5 -1
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
- package/build/browser/actions/ActionValidationError.js +1 -1
- package/build/browser/actions/ActionValidationError.js.map +1 -1
- package/build/browser/actions/actions.test.js +85 -4
- package/build/browser/actions/actions.test.js.map +1 -1
- package/build/browser/actions/applyAction.js +2 -1
- package/build/browser/actions/applyAction.js.map +1 -1
- package/build/browser/createClient.js +37 -26
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/createClient.test.js +25 -0
- package/build/browser/createClient.test.js.map +1 -1
- package/build/browser/createGeotimeSeriesProperty.js +5 -3
- package/build/browser/createGeotimeSeriesProperty.js.map +1 -1
- package/build/browser/createMediaReferenceProperty.js +47 -0
- package/build/browser/createMediaReferenceProperty.js.map +1 -0
- package/build/browser/createMinimalClient.js +8 -1
- package/build/browser/createMinimalClient.js.map +1 -1
- package/build/browser/createPlatformClient.js +1 -0
- package/build/browser/createPlatformClient.js.map +1 -1
- package/build/browser/createTimeseriesProperty.js +2 -1
- package/build/browser/createTimeseriesProperty.js.map +1 -1
- package/build/browser/definitions/LinkDefinitions.test.js +4 -0
- package/build/browser/definitions/LinkDefinitions.test.js.map +1 -1
- package/build/browser/fetchMetadata.js +2 -0
- package/build/browser/fetchMetadata.js.map +1 -1
- package/build/browser/fetchMetadata.test.js +19 -0
- package/build/browser/fetchMetadata.test.js.map +1 -1
- package/build/browser/index.js +2 -0
- package/build/browser/index.js.map +1 -1
- package/build/browser/intellisense.test.helpers/callsQueryAcceptsObject.js +3 -1
- package/build/browser/intellisense.test.helpers/callsQueryAcceptsObject.js.map +1 -1
- package/build/browser/intellisense.test.js +4 -1
- package/build/browser/intellisense.test.js.map +1 -1
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.js +2 -0
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyAggregationClause.js +2 -0
- package/build/browser/internal/conversions/modernToLegacyAggregationClause.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js +1 -0
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js +67 -18
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js +402 -14
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
- package/build/browser/object/AttachmentUpload.js +6 -13
- package/build/browser/object/AttachmentUpload.js.map +1 -1
- package/build/browser/object/Cache.js +27 -0
- package/build/browser/object/Cache.js.map +1 -1
- package/build/browser/object/Cache.test.js +10 -3
- package/build/browser/object/Cache.test.js.map +1 -1
- package/build/browser/object/SimpleCache.js +20 -0
- package/build/browser/object/SimpleCache.js.map +1 -1
- package/build/browser/object/aggregate.js +7 -9
- package/build/browser/object/aggregate.js.map +1 -1
- package/build/browser/object/aggregate.test.js +11 -9
- package/build/browser/object/aggregate.test.js.map +1 -1
- package/build/browser/object/attachment.test.js +1 -0
- package/build/browser/object/attachment.test.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js +0 -15
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js +4 -5
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js +0 -15
- package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +4 -1
- package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/PropertyDescriptorRecord.js +0 -15
- package/build/browser/object/convertWireToOsdkObjects/PropertyDescriptorRecord.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +42 -85
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js +1 -6
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +88 -88
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js +9 -3
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js +15 -38
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.js +51 -4
- package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js +197 -44
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/browser/object/fetchPage.js +42 -24
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/object/fetchPage.test.js +80 -1
- package/build/browser/object/fetchPage.test.js.map +1 -1
- package/build/browser/object/fetchSingle.js +3 -0
- package/build/browser/object/fetchSingle.js.map +1 -1
- package/build/browser/object/geotimeseriesreference.test.js +2 -0
- package/build/browser/object/geotimeseriesreference.test.js.map +1 -1
- package/build/browser/object/media.test.js +55 -0
- package/build/browser/object/media.test.js.map +1 -0
- package/build/browser/object/mediaUpload.js +20 -0
- package/build/browser/object/mediaUpload.js.map +1 -0
- package/build/browser/object/object.test.js +203 -10
- package/build/browser/object/object.test.js.map +1 -1
- package/build/browser/object/timeseries.test.js +11 -0
- package/build/browser/object/timeseries.test.js.map +1 -1
- package/build/browser/objectSet/InterfaceObjectSet.test.js +65 -0
- package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -0
- package/build/browser/objectSet/ObjectSet.test.js +140 -28
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSetFactory.js +0 -15
- package/build/browser/objectSet/ObjectSetFactory.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js +117 -37
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +53 -26
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/objectSet/conjureUnionType.js +1 -0
- package/build/browser/objectSet/conjureUnionType.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +9 -6
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/observable/DebugFlags.js +19 -0
- package/build/browser/observable/DebugFlags.js.map +1 -0
- package/build/browser/observable/ListPayload.js +2 -0
- package/build/browser/observable/ListPayload.js.map +1 -0
- package/build/browser/observable/ObjectPayload.js +2 -0
- package/build/browser/observable/ObjectPayload.js.map +1 -0
- package/build/browser/observable/ObservableClient.js +23 -0
- package/build/browser/observable/ObservableClient.js.map +1 -0
- package/build/browser/observable/OptimisticBuilder.js +2 -0
- package/build/browser/observable/OptimisticBuilder.js.map +1 -0
- package/build/browser/observable/internal/CacheKey.js +2 -0
- package/build/browser/observable/internal/CacheKey.js.map +1 -0
- package/build/browser/observable/internal/CacheKeys.js +60 -0
- package/build/browser/observable/internal/CacheKeys.js.map +1 -0
- package/build/browser/observable/internal/Canonical.js +2 -0
- package/build/browser/observable/internal/Canonical.js.map +1 -0
- package/build/browser/observable/internal/ChangedObjects.js +24 -0
- package/build/browser/observable/internal/ChangedObjects.js.map +1 -0
- package/build/browser/observable/internal/Layer.js +76 -0
- package/build/browser/observable/internal/Layer.js.map +1 -0
- package/build/browser/observable/internal/ListQuery.js +250 -0
- package/build/browser/observable/internal/ListQuery.js.map +1 -0
- package/build/browser/observable/internal/ObjectQuery.js +71 -0
- package/build/browser/observable/internal/ObjectQuery.js.map +1 -0
- package/build/browser/observable/internal/ObservableClientImpl.js +38 -0
- package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -0
- package/build/browser/observable/internal/OptimisticId.js +30 -0
- package/build/browser/observable/internal/OptimisticId.js.map +1 -0
- package/build/browser/observable/internal/OptimisticJob.js +91 -0
- package/build/browser/observable/internal/OptimisticJob.js.map +1 -0
- package/build/browser/observable/internal/Query.js +70 -0
- package/build/browser/observable/internal/Query.js.map +1 -0
- package/build/browser/observable/internal/RefCounts.js +77 -0
- package/build/browser/observable/internal/RefCounts.js.map +1 -0
- package/build/browser/observable/internal/Store.js +464 -0
- package/build/browser/observable/internal/Store.js.map +1 -0
- package/build/browser/observable/internal/Store.test.js +765 -0
- package/build/browser/observable/internal/Store.test.js.map +1 -0
- package/build/browser/observable/internal/WeakMapWithEntries.js +124 -0
- package/build/browser/observable/internal/WeakMapWithEntries.js.map +1 -0
- package/build/browser/observable/internal/WhereClauseCanonicalizer.js +83 -0
- package/build/browser/observable/internal/WhereClauseCanonicalizer.js.map +1 -0
- package/build/browser/observable/internal/WhereClauseCanonicalizer.test.js +131 -0
- package/build/browser/observable/internal/WhereClauseCanonicalizer.test.js.map +1 -0
- package/build/browser/observable/internal/objectMatchesWhereClause.js +112 -0
- package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -0
- package/build/browser/observable/internal/objectMatchesWhereClause.test.js +121 -0
- package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -0
- package/build/browser/observable/internal/testUtils.js +178 -0
- package/build/browser/observable/internal/testUtils.js.map +1 -0
- package/build/browser/observable/types.js +2 -0
- package/build/browser/observable/types.js.map +1 -0
- package/build/browser/ontology/OntologyProvider.js +1 -0
- package/build/browser/ontology/OntologyProvider.js.map +1 -1
- package/build/browser/ontology/StandardOntologyProvider.js +2 -0
- package/build/browser/ontology/StandardOntologyProvider.js.map +1 -1
- package/build/browser/ontology/StandardOntologyProvider.test.js +2 -0
- package/build/browser/ontology/StandardOntologyProvider.test.js.map +1 -1
- package/build/browser/ontology/loadActionMetadata.js +2 -1
- package/build/browser/ontology/loadActionMetadata.js.map +1 -1
- package/build/browser/ontology/loadFullObjectMetadata.js +2 -1
- package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/browser/ontology/loadInterfaceMetadata.js +2 -1
- package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -1
- package/build/browser/ontology/loadQueryMetadata.js +2 -1
- package/build/browser/ontology/loadQueryMetadata.js.map +1 -1
- package/build/browser/ontology/makeConjureContext.js +1 -0
- package/build/browser/ontology/makeConjureContext.js.map +1 -1
- package/build/browser/pageRequestAsAsyncIter.js +1 -0
- package/build/browser/pageRequestAsAsyncIter.js.map +1 -1
- package/build/browser/public/internal.js +20 -0
- package/build/browser/public/internal.js.map +1 -0
- package/build/browser/public/unstable-do-not-use.js +5 -0
- package/build/browser/public/unstable-do-not-use.js.map +1 -1
- package/build/browser/public-utils/createAndFetchTempObjectSetRid.js +34 -0
- package/build/browser/public-utils/createAndFetchTempObjectSetRid.js.map +1 -0
- package/build/browser/public-utils/hydrateAttachmentFromRid.js +45 -0
- package/build/browser/public-utils/hydrateAttachmentFromRid.js.map +1 -0
- package/build/browser/public-utils/hydrateObjectSetFromRid.js +39 -0
- package/build/browser/public-utils/hydrateObjectSetFromRid.js.map +1 -0
- package/build/browser/queries/applyQuery.js +5 -5
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/queries/queries.test.js +9 -0
- package/build/browser/queries/queries.test.js.map +1 -1
- package/build/browser/queries/types.js +0 -15
- package/build/browser/queries/types.js.map +1 -1
- package/build/browser/tsserver.js +1 -0
- package/build/browser/tsserver.js.map +1 -1
- package/build/browser/util/ArrayElement.js +0 -15
- package/build/browser/util/ArrayElement.js.map +1 -1
- package/build/browser/util/NOOP.js +0 -15
- package/build/browser/util/NOOP.js.map +1 -1
- package/build/browser/util/NullableProps.js +0 -15
- package/build/browser/util/NullableProps.js.map +1 -1
- package/build/browser/util/UserAgent.js +2 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/WireObjectSet.js +2 -0
- package/build/browser/util/WireObjectSet.js.map +1 -1
- package/build/browser/util/addUserAgentAndRequestContextHeaders.js +1 -0
- package/build/browser/util/addUserAgentAndRequestContextHeaders.js.map +1 -1
- package/build/browser/util/augmentRequestContext.js +1 -0
- package/build/browser/util/augmentRequestContext.js.map +1 -1
- package/build/browser/util/datetimeConverters.js +60 -0
- package/build/browser/util/datetimeConverters.js.map +1 -0
- package/build/browser/util/datetimeConverters.test.js +76 -0
- package/build/browser/util/datetimeConverters.test.js.map +1 -0
- package/build/browser/util/interfaceUtils.js +21 -0
- package/build/browser/util/interfaceUtils.js.map +1 -0
- package/build/browser/util/isOntologyObjectV2.js +1 -0
- package/build/browser/util/isOntologyObjectV2.js.map +1 -1
- package/build/browser/util/isOsdkBaseObject.js +1 -0
- package/build/browser/util/isOsdkBaseObject.js.map +1 -1
- package/build/browser/util/isOsdkObject.js +1 -0
- package/build/browser/util/isOsdkObject.js.map +1 -1
- package/build/browser/util/objectSetUtils.js +26 -0
- package/build/browser/util/objectSetUtils.js.map +1 -0
- package/build/browser/util/partialBy.js +0 -15
- package/build/browser/util/partialBy.js.map +1 -1
- package/build/browser/util/streamutils.js +7 -0
- package/build/browser/util/streamutils.js.map +1 -1
- package/build/browser/util/timeseriesUtils.js +2 -1
- package/build/browser/util/timeseriesUtils.js.map +1 -1
- package/build/browser/util/toDataValue.js +28 -2
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/browser/util/toDataValue.test.js +14 -1
- package/build/browser/util/toDataValue.test.js.map +1 -1
- package/build/browser/util/toDataValueQueries.js +10 -1
- package/build/browser/util/toDataValueQueries.js.map +1 -1
- package/build/cjs/Client-C8K3E1vH.d.cts +67 -0
- package/build/cjs/chunk-65QQ6SME.cjs +922 -0
- package/build/cjs/chunk-65QQ6SME.cjs.map +1 -0
- package/build/cjs/chunk-FEUFIE6T.cjs +465 -0
- package/build/cjs/chunk-FEUFIE6T.cjs.map +1 -0
- package/build/cjs/chunk-Q7SFCCGT.cjs +11 -0
- package/build/cjs/chunk-Q7SFCCGT.cjs.map +1 -0
- package/build/cjs/graphql-JJX5MZPQ.cjs +10491 -0
- package/build/cjs/graphql-JJX5MZPQ.cjs.map +1 -0
- package/build/cjs/index.cjs +1665 -0
- package/build/cjs/index.cjs.map +1 -0
- package/build/cjs/index.d.cts +85 -0
- package/build/cjs/public/internal.cjs +36 -0
- package/build/cjs/public/internal.cjs.map +1 -0
- package/build/cjs/public/internal.d.cts +33 -0
- package/build/cjs/public/unstable-do-not-use.cjs +1248 -0
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -0
- package/build/cjs/public/unstable-do-not-use.d.cts +62 -0
- package/build/esm/Client.js +7 -0
- package/build/esm/Client.js.map +1 -1
- package/build/esm/Definitions.test.js +1 -0
- package/build/esm/Definitions.test.js.map +1 -1
- package/build/esm/Logger.js +0 -15
- package/build/esm/Logger.js.map +1 -1
- package/build/esm/MinimalClientContext.js +0 -15
- package/build/esm/MinimalClientContext.js.map +1 -1
- package/build/esm/ResultOrError.js +1 -0
- package/build/esm/ResultOrError.js.map +1 -1
- package/build/esm/SatisfiesSemver.js +0 -15
- package/build/esm/SatisfiesSemver.js.map +1 -1
- package/build/esm/SatisfiesSemver.test.js +1 -0
- package/build/esm/SatisfiesSemver.test.js.map +1 -1
- package/build/esm/__unstable/ConjureSupport.js +8 -2
- package/build/esm/__unstable/ConjureSupport.js.map +1 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js +5 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
- package/build/esm/actions/ActionValidationError.js +1 -1
- package/build/esm/actions/ActionValidationError.js.map +1 -1
- package/build/esm/actions/actions.test.js +85 -4
- package/build/esm/actions/actions.test.js.map +1 -1
- package/build/esm/actions/applyAction.js +2 -1
- package/build/esm/actions/applyAction.js.map +1 -1
- package/build/esm/createClient.js +37 -26
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/createClient.test.js +25 -0
- package/build/esm/createClient.test.js.map +1 -1
- package/build/esm/createGeotimeSeriesProperty.js +5 -3
- package/build/esm/createGeotimeSeriesProperty.js.map +1 -1
- package/build/esm/createMediaReferenceProperty.js +47 -0
- package/build/esm/createMediaReferenceProperty.js.map +1 -0
- package/build/esm/createMinimalClient.js +8 -1
- package/build/esm/createMinimalClient.js.map +1 -1
- package/build/esm/createPlatformClient.js +1 -0
- package/build/esm/createPlatformClient.js.map +1 -1
- package/build/esm/createTimeseriesProperty.js +2 -1
- package/build/esm/createTimeseriesProperty.js.map +1 -1
- package/build/esm/definitions/LinkDefinitions.test.js +4 -0
- package/build/esm/definitions/LinkDefinitions.test.js.map +1 -1
- package/build/esm/fetchMetadata.js +2 -0
- package/build/esm/fetchMetadata.js.map +1 -1
- package/build/esm/fetchMetadata.test.js +19 -0
- package/build/esm/fetchMetadata.test.js.map +1 -1
- package/build/esm/index.js +2 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/intellisense.test.helpers/callsQueryAcceptsObject.js +3 -1
- package/build/esm/intellisense.test.helpers/callsQueryAcceptsObject.js.map +1 -1
- package/build/esm/intellisense.test.js +4 -1
- package/build/esm/intellisense.test.js.map +1 -1
- package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.js +2 -0
- package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyAggregationClause.js +2 -0
- package/build/esm/internal/conversions/modernToLegacyAggregationClause.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js +1 -0
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js +67 -18
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js +402 -14
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
- package/build/esm/object/AttachmentUpload.js +6 -13
- package/build/esm/object/AttachmentUpload.js.map +1 -1
- package/build/esm/object/Cache.js +27 -0
- package/build/esm/object/Cache.js.map +1 -1
- package/build/esm/object/Cache.test.js +10 -3
- package/build/esm/object/Cache.test.js.map +1 -1
- package/build/esm/object/SimpleCache.js +20 -0
- package/build/esm/object/SimpleCache.js.map +1 -1
- package/build/esm/object/aggregate.js +7 -9
- package/build/esm/object/aggregate.js.map +1 -1
- package/build/esm/object/aggregate.test.js +11 -9
- package/build/esm/object/aggregate.test.js.map +1 -1
- package/build/esm/object/attachment.test.js +1 -0
- package/build/esm/object/attachment.test.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js +0 -15
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js +4 -5
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js +0 -15
- package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js +4 -1
- package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/PropertyDescriptorRecord.js +0 -15
- package/build/esm/object/convertWireToOsdkObjects/PropertyDescriptorRecord.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +42 -85
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js +1 -6
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +88 -88
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js +9 -3
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js +15 -38
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.js +51 -4
- package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js +197 -44
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/esm/object/fetchPage.js +42 -24
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/object/fetchPage.test.js +80 -1
- package/build/esm/object/fetchPage.test.js.map +1 -1
- package/build/esm/object/fetchSingle.js +3 -0
- package/build/esm/object/fetchSingle.js.map +1 -1
- package/build/esm/object/geotimeseriesreference.test.js +2 -0
- package/build/esm/object/geotimeseriesreference.test.js.map +1 -1
- package/build/esm/object/media.test.js +55 -0
- package/build/esm/object/media.test.js.map +1 -0
- package/build/esm/object/mediaUpload.js +20 -0
- package/build/esm/object/mediaUpload.js.map +1 -0
- package/build/esm/object/object.test.js +203 -10
- package/build/esm/object/object.test.js.map +1 -1
- package/build/esm/object/timeseries.test.js +11 -0
- package/build/esm/object/timeseries.test.js.map +1 -1
- package/build/esm/objectSet/InterfaceObjectSet.test.js +65 -0
- package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -0
- package/build/esm/objectSet/ObjectSet.test.js +140 -28
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSetFactory.js +0 -15
- package/build/esm/objectSet/ObjectSetFactory.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js +117 -40
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +53 -26
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/objectSet/conjureUnionType.js +1 -0
- package/build/esm/objectSet/conjureUnionType.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +9 -6
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/observable/DebugFlags.js +19 -0
- package/build/esm/observable/DebugFlags.js.map +1 -0
- package/build/esm/observable/ListPayload.js +2 -0
- package/build/esm/observable/ListPayload.js.map +1 -0
- package/build/esm/observable/ObjectPayload.js +2 -0
- package/build/esm/observable/ObjectPayload.js.map +1 -0
- package/build/esm/observable/ObservableClient.js +23 -0
- package/build/esm/observable/ObservableClient.js.map +1 -0
- package/build/esm/observable/OptimisticBuilder.js +2 -0
- package/build/esm/observable/OptimisticBuilder.js.map +1 -0
- package/build/esm/observable/internal/CacheKey.js +2 -0
- package/build/esm/observable/internal/CacheKey.js.map +1 -0
- package/build/esm/observable/internal/CacheKeys.js +60 -0
- package/build/esm/observable/internal/CacheKeys.js.map +1 -0
- package/build/esm/observable/internal/Canonical.js +2 -0
- package/build/esm/observable/internal/Canonical.js.map +1 -0
- package/build/esm/observable/internal/ChangedObjects.js +24 -0
- package/build/esm/observable/internal/ChangedObjects.js.map +1 -0
- package/build/esm/observable/internal/Layer.js +76 -0
- package/build/esm/observable/internal/Layer.js.map +1 -0
- package/build/esm/observable/internal/ListQuery.js +250 -0
- package/build/esm/observable/internal/ListQuery.js.map +1 -0
- package/build/esm/observable/internal/ObjectQuery.js +71 -0
- package/build/esm/observable/internal/ObjectQuery.js.map +1 -0
- package/build/esm/observable/internal/ObservableClientImpl.js +38 -0
- package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -0
- package/build/esm/observable/internal/OptimisticId.js +30 -0
- package/build/esm/observable/internal/OptimisticId.js.map +1 -0
- package/build/esm/observable/internal/OptimisticJob.js +91 -0
- package/build/esm/observable/internal/OptimisticJob.js.map +1 -0
- package/build/esm/observable/internal/Query.js +70 -0
- package/build/esm/observable/internal/Query.js.map +1 -0
- package/build/esm/observable/internal/RefCounts.js +77 -0
- package/build/esm/observable/internal/RefCounts.js.map +1 -0
- package/build/esm/observable/internal/Store.js +464 -0
- package/build/esm/observable/internal/Store.js.map +1 -0
- package/build/esm/observable/internal/Store.test.js +765 -0
- package/build/esm/observable/internal/Store.test.js.map +1 -0
- package/build/esm/observable/internal/WeakMapWithEntries.js +124 -0
- package/build/esm/observable/internal/WeakMapWithEntries.js.map +1 -0
- package/build/esm/observable/internal/WhereClauseCanonicalizer.js +83 -0
- package/build/esm/observable/internal/WhereClauseCanonicalizer.js.map +1 -0
- package/build/esm/observable/internal/WhereClauseCanonicalizer.test.js +131 -0
- package/build/esm/observable/internal/WhereClauseCanonicalizer.test.js.map +1 -0
- package/build/esm/observable/internal/objectMatchesWhereClause.js +112 -0
- package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -0
- package/build/esm/observable/internal/objectMatchesWhereClause.test.js +121 -0
- package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -0
- package/build/esm/observable/internal/testUtils.js +178 -0
- package/build/esm/observable/internal/testUtils.js.map +1 -0
- package/build/esm/observable/types.js +2 -0
- package/build/esm/observable/types.js.map +1 -0
- package/build/esm/ontology/OntologyProvider.js +1 -0
- package/build/esm/ontology/OntologyProvider.js.map +1 -1
- package/build/esm/ontology/StandardOntologyProvider.js +2 -0
- package/build/esm/ontology/StandardOntologyProvider.js.map +1 -1
- package/build/esm/ontology/StandardOntologyProvider.test.js +2 -0
- package/build/esm/ontology/StandardOntologyProvider.test.js.map +1 -1
- package/build/esm/ontology/loadActionMetadata.js +2 -1
- package/build/esm/ontology/loadActionMetadata.js.map +1 -1
- package/build/esm/ontology/loadFullObjectMetadata.js +2 -1
- package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/esm/ontology/loadInterfaceMetadata.js +2 -1
- package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -1
- package/build/esm/ontology/loadQueryMetadata.js +2 -1
- package/build/esm/ontology/loadQueryMetadata.js.map +1 -1
- package/build/esm/ontology/makeConjureContext.js +1 -0
- package/build/esm/ontology/makeConjureContext.js.map +1 -1
- package/build/esm/pageRequestAsAsyncIter.js +1 -0
- package/build/esm/pageRequestAsAsyncIter.js.map +1 -1
- package/build/esm/public/internal.js +20 -0
- package/build/esm/public/internal.js.map +1 -0
- package/build/esm/public/unstable-do-not-use.js +5 -0
- package/build/esm/public/unstable-do-not-use.js.map +1 -1
- package/build/esm/public-utils/createAndFetchTempObjectSetRid.js +34 -0
- package/build/esm/public-utils/createAndFetchTempObjectSetRid.js.map +1 -0
- package/build/esm/public-utils/hydrateAttachmentFromRid.js +45 -0
- package/build/esm/public-utils/hydrateAttachmentFromRid.js.map +1 -0
- package/build/esm/public-utils/hydrateObjectSetFromRid.js +39 -0
- package/build/esm/public-utils/hydrateObjectSetFromRid.js.map +1 -0
- package/build/esm/queries/applyQuery.js +5 -5
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/queries/queries.test.js +9 -0
- package/build/esm/queries/queries.test.js.map +1 -1
- package/build/esm/queries/types.js +0 -15
- package/build/esm/queries/types.js.map +1 -1
- package/build/esm/tsserver.js +1 -0
- package/build/esm/tsserver.js.map +1 -1
- package/build/esm/util/ArrayElement.js +0 -15
- package/build/esm/util/ArrayElement.js.map +1 -1
- package/build/esm/util/NOOP.js +0 -15
- package/build/esm/util/NOOP.js.map +1 -1
- package/build/esm/util/NullableProps.js +0 -15
- package/build/esm/util/NullableProps.js.map +1 -1
- package/build/esm/util/UserAgent.js +2 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/WireObjectSet.js +2 -0
- package/build/esm/util/WireObjectSet.js.map +1 -1
- package/build/esm/util/addUserAgentAndRequestContextHeaders.js +1 -0
- package/build/esm/util/addUserAgentAndRequestContextHeaders.js.map +1 -1
- package/build/esm/util/augmentRequestContext.js +1 -0
- package/build/esm/util/augmentRequestContext.js.map +1 -1
- package/build/esm/util/datetimeConverters.js +60 -0
- package/build/esm/util/datetimeConverters.js.map +1 -0
- package/build/esm/util/datetimeConverters.test.js +76 -0
- package/build/esm/util/datetimeConverters.test.js.map +1 -0
- package/build/esm/util/interfaceUtils.js +21 -0
- package/build/esm/util/interfaceUtils.js.map +1 -0
- package/build/esm/util/isOntologyObjectV2.js +1 -0
- package/build/esm/util/isOntologyObjectV2.js.map +1 -1
- package/build/esm/util/isOsdkBaseObject.js +1 -0
- package/build/esm/util/isOsdkBaseObject.js.map +1 -1
- package/build/esm/util/isOsdkObject.js +1 -0
- package/build/esm/util/isOsdkObject.js.map +1 -1
- package/build/esm/util/objectSetUtils.js +26 -0
- package/build/esm/util/objectSetUtils.js.map +1 -0
- package/build/esm/util/partialBy.js +0 -15
- package/build/esm/util/partialBy.js.map +1 -1
- package/build/esm/util/streamutils.js +7 -0
- package/build/esm/util/streamutils.js.map +1 -1
- package/build/esm/util/timeseriesUtils.js +2 -1
- package/build/esm/util/timeseriesUtils.js.map +1 -1
- package/build/esm/util/toDataValue.js +28 -2
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/esm/util/toDataValue.test.js +14 -1
- package/build/esm/util/toDataValue.test.js.map +1 -1
- package/build/esm/util/toDataValueQueries.js +10 -1
- package/build/esm/util/toDataValueQueries.js.map +1 -1
- package/build/types/Client.d.ts +22 -0
- package/build/types/Client.d.ts.map +1 -0
- package/build/types/Definitions.test.d.ts +1 -0
- package/build/types/Definitions.test.d.ts.map +1 -0
- package/build/types/Logger.d.ts +18 -0
- package/build/types/Logger.d.ts.map +1 -0
- package/build/types/MinimalClientContext.d.ts +25 -0
- package/build/types/MinimalClientContext.d.ts.map +1 -0
- package/build/types/ResultOrError.d.ts +11 -0
- package/build/types/ResultOrError.d.ts.map +1 -0
- package/build/types/SatisfiesSemver.d.ts +10 -0
- package/build/types/SatisfiesSemver.d.ts.map +1 -0
- package/build/types/SatisfiesSemver.test.d.ts +1 -0
- package/build/types/SatisfiesSemver.test.d.ts.map +1 -0
- package/build/types/__unstable/ConjureSupport.d.ts +37 -0
- package/build/types/__unstable/ConjureSupport.d.ts.map +1 -0
- package/build/types/__unstable/createBulkLinksAsyncIterFactory.d.ts +4 -0
- package/build/types/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -0
- package/build/types/actions/ActionValidationError.d.ts +5 -0
- package/build/types/actions/ActionValidationError.d.ts.map +1 -0
- package/build/types/actions/actions.test.d.ts +1 -0
- package/build/types/actions/actions.test.d.ts.map +1 -0
- package/build/types/actions/applyAction.d.ts +31 -0
- package/build/types/actions/applyAction.d.ts.map +1 -0
- package/build/types/createClient.d.ts +5 -0
- package/build/types/createClient.d.ts.map +1 -0
- package/build/types/createClient.test.d.ts +1 -0
- package/build/types/createClient.test.d.ts.map +1 -0
- package/build/types/createGeotimeSeriesProperty.d.ts +13 -0
- package/build/types/createGeotimeSeriesProperty.d.ts.map +1 -0
- package/build/types/createMediaReferenceProperty.d.ts +13 -0
- package/build/types/createMediaReferenceProperty.d.ts.map +1 -0
- package/build/types/createMinimalClient.d.ts +1 -0
- package/build/types/createMinimalClient.d.ts.map +1 -0
- package/build/types/createPlatformClient.d.ts +15 -0
- package/build/types/createPlatformClient.d.ts.map +1 -0
- package/build/types/createTimeseriesProperty.d.ts +13 -0
- package/build/types/createTimeseriesProperty.d.ts.map +1 -0
- package/build/types/definitions/LinkDefinitions.test.d.ts +1 -0
- package/build/types/definitions/LinkDefinitions.test.d.ts.map +1 -0
- package/build/types/fetchMetadata.d.ts +1 -0
- package/build/types/fetchMetadata.d.ts.map +1 -0
- package/build/types/fetchMetadata.test.d.ts +1 -0
- package/build/types/fetchMetadata.test.d.ts.map +1 -0
- package/build/types/index.d.ts +12 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/intellisense.test.d.ts +1 -0
- package/build/types/intellisense.test.d.ts.map +1 -0
- package/build/types/intellisense.test.helpers/callsQueryAcceptsObject.d.ts +1 -0
- package/build/types/intellisense.test.helpers/callsQueryAcceptsObject.d.ts.map +1 -0
- package/build/types/internal/conversions/legacyToModernSingleAggregationResult.d.ts +1 -0
- package/build/types/internal/conversions/legacyToModernSingleAggregationResult.d.ts.map +1 -0
- package/build/types/internal/conversions/modernToLegacyAggregationClause.d.ts +1 -0
- package/build/types/internal/conversions/modernToLegacyAggregationClause.d.ts.map +1 -0
- package/build/types/internal/conversions/modernToLegacyGroupByClause.d.ts +1 -0
- package/build/types/internal/conversions/modernToLegacyGroupByClause.d.ts.map +1 -0
- package/build/types/internal/conversions/modernToLegacyWhereClause.d.ts +1 -0
- package/build/types/internal/conversions/modernToLegacyWhereClause.d.ts.map +1 -0
- package/build/types/internal/conversions/modernToLegacyWhereClause.test.d.ts +1 -0
- package/build/types/internal/conversions/modernToLegacyWhereClause.test.d.ts.map +1 -0
- package/build/types/object/AttachmentUpload.d.ts +3 -0
- package/build/types/object/AttachmentUpload.d.ts.map +1 -0
- package/build/types/object/Cache.d.ts +17 -0
- package/build/types/object/Cache.d.ts.map +1 -0
- package/build/types/object/Cache.test.d.ts +1 -0
- package/build/types/object/Cache.test.d.ts.map +1 -0
- package/build/types/object/SimpleCache.d.ts +52 -0
- package/build/types/object/SimpleCache.d.ts.map +1 -0
- package/build/types/object/aggregate.d.ts +1 -0
- package/build/types/object/aggregate.d.ts.map +1 -0
- package/build/types/object/aggregate.test.d.ts +1 -0
- package/build/types/object/aggregate.test.d.ts.map +1 -0
- package/build/types/object/attachment.test.d.ts +1 -0
- package/build/types/object/attachment.test.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/InterfaceHolder.d.ts +1 -0
- package/build/types/object/convertWireToOsdkObjects/InterfaceHolder.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/InternalSymbols.d.ts +6 -0
- package/build/types/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/ObjectHolder.d.ts +1 -0
- package/build/types/object/convertWireToOsdkObjects/ObjectHolder.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.d.ts +17 -0
- package/build/types/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/PropertyDescriptorRecord.d.ts +5 -0
- package/build/types/object/convertWireToOsdkObjects/PropertyDescriptorRecord.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/createOsdkInterface.d.ts +1 -0
- package/build/types/object/convertWireToOsdkObjects/createOsdkInterface.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts +1 -0
- package/build/types/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/createOsdkObject.d.ts +1 -0
- package/build/types/object/convertWireToOsdkObjects/createOsdkObject.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/getDollarAs.d.ts +2 -0
- package/build/types/object/convertWireToOsdkObjects/getDollarAs.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects/getDollarLink.d.ts +1 -0
- package/build/types/object/convertWireToOsdkObjects/getDollarLink.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects.d.ts +1 -0
- package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -0
- package/build/types/object/convertWireToOsdkObjects.test.d.ts +1 -0
- package/build/types/object/convertWireToOsdkObjects.test.d.ts.map +1 -0
- package/build/types/object/fetchPage.d.ts +5 -0
- package/build/types/object/fetchPage.d.ts.map +1 -0
- package/build/types/object/fetchPage.test.d.ts +1 -0
- package/build/types/object/fetchPage.test.d.ts.map +1 -0
- package/build/types/object/fetchSingle.d.ts +1 -0
- package/build/types/object/fetchSingle.d.ts.map +1 -0
- package/build/types/object/geotimeseriesreference.test.d.ts +1 -0
- package/build/types/object/geotimeseriesreference.test.d.ts.map +1 -0
- package/build/types/object/media.test.d.ts +1 -0
- package/build/types/object/media.test.d.ts.map +1 -0
- package/build/types/object/mediaUpload.d.ts +2 -0
- package/build/types/object/mediaUpload.d.ts.map +1 -0
- package/build/types/object/object.test.d.ts +11 -0
- package/build/types/object/object.test.d.ts.map +1 -0
- package/build/types/object/timeseries.test.d.ts +1 -0
- package/build/types/object/timeseries.test.d.ts.map +1 -0
- package/build/types/objectSet/InterfaceObjectSet.test.d.ts +1 -0
- package/build/types/objectSet/InterfaceObjectSet.test.d.ts.map +1 -0
- package/build/types/objectSet/ObjectSet.test.d.ts +7 -0
- package/build/types/objectSet/ObjectSet.test.d.ts.map +1 -0
- package/build/types/objectSet/ObjectSetFactory.d.ts +1 -0
- package/build/types/objectSet/ObjectSetFactory.d.ts.map +1 -0
- package/build/types/objectSet/ObjectSetListenerWebsocket.d.ts +1 -0
- package/build/types/objectSet/ObjectSetListenerWebsocket.d.ts.map +1 -0
- package/build/types/objectSet/ObjectSetListenerWebsocket.test.d.ts +1 -0
- package/build/types/objectSet/ObjectSetListenerWebsocket.test.d.ts.map +1 -0
- package/build/types/objectSet/conjureUnionType.d.ts +13 -0
- package/build/types/objectSet/conjureUnionType.d.ts.map +1 -0
- package/build/types/objectSet/createObjectSet.d.ts +1 -0
- package/build/types/objectSet/createObjectSet.d.ts.map +1 -0
- package/build/types/observable/DebugFlags.d.ts +2 -0
- package/build/types/observable/DebugFlags.d.ts.map +1 -0
- package/build/types/observable/ListPayload.d.ts +10 -0
- package/build/types/observable/ListPayload.d.ts.map +1 -0
- package/build/types/observable/ObjectPayload.d.ts +8 -0
- package/build/types/observable/ObjectPayload.d.ts.map +1 -0
- package/build/types/observable/ObservableClient.d.ts +36 -0
- package/build/types/observable/ObservableClient.d.ts.map +1 -0
- package/build/types/observable/OptimisticBuilder.d.ts +5 -0
- package/build/types/observable/OptimisticBuilder.d.ts.map +1 -0
- package/build/types/observable/internal/CacheKey.d.ts +15 -0
- package/build/types/observable/internal/CacheKey.d.ts.map +1 -0
- package/build/types/observable/internal/CacheKeys.d.ts +8 -0
- package/build/types/observable/internal/CacheKeys.d.ts.map +1 -0
- package/build/types/observable/internal/Canonical.d.ts +3 -0
- package/build/types/observable/internal/Canonical.d.ts.map +1 -0
- package/build/types/observable/internal/ChangedObjects.d.ts +7 -0
- package/build/types/observable/internal/ChangedObjects.d.ts.map +1 -0
- package/build/types/observable/internal/Layer.d.ts +19 -0
- package/build/types/observable/internal/Layer.d.ts.map +1 -0
- package/build/types/observable/internal/ListQuery.d.ts +42 -0
- package/build/types/observable/internal/ListQuery.d.ts.map +1 -0
- package/build/types/observable/internal/ObjectQuery.d.ts +19 -0
- package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -0
- package/build/types/observable/internal/ObservableClientImpl.d.ts +1 -0
- package/build/types/observable/internal/ObservableClientImpl.d.ts.map +1 -0
- package/build/types/observable/internal/OptimisticId.d.ts +4 -0
- package/build/types/observable/internal/OptimisticId.d.ts.map +1 -0
- package/build/types/observable/internal/OptimisticJob.d.ts +11 -0
- package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -0
- package/build/types/observable/internal/Query.d.ts +29 -0
- package/build/types/observable/internal/Query.d.ts.map +1 -0
- package/build/types/observable/internal/RefCounts.d.ts +12 -0
- package/build/types/observable/internal/RefCounts.d.ts.map +1 -0
- package/build/types/observable/internal/Store.d.ts +73 -0
- package/build/types/observable/internal/Store.d.ts.map +1 -0
- package/build/types/observable/internal/Store.test.d.ts +1 -0
- package/build/types/observable/internal/Store.test.d.ts.map +1 -0
- package/build/types/observable/internal/WeakMapWithEntries.d.ts +50 -0
- package/build/types/observable/internal/WeakMapWithEntries.d.ts.map +1 -0
- package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts +6 -0
- package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts.map +1 -0
- package/build/types/observable/internal/WhereClauseCanonicalizer.test.d.ts +1 -0
- package/build/types/observable/internal/WhereClauseCanonicalizer.test.d.ts.map +1 -0
- package/build/types/observable/internal/objectMatchesWhereClause.d.ts +2 -0
- package/build/types/observable/internal/objectMatchesWhereClause.d.ts.map +1 -0
- package/build/types/observable/internal/objectMatchesWhereClause.test.d.ts +1 -0
- package/build/types/observable/internal/objectMatchesWhereClause.test.d.ts.map +1 -0
- package/build/types/observable/internal/testUtils.d.ts +40 -0
- package/build/types/observable/internal/testUtils.d.ts.map +1 -0
- package/build/types/observable/types.d.ts +1 -0
- package/build/types/observable/types.d.ts.map +1 -0
- package/build/types/ontology/OntologyProvider.d.ts +31 -0
- package/build/types/ontology/OntologyProvider.d.ts.map +1 -0
- package/build/types/ontology/StandardOntologyProvider.d.ts +3 -0
- package/build/types/ontology/StandardOntologyProvider.d.ts.map +1 -0
- package/build/types/ontology/StandardOntologyProvider.test.d.ts +1 -0
- package/build/types/ontology/StandardOntologyProvider.test.d.ts.map +1 -0
- package/build/types/ontology/loadActionMetadata.d.ts +3 -0
- package/build/types/ontology/loadActionMetadata.d.ts.map +1 -0
- package/build/types/ontology/loadFullObjectMetadata.d.ts +5 -0
- package/build/types/ontology/loadFullObjectMetadata.d.ts.map +1 -0
- package/build/types/ontology/loadInterfaceMetadata.d.ts +3 -0
- package/build/types/ontology/loadInterfaceMetadata.d.ts.map +1 -0
- package/build/types/ontology/loadQueryMetadata.d.ts +3 -0
- package/build/types/ontology/loadQueryMetadata.d.ts.map +1 -0
- package/build/types/ontology/makeConjureContext.d.ts +3 -0
- package/build/types/ontology/makeConjureContext.d.ts.map +1 -0
- package/build/types/pageRequestAsAsyncIter.d.ts +16 -0
- package/build/types/pageRequestAsAsyncIter.d.ts.map +1 -0
- package/build/types/public/internal.d.ts +3 -0
- package/build/types/public/internal.d.ts.map +1 -0
- package/build/types/public/unstable-do-not-use.d.ts +7 -0
- package/build/types/public/unstable-do-not-use.d.ts.map +1 -0
- package/build/types/public-utils/createAndFetchTempObjectSetRid.d.ts +10 -0
- package/build/types/public-utils/createAndFetchTempObjectSetRid.d.ts.map +1 -0
- package/build/types/public-utils/hydrateAttachmentFromRid.d.ts +9 -0
- package/build/types/public-utils/hydrateAttachmentFromRid.d.ts.map +1 -0
- package/build/types/public-utils/hydrateObjectSetFromRid.d.ts +10 -0
- package/build/types/public-utils/hydrateObjectSetFromRid.d.ts.map +1 -0
- package/build/types/queries/applyQuery.d.ts +8 -0
- package/build/types/queries/applyQuery.d.ts.map +1 -0
- package/build/types/queries/queries.test.d.ts +1 -0
- package/build/types/queries/queries.test.d.ts.map +1 -0
- package/build/types/queries/types.d.ts +15 -0
- package/build/types/queries/types.d.ts.map +1 -0
- package/build/types/tsserver.d.ts +34 -0
- package/build/types/tsserver.d.ts.map +1 -0
- package/build/types/util/ArrayElement.d.ts +1 -0
- package/build/types/util/ArrayElement.d.ts.map +1 -0
- package/build/types/util/NOOP.d.ts +1 -0
- package/build/types/util/NOOP.d.ts.map +1 -0
- package/build/types/util/NullableProps.d.ts +3 -0
- package/build/types/util/NullableProps.d.ts.map +1 -0
- package/build/types/util/UserAgent.d.ts +1 -0
- package/build/types/util/UserAgent.d.ts.map +1 -0
- package/build/types/util/WireObjectSet.d.ts +1 -0
- package/build/types/util/WireObjectSet.d.ts.map +1 -0
- package/build/types/util/addUserAgentAndRequestContextHeaders.d.ts +3 -0
- package/build/types/util/addUserAgentAndRequestContextHeaders.d.ts.map +1 -0
- package/build/types/util/augmentRequestContext.d.ts +31 -0
- package/build/types/util/augmentRequestContext.d.ts.map +1 -0
- package/build/types/util/datetimeConverters.d.ts +21 -0
- package/build/types/util/datetimeConverters.d.ts.map +1 -0
- package/build/types/util/datetimeConverters.test.d.ts +1 -0
- package/build/types/util/datetimeConverters.test.d.ts.map +1 -0
- package/build/types/util/interfaceUtils.d.ts +1 -0
- package/build/types/util/interfaceUtils.d.ts.map +1 -0
- package/build/types/util/isOntologyObjectV2.d.ts +1 -0
- package/build/types/util/isOntologyObjectV2.d.ts.map +1 -0
- package/build/types/util/isOsdkBaseObject.d.ts +2 -0
- package/build/types/util/isOsdkBaseObject.d.ts.map +1 -0
- package/build/types/util/isOsdkObject.d.ts +2 -0
- package/build/types/util/isOsdkObject.d.ts.map +1 -0
- package/build/types/util/objectSetUtils.d.ts +3 -0
- package/build/types/util/objectSetUtils.d.ts.map +1 -0
- package/build/types/util/partialBy.d.ts +8 -0
- package/build/types/util/partialBy.d.ts.map +1 -0
- package/build/types/util/streamutils.d.ts +2 -0
- package/build/types/util/streamutils.d.ts.map +1 -0
- package/build/types/util/timeseriesUtils.d.ts +7 -0
- package/build/types/util/timeseriesUtils.d.ts.map +1 -0
- package/build/types/util/toDataValue.d.ts +1 -0
- package/build/types/util/toDataValue.d.ts.map +1 -0
- package/build/types/util/toDataValue.test.d.ts +1 -0
- package/build/types/util/toDataValue.test.d.ts.map +1 -0
- package/build/types/util/toDataValueQueries.d.ts +1 -0
- package/build/types/util/toDataValueQueries.d.ts.map +1 -0
- package/index.d.ts +17 -0
- package/internal.d.ts +17 -0
- package/package.json +57 -23
- package/unstable-do-not-use.d.ts +1 -1
- package/build/browser/Client.d.ts +0 -26
- package/build/browser/Client.d.ts.map +0 -1
- package/build/browser/Definitions.test.d.ts +0 -2
- package/build/browser/Definitions.test.d.ts.map +0 -1
- package/build/browser/Logger.d.ts +0 -19
- package/build/browser/Logger.d.ts.map +0 -1
- package/build/browser/MinimalClientContext.d.ts +0 -26
- package/build/browser/MinimalClientContext.d.ts.map +0 -1
- package/build/browser/ResultOrError.d.ts +0 -12
- package/build/browser/ResultOrError.d.ts.map +0 -1
- package/build/browser/SatisfiesSemver.d.ts +0 -4
- package/build/browser/SatisfiesSemver.d.ts.map +0 -1
- package/build/browser/SatisfiesSemver.test.d.ts +0 -2
- package/build/browser/SatisfiesSemver.test.d.ts.map +0 -1
- package/build/browser/__unstable/ConjureSupport.d.ts +0 -55
- package/build/browser/__unstable/ConjureSupport.d.ts.map +0 -1
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts +0 -5
- package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +0 -1
- package/build/browser/actions/ActionValidationError.d.ts +0 -6
- package/build/browser/actions/ActionValidationError.d.ts.map +0 -1
- package/build/browser/actions/actions.test.d.ts +0 -2
- package/build/browser/actions/actions.test.d.ts.map +0 -1
- package/build/browser/actions/applyAction.d.ts +0 -30
- package/build/browser/actions/applyAction.d.ts.map +0 -1
- package/build/browser/createAttachmentFromRid.d.ts +0 -10
- package/build/browser/createAttachmentFromRid.d.ts.map +0 -1
- package/build/browser/createAttachmentFromRid.js +0 -38
- package/build/browser/createAttachmentFromRid.js.map +0 -1
- package/build/browser/createClient.d.ts +0 -6
- package/build/browser/createClient.d.ts.map +0 -1
- package/build/browser/createClient.test.d.ts +0 -2
- package/build/browser/createClient.test.d.ts.map +0 -1
- package/build/browser/createGeotimeSeriesProperty.d.ts +0 -14
- package/build/browser/createGeotimeSeriesProperty.d.ts.map +0 -1
- package/build/browser/createMinimalClient.d.ts +0 -2
- package/build/browser/createMinimalClient.d.ts.map +0 -1
- package/build/browser/createPlatformClient.d.ts +0 -17
- package/build/browser/createPlatformClient.d.ts.map +0 -1
- package/build/browser/createTimeseriesProperty.d.ts +0 -14
- package/build/browser/createTimeseriesProperty.d.ts.map +0 -1
- package/build/browser/definitions/LinkDefinitions.test.d.ts +0 -2
- package/build/browser/definitions/LinkDefinitions.test.d.ts.map +0 -1
- package/build/browser/fetchMetadata.d.ts +0 -2
- package/build/browser/fetchMetadata.d.ts.map +0 -1
- package/build/browser/fetchMetadata.test.d.ts +0 -2
- package/build/browser/fetchMetadata.test.d.ts.map +0 -1
- package/build/browser/index.d.ts +0 -12
- package/build/browser/index.d.ts.map +0 -1
- package/build/browser/intellisense.test.d.ts +0 -2
- package/build/browser/intellisense.test.d.ts.map +0 -1
- package/build/browser/intellisense.test.helpers/callsQueryAcceptsObject.d.ts +0 -2
- package/build/browser/intellisense.test.helpers/callsQueryAcceptsObject.d.ts.map +0 -1
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.d.ts +0 -2
- package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.d.ts.map +0 -1
- package/build/browser/internal/conversions/modernToLegacyAggregationClause.d.ts +0 -2
- package/build/browser/internal/conversions/modernToLegacyAggregationClause.d.ts.map +0 -1
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.d.ts +0 -2
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.d.ts.map +0 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.d.ts +0 -2
- package/build/browser/internal/conversions/modernToLegacyWhereClause.d.ts.map +0 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.d.ts +0 -2
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.d.ts.map +0 -1
- package/build/browser/object/AttachmentUpload.d.ts +0 -4
- package/build/browser/object/AttachmentUpload.d.ts.map +0 -1
- package/build/browser/object/Cache.d.ts +0 -2
- package/build/browser/object/Cache.d.ts.map +0 -1
- package/build/browser/object/Cache.test.d.ts +0 -11
- package/build/browser/object/Cache.test.d.ts.map +0 -1
- package/build/browser/object/SimpleCache.d.ts +0 -38
- package/build/browser/object/SimpleCache.d.ts.map +0 -1
- package/build/browser/object/aggregate.d.ts +0 -2
- package/build/browser/object/aggregate.d.ts.map +0 -1
- package/build/browser/object/aggregate.test.d.ts +0 -2
- package/build/browser/object/aggregate.test.d.ts.map +0 -1
- package/build/browser/object/attachment.test.d.ts +0 -2
- package/build/browser/object/attachment.test.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.d.ts +0 -2
- package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts +0 -7
- package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.d.ts +0 -2
- package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.d.ts +0 -2
- package/build/browser/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/PropertyDescriptorRecord.d.ts +0 -8
- package/build/browser/object/convertWireToOsdkObjects/PropertyDescriptorRecord.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.d.ts +0 -2
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts +0 -2
- package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.d.ts +0 -2
- package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.d.ts +0 -3
- package/build/browser/object/convertWireToOsdkObjects/getDollarAs.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.d.ts +0 -2
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects.d.ts +0 -2
- package/build/browser/object/convertWireToOsdkObjects.d.ts.map +0 -1
- package/build/browser/object/convertWireToOsdkObjects.test.d.ts +0 -2
- package/build/browser/object/convertWireToOsdkObjects.test.d.ts.map +0 -1
- package/build/browser/object/fetchPage.d.ts +0 -3
- package/build/browser/object/fetchPage.d.ts.map +0 -1
- package/build/browser/object/fetchPage.test.d.ts +0 -2
- package/build/browser/object/fetchPage.test.d.ts.map +0 -1
- package/build/browser/object/fetchSingle.d.ts +0 -2
- package/build/browser/object/fetchSingle.d.ts.map +0 -1
- package/build/browser/object/geotimeseriesreference.test.d.ts +0 -2
- package/build/browser/object/geotimeseriesreference.test.d.ts.map +0 -1
- package/build/browser/object/object.test.d.ts +0 -12
- package/build/browser/object/object.test.d.ts.map +0 -1
- package/build/browser/object/timeseries.test.d.ts +0 -2
- package/build/browser/object/timeseries.test.d.ts.map +0 -1
- package/build/browser/objectSet/ObjectSet.test.d.ts +0 -2
- package/build/browser/objectSet/ObjectSet.test.d.ts.map +0 -1
- package/build/browser/objectSet/ObjectSetFactory.d.ts +0 -2
- package/build/browser/objectSet/ObjectSetFactory.d.ts.map +0 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.d.ts +0 -2
- package/build/browser/objectSet/ObjectSetListenerWebsocket.d.ts.map +0 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.d.ts +0 -2
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.d.ts.map +0 -1
- package/build/browser/objectSet/conjureUnionType.d.ts +0 -13
- package/build/browser/objectSet/conjureUnionType.d.ts.map +0 -1
- package/build/browser/objectSet/createObjectSet.d.ts +0 -2
- package/build/browser/objectSet/createObjectSet.d.ts.map +0 -1
- package/build/browser/objectSet/toConjureObjectSet.d.ts +0 -2
- package/build/browser/objectSet/toConjureObjectSet.d.ts.map +0 -1
- package/build/browser/objectSet/toConjureObjectSet.js +0 -165
- package/build/browser/objectSet/toConjureObjectSet.js.map +0 -1
- package/build/browser/ontology/OntologyProvider.d.ts +0 -32
- package/build/browser/ontology/OntologyProvider.d.ts.map +0 -1
- package/build/browser/ontology/StandardOntologyProvider.d.ts +0 -5
- package/build/browser/ontology/StandardOntologyProvider.d.ts.map +0 -1
- package/build/browser/ontology/StandardOntologyProvider.test.d.ts +0 -2
- package/build/browser/ontology/StandardOntologyProvider.test.d.ts.map +0 -1
- package/build/browser/ontology/loadActionMetadata.d.ts +0 -4
- package/build/browser/ontology/loadActionMetadata.d.ts.map +0 -1
- package/build/browser/ontology/loadFullObjectMetadata.d.ts +0 -6
- package/build/browser/ontology/loadFullObjectMetadata.d.ts.map +0 -1
- package/build/browser/ontology/loadInterfaceMetadata.d.ts +0 -4
- package/build/browser/ontology/loadInterfaceMetadata.d.ts.map +0 -1
- package/build/browser/ontology/loadQueryMetadata.d.ts +0 -4
- package/build/browser/ontology/loadQueryMetadata.d.ts.map +0 -1
- package/build/browser/ontology/makeConjureContext.d.ts +0 -4
- package/build/browser/ontology/makeConjureContext.d.ts.map +0 -1
- package/build/browser/pageRequestAsAsyncIter.d.ts +0 -10
- package/build/browser/pageRequestAsAsyncIter.d.ts.map +0 -1
- package/build/browser/public/unstable-do-not-use.d.ts +0 -2
- package/build/browser/public/unstable-do-not-use.d.ts.map +0 -1
- package/build/browser/queries/applyQuery.d.ts +0 -6
- package/build/browser/queries/applyQuery.d.ts.map +0 -1
- package/build/browser/queries/queries.test.d.ts +0 -2
- package/build/browser/queries/queries.test.d.ts.map +0 -1
- package/build/browser/queries/types.d.ts +0 -20
- package/build/browser/queries/types.d.ts.map +0 -1
- package/build/browser/tsserver.d.ts +0 -34
- package/build/browser/tsserver.d.ts.map +0 -1
- package/build/browser/util/ArrayElement.d.ts +0 -2
- package/build/browser/util/ArrayElement.d.ts.map +0 -1
- package/build/browser/util/NOOP.d.ts +0 -4
- package/build/browser/util/NOOP.d.ts.map +0 -1
- package/build/browser/util/NullableProps.d.ts +0 -6
- package/build/browser/util/NullableProps.d.ts.map +0 -1
- package/build/browser/util/UserAgent.d.ts +0 -2
- package/build/browser/util/UserAgent.d.ts.map +0 -1
- package/build/browser/util/WireObjectSet.d.ts +0 -2
- package/build/browser/util/WireObjectSet.d.ts.map +0 -1
- package/build/browser/util/addUserAgentAndRequestContextHeaders.d.ts +0 -4
- package/build/browser/util/addUserAgentAndRequestContextHeaders.d.ts.map +0 -1
- package/build/browser/util/augmentRequestContext.d.ts +0 -32
- package/build/browser/util/augmentRequestContext.d.ts.map +0 -1
- package/build/browser/util/isOntologyObjectV2.d.ts +0 -2
- package/build/browser/util/isOntologyObjectV2.d.ts.map +0 -1
- package/build/browser/util/isOsdkBaseObject.d.ts +0 -3
- package/build/browser/util/isOsdkBaseObject.d.ts.map +0 -1
- package/build/browser/util/isOsdkObject.d.ts +0 -3
- package/build/browser/util/isOsdkObject.d.ts.map +0 -1
- package/build/browser/util/partialBy.d.ts +0 -3
- package/build/browser/util/partialBy.d.ts.map +0 -1
- package/build/browser/util/streamutils.d.ts +0 -3
- package/build/browser/util/streamutils.d.ts.map +0 -1
- package/build/browser/util/timeseriesUtils.d.ts +0 -8
- package/build/browser/util/timeseriesUtils.d.ts.map +0 -1
- package/build/browser/util/toDataValue.d.ts +0 -2
- package/build/browser/util/toDataValue.d.ts.map +0 -1
- package/build/browser/util/toDataValue.test.d.ts +0 -2
- package/build/browser/util/toDataValue.test.d.ts.map +0 -1
- package/build/browser/util/toDataValueQueries.d.ts +0 -2
- package/build/browser/util/toDataValueQueries.d.ts.map +0 -1
- package/build/esm/Client.d.ts +0 -26
- package/build/esm/Client.d.ts.map +0 -1
- package/build/esm/Definitions.test.d.ts +0 -2
- package/build/esm/Definitions.test.d.ts.map +0 -1
- package/build/esm/Logger.d.ts +0 -19
- package/build/esm/Logger.d.ts.map +0 -1
- package/build/esm/MinimalClientContext.d.ts +0 -26
- package/build/esm/MinimalClientContext.d.ts.map +0 -1
- package/build/esm/ResultOrError.d.ts +0 -12
- package/build/esm/ResultOrError.d.ts.map +0 -1
- package/build/esm/SatisfiesSemver.d.ts +0 -4
- package/build/esm/SatisfiesSemver.d.ts.map +0 -1
- package/build/esm/SatisfiesSemver.test.d.ts +0 -2
- package/build/esm/SatisfiesSemver.test.d.ts.map +0 -1
- package/build/esm/__unstable/ConjureSupport.d.ts +0 -55
- package/build/esm/__unstable/ConjureSupport.d.ts.map +0 -1
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts +0 -5
- package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +0 -1
- package/build/esm/actions/ActionValidationError.d.ts +0 -6
- package/build/esm/actions/ActionValidationError.d.ts.map +0 -1
- package/build/esm/actions/actions.test.d.ts +0 -2
- package/build/esm/actions/actions.test.d.ts.map +0 -1
- package/build/esm/actions/applyAction.d.ts +0 -30
- package/build/esm/actions/applyAction.d.ts.map +0 -1
- package/build/esm/createAttachmentFromRid.d.ts +0 -10
- package/build/esm/createAttachmentFromRid.d.ts.map +0 -1
- package/build/esm/createAttachmentFromRid.js +0 -38
- package/build/esm/createAttachmentFromRid.js.map +0 -1
- package/build/esm/createClient.d.ts +0 -6
- package/build/esm/createClient.d.ts.map +0 -1
- package/build/esm/createClient.test.d.ts +0 -2
- package/build/esm/createClient.test.d.ts.map +0 -1
- package/build/esm/createGeotimeSeriesProperty.d.ts +0 -14
- package/build/esm/createGeotimeSeriesProperty.d.ts.map +0 -1
- package/build/esm/createMinimalClient.d.ts +0 -2
- package/build/esm/createMinimalClient.d.ts.map +0 -1
- package/build/esm/createPlatformClient.d.ts +0 -17
- package/build/esm/createPlatformClient.d.ts.map +0 -1
- package/build/esm/createTimeseriesProperty.d.ts +0 -14
- package/build/esm/createTimeseriesProperty.d.ts.map +0 -1
- package/build/esm/definitions/LinkDefinitions.test.d.ts +0 -2
- package/build/esm/definitions/LinkDefinitions.test.d.ts.map +0 -1
- package/build/esm/fetchMetadata.d.ts +0 -2
- package/build/esm/fetchMetadata.d.ts.map +0 -1
- package/build/esm/fetchMetadata.test.d.ts +0 -2
- package/build/esm/fetchMetadata.test.d.ts.map +0 -1
- package/build/esm/index.d.ts +0 -12
- package/build/esm/index.d.ts.map +0 -1
- package/build/esm/intellisense.test.d.ts +0 -2
- package/build/esm/intellisense.test.d.ts.map +0 -1
- package/build/esm/intellisense.test.helpers/callsQueryAcceptsObject.d.ts +0 -2
- package/build/esm/intellisense.test.helpers/callsQueryAcceptsObject.d.ts.map +0 -1
- package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.d.ts +0 -2
- package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.d.ts.map +0 -1
- package/build/esm/internal/conversions/modernToLegacyAggregationClause.d.ts +0 -2
- package/build/esm/internal/conversions/modernToLegacyAggregationClause.d.ts.map +0 -1
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.d.ts +0 -2
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.d.ts.map +0 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.d.ts +0 -2
- package/build/esm/internal/conversions/modernToLegacyWhereClause.d.ts.map +0 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.d.ts +0 -2
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.d.ts.map +0 -1
- package/build/esm/object/AttachmentUpload.d.ts +0 -4
- package/build/esm/object/AttachmentUpload.d.ts.map +0 -1
- package/build/esm/object/Cache.d.ts +0 -2
- package/build/esm/object/Cache.d.ts.map +0 -1
- package/build/esm/object/Cache.test.d.ts +0 -11
- package/build/esm/object/Cache.test.d.ts.map +0 -1
- package/build/esm/object/SimpleCache.d.ts +0 -38
- package/build/esm/object/SimpleCache.d.ts.map +0 -1
- package/build/esm/object/aggregate.d.ts +0 -2
- package/build/esm/object/aggregate.d.ts.map +0 -1
- package/build/esm/object/aggregate.test.d.ts +0 -2
- package/build/esm/object/aggregate.test.d.ts.map +0 -1
- package/build/esm/object/attachment.test.d.ts +0 -2
- package/build/esm/object/attachment.test.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.d.ts +0 -2
- package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts +0 -7
- package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.d.ts +0 -2
- package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.d.ts +0 -2
- package/build/esm/object/convertWireToOsdkObjects/OsdkCustomInspectPrototype.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/PropertyDescriptorRecord.d.ts +0 -8
- package/build/esm/object/convertWireToOsdkObjects/PropertyDescriptorRecord.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.d.ts +0 -2
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts +0 -2
- package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.d.ts +0 -2
- package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.d.ts +0 -3
- package/build/esm/object/convertWireToOsdkObjects/getDollarAs.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.d.ts +0 -2
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects.d.ts +0 -2
- package/build/esm/object/convertWireToOsdkObjects.d.ts.map +0 -1
- package/build/esm/object/convertWireToOsdkObjects.test.d.ts +0 -2
- package/build/esm/object/convertWireToOsdkObjects.test.d.ts.map +0 -1
- package/build/esm/object/fetchPage.d.ts +0 -3
- package/build/esm/object/fetchPage.d.ts.map +0 -1
- package/build/esm/object/fetchPage.test.d.ts +0 -2
- package/build/esm/object/fetchPage.test.d.ts.map +0 -1
- package/build/esm/object/fetchSingle.d.ts +0 -2
- package/build/esm/object/fetchSingle.d.ts.map +0 -1
- package/build/esm/object/geotimeseriesreference.test.d.ts +0 -2
- package/build/esm/object/geotimeseriesreference.test.d.ts.map +0 -1
- package/build/esm/object/object.test.d.ts +0 -12
- package/build/esm/object/object.test.d.ts.map +0 -1
- package/build/esm/object/timeseries.test.d.ts +0 -2
- package/build/esm/object/timeseries.test.d.ts.map +0 -1
- package/build/esm/objectSet/ObjectSet.test.d.ts +0 -2
- package/build/esm/objectSet/ObjectSet.test.d.ts.map +0 -1
- package/build/esm/objectSet/ObjectSetFactory.d.ts +0 -2
- package/build/esm/objectSet/ObjectSetFactory.d.ts.map +0 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.d.ts +0 -2
- package/build/esm/objectSet/ObjectSetListenerWebsocket.d.ts.map +0 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.d.ts +0 -2
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.d.ts.map +0 -1
- package/build/esm/objectSet/conjureUnionType.d.ts +0 -13
- package/build/esm/objectSet/conjureUnionType.d.ts.map +0 -1
- package/build/esm/objectSet/createObjectSet.d.ts +0 -2
- package/build/esm/objectSet/createObjectSet.d.ts.map +0 -1
- package/build/esm/objectSet/toConjureObjectSet.d.ts +0 -2
- package/build/esm/objectSet/toConjureObjectSet.d.ts.map +0 -1
- package/build/esm/objectSet/toConjureObjectSet.js +0 -165
- package/build/esm/objectSet/toConjureObjectSet.js.map +0 -1
- package/build/esm/ontology/OntologyProvider.d.ts +0 -32
- package/build/esm/ontology/OntologyProvider.d.ts.map +0 -1
- package/build/esm/ontology/StandardOntologyProvider.d.ts +0 -5
- package/build/esm/ontology/StandardOntologyProvider.d.ts.map +0 -1
- package/build/esm/ontology/StandardOntologyProvider.test.d.ts +0 -2
- package/build/esm/ontology/StandardOntologyProvider.test.d.ts.map +0 -1
- package/build/esm/ontology/loadActionMetadata.d.ts +0 -4
- package/build/esm/ontology/loadActionMetadata.d.ts.map +0 -1
- package/build/esm/ontology/loadFullObjectMetadata.d.ts +0 -6
- package/build/esm/ontology/loadFullObjectMetadata.d.ts.map +0 -1
- package/build/esm/ontology/loadInterfaceMetadata.d.ts +0 -4
- package/build/esm/ontology/loadInterfaceMetadata.d.ts.map +0 -1
- package/build/esm/ontology/loadQueryMetadata.d.ts +0 -4
- package/build/esm/ontology/loadQueryMetadata.d.ts.map +0 -1
- package/build/esm/ontology/makeConjureContext.d.ts +0 -4
- package/build/esm/ontology/makeConjureContext.d.ts.map +0 -1
- package/build/esm/pageRequestAsAsyncIter.d.ts +0 -10
- package/build/esm/pageRequestAsAsyncIter.d.ts.map +0 -1
- package/build/esm/public/unstable-do-not-use.d.ts +0 -2
- package/build/esm/public/unstable-do-not-use.d.ts.map +0 -1
- package/build/esm/queries/applyQuery.d.ts +0 -6
- package/build/esm/queries/applyQuery.d.ts.map +0 -1
- package/build/esm/queries/queries.test.d.ts +0 -2
- package/build/esm/queries/queries.test.d.ts.map +0 -1
- package/build/esm/queries/types.d.ts +0 -20
- package/build/esm/queries/types.d.ts.map +0 -1
- package/build/esm/tsserver.d.ts +0 -34
- package/build/esm/tsserver.d.ts.map +0 -1
- package/build/esm/util/ArrayElement.d.ts +0 -2
- package/build/esm/util/ArrayElement.d.ts.map +0 -1
- package/build/esm/util/NOOP.d.ts +0 -4
- package/build/esm/util/NOOP.d.ts.map +0 -1
- package/build/esm/util/NullableProps.d.ts +0 -6
- package/build/esm/util/NullableProps.d.ts.map +0 -1
- package/build/esm/util/UserAgent.d.ts +0 -2
- package/build/esm/util/UserAgent.d.ts.map +0 -1
- package/build/esm/util/WireObjectSet.d.ts +0 -2
- package/build/esm/util/WireObjectSet.d.ts.map +0 -1
- package/build/esm/util/addUserAgentAndRequestContextHeaders.d.ts +0 -4
- package/build/esm/util/addUserAgentAndRequestContextHeaders.d.ts.map +0 -1
- package/build/esm/util/augmentRequestContext.d.ts +0 -32
- package/build/esm/util/augmentRequestContext.d.ts.map +0 -1
- package/build/esm/util/isOntologyObjectV2.d.ts +0 -2
- package/build/esm/util/isOntologyObjectV2.d.ts.map +0 -1
- package/build/esm/util/isOsdkBaseObject.d.ts +0 -3
- package/build/esm/util/isOsdkBaseObject.d.ts.map +0 -1
- package/build/esm/util/isOsdkObject.d.ts +0 -3
- package/build/esm/util/isOsdkObject.d.ts.map +0 -1
- package/build/esm/util/partialBy.d.ts +0 -3
- package/build/esm/util/partialBy.d.ts.map +0 -1
- package/build/esm/util/streamutils.d.ts +0 -3
- package/build/esm/util/streamutils.d.ts.map +0 -1
- package/build/esm/util/timeseriesUtils.d.ts +0 -8
- package/build/esm/util/timeseriesUtils.d.ts.map +0 -1
- package/build/esm/util/toDataValue.d.ts +0 -2
- package/build/esm/util/toDataValue.d.ts.map +0 -1
- package/build/esm/util/toDataValue.test.d.ts +0 -2
- package/build/esm/util/toDataValue.test.d.ts.map +0 -1
- package/build/esm/util/toDataValueQueries.d.ts +0 -2
- package/build/esm/util/toDataValueQueries.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Store.test.js","names":["$ontologyRid","createOffice","Employee","Todo","apiServer","afterAll","afterEach","beforeAll","beforeEach","describe","expect","it","vi","vitest","createClient","createOptimisticId","Store","applyCustomMatchers","createClientMockHelper","createDefer","expectSingleListCallAndClear","expectSingleObjectCallAndClear","listPayloadContaining","mockListSubCallback","mockSingleSubCallback","objectPayloadContaining","waitForCall","defer","setConfig","fakeTimers","toFake","resetConfig","ANY_INIT_ENTRY","object","undefined","lastUpdated","status","client","cache","employeesAsServerReturns","mutatedEmployees","listen","fetchPage","data","$clone","fullName","slice","close","emp","getObject","$primaryKey","toBeUndefined","result","updateObject","toBe","toEqual","updatedEmpFromCache","not","subFn","observeObject","mode","optimisticId","removeLayer","useFakeTimers","updateList","empSubFn","listSubFn","observeList","optimisticEmployee","truthUpdatedEmployee","toHaveBeenCalled","useRealTimers","toHaveBeenCalledExactlyOnceWith","mockClear","staleEmp","invalidateObject","waitFor","subListFn","resolvedList","invalidateList","invalidateObjectType","subFn1","subFn2","likeEmployee50030","objectContaining","isOptimistic","firstLoad","mock","lastCall","s","toBeGreaterThan","sub","unsubscribe","toHaveBeenCalledTimes","calls","listSub1","mockReset","runOnlyPendingTimers","employeeId","$gt","listSub","pageSize","fetchMore","toHaveBeenCalledWith","mockClient","mockFetchOneOnce","resolve","$apiName","todoSubFn","expectLoadingAndLoaded","loading","loaded","mockApplyActionOnce","addedObjects","objectType","primaryKey","text","actionPromise","applyAction","officeId","fauxObject","$objectType","$title","applyActionResult","optimisticUpdate","ctx","someValue","reject","rejects","toThrow","store","baseObjects","map","i","cacheKeys","obj","getCacheKey","layerIds","batch","write"],"sources":["Store.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 type { Osdk } from \"@osdk/api\";\nimport {\n $ontologyRid,\n createOffice,\n Employee,\n Todo,\n} from \"@osdk/client.test.ontology\";\nimport { apiServer } from \"@osdk/shared.test\";\nimport type { Mock } from \"vitest\";\nimport {\n afterAll,\n afterEach,\n beforeAll,\n beforeEach,\n describe,\n expect,\n it,\n vi,\n vitest,\n} from \"vitest\";\nimport type { Client } from \"../../Client.js\";\nimport { createClient } from \"../../createClient.js\";\nimport type { Unsubscribable } from \"../ObservableClient.js\";\nimport { createOptimisticId } from \"./OptimisticId.js\";\nimport { Store } from \"./Store.js\";\nimport type { MockClientHelper } from \"./testUtils.js\";\nimport {\n applyCustomMatchers,\n createClientMockHelper,\n createDefer,\n expectSingleListCallAndClear,\n expectSingleObjectCallAndClear,\n listPayloadContaining,\n mockListSubCallback,\n mockSingleSubCallback,\n objectPayloadContaining,\n waitForCall,\n} from \"./testUtils.js\";\n\nconst defer = createDefer();\n\nbeforeAll(() => {\n vi.setConfig({\n fakeTimers: {\n toFake: [\n \"setTimeout\",\n \"clearTimeout\",\n \"Date\",\n \"setInterval\",\n \"clearInterval\",\n ],\n },\n });\n});\nafterAll(() => {\n vi.resetConfig();\n});\n\nconst ANY_INIT_ENTRY = {\n // cacheKey: expect.any(Object),\n object: undefined,\n lastUpdated: 0,\n status: \"init\",\n};\n\napplyCustomMatchers();\n\ndescribe(Store, () => {\n describe(\"with mock server\", () => {\n let client: Client;\n let cache: Store;\n\n let employeesAsServerReturns: Osdk.Instance<Employee>[];\n let mutatedEmployees: Osdk.Instance<Employee>[];\n\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\n \"https://stack.palantir.com\",\n $ontologyRid,\n async () => \"myAccessToken\",\n );\n\n employeesAsServerReturns = (await client(Employee).fetchPage()).data;\n mutatedEmployees = [\n employeesAsServerReturns[0],\n employeesAsServerReturns[1].$clone({\n fullName: \"foo\",\n }),\n ...employeesAsServerReturns.slice(2),\n ];\n });\n\n afterAll(() => {\n apiServer.close();\n });\n\n beforeEach(() => {\n cache = new Store(client);\n });\n\n afterEach(() => {\n cache = undefined!;\n });\n\n it(\"basic single object works\", async () => {\n const emp = employeesAsServerReturns[0];\n\n // starts empty\n expect(\n cache.getObject(Employee, emp.$primaryKey),\n ).toBeUndefined();\n\n const result = cache.updateObject(Employee, emp);\n expect(emp).toBe(result);\n\n // getting the object now matches the result\n expect(cache.getObject(Employee, emp.$primaryKey)).toEqual(\n result,\n );\n\n const updatedEmpFromCache = cache.updateObject(\n Employee,\n emp.$clone({ fullName: \"new name\" }),\n );\n expect(updatedEmpFromCache).not.toBe(emp);\n\n // getting it again is the updated object\n expect(cache.getObject(Employee, emp.$primaryKey)).toEqual(\n updatedEmpFromCache,\n );\n });\n\n describe(\"optimistic updates\", () => {\n it(\"rolls back objects\", async () => {\n const emp = employeesAsServerReturns[0];\n cache.updateObject(Employee, emp); // pre-seed the cache with the \"real\" value\n\n const subFn = mockSingleSubCallback();\n defer(\n cache.observeObject(\n Employee,\n emp.$primaryKey,\n { mode: \"offline\" },\n subFn,\n ),\n );\n\n expectSingleObjectCallAndClear(subFn, emp, \"loaded\");\n\n const optimisticId = createOptimisticId();\n // update with an optimistic write\n cache.updateObject(Employee, emp.$clone({ fullName: \"new name\" }), {\n optimisticId,\n });\n expectSingleObjectCallAndClear(\n subFn,\n emp.$clone({ fullName: \"new name\" }),\n \"loaded\",\n );\n\n // remove the optimistic write\n cache.removeLayer(optimisticId);\n\n expectSingleObjectCallAndClear(subFn, emp, \"loaded\");\n });\n\n it(\"rolls back to an updated real value\", async () => {\n vi.useFakeTimers();\n\n // pre-seed the cache with the \"real\" value\n cache.updateList(Employee, {}, employeesAsServerReturns);\n\n const emp = employeesAsServerReturns[0];\n\n const empSubFn = mockSingleSubCallback();\n defer(\n cache.observeObject(\n Employee,\n emp.$primaryKey,\n { mode: \"offline\" },\n empSubFn,\n ),\n );\n\n expectSingleObjectCallAndClear(empSubFn, emp, \"loaded\");\n\n const listSubFn = mockListSubCallback();\n defer(\n cache.observeList(Employee, {}, { mode: \"offline\" }, listSubFn),\n );\n\n expectSingleListCallAndClear(listSubFn, employeesAsServerReturns);\n\n const optimisticEmployee = emp.$clone({ fullName: \"new name\" });\n\n const optimisticId = createOptimisticId();\n\n // update with an optimistic write\n cache.updateObject(Employee, optimisticEmployee, {\n optimisticId,\n });\n\n // expect optimistic write\n expectSingleObjectCallAndClear(empSubFn, optimisticEmployee);\n\n // expect optimistic write to the list\n expectSingleListCallAndClear(\n listSubFn,\n [\n optimisticEmployee,\n ...employeesAsServerReturns.slice(1),\n ],\n );\n\n // write the real update, via the earlier list definition\n const truthUpdatedEmployee = emp.$clone({\n fullName: \"real update\",\n });\n cache.updateList(Employee, {}, [truthUpdatedEmployee]);\n\n // we shouldn't expect an update because the top layer has a value\n expect(empSubFn).not.toHaveBeenCalled();\n\n // we do get an update to the list but we still see the optimistic value\n // for the object\n expectSingleListCallAndClear(listSubFn, [optimisticEmployee]);\n\n // remove the optimistic write\n cache.removeLayer(optimisticId);\n\n // see the object observation get updated\n expectSingleObjectCallAndClear(empSubFn, truthUpdatedEmployee);\n\n // see the list get updated\n expectSingleListCallAndClear(listSubFn, [truthUpdatedEmployee]);\n\n vi.useRealTimers();\n });\n\n it(\"rolls back to an updated real value via list\", async () => {\n const emp = employeesAsServerReturns[0];\n cache.updateObject(Employee, emp); // pre-seed the cache with the \"real\" value\n\n const subFn = mockSingleSubCallback();\n defer(\n cache.observeObject(\n Employee,\n emp.$primaryKey,\n { mode: \"offline\" },\n subFn,\n ),\n );\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: emp,\n status: \"loaded\",\n }),\n );\n subFn.mockClear();\n\n const optimisticEmployee = emp.$clone({ fullName: \"new name\" });\n\n // update with an optimistic write\n const optimisticId = createOptimisticId();\n cache.updateObject(Employee, optimisticEmployee, {\n optimisticId,\n });\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: optimisticEmployee,\n }),\n );\n subFn.mockClear();\n\n const truthUpdatedEmployee = emp.$clone({\n fullName: \"real update\",\n });\n cache.updateObject(Employee, truthUpdatedEmployee);\n\n // we shouldn't expect an update because the top layer has a value\n expect(subFn).not.toHaveBeenCalled();\n\n // remove the optimistic write\n cache.removeLayer(optimisticId);\n\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: truthUpdatedEmployee,\n }),\n );\n });\n });\n\n describe(\".invalidateObject\", () => {\n it(\"triggers an update\", async () => {\n const emp = employeesAsServerReturns[0];\n const staleEmp = emp.$clone({ fullName: \"stale\" });\n cache.updateObject(Employee, staleEmp);\n\n const subFn = mockSingleSubCallback();\n defer(\n cache.observeObject(\n Employee,\n emp.$primaryKey,\n { mode: \"offline\" },\n subFn,\n ),\n );\n\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: staleEmp,\n status: \"loaded\",\n }),\n );\n subFn.mockClear();\n\n // invalidate\n void cache.invalidateObject(Employee, staleEmp.$primaryKey);\n\n await vi.waitFor(() => expect(subFn).toHaveBeenCalled());\n\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: staleEmp,\n status: \"loading\",\n }),\n );\n subFn.mockClear();\n\n await vi.waitFor(() => expect(subFn).toHaveBeenCalled());\n\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: emp,\n }),\n );\n });\n });\n\n describe(\".invalidateList\", () => {\n beforeEach(() => {\n vi.useFakeTimers({});\n });\n afterEach(() => {\n vi.useRealTimers();\n });\n\n it(\"triggers an update\", async () => {\n const emp = employeesAsServerReturns[0];\n const staleEmp = emp.$clone({ fullName: \"stale\" });\n cache.updateList(Employee, {}, [staleEmp]);\n\n const subFn = mockSingleSubCallback();\n defer(\n cache.observeObject(\n Employee,\n emp.$primaryKey,\n { mode: \"offline\" },\n subFn,\n ),\n );\n expectSingleObjectCallAndClear(subFn, staleEmp);\n\n const subListFn = mockListSubCallback();\n defer(cache.observeList(Employee, {}, { mode: \"offline\" }, subListFn));\n\n await vi.waitFor(() => expect(subListFn).toHaveBeenCalled());\n expect(subListFn).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: [staleEmp],\n status: \"loaded\",\n }),\n );\n subListFn.mockClear();\n\n cache.invalidateList(Employee, {});\n\n await vi.waitFor(() => expect(subListFn).toHaveBeenCalled());\n expect(subListFn).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: [staleEmp],\n status: \"loading\",\n }),\n );\n subListFn.mockClear();\n\n await vi.waitFor(() => expect(subListFn).toHaveBeenCalled());\n expect(subListFn).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: employeesAsServerReturns,\n }),\n );\n subListFn.mockClear();\n\n await vi.waitFor(() => expect(subFn).toHaveBeenCalled());\n\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n status: \"loaded\",\n object: emp,\n }),\n );\n });\n });\n\n describe(\".invalidateObjectType\", () => {\n beforeEach(() => {\n vi.useFakeTimers({});\n });\n afterEach(() => {\n vi.useRealTimers();\n });\n\n it(\"triggers an update\", async () => {\n const emp = employeesAsServerReturns[0];\n const staleEmp = emp.$clone({ fullName: \"stale\" });\n cache.updateList(Employee, {}, [staleEmp]);\n\n const subFn = mockSingleSubCallback();\n defer(\n cache.observeObject(\n Employee,\n emp.$primaryKey,\n { mode: \"offline\" },\n subFn,\n ),\n );\n expectSingleObjectCallAndClear(subFn, staleEmp);\n\n const subListFn = mockListSubCallback();\n defer(cache.observeList(Employee, {}, { mode: \"offline\" }, subListFn));\n\n await vi.waitFor(() => expect(subListFn).toHaveBeenCalled());\n expect(subListFn).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: [staleEmp],\n status: \"loaded\",\n }),\n );\n subListFn.mockClear();\n\n cache.invalidateObjectType(Employee);\n\n await vi.waitFor(() => expect(subListFn).toHaveBeenCalled());\n expect(subListFn).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: [staleEmp],\n status: \"loading\",\n }),\n );\n subListFn.mockClear();\n\n await vi.waitFor(() => expect(subListFn).toHaveBeenCalled());\n expect(subListFn).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: employeesAsServerReturns,\n }),\n );\n subListFn.mockClear();\n\n await vi.waitFor(() => expect(subFn).toHaveBeenCalled());\n\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n status: \"loaded\",\n object: emp,\n }),\n );\n });\n });\n\n describe(\".observeObject (force)\", () => {\n const subFn1 = mockSingleSubCallback();\n const subFn2 = mockSingleSubCallback();\n\n beforeEach(async () => {\n subFn1.mockClear();\n subFn2.mockClear();\n });\n\n const likeEmployee50030 = expect.objectContaining({\n $primaryKey: 50030,\n fullName: \"John Doe\",\n });\n\n it(\"fetches and updates twice\", async () => {\n defer(\n cache.observeObject(Employee, 50030, { mode: \"force\" }, subFn1),\n );\n expect(subFn1).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n status: \"loading\",\n object: undefined,\n isOptimistic: false,\n }),\n );\n\n subFn1.mockClear();\n\n await vi.waitFor(() => expect(subFn1).toHaveBeenCalled());\n expect(subFn1).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: likeEmployee50030,\n isOptimistic: false,\n }),\n );\n\n const firstLoad = subFn1.mock.lastCall?.[0]!;\n\n subFn1.mockClear();\n\n defer(\n cache.observeObject(Employee, 50030, { mode: \"force\" }, subFn2),\n );\n expect(subFn1).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({ status: \"loading\" }),\n );\n subFn1.mockClear();\n\n // should be the earlier results\n expect(subFn2).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({ status: \"loading\" }),\n );\n subFn2.mockClear();\n\n // both will be updated\n for (const s of [subFn1, subFn2]) {\n // wait for the result to come in\n await vi.waitFor(() => expect(s).toHaveBeenCalled());\n\n expect(s).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n ...firstLoad,\n lastUpdated: expect.toBeGreaterThan(firstLoad.lastUpdated),\n }),\n );\n\n s.mockClear();\n }\n });\n });\n\n describe(\".observeObject (offline)\", () => {\n const subFn = mockSingleSubCallback();\n let sub: Unsubscribable;\n\n beforeEach(() => {\n subFn.mockClear();\n\n sub = defer(\n cache.observeObject(Employee, 50030, { mode: \"offline\" }, subFn),\n );\n\n expect(subFn).toHaveBeenCalledExactlyOnceWith(objectPayloadContaining({\n status: \"init\",\n object: undefined,\n }));\n subFn.mockClear();\n });\n\n it(\"does basic observation and unsubscribe\", async () => {\n const emp = employeesAsServerReturns[0];\n\n // force an update\n cache.updateObject(Employee, emp);\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({ object: emp }),\n );\n subFn.mockClear();\n\n // force again\n cache.updateObject(Employee, emp.$clone({ fullName: \"new name\" }));\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: expect.objectContaining({ fullName: \"new name\" }),\n }),\n );\n subFn.mockClear();\n\n sub.unsubscribe();\n\n // force again but no subscription update\n cache.updateObject(\n Employee,\n emp.$clone({ fullName: \"new name 2\" }),\n );\n expect(subFn).not.toHaveBeenCalled();\n });\n\n it(\"observes with list update\", async () => {\n const emp = employeesAsServerReturns[0];\n\n // force an update\n cache.updateObject(Employee, emp.$clone({ fullName: \"not the name\" }));\n expect(subFn).toHaveBeenCalledTimes(1);\n\n cache.updateList(Employee, {}, employeesAsServerReturns);\n expect(subFn).toHaveBeenCalledTimes(2);\n\n expect(subFn.mock.calls[1][0]).toEqual(\n objectPayloadContaining({ object: emp }),\n );\n });\n });\n\n describe(\".observeList\", () => {\n const listSub1 = mockListSubCallback();\n\n beforeEach(() => {\n vi.useFakeTimers({});\n listSub1.mockReset();\n });\n afterEach(() => {\n vi.useRealTimers();\n });\n\n describe(\"mode=force\", () => {\n it(\"initial load\", async () => {\n defer(\n cache.observeList(Employee, {}, { mode: \"force\" }, listSub1),\n );\n vitest.runOnlyPendingTimers();\n await vi.waitFor(() => expect(listSub1).toHaveBeenCalled());\n\n expect(listSub1).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n status: \"loading\",\n resolvedList: [],\n }),\n );\n listSub1.mockClear();\n\n await vi.waitFor(() => expect(listSub1).toHaveBeenCalled());\n\n expect(listSub1).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: employeesAsServerReturns,\n status: \"loaded\",\n }),\n );\n });\n\n it(\"subsequent load\", async () => {\n // Pre-seed with data the server doesn't return\n cache.updateList(Employee, {}, mutatedEmployees);\n\n defer(\n cache.observeList(Employee, {}, { mode: \"force\" }, listSub1),\n );\n\n await vi.waitFor(() => expect(listSub1).toHaveBeenCalled());\n\n expect(listSub1).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: mutatedEmployees,\n status: \"loading\",\n }),\n );\n const firstLoad = listSub1.mock.calls[0][0]!;\n listSub1.mockClear();\n\n await vi.waitFor(() => expect(listSub1).toHaveBeenCalled());\n expect(listSub1).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: employeesAsServerReturns,\n status: \"loaded\",\n lastUpdated: expect.toBeGreaterThan(\n firstLoad.lastUpdated,\n ),\n }),\n );\n listSub1.mockClear();\n });\n });\n\n describe(\"mode = offline\", () => {\n it(\"updates with list updates\", async () => {\n defer(\n cache.observeList(Employee, {}, { mode: \"offline\" }, listSub1),\n );\n expect(listSub1).toHaveBeenCalledTimes(0);\n\n cache.updateList(Employee, {}, employeesAsServerReturns);\n vitest.runOnlyPendingTimers();\n\n expect(listSub1).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({ resolvedList: employeesAsServerReturns }),\n );\n listSub1.mockClear();\n\n // list is just now one object\n cache.updateList(Employee, {}, [employeesAsServerReturns[0]]);\n vitest.runOnlyPendingTimers();\n\n expect(listSub1).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: [employeesAsServerReturns[0]],\n }),\n );\n });\n\n it(\"updates with different list updates\", async () => {\n defer(\n cache.observeList(Employee, {}, { mode: \"offline\" }, listSub1),\n );\n\n expect(listSub1).toHaveBeenCalledTimes(0);\n\n cache.updateList(Employee, {}, employeesAsServerReturns);\n vitest.runOnlyPendingTimers();\n\n expect(listSub1).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({ resolvedList: employeesAsServerReturns }),\n );\n listSub1.mockClear();\n\n // new where === different list\n cache.updateList(\n Employee,\n { employeeId: { $gt: 0 } },\n mutatedEmployees,\n );\n vitest.runOnlyPendingTimers();\n\n // original list updates still\n expect(listSub1).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: mutatedEmployees,\n }),\n );\n });\n });\n });\n\n describe(\".fetchMore\", () => {\n beforeEach(() => {\n vi.useFakeTimers({});\n });\n afterEach(() => {\n vi.useRealTimers();\n });\n\n it(\"works in the solo case\", async () => {\n const listSub = mockListSubCallback();\n defer(cache.observeList(\n Employee,\n {},\n { mode: \"force\", pageSize: 1 },\n listSub,\n ));\n\n expect(listSub).not.toHaveBeenCalled();\n await vi.waitFor(() => expect(listSub).toHaveBeenCalled());\n\n expect(listSub).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n status: \"loading\",\n }),\n );\n listSub.mockClear();\n await vi.waitFor(() => expect(listSub).toHaveBeenCalled());\n\n expect(listSub).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: employeesAsServerReturns.slice(0, 1),\n status: \"loaded\",\n }),\n );\n const { fetchMore } = listSub.mock.calls[0][0]!;\n listSub.mockClear();\n\n void fetchMore();\n\n await vi.waitFor(() => expect(listSub).toHaveBeenCalledTimes(1));\n expect(listSub).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n resolvedList: employeesAsServerReturns.slice(0, 1),\n status: \"loading\",\n }),\n );\n listSub.mockClear();\n\n await vi.waitFor(() => expect(listSub).toHaveBeenCalledTimes(1));\n expect(listSub).toHaveBeenCalledWith(\n listPayloadContaining({\n resolvedList: employeesAsServerReturns.slice(0, 2),\n status: \"loaded\",\n }),\n );\n });\n });\n });\n\n describe(\"with mock client\", () => {\n let client: Mock<Client> & Client;\n let mockClient: MockClientHelper;\n let cache: Store;\n\n let employeesAsServerReturns: Osdk.Instance<Employee>[];\n let mutatedEmployees: Osdk.Instance<Employee>[];\n\n beforeEach(async () => {\n mockClient = createClientMockHelper();\n client = mockClient.client;\n cache = new Store(client);\n });\n\n describe(\"actions\", () => {\n it(\"properly invalidates objects\", async () => {\n // after the below `observeObject`, the cache will need to load from the server\n mockClient.mockFetchOneOnce().resolve({\n $apiName: \"Todo\",\n });\n\n const todoSubFn = mockSingleSubCallback();\n defer(cache.observeObject(Todo, 0, {}, todoSubFn));\n\n await todoSubFn.expectLoadingAndLoaded({\n loading: objectPayloadContaining({\n status: \"loading\",\n object: undefined,\n }),\n loaded: objectPayloadContaining({\n object: expect.objectContaining({\n $primaryKey: 0,\n }),\n }),\n });\n\n // at this point we have an observation properly set up\n mockClient.mockApplyActionOnce().resolve({\n addedObjects: [{\n objectType: \"Todo\",\n primaryKey: 0,\n }],\n });\n\n // after we apply the action, the object is invalidated and gets re-requested\n\n mockClient.mockFetchOneOnce<Todo>().resolve({\n $apiName: \"Todo\",\n text: \"hello there kind sir\",\n });\n\n const actionPromise = cache.applyAction(createOffice, {\n officeId: \"whatever\",\n });\n\n await actionPromise;\n await todoSubFn.expectLoadingAndLoaded({\n loading: objectPayloadContaining({\n status: \"loading\",\n }),\n loaded: objectPayloadContaining({\n object: expect.objectContaining({\n text: \"hello there kind sir\",\n }),\n }),\n });\n });\n\n it(\"rolls back optimistic updates on error\", async () => {\n const fauxObject = {\n $apiName: \"Todo\",\n $objectType: \"Todo\",\n $primaryKey: 0,\n $title: \"does not matter\",\n } as Osdk.Instance<Todo>;\n\n // after the below `observeObject`, the cache will need to load from the server\n mockClient.mockFetchOneOnce<Todo>()\n .resolve(fauxObject);\n\n const todoSubFn = mockSingleSubCallback();\n defer(\n cache.observeObject(Todo, 0, {}, todoSubFn),\n );\n\n await todoSubFn.expectLoadingAndLoaded({\n loading: objectPayloadContaining({\n status: \"loading\",\n object: undefined,\n isOptimistic: false,\n }),\n loaded: objectPayloadContaining({\n object: fauxObject,\n status: \"loaded\",\n isOptimistic: false,\n }),\n });\n\n // at this point we have an observation properly set up\n const applyActionResult = mockClient.mockApplyActionOnce();\n\n const actionPromise = cache.applyAction(createOffice, {\n officeId: \"whatever\",\n }, {\n optimisticUpdate: (ctx) => {\n ctx.updateObject({ ...fauxObject, someValue: \"optimistic\" });\n },\n });\n\n await waitForCall(todoSubFn, 1);\n expect(todoSubFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: {\n ...fauxObject,\n someValue: \"optimistic\",\n },\n status: \"loading\",\n isOptimistic: true,\n }),\n );\n todoSubFn.mockClear();\n\n // let the action error out\n applyActionResult.reject(\"an error thrown\");\n await expect(actionPromise).rejects.toThrow(\"an error thrown\");\n\n // back to the original object\n await waitForCall(todoSubFn, 1);\n expect(todoSubFn).toHaveBeenCalledExactlyOnceWith(\n objectPayloadContaining({\n object: fauxObject,\n status: \"loaded\",\n isOptimistic: false,\n }),\n );\n });\n });\n });\n\n describe(\"layers\", () => {\n it(\"properly remove\", () => {\n const store = new Store({} as any);\n\n const baseObjects = [1, 2].map((i) => ({\n $primaryKey: i,\n $objectType: \"Employee\",\n $apiName: \"Employee\",\n $title: `truth ${i}`,\n } as Osdk.Instance<Employee>));\n\n const cacheKeys = baseObjects.map((obj) =>\n store.getCacheKey(\"object\", \"Employee\", obj.$primaryKey)\n );\n\n // set the truth\n for (const obj of baseObjects) {\n store.updateObject(\"Employee\", obj);\n }\n\n // expect the truth\n for (const obj of baseObjects) {\n expect(store.getObject(\"Employee\", obj.$primaryKey)).toEqual(\n expect.objectContaining({ $title: `truth ${obj.$primaryKey}` }),\n );\n }\n\n const layerIds = [1, 2].map(createOptimisticId);\n\n // optimistically set the objects in their own layers\n for (let i = 0; i < 2; i++) {\n store.batch({ optimisticId: layerIds[i] }, (batch) => {\n batch.write(\n cacheKeys[i],\n {\n ...baseObjects[i],\n $title: `optimistic ${baseObjects[i].$primaryKey}`,\n },\n \"loading\",\n );\n });\n }\n\n // expect the optimistic values\n for (let i = 0; i < 2; i++) {\n expect(store.getObject(\"Employee\", baseObjects[i].$primaryKey)).toEqual(\n expect.objectContaining({\n $title: `optimistic ${baseObjects[i].$primaryKey}`,\n }),\n );\n }\n\n // remove the first layer\n store.removeLayer(layerIds[0]);\n\n // should have truth object 1 and optimistic object 2\n expect(store.getObject(\"Employee\", 1)).toEqual(\n expect.objectContaining({ $title: \"truth 1\" }),\n );\n expect(store.getObject(\"Employee\", 2)).toEqual(\n expect.objectContaining({ $title: \"optimistic 2\" }),\n );\n\n // remove the second layer\n store.removeLayer(layerIds[1]);\n\n // should have truth objects\n for (const obj of baseObjects) {\n expect(store.getObject(\"Employee\", obj.$primaryKey)).toEqual(\n expect.objectContaining({ $title: `truth ${obj.$primaryKey}` }),\n );\n }\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,124 @@
|
|
|
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
|
+
export class WeakMapWithEntries {
|
|
18
|
+
#map = new WeakMap();
|
|
19
|
+
#list = [];
|
|
20
|
+
#toClean = [];
|
|
21
|
+
#needsCleaning = false;
|
|
22
|
+
#registry = new FinalizationRegistry(() => {
|
|
23
|
+
this.#toClean.push(new WeakRef({}));
|
|
24
|
+
this.#needsCleaning = true;
|
|
25
|
+
});
|
|
26
|
+
constructor() {
|
|
27
|
+
const weakThis = new WeakRef(this);
|
|
28
|
+
const intervalId = setInterval(() => {
|
|
29
|
+
const self = weakThis.deref();
|
|
30
|
+
if (self) {
|
|
31
|
+
if (this.#needsCleaning) {
|
|
32
|
+
this.#clean();
|
|
33
|
+
}
|
|
34
|
+
} else {
|
|
35
|
+
clearInterval(intervalId);
|
|
36
|
+
}
|
|
37
|
+
}, 1000);
|
|
38
|
+
}
|
|
39
|
+
#clean() {
|
|
40
|
+
this.#list = this.#list.filter(ref => ref.deref() !== undefined);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// functions for WeakMap
|
|
44
|
+
delete(key) {
|
|
45
|
+
const ret = this.#map.delete(key);
|
|
46
|
+
this.#toClean.push(new WeakRef(key));
|
|
47
|
+
this.#needsCleaning = true;
|
|
48
|
+
return ret;
|
|
49
|
+
}
|
|
50
|
+
get(key) {
|
|
51
|
+
return this.#map.get(key);
|
|
52
|
+
}
|
|
53
|
+
has(key) {
|
|
54
|
+
return this.#map.has(key);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Adds a new element with a specified key and value.
|
|
59
|
+
* @param key Must be an object or symbol.
|
|
60
|
+
*/
|
|
61
|
+
set(key, value) {
|
|
62
|
+
if (!this.#map.has(key)) {
|
|
63
|
+
this.#list.push(new WeakRef(key));
|
|
64
|
+
}
|
|
65
|
+
this.#map.set(key, value);
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
[Symbol.toStringTag] = "WeakMap";
|
|
69
|
+
|
|
70
|
+
// functions for iterables
|
|
71
|
+
/** Returns an iterable of entries in the map. */
|
|
72
|
+
[Symbol.iterator]() {
|
|
73
|
+
return this.entries();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Returns an iterable of key, value pairs for every entry in the map.
|
|
78
|
+
*/
|
|
79
|
+
entries() {
|
|
80
|
+
const self = this;
|
|
81
|
+
return function* () {
|
|
82
|
+
for (const ref of self.#list) {
|
|
83
|
+
const key = ref.deref();
|
|
84
|
+
if (key !== undefined) {
|
|
85
|
+
yield [key, self.#map.get(key)];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Returns an iterable of keys in the map
|
|
93
|
+
*/
|
|
94
|
+
keys() {
|
|
95
|
+
const self = this;
|
|
96
|
+
return function* () {
|
|
97
|
+
for (const ref of self.#list) {
|
|
98
|
+
const key = ref.deref();
|
|
99
|
+
if (key !== undefined) {
|
|
100
|
+
yield key;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}();
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Returns an iterable of values in the map
|
|
108
|
+
*/
|
|
109
|
+
values() {
|
|
110
|
+
const self = this;
|
|
111
|
+
return function* () {
|
|
112
|
+
for (const ref of self.#list) {
|
|
113
|
+
const key = ref.deref();
|
|
114
|
+
if (key !== undefined) {
|
|
115
|
+
const value = self.#map.get(key);
|
|
116
|
+
if (value !== undefined) {
|
|
117
|
+
yield value;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=WeakMapWithEntries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WeakMapWithEntries.js","names":["WeakMapWithEntries","map","WeakMap","list","toClean","needsCleaning","registry","FinalizationRegistry","push","WeakRef","constructor","weakThis","intervalId","setInterval","self","deref","clean","clearInterval","#clean","filter","ref","undefined","delete","key","ret","get","has","set","value","Symbol","toStringTag","iterator","entries","keys","values"],"sources":["WeakMapWithEntries.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\ninterface WeakMapIterables<K extends WeakKey, V> {\n /** Returns an iterable of entries in the map. */\n [Symbol.iterator](): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the map.\n */\n entries(): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of keys in the map\n */\n keys(): IterableIterator<K>;\n\n /**\n * Returns an iterable of values in the map\n */\n values(): IterableIterator<V>;\n}\n\nexport class WeakMapWithEntries<K extends WeakKey, V>\n implements WeakMap<K, V>, WeakMapIterables<K, V>\n{\n #map = new WeakMap<K, V>();\n #list: WeakRef<K>[] = [];\n #toClean: WeakRef<WeakKey>[] = [];\n #needsCleaning = false;\n\n #registry = new FinalizationRegistry(() => {\n this.#toClean.push(new WeakRef({}));\n this.#needsCleaning = true;\n });\n\n constructor() {\n const weakThis = new WeakRef(this);\n const intervalId = setInterval(() => {\n const self = weakThis.deref();\n if (self) {\n if (this.#needsCleaning) {\n this.#clean();\n }\n } else {\n clearInterval(intervalId);\n }\n }, 1000);\n }\n\n #clean() {\n this.#list = this.#list.filter((ref) => ref.deref() !== undefined);\n }\n\n // functions for WeakMap\n delete(key: K): boolean {\n const ret = this.#map.delete(key);\n this.#toClean.push(new WeakRef(key));\n this.#needsCleaning = true;\n\n return ret;\n }\n\n get(key: K): V | undefined {\n return this.#map.get(key);\n }\n\n has(key: K): boolean {\n return this.#map.has(key);\n }\n\n /**\n * Adds a new element with a specified key and value.\n * @param key Must be an object or symbol.\n */\n set(key: K, value: V): this {\n if (!this.#map.has(key)) {\n this.#list.push(new WeakRef(key));\n }\n this.#map.set(key, value);\n\n return this;\n }\n\n [Symbol.toStringTag] = \"WeakMap\";\n\n // functions for iterables\n /** Returns an iterable of entries in the map. */\n [Symbol.iterator](): IterableIterator<[K, V]> {\n return this.entries();\n }\n\n /**\n * Returns an iterable of key, value pairs for every entry in the map.\n */\n entries(): IterableIterator<[K, V]> {\n const self = this;\n function* iter(): IterableIterator<[K, V]> {\n for (const ref of self.#list) {\n const key = ref.deref();\n if (key !== undefined) {\n yield [key, self.#map.get(key)] as [K, V];\n }\n }\n }\n return iter();\n }\n\n /**\n * Returns an iterable of keys in the map\n */\n keys(): IterableIterator<K> {\n const self = this;\n function* iter(): IterableIterator<K> {\n for (const ref of self.#list) {\n const key = ref.deref();\n if (key !== undefined) {\n yield key;\n }\n }\n }\n return iter();\n }\n\n /**\n * Returns an iterable of values in the map\n */\n values(): IterableIterator<V> {\n const self = this;\n function* iter(): IterableIterator<V> {\n for (const ref of self.#list) {\n const key = ref.deref();\n if (key !== undefined) {\n const value = self.#map.get(key);\n if (value !== undefined) {\n yield value;\n }\n }\n }\n }\n return iter();\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsBA,OAAO,MAAMA,kBAAkB,CAE/B;EACE,CAACC,GAAG,GAAG,IAAIC,OAAO,CAAO,CAAC;EAC1B,CAACC,IAAI,GAAiB,EAAE;EACxB,CAACC,OAAO,GAAuB,EAAE;EACjC,CAACC,aAAa,GAAG,KAAK;EAEtB,CAACC,QAAQ,GAAG,IAAIC,oBAAoB,CAAC,MAAM;IACzC,IAAI,CAAC,CAACH,OAAO,CAACI,IAAI,CAAC,IAAIC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,CAACJ,aAAa,GAAG,IAAI;EAC5B,CAAC,CAAC;EAEFK,WAAWA,CAAA,EAAG;IACZ,MAAMC,QAAQ,GAAG,IAAIF,OAAO,CAAC,IAAI,CAAC;IAClC,MAAMG,UAAU,GAAGC,WAAW,CAAC,MAAM;MACnC,MAAMC,IAAI,GAAGH,QAAQ,CAACI,KAAK,CAAC,CAAC;MAC7B,IAAID,IAAI,EAAE;QACR,IAAI,IAAI,CAAC,CAACT,aAAa,EAAE;UACvB,IAAI,CAAC,CAACW,KAAK,CAAC,CAAC;QACf;MACF,CAAC,MAAM;QACLC,aAAa,CAACL,UAAU,CAAC;MAC3B;IACF,CAAC,EAAE,IAAI,CAAC;EACV;EAEA,CAACI,KAAKE,CAAA,EAAG;IACP,IAAI,CAAC,CAACf,IAAI,GAAG,IAAI,CAAC,CAACA,IAAI,CAACgB,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACL,KAAK,CAAC,CAAC,KAAKM,SAAS,CAAC;EACpE;;EAEA;EACAC,MAAMA,CAACC,GAAM,EAAW;IACtB,MAAMC,GAAG,GAAG,IAAI,CAAC,CAACvB,GAAG,CAACqB,MAAM,CAACC,GAAG,CAAC;IACjC,IAAI,CAAC,CAACnB,OAAO,CAACI,IAAI,CAAC,IAAIC,OAAO,CAACc,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,CAAClB,aAAa,GAAG,IAAI;IAE1B,OAAOmB,GAAG;EACZ;EAEAC,GAAGA,CAACF,GAAM,EAAiB;IACzB,OAAO,IAAI,CAAC,CAACtB,GAAG,CAACwB,GAAG,CAACF,GAAG,CAAC;EAC3B;EAEAG,GAAGA,CAACH,GAAM,EAAW;IACnB,OAAO,IAAI,CAAC,CAACtB,GAAG,CAACyB,GAAG,CAACH,GAAG,CAAC;EAC3B;;EAEA;AACF;AACA;AACA;EACEI,GAAGA,CAACJ,GAAM,EAAEK,KAAQ,EAAQ;IAC1B,IAAI,CAAC,IAAI,CAAC,CAAC3B,GAAG,CAACyB,GAAG,CAACH,GAAG,CAAC,EAAE;MACvB,IAAI,CAAC,CAACpB,IAAI,CAACK,IAAI,CAAC,IAAIC,OAAO,CAACc,GAAG,CAAC,CAAC;IACnC;IACA,IAAI,CAAC,CAACtB,GAAG,CAAC0B,GAAG,CAACJ,GAAG,EAAEK,KAAK,CAAC;IAEzB,OAAO,IAAI;EACb;EAEA,CAACC,MAAM,CAACC,WAAW,IAAI,SAAS;;EAEhC;EACA;EACA,CAACD,MAAM,CAACE,QAAQ,IAA8B;IAC5C,OAAO,IAAI,CAACC,OAAO,CAAC,CAAC;EACvB;;EAEA;AACF;AACA;EACEA,OAAOA,CAAA,EAA6B;IAClC,MAAMlB,IAAI,GAAG,IAAI;IASjB,OARA,aAA2C;MACzC,KAAK,MAAMM,GAAG,IAAIN,IAAI,CAAC,CAACX,IAAI,EAAE;QAC5B,MAAMoB,GAAG,GAAGH,GAAG,CAACL,KAAK,CAAC,CAAC;QACvB,IAAIQ,GAAG,KAAKF,SAAS,EAAE;UACrB,MAAM,CAACE,GAAG,EAAET,IAAI,CAAC,CAACb,GAAG,CAACwB,GAAG,CAACF,GAAG,CAAC,CAAW;QAC3C;MACF;IACF,CAAC,CACW,CAAC;EACf;;EAEA;AACF;AACA;EACEU,IAAIA,CAAA,EAAwB;IAC1B,MAAMnB,IAAI,GAAG,IAAI;IASjB,OARA,aAAsC;MACpC,KAAK,MAAMM,GAAG,IAAIN,IAAI,CAAC,CAACX,IAAI,EAAE;QAC5B,MAAMoB,GAAG,GAAGH,GAAG,CAACL,KAAK,CAAC,CAAC;QACvB,IAAIQ,GAAG,KAAKF,SAAS,EAAE;UACrB,MAAME,GAAG;QACX;MACF;IACF,CAAC,CACW,CAAC;EACf;;EAEA;AACF;AACA;EACEW,MAAMA,CAAA,EAAwB;IAC5B,MAAMpB,IAAI,GAAG,IAAI;IAYjB,OAXA,aAAsC;MACpC,KAAK,MAAMM,GAAG,IAAIN,IAAI,CAAC,CAACX,IAAI,EAAE;QAC5B,MAAMoB,GAAG,GAAGH,GAAG,CAACL,KAAK,CAAC,CAAC;QACvB,IAAIQ,GAAG,KAAKF,SAAS,EAAE;UACrB,MAAMO,KAAK,GAAGd,IAAI,CAAC,CAACb,GAAG,CAACwB,GAAG,CAACF,GAAG,CAAC;UAChC,IAAIK,KAAK,KAAKP,SAAS,EAAE;YACvB,MAAMO,KAAK;UACb;QACF;MACF;IACF,CAAC,CACW,CAAC;EACf;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
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 { Trie } from "@wry/trie";
|
|
18
|
+
import deepEqual from "fast-deep-equal";
|
|
19
|
+
import invariant from "tiny-invariant";
|
|
20
|
+
export class WhereClauseCanonicalizer {
|
|
21
|
+
#cache = new WeakMap();
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* This is a trie that stores the sorted collapsed keys of a where clause to
|
|
25
|
+
* the cache key for canonicalized options. In theory this keeps the number of
|
|
26
|
+
* deepEqual comparisons down to a minimum but its probably overkill.
|
|
27
|
+
*/
|
|
28
|
+
#trie = new Trie();
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* This is a cache from the cacheKey provided by `this.#trie` to the potential
|
|
32
|
+
* canonicalized options.
|
|
33
|
+
*/
|
|
34
|
+
#existingOptions = new Map();
|
|
35
|
+
canonicalize(where) {
|
|
36
|
+
// fastest shortcut
|
|
37
|
+
if (this.#cache.has(where)) {
|
|
38
|
+
return this.#cache.get(where);
|
|
39
|
+
}
|
|
40
|
+
const keysSet = new Set();
|
|
41
|
+
const tmpCanon = this.#toCanon(where, keysSet);
|
|
42
|
+
const cacheKey = this.#trie.lookupArray(Array.from(keysSet).sort());
|
|
43
|
+
const lookupEntry = this.#existingOptions.get(cacheKey) ?? {
|
|
44
|
+
options: []
|
|
45
|
+
};
|
|
46
|
+
this.#existingOptions.set(cacheKey, lookupEntry);
|
|
47
|
+
const canon = lookupEntry.options.find(ref => deepEqual(ref.deref(), tmpCanon))?.deref() ?? tmpCanon;
|
|
48
|
+
if (canon === tmpCanon) {
|
|
49
|
+
// This means no existing options were found
|
|
50
|
+
lookupEntry.options.push(new WeakRef(canon));
|
|
51
|
+
}
|
|
52
|
+
this.#cache.set(where, canon);
|
|
53
|
+
return canon;
|
|
54
|
+
}
|
|
55
|
+
#toCanon = (where, set = new Set()) => {
|
|
56
|
+
if ("$and" in where) {
|
|
57
|
+
if (process.env.NODE_ENV !== "production") {
|
|
58
|
+
!Array.isArray(where.$and) ? process.env.NODE_ENV !== "production" ? invariant(false, "expected $and to be an array") : invariant(false) : void 0;
|
|
59
|
+
!(Object.keys(where).length === 1) ? process.env.NODE_ENV !== "production" ? invariant(false, "expected only $and to be present") : invariant(false) : void 0;
|
|
60
|
+
}
|
|
61
|
+
if (where.$and.length === 0) {
|
|
62
|
+
// empty $and is a no-op
|
|
63
|
+
return {};
|
|
64
|
+
}
|
|
65
|
+
if (where.$and.length === 1) {
|
|
66
|
+
return this.#toCanon(where.$and[0], set);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// This is incomplete for all the cases possible but it gets us started
|
|
70
|
+
|
|
71
|
+
return Object.fromEntries(Object.entries(where).sort(([a], [b]) => a.localeCompare(b)).map(([k, v]) => {
|
|
72
|
+
set.add(k);
|
|
73
|
+
if (k === "$and" || k === "$or") {
|
|
74
|
+
return [k, v.map(x => this.#toCanon(x, set))];
|
|
75
|
+
}
|
|
76
|
+
if (k !== "$not" && typeof v === "object" && "$eq" in v) {
|
|
77
|
+
return [k, v["$eq"]];
|
|
78
|
+
}
|
|
79
|
+
return [k, v];
|
|
80
|
+
}));
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=WhereClauseCanonicalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WhereClauseCanonicalizer.js","names":["Trie","deepEqual","invariant","WhereClauseCanonicalizer","cache","WeakMap","trie","existingOptions","Map","canonicalize","where","has","get","keysSet","Set","tmpCanon","toCanon","cacheKey","lookupArray","Array","from","sort","lookupEntry","options","set","canon","find","ref","deref","push","WeakRef","#toCanon","process","env","NODE_ENV","isArray","$and","Object","keys","length","fromEntries","entries","a","b","localeCompare","map","k","v","add","x"],"sources":["WhereClauseCanonicalizer.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 type { ObjectOrInterfaceDefinition, WhereClause } from \"@osdk/api\";\nimport { Trie } from \"@wry/trie\";\nimport deepEqual from \"fast-deep-equal\";\nimport invariant from \"tiny-invariant\";\nimport type { Canonical } from \"./Canonical.js\";\n\nexport class WhereClauseCanonicalizer {\n #cache = new WeakMap<WhereClause<any>, Canonical<WhereClause<any>>>();\n\n /**\n * This is a trie that stores the sorted collapsed keys of a where clause to\n * the cache key for canonicalized options. In theory this keeps the number of\n * deepEqual comparisons down to a minimum but its probably overkill.\n */\n #trie = new Trie<object>();\n\n /**\n * This is a cache from the cacheKey provided by `this.#trie` to the potential\n * canonicalized options.\n */\n #existingOptions: Map<object, {\n options: WeakRef<Canonical<WhereClause<any>>>[];\n }> = new Map();\n\n public canonicalize<T extends ObjectOrInterfaceDefinition>(\n where: WhereClause<T>,\n ): Canonical<WhereClause<T>> {\n // fastest shortcut\n if (this.#cache.has(where)) {\n return this.#cache.get(where)! as Canonical<WhereClause<T>>;\n }\n\n const keysSet = new Set<string>();\n const tmpCanon = this.#toCanon(where, keysSet);\n const cacheKey = this.#trie.lookupArray(Array.from(keysSet).sort());\n const lookupEntry = this.#existingOptions.get(cacheKey)\n ?? { options: [] as WeakRef<Canonical<WhereClause<T>>>[] };\n this.#existingOptions.set(cacheKey, lookupEntry);\n\n const canon =\n lookupEntry.options.find((ref) => deepEqual(ref.deref(), tmpCanon))\n ?.deref()\n ?? tmpCanon;\n\n if (canon === tmpCanon) {\n // This means no existing options were found\n lookupEntry.options.push(new WeakRef(canon));\n }\n\n this.#cache.set(where, canon);\n return canon as Canonical<WhereClause<T>>;\n }\n\n #toCanon = <T extends ObjectOrInterfaceDefinition>(\n where: WhereClause<T>,\n set: Set<string> = new Set<string>(),\n ): Canonical<WhereClause<T>> => {\n if (\"$and\" in where) {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(Array.isArray(where.$and), \"expected $and to be an array\");\n invariant(\n Object.keys(where).length === 1,\n \"expected only $and to be present\",\n );\n }\n if ((where as { $and: WhereClause<T>[] }).$and.length === 0) {\n // empty $and is a no-op\n return {} as Canonical<WhereClause<T>>;\n }\n if ((where as { $and: WhereClause<T>[] }).$and.length === 1) {\n return this.#toCanon(\n (where as { $and: WhereClause<T>[] }).$and[0],\n set,\n );\n }\n }\n // This is incomplete for all the cases possible but it gets us started\n\n return Object.fromEntries(\n Object.entries(where)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([k, v]) => {\n set.add(k);\n if (k === \"$and\" || k === \"$or\") {\n return [k, (v as Array<any>).map(x => this.#toCanon(x, set))];\n }\n if (k !== \"$not\" && typeof v === \"object\" && \"$eq\" in v) {\n return [k, v[\"$eq\"]];\n }\n return [k, v];\n }),\n ) as Canonical<WhereClause<T>>;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,131 @@
|
|
|
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 { describe, expect, it } from "vitest";
|
|
18
|
+
import { WhereClauseCanonicalizer } from "./WhereClauseCanonicalizer.js";
|
|
19
|
+
describe(WhereClauseCanonicalizer, () => {
|
|
20
|
+
it("does not merge unrelated queries", () => {
|
|
21
|
+
const c = new WhereClauseCanonicalizer();
|
|
22
|
+
const r1 = c.canonicalize({
|
|
23
|
+
$and: [{
|
|
24
|
+
employeeId: 5
|
|
25
|
+
}]
|
|
26
|
+
});
|
|
27
|
+
const r2 = c.canonicalize({
|
|
28
|
+
$and: [{
|
|
29
|
+
class: "hi"
|
|
30
|
+
}]
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// ref equals
|
|
34
|
+
expect(r1).not.toBe(r2);
|
|
35
|
+
});
|
|
36
|
+
it("canonizes two equal (but not ref equal) where clauses", () => {
|
|
37
|
+
const c = new WhereClauseCanonicalizer();
|
|
38
|
+
const w1 = {
|
|
39
|
+
$and: [{
|
|
40
|
+
employeeId: 5
|
|
41
|
+
}]
|
|
42
|
+
};
|
|
43
|
+
const w2 = {
|
|
44
|
+
$and: [{
|
|
45
|
+
employeeId: 5
|
|
46
|
+
}]
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// objects are deep equal
|
|
50
|
+
expect(w1).toEqual(w2);
|
|
51
|
+
const r1 = c.canonicalize(w1);
|
|
52
|
+
const r2 = c.canonicalize(w2);
|
|
53
|
+
|
|
54
|
+
// ref equals (since they are the same)
|
|
55
|
+
expect(r1).toBe(r2);
|
|
56
|
+
});
|
|
57
|
+
it("flattens $eq", () => {
|
|
58
|
+
const c = new WhereClauseCanonicalizer();
|
|
59
|
+
const r1 = c.canonicalize({
|
|
60
|
+
employeeId: {
|
|
61
|
+
$eq: 5
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const r2 = c.canonicalize({
|
|
65
|
+
employeeId: 5
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// ref equals (since they are the same)
|
|
69
|
+
expect(r1).toBe(r2);
|
|
70
|
+
|
|
71
|
+
// deep equals
|
|
72
|
+
expect(r1).toEqual({
|
|
73
|
+
employeeId: 5
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
it("flattens an $and with one entry", () => {
|
|
77
|
+
const c = new WhereClauseCanonicalizer();
|
|
78
|
+
const r1 = c.canonicalize({
|
|
79
|
+
$and: [{
|
|
80
|
+
employeeId: 5
|
|
81
|
+
}]
|
|
82
|
+
});
|
|
83
|
+
const r2 = c.canonicalize({
|
|
84
|
+
employeeId: 5
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// ref equals (since they are the same)
|
|
88
|
+
expect(r1).toBe(r2);
|
|
89
|
+
|
|
90
|
+
// deep equals
|
|
91
|
+
expect(r1).toEqual({
|
|
92
|
+
employeeId: 5
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it("flattens an $and with one entry", () => {
|
|
96
|
+
const c = new WhereClauseCanonicalizer();
|
|
97
|
+
const r1 = c.canonicalize({
|
|
98
|
+
$and: [{
|
|
99
|
+
employeeId: 5,
|
|
100
|
+
class: "what"
|
|
101
|
+
}]
|
|
102
|
+
});
|
|
103
|
+
const r2 = c.canonicalize({
|
|
104
|
+
employeeId: 5,
|
|
105
|
+
class: "what"
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
// ref equals (since they are the same)
|
|
109
|
+
expect(r1).toBe(r2);
|
|
110
|
+
|
|
111
|
+
// deep equals
|
|
112
|
+
expect(r1).toEqual({
|
|
113
|
+
employeeId: 5,
|
|
114
|
+
class: "what"
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
it("flattens an $and with zero entries", () => {
|
|
118
|
+
const c = new WhereClauseCanonicalizer();
|
|
119
|
+
const r1 = c.canonicalize({
|
|
120
|
+
$and: []
|
|
121
|
+
});
|
|
122
|
+
const r2 = c.canonicalize({});
|
|
123
|
+
|
|
124
|
+
// ref equals (since they are the same)
|
|
125
|
+
expect(r1).toBe(r2);
|
|
126
|
+
|
|
127
|
+
// deep equals
|
|
128
|
+
expect(r1).toEqual({});
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=WhereClauseCanonicalizer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WhereClauseCanonicalizer.test.js","names":["describe","expect","it","WhereClauseCanonicalizer","c","r1","canonicalize","$and","employeeId","r2","class","not","toBe","w1","w2","toEqual","$eq"],"sources":["WhereClauseCanonicalizer.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 type { WhereClause } from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\nimport { describe, expect, it } from \"vitest\";\nimport { WhereClauseCanonicalizer } from \"./WhereClauseCanonicalizer.js\";\n\ndescribe(WhereClauseCanonicalizer, () => {\n it(\"does not merge unrelated queries\", () => {\n const c = new WhereClauseCanonicalizer();\n const w1: WhereClause<Employee> = {\n $and: [\n {\n employeeId: 5,\n },\n ],\n };\n\n const w2: WhereClause<Employee> = {\n $and: [\n {\n class: \"hi\",\n },\n ],\n };\n\n const r1 = c.canonicalize(w1);\n const r2 = c.canonicalize(w2);\n\n // ref equals\n expect(r1).not.toBe(r2);\n });\n\n it(\"canonizes two equal (but not ref equal) where clauses\", () => {\n const c = new WhereClauseCanonicalizer();\n const w1: WhereClause<Employee> = {\n $and: [\n {\n employeeId: 5,\n },\n ],\n };\n\n const w2: WhereClause<Employee> = {\n $and: [\n {\n employeeId: 5,\n },\n ],\n };\n\n // objects are deep equal\n expect(w1).toEqual(w2);\n\n const r1 = c.canonicalize(w1);\n const r2 = c.canonicalize(w2);\n\n // ref equals (since they are the same)\n expect(r1).toBe(r2);\n });\n\n it(\"flattens $eq\", () => {\n const c = new WhereClauseCanonicalizer();\n const w1: WhereClause<Employee> = {\n employeeId: { $eq: 5 },\n };\n\n const w2: WhereClause<Employee> = {\n employeeId: 5,\n };\n\n const r1 = c.canonicalize(w1);\n const r2 = c.canonicalize(w2);\n\n // ref equals (since they are the same)\n expect(r1).toBe(r2);\n\n // deep equals\n expect(r1).toEqual({ employeeId: 5 });\n });\n\n it(\"flattens an $and with one entry\", () => {\n const c = new WhereClauseCanonicalizer();\n const w1: WhereClause<Employee> = {\n $and: [\n {\n employeeId: 5,\n },\n ],\n };\n\n const w2: WhereClause<Employee> = {\n employeeId: 5,\n };\n\n const r1 = c.canonicalize(w1);\n const r2 = c.canonicalize(w2);\n\n // ref equals (since they are the same)\n expect(r1).toBe(r2);\n\n // deep equals\n expect(r1).toEqual({ employeeId: 5 });\n });\n\n it(\"flattens an $and with one entry\", () => {\n const c = new WhereClauseCanonicalizer();\n const w1: WhereClause<Employee> = {\n $and: [\n {\n employeeId: 5,\n class: \"what\",\n },\n ],\n };\n\n const w2: WhereClause<Employee> = {\n employeeId: 5,\n class: \"what\",\n };\n\n const r1 = c.canonicalize(w1);\n const r2 = c.canonicalize(w2);\n\n // ref equals (since they are the same)\n expect(r1).toBe(r2);\n\n // deep equals\n expect(r1).toEqual({ employeeId: 5, class: \"what\" });\n });\n\n it(\"flattens an $and with zero entries\", () => {\n const c = new WhereClauseCanonicalizer();\n const w1: WhereClause<Employee> = {\n $and: [],\n };\n\n const w2: WhereClause<Employee> = {};\n\n const r1 = c.canonicalize(w1);\n const r2 = c.canonicalize(w2);\n\n // ref equals (since they are the same)\n expect(r1).toBe(r2);\n\n // deep equals\n expect(r1).toEqual({});\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,112 @@
|
|
|
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 deepEqual from "fast-deep-equal";
|
|
18
|
+
import invariant from "tiny-invariant";
|
|
19
|
+
function is$and(whereClause) {
|
|
20
|
+
if (process.env.NODE_ENV !== "production") {
|
|
21
|
+
if ("$and" in whereClause) {
|
|
22
|
+
!Array.isArray(whereClause.$and) ? process.env.NODE_ENV !== "production" ? invariant(false, "expected $and to be an array") : invariant(false) : void 0;
|
|
23
|
+
!(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant(false, "expected only $and to be present") : invariant(false) : void 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return "$and" in whereClause;
|
|
27
|
+
}
|
|
28
|
+
function is$or(whereClause) {
|
|
29
|
+
if (process.env.NODE_ENV !== "production") {
|
|
30
|
+
if ("$or" in whereClause) {
|
|
31
|
+
!Array.isArray(whereClause.$or) ? process.env.NODE_ENV !== "production" ? invariant(false, "expected $or to be an array") : invariant(false) : void 0;
|
|
32
|
+
!(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant(false, "expected only $or to be present") : invariant(false) : void 0;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return "$or" in whereClause;
|
|
36
|
+
}
|
|
37
|
+
function is$not(whereClause) {
|
|
38
|
+
if (process.env.NODE_ENV !== "production") {
|
|
39
|
+
if ("$not" in whereClause) {
|
|
40
|
+
!(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant(false, "expected only $not to be present") : invariant(false) : void 0;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return "$not" in whereClause;
|
|
44
|
+
}
|
|
45
|
+
export function objectSortaMatchesWhereClause(o, whereClause, strict) {
|
|
46
|
+
if (deepEqual({}, whereClause)) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
if (is$and(whereClause)) {
|
|
50
|
+
return whereClause.$and.every(w => objectSortaMatchesWhereClause(o, w, strict));
|
|
51
|
+
}
|
|
52
|
+
if (is$or(whereClause)) {
|
|
53
|
+
return whereClause.$or.some(w => objectSortaMatchesWhereClause(o, w, strict));
|
|
54
|
+
}
|
|
55
|
+
if (is$not(whereClause)) {
|
|
56
|
+
return !objectSortaMatchesWhereClause(o, whereClause.$not, strict);
|
|
57
|
+
}
|
|
58
|
+
return Object.entries(whereClause).every(([key, filter]) => {
|
|
59
|
+
if (typeof filter === "object") {
|
|
60
|
+
const realValue = o[key];
|
|
61
|
+
const [f] = Object.keys(filter);
|
|
62
|
+
const expected = filter[f];
|
|
63
|
+
switch (f) {
|
|
64
|
+
case "$eq":
|
|
65
|
+
return realValue === expected;
|
|
66
|
+
case "$gt":
|
|
67
|
+
return realValue > expected;
|
|
68
|
+
case "$lt":
|
|
69
|
+
return realValue < expected;
|
|
70
|
+
case "$gte":
|
|
71
|
+
return realValue >= expected;
|
|
72
|
+
case "$lte":
|
|
73
|
+
return realValue <= expected;
|
|
74
|
+
case "$ne":
|
|
75
|
+
return realValue !== expected;
|
|
76
|
+
case "$in":
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
78
|
+
return expected.$in.includes(realValue);
|
|
79
|
+
case "$isNull":
|
|
80
|
+
return realValue == null;
|
|
81
|
+
case "$startsWith":
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
83
|
+
return realValue.startsWith(expected);
|
|
84
|
+
case "$contains":
|
|
85
|
+
case "$containsAllTerms":
|
|
86
|
+
case "$containsAllTermsInOrder":
|
|
87
|
+
case "$containsAnyTerm":
|
|
88
|
+
case "$intersects":
|
|
89
|
+
case "$within":
|
|
90
|
+
// for these we will strictly say no and loosely say yes
|
|
91
|
+
// so that they don't change things now but may if reloaded
|
|
92
|
+
return !strict;
|
|
93
|
+
default:
|
|
94
|
+
// same thing here as the above cases but we will catch the
|
|
95
|
+
// exhaustive check in dev
|
|
96
|
+
if (process.env.NODE_ENV !== "production") {
|
|
97
|
+
process.env.NODE_ENV !== "production" ? invariant(false, `Unknown where filter ${f}`) : invariant(false);
|
|
98
|
+
}
|
|
99
|
+
return !strict;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// console.log("AAAA", key in o, o[key], filter);
|
|
104
|
+
if (key in o) {
|
|
105
|
+
if (o[key] === filter) {
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=objectMatchesWhereClause.js.map
|