@angular-wave/angular.ts 0.8.3 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/@types/services/sce/sce.d.ts +0 -8
  2. package/dist/angular-ts.esm.js +29 -24
  3. package/dist/angular-ts.umd.js +29 -24
  4. package/dist/angular-ts.umd.min.js +1 -1
  5. package/docs/layouts/shortcodes/version.html +1 -1
  6. package/docs/static/typedoc/assets/style.css +9 -2
  7. package/package.json +1 -1
  8. package/src/animations/animations.test.js +1 -1
  9. package/src/binding.test.js +1 -1
  10. package/src/core/compile/compile.spec.js +2 -2
  11. package/src/core/compile/compile.test.js +1 -1
  12. package/src/core/controller/controller.test.js +1 -1
  13. package/src/core/core.test.js +1 -1
  14. package/src/core/di/injector.test.js +1 -1
  15. package/src/core/di/ng-module.test.js +1 -1
  16. package/src/core/filter/filter.test.js +1 -1
  17. package/src/core/interpolate/interpolate.test.js +1 -1
  18. package/src/core/parse/ast/ast.test.js +1 -1
  19. package/src/core/parse/interpreter.js +23 -8
  20. package/src/core/parse/lexer/lexer.test.js +1 -1
  21. package/src/core/parse/parse.test.js +1 -1
  22. package/src/core/parse/parser/parser.test.js +1 -1
  23. package/src/core/sanitize/sanitize-uri.test.js +1 -1
  24. package/src/core/scope/scope.js +3 -9
  25. package/src/core/scope/scope.spec.js +2 -2
  26. package/src/core/scope/scope.test.js +12 -0
  27. package/src/directive/aria/aria.test.js +1 -1
  28. package/src/directive/attrs/attrs.test.js +1 -1
  29. package/src/directive/attrs/boolean.test.js +1 -1
  30. package/src/directive/attrs/element-style.test.js +1 -1
  31. package/src/directive/attrs/src.test.js +1 -1
  32. package/src/directive/bind/bind.test.js +1 -1
  33. package/src/directive/channel/channel.test.js +1 -1
  34. package/src/directive/class/class-test.html +23 -0
  35. package/src/directive/class/class.test.js +1 -1
  36. package/src/directive/cloak/cloak.test.js +1 -1
  37. package/src/directive/controller/controller.test.js +1 -1
  38. package/src/directive/events/events.test.js +1 -1
  39. package/src/directive/form/form.test.js +1 -1
  40. package/src/directive/http/http.test.js +1 -1
  41. package/src/directive/if/if.test.js +1 -1
  42. package/src/directive/include/include.test.js +1 -1
  43. package/src/directive/init/init.test.js +1 -1
  44. package/src/directive/input/input.test.js +1 -1
  45. package/src/directive/messages/messages.spec.js +6 -5
  46. package/src/directive/messages/messages.test.js +2 -2
  47. package/src/directive/model/model.test.js +1 -1
  48. package/src/directive/model-options/model-option.test.js +1 -1
  49. package/src/directive/non-bindable/non-bindable.test.js +1 -1
  50. package/src/directive/observe/observe.test.js +1 -1
  51. package/src/directive/on/on.test.js +1 -1
  52. package/src/directive/options/options.test.js +1 -1
  53. package/src/directive/ref/href.test.js +2 -2
  54. package/src/directive/repeat/repeat.spec.js +61 -61
  55. package/src/directive/repeat/repeat.test.js +2 -2
  56. package/src/directive/script/script.test.js +1 -1
  57. package/src/directive/select/select.test.js +1 -1
  58. package/src/directive/setter/setter.test.js +1 -1
  59. package/src/directive/show-hide/show-hide.test.js +1 -1
  60. package/src/directive/style/style.test.js +1 -1
  61. package/src/directive/switch/switch.test.js +1 -1
  62. package/src/directive/validators/validators.test.js +1 -1
  63. package/src/filters/filters.test.js +1 -1
  64. package/src/router/directives/state-directives.test.js +1 -1
  65. package/src/router/directives/view-directive.spec.js +9 -6
  66. package/src/router/directives/view-directive.test.js +1 -1
  67. package/src/router/glob/glob.test.js +1 -1
  68. package/src/router/router.test.js +1 -1
  69. package/src/router/state/state.test.js +1 -1
  70. package/src/router/template-factory.spec.js +1 -4
  71. package/src/router/template-factory.test.js +1 -1
  72. package/src/router/url/url.test.js +1 -1
  73. package/src/router/view/view.test.js +1 -1
  74. package/src/services/http/http.test.js +1 -1
  75. package/src/services/http-backend/http-backend.test.js +1 -1
  76. package/src/services/location/location.test.js +1 -1
  77. package/src/services/log/log.test.js +1 -1
  78. package/src/services/pubsub/pubsub.test.js +1 -1
  79. package/src/services/sce/sce.js +7 -6
  80. package/src/services/sce/sce.test.js +1 -1
  81. package/src/services/template-cache/template-cache.test.js +1 -1
  82. package/src/shared/shared.test.js +1 -1
  83. package/src/shared/url-utils/url-utils.test.js +1 -1
  84. package/src/src.test.js +1 -1
  85. package/src/loader.md +0 -0
@@ -14,6 +14,8 @@ describe("ngRepeat", () => {
14
14
  let logs = [];
15
15
 
16
16
  beforeEach(() => {
17
+ const el = document.getElementById("app");
18
+ dealoc(el);
17
19
  delete window.angular;
18
20
  logs = [];
19
21
  window.angular = new Angular();
@@ -26,7 +28,7 @@ describe("ngRepeat", () => {
26
28
  };
27
29
  });
28
30
 
29
- injector = window.angular.bootstrap(document.getElementById("app"), [
31
+ injector = window.angular.bootstrap(el, [
30
32
  "defaultModule",
31
33
  (_$compileProvider_) => {
32
34
  $compileProvider = _$compileProvider_;
@@ -223,80 +225,78 @@ describe("ngRepeat", () => {
223
225
  expect(element.textContent.trim()).toEqual("");
224
226
  });
225
227
 
226
- it("should support alias identifiers containing reserved words", () => {
227
- scope.x = "bl";
228
- scope.items = [
229
- { name: "red" },
230
- { name: "blue" },
231
- { name: "green" },
232
- { name: "black" },
233
- { name: "orange" },
234
- { name: "blonde" },
235
- ];
236
- ["null2", "qthis", "qthisq", "fundefined", "$$parent"].forEach(
237
- async (name) => {
238
- const expr = `item in items | filter:x as ${name}`;
239
- element = $compile(`<div><div ng-repeat="${expr}"></div></div>`)(
240
- scope,
241
- );
242
- await wait();
243
- expect(scope[name][0].name).toEqual("blue");
244
- expect(scope[name][1].name).toEqual("black");
245
- expect(scope[name][2].name).toEqual("blonde");
246
- dealoc(element);
247
- },
248
- );
228
+ for (const name of ["null2", "qthis", "qthisq", "fundefined", "$$parent"]) {
229
+ it(`should support alias identifier containing reserved word: ${name}`, async () => {
230
+ scope.x = "bl";
231
+ scope.items = [
232
+ { name: "red" },
233
+ { name: "blue" },
234
+ { name: "green" },
235
+ { name: "black" },
236
+ { name: "orange" },
237
+ { name: "blonde" },
238
+ ];
239
+
240
+ const expr = `item in items | filter:x as ${name}`;
241
+ element = $compile(`<div><div ng-repeat="${expr}"></div></div>`)(scope);
249
242
 
250
- expect().toBe();
251
- });
243
+ await wait();
252
244
 
253
- it("should throw if alias identifier is not a simple identifier", async () => {
254
- scope.x = "bl";
255
- scope.items = [
256
- { name: "red" },
257
- { name: "blue" },
258
- { name: "green" },
259
- { name: "black" },
260
- { name: "orange" },
261
- { name: "blonde" },
262
- ];
245
+ expect(scope[name][0].name).toEqual("blue");
246
+ expect(scope[name][1].name).toEqual("black");
247
+ expect(scope[name][2].name).toEqual("blonde");
248
+
249
+ dealoc(element);
250
+ });
251
+ }
252
+
253
+ for (const expr of [
254
+ "null",
255
+ "this",
256
+ "undefined",
257
+ "$parent",
258
+ "$root",
259
+ "$id",
260
+ "$index",
261
+ "$first",
262
+ "$middle",
263
+ "$last",
264
+ "$even",
265
+ "$odd",
266
+ "obj[key]",
267
+ 'obj["key"]',
268
+ "obj['key']",
269
+ "obj.property",
270
+ "foo=6",
271
+ ]) {
272
+ it(`should throw if alias identifier is not simple: ${expr}`, async () => {
273
+ scope.x = "bl";
274
+ scope.items = [
275
+ { name: "red" },
276
+ { name: "blue" },
277
+ { name: "green" },
278
+ { name: "black" },
279
+ { name: "orange" },
280
+ { name: "blonde" },
281
+ ];
263
282
 
264
- [
265
- "null",
266
- "this",
267
- "undefined",
268
- "$parent",
269
- "$root",
270
- "$id",
271
- "$index",
272
- "$first",
273
- "$middle",
274
- "$last",
275
- "$even",
276
- "$odd",
277
- "obj[key]",
278
- 'obj["key"]',
279
- "obj['key']",
280
- "obj.property",
281
- "foo=6",
282
- ].forEach(async (expr) => {
283
283
  const expression = `item in items | filter:x as ${expr}`.replace(
284
284
  /"/g,
285
285
  "&quot;",
286
286
  );
287
287
  element = $compile(
288
- `<div>` +
289
- ` <div ng-repeat="${expression}">{{item}}</div>` +
290
- `</div>`,
288
+ `<div>
289
+ <div ng-repeat="${expression}">{{item}}</div>
290
+ </div>`,
291
291
  )(scope);
292
+
292
293
  await wait();
294
+
293
295
  expect(logs.shift().message).toMatch(/must be a valid JS identifier/);
294
296
 
295
297
  dealoc(element);
296
298
  });
297
-
298
- expect().toBe();
299
- });
299
+ }
300
300
 
301
301
  it("should allow expressions over multiple lines", async () => {
302
302
  element = $compile(
@@ -1,12 +1,12 @@
1
1
  import { test, expect } from "@playwright/test";
2
2
 
3
- const TEST_URL = "src/directive/repeat/repeat.html";
3
+ const TEST_URL = "src/directive/repeat/repeat.html?random=false";
4
4
 
5
5
  test("unit tests contain no errors", async ({ page }) => {
6
6
  await page.goto(TEST_URL);
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(3000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(100);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -5,6 +5,6 @@ test("unit state-directives tests contain no errors", async ({ page }) => {
5
5
  await page.content();
6
6
  await page.waitForTimeout(6000);
7
7
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
8
- /0 failures/,
8
+ / 0 failures/,
9
9
  );
10
10
  });
@@ -2,7 +2,7 @@ import { createElementFromHTML, dealoc } from "../../shared/dom.js";
2
2
  import { Angular } from "../../angular.js";
3
3
  import { wait } from "../../shared/test-utils.js";
4
4
 
5
- describe("ngView", () => {
5
+ fdescribe("ngView", () => {
6
6
  window.location.hash = "";
7
7
  let $stateProvider,
8
8
  scope,
@@ -799,7 +799,7 @@ describe("ngView", () => {
799
799
  // });
800
800
  });
801
801
 
802
- describe("ngView named", () => {
802
+ fdescribe("ngView named", () => {
803
803
  let $stateProvider,
804
804
  scope,
805
805
  $compile,
@@ -812,6 +812,7 @@ describe("ngView named", () => {
812
812
  $viewScroll;
813
813
 
814
814
  beforeEach(() => {
815
+ dealoc(document.getElementById("app"));
815
816
  window.angular = new Angular();
816
817
  log = "";
817
818
  app = window.angular
@@ -872,7 +873,7 @@ describe("ngView named", () => {
872
873
  });
873
874
  });
874
875
 
875
- describe("ngView transclusion", () => {
876
+ fdescribe("ngView transclusion", () => {
876
877
  let scope, $compile, elem, $injector, $rootScope, $state;
877
878
 
878
879
  beforeEach(() => {
@@ -928,7 +929,7 @@ describe("ngView transclusion", () => {
928
929
  });
929
930
  });
930
931
 
931
- describe("ngView controllers or onEnter handlers", () => {
932
+ fdescribe("ngView controllers or onEnter handlers", () => {
932
933
  let el, template, scope, count, $rootScope, $compile, $state, elem;
933
934
 
934
935
  beforeEach(() => {
@@ -936,8 +937,9 @@ describe("ngView controllers or onEnter handlers", () => {
936
937
  window.angular = new Angular();
937
938
  window.angular
938
939
  .module("defaultModule", [])
939
- .config(function ($stateProvider) {
940
+ .config(function ($locationProvider, $stateProvider) {
940
941
  count = 0;
942
+ $locationProvider.html5ModeConf.enabled = false;
941
943
  $stateProvider
942
944
  .state({
943
945
  name: "aside",
@@ -1004,7 +1006,7 @@ describe("ngView controllers or onEnter handlers", () => {
1004
1006
  });
1005
1007
  });
1006
1008
 
1007
- describe("angular 1.5+ style .component()", () => {
1009
+ fdescribe("angular 1.5+ style .component()", () => {
1008
1010
  let el = document.getElementById("app"),
1009
1011
  app,
1010
1012
  scope,
@@ -1015,6 +1017,7 @@ describe("angular 1.5+ style .component()", () => {
1015
1017
  $rootScope;
1016
1018
 
1017
1019
  beforeEach(() => {
1020
+ dealoc(document.getElementById("app"));
1018
1021
  window.angular = new Angular();
1019
1022
  window.angular
1020
1023
  .module("defaultModule", [])
@@ -5,6 +5,6 @@ test("unit view-directives tests contain no errors", async ({ page }) => {
5
5
  await page.content();
6
6
  await page.waitForTimeout(6000);
7
7
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
8
- /0 failures/,
8
+ / 0 failures/,
9
9
  );
10
10
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(4000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -48,12 +48,9 @@ describe("templateFactory", () => {
48
48
  });
49
49
 
50
50
  it("rejects untrusted URLs", async () => {
51
- let error = "No error thrown";
52
51
  try {
53
52
  await $templateFactory.fromUrl("http://evil.com/views/view.html");
54
- } catch (e) {
55
- error = e;
56
- }
53
+ } catch (e) {}
57
54
  expect(error).toMatch(/sce:insecurl/);
58
55
  });
59
56
 
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(4000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -6,6 +6,6 @@ test("unit tests contain no errors", async ({ page }) => {
6
6
  await page.goto(TEST_URL);
7
7
  await page.content();
8
8
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
9
- /0 failures/,
9
+ / 0 failures/,
10
10
  );
11
11
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(100);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -245,8 +245,6 @@ export function adjustMatcher(matcher) {
245
245
  */
246
246
  export class SceDelegateProvider {
247
247
  constructor() {
248
- this.SCE_CONTEXTS = SCE_CONTEXTS;
249
-
250
248
  // Resource URLs can also be trusted by policy.
251
249
  let trustedResourceUrlList = ["self"];
252
250
  let bannedResourceUrlList = [];
@@ -545,11 +543,14 @@ export class SceDelegateProvider {
545
543
  if (isResourceUrlAllowedByPolicy(maybeTrusted)) {
546
544
  return maybeTrusted;
547
545
  }
548
- throw $sceMinErr(
549
- "insecurl",
550
- "Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",
551
- maybeTrusted.toString(),
546
+ $exceptionHandler(
547
+ $sceMinErr(
548
+ "insecurl",
549
+ "Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",
550
+ maybeTrusted.toString(),
551
+ ),
552
552
  );
553
+ return;
553
554
  } else if (type === SCE_CONTEXTS.HTML) {
554
555
  // htmlSanitizer throws its own error when no sanitizer is available.
555
556
  return htmlSanitizer();
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(100);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(1000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
@@ -7,6 +7,6 @@ test("unit tests contain no errors", async ({ page }) => {
7
7
  await page.content();
8
8
  await page.waitForTimeout(100);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
- /0 failures/,
10
+ / 0 failures/,
11
11
  );
12
12
  });
package/src/src.test.js CHANGED
@@ -5,6 +5,6 @@ test("src tests contain no errors", async ({ page }) => {
5
5
  await page.content();
6
6
  await page.waitForTimeout(6000);
7
7
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
8
- /0 failures/,
8
+ / 0 failures/,
9
9
  );
10
10
  });
package/src/loader.md DELETED
File without changes