Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cypress-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"@webiny/project-utils": "0.0.0",
"@webiny/utils": "0.0.0",
"amazon-cognito-identity-js": "^6.3.16",
"cypress": "^15.13.0",
"cypress": "^15.13.1",
"cypress-image-snapshot": "^4.0.1",
"cypress-mailosaur": "^5.0.0",
"cypress-wait-until": "^3.0.2",
Expand Down
2 changes: 1 addition & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ export default defineConfig([
},
settings: {
react: {
version: "18.2.0"
version: "18.3.1"
}
}
},
Expand Down
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@
"@types/node": "^24.12.2",
"@types/react": "18.3.28",
"@types/react-dom": "18.3.7",
"@typescript-eslint/eslint-plugin": "^8.58.0",
"@typescript-eslint/parser": "^8.58.0",
"@vitest/coverage-v8": "^4.1.2",
"@typescript-eslint/eslint-plugin": "^8.58.1",
"@typescript-eslint/parser": "^8.58.1",
"@vitest/coverage-v8": "^4.1.3",
"@vitest/eslint-plugin": "^1.6.14",
"adio": "^2.1.0",
"babel-loader": "^10.1.1",
Expand All @@ -89,7 +89,7 @@
"github-actions-wac": "^2.0.0",
"graphql": "^16.13.2",
"husky": "^9.1.7",
"inquirer": "^13.4.0",
"inquirer": "^13.4.1",
"jest-extended": "^7.0.0",
"lerna": "8.1.2",
"lexical": "^0.42.0",
Expand All @@ -108,7 +108,7 @@
"typescript": "5.9.3",
"validator": "^13.15.35",
"verdaccio": "^6.4.0",
"vitest": "^4.1.2",
"vitest": "^4.1.3",
"write-json-file": "^7.0.0",
"yargs": "^18.0.0"
},
Expand Down
4 changes: 2 additions & 2 deletions packages/admin-ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,15 @@
"@webiny/project": "0.0.0",
"chalk": "^5.6.2",
"css-loader": "^7.1.4",
"eslint-plugin-storybook": "^10.3.4",
"eslint-plugin-storybook": "^10.3.5",
"file-loader": "6.2.0",
"postcss-loader": "^8.2.1",
"prettier": "3.6.2",
"rimraf": "^6.1.3",
"sass": "^1.99.0",
"storybook": "^9.1.20",
"typescript": "5.9.3",
"vitest": "^4.1.2"
"vitest": "^4.1.3"
},
"publishConfig": {
"access": "public",
Expand Down
4 changes: 1 addition & 3 deletions packages/api-aco/__tests__/utils/useGraphQlHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,7 @@ export const useGraphQlHandler = (params: UseGQLHandlerParams = {}) => {
permissions,
identity: identity === undefined ? createIdentity() : identity
}),
createHeadlessCmsContext({
storageOperations: cmsStorage.storageOperations
}),
createHeadlessCmsContext(),
createHeadlessCmsGraphQL(),
createFileManagerContext(),
createFileManagerGraphQL(),
Expand Down
4 changes: 1 addition & 3 deletions packages/api-aco/__tests__/utils/useHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,7 @@ export const useHandler = (params: UseHandlerParams = {}) => {
...cmsStorage.plugins,
createGraphQLHandler(),
...createTenancyAndSecurity({ permissions, identity: createIdentity() }),
createHeadlessCmsContext({
storageOperations: cmsStorage.storageOperations
}),
createHeadlessCmsContext(),
createHeadlessCmsGraphQL(),
createAco({ documentClient }),
createEventHandler<any, AcoContext, AcoContext>(async ({ context }) => {
Expand Down
2 changes: 1 addition & 1 deletion packages/api-aco/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,6 @@
"prettier": "3.6.2",
"rimraf": "^6.1.3",
"typescript": "5.9.3",
"vitest": "^4.1.2"
"vitest": "^4.1.3"
}
}
2 changes: 1 addition & 1 deletion packages/api-aco/src/utils/compress.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { compress as gzip } from "@webiny/utils/compression/gzip.js";
import { compress as gzip } from "@webiny/utils/features/compression/legacy/gzip.js";

const GZIP = "gzip";
const TO_STORAGE_ENCODING = "base64";
Expand Down
6 changes: 2 additions & 4 deletions packages/api-audit-logs/__tests__/helpers/handlerCore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import { createAuditLogs } from "~/index";
import { createFileManagerContext } from "@webiny/api-file-manager";
import { createMailerContext } from "@webiny/api-mailer";
import { getDocumentClient } from "@webiny/project-utils/testing/dynamodb/index.js";
import { createAuditLogsContext } from "~/context/index.js";
import { createWebsiteBuilder } from "@webiny/api-website-builder";
import type { IdentityData } from "@webiny/api-core/features/security/IdentityContext/index.js";
import type { ApiKey } from "@webiny/api-core/types/security.js";
Expand Down Expand Up @@ -83,7 +82,7 @@ export const createHandlerCore = (params?: CreateHandlerCoreParams) => {
return {
id: apiKey,
name: apiKey,
tenant: tenant.id,
slug: tenant.id,
permissions: createPermissions(permissions),
token,
createdBy: {
Expand All @@ -99,14 +98,13 @@ export const createHandlerCore = (params?: CreateHandlerCoreParams) => {
} as ContextPlugin<AuditLogsContext>,
apiKeyAuthentication({ identityType: "api-key" }),
apiKeyAuthorization({ identityType: "api-key" }),
createHeadlessCmsContext({ storageOperations: cmsStorage.storageOperations }),
createHeadlessCmsContext(),
createMailerContext(),
createFileManagerContext(),
createHeadlessCmsGraphQL(),
createWebsiteBuilder(),
createAco({ documentClient }),
createAuditLogs(),
createAuditLogsContext(),
plugins,
graphQLHandlerPlugins(),
bottomPlugins
Expand Down
2 changes: 1 addition & 1 deletion packages/api-audit-logs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"@webiny/project-utils": "0.0.0",
"graphql": "^16.13.2",
"typescript": "5.9.3",
"vitest": "^4.1.2"
"vitest": "^4.1.3"
},
"dependencies": {
"@webiny/api": "0.0.0",
Expand Down
5 changes: 4 additions & 1 deletion packages/api-audit-logs/src/context/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js"
import type { AuditLogsContext } from "~/types.js";
import { createAuditLogsContextValue } from "./AuditLogsContextValue.js";
import { createStorage } from "~/storage/Storage.js";
import { CompressionHandler } from "@webiny/utils/exports/api.js";

export interface ISetupContextOptions {
deleteLogsAfterDays: number | undefined;
Expand All @@ -23,10 +24,12 @@ const getDeleteLogsAfterDays = (days?: number): number => {

export const createAuditLogsContext = (params?: ISetupContextOptions) => {
const plugin = new ContextPlugin<AuditLogsContext>(async context => {
const compressionHandler = context.container.resolve(CompressionHandler);

const storage = createStorage({
tableName: params?.tableName,
client: params?.documentClient || (context.db.driver.getClient() as DynamoDBDocument),
compressor: context.compressor
compressionHandler
});

const eventPublisher = context.container.resolve(EventPublisher);
Expand Down
1 change: 0 additions & 1 deletion packages/api-audit-logs/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ export const createAuditLogs = (params?: ICreateAuditLogsParams) => {
});

subscriptionsPlugin.name = "auditLogs.context.subscriptions";

return [
subscriptionsPlugin,
createGraphQLSchema(),
Expand Down
12 changes: 6 additions & 6 deletions packages/api-audit-logs/src/storage/Converter.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import type { IConverter } from "~/storage/abstractions/Converter.js";
import type { ICompressor } from "@webiny/utils/compression/index.js";
import type { IAuditLog, IStorageItem } from "~/storage/types.js";
import type { IAccessPatternHandler } from "~/storage/abstractions/AccessPatternHandler.js";
import { convertExpiresAtToUnixTimestamp } from "~/utils/expiresAt.js";
import { CompressionHandler } from "@webiny/utils/exports/api.js";

const convertToDateTime = (value: string): Date => {
return new Date(value);
};

export interface IConverterParams {
compressor: ICompressor;
compressionHandler: CompressionHandler.Interface;
patternHandler: IAccessPatternHandler;
}

Expand All @@ -20,19 +20,19 @@ type PickOnlyGSIKeys<T> = {
type PickedGSIKeys = Pick<IStorageItem, PickOnlyGSIKeys<IStorageItem>>;

export class Converter implements IConverter {
private readonly compressor;
private readonly compressionHandler;
private readonly patternHandler;

public constructor(params: IConverterParams) {
this.compressor = params.compressor;
this.compressionHandler = params.compressionHandler;
this.patternHandler = params.patternHandler;
}

public async oneFromStorage(item: IStorageItem): Promise<IAuditLog> {
return {
...item.data,
expiresAt: convertToDateTime(item.data.expiresAt),
content: await this.compressor.decompress(JSON.parse(item.data.content)),
content: await this.compressionHandler.decompress(JSON.parse(item.data.content)),
createdOn: new Date(item.data.createdOn)
};
}
Expand Down Expand Up @@ -70,7 +70,7 @@ export class Converter implements IConverter {
data: {
...auditLog,
expiresAt: auditLog.expiresAt.toISOString(),
content: JSON.stringify(await this.compressor.compress(auditLog.content)),
content: JSON.stringify(await this.compressionHandler.compress(auditLog.content)),
createdOn: auditLog.createdOn.toISOString()
},
expiresAt: convertExpiresAtToUnixTimestamp(auditLog.expiresAt)
Expand Down
6 changes: 3 additions & 3 deletions packages/api-audit-logs/src/storage/Storage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ import type {
IStorageStoreParams,
IStorageStoreResult
} from "~/storage/abstractions/Storage.js";
import type { ICompressor } from "@webiny/utils/compression/index.js";
import { Converter } from "~/storage/Converter.js";
import { createAccessPatterns } from "~/storage/accessPatterns/index.js";
import { AccessPatternHandler } from "~/storage/AccessPatternHandler.js";
import { ListSuccessResult } from "~/storage/results/index.js";
import { CompressionHandler } from "@webiny/utils/exports/api.js";

export interface IStorageParams {
compressor: ICompressor;
compressionHandler: CompressionHandler.Interface;
client: DynamoDBDocument;
tableName: string | undefined;
}
Expand All @@ -43,7 +43,7 @@ export class Storage implements IStorage {
});

this.converter = new Converter({
compressor: params.compressor,
compressionHandler: params.compressionHandler,
patternHandler: this.patternHandler
});
}
Expand Down
2 changes: 1 addition & 1 deletion packages/api-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"jest-dynalite": "^3.6.1",
"rimraf": "^6.1.3",
"typescript": "5.9.3",
"vitest": "^4.1.2"
"vitest": "^4.1.3"
},
"publishConfig": {
"access": "public",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
import { describe, it, expect } from "vitest";
import { beforeEach, describe, expect, it } from "vitest";
import { OperationsBuilder } from "~/OperationsBuilder";
import { createDefaultCompressor } from "@webiny/utils/compression";
import { DynamoDBRecord } from "@webiny/handler-aws/types";
import { marshall } from "~/marshall";
import { OperationType } from "~/Operations";
import { PluginsContainer } from "@webiny/plugins";
import { createElasticsearchClient } from "@webiny/project-utils/testing/elasticsearch/createClient.js";
import type { OpenSearchContext } from "@webiny/api-opensearch";
import { createMockContext } from "~tests/mocks/context.js";
import { CompressionHandler } from "@webiny/utils/exports/api.js";

describe("OperationsBuilder", () => {
const compressor = createDefaultCompressor({
plugins: new PluginsContainer()
let context: OpenSearchContext;
let compressor: CompressionHandler.Interface;

beforeEach(async () => {
context = createMockContext({
elasticsearch: createElasticsearchClient()
});
compressor = context.container.resolve(CompressionHandler);
});

it("should build an insert operation", async () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { IOperations, IOperationsBuilder, IOperationsBuilderBuildParams } from "./types.js";
import { Operations, OperationType } from "~/Operations.js";
import { unmarshall } from "~/marshall.js";
import type { ICompressor } from "@webiny/utils/compression/Compressor.js";
import type { CompressionHandler } from "@webiny/utils/exports/api.js";

interface RecordDynamoDbImage {
data: {
Expand All @@ -18,11 +18,11 @@ interface RecordDynamoDbKeys {
}

export interface IOperationsBuilderParams {
compressor: ICompressor;
compressor: CompressionHandler.Interface;
}

export class OperationsBuilder implements IOperationsBuilder {
private readonly compressor: ICompressor;
private readonly compressor: CompressionHandler.Interface;

public constructor(params: IOperationsBuilderParams) {
this.compressor = params.compressor;
Expand Down
5 changes: 4 additions & 1 deletion packages/api-dynamodb-to-elasticsearch/src/eventHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { createDynamoDBEventHandler, timerFactory } from "@webiny/handler-aws";
import type { Context } from "~/types.js";
import { OperationsBuilder } from "~/OperationsBuilder.js";
import { executeWithRetry } from "~/executeWithRetry.js";
import { CompressionHandler } from "@webiny/utils/exports/api.js";

/**
* Also, we need to set the maximum running time for the Lambda Function.
Expand All @@ -19,8 +20,10 @@ export const createEventHandler = () => {
return null;
}

const compressor = context.container.resolve(CompressionHandler);

const builder = new OperationsBuilder({
compressor: context.compressor
compressor
});

const operations = await builder.build({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,7 @@ export const useHandler = (params?: UseHandlerParams) => {
permissions: createPermissions(),
identity: createIdentity()
}),
createHeadlessCmsContext({
storageOperations: cmsStorage.storageOperations
}),
createHeadlessCmsContext(),
createHeadlessCmsGraphQL(),
graphQLHandlerPlugins(),
...createBackgroundTaskContext(),
Expand Down
2 changes: 1 addition & 1 deletion packages/api-elasticsearch-tasks/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"rimraf": "^6.1.3",
"type-fest": "^5.5.0",
"typescript": "5.9.3",
"vitest": "^4.1.2"
"vitest": "^4.1.3"
},
"publishConfig": {
"access": "public",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export const useGraphQlHandler = (params: UseGQLHandlerParams = {}) => {
type: "manage"
};
}),
createHeadlessCmsContext({ storageOperations: cmsStorage.storageOperations }),
createHeadlessCmsContext(),
createHeadlessCmsGraphQL(),
createAco({ documentClient }),
createFileManagerContext(),
Expand Down
2 changes: 1 addition & 1 deletion packages/api-file-manager-aco/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@
"@webiny/wcp": "0.0.0",
"graphql": "^16.13.2",
"typescript": "5.9.3",
"vitest": "^4.1.2"
"vitest": "^4.1.3"
}
}
4 changes: 2 additions & 2 deletions packages/api-file-manager-s3/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"@webiny/plugins": "0.0.0",
"@webiny/utils": "0.0.0",
"@webiny/validation": "0.0.0",
"exifreader": "^4.37.1",
"exifreader": "^4.38.0",
"mime": "^4.1.0",
"object-hash": "^3.0.0",
"p-map": "^7.0.4",
Expand All @@ -35,7 +35,7 @@
"@webiny/build-tools": "0.0.0",
"rimraf": "^6.1.3",
"typescript": "5.9.3",
"vitest": "^4.1.2"
"vitest": "^4.1.3"
},
"publishConfig": {
"access": "public",
Expand Down
2 changes: 1 addition & 1 deletion packages/api-file-manager/__tests__/utils/plugins.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export const handlerPlugins = (params: HandlerParams) => {
type: "manage"
};
}),
createHeadlessCmsContext({ storageOperations: cmsStorage.storageOperations }),
createHeadlessCmsContext(),
createHeadlessCmsGraphQL(),
createFileManagerContext(),
createFileManagerGraphQL(),
Expand Down
Loading
Loading