@workos-inc/node
Advanced tools
Comparing version 7.25.1 to 7.26.0
import { WorkOS } from '../workos'; | ||
import { Resource, CheckBatchOptions, CheckOptions, CheckRequestOptions, CheckResult, CreateResourceOptions, DeleteResourceOptions, ListResourcesOptions, ListWarrantsRequestOptions, ListWarrantsOptions, QueryOptions, QueryRequestOptions, QueryResult, ResourceInterface, ResourceOptions, UpdateResourceOptions, WriteWarrantOptions, Warrant, WarrantToken } from './interfaces'; | ||
import { Resource, CheckBatchOptions, CheckOptions, CheckRequestOptions, CheckResult, CreateResourceOptions, DeleteResourceOptions, ListResourcesOptions, ListWarrantsRequestOptions, ListWarrantsOptions, QueryOptions, QueryRequestOptions, QueryResult, ResourceInterface, ResourceOptions, UpdateResourceOptions, WriteWarrantOptions, Warrant, WarrantToken, BatchWriteResourcesOptions } from './interfaces'; | ||
import { AutoPaginatable } from '../common/utils/pagination'; | ||
@@ -14,2 +14,3 @@ export declare class FGA { | ||
deleteResource(resource: DeleteResourceOptions): Promise<void>; | ||
batchWriteResources(options: BatchWriteResourcesOptions): Promise<Resource[]>; | ||
writeWarrant(options: WriteWarrantOptions): Promise<WarrantToken>; | ||
@@ -16,0 +17,0 @@ batchWriteWarrants(options: WriteWarrantOptions[]): Promise<WarrantToken>; |
@@ -82,2 +82,8 @@ "use strict"; | ||
} | ||
batchWriteResources(options) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const { data } = yield this.workos.post('/fga/v1/resources/batch', options); | ||
return (0, serializers_1.deserializeBatchWriteResourcesResponse)(data); | ||
}); | ||
} | ||
writeWarrant(options) { | ||
@@ -84,0 +90,0 @@ return __awaiter(this, void 0, void 0, function* () { |
@@ -181,2 +181,128 @@ "use strict"; | ||
}); | ||
describe('batchWriteResources', () => { | ||
it('batch create resources', () => __awaiter(void 0, void 0, void 0, function* () { | ||
(0, test_utils_1.fetchOnce)({ | ||
data: [ | ||
{ | ||
resource_type: 'role', | ||
resource_id: 'admin', | ||
meta: { | ||
description: 'The admin role', | ||
}, | ||
}, | ||
{ | ||
resource_type: 'role', | ||
resource_id: 'manager', | ||
}, | ||
{ | ||
resource_type: 'role', | ||
resource_id: 'employee', | ||
}, | ||
], | ||
}); | ||
const createdResources = yield workos.fga.batchWriteResources({ | ||
op: interfaces_1.ResourceOp.Create, | ||
resources: [ | ||
{ | ||
resource: { | ||
resourceType: 'role', | ||
resourceId: 'admin', | ||
}, | ||
meta: { | ||
description: 'The admin role', | ||
}, | ||
}, | ||
{ | ||
resource: { | ||
resourceType: 'role', | ||
resourceId: 'manager', | ||
}, | ||
}, | ||
{ | ||
resource: { | ||
resourceType: 'role', | ||
resourceId: 'employee', | ||
}, | ||
}, | ||
], | ||
}); | ||
expect((0, test_utils_1.fetchURL)()).toContain('/fga/v1/resources/batch'); | ||
expect(createdResources).toMatchObject([ | ||
{ | ||
resourceType: 'role', | ||
resourceId: 'admin', | ||
meta: { | ||
description: 'The admin role', | ||
}, | ||
}, | ||
{ | ||
resourceType: 'role', | ||
resourceId: 'manager', | ||
}, | ||
{ | ||
resourceType: 'role', | ||
resourceId: 'employee', | ||
}, | ||
]); | ||
})); | ||
it('batch delete resources', () => __awaiter(void 0, void 0, void 0, function* () { | ||
(0, test_utils_1.fetchOnce)({ | ||
data: [ | ||
{ | ||
resource_type: 'role', | ||
resource_id: 'admin', | ||
}, | ||
{ | ||
resource_type: 'role', | ||
resource_id: 'manager', | ||
}, | ||
{ | ||
resource_type: 'role', | ||
resource_id: 'employee', | ||
}, | ||
], | ||
}); | ||
const deletedResources = yield workos.fga.batchWriteResources({ | ||
op: interfaces_1.ResourceOp.Delete, | ||
resources: [ | ||
{ | ||
resource: { | ||
resourceType: 'role', | ||
resourceId: 'admin', | ||
}, | ||
meta: { | ||
description: 'The admin role', | ||
}, | ||
}, | ||
{ | ||
resource: { | ||
resourceType: 'role', | ||
resourceId: 'manager', | ||
}, | ||
}, | ||
{ | ||
resource: { | ||
resourceType: 'role', | ||
resourceId: 'employee', | ||
}, | ||
}, | ||
], | ||
}); | ||
expect((0, test_utils_1.fetchURL)()).toContain('/fga/v1/resources/batch'); | ||
expect(deletedResources).toMatchObject([ | ||
{ | ||
resourceType: 'role', | ||
resourceId: 'admin', | ||
}, | ||
{ | ||
resourceType: 'role', | ||
resourceId: 'manager', | ||
}, | ||
{ | ||
resourceType: 'role', | ||
resourceId: 'employee', | ||
}, | ||
]); | ||
})); | ||
}); | ||
describe('writeWarrant', () => { | ||
@@ -183,0 +309,0 @@ it('should create warrant with no op', () => __awaiter(void 0, void 0, void 0, function* () { |
export declare enum CheckOp { | ||
AllOf = "all_of", | ||
AnyOf = "any_of", | ||
Batch = "batch" | ||
AnyOf = "any_of" | ||
} |
@@ -8,3 +8,2 @@ "use strict"; | ||
CheckOp["AnyOf"] = "any_of"; | ||
CheckOp["Batch"] = "batch"; | ||
})(CheckOp || (exports.CheckOp = CheckOp = {})); |
@@ -32,2 +32,7 @@ import { ResourceInterface, ResourceOptions } from './resource.interface'; | ||
} | ||
export interface SerializedCheckBatchOptions { | ||
op: 'batch'; | ||
checks: SerializedCheckWarrantOptions[]; | ||
debug?: boolean; | ||
} | ||
export interface CheckResultResponse { | ||
@@ -34,0 +39,0 @@ result: string; |
export * from './check-op.enum'; | ||
export * from './check.interface'; | ||
export * from './query.interface'; | ||
export * from './resource-op.enum'; | ||
export * from './resource.interface'; | ||
@@ -5,0 +6,0 @@ export * from './warrant-op.enum'; |
@@ -20,2 +20,3 @@ "use strict"; | ||
__exportStar(require("./query.interface"), exports); | ||
__exportStar(require("./resource-op.enum"), exports); | ||
__exportStar(require("./resource.interface"), exports); | ||
@@ -22,0 +23,0 @@ __exportStar(require("./warrant-op.enum"), exports); |
import { PaginationOptions } from '../../common/interfaces/pagination-options.interface'; | ||
import { ResourceOp } from './resource-op.enum'; | ||
export interface ResourceInterface { | ||
@@ -61,1 +62,8 @@ getResourceType(): string; | ||
} | ||
export interface BatchWriteResourcesOptions { | ||
op: ResourceOp; | ||
resources: CreateResourceOptions[] | DeleteResourceOptions[]; | ||
} | ||
export interface BatchWriteResourcesResponse { | ||
data: ResourceResponse[]; | ||
} |
@@ -1,4 +0,4 @@ | ||
import { CheckBatchOptions, CheckOptions, DecisionTreeNode, DecisionTreeNodeResponse, SerializedCheckOptions } from '../interfaces'; | ||
import { CheckBatchOptions, CheckOptions, DecisionTreeNode, DecisionTreeNodeResponse, SerializedCheckBatchOptions, SerializedCheckOptions } from '../interfaces'; | ||
export declare const serializeCheckOptions: (options: CheckOptions) => SerializedCheckOptions; | ||
export declare const serializeCheckBatchOptions: (options: CheckBatchOptions) => SerializedCheckOptions; | ||
export declare const serializeCheckBatchOptions: (options: CheckBatchOptions) => SerializedCheckBatchOptions; | ||
export declare const deserializeDecisionTreeNode: (response: DecisionTreeNodeResponse) => DecisionTreeNode; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.deserializeDecisionTreeNode = exports.serializeCheckBatchOptions = exports.serializeCheckOptions = void 0; | ||
const interfaces_1 = require("../interfaces"); | ||
const interface_check_1 = require("../utils/interface-check"); | ||
@@ -13,3 +12,3 @@ const serializeCheckOptions = (options) => ({ | ||
const serializeCheckBatchOptions = (options) => ({ | ||
op: interfaces_1.CheckOp.Batch, | ||
op: 'batch', | ||
checks: options.checks.map(serializeCheckWarrantOptions), | ||
@@ -16,0 +15,0 @@ debug: options.debug, |
@@ -1,2 +0,3 @@ | ||
import { Resource, ResourceResponse } from '../interfaces'; | ||
import { BatchWriteResourcesResponse, Resource, ResourceResponse } from '../interfaces'; | ||
export declare const deserializeResource: (response: ResourceResponse) => Resource; | ||
export declare const deserializeBatchWriteResourcesResponse: (response: BatchWriteResourcesResponse) => Resource[]; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.deserializeResource = void 0; | ||
exports.deserializeBatchWriteResourcesResponse = exports.deserializeResource = void 0; | ||
const deserializeResource = (response) => ({ | ||
@@ -10,1 +10,5 @@ resourceType: response.resource_type, | ||
exports.deserializeResource = deserializeResource; | ||
const deserializeBatchWriteResourcesResponse = (response) => { | ||
return response.data.map((resource) => (0, exports.deserializeResource)(resource)); | ||
}; | ||
exports.deserializeBatchWriteResourcesResponse = deserializeBatchWriteResourcesResponse; |
@@ -30,3 +30,3 @@ "use strict"; | ||
const fetch_client_1 = require("./common/net/fetch-client"); | ||
const VERSION = '7.25.1'; | ||
const VERSION = '7.26.0'; | ||
const DEFAULT_HOSTNAME = 'api.workos.com'; | ||
@@ -33,0 +33,0 @@ const HEADER_AUTHORIZATION = 'Authorization'; |
{ | ||
"version": "7.25.1", | ||
"version": "7.26.0", | ||
"name": "@workos-inc/node", | ||
@@ -4,0 +4,0 @@ "author": "WorkOS", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
665062
538
14319