conjur-asset-ui 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.jshintrc +41 -0
  4. data/Gemfile +3 -1
  5. data/README.md +34 -0
  6. data/Rakefile +69 -1
  7. data/bower.json +93 -0
  8. data/conjur-asset-ui.gemspec +1 -1
  9. data/features/navigation_bar.feature +31 -0
  10. data/features/step_definitions/custom_step.rb +32 -0
  11. data/features/support/env.rb +38 -0
  12. data/features/support/hooks.rb +30 -0
  13. data/features/support/world.rb +17 -0
  14. data/gulpfile.js +140 -0
  15. data/lib/conjur/command/ui.rb +1 -1
  16. data/lib/conjur/webserver/server.rb +14 -9
  17. data/lib/conjur-asset-ui-version.rb +1 -1
  18. data/package.json +47 -0
  19. data/preprocessor.js +7 -0
  20. data/public/_client_libs.html +2 -15
  21. data/public/css/styles.less +170 -4
  22. data/public/index.html.erb +5 -7
  23. data/public/js/init.js +183 -97
  24. data/public/js/lib/sorted-set.no-require.js +3 -28
  25. data/public/js/models/groupRecord.js +12 -11
  26. data/public/js/models/hostRecord.js +6 -7
  27. data/public/js/models/layerRecord.js +12 -11
  28. data/public/js/models/namespace.js +2 -0
  29. data/public/js/models/policyList.js +3 -1
  30. data/public/js/models/policyRecord.js +6 -7
  31. data/public/js/models/record.js +24 -23
  32. data/public/js/models/resourceList.js +28 -10
  33. data/public/js/models/userList.js +7 -2
  34. data/public/js/models/userRecord.js +7 -8
  35. data/public/js/models/variableList.js +18 -7
  36. data/public/js/models/variableRecord.js +13 -12
  37. data/public/js/routers.js +72 -26
  38. data/public/js/views/annotations.js +38 -27
  39. data/public/js/views/audit.js +23 -17
  40. data/public/js/views/chart.js +471 -0
  41. data/public/js/views/dashboard.js +94 -58
  42. data/public/js/views/generic.js +16 -9
  43. data/public/js/views/group.js +94 -55
  44. data/public/js/views/groups.js +3 -7
  45. data/public/js/views/host.js +75 -44
  46. data/public/js/views/hosts.js +2 -6
  47. data/public/js/views/layer.js +127 -82
  48. data/public/js/views/layers.js +2 -6
  49. data/public/js/views/mixins/search.js +12 -5
  50. data/public/js/views/mixins/tabs.js +95 -55
  51. data/public/js/views/navSearch.js +16 -5
  52. data/public/js/views/owned.js +14 -8
  53. data/public/js/views/permissions.js +244 -178
  54. data/public/js/views/policies.js +2 -4
  55. data/public/js/views/policy.js +65 -38
  56. data/public/js/views/resource.js +49 -34
  57. data/public/js/views/role.js +52 -37
  58. data/public/js/views/searchResults.js +205 -138
  59. data/public/js/views/time.js +26 -13
  60. data/public/js/views/user.js +178 -55
  61. data/public/js/views/users.js +2 -7
  62. data/public/js/views/variable.js +226 -45
  63. data/public/js/views/variables.js +4 -8
  64. metadata +20 -20
  65. data/public/_client_code.html +0 -42
  66. data/public/css/bootstrap.css +0 -7
  67. data/public/fonts/glyphicons-halflings-regular.eot +0 -0
  68. data/public/fonts/glyphicons-halflings-regular.svg +0 -229
  69. data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  70. data/public/fonts/glyphicons-halflings-regular.woff +0 -0
  71. data/public/js/lib/JSXTransformer.js +0 -10862
  72. data/public/js/lib/async.js +0 -958
  73. data/public/js/lib/backbone.js +0 -2
  74. data/public/js/lib/bootstrap.js +0 -6
  75. data/public/js/lib/less.js +0 -16
  76. data/public/js/lib/moment.js +0 -7768
  77. data/public/js/lib/react-bootstrap.js +0 -5346
  78. data/public/js/lib/react-bootstrap.min.js +0 -4
  79. data/public/js/lib/underscore-min.js +0 -6
  80. data/public/js/lib/underscore.string.min.js +0 -1
  81. data/public/js/main.js +0 -57
data/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "conjur-asset-ui",
3
+ "version": "1.2.0",
4
+ "description": "",
5
+ "main": "",
6
+ "dependencies": {},
7
+ "devDependencies": {
8
+ "gulp": "~3.8.8",
9
+ "main-bower-files": "~2.0.0",
10
+ "gulp-sourcemaps": "~1.2.2",
11
+ "del": "~0.1.3",
12
+ "gulp-uglify": "~1.0.1",
13
+ "gulp-concat": "~2.4.1",
14
+ "gulp-react": "~1.0.2",
15
+ "gulp-cached": "~1.0.1",
16
+ "gulp-jshint": "~1.8.4",
17
+ "jshint-stylish": "~1.0.0",
18
+ "gulp-remember": "~0.2.1",
19
+ "gulp-less": "~1.3.5",
20
+ "gulp-minify-css": "~0.3.10",
21
+ "gulp-filter": "~1.0.2",
22
+ "gulp-flatten": "0.0.3",
23
+ "jest-cli": "~0.1.18",
24
+ "react": "~0.11.2",
25
+ "react-tools": "~0.11.2",
26
+ "gulp-autoprefixer": "~1.0.1",
27
+ "gulp-plumber": "~0.6.6"
28
+ },
29
+ "scripts": {
30
+ "test": "jest"
31
+ },
32
+ "jest": {
33
+ "scriptPreprocessor": "<rootDir>/preprocessor.js",
34
+ "unmockedModulePathPatterns": [
35
+ "<rootDir>/node_modules/react"
36
+ ]
37
+ },
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git://github.com/conjurinc/conjur-asset-ui.git"
41
+ },
42
+ "author": "Nikolai Sevostjanov <nikolai.sevostjanov@gmail.com>",
43
+ "license": "MIT",
44
+ "bugs": {
45
+ "url": "https://github.com/conjurinc/conjur-asset-ui/issues"
46
+ }
47
+ }
data/preprocessor.js ADDED
@@ -0,0 +1,7 @@
1
+ var ReactTools = require('react-tools');
2
+
3
+ module.exports = {
4
+ process: function(src) {
5
+ return ReactTools.transform(src);
6
+ }
7
+ };
@@ -6,19 +6,6 @@
6
6
  <![endif]-->
7
7
 
8
8
  <script src="/js/lib/sorted-set.no-require.js"></script>
9
- <script src="/js/lib/less.js"></script>
10
- <script src="http://fb.me/react-with-addons-0.11.1.js"></script>
11
- <!--script src="/js/lib/react-with-addons.js"></script-->
12
- <script src="/js/lib/JSXTransformer.js"></script>
13
- <script src="http://cdnjs.cloudflare.com/ajax/libs/showdown/0.3.1/showdown.min.js"></script>
14
- <script src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
15
- <script src="/js/lib/async.js"></script>
16
- <script src="/js/lib/underscore-min.js"></script>
17
- <script src="/js/lib/underscore.string.min.js"></script>
18
- <script src="/js/lib/backbone.js"></script>
19
- <script src="/js/lib/bootstrap.js"></script>
20
- <script src="/js/lib/date.extensions.js"></script>
21
- <script src="/js/lib/moment.js"></script>
9
+ <!-- <script src="/js/lib/date.extensions.js"></script> -->
22
10
  <script src="/js/lib/prelude-browser-min.js"></script>
23
- <script src="/js/lib/sorted-set.no-require.js"></script>
24
- <script src="/js/lib/react-bootstrap.js"></script>
11
+ <script src="/build/js/vendor.min.js"></script>
@@ -189,10 +189,6 @@ dl.propertyList {
189
189
  background-position-y: -0.2em;
190
190
  }
191
191
 
192
- .pubkeysUser .list-group-item {
193
- max-width: 300px;
194
- }
195
-
196
192
  .group.role-link, .group.resource-link {
197
193
  .role-link-padding;
198
194
  .group-icon(1.2em);
@@ -459,3 +455,173 @@ section.permissions {
459
455
  .tab-pane {
460
456
  padding-top: 5px;
461
457
  }
458
+
459
+ /* ---------------------------------- */
460
+ /* -Variables------------------------ */
461
+
462
+ .b-breadcrumb {
463
+
464
+ }
465
+
466
+ .b-breadcrumbs {
467
+
468
+ }
469
+
470
+ .b-variable-activity {
471
+
472
+ }
473
+
474
+ .b-variable-updaters {
475
+
476
+ }
477
+
478
+ .b-variable-fetchers {
479
+
480
+ }
481
+
482
+ .b-variable-updates {
483
+
484
+ }
485
+
486
+ .b-variable-warnings {
487
+
488
+ }
489
+
490
+ .revealer {
491
+ cursor: pointer;
492
+ }
493
+
494
+ /* ---------------------------------- */
495
+ /* -Pubkeys-------------------------- */
496
+
497
+ .b-pubkeys {
498
+
499
+ }
500
+
501
+ .b-pubkeys__help {
502
+
503
+ }
504
+
505
+ .b-pubkeys__list {
506
+ padding-top: 10px;
507
+ }
508
+
509
+ .b-pubkeys__item {
510
+
511
+ }
512
+
513
+ .b-pubkeys__item--headline {
514
+ margin-bottom: 1px;
515
+ box-shadow: 0 2px 1px -2px gray;
516
+ }
517
+
518
+ .b-pubkey {
519
+ margin-right: 55px;
520
+ height: 20px;
521
+ }
522
+
523
+ .b-pubkey__logo {
524
+ display: inline-block;
525
+ width: 70px;
526
+ }
527
+
528
+ .b-pubkey__list {
529
+ display: inline-block;
530
+ }
531
+
532
+ .b-pubkey__name {
533
+
534
+ }
535
+
536
+ .b-pubkey__fingerprint {
537
+
538
+ }
539
+
540
+ .b-pubkey__info {
541
+
542
+ }
543
+
544
+ .b-pubkey__actions {
545
+ display: inline-block;
546
+ }
547
+
548
+ .b-chart-demo {
549
+ height: 300px;
550
+ }
551
+
552
+ /* ------------------------------------------------ */
553
+ /* Chart */
554
+
555
+ .b-chart {
556
+ height: 100%;
557
+ }
558
+
559
+ /* Line Chart */
560
+
561
+ .d3-line-chart {
562
+ font: 10px sans-serif;
563
+ }
564
+
565
+ .d3-line-chart__inner {
566
+
567
+ }
568
+
569
+ /* Axises */
570
+
571
+ .d3-axis {
572
+
573
+ }
574
+
575
+ .d3-axis__x line,
576
+ .d3-axis__x path {
577
+ fill: none;
578
+ stroke: #000;
579
+ shape-rendering: crispEdges;
580
+ }
581
+
582
+ .d3-axis__y line,
583
+ .d3-axis__y path {
584
+ fill: none;
585
+ stroke: #000;
586
+ shape-rendering: crispEdges;
587
+ }
588
+
589
+ /* Legend */
590
+
591
+ .d3-legend {
592
+
593
+ }
594
+
595
+ .d3-legend__item {
596
+
597
+ }
598
+
599
+ /* Graph */
600
+
601
+ .d3-graph {
602
+
603
+ }
604
+
605
+ .d3-graph__line {
606
+
607
+ }
608
+
609
+ .d3-graph__line path {
610
+ fill: none;
611
+ stroke: steelblue;
612
+ stroke-width: 1.5px;
613
+ }
614
+
615
+ .d3-graph__focus {
616
+
617
+ }
618
+
619
+ .d3-graph__focus circle {
620
+ fill: none;
621
+ stroke: steelblue;
622
+ }
623
+
624
+ .d3-graph__overlay {
625
+ fill: none;
626
+ pointer-events: all;
627
+ }
@@ -7,10 +7,10 @@
7
7
 
8
8
  <script src="/js/lib/pace.js"></script>
9
9
  <!-- Bootstrap -->
10
- <link href="/css/bootstrap.css" rel="stylesheet">
10
+ <link href="/build/css/vendor.css" rel="stylesheet">
11
11
 
12
12
  <!-- Some styles of our own -->
13
- <link href="/css/styles.less" rel="stylesheet/less">
13
+ <link href="/build/css/styles.css" rel="stylesheet">
14
14
 
15
15
  <%= client_libs %>
16
16
  </head>
@@ -20,7 +20,7 @@
20
20
  <div class="navbar-collapse collapse">
21
21
  <ul class="nav navbar-nav">
22
22
  <li id="nav-home" class="nav-item"><a href="/ui">Dashboard</a></li>
23
- <li id="nav-groups" class="dropdown">
23
+ <li class="dropdown">
24
24
  <a class="dropdown-toggle" data-toggle="dropdown" href="#">
25
25
  Directory <span class="caret"></span>
26
26
  </a>
@@ -46,9 +46,8 @@
46
46
  <span class="text"></span>
47
47
  </div>
48
48
  <div id="modal">
49
-
50
- </div>
51
49
 
50
+ </div>
52
51
 
53
52
  <div id="content"></div>
54
53
  <div id="bottom" class="navbar-default">
@@ -56,7 +55,6 @@
56
55
  </div>
57
56
  </div><!-- /.container -->
58
57
 
59
-
60
- <%= client_code %>
58
+ <script src="/build/js/app.min.js"></script>
61
59
  </body>
62
60
  </html>
data/public/js/init.js CHANGED
@@ -1,107 +1,193 @@
1
- window.conjur = {
2
- models: {
3
- Record: {}
4
- },
5
- collections: {},
6
- views: {
7
- mixins: {}
8
- },
9
- routers: {},
10
- createEndpoints: function() {
11
- function genericEndpoint(path) {
12
- return function() {
13
- var i= 0, length = arguments.length;
14
- var localPath = [].concat(path); // clone it
15
-
16
- for(; i < length && _.isString(arguments[i]); i++) {
17
- localPath.push(arguments[i]);
18
- }
1
+ /* global _, Backbone, React, jQuery */
2
+
3
+ (function(_, Backbone, React, $) {
4
+ 'use strict';
5
+
6
+ var conjur = window.conjur = {
7
+ models: {
8
+ Record: {}
9
+ },
10
+ collections: {},
11
+ views: {
12
+ mixins: {}
13
+ },
14
+ routers: {},
15
+ createEndpoints: function() {
16
+ function genericEndpoint(path) {
17
+ return function() {
18
+ var i = 0,
19
+ length = arguments.length,
20
+ localPath = [].concat(path); // clone it
21
+
22
+ for(; i < length && _.isString(arguments[i]); i++) {
23
+ localPath.push(arguments[i]);
24
+ }
25
+
26
+ var pathString = _.flatten(localPath.map(function(p) {
27
+ return p.split('/').map(encodeURIComponent);
28
+ })).join('/');
29
+
30
+ if (i < length) {
31
+ pathString += '?' + $.param(arguments[i]);
32
+ }
33
+
34
+ if (pathString.charAt(0) !== '/') {
35
+ pathString = '/' + pathString;
36
+ }
37
+
38
+ return pathString;
39
+ };
40
+ }
41
+
42
+ conjur.app.endpoints.authz = genericEndpoint(['api/authz',
43
+ conjur.app.configuration.account]);
44
+ conjur.app.endpoints.core = genericEndpoint('api');
45
+ },
46
+ initialize: function() {
47
+ conjur.app.namespace = conjur.models.Namespace();
48
+ conjur.app.lists.groups = new conjur.models.ResourceList('group');
49
+ conjur.app.lists.layers = new conjur.models.ResourceList('layer');
50
+ conjur.app.lists.variables = new conjur.models.VariableList();
51
+ conjur.app.lists.policies = new conjur.models.PolicyList();
52
+ conjur.app.lists.users = new conjur.models.UserList();
53
+ conjur.app.lists.hosts = new conjur.models.ResourceList('host');
54
+
55
+ var cookie = conjur.utils.readCookie('conjur_configuration');
56
+
57
+ conjur.app.configuration = JSON.parse(decodeURIComponent(cookie).replace(/\+/g, ' '));
58
+ conjur.app.userId = decodeURIComponent(conjur.utils.readCookie('conjur_userid'));
59
+
60
+ conjur.createEndpoints();
61
+ }
62
+ };
63
+
64
+ conjur.app = {
65
+ kind: '',
66
+ lists: {
67
+ groups: undefined,
68
+ layers: undefined,
69
+ variables: undefined,
70
+ policies: undefined,
71
+ users: undefined,
72
+ hosts: undefined
73
+ },
74
+ configuration: undefined,
75
+ userId: undefined,
76
+ // components: {},
77
+ router: undefined,
78
+ // globalIds: undefined,
79
+ endpoints: {},
80
+ flash: null
81
+ };
82
+
83
+ conjur.utils = {
84
+ errback: function(err) {
85
+ console.log('error:', err);
86
+ },
87
+ pluralize: function(kind) {
88
+ if (kind[kind.length-1] === 'y') {
89
+ return kind.slice(0, kind.length-1) + 'ies';
90
+ } else if (kind[kind.length - 1] !== 's') {
91
+ return kind + 's';
92
+ } else {
93
+ return kind;
94
+ }
95
+ },
96
+ // http://www.quirksmode.org/js/cookies.html
97
+ readCookie: function(name) {
98
+ var nameEQ = name + '=',
99
+ ca = document.cookie.split(';');
19
100
 
20
- var pathString = _.flatten(localPath.map(function(p) {
21
- return p.split('/').map(encodeURIComponent);
22
- })).join("/");
101
+ for (var i = 0; i < ca.length; i++) {
102
+ var c = ca[i];
23
103
 
24
- if (i < length) {
25
- pathString += '?' + jQuery.param(arguments[i]);
104
+ while (c.charAt(0) === ' ') {
105
+ c = c.substring(1, c.length);
26
106
  }
27
107
 
28
- if (pathString.charAt(0) != '/') {
29
- pathString = '/' + pathString;
108
+ if (c.indexOf(nameEQ) === 0) {
109
+ return c.substring(nameEQ.length, c.length);
30
110
  }
111
+ }
31
112
 
32
- return pathString;
33
- };
34
- }
113
+ return null;
114
+ },
115
+ getTabname: function(header, set) {
116
+ if (!set || !set.length) {
117
+ return header + ' (0)';
118
+ }
35
119
 
36
- conjur.app.endpoints.authz = genericEndpoint(['api/authz', conjur.app.configuration.account]);
37
- conjur.app.endpoints.core = genericEndpoint('api');
38
- },
39
- initialize: function() {
40
- conjur.app.namespace = conjur.models.Namespace();
41
- conjur.app.lists.groups = new conjur.models.ResourceList('group');
42
- conjur.app.lists.layers = new conjur.models.ResourceList('layer');
43
- conjur.app.lists.variables = new conjur.models.VariableList();
44
- conjur.app.lists.policies = new conjur.models.PolicyList();
45
- conjur.app.lists.users = new conjur.models.UserList();
46
- conjur.app.lists.hosts = new conjur.models.ResourceList('host');
47
- conjur.app.configuration = JSON.parse(decodeURIComponent(conjur.utils.readCookie('conjur_configuration')).replace(/\+/g, ' '));
48
- conjur.app.userId = decodeURIComponent(conjur.utils.readCookie('conjur_userid'));
49
-
50
- conjur.createEndpoints();
51
- }
52
- };
53
-
54
- window.conjur.app = {
55
- kind: '',
56
- lists: {
57
- groups: undefined,
58
- layers: undefined,
59
- variables: undefined,
60
- policies: undefined,
61
- users: undefined,
62
- hosts: undefined
63
- },
64
- configuration: undefined,
65
- userId: undefined,
66
- // components: {},
67
- router: undefined,
68
- // globalIds: undefined,
69
- endpoints: {},
70
- flash: null
71
- };
72
-
73
- window.conjur.utils = {
74
- errback: function(err) {
75
- console.log('error:', err);
76
- },
77
- pluralize: function(kind) {
78
- if (kind[kind.length-1] === 'y') {
79
- return kind.slice(0, kind.length-1) + 'ies';
80
- } else if (kind[kind.length - 1] != 's') {
81
- return kind + 's';
82
- } else {
83
- return kind;
84
- }
85
- },
86
- // http://www.quirksmode.org/js/cookies.html
87
- readCookie: function(name) {
88
- var nameEQ = name + "=";
89
- var ca = document.cookie.split(';');
90
- for (var i = 0; i < ca.length; i++) {
91
- var c = ca[i];
92
- while (c.charAt(0) == ' ')
93
- c = c.substring(1, c.length);
94
- if (c.indexOf(nameEQ) == 0)
95
- return c.substring(nameEQ.length, c.length);
120
+ return header + ' (' + set.length + ')';
96
121
  }
97
- return null;
98
- }
99
- };
100
-
101
- function get_tabname(header, set) {
102
- if (!set || !set.length) {
103
- return header + " (0)";
104
122
  };
105
123
 
106
- return header + " ("+set.length+")";
107
- }
124
+ // var components = {};
125
+ // var globalIds;
126
+
127
+ // function updateNamespace(ns) {
128
+ // conjur.app.namespace.currentNamespace = ns;
129
+ // // it won't work with reactjs 11.0 -- state should be set from within component
130
+ // // components[kind].setState({currentNamespace: ns, members: lists[kind].members(ns)});
131
+ // }
132
+
133
+ $(document).ready(function() {
134
+ conjur.initialize();
135
+
136
+ _.mixin(_.str.exports());
137
+ _.mixin({deepExtend: window.underscoreDeepExtend(_)});
138
+
139
+ // Use delegation to avoid initial DOM selection and allow all matching elements to bubble
140
+ $(document).delegate('a', 'click', function(evt) {
141
+ // Get the anchor href and protcol
142
+ var href = $(this).attr('href');
143
+ var protocol = this.protocol + '//';
144
+
145
+ // Ensure the protocol is not part of URL, meaning its relative.
146
+ // Stop the event bubbling to ensure the link will not cause a page refresh.
147
+ if (typeof(href) === 'string' &&
148
+ href.slice(0, protocol.length) !== protocol &&
149
+ href[0] !== '#') {
150
+
151
+ evt.preventDefault();
152
+
153
+ // Note by using Backbone.history.navigate, router events will not be
154
+ // triggered. If this is a problem, change this to navigate on your
155
+ // router.
156
+ Backbone.history.navigate(href, {trigger:true});
157
+ }
158
+ });
159
+
160
+ conjur.app.router = new conjur.Workspace();
161
+
162
+ conjur.app.router.on('all', function(route) {
163
+ console.log('router.all', route, conjur.app.flash);
164
+
165
+ if (route !== 'route') {
166
+ return;
167
+ }
168
+
169
+ if (conjur.app.flash) {
170
+ var old = conjur.app.flash;
171
+ conjur.app.flash = null;
172
+ var $flash = $('#flash');
173
+ var $text = $('.text', $flash);
174
+ $text.text(old);
175
+ $flash.show();
176
+ } else {
177
+ $('#flash').hide();
178
+ }
179
+ });
180
+
181
+ Backbone.history.start({pushState: true});
182
+
183
+ React.renderComponent(conjur.views.NavSearchForm(null),
184
+ document.getElementById('inlineSearchContainer'));
185
+ });
186
+
187
+ })
188
+ (
189
+ _,
190
+ Backbone,
191
+ React,
192
+ jQuery
193
+ );
@@ -364,9 +364,8 @@ var requirejs, require, define;
364
364
  //If want a value immediately, use require('id') instead -- something
365
365
  //that works in almond on the global level, but not guaranteed and
366
366
  //unlikely to work in other AMD implementations.
367
- setTimeout(function () {
368
- main(undef, deps, callback, relName);
369
- }, 4);
367
+
368
+ main(undef, deps, callback, relName);
370
369
  }
371
370
 
372
371
  return req;
@@ -505,9 +504,6 @@ define("almond", function(){});
505
504
 
506
505
  }).call(this);
507
506
 
508
- /*
509
- //@ sourceMappingURL=AbstractSortedSet.js.map
510
- */;
511
507
  (function() {
512
508
  define('SortedSet/ArrayStrategy',[],function() {
513
509
  var ArrayStrategy, Iterator, binarySearchForIndex;
@@ -631,9 +627,6 @@ define("almond", function(){});
631
627
 
632
628
  }).call(this);
633
629
 
634
- /*
635
- //@ sourceMappingURL=ArrayStrategy.js.map
636
- */;
637
630
  (function() {
638
631
  define('SortedSet/BinaryTreeIterator',[], function() {
639
632
  var BinaryTreeIterator, descendAllTheWay, moveCursor;
@@ -776,9 +769,6 @@ define("almond", function(){});
776
769
 
777
770
  }).call(this);
778
771
 
779
- /*
780
- //@ sourceMappingURL=BinaryTreeIterator.js.map
781
- */;
782
772
  (function() {
783
773
  define('SortedSet/AbstractBinaryTreeStrategy',['./BinaryTreeIterator'], function(BinaryTreeIterator) {
784
774
  var AbstractBinaryTree, binaryTreeTraverse;
@@ -848,9 +838,6 @@ define("almond", function(){});
848
838
 
849
839
  }).call(this);
850
840
 
851
- /*
852
- //@ sourceMappingURL=AbstractBinaryTreeStrategy.js.map
853
- */;
854
841
  (function() {
855
842
  var __hasProp = {}.hasOwnProperty,
856
843
  __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
@@ -940,9 +927,6 @@ define("almond", function(){});
940
927
 
941
928
  }).call(this);
942
929
 
943
- /*
944
- //@ sourceMappingURL=BinaryTreeStrategy.js.map
945
- */;
946
930
  (function() {
947
931
  var __hasProp = {}.hasOwnProperty,
948
932
  __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
@@ -1121,9 +1105,6 @@ define("almond", function(){});
1121
1105
 
1122
1106
  }).call(this);
1123
1107
 
1124
- /*
1125
- //@ sourceMappingURL=RedBlackTreeStrategy.js.map
1126
- */;
1127
1108
  (function() {
1128
1109
  var __hasProp = {}.hasOwnProperty,
1129
1110
  __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
@@ -1153,9 +1134,6 @@ define("almond", function(){});
1153
1134
 
1154
1135
  }).call(this);
1155
1136
 
1156
- /*
1157
- //@ sourceMappingURL=SortedSet.js.map
1158
- */;
1159
1137
  (function() {
1160
1138
  require(['./SortedSet'], function(SortedSet) {
1161
1139
  return window.SortedSet = SortedSet;
@@ -1163,8 +1141,5 @@ define("almond", function(){});
1163
1141
 
1164
1142
  }).call(this);
1165
1143
 
1166
- /*
1167
- //@ sourceMappingURL=index.js.map
1168
- */;
1169
1144
  define("index", function(){});
1170
- }());
1145
+ }());