@krakentech/blueprint-api
3.4.1
Patch Changes
-
2567a7c: New bundling strategy for better performance
-
Unbundle mode Packages are now bundled using tsdown's unbundle mode. This mode drastically reduces the number of generated file compared to the glob-filtered entries we used before, and prevented proper tree-shaking.
-
Automatic package.json exports tsdown is now responsible for generating the
package.jsonexports,main,module, andtypesfields. This ensures packages follow best practices.
-
3.4.0
Minor Changes
-
87323b6:
SessionState: addisScopedSession"flag"type SessionState = {
isAuthenticated: boolean;
isMasquerading: boolean;
isMobileWebView: boolean;
+ isScopedSession: boolean;
sub: string | null;
};
3.3.0
Minor Changes
- 7dc77b4: Expose
toAbsoluteUrl. This function converts a relative URL to an absolute URL based on the current environment.
3.2.1
Patch Changes
- e4dc37d: Export graphqlRequest types in blueprint-api package
3.2.0
Minor Changes
-
12e020f: 🎉 Release new package: Dashboard
Added
- New @blueprint/dashboard package - A comprehensive dashboard solution for Blueprint applications
- API Access Feature - Integrated API access functionality within user accounts
- Users can now manage API credentials directly from their dashboard
- Secure API key generation and management interface
- Real-time API usage monitoring and analytics
Features
- Account management with API access controls
Dependencies
- Leverages @blueprint/api types for consistent data handling Seamless integration with existing Blueprint ecosystem
Note: This is the initial release of the dashboard package. Future releases will look to migrate existing core dashboard functionality.
Breaking Changes: None (new package)
Migration: No migration required for existing Blueprint users. The dashboard packages api-access feature can be optionally integrated into existing applications.
Patch Changes
- 72176a1: Export splitOptions from api package
3.1.0
Minor Changes
-
8982f0f: Added a new React hook for calling custom API routes with React Query integration. Note that this is for mutation only
-
Provides a streamlined way to make HTTP requests to custom API endpoints (GET, POST, PUT, DELETE, PATCH)
-
Built on top of React Query's
useMutationfor state management and caching -
Includes automatic error handling through the existing Kraken error system
-
Supports TypeScript generics for type-safe request/response handling
-
Configurable HTTP methods (defaults to
POST) -
Custom headers support
-
JSON request/response handling
-
Built-in error handling via
handleKrakenErrors -
No retry by default (suitable for mutations)
The endpoint parameter should match your custom API route path. For example, if you create a file at pages/api/org/initialize-user.ts, your endpoint would be /api/org/initialize-user.
import { useApiRouteMutation } from '@krakentech/blueprint-api/client';
// Define your types
interface MyResponse {
success: boolean;
data: { id: string; name: string };
}
interface MyVariables {
userId: string;
settings: { theme: string };
}
// Create the mutation hook
const useMyCustomMutation = () => {
return useApiRouteMutation<MyResponse, ApiRouteMutationError, MyVariables>({
endpoint: '/api/my-custom-route', // Must match your API file path
method: 'POST', // Optional, defaults to POST
mutationKey: ['myCustomMutation'], // Optional, for React Query caching
onSuccess: (data) => { // Optional
// Do something with data
},
onError: (error) => { // Optional
// Do something with error
}
});
};- API file: pages/api/users/profile.ts → endpoint: /api/users/profile
- API file: pages/api/settings.ts → endpoint: /api/settings
- API file: pages/api/org/initialize-user.ts → endpoint: /api/org/initialize-user
-
3.0.1
Patch Changes
-
bf089bc: Use QueryKey type from
@tanstack/react-queryfor every operation.Previously, we were using the
string[]type for query keys, which is not compatible with theQueryKeytype from react-query. This change ensures that all query keys are now typed correctly, improving type safety and consistency with the library.
3.0.0
Major Changes
- bad97b4: Bump graphql-request from
^6.1.0to^7.2.0
2.0.0
Major Changes
- 6ed7c25: Changes how the api hooks prop types are defined to provide greater type inference and type safety. Does require updating all usage of these hooks to change the
query/mutationprop to be calleddocument(same value). The rest of the props remain the same.
1.2.1
Patch Changes
- 8f195fc: Set files: ["dist"]
1.2.0
Minor Changes
- 0401bcc: Add optional
graphqlClientprop toApiProviderto allow the consumer to pass a custom GraphQL client instance. This is useful for scenarios where the consumer needs to use a specific client configuration or instance.
1.1.0
Minor Changes
- 9926ab8: Removes gql.tada's
TadaDocumentTypewhen definingquery/mutationprop types in the API hooks (to remove this dependency) and adds a new all-purposeTypedDocumentNodetype (taken from@graphql-typed-document-node/core) to represent both gql.tada and GraphQL Codegens typed document nodes. This enables support for both types of document nodes in the API hooks.
1.0.0
Major Changes
- 507d46c: Move all client-side code into a dedicated /client submodule.
0.8.0
Minor Changes
- 639224c:
useApi().graphqlClient: ensure the url to which the request is being made is a full url, with protocol and base, even when theapiRoutepassed to theApiProvideris a relative path. This is a requirement when usinggraphql-request v7+.
0.7.0
Minor Changes
-
6343863: Turn the package into an ES Module. This includes:
- Adding
"type": "module"to thepackage.json - Updating the
exportsfield to include both ESM and CommonJS versions - Ensuring all imports and exports are compatible with ESM
It shouldn't break any existing functionality, as the CommonJS version is still available for compatibility.
- Adding
0.6.1
Patch Changes
-
971dd01: # Enable tree-shaking of blueprint packages
The blueprint packages are now code-split and tagged as side-effect free. Bundlers such as Webpack are able to perform tree-shaking and only include necessary code in application bundles.
0.6.0
Minor Changes
- d580b2f:
APIProvider: update thesessionStatetype so that it matches theuseSession.datareturn type of the@krakentech/blueprint-auth> v25.0.0.
0.5.1
Patch Changes
- 3c29cde: Create tsup.config file and mark
react/react-domas externals
0.5.0
Minor Changes
- ebf8ae7: Add Kraken hooks:
useKrakenQuery,useInfiniteKrakenQueryanduseKrakenMutation. Consumers now need to wrap their app with anApiProviderto use these hooks.
0.4.0
Minor Changes
- 66a8c3f: Add getErrorCode function
0.3.0
Minor Changes
- 8bda073: Add setErrorSearchParam helper
0.2.0
Minor Changes
- a0bd6b8: Add more errors to the errorTypeToCodeMap
0.1.0
Minor Changes
- c5c0279: Add kraken api error related utils