@angular-wave/angular.ts 0.9.3 → 0.9.5
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/@types/angular.d.ts +4 -19
- package/@types/animations/animate.d.ts +2 -2
- package/@types/animations/animation.d.ts +1 -1
- package/@types/core/compile/attributes.d.ts +1 -1
- package/@types/core/compile/compile.d.ts +2 -2
- package/@types/core/controller/controller.d.ts +1 -1
- package/@types/core/controller/interface.d.ts +6 -0
- package/@types/core/di/ng-module.d.ts +27 -26
- package/@types/core/filter/filter.d.ts +5 -5
- package/@types/core/interpolate/interface.d.ts +13 -0
- package/@types/core/interpolate/interpolate.d.ts +1 -13
- package/@types/core/scope/scope.d.ts +4 -1
- package/@types/directive/http/http.d.ts +16 -16
- package/@types/directive/http/interface.d.ts +27 -0
- package/@types/directive/include/include.d.ts +4 -4
- package/@types/directive/inject/inject.d.ts +12 -0
- package/@types/directive/model/model.d.ts +1 -1
- package/@types/directive/script/script.d.ts +2 -2
- package/@types/directive/setter/setter.d.ts +4 -4
- package/@types/filters/filter.d.ts +2 -2
- package/@types/filters/filters.d.ts +2 -2
- package/@types/filters/interface.d.ts +8 -0
- package/@types/filters/limit-to.d.ts +2 -2
- package/@types/filters/order-by.d.ts +2 -2
- package/@types/interface.d.ts +105 -82
- package/@types/namespace.d.ts +76 -0
- package/@types/router/state/interface.d.ts +8 -8
- package/@types/router/state-filters.d.ts +4 -4
- package/@types/router/template-factory.d.ts +8 -8
- package/@types/router/transition/hook-builder.d.ts +5 -2
- package/@types/router/transition/hook-registry.d.ts +11 -2
- package/@types/router/transition/transition-service.d.ts +6 -2
- package/@types/router/transition/transition.d.ts +2 -2
- package/@types/router/view/view.d.ts +1 -8
- package/@types/router/view-scroll.d.ts +4 -2
- package/@types/services/{anchor-scroll.d.ts → anchor-scroll/anchor-scroll.d.ts} +2 -2
- package/@types/services/exception/exception-handler.d.ts +2 -2
- package/@types/services/exception/interface.d.ts +1 -1
- package/@types/services/http/http.d.ts +40 -2
- package/@types/services/http/interface.d.ts +11 -0
- package/@types/services/location/location.d.ts +1 -4
- package/@types/services/sce/sce.d.ts +3 -4
- package/@types/services/template-cache/template-cache.d.ts +4 -4
- package/@types/services/template-request/interface.d.ts +22 -0
- package/@types/services/{template-request.d.ts → template-request/template-request.d.ts} +4 -7
- package/@types/shared/common.d.ts +8 -69
- package/@types/shared/hof.d.ts +7 -7
- package/dist/angular-ts.esm.js +510 -570
- package/dist/angular-ts.umd.js +510 -570
- package/dist/angular-ts.umd.min.js +1 -1
- package/package.json +8 -1
- package/.github/workflows/ci.yml +0 -104
- package/.github/workflows/gh-pages.yml +0 -75
- package/.husky/pre-commit +0 -5
- package/.prettierignore +0 -9
- package/@types/services/cookie-reader.d.ts +0 -4
- package/@types/services/http-backend/http-backend.d.ts +0 -58
- package/@types/services/template-cache/interface.d.ts +0 -10
- package/CHANGELOG.md +0 -17667
- package/CODE_OF_CONDUCT.md +0 -3
- package/CONTRIBUTING.md +0 -247
- package/DEVELOPERS.md +0 -499
- package/Makefile +0 -60
- package/RELEASE.md +0 -86
- package/TRIAGING.md +0 -127
- package/docs/.cspell.yml +0 -8
- package/docs/.github/dependabot.yml +0 -14
- package/docs/.nvmrc +0 -1
- package/docs/CONTRIBUTING.md +0 -28
- package/docs/Dockerfile +0 -4
- package/docs/LICENSE +0 -201
- package/docs/README.md +0 -217
- package/docs/assets/icons/logo.svg +0 -1
- package/docs/assets/scss/_variables_project.scss +0 -12
- package/docs/assets/scss/_variables_project_after_bs.scss +0 -8
- package/docs/assets/scss/index.scss +0 -48
- package/docs/config.yaml +0 -15
- package/docs/content/_index.md +0 -28
- package/docs/content/docs/_index.md +0 -61
- package/docs/content/docs/directive/_index.md +0 -4
- package/docs/content/docs/directive/app.md +0 -11
- package/docs/content/docs/directive/aria.md +0 -0
- package/docs/content/docs/directive/bind.md +0 -72
- package/docs/content/docs/directive/blur.md +0 -38
- package/docs/content/docs/directive/channel.md +0 -37
- package/docs/content/docs/directive/class-even.md +0 -47
- package/docs/content/docs/directive/class-odd.md +0 -48
- package/docs/content/docs/directive/class.md +0 -64
- package/docs/content/docs/directive/click.md +0 -41
- package/docs/content/docs/directive/cloak.md +0 -74
- package/docs/content/docs/directive/copy.md +0 -38
- package/docs/content/docs/directive/cut.md +0 -40
- package/docs/content/docs/directive/dblclick.md +0 -41
- package/docs/content/docs/directive/focus.md +0 -38
- package/docs/content/docs/directive/get.md +0 -203
- package/docs/content/docs/directive/include.md +0 -7
- package/docs/content/docs/directive/keydown.md +0 -38
- package/docs/content/docs/directive/keyup.md +0 -38
- package/docs/content/docs/directive/load.md +0 -43
- package/docs/content/docs/directive/mousedown.md +0 -38
- package/docs/content/docs/directive/mouseenter.md +0 -38
- package/docs/content/docs/directive/mouseleave.md +0 -38
- package/docs/content/docs/directive/mousemove.md +0 -38
- package/docs/content/docs/directive/mouseout.md +0 -38
- package/docs/content/docs/directive/mouseover.md +0 -38
- package/docs/content/docs/directive/mouseup.md +0 -38
- package/docs/content/docs/directive/non-bindable.md +0 -28
- package/docs/content/docs/filter/_index.md +0 -4
- package/docs/content/docs/provider/_index.md +0 -4
- package/docs/content/docs/provider/eventBusProvider.md +0 -35
- package/docs/content/docs/provider/locationProvider.md +0 -26
- package/docs/content/docs/provider/logProvider.md +0 -59
- package/docs/content/docs/provider/templateCacheProvider.md +0 -100
- package/docs/content/docs/service/_index.md +0 -4
- package/docs/content/docs/service/eventBus.md +0 -56
- package/docs/content/docs/service/location.md +0 -57
- package/docs/content/docs/service/log.md +0 -113
- package/docs/content/docs/service/templateCache.md +0 -64
- package/docs/content/docs/service/url.md +0 -5
- package/docs/docker-compose.yaml +0 -12
- package/docs/docsy.work +0 -5
- package/docs/docsy.work.sum +0 -0
- package/docs/go.mod +0 -5
- package/docs/go.sum +0 -6
- package/docs/hugo-disabled.toml +0 -220
- package/docs/hugo.yaml +0 -200
- package/docs/layouts/404.html +0 -13
- package/docs/layouts/_markup/render-heading.html +0 -1
- package/docs/layouts/partials/hooks/head-end.html +0 -3
- package/docs/layouts/shortcodes/showcss.html +0 -2
- package/docs/layouts/shortcodes/showhtml.html +0 -2
- package/docs/layouts/shortcodes/showjs.html +0 -2
- package/docs/layouts/shortcodes/showraw.html +0 -1
- package/docs/layouts/shortcodes/version.html +0 -1
- package/docs/package-lock.json +0 -2293
- package/docs/package.json +0 -53
- package/docs/static/examples/counter/counter-test.html +0 -13
- package/docs/static/examples/counter/counter.html +0 -5
- package/docs/static/examples/counter/counter.test.js +0 -28
- package/docs/static/examples/eventbus/eventbus-test.html +0 -15
- package/docs/static/examples/eventbus/eventbus.html +0 -13
- package/docs/static/examples/eventbus/eventbus.js +0 -15
- package/docs/static/examples/eventbus/eventbus.test.js +0 -19
- package/docs/static/examples/ng-bind/ng-bind.html +0 -9
- package/docs/static/examples/ng-blur/ng-blur.html +0 -9
- package/docs/static/examples/ng-channel/ng-channel-test.html +0 -17
- package/docs/static/examples/ng-channel/ng-channel.html +0 -24
- package/docs/static/examples/ng-channel/ng-channel.test.js +0 -31
- package/docs/static/examples/ng-class/ng-class.html +0 -71
- package/docs/static/examples/ng-class-even/ng-class-even.html +0 -8
- package/docs/static/examples/ng-class-odd/ng-class-odd.html +0 -8
- package/docs/static/examples/ng-click/ng-click.html +0 -6
- package/docs/static/examples/ng-copy/ng-copy.html +0 -6
- package/docs/static/examples/ng-cut/ng-cut.html +0 -6
- package/docs/static/examples/ng-dblclick/ng-dblclick.html +0 -10
- package/docs/static/examples/ng-focus/ng-focus.html +0 -9
- package/docs/static/examples/ng-keydown/ng-keydown.html +0 -9
- package/docs/static/examples/ng-keyup/ng-keyup.html +0 -9
- package/docs/static/examples/ng-load/ng-load.html +0 -8
- package/docs/static/examples/ng-mousedown/ng-mousedown.html +0 -6
- package/docs/static/examples/ng-mouseenter/ng-mouseenter.html +0 -4
- package/docs/static/examples/ng-mouseleave/ng-mouseleave.html +0 -4
- package/docs/static/examples/ng-mousemove/ng-mousemove.html +0 -4
- package/docs/static/examples/ng-mouseout/ng-mouseout.html +0 -4
- package/docs/static/examples/ng-mouseover/ng-mouseover.html +0 -4
- package/docs/static/examples/ng-mouseup/ng-mouseup.html +0 -4
- package/docs/static/examples/ng-non-bindable/ng-non-bindable-test.html +0 -13
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.html +0 -3
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.test.js +0 -11
- package/docs/static/typedoc/.nojekyll +0 -1
- package/docs/static/typedoc/assets/hierarchy.js +0 -1
- package/docs/static/typedoc/assets/highlight.css +0 -78
- package/docs/static/typedoc/assets/icons.js +0 -18
- package/docs/static/typedoc/assets/icons.svg +0 -1
- package/docs/static/typedoc/assets/main.js +0 -60
- package/docs/static/typedoc/assets/navigation.js +0 -1
- package/docs/static/typedoc/assets/search.js +0 -1
- package/docs/static/typedoc/assets/style.css +0 -1633
- package/docs/static/typedoc/classes/Location.html +0 -55
- package/docs/static/typedoc/classes/LocationProvider.html +0 -20
- package/docs/static/typedoc/classes/LogProvider.html +0 -6
- package/docs/static/typedoc/classes/PubSub.html +0 -71
- package/docs/static/typedoc/classes/PubSubProvider.html +0 -3
- package/docs/static/typedoc/classes/TemplateCacheProvider.html +0 -5
- package/docs/static/typedoc/hierarchy.html +0 -1
- package/docs/static/typedoc/index.html +0 -1
- package/docs/static/typedoc/interfaces/ChangesObject.html +0 -6
- package/docs/static/typedoc/interfaces/ComponentOptions.html +0 -16
- package/docs/static/typedoc/interfaces/Controller.html +0 -12
- package/docs/static/typedoc/interfaces/DefaultPorts.html +0 -5
- package/docs/static/typedoc/interfaces/Directive.html +0 -37
- package/docs/static/typedoc/interfaces/DirectivePrePost.html +0 -4
- package/docs/static/typedoc/interfaces/Html5Mode.html +0 -23
- package/docs/static/typedoc/interfaces/HttpHeadersGetter.html +0 -1
- package/docs/static/typedoc/interfaces/HttpProviderDefaults.html +0 -31
- package/docs/static/typedoc/interfaces/HttpRequestConfigHeaders.html +0 -6
- package/docs/static/typedoc/interfaces/HttpRequestTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpResponse.html +0 -7
- package/docs/static/typedoc/interfaces/HttpResponseTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpService.html +0 -38
- package/docs/static/typedoc/interfaces/LogService.html +0 -12
- package/docs/static/typedoc/interfaces/NgModelController.html +0 -30
- package/docs/static/typedoc/interfaces/NgModelOptions.html +0 -16
- package/docs/static/typedoc/interfaces/Provider.html +0 -34
- package/docs/static/typedoc/interfaces/RequestConfig.html +0 -48
- package/docs/static/typedoc/interfaces/RequestShortcutConfig.html +0 -38
- package/docs/static/typedoc/interfaces/ServiceProvider.html +0 -5
- package/docs/static/typedoc/interfaces/TemplateCache.html +0 -7
- package/docs/static/typedoc/interfaces/TranscludeFunctionObject.html +0 -8
- package/docs/static/typedoc/interfaces/UrlParts.html +0 -9
- package/docs/static/typedoc/types/AnnotatedDirectiveFactory.html +0 -1
- package/docs/static/typedoc/types/AnnotatedFactory.html +0 -8
- package/docs/static/typedoc/types/CloneAttachFunction.html +0 -2
- package/docs/static/typedoc/types/ControllerConstructor.html +0 -2
- package/docs/static/typedoc/types/DirectiveCompileFn.html +0 -2
- package/docs/static/typedoc/types/DirectiveController.html +0 -2
- package/docs/static/typedoc/types/DirectiveFactory.html +0 -1
- package/docs/static/typedoc/types/DirectiveFactoryFn.html +0 -1
- package/docs/static/typedoc/types/DirectiveLinkFn.html +0 -2
- package/docs/static/typedoc/types/ExpandoStore.html +0 -2
- package/docs/static/typedoc/types/Expression.html +0 -6
- package/docs/static/typedoc/types/FilterFactory.html +0 -2
- package/docs/static/typedoc/types/FilterFn.html +0 -2
- package/docs/static/typedoc/types/HttpPromise.html +0 -1
- package/docs/static/typedoc/types/HttpResponseStatus.html +0 -1
- package/docs/static/typedoc/types/Injectable.html +0 -4
- package/docs/static/typedoc/types/InjectableClass.html +0 -1
- package/docs/static/typedoc/types/InjectableFactory.html +0 -1
- package/docs/static/typedoc/types/LogCall.html +0 -2
- package/docs/static/typedoc/types/LogServiceFactory.html +0 -2
- package/docs/static/typedoc/types/OnChangesObject.html +0 -2
- package/docs/static/typedoc/types/SwapModeType.html +0 -2
- package/docs/static/typedoc/types/TController.html +0 -2
- package/docs/static/typedoc/types/UrlChangeListener.html +0 -5
- package/docs/static/typedoc/variables/EventBus.html +0 -1
- package/docs/static/typedoc/variables/SwapMode.html +0 -11
- package/docs/static/version.js +0 -13
- package/docs/test-results/.last-run.json +0 -4
- package/docs/test-results/static-examples-counter-counter-counter-example/error-context.md +0 -50
- package/eslint.config.js +0 -26
- package/images/android-chrome-192x192.png +0 -0
- package/images/android-chrome-512x512.png +0 -0
- package/images/apple-touch-icon.png +0 -0
- package/images/favicon-16x16.png +0 -0
- package/images/favicon-32x32.png +0 -0
- package/images/favicon.ico +0 -0
- package/images/site.webmanifest +0 -19
- package/index.html +0 -86
- package/legacy.d.ts +0 -2599
- package/playwright.config.ts +0 -81
- package/public/jasmine/boot0.js +0 -66
- package/public/jasmine/boot1.js +0 -134
- package/public/jasmine/jasmine-html.js +0 -970
- package/public/jasmine/jasmine.css +0 -323
- package/public/jasmine/jasmine.js +0 -11406
- package/public/public/README.md +0 -1
- package/public/public/circle.html +0 -1
- package/public/public/jasmine-helper.css +0 -9
- package/public/public/my_child_directive.html +0 -1
- package/public/public/my_directive.html +0 -1
- package/public/public/my_other_directive.html +0 -1
- package/public/public/test.html +0 -1
- package/rollup.config.js +0 -51
- package/src/angular.js +0 -293
- package/src/angular.spec.js +0 -1191
- package/src/animations/animate-cache.js +0 -80
- package/src/animations/animate-children-directive.js +0 -32
- package/src/animations/animate-children-directive.md +0 -80
- package/src/animations/animate-css-driver.js +0 -284
- package/src/animations/animate-css.html +0 -58
- package/src/animations/animate-css.js +0 -915
- package/src/animations/animate-css.md +0 -263
- package/src/animations/animate-js-driver.js +0 -60
- package/src/animations/animate-js.html +0 -47
- package/src/animations/animate-js.js +0 -371
- package/src/animations/animate-queue.js +0 -859
- package/src/animations/animate-runner.js +0 -193
- package/src/animations/animate-swap.js +0 -33
- package/src/animations/animate-swap.md +0 -88
- package/src/animations/animate.html +0 -19
- package/src/animations/animate.js +0 -546
- package/src/animations/animate.md +0 -933
- package/src/animations/animate.spec.js +0 -490
- package/src/animations/animation.js +0 -519
- package/src/animations/animations.test.js +0 -10
- package/src/animations/interface.ts +0 -19
- package/src/animations/raf-scheduler.html +0 -19
- package/src/animations/raf-scheduler.js +0 -92
- package/src/animations/raf-scheduler.spec.js +0 -98
- package/src/animations/shared.js +0 -341
- package/src/binding.html +0 -19
- package/src/binding.spec.js +0 -474
- package/src/binding.test.js +0 -10
- package/src/core/compile/attributes.js +0 -337
- package/src/core/compile/compile.html +0 -19
- package/src/core/compile/compile.js +0 -3270
- package/src/core/compile/compile.md +0 -1128
- package/src/core/compile/compile.spec.js +0 -15574
- package/src/core/compile/compile.test.js +0 -12
- package/src/core/controller/controller.html +0 -22
- package/src/core/controller/controller.js +0 -189
- package/src/core/controller/controller.spec.js +0 -334
- package/src/core/controller/controller.test.js +0 -12
- package/src/core/core.html +0 -20
- package/src/core/core.test.js +0 -12
- package/src/core/di/injector.html +0 -19
- package/src/core/di/injector.js +0 -307
- package/src/core/di/injector.md +0 -740
- package/src/core/di/injector.spec.js +0 -2310
- package/src/core/di/injector.test.js +0 -12
- package/src/core/di/internal-injector.js +0 -284
- package/src/core/di/ng-module.html +0 -19
- package/src/core/di/ng-module.js +0 -226
- package/src/core/di/ng-module.spec.js +0 -263
- package/src/core/di/ng-module.test.js +0 -12
- package/src/core/filter/filter.html +0 -19
- package/src/core/filter/filter.js +0 -55
- package/src/core/filter/filter.md +0 -132
- package/src/core/filter/filter.spec.js +0 -149
- package/src/core/filter/filter.test.js +0 -12
- package/src/core/interpolate/interpolate.html +0 -22
- package/src/core/interpolate/interpolate.js +0 -408
- package/src/core/interpolate/interpolate.spec.js +0 -601
- package/src/core/interpolate/interpolate.test.js +0 -12
- package/src/core/parse/ast/ast-node.ts +0 -81
- package/src/core/parse/ast/ast.html +0 -19
- package/src/core/parse/ast/ast.js +0 -574
- package/src/core/parse/ast/ast.spec.js +0 -1453
- package/src/core/parse/ast/ast.test.js +0 -10
- package/src/core/parse/ast-type.js +0 -23
- package/src/core/parse/interface.ts +0 -84
- package/src/core/parse/interpreter.js +0 -915
- package/src/core/parse/lexer/lexer.html +0 -19
- package/src/core/parse/lexer/lexer.js +0 -338
- package/src/core/parse/lexer/lexer.spec.js +0 -303
- package/src/core/parse/lexer/lexer.test.js +0 -10
- package/src/core/parse/lexer/token.ts +0 -22
- package/src/core/parse/parse.html +0 -19
- package/src/core/parse/parse.js +0 -337
- package/src/core/parse/parse.md +0 -57
- package/src/core/parse/parse.spec.js +0 -2107
- package/src/core/parse/parse.test.js +0 -10
- package/src/core/parse/parser/parser.html +0 -19
- package/src/core/parse/parser/parser.js +0 -64
- package/src/core/parse/parser/parser.spec.js +0 -8
- package/src/core/parse/parser/parser.test.js +0 -10
- package/src/core/prop.spec.js +0 -775
- package/src/core/root-element.spec.js +0 -14
- package/src/core/sanitize/interface.ts +0 -10
- package/src/core/sanitize/sanitize-uri.js +0 -75
- package/src/core/sanitize/sanitize-uri.spec.js +0 -249
- package/src/core/sanitize/sanitize-uri.test.js +0 -12
- package/src/core/sanitize/sanitize.html +0 -22
- package/src/core/scope/scope.html +0 -19
- package/src/core/scope/scope.js +0 -1249
- package/src/core/scope/scope.spec.js +0 -3000
- package/src/core/scope/scope.test.js +0 -12
- package/src/directive/aria/aria.html +0 -19
- package/src/directive/aria/aria.js +0 -382
- package/src/directive/aria/aria.md +0 -145
- package/src/directive/aria/aria.spec.js +0 -1241
- package/src/directive/aria/aria.test.js +0 -12
- package/src/directive/attrs/attrs.html +0 -19
- package/src/directive/attrs/attrs.js +0 -106
- package/src/directive/attrs/attrs.md +0 -224
- package/src/directive/attrs/attrs.spec.js +0 -71
- package/src/directive/attrs/attrs.test.js +0 -12
- package/src/directive/attrs/boolean.html +0 -19
- package/src/directive/attrs/boolean.spec.js +0 -137
- package/src/directive/attrs/boolean.test.js +0 -12
- package/src/directive/attrs/element-style.html +0 -22
- package/src/directive/attrs/element-style.spec.js +0 -85
- package/src/directive/attrs/element-style.test.js +0 -12
- package/src/directive/attrs/src.html +0 -19
- package/src/directive/attrs/src.spec.js +0 -163
- package/src/directive/attrs/src.test.js +0 -12
- package/src/directive/bind/bind-html.spec.js +0 -36
- package/src/directive/bind/bind.html +0 -20
- package/src/directive/bind/bind.js +0 -78
- package/src/directive/bind/bind.md +0 -142
- package/src/directive/bind/bind.spec.js +0 -314
- package/src/directive/bind/bind.test.js +0 -12
- package/src/directive/channel/channel.html +0 -19
- package/src/directive/channel/channel.js +0 -30
- package/src/directive/channel/channel.spec.js +0 -67
- package/src/directive/channel/channel.test.js +0 -10
- package/src/directive/class/class-test.html +0 -23
- package/src/directive/class/class.html +0 -19
- package/src/directive/class/class.js +0 -184
- package/src/directive/class/class.spec.js +0 -704
- package/src/directive/class/class.test.js +0 -12
- package/src/directive/cloak/cloak.html +0 -19
- package/src/directive/cloak/cloak.js +0 -11
- package/src/directive/cloak/cloak.spec.js +0 -44
- package/src/directive/cloak/cloak.test.js +0 -12
- package/src/directive/controller/controller.html +0 -22
- package/src/directive/controller/controller.js +0 -11
- package/src/directive/controller/controller.md +0 -46
- package/src/directive/controller/controller.spec.js +0 -175
- package/src/directive/controller/controller.test.js +0 -12
- package/src/directive/events/click.spec.js +0 -35
- package/src/directive/events/event.spec.js +0 -267
- package/src/directive/events/events-test.html +0 -36
- package/src/directive/events/events.html +0 -20
- package/src/directive/events/events.js +0 -65
- package/src/directive/events/events.md +0 -125
- package/src/directive/events/events.test.js +0 -12
- package/src/directive/form/form.html +0 -19
- package/src/directive/form/form.js +0 -669
- package/src/directive/form/form.spec.js +0 -1515
- package/src/directive/form/form.test.js +0 -12
- package/src/directive/http/delete.spec.js +0 -26
- package/src/directive/http/form-router-test.html +0 -44
- package/src/directive/http/form-test.html +0 -18
- package/src/directive/http/get.spec.js +0 -488
- package/src/directive/http/http.html +0 -22
- package/src/directive/http/http.js +0 -342
- package/src/directive/http/http.test.js +0 -12
- package/src/directive/http/post-example.html +0 -30
- package/src/directive/http/post.spec.js +0 -521
- package/src/directive/http/put.spec.js +0 -26
- package/src/directive/if/if-animate-css.html +0 -57
- package/src/directive/if/if-animate-svg.html +0 -25
- package/src/directive/if/if.html +0 -19
- package/src/directive/if/if.js +0 -72
- package/src/directive/if/if.md +0 -76
- package/src/directive/if/if.spec.js +0 -293
- package/src/directive/if/if.test.js +0 -114
- package/src/directive/include/include.html +0 -19
- package/src/directive/include/include.js +0 -151
- package/src/directive/include/include.md +0 -87
- package/src/directive/include/include.spec.js +0 -734
- package/src/directive/include/include.test.js +0 -12
- package/src/directive/init/init.html +0 -19
- package/src/directive/init/init.js +0 -22
- package/src/directive/init/init.md +0 -41
- package/src/directive/init/init.spec.js +0 -68
- package/src/directive/init/init.test.js +0 -12
- package/src/directive/input/input-example.html +0 -15
- package/src/directive/input/input.html +0 -19
- package/src/directive/input/input.js +0 -1078
- package/src/directive/input/input.md +0 -706
- package/src/directive/input/input.spec.js +0 -3700
- package/src/directive/input/input.test.js +0 -12
- package/src/directive/messages/messages.html +0 -22
- package/src/directive/messages/messages.js +0 -349
- package/src/directive/messages/messages.md +0 -543
- package/src/directive/messages/messages.spec.js +0 -1083
- package/src/directive/messages/messages.test.js +0 -12
- package/src/directive/model/change.md +0 -25
- package/src/directive/model/model.html +0 -19
- package/src/directive/model/model.js +0 -1170
- package/src/directive/model/model.spec.js +0 -1976
- package/src/directive/model/model.test.js +0 -12
- package/src/directive/model-options/model-option.test.js +0 -12
- package/src/directive/model-options/model-options.html +0 -22
- package/src/directive/model-options/model-options.js +0 -142
- package/src/directive/model-options/model-options.md +0 -407
- package/src/directive/model-options/model-options.spec.js +0 -1022
- package/src/directive/non-bindable/non-bindable.html +0 -22
- package/src/directive/non-bindable/non-bindable.js +0 -9
- package/src/directive/non-bindable/non-bindable.spec.js +0 -59
- package/src/directive/non-bindable/non-bindable.test.js +0 -12
- package/src/directive/observe/observe-demo.html +0 -184
- package/src/directive/observe/observe.html +0 -19
- package/src/directive/observe/observe.js +0 -41
- package/src/directive/observe/observe.spec.js +0 -106
- package/src/directive/observe/observe.test.js +0 -10
- package/src/directive/on/on.html +0 -19
- package/src/directive/on/on.spec.js +0 -215
- package/src/directive/on/on.test.js +0 -12
- package/src/directive/options/options-example.html +0 -17
- package/src/directive/options/options.html +0 -22
- package/src/directive/options/options.js +0 -542
- package/src/directive/options/options.md +0 -179
- package/src/directive/options/options.spec.js +0 -3554
- package/src/directive/options/options.test.js +0 -12
- package/src/directive/ref/href.html +0 -19
- package/src/directive/ref/href.spec.js +0 -141
- package/src/directive/ref/href.test.js +0 -19
- package/src/directive/ref/ref.html +0 -19
- package/src/directive/ref/ref.js +0 -89
- package/src/directive/ref/ref.spec.js +0 -546
- package/src/directive/repeat/repeat.html +0 -19
- package/src/directive/repeat/repeat.js +0 -333
- package/src/directive/repeat/repeat.md +0 -330
- package/src/directive/repeat/repeat.spec.js +0 -1209
- package/src/directive/repeat/repeat.test.js +0 -12
- package/src/directive/script/script.html +0 -19
- package/src/directive/script/script.js +0 -17
- package/src/directive/script/script.md +0 -11
- package/src/directive/script/script.spec.js +0 -47
- package/src/directive/script/script.test.js +0 -12
- package/src/directive/select/select.html +0 -19
- package/src/directive/select/select.js +0 -594
- package/src/directive/select/select.md +0 -74
- package/src/directive/select/select.spec.js +0 -2566
- package/src/directive/select/select.test.js +0 -12
- package/src/directive/setter/setter.html +0 -19
- package/src/directive/setter/setter.js +0 -59
- package/src/directive/setter/setter.spec.js +0 -100
- package/src/directive/setter/setter.test.js +0 -12
- package/src/directive/show-hide/show-hide.html +0 -22
- package/src/directive/show-hide/show-hide.js +0 -65
- package/src/directive/show-hide/show-hide.md +0 -255
- package/src/directive/show-hide/show-hide.spec.js +0 -268
- package/src/directive/show-hide/show-hide.test.js +0 -12
- package/src/directive/style/style.html +0 -19
- package/src/directive/style/style.js +0 -27
- package/src/directive/style/style.md +0 -23
- package/src/directive/style/style.spec.js +0 -183
- package/src/directive/style/style.test.js +0 -12
- package/src/directive/switch/switch.html +0 -19
- package/src/directive/switch/switch.js +0 -133
- package/src/directive/switch/switch.md +0 -66
- package/src/directive/switch/switch.spec.js +0 -509
- package/src/directive/switch/switch.test.js +0 -12
- package/src/directive/transclude/transclude.js +0 -122
- package/src/directive/validators/validators.html +0 -22
- package/src/directive/validators/validators.js +0 -346
- package/src/directive/validators/validators.spec.js +0 -740
- package/src/directive/validators/validators.test.js +0 -12
- package/src/filters/filter.js +0 -213
- package/src/filters/filter.md +0 -69
- package/src/filters/filter.spec.js +0 -719
- package/src/filters/filters.html +0 -22
- package/src/filters/filters.js +0 -239
- package/src/filters/filters.spec.js +0 -36
- package/src/filters/filters.test.js +0 -12
- package/src/filters/json.md +0 -16
- package/src/filters/limit-to.js +0 -55
- package/src/filters/limit-to.md +0 -19
- package/src/filters/limit-to.spec.js +0 -252
- package/src/filters/order-by.js +0 -181
- package/src/filters/order-by.md +0 -83
- package/src/filters/order-by.spec.js +0 -883
- package/src/index.js +0 -6
- package/src/index.spec.js +0 -11
- package/src/injection-tokens.js +0 -78
- package/src/interface.ts +0 -421
- package/src/ng.js +0 -289
- package/src/ng.spec.js +0 -33
- package/src/router/common/trace.js +0 -240
- package/src/router/directives/component-example.html +0 -37
- package/src/router/directives/state-directives.html +0 -22
- package/src/router/directives/state-directives.js +0 -393
- package/src/router/directives/state-directives.md +0 -435
- package/src/router/directives/state-directives.spec.js +0 -1091
- package/src/router/directives/state-directives.test.js +0 -10
- package/src/router/directives/view-directive.js +0 -489
- package/src/router/directives/view-directive.spec.js +0 -1937
- package/src/router/directives/view-directive.test.js +0 -10
- package/src/router/directives/view-directives.html +0 -22
- package/src/router/glob/glob.html +0 -19
- package/src/router/glob/glob.js +0 -102
- package/src/router/glob/glob.spec.js +0 -108
- package/src/router/glob/glob.test.js +0 -12
- package/src/router/hooks/core-resolvables.js +0 -38
- package/src/router/hooks/ignored-transition.js +0 -25
- package/src/router/hooks/invalid-transition.js +0 -14
- package/src/router/hooks/lazy-load.js +0 -104
- package/src/router/hooks/on-enter-exit-retain.js +0 -55
- package/src/router/hooks/redirect-to.js +0 -38
- package/src/router/hooks/resolve.js +0 -57
- package/src/router/hooks/update-globals.js +0 -34
- package/src/router/hooks/url.js +0 -34
- package/src/router/hooks/views.js +0 -41
- package/src/router/params/interface.ts +0 -626
- package/src/router/params/param-factory.js +0 -23
- package/src/router/params/param-type.js +0 -133
- package/src/router/params/param-types.js +0 -153
- package/src/router/params/param.js +0 -243
- package/src/router/params/state-params.js +0 -36
- package/src/router/path/path-node.js +0 -78
- package/src/router/path/path-utils.js +0 -207
- package/src/router/resolve/interface.ts +0 -208
- package/src/router/resolve/resolvable.js +0 -123
- package/src/router/resolve/resolve-context.js +0 -190
- package/src/router/router-test-hashbang.html +0 -45
- package/src/router/router-test.html +0 -41
- package/src/router/router.html +0 -22
- package/src/router/router.js +0 -54
- package/src/router/router.test.js +0 -12
- package/src/router/services.spec.js +0 -52
- package/src/router/state/README.md +0 -21
- package/src/router/state/interface.ts +0 -1007
- package/src/router/state/state-builder.js +0 -376
- package/src/router/state/state-builder.spec.js +0 -86
- package/src/router/state/state-matcher.js +0 -64
- package/src/router/state/state-object.js +0 -118
- package/src/router/state/state-queue-manager.js +0 -95
- package/src/router/state/state-registry.js +0 -257
- package/src/router/state/state-service.js +0 -699
- package/src/router/state/state.html +0 -23
- package/src/router/state/state.spec.js +0 -1002
- package/src/router/state/state.test.js +0 -12
- package/src/router/state/target-state.js +0 -162
- package/src/router/state/views.js +0 -195
- package/src/router/state-filter.spec.js +0 -139
- package/src/router/state-filters.js +0 -46
- package/src/router/template-factory.html +0 -19
- package/src/router/template-factory.js +0 -249
- package/src/router/template-factory.spec.js +0 -155
- package/src/router/template-factory.test.js +0 -12
- package/src/router/transition/hook-builder.js +0 -133
- package/src/router/transition/hook-registry.js +0 -172
- package/src/router/transition/interface.js +0 -18
- package/src/router/transition/interface.ts +0 -922
- package/src/router/transition/reject-factory.js +0 -122
- package/src/router/transition/transition-event-type.js +0 -26
- package/src/router/transition/transition-hook.js +0 -199
- package/src/router/transition/transition-service.js +0 -302
- package/src/router/transition/transition.js +0 -652
- package/src/router/url/url-config.js +0 -155
- package/src/router/url/url-matcher.js +0 -532
- package/src/router/url/url-rule.js +0 -231
- package/src/router/url/url-rules.js +0 -350
- package/src/router/url/url-service.js +0 -446
- package/src/router/url/url-service.spec.js +0 -1288
- package/src/router/url/url.html +0 -19
- package/src/router/url/url.test.js +0 -12
- package/src/router/view/interface.ts +0 -51
- package/src/router/view/view.html +0 -19
- package/src/router/view/view.js +0 -274
- package/src/router/view/view.spec.js +0 -100
- package/src/router/view/view.test.js +0 -12
- package/src/router/view-hook.spec.js +0 -215
- package/src/router/view-scroll.js +0 -33
- package/src/router/view-scroll.spec.js +0 -72
- package/src/services/anchor-scroll.html +0 -76
- package/src/services/anchor-scroll.js +0 -147
- package/src/services/cookie-reader.js +0 -48
- package/src/services/exception/exception-handler.js +0 -75
- package/src/services/exception/interface.ts +0 -7
- package/src/services/http/http.html +0 -23
- package/src/services/http/http.js +0 -922
- package/src/services/http/http.md +0 -413
- package/src/services/http/http.spec.js +0 -3941
- package/src/services/http/http.test.js +0 -11
- package/src/services/http/interface.ts +0 -243
- package/src/services/http/template-request.spec.js +0 -220
- package/src/services/http-backend/http-backend.html +0 -22
- package/src/services/http-backend/http-backend.js +0 -158
- package/src/services/http-backend/http-backend.spec.js +0 -389
- package/src/services/http-backend/http-backend.test.js +0 -12
- package/src/services/location/interface.ts +0 -70
- package/src/services/location/location.html +0 -22
- package/src/services/location/location.js +0 -1006
- package/src/services/location/location.spec.js +0 -3792
- package/src/services/location/location.test.js +0 -12
- package/src/services/log/interface.ts +0 -39
- package/src/services/log/log.html +0 -19
- package/src/services/log/log.js +0 -74
- package/src/services/log/log.spec.js +0 -64
- package/src/services/log/log.test.js +0 -12
- package/src/services/pubsub/pubsub.html +0 -19
- package/src/services/pubsub/pubsub.js +0 -349
- package/src/services/pubsub/pubsub.spec.js +0 -400
- package/src/services/pubsub/pubsub.test.js +0 -12
- package/src/services/sce/sce.html +0 -19
- package/src/services/sce/sce.js +0 -847
- package/src/services/sce/sce.md +0 -300
- package/src/services/sce/sce.spec.js +0 -617
- package/src/services/sce/sce.test.js +0 -12
- package/src/services/template-cache/interface.ts +0 -10
- package/src/services/template-cache/template-cache.html +0 -22
- package/src/services/template-cache/template-cache.js +0 -15
- package/src/services/template-cache/template-cache.spec.js +0 -134
- package/src/services/template-cache/template-cache.test.js +0 -12
- package/src/services/template-request.js +0 -142
- package/src/shared/cache.js +0 -7
- package/src/shared/common.js +0 -438
- package/src/shared/common.spec.js +0 -294
- package/src/shared/constants.js +0 -21
- package/src/shared/dom.js +0 -716
- package/src/shared/hof.js +0 -151
- package/src/shared/hof.spec.js +0 -60
- package/src/shared/interface.ts +0 -21
- package/src/shared/min-err.spec.js +0 -178
- package/src/shared/noderef.js +0 -225
- package/src/shared/predicates.js +0 -34
- package/src/shared/queue.js +0 -105
- package/src/shared/queue.spec.js +0 -80
- package/src/shared/shared.html +0 -24
- package/src/shared/shared.test.js +0 -12
- package/src/shared/strings.js +0 -142
- package/src/shared/strings.spec.js +0 -40
- package/src/shared/test-utils.js +0 -47
- package/src/shared/url-utils/interface.ts +0 -54
- package/src/shared/url-utils/url-utils.html +0 -22
- package/src/shared/url-utils/url-utils.js +0 -122
- package/src/shared/url-utils/url-utils.spec.js +0 -148
- package/src/shared/url-utils/url-utils.test.js +0 -12
- package/src/shared/utils.js +0 -1255
- package/src/shared/utils.spec.js +0 -178
- package/src/src.html +0 -21
- package/src/src.test.js +0 -10
- package/tsconfig.json +0 -19
- package/tsconfig.types.json +0 -14
- package/typedoc.json +0 -8
- package/utils/express.js +0 -203
- package/utils/version.cjs +0 -23
- package/vite.config.js +0 -14
|
@@ -1,922 +0,0 @@
|
|
|
1
|
-
import { urlIsAllowedOriginFactory } from "../../shared/url-utils/url-utils.js";
|
|
2
|
-
import {
|
|
3
|
-
minErr,
|
|
4
|
-
isObject,
|
|
5
|
-
isDate,
|
|
6
|
-
toJson,
|
|
7
|
-
isUndefined,
|
|
8
|
-
isFunction,
|
|
9
|
-
encodeUriQuery,
|
|
10
|
-
isString,
|
|
11
|
-
fromJson,
|
|
12
|
-
lowercase,
|
|
13
|
-
trim,
|
|
14
|
-
isFile,
|
|
15
|
-
isBlob,
|
|
16
|
-
isFormData,
|
|
17
|
-
shallowCopy,
|
|
18
|
-
isDefined,
|
|
19
|
-
extend,
|
|
20
|
-
uppercase,
|
|
21
|
-
isPromiseLike,
|
|
22
|
-
} from "../../shared/utils.js";
|
|
23
|
-
import { getCookies } from "../cookie-reader.js";
|
|
24
|
-
|
|
25
|
-
const APPLICATION_JSON = "application/json";
|
|
26
|
-
const CONTENT_TYPE_APPLICATION_JSON = {
|
|
27
|
-
"Content-Type": `${APPLICATION_JSON};charset=utf-8`,
|
|
28
|
-
};
|
|
29
|
-
const JSON_START = /^\[|^\{(?!\{)/;
|
|
30
|
-
const JSON_ENDS = {
|
|
31
|
-
"[": /]$/,
|
|
32
|
-
"{": /}$/,
|
|
33
|
-
};
|
|
34
|
-
const JSON_PROTECTION_PREFIX = /^\)]\}',?\n/;
|
|
35
|
-
const $httpMinErr = minErr("$http");
|
|
36
|
-
|
|
37
|
-
function serializeValue(v) {
|
|
38
|
-
if (isObject(v)) {
|
|
39
|
-
return isDate(v) ? v.toISOString() : toJson(v);
|
|
40
|
-
}
|
|
41
|
-
return v;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Default params serializer that converts objects to strings
|
|
46
|
-
* according to the following rules:
|
|
47
|
-
*
|
|
48
|
-
* * `{'foo': 'bar'}` results in `foo=bar`
|
|
49
|
-
* * `{'foo': Date.now()}` results in `foo=2015-04-01T09%3A50%3A49.262Z` (`toISOString()` and encoded representation of a Date object)
|
|
50
|
-
* * `{'foo': ['bar', 'baz']}` results in `foo=bar&foo=baz` (repeated key for each array element)
|
|
51
|
-
* * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D` (stringified and encoded representation of an object)
|
|
52
|
-
*
|
|
53
|
-
* Note that serializer will sort the request parameters alphabetically.
|
|
54
|
-
*/
|
|
55
|
-
export function HttpParamSerializerProvider() {
|
|
56
|
-
this.$get = function () {
|
|
57
|
-
return function ngParamSerializer(params) {
|
|
58
|
-
if (!params) return "";
|
|
59
|
-
const parts = [];
|
|
60
|
-
Object.keys(params)
|
|
61
|
-
.sort()
|
|
62
|
-
.forEach((key) => {
|
|
63
|
-
const value = params[key];
|
|
64
|
-
if (value === null || isUndefined(value) || isFunction(value)) return;
|
|
65
|
-
if (Array.isArray(value)) {
|
|
66
|
-
value.forEach((v) => {
|
|
67
|
-
parts.push(
|
|
68
|
-
`${encodeUriQuery(key)}=${encodeUriQuery(serializeValue(v))}`,
|
|
69
|
-
);
|
|
70
|
-
});
|
|
71
|
-
} else {
|
|
72
|
-
parts.push(
|
|
73
|
-
`${encodeUriQuery(key)}=${encodeUriQuery(serializeValue(value))}`,
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
return parts.join("&");
|
|
79
|
-
};
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export function defaultHttpResponseTransform(data, headers) {
|
|
84
|
-
if (isString(data)) {
|
|
85
|
-
// Strip json vulnerability protection prefix and trim whitespace
|
|
86
|
-
const tempData = data.replace(JSON_PROTECTION_PREFIX, "").trim();
|
|
87
|
-
|
|
88
|
-
if (tempData) {
|
|
89
|
-
const contentType = headers("Content-Type");
|
|
90
|
-
const hasJsonContentType =
|
|
91
|
-
contentType && contentType.indexOf(APPLICATION_JSON) === 0;
|
|
92
|
-
|
|
93
|
-
if (hasJsonContentType || isJsonLike(tempData)) {
|
|
94
|
-
try {
|
|
95
|
-
data = fromJson(tempData);
|
|
96
|
-
} catch (e) {
|
|
97
|
-
if (!hasJsonContentType) {
|
|
98
|
-
return data;
|
|
99
|
-
}
|
|
100
|
-
throw $httpMinErr(
|
|
101
|
-
"baddata",
|
|
102
|
-
'Data must be a valid JSON object. Received: "{0}". ' +
|
|
103
|
-
'Parse error: "{1}"',
|
|
104
|
-
data,
|
|
105
|
-
e,
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return data;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function isJsonLike(str) {
|
|
116
|
-
const jsonStart = str.match(JSON_START);
|
|
117
|
-
return jsonStart && JSON_ENDS[jsonStart[0]].test(str);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Parse headers into key value object
|
|
122
|
-
*
|
|
123
|
-
* @param {string} headers Raw headers as a string
|
|
124
|
-
* @returns {Object} Parsed headers as key value object
|
|
125
|
-
*/
|
|
126
|
-
function parseHeaders(headers) {
|
|
127
|
-
const parsed = Object.create(null);
|
|
128
|
-
let i;
|
|
129
|
-
|
|
130
|
-
function fillInParsed(key, val) {
|
|
131
|
-
if (key) {
|
|
132
|
-
parsed[key] = parsed[key] ? `${parsed[key]}, ${val}` : val;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
if (isString(headers)) {
|
|
137
|
-
headers.split("\n").forEach(
|
|
138
|
-
/** @param {string} line */
|
|
139
|
-
(line) => {
|
|
140
|
-
i = line.indexOf(":");
|
|
141
|
-
fillInParsed(
|
|
142
|
-
line.substring(0, i).trim().toLowerCase(),
|
|
143
|
-
trim(line.substring(i + 1)),
|
|
144
|
-
);
|
|
145
|
-
},
|
|
146
|
-
);
|
|
147
|
-
} else if (isObject(headers)) {
|
|
148
|
-
Object.entries(headers).forEach(([headerKey, headerVal]) => {
|
|
149
|
-
fillInParsed(lowercase(headerKey), trim(headerVal));
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return parsed;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Returns a function that provides access to parsed headers.
|
|
158
|
-
*
|
|
159
|
-
* Headers are lazy parsed when first requested.
|
|
160
|
-
* @see parseHeaders
|
|
161
|
-
*
|
|
162
|
-
* @param {(string|Object)} headers Headers to provide access to.
|
|
163
|
-
* @returns {function(string=)} Returns a getter function which if called with:
|
|
164
|
-
*
|
|
165
|
-
* - if called with an argument returns a single header value or null
|
|
166
|
-
* - if called with no arguments returns an object containing all headers.
|
|
167
|
-
*/
|
|
168
|
-
function headersGetter(headers) {
|
|
169
|
-
let headersObj;
|
|
170
|
-
|
|
171
|
-
return function (name) {
|
|
172
|
-
if (!headersObj) headersObj = parseHeaders(headers);
|
|
173
|
-
|
|
174
|
-
if (name) {
|
|
175
|
-
let value = headersObj[lowercase(name)];
|
|
176
|
-
if (value === undefined) {
|
|
177
|
-
value = null;
|
|
178
|
-
}
|
|
179
|
-
return value;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return headersObj;
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Chain all given functions
|
|
188
|
-
*
|
|
189
|
-
* This function is used for both request and response transforming
|
|
190
|
-
*
|
|
191
|
-
* @param {*} data Data to transform.
|
|
192
|
-
* @param {function(string=):any} headers HTTP headers getter fn.
|
|
193
|
-
* @param {number} status HTTP status code of the response.
|
|
194
|
-
* @param {function(...any): any | Array<Function>} fns Function or an array of functions.
|
|
195
|
-
* @returns {*} Transformed data.
|
|
196
|
-
*/
|
|
197
|
-
function transformData(data, headers, status, fns) {
|
|
198
|
-
if (isFunction(fns)) {
|
|
199
|
-
return fns(data, headers, status);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
if (Array.isArray(fns)) {
|
|
203
|
-
/** @type {Array<function(...any): any>} */ (fns).forEach((fn) => {
|
|
204
|
-
data = fn(data, headers, status);
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
return data;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
function isSuccess(status) {
|
|
212
|
-
return status >= 200 && status < 300;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Use `$httpProvider` to change the default behavior of the {@link ng.$http $http} service.
|
|
217
|
-
*/
|
|
218
|
-
export function HttpProvider() {
|
|
219
|
-
/**
|
|
220
|
-
* Object containing default values for all {@link ng.$http $http} requests.
|
|
221
|
-
*
|
|
222
|
-
* - **`defaults.cache`** - {boolean|Object} - A boolean value or object created with
|
|
223
|
-
* {@link ng.$cacheFactory `$cacheFactory`} to enable or disable caching of HTTP responses
|
|
224
|
-
* by default. See {@link $http#caching $http Caching} for more information.
|
|
225
|
-
*
|
|
226
|
-
* - **`defaults.headers`** - {Object} - Default headers for all $http requests.
|
|
227
|
-
* Refer to {@link ng.$http#setting-http-headers $http} for documentation on
|
|
228
|
-
* setting default headers.
|
|
229
|
-
* - **`defaults.headers.common`**
|
|
230
|
-
* - **`defaults.headers.post`**
|
|
231
|
-
* - **`defaults.headers.put`**
|
|
232
|
-
* - **`defaults.headers.patch`**
|
|
233
|
-
* *
|
|
234
|
-
* - **`defaults.paramSerializer`** - `{string|function(Object<string,string>):string}` - A function
|
|
235
|
-
* used to the prepare string representation of request parameters (specified as an object).
|
|
236
|
-
* If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}.
|
|
237
|
-
* Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}.
|
|
238
|
-
*
|
|
239
|
-
* - **`defaults.transformRequest`** -
|
|
240
|
-
* `{Array<function(data, headersGetter)>|function(data, headersGetter)}` -
|
|
241
|
-
* An array of functions (or a single function) which are applied to the request data.
|
|
242
|
-
* By default, this is an array with one request transformation function:
|
|
243
|
-
*
|
|
244
|
-
* - If the `data` property of the request configuration object contains an object, serialize it
|
|
245
|
-
* into JSON format.
|
|
246
|
-
*
|
|
247
|
-
* - **`defaults.transformResponse`** -
|
|
248
|
-
* `{Array<function(data, headersGetter, status)>|function(data, headersGetter, status)}` -
|
|
249
|
-
* An array of functions (or a single function) which are applied to the response data. By default,
|
|
250
|
-
* this is an array which applies one response transformation function that does two things:
|
|
251
|
-
*
|
|
252
|
-
* - If XSRF prefix is detected, strip it
|
|
253
|
-
* (see {@link ng.$http#security-considerations Security Considerations in the $http docs}).
|
|
254
|
-
* - If the `Content-Type` is `application/json` or the response looks like JSON,
|
|
255
|
-
* deserialize it using a JSON parser.
|
|
256
|
-
*
|
|
257
|
-
* - **`defaults.xsrfCookieName`** - {string} - Name of cookie containing the XSRF token.
|
|
258
|
-
* Defaults value is `'XSRF-TOKEN'`.
|
|
259
|
-
*
|
|
260
|
-
* - **`defaults.xsrfHeaderName`** - {string} - Name of HTTP header to populate with the
|
|
261
|
-
* XSRF token. Defaults value is `'X-XSRF-TOKEN'`.
|
|
262
|
-
*
|
|
263
|
-
*/
|
|
264
|
-
const defaults = (this.defaults = {
|
|
265
|
-
// transform incoming response data
|
|
266
|
-
transformResponse: [defaultHttpResponseTransform],
|
|
267
|
-
|
|
268
|
-
// transform outgoing request data
|
|
269
|
-
transformRequest: [
|
|
270
|
-
function (d) {
|
|
271
|
-
return isObject(d) && !isFile(d) && !isBlob(d) && !isFormData(d)
|
|
272
|
-
? toJson(d)
|
|
273
|
-
: d;
|
|
274
|
-
},
|
|
275
|
-
],
|
|
276
|
-
|
|
277
|
-
// default headers
|
|
278
|
-
headers: {
|
|
279
|
-
common: {
|
|
280
|
-
Accept: "application/json, text/plain, */*",
|
|
281
|
-
},
|
|
282
|
-
post: shallowCopy(CONTENT_TYPE_APPLICATION_JSON),
|
|
283
|
-
put: shallowCopy(CONTENT_TYPE_APPLICATION_JSON),
|
|
284
|
-
patch: shallowCopy(CONTENT_TYPE_APPLICATION_JSON),
|
|
285
|
-
},
|
|
286
|
-
|
|
287
|
-
xsrfCookieName: "XSRF-TOKEN",
|
|
288
|
-
xsrfHeaderName: "X-XSRF-TOKEN",
|
|
289
|
-
|
|
290
|
-
paramSerializer: "$httpParamSerializer",
|
|
291
|
-
});
|
|
292
|
-
|
|
293
|
-
let useApplyAsync = false;
|
|
294
|
-
|
|
295
|
-
/**
|
|
296
|
-
* Configure $http service to combine processing of multiple http responses received at around
|
|
297
|
-
* the same time via {@link ng.$rootScope.Scope#$applyAsync $rootScope.$applyAsync}. This can result in
|
|
298
|
-
* significant performance improvement for bigger applications that make many HTTP requests
|
|
299
|
-
* concurrently (common during application bootstrap).
|
|
300
|
-
*
|
|
301
|
-
* Defaults to false. If no value is specified, returns the current configured value.
|
|
302
|
-
*
|
|
303
|
-
* @param {boolean=} value If true, when requests are loaded, they will schedule a deferred
|
|
304
|
-
* "apply" on the next tick, giving time for subsequent requests in a roughly ~10ms window
|
|
305
|
-
* to load and share the same digest cycle.
|
|
306
|
-
*
|
|
307
|
-
* @returns {boolean|Object} If a value is specified, returns the $httpProvider for chaining.
|
|
308
|
-
* otherwise, returns the current configured value.
|
|
309
|
-
*/
|
|
310
|
-
this.useApplyAsync = function (value) {
|
|
311
|
-
if (isDefined(value)) {
|
|
312
|
-
useApplyAsync = !!value;
|
|
313
|
-
return this;
|
|
314
|
-
}
|
|
315
|
-
return useApplyAsync;
|
|
316
|
-
};
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* Array containing service factories for all synchronous or asynchronous {@link ng.$http $http}
|
|
320
|
-
* pre-processing of request or postprocessing of responses.
|
|
321
|
-
*
|
|
322
|
-
* These service factories are ordered by request, i.e. they are applied in the same order as the
|
|
323
|
-
* array, on request, but reverse order, on response.
|
|
324
|
-
*
|
|
325
|
-
* {@link ng.$http#interceptors Interceptors detailed info}
|
|
326
|
-
*/
|
|
327
|
-
this.interceptors = [];
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Array containing URLs whose origins are trusted to receive the XSRF token. See the
|
|
331
|
-
* {@link ng.$http#security-considerations Security Considerations} sections for more details on
|
|
332
|
-
* XSRF.
|
|
333
|
-
*
|
|
334
|
-
* **Note:** An "origin" consists of the [URI scheme](https://en.wikipedia.org/wiki/URI_scheme),
|
|
335
|
-
* the [hostname](https://en.wikipedia.org/wiki/Hostname) and the
|
|
336
|
-
* [port number](https://en.wikipedia.org/wiki/Port_(computer_networking). For `http:` and
|
|
337
|
-
* `https:`, the port number can be omitted if using th default ports (80 and 443 respectively).
|
|
338
|
-
* Examples: `http://example.com`, `https://api.example.com:9876`
|
|
339
|
-
*
|
|
340
|
-
* <div class="alert alert-warning">
|
|
341
|
-
* It is not possible to trust specific URLs/paths. The `path`, `query` and `fragment` parts
|
|
342
|
-
* of a URL will be ignored. For example, `https://foo.com/path/bar?query=baz#fragment` will be
|
|
343
|
-
* treated as `https://foo.com`, meaning that **all** requests to URLs starting with
|
|
344
|
-
* `https://foo.com/` will include the XSRF token.
|
|
345
|
-
* </div>
|
|
346
|
-
*
|
|
347
|
-
* @example
|
|
348
|
-
*
|
|
349
|
-
* ```js
|
|
350
|
-
* // App served from `https://example.com/`.
|
|
351
|
-
* angular.
|
|
352
|
-
* module('xsrfTrustedOriginsExample', []).
|
|
353
|
-
* config(['$httpProvider', function($httpProvider) {
|
|
354
|
-
* $httpProvider.xsrfTrustedOrigins.push('https://api.example.com');
|
|
355
|
-
* }]).
|
|
356
|
-
* run(['$http', function($http) {
|
|
357
|
-
* // The XSRF token will be sent.
|
|
358
|
-
* $http.get('https://api.example.com/preferences').then(...);
|
|
359
|
-
*
|
|
360
|
-
* // The XSRF token will NOT be sent.
|
|
361
|
-
* $http.get('https://stats.example.com/activity').then(...);
|
|
362
|
-
* }]);
|
|
363
|
-
* ```
|
|
364
|
-
*
|
|
365
|
-
* @type {string[]}
|
|
366
|
-
*/
|
|
367
|
-
this.xsrfTrustedOrigins = [];
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* This property is deprecated. Use {@link $httpProvider#xsrfTrustedOrigins xsrfTrustedOrigins}
|
|
371
|
-
* instead.
|
|
372
|
-
*/
|
|
373
|
-
Object.defineProperty(this, "xsrfWhitelistedOrigins", {
|
|
374
|
-
get() {
|
|
375
|
-
return this.xsrfTrustedOrigins;
|
|
376
|
-
},
|
|
377
|
-
set(origins) {
|
|
378
|
-
this.xsrfTrustedOrigins = origins;
|
|
379
|
-
},
|
|
380
|
-
});
|
|
381
|
-
|
|
382
|
-
this.$get = [
|
|
383
|
-
"$httpBackend",
|
|
384
|
-
"$injector",
|
|
385
|
-
"$sce",
|
|
386
|
-
/**
|
|
387
|
-
*
|
|
388
|
-
* @param {*} $httpBackend
|
|
389
|
-
* @param {import("../../core/di/internal-injector.js").InjectorService} $injector
|
|
390
|
-
* @param {*} $sce
|
|
391
|
-
* @returns
|
|
392
|
-
*/
|
|
393
|
-
function ($httpBackend, $injector, $sce) {
|
|
394
|
-
/**
|
|
395
|
-
* @type {Map<string, string>}
|
|
396
|
-
*/
|
|
397
|
-
const defaultCache = new Map();
|
|
398
|
-
|
|
399
|
-
/**
|
|
400
|
-
* Make sure that default param serializer is exposed as a function
|
|
401
|
-
*/
|
|
402
|
-
defaults.paramSerializer = isString(defaults.paramSerializer)
|
|
403
|
-
? $injector.get(defaults.paramSerializer)
|
|
404
|
-
: defaults.paramSerializer;
|
|
405
|
-
|
|
406
|
-
/**
|
|
407
|
-
* Interceptors stored in reverse order. Inner interceptors before outer interceptors.
|
|
408
|
-
* The reversal is needed so that we can build up the interception chain around the
|
|
409
|
-
* server request.
|
|
410
|
-
*/
|
|
411
|
-
const reversedInterceptors = [];
|
|
412
|
-
|
|
413
|
-
this.interceptors.forEach((interceptorFactory) => {
|
|
414
|
-
reversedInterceptors.unshift(
|
|
415
|
-
isString(interceptorFactory)
|
|
416
|
-
? $injector.get(interceptorFactory)
|
|
417
|
-
: $injector.invoke(interceptorFactory),
|
|
418
|
-
);
|
|
419
|
-
});
|
|
420
|
-
|
|
421
|
-
/**
|
|
422
|
-
* A function to check request URLs against a list of allowed origins.
|
|
423
|
-
*/
|
|
424
|
-
const urlIsAllowedOrigin = urlIsAllowedOriginFactory(
|
|
425
|
-
this.xsrfTrustedOrigins,
|
|
426
|
-
);
|
|
427
|
-
|
|
428
|
-
/**
|
|
429
|
-
* @property {Array.<Object>} requestConfig Array of config objects for currently pending
|
|
430
|
-
* requests. This is primarily meant to be used for debugging purposes.
|
|
431
|
-
*/
|
|
432
|
-
function $http(requestConfig) {
|
|
433
|
-
if (!isObject(requestConfig)) {
|
|
434
|
-
throw minErr("$http")(
|
|
435
|
-
"badreq",
|
|
436
|
-
"Http request configuration must be an object. Received: {0}",
|
|
437
|
-
requestConfig,
|
|
438
|
-
);
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
if (!isString($sce.valueOf(requestConfig.url))) {
|
|
442
|
-
throw minErr("$http")(
|
|
443
|
-
"badreq",
|
|
444
|
-
"Http request configuration url must be a string or a $sce trusted object. Received: {0}",
|
|
445
|
-
requestConfig.url,
|
|
446
|
-
);
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
const config = extend(
|
|
450
|
-
{
|
|
451
|
-
method: "get",
|
|
452
|
-
transformRequest: defaults.transformRequest,
|
|
453
|
-
transformResponse: defaults.transformResponse,
|
|
454
|
-
paramSerializer: defaults.paramSerializer,
|
|
455
|
-
},
|
|
456
|
-
requestConfig,
|
|
457
|
-
);
|
|
458
|
-
|
|
459
|
-
config.headers = mergeHeaders(requestConfig);
|
|
460
|
-
config.method = uppercase(config.method);
|
|
461
|
-
config.paramSerializer = isString(config.paramSerializer)
|
|
462
|
-
? $injector.get(config.paramSerializer)
|
|
463
|
-
: config.paramSerializer;
|
|
464
|
-
|
|
465
|
-
const requestInterceptors = [];
|
|
466
|
-
const responseInterceptors = [];
|
|
467
|
-
let promise = Promise.resolve(config);
|
|
468
|
-
|
|
469
|
-
// apply interceptors
|
|
470
|
-
reversedInterceptors.forEach((interceptor) => {
|
|
471
|
-
if (interceptor.request || interceptor.requestError) {
|
|
472
|
-
requestInterceptors.unshift(
|
|
473
|
-
interceptor.request,
|
|
474
|
-
interceptor.requestError,
|
|
475
|
-
);
|
|
476
|
-
}
|
|
477
|
-
if (interceptor.response || interceptor.responseError) {
|
|
478
|
-
responseInterceptors.push(
|
|
479
|
-
interceptor.response,
|
|
480
|
-
interceptor.responseError,
|
|
481
|
-
);
|
|
482
|
-
}
|
|
483
|
-
});
|
|
484
|
-
|
|
485
|
-
promise = chainInterceptors(promise, requestInterceptors);
|
|
486
|
-
promise = promise.then(serverRequest);
|
|
487
|
-
promise = chainInterceptors(promise, responseInterceptors);
|
|
488
|
-
|
|
489
|
-
return promise;
|
|
490
|
-
|
|
491
|
-
function chainInterceptors(promise, interceptors) {
|
|
492
|
-
for (let i = 0, ii = interceptors.length; i < ii; ) {
|
|
493
|
-
const thenFn = interceptors[i++];
|
|
494
|
-
const rejectFn = interceptors[i++];
|
|
495
|
-
|
|
496
|
-
promise = promise.then(thenFn, rejectFn);
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
interceptors.length = 0;
|
|
500
|
-
|
|
501
|
-
return promise;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
function executeHeaderFns(headers, config) {
|
|
505
|
-
let headerContent;
|
|
506
|
-
const processedHeaders = {};
|
|
507
|
-
|
|
508
|
-
Object.entries(headers).forEach(([header, headerFn]) => {
|
|
509
|
-
if (isFunction(headerFn)) {
|
|
510
|
-
headerContent = headerFn(config);
|
|
511
|
-
if (headerContent != null) {
|
|
512
|
-
processedHeaders[header] = headerContent;
|
|
513
|
-
}
|
|
514
|
-
} else {
|
|
515
|
-
processedHeaders[header] = headerFn;
|
|
516
|
-
}
|
|
517
|
-
});
|
|
518
|
-
|
|
519
|
-
return processedHeaders;
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
function mergeHeaders(config) {
|
|
523
|
-
let defHeaders = defaults.headers,
|
|
524
|
-
reqHeaders = extend({}, config.headers);
|
|
525
|
-
|
|
526
|
-
defHeaders = extend(
|
|
527
|
-
{},
|
|
528
|
-
defHeaders.common,
|
|
529
|
-
defHeaders[lowercase(config.method)],
|
|
530
|
-
);
|
|
531
|
-
|
|
532
|
-
Object.keys(defHeaders).forEach((defHeaderName) => {
|
|
533
|
-
const lowercaseDefHeaderName = lowercase(defHeaderName);
|
|
534
|
-
const hasMatchingHeader = Object.keys(reqHeaders).some(
|
|
535
|
-
(reqHeaderName) => {
|
|
536
|
-
return lowercase(reqHeaderName) === lowercaseDefHeaderName;
|
|
537
|
-
},
|
|
538
|
-
);
|
|
539
|
-
if (!hasMatchingHeader) {
|
|
540
|
-
reqHeaders[defHeaderName] = defHeaders[defHeaderName];
|
|
541
|
-
}
|
|
542
|
-
});
|
|
543
|
-
|
|
544
|
-
// execute if header value is a function for merged headers
|
|
545
|
-
return executeHeaderFns(reqHeaders, shallowCopy(config));
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
function serverRequest(config) {
|
|
549
|
-
const { headers } = config;
|
|
550
|
-
const reqData = transformData(
|
|
551
|
-
config.data,
|
|
552
|
-
headersGetter(headers),
|
|
553
|
-
undefined,
|
|
554
|
-
config.transformRequest,
|
|
555
|
-
);
|
|
556
|
-
|
|
557
|
-
// strip content-type if data is undefined
|
|
558
|
-
if (isUndefined(reqData)) {
|
|
559
|
-
Object.keys(headers).forEach((header) => {
|
|
560
|
-
if (lowercase(header) === "content-type") {
|
|
561
|
-
delete headers[header];
|
|
562
|
-
}
|
|
563
|
-
});
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
if (
|
|
567
|
-
isUndefined(config.withCredentials) &&
|
|
568
|
-
!isUndefined(defaults.withCredentials)
|
|
569
|
-
) {
|
|
570
|
-
config.withCredentials = defaults.withCredentials;
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
// send request
|
|
574
|
-
return sendReq(config, reqData).then(
|
|
575
|
-
transformResponse,
|
|
576
|
-
transformResponse,
|
|
577
|
-
);
|
|
578
|
-
}
|
|
579
|
-
|
|
580
|
-
function transformResponse(response) {
|
|
581
|
-
// make a copy since the response must be cacheable
|
|
582
|
-
const resp = extend({}, response);
|
|
583
|
-
resp.data = transformData(
|
|
584
|
-
response.data,
|
|
585
|
-
response.headers,
|
|
586
|
-
response.status,
|
|
587
|
-
config.transformResponse,
|
|
588
|
-
);
|
|
589
|
-
return isSuccess(response.status) ? resp : Promise.reject(resp);
|
|
590
|
-
}
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
$http.pendingRequests = [];
|
|
594
|
-
|
|
595
|
-
/**
|
|
596
|
-
* Shortcut method to perform `GET` request.
|
|
597
|
-
*
|
|
598
|
-
* @param {string} url Absolute or relative URL of the resource that is being requested;
|
|
599
|
-
* or an object created by a call to `$sce.trustAsResourceUrl(url)`.
|
|
600
|
-
* @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.
|
|
601
|
-
* @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.
|
|
602
|
-
* See {@link ng.$http#$http-returns `$http()` return value}.
|
|
603
|
-
*/
|
|
604
|
-
|
|
605
|
-
/**
|
|
606
|
-
* Shortcut method to perform `DELETE` request.
|
|
607
|
-
*
|
|
608
|
-
* @param {string} url Absolute or relative URL of the resource that is being requested;
|
|
609
|
-
* or an object created by a call to `$sce.trustAsResourceUrl(url)`.
|
|
610
|
-
* @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.
|
|
611
|
-
* @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.
|
|
612
|
-
* See {@link ng.$http#$http-returns `$http()` return value}.
|
|
613
|
-
*/
|
|
614
|
-
|
|
615
|
-
/**
|
|
616
|
-
* Shortcut method to perform `HEAD` request.
|
|
617
|
-
*
|
|
618
|
-
* @param {string} url Absolute or relative URL of the resource that is being requested;
|
|
619
|
-
* or an object created by a call to `$sce.trustAsResourceUrl(url)`.
|
|
620
|
-
* @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.
|
|
621
|
-
* @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.
|
|
622
|
-
* See {@link ng.$http#$http-returns `$http()` return value}.
|
|
623
|
-
*/
|
|
624
|
-
|
|
625
|
-
/**
|
|
626
|
-
* Shortcut method to perform `JSONP` request.
|
|
627
|
-
*
|
|
628
|
-
* Note that, since JSONP requests are sensitive because the response is given full access to the browser,
|
|
629
|
-
* the url must be declared, via {@link $sce} as a trusted resource URL.
|
|
630
|
-
* You can trust a URL by adding it to the trusted resource URL list via
|
|
631
|
-
* {@link $sceDelegateProvider#trustedResourceUrlList `$sceDelegateProvider.trustedResourceUrlList`} or
|
|
632
|
-
* by explicitly trusting the URL via {@link $sce#trustAsResourceUrl `$sce.trustAsResourceUrl(url)`}.
|
|
633
|
-
*
|
|
634
|
-
* You should avoid generating the URL for the JSONP request from user provided data.
|
|
635
|
-
* Provide additional query parameters via `params` property of the `config` parameter, rather than
|
|
636
|
-
* modifying the URL itself.
|
|
637
|
-
*
|
|
638
|
-
* You can also specify a default callback parameter name in `$http.defaults.jsonpCallbackParam`.
|
|
639
|
-
* Initially this is set to `'callback'`.
|
|
640
|
-
*
|
|
641
|
-
* <div class="alert alert-danger">
|
|
642
|
-
* You can no longer use the `JSON_CALLBACK` string as a placeholder for specifying where the callback
|
|
643
|
-
* parameter value should go.
|
|
644
|
-
* </div>
|
|
645
|
-
*
|
|
646
|
-
* If you would like to customise where and how the callbacks are stored then try overriding
|
|
647
|
-
* or decorating the {@link $jsonpCallbacks} service.
|
|
648
|
-
*
|
|
649
|
-
* @param {string} url Absolute or relative URL of the resource that is being requested;
|
|
650
|
-
* or an object created by a call to `$sce.trustAsResourceUrl(url)`.
|
|
651
|
-
* @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.
|
|
652
|
-
* @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.
|
|
653
|
-
* See {@link ng.$http#$http-returns `$http()` return value}.
|
|
654
|
-
*/
|
|
655
|
-
createShortMethods("get", "delete", "head");
|
|
656
|
-
|
|
657
|
-
/**
|
|
658
|
-
* Shortcut method to perform `POST` request.
|
|
659
|
-
*
|
|
660
|
-
* @param {string} url Relative or absolute URL specifying the destination of the request
|
|
661
|
-
* @param {*} data Request content
|
|
662
|
-
* @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.
|
|
663
|
-
* @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.
|
|
664
|
-
* See {@link ng.$http#$http-returns `$http()` return value}.
|
|
665
|
-
*/
|
|
666
|
-
|
|
667
|
-
/**
|
|
668
|
-
* Shortcut method to perform `PUT` request.
|
|
669
|
-
*
|
|
670
|
-
* @param {string} url Relative or absolute URL specifying the destination of the request
|
|
671
|
-
* @param {*} data Request content
|
|
672
|
-
* @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.
|
|
673
|
-
* @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.
|
|
674
|
-
* See {@link ng.$http#$http-returns `$http()` return value}.
|
|
675
|
-
*/
|
|
676
|
-
|
|
677
|
-
/**
|
|
678
|
-
* Shortcut method to perform `PATCH` request.
|
|
679
|
-
*
|
|
680
|
-
* @param {string} url Relative or absolute URL specifying the destination of the request
|
|
681
|
-
* @param {*} data Request content
|
|
682
|
-
* @param {Object=} config Optional configuration object. See {@link ng.$http#$http-arguments `$http()` arguments}.
|
|
683
|
-
* @returns {HttpPromise} A Promise that will be resolved or rejected with a response object.
|
|
684
|
-
* See {@link ng.$http#$http-returns `$http()` return value}.
|
|
685
|
-
*/
|
|
686
|
-
createShortMethodsWithData("post", "put", "patch");
|
|
687
|
-
|
|
688
|
-
/**
|
|
689
|
-
* Runtime equivalent of the `$httpProvider.defaults` property. Allows configuration of
|
|
690
|
-
* default headers, withCredentials as well as request and response transformations.
|
|
691
|
-
*
|
|
692
|
-
* See "Setting HTTP Headers" and "Transforming Requests and Responses" sections above.
|
|
693
|
-
*/
|
|
694
|
-
$http.defaults = defaults;
|
|
695
|
-
|
|
696
|
-
return $http;
|
|
697
|
-
|
|
698
|
-
function createShortMethods(...names) {
|
|
699
|
-
names.forEach((name) => {
|
|
700
|
-
$http[name] = function (url, config) {
|
|
701
|
-
return $http(
|
|
702
|
-
extend({}, config || {}, {
|
|
703
|
-
method: name,
|
|
704
|
-
url,
|
|
705
|
-
}),
|
|
706
|
-
);
|
|
707
|
-
};
|
|
708
|
-
});
|
|
709
|
-
}
|
|
710
|
-
|
|
711
|
-
function createShortMethodsWithData(...names) {
|
|
712
|
-
names.forEach((name) => {
|
|
713
|
-
$http[name] = function (url, data, config) {
|
|
714
|
-
return $http(
|
|
715
|
-
extend({}, config || {}, {
|
|
716
|
-
method: name,
|
|
717
|
-
url,
|
|
718
|
-
data,
|
|
719
|
-
}),
|
|
720
|
-
);
|
|
721
|
-
};
|
|
722
|
-
});
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
/**
|
|
726
|
-
* Makes the request.
|
|
727
|
-
*
|
|
728
|
-
* !!! ACCESSES CLOSURE VARS:
|
|
729
|
-
* $httpBackend, defaults, $log, $rootScope, defaultCache, $http.pendingRequests
|
|
730
|
-
*/
|
|
731
|
-
function sendReq(config, reqData) {
|
|
732
|
-
const { promise, resolve, reject } = Promise.withResolvers();
|
|
733
|
-
let cache;
|
|
734
|
-
let cachedResp;
|
|
735
|
-
const reqHeaders = config.headers;
|
|
736
|
-
let { url } = config;
|
|
737
|
-
|
|
738
|
-
if (!isString(url)) {
|
|
739
|
-
// If it is not a string then the URL must be a $sce trusted object
|
|
740
|
-
url = $sce.valueOf(url);
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
url = buildUrl(url, config.paramSerializer(config.params));
|
|
744
|
-
|
|
745
|
-
$http.pendingRequests.push(config);
|
|
746
|
-
promise.then(removePendingReq, removePendingReq);
|
|
747
|
-
|
|
748
|
-
if (
|
|
749
|
-
(config.cache || defaults.cache) &&
|
|
750
|
-
config.cache !== false &&
|
|
751
|
-
config.method === "GET"
|
|
752
|
-
) {
|
|
753
|
-
cache = isObject(config.cache)
|
|
754
|
-
? config.cache
|
|
755
|
-
: isObject(/** @type {?} */ (defaults).cache)
|
|
756
|
-
? /** @type {?} */ (defaults).cache
|
|
757
|
-
: defaultCache;
|
|
758
|
-
}
|
|
759
|
-
|
|
760
|
-
if (cache) {
|
|
761
|
-
cachedResp = cache.get(url);
|
|
762
|
-
if (isDefined(cachedResp)) {
|
|
763
|
-
if (isPromiseLike(cachedResp)) {
|
|
764
|
-
// cached request has already been sent, but there is no response yet
|
|
765
|
-
cachedResp.then(
|
|
766
|
-
resolvePromiseWithResult,
|
|
767
|
-
resolvePromiseWithResult,
|
|
768
|
-
);
|
|
769
|
-
} else {
|
|
770
|
-
// serving from cache
|
|
771
|
-
if (Array.isArray(cachedResp)) {
|
|
772
|
-
resolvePromise(
|
|
773
|
-
cachedResp[1],
|
|
774
|
-
cachedResp[0],
|
|
775
|
-
shallowCopy(cachedResp[2]),
|
|
776
|
-
cachedResp[3],
|
|
777
|
-
cachedResp[4],
|
|
778
|
-
);
|
|
779
|
-
} else {
|
|
780
|
-
resolvePromise(cachedResp, 200, {}, "OK", "complete");
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
} else {
|
|
784
|
-
// put the promise for the non-transformed response into cache as a placeholder
|
|
785
|
-
cache.set(url, promise);
|
|
786
|
-
}
|
|
787
|
-
}
|
|
788
|
-
|
|
789
|
-
// if we won't have the response in cache, set the xsrf headers and
|
|
790
|
-
// send the request to the backend
|
|
791
|
-
if (isUndefined(cachedResp)) {
|
|
792
|
-
const xsrfValue = urlIsAllowedOrigin(config.url)
|
|
793
|
-
? getCookies()[config.xsrfCookieName || defaults.xsrfCookieName]
|
|
794
|
-
: undefined;
|
|
795
|
-
if (xsrfValue) {
|
|
796
|
-
reqHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] =
|
|
797
|
-
xsrfValue;
|
|
798
|
-
}
|
|
799
|
-
|
|
800
|
-
$httpBackend(
|
|
801
|
-
config.method,
|
|
802
|
-
url,
|
|
803
|
-
reqData,
|
|
804
|
-
done,
|
|
805
|
-
reqHeaders,
|
|
806
|
-
config.timeout,
|
|
807
|
-
config.withCredentials,
|
|
808
|
-
config.responseType,
|
|
809
|
-
createApplyHandlers(config.eventHandlers),
|
|
810
|
-
createApplyHandlers(config.uploadEventHandlers),
|
|
811
|
-
);
|
|
812
|
-
}
|
|
813
|
-
|
|
814
|
-
return promise;
|
|
815
|
-
|
|
816
|
-
function createApplyHandlers(eventHandlers) {
|
|
817
|
-
if (eventHandlers) {
|
|
818
|
-
const applyHandlers = {};
|
|
819
|
-
Object.entries(eventHandlers).forEach(([key, eventHandler]) => {
|
|
820
|
-
applyHandlers[key] = function (event) {
|
|
821
|
-
if (useApplyAsync) {
|
|
822
|
-
setTimeout(() => callEventHandler());
|
|
823
|
-
} else {
|
|
824
|
-
callEventHandler();
|
|
825
|
-
}
|
|
826
|
-
|
|
827
|
-
function callEventHandler() {
|
|
828
|
-
eventHandler(event);
|
|
829
|
-
}
|
|
830
|
-
};
|
|
831
|
-
});
|
|
832
|
-
return applyHandlers;
|
|
833
|
-
}
|
|
834
|
-
}
|
|
835
|
-
|
|
836
|
-
/**
|
|
837
|
-
* Callback registered to $httpBackend():
|
|
838
|
-
* - caches the response if desired
|
|
839
|
-
* - resolves the raw $http promise
|
|
840
|
-
* - calls $apply
|
|
841
|
-
*/
|
|
842
|
-
function done(status, response, headersString, statusText, xhrStatus) {
|
|
843
|
-
if (cache) {
|
|
844
|
-
if (isSuccess(status)) {
|
|
845
|
-
cache.set(url, [
|
|
846
|
-
status,
|
|
847
|
-
response,
|
|
848
|
-
parseHeaders(headersString),
|
|
849
|
-
statusText,
|
|
850
|
-
xhrStatus,
|
|
851
|
-
]);
|
|
852
|
-
} else {
|
|
853
|
-
// remove promise from the cache
|
|
854
|
-
cache.delete(url);
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
function resolveHttpPromise() {
|
|
859
|
-
resolvePromise(
|
|
860
|
-
response,
|
|
861
|
-
status,
|
|
862
|
-
headersString,
|
|
863
|
-
statusText,
|
|
864
|
-
xhrStatus,
|
|
865
|
-
);
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
if (useApplyAsync) {
|
|
869
|
-
setTimeout(resolveHttpPromise);
|
|
870
|
-
} else {
|
|
871
|
-
resolveHttpPromise();
|
|
872
|
-
}
|
|
873
|
-
}
|
|
874
|
-
|
|
875
|
-
/**
|
|
876
|
-
* Resolves the raw $http promise.
|
|
877
|
-
*/
|
|
878
|
-
function resolvePromise(
|
|
879
|
-
response,
|
|
880
|
-
status,
|
|
881
|
-
headers,
|
|
882
|
-
statusText,
|
|
883
|
-
xhrStatus,
|
|
884
|
-
) {
|
|
885
|
-
// status: HTTP response status code, 0, -1 (aborted by timeout / promise)
|
|
886
|
-
status = status >= -1 ? status : 0;
|
|
887
|
-
|
|
888
|
-
(isSuccess(status) ? resolve : reject)({
|
|
889
|
-
data: response,
|
|
890
|
-
status,
|
|
891
|
-
headers: headersGetter(headers),
|
|
892
|
-
config,
|
|
893
|
-
statusText,
|
|
894
|
-
xhrStatus,
|
|
895
|
-
});
|
|
896
|
-
}
|
|
897
|
-
|
|
898
|
-
function resolvePromiseWithResult(result) {
|
|
899
|
-
resolvePromise(
|
|
900
|
-
result.data,
|
|
901
|
-
result.status,
|
|
902
|
-
shallowCopy(result.headers()),
|
|
903
|
-
result.statusText,
|
|
904
|
-
result.xhrStatus,
|
|
905
|
-
);
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
function removePendingReq() {
|
|
909
|
-
const idx = $http.pendingRequests.indexOf(config);
|
|
910
|
-
if (idx !== -1) $http.pendingRequests.splice(idx, 1);
|
|
911
|
-
}
|
|
912
|
-
}
|
|
913
|
-
|
|
914
|
-
function buildUrl(url, serializedParams) {
|
|
915
|
-
if (serializedParams.length > 0) {
|
|
916
|
-
url += (url.indexOf("?") === -1 ? "?" : "&") + serializedParams;
|
|
917
|
-
}
|
|
918
|
-
return url;
|
|
919
|
-
}
|
|
920
|
-
},
|
|
921
|
-
];
|
|
922
|
-
}
|