@maka/maka-cli 5.122.1 → 5.123.1
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.
- package/README.md +64 -64
- package/bundle/typescript/package.json +120 -120
- package/bundle/typescript/src/README.md +64 -64
- package/bundle/typescript/src/commands/aws/aws.command.js +2 -2
- package/bundle/typescript/src/commands/aws/ci.sub.cmd.js +5 -5
- package/bundle/typescript/src/commands/aws/ckp.sub.cmd.js +12 -12
- package/bundle/typescript/src/commands/aws/csg.sub.cmd.js +3 -3
- package/bundle/typescript/src/commands/aws/di.sub.cmd.js +8 -8
- package/bundle/typescript/src/commands/aws/rkp.sub.cmd.js +5 -5
- package/bundle/typescript/src/commands/aws/sth.sub.cmd.js +3 -3
- package/bundle/typescript/src/commands/aws/ti.sub.cmd.js +5 -5
- package/bundle/typescript/src/commands/build/build.js +16 -16
- package/bundle/typescript/src/commands/build/docker.sub.cmd.js +9 -9
- package/bundle/typescript/src/commands/create.js +36 -36
- package/bundle/typescript/src/commands/debug.js +4 -4
- package/bundle/typescript/src/commands/deploy/deploy.command.js +2 -2
- package/bundle/typescript/src/commands/deploy/galaxy.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/deploy/github.sub.cmd.js +8 -8
- package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js +14 -10
- package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/env/env.command.js +8 -8
- package/bundle/typescript/src/commands/env/set.sub.cmd.js +11 -11
- package/bundle/typescript/src/commands/game/sideQuest/adept-powers.d.ts +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +40 -14
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +33 -10
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +155 -72
- package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +15 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +33 -33
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +6 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +4 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js +7 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +3 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +9 -9
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +10 -10
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +7 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +95 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +443 -443
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -6
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +45 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js +120 -9
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/metatypes.d.ts +53 -0
- package/bundle/typescript/src/commands/game/sideQuest/metatypes.js +86 -0
- package/bundle/typescript/src/commands/game/sideQuest/metatypes.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +214 -208
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +215 -18
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +548 -117
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +9 -9
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +96 -4
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js +290 -11
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +556 -556
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +1447 -1447
- package/bundle/typescript/src/commands/game/sideQuest/skill-groups.d.ts +11 -1
- package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js +13 -1
- package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/skills.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/skills.js +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/skills.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/spells.d.ts +76 -3
- package/bundle/typescript/src/commands/game/sideQuest/spells.js +48 -21
- package/bundle/typescript/src/commands/game/sideQuest/spells.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +90 -82
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +277 -10
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +121 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +342 -18
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +65 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +74 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.d.ts +248 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js +38 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +14 -14
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +1 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js +1 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js +22 -12
- package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +1 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +33 -2
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/generate.js +2 -2
- package/bundle/typescript/src/commands/lint.js +10 -10
- package/bundle/typescript/src/commands/login.js +19 -1
- package/bundle/typescript/src/commands/login.js.map +1 -1
- package/bundle/typescript/src/commands/logout.js +16 -1
- package/bundle/typescript/src/commands/logout.js.map +1 -1
- package/bundle/typescript/src/commands/maka.cmd.js +26 -26
- package/bundle/typescript/src/commands/murder.js +14 -14
- package/bundle/typescript/src/commands/proxy.js +13 -13
- package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +6 -6
- package/bundle/typescript/src/commands/run/docker.sub.cmd.js +11 -11
- package/bundle/typescript/src/commands/run/run.command.js +24 -24
- package/bundle/typescript/src/commands/set/global.sub.cmd.js +8 -8
- package/bundle/typescript/src/commands/set/local.sub.cmd.js +2 -2
- package/bundle/typescript/src/commands/set/set.command.js +3 -3
- package/bundle/typescript/src/commands/testCmd/test.command.js +2 -2
- package/bundle/typescript/src/exec.js +0 -0
- package/bundle/typescript/src/generators/api.js +11 -11
- package/bundle/typescript/src/generators/collection.js +6 -6
- package/bundle/typescript/src/generators/hook.js +10 -10
- package/bundle/typescript/src/generators/kits/auth/auth.generator.js +2 -2
- package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js +612 -612
- package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js +48 -48
- package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.js +12 -12
- package/bundle/typescript/src/generators/kits/esri/esri.generator.js +3 -3
- package/bundle/typescript/src/generators/kits/esri/map.esri.gen.js +7 -7
- package/bundle/typescript/src/generators/kits/frames/frames.generator.js +16 -16
- package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.js +2 -2
- package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js +5 -5
- package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.js +4 -4
- package/bundle/typescript/src/generators/kits/mui/mui.generator.js +22 -22
- package/bundle/typescript/src/generators/services/translation.js +5 -5
- package/bundle/typescript/src/templates/aws/cloudformation/create-ec2-instance.template +14 -14
- package/bundle/typescript/src/templates/meteor/api/api.js +20 -20
- package/bundle/typescript/src/templates/meteor/api/api.js.ts +20 -20
- package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js +50 -50
- package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js.ts +55 -55
- package/bundle/typescript/src/templates/meteor/api/graphql-api.js +63 -63
- package/bundle/typescript/src/templates/meteor/api/graphql-api.js.ts +69 -69
- package/bundle/typescript/src/templates/meteor/api/methods.js +39 -39
- package/bundle/typescript/src/templates/meteor/api/methods.js.ts +40 -40
- package/bundle/typescript/src/templates/meteor/api/register-api.js +3 -3
- package/bundle/typescript/src/templates/meteor/api/register-api.js.ts +3 -3
- package/bundle/typescript/src/templates/meteor/api/resolvers.js +9 -9
- package/bundle/typescript/src/templates/meteor/api/resolvers.js.ts +9 -9
- package/bundle/typescript/src/templates/meteor/api/typeDefs.js +6 -6
- package/bundle/typescript/src/templates/meteor/api/typeDefs.js.ts +6 -6
- package/bundle/typescript/src/templates/meteor/app/client/body.html +3 -3
- package/bundle/typescript/src/templates/meteor/app/client/head.html +12 -12
- package/bundle/typescript/src/templates/meteor/app/client/main.js +15 -15
- package/bundle/typescript/src/templates/meteor/app/client/main.js.jsx +15 -15
- package/bundle/typescript/src/templates/meteor/app/client/main.js.ts +17 -17
- package/bundle/typescript/src/templates/meteor/app/client/main.js.tsx +17 -17
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.jsx +107 -107
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.ts +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.tsx +108 -108
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js +39 -39
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.jsx +33 -33
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.ts +24 -24
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.tsx +33 -33
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.jsx +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.ts +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.tsx +9 -9
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js +1 -1
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.jsx +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.ts +1 -1
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.tsx +20 -20
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.jsx +28 -28
- package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.tsx +28 -28
- package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js +1 -1
- package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.jsx +95 -95
- package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.tsx +98 -98
- package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js +24 -24
- package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js.ts +24 -24
- package/bundle/typescript/src/templates/meteor/app/lib/main.js +3 -3
- package/bundle/typescript/src/templates/meteor/app/lib/main.js.jsx +3 -3
- package/bundle/typescript/src/templates/meteor/app/lib/main.js.ts +3 -3
- package/bundle/typescript/src/templates/meteor/app/lib/main.js.tsx +3 -3
- package/bundle/typescript/src/templates/meteor/app/maka.d.ts +533 -533
- package/bundle/typescript/src/templates/meteor/app/meteor.d.ts +181 -181
- package/bundle/typescript/src/templates/meteor/app/public/manifest.json +27 -27
- package/bundle/typescript/src/templates/meteor/app/public/sw.js +30 -30
- package/bundle/typescript/src/templates/meteor/app/public/sw.js.jsx +30 -30
- package/bundle/typescript/src/templates/meteor/app/public/sw.js.ts +30 -30
- package/bundle/typescript/src/templates/meteor/app/public/sw.js.tsx +30 -30
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.jsx +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.ts +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.tsx +179 -179
- package/bundle/typescript/src/templates/meteor/app/server/main.js +13 -13
- package/bundle/typescript/src/templates/meteor/app/server/main.js.jsx +13 -13
- package/bundle/typescript/src/templates/meteor/app/server/main.js.ts +14 -14
- package/bundle/typescript/src/templates/meteor/app/server/main.js.tsx +14 -14
- package/bundle/typescript/src/templates/meteor/app/tsconfig.json +42 -42
- package/bundle/typescript/src/templates/meteor/collection/collection.js +51 -51
- package/bundle/typescript/src/templates/meteor/collection/collection.js.ts +55 -55
- package/bundle/typescript/src/templates/meteor/collection/tests.js +27 -27
- package/bundle/typescript/src/templates/meteor/collection/tests.js.ts +27 -27
- package/bundle/typescript/src/templates/meteor/config/deploy.sh.template +101 -101
- package/bundle/typescript/src/templates/meteor/config/docker-compose.yaml +17 -17
- package/bundle/typescript/src/templates/meteor/config/nginx.conf.template +31 -31
- package/bundle/typescript/src/templates/meteor/config/pm2.config.js +27 -27
- package/bundle/typescript/src/templates/meteor/config/process.env +5 -5
- package/bundle/typescript/src/templates/meteor/config/settings.json +11 -11
- package/bundle/typescript/src/templates/meteor/config/ssh.json +6 -6
- package/bundle/typescript/src/templates/meteor/dbc/config.js +70 -70
- package/bundle/typescript/src/templates/meteor/dbc/config.js.ts +70 -70
- package/bundle/typescript/src/templates/meteor/dbc/conn.js +37 -37
- package/bundle/typescript/src/templates/meteor/dbc/conn.js.ts +37 -37
- package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js +3 -3
- package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js.ts +3 -3
- package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +150 -150
- package/bundle/typescript/src/templates/meteor/method/method.js +48 -48
- package/bundle/typescript/src/templates/meteor/method/method.js.ts +48 -48
- package/bundle/typescript/src/templates/meteor/package/package.js +37 -37
- package/bundle/typescript/src/templates/meteor/package/package.js.jsx +37 -37
- package/bundle/typescript/src/templates/meteor/package/package.js.ts +36 -36
- package/bundle/typescript/src/templates/meteor/package/package.js.tsx +37 -37
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.jsx +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.ts +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.tsx +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.jsx +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.ts +5 -5
- package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.tsx +5 -5
- package/bundle/typescript/src/templates/meteor/project/.maka/config.json +29 -29
- package/bundle/typescript/src/templates/meteor/project/README.md +33 -33
- package/bundle/typescript/src/templates/meteor/project/build/README +4 -4
- package/bundle/typescript/src/templates/meteor/project/gitignore +10 -10
- package/bundle/typescript/src/templates/meteor/project/package.json +29 -29
- package/bundle/typescript/src/templates/meteor/publish/publish.js +7 -7
- package/bundle/typescript/src/templates/meteor/publish/publish.js.ts +7 -7
- package/bundle/typescript/src/templates/meteor/service/logger/logger.js +27 -27
- package/bundle/typescript/src/templates/meteor/service/logger/logger.js.ts +27 -27
- package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css +5 -5
- package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css.less +5 -5
- package/bundle/typescript/src/templates/meteor/template/template-tests.js +1 -1
- package/bundle/typescript/src/templates/meteor/template/template-tests.js.jsx +55 -55
- package/bundle/typescript/src/templates/meteor/template/template-tests.js.ts +1 -1
- package/bundle/typescript/src/templates/meteor/template/template-tests.js.tsx +55 -55
- package/bundle/typescript/src/templates/meteor/template/template.css +3 -3
- package/bundle/typescript/src/templates/meteor/template/template.css.less +3 -3
- package/bundle/typescript/src/templates/meteor/template/template.css.scss +3 -3
- package/bundle/typescript/src/templates/meteor/template/template.html +5 -5
- package/bundle/typescript/src/templates/meteor/template/template.js +20 -20
- package/bundle/typescript/src/templates/meteor/template/template.js.jsx +77 -77
- package/bundle/typescript/src/templates/meteor/template/template.js.ts +1 -1
- package/bundle/typescript/src/templates/meteor/template/template.js.tsx +89 -89
- package/bundle/typescript/src/templates/react/component/component.css +6 -6
- package/bundle/typescript/src/templates/react/component/component.css.less +6 -6
- package/bundle/typescript/src/templates/react/component/component.css.scss +3 -3
- package/bundle/typescript/src/templates/react/component/component.js.jsx +59 -59
- package/bundle/typescript/src/templates/react/component/component.js.tsx +65 -65
- package/bundle/typescript/src/templates/react/hook/hook.css +3 -3
- package/bundle/typescript/src/templates/react/hook/hook.css.scss +3 -3
- package/bundle/typescript/src/templates/react/hook/hook.js.jsx +19 -19
- package/bundle/typescript/src/templates/react/hook/hook.js.tsx +19 -19
- package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.jsx +306 -306
- package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.tsx +350 -350
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.jsx +178 -178
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.tsx +178 -178
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.jsx +59 -59
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.tsx +67 -67
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.jsx +273 -273
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.tsx +275 -275
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.jsx +182 -182
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.tsx +199 -199
- package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.jsx +138 -138
- package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.tsx +153 -153
- package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.jsx +29 -29
- package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.tsx +32 -32
- package/bundle/typescript/src/templates/react/kit/frames/frames-demo.css +63 -63
- package/bundle/typescript/src/templates/react/kit/frames/frames-demo.jsx +153 -153
- package/bundle/typescript/src/templates/react/kit/frames/frames-demo.tsx +164 -164
- package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.css +105 -105
- package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.jsx +158 -158
- package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.tsx +166 -166
- package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.jsx +34 -34
- package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.tsx +33 -33
- package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.jsx +53 -53
- package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.tsx +53 -53
- package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.jsx +25 -25
- package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.tsx +25 -25
- package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.jsx +41 -41
- package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +34 -34
- package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.jsx +33 -33
- package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.tsx +33 -33
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.jsx +71 -71
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.tsx +71 -71
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.jsx +123 -123
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.tsx +123 -123
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.jsx +56 -56
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.tsx +74 -74
- package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.jsx +43 -43
- package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.tsx +43 -43
- package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.jsx +121 -121
- package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.tsx +117 -117
- package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.jsx +41 -41
- package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.tsx +41 -41
- package/bundle/typescript/src/templates/react/route/route.js +8 -8
- package/bundle/typescript/src/templates/react/route/route.js.jsx +5 -5
- package/bundle/typescript/src/templates/react/route/route.js.ts +8 -8
- package/bundle/typescript/src/templates/react/route/route.js.tsx +5 -5
- package/bundle/typescript/src/templates/react/test/test.js +1 -1
- package/bundle/typescript/src/templates/react/test/test.js.jsx +40 -40
- package/bundle/typescript/src/templates/react/test/test.js.ts +1 -1
- package/bundle/typescript/src/templates/react/test/test.js.tsx +40 -40
- package/bundle/typescript/src/templates/service/docker/Dockerfile +54 -54
- package/bundle/typescript/src/templates/service/eslint/babel.config.js +16 -16
- package/bundle/typescript/src/templates/service/eslint/config.eslint.js +69 -69
- package/bundle/typescript/src/templates/service/i18n/i18n.js +33 -33
- package/bundle/typescript/src/templates/service/i18n/i18n.js.ts +33 -33
- package/bundle/typescript/src/templates/service/i18n/locales.js +3 -3
- package/bundle/typescript/src/templates/service/i18n/locales.js.ts +3 -3
- package/bundle/typescript/src/templates/service/openssl/openssl.conf +22 -22
- package/bundle/typescript/src/templates/service/test/jest/jest.config.js +24 -24
- package/bundle/typescript/src/templates/service/test/jest/jest.setup.js +7 -7
- package/bundle/typescript/src/tools/guarded-file/guarded-file.class.d.ts +59 -0
- package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js +120 -0
- package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js.map +1 -0
- package/bundle/typescript/src/tools/mpi/mpi.class.d.ts +16 -0
- package/bundle/typescript/src/tools/mpi/mpi.class.js +25 -7
- package/bundle/typescript/src/tools/mpi/mpi.class.js.map +1 -1
- package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +1 -0
- package/bundle/typescript/src/tools/mpi/sdk-runtime.js +29 -0
- package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +1 -1
- package/package.json +120 -120
|
@@ -1,533 +1,533 @@
|
|
|
1
|
-
interface Window { cordova: any; }
|
|
2
|
-
|
|
3
|
-
declare module "*.css";
|
|
4
|
-
|
|
5
|
-
// Meteor's server-injected runtime config global. Genuinely undocumented --
|
|
6
|
-
// not part of @types/meteor's app-facing API coverage.
|
|
7
|
-
declare var __meteor_runtime_config__: any;
|
|
8
|
-
|
|
9
|
-
// No official types; not covered by @types/meteor.
|
|
10
|
-
declare module 'meteor/autoupdate' {
|
|
11
|
-
export const Autoupdate: any;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// Adds the one real WebApp member @types/meteor doesn't have yet. This
|
|
15
|
-
// merges additively with @types/meteor's own `declare module "meteor/webapp"`
|
|
16
|
-
// -- it must not redeclare anything already defined there.
|
|
17
|
-
declare module 'meteor/webapp' {
|
|
18
|
-
namespace WebApp {
|
|
19
|
-
function addHtmlAttributeHook(callback: (request?: any) => Record<string, string>): void;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// First-party "maka" namespaced Atmosphere package; no official types.
|
|
24
|
-
declare module 'meteor/maka:react-tracker' {
|
|
25
|
-
export const useTracker: any;
|
|
26
|
-
export const withTracker: any;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// alanning:roles is a widely-used community Atmosphere package with no
|
|
30
|
-
// official types.
|
|
31
|
-
declare module 'meteor/alanning:roles' {
|
|
32
|
-
export namespace Roles {
|
|
33
|
-
function getRolesForUser(userId: string, options?: any): string[];
|
|
34
|
-
function userIsInRole(userId: string, roles: string | string[], group?: string): boolean;
|
|
35
|
-
function addUsersToRoles(userIds: string | string[], roles: string | string[], group?: string): void;
|
|
36
|
-
function removeUsersFromRoles(userIds: string | string[], roles: string | string[], group?: string): void;
|
|
37
|
-
function createRole(role: string, options?: any): string;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Meteor.roleAssignment is the Mongo collection alanning:roles publishes
|
|
42
|
-
// role/user links through -- an @types/meteor gap, additive only.
|
|
43
|
-
declare module 'meteor/meteor' {
|
|
44
|
-
import { Mongo } from 'meteor/mongo';
|
|
45
|
-
|
|
46
|
-
namespace Meteor {
|
|
47
|
-
var roleAssignment: Mongo.Collection<any>;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
declare module 'meteor/maka:http' {
|
|
52
|
-
export const HTTP: {
|
|
53
|
-
/**
|
|
54
|
-
* Namespace for HTTP functionalities on the server.
|
|
55
|
-
*/
|
|
56
|
-
server: typeof HTTPServer;
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Namespace for HTTP functionalities on the server.
|
|
60
|
-
*/
|
|
61
|
-
client: typeof HTTPClient;
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Namespace for HTTP.call on client or server.
|
|
65
|
-
*/
|
|
66
|
-
call: typeof HTTPClient.call | typeof HTTPServer.call;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Namespace for HTTP functionalities shared by both server and client.
|
|
70
|
-
*/
|
|
71
|
-
del: typeof HTTPCommon.del;
|
|
72
|
-
get: typeof HTTPCommon.get;
|
|
73
|
-
post: typeof HTTPCommon.post;
|
|
74
|
-
put: typeof HTTPCommon.put;
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Namespace for HTTP functionalities on the server.
|
|
79
|
-
*/
|
|
80
|
-
namespace HTTPServer {
|
|
81
|
-
/**
|
|
82
|
-
* Represents the options for an HTTP call on the server.
|
|
83
|
-
* @typeparam T The type of the `data` field in the options, default is `any`.
|
|
84
|
-
*/
|
|
85
|
-
interface Options<T = any> {
|
|
86
|
-
data?: T;
|
|
87
|
-
params?: { [key: string]: any };
|
|
88
|
-
headers?: { [key: string]: string };
|
|
89
|
-
timeout?: number;
|
|
90
|
-
retryDelay?: number;
|
|
91
|
-
maxRetries?: number;
|
|
92
|
-
rawResponse?: boolean;
|
|
93
|
-
followRedirects?: boolean;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Performs an HTTP call on the server.
|
|
98
|
-
* @param method The HTTP method (e.g., 'GET', 'POST').
|
|
99
|
-
* @param url The URL to which the request is sent.
|
|
100
|
-
* @param options The options for the HTTP request.
|
|
101
|
-
* @returns A promise that resolves with the HTTP response.
|
|
102
|
-
*/
|
|
103
|
-
function call(
|
|
104
|
-
method: string,
|
|
105
|
-
url: string,
|
|
106
|
-
optionsOrCallback?: HTTPServer.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
107
|
-
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
108
|
-
): Promise<HTTPCommon.HTTPResponse>;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Namespace for HTTP functionalities on the client.
|
|
113
|
-
*/
|
|
114
|
-
namespace HTTPClient {
|
|
115
|
-
/**
|
|
116
|
-
* Represents the options for an HTTP call on the client.
|
|
117
|
-
* @typeparam T The type of the `data` field in the options, default is `any`.
|
|
118
|
-
*/
|
|
119
|
-
interface Options<T = any> {
|
|
120
|
-
data?: T;
|
|
121
|
-
params?: { [key: string]: any };
|
|
122
|
-
headers?: { [key: string]: string };
|
|
123
|
-
rawResponse?: boolean;
|
|
124
|
-
retryDelay?: number;
|
|
125
|
-
maxRetries?: number;
|
|
126
|
-
timeout?: number;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Performs an HTTP call on the client.
|
|
131
|
-
* @param method The HTTP method (e.g., 'GET', 'POST').
|
|
132
|
-
* @param url The URL to which the request is sent.
|
|
133
|
-
* @param options The options for the HTTP request.
|
|
134
|
-
* @returns A promise that resolves with the HTTP response.
|
|
135
|
-
*/
|
|
136
|
-
function call(
|
|
137
|
-
method: string,
|
|
138
|
-
url: string,
|
|
139
|
-
optionsOrCallback?: HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
140
|
-
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
141
|
-
): Promise<HTTPCommon.HTTPResponse>;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Common namespace for HTTP functionalities shared by both server and client.
|
|
146
|
-
*/
|
|
147
|
-
namespace HTTPCommon {
|
|
148
|
-
/**
|
|
149
|
-
* Represents the HTTP response returned by an HTTP call.
|
|
150
|
-
* @typeparam T The type of the `data` field in the response, default is `any`.
|
|
151
|
-
*/
|
|
152
|
-
interface HTTPResponse<T = any> {
|
|
153
|
-
statusCode: number;
|
|
154
|
-
headers: { [id: string]: string };
|
|
155
|
-
data: T;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
interface RequestInterceptor {
|
|
159
|
-
(
|
|
160
|
-
method: string,
|
|
161
|
-
url: string,
|
|
162
|
-
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
163
|
-
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
164
|
-
): Promise<{ method: string, url: string; options: HTTPServer.Options | HTTPClient.Options }>;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
interface ResponseInterceptor {
|
|
168
|
-
(response: HTTPCommon.HTTPResponse): Promise<HTTPCommon.HTTPResponse>;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// Documentation for del, get, post, put follows a similar pattern.
|
|
172
|
-
function del<T = any>(
|
|
173
|
-
url: string,
|
|
174
|
-
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
175
|
-
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
176
|
-
): Promise<HTTPCommon.HTTPResponse<T>>;
|
|
177
|
-
function get<T = any>(
|
|
178
|
-
url: string,
|
|
179
|
-
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
180
|
-
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
181
|
-
): Promise<HTTPCommon.HTTPResponse<T>>;
|
|
182
|
-
function post<T = any>(
|
|
183
|
-
url: string,
|
|
184
|
-
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
185
|
-
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
186
|
-
): Promise<HTTPCommon.HTTPResponse<T>>;
|
|
187
|
-
function put<T = any>(
|
|
188
|
-
url: string,
|
|
189
|
-
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
190
|
-
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
191
|
-
): Promise<HTTPCommon.HTTPResponse<T>>;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
declare module 'meteor/maka:rest' {
|
|
197
|
-
import { IncomingMessage, ServerResponse } from 'http';
|
|
198
|
-
import { Meteor } from 'meteor/meteor';
|
|
199
|
-
|
|
200
|
-
// rate-limiter-flexible and @redis/client are optional peer packages used
|
|
201
|
-
// only by maka:rest's rate-limiting feature -- they're bundled by the
|
|
202
|
-
// Meteor package itself, not something every app needs to npm install
|
|
203
|
-
// just to typecheck. Typed as `any` rather than pulling those packages in
|
|
204
|
-
// as devDependencies for every scaffolded project.
|
|
205
|
-
type IRateLimiterOptions = any;
|
|
206
|
-
type RateLimiterMemory = any;
|
|
207
|
-
type RateLimiterRedis = any;
|
|
208
|
-
type RedisClientType = any;
|
|
209
|
-
|
|
210
|
-
export type LoginType = 'default' | null;
|
|
211
|
-
|
|
212
|
-
export interface MakaRestOptions {
|
|
213
|
-
debug?: boolean;
|
|
214
|
-
paths: string[];
|
|
215
|
-
apiRoot: string; // Root of the API, e.g., 'api'
|
|
216
|
-
apiPath?: string; // Additional path after the version, required unless isRoot is true
|
|
217
|
-
version: string; // API version, e.g., 'v1'
|
|
218
|
-
isRoot?: boolean; // If true, this instance represents the root of the API
|
|
219
|
-
prettyJson: boolean;
|
|
220
|
-
auth: {
|
|
221
|
-
token: string;
|
|
222
|
-
user: (http: IncomingMessage) => { token?: string };
|
|
223
|
-
};
|
|
224
|
-
defaultHeaders: Record<string, string>;
|
|
225
|
-
enableCors: boolean;
|
|
226
|
-
defaultOptionsEndpoint?: () => RouteOptions;
|
|
227
|
-
rateLimitOptions?: IRateLimiterOptions
|
|
228
|
-
& {
|
|
229
|
-
useRedis?: boolean;
|
|
230
|
-
redis?: RedisClientType;
|
|
231
|
-
keyGenerator?: (req: Request) => string;
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
export default class MakaRest {
|
|
236
|
-
private readonly _routes: Route[];
|
|
237
|
-
private readonly _config: MakaRestOptions;
|
|
238
|
-
private readonly rateLimiter?: RateLimiterMemory | RateLimiterRedis;
|
|
239
|
-
private readonly partialApiPath: string;
|
|
240
|
-
static defaultAuthInitialized: boolean;
|
|
241
|
-
request: Request;
|
|
242
|
-
response: Response;
|
|
243
|
-
constructor(options: Partial<MakaRestOptions>);
|
|
244
|
-
|
|
245
|
-
static interceptorType: (req: IncomingMessage, res: Response, next: Function) => void;
|
|
246
|
-
static interceptors: Array<typeof MakaRest.interceptorType>;
|
|
247
|
-
static addInterceptor(interceptor: typeof MakaRest.interceptorType): void;
|
|
248
|
-
static executeInterceptors(req: IncomingMessage, res: Response, next: Function, index?: number): void;
|
|
249
|
-
static auth: {
|
|
250
|
-
loginType: LoginType;
|
|
251
|
-
onLoggedIn: (req: IncomingMessage) => void;
|
|
252
|
-
onLoggedOut: (req: IncomingMessage) => void;
|
|
253
|
-
onLoginFailure: (req: IncomingMessage, reason?: string) => void;
|
|
254
|
-
};
|
|
255
|
-
|
|
256
|
-
private configureCors(): void;
|
|
257
|
-
private normalizeApiPath(options: Partial<MakaRestOptions>): string;
|
|
258
|
-
private initializeWildcardRoutes(): void;
|
|
259
|
-
private initializeDefaultAuthEndpoints(): void;
|
|
260
|
-
private login(incomingMessage: IncomingMessage): Promise<StatusResponse>;
|
|
261
|
-
private logout(incomingMessage: IncomingMessage): Promise<StatusResponse>;
|
|
262
|
-
private logoutAll(incomingMessage: IncomingMessage): Promise<StatusResponse>;
|
|
263
|
-
|
|
264
|
-
addRoute(path: string, options: RouteOptions, endpoints?: { [method: string]: EndpointOptions }): void;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
export interface Password {
|
|
268
|
-
digest: string;
|
|
269
|
-
algorithm: 'sha-256';
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
export interface AuthToken {
|
|
273
|
-
authToken: string;
|
|
274
|
-
userId: string;
|
|
275
|
-
when: Date;
|
|
276
|
-
error?: string;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
export interface BodyParams {
|
|
280
|
-
username?: string;
|
|
281
|
-
email?: string;
|
|
282
|
-
password: string;
|
|
283
|
-
hashed?: boolean;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
export class Auth {
|
|
287
|
-
static loginWithPassword(user: Partial<Meteor.User>, password: string | Password): Promise<AuthToken>;
|
|
288
|
-
private static validateUser(user: Partial<Meteor.User>): void;
|
|
289
|
-
private static validatePassword(password: string | Password): void;
|
|
290
|
-
static getUserQuerySelector(user: Partial<Meteor.User>): Partial<Meteor.User>;
|
|
291
|
-
static extractUser(body: BodyParams): Partial<Meteor.User>;
|
|
292
|
-
static extractPassword(body: BodyParams): string | Password;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
export interface StatusResponse {
|
|
296
|
-
statusCode: number;
|
|
297
|
-
status: string;
|
|
298
|
-
data: any;
|
|
299
|
-
headers?: Record<string, string>;
|
|
300
|
-
extra?: any;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
export class Codes {
|
|
304
|
-
private static generateResponse(statusCode: number, body: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
305
|
-
static continue100(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
306
|
-
static success200(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
307
|
-
static success201(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
308
|
-
static noContent204(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
309
|
-
static movedPermanently301(redirectUrl: string, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
310
|
-
static badRequest400(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
311
|
-
static unauthorized401(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
312
|
-
static forbidden403(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
313
|
-
static notFound404(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
314
|
-
static notAllowed405(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
315
|
-
static unsupported415(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
316
|
-
static teapot418(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
317
|
-
static tooManyRequests429(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
318
|
-
static serverError500(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
export interface RouteHandler {
|
|
322
|
-
method: string;
|
|
323
|
-
path: string;
|
|
324
|
-
handler: (req: IncomingMessage, res: ServerResponse) => void;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
export interface Middleware {
|
|
328
|
-
(req: IncomingMessage, res: ServerResponse, next: Function): void;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
export class JsonRoutes {
|
|
332
|
-
private static instance: JsonRoutes;
|
|
333
|
-
private routes: RouteHandler[];
|
|
334
|
-
private middlewares: Middleware[];
|
|
335
|
-
private errorMiddlewares: Middleware[];
|
|
336
|
-
private responseHeaders: Record<string, string>;
|
|
337
|
-
|
|
338
|
-
private constructor();
|
|
339
|
-
|
|
340
|
-
public static getInstance(): JsonRoutes;
|
|
341
|
-
public static add(method: string, path: string, handler: (req: IncomingMessage, res: ServerResponse) => void): void;
|
|
342
|
-
public static use(middleware: Middleware): void;
|
|
343
|
-
public static useErrorMiddleware(middleware: Middleware): void;
|
|
344
|
-
public static setResponseHeaders(headers: Record<string, string>): void;
|
|
345
|
-
public static sendResult(res: ServerResponse, options: { code?: number; headers?: Record<string, string>; data?: any }): void;
|
|
346
|
-
private setHeaders(res: ServerResponse, headers: Record<string, string>): void;
|
|
347
|
-
private writeJsonToBody(res: ServerResponse, json: any): void;
|
|
348
|
-
private matchRoute(req: IncomingMessage): RouteHandler | undefined;
|
|
349
|
-
private parseJsonBody(req: IncomingMessage): Promise<any>;
|
|
350
|
-
private processRequest(req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
351
|
-
private routeRequest(req: IncomingMessage, res: ServerResponse): void;
|
|
352
|
-
private handleError(error: any, res: ServerResponse): void;
|
|
353
|
-
public static processRoutes(apiRoot: string): void;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
export interface EndpointContext {
|
|
357
|
-
urlParams: any;
|
|
358
|
-
queryParams: any;
|
|
359
|
-
bodyParams: any;
|
|
360
|
-
request: Request;
|
|
361
|
-
response: Response;
|
|
362
|
-
done: () => void;
|
|
363
|
-
user?: Meteor.User;
|
|
364
|
-
userId?: string;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
export interface EndpointOptions {
|
|
368
|
-
authRequired?: boolean;
|
|
369
|
-
roleRequired?: string[];
|
|
370
|
-
scopeRequired?: string[];
|
|
371
|
-
action: (context: EndpointContext) => Promise<any>;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
export interface RouteOptions {
|
|
375
|
-
[key: string]: any; // Define specific routes here (e.g., get, post, put, del)
|
|
376
|
-
rateLimit?: {
|
|
377
|
-
points?: number;
|
|
378
|
-
duration?: number;
|
|
379
|
-
};
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
export class Route {
|
|
383
|
-
private api: MakaRest;
|
|
384
|
-
private path: string;
|
|
385
|
-
private options: RouteOptions;
|
|
386
|
-
private endpoints: { [method: string]: EndpointOptions };
|
|
387
|
-
private jsonRoutes: JsonRoutes;
|
|
388
|
-
private rateLimiter?: RateLimiterMemory | RateLimiterRedis;
|
|
389
|
-
|
|
390
|
-
constructor(api: MakaRest, path: string, options: RouteOptions, endpoints: { [method: string]: EndpointOptions });
|
|
391
|
-
|
|
392
|
-
addToApi(onRoot?: boolean): void;
|
|
393
|
-
|
|
394
|
-
private _resolveEndpoints(): void;
|
|
395
|
-
private _configureEndpoints(): void;
|
|
396
|
-
private _callEndpoint(endpointContext: EndpointContext, endpoint: EndpointOptions): Promise<StatusResponse>;
|
|
397
|
-
private _authAccepted(endpointContext: EndpointContext, endpoint: EndpointOptions): Promise<{ success: boolean; data?: any }>;
|
|
398
|
-
private _authenticate(endpointContext: EndpointContext): Promise<{ success: boolean; data?: any }>;
|
|
399
|
-
private _roleAccepted(endpointContext: EndpointContext, endpoint: EndpointOptions): boolean;
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
declare module "history" {
|
|
404
|
-
export let createMemoryHistory: any;
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
declare module "styled-components" {
|
|
408
|
-
export let ServerStyleSheet: any;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
declare module "winston" {
|
|
412
|
-
export let winston: any;
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
declare module "winston-transport" {
|
|
416
|
-
export let index: any;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
type Props = {
|
|
420
|
-
children: any;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
type UpdateModifier = {
|
|
424
|
-
$set: object;
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
declare namespace JSX {
|
|
428
|
-
interface IntrinsicElements {
|
|
429
|
-
a: any;
|
|
430
|
-
abbr: any;
|
|
431
|
-
address: any;
|
|
432
|
-
area: any;
|
|
433
|
-
article: any;
|
|
434
|
-
aside: any;
|
|
435
|
-
audio: any;
|
|
436
|
-
base: any;
|
|
437
|
-
bdi: any;
|
|
438
|
-
bdo: any;
|
|
439
|
-
blockquote: any;
|
|
440
|
-
body: any;
|
|
441
|
-
button: any;
|
|
442
|
-
canvas: any;
|
|
443
|
-
caption: any;
|
|
444
|
-
cite: any;
|
|
445
|
-
code: any;
|
|
446
|
-
col: any;
|
|
447
|
-
colgroup: any;
|
|
448
|
-
data: any;
|
|
449
|
-
datalist: any;
|
|
450
|
-
dd: any;
|
|
451
|
-
del: any;
|
|
452
|
-
details: any;
|
|
453
|
-
dfn: any;
|
|
454
|
-
dialog: any;
|
|
455
|
-
div: any;
|
|
456
|
-
dl: any;
|
|
457
|
-
dt: any;
|
|
458
|
-
em: any;
|
|
459
|
-
embed: any;
|
|
460
|
-
fieldset: any;
|
|
461
|
-
figcaption: any;
|
|
462
|
-
figure: any;
|
|
463
|
-
footer: any;
|
|
464
|
-
form: any;
|
|
465
|
-
h1: any;
|
|
466
|
-
h2: any;
|
|
467
|
-
h3: any;
|
|
468
|
-
h4: any;
|
|
469
|
-
h5: any;
|
|
470
|
-
h6: any;
|
|
471
|
-
head: any;
|
|
472
|
-
header: any;
|
|
473
|
-
hr: any;
|
|
474
|
-
html: any;
|
|
475
|
-
i: any;
|
|
476
|
-
img: any;
|
|
477
|
-
input: any;
|
|
478
|
-
ins: any;
|
|
479
|
-
kbd: any;
|
|
480
|
-
label: any;
|
|
481
|
-
legend: any;
|
|
482
|
-
li: any;
|
|
483
|
-
link: any;
|
|
484
|
-
main: any;
|
|
485
|
-
map: any;
|
|
486
|
-
mark: any;
|
|
487
|
-
meta: any;
|
|
488
|
-
meter: any;
|
|
489
|
-
nav: any;
|
|
490
|
-
object: any;
|
|
491
|
-
ol: any;
|
|
492
|
-
optgroup: any;
|
|
493
|
-
option: any;
|
|
494
|
-
output: any;
|
|
495
|
-
p: any;
|
|
496
|
-
param: any;
|
|
497
|
-
picture: any;
|
|
498
|
-
pre: any;
|
|
499
|
-
progress: any;
|
|
500
|
-
q: any;
|
|
501
|
-
rp: any;
|
|
502
|
-
ruby: any;
|
|
503
|
-
s: any;
|
|
504
|
-
samp: any;
|
|
505
|
-
section: any;
|
|
506
|
-
select: any;
|
|
507
|
-
small: any;
|
|
508
|
-
source: any;
|
|
509
|
-
span: any;
|
|
510
|
-
strong: any;
|
|
511
|
-
style: any;
|
|
512
|
-
sub: any;
|
|
513
|
-
summary: any;
|
|
514
|
-
sup: any;
|
|
515
|
-
svg: any;
|
|
516
|
-
table: any;
|
|
517
|
-
tbody: any;
|
|
518
|
-
td: any;
|
|
519
|
-
template: any;
|
|
520
|
-
textarea: any;
|
|
521
|
-
tfoot: any;
|
|
522
|
-
th: any;
|
|
523
|
-
thead: any;
|
|
524
|
-
time: any;
|
|
525
|
-
tr: any;
|
|
526
|
-
track: any;
|
|
527
|
-
u: any;
|
|
528
|
-
ul: any;
|
|
529
|
-
var: any;
|
|
530
|
-
video: any;
|
|
531
|
-
wbr: any;
|
|
532
|
-
}
|
|
533
|
-
}
|
|
1
|
+
interface Window { cordova: any; }
|
|
2
|
+
|
|
3
|
+
declare module "*.css";
|
|
4
|
+
|
|
5
|
+
// Meteor's server-injected runtime config global. Genuinely undocumented --
|
|
6
|
+
// not part of @types/meteor's app-facing API coverage.
|
|
7
|
+
declare var __meteor_runtime_config__: any;
|
|
8
|
+
|
|
9
|
+
// No official types; not covered by @types/meteor.
|
|
10
|
+
declare module 'meteor/autoupdate' {
|
|
11
|
+
export const Autoupdate: any;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Adds the one real WebApp member @types/meteor doesn't have yet. This
|
|
15
|
+
// merges additively with @types/meteor's own `declare module "meteor/webapp"`
|
|
16
|
+
// -- it must not redeclare anything already defined there.
|
|
17
|
+
declare module 'meteor/webapp' {
|
|
18
|
+
namespace WebApp {
|
|
19
|
+
function addHtmlAttributeHook(callback: (request?: any) => Record<string, string>): void;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// First-party "maka" namespaced Atmosphere package; no official types.
|
|
24
|
+
declare module 'meteor/maka:react-tracker' {
|
|
25
|
+
export const useTracker: any;
|
|
26
|
+
export const withTracker: any;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// alanning:roles is a widely-used community Atmosphere package with no
|
|
30
|
+
// official types.
|
|
31
|
+
declare module 'meteor/alanning:roles' {
|
|
32
|
+
export namespace Roles {
|
|
33
|
+
function getRolesForUser(userId: string, options?: any): string[];
|
|
34
|
+
function userIsInRole(userId: string, roles: string | string[], group?: string): boolean;
|
|
35
|
+
function addUsersToRoles(userIds: string | string[], roles: string | string[], group?: string): void;
|
|
36
|
+
function removeUsersFromRoles(userIds: string | string[], roles: string | string[], group?: string): void;
|
|
37
|
+
function createRole(role: string, options?: any): string;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Meteor.roleAssignment is the Mongo collection alanning:roles publishes
|
|
42
|
+
// role/user links through -- an @types/meteor gap, additive only.
|
|
43
|
+
declare module 'meteor/meteor' {
|
|
44
|
+
import { Mongo } from 'meteor/mongo';
|
|
45
|
+
|
|
46
|
+
namespace Meteor {
|
|
47
|
+
var roleAssignment: Mongo.Collection<any>;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
declare module 'meteor/maka:http' {
|
|
52
|
+
export const HTTP: {
|
|
53
|
+
/**
|
|
54
|
+
* Namespace for HTTP functionalities on the server.
|
|
55
|
+
*/
|
|
56
|
+
server: typeof HTTPServer;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Namespace for HTTP functionalities on the server.
|
|
60
|
+
*/
|
|
61
|
+
client: typeof HTTPClient;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Namespace for HTTP.call on client or server.
|
|
65
|
+
*/
|
|
66
|
+
call: typeof HTTPClient.call | typeof HTTPServer.call;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Namespace for HTTP functionalities shared by both server and client.
|
|
70
|
+
*/
|
|
71
|
+
del: typeof HTTPCommon.del;
|
|
72
|
+
get: typeof HTTPCommon.get;
|
|
73
|
+
post: typeof HTTPCommon.post;
|
|
74
|
+
put: typeof HTTPCommon.put;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Namespace for HTTP functionalities on the server.
|
|
79
|
+
*/
|
|
80
|
+
namespace HTTPServer {
|
|
81
|
+
/**
|
|
82
|
+
* Represents the options for an HTTP call on the server.
|
|
83
|
+
* @typeparam T The type of the `data` field in the options, default is `any`.
|
|
84
|
+
*/
|
|
85
|
+
interface Options<T = any> {
|
|
86
|
+
data?: T;
|
|
87
|
+
params?: { [key: string]: any };
|
|
88
|
+
headers?: { [key: string]: string };
|
|
89
|
+
timeout?: number;
|
|
90
|
+
retryDelay?: number;
|
|
91
|
+
maxRetries?: number;
|
|
92
|
+
rawResponse?: boolean;
|
|
93
|
+
followRedirects?: boolean;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Performs an HTTP call on the server.
|
|
98
|
+
* @param method The HTTP method (e.g., 'GET', 'POST').
|
|
99
|
+
* @param url The URL to which the request is sent.
|
|
100
|
+
* @param options The options for the HTTP request.
|
|
101
|
+
* @returns A promise that resolves with the HTTP response.
|
|
102
|
+
*/
|
|
103
|
+
function call(
|
|
104
|
+
method: string,
|
|
105
|
+
url: string,
|
|
106
|
+
optionsOrCallback?: HTTPServer.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
107
|
+
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
108
|
+
): Promise<HTTPCommon.HTTPResponse>;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Namespace for HTTP functionalities on the client.
|
|
113
|
+
*/
|
|
114
|
+
namespace HTTPClient {
|
|
115
|
+
/**
|
|
116
|
+
* Represents the options for an HTTP call on the client.
|
|
117
|
+
* @typeparam T The type of the `data` field in the options, default is `any`.
|
|
118
|
+
*/
|
|
119
|
+
interface Options<T = any> {
|
|
120
|
+
data?: T;
|
|
121
|
+
params?: { [key: string]: any };
|
|
122
|
+
headers?: { [key: string]: string };
|
|
123
|
+
rawResponse?: boolean;
|
|
124
|
+
retryDelay?: number;
|
|
125
|
+
maxRetries?: number;
|
|
126
|
+
timeout?: number;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Performs an HTTP call on the client.
|
|
131
|
+
* @param method The HTTP method (e.g., 'GET', 'POST').
|
|
132
|
+
* @param url The URL to which the request is sent.
|
|
133
|
+
* @param options The options for the HTTP request.
|
|
134
|
+
* @returns A promise that resolves with the HTTP response.
|
|
135
|
+
*/
|
|
136
|
+
function call(
|
|
137
|
+
method: string,
|
|
138
|
+
url: string,
|
|
139
|
+
optionsOrCallback?: HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
140
|
+
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
141
|
+
): Promise<HTTPCommon.HTTPResponse>;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Common namespace for HTTP functionalities shared by both server and client.
|
|
146
|
+
*/
|
|
147
|
+
namespace HTTPCommon {
|
|
148
|
+
/**
|
|
149
|
+
* Represents the HTTP response returned by an HTTP call.
|
|
150
|
+
* @typeparam T The type of the `data` field in the response, default is `any`.
|
|
151
|
+
*/
|
|
152
|
+
interface HTTPResponse<T = any> {
|
|
153
|
+
statusCode: number;
|
|
154
|
+
headers: { [id: string]: string };
|
|
155
|
+
data: T;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
interface RequestInterceptor {
|
|
159
|
+
(
|
|
160
|
+
method: string,
|
|
161
|
+
url: string,
|
|
162
|
+
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
163
|
+
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
164
|
+
): Promise<{ method: string, url: string; options: HTTPServer.Options | HTTPClient.Options }>;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
interface ResponseInterceptor {
|
|
168
|
+
(response: HTTPCommon.HTTPResponse): Promise<HTTPCommon.HTTPResponse>;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Documentation for del, get, post, put follows a similar pattern.
|
|
172
|
+
function del<T = any>(
|
|
173
|
+
url: string,
|
|
174
|
+
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
175
|
+
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
176
|
+
): Promise<HTTPCommon.HTTPResponse<T>>;
|
|
177
|
+
function get<T = any>(
|
|
178
|
+
url: string,
|
|
179
|
+
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
180
|
+
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
181
|
+
): Promise<HTTPCommon.HTTPResponse<T>>;
|
|
182
|
+
function post<T = any>(
|
|
183
|
+
url: string,
|
|
184
|
+
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
185
|
+
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
186
|
+
): Promise<HTTPCommon.HTTPResponse<T>>;
|
|
187
|
+
function put<T = any>(
|
|
188
|
+
url: string,
|
|
189
|
+
optionsOrCallback?: HTTPServer.Options | HTTPClient.Options | ((error: any, result?: HTTPCommon.HTTPResponse) => void),
|
|
190
|
+
callback?: (error: any, result?: HTTPCommon.HTTPResponse) => void
|
|
191
|
+
): Promise<HTTPCommon.HTTPResponse<T>>;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
declare module 'meteor/maka:rest' {
|
|
197
|
+
import { IncomingMessage, ServerResponse } from 'http';
|
|
198
|
+
import { Meteor } from 'meteor/meteor';
|
|
199
|
+
|
|
200
|
+
// rate-limiter-flexible and @redis/client are optional peer packages used
|
|
201
|
+
// only by maka:rest's rate-limiting feature -- they're bundled by the
|
|
202
|
+
// Meteor package itself, not something every app needs to npm install
|
|
203
|
+
// just to typecheck. Typed as `any` rather than pulling those packages in
|
|
204
|
+
// as devDependencies for every scaffolded project.
|
|
205
|
+
type IRateLimiterOptions = any;
|
|
206
|
+
type RateLimiterMemory = any;
|
|
207
|
+
type RateLimiterRedis = any;
|
|
208
|
+
type RedisClientType = any;
|
|
209
|
+
|
|
210
|
+
export type LoginType = 'default' | null;
|
|
211
|
+
|
|
212
|
+
export interface MakaRestOptions {
|
|
213
|
+
debug?: boolean;
|
|
214
|
+
paths: string[];
|
|
215
|
+
apiRoot: string; // Root of the API, e.g., 'api'
|
|
216
|
+
apiPath?: string; // Additional path after the version, required unless isRoot is true
|
|
217
|
+
version: string; // API version, e.g., 'v1'
|
|
218
|
+
isRoot?: boolean; // If true, this instance represents the root of the API
|
|
219
|
+
prettyJson: boolean;
|
|
220
|
+
auth: {
|
|
221
|
+
token: string;
|
|
222
|
+
user: (http: IncomingMessage) => { token?: string };
|
|
223
|
+
};
|
|
224
|
+
defaultHeaders: Record<string, string>;
|
|
225
|
+
enableCors: boolean;
|
|
226
|
+
defaultOptionsEndpoint?: () => RouteOptions;
|
|
227
|
+
rateLimitOptions?: IRateLimiterOptions
|
|
228
|
+
& {
|
|
229
|
+
useRedis?: boolean;
|
|
230
|
+
redis?: RedisClientType;
|
|
231
|
+
keyGenerator?: (req: Request) => string;
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export default class MakaRest {
|
|
236
|
+
private readonly _routes: Route[];
|
|
237
|
+
private readonly _config: MakaRestOptions;
|
|
238
|
+
private readonly rateLimiter?: RateLimiterMemory | RateLimiterRedis;
|
|
239
|
+
private readonly partialApiPath: string;
|
|
240
|
+
static defaultAuthInitialized: boolean;
|
|
241
|
+
request: Request;
|
|
242
|
+
response: Response;
|
|
243
|
+
constructor(options: Partial<MakaRestOptions>);
|
|
244
|
+
|
|
245
|
+
static interceptorType: (req: IncomingMessage, res: Response, next: Function) => void;
|
|
246
|
+
static interceptors: Array<typeof MakaRest.interceptorType>;
|
|
247
|
+
static addInterceptor(interceptor: typeof MakaRest.interceptorType): void;
|
|
248
|
+
static executeInterceptors(req: IncomingMessage, res: Response, next: Function, index?: number): void;
|
|
249
|
+
static auth: {
|
|
250
|
+
loginType: LoginType;
|
|
251
|
+
onLoggedIn: (req: IncomingMessage) => void;
|
|
252
|
+
onLoggedOut: (req: IncomingMessage) => void;
|
|
253
|
+
onLoginFailure: (req: IncomingMessage, reason?: string) => void;
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
private configureCors(): void;
|
|
257
|
+
private normalizeApiPath(options: Partial<MakaRestOptions>): string;
|
|
258
|
+
private initializeWildcardRoutes(): void;
|
|
259
|
+
private initializeDefaultAuthEndpoints(): void;
|
|
260
|
+
private login(incomingMessage: IncomingMessage): Promise<StatusResponse>;
|
|
261
|
+
private logout(incomingMessage: IncomingMessage): Promise<StatusResponse>;
|
|
262
|
+
private logoutAll(incomingMessage: IncomingMessage): Promise<StatusResponse>;
|
|
263
|
+
|
|
264
|
+
addRoute(path: string, options: RouteOptions, endpoints?: { [method: string]: EndpointOptions }): void;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
export interface Password {
|
|
268
|
+
digest: string;
|
|
269
|
+
algorithm: 'sha-256';
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export interface AuthToken {
|
|
273
|
+
authToken: string;
|
|
274
|
+
userId: string;
|
|
275
|
+
when: Date;
|
|
276
|
+
error?: string;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export interface BodyParams {
|
|
280
|
+
username?: string;
|
|
281
|
+
email?: string;
|
|
282
|
+
password: string;
|
|
283
|
+
hashed?: boolean;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
export class Auth {
|
|
287
|
+
static loginWithPassword(user: Partial<Meteor.User>, password: string | Password): Promise<AuthToken>;
|
|
288
|
+
private static validateUser(user: Partial<Meteor.User>): void;
|
|
289
|
+
private static validatePassword(password: string | Password): void;
|
|
290
|
+
static getUserQuerySelector(user: Partial<Meteor.User>): Partial<Meteor.User>;
|
|
291
|
+
static extractUser(body: BodyParams): Partial<Meteor.User>;
|
|
292
|
+
static extractPassword(body: BodyParams): string | Password;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export interface StatusResponse {
|
|
296
|
+
statusCode: number;
|
|
297
|
+
status: string;
|
|
298
|
+
data: any;
|
|
299
|
+
headers?: Record<string, string>;
|
|
300
|
+
extra?: any;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export class Codes {
|
|
304
|
+
private static generateResponse(statusCode: number, body: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
305
|
+
static continue100(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
306
|
+
static success200(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
307
|
+
static success201(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
308
|
+
static noContent204(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
309
|
+
static movedPermanently301(redirectUrl: string, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
310
|
+
static badRequest400(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
311
|
+
static unauthorized401(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
312
|
+
static forbidden403(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
313
|
+
static notFound404(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
314
|
+
static notAllowed405(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
315
|
+
static unsupported415(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
316
|
+
static teapot418(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
317
|
+
static tooManyRequests429(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
318
|
+
static serverError500(body?: any, extra?: any, headers?: Record<string, string>): StatusResponse;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export interface RouteHandler {
|
|
322
|
+
method: string;
|
|
323
|
+
path: string;
|
|
324
|
+
handler: (req: IncomingMessage, res: ServerResponse) => void;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
export interface Middleware {
|
|
328
|
+
(req: IncomingMessage, res: ServerResponse, next: Function): void;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
export class JsonRoutes {
|
|
332
|
+
private static instance: JsonRoutes;
|
|
333
|
+
private routes: RouteHandler[];
|
|
334
|
+
private middlewares: Middleware[];
|
|
335
|
+
private errorMiddlewares: Middleware[];
|
|
336
|
+
private responseHeaders: Record<string, string>;
|
|
337
|
+
|
|
338
|
+
private constructor();
|
|
339
|
+
|
|
340
|
+
public static getInstance(): JsonRoutes;
|
|
341
|
+
public static add(method: string, path: string, handler: (req: IncomingMessage, res: ServerResponse) => void): void;
|
|
342
|
+
public static use(middleware: Middleware): void;
|
|
343
|
+
public static useErrorMiddleware(middleware: Middleware): void;
|
|
344
|
+
public static setResponseHeaders(headers: Record<string, string>): void;
|
|
345
|
+
public static sendResult(res: ServerResponse, options: { code?: number; headers?: Record<string, string>; data?: any }): void;
|
|
346
|
+
private setHeaders(res: ServerResponse, headers: Record<string, string>): void;
|
|
347
|
+
private writeJsonToBody(res: ServerResponse, json: any): void;
|
|
348
|
+
private matchRoute(req: IncomingMessage): RouteHandler | undefined;
|
|
349
|
+
private parseJsonBody(req: IncomingMessage): Promise<any>;
|
|
350
|
+
private processRequest(req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
351
|
+
private routeRequest(req: IncomingMessage, res: ServerResponse): void;
|
|
352
|
+
private handleError(error: any, res: ServerResponse): void;
|
|
353
|
+
public static processRoutes(apiRoot: string): void;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export interface EndpointContext {
|
|
357
|
+
urlParams: any;
|
|
358
|
+
queryParams: any;
|
|
359
|
+
bodyParams: any;
|
|
360
|
+
request: Request;
|
|
361
|
+
response: Response;
|
|
362
|
+
done: () => void;
|
|
363
|
+
user?: Meteor.User;
|
|
364
|
+
userId?: string;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
export interface EndpointOptions {
|
|
368
|
+
authRequired?: boolean;
|
|
369
|
+
roleRequired?: string[];
|
|
370
|
+
scopeRequired?: string[];
|
|
371
|
+
action: (context: EndpointContext) => Promise<any>;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
export interface RouteOptions {
|
|
375
|
+
[key: string]: any; // Define specific routes here (e.g., get, post, put, del)
|
|
376
|
+
rateLimit?: {
|
|
377
|
+
points?: number;
|
|
378
|
+
duration?: number;
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
export class Route {
|
|
383
|
+
private api: MakaRest;
|
|
384
|
+
private path: string;
|
|
385
|
+
private options: RouteOptions;
|
|
386
|
+
private endpoints: { [method: string]: EndpointOptions };
|
|
387
|
+
private jsonRoutes: JsonRoutes;
|
|
388
|
+
private rateLimiter?: RateLimiterMemory | RateLimiterRedis;
|
|
389
|
+
|
|
390
|
+
constructor(api: MakaRest, path: string, options: RouteOptions, endpoints: { [method: string]: EndpointOptions });
|
|
391
|
+
|
|
392
|
+
addToApi(onRoot?: boolean): void;
|
|
393
|
+
|
|
394
|
+
private _resolveEndpoints(): void;
|
|
395
|
+
private _configureEndpoints(): void;
|
|
396
|
+
private _callEndpoint(endpointContext: EndpointContext, endpoint: EndpointOptions): Promise<StatusResponse>;
|
|
397
|
+
private _authAccepted(endpointContext: EndpointContext, endpoint: EndpointOptions): Promise<{ success: boolean; data?: any }>;
|
|
398
|
+
private _authenticate(endpointContext: EndpointContext): Promise<{ success: boolean; data?: any }>;
|
|
399
|
+
private _roleAccepted(endpointContext: EndpointContext, endpoint: EndpointOptions): boolean;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
declare module "history" {
|
|
404
|
+
export let createMemoryHistory: any;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
declare module "styled-components" {
|
|
408
|
+
export let ServerStyleSheet: any;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
declare module "winston" {
|
|
412
|
+
export let winston: any;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
declare module "winston-transport" {
|
|
416
|
+
export let index: any;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
type Props = {
|
|
420
|
+
children: any;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
type UpdateModifier = {
|
|
424
|
+
$set: object;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
declare namespace JSX {
|
|
428
|
+
interface IntrinsicElements {
|
|
429
|
+
a: any;
|
|
430
|
+
abbr: any;
|
|
431
|
+
address: any;
|
|
432
|
+
area: any;
|
|
433
|
+
article: any;
|
|
434
|
+
aside: any;
|
|
435
|
+
audio: any;
|
|
436
|
+
base: any;
|
|
437
|
+
bdi: any;
|
|
438
|
+
bdo: any;
|
|
439
|
+
blockquote: any;
|
|
440
|
+
body: any;
|
|
441
|
+
button: any;
|
|
442
|
+
canvas: any;
|
|
443
|
+
caption: any;
|
|
444
|
+
cite: any;
|
|
445
|
+
code: any;
|
|
446
|
+
col: any;
|
|
447
|
+
colgroup: any;
|
|
448
|
+
data: any;
|
|
449
|
+
datalist: any;
|
|
450
|
+
dd: any;
|
|
451
|
+
del: any;
|
|
452
|
+
details: any;
|
|
453
|
+
dfn: any;
|
|
454
|
+
dialog: any;
|
|
455
|
+
div: any;
|
|
456
|
+
dl: any;
|
|
457
|
+
dt: any;
|
|
458
|
+
em: any;
|
|
459
|
+
embed: any;
|
|
460
|
+
fieldset: any;
|
|
461
|
+
figcaption: any;
|
|
462
|
+
figure: any;
|
|
463
|
+
footer: any;
|
|
464
|
+
form: any;
|
|
465
|
+
h1: any;
|
|
466
|
+
h2: any;
|
|
467
|
+
h3: any;
|
|
468
|
+
h4: any;
|
|
469
|
+
h5: any;
|
|
470
|
+
h6: any;
|
|
471
|
+
head: any;
|
|
472
|
+
header: any;
|
|
473
|
+
hr: any;
|
|
474
|
+
html: any;
|
|
475
|
+
i: any;
|
|
476
|
+
img: any;
|
|
477
|
+
input: any;
|
|
478
|
+
ins: any;
|
|
479
|
+
kbd: any;
|
|
480
|
+
label: any;
|
|
481
|
+
legend: any;
|
|
482
|
+
li: any;
|
|
483
|
+
link: any;
|
|
484
|
+
main: any;
|
|
485
|
+
map: any;
|
|
486
|
+
mark: any;
|
|
487
|
+
meta: any;
|
|
488
|
+
meter: any;
|
|
489
|
+
nav: any;
|
|
490
|
+
object: any;
|
|
491
|
+
ol: any;
|
|
492
|
+
optgroup: any;
|
|
493
|
+
option: any;
|
|
494
|
+
output: any;
|
|
495
|
+
p: any;
|
|
496
|
+
param: any;
|
|
497
|
+
picture: any;
|
|
498
|
+
pre: any;
|
|
499
|
+
progress: any;
|
|
500
|
+
q: any;
|
|
501
|
+
rp: any;
|
|
502
|
+
ruby: any;
|
|
503
|
+
s: any;
|
|
504
|
+
samp: any;
|
|
505
|
+
section: any;
|
|
506
|
+
select: any;
|
|
507
|
+
small: any;
|
|
508
|
+
source: any;
|
|
509
|
+
span: any;
|
|
510
|
+
strong: any;
|
|
511
|
+
style: any;
|
|
512
|
+
sub: any;
|
|
513
|
+
summary: any;
|
|
514
|
+
sup: any;
|
|
515
|
+
svg: any;
|
|
516
|
+
table: any;
|
|
517
|
+
tbody: any;
|
|
518
|
+
td: any;
|
|
519
|
+
template: any;
|
|
520
|
+
textarea: any;
|
|
521
|
+
tfoot: any;
|
|
522
|
+
th: any;
|
|
523
|
+
thead: any;
|
|
524
|
+
time: any;
|
|
525
|
+
tr: any;
|
|
526
|
+
track: any;
|
|
527
|
+
u: any;
|
|
528
|
+
ul: any;
|
|
529
|
+
var: any;
|
|
530
|
+
video: any;
|
|
531
|
+
wbr: any;
|
|
532
|
+
}
|
|
533
|
+
}
|