@growi/pluginkit 1.2.3 → 1.2.4

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.
Files changed (23) hide show
  1. package/dist/model/growi-plugin-validation-error.cjs.map +1 -1
  2. package/dist/model/growi-plugin-validation-error.js.map +1 -1
  3. package/dist/v4/client/utils/growi-facade/growi-react.cjs.map +1 -1
  4. package/dist/v4/client/utils/growi-facade/growi-react.js.map +1 -1
  5. package/dist/v4/server/utils/common/import-package-json.cjs.map +1 -1
  6. package/dist/v4/server/utils/common/import-package-json.js.map +1 -1
  7. package/dist/v4/server/utils/common/validate-growi-plugin-directive.cjs.map +1 -1
  8. package/dist/v4/server/utils/common/validate-growi-plugin-directive.js.map +1 -1
  9. package/dist/v4/server/utils/template/get-markdown.cjs.map +1 -1
  10. package/dist/v4/server/utils/template/get-markdown.js.map +1 -1
  11. package/dist/v4/server/utils/template/get-status.cjs.map +1 -1
  12. package/dist/v4/server/utils/template/get-status.js.map +1 -1
  13. package/dist/v4/server/utils/template/scan.cjs.map +1 -1
  14. package/dist/v4/server/utils/template/scan.js.map +1 -1
  15. package/dist/v4/server/utils/template/validate-all-locales.cjs.map +1 -1
  16. package/dist/v4/server/utils/template/validate-all-locales.js.map +1 -1
  17. package/dist/v4/server/utils/template/validate-growi-plugin-directive.cjs.map +1 -1
  18. package/dist/v4/server/utils/template/validate-growi-plugin-directive.js.map +1 -1
  19. package/dist/v4/server/utils/theme/validate-growi-plugin-directive.cjs.map +1 -1
  20. package/dist/v4/server/utils/theme/validate-growi-plugin-directive.js.map +1 -1
  21. package/dist/v4/utils/template.cjs.map +1 -1
  22. package/dist/v4/utils/template.js.map +1 -1
  23. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"growi-plugin-validation-error.cjs","sources":["../../src/model/growi-plugin-validation-error.ts"],"sourcesContent":["import ExtensibleCustomError from 'extensible-custom-error';\n\nimport type { GrowiPluginValidationData } from './growi-plugin-validation-data';\n\nexport class GrowiPluginValidationError<\n E extends\n Partial<GrowiPluginValidationData> = Partial<GrowiPluginValidationData>,\n> extends ExtensibleCustomError {\n data?: E;\n\n constructor(message: string, data?: E) {\n super(message);\n this.data = data;\n }\n}\n"],"names":["GrowiPluginValidationError","ExtensibleCustomError","message","data","__publicField"],"mappings":"+RAIO,MAAMA,UAGHC,CAAsB,CAG9B,YAAYC,EAAiBC,EAAU,CACrC,MAAMD,CAAO,EAHfE,EAAA,aAIE,KAAK,KAAOD,CACd,CACF"}
1
+ {"version":3,"file":"growi-plugin-validation-error.cjs","sources":["../../src/model/growi-plugin-validation-error.ts"],"sourcesContent":["import ExtensibleCustomError from 'extensible-custom-error';\n\nimport type { GrowiPluginValidationData } from './growi-plugin-validation-data';\n\nexport class GrowiPluginValidationError<\n E extends\n Partial<GrowiPluginValidationData> = Partial<GrowiPluginValidationData>,\n> extends ExtensibleCustomError {\n data?: E;\n\n constructor(message: string, data?: E) {\n super(message);\n this.data = data;\n }\n}\n"],"names":["GrowiPluginValidationError","ExtensibleCustomError","message","data","__publicField"],"mappings":"+RAIO,MAAMA,UAGHC,CAAsB,CAG9B,YAAYC,EAAiBC,EAAU,CACrC,MAAMD,CAAO,EAHfE,EAAA,aAIE,KAAK,KAAOD,CAAA,CAEhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"growi-plugin-validation-error.js","sources":["../../src/model/growi-plugin-validation-error.ts"],"sourcesContent":["import ExtensibleCustomError from 'extensible-custom-error';\n\nimport type { GrowiPluginValidationData } from './growi-plugin-validation-data';\n\nexport class GrowiPluginValidationError<\n E extends\n Partial<GrowiPluginValidationData> = Partial<GrowiPluginValidationData>,\n> extends ExtensibleCustomError {\n data?: E;\n\n constructor(message: string, data?: E) {\n super(message);\n this.data = data;\n }\n}\n"],"names":["GrowiPluginValidationError","ExtensibleCustomError","message","data","__publicField"],"mappings":";;;;AAIO,MAAMA,UAGHC,EAAsB;AAAA,EAG9B,YAAYC,GAAiBC,GAAU;AACrC,UAAMD,CAAO;AAHf,IAAAE,EAAA;AAIE,SAAK,OAAOD;AAAA,EACd;AACF;"}
1
+ {"version":3,"file":"growi-plugin-validation-error.js","sources":["../../src/model/growi-plugin-validation-error.ts"],"sourcesContent":["import ExtensibleCustomError from 'extensible-custom-error';\n\nimport type { GrowiPluginValidationData } from './growi-plugin-validation-data';\n\nexport class GrowiPluginValidationError<\n E extends\n Partial<GrowiPluginValidationData> = Partial<GrowiPluginValidationData>,\n> extends ExtensibleCustomError {\n data?: E;\n\n constructor(message: string, data?: E) {\n super(message);\n this.data = data;\n }\n}\n"],"names":["GrowiPluginValidationError","ExtensibleCustomError","message","data","__publicField"],"mappings":";;;;AAIO,MAAMA,UAGHC,EAAsB;AAAA,EAG9B,YAAYC,GAAiBC,GAAU;AACrC,UAAMD,CAAO;AAHf,IAAAE,EAAA;AAIE,SAAK,OAAOD;AAAA,EAAA;AAEhB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"growi-react.cjs","sources":["../../../../../src/v4/client/utils/growi-facade/growi-react.ts"],"sourcesContent":["import type React from 'react';\nimport type { GrowiFacade } from '@growi/core';\n\ndeclare global {\n interface Window {\n growiFacade: GrowiFacade;\n }\n}\n\n/**\n * Retrieves the React instance that this package should use.\n *\n * - **Production Mode**: Returns the React instance from `window.growiFacade.react`\n * to ensure a single shared React instance across the app.\n * - **Development Mode**: Returns the React instance passed as an argument,\n * which allows local development and hot reload without issues.\n *\n * @param react - The React instance to use during development\n * @returns A React instance to be used in the current environment\n *\n * @remarks\n * Using multiple React instances in a single app can cause serious issues,\n * especially with features like Hooks, which rely on a consistent internal state.\n * This function ensures that only one React instance is used in production\n * to avoid such problems.\n */\nexport const growiReact = (react: typeof React): typeof React => {\n if (process.env.NODE_ENV === 'production') {\n return window.growiFacade.react as typeof React;\n }\n return react as typeof React;\n};\n"],"names":["growiReact","react"],"mappings":"gFA0BO,MAAMA,EAAcC,GACrB,QAAQ,IAAI,WAAa,aACpB,OAAO,YAAY,MAErBA"}
1
+ {"version":3,"file":"growi-react.cjs","sources":["../../../../../src/v4/client/utils/growi-facade/growi-react.ts"],"sourcesContent":["import type React from 'react';\nimport type { GrowiFacade } from '@growi/core';\n\ndeclare global {\n interface Window {\n growiFacade: GrowiFacade;\n }\n}\n\n/**\n * Retrieves the React instance that this package should use.\n *\n * - **Production Mode**: Returns the React instance from `window.growiFacade.react`\n * to ensure a single shared React instance across the app.\n * - **Development Mode**: Returns the React instance passed as an argument,\n * which allows local development and hot reload without issues.\n *\n * @param react - The React instance to use during development\n * @returns A React instance to be used in the current environment\n *\n * @remarks\n * Using multiple React instances in a single app can cause serious issues,\n * especially with features like Hooks, which rely on a consistent internal state.\n * This function ensures that only one React instance is used in production\n * to avoid such problems.\n */\nexport const growiReact = (react: typeof React): typeof React => {\n if (process.env.NODE_ENV === 'production') {\n return window.growiFacade.react as typeof React;\n }\n return react as typeof React;\n};\n"],"names":["growiReact","react"],"mappings":"gFA0Ba,MAAAA,EAAcC,GACrB,QAAQ,IAAI,WAAa,aACpB,OAAO,YAAY,MAErBA"}
@@ -1 +1 @@
1
- {"version":3,"file":"growi-react.js","sources":["../../../../../src/v4/client/utils/growi-facade/growi-react.ts"],"sourcesContent":["import type React from 'react';\nimport type { GrowiFacade } from '@growi/core';\n\ndeclare global {\n interface Window {\n growiFacade: GrowiFacade;\n }\n}\n\n/**\n * Retrieves the React instance that this package should use.\n *\n * - **Production Mode**: Returns the React instance from `window.growiFacade.react`\n * to ensure a single shared React instance across the app.\n * - **Development Mode**: Returns the React instance passed as an argument,\n * which allows local development and hot reload without issues.\n *\n * @param react - The React instance to use during development\n * @returns A React instance to be used in the current environment\n *\n * @remarks\n * Using multiple React instances in a single app can cause serious issues,\n * especially with features like Hooks, which rely on a consistent internal state.\n * This function ensures that only one React instance is used in production\n * to avoid such problems.\n */\nexport const growiReact = (react: typeof React): typeof React => {\n if (process.env.NODE_ENV === 'production') {\n return window.growiFacade.react as typeof React;\n }\n return react as typeof React;\n};\n"],"names":["growiReact","react"],"mappings":"AA0BO,MAAMA,IAAa,CAACC,MACrB,QAAQ,IAAI,aAAa,eACpB,OAAO,YAAY,QAErBA;"}
1
+ {"version":3,"file":"growi-react.js","sources":["../../../../../src/v4/client/utils/growi-facade/growi-react.ts"],"sourcesContent":["import type React from 'react';\nimport type { GrowiFacade } from '@growi/core';\n\ndeclare global {\n interface Window {\n growiFacade: GrowiFacade;\n }\n}\n\n/**\n * Retrieves the React instance that this package should use.\n *\n * - **Production Mode**: Returns the React instance from `window.growiFacade.react`\n * to ensure a single shared React instance across the app.\n * - **Development Mode**: Returns the React instance passed as an argument,\n * which allows local development and hot reload without issues.\n *\n * @param react - The React instance to use during development\n * @returns A React instance to be used in the current environment\n *\n * @remarks\n * Using multiple React instances in a single app can cause serious issues,\n * especially with features like Hooks, which rely on a consistent internal state.\n * This function ensures that only one React instance is used in production\n * to avoid such problems.\n */\nexport const growiReact = (react: typeof React): typeof React => {\n if (process.env.NODE_ENV === 'production') {\n return window.growiFacade.react as typeof React;\n }\n return react as typeof React;\n};\n"],"names":["growiReact","react"],"mappings":"AA0Ba,MAAAA,IAAa,CAACC,MACrB,QAAQ,IAAI,aAAa,eACpB,OAAO,YAAY,QAErBA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"import-package-json.cjs","sources":["../../../../../src/v4/server/utils/common/import-package-json.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\nimport path from 'node:path';\n\nimport type { GrowiPluginPackageData } from '../../../../model';\n\nexport const importPackageJson = (\n projectDirRoot: string,\n): GrowiPluginPackageData => {\n const packageJsonUrl = path.resolve(projectDirRoot, 'package.json');\n return JSON.parse(readFileSync(packageJsonUrl, 'utf-8'));\n};\n"],"names":["importPackageJson","projectDirRoot","packageJsonUrl","path","readFileSync"],"mappings":"kIAKaA,EACXC,GAC2B,CAC3B,MAAMC,EAAiBC,EAAK,QAAQF,EAAgB,cAAc,EAClE,OAAO,KAAK,MAAMG,EAAAA,aAAaF,EAAgB,OAAO,CAAC,CACzD"}
1
+ {"version":3,"file":"import-package-json.cjs","sources":["../../../../../src/v4/server/utils/common/import-package-json.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\nimport path from 'node:path';\n\nimport type { GrowiPluginPackageData } from '../../../../model';\n\nexport const importPackageJson = (\n projectDirRoot: string,\n): GrowiPluginPackageData => {\n const packageJsonUrl = path.resolve(projectDirRoot, 'package.json');\n return JSON.parse(readFileSync(packageJsonUrl, 'utf-8'));\n};\n"],"names":["importPackageJson","projectDirRoot","packageJsonUrl","path","readFileSync"],"mappings":"kIAKaA,EACXC,GAC2B,CAC3B,MAAMC,EAAiBC,EAAK,QAAQF,EAAgB,cAAc,EAClE,OAAO,KAAK,MAAMG,EAAa,aAAAF,EAAgB,OAAO,CAAC,CACzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"import-package-json.js","sources":["../../../../../src/v4/server/utils/common/import-package-json.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\nimport path from 'node:path';\n\nimport type { GrowiPluginPackageData } from '../../../../model';\n\nexport const importPackageJson = (\n projectDirRoot: string,\n): GrowiPluginPackageData => {\n const packageJsonUrl = path.resolve(projectDirRoot, 'package.json');\n return JSON.parse(readFileSync(packageJsonUrl, 'utf-8'));\n};\n"],"names":["importPackageJson","projectDirRoot","packageJsonUrl","path","readFileSync"],"mappings":";;AAKO,MAAMA,IAAoB,CAC/BC,MAC2B;AAC3B,QAAMC,IAAiBC,EAAK,QAAQF,GAAgB,cAAc;AAClE,SAAO,KAAK,MAAMG,EAAaF,GAAgB,OAAO,CAAC;AACzD;"}
1
+ {"version":3,"file":"import-package-json.js","sources":["../../../../../src/v4/server/utils/common/import-package-json.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\nimport path from 'node:path';\n\nimport type { GrowiPluginPackageData } from '../../../../model';\n\nexport const importPackageJson = (\n projectDirRoot: string,\n): GrowiPluginPackageData => {\n const packageJsonUrl = path.resolve(projectDirRoot, 'package.json');\n return JSON.parse(readFileSync(packageJsonUrl, 'utf-8'));\n};\n"],"names":["importPackageJson","projectDirRoot","packageJsonUrl","path","readFileSync"],"mappings":";;AAKa,MAAAA,IAAoB,CAC/BC,MAC2B;AAC3B,QAAMC,IAAiBC,EAAK,QAAQF,GAAgB,cAAc;AAClE,SAAO,KAAK,MAAMG,EAAaF,GAAgB,OAAO,CAAC;AACzD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-growi-plugin-directive.cjs","sources":["../../../../../src/v4/server/utils/common/validate-growi-plugin-directive.ts"],"sourcesContent":["import type { GrowiPluginType } from '@growi/core';\n\nimport {\n type GrowiPluginValidationData,\n GrowiPluginValidationError,\n} from '../../../../model';\nimport { importPackageJson } from './import-package-json';\n\nexport const validateGrowiDirective = (\n projectDirRoot: string,\n expectedPluginType?: GrowiPluginType,\n): GrowiPluginValidationData => {\n const pkg = importPackageJson(projectDirRoot);\n\n const { growiPlugin } = pkg;\n\n const data: GrowiPluginValidationData = {\n projectDirRoot,\n schemaVersion: Number.NaN,\n growiPlugin,\n };\n\n if (growiPlugin == null) {\n throw new GrowiPluginValidationError(\n \"The package.json does not have 'growiPlugin' directive.\",\n data,\n );\n }\n\n // schema version checking\n const schemaVersion = Number(growiPlugin.schemaVersion);\n data.schemaVersion = schemaVersion;\n if (Number.isNaN(schemaVersion) || schemaVersion < 4) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive must have a valid 'schemaVersion' directive.\",\n data,\n );\n }\n\n const types: GrowiPluginType[] = growiPlugin.types;\n data.actualPluginTypes = types;\n if (types == null) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive does not have 'types' directive.\",\n data,\n );\n }\n\n // type checking\n if (expectedPluginType != null) {\n data.expectedPluginType = expectedPluginType;\n\n if (!types.includes(expectedPluginType)) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive does not have expected plugin type in 'types' directive.\",\n data,\n );\n }\n }\n\n return data;\n};\n"],"names":["validateGrowiDirective","projectDirRoot","expectedPluginType","pkg","importPackageJson","growiPlugin","data","GrowiPluginValidationError","schemaVersion","types"],"mappings":"8LAQaA,EAAyB,CACpCC,EACAC,IAC8B,CAC9B,MAAMC,EAAMC,EAAAA,kBAAkBH,CAAc,EAEtC,CAAE,YAAAI,GAAgBF,EAElBG,EAAkC,CACtC,eAAAL,EACA,cAAe,OAAO,IACtB,YAAAI,CAAA,EAGF,GAAIA,GAAe,KACjB,MAAM,IAAIE,EAAAA,2BACR,0DACAD,CAAA,EAKJ,MAAME,EAAgB,OAAOH,EAAY,aAAa,EAEtD,GADAC,EAAK,cAAgBE,EACjB,OAAO,MAAMA,CAAa,GAAKA,EAAgB,EACjD,MAAM,IAAID,EAAAA,2BACR,yEACAD,CAAA,EAIJ,MAAMG,EAA2BJ,EAAY,MAE7C,GADAC,EAAK,kBAAoBG,EACrBA,GAAS,KACX,MAAM,IAAIF,EAAAA,2BACR,6DACAD,CAAA,EAKJ,GAAIJ,GAAsB,OACxBI,EAAK,mBAAqBJ,EAEtB,CAACO,EAAM,SAASP,CAAkB,GACpC,MAAM,IAAIK,EAAAA,2BACR,qFACAD,CAAA,EAKN,OAAOA,CACT"}
1
+ {"version":3,"file":"validate-growi-plugin-directive.cjs","sources":["../../../../../src/v4/server/utils/common/validate-growi-plugin-directive.ts"],"sourcesContent":["import type { GrowiPluginType } from '@growi/core';\n\nimport {\n type GrowiPluginValidationData,\n GrowiPluginValidationError,\n} from '../../../../model';\nimport { importPackageJson } from './import-package-json';\n\nexport const validateGrowiDirective = (\n projectDirRoot: string,\n expectedPluginType?: GrowiPluginType,\n): GrowiPluginValidationData => {\n const pkg = importPackageJson(projectDirRoot);\n\n const { growiPlugin } = pkg;\n\n const data: GrowiPluginValidationData = {\n projectDirRoot,\n schemaVersion: Number.NaN,\n growiPlugin,\n };\n\n if (growiPlugin == null) {\n throw new GrowiPluginValidationError(\n \"The package.json does not have 'growiPlugin' directive.\",\n data,\n );\n }\n\n // schema version checking\n const schemaVersion = Number(growiPlugin.schemaVersion);\n data.schemaVersion = schemaVersion;\n if (Number.isNaN(schemaVersion) || schemaVersion < 4) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive must have a valid 'schemaVersion' directive.\",\n data,\n );\n }\n\n const types: GrowiPluginType[] = growiPlugin.types;\n data.actualPluginTypes = types;\n if (types == null) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive does not have 'types' directive.\",\n data,\n );\n }\n\n // type checking\n if (expectedPluginType != null) {\n data.expectedPluginType = expectedPluginType;\n\n if (!types.includes(expectedPluginType)) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive does not have expected plugin type in 'types' directive.\",\n data,\n );\n }\n }\n\n return data;\n};\n"],"names":["validateGrowiDirective","projectDirRoot","expectedPluginType","pkg","importPackageJson","growiPlugin","data","GrowiPluginValidationError","schemaVersion","types"],"mappings":"8LAQaA,EAAyB,CACpCC,EACAC,IAC8B,CACxB,MAAAC,EAAMC,oBAAkBH,CAAc,EAEtC,CAAE,YAAAI,GAAgBF,EAElBG,EAAkC,CACtC,eAAAL,EACA,cAAe,OAAO,IACtB,YAAAI,CACF,EAEA,GAAIA,GAAe,KACjB,MAAM,IAAIE,EAAA,2BACR,0DACAD,CACF,EAII,MAAAE,EAAgB,OAAOH,EAAY,aAAa,EAEtD,GADAC,EAAK,cAAgBE,EACjB,OAAO,MAAMA,CAAa,GAAKA,EAAgB,EACjD,MAAM,IAAID,EAAA,2BACR,yEACAD,CACF,EAGF,MAAMG,EAA2BJ,EAAY,MAE7C,GADAC,EAAK,kBAAoBG,EACrBA,GAAS,KACX,MAAM,IAAIF,EAAA,2BACR,6DACAD,CACF,EAIF,GAAIJ,GAAsB,OACxBI,EAAK,mBAAqBJ,EAEtB,CAACO,EAAM,SAASP,CAAkB,GACpC,MAAM,IAAIK,EAAA,2BACR,qFACAD,CACF,EAIG,OAAAA,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-growi-plugin-directive.js","sources":["../../../../../src/v4/server/utils/common/validate-growi-plugin-directive.ts"],"sourcesContent":["import type { GrowiPluginType } from '@growi/core';\n\nimport {\n type GrowiPluginValidationData,\n GrowiPluginValidationError,\n} from '../../../../model';\nimport { importPackageJson } from './import-package-json';\n\nexport const validateGrowiDirective = (\n projectDirRoot: string,\n expectedPluginType?: GrowiPluginType,\n): GrowiPluginValidationData => {\n const pkg = importPackageJson(projectDirRoot);\n\n const { growiPlugin } = pkg;\n\n const data: GrowiPluginValidationData = {\n projectDirRoot,\n schemaVersion: Number.NaN,\n growiPlugin,\n };\n\n if (growiPlugin == null) {\n throw new GrowiPluginValidationError(\n \"The package.json does not have 'growiPlugin' directive.\",\n data,\n );\n }\n\n // schema version checking\n const schemaVersion = Number(growiPlugin.schemaVersion);\n data.schemaVersion = schemaVersion;\n if (Number.isNaN(schemaVersion) || schemaVersion < 4) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive must have a valid 'schemaVersion' directive.\",\n data,\n );\n }\n\n const types: GrowiPluginType[] = growiPlugin.types;\n data.actualPluginTypes = types;\n if (types == null) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive does not have 'types' directive.\",\n data,\n );\n }\n\n // type checking\n if (expectedPluginType != null) {\n data.expectedPluginType = expectedPluginType;\n\n if (!types.includes(expectedPluginType)) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive does not have expected plugin type in 'types' directive.\",\n data,\n );\n }\n }\n\n return data;\n};\n"],"names":["validateGrowiDirective","projectDirRoot","expectedPluginType","pkg","importPackageJson","growiPlugin","data","GrowiPluginValidationError","schemaVersion","types"],"mappings":";;AAQO,MAAMA,IAAyB,CACpCC,GACAC,MAC8B;AAC9B,QAAMC,IAAMC,EAAkBH,CAAc,GAEtC,EAAE,aAAAI,MAAgBF,GAElBG,IAAkC;AAAA,IACtC,gBAAAL;AAAA,IACA,eAAe,OAAO;AAAA,IACtB,aAAAI;AAAA,EAAA;AAGF,MAAIA,KAAe;AACjB,UAAM,IAAIE;AAAA,MACR;AAAA,MACAD;AAAA,IAAA;AAKJ,QAAME,IAAgB,OAAOH,EAAY,aAAa;AAEtD,MADAC,EAAK,gBAAgBE,GACjB,OAAO,MAAMA,CAAa,KAAKA,IAAgB;AACjD,UAAM,IAAID;AAAA,MACR;AAAA,MACAD;AAAA,IAAA;AAIJ,QAAMG,IAA2BJ,EAAY;AAE7C,MADAC,EAAK,oBAAoBG,GACrBA,KAAS;AACX,UAAM,IAAIF;AAAA,MACR;AAAA,MACAD;AAAA,IAAA;AAKJ,MAAIJ,KAAsB,SACxBI,EAAK,qBAAqBJ,GAEtB,CAACO,EAAM,SAASP,CAAkB;AACpC,UAAM,IAAIK;AAAA,MACR;AAAA,MACAD;AAAA,IAAA;AAKN,SAAOA;AACT;"}
1
+ {"version":3,"file":"validate-growi-plugin-directive.js","sources":["../../../../../src/v4/server/utils/common/validate-growi-plugin-directive.ts"],"sourcesContent":["import type { GrowiPluginType } from '@growi/core';\n\nimport {\n type GrowiPluginValidationData,\n GrowiPluginValidationError,\n} from '../../../../model';\nimport { importPackageJson } from './import-package-json';\n\nexport const validateGrowiDirective = (\n projectDirRoot: string,\n expectedPluginType?: GrowiPluginType,\n): GrowiPluginValidationData => {\n const pkg = importPackageJson(projectDirRoot);\n\n const { growiPlugin } = pkg;\n\n const data: GrowiPluginValidationData = {\n projectDirRoot,\n schemaVersion: Number.NaN,\n growiPlugin,\n };\n\n if (growiPlugin == null) {\n throw new GrowiPluginValidationError(\n \"The package.json does not have 'growiPlugin' directive.\",\n data,\n );\n }\n\n // schema version checking\n const schemaVersion = Number(growiPlugin.schemaVersion);\n data.schemaVersion = schemaVersion;\n if (Number.isNaN(schemaVersion) || schemaVersion < 4) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive must have a valid 'schemaVersion' directive.\",\n data,\n );\n }\n\n const types: GrowiPluginType[] = growiPlugin.types;\n data.actualPluginTypes = types;\n if (types == null) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive does not have 'types' directive.\",\n data,\n );\n }\n\n // type checking\n if (expectedPluginType != null) {\n data.expectedPluginType = expectedPluginType;\n\n if (!types.includes(expectedPluginType)) {\n throw new GrowiPluginValidationError(\n \"The growiPlugin directive does not have expected plugin type in 'types' directive.\",\n data,\n );\n }\n }\n\n return data;\n};\n"],"names":["validateGrowiDirective","projectDirRoot","expectedPluginType","pkg","importPackageJson","growiPlugin","data","GrowiPluginValidationError","schemaVersion","types"],"mappings":";;AAQa,MAAAA,IAAyB,CACpCC,GACAC,MAC8B;AACxB,QAAAC,IAAMC,EAAkBH,CAAc,GAEtC,EAAE,aAAAI,MAAgBF,GAElBG,IAAkC;AAAA,IACtC,gBAAAL;AAAA,IACA,eAAe,OAAO;AAAA,IACtB,aAAAI;AAAA,EACF;AAEA,MAAIA,KAAe;AACjB,UAAM,IAAIE;AAAA,MACR;AAAA,MACAD;AAAA,IACF;AAII,QAAAE,IAAgB,OAAOH,EAAY,aAAa;AAEtD,MADAC,EAAK,gBAAgBE,GACjB,OAAO,MAAMA,CAAa,KAAKA,IAAgB;AACjD,UAAM,IAAID;AAAA,MACR;AAAA,MACAD;AAAA,IACF;AAGF,QAAMG,IAA2BJ,EAAY;AAE7C,MADAC,EAAK,oBAAoBG,GACrBA,KAAS;AACX,UAAM,IAAIF;AAAA,MACR;AAAA,MACAD;AAAA,IACF;AAIF,MAAIJ,KAAsB,SACxBI,EAAK,qBAAqBJ,GAEtB,CAACO,EAAM,SAASP,CAAkB;AACpC,UAAM,IAAIK;AAAA,MACR;AAAA,MACAD;AAAA,IACF;AAIG,SAAAA;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-markdown.cjs","sources":["../../../../../src/v4/server/utils/template/get-markdown.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { getStatus } from './get-status';\n\nexport const getMarkdown = async (\n projectDirRoot: string,\n templateId: string,\n locale: string,\n): Promise<string> => {\n const tplDir = path.resolve(projectDirRoot, 'dist', templateId, locale);\n\n const { isTemplateExists } = await getStatus(tplDir);\n\n if (!isTemplateExists) throw new Error(\"'template.md does not exist.\");\n\n const markdownPath = path.resolve(tplDir, 'template.md');\n return fs.readFileSync(markdownPath, { encoding: 'utf-8' });\n};\n"],"names":["getMarkdown","projectDirRoot","templateId","locale","tplDir","path","isTemplateExists","getStatus","markdownPath","fs"],"mappings":"gKAKaA,EAAc,MACzBC,EACAC,EACAC,IACoB,CACpB,MAAMC,EAASC,EAAK,QAAQJ,EAAgB,OAAQC,EAAYC,CAAM,EAEhE,CAAE,iBAAAG,CAAA,EAAqB,MAAMC,EAAAA,UAAUH,CAAM,EAEnD,GAAI,CAACE,EAAkB,MAAM,IAAI,MAAM,8BAA8B,EAErE,MAAME,EAAeH,EAAK,QAAQD,EAAQ,aAAa,EACvD,OAAOK,EAAG,aAAaD,EAAc,CAAE,SAAU,QAAS,CAC5D"}
1
+ {"version":3,"file":"get-markdown.cjs","sources":["../../../../../src/v4/server/utils/template/get-markdown.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { getStatus } from './get-status';\n\nexport const getMarkdown = async (\n projectDirRoot: string,\n templateId: string,\n locale: string,\n): Promise<string> => {\n const tplDir = path.resolve(projectDirRoot, 'dist', templateId, locale);\n\n const { isTemplateExists } = await getStatus(tplDir);\n\n if (!isTemplateExists) throw new Error(\"'template.md does not exist.\");\n\n const markdownPath = path.resolve(tplDir, 'template.md');\n return fs.readFileSync(markdownPath, { encoding: 'utf-8' });\n};\n"],"names":["getMarkdown","projectDirRoot","templateId","locale","tplDir","path","isTemplateExists","getStatus","markdownPath","fs"],"mappings":"gKAKaA,EAAc,MACzBC,EACAC,EACAC,IACoB,CACpB,MAAMC,EAASC,EAAK,QAAQJ,EAAgB,OAAQC,EAAYC,CAAM,EAEhE,CAAE,iBAAAG,CAAA,EAAqB,MAAMC,EAAAA,UAAUH,CAAM,EAEnD,GAAI,CAACE,EAAwB,MAAA,IAAI,MAAM,8BAA8B,EAErE,MAAME,EAAeH,EAAK,QAAQD,EAAQ,aAAa,EACvD,OAAOK,EAAG,aAAaD,EAAc,CAAE,SAAU,QAAS,CAC5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-markdown.js","sources":["../../../../../src/v4/server/utils/template/get-markdown.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { getStatus } from './get-status';\n\nexport const getMarkdown = async (\n projectDirRoot: string,\n templateId: string,\n locale: string,\n): Promise<string> => {\n const tplDir = path.resolve(projectDirRoot, 'dist', templateId, locale);\n\n const { isTemplateExists } = await getStatus(tplDir);\n\n if (!isTemplateExists) throw new Error(\"'template.md does not exist.\");\n\n const markdownPath = path.resolve(tplDir, 'template.md');\n return fs.readFileSync(markdownPath, { encoding: 'utf-8' });\n};\n"],"names":["getMarkdown","projectDirRoot","templateId","locale","tplDir","path","isTemplateExists","getStatus","markdownPath","fs"],"mappings":";;;AAKO,MAAMA,IAAc,OACzBC,GACAC,GACAC,MACoB;AACpB,QAAMC,IAASC,EAAK,QAAQJ,GAAgB,QAAQC,GAAYC,CAAM,GAEhE,EAAE,kBAAAG,EAAA,IAAqB,MAAMC,EAAUH,CAAM;AAEnD,MAAI,CAACE,EAAkB,OAAM,IAAI,MAAM,8BAA8B;AAErE,QAAME,IAAeH,EAAK,QAAQD,GAAQ,aAAa;AACvD,SAAOK,EAAG,aAAaD,GAAc,EAAE,UAAU,SAAS;AAC5D;"}
1
+ {"version":3,"file":"get-markdown.js","sources":["../../../../../src/v4/server/utils/template/get-markdown.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { getStatus } from './get-status';\n\nexport const getMarkdown = async (\n projectDirRoot: string,\n templateId: string,\n locale: string,\n): Promise<string> => {\n const tplDir = path.resolve(projectDirRoot, 'dist', templateId, locale);\n\n const { isTemplateExists } = await getStatus(tplDir);\n\n if (!isTemplateExists) throw new Error(\"'template.md does not exist.\");\n\n const markdownPath = path.resolve(tplDir, 'template.md');\n return fs.readFileSync(markdownPath, { encoding: 'utf-8' });\n};\n"],"names":["getMarkdown","projectDirRoot","templateId","locale","tplDir","path","isTemplateExists","getStatus","markdownPath","fs"],"mappings":";;;AAKO,MAAMA,IAAc,OACzBC,GACAC,GACAC,MACoB;AACpB,QAAMC,IAASC,EAAK,QAAQJ,GAAgB,QAAQC,GAAYC,CAAM,GAEhE,EAAE,kBAAAG,EAAA,IAAqB,MAAMC,EAAUH,CAAM;AAEnD,MAAI,CAACE,EAAwB,OAAA,IAAI,MAAM,8BAA8B;AAErE,QAAME,IAAeH,EAAK,QAAQD,GAAQ,aAAa;AACvD,SAAOK,EAAG,aAAaD,GAAc,EAAE,UAAU,SAAS;AAC5D;"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-status.cjs","sources":["../../../../../src/v4/server/utils/template/get-status.ts"],"sourcesContent":["import fs, { readFileSync } from 'node:fs';\nimport path from 'node:path';\nimport { promisify } from 'node:util';\n\nconst statAsync = promisify(fs.stat);\n\ntype TemplateDirStatus = {\n isTemplateExists: boolean;\n meta?: { [key: string]: string };\n};\n\nexport async function getStatus(tplDir: string): Promise<TemplateDirStatus> {\n const markdownPath = path.resolve(tplDir, 'template.md');\n const statForMarkdown = await statAsync(markdownPath);\n const isTemplateExists = statForMarkdown.isFile();\n\n const metaDataPath = path.resolve(tplDir, 'meta.json');\n const statForMetaDataFile = await statAsync(metaDataPath);\n const isMetaDataFileExists = statForMetaDataFile.isFile();\n\n const result: TemplateDirStatus = {\n isTemplateExists,\n meta: isMetaDataFileExists\n ? JSON.parse(readFileSync(metaDataPath, 'utf-8'))\n : undefined,\n };\n\n return result;\n}\n"],"names":["statAsync","promisify","fs","getStatus","tplDir","markdownPath","path","isTemplateExists","metaDataPath","isMetaDataFileExists","readFileSync"],"mappings":"yJAIMA,EAAYC,EAAAA,UAAUC,EAAG,IAAI,EAOnC,eAAsBC,EAAUC,EAA4C,CAC1E,MAAMC,EAAeC,EAAK,QAAQF,EAAQ,aAAa,EAEjDG,GADkB,MAAMP,EAAUK,CAAY,GACX,OAAA,EAEnCG,EAAeF,EAAK,QAAQF,EAAQ,WAAW,EAE/CK,GADsB,MAAMT,EAAUQ,CAAY,GACP,OAAA,EASjD,MAPkC,CAChC,iBAAAD,EACA,KAAME,EACF,KAAK,MAAMC,EAAAA,aAAaF,EAAc,OAAO,CAAC,EAC9C,MAAA,CAIR"}
1
+ {"version":3,"file":"get-status.cjs","sources":["../../../../../src/v4/server/utils/template/get-status.ts"],"sourcesContent":["import fs, { readFileSync } from 'node:fs';\nimport path from 'node:path';\nimport { promisify } from 'node:util';\n\nconst statAsync = promisify(fs.stat);\n\ntype TemplateDirStatus = {\n isTemplateExists: boolean;\n meta?: { [key: string]: string };\n};\n\nexport async function getStatus(tplDir: string): Promise<TemplateDirStatus> {\n const markdownPath = path.resolve(tplDir, 'template.md');\n const statForMarkdown = await statAsync(markdownPath);\n const isTemplateExists = statForMarkdown.isFile();\n\n const metaDataPath = path.resolve(tplDir, 'meta.json');\n const statForMetaDataFile = await statAsync(metaDataPath);\n const isMetaDataFileExists = statForMetaDataFile.isFile();\n\n const result: TemplateDirStatus = {\n isTemplateExists,\n meta: isMetaDataFileExists\n ? JSON.parse(readFileSync(metaDataPath, 'utf-8'))\n : undefined,\n };\n\n return result;\n}\n"],"names":["statAsync","promisify","fs","getStatus","tplDir","markdownPath","path","isTemplateExists","metaDataPath","isMetaDataFileExists","readFileSync"],"mappings":"yJAIMA,EAAYC,EAAAA,UAAUC,EAAG,IAAI,EAOnC,eAAsBC,EAAUC,EAA4C,CAC1E,MAAMC,EAAeC,EAAK,QAAQF,EAAQ,aAAa,EAEjDG,GADkB,MAAMP,EAAUK,CAAY,GACX,OAAO,EAE1CG,EAAeF,EAAK,QAAQF,EAAQ,WAAW,EAE/CK,GADsB,MAAMT,EAAUQ,CAAY,GACP,OAAO,EASjD,MAP2B,CAChC,iBAAAD,EACA,KAAME,EACF,KAAK,MAAMC,EAAAA,aAAaF,EAAc,OAAO,CAAC,EAC9C,MACN,CAGF"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-status.js","sources":["../../../../../src/v4/server/utils/template/get-status.ts"],"sourcesContent":["import fs, { readFileSync } from 'node:fs';\nimport path from 'node:path';\nimport { promisify } from 'node:util';\n\nconst statAsync = promisify(fs.stat);\n\ntype TemplateDirStatus = {\n isTemplateExists: boolean;\n meta?: { [key: string]: string };\n};\n\nexport async function getStatus(tplDir: string): Promise<TemplateDirStatus> {\n const markdownPath = path.resolve(tplDir, 'template.md');\n const statForMarkdown = await statAsync(markdownPath);\n const isTemplateExists = statForMarkdown.isFile();\n\n const metaDataPath = path.resolve(tplDir, 'meta.json');\n const statForMetaDataFile = await statAsync(metaDataPath);\n const isMetaDataFileExists = statForMetaDataFile.isFile();\n\n const result: TemplateDirStatus = {\n isTemplateExists,\n meta: isMetaDataFileExists\n ? JSON.parse(readFileSync(metaDataPath, 'utf-8'))\n : undefined,\n };\n\n return result;\n}\n"],"names":["statAsync","promisify","fs","getStatus","tplDir","markdownPath","path","isTemplateExists","metaDataPath","isMetaDataFileExists","readFileSync"],"mappings":";;;AAIA,MAAMA,IAAYC,EAAUC,EAAG,IAAI;AAOnC,eAAsBC,EAAUC,GAA4C;AAC1E,QAAMC,IAAeC,EAAK,QAAQF,GAAQ,aAAa,GAEjDG,KADkB,MAAMP,EAAUK,CAAY,GACX,OAAA,GAEnCG,IAAeF,EAAK,QAAQF,GAAQ,WAAW,GAE/CK,KADsB,MAAMT,EAAUQ,CAAY,GACP,OAAA;AASjD,SAPkC;AAAA,IAChC,kBAAAD;AAAA,IACA,MAAME,IACF,KAAK,MAAMC,EAAaF,GAAc,OAAO,CAAC,IAC9C;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"get-status.js","sources":["../../../../../src/v4/server/utils/template/get-status.ts"],"sourcesContent":["import fs, { readFileSync } from 'node:fs';\nimport path from 'node:path';\nimport { promisify } from 'node:util';\n\nconst statAsync = promisify(fs.stat);\n\ntype TemplateDirStatus = {\n isTemplateExists: boolean;\n meta?: { [key: string]: string };\n};\n\nexport async function getStatus(tplDir: string): Promise<TemplateDirStatus> {\n const markdownPath = path.resolve(tplDir, 'template.md');\n const statForMarkdown = await statAsync(markdownPath);\n const isTemplateExists = statForMarkdown.isFile();\n\n const metaDataPath = path.resolve(tplDir, 'meta.json');\n const statForMetaDataFile = await statAsync(metaDataPath);\n const isMetaDataFileExists = statForMetaDataFile.isFile();\n\n const result: TemplateDirStatus = {\n isTemplateExists,\n meta: isMetaDataFileExists\n ? JSON.parse(readFileSync(metaDataPath, 'utf-8'))\n : undefined,\n };\n\n return result;\n}\n"],"names":["statAsync","promisify","fs","getStatus","tplDir","markdownPath","path","isTemplateExists","metaDataPath","isMetaDataFileExists","readFileSync"],"mappings":";;;AAIA,MAAMA,IAAYC,EAAUC,EAAG,IAAI;AAOnC,eAAsBC,EAAUC,GAA4C;AAC1E,QAAMC,IAAeC,EAAK,QAAQF,GAAQ,aAAa,GAEjDG,KADkB,MAAMP,EAAUK,CAAY,GACX,OAAO,GAE1CG,IAAeF,EAAK,QAAQF,GAAQ,WAAW,GAE/CK,KADsB,MAAMT,EAAUQ,CAAY,GACP,OAAO;AASjD,SAP2B;AAAA,IAChC,kBAAAD;AAAA,IACA,MAAME,IACF,KAAK,MAAMC,EAAaF,GAAc,OAAO,CAAC,IAC9C;AAAA,EACN;AAGF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"scan.cjs","sources":["../../../../../src/v4/server/utils/template/scan.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { GrowiTemplatePluginValidationData } from '../../../../model';\nimport {\n isTemplateStatusValid,\n type TemplateStatus,\n type TemplateSummary,\n} from '../../../interfaces';\nimport { getStatus } from './get-status';\nimport { validateTemplatePluginGrowiDirective } from './validate-growi-plugin-directive';\n\nexport const scanTemplate = async (\n projectDirRoot: string,\n templateId: string,\n data: GrowiTemplatePluginValidationData,\n opts?: {\n pluginId?: string;\n },\n): Promise<TemplateStatus[]> => {\n const status: TemplateStatus[] = [];\n\n const tplRootDirPath = path.resolve(projectDirRoot, 'dist', templateId);\n\n let isDefaultPushed = false;\n for await (const locale of data.supportingLocales) {\n const tplDir = path.resolve(tplRootDirPath, locale);\n\n try {\n const stats = await getStatus(tplDir);\n const { isTemplateExists, meta } = stats;\n\n if (!isTemplateExists) throw new Error(\"'template.md does not exist.\");\n if (meta == null) throw new Error(\"'meta.md does not exist.\");\n if (meta?.title == null)\n throw new Error(\"'meta.md does not contain the title.\");\n\n const isDefault = !isDefaultPushed;\n status.push({\n pluginId: opts?.pluginId,\n id: templateId,\n locale,\n isValid: true,\n isDefault,\n title: meta.title,\n desc: meta.desc,\n });\n isDefaultPushed = true;\n } catch (err) {\n status.push({\n pluginId: opts?.pluginId,\n id: templateId,\n locale,\n isValid: false,\n invalidReason: (err as Error).message,\n });\n }\n }\n\n // biome-ignore lint/suspicious/noConsole: Allow to use\n console.debug(`Template directory (${projectDirRoot}) has scanned`, {\n status,\n });\n\n return status;\n};\n\nexport const scanAllTemplates = async (\n projectDirRoot: string,\n opts?: {\n data?: GrowiTemplatePluginValidationData;\n pluginId?: string;\n returnsInvalidTemplates?: boolean;\n },\n): Promise<TemplateSummary[]> => {\n const data =\n opts?.data ?? validateTemplatePluginGrowiDirective(projectDirRoot);\n\n const summaries: TemplateSummary[] = [];\n\n const distDirPath = path.resolve(projectDirRoot, 'dist');\n const distDirFiles = fs.readdirSync(distDirPath);\n\n for await (const templateId of distDirFiles) {\n const status = (\n await scanTemplate(projectDirRoot, templateId, data, {\n pluginId: opts?.pluginId,\n })\n )\n // omit invalid templates if `returnsInvalidTemplates` is true\n .filter((s) => (opts?.returnsInvalidTemplates ? true : s.isValid));\n\n // determine default locale\n const defaultTemplateStatus = status.find(\n (s) => 'isDefault' in s && s.isDefault,\n );\n\n if (\n defaultTemplateStatus == null ||\n !isTemplateStatusValid(defaultTemplateStatus)\n ) {\n continue;\n }\n\n summaries.push({\n // for the 'default' key\n default: defaultTemplateStatus,\n // for each locale keys\n ...Object.fromEntries(\n status.map((templateStatus) => [templateStatus.locale, templateStatus]),\n ),\n });\n }\n\n return summaries;\n};\n"],"names":["scanTemplate","projectDirRoot","templateId","data","opts","status","tplRootDirPath","path","isDefaultPushed","locale","tplDir","stats","getStatus","isTemplateExists","meta","isDefault","err","scanAllTemplates","validateTemplatePluginGrowiDirective","summaries","distDirPath","distDirFiles","fs","s","defaultTemplateStatus","isTemplateStatusValid","templateStatus"],"mappings":"iQAYaA,EAAe,MAC1BC,EACAC,EACAC,EACAC,IAG8B,CAC9B,MAAMC,EAA2B,CAAA,EAE3BC,EAAiBC,EAAK,QAAQN,EAAgB,OAAQC,CAAU,EAEtE,IAAIM,EAAkB,GACtB,gBAAiBC,KAAUN,EAAK,kBAAmB,CACjD,MAAMO,EAASH,EAAK,QAAQD,EAAgBG,CAAM,EAElD,GAAI,CACF,MAAME,EAAQ,MAAMC,EAAAA,UAAUF,CAAM,EAC9B,CAAE,iBAAAG,EAAkB,KAAAC,CAAA,EAASH,EAEnC,GAAI,CAACE,EAAkB,MAAM,IAAI,MAAM,8BAA8B,EACrE,GAAIC,GAAQ,KAAM,MAAM,IAAI,MAAM,0BAA0B,EAC5D,IAAIA,GAAA,YAAAA,EAAM,QAAS,KACjB,MAAM,IAAI,MAAM,sCAAsC,EAExD,MAAMC,EAAY,CAACP,EACnBH,EAAO,KAAK,CACV,SAAUD,GAAA,YAAAA,EAAM,SAChB,GAAIF,EACJ,OAAAO,EACA,QAAS,GACT,UAAAM,EACA,MAAOD,EAAK,MACZ,KAAMA,EAAK,IAAA,CACZ,EACDN,EAAkB,EACpB,OAASQ,EAAK,CACZX,EAAO,KAAK,CACV,SAAUD,GAAA,YAAAA,EAAM,SAChB,GAAIF,EACJ,OAAAO,EACA,QAAS,GACT,cAAgBO,EAAc,OAAA,CAC/B,CACH,CACF,CAGA,eAAQ,MAAM,uBAAuBf,CAAc,gBAAiB,CAClE,OAAAI,CAAA,CACD,EAEMA,CACT,EAEaY,EAAmB,MAC9BhB,EACAG,IAK+B,CAC/B,MAAMD,GACJC,GAAA,YAAAA,EAAM,OAAQc,EAAAA,qCAAqCjB,CAAc,EAE7DkB,EAA+B,CAAA,EAE/BC,EAAcb,EAAK,QAAQN,EAAgB,MAAM,EACjDoB,EAAeC,EAAG,YAAYF,CAAW,EAE/C,gBAAiBlB,KAAcmB,EAAc,CAC3C,MAAMhB,GACJ,MAAML,EAAaC,EAAgBC,EAAYC,EAAM,CACnD,SAAUC,GAAA,YAAAA,EAAM,QAAA,CACjB,GAGA,OAAQmB,GAAOnB,GAAA,MAAAA,EAAM,wBAA0B,GAAOmB,EAAE,OAAQ,EAG7DC,EAAwBnB,EAAO,KAClCkB,GAAM,cAAeA,GAAKA,EAAE,SAAA,EAI7BC,GAAyB,MACzB,CAACC,EAAAA,sBAAsBD,CAAqB,GAK9CL,EAAU,KAAK,CAEb,QAASK,EAET,GAAG,OAAO,YACRnB,EAAO,IAAKqB,GAAmB,CAACA,EAAe,OAAQA,CAAc,CAAC,CAAA,CACxE,CACD,CACH,CAEA,OAAOP,CACT"}
1
+ {"version":3,"file":"scan.cjs","sources":["../../../../../src/v4/server/utils/template/scan.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { GrowiTemplatePluginValidationData } from '../../../../model';\nimport {\n isTemplateStatusValid,\n type TemplateStatus,\n type TemplateSummary,\n} from '../../../interfaces';\nimport { getStatus } from './get-status';\nimport { validateTemplatePluginGrowiDirective } from './validate-growi-plugin-directive';\n\nexport const scanTemplate = async (\n projectDirRoot: string,\n templateId: string,\n data: GrowiTemplatePluginValidationData,\n opts?: {\n pluginId?: string;\n },\n): Promise<TemplateStatus[]> => {\n const status: TemplateStatus[] = [];\n\n const tplRootDirPath = path.resolve(projectDirRoot, 'dist', templateId);\n\n let isDefaultPushed = false;\n for await (const locale of data.supportingLocales) {\n const tplDir = path.resolve(tplRootDirPath, locale);\n\n try {\n const stats = await getStatus(tplDir);\n const { isTemplateExists, meta } = stats;\n\n if (!isTemplateExists) throw new Error(\"'template.md does not exist.\");\n if (meta == null) throw new Error(\"'meta.md does not exist.\");\n if (meta?.title == null)\n throw new Error(\"'meta.md does not contain the title.\");\n\n const isDefault = !isDefaultPushed;\n status.push({\n pluginId: opts?.pluginId,\n id: templateId,\n locale,\n isValid: true,\n isDefault,\n title: meta.title,\n desc: meta.desc,\n });\n isDefaultPushed = true;\n } catch (err) {\n status.push({\n pluginId: opts?.pluginId,\n id: templateId,\n locale,\n isValid: false,\n invalidReason: (err as Error).message,\n });\n }\n }\n\n // biome-ignore lint/suspicious/noConsole: Allow to use\n console.debug(`Template directory (${projectDirRoot}) has scanned`, {\n status,\n });\n\n return status;\n};\n\nexport const scanAllTemplates = async (\n projectDirRoot: string,\n opts?: {\n data?: GrowiTemplatePluginValidationData;\n pluginId?: string;\n returnsInvalidTemplates?: boolean;\n },\n): Promise<TemplateSummary[]> => {\n const data =\n opts?.data ?? validateTemplatePluginGrowiDirective(projectDirRoot);\n\n const summaries: TemplateSummary[] = [];\n\n const distDirPath = path.resolve(projectDirRoot, 'dist');\n const distDirFiles = fs.readdirSync(distDirPath);\n\n for await (const templateId of distDirFiles) {\n const status = (\n await scanTemplate(projectDirRoot, templateId, data, {\n pluginId: opts?.pluginId,\n })\n )\n // omit invalid templates if `returnsInvalidTemplates` is true\n .filter((s) => (opts?.returnsInvalidTemplates ? true : s.isValid));\n\n // determine default locale\n const defaultTemplateStatus = status.find(\n (s) => 'isDefault' in s && s.isDefault,\n );\n\n if (\n defaultTemplateStatus == null ||\n !isTemplateStatusValid(defaultTemplateStatus)\n ) {\n continue;\n }\n\n summaries.push({\n // for the 'default' key\n default: defaultTemplateStatus,\n // for each locale keys\n ...Object.fromEntries(\n status.map((templateStatus) => [templateStatus.locale, templateStatus]),\n ),\n });\n }\n\n return summaries;\n};\n"],"names":["scanTemplate","projectDirRoot","templateId","data","opts","status","tplRootDirPath","path","isDefaultPushed","locale","tplDir","stats","getStatus","isTemplateExists","meta","isDefault","err","scanAllTemplates","validateTemplatePluginGrowiDirective","summaries","distDirPath","distDirFiles","fs","s","defaultTemplateStatus","isTemplateStatusValid","templateStatus"],"mappings":"iQAYaA,EAAe,MAC1BC,EACAC,EACAC,EACAC,IAG8B,CAC9B,MAAMC,EAA2B,CAAC,EAE5BC,EAAiBC,EAAK,QAAQN,EAAgB,OAAQC,CAAU,EAEtE,IAAIM,EAAkB,GACL,gBAAAC,KAAUN,EAAK,kBAAmB,CACjD,MAAMO,EAASH,EAAK,QAAQD,EAAgBG,CAAM,EAE9C,GAAA,CACI,MAAAE,EAAQ,MAAMC,EAAA,UAAUF,CAAM,EAC9B,CAAE,iBAAAG,EAAkB,KAAAC,CAAA,EAASH,EAEnC,GAAI,CAACE,EAAwB,MAAA,IAAI,MAAM,8BAA8B,EACrE,GAAIC,GAAQ,KAAY,MAAA,IAAI,MAAM,0BAA0B,EAC5D,IAAIA,GAAA,YAAAA,EAAM,QAAS,KACX,MAAA,IAAI,MAAM,sCAAsC,EAExD,MAAMC,EAAY,CAACP,EACnBH,EAAO,KAAK,CACV,SAAUD,GAAA,YAAAA,EAAM,SAChB,GAAIF,EACJ,OAAAO,EACA,QAAS,GACT,UAAAM,EACA,MAAOD,EAAK,MACZ,KAAMA,EAAK,IAAA,CACZ,EACiBN,EAAA,SACXQ,EAAK,CACZX,EAAO,KAAK,CACV,SAAUD,GAAA,YAAAA,EAAM,SAChB,GAAIF,EACJ,OAAAO,EACA,QAAS,GACT,cAAgBO,EAAc,OAAA,CAC/B,CAAA,CACH,CAIM,eAAA,MAAM,uBAAuBf,CAAc,gBAAiB,CAClE,OAAAI,CAAA,CACD,EAEMA,CACT,EAEaY,EAAmB,MAC9BhB,EACAG,IAK+B,CAC/B,MAAMD,GACJC,GAAA,YAAAA,EAAM,OAAQc,EAAAA,qCAAqCjB,CAAc,EAE7DkB,EAA+B,CAAC,EAEhCC,EAAcb,EAAK,QAAQN,EAAgB,MAAM,EACjDoB,EAAeC,EAAG,YAAYF,CAAW,EAE/C,gBAAiBlB,KAAcmB,EAAc,CAC3C,MAAMhB,GACJ,MAAML,EAAaC,EAAgBC,EAAYC,EAAM,CACnD,SAAUC,GAAA,YAAAA,EAAM,QAAA,CACjB,GAGA,OAAQmB,GAAOnB,GAAA,MAAAA,EAAM,wBAA0B,GAAOmB,EAAE,OAAQ,EAG7DC,EAAwBnB,EAAO,KAClCkB,GAAM,cAAeA,GAAKA,EAAE,SAC/B,EAGEC,GAAyB,MACzB,CAACC,EAAA,sBAAsBD,CAAqB,GAK9CL,EAAU,KAAK,CAEb,QAASK,EAET,GAAG,OAAO,YACRnB,EAAO,IAAKqB,GAAmB,CAACA,EAAe,OAAQA,CAAc,CAAC,CAAA,CACxE,CACD,CAAA,CAGI,OAAAP,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sources":["../../../../../src/v4/server/utils/template/scan.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { GrowiTemplatePluginValidationData } from '../../../../model';\nimport {\n isTemplateStatusValid,\n type TemplateStatus,\n type TemplateSummary,\n} from '../../../interfaces';\nimport { getStatus } from './get-status';\nimport { validateTemplatePluginGrowiDirective } from './validate-growi-plugin-directive';\n\nexport const scanTemplate = async (\n projectDirRoot: string,\n templateId: string,\n data: GrowiTemplatePluginValidationData,\n opts?: {\n pluginId?: string;\n },\n): Promise<TemplateStatus[]> => {\n const status: TemplateStatus[] = [];\n\n const tplRootDirPath = path.resolve(projectDirRoot, 'dist', templateId);\n\n let isDefaultPushed = false;\n for await (const locale of data.supportingLocales) {\n const tplDir = path.resolve(tplRootDirPath, locale);\n\n try {\n const stats = await getStatus(tplDir);\n const { isTemplateExists, meta } = stats;\n\n if (!isTemplateExists) throw new Error(\"'template.md does not exist.\");\n if (meta == null) throw new Error(\"'meta.md does not exist.\");\n if (meta?.title == null)\n throw new Error(\"'meta.md does not contain the title.\");\n\n const isDefault = !isDefaultPushed;\n status.push({\n pluginId: opts?.pluginId,\n id: templateId,\n locale,\n isValid: true,\n isDefault,\n title: meta.title,\n desc: meta.desc,\n });\n isDefaultPushed = true;\n } catch (err) {\n status.push({\n pluginId: opts?.pluginId,\n id: templateId,\n locale,\n isValid: false,\n invalidReason: (err as Error).message,\n });\n }\n }\n\n // biome-ignore lint/suspicious/noConsole: Allow to use\n console.debug(`Template directory (${projectDirRoot}) has scanned`, {\n status,\n });\n\n return status;\n};\n\nexport const scanAllTemplates = async (\n projectDirRoot: string,\n opts?: {\n data?: GrowiTemplatePluginValidationData;\n pluginId?: string;\n returnsInvalidTemplates?: boolean;\n },\n): Promise<TemplateSummary[]> => {\n const data =\n opts?.data ?? validateTemplatePluginGrowiDirective(projectDirRoot);\n\n const summaries: TemplateSummary[] = [];\n\n const distDirPath = path.resolve(projectDirRoot, 'dist');\n const distDirFiles = fs.readdirSync(distDirPath);\n\n for await (const templateId of distDirFiles) {\n const status = (\n await scanTemplate(projectDirRoot, templateId, data, {\n pluginId: opts?.pluginId,\n })\n )\n // omit invalid templates if `returnsInvalidTemplates` is true\n .filter((s) => (opts?.returnsInvalidTemplates ? true : s.isValid));\n\n // determine default locale\n const defaultTemplateStatus = status.find(\n (s) => 'isDefault' in s && s.isDefault,\n );\n\n if (\n defaultTemplateStatus == null ||\n !isTemplateStatusValid(defaultTemplateStatus)\n ) {\n continue;\n }\n\n summaries.push({\n // for the 'default' key\n default: defaultTemplateStatus,\n // for each locale keys\n ...Object.fromEntries(\n status.map((templateStatus) => [templateStatus.locale, templateStatus]),\n ),\n });\n }\n\n return summaries;\n};\n"],"names":["scanTemplate","projectDirRoot","templateId","data","opts","status","tplRootDirPath","path","isDefaultPushed","locale","tplDir","stats","getStatus","isTemplateExists","meta","isDefault","err","scanAllTemplates","validateTemplatePluginGrowiDirective","summaries","distDirPath","distDirFiles","fs","s","defaultTemplateStatus","isTemplateStatusValid","templateStatus"],"mappings":";;;;;AAYO,MAAMA,IAAe,OAC1BC,GACAC,GACAC,GACAC,MAG8B;AAC9B,QAAMC,IAA2B,CAAA,GAE3BC,IAAiBC,EAAK,QAAQN,GAAgB,QAAQC,CAAU;AAEtE,MAAIM,IAAkB;AACtB,mBAAiBC,KAAUN,EAAK,mBAAmB;AACjD,UAAMO,IAASH,EAAK,QAAQD,GAAgBG,CAAM;AAElD,QAAI;AACF,YAAME,IAAQ,MAAMC,EAAUF,CAAM,GAC9B,EAAE,kBAAAG,GAAkB,MAAAC,EAAA,IAASH;AAEnC,UAAI,CAACE,EAAkB,OAAM,IAAI,MAAM,8BAA8B;AACrE,UAAIC,KAAQ,KAAM,OAAM,IAAI,MAAM,0BAA0B;AAC5D,WAAIA,KAAA,gBAAAA,EAAM,UAAS;AACjB,cAAM,IAAI,MAAM,sCAAsC;AAExD,YAAMC,IAAY,CAACP;AACnB,MAAAH,EAAO,KAAK;AAAA,QACV,UAAUD,KAAA,gBAAAA,EAAM;AAAA,QAChB,IAAIF;AAAA,QACJ,QAAAO;AAAA,QACA,SAAS;AAAA,QACT,WAAAM;AAAA,QACA,OAAOD,EAAK;AAAA,QACZ,MAAMA,EAAK;AAAA,MAAA,CACZ,GACDN,IAAkB;AAAA,IACpB,SAASQ,GAAK;AACZ,MAAAX,EAAO,KAAK;AAAA,QACV,UAAUD,KAAA,gBAAAA,EAAM;AAAA,QAChB,IAAIF;AAAA,QACJ,QAAAO;AAAA,QACA,SAAS;AAAA,QACT,eAAgBO,EAAc;AAAA,MAAA,CAC/B;AAAA,IACH;AAAA,EACF;AAGA,iBAAQ,MAAM,uBAAuBf,CAAc,iBAAiB;AAAA,IAClE,QAAAI;AAAA,EAAA,CACD,GAEMA;AACT,GAEaY,IAAmB,OAC9BhB,GACAG,MAK+B;AAC/B,QAAMD,KACJC,KAAA,gBAAAA,EAAM,SAAQc,EAAqCjB,CAAc,GAE7DkB,IAA+B,CAAA,GAE/BC,IAAcb,EAAK,QAAQN,GAAgB,MAAM,GACjDoB,IAAeC,EAAG,YAAYF,CAAW;AAE/C,mBAAiBlB,KAAcmB,GAAc;AAC3C,UAAMhB,KACJ,MAAML,EAAaC,GAAgBC,GAAYC,GAAM;AAAA,MACnD,UAAUC,KAAA,gBAAAA,EAAM;AAAA,IAAA,CACjB,GAGA,OAAO,CAACmB,MAAOnB,KAAA,QAAAA,EAAM,0BAA0B,KAAOmB,EAAE,OAAQ,GAG7DC,IAAwBnB,EAAO;AAAA,MACnC,CAACkB,MAAM,eAAeA,KAAKA,EAAE;AAAA,IAAA;AAG/B,IACEC,KAAyB,QACzB,CAACC,EAAsBD,CAAqB,KAK9CL,EAAU,KAAK;AAAA;AAAA,MAEb,SAASK;AAAA;AAAA,MAET,GAAG,OAAO;AAAA,QACRnB,EAAO,IAAI,CAACqB,MAAmB,CAACA,EAAe,QAAQA,CAAc,CAAC;AAAA,MAAA;AAAA,IACxE,CACD;AAAA,EACH;AAEA,SAAOP;AACT;"}
1
+ {"version":3,"file":"scan.js","sources":["../../../../../src/v4/server/utils/template/scan.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { GrowiTemplatePluginValidationData } from '../../../../model';\nimport {\n isTemplateStatusValid,\n type TemplateStatus,\n type TemplateSummary,\n} from '../../../interfaces';\nimport { getStatus } from './get-status';\nimport { validateTemplatePluginGrowiDirective } from './validate-growi-plugin-directive';\n\nexport const scanTemplate = async (\n projectDirRoot: string,\n templateId: string,\n data: GrowiTemplatePluginValidationData,\n opts?: {\n pluginId?: string;\n },\n): Promise<TemplateStatus[]> => {\n const status: TemplateStatus[] = [];\n\n const tplRootDirPath = path.resolve(projectDirRoot, 'dist', templateId);\n\n let isDefaultPushed = false;\n for await (const locale of data.supportingLocales) {\n const tplDir = path.resolve(tplRootDirPath, locale);\n\n try {\n const stats = await getStatus(tplDir);\n const { isTemplateExists, meta } = stats;\n\n if (!isTemplateExists) throw new Error(\"'template.md does not exist.\");\n if (meta == null) throw new Error(\"'meta.md does not exist.\");\n if (meta?.title == null)\n throw new Error(\"'meta.md does not contain the title.\");\n\n const isDefault = !isDefaultPushed;\n status.push({\n pluginId: opts?.pluginId,\n id: templateId,\n locale,\n isValid: true,\n isDefault,\n title: meta.title,\n desc: meta.desc,\n });\n isDefaultPushed = true;\n } catch (err) {\n status.push({\n pluginId: opts?.pluginId,\n id: templateId,\n locale,\n isValid: false,\n invalidReason: (err as Error).message,\n });\n }\n }\n\n // biome-ignore lint/suspicious/noConsole: Allow to use\n console.debug(`Template directory (${projectDirRoot}) has scanned`, {\n status,\n });\n\n return status;\n};\n\nexport const scanAllTemplates = async (\n projectDirRoot: string,\n opts?: {\n data?: GrowiTemplatePluginValidationData;\n pluginId?: string;\n returnsInvalidTemplates?: boolean;\n },\n): Promise<TemplateSummary[]> => {\n const data =\n opts?.data ?? validateTemplatePluginGrowiDirective(projectDirRoot);\n\n const summaries: TemplateSummary[] = [];\n\n const distDirPath = path.resolve(projectDirRoot, 'dist');\n const distDirFiles = fs.readdirSync(distDirPath);\n\n for await (const templateId of distDirFiles) {\n const status = (\n await scanTemplate(projectDirRoot, templateId, data, {\n pluginId: opts?.pluginId,\n })\n )\n // omit invalid templates if `returnsInvalidTemplates` is true\n .filter((s) => (opts?.returnsInvalidTemplates ? true : s.isValid));\n\n // determine default locale\n const defaultTemplateStatus = status.find(\n (s) => 'isDefault' in s && s.isDefault,\n );\n\n if (\n defaultTemplateStatus == null ||\n !isTemplateStatusValid(defaultTemplateStatus)\n ) {\n continue;\n }\n\n summaries.push({\n // for the 'default' key\n default: defaultTemplateStatus,\n // for each locale keys\n ...Object.fromEntries(\n status.map((templateStatus) => [templateStatus.locale, templateStatus]),\n ),\n });\n }\n\n return summaries;\n};\n"],"names":["scanTemplate","projectDirRoot","templateId","data","opts","status","tplRootDirPath","path","isDefaultPushed","locale","tplDir","stats","getStatus","isTemplateExists","meta","isDefault","err","scanAllTemplates","validateTemplatePluginGrowiDirective","summaries","distDirPath","distDirFiles","fs","s","defaultTemplateStatus","isTemplateStatusValid","templateStatus"],"mappings":";;;;;AAYO,MAAMA,IAAe,OAC1BC,GACAC,GACAC,GACAC,MAG8B;AAC9B,QAAMC,IAA2B,CAAC,GAE5BC,IAAiBC,EAAK,QAAQN,GAAgB,QAAQC,CAAU;AAEtE,MAAIM,IAAkB;AACL,mBAAAC,KAAUN,EAAK,mBAAmB;AACjD,UAAMO,IAASH,EAAK,QAAQD,GAAgBG,CAAM;AAE9C,QAAA;AACI,YAAAE,IAAQ,MAAMC,EAAUF,CAAM,GAC9B,EAAE,kBAAAG,GAAkB,MAAAC,EAAA,IAASH;AAEnC,UAAI,CAACE,EAAwB,OAAA,IAAI,MAAM,8BAA8B;AACrE,UAAIC,KAAQ,KAAY,OAAA,IAAI,MAAM,0BAA0B;AAC5D,WAAIA,KAAA,gBAAAA,EAAM,UAAS;AACX,cAAA,IAAI,MAAM,sCAAsC;AAExD,YAAMC,IAAY,CAACP;AACnB,MAAAH,EAAO,KAAK;AAAA,QACV,UAAUD,KAAA,gBAAAA,EAAM;AAAA,QAChB,IAAIF;AAAA,QACJ,QAAAO;AAAA,QACA,SAAS;AAAA,QACT,WAAAM;AAAA,QACA,OAAOD,EAAK;AAAA,QACZ,MAAMA,EAAK;AAAA,MAAA,CACZ,GACiBN,IAAA;AAAA,aACXQ,GAAK;AACZ,MAAAX,EAAO,KAAK;AAAA,QACV,UAAUD,KAAA,gBAAAA,EAAM;AAAA,QAChB,IAAIF;AAAA,QACJ,QAAAO;AAAA,QACA,SAAS;AAAA,QACT,eAAgBO,EAAc;AAAA,MAAA,CAC/B;AAAA,IAAA;AAAA,EACH;AAIM,iBAAA,MAAM,uBAAuBf,CAAc,iBAAiB;AAAA,IAClE,QAAAI;AAAA,EAAA,CACD,GAEMA;AACT,GAEaY,IAAmB,OAC9BhB,GACAG,MAK+B;AAC/B,QAAMD,KACJC,KAAA,gBAAAA,EAAM,SAAQc,EAAqCjB,CAAc,GAE7DkB,IAA+B,CAAC,GAEhCC,IAAcb,EAAK,QAAQN,GAAgB,MAAM,GACjDoB,IAAeC,EAAG,YAAYF,CAAW;AAE/C,mBAAiBlB,KAAcmB,GAAc;AAC3C,UAAMhB,KACJ,MAAML,EAAaC,GAAgBC,GAAYC,GAAM;AAAA,MACnD,UAAUC,KAAA,gBAAAA,EAAM;AAAA,IAAA,CACjB,GAGA,OAAO,CAACmB,MAAOnB,KAAA,QAAAA,EAAM,0BAA0B,KAAOmB,EAAE,OAAQ,GAG7DC,IAAwBnB,EAAO;AAAA,MACnC,CAACkB,MAAM,eAAeA,KAAKA,EAAE;AAAA,IAC/B;AAEA,IACEC,KAAyB,QACzB,CAACC,EAAsBD,CAAqB,KAK9CL,EAAU,KAAK;AAAA;AAAA,MAEb,SAASK;AAAA;AAAA,MAET,GAAG,OAAO;AAAA,QACRnB,EAAO,IAAI,CAACqB,MAAmB,CAACA,EAAe,QAAQA,CAAc,CAAC;AAAA,MAAA;AAAA,IACxE,CACD;AAAA,EAAA;AAGI,SAAAP;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-all-locales.cjs","sources":["../../../../../src/v4/server/utils/template/validate-all-locales.ts"],"sourcesContent":["import { scanAllTemplates } from './scan';\nimport { validateTemplatePluginGrowiDirective } from './validate-growi-plugin-directive';\n\nexport const validateAllTemplateLocales = async (\n projectDirRoot: string,\n): Promise<boolean> => {\n const data = validateTemplatePluginGrowiDirective(projectDirRoot);\n\n const results = await scanAllTemplates(projectDirRoot, {\n data,\n returnsInvalidTemplates: true,\n });\n\n if (Object.keys(results).length === 0) {\n throw new Error('This plugin does not have any templates');\n }\n\n // construct map\n // key: id\n // value: isValid properties\n const idValidMap: { [id: string]: boolean[] } = {};\n for (const summary of results) {\n idValidMap[summary.default.id] = Object.values(summary).map(\n (s) => s?.isValid ?? false,\n );\n }\n\n for (const [id, validMap] of Object.entries(idValidMap)) {\n // warn\n if (!validMap.every((bool) => bool)) {\n // biome-ignore lint/suspicious/noConsole: Allow to use\n console.warn(\n `[WARN] Template '${id}' has some locales that status is invalid`,\n );\n }\n\n // This means the template directory does not have any valid template\n if (!validMap.some((bool) => bool)) {\n return false;\n }\n }\n\n return true;\n};\n"],"names":["validateAllTemplateLocales","projectDirRoot","data","validateTemplatePluginGrowiDirective","results","scanAllTemplates","idValidMap","summary","s","id","validMap","bool"],"mappings":"iKAGaA,EAA6B,MACxCC,GACqB,CACrB,MAAMC,EAAOC,EAAAA,qCAAqCF,CAAc,EAE1DG,EAAU,MAAMC,EAAAA,iBAAiBJ,EAAgB,CACrD,KAAAC,EACA,wBAAyB,EAAA,CAC1B,EAED,GAAI,OAAO,KAAKE,CAAO,EAAE,SAAW,EAClC,MAAM,IAAI,MAAM,yCAAyC,EAM3D,MAAME,EAA0C,CAAA,EAChD,UAAWC,KAAWH,EACpBE,EAAWC,EAAQ,QAAQ,EAAE,EAAI,OAAO,OAAOA,CAAO,EAAE,IACrDC,IAAMA,GAAA,YAAAA,EAAG,UAAW,EAAA,EAIzB,SAAW,CAACC,EAAIC,CAAQ,IAAK,OAAO,QAAQJ,CAAU,EAUpD,GARKI,EAAS,MAAOC,GAASA,CAAI,GAEhC,QAAQ,KACN,oBAAoBF,CAAE,2CAAA,EAKtB,CAACC,EAAS,KAAMC,GAASA,CAAI,EAC/B,MAAO,GAIX,MAAO,EACT"}
1
+ {"version":3,"file":"validate-all-locales.cjs","sources":["../../../../../src/v4/server/utils/template/validate-all-locales.ts"],"sourcesContent":["import { scanAllTemplates } from './scan';\nimport { validateTemplatePluginGrowiDirective } from './validate-growi-plugin-directive';\n\nexport const validateAllTemplateLocales = async (\n projectDirRoot: string,\n): Promise<boolean> => {\n const data = validateTemplatePluginGrowiDirective(projectDirRoot);\n\n const results = await scanAllTemplates(projectDirRoot, {\n data,\n returnsInvalidTemplates: true,\n });\n\n if (Object.keys(results).length === 0) {\n throw new Error('This plugin does not have any templates');\n }\n\n // construct map\n // key: id\n // value: isValid properties\n const idValidMap: { [id: string]: boolean[] } = {};\n for (const summary of results) {\n idValidMap[summary.default.id] = Object.values(summary).map(\n (s) => s?.isValid ?? false,\n );\n }\n\n for (const [id, validMap] of Object.entries(idValidMap)) {\n // warn\n if (!validMap.every((bool) => bool)) {\n // biome-ignore lint/suspicious/noConsole: Allow to use\n console.warn(\n `[WARN] Template '${id}' has some locales that status is invalid`,\n );\n }\n\n // This means the template directory does not have any valid template\n if (!validMap.some((bool) => bool)) {\n return false;\n }\n }\n\n return true;\n};\n"],"names":["validateAllTemplateLocales","projectDirRoot","data","validateTemplatePluginGrowiDirective","results","scanAllTemplates","idValidMap","summary","s","id","validMap","bool"],"mappings":"iKAGaA,EAA6B,MACxCC,GACqB,CACf,MAAAC,EAAOC,uCAAqCF,CAAc,EAE1DG,EAAU,MAAMC,EAAA,iBAAiBJ,EAAgB,CACrD,KAAAC,EACA,wBAAyB,EAAA,CAC1B,EAED,GAAI,OAAO,KAAKE,CAAO,EAAE,SAAW,EAC5B,MAAA,IAAI,MAAM,yCAAyC,EAM3D,MAAME,EAA0C,CAAC,EACjD,UAAWC,KAAWH,EACpBE,EAAWC,EAAQ,QAAQ,EAAE,EAAI,OAAO,OAAOA,CAAO,EAAE,IACrDC,IAAMA,GAAA,YAAAA,EAAG,UAAW,EACvB,EAGF,SAAW,CAACC,EAAIC,CAAQ,IAAK,OAAO,QAAQJ,CAAU,EAUpD,GARKI,EAAS,MAAOC,GAASA,CAAI,GAExB,QAAA,KACN,oBAAoBF,CAAE,2CACxB,EAIE,CAACC,EAAS,KAAMC,GAASA,CAAI,EACxB,MAAA,GAIJ,MAAA,EACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-all-locales.js","sources":["../../../../../src/v4/server/utils/template/validate-all-locales.ts"],"sourcesContent":["import { scanAllTemplates } from './scan';\nimport { validateTemplatePluginGrowiDirective } from './validate-growi-plugin-directive';\n\nexport const validateAllTemplateLocales = async (\n projectDirRoot: string,\n): Promise<boolean> => {\n const data = validateTemplatePluginGrowiDirective(projectDirRoot);\n\n const results = await scanAllTemplates(projectDirRoot, {\n data,\n returnsInvalidTemplates: true,\n });\n\n if (Object.keys(results).length === 0) {\n throw new Error('This plugin does not have any templates');\n }\n\n // construct map\n // key: id\n // value: isValid properties\n const idValidMap: { [id: string]: boolean[] } = {};\n for (const summary of results) {\n idValidMap[summary.default.id] = Object.values(summary).map(\n (s) => s?.isValid ?? false,\n );\n }\n\n for (const [id, validMap] of Object.entries(idValidMap)) {\n // warn\n if (!validMap.every((bool) => bool)) {\n // biome-ignore lint/suspicious/noConsole: Allow to use\n console.warn(\n `[WARN] Template '${id}' has some locales that status is invalid`,\n );\n }\n\n // This means the template directory does not have any valid template\n if (!validMap.some((bool) => bool)) {\n return false;\n }\n }\n\n return true;\n};\n"],"names":["validateAllTemplateLocales","projectDirRoot","data","validateTemplatePluginGrowiDirective","results","scanAllTemplates","idValidMap","summary","s","id","validMap","bool"],"mappings":";;AAGO,MAAMA,IAA6B,OACxCC,MACqB;AACrB,QAAMC,IAAOC,EAAqCF,CAAc,GAE1DG,IAAU,MAAMC,EAAiBJ,GAAgB;AAAA,IACrD,MAAAC;AAAA,IACA,yBAAyB;AAAA,EAAA,CAC1B;AAED,MAAI,OAAO,KAAKE,CAAO,EAAE,WAAW;AAClC,UAAM,IAAI,MAAM,yCAAyC;AAM3D,QAAME,IAA0C,CAAA;AAChD,aAAWC,KAAWH;AACpB,IAAAE,EAAWC,EAAQ,QAAQ,EAAE,IAAI,OAAO,OAAOA,CAAO,EAAE;AAAA,MACtD,CAACC,OAAMA,KAAA,gBAAAA,EAAG,YAAW;AAAA,IAAA;AAIzB,aAAW,CAACC,GAAIC,CAAQ,KAAK,OAAO,QAAQJ,CAAU;AAUpD,QARKI,EAAS,MAAM,CAACC,MAASA,CAAI,KAEhC,QAAQ;AAAA,MACN,oBAAoBF,CAAE;AAAA,IAAA,GAKtB,CAACC,EAAS,KAAK,CAACC,MAASA,CAAI;AAC/B,aAAO;AAIX,SAAO;AACT;"}
1
+ {"version":3,"file":"validate-all-locales.js","sources":["../../../../../src/v4/server/utils/template/validate-all-locales.ts"],"sourcesContent":["import { scanAllTemplates } from './scan';\nimport { validateTemplatePluginGrowiDirective } from './validate-growi-plugin-directive';\n\nexport const validateAllTemplateLocales = async (\n projectDirRoot: string,\n): Promise<boolean> => {\n const data = validateTemplatePluginGrowiDirective(projectDirRoot);\n\n const results = await scanAllTemplates(projectDirRoot, {\n data,\n returnsInvalidTemplates: true,\n });\n\n if (Object.keys(results).length === 0) {\n throw new Error('This plugin does not have any templates');\n }\n\n // construct map\n // key: id\n // value: isValid properties\n const idValidMap: { [id: string]: boolean[] } = {};\n for (const summary of results) {\n idValidMap[summary.default.id] = Object.values(summary).map(\n (s) => s?.isValid ?? false,\n );\n }\n\n for (const [id, validMap] of Object.entries(idValidMap)) {\n // warn\n if (!validMap.every((bool) => bool)) {\n // biome-ignore lint/suspicious/noConsole: Allow to use\n console.warn(\n `[WARN] Template '${id}' has some locales that status is invalid`,\n );\n }\n\n // This means the template directory does not have any valid template\n if (!validMap.some((bool) => bool)) {\n return false;\n }\n }\n\n return true;\n};\n"],"names":["validateAllTemplateLocales","projectDirRoot","data","validateTemplatePluginGrowiDirective","results","scanAllTemplates","idValidMap","summary","s","id","validMap","bool"],"mappings":";;AAGa,MAAAA,IAA6B,OACxCC,MACqB;AACf,QAAAC,IAAOC,EAAqCF,CAAc,GAE1DG,IAAU,MAAMC,EAAiBJ,GAAgB;AAAA,IACrD,MAAAC;AAAA,IACA,yBAAyB;AAAA,EAAA,CAC1B;AAED,MAAI,OAAO,KAAKE,CAAO,EAAE,WAAW;AAC5B,UAAA,IAAI,MAAM,yCAAyC;AAM3D,QAAME,IAA0C,CAAC;AACjD,aAAWC,KAAWH;AACpB,IAAAE,EAAWC,EAAQ,QAAQ,EAAE,IAAI,OAAO,OAAOA,CAAO,EAAE;AAAA,MACtD,CAACC,OAAMA,KAAA,gBAAAA,EAAG,YAAW;AAAA,IACvB;AAGF,aAAW,CAACC,GAAIC,CAAQ,KAAK,OAAO,QAAQJ,CAAU;AAUpD,QARKI,EAAS,MAAM,CAACC,MAASA,CAAI,KAExB,QAAA;AAAA,MACN,oBAAoBF,CAAE;AAAA,IACxB,GAIE,CAACC,EAAS,KAAK,CAACC,MAASA,CAAI;AACxB,aAAA;AAIJ,SAAA;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-growi-plugin-directive.cjs","sources":["../../../../../src/v4/server/utils/template/validate-growi-plugin-directive.ts"],"sourcesContent":["import { GrowiPluginType } from '@growi/core';\n\nimport type {\n GrowiPluginValidationData,\n GrowiTemplatePluginValidationData,\n} from '../../../../model';\nimport { GrowiPluginValidationError } from '../../../../model';\nimport { validateGrowiDirective } from '../common';\n\n/**\n * An utility for template plugin which wrap 'validateGrowiDirective' of './common' module\n * @param projectDirRoot\n */\nexport const validateTemplatePluginGrowiDirective = (\n projectDirRoot: string,\n): GrowiTemplatePluginValidationData => {\n const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Template);\n\n const { growiPlugin } = data;\n\n // check supporting locales\n const supportingLocales: string[] | undefined = growiPlugin.locales;\n if (supportingLocales == null || supportingLocales.length === 0) {\n throw new GrowiPluginValidationError<\n GrowiPluginValidationData & { supportingLocales?: string[] }\n >(\n \"Template plugin must have 'supportingLocales' and that must have one or more locales\",\n {\n ...data,\n supportingLocales,\n },\n );\n }\n\n return {\n ...data,\n supportingLocales,\n };\n};\n"],"names":["validateTemplatePluginGrowiDirective","projectDirRoot","data","validateGrowiDirective","GrowiPluginType","growiPlugin","supportingLocales","GrowiPluginValidationError"],"mappings":"2OAaaA,EACXC,GACsC,CACtC,MAAMC,EAAOC,EAAAA,uBAAuBF,EAAgBG,EAAAA,gBAAgB,QAAQ,EAEtE,CAAE,YAAAC,GAAgBH,EAGlBI,EAA0CD,EAAY,QAC5D,GAAIC,GAAqB,MAAQA,EAAkB,SAAW,EAC5D,MAAM,IAAIC,EAAAA,2BAGR,uFACA,CACE,GAAGL,EACH,kBAAAI,CAAA,CACF,EAIJ,MAAO,CACL,GAAGJ,EACH,kBAAAI,CAAA,CAEJ"}
1
+ {"version":3,"file":"validate-growi-plugin-directive.cjs","sources":["../../../../../src/v4/server/utils/template/validate-growi-plugin-directive.ts"],"sourcesContent":["import { GrowiPluginType } from '@growi/core';\n\nimport type {\n GrowiPluginValidationData,\n GrowiTemplatePluginValidationData,\n} from '../../../../model';\nimport { GrowiPluginValidationError } from '../../../../model';\nimport { validateGrowiDirective } from '../common';\n\n/**\n * An utility for template plugin which wrap 'validateGrowiDirective' of './common' module\n * @param projectDirRoot\n */\nexport const validateTemplatePluginGrowiDirective = (\n projectDirRoot: string,\n): GrowiTemplatePluginValidationData => {\n const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Template);\n\n const { growiPlugin } = data;\n\n // check supporting locales\n const supportingLocales: string[] | undefined = growiPlugin.locales;\n if (supportingLocales == null || supportingLocales.length === 0) {\n throw new GrowiPluginValidationError<\n GrowiPluginValidationData & { supportingLocales?: string[] }\n >(\n \"Template plugin must have 'supportingLocales' and that must have one or more locales\",\n {\n ...data,\n supportingLocales,\n },\n );\n }\n\n return {\n ...data,\n supportingLocales,\n };\n};\n"],"names":["validateTemplatePluginGrowiDirective","projectDirRoot","data","validateGrowiDirective","GrowiPluginType","growiPlugin","supportingLocales","GrowiPluginValidationError"],"mappings":"2OAaaA,EACXC,GACsC,CACtC,MAAMC,EAAOC,EAAA,uBAAuBF,EAAgBG,EAAAA,gBAAgB,QAAQ,EAEtE,CAAE,YAAAC,GAAgBH,EAGlBI,EAA0CD,EAAY,QAC5D,GAAIC,GAAqB,MAAQA,EAAkB,SAAW,EAC5D,MAAM,IAAIC,EAAA,2BAGR,uFACA,CACE,GAAGL,EACH,kBAAAI,CAAA,CAEJ,EAGK,MAAA,CACL,GAAGJ,EACH,kBAAAI,CACF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-growi-plugin-directive.js","sources":["../../../../../src/v4/server/utils/template/validate-growi-plugin-directive.ts"],"sourcesContent":["import { GrowiPluginType } from '@growi/core';\n\nimport type {\n GrowiPluginValidationData,\n GrowiTemplatePluginValidationData,\n} from '../../../../model';\nimport { GrowiPluginValidationError } from '../../../../model';\nimport { validateGrowiDirective } from '../common';\n\n/**\n * An utility for template plugin which wrap 'validateGrowiDirective' of './common' module\n * @param projectDirRoot\n */\nexport const validateTemplatePluginGrowiDirective = (\n projectDirRoot: string,\n): GrowiTemplatePluginValidationData => {\n const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Template);\n\n const { growiPlugin } = data;\n\n // check supporting locales\n const supportingLocales: string[] | undefined = growiPlugin.locales;\n if (supportingLocales == null || supportingLocales.length === 0) {\n throw new GrowiPluginValidationError<\n GrowiPluginValidationData & { supportingLocales?: string[] }\n >(\n \"Template plugin must have 'supportingLocales' and that must have one or more locales\",\n {\n ...data,\n supportingLocales,\n },\n );\n }\n\n return {\n ...data,\n supportingLocales,\n };\n};\n"],"names":["validateTemplatePluginGrowiDirective","projectDirRoot","data","validateGrowiDirective","GrowiPluginType","growiPlugin","supportingLocales","GrowiPluginValidationError"],"mappings":";;;AAaO,MAAMA,IAAuC,CAClDC,MACsC;AACtC,QAAMC,IAAOC,EAAuBF,GAAgBG,EAAgB,QAAQ,GAEtE,EAAE,aAAAC,MAAgBH,GAGlBI,IAA0CD,EAAY;AAC5D,MAAIC,KAAqB,QAAQA,EAAkB,WAAW;AAC5D,UAAM,IAAIC;AAAA,MAGR;AAAA,MACA;AAAA,QACE,GAAGL;AAAA,QACH,mBAAAI;AAAA,MAAA;AAAA,IACF;AAIJ,SAAO;AAAA,IACL,GAAGJ;AAAA,IACH,mBAAAI;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"validate-growi-plugin-directive.js","sources":["../../../../../src/v4/server/utils/template/validate-growi-plugin-directive.ts"],"sourcesContent":["import { GrowiPluginType } from '@growi/core';\n\nimport type {\n GrowiPluginValidationData,\n GrowiTemplatePluginValidationData,\n} from '../../../../model';\nimport { GrowiPluginValidationError } from '../../../../model';\nimport { validateGrowiDirective } from '../common';\n\n/**\n * An utility for template plugin which wrap 'validateGrowiDirective' of './common' module\n * @param projectDirRoot\n */\nexport const validateTemplatePluginGrowiDirective = (\n projectDirRoot: string,\n): GrowiTemplatePluginValidationData => {\n const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Template);\n\n const { growiPlugin } = data;\n\n // check supporting locales\n const supportingLocales: string[] | undefined = growiPlugin.locales;\n if (supportingLocales == null || supportingLocales.length === 0) {\n throw new GrowiPluginValidationError<\n GrowiPluginValidationData & { supportingLocales?: string[] }\n >(\n \"Template plugin must have 'supportingLocales' and that must have one or more locales\",\n {\n ...data,\n supportingLocales,\n },\n );\n }\n\n return {\n ...data,\n supportingLocales,\n };\n};\n"],"names":["validateTemplatePluginGrowiDirective","projectDirRoot","data","validateGrowiDirective","GrowiPluginType","growiPlugin","supportingLocales","GrowiPluginValidationError"],"mappings":";;;AAaa,MAAAA,IAAuC,CAClDC,MACsC;AACtC,QAAMC,IAAOC,EAAuBF,GAAgBG,EAAgB,QAAQ,GAEtE,EAAE,aAAAC,MAAgBH,GAGlBI,IAA0CD,EAAY;AAC5D,MAAIC,KAAqB,QAAQA,EAAkB,WAAW;AAC5D,UAAM,IAAIC;AAAA,MAGR;AAAA,MACA;AAAA,QACE,GAAGL;AAAA,QACH,mBAAAI;AAAA,MAAA;AAAA,IAEJ;AAGK,SAAA;AAAA,IACL,GAAGJ;AAAA,IACH,mBAAAI;AAAA,EACF;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-growi-plugin-directive.cjs","sources":["../../../../../src/v4/server/utils/theme/validate-growi-plugin-directive.ts"],"sourcesContent":["import type { GrowiThemeMetadata } from '@growi/core';\nimport { GrowiPluginType, isGrowiThemeMetadata } from '@growi/core';\n\nimport type {\n GrowiPluginValidationData,\n GrowiThemePluginValidationData,\n} from '../../../../model';\nimport { GrowiPluginValidationError } from '../../../../model';\nimport { validateGrowiDirective } from '../common';\n\n/**\n * An utility for theme plugin which wrap 'validateGrowiDirective' of './common' module\n * @param projectDirRoot\n */\nexport const validateThemePluginGrowiDirective = (\n projectDirRoot: string,\n): GrowiThemePluginValidationData => {\n const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Theme);\n\n const { growiPlugin } = data;\n\n // check themes\n if (\n growiPlugin.themes == null ||\n !Array.isArray(growiPlugin.themes) ||\n growiPlugin.themes.length === 0\n ) {\n throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n \"Theme plugin must have 'themes' array and that must have one or more theme metadata\",\n );\n }\n\n const validMetadatas: GrowiThemeMetadata[] = [];\n const invalidObjects: unknown[] = [];\n for (const theme of growiPlugin.themes) {\n if (isGrowiThemeMetadata(theme)) {\n validMetadatas.push(theme);\n } else {\n invalidObjects.push(theme);\n }\n }\n\n if (invalidObjects.length > 0) {\n throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n `Some of theme metadata are invalid: ${invalidObjects.toString()}`,\n );\n }\n\n return {\n ...data,\n themes: validMetadatas,\n };\n};\n"],"names":["validateThemePluginGrowiDirective","projectDirRoot","data","validateGrowiDirective","GrowiPluginType","growiPlugin","GrowiPluginValidationError","validMetadatas","invalidObjects","theme","isGrowiThemeMetadata"],"mappings":"2OAcaA,EACXC,GACmC,CACnC,MAAMC,EAAOC,EAAAA,uBAAuBF,EAAgBG,EAAAA,gBAAgB,KAAK,EAEnE,CAAE,YAAAC,GAAgBH,EAGxB,GACEG,EAAY,QAAU,MACtB,CAAC,MAAM,QAAQA,EAAY,MAAM,GACjCA,EAAY,OAAO,SAAW,EAE9B,MAAM,IAAIC,EAAAA,2BACR,qFAAA,EAIJ,MAAMC,EAAuC,CAAA,EACvCC,EAA4B,CAAA,EAClC,UAAWC,KAASJ,EAAY,OAC1BK,EAAAA,qBAAqBD,CAAK,EAC5BF,EAAe,KAAKE,CAAK,EAEzBD,EAAe,KAAKC,CAAK,EAI7B,GAAID,EAAe,OAAS,EAC1B,MAAM,IAAIF,EAAAA,2BACR,uCAAuCE,EAAe,UAAU,EAAA,EAIpE,MAAO,CACL,GAAGN,EACH,OAAQK,CAAA,CAEZ"}
1
+ {"version":3,"file":"validate-growi-plugin-directive.cjs","sources":["../../../../../src/v4/server/utils/theme/validate-growi-plugin-directive.ts"],"sourcesContent":["import type { GrowiThemeMetadata } from '@growi/core';\nimport { GrowiPluginType, isGrowiThemeMetadata } from '@growi/core';\n\nimport type {\n GrowiPluginValidationData,\n GrowiThemePluginValidationData,\n} from '../../../../model';\nimport { GrowiPluginValidationError } from '../../../../model';\nimport { validateGrowiDirective } from '../common';\n\n/**\n * An utility for theme plugin which wrap 'validateGrowiDirective' of './common' module\n * @param projectDirRoot\n */\nexport const validateThemePluginGrowiDirective = (\n projectDirRoot: string,\n): GrowiThemePluginValidationData => {\n const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Theme);\n\n const { growiPlugin } = data;\n\n // check themes\n if (\n growiPlugin.themes == null ||\n !Array.isArray(growiPlugin.themes) ||\n growiPlugin.themes.length === 0\n ) {\n throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n \"Theme plugin must have 'themes' array and that must have one or more theme metadata\",\n );\n }\n\n const validMetadatas: GrowiThemeMetadata[] = [];\n const invalidObjects: unknown[] = [];\n for (const theme of growiPlugin.themes) {\n if (isGrowiThemeMetadata(theme)) {\n validMetadatas.push(theme);\n } else {\n invalidObjects.push(theme);\n }\n }\n\n if (invalidObjects.length > 0) {\n throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n `Some of theme metadata are invalid: ${invalidObjects.toString()}`,\n );\n }\n\n return {\n ...data,\n themes: validMetadatas,\n };\n};\n"],"names":["validateThemePluginGrowiDirective","projectDirRoot","data","validateGrowiDirective","GrowiPluginType","growiPlugin","GrowiPluginValidationError","validMetadatas","invalidObjects","theme","isGrowiThemeMetadata"],"mappings":"2OAcaA,EACXC,GACmC,CACnC,MAAMC,EAAOC,EAAA,uBAAuBF,EAAgBG,EAAAA,gBAAgB,KAAK,EAEnE,CAAE,YAAAC,GAAgBH,EAGxB,GACEG,EAAY,QAAU,MACtB,CAAC,MAAM,QAAQA,EAAY,MAAM,GACjCA,EAAY,OAAO,SAAW,EAE9B,MAAM,IAAIC,EAAA,2BACR,qFACF,EAGF,MAAMC,EAAuC,CAAC,EACxCC,EAA4B,CAAC,EACxB,UAAAC,KAASJ,EAAY,OAC1BK,EAAAA,qBAAqBD,CAAK,EAC5BF,EAAe,KAAKE,CAAK,EAEzBD,EAAe,KAAKC,CAAK,EAIzB,GAAAD,EAAe,OAAS,EAC1B,MAAM,IAAIF,EAAA,2BACR,uCAAuCE,EAAe,UAAU,EAClE,EAGK,MAAA,CACL,GAAGN,EACH,OAAQK,CACV,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-growi-plugin-directive.js","sources":["../../../../../src/v4/server/utils/theme/validate-growi-plugin-directive.ts"],"sourcesContent":["import type { GrowiThemeMetadata } from '@growi/core';\nimport { GrowiPluginType, isGrowiThemeMetadata } from '@growi/core';\n\nimport type {\n GrowiPluginValidationData,\n GrowiThemePluginValidationData,\n} from '../../../../model';\nimport { GrowiPluginValidationError } from '../../../../model';\nimport { validateGrowiDirective } from '../common';\n\n/**\n * An utility for theme plugin which wrap 'validateGrowiDirective' of './common' module\n * @param projectDirRoot\n */\nexport const validateThemePluginGrowiDirective = (\n projectDirRoot: string,\n): GrowiThemePluginValidationData => {\n const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Theme);\n\n const { growiPlugin } = data;\n\n // check themes\n if (\n growiPlugin.themes == null ||\n !Array.isArray(growiPlugin.themes) ||\n growiPlugin.themes.length === 0\n ) {\n throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n \"Theme plugin must have 'themes' array and that must have one or more theme metadata\",\n );\n }\n\n const validMetadatas: GrowiThemeMetadata[] = [];\n const invalidObjects: unknown[] = [];\n for (const theme of growiPlugin.themes) {\n if (isGrowiThemeMetadata(theme)) {\n validMetadatas.push(theme);\n } else {\n invalidObjects.push(theme);\n }\n }\n\n if (invalidObjects.length > 0) {\n throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n `Some of theme metadata are invalid: ${invalidObjects.toString()}`,\n );\n }\n\n return {\n ...data,\n themes: validMetadatas,\n };\n};\n"],"names":["validateThemePluginGrowiDirective","projectDirRoot","data","validateGrowiDirective","GrowiPluginType","growiPlugin","GrowiPluginValidationError","validMetadatas","invalidObjects","theme","isGrowiThemeMetadata"],"mappings":";;;AAcO,MAAMA,IAAoC,CAC/CC,MACmC;AACnC,QAAMC,IAAOC,EAAuBF,GAAgBG,EAAgB,KAAK,GAEnE,EAAE,aAAAC,MAAgBH;AAGxB,MACEG,EAAY,UAAU,QACtB,CAAC,MAAM,QAAQA,EAAY,MAAM,KACjCA,EAAY,OAAO,WAAW;AAE9B,UAAM,IAAIC;AAAA,MACR;AAAA,IAAA;AAIJ,QAAMC,IAAuC,CAAA,GACvCC,IAA4B,CAAA;AAClC,aAAWC,KAASJ,EAAY;AAC9B,IAAIK,EAAqBD,CAAK,IAC5BF,EAAe,KAAKE,CAAK,IAEzBD,EAAe,KAAKC,CAAK;AAI7B,MAAID,EAAe,SAAS;AAC1B,UAAM,IAAIF;AAAA,MACR,uCAAuCE,EAAe,UAAU;AAAA,IAAA;AAIpE,SAAO;AAAA,IACL,GAAGN;AAAA,IACH,QAAQK;AAAA,EAAA;AAEZ;"}
1
+ {"version":3,"file":"validate-growi-plugin-directive.js","sources":["../../../../../src/v4/server/utils/theme/validate-growi-plugin-directive.ts"],"sourcesContent":["import type { GrowiThemeMetadata } from '@growi/core';\nimport { GrowiPluginType, isGrowiThemeMetadata } from '@growi/core';\n\nimport type {\n GrowiPluginValidationData,\n GrowiThemePluginValidationData,\n} from '../../../../model';\nimport { GrowiPluginValidationError } from '../../../../model';\nimport { validateGrowiDirective } from '../common';\n\n/**\n * An utility for theme plugin which wrap 'validateGrowiDirective' of './common' module\n * @param projectDirRoot\n */\nexport const validateThemePluginGrowiDirective = (\n projectDirRoot: string,\n): GrowiThemePluginValidationData => {\n const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Theme);\n\n const { growiPlugin } = data;\n\n // check themes\n if (\n growiPlugin.themes == null ||\n !Array.isArray(growiPlugin.themes) ||\n growiPlugin.themes.length === 0\n ) {\n throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n \"Theme plugin must have 'themes' array and that must have one or more theme metadata\",\n );\n }\n\n const validMetadatas: GrowiThemeMetadata[] = [];\n const invalidObjects: unknown[] = [];\n for (const theme of growiPlugin.themes) {\n if (isGrowiThemeMetadata(theme)) {\n validMetadatas.push(theme);\n } else {\n invalidObjects.push(theme);\n }\n }\n\n if (invalidObjects.length > 0) {\n throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n `Some of theme metadata are invalid: ${invalidObjects.toString()}`,\n );\n }\n\n return {\n ...data,\n themes: validMetadatas,\n };\n};\n"],"names":["validateThemePluginGrowiDirective","projectDirRoot","data","validateGrowiDirective","GrowiPluginType","growiPlugin","GrowiPluginValidationError","validMetadatas","invalidObjects","theme","isGrowiThemeMetadata"],"mappings":";;;AAca,MAAAA,IAAoC,CAC/CC,MACmC;AACnC,QAAMC,IAAOC,EAAuBF,GAAgBG,EAAgB,KAAK,GAEnE,EAAE,aAAAC,MAAgBH;AAGxB,MACEG,EAAY,UAAU,QACtB,CAAC,MAAM,QAAQA,EAAY,MAAM,KACjCA,EAAY,OAAO,WAAW;AAE9B,UAAM,IAAIC;AAAA,MACR;AAAA,IACF;AAGF,QAAMC,IAAuC,CAAC,GACxCC,IAA4B,CAAC;AACxB,aAAAC,KAASJ,EAAY;AAC1B,IAAAK,EAAqBD,CAAK,IAC5BF,EAAe,KAAKE,CAAK,IAEzBD,EAAe,KAAKC,CAAK;AAIzB,MAAAD,EAAe,SAAS;AAC1B,UAAM,IAAIF;AAAA,MACR,uCAAuCE,EAAe,UAAU;AAAA,IAClE;AAGK,SAAA;AAAA,IACL,GAAGN;AAAA,IACH,QAAQK;AAAA,EACV;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.cjs","sources":["../../../src/v4/utils/template.ts"],"sourcesContent":["import type { TemplateStatus, TemplateSummary } from '../interfaces';\n\nexport const getLocalizedTemplate = (\n templateSummary: TemplateSummary | undefined,\n locale?: string,\n): TemplateStatus | undefined => {\n if (templateSummary == null) {\n return undefined;\n }\n\n return locale != null && locale in templateSummary\n ? templateSummary[locale]\n : templateSummary.default;\n};\n\nexport const extractSupportedLocales = (\n templateSummary: TemplateSummary | undefined,\n): Set<string> | undefined => {\n if (templateSummary == null) {\n return undefined;\n }\n\n return new Set(Object.values(templateSummary).map((s) => s.locale));\n};\n"],"names":["getLocalizedTemplate","templateSummary","locale","extractSupportedLocales","s"],"mappings":"gFAEO,MAAMA,EAAuB,CAClCC,EACAC,IAC+B,CAC/B,GAAID,GAAmB,KAIvB,OAAOC,GAAU,MAAQA,KAAUD,EAC/BA,EAAgBC,CAAM,EACtBD,EAAgB,OACtB,EAEaE,EACXF,GAC4B,CAC5B,GAAIA,GAAmB,KAIvB,OAAO,IAAI,IAAI,OAAO,OAAOA,CAAe,EAAE,IAAKG,GAAMA,EAAE,MAAM,CAAC,CACpE"}
1
+ {"version":3,"file":"template.cjs","sources":["../../../src/v4/utils/template.ts"],"sourcesContent":["import type { TemplateStatus, TemplateSummary } from '../interfaces';\n\nexport const getLocalizedTemplate = (\n templateSummary: TemplateSummary | undefined,\n locale?: string,\n): TemplateStatus | undefined => {\n if (templateSummary == null) {\n return undefined;\n }\n\n return locale != null && locale in templateSummary\n ? templateSummary[locale]\n : templateSummary.default;\n};\n\nexport const extractSupportedLocales = (\n templateSummary: TemplateSummary | undefined,\n): Set<string> | undefined => {\n if (templateSummary == null) {\n return undefined;\n }\n\n return new Set(Object.values(templateSummary).map((s) => s.locale));\n};\n"],"names":["getLocalizedTemplate","templateSummary","locale","extractSupportedLocales","s"],"mappings":"gFAEa,MAAAA,EAAuB,CAClCC,EACAC,IAC+B,CAC/B,GAAID,GAAmB,KAIvB,OAAOC,GAAU,MAAQA,KAAUD,EAC/BA,EAAgBC,CAAM,EACtBD,EAAgB,OACtB,EAEaE,EACXF,GAC4B,CAC5B,GAAIA,GAAmB,KAIhB,OAAA,IAAI,IAAI,OAAO,OAAOA,CAAe,EAAE,IAAKG,GAAMA,EAAE,MAAM,CAAC,CACpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sources":["../../../src/v4/utils/template.ts"],"sourcesContent":["import type { TemplateStatus, TemplateSummary } from '../interfaces';\n\nexport const getLocalizedTemplate = (\n templateSummary: TemplateSummary | undefined,\n locale?: string,\n): TemplateStatus | undefined => {\n if (templateSummary == null) {\n return undefined;\n }\n\n return locale != null && locale in templateSummary\n ? templateSummary[locale]\n : templateSummary.default;\n};\n\nexport const extractSupportedLocales = (\n templateSummary: TemplateSummary | undefined,\n): Set<string> | undefined => {\n if (templateSummary == null) {\n return undefined;\n }\n\n return new Set(Object.values(templateSummary).map((s) => s.locale));\n};\n"],"names":["getLocalizedTemplate","templateSummary","locale","extractSupportedLocales","s"],"mappings":"AAEO,MAAMA,IAAuB,CAClCC,GACAC,MAC+B;AAC/B,MAAID,KAAmB;AAIvB,WAAOC,KAAU,QAAQA,KAAUD,IAC/BA,EAAgBC,CAAM,IACtBD,EAAgB;AACtB,GAEaE,IAA0B,CACrCF,MAC4B;AAC5B,MAAIA,KAAmB;AAIvB,WAAO,IAAI,IAAI,OAAO,OAAOA,CAAe,EAAE,IAAI,CAACG,MAAMA,EAAE,MAAM,CAAC;AACpE;"}
1
+ {"version":3,"file":"template.js","sources":["../../../src/v4/utils/template.ts"],"sourcesContent":["import type { TemplateStatus, TemplateSummary } from '../interfaces';\n\nexport const getLocalizedTemplate = (\n templateSummary: TemplateSummary | undefined,\n locale?: string,\n): TemplateStatus | undefined => {\n if (templateSummary == null) {\n return undefined;\n }\n\n return locale != null && locale in templateSummary\n ? templateSummary[locale]\n : templateSummary.default;\n};\n\nexport const extractSupportedLocales = (\n templateSummary: TemplateSummary | undefined,\n): Set<string> | undefined => {\n if (templateSummary == null) {\n return undefined;\n }\n\n return new Set(Object.values(templateSummary).map((s) => s.locale));\n};\n"],"names":["getLocalizedTemplate","templateSummary","locale","extractSupportedLocales","s"],"mappings":"AAEa,MAAAA,IAAuB,CAClCC,GACAC,MAC+B;AAC/B,MAAID,KAAmB;AAIvB,WAAOC,KAAU,QAAQA,KAAUD,IAC/BA,EAAgBC,CAAM,IACtBD,EAAgB;AACtB,GAEaE,IAA0B,CACrCF,MAC4B;AAC5B,MAAIA,KAAmB;AAIhB,WAAA,IAAI,IAAI,OAAO,OAAOA,CAAe,EAAE,IAAI,CAACG,MAAMA,EAAE,MAAM,CAAC;AACpE;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@growi/pluginkit",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "description": "Plugin kit for GROWI",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -16,7 +16,7 @@
16
16
  ],
17
17
  "dependencies": {
18
18
  "extensible-custom-error": "^0.0.7",
19
- "@growi/core": "^2.3.0"
19
+ "@growi/core": "^2.3.1"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/react": "^18.2.14"