Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
e83f44c
fix user homepage delete button
taikou-m May 2, 2025
68d5ee7
Add condition
taikou-m May 14, 2025
6f36ab2
fix:20250516 18:41
taikou-m May 16, 2025
054ae1e
fix:20250516 18:53
taikou-m May 16, 2025
29ecf94
Merge branch 'master' into fix/165282
taikou-m May 20, 2025
a5f6584
Revert "Merge branch 'master' into fix/165282"
taikou-m May 20, 2025
7c63684
Reapply "Merge branch 'master' into fix/165282"
miya May 20, 2025
af4c526
Revert "Merge branch 'master' into fix/165282"
miya May 20, 2025
3fe7cf7
Reapply "Merge branch 'master' into fix/165282"
miya May 20, 2025
37aff31
202505202025
taikou-m May 20, 2025
6d5f792
change appId type to integer
arafubeatbox May 23, 2025
7369743
rm unnec import
miya May 27, 2025
51364bd
rm unnec commentout
miya May 27, 2025
84deb55
Implementation of effect to monitor input value changes in useForm
miya May 27, 2025
8fad48e
20250527 19:45
taikou-m May 27, 2025
aad4d9c
20250527 20:42
taikou-m May 27, 2025
ab7335c
rm unused hook
miya May 28, 2025
4aa8b5b
Hide the Editor Assistant button when AI function is disabled
miya May 28, 2025
8614930
Bump version
May 28, 2025
9de6d58
Merge pull request #9987 from weseek/support/prepare-v7.2.6-RC.0
mergify[bot] May 28, 2025
d461515
fix: improve attribute handling and initialization in remark and rehy…
yuki-takei May 28, 2025
3bbeb36
Merge pull request #9989 from weseek/fix/lsx-elements-construction
mergify[bot] May 28, 2025
fb12437
Merge pull request #9985 from weseek/fix/166525-editor-assistant-butt…
yuki-takei May 28, 2025
61e2b55
Disable UnifiedMergeView when a Form is submitted with UnifiedMergeVi…
miya May 29, 2025
8d0effb
Define isApplyingDiffRef
miya May 29, 2025
09b55d7
Change checkbox to dropdown menu in security settings search results
arvid-e May 29, 2025
4afe374
Merge pull request #9980 from weseek/imprv/166499-discard-when-input-…
yuki-takei May 29, 2025
402f386
Display spinner while reflecting strings being generated in the editor
miya May 29, 2025
621bc60
clean code
yuki-takei May 29, 2025
6b7928b
Merge branch 'master' into feat/166531-display-spinner-while-creating…
miya May 29, 2025
159b79a
Add timer ref to manage spinner visibility during message processing
miya May 29, 2025
b414b35
rm unnec
miya May 29, 2025
1774a63
validate jobId
arafubeatbox May 29, 2025
f234573
add test for PdfCtrl
arafubeatbox May 30, 2025
5c63f57
remove unnecessary logger setup
arafubeatbox May 30, 2025
6fc97e1
Update apps/app/src/features/openai/client/services/editor-assistant.tsx
miya May 30, 2025
f3035b0
Add dependencies
miya May 30, 2025
d55a671
Add cleanup effect to clear timer reference in useEditorAssistant
miya May 30, 2025
73c4b40
Refactor AiAssistantSidebar and MessageCard components to streamline …
miya May 30, 2025
ff28313
rm unnnec code
miya May 30, 2025
bdefc3e
clean code
miya May 30, 2025
9a21a01
clean code
miya May 30, 2025
fa28964
Merge pull request #9991 from weseek/feat/166531-display-spinner-whil…
miya May 30, 2025
b2ecb13
Fix: Await asynchronous check for AI assistant usability in delete an…
miya May 30, 2025
5275fcc
20250530 19:57
taikou-m May 30, 2025
79db193
20250530 20:39
taikou-m May 30, 2025
da18fb9
fix jsdoc for OpenAPI
yuki-takei May 30, 2025
40a9d05
20250530 21:03
taikou-m May 30, 2025
2b92e25
Merge pull request #9994 from weseek/fix/166712-openai-threads-can-be…
yuki-takei May 30, 2025
ae2d14a
remove unnecessary option
yuki-takei May 30, 2025
2db1e3b
Merge pull request #9996 from weseek/support/remove-unnecessary-optio…
mergify[bot] May 30, 2025
4ec8045
Merge pull request #9993 from weseek/imprv/165844-166350-prevent-path…
yuki-takei May 30, 2025
ea54c7a
configure biome for remark-growi-directive and autofix
arafubeatbox Jun 1, 2025
941cfdd
fix non autofixable biome lint errors for remark-growi-directive
arafubeatbox Jun 1, 2025
12ae72c
ignore noUselessThisAlias for ts type fix
arafubeatbox Jun 1, 2025
575abf2
update pdf converter to 1.1.0
arafubeatbox Jun 1, 2025
5830b9e
Make form position sticky & improve message scrolling
miya Jun 2, 2025
d7eb623
rm unnec ref
miya Jun 2, 2025
7650dac
Merge pull request #10001 from weseek/pdf-converter-1.1.0
yuki-takei Jun 2, 2025
b59444c
Merge pull request #9999 from weseek/support/156162-166724-remark-gro…
mergify[bot] Jun 2, 2025
3d6a52a
Bump version
Jun 2, 2025
631f026
Merge pull request #10004 from weseek/support/prepare-v1.1.1-RC.0
mergify[bot] Jun 2, 2025
5293ed3
Merge pull request #10002 from weseek/imprv/165627-make-input-form-po…
mergify[bot] Jun 2, 2025
329516f
Address feedback: use the existing always_hidden and always_displayed…
arvid-e Jun 3, 2025
d2267d0
Revert unintented change in pagecomment
arvid-e Jun 3, 2025
273da6c
Fix one space that was changed unintentionally
arvid-e Jun 3, 2025
69352d7
fix currentPagePath returning blank when null
taikou-m Jun 3, 2025
a9c02a6
WIP relocate
yuki-takei Jun 3, 2025
b577a79
WIP: relocate
yuki-takei Jun 3, 2025
bf02c52
WIP: relocate
yuki-takei Jun 3, 2025
daee6df
relocate
yuki-takei Jun 3, 2025
ad5da13
fix currentPagePath return blank when null 2
taikou-m Jun 3, 2025
c4f9fd5
implement generate-operation-ids
yuki-takei Jun 3, 2025
1416691
generate operationId by script
yuki-takei Jun 3, 2025
da7a6d1
add test
yuki-takei Jun 3, 2025
a15677c
Merge pull request #10009 from weseek/support/openapi-operation-id
yuki-takei Jun 3, 2025
c766212
update script
yuki-takei Jun 3, 2025
aabc547
Address feedback: default display value to hidden
arvid-e Jun 4, 2025
2c23f2e
WIP: bundle cli.ts
yuki-takei Jun 4, 2025
e46034f
if currentPagePath is null return false 20250604 1
taikou-m Jun 4, 2025
332db38
fix: replace empty `s3CustomEndpoint` with undefined
t-hikawa-satt Jun 4, 2025
f292a93
update eslint settings to check .mjs and .mts
yuki-takei Jun 4, 2025
1d4127e
build generate-operation-ids and commit
yuki-takei Jun 4, 2025
59bf7cd
update vite.config.ts
yuki-takei Jun 4, 2025
e818968
remove built generate-operation-ids and build mechanism
yuki-takei Jun 4, 2025
3ec37d2
update eslint settings
yuki-takei Jun 4, 2025
fa2a258
update eslint configuration for pdf-converter-client
yuki-takei Jun 4, 2025
bed7bb8
Add ObjectId schema references across various API routes and models
yuki-takei Jun 4, 2025
26bae68
Revise Revision schema to use ObjectId references for _id and author …
yuki-takei Jun 4, 2025
5c92dc1
Merge pull request #10013 from weseek/imprv/build-openapi-utils
mergify[bot] Jun 4, 2025
a1b976b
add V1ResponseOK schema
yuki-takei Jun 4, 2025
8b0f9e4
replace properties with new schema
yuki-takei Jun 4, 2025
0f6b5b4
typescriptize
yuki-takei Jun 4, 2025
3fdd6a5
add schemas for offset and limit
yuki-takei Jun 4, 2025
ae38c95
add schemas
yuki-takei Jun 4, 2025
fc80e55
commonize schema for tag
yuki-takei Jun 4, 2025
96ec30d
replace schema ref
yuki-takei Jun 4, 2025
2d4369b
Merge pull request #9915 from weseek/fix/165282
mergify[bot] Jun 4, 2025
a3a4f95
Merge pull request #10023 from weseek/imprv/openapi-spec-properties-ref
mergify[bot] Jun 4, 2025
adabbc3
Correct dropdown name and change test to work with selection instead …
arvid-e Jun 5, 2025
b340c45
Fix test to work with type button
arvid-e Jun 5, 2025
c4d281d
update jsdoc
yuki-takei Jun 5, 2025
73d89b4
Correctly test for always displayed
arvid-e Jun 6, 2025
0d57a9d
Merge pull request #9992 from weseek/imprv/153742-security-settings-p…
mergify[bot] Jun 6, 2025
da080b9
Enhance user intent detection and response format in instruction func…
miya Jun 6, 2025
027311b
Add semicolon
t-hikawa-satt Jun 6, 2025
26e1435
Merge pull request #10012 from t-hikawa-satt/fix/issue-10010-s3-uploa…
yuki-takei Jun 6, 2025
2de2006
add NonEmptyString type
yuki-takei Jun 6, 2025
ca37743
refactor test
yuki-takei Jun 6, 2025
c969374
re-impl NonEmptyString and add NonBlankString
yuki-takei Jun 6, 2025
08c1d7d
add toNonEmptyString and toNonBlankString
yuki-takei Jun 6, 2025
1cef93a
add jsdoc
yuki-takei Jun 6, 2025
516f66c
add removeIfUndefined option
yuki-takei Jun 6, 2025
1e6bf9d
update aws s3 configuration handling
yuki-takei Jun 6, 2025
97e063a
Merge pull request #10031 from weseek/imprv/add-non-empty-string-type
yuki-takei Jun 6, 2025
e4e2282
enable removeIfUndefined option in config update
yuki-takei Jun 6, 2025
2b36d89
improve PUT /file-upload-setting API
yuki-takei Jun 6, 2025
f45d106
WIP: type safe retrieving configuration values
yuki-takei Jun 6, 2025
c61750d
Merge pull request #10030 from weseek/imprv/166968-editor-assistant-i…
yuki-takei Jun 9, 2025
1027357
update module for azure
yuki-takei Jun 9, 2025
b40c783
add CustomHeader component and integrate with ReactMarkdown for impro…
miya Jun 9, 2025
5024ffd
refactor CustomHeader component to improve fontSizes declaration order
miya Jun 9, 2025
6bc2ed3
Create directory for ReactMarkdown
miya Jun 9, 2025
8dfba71
Improved directory structure
miya Jun 9, 2025
21f9669
Update apps/app/src/features/openai/client/components/AiAssistant/AiA…
miya Jun 9, 2025
bcc9d34
Update apps/app/src/features/openai/client/components/AiAssistant/AiA…
miya Jun 9, 2025
a4d0ab3
Revert "Update apps/app/src/features/openai/client/components/AiAssis…
miya Jun 9, 2025
ac45f65
clean code
miya Jun 9, 2025
6b6c8ff
Merge pull request #10032 from weseek/imprv/type-safe-configuration-f…
mergify[bot] Jun 9, 2025
a2fed15
Merge pull request #10038 from weseek/imprv/167102-message-card-markd…
mergify[bot] Jun 9, 2025
15eddd1
update openapi definition
yuki-takei Jun 9, 2025
8941d00
fix: replace pnpm with npx for generating OpenAPI operation IDs
yuki-takei Jun 9, 2025
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
1 change: 0 additions & 1 deletion .eslintignore

This file was deleted.

8 changes: 7 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
/**
* @type {import('eslint').Linter.Config}
*/
module.exports = {
root: true, // https://eslint.org/docs/user-guide/configuring/configuration-files#cascading-and-hierarchy
extends: [
Expand All @@ -7,6 +10,9 @@ module.exports = {
plugins: [
'regex',
],
ignorePatterns: [
'node_modules/**',
],
rules: {
'import/prefer-default-export': 'off',
'import/order': [
Expand Down Expand Up @@ -73,7 +79,7 @@ module.exports = {
overrides: [
{
// enable the rule specifically for TypeScript files
files: ['*.ts', '*.tsx'],
files: ['*.ts', '*.mts', '*.tsx'],
rules: {
'@typescript-eslint/explicit-module-boundary-types': ['error'],
},
Expand Down
6 changes: 0 additions & 6 deletions apps/app/.eslintignore

This file was deleted.

16 changes: 14 additions & 2 deletions apps/app/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
/**
* @type {import('eslint').Linter.Config}
*/
module.exports = {
extends: [
'next/core-web-vitals',
'weseek/react',
],
plugins: [
],
ignorePatterns: [
'dist/**',
'**/dist/**',
'transpiled/**',
'public/**',
'src/linter-checker/**',
'tmp/**',
'next-env.d.ts',
],
settings: {
// resolve path aliases by eslint-import-resolver-typescript
'import/resolver': {
Expand All @@ -25,7 +37,7 @@ module.exports = {
overrides: [
{
// enable the rule specifically for JavaScript files
files: ['*.js', '*.jsx'],
files: ['*.js', '*.mjs', '*.jsx'],
rules: {
// set 'warn' temporarily -- 2023.08.14 Yuki Takei
'react/prop-types': 'warn',
Expand All @@ -35,7 +47,7 @@ module.exports = {
},
{
// enable the rule specifically for TypeScript files
files: ['*.ts', '*.tsx'],
files: ['*.ts', '*.mts', '*.tsx'],
rules: {
'no-unused-vars': 'off',
// set 'warn' temporarily -- 2023.08.14 Yuki Takei
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ module.exports = {
version: pkg.version,
},
servers: [
{
url: '{server}/_api',
variables: {
server: {
default: 'https://demo.growi.org',
description: 'The base URL for the GROWI API except for the version path (/_api). This can be set to your GROWI instance URL.',
},
},
},
{
url: 'https://demo.growi.org/_api',
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ module.exports = {
version: pkg.version,
},
servers: [
{
url: '{server}/_api/v3',
variables: {
server: {
default: 'https://demo.growi.org',
description: 'The base URL for the GROWI API except for the version path (/_api/v3). This can be set to your GROWI instance URL.',
},
},
},
{
url: 'https://demo.growi.org/_api/v3',
},
Expand Down
96 changes: 96 additions & 0 deletions apps/app/bin/openapi/generate-operation-ids/cli.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
import { writeFileSync } from 'fs';

import {
beforeEach, describe, expect, it, vi,
} from 'vitest';

import { generateOperationIds } from './generate-operation-ids';

// Mock the modules
vi.mock('fs');
vi.mock('./generate-operation-ids');

const originalArgv = process.argv;

describe('cli', () => {
const mockJsonStrings = '{"test": "data"}';

beforeEach(() => {
vi.resetModules();
vi.resetAllMocks();
process.argv = [...originalArgv]; // Reset process.argv
// Mock console.error to avoid actual console output during tests
vi.spyOn(console, 'error').mockImplementation(() => {});
});

it('processes input file and writes output to specified file', async() => {
// Mock generateOperationIds to return success
vi.mocked(generateOperationIds).mockResolvedValue(mockJsonStrings);

// Mock process.argv
process.argv = ['node', 'cli.js', 'input.json', '-o', 'output.json'];

// Import the module that contains the main function
const cliModule = await import('./cli');
await cliModule.main();

// Verify generateOperationIds was called with correct arguments
expect(generateOperationIds).toHaveBeenCalledWith('input.json', { overwriteExisting: undefined });

// Verify writeFileSync was called with correct arguments
expect(writeFileSync).toHaveBeenCalledWith('output.json', mockJsonStrings);
});

it('uses input file as output when no output file is specified', async() => {
// Mock generateOperationIds to return success
vi.mocked(generateOperationIds).mockResolvedValue(mockJsonStrings);

// Mock process.argv
process.argv = ['node', 'cli.js', 'input.json'];

// Import the module that contains the main function
const cliModule = await import('./cli');
await cliModule.main();

// Verify generateOperationIds was called with correct arguments
expect(generateOperationIds).toHaveBeenCalledWith('input.json', { overwriteExisting: undefined });

// Verify writeFileSync was called with input file as output
expect(writeFileSync).toHaveBeenCalledWith('input.json', mockJsonStrings);
});

it('handles overwrite-existing option correctly', async() => {
// Mock generateOperationIds to return success
vi.mocked(generateOperationIds).mockResolvedValue(mockJsonStrings);

// Mock process.argv
process.argv = ['node', 'cli.js', 'input.json', '--overwrite-existing'];

// Import the module that contains the main function
const cliModule = await import('./cli');
await cliModule.main();

// Verify generateOperationIds was called with overwriteExisting option
expect(generateOperationIds).toHaveBeenCalledWith('input.json', { overwriteExisting: true });
});

it('handles generateOperationIds error correctly', async() => {
// Mock generateOperationIds to throw error
const error = new Error('Test error');
vi.mocked(generateOperationIds).mockRejectedValue(error);

// Mock process.argv
process.argv = ['node', 'cli.js', 'input.json'];

// Import the module that contains the main function
const cliModule = await import('./cli');
await cliModule.main();

// Verify error was logged
// eslint-disable-next-line no-console
expect(console.error).toHaveBeenCalledWith(error);

// Verify writeFileSync was not called
expect(writeFileSync).not.toHaveBeenCalled();
});
});
29 changes: 29 additions & 0 deletions apps/app/bin/openapi/generate-operation-ids/cli.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { writeFileSync } from 'fs';

import { Command } from 'commander';

import { generateOperationIds } from './generate-operation-ids';

export const main = async(): Promise<void> => {
// parse command line arguments
const program = new Command();
program
.name('generate-operation-ids')
.description('Generate operationId for OpenAPI specification')
.argument('<input-file>', 'OpenAPI specification file')
.option('-o, --out <output-file>', 'Output file (defaults to input file)')
.option('--overwrite-existing', 'Overwrite existing operationId values')
.parse();
const { out: outputFile, overwriteExisting } = program.opts();
const [inputFile] = program.args;

// eslint-disable-next-line no-console
const jsonStrings = await generateOperationIds(inputFile, { overwriteExisting }).catch(console.error);
if (jsonStrings != null) {
writeFileSync(outputFile ?? inputFile, jsonStrings);
}
};

if (import.meta.url === `file://${process.argv[1]}`) {
main();
}
Loading
Loading