Skip to content

Commit

Permalink
Merge branch 'main' into 1250-ui-language-selector
Browse files Browse the repository at this point in the history
# Conflicts:
#	lib/platform-bible-react/dist/index.cjs
#	lib/platform-bible-react/dist/index.cjs.map
#	lib/platform-bible-react/dist/index.d.ts
#	lib/platform-bible-react/dist/index.js
#	lib/platform-bible-react/dist/index.js.map
#	lib/platform-bible-react/src/index.ts
  • Loading branch information
tombogle committed Dec 11, 2024
2 parents 753fddd + 86e485a commit 887e74f
Show file tree
Hide file tree
Showing 122 changed files with 61,518 additions and 3,804 deletions.
17 changes: 9 additions & 8 deletions assets/localization/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,6 @@
"%about_db_ip_attribution_format%": "{intro} {websiteLink} ({license}, {terms})",
"%about_db_ip_attribution_intro%": "Internet safety features use data from",
"%about_db_ip_attribution_terms%": "Terms",
"%downloadResources_errorRegistrationInvalid%": "User registration is not valid. Cannot retrieve resources from DBL.",
"%downloadResources_errorInstallResource_resourceNotFound%": "Resource not available from DBL",
"%downloadResources_errorInstallResource_resourceAlreadyInstalled%": "Resource is already installed and up to date. Installation skipped.",
"%downloadResources_errorInstallResource_installationFailed%": "Resource cannot be found after attempted installation. Installation failed.",
"%downloadResources_errorUninstallResource_resourceNotFound%": "Resource not found on list of DBL resources.",
"%downloadResources_errorUninstallResource_resourceNotInstalled%": "Resource is not currently installed, so it can't be removed.",
"%downloadResources_errorUninstallResource_localResourceNotFound%": "Resource cannot be located, so it can't be removed.",
"%downloadResources_errorUninstallResource_localResourceStillPresent%": "Resource is still present. Removing failed.",
"%downloadUpdateProjectTab_aria_downloadable%": "downloadable projects",
"%downloadUpdateProjectTab_aria_downloaded%": "downloaded projects",
"%downloadUpdateProjectTab_button_delete%": "Delete",
Expand All @@ -20,6 +12,14 @@
"%downloadUpdateProjectTab_title_downloadUpdate%": "Download/Update Project",
"%general_button_submit%": "Submit",
"%general_cancel%": "Cancel",
"%getResources_errorRegistrationInvalid%": "User registration is not valid. Cannot retrieve resources from DBL.",
"%getResources_errorInstallResource_resourceNotFound%": "Resource not available from DBL",
"%getResources_errorInstallResource_resourceAlreadyInstalled%": "Resource is already installed and up to date. Installation skipped.",
"%getResources_errorInstallResource_installationFailed%": "Resource cannot be found after attempted installation. Installation failed.",
"%getResources_errorUninstallResource_resourceNotFound%": "Resource not found on list of DBL resources.",
"%getResources_errorUninstallResource_resourceNotInstalled%": "Resource is not currently installed, so it can't be removed.",
"%getResources_errorUninstallResource_localResourceNotFound%": "Resource cannot be located, so it can't be removed.",
"%getResources_errorUninstallResource_localResourceStillPresent%": "Resource is still present. Removing failed.",
"%insertNote%": "Insert Note",
"%general_error_title%": "Error",
"%general_loading%": "Loading",
Expand All @@ -29,6 +29,7 @@
"%mainMenu_about%": "About Platform.Bible",
"%mainMenu_downloadInstallResources%": "Download/Install Resources",
"%mainMenu_exit%": "Exit",
"%mainMenu_openDeveloperDocumentation%": "Open Developer Documentation",
"%mainMenu_openProject%": "Open Project",
"%mainMenu_settings%": "Settings",
"%mainMenu_visitSupportBible%": "Visit Support.Bible",
Expand Down
1 change: 1 addition & 0 deletions assets/localization/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@
"%mainMenu_exit%": "Salir",
"%mainMenu_help%": "Ayuda",
"%mainMenu_layout%": "Diseño",
"%mainMenu_openDeveloperDocumentation%": "Abrir documentación para desarrolladores",
"%mainMenu_openProject%": "Abrir proyecto",
"%mainMenu_project%": "Proyecto",
"%mainMenu_settings%": "Configuración",
Expand Down
20 changes: 10 additions & 10 deletions c-sharp/Projects/DigitalBibleLibrary/DblDownloadableDataProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace Paranext.DataProvider.Projects.DigitalBibleLibrary;
/// Data provider that can install, update and uninstall DBL (Digital Bible Library) resources
/// </summary>
internal class DblResourcesDataProvider(PapiClient papiClient)
: NetworkObjects.DataProvider("paratextBibleDownloadResources.dblResourcesProvider", papiClient)
: NetworkObjects.DataProvider("platformGetResources.dblResourcesProvider", papiClient)
{
#region Internal classes

Expand All @@ -30,7 +30,7 @@ string ProjectId
public string DisplayName { get; set; } = DisplayName;
public string FullName { get; set; } = FullName;
public string BestLanguageName { get; set; } = BestLanguageName;
public string Type { get; set; } = Type.ToString();
public string Type { get; set; } = Type.ToString() + "Resource";
public long Size { get; set; } = Size;
public bool Installed { get; set; } = Installed;
public bool UpdateAvailable { get; set; } = UpdateAvailable;
Expand Down Expand Up @@ -101,7 +101,7 @@ private List<DblResourceData> GetDblResources(JsonElement _ignore)
throw new Exception(
LocalizationService.GetLocalizedString(
PapiClient,
"%downloadResources_errorRegistrationInvalid%",
"%getResources_errorRegistrationInvalid%",
$"User registration is not valid. Cannot retrieve resources from DBL."
)
);
Expand Down Expand Up @@ -146,7 +146,7 @@ private void InstallDblResource(string DBLEntryUid)
DBLEntryUid,
LocalizationService.GetLocalizedString(
PapiClient,
"%downloadResources_errorInstallResource_resourceNotFound%",
"%getResources_errorInstallResource_resourceNotFound%",
$"Resource not available from DBL."
),
out var installableResource
Expand All @@ -156,7 +156,7 @@ out var installableResource
throw new Exception(
LocalizationService.GetLocalizedString(
PapiClient,
"%downloadResources_errorInstallResource_resourceAlreadyInstalled%",
"%getResources_errorInstallResource_resourceAlreadyInstalled%",
$"Resource is already installed and up to date. Installation skipped."
)
);
Expand All @@ -170,7 +170,7 @@ out var installableResource
throw new Exception(
LocalizationService.GetLocalizedString(
PapiClient,
"%downloadResources_errorInstallResource_installationFailed%",
"%getResources_errorInstallResource_installationFailed%",
$"Resource cannot be found after attempted installation. Installation failed."
)
);
Expand All @@ -187,7 +187,7 @@ private void UninstallDblResource(string DBLEntryUid)
DBLEntryUid,
LocalizationService.GetLocalizedString(
PapiClient,
"%downloadResources_errorUninstallResource_resourceNotFound%",
"%getResources_errorUninstallResource_resourceNotFound%",
$"Resource not found on list of DBL resources."
),
out var installableResource
Expand All @@ -197,7 +197,7 @@ out var installableResource
throw new Exception(
LocalizationService.GetLocalizedString(
PapiClient,
"%downloadResources_errorUninstallResource_resourceNotInstalled%",
"%getResources_errorUninstallResource_resourceNotInstalled%",
$"Resource is not currently installed, so it can't be removed."
)
);
Expand All @@ -209,7 +209,7 @@ out var installableResource
throw new Exception(
LocalizationService.GetLocalizedString(
PapiClient,
"%downloadResources_errorUninstallResource_localResourceNotFound%",
"%getResources_errorUninstallResource_localResourceNotFound%",
$"Resource cannot be located, so it can't be removed."
)
);
Expand All @@ -224,7 +224,7 @@ out var installableResource
throw new Exception(
LocalizationService.GetLocalizedString(
PapiClient,
"%downloadResources_errorUninstallResource_localResourceStillPresent%",
"%getResources_errorUninstallResource_localResourceStillPresent%",
$"Resource is still present. Removing failed."
)
);
Expand Down
1 change: 1 addition & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
"newtonsoft",
"nodebuffer",
"nums",
"openrpc",
"papi",
"papis",
"paranext",
Expand Down
17 changes: 17 additions & 0 deletions extensions/src/hello-someone/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,23 @@ export async function activate(context: ExecutionActivationContext): Promise<voi
(name: string) => {
return `Hello ${name}!`;
},
{
method: {
summary: 'Say hello to someone',
params: [
{
name: 'name',
required: true,
summary: 'Name of the person to say hello to',
schema: { type: 'string' },
},
],
result: {
name: 'greeting',
schema: { type: 'string' },
},
},
},
);

// Create a webview or get the existing webview if ours already exists
Expand Down
16 changes: 16 additions & 0 deletions extensions/src/platform-get-resources/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 100

[*.md]
trim_trailing_whitespace = false

[*.cs]
indent_size = 4
35 changes: 35 additions & 0 deletions extensions/src/platform-get-resources/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# #region shared with https://github.com/paranext/paranext-multi-extension-template/blob/main/.eslintignore

# Please keep this file in sync with .prettierignore and .stylelintignore

# Logs
logs
*.log

# Runtime data
pids
*.pid
*.seed

# Dependency directory
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
node_modules

# OSX
.DS_Store

.idea
npm-debug.log.*
*.css.d.ts
*.sass.d.ts
*.scss.d.ts

# Built files
dist
release
temp-build

# generated files
package-lock.json

# #endregion
170 changes: 170 additions & 0 deletions extensions/src/platform-get-resources/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
// #region shared with https://github.com/paranext/paranext-multi-extension-template/blob/main/.eslintrc.cjs

module.exports = {
extends: [
// https://github.com/electron-react-boilerplate/eslint-config-erb/blob/main/index.js
// airbnb rules are embedded in erb https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb
'erb',
// Make sure this is last so it gets the chance to override other configs.
// See https://github.com/prettier/eslint-config-prettier and https://github.com/prettier/eslint-plugin-prettier
'plugin:prettier/recommended',
],

rules: {
// Some rules in this following shared region are not applied since they are overridden in subsequent regions
// #region shared with https://github.com/paranext/paranext-core/blob/main/.eslintrc.js except certain overrides

// #region ERB rules

// Use `noImplicitReturns` instead. See https://typescript-eslint.io/rules/consistent-return/.
'consistent-return': 'off',
'import/extensions': 'off',
// A temporary hack related to IDE not resolving correct package.json
'import/no-extraneous-dependencies': 'off',
'import/no-import-module-exports': 'off',
'import/no-unresolved': 'error',
'react/jsx-filename-extension': 'off',
'react/react-in-jsx-scope': 'off',

// #endregion

// #region Platform.Bible rules

// Rules in each section are generally in alphabetical order. However, several
// `@typescript-eslint` rules require disabling the equivalent ESLint rule. So in these cases
// each ESLint rule is turned off immediately above the corresponding `@typescript-eslint` rule.
'class-methods-use-this': 'off',
'@typescript-eslint/class-methods-use-this': [
'error',
{ ignoreOverrideMethods: true, ignoreClassesThatImplementAnInterface: false },
],
'@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }],
'lines-between-class-members': 'off',
'@typescript-eslint/lines-between-class-members': [
'error',
'always',
{ exceptAfterSingleLine: true, exceptAfterOverload: true },
],
'@typescript-eslint/member-ordering': 'error',
'no-empty-function': 'off',
'@typescript-eslint/no-empty-function': [
'error',
{
allow: ['arrowFunctions', 'functions', 'methods'],
},
],
'@typescript-eslint/no-explicit-any': 'error',
'no-redeclare': 'off',
'@typescript-eslint/no-redeclare': 'error',
'no-restricted-imports': [
'error',
{
patterns: [
{
group: ['shared/*', 'renderer/*', 'extension-host/*', 'node/*', 'client/*', 'main/*'],
message: `Importing from this path is not allowed. Try importing from @papi/core. Imports from paths like 'shared', 'renderer', 'node', 'client' and 'main' are not allowed to prevent unnecessary import break.`,
},
],
},
],
'no-shadow': 'off',
'@typescript-eslint/no-shadow': 'error',
'no-use-before-define': 'off',
'@typescript-eslint/no-use-before-define': [
'error',
{ functions: false, allowNamedExports: true, typedefs: false, ignoreTypeReferences: true },
],
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': 'error',
'no-useless-constructor': 'off',
'@typescript-eslint/no-useless-constructor': 'error',
'comma-dangle': ['error', 'always-multiline'],
'import/no-anonymous-default-export': ['error', { allowCallExpression: false }],
indent: 'off',
'jsx-a11y/label-has-associated-control': [
'error',
{
assert: 'either',
},
],
// Should use our logger anytime you want logs that persist. Otherwise use console only in testing
'no-console': 'warn',
'no-null/no-null': 2,
'no-plusplus': ['error', { allowForLoopAfterthoughts: true }],
'no-type-assertion/no-type-assertion': 'error',
'prettier/prettier': ['warn', { tabWidth: 2, trailingComma: 'all' }],
'react/jsx-indent-props': ['warn', 2],
'react/jsx-props-no-spreading': ['error', { custom: 'ignore' }],
'react/require-default-props': 'off',

// #endregion

// #endregion

// #region Overrides to rules from paranext-core

'import/no-unresolved': ['error', { ignore: ['@papi'] }],

// #endregion
},
globals: {
globalThis: 'readonly',
},
overrides: [
{
// Allow this file to have overrides to rules from paranext-core
files: ['.eslintrc.*js'],
rules: {
'no-dupe-keys': 'off',
},
},
{
files: ['*.js'],
rules: {
strict: 'off',
},
},
{
// Don't require extensions to have a default export for "activate()"
files: ['*.ts'],
rules: {
'import/prefer-default-export': 'off',
},
},
{
files: ['./lib/*', './webpack/*'],
rules: {
// These files are scripts not running in Platform.Bible, so they can't use the logger
'no-console': 'off',
},
},
{
files: ['*.d.ts'],
rules: {
// Allow .d.ts files to self import so they can refer to their types in `papi-shared-types`
'import/no-self-import': 'off',
},
},
],
parserOptions: {
ecmaVersion: 2022,
sourceType: 'module',
project: './tsconfig.lint.json',
tsconfigRootDir: __dirname,
createDefaultProgram: true,
},
plugins: ['@typescript-eslint', 'no-type-assertion', 'no-null'],
settings: {
'import/resolver': {
typescript: {
alwaysTryTypes: true,
},
},
'import/parsers': {
'@typescript-eslint/parser': ['.ts', '.tsx'],
},
},
};

// #endregion
Loading

0 comments on commit 887e74f

Please sign in to comment.