@osdk/client 2.7.0-beta.8 → 2.7.0-rc.15
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 +190 -0
- package/build/browser/MinimalClientContext.js.map +1 -1
- package/build/browser/actions/actions.test.js +9 -8
- package/build/browser/actions/actions.test.js.map +1 -1
- package/build/browser/actions/applyAction.js +0 -4
- package/build/browser/actions/applyAction.js.map +1 -1
- package/build/browser/createClient.js +1 -2
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/createMinimalClient.js +0 -1
- package/build/browser/createMinimalClient.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +1 -17
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/browser/index.js +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js +14 -9
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js +74 -0
- package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
- package/build/browser/object/SimpleOsdkProperties.js.map +1 -1
- package/build/browser/object/aggregate.js +0 -1
- package/build/browser/object/aggregate.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
- package/build/browser/object/fetchPage.js +0 -2
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js +13 -4
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +46 -2
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +1 -1
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/objectSet/fetchLinksPage.js +0 -1
- package/build/browser/objectSet/fetchLinksPage.js.map +1 -1
- package/build/browser/observable/FunctionPayload.js +2 -0
- package/build/browser/observable/FunctionPayload.js.map +1 -0
- package/build/browser/observable/ObservableClient.js.map +1 -1
- package/build/browser/observable/internal/BulkObjectLoader.js +2 -1
- package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -1
- package/build/browser/observable/internal/Changes.js +4 -1
- package/build/browser/observable/internal/Changes.js.map +1 -1
- package/build/browser/observable/internal/KnownCacheKey.js.map +1 -1
- package/build/browser/observable/internal/ObservableClientImpl.js +21 -1
- package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/browser/observable/internal/RidListCanonicalizer.js +30 -0
- package/build/browser/observable/internal/RidListCanonicalizer.js.map +1 -0
- package/build/browser/observable/internal/RidListCanonicalizer.test.js +50 -0
- package/build/browser/observable/internal/RidListCanonicalizer.test.js.map +1 -0
- package/build/browser/observable/internal/Store.js +11 -1
- package/build/browser/observable/internal/Store.js.map +1 -1
- package/build/browser/observable/internal/Store.test.js +106 -5
- package/build/browser/observable/internal/Store.test.js.map +1 -1
- package/build/browser/observable/internal/actions/ActionApplication.js +11 -7
- package/build/browser/observable/internal/actions/ActionApplication.js.map +1 -1
- package/build/browser/observable/internal/base-list/BaseCollectionQuery.js.map +1 -1
- package/build/browser/observable/internal/base-list/BaseListQuery.js +15 -9
- package/build/browser/observable/internal/base-list/BaseListQuery.js.map +1 -1
- package/build/browser/observable/internal/base-list/createCollectionConnectable.js +4 -2
- package/build/browser/observable/internal/base-list/createCollectionConnectable.js.map +1 -1
- package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js +1 -2
- package/build/browser/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -1
- package/build/browser/observable/internal/evaluateFilter.js +1 -1
- package/build/browser/observable/internal/evaluateFilter.js.map +1 -1
- package/build/browser/observable/internal/evaluateFilter.test.js +105 -0
- package/build/browser/observable/internal/evaluateFilter.test.js.map +1 -0
- package/build/browser/observable/internal/function/FunctionCacheKey.js +26 -0
- package/build/browser/observable/internal/function/FunctionCacheKey.js.map +1 -0
- package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.js +151 -0
- package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.js.map +1 -0
- package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.test.js +186 -0
- package/build/browser/observable/internal/function/FunctionParamsCanonicalizer.test.js.map +1 -0
- package/build/browser/observable/internal/function/FunctionQuery.js +137 -0
- package/build/browser/observable/internal/function/FunctionQuery.js.map +1 -0
- package/build/browser/observable/internal/function/FunctionQuery.test.js +278 -0
- package/build/browser/observable/internal/function/FunctionQuery.test.js.map +1 -0
- package/build/browser/observable/internal/function/FunctionsHelper.js +92 -0
- package/build/browser/observable/internal/function/FunctionsHelper.js.map +1 -0
- package/build/browser/observable/internal/links/SpecificLinkQuery.js +2 -1
- package/build/browser/observable/internal/links/SpecificLinkQuery.js.map +1 -1
- package/build/browser/observable/internal/list/InterfaceListQuery.js +27 -10
- package/build/browser/observable/internal/list/InterfaceListQuery.js.map +1 -1
- package/build/browser/observable/internal/list/ListCacheKey.js +1 -0
- package/build/browser/observable/internal/list/ListCacheKey.js.map +1 -1
- package/build/browser/observable/internal/list/ListQuery.js +27 -6
- package/build/browser/observable/internal/list/ListQuery.js.map +1 -1
- package/build/browser/observable/internal/list/ListQuery.test.js +167 -3
- package/build/browser/observable/internal/list/ListQuery.test.js.map +1 -1
- package/build/browser/observable/internal/list/ListsHelper.js +6 -3
- package/build/browser/observable/internal/list/ListsHelper.js.map +1 -1
- package/build/browser/observable/internal/list/ObjectListQuery.js +23 -9
- package/build/browser/observable/internal/list/ObjectListQuery.js.map +1 -1
- package/build/browser/observable/internal/object/ObjectQuery.js +15 -1
- package/build/browser/observable/internal/object/ObjectQuery.js.map +1 -1
- package/build/browser/observable/internal/object/ObjectsHelper.js +1 -3
- package/build/browser/observable/internal/object/ObjectsHelper.js.map +1 -1
- package/build/browser/observable/internal/objectMatchesWhereClause.test.js +11 -1
- package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
- package/build/browser/observable/internal/objectset/ObjectSetQuery.js +15 -9
- package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
- package/build/browser/observable/internal/testUtils.js +8 -5
- package/build/browser/observable/internal/testUtils.js.map +1 -1
- package/build/browser/observable/internal/utils/rdpFieldOperations.js +6 -3
- package/build/browser/observable/internal/utils/rdpFieldOperations.js.map +1 -1
- package/build/browser/observable/internal/utils/rdpFieldOperations.test.js +172 -0
- package/build/browser/observable/internal/utils/rdpFieldOperations.test.js.map +1 -0
- package/build/browser/ontology/loadActionMetadata.js +1 -3
- package/build/browser/ontology/loadActionMetadata.js.map +1 -1
- package/build/browser/ontology/loadFullObjectMetadata.js +1 -2
- package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/browser/ontology/loadInterfaceMetadata.js +1 -2
- package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -1
- package/build/browser/public/unstable-do-not-use.js.map +1 -1
- package/build/browser/queries/applyQuery.js +14 -0
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/queries/queries.test.js +14 -2
- package/build/browser/queries/queries.test.js.map +1 -1
- package/build/browser/util/UserAgent.js +2 -2
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/isObjectSpecifiersObject.js.map +1 -1
- package/build/browser/util/toDataValue.js +0 -5
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/browser/util/toDataValue.test.js +2 -7
- package/build/browser/util/toDataValue.test.js.map +1 -1
- package/build/cjs/{Client-DaUJl7jZ.d.cts → Client-Cmx6x_V1.d.cts} +1 -1
- package/build/cjs/{chunk-FL7QZC57.cjs → chunk-CDUYWOVQ.cjs} +79 -82
- package/build/cjs/chunk-CDUYWOVQ.cjs.map +1 -0
- package/build/cjs/{chunk-PARVKNVB.cjs → chunk-Y362HOIZ.cjs} +30 -35
- package/build/cjs/chunk-Y362HOIZ.cjs.map +1 -0
- package/build/cjs/{createClient-D5G3qzAO.d.cts → createClient-BDmrDOzZ.d.cts} +1 -2
- package/build/cjs/index.cjs +8 -12
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +3 -3
- package/build/cjs/public/internal.cjs +8 -8
- package/build/cjs/public/internal.d.cts +1 -1
- package/build/cjs/public/unstable-do-not-use.cjs +719 -108
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +75 -4
- package/build/esm/MinimalClientContext.js.map +1 -1
- package/build/esm/actions/actions.test.js +9 -8
- package/build/esm/actions/actions.test.js.map +1 -1
- package/build/esm/actions/applyAction.js +0 -4
- package/build/esm/actions/applyAction.js.map +1 -1
- package/build/esm/createClient.js +1 -2
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/createMinimalClient.js +0 -1
- package/build/esm/createMinimalClient.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +1 -17
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js +14 -9
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js +74 -0
- package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
- package/build/esm/object/SimpleOsdkProperties.js.map +1 -1
- package/build/esm/object/aggregate.js +0 -1
- package/build/esm/object/aggregate.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
- package/build/esm/object/fetchPage.js +0 -2
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js +13 -4
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +46 -2
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +1 -1
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/objectSet/fetchLinksPage.js +0 -1
- package/build/esm/objectSet/fetchLinksPage.js.map +1 -1
- package/build/esm/observable/FunctionPayload.js +2 -0
- package/build/esm/observable/FunctionPayload.js.map +1 -0
- package/build/esm/observable/ObservableClient.js.map +1 -1
- package/build/esm/observable/internal/BulkObjectLoader.js +2 -1
- package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -1
- package/build/esm/observable/internal/Changes.js +4 -1
- package/build/esm/observable/internal/Changes.js.map +1 -1
- package/build/esm/observable/internal/KnownCacheKey.js.map +1 -1
- package/build/esm/observable/internal/ObservableClientImpl.js +21 -1
- package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/esm/observable/internal/RidListCanonicalizer.js +30 -0
- package/build/esm/observable/internal/RidListCanonicalizer.js.map +1 -0
- package/build/esm/observable/internal/RidListCanonicalizer.test.js +50 -0
- package/build/esm/observable/internal/RidListCanonicalizer.test.js.map +1 -0
- package/build/esm/observable/internal/Store.js +11 -1
- package/build/esm/observable/internal/Store.js.map +1 -1
- package/build/esm/observable/internal/Store.test.js +106 -5
- package/build/esm/observable/internal/Store.test.js.map +1 -1
- package/build/esm/observable/internal/actions/ActionApplication.js +11 -7
- package/build/esm/observable/internal/actions/ActionApplication.js.map +1 -1
- package/build/esm/observable/internal/base-list/BaseCollectionQuery.js.map +1 -1
- package/build/esm/observable/internal/base-list/BaseListQuery.js +15 -9
- package/build/esm/observable/internal/base-list/BaseListQuery.js.map +1 -1
- package/build/esm/observable/internal/base-list/createCollectionConnectable.js +4 -2
- package/build/esm/observable/internal/base-list/createCollectionConnectable.js.map +1 -1
- package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js +1 -2
- package/build/esm/observable/internal/base-list/createCollectionConnectable.test.js.map +1 -1
- package/build/esm/observable/internal/evaluateFilter.js +1 -1
- package/build/esm/observable/internal/evaluateFilter.js.map +1 -1
- package/build/esm/observable/internal/evaluateFilter.test.js +105 -0
- package/build/esm/observable/internal/evaluateFilter.test.js.map +1 -0
- package/build/esm/observable/internal/function/FunctionCacheKey.js +26 -0
- package/build/esm/observable/internal/function/FunctionCacheKey.js.map +1 -0
- package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.js +151 -0
- package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.js.map +1 -0
- package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.test.js +186 -0
- package/build/esm/observable/internal/function/FunctionParamsCanonicalizer.test.js.map +1 -0
- package/build/esm/observable/internal/function/FunctionQuery.js +137 -0
- package/build/esm/observable/internal/function/FunctionQuery.js.map +1 -0
- package/build/esm/observable/internal/function/FunctionQuery.test.js +278 -0
- package/build/esm/observable/internal/function/FunctionQuery.test.js.map +1 -0
- package/build/esm/observable/internal/function/FunctionsHelper.js +92 -0
- package/build/esm/observable/internal/function/FunctionsHelper.js.map +1 -0
- package/build/esm/observable/internal/links/SpecificLinkQuery.js +2 -1
- package/build/esm/observable/internal/links/SpecificLinkQuery.js.map +1 -1
- package/build/esm/observable/internal/list/InterfaceListQuery.js +27 -10
- package/build/esm/observable/internal/list/InterfaceListQuery.js.map +1 -1
- package/build/esm/observable/internal/list/ListCacheKey.js +1 -0
- package/build/esm/observable/internal/list/ListCacheKey.js.map +1 -1
- package/build/esm/observable/internal/list/ListQuery.js +27 -6
- package/build/esm/observable/internal/list/ListQuery.js.map +1 -1
- package/build/esm/observable/internal/list/ListQuery.test.js +167 -3
- package/build/esm/observable/internal/list/ListQuery.test.js.map +1 -1
- package/build/esm/observable/internal/list/ListsHelper.js +6 -3
- package/build/esm/observable/internal/list/ListsHelper.js.map +1 -1
- package/build/esm/observable/internal/list/ObjectListQuery.js +23 -9
- package/build/esm/observable/internal/list/ObjectListQuery.js.map +1 -1
- package/build/esm/observable/internal/object/ObjectQuery.js +15 -1
- package/build/esm/observable/internal/object/ObjectQuery.js.map +1 -1
- package/build/esm/observable/internal/object/ObjectsHelper.js +1 -3
- package/build/esm/observable/internal/object/ObjectsHelper.js.map +1 -1
- package/build/esm/observable/internal/objectMatchesWhereClause.test.js +11 -1
- package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
- package/build/esm/observable/internal/objectset/ObjectSetQuery.js +15 -9
- package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -1
- package/build/esm/observable/internal/testUtils.js +8 -5
- package/build/esm/observable/internal/testUtils.js.map +1 -1
- package/build/esm/observable/internal/utils/rdpFieldOperations.js +6 -3
- package/build/esm/observable/internal/utils/rdpFieldOperations.js.map +1 -1
- package/build/esm/observable/internal/utils/rdpFieldOperations.test.js +172 -0
- package/build/esm/observable/internal/utils/rdpFieldOperations.test.js.map +1 -0
- package/build/esm/ontology/loadActionMetadata.js +1 -3
- package/build/esm/ontology/loadActionMetadata.js.map +1 -1
- package/build/esm/ontology/loadFullObjectMetadata.js +1 -2
- package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/esm/ontology/loadInterfaceMetadata.js +1 -2
- package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -1
- package/build/esm/public/unstable-do-not-use.js.map +1 -1
- package/build/esm/queries/applyQuery.js +14 -0
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/queries/queries.test.js +14 -2
- package/build/esm/queries/queries.test.js.map +1 -1
- package/build/esm/util/UserAgent.js +2 -2
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/isObjectSpecifiersObject.js.map +1 -1
- package/build/esm/util/toDataValue.js +0 -5
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/esm/util/toDataValue.test.js +2 -7
- package/build/esm/util/toDataValue.test.js.map +1 -1
- package/build/types/MinimalClientContext.d.ts +1 -1
- package/build/types/actions/applyAction.d.ts.map +1 -1
- package/build/types/createClient.d.ts +0 -1
- package/build/types/createClient.d.ts.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/objectSet/createObjectSet.d.ts +14 -1
- package/build/types/objectSet/createObjectSet.d.ts.map +1 -1
- package/build/types/objectSet/fetchLinksPage.d.ts +9 -1
- package/build/types/objectSet/fetchLinksPage.d.ts.map +1 -1
- package/build/types/observable/FunctionPayload.d.ts +10 -0
- package/build/types/observable/FunctionPayload.d.ts.map +1 -0
- package/build/types/observable/ObservableClient.d.ts +73 -1
- package/build/types/observable/ObservableClient.d.ts.map +1 -1
- package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -1
- package/build/types/observable/internal/Changes.d.ts +5 -3
- package/build/types/observable/internal/Changes.d.ts.map +1 -1
- package/build/types/observable/internal/KnownCacheKey.d.ts +2 -1
- package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -1
- package/build/types/observable/internal/RidListCanonicalizer.d.ts +5 -0
- package/build/types/observable/internal/RidListCanonicalizer.d.ts.map +1 -0
- package/build/types/observable/internal/RidListCanonicalizer.test.d.ts +1 -0
- package/build/types/observable/internal/RidListCanonicalizer.test.d.ts.map +1 -0
- package/build/types/observable/internal/Store.d.ts +7 -1
- package/build/types/observable/internal/Store.d.ts.map +1 -1
- package/build/types/observable/internal/Store.test.d.ts.map +1 -1
- package/build/types/observable/internal/actions/ActionApplication.d.ts.map +1 -1
- package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts +3 -0
- package/build/types/observable/internal/base-list/BaseCollectionQuery.d.ts.map +1 -1
- package/build/types/observable/internal/base-list/BaseListQuery.d.ts +3 -1
- package/build/types/observable/internal/base-list/BaseListQuery.d.ts.map +1 -1
- package/build/types/observable/internal/evaluateFilter.test.d.ts +1 -0
- package/build/types/observable/internal/evaluateFilter.test.d.ts.map +1 -0
- package/build/types/observable/internal/function/FunctionCacheKey.d.ts +17 -0
- package/build/types/observable/internal/function/FunctionCacheKey.d.ts.map +1 -0
- package/build/types/observable/internal/function/FunctionParamsCanonicalizer.d.ts +16 -0
- package/build/types/observable/internal/function/FunctionParamsCanonicalizer.d.ts.map +1 -0
- package/build/types/observable/internal/function/FunctionParamsCanonicalizer.test.d.ts +1 -0
- package/build/types/observable/internal/function/FunctionParamsCanonicalizer.test.d.ts.map +1 -0
- package/build/types/observable/internal/function/FunctionQuery.d.ts +40 -0
- package/build/types/observable/internal/function/FunctionQuery.d.ts.map +1 -0
- package/build/types/observable/internal/function/FunctionQuery.test.d.ts +1 -0
- package/build/types/observable/internal/function/FunctionQuery.test.d.ts.map +1 -0
- package/build/types/observable/internal/function/FunctionsHelper.d.ts +25 -0
- package/build/types/observable/internal/function/FunctionsHelper.d.ts.map +1 -0
- package/build/types/observable/internal/links/SpecificLinkQuery.d.ts.map +1 -1
- package/build/types/observable/internal/list/InterfaceListQuery.d.ts +3 -0
- package/build/types/observable/internal/list/InterfaceListQuery.d.ts.map +1 -1
- package/build/types/observable/internal/list/ListCacheKey.d.ts +2 -1
- package/build/types/observable/internal/list/ListCacheKey.d.ts.map +1 -1
- package/build/types/observable/internal/list/ListQuery.d.ts +1 -1
- package/build/types/observable/internal/list/ListQuery.d.ts.map +1 -1
- package/build/types/observable/internal/list/ListsHelper.d.ts +3 -1
- package/build/types/observable/internal/list/ListsHelper.d.ts.map +1 -1
- package/build/types/observable/internal/list/ObjectListQuery.d.ts.map +1 -1
- package/build/types/observable/internal/object/ObjectQuery.d.ts.map +1 -1
- package/build/types/observable/internal/object/ObjectsHelper.d.ts.map +1 -1
- package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts +1 -0
- package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -1
- package/build/types/observable/internal/testUtils.d.ts.map +1 -1
- package/build/types/observable/internal/utils/rdpFieldOperations.d.ts.map +1 -1
- package/build/types/observable/internal/utils/rdpFieldOperations.test.d.ts +1 -0
- package/build/types/observable/internal/utils/rdpFieldOperations.test.d.ts.map +1 -0
- package/build/types/public/unstable-do-not-use.d.ts +2 -1
- package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
- package/build/types/queries/applyQuery.d.ts.map +1 -1
- package/build/types/util/isObjectSpecifiersObject.d.ts +1 -0
- package/build/types/util/isObjectSpecifiersObject.d.ts.map +1 -1
- package/package.json +10 -10
- package/build/cjs/chunk-FL7QZC57.cjs.map +0 -1
- package/build/cjs/chunk-PARVKNVB.cjs.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkCDUYWOVQ_cjs = require('../chunk-CDUYWOVQ.cjs');
|
|
4
|
+
var chunkY362HOIZ_cjs = require('../chunk-Y362HOIZ.cjs');
|
|
5
5
|
var chunkLDTMSHUZ_cjs = require('../chunk-LDTMSHUZ.cjs');
|
|
6
6
|
var trie = require('@wry/trie');
|
|
7
7
|
var deepEqual = require('fast-deep-equal');
|
|
8
|
-
var
|
|
8
|
+
var invariant5 = require('tiny-invariant');
|
|
9
9
|
var shared_net_fetch = require('@osdk/shared.net.fetch');
|
|
10
10
|
var rxjs = require('rxjs');
|
|
11
11
|
var mnemonist = require('mnemonist');
|
|
@@ -15,7 +15,7 @@ var shared_net_errors = require('@osdk/shared.net.errors');
|
|
|
15
15
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
16
|
|
|
17
17
|
var deepEqual__default = /*#__PURE__*/_interopDefault(deepEqual);
|
|
18
|
-
var
|
|
18
|
+
var invariant5__default = /*#__PURE__*/_interopDefault(invariant5);
|
|
19
19
|
var groupBy__default = /*#__PURE__*/_interopDefault(groupBy);
|
|
20
20
|
|
|
21
21
|
// src/public/unstable-do-not-use.ts
|
|
@@ -126,8 +126,8 @@ var WhereClauseCanonicalizer = class {
|
|
|
126
126
|
#toCanon = (where, set = /* @__PURE__ */ new Set()) => {
|
|
127
127
|
if ("$and" in where) {
|
|
128
128
|
if (process.env.NODE_ENV !== "production") {
|
|
129
|
-
!Array.isArray(where.$and) ? process.env.NODE_ENV !== "production" ?
|
|
130
|
-
!(Object.keys(where).length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
129
|
+
!Array.isArray(where.$and) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected $and to be an array") : invariant5__default.default(false) : void 0;
|
|
130
|
+
!(Object.keys(where).length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected only $and to be present") : invariant5__default.default(false) : void 0;
|
|
131
131
|
}
|
|
132
132
|
if (where.$and.length === 0) {
|
|
133
133
|
return {};
|
|
@@ -153,7 +153,7 @@ var WhereClauseCanonicalizer = class {
|
|
|
153
153
|
var whereCanonicalizer = new WhereClauseCanonicalizer();
|
|
154
154
|
var orderByCanonicalizer = new OrderByCanonicalizer();
|
|
155
155
|
function computeObjectSetCacheKey(objectSet, options) {
|
|
156
|
-
const keyParts = ["objectSet",
|
|
156
|
+
const keyParts = ["objectSet", chunkY362HOIZ_cjs.getWireObjectSet(objectSet)];
|
|
157
157
|
if (!options) {
|
|
158
158
|
return JSON.stringify(keyParts);
|
|
159
159
|
}
|
|
@@ -165,13 +165,13 @@ function computeObjectSetCacheKey(objectSet, options) {
|
|
|
165
165
|
keyParts.push("props", propKeys);
|
|
166
166
|
}
|
|
167
167
|
if (options.union && options.union.length > 0) {
|
|
168
|
-
keyParts.push("union", options.union.map((os) =>
|
|
168
|
+
keyParts.push("union", options.union.map((os) => chunkY362HOIZ_cjs.getWireObjectSet(os)));
|
|
169
169
|
}
|
|
170
170
|
if (options.intersect && options.intersect.length > 0) {
|
|
171
|
-
keyParts.push("intersect", options.intersect.map((os) =>
|
|
171
|
+
keyParts.push("intersect", options.intersect.map((os) => chunkY362HOIZ_cjs.getWireObjectSet(os)));
|
|
172
172
|
}
|
|
173
173
|
if (options.subtract && options.subtract.length > 0) {
|
|
174
|
-
keyParts.push("subtract", options.subtract.map((os) =>
|
|
174
|
+
keyParts.push("subtract", options.subtract.map((os) => chunkY362HOIZ_cjs.getWireObjectSet(os)));
|
|
175
175
|
}
|
|
176
176
|
if (options.pivotTo) {
|
|
177
177
|
keyParts.push("pivotTo", options.pivotTo);
|
|
@@ -231,6 +231,20 @@ var ObservableClientImpl = class {
|
|
|
231
231
|
observeAggregation = (options, subFn) => {
|
|
232
232
|
return this.__experimentalStore.aggregations.observe(options, subFn);
|
|
233
233
|
};
|
|
234
|
+
observeFunction = (queryDef, params, options, subFn) => {
|
|
235
|
+
const dependsOn = options.dependsOn?.map((dep) => typeof dep === "string" ? dep : dep.apiName);
|
|
236
|
+
const dependsOnObjects = options.dependsOnObjects?.map((obj) => ({
|
|
237
|
+
$apiName: obj.$objectType ?? obj.$apiName,
|
|
238
|
+
$primaryKey: obj.$primaryKey
|
|
239
|
+
}));
|
|
240
|
+
return this.__experimentalStore.functions.observe({
|
|
241
|
+
...options,
|
|
242
|
+
queryDef,
|
|
243
|
+
params,
|
|
244
|
+
dependsOn,
|
|
245
|
+
dependsOnObjects
|
|
246
|
+
}, subFn);
|
|
247
|
+
};
|
|
234
248
|
observeLinks = (objects, linkName, options, subFn) => {
|
|
235
249
|
const objectsArray = Array.isArray(objects) ? objects : [objects];
|
|
236
250
|
const parentSub = new rxjs.Subscription();
|
|
@@ -240,7 +254,7 @@ var ObservableClientImpl = class {
|
|
|
240
254
|
...options,
|
|
241
255
|
srcType: {
|
|
242
256
|
type: "object",
|
|
243
|
-
apiName: obj.$apiName
|
|
257
|
+
apiName: obj.$objectType ?? obj.$apiName
|
|
244
258
|
},
|
|
245
259
|
linkName,
|
|
246
260
|
pk: obj.$primaryKey
|
|
@@ -271,6 +285,12 @@ var ObservableClientImpl = class {
|
|
|
271
285
|
invalidateObjectType(type) {
|
|
272
286
|
return this.__experimentalStore.invalidateObjectType(type, void 0);
|
|
273
287
|
}
|
|
288
|
+
invalidateFunction(apiName, params) {
|
|
289
|
+
return this.__experimentalStore.invalidateFunction(apiName, params);
|
|
290
|
+
}
|
|
291
|
+
invalidateFunctionsByObject(apiName, primaryKey) {
|
|
292
|
+
return this.__experimentalStore.invalidateFunctionsByObject(apiName, primaryKey);
|
|
293
|
+
}
|
|
274
294
|
canonicalizeWhereClause(where) {
|
|
275
295
|
return this.__experimentalStore.whereCanonicalizer.canonicalize(where);
|
|
276
296
|
}
|
|
@@ -351,7 +371,7 @@ var OptimisticJob = class {
|
|
|
351
371
|
return this;
|
|
352
372
|
},
|
|
353
373
|
createObject(type, pk, properties) {
|
|
354
|
-
const create = store.client[
|
|
374
|
+
const create = store.client[chunkY362HOIZ_cjs.additionalContext].objectFactory2(store.client[chunkY362HOIZ_cjs.additionalContext], [{
|
|
355
375
|
$primaryKey: pk,
|
|
356
376
|
$apiName: type.apiName,
|
|
357
377
|
$objectType: type.apiName,
|
|
@@ -433,13 +453,17 @@ var ActionApplication = class {
|
|
|
433
453
|
}
|
|
434
454
|
})();
|
|
435
455
|
};
|
|
436
|
-
#invalidateActionEditResponse = async ({
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
456
|
+
#invalidateActionEditResponse = async (actionEditResponse) => {
|
|
457
|
+
if (actionEditResponse == null) {
|
|
458
|
+
return;
|
|
459
|
+
}
|
|
460
|
+
const {
|
|
461
|
+
deletedObjects,
|
|
462
|
+
modifiedObjects,
|
|
463
|
+
addedObjects,
|
|
464
|
+
editedObjectTypes,
|
|
465
|
+
type
|
|
466
|
+
} = actionEditResponse;
|
|
443
467
|
let changes;
|
|
444
468
|
if (type === "edits") {
|
|
445
469
|
const promisesToWait = [];
|
|
@@ -569,7 +593,7 @@ var Query = class {
|
|
|
569
593
|
this.store = store;
|
|
570
594
|
this.cacheKeys = store.cacheKeys;
|
|
571
595
|
this.#subject = observable;
|
|
572
|
-
this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[
|
|
596
|
+
this.logger = logger ?? (process.env.NODE_ENV === "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger : store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
|
|
573
597
|
msgPrefix: process.env.NODE_ENV !== "production" ? `Query<${cacheKey.type}, ${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>` : "Query"
|
|
574
598
|
}));
|
|
575
599
|
}
|
|
@@ -727,7 +751,7 @@ var Query = class {
|
|
|
727
751
|
// src/observable/internal/aggregation/AggregationQuery.ts
|
|
728
752
|
var AggregationQuery = class extends Query {
|
|
729
753
|
constructor(store, subject, cacheKey, opts) {
|
|
730
|
-
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[
|
|
754
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
|
|
731
755
|
msgPrefix: `AggregationQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
732
756
|
}) : void 0);
|
|
733
757
|
this.apiName = cacheKey.otherKeys[API_NAME_IDX];
|
|
@@ -974,7 +998,7 @@ var Changes = class {
|
|
|
974
998
|
modified = /* @__PURE__ */ new Set();
|
|
975
999
|
deleted = /* @__PURE__ */ new Set();
|
|
976
1000
|
registerObject = (cacheKey, data, isNew) => {
|
|
977
|
-
this[isNew ? "addedObjects" : "modifiedObjects"].set(data.$apiName, data);
|
|
1001
|
+
this[isNew ? "addedObjects" : "modifiedObjects"].set(data.$objectType ?? data.$apiName, data);
|
|
978
1002
|
this[isNew ? "added" : "modified"].add(cacheKey);
|
|
979
1003
|
};
|
|
980
1004
|
deleteObject = (cacheKey) => {
|
|
@@ -992,6 +1016,9 @@ var Changes = class {
|
|
|
992
1016
|
registerObjectSet = (key) => {
|
|
993
1017
|
this.modified.add(key);
|
|
994
1018
|
};
|
|
1019
|
+
registerFunction = (key) => {
|
|
1020
|
+
this.modified.add(key);
|
|
1021
|
+
};
|
|
995
1022
|
isEmpty() {
|
|
996
1023
|
return this.modifiedObjects.size === 0 && this.addedObjects.size === 0 && this.added.size === 0 && this.modified.size === 0 && this.deleted.size === 0;
|
|
997
1024
|
}
|
|
@@ -1020,6 +1047,325 @@ function multimapHelper(multimap) {
|
|
|
1020
1047
|
}));
|
|
1021
1048
|
}
|
|
1022
1049
|
|
|
1050
|
+
// src/observable/internal/function/FunctionsHelper.ts
|
|
1051
|
+
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
1052
|
+
|
|
1053
|
+
// src/observable/internal/function/FunctionCacheKey.ts
|
|
1054
|
+
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
1055
|
+
var PARAMS_IDX = 2;
|
|
1056
|
+
|
|
1057
|
+
// src/observable/internal/function/FunctionParamsCanonicalizer.ts
|
|
1058
|
+
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
1059
|
+
function isPrimitiveValue(value) {
|
|
1060
|
+
if (value == null) return true;
|
|
1061
|
+
const t = typeof value;
|
|
1062
|
+
return t === "string" || t === "number" || t === "boolean" || t === "bigint";
|
|
1063
|
+
}
|
|
1064
|
+
var FunctionParamsCanonicalizer = class {
|
|
1065
|
+
#inputCache = /* @__PURE__ */ new WeakMap();
|
|
1066
|
+
#trie = new trie.Trie(false);
|
|
1067
|
+
#canonicalByMarker = /* @__PURE__ */ new WeakMap();
|
|
1068
|
+
canonicalize(params) {
|
|
1069
|
+
if (params == null) {
|
|
1070
|
+
return void 0;
|
|
1071
|
+
}
|
|
1072
|
+
if (this.#inputCache.has(params)) {
|
|
1073
|
+
return this.#inputCache.get(params);
|
|
1074
|
+
}
|
|
1075
|
+
const seen = /* @__PURE__ */ new WeakSet();
|
|
1076
|
+
const path = [];
|
|
1077
|
+
const canonicalValue = this.#encodeAndBuild(params, path, seen);
|
|
1078
|
+
const marker = this.#trie.lookupArray(path);
|
|
1079
|
+
let canonical = this.#canonicalByMarker.get(marker);
|
|
1080
|
+
if (canonical === void 0) {
|
|
1081
|
+
canonical = canonicalValue;
|
|
1082
|
+
this.#canonicalByMarker.set(marker, canonical);
|
|
1083
|
+
}
|
|
1084
|
+
this.#inputCache.set(params, canonical);
|
|
1085
|
+
return canonical;
|
|
1086
|
+
}
|
|
1087
|
+
#encodeAndBuild(value, path, seen) {
|
|
1088
|
+
if (value == null) {
|
|
1089
|
+
path.push(value);
|
|
1090
|
+
return value;
|
|
1091
|
+
}
|
|
1092
|
+
if (isPrimitiveValue(value)) {
|
|
1093
|
+
path.push(value);
|
|
1094
|
+
return value;
|
|
1095
|
+
}
|
|
1096
|
+
if (seen.has(value)) {
|
|
1097
|
+
throw new Error("Circular reference in function parameters");
|
|
1098
|
+
}
|
|
1099
|
+
seen.add(value);
|
|
1100
|
+
if (value instanceof Date) {
|
|
1101
|
+
const iso = value.toISOString();
|
|
1102
|
+
path.push("$:date", iso);
|
|
1103
|
+
return iso;
|
|
1104
|
+
}
|
|
1105
|
+
if (Array.isArray(value)) {
|
|
1106
|
+
path.push("$:array");
|
|
1107
|
+
const arr = value.map((item) => this.#encodeAndBuild(item, path, seen));
|
|
1108
|
+
path.push("$:array_end");
|
|
1109
|
+
return arr;
|
|
1110
|
+
}
|
|
1111
|
+
if (value instanceof Set) {
|
|
1112
|
+
path.push("$:set");
|
|
1113
|
+
const sorted = this.#sortSetValues(Array.from(value));
|
|
1114
|
+
const arr = sorted.map((item) => this.#encodeAndBuild(item, path, seen));
|
|
1115
|
+
path.push("$:set_end");
|
|
1116
|
+
return arr;
|
|
1117
|
+
}
|
|
1118
|
+
if (value instanceof Map) {
|
|
1119
|
+
path.push("$:map");
|
|
1120
|
+
const sorted = this.#sortMapEntries(Array.from(value.entries()));
|
|
1121
|
+
const arr = sorted.map(([k, v]) => [this.#encodeAndBuild(k, path, seen), this.#encodeAndBuild(v, path, seen)]);
|
|
1122
|
+
path.push("$:map_end");
|
|
1123
|
+
return arr;
|
|
1124
|
+
}
|
|
1125
|
+
if (chunkCDUYWOVQ_cjs.isObjectSpecifiersObject(value)) {
|
|
1126
|
+
const objectType = value.$objectType ?? value.$apiName;
|
|
1127
|
+
path.push("$:osdk", objectType, value.$primaryKey);
|
|
1128
|
+
return {
|
|
1129
|
+
$apiName: objectType,
|
|
1130
|
+
$primaryKey: value.$primaryKey
|
|
1131
|
+
};
|
|
1132
|
+
}
|
|
1133
|
+
if (chunkY362HOIZ_cjs.isObjectSet(value)) {
|
|
1134
|
+
const wire = chunkY362HOIZ_cjs.getWireObjectSet(value);
|
|
1135
|
+
path.push("$:objectset", wire);
|
|
1136
|
+
return wire;
|
|
1137
|
+
}
|
|
1138
|
+
const obj = value;
|
|
1139
|
+
path.push("$:object");
|
|
1140
|
+
const canonical = {};
|
|
1141
|
+
for (const key of Object.keys(obj).sort()) {
|
|
1142
|
+
path.push(key);
|
|
1143
|
+
canonical[key] = this.#encodeAndBuild(obj[key], path, seen);
|
|
1144
|
+
}
|
|
1145
|
+
path.push("$:object_end");
|
|
1146
|
+
return canonical;
|
|
1147
|
+
}
|
|
1148
|
+
#comparePrimitives(a, b) {
|
|
1149
|
+
const ta = typeof a;
|
|
1150
|
+
const tb = typeof b;
|
|
1151
|
+
if (ta !== tb) return ta.localeCompare(tb);
|
|
1152
|
+
if (ta === "string") return a.localeCompare(b);
|
|
1153
|
+
if (ta === "number") {
|
|
1154
|
+
const an = a;
|
|
1155
|
+
const bn = b;
|
|
1156
|
+
if (Number.isNaN(an) && Number.isNaN(bn)) return 0;
|
|
1157
|
+
if (Number.isNaN(an)) return 1;
|
|
1158
|
+
if (Number.isNaN(bn)) return -1;
|
|
1159
|
+
return an - bn;
|
|
1160
|
+
}
|
|
1161
|
+
if (ta === "boolean") return (a ? 1 : 0) - (b ? 1 : 0);
|
|
1162
|
+
if (ta === "bigint") {
|
|
1163
|
+
const ab = a;
|
|
1164
|
+
const bb = b;
|
|
1165
|
+
return ab < bb ? -1 : ab > bb ? 1 : 0;
|
|
1166
|
+
}
|
|
1167
|
+
return 0;
|
|
1168
|
+
}
|
|
1169
|
+
#sortSetValues(items) {
|
|
1170
|
+
return items.slice().sort((a, b) => {
|
|
1171
|
+
if (isPrimitiveValue(a) && isPrimitiveValue(b)) {
|
|
1172
|
+
return this.#comparePrimitives(a, b);
|
|
1173
|
+
}
|
|
1174
|
+
return JSON.stringify(a).localeCompare(JSON.stringify(b));
|
|
1175
|
+
});
|
|
1176
|
+
}
|
|
1177
|
+
#sortMapEntries(entries) {
|
|
1178
|
+
return entries.slice().sort(([a], [b]) => {
|
|
1179
|
+
if (isPrimitiveValue(a) && isPrimitiveValue(b)) {
|
|
1180
|
+
return this.#comparePrimitives(a, b);
|
|
1181
|
+
}
|
|
1182
|
+
return JSON.stringify(a).localeCompare(JSON.stringify(b));
|
|
1183
|
+
});
|
|
1184
|
+
}
|
|
1185
|
+
};
|
|
1186
|
+
|
|
1187
|
+
// src/observable/internal/function/FunctionQuery.ts
|
|
1188
|
+
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
1189
|
+
var FunctionQuery = class extends Query {
|
|
1190
|
+
#apiName;
|
|
1191
|
+
#version;
|
|
1192
|
+
#params;
|
|
1193
|
+
#dependsOn;
|
|
1194
|
+
#dependsOnObjects;
|
|
1195
|
+
#queryDef;
|
|
1196
|
+
constructor(store, subject, queryDef, params, cacheKey, opts) {
|
|
1197
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
|
|
1198
|
+
msgPrefix: `FunctionQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
1199
|
+
}) : void 0);
|
|
1200
|
+
this.#apiName = queryDef.apiName;
|
|
1201
|
+
this.#version = queryDef.isFixedVersion ? queryDef.version : void 0;
|
|
1202
|
+
this.#params = params;
|
|
1203
|
+
this.#dependsOn = opts.dependsOn;
|
|
1204
|
+
this.#dependsOnObjects = opts.dependsOnObjects;
|
|
1205
|
+
this.#queryDef = queryDef;
|
|
1206
|
+
}
|
|
1207
|
+
_createConnectable(subject) {
|
|
1208
|
+
return rxjs.connectable(subject.pipe(rxjs.map((x) => {
|
|
1209
|
+
const value = x.value;
|
|
1210
|
+
return {
|
|
1211
|
+
status: x.status,
|
|
1212
|
+
result: value?.result,
|
|
1213
|
+
lastUpdated: value?.executedAt ?? 0,
|
|
1214
|
+
error: value?.error
|
|
1215
|
+
};
|
|
1216
|
+
})), {
|
|
1217
|
+
connector: () => new rxjs.BehaviorSubject({
|
|
1218
|
+
status: "init",
|
|
1219
|
+
result: void 0,
|
|
1220
|
+
lastUpdated: 0
|
|
1221
|
+
})
|
|
1222
|
+
});
|
|
1223
|
+
}
|
|
1224
|
+
async _fetchAndStore() {
|
|
1225
|
+
if (process.env.NODE_ENV !== "production") {
|
|
1226
|
+
this.logger?.child({
|
|
1227
|
+
methodName: "_fetchAndStore"
|
|
1228
|
+
}).debug("calling _fetchAndStore");
|
|
1229
|
+
}
|
|
1230
|
+
try {
|
|
1231
|
+
const result = await chunkCDUYWOVQ_cjs.applyQuery(this.store.client[chunkY362HOIZ_cjs.additionalContext], this.#queryDef, this.#params);
|
|
1232
|
+
const executedAt = Date.now();
|
|
1233
|
+
this.store.batch({}, (batch) => {
|
|
1234
|
+
this.writeToStore({
|
|
1235
|
+
result,
|
|
1236
|
+
executedAt
|
|
1237
|
+
}, "loaded", batch);
|
|
1238
|
+
});
|
|
1239
|
+
} catch (e) {
|
|
1240
|
+
if (process.env.NODE_ENV !== "production") {
|
|
1241
|
+
this.logger?.child({
|
|
1242
|
+
methodName: "_fetchAndStore"
|
|
1243
|
+
}).error("Error executing function", e);
|
|
1244
|
+
}
|
|
1245
|
+
const error = e instanceof Error ? e : new Error(String(e));
|
|
1246
|
+
this.store.batch({}, (batch) => {
|
|
1247
|
+
this.writeToStore({
|
|
1248
|
+
result: void 0,
|
|
1249
|
+
executedAt: 0,
|
|
1250
|
+
error
|
|
1251
|
+
}, "error", batch);
|
|
1252
|
+
});
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
writeToStore(data, status, batch) {
|
|
1256
|
+
batch.write(this.cacheKey, data, status);
|
|
1257
|
+
return batch.read(this.cacheKey);
|
|
1258
|
+
}
|
|
1259
|
+
invalidateObjectType = (objectType, changes) => {
|
|
1260
|
+
if (this.#dependsOn?.includes(objectType)) {
|
|
1261
|
+
changes?.registerFunction(this.cacheKey);
|
|
1262
|
+
return this.revalidate(true);
|
|
1263
|
+
}
|
|
1264
|
+
return Promise.resolve();
|
|
1265
|
+
};
|
|
1266
|
+
dependsOnObject(apiName, primaryKey) {
|
|
1267
|
+
if (!this.#dependsOnObjects) {
|
|
1268
|
+
return false;
|
|
1269
|
+
}
|
|
1270
|
+
return this.#dependsOnObjects.some((obj) => obj.$apiName === apiName && obj.$primaryKey === primaryKey);
|
|
1271
|
+
}
|
|
1272
|
+
/**
|
|
1273
|
+
* Called during batch operations when objects change.
|
|
1274
|
+
* Checks if any objects in dependsOnObjects were modified/added
|
|
1275
|
+
* and triggers revalidation if so.
|
|
1276
|
+
*/
|
|
1277
|
+
maybeUpdateAndRevalidate = (changes, _optimisticId) => {
|
|
1278
|
+
if (!this.#dependsOnObjects?.length) {
|
|
1279
|
+
return void 0;
|
|
1280
|
+
}
|
|
1281
|
+
for (const dep of this.#dependsOnObjects) {
|
|
1282
|
+
const modifiedObjects = changes.modifiedObjects.get(dep.$apiName);
|
|
1283
|
+
if (modifiedObjects?.some((obj) => obj.$primaryKey === dep.$primaryKey)) {
|
|
1284
|
+
return this.revalidate(true);
|
|
1285
|
+
}
|
|
1286
|
+
const addedObjects = changes.addedObjects.get(dep.$apiName);
|
|
1287
|
+
if (addedObjects?.some((obj) => obj.$primaryKey === dep.$primaryKey)) {
|
|
1288
|
+
return this.revalidate(true);
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1291
|
+
return void 0;
|
|
1292
|
+
};
|
|
1293
|
+
get apiName() {
|
|
1294
|
+
return this.#apiName;
|
|
1295
|
+
}
|
|
1296
|
+
get version() {
|
|
1297
|
+
return this.#version;
|
|
1298
|
+
}
|
|
1299
|
+
};
|
|
1300
|
+
|
|
1301
|
+
// src/observable/internal/function/FunctionsHelper.ts
|
|
1302
|
+
var FunctionsHelper = class extends AbstractHelper {
|
|
1303
|
+
paramsCanonicalizer = new FunctionParamsCanonicalizer();
|
|
1304
|
+
constructor(store, cacheKeys) {
|
|
1305
|
+
super(store, cacheKeys);
|
|
1306
|
+
}
|
|
1307
|
+
observe(options, subFn) {
|
|
1308
|
+
return super.observe(options, subFn);
|
|
1309
|
+
}
|
|
1310
|
+
getQuery(options) {
|
|
1311
|
+
const {
|
|
1312
|
+
queryDef,
|
|
1313
|
+
params,
|
|
1314
|
+
...observeOpts
|
|
1315
|
+
} = options;
|
|
1316
|
+
const apiName = queryDef.apiName;
|
|
1317
|
+
const version = queryDef.isFixedVersion ? queryDef.version : void 0;
|
|
1318
|
+
const canonicalParams = this.paramsCanonicalizer.canonicalize(params);
|
|
1319
|
+
const functionCacheKey = this.cacheKeys.get("function", apiName, version, canonicalParams);
|
|
1320
|
+
return this.store.queries.get(functionCacheKey, () => new FunctionQuery(this.store, this.store.subjects.get(functionCacheKey), queryDef, params, functionCacheKey, observeOpts));
|
|
1321
|
+
}
|
|
1322
|
+
async invalidateFunction(apiName, params) {
|
|
1323
|
+
const functionApiName = typeof apiName === "string" ? apiName : apiName.apiName;
|
|
1324
|
+
let canonicalParams;
|
|
1325
|
+
if (params !== void 0) {
|
|
1326
|
+
canonicalParams = this.paramsCanonicalizer.canonicalize(params);
|
|
1327
|
+
}
|
|
1328
|
+
const promises = [];
|
|
1329
|
+
for (const cacheKey of this.store.queries.keys()) {
|
|
1330
|
+
if (cacheKey.type !== "function") {
|
|
1331
|
+
continue;
|
|
1332
|
+
}
|
|
1333
|
+
const query = this.store.queries.peek(cacheKey);
|
|
1334
|
+
if (!query) {
|
|
1335
|
+
continue;
|
|
1336
|
+
}
|
|
1337
|
+
if (query.apiName !== functionApiName) {
|
|
1338
|
+
continue;
|
|
1339
|
+
}
|
|
1340
|
+
if (canonicalParams !== void 0) {
|
|
1341
|
+
const queryCacheKey = cacheKey;
|
|
1342
|
+
const queryParams = queryCacheKey.otherKeys[PARAMS_IDX];
|
|
1343
|
+
if (queryParams !== canonicalParams) {
|
|
1344
|
+
continue;
|
|
1345
|
+
}
|
|
1346
|
+
}
|
|
1347
|
+
promises.push(query.revalidate(true));
|
|
1348
|
+
}
|
|
1349
|
+
await Promise.allSettled(promises);
|
|
1350
|
+
}
|
|
1351
|
+
async invalidateFunctionsByObject(apiName, primaryKey) {
|
|
1352
|
+
const promises = [];
|
|
1353
|
+
for (const cacheKey of this.store.queries.keys()) {
|
|
1354
|
+
if (cacheKey.type !== "function") {
|
|
1355
|
+
continue;
|
|
1356
|
+
}
|
|
1357
|
+
const query = this.store.queries.peek(cacheKey);
|
|
1358
|
+
if (!query) {
|
|
1359
|
+
continue;
|
|
1360
|
+
}
|
|
1361
|
+
if (query.dependsOnObject(apiName, primaryKey)) {
|
|
1362
|
+
promises.push(query.revalidate(true));
|
|
1363
|
+
}
|
|
1364
|
+
}
|
|
1365
|
+
await Promise.allSettled(promises);
|
|
1366
|
+
}
|
|
1367
|
+
};
|
|
1368
|
+
|
|
1023
1369
|
// src/observable/internal/IntersectCanonicalizer.ts
|
|
1024
1370
|
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
1025
1371
|
|
|
@@ -1301,7 +1647,7 @@ var Layers = class {
|
|
|
1301
1647
|
return this.#truthLayer;
|
|
1302
1648
|
}
|
|
1303
1649
|
remove(layerId) {
|
|
1304
|
-
!(layerId != null) ? process.env.NODE_ENV !== "production" ?
|
|
1650
|
+
!(layerId != null) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "undefined is the reserved layerId for the truth layer") : invariant5__default.default(false) : void 0;
|
|
1305
1651
|
let currentLayer = this.#topLayer;
|
|
1306
1652
|
const cacheKeys = /* @__PURE__ */ new Map();
|
|
1307
1653
|
while (currentLayer != null && currentLayer.parentLayer != null) {
|
|
@@ -1329,7 +1675,7 @@ var Layers = class {
|
|
|
1329
1675
|
optimisticId,
|
|
1330
1676
|
changes
|
|
1331
1677
|
}, batchFn) {
|
|
1332
|
-
!(optimisticId === void 0 || !!optimisticId) ? process.env.NODE_ENV !== "production" ?
|
|
1678
|
+
!(optimisticId === void 0 || !!optimisticId) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "optimistic must be undefined or not falsy") : invariant5__default.default(false) : void 0;
|
|
1333
1679
|
const batchContext = this.#createBatchContext({
|
|
1334
1680
|
optimisticId,
|
|
1335
1681
|
changes
|
|
@@ -1417,6 +1763,7 @@ var ORDER_BY_IDX = 3;
|
|
|
1417
1763
|
var RDP_IDX2 = 4;
|
|
1418
1764
|
var INTERSECT_IDX = 5;
|
|
1419
1765
|
var PIVOT_IDX = 6;
|
|
1766
|
+
var RIDS_IDX = 7;
|
|
1420
1767
|
|
|
1421
1768
|
// src/observable/internal/sorting/SortingStrategy.ts
|
|
1422
1769
|
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
@@ -1475,12 +1822,14 @@ function createCollectionConnectable(subject, subjects, createPayload) {
|
|
|
1475
1822
|
resolvedData,
|
|
1476
1823
|
isOptimistic: rxjs.of(listEntry.isOptimistic),
|
|
1477
1824
|
status: rxjs.of(listEntry.status),
|
|
1478
|
-
lastUpdated: rxjs.of(listEntry.lastUpdated)
|
|
1825
|
+
lastUpdated: rxjs.of(listEntry.lastUpdated),
|
|
1826
|
+
totalCount: rxjs.of(listEntry?.value?.totalCount)
|
|
1479
1827
|
}).pipe(rxjs.map((params) => createPayload({
|
|
1480
1828
|
resolvedData: Array.isArray(params.resolvedData) ? params.resolvedData : [],
|
|
1481
1829
|
isOptimistic: params.isOptimistic,
|
|
1482
1830
|
status: params.status,
|
|
1483
|
-
lastUpdated: params.lastUpdated
|
|
1831
|
+
lastUpdated: params.lastUpdated,
|
|
1832
|
+
totalCount: params.totalCount
|
|
1484
1833
|
}))), rxjs.asapScheduler);
|
|
1485
1834
|
})), {
|
|
1486
1835
|
resetOnDisconnect: false,
|
|
@@ -1535,9 +1884,10 @@ var BaseListQuery = class extends Query {
|
|
|
1535
1884
|
* @param status Status to set for the list
|
|
1536
1885
|
* @param batch Batch context to use
|
|
1537
1886
|
* @param append Whether to append to the existing list or replace it
|
|
1887
|
+
* @param totalCount Optional total count from API response
|
|
1538
1888
|
* @returns The updated entry
|
|
1539
1889
|
*/
|
|
1540
|
-
_updateList(items, status, batch, append = false) {
|
|
1890
|
+
_updateList(items, status, batch, append = false, totalCount) {
|
|
1541
1891
|
if (process.env.NODE_ENV !== "production") {
|
|
1542
1892
|
this.logger?.child({
|
|
1543
1893
|
methodName: "updateList"
|
|
@@ -1555,7 +1905,8 @@ var BaseListQuery = class extends Query {
|
|
|
1555
1905
|
objectCacheKeys = this._sortCacheKeys(objectCacheKeys, batch);
|
|
1556
1906
|
objectCacheKeys = removeDuplicates(objectCacheKeys, batch);
|
|
1557
1907
|
return this.writeToStore({
|
|
1558
|
-
data: objectCacheKeys
|
|
1908
|
+
data: objectCacheKeys,
|
|
1909
|
+
totalCount
|
|
1559
1910
|
}, status, batch);
|
|
1560
1911
|
}
|
|
1561
1912
|
/**
|
|
@@ -1646,7 +1997,8 @@ var BaseListQuery = class extends Query {
|
|
|
1646
1997
|
fetchMore: this.fetchMore,
|
|
1647
1998
|
hasMore: this.nextPageToken != null,
|
|
1648
1999
|
status: params.status,
|
|
1649
|
-
lastUpdated: params.lastUpdated
|
|
2000
|
+
lastUpdated: params.lastUpdated,
|
|
2001
|
+
totalCount: params.totalCount
|
|
1650
2002
|
};
|
|
1651
2003
|
}
|
|
1652
2004
|
/**
|
|
@@ -1747,6 +2099,7 @@ var BaseListQuery = class extends Query {
|
|
|
1747
2099
|
try {
|
|
1748
2100
|
const hadPreviousPage = this.nextPageToken != null;
|
|
1749
2101
|
const result = await this.fetchPageData(signal);
|
|
2102
|
+
this.currentTotalCount = result.totalCount;
|
|
1750
2103
|
if (signal?.aborted) {
|
|
1751
2104
|
return void 0;
|
|
1752
2105
|
}
|
|
@@ -1756,7 +2109,7 @@ var BaseListQuery = class extends Query {
|
|
|
1756
2109
|
const append = hadPreviousPage;
|
|
1757
2110
|
const finalStatus = result.nextPageToken ? status : "loaded";
|
|
1758
2111
|
const objectKeys = this.store.objects.storeOsdkInstances(result.data, batch, this.rdpConfig);
|
|
1759
|
-
return this._updateList(objectKeys, finalStatus, batch, append);
|
|
2112
|
+
return this._updateList(objectKeys, finalStatus, batch, append, this.currentTotalCount);
|
|
1760
2113
|
});
|
|
1761
2114
|
return retVal;
|
|
1762
2115
|
} catch (error) {
|
|
@@ -1792,8 +2145,10 @@ var BaseListQuery = class extends Query {
|
|
|
1792
2145
|
* @returns The updated entry with error status
|
|
1793
2146
|
*/
|
|
1794
2147
|
handleFetchError(_error, _status, batch) {
|
|
2148
|
+
const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
|
|
1795
2149
|
return this.writeToStore({
|
|
1796
|
-
data: []
|
|
2150
|
+
data: [],
|
|
2151
|
+
totalCount: existingTotalCount
|
|
1797
2152
|
}, "error", batch);
|
|
1798
2153
|
}
|
|
1799
2154
|
/**
|
|
@@ -1832,8 +2187,10 @@ var BaseListQuery = class extends Query {
|
|
|
1832
2187
|
objectCacheKeys = this.#retainReleaseAppend(batch, options.append ?? false, objectCacheKeys);
|
|
1833
2188
|
objectCacheKeys = this._sortCacheKeys(objectCacheKeys, batch);
|
|
1834
2189
|
objectCacheKeys = removeDuplicates(objectCacheKeys, batch);
|
|
2190
|
+
const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
|
|
1835
2191
|
return this.writeToStore({
|
|
1836
|
-
data: objectCacheKeys
|
|
2192
|
+
data: objectCacheKeys,
|
|
2193
|
+
totalCount: existingTotalCount
|
|
1837
2194
|
}, options.status, batch);
|
|
1838
2195
|
}
|
|
1839
2196
|
//
|
|
@@ -1958,7 +2315,7 @@ var BaseListQuery = class extends Query {
|
|
|
1958
2315
|
}).debug("Removing object", object);
|
|
1959
2316
|
}
|
|
1960
2317
|
this.store.batch({}, (batch) => {
|
|
1961
|
-
const objectCacheKey = this.store.cacheKeys.get("object", object.$apiName, object.$primaryKey);
|
|
2318
|
+
const objectCacheKey = this.store.cacheKeys.get("object", object.$objectType ?? object.$apiName, object.$primaryKey);
|
|
1962
2319
|
batch.delete(objectCacheKey, "loaded");
|
|
1963
2320
|
});
|
|
1964
2321
|
}
|
|
@@ -1978,7 +2335,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
|
|
|
1978
2335
|
batch.changes.modified.add(this.cacheKey);
|
|
1979
2336
|
}
|
|
1980
2337
|
constructor(store, subject, cacheKey, opts) {
|
|
1981
|
-
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[
|
|
2338
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
|
|
1982
2339
|
msgPrefix: `SpecificLinkQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
1983
2340
|
}) : void 0);
|
|
1984
2341
|
[this.#sourceApiName, this.#sourcePk, this.#linkName, this.#whereClause, this.#orderBy] = cacheKey.otherKeys;
|
|
@@ -1994,7 +2351,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
|
|
|
1994
2351
|
type: "object",
|
|
1995
2352
|
apiName: this.#sourceApiName
|
|
1996
2353
|
};
|
|
1997
|
-
const sourceMetadata = await client[
|
|
2354
|
+
const sourceMetadata = await client[chunkY362HOIZ_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
|
|
1998
2355
|
if (this.#orderBy && Object.keys(this.#orderBy).length > 0) {
|
|
1999
2356
|
const linkDef = sourceMetadata.links?.[this.#linkName];
|
|
2000
2357
|
if (!linkDef?.targetType) {
|
|
@@ -2011,7 +2368,8 @@ var SpecificLinkQuery = class extends BaseListQuery {
|
|
|
2011
2368
|
}
|
|
2012
2369
|
const queryParams = {
|
|
2013
2370
|
$pageSize: this.options.pageSize || 100,
|
|
2014
|
-
$nextPageToken: this.nextPageToken
|
|
2371
|
+
$nextPageToken: this.nextPageToken,
|
|
2372
|
+
$includeRid: true
|
|
2015
2373
|
};
|
|
2016
2374
|
if (this.#orderBy && Object.keys(this.#orderBy).length > 0) {
|
|
2017
2375
|
queryParams.$orderBy = this.#orderBy;
|
|
@@ -2065,7 +2423,7 @@ var SpecificLinkQuery = class extends BaseListQuery {
|
|
|
2065
2423
|
return this.revalidate(true);
|
|
2066
2424
|
} else {
|
|
2067
2425
|
return (async () => {
|
|
2068
|
-
const sourceMetadata = await this.store.client[
|
|
2426
|
+
const sourceMetadata = await this.store.client[chunkY362HOIZ_cjs.additionalContext].ontologyProvider.getObjectDefinition(this.#sourceApiName);
|
|
2069
2427
|
const linkDef = sourceMetadata.links?.[this.#linkName];
|
|
2070
2428
|
if (!linkDef || linkDef.targetType !== objectType) return;
|
|
2071
2429
|
const promise = this.revalidate(true);
|
|
@@ -2105,6 +2463,162 @@ chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
|
2105
2463
|
// src/observable/internal/list/ListQuery.ts
|
|
2106
2464
|
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
2107
2465
|
|
|
2466
|
+
// src/observable/internal/getObjectTypesThatInvalidate.ts
|
|
2467
|
+
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
2468
|
+
async function getObjectTypesThatInvalidate(mc, objectSet) {
|
|
2469
|
+
const counts = {};
|
|
2470
|
+
const resultType = await calcObjectSet(objectSet, {
|
|
2471
|
+
counts,
|
|
2472
|
+
methodInput: void 0,
|
|
2473
|
+
ontologyProvider: mc.ontologyProvider
|
|
2474
|
+
});
|
|
2475
|
+
const tweaked = {
|
|
2476
|
+
...counts,
|
|
2477
|
+
[resultType.apiName]: counts[resultType.apiName] - 1
|
|
2478
|
+
};
|
|
2479
|
+
return {
|
|
2480
|
+
resultType,
|
|
2481
|
+
counts,
|
|
2482
|
+
invalidationSet: new Set(Object.entries(tweaked).filter(([, v]) => v > 0).map(([k]) => k))
|
|
2483
|
+
};
|
|
2484
|
+
}
|
|
2485
|
+
async function calcObjectSet(os, ctx) {
|
|
2486
|
+
const op = ctx.ontologyProvider;
|
|
2487
|
+
async function bumpObject(apiName) {
|
|
2488
|
+
const objectType = await op.getObjectDefinition(apiName);
|
|
2489
|
+
ctx.counts[apiName] = (ctx.counts[apiName] ?? 0) + 1;
|
|
2490
|
+
return objectType;
|
|
2491
|
+
}
|
|
2492
|
+
async function bumpInterface(apiName) {
|
|
2493
|
+
const interfaceDef = await op.getInterfaceDefinition(apiName);
|
|
2494
|
+
for (const s of interfaceDef.implementedBy ?? []) {
|
|
2495
|
+
ctx.counts[s] = (ctx.counts[s] ?? 0) + 1;
|
|
2496
|
+
}
|
|
2497
|
+
return interfaceDef;
|
|
2498
|
+
}
|
|
2499
|
+
switch (os.type) {
|
|
2500
|
+
case "base":
|
|
2501
|
+
return await bumpObject(os.objectType);
|
|
2502
|
+
case "interfaceBase":
|
|
2503
|
+
return await bumpInterface(os.interfaceType);
|
|
2504
|
+
case "interfaceLinkSearchAround": {
|
|
2505
|
+
const srcDef = await calcObjectSet(os.objectSet, ctx);
|
|
2506
|
+
!(srcDef.type === "interface") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false) : invariant5__default.default(false) : void 0;
|
|
2507
|
+
for (const [k, v] of Object.entries(srcDef.links)) {
|
|
2508
|
+
if (k === os.interfaceLink) {
|
|
2509
|
+
if (v.targetType === "object") {
|
|
2510
|
+
return await bumpObject(v.targetType);
|
|
2511
|
+
}
|
|
2512
|
+
return await bumpInterface(v.targetType);
|
|
2513
|
+
}
|
|
2514
|
+
}
|
|
2515
|
+
throw new Error(`Could not find link ${os.interfaceLink} in object set ${JSON.stringify(os.objectSet)}`);
|
|
2516
|
+
}
|
|
2517
|
+
case "searchAround": {
|
|
2518
|
+
const contextDef = await calcObjectSet(os.objectSet, ctx);
|
|
2519
|
+
!(contextDef.type === "object") ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false) : invariant5__default.default(false) : void 0;
|
|
2520
|
+
for (const [k, v] of Object.entries(contextDef.links)) {
|
|
2521
|
+
if (k === os.link) {
|
|
2522
|
+
return await bumpObject(v.targetType);
|
|
2523
|
+
}
|
|
2524
|
+
}
|
|
2525
|
+
throw new Error(`Could not find link ${os.link} in object set ${JSON.stringify(os.objectSet)}`);
|
|
2526
|
+
}
|
|
2527
|
+
case "filter":
|
|
2528
|
+
return calcObjectSet(os.objectSet, ctx);
|
|
2529
|
+
case "union":
|
|
2530
|
+
case "subtract":
|
|
2531
|
+
case "intersect":
|
|
2532
|
+
const returnTypes = await Promise.all(os.objectSets.map(async (os2) => {
|
|
2533
|
+
const counts = {};
|
|
2534
|
+
const r = await calcObjectSet(os2, {
|
|
2535
|
+
...ctx,
|
|
2536
|
+
counts
|
|
2537
|
+
});
|
|
2538
|
+
return {
|
|
2539
|
+
r,
|
|
2540
|
+
counts
|
|
2541
|
+
};
|
|
2542
|
+
}));
|
|
2543
|
+
for (const {
|
|
2544
|
+
counts
|
|
2545
|
+
} of returnTypes) {
|
|
2546
|
+
for (const [k, v] of Object.entries(counts)) {
|
|
2547
|
+
ctx.counts[k] = Math.max(ctx.counts[k] ?? 0, v);
|
|
2548
|
+
}
|
|
2549
|
+
}
|
|
2550
|
+
if (returnTypes.length === 0) {
|
|
2551
|
+
throw new Error(`Could not find any context types for set operation`);
|
|
2552
|
+
}
|
|
2553
|
+
const allMatch = returnTypes.every(({
|
|
2554
|
+
r
|
|
2555
|
+
}) => r.apiName === returnTypes[0].r.apiName);
|
|
2556
|
+
if (!allMatch) {
|
|
2557
|
+
throw new Error(`Incompatible context types found for set operation`);
|
|
2558
|
+
}
|
|
2559
|
+
return returnTypes[0].r;
|
|
2560
|
+
case "withProperties":
|
|
2561
|
+
for (const [, v] of Object.entries(os.derivedProperties)) {
|
|
2562
|
+
await calcRdp(v, {
|
|
2563
|
+
...ctx,
|
|
2564
|
+
methodInput: os.objectSet
|
|
2565
|
+
});
|
|
2566
|
+
}
|
|
2567
|
+
return calcObjectSet(os.objectSet, {
|
|
2568
|
+
...ctx,
|
|
2569
|
+
methodInput: os.objectSet
|
|
2570
|
+
});
|
|
2571
|
+
// used by rdps
|
|
2572
|
+
case "methodInput":
|
|
2573
|
+
!ctx.methodInput ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "methodInput must be provided") : invariant5__default.default(false) : void 0;
|
|
2574
|
+
return await calcObjectSet(ctx.methodInput, {
|
|
2575
|
+
...ctx,
|
|
2576
|
+
counts: {}
|
|
2577
|
+
});
|
|
2578
|
+
case "asType":
|
|
2579
|
+
// we don't currently support this anywhere.
|
|
2580
|
+
case "asBaseObjectTypes":
|
|
2581
|
+
// We don't currently support this because it could return multiple object types conceptually
|
|
2582
|
+
// internally, we actually use it this way but we shouldn't be finding that object sets.
|
|
2583
|
+
case "reference":
|
|
2584
|
+
// reference is particularly problematic because we cannot answer the question about
|
|
2585
|
+
// which types without loading the object set definition (and it can change).
|
|
2586
|
+
case "static":
|
|
2587
|
+
throw new Error(`Unsupported ObjectSet type ${os.type}`);
|
|
2588
|
+
case "nearestNeighbors":
|
|
2589
|
+
return calcObjectSet(os.objectSet, ctx);
|
|
2590
|
+
default:
|
|
2591
|
+
throw new Error(`Unhandled ObjectSet type ${os.type}`);
|
|
2592
|
+
}
|
|
2593
|
+
}
|
|
2594
|
+
async function calcRdp(dpd, ctx) {
|
|
2595
|
+
switch (dpd.type) {
|
|
2596
|
+
// Operates on object sets
|
|
2597
|
+
case "selection":
|
|
2598
|
+
return await calcObjectSet(dpd.objectSet, ctx);
|
|
2599
|
+
// Operates on single property
|
|
2600
|
+
case "negate":
|
|
2601
|
+
case "extract":
|
|
2602
|
+
case "absoluteValue":
|
|
2603
|
+
return await calcRdp(dpd.property, ctx);
|
|
2604
|
+
// Operates on many (unordered) properties
|
|
2605
|
+
case "least":
|
|
2606
|
+
case "greatest":
|
|
2607
|
+
case "add":
|
|
2608
|
+
case "multiply":
|
|
2609
|
+
return await Promise.all(dpd.properties.map((innerDpd) => calcRdp(innerDpd, ctx)));
|
|
2610
|
+
// Operates on 2 ordered properties
|
|
2611
|
+
case "subtract":
|
|
2612
|
+
case "divide":
|
|
2613
|
+
return await Promise.all([calcRdp(dpd.left, ctx), calcRdp(dpd.right, ctx)]);
|
|
2614
|
+
// Operates on a single property name
|
|
2615
|
+
case "property":
|
|
2616
|
+
return;
|
|
2617
|
+
default:
|
|
2618
|
+
throw new Error(`Unhandled DerivedPropertyDefinition type ${dpd.type}`);
|
|
2619
|
+
}
|
|
2620
|
+
}
|
|
2621
|
+
|
|
2108
2622
|
// src/observable/internal/objectMatchesWhereClause.ts
|
|
2109
2623
|
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
2110
2624
|
|
|
@@ -2125,7 +2639,7 @@ function evaluateFilter(f, realValue, expected, strict) {
|
|
|
2125
2639
|
case "$ne":
|
|
2126
2640
|
return realValue !== expected;
|
|
2127
2641
|
case "$in":
|
|
2128
|
-
return expected
|
|
2642
|
+
return Array.isArray(expected) && expected.includes(realValue);
|
|
2129
2643
|
case "$isNull":
|
|
2130
2644
|
return realValue == null;
|
|
2131
2645
|
case "$startsWith":
|
|
@@ -2139,7 +2653,7 @@ function evaluateFilter(f, realValue, expected, strict) {
|
|
|
2139
2653
|
return !strict;
|
|
2140
2654
|
default:
|
|
2141
2655
|
if (process.env.NODE_ENV !== "production") {
|
|
2142
|
-
process.env.NODE_ENV !== "production" ?
|
|
2656
|
+
process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Unknown where filter ${f}`) : invariant5__default.default(false) ;
|
|
2143
2657
|
}
|
|
2144
2658
|
return !strict;
|
|
2145
2659
|
}
|
|
@@ -2149,8 +2663,8 @@ function evaluateFilter(f, realValue, expected, strict) {
|
|
|
2149
2663
|
function is$and(whereClause) {
|
|
2150
2664
|
if (process.env.NODE_ENV !== "production") {
|
|
2151
2665
|
if ("$and" in whereClause) {
|
|
2152
|
-
!Array.isArray(whereClause.$and) ? process.env.NODE_ENV !== "production" ?
|
|
2153
|
-
!(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
2666
|
+
!Array.isArray(whereClause.$and) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected $and to be an array") : invariant5__default.default(false) : void 0;
|
|
2667
|
+
!(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected only $and to be present") : invariant5__default.default(false) : void 0;
|
|
2154
2668
|
}
|
|
2155
2669
|
}
|
|
2156
2670
|
return "$and" in whereClause;
|
|
@@ -2158,8 +2672,8 @@ function is$and(whereClause) {
|
|
|
2158
2672
|
function is$or(whereClause) {
|
|
2159
2673
|
if (process.env.NODE_ENV !== "production") {
|
|
2160
2674
|
if ("$or" in whereClause) {
|
|
2161
|
-
!Array.isArray(whereClause.$or) ? process.env.NODE_ENV !== "production" ?
|
|
2162
|
-
!(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
2675
|
+
!Array.isArray(whereClause.$or) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected $or to be an array") : invariant5__default.default(false) : void 0;
|
|
2676
|
+
!(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected only $or to be present") : invariant5__default.default(false) : void 0;
|
|
2163
2677
|
}
|
|
2164
2678
|
}
|
|
2165
2679
|
return "$or" in whereClause;
|
|
@@ -2167,7 +2681,7 @@ function is$or(whereClause) {
|
|
|
2167
2681
|
function is$not(whereClause) {
|
|
2168
2682
|
if (process.env.NODE_ENV !== "production") {
|
|
2169
2683
|
if ("$not" in whereClause) {
|
|
2170
|
-
!(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
2684
|
+
!(Object.keys(whereClause).length === 1) ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "expected only $not to be present") : invariant5__default.default(false) : void 0;
|
|
2171
2685
|
}
|
|
2172
2686
|
}
|
|
2173
2687
|
return "$not" in whereClause;
|
|
@@ -2217,7 +2731,7 @@ var ListQuery = class extends BaseListQuery {
|
|
|
2217
2731
|
batch.changes.registerList(this.cacheKey);
|
|
2218
2732
|
}
|
|
2219
2733
|
constructor(store, subject, apiName, cacheKey, opts) {
|
|
2220
|
-
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[
|
|
2734
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
|
|
2221
2735
|
msgPrefix: `ListQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
2222
2736
|
}) : void 0);
|
|
2223
2737
|
this.apiName = apiName;
|
|
@@ -2226,7 +2740,9 @@ var ListQuery = class extends BaseListQuery {
|
|
|
2226
2740
|
this.#intersectWith = cacheKey.otherKeys[INTERSECT_IDX];
|
|
2227
2741
|
this.#pivotInfo = cacheKey.otherKeys[PIVOT_IDX];
|
|
2228
2742
|
this.#objectSet = this.createObjectSet(store);
|
|
2229
|
-
|
|
2743
|
+
if (!this.#pivotInfo) {
|
|
2744
|
+
this.sortingStrategy = new OrderBySortingStrategy(this.apiName, this.#orderBy);
|
|
2745
|
+
}
|
|
2230
2746
|
if (opts.autoFetchMore === true) {
|
|
2231
2747
|
this.minResultsToLoad = Number.MAX_SAFE_INTEGER;
|
|
2232
2748
|
} else if (typeof opts.autoFetchMore === "number") {
|
|
@@ -2252,9 +2768,17 @@ var ListQuery = class extends BaseListQuery {
|
|
|
2252
2768
|
* Fetches a page of data
|
|
2253
2769
|
*/
|
|
2254
2770
|
async fetchPageData(signal) {
|
|
2771
|
+
if (Object.keys(this.#orderBy).length > 0 && !(this.sortingStrategy instanceof OrderBySortingStrategy)) {
|
|
2772
|
+
const wireObjectSet = chunkY362HOIZ_cjs.getWireObjectSet(this.#objectSet);
|
|
2773
|
+
const {
|
|
2774
|
+
resultType
|
|
2775
|
+
} = await getObjectTypesThatInvalidate(this.store.client[chunkY362HOIZ_cjs.additionalContext], wireObjectSet);
|
|
2776
|
+
this.sortingStrategy = new OrderBySortingStrategy(resultType.apiName, this.#orderBy);
|
|
2777
|
+
}
|
|
2255
2778
|
const resp = await this.#objectSet.fetchPage({
|
|
2256
2779
|
$nextPageToken: this.nextPageToken,
|
|
2257
2780
|
$pageSize: this.options.pageSize,
|
|
2781
|
+
$includeRid: true,
|
|
2258
2782
|
// For now this keeps the shared test code from falling apart
|
|
2259
2783
|
// but shouldn't be needed ideally
|
|
2260
2784
|
...Object.keys(this.#orderBy).length > 0 ? {
|
|
@@ -2277,8 +2801,10 @@ var ListQuery = class extends BaseListQuery {
|
|
|
2277
2801
|
handleFetchError(error, _status, batch) {
|
|
2278
2802
|
this.logger?.error("error", error);
|
|
2279
2803
|
this.store.subjects.get(this.cacheKey).error(error);
|
|
2804
|
+
const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
|
|
2280
2805
|
return this.writeToStore({
|
|
2281
|
-
data: []
|
|
2806
|
+
data: [],
|
|
2807
|
+
totalCount: existingTotalCount
|
|
2282
2808
|
}, "error", batch);
|
|
2283
2809
|
}
|
|
2284
2810
|
/**
|
|
@@ -2356,12 +2882,14 @@ var ListQuery = class extends BaseListQuery {
|
|
|
2356
2882
|
for (const obj of toAdd) {
|
|
2357
2883
|
newList.push(this.getObjectCacheKey(obj));
|
|
2358
2884
|
}
|
|
2885
|
+
const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
|
|
2359
2886
|
this._updateList(
|
|
2360
2887
|
newList,
|
|
2361
2888
|
status,
|
|
2362
2889
|
batch,
|
|
2363
2890
|
/* append */
|
|
2364
|
-
false
|
|
2891
|
+
false,
|
|
2892
|
+
existingTotalCount
|
|
2365
2893
|
);
|
|
2366
2894
|
});
|
|
2367
2895
|
if (needsRevalidation) {
|
|
@@ -2430,14 +2958,16 @@ var ListQuery = class extends BaseListQuery {
|
|
|
2430
2958
|
}) : this.logger;
|
|
2431
2959
|
this.store.batch({}, (batch) => {
|
|
2432
2960
|
const existing = batch.read(this.cacheKey);
|
|
2433
|
-
!existing ? process.env.NODE_ENV !== "production" ?
|
|
2961
|
+
!existing ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "the truth value for our list should exist as we already subscribed") : invariant5__default.default(false) : void 0;
|
|
2434
2962
|
if (existing.status === "loaded") {
|
|
2435
2963
|
const objectCacheKey = this.getObjectCacheKey(objOrIface);
|
|
2436
2964
|
const newObjects = existing.value?.data.filter((o) => o !== objectCacheKey);
|
|
2437
2965
|
if (newObjects?.length !== existing.value?.data.length) {
|
|
2438
2966
|
batch.changes.registerList(this.cacheKey);
|
|
2967
|
+
const existingTotalCount = existing.value?.totalCount;
|
|
2439
2968
|
batch.write(this.cacheKey, {
|
|
2440
|
-
data: newObjects ?? []
|
|
2969
|
+
data: newObjects ?? [],
|
|
2970
|
+
totalCount: existingTotalCount
|
|
2441
2971
|
}, "loaded");
|
|
2442
2972
|
}
|
|
2443
2973
|
return;
|
|
@@ -2495,9 +3025,20 @@ var InterfaceListQuery = class extends ListQuery {
|
|
|
2495
3025
|
async postProcessFetchedData(data) {
|
|
2496
3026
|
return reloadDataAsFullObjects(this.store.client, data);
|
|
2497
3027
|
}
|
|
3028
|
+
createPayload(params) {
|
|
3029
|
+
const resolvedList = params.resolvedData.map((obj) => obj.$as(this.apiName));
|
|
3030
|
+
return {
|
|
3031
|
+
resolvedList,
|
|
3032
|
+
isOptimistic: params.isOptimistic,
|
|
3033
|
+
fetchMore: this.fetchMore,
|
|
3034
|
+
hasMore: this.nextPageToken != null,
|
|
3035
|
+
status: params.status,
|
|
3036
|
+
lastUpdated: params.lastUpdated
|
|
3037
|
+
};
|
|
3038
|
+
}
|
|
2498
3039
|
extractRelevantObjects(changes) {
|
|
2499
3040
|
const matchesApiName = ([, object]) => {
|
|
2500
|
-
return this.apiName in object[
|
|
3041
|
+
return this.apiName in object[chunkCDUYWOVQ_cjs.ObjectDefRef].interfaceMap;
|
|
2501
3042
|
};
|
|
2502
3043
|
const added = Array.from(changes.addedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.apiName));
|
|
2503
3044
|
const modified = Array.from(changes.modifiedObjects).filter(matchesApiName).map(([, object]) => object.$as(this.apiName));
|
|
@@ -2516,22 +3057,30 @@ var InterfaceListQuery = class extends ListQuery {
|
|
|
2516
3057
|
}
|
|
2517
3058
|
};
|
|
2518
3059
|
async function reloadDataAsFullObjects(client, data) {
|
|
3060
|
+
if (data.length === 0) {
|
|
3061
|
+
return data;
|
|
3062
|
+
}
|
|
2519
3063
|
const groups = groupBy__default.default(data, (x) => x.$objectType);
|
|
2520
3064
|
const objectTypeToPrimaryKeyToObject = Object.fromEntries(await Promise.all(Object.entries(groups).map(async ([apiName, objects]) => {
|
|
2521
|
-
const objectDef =
|
|
3065
|
+
const objectDef = await client.fetchMetadata({
|
|
3066
|
+
type: "object",
|
|
3067
|
+
apiName
|
|
3068
|
+
});
|
|
2522
3069
|
const where = {
|
|
2523
3070
|
[objectDef.primaryKeyApiName]: {
|
|
2524
3071
|
$in: objects.map((x) => x.$primaryKey)
|
|
2525
3072
|
}
|
|
2526
3073
|
};
|
|
2527
|
-
const result = await client(objectDef).where(where).fetchPage(
|
|
3074
|
+
const result = await client(objectDef).where(where).fetchPage({
|
|
3075
|
+
$includeRid: true
|
|
3076
|
+
});
|
|
2528
3077
|
return [apiName, Object.fromEntries(result.data.map((x) => [x.$primaryKey, x]))];
|
|
2529
3078
|
})));
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
3079
|
+
return data.map((obj) => {
|
|
3080
|
+
const fullObject = objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey];
|
|
3081
|
+
!fullObject ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false, `Could not find object ${obj.$objectType} ${obj.$primaryKey}`) : invariant5__default.default(false) : void 0;
|
|
3082
|
+
return fullObject;
|
|
2533
3083
|
});
|
|
2534
|
-
return data;
|
|
2535
3084
|
}
|
|
2536
3085
|
|
|
2537
3086
|
// src/observable/internal/list/ObjectListQuery.ts
|
|
@@ -2541,16 +3090,22 @@ var ObjectListQuery = class extends ListQuery {
|
|
|
2541
3090
|
const rdpConfig = this.cacheKey.otherKeys[RDP_IDX2];
|
|
2542
3091
|
const intersectWith = this.cacheKey.otherKeys[INTERSECT_IDX];
|
|
2543
3092
|
const pivotInfo = this.cacheKey.otherKeys[PIVOT_IDX];
|
|
3093
|
+
const rids = this.cacheKey.otherKeys[RIDS_IDX];
|
|
3094
|
+
const clientCtx = store.client[chunkY362HOIZ_cjs.additionalContext];
|
|
3095
|
+
const typeDefinition = {
|
|
3096
|
+
type: "object",
|
|
3097
|
+
apiName: this.apiName
|
|
3098
|
+
};
|
|
2544
3099
|
if (pivotInfo != null) {
|
|
2545
|
-
|
|
3100
|
+
let sourceSet = store.client({
|
|
2546
3101
|
type: "object",
|
|
2547
3102
|
apiName: pivotInfo.sourceType
|
|
2548
3103
|
});
|
|
3104
|
+
sourceSet = sourceSet.where(this.canonicalWhere);
|
|
2549
3105
|
let objectSet2 = sourceSet.pivotTo(pivotInfo.linkName);
|
|
2550
3106
|
if (rdpConfig != null) {
|
|
2551
3107
|
objectSet2 = objectSet2.withProperties(rdpConfig);
|
|
2552
3108
|
}
|
|
2553
|
-
objectSet2 = objectSet2.where(this.canonicalWhere);
|
|
2554
3109
|
if (intersectWith != null && intersectWith.length > 0) {
|
|
2555
3110
|
const intersectSets = intersectWith.map((whereClause) => {
|
|
2556
3111
|
let intersectSet = store.client({
|
|
@@ -2566,10 +3121,15 @@ var ObjectListQuery = class extends ListQuery {
|
|
|
2566
3121
|
}
|
|
2567
3122
|
return objectSet2;
|
|
2568
3123
|
}
|
|
2569
|
-
let objectSet
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
3124
|
+
let objectSet;
|
|
3125
|
+
if (rids != null) {
|
|
3126
|
+
objectSet = clientCtx.objectSetFactory(typeDefinition, clientCtx, {
|
|
3127
|
+
type: "static",
|
|
3128
|
+
objects: [...rids]
|
|
3129
|
+
});
|
|
3130
|
+
} else {
|
|
3131
|
+
objectSet = store.client(typeDefinition);
|
|
3132
|
+
}
|
|
2573
3133
|
if (rdpConfig != null) {
|
|
2574
3134
|
objectSet = objectSet.withProperties(rdpConfig);
|
|
2575
3135
|
}
|
|
@@ -2618,13 +3178,14 @@ var ObjectListQuery = class extends ListQuery {
|
|
|
2618
3178
|
|
|
2619
3179
|
// src/observable/internal/list/ListsHelper.ts
|
|
2620
3180
|
var ListsHelper = class extends AbstractHelper {
|
|
2621
|
-
constructor(store, cacheKeys, whereCanonicalizer2, orderByCanonicalizer2, rdpCanonicalizer, intersectCanonicalizer, pivotCanonicalizer) {
|
|
3181
|
+
constructor(store, cacheKeys, whereCanonicalizer2, orderByCanonicalizer2, rdpCanonicalizer, intersectCanonicalizer, pivotCanonicalizer, ridListCanonicalizer) {
|
|
2622
3182
|
super(store, cacheKeys);
|
|
2623
3183
|
this.whereCanonicalizer = whereCanonicalizer2;
|
|
2624
3184
|
this.orderByCanonicalizer = orderByCanonicalizer2;
|
|
2625
3185
|
this.rdpCanonicalizer = rdpCanonicalizer;
|
|
2626
3186
|
this.intersectCanonicalizer = intersectCanonicalizer;
|
|
2627
3187
|
this.pivotCanonicalizer = pivotCanonicalizer;
|
|
3188
|
+
this.ridListCanonicalizer = ridListCanonicalizer;
|
|
2628
3189
|
}
|
|
2629
3190
|
observe(options, subFn) {
|
|
2630
3191
|
const ret = super.observe(options, subFn);
|
|
@@ -2640,7 +3201,8 @@ var ListsHelper = class extends AbstractHelper {
|
|
|
2640
3201
|
orderBy,
|
|
2641
3202
|
withProperties,
|
|
2642
3203
|
intersectWith,
|
|
2643
|
-
pivotTo
|
|
3204
|
+
pivotTo,
|
|
3205
|
+
rids
|
|
2644
3206
|
} = options;
|
|
2645
3207
|
const {
|
|
2646
3208
|
apiName,
|
|
@@ -2651,7 +3213,8 @@ var ListsHelper = class extends AbstractHelper {
|
|
|
2651
3213
|
const canonRdp = withProperties ? this.rdpCanonicalizer.canonicalize(withProperties) : void 0;
|
|
2652
3214
|
const canonIntersect = intersectWith && intersectWith.length > 0 ? this.intersectCanonicalizer.canonicalize(intersectWith) : void 0;
|
|
2653
3215
|
const canonPivot = pivotTo ? this.pivotCanonicalizer.canonicalize(apiName, pivotTo) : void 0;
|
|
2654
|
-
const
|
|
3216
|
+
const canonRids = rids != null ? this.ridListCanonicalizer.canonicalize(rids) : void 0;
|
|
3217
|
+
const listCacheKey = this.cacheKeys.get("list", type, apiName, canonWhere, canonOrderBy, canonRdp, canonIntersect, canonPivot, canonRids);
|
|
2655
3218
|
return this.store.queries.get(listCacheKey, () => {
|
|
2656
3219
|
const QueryClass = type === "object" ? ObjectListQuery : InterfaceListQuery;
|
|
2657
3220
|
return new QueryClass(this.store, this.store.subjects.get(listCacheKey), apiName, listCacheKey, options);
|
|
@@ -2679,20 +3242,21 @@ function stripRdpFields(value, rdpFields) {
|
|
|
2679
3242
|
if (rdpFields.size === 0) {
|
|
2680
3243
|
return value;
|
|
2681
3244
|
}
|
|
2682
|
-
const underlying = value[
|
|
2683
|
-
const objectDef = value[
|
|
3245
|
+
const underlying = value[chunkCDUYWOVQ_cjs.UnderlyingOsdkObject];
|
|
3246
|
+
const objectDef = value[chunkCDUYWOVQ_cjs.ObjectDefRef];
|
|
2684
3247
|
const newProps = {
|
|
2685
3248
|
$apiName: underlying.$apiName,
|
|
2686
3249
|
$objectType: underlying.$objectType,
|
|
2687
3250
|
$primaryKey: underlying.$primaryKey,
|
|
2688
|
-
$title: underlying.$title
|
|
3251
|
+
$title: underlying.$title,
|
|
3252
|
+
$rid: underlying.$rid
|
|
2689
3253
|
};
|
|
2690
3254
|
for (const key of Object.keys(underlying)) {
|
|
2691
3255
|
if (key in objectDef.properties && !rdpFields.has(key)) {
|
|
2692
3256
|
newProps[key] = underlying[key];
|
|
2693
3257
|
}
|
|
2694
3258
|
}
|
|
2695
|
-
return
|
|
3259
|
+
return chunkCDUYWOVQ_cjs.createOsdkObject(value[chunkCDUYWOVQ_cjs.ClientRef], objectDef, newProps);
|
|
2696
3260
|
}
|
|
2697
3261
|
function isSuperset(superset, subset) {
|
|
2698
3262
|
for (const field of subset) {
|
|
@@ -2703,13 +3267,14 @@ function isSuperset(superset, subset) {
|
|
|
2703
3267
|
return true;
|
|
2704
3268
|
}
|
|
2705
3269
|
function filterToRdpFields(value, rdpFieldsToKeep, sourceRdpFields) {
|
|
2706
|
-
const underlying = value[
|
|
2707
|
-
const objectDef = value[
|
|
3270
|
+
const underlying = value[chunkCDUYWOVQ_cjs.UnderlyingOsdkObject];
|
|
3271
|
+
const objectDef = value[chunkCDUYWOVQ_cjs.ObjectDefRef];
|
|
2708
3272
|
const newProps = {
|
|
2709
3273
|
$apiName: underlying.$apiName,
|
|
2710
3274
|
$objectType: underlying.$objectType,
|
|
2711
3275
|
$primaryKey: underlying.$primaryKey,
|
|
2712
|
-
$title: underlying.$title
|
|
3276
|
+
$title: underlying.$title,
|
|
3277
|
+
$rid: underlying.$rid
|
|
2713
3278
|
};
|
|
2714
3279
|
for (const key of Object.keys(underlying)) {
|
|
2715
3280
|
if (key in objectDef.properties) {
|
|
@@ -2719,7 +3284,7 @@ function filterToRdpFields(value, rdpFieldsToKeep, sourceRdpFields) {
|
|
|
2719
3284
|
}
|
|
2720
3285
|
}
|
|
2721
3286
|
}
|
|
2722
|
-
return
|
|
3287
|
+
return chunkCDUYWOVQ_cjs.createOsdkObject(value[chunkCDUYWOVQ_cjs.ClientRef], objectDef, newProps);
|
|
2723
3288
|
}
|
|
2724
3289
|
function mergeObjectFields(sourceValue, sourceRdpFields, targetRdpFields, targetCurrentValue) {
|
|
2725
3290
|
if (targetRdpFields.size === 0) {
|
|
@@ -2731,13 +3296,14 @@ function mergeObjectFields(sourceValue, sourceRdpFields, targetRdpFields, target
|
|
|
2731
3296
|
}
|
|
2732
3297
|
return filterToRdpFields(sourceValue, targetRdpFields, sourceRdpFields);
|
|
2733
3298
|
}
|
|
2734
|
-
const sourceUnderlying = sourceValue[
|
|
2735
|
-
const objectDef = sourceValue[
|
|
3299
|
+
const sourceUnderlying = sourceValue[chunkCDUYWOVQ_cjs.UnderlyingOsdkObject];
|
|
3300
|
+
const objectDef = sourceValue[chunkCDUYWOVQ_cjs.ObjectDefRef];
|
|
2736
3301
|
const newProps = {
|
|
2737
3302
|
$apiName: sourceUnderlying.$apiName,
|
|
2738
3303
|
$objectType: sourceUnderlying.$objectType,
|
|
2739
3304
|
$primaryKey: sourceUnderlying.$primaryKey,
|
|
2740
|
-
$title: sourceUnderlying.$title
|
|
3305
|
+
$title: sourceUnderlying.$title,
|
|
3306
|
+
$rid: sourceUnderlying.$rid
|
|
2741
3307
|
};
|
|
2742
3308
|
for (const key of Object.keys(sourceUnderlying)) {
|
|
2743
3309
|
if (key in objectDef.properties && (!sourceRdpFields.has(key) || targetRdpFields.has(key))) {
|
|
@@ -2745,14 +3311,14 @@ function mergeObjectFields(sourceValue, sourceRdpFields, targetRdpFields, target
|
|
|
2745
3311
|
}
|
|
2746
3312
|
}
|
|
2747
3313
|
if (targetCurrentValue) {
|
|
2748
|
-
const targetUnderlying = targetCurrentValue[
|
|
3314
|
+
const targetUnderlying = targetCurrentValue[chunkCDUYWOVQ_cjs.UnderlyingOsdkObject];
|
|
2749
3315
|
for (const field of targetRdpFields) {
|
|
2750
3316
|
if (!sourceRdpFields.has(field) && field in targetUnderlying) {
|
|
2751
3317
|
newProps[field] = targetUnderlying[field];
|
|
2752
3318
|
}
|
|
2753
3319
|
}
|
|
2754
3320
|
}
|
|
2755
|
-
return
|
|
3321
|
+
return chunkCDUYWOVQ_cjs.createOsdkObject(sourceValue[chunkCDUYWOVQ_cjs.ClientRef], objectDef, newProps);
|
|
2756
3322
|
}
|
|
2757
3323
|
|
|
2758
3324
|
// src/observable/internal/object/ObjectCacheKeyRegistry.ts
|
|
@@ -2887,7 +3453,7 @@ var BulkObjectLoader = class {
|
|
|
2887
3453
|
#maxEntries;
|
|
2888
3454
|
constructor(client, maxWait = 25, maxEntries = 100) {
|
|
2889
3455
|
this.#client = client;
|
|
2890
|
-
this.#logger = client[
|
|
3456
|
+
this.#logger = client[chunkY362HOIZ_cjs.additionalContext].logger;
|
|
2891
3457
|
this.#maxWait = maxWait;
|
|
2892
3458
|
this.#maxEntries = maxEntries;
|
|
2893
3459
|
}
|
|
@@ -2934,7 +3500,8 @@ var BulkObjectLoader = class {
|
|
|
2934
3500
|
const {
|
|
2935
3501
|
data
|
|
2936
3502
|
} = await this.#client(miniDef).where(whereClause).fetchPage({
|
|
2937
|
-
$pageSize: pks.length
|
|
3503
|
+
$pageSize: pks.length,
|
|
3504
|
+
$includeRid: true
|
|
2938
3505
|
});
|
|
2939
3506
|
for (const {
|
|
2940
3507
|
primaryKey,
|
|
@@ -2955,7 +3522,7 @@ var ObjectQuery = class extends Query {
|
|
|
2955
3522
|
#apiName;
|
|
2956
3523
|
#pk;
|
|
2957
3524
|
constructor(store, subject, type, pk, cacheKey, opts) {
|
|
2958
|
-
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[
|
|
3525
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
|
|
2959
3526
|
msgPrefix: `ObjectQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
2960
3527
|
}) : void 0);
|
|
2961
3528
|
this.#apiName = type;
|
|
@@ -2984,7 +3551,20 @@ var ObjectQuery = class extends Query {
|
|
|
2984
3551
|
methodName: "_fetchAndStore"
|
|
2985
3552
|
}).debug("calling _fetchAndStore");
|
|
2986
3553
|
}
|
|
2987
|
-
const
|
|
3554
|
+
const rdpConfig = this.cacheKey.otherKeys[RDP_CONFIG_IDX];
|
|
3555
|
+
let obj;
|
|
3556
|
+
if (rdpConfig) {
|
|
3557
|
+
const miniDef = {
|
|
3558
|
+
type: "object",
|
|
3559
|
+
apiName: this.#apiName
|
|
3560
|
+
};
|
|
3561
|
+
const fetched = await this.store.client(miniDef).withProperties(rdpConfig).fetchOne(this.#pk, {
|
|
3562
|
+
$includeRid: true
|
|
3563
|
+
});
|
|
3564
|
+
obj = fetched;
|
|
3565
|
+
} else {
|
|
3566
|
+
obj = await getBulkObjectLoader(this.store.client).fetch(this.#apiName, this.#pk);
|
|
3567
|
+
}
|
|
2988
3568
|
this.store.batch({}, (batch) => {
|
|
2989
3569
|
this.writeToStore(obj, "loaded", batch);
|
|
2990
3570
|
});
|
|
@@ -3034,7 +3614,7 @@ var ObjectsHelper = class extends AbstractHelper {
|
|
|
3034
3614
|
*/
|
|
3035
3615
|
storeOsdkInstances(values, batch, rdpConfig) {
|
|
3036
3616
|
return values.map((v) => this.getQuery({
|
|
3037
|
-
apiName: v.$apiName,
|
|
3617
|
+
apiName: v.$objectType ?? v.$apiName,
|
|
3038
3618
|
pk: v.$primaryKey
|
|
3039
3619
|
}, rdpConfig).writeToStore(v, "loaded", batch).cacheKey);
|
|
3040
3620
|
}
|
|
@@ -3103,17 +3683,13 @@ var ObjectSetQuery = class extends BaseListQuery {
|
|
|
3103
3683
|
#composedObjectSet;
|
|
3104
3684
|
#objectTypes;
|
|
3105
3685
|
constructor(store, subject, baseObjectSetWire, operations, cacheKey, opts) {
|
|
3106
|
-
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[
|
|
3686
|
+
super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
|
|
3107
3687
|
msgPrefix: `ObjectSetQuery<${cacheKey.otherKeys.map((x) => JSON.stringify(x)).join(", ")}>`
|
|
3108
3688
|
}) : void 0);
|
|
3109
3689
|
this.#baseObjectSetWire = baseObjectSetWire;
|
|
3110
3690
|
this.#operations = operations;
|
|
3111
3691
|
this.#composedObjectSet = this.#composeObjectSet(opts);
|
|
3112
3692
|
this.#objectTypes = this.#extractObjectTypes(opts);
|
|
3113
|
-
if (operations.orderBy && Object.keys(operations.orderBy).length > 0) {
|
|
3114
|
-
const firstType = Array.from(this.#objectTypes)[0];
|
|
3115
|
-
this.sortingStrategy = new OrderBySortingStrategy(firstType, operations.orderBy);
|
|
3116
|
-
}
|
|
3117
3693
|
if (opts.autoFetchMore === true) {
|
|
3118
3694
|
this.minResultsToLoad = Number.MAX_SAFE_INTEGER;
|
|
3119
3695
|
} else if (typeof opts.autoFetchMore === "number") {
|
|
@@ -3152,7 +3728,7 @@ var ObjectSetQuery = class extends BaseListQuery {
|
|
|
3152
3728
|
}
|
|
3153
3729
|
if (opts.union) {
|
|
3154
3730
|
for (const os of opts.union) {
|
|
3155
|
-
const wire =
|
|
3731
|
+
const wire = chunkY362HOIZ_cjs.getWireObjectSet(os);
|
|
3156
3732
|
if (wire.type) {
|
|
3157
3733
|
types.add(wire.type);
|
|
3158
3734
|
}
|
|
@@ -3160,7 +3736,7 @@ var ObjectSetQuery = class extends BaseListQuery {
|
|
|
3160
3736
|
}
|
|
3161
3737
|
if (opts.intersect) {
|
|
3162
3738
|
for (const os of opts.intersect) {
|
|
3163
|
-
const wire =
|
|
3739
|
+
const wire = chunkY362HOIZ_cjs.getWireObjectSet(os);
|
|
3164
3740
|
if (wire.type) {
|
|
3165
3741
|
types.add(wire.type);
|
|
3166
3742
|
}
|
|
@@ -3168,7 +3744,7 @@ var ObjectSetQuery = class extends BaseListQuery {
|
|
|
3168
3744
|
}
|
|
3169
3745
|
if (opts.subtract) {
|
|
3170
3746
|
for (const os of opts.subtract) {
|
|
3171
|
-
const wire =
|
|
3747
|
+
const wire = chunkY362HOIZ_cjs.getWireObjectSet(os);
|
|
3172
3748
|
if (wire.type) {
|
|
3173
3749
|
types.add(wire.type);
|
|
3174
3750
|
}
|
|
@@ -3187,9 +3763,17 @@ var ObjectSetQuery = class extends BaseListQuery {
|
|
|
3187
3763
|
* Fetches a page of data from the composed ObjectSet
|
|
3188
3764
|
*/
|
|
3189
3765
|
async fetchPageData(signal) {
|
|
3766
|
+
if (this.#operations.orderBy && Object.keys(this.#operations.orderBy).length > 0 && !(this.sortingStrategy instanceof OrderBySortingStrategy)) {
|
|
3767
|
+
const wireObjectSet = chunkY362HOIZ_cjs.getWireObjectSet(this.#composedObjectSet);
|
|
3768
|
+
const {
|
|
3769
|
+
resultType
|
|
3770
|
+
} = await getObjectTypesThatInvalidate(this.store.client[chunkY362HOIZ_cjs.additionalContext], wireObjectSet);
|
|
3771
|
+
this.sortingStrategy = new OrderBySortingStrategy(resultType.apiName, this.#operations.orderBy);
|
|
3772
|
+
}
|
|
3190
3773
|
const resp = await this.#composedObjectSet.fetchPage({
|
|
3191
3774
|
$nextPageToken: this.nextPageToken,
|
|
3192
3775
|
$pageSize: this.options.pageSize,
|
|
3776
|
+
$includeRid: true,
|
|
3193
3777
|
// OrderBy is already applied in the composed ObjectSet
|
|
3194
3778
|
...this.#operations.orderBy && Object.keys(this.#operations.orderBy).length > 0 ? {
|
|
3195
3779
|
$orderBy: this.#operations.orderBy
|
|
@@ -3204,8 +3788,10 @@ var ObjectSetQuery = class extends BaseListQuery {
|
|
|
3204
3788
|
handleFetchError(error, _status, batch) {
|
|
3205
3789
|
this.logger?.error("error", error);
|
|
3206
3790
|
this.store.subjects.get(this.cacheKey).error(error);
|
|
3791
|
+
const existingTotalCount = batch.read(this.cacheKey)?.value?.totalCount;
|
|
3207
3792
|
return this.writeToStore({
|
|
3208
|
-
data: []
|
|
3793
|
+
data: [],
|
|
3794
|
+
totalCount: existingTotalCount
|
|
3209
3795
|
}, "error", batch);
|
|
3210
3796
|
}
|
|
3211
3797
|
registerStreamUpdates(sub) {
|
|
@@ -3226,7 +3812,8 @@ var ObjectSetQuery = class extends BaseListQuery {
|
|
|
3226
3812
|
hasMore: this.nextPageToken != null,
|
|
3227
3813
|
status: params.status,
|
|
3228
3814
|
lastUpdated: params.lastUpdated,
|
|
3229
|
-
objectSet: this.#composedObjectSet
|
|
3815
|
+
objectSet: this.#composedObjectSet,
|
|
3816
|
+
totalCount: params.totalCount
|
|
3230
3817
|
};
|
|
3231
3818
|
}
|
|
3232
3819
|
};
|
|
@@ -3249,7 +3836,7 @@ var ObjectSetHelper = class extends AbstractHelper {
|
|
|
3249
3836
|
const {
|
|
3250
3837
|
baseObjectSet
|
|
3251
3838
|
} = options;
|
|
3252
|
-
const baseObjectSetWire = JSON.stringify(
|
|
3839
|
+
const baseObjectSetWire = JSON.stringify(chunkY362HOIZ_cjs.getWireObjectSet(baseObjectSet));
|
|
3253
3840
|
const operations = this.buildCanonicalizedOperations(options);
|
|
3254
3841
|
const objectSetCacheKey = this.cacheKeys.get("objectSet", baseObjectSetWire, operations);
|
|
3255
3842
|
return this.store.queries.get(objectSetCacheKey, () => {
|
|
@@ -3265,13 +3852,13 @@ var ObjectSetHelper = class extends AbstractHelper {
|
|
|
3265
3852
|
operations.withProperties = Object.keys(options.withProperties).sort();
|
|
3266
3853
|
}
|
|
3267
3854
|
if (options.union && options.union.length > 0) {
|
|
3268
|
-
operations.union = options.union.map((os) => JSON.stringify(
|
|
3855
|
+
operations.union = options.union.map((os) => JSON.stringify(chunkY362HOIZ_cjs.getWireObjectSet(os)));
|
|
3269
3856
|
}
|
|
3270
3857
|
if (options.intersect && options.intersect.length > 0) {
|
|
3271
|
-
operations.intersect = options.intersect.map((os) => JSON.stringify(
|
|
3858
|
+
operations.intersect = options.intersect.map((os) => JSON.stringify(chunkY362HOIZ_cjs.getWireObjectSet(os)));
|
|
3272
3859
|
}
|
|
3273
3860
|
if (options.subtract && options.subtract.length > 0) {
|
|
3274
|
-
operations.subtract = options.subtract.map((os) => JSON.stringify(
|
|
3861
|
+
operations.subtract = options.subtract.map((os) => JSON.stringify(chunkY362HOIZ_cjs.getWireObjectSet(os)));
|
|
3275
3862
|
}
|
|
3276
3863
|
if (options.pivotTo) {
|
|
3277
3864
|
operations.pivotTo = options.pivotTo;
|
|
@@ -3343,7 +3930,7 @@ var RdpCanonicalizer = class extends CachingCanonicalizer {
|
|
|
3343
3930
|
apiName: "__rdp_canonicalizer_holder__"
|
|
3344
3931
|
};
|
|
3345
3932
|
for (const [key, rdpFunction] of Object.entries(rdp)) {
|
|
3346
|
-
const builder =
|
|
3933
|
+
const builder = chunkY362HOIZ_cjs.createWithPropertiesObjectSet(
|
|
3347
3934
|
objectTypeHolder,
|
|
3348
3935
|
{
|
|
3349
3936
|
type: "methodInput"
|
|
@@ -3377,6 +3964,22 @@ var RdpCanonicalizer = class extends CachingCanonicalizer {
|
|
|
3377
3964
|
}
|
|
3378
3965
|
};
|
|
3379
3966
|
|
|
3967
|
+
// src/observable/internal/RidListCanonicalizer.ts
|
|
3968
|
+
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
3969
|
+
var RidListCanonicalizer = class {
|
|
3970
|
+
cache = /* @__PURE__ */ new Map();
|
|
3971
|
+
canonicalize(rids) {
|
|
3972
|
+
const sorted = [...new Set(rids)].sort();
|
|
3973
|
+
const key = sorted.join("\0");
|
|
3974
|
+
let canonical = this.cache.get(key);
|
|
3975
|
+
if (!canonical) {
|
|
3976
|
+
canonical = sorted;
|
|
3977
|
+
this.cache.set(key, canonical);
|
|
3978
|
+
}
|
|
3979
|
+
return canonical;
|
|
3980
|
+
}
|
|
3981
|
+
};
|
|
3982
|
+
|
|
3380
3983
|
// src/observable/internal/Store.ts
|
|
3381
3984
|
var Store = class {
|
|
3382
3985
|
whereCanonicalizer = new WhereClauseCanonicalizer();
|
|
@@ -3384,6 +3987,7 @@ var Store = class {
|
|
|
3384
3987
|
rdpCanonicalizer = new RdpCanonicalizer();
|
|
3385
3988
|
intersectCanonicalizer = new IntersectCanonicalizer(this.whereCanonicalizer);
|
|
3386
3989
|
pivotCanonicalizer = new PivotCanonicalizer();
|
|
3990
|
+
ridListCanonicalizer = new RidListCanonicalizer();
|
|
3387
3991
|
/** @internal */
|
|
3388
3992
|
queries = new Queries();
|
|
3389
3993
|
objectCacheKeyRegistry = new ObjectCacheKeyRegistry();
|
|
@@ -3394,7 +3998,7 @@ var Store = class {
|
|
|
3394
3998
|
subjects = this.layers.subjects;
|
|
3395
3999
|
// these are hopefully temporary
|
|
3396
4000
|
constructor(client) {
|
|
3397
|
-
this.logger = client[
|
|
4001
|
+
this.logger = client[chunkY362HOIZ_cjs.additionalContext].logger?.child({}, {
|
|
3398
4002
|
msgPrefix: "Store"
|
|
3399
4003
|
});
|
|
3400
4004
|
this.client = client;
|
|
@@ -3402,7 +4006,8 @@ var Store = class {
|
|
|
3402
4006
|
onDestroy: this.#cleanupCacheKey
|
|
3403
4007
|
});
|
|
3404
4008
|
this.aggregations = new AggregationsHelper(this, this.cacheKeys, this.whereCanonicalizer, this.rdpCanonicalizer);
|
|
3405
|
-
this.
|
|
4009
|
+
this.functions = new FunctionsHelper(this, this.cacheKeys);
|
|
4010
|
+
this.lists = new ListsHelper(this, this.cacheKeys, this.whereCanonicalizer, this.orderByCanonicalizer, this.rdpCanonicalizer, this.intersectCanonicalizer, this.pivotCanonicalizer, this.ridListCanonicalizer);
|
|
3406
4011
|
this.objects = new ObjectsHelper(this, this.cacheKeys);
|
|
3407
4012
|
this.links = new LinksHelper(this, this.cacheKeys, this.whereCanonicalizer, this.orderByCanonicalizer);
|
|
3408
4013
|
this.objectSets = new ObjectSetHelper(this, this.cacheKeys, this.whereCanonicalizer, this.orderByCanonicalizer);
|
|
@@ -3414,7 +4019,7 @@ var Store = class {
|
|
|
3414
4019
|
#cleanupCacheKey = (key) => {
|
|
3415
4020
|
const subject = this.subjects.peek(key);
|
|
3416
4021
|
if (process.env.NODE_ENV !== "production") {
|
|
3417
|
-
!subject ? process.env.NODE_ENV !== "production" ?
|
|
4022
|
+
!subject ? process.env.NODE_ENV !== "production" ? invariant5__default.default(false) : invariant5__default.default(false) : void 0;
|
|
3418
4023
|
}
|
|
3419
4024
|
this.subjects.delete(key);
|
|
3420
4025
|
this.queries.delete(key);
|
|
@@ -3656,14 +4261,20 @@ var Store = class {
|
|
|
3656
4261
|
}
|
|
3657
4262
|
return Promise.allSettled(promises).then(() => void 0);
|
|
3658
4263
|
}
|
|
4264
|
+
async invalidateFunction(apiName, params) {
|
|
4265
|
+
return this.functions.invalidateFunction(apiName, params);
|
|
4266
|
+
}
|
|
4267
|
+
async invalidateFunctionsByObject(apiName, primaryKey) {
|
|
4268
|
+
return this.functions.invalidateFunctionsByObject(apiName, primaryKey);
|
|
4269
|
+
}
|
|
3659
4270
|
};
|
|
3660
4271
|
|
|
3661
4272
|
// src/observable/ObservableClient.ts
|
|
3662
4273
|
function createObservableClient(client) {
|
|
3663
|
-
const tweakedClient =
|
|
3664
|
-
...client[
|
|
3665
|
-
fetch: shared_net_fetch.createFetchHeaderMutator(client[
|
|
3666
|
-
headers.set("Fetch-User-Agent", [headers.get("Fetch-User-Agent"),
|
|
4274
|
+
const tweakedClient = chunkCDUYWOVQ_cjs.createClientFromContext({
|
|
4275
|
+
...client[chunkY362HOIZ_cjs.additionalContext],
|
|
4276
|
+
fetch: shared_net_fetch.createFetchHeaderMutator(client[chunkY362HOIZ_cjs.additionalContext].fetch, (headers) => {
|
|
4277
|
+
headers.set("Fetch-User-Agent", [headers.get("Fetch-User-Agent"), chunkCDUYWOVQ_cjs.OBSERVABLE_USER_AGENT].filter((x) => x && x?.length > 0).join(" "));
|
|
3667
4278
|
return headers;
|
|
3668
4279
|
})
|
|
3669
4280
|
});
|
|
@@ -3707,11 +4318,11 @@ function getOsdkConfig(ontologyRid) {
|
|
|
3707
4318
|
|
|
3708
4319
|
Object.defineProperty(exports, "createClientWithTransaction", {
|
|
3709
4320
|
enumerable: true,
|
|
3710
|
-
get: function () { return
|
|
4321
|
+
get: function () { return chunkCDUYWOVQ_cjs.createClientWithTransaction; }
|
|
3711
4322
|
});
|
|
3712
4323
|
Object.defineProperty(exports, "augment", {
|
|
3713
4324
|
enumerable: true,
|
|
3714
|
-
get: function () { return
|
|
4325
|
+
get: function () { return chunkY362HOIZ_cjs.augment; }
|
|
3715
4326
|
});
|
|
3716
4327
|
exports.computeObjectSetCacheKey = computeObjectSetCacheKey;
|
|
3717
4328
|
exports.createObservableClient = createObservableClient;
|