Commit graph

2265 commits

Author SHA1 Message Date
Marc Durdin
df212364a2 maint(resources): add repository record for all published packages
While not documented as such, it appears that the repository record is
required with trusted publishing of npm packages.

Test-bot: skip
Build-bot: skip
2025-10-29 14:35:31 +01:00
Marc Durdin
ba411774f6 maint(resources): move NPM package publishing to GitHub Actions
Due to recent changes in NPM package publishing security requirements,
we have to move from TeamCity build to a GitHub Action to publish our
NPM packages, so we can take advantage of trusted publishing. This
change also consolidates and centralizes the npm publishing into
resources/build/ci/npm-publish.sh, which removes a lot of boilerplate
from each of the build.sh scripts, and ensures consistency.

Packages will be `npm pack`ed on PR and test builds, and published in
release builds.

Ref: https://docs.npmjs.com/trusted-publishers
Ref: https://github.blog/changelog/2025-09-29-strengthening-npm-security-important-changes-to-authentication-and-token-management/
Fixes: #14963
Test-bot: skip
Build-bot: release:developer
2025-10-27 16:31:55 +01:00
Eberhard Beilharz
34c43b1e15
refactor(web): cleanup in test scripts
Also use common function for running web types tests.

Test-bot: skip
2025-09-30 17:40:15 +02:00
Marc Durdin
81c807c257 chore(common): Merge branch 'master' into maint/common/14453-move-ci-scripts 2025-08-19 10:46:11 +02:00
Joshua Horton
e24deefdb8 fix(web): improve typing accuracy for suggestions & suggestion-generation
Also adds doc-comments to a couple of the related types
2025-08-13 10:27:13 -05:00
Marc Durdin
f3fb3ac87b maint(common): move build-utils-ci.inc.sh to ci/ci-publish.inc.sh
Removes a number of unused functions from the file, renames remaining
functions to match our builder script prefix patterns, removes unused
imports from various build scripts (e.g. Android).

Fixes: #14453
2025-08-05 12:54:56 +10:00
Marc Durdin
2726050601 maint(common): rename and move node-related script functions into node.inc.sh
Consolidates the node-related script functions into node.inc.sh, as part
of cleaning up the build scripts and making them easier to maintain into
the future.

Fixes: #14447
2025-08-02 13:34:29 +10:00
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Marc Durdin
65158a0526 maint(common): rename shellHelperFunctions.sh to utils.inc.sh
Adds documentation for various functions, removes unused functions (a
couple of simple, very lightly used functions were unDRYed; these could
go back the other way across all shell scripts if necessary). TODO items
noted for follow-up refactoring.

Fixes: #14275
Relates-to: #14269
Build-bot: build all
Test-bot: skip
2025-08-02 06:58:40 +10:00
Steven R. Loomis
c8ab945348 chore(common): clarify docs on boxXmlArray
- not related to #14117 but mention o[x] instead of o.x in jsdocs
2025-06-26 15:58:47 -05:00
Steven R. Loomis
0a35181bed chore(developer): rename x: to compileContext:
Fixes: #14117
2025-06-26 15:58:43 -05:00
Steven R. Loomis
7a741dc9d0 chore(developer): ldml: additional line numbers
- ajv validation
- more fixes from out of box testing

Fixes: #14099
2025-06-02 16:30:29 -05:00
Steven R. Loomis
fab29aad77 feat(developer): ldml: update errors for unparseable reorder
Fixes: #14091
2025-06-02 08:52:00 -05:00
Steven R. Loomis
e1638ad458 feat(comon): ldml: test fix for element strings with context
Fixes: #13937
2025-05-31 07:46:11 -05:00
Steven R. Loomis
9d0d34bf09 feat(developer): ldml: list compiler: add context to lists. vars, markers, usets...
- update several messages and the substitution tracker to take context

Fixes: #13935
2025-05-30 14:34:40 -05:00
Steven R. Loomis
8662acc46d feat(developer): ldml: list compiler: add context to lists
add contexts to lists and elements and uset

Fixes: #13935
2025-05-30 12:55:57 -05:00
Steven R. Loomis
db24750bd3 feat(developer): update strs compiler to collect context
- default state needs to be null not undefined

For: #13932
2025-05-28 20:17:45 -05:00
Steven R. Loomis
633f9551c7 feat(developer): update strs compiler to collect context
- attempt to find an object with a context

For: #13932
2025-05-28 20:17:44 -05:00
Marc Durdin
9f15e7c7ec maint: add empty 'scripts' tag to package.json to silence warning
Also removes './' from front of gosh.js to address another npm cleanup
(from `npm pkg fix`).

Fixes: #13833
2025-05-25 06:35:28 +07:00
Joshua Horton
155c1a2b12 maint: update mocha
Some of the npm audit warnings left after #13897 require an updated `mocha` version to remedy.  As we only really use `mocha` to do unit-testing, it should be safe to update if all of our existing tests pass with the new version.

Test-bot: skip
2025-05-13 14:02:02 +07:00
Eberhard Beilharz
4d81589f48
maint(common): use unique names for Keyman version variables
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.

Test-bot: skip
2025-05-07 18:46:51 +02:00
Eberhard Beilharz
af1f2629dd
maint(common): use function to detect if running on TC
This change makes use of the new builder script function to detect if
the script is running on TeamCity.
2025-05-06 17:42:25 +02:00
Joshua Horton
e382bf45ce
Merge pull request #13785 from keymanapp/change/web/drop-usvstring-alias
change(web): replace USVString with string in predictive-text engine
2025-05-06 08:16:28 +07:00
Joshua Horton
e328aa03f7 chore(common): address common/web/types linter issues 2025-04-30 12:34:14 +07:00
Joshua Horton
2011d117d6 chore(developer): finalize activation of prefer-const within developer TS modules 2025-04-30 09:41:07 +07:00
Joshua Horton
e601d59b59 change(web): replace USVString with string in predictive-text engine
Fixes: #12046

It was only ever an alias (for `string`!) for its intended use, with actual `USVString` typing being unavailable in the browser.
2025-04-29 10:47:20 +07:00
Steven R. Loomis
b59bb6d4de feat(developer): serialize KMXPlus into XML 🍒
Cherry pick of #12969
> feat(developer): serialize KMXPlus (back) into XML 🗼

(cherry picked from commit f93c45c9e8 #12969)

Fixes: #12874
2025-02-10 12:12:12 -06:00
Dr Mark C. Sinclair
6ead43b899
Merge pull request #13122 from keymanapp/fix/common/web/types/12945-replace-invalid-StrsItem-identity-checks-with-isEqual
fix(common/web): replace invalid StrsItem identity checks with isEqual()
2025-02-04 11:20:53 +00:00
Dr Mark C. Sinclair
6d060df601 fix(common/web): add two test cases for Strs.allocString() 2025-02-03 15:02:05 +00:00
Dr Mark C. Sinclair
0fabe6614a fix(common/web): add test cases for Strs implicit constructor and allocString for a one-character string 2025-02-03 12:47:58 +00:00
Dr Mark C. Sinclair
bdfa21128e fix(common/web): initial boiler plate for kmx-plus-tests.ts 2025-02-03 11:57:05 +00:00
Marc Durdin
5fea5b32cd fix(common): handle undefined input in @keymanapp/langtags lookups
Matches prior behaviour when langtags was part of kmc-keyboard-info.

Fixes: #13116
2025-02-03 12:40:10 +07:00
Steven R. Loomis
4f6c34de8c
Merge pull request #13099 from keymanapp/feat/developer/12749-ldml-local-import-workaround
chore(developer,core,resources): LDML v46 update and remove workaround for import base
2025-01-31 11:16:12 -06:00
Steven R. Loomis
2c32fb7903 chore(resources, developer,core): CLDR 46 and workaround
Fixes: #11307
- import from CLDR 46, mostly unchanged

Fixes: #12749
- workaround LDML DTD bug CLDR-18138 where base= does not imply base=cldr
2025-01-30 15:41:34 -06:00
Marc Durdin
ffdbfab775 chore: add copyright and license to langtags readme 2025-01-30 14:04:38 +07:00
Marc Durdin
c74e841ed7 chore(common): add README.md for langtags package 2025-01-27 11:55:10 +07:00
Marc Durdin
b49334d9cf chore(developer): use langtags.json for kmc-generate language names
Also fills out the remaining functionality in @keymanapp/langtags.

Fixes: #13045
2025-01-27 11:47:25 +07:00
Marc Durdin
75d77704a2 refactor: move langtags to @keymanapp/langtags npm module
We want to use langtags in several modules, so it makes sense to make it
into its own NPM module.

Relates-to: #13045
2025-01-27 09:59:38 +07:00
Dr Mark C. Sinclair
d5c3e43f20
Merge pull request #12882 from keymanapp/fix/common/web/types/1288-handle-invalid-order-and-tertiary-arguments-to-ElementString-fromString
fix(common/web): handle invalid order and tertiary arguments to ElementString.fromString()
2025-01-18 15:58:55 +00:00
Dr Mark C. Sinclair
d48ccda140 fix(common/web): add test cases for parseIntOrZero() 2025-01-13 12:05:39 +00:00
Dr Mark C. Sinclair
a279767acc fix(common/web): add ElementString.parseIntOrZero() method to handle invalid order and tertiary params 2025-01-13 11:37:58 +00:00
Dr Mark C. Sinclair
b9c7835fbf fix(common/web): add isEqual() method to StrsItem and use it in ElemElement.isEqual() 2025-01-09 14:45:35 +00:00
Dr Mark C. Sinclair
9d555a0639 chore(common/web): introduce initElementString() to remove dependency on fromStrings() in isEqual() tests 2025-01-09 14:12:56 +00:00
Dr Mark C. Sinclair
23b3de14d9 chore(common/web): clarify describe strings 2025-01-09 12:08:15 +00:00
Dr Mark C. Sinclair
86095d4b11 chore(common/web): add test case for string ElemElement 2025-01-09 12:03:51 +00:00
Dr Mark C. Sinclair
704486ae2e chore(common/web): add two more test cases for ElementString.isEqual() 2025-01-09 11:27:52 +00:00
Dr Mark C. Sinclair
c615f82db2 chore(common/web): add test cases for ElemElement.isEqual() and ElementStrings.isEqual() 2025-01-06 16:41:36 +00:00
Dr Mark C. Sinclair
80d2f49824 chore(common/web): add test case for quad string in ElementString.fromStrings() 2025-01-06 15:50:07 +00:00
Dr Mark C. Sinclair
e169ece9a3 chore(common/web): add two test cases for uset parse failures 2024-12-19 17:32:42 +00:00
Dr Mark C. Sinclair
58e5f0fe94 chore(common/web): stub the ElementParser.segment for uset 2024-12-19 17:21:05 +00:00