appmap 0.23.0 → 0.25.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +17 -8
- data/.travis.yml +6 -0
- data/CHANGELOG.md +19 -0
- data/README.md +29 -12
- data/Rakefile +3 -3
- data/appmap.gemspec +3 -1
- data/exe/appmap +6 -18
- data/lib/appmap.rb +47 -6
- data/lib/appmap/algorithm/prune_class_map.rb +2 -0
- data/lib/appmap/algorithm/stats.rb +4 -2
- data/lib/appmap/class_map.rb +143 -0
- data/lib/appmap/command/record.rb +8 -6
- data/lib/appmap/command/stats.rb +2 -0
- data/lib/appmap/command/upload.rb +4 -2
- data/lib/appmap/event.rb +168 -0
- data/lib/appmap/hook.rb +151 -0
- data/lib/appmap/middleware/remote_recording.rb +14 -20
- data/lib/appmap/rails/action_handler.rb +10 -6
- data/lib/appmap/rails/sql_handler.rb +10 -8
- data/lib/appmap/railtie.rb +31 -18
- data/lib/appmap/rspec.rb +238 -261
- data/lib/appmap/trace.rb +88 -0
- data/lib/appmap/version.rb +1 -1
- data/package-lock.json +90 -92
- data/spec/abstract_controller4_base_spec.rb +1 -1
- data/spec/abstract_controller_base_spec.rb +7 -3
- data/spec/config_spec.rb +25 -0
- data/spec/fixtures/hook/attr_accessor.rb +5 -0
- data/spec/fixtures/hook/class_method.rb +17 -0
- data/spec/fixtures/hook/constructor.rb +7 -0
- data/spec/fixtures/hook/exception_method.rb +11 -0
- data/spec/fixtures/hook/instance_method.rb +23 -0
- data/spec/fixtures/rails4_users_app/app/controllers/api/users_controller.rb +3 -3
- data/spec/fixtures/rails4_users_app/config/database.yml +2 -1
- data/spec/fixtures/rails4_users_app/docker-compose.yml +2 -0
- data/spec/fixtures/rails_users_app/.ruby-version +1 -1
- data/spec/fixtures/rails_users_app/app/controllers/api/users_controller.rb +2 -2
- data/spec/fixtures/rails_users_app/config/database.yml +2 -1
- data/spec/fixtures/rails_users_app/create_app +1 -0
- data/spec/fixtures/rails_users_app/docker-compose.yml +4 -0
- data/spec/fixtures/rails_users_app/spec/models/user_spec.rb +1 -1
- data/spec/hook_spec.rb +357 -0
- data/spec/rails_spec_helper.rb +25 -16
- data/spec/railtie_spec.rb +1 -1
- data/spec/record_sql_rails_pg_spec.rb +1 -2
- data/spec/remote_recording_spec.rb +117 -0
- data/spec/spec_helper.rb +1 -0
- data/test/cli_test.rb +7 -36
- data/test/fixtures/cli_record_test/appmap.yml +2 -1
- data/test/fixtures/cli_record_test/lib/cli_record_test/main.rb +4 -2
- data/test/test_helper.rb +0 -42
- metadata +46 -62
- data/exe/_appmap-record-self +0 -49
- data/lib/appmap/command/inspect.rb +0 -14
- data/lib/appmap/config.rb +0 -65
- data/lib/appmap/config/directory.rb +0 -65
- data/lib/appmap/config/file.rb +0 -13
- data/lib/appmap/config/named_function.rb +0 -21
- data/lib/appmap/config/package_dir.rb +0 -52
- data/lib/appmap/config/path.rb +0 -25
- data/lib/appmap/feature.rb +0 -262
- data/lib/appmap/inspect.rb +0 -91
- data/lib/appmap/inspect/inspector.rb +0 -99
- data/lib/appmap/inspect/parse_node.rb +0 -170
- data/lib/appmap/inspect/parser.rb +0 -15
- data/lib/appmap/parser.rb +0 -60
- data/lib/appmap/rspec/parse_node.rb +0 -41
- data/lib/appmap/rspec/parser.rb +0 -15
- data/lib/appmap/trace/event_handler/rack_handler_webrick.rb +0 -65
- data/lib/appmap/trace/tracer.rb +0 -356
- data/spec/fixtures/rails_users_app/bin/_appmap-record-self +0 -29
- data/spec/rack_handler_webrick_spec.rb +0 -59
- data/test/config_test.rb +0 -149
- data/test/explict_inspect_test.rb +0 -29
- data/test/fixtures/active_record_like/active_record.rb +0 -2
- data/test/fixtures/active_record_like/active_record/aggregations.rb +0 -4
- data/test/fixtures/active_record_like/active_record/association.rb +0 -4
- data/test/fixtures/active_record_like/active_record/associations/join_dependency.rb +0 -6
- data/test/fixtures/active_record_like/active_record/associations/join_dependency/join_base.rb +0 -8
- data/test/fixtures/active_record_like/active_record/associations/join_dependency/join_part.rb +0 -8
- data/test/fixtures/active_record_like/active_record/caps/caps.rb +0 -4
- data/test/fixtures/ignore_non_ruby_file/class.rb +0 -3
- data/test/fixtures/ignore_non_ruby_file/non-ruby.txt +0 -1
- data/test/fixtures/includes_excludes/lib/a/a_1.rb +0 -6
- data/test/fixtures/includes_excludes/lib/a/a_2.rb +0 -6
- data/test/fixtures/includes_excludes/lib/a/x/x_1.rb +0 -8
- data/test/fixtures/includes_excludes/lib/b/b_1.rb +0 -6
- data/test/fixtures/includes_excludes/lib/root_1.rb +0 -4
- data/test/fixtures/inspect_multiple_subdirs/module_a.rb +0 -2
- data/test/fixtures/inspect_multiple_subdirs/module_a/class_a.rb +0 -5
- data/test/fixtures/inspect_multiple_subdirs/module_b.rb +0 -2
- data/test/fixtures/inspect_multiple_subdirs/module_b/class_b.rb +0 -5
- data/test/fixtures/inspect_multiple_subdirs/module_b/class_c.rb +0 -5
- data/test/fixtures/inspect_package/module_a/module_b/class_in_module.rb +0 -6
- data/test/fixtures/parse_file/defs_static_function.rb +0 -96
- data/test/fixtures/parse_file/function_within_class.rb +0 -36
- data/test/fixtures/parse_file/include_public_methods.rb +0 -127
- data/test/fixtures/parse_file/instance_function.rb +0 -17
- data/test/fixtures/parse_file/modules.rb +0 -71
- data/test/fixtures/parse_file/sclass_static_function.rb +0 -88
- data/test/fixtures/parse_file/toplevel_class.rb +0 -13
- data/test/fixtures/parse_file/toplevel_function.rb +0 -14
- data/test/fixtures/trace_test/trace_program_1.rb +0 -44
- data/test/implicit_inspect_test.rb +0 -33
- data/test/include_exclude_test.rb +0 -48
- data/test/prerecorded_trace_test.rb +0 -76
- data/test/trace_test.rb +0 -92
data/lib/appmap/trace.rb
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AppMap
|
4
|
+
module Trace
|
5
|
+
ScopedMethod = Struct.new(:defined_class, :method)
|
6
|
+
|
7
|
+
class Tracers
|
8
|
+
def initialize
|
9
|
+
@tracers = []
|
10
|
+
end
|
11
|
+
|
12
|
+
def empty?
|
13
|
+
@tracers.empty?
|
14
|
+
end
|
15
|
+
|
16
|
+
def trace(enable: true)
|
17
|
+
Tracer.new.tap do |tracer|
|
18
|
+
@tracers << tracer
|
19
|
+
tracer.enable if enable
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def enabled?
|
24
|
+
@tracers.any?(&:enabled?)
|
25
|
+
end
|
26
|
+
|
27
|
+
def record_event(event, defined_class: nil, method: nil)
|
28
|
+
@tracers.each do |tracer|
|
29
|
+
tracer.record_event(event, defined_class: defined_class, method: method)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def delete(tracer)
|
34
|
+
return unless @tracers.member?(tracer)
|
35
|
+
|
36
|
+
@tracers.delete(tracer)
|
37
|
+
tracer.disable
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class Tracer
|
43
|
+
# Records the events which happen in a program.
|
44
|
+
def initialize
|
45
|
+
@events = []
|
46
|
+
@methods = Set.new
|
47
|
+
@enabled = false
|
48
|
+
end
|
49
|
+
|
50
|
+
def enable
|
51
|
+
@enabled = true
|
52
|
+
end
|
53
|
+
|
54
|
+
def enabled?
|
55
|
+
@enabled
|
56
|
+
end
|
57
|
+
|
58
|
+
# Private function. Use AppMap.tracing#delete.
|
59
|
+
def disable # :nodoc:
|
60
|
+
@enabled = false
|
61
|
+
end
|
62
|
+
|
63
|
+
# Record a program execution event.
|
64
|
+
#
|
65
|
+
# The event should be one of the MethodEvent subclasses.
|
66
|
+
def record_event(event, defined_class: nil, method: nil)
|
67
|
+
return unless @enabled
|
68
|
+
|
69
|
+
@events << event
|
70
|
+
@methods << Trace::ScopedMethod.new(defined_class, method) if defined_class && method
|
71
|
+
end
|
72
|
+
|
73
|
+
# Gets a unique list of the methods that were invoked by the program.
|
74
|
+
def event_methods
|
75
|
+
@methods.to_a
|
76
|
+
end
|
77
|
+
|
78
|
+
# Whether there is an event available for processing.
|
79
|
+
def event?
|
80
|
+
!@events.empty?
|
81
|
+
end
|
82
|
+
|
83
|
+
# Gets the next available event, if any.
|
84
|
+
def next_event
|
85
|
+
@events.shift
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/lib/appmap/version.rb
CHANGED
data/package-lock.json
CHANGED
@@ -5,17 +5,17 @@
|
|
5
5
|
"requires": true,
|
6
6
|
"dependencies": {
|
7
7
|
"@babel/runtime": {
|
8
|
-
"version": "7.
|
9
|
-
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.
|
10
|
-
"integrity": "sha512-
|
8
|
+
"version": "7.9.2",
|
9
|
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz",
|
10
|
+
"integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==",
|
11
11
|
"requires": {
|
12
|
-
"regenerator-runtime": "^0.13.
|
12
|
+
"regenerator-runtime": "^0.13.4"
|
13
13
|
},
|
14
14
|
"dependencies": {
|
15
15
|
"regenerator-runtime": {
|
16
|
-
"version": "0.13.
|
17
|
-
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.
|
18
|
-
"integrity": "sha512-
|
16
|
+
"version": "0.13.5",
|
17
|
+
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
|
18
|
+
"integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
|
19
19
|
}
|
20
20
|
}
|
21
21
|
},
|
@@ -234,9 +234,9 @@
|
|
234
234
|
}
|
235
235
|
},
|
236
236
|
"commander": {
|
237
|
-
"version": "2.20.
|
238
|
-
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.
|
239
|
-
"integrity": "sha512-
|
237
|
+
"version": "2.20.3",
|
238
|
+
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
239
|
+
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
|
240
240
|
},
|
241
241
|
"constantinople": {
|
242
242
|
"version": "3.1.2",
|
@@ -263,16 +263,16 @@
|
|
263
263
|
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
264
264
|
},
|
265
265
|
"cookie": {
|
266
|
-
"version": "0.
|
267
|
-
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.
|
268
|
-
"integrity": "
|
266
|
+
"version": "0.4.0",
|
267
|
+
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
|
268
|
+
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
|
269
269
|
},
|
270
270
|
"cookie-parser": {
|
271
|
-
"version": "1.4.
|
272
|
-
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.
|
273
|
-
"integrity": "sha512-
|
271
|
+
"version": "1.4.5",
|
272
|
+
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
|
273
|
+
"integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
|
274
274
|
"requires": {
|
275
|
-
"cookie": "0.
|
275
|
+
"cookie": "0.4.0",
|
276
276
|
"cookie-signature": "1.0.6"
|
277
277
|
}
|
278
278
|
},
|
@@ -282,9 +282,9 @@
|
|
282
282
|
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
283
283
|
},
|
284
284
|
"core-js": {
|
285
|
-
"version": "2.6.
|
286
|
-
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.
|
287
|
-
"integrity": "sha512-
|
285
|
+
"version": "2.6.11",
|
286
|
+
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
|
287
|
+
"integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
|
288
288
|
},
|
289
289
|
"debug": {
|
290
290
|
"version": "2.6.9",
|
@@ -335,9 +335,9 @@
|
|
335
335
|
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
|
336
336
|
},
|
337
337
|
"esutils": {
|
338
|
-
"version": "2.0.
|
339
|
-
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.
|
340
|
-
"integrity": "
|
338
|
+
"version": "2.0.3",
|
339
|
+
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
|
340
|
+
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
|
341
341
|
},
|
342
342
|
"etag": {
|
343
343
|
"version": "1.8.1",
|
@@ -345,9 +345,9 @@
|
|
345
345
|
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
|
346
346
|
},
|
347
347
|
"express": {
|
348
|
-
"version": "4.17.
|
349
|
-
"resolved": "https://registry.npmjs.org/express/-/express-4.17.
|
350
|
-
"integrity": "sha512-
|
348
|
+
"version": "4.17.1",
|
349
|
+
"resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
|
350
|
+
"integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
|
351
351
|
"requires": {
|
352
352
|
"accepts": "~1.3.7",
|
353
353
|
"array-flatten": "1.1.1",
|
@@ -379,13 +379,6 @@
|
|
379
379
|
"type-is": "~1.6.18",
|
380
380
|
"utils-merge": "1.0.1",
|
381
381
|
"vary": "~1.1.2"
|
382
|
-
},
|
383
|
-
"dependencies": {
|
384
|
-
"cookie": {
|
385
|
-
"version": "0.4.0",
|
386
|
-
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
|
387
|
-
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
|
388
|
-
}
|
389
382
|
}
|
390
383
|
},
|
391
384
|
"finalhandler": {
|
@@ -431,9 +424,9 @@
|
|
431
424
|
}
|
432
425
|
},
|
433
426
|
"highlight.js": {
|
434
|
-
"version": "9.
|
435
|
-
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.
|
436
|
-
"integrity": "sha512-
|
427
|
+
"version": "9.18.1",
|
428
|
+
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz",
|
429
|
+
"integrity": "sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg=="
|
437
430
|
},
|
438
431
|
"http-errors": {
|
439
432
|
"version": "1.6.3",
|
@@ -467,9 +460,9 @@
|
|
467
460
|
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
468
461
|
},
|
469
462
|
"ipaddr.js": {
|
470
|
-
"version": "1.9.
|
471
|
-
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.
|
472
|
-
"integrity": "sha512-
|
463
|
+
"version": "1.9.1",
|
464
|
+
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
465
|
+
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
|
473
466
|
},
|
474
467
|
"is-buffer": {
|
475
468
|
"version": "1.1.6",
|
@@ -498,11 +491,11 @@
|
|
498
491
|
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
|
499
492
|
},
|
500
493
|
"is-regex": {
|
501
|
-
"version": "1.0.
|
502
|
-
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.
|
503
|
-
"integrity": "
|
494
|
+
"version": "1.0.5",
|
495
|
+
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
|
496
|
+
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
|
504
497
|
"requires": {
|
505
|
-
"has": "^1.0.
|
498
|
+
"has": "^1.0.3"
|
506
499
|
}
|
507
500
|
},
|
508
501
|
"js-stringify": {
|
@@ -550,9 +543,9 @@
|
|
550
543
|
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
|
551
544
|
},
|
552
545
|
"linkify-it": {
|
553
|
-
"version": "2.
|
554
|
-
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.
|
555
|
-
"integrity": "sha512-
|
546
|
+
"version": "2.2.0",
|
547
|
+
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
|
548
|
+
"integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
|
556
549
|
"requires": {
|
557
550
|
"uc.micro": "^1.0.1"
|
558
551
|
}
|
@@ -605,16 +598,16 @@
|
|
605
598
|
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
|
606
599
|
},
|
607
600
|
"mime-db": {
|
608
|
-
"version": "1.
|
609
|
-
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.
|
610
|
-
"integrity": "sha512
|
601
|
+
"version": "1.43.0",
|
602
|
+
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
|
603
|
+
"integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
|
611
604
|
},
|
612
605
|
"mime-types": {
|
613
|
-
"version": "2.1.
|
614
|
-
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.
|
615
|
-
"integrity": "sha512-
|
606
|
+
"version": "2.1.26",
|
607
|
+
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
|
608
|
+
"integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
|
616
609
|
"requires": {
|
617
|
-
"mime-db": "1.
|
610
|
+
"mime-db": "1.43.0"
|
618
611
|
}
|
619
612
|
},
|
620
613
|
"morgan": {
|
@@ -681,12 +674,12 @@
|
|
681
674
|
}
|
682
675
|
},
|
683
676
|
"proxy-addr": {
|
684
|
-
"version": "2.0.
|
685
|
-
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.
|
686
|
-
"integrity": "sha512-
|
677
|
+
"version": "2.0.6",
|
678
|
+
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
|
679
|
+
"integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
|
687
680
|
"requires": {
|
688
681
|
"forwarded": "~0.1.2",
|
689
|
-
"ipaddr.js": "1.9.
|
682
|
+
"ipaddr.js": "1.9.1"
|
690
683
|
}
|
691
684
|
},
|
692
685
|
"pug": {
|
@@ -705,13 +698,13 @@
|
|
705
698
|
}
|
706
699
|
},
|
707
700
|
"pug-attrs": {
|
708
|
-
"version": "2.0.
|
709
|
-
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.
|
710
|
-
"integrity": "
|
701
|
+
"version": "2.0.4",
|
702
|
+
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz",
|
703
|
+
"integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==",
|
711
704
|
"requires": {
|
712
705
|
"constantinople": "^3.0.1",
|
713
706
|
"js-stringify": "^1.0.1",
|
714
|
-
"pug-runtime": "^2.0.
|
707
|
+
"pug-runtime": "^2.0.5"
|
715
708
|
}
|
716
709
|
},
|
717
710
|
"pug-code-gen": {
|
@@ -730,9 +723,9 @@
|
|
730
723
|
}
|
731
724
|
},
|
732
725
|
"pug-error": {
|
733
|
-
"version": "1.3.
|
734
|
-
"resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.
|
735
|
-
"integrity": "
|
726
|
+
"version": "1.3.3",
|
727
|
+
"resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz",
|
728
|
+
"integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ=="
|
736
729
|
},
|
737
730
|
"pug-filters": {
|
738
731
|
"version": "2.1.5",
|
@@ -768,12 +761,12 @@
|
|
768
761
|
}
|
769
762
|
},
|
770
763
|
"pug-load": {
|
771
|
-
"version": "2.0.
|
772
|
-
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.
|
773
|
-
"integrity": "
|
764
|
+
"version": "2.0.12",
|
765
|
+
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz",
|
766
|
+
"integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==",
|
774
767
|
"requires": {
|
775
768
|
"object-assign": "^4.1.0",
|
776
|
-
"pug-walk": "^1.1.
|
769
|
+
"pug-walk": "^1.1.8"
|
777
770
|
}
|
778
771
|
},
|
779
772
|
"pug-parser": {
|
@@ -786,22 +779,22 @@
|
|
786
779
|
}
|
787
780
|
},
|
788
781
|
"pug-runtime": {
|
789
|
-
"version": "2.0.
|
790
|
-
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.
|
791
|
-
"integrity": "
|
782
|
+
"version": "2.0.5",
|
783
|
+
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz",
|
784
|
+
"integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw=="
|
792
785
|
},
|
793
786
|
"pug-strip-comments": {
|
794
|
-
"version": "1.0.
|
795
|
-
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.
|
796
|
-
"integrity": "
|
787
|
+
"version": "1.0.4",
|
788
|
+
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz",
|
789
|
+
"integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==",
|
797
790
|
"requires": {
|
798
|
-
"pug-error": "^1.3.
|
791
|
+
"pug-error": "^1.3.3"
|
799
792
|
}
|
800
793
|
},
|
801
794
|
"pug-walk": {
|
802
|
-
"version": "1.1.
|
803
|
-
"resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.
|
804
|
-
"integrity": "
|
795
|
+
"version": "1.1.8",
|
796
|
+
"resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz",
|
797
|
+
"integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA=="
|
805
798
|
},
|
806
799
|
"qs": {
|
807
800
|
"version": "6.7.0",
|
@@ -849,9 +842,9 @@
|
|
849
842
|
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
|
850
843
|
},
|
851
844
|
"resolve": {
|
852
|
-
"version": "1.
|
853
|
-
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.
|
854
|
-
"integrity": "sha512-
|
845
|
+
"version": "1.15.1",
|
846
|
+
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
|
847
|
+
"integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
|
855
848
|
"requires": {
|
856
849
|
"path-parse": "^1.0.6"
|
857
850
|
}
|
@@ -895,17 +888,22 @@
|
|
895
888
|
},
|
896
889
|
"dependencies": {
|
897
890
|
"http-errors": {
|
898
|
-
"version": "1.7.
|
899
|
-
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.
|
900
|
-
"integrity": "sha512-
|
891
|
+
"version": "1.7.3",
|
892
|
+
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
|
893
|
+
"integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
|
901
894
|
"requires": {
|
902
895
|
"depd": "~1.1.2",
|
903
|
-
"inherits": "2.0.
|
896
|
+
"inherits": "2.0.4",
|
904
897
|
"setprototypeof": "1.1.1",
|
905
898
|
"statuses": ">= 1.5.0 < 2",
|
906
899
|
"toidentifier": "1.0.0"
|
907
900
|
}
|
908
901
|
},
|
902
|
+
"inherits": {
|
903
|
+
"version": "2.0.4",
|
904
|
+
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
905
|
+
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
906
|
+
},
|
909
907
|
"ms": {
|
910
908
|
"version": "2.1.1",
|
911
909
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
@@ -930,9 +928,9 @@
|
|
930
928
|
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
|
931
929
|
},
|
932
930
|
"slugify": {
|
933
|
-
"version": "1.
|
934
|
-
"resolved": "https://registry.npmjs.org/slugify/-/slugify-1.
|
935
|
-
"integrity": "sha512-
|
931
|
+
"version": "1.4.0",
|
932
|
+
"resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.0.tgz",
|
933
|
+
"integrity": "sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ=="
|
936
934
|
},
|
937
935
|
"source-map": {
|
938
936
|
"version": "0.4.4",
|
@@ -1044,11 +1042,11 @@
|
|
1044
1042
|
"integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
|
1045
1043
|
},
|
1046
1044
|
"yaml": {
|
1047
|
-
"version": "1.
|
1048
|
-
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.
|
1049
|
-
"integrity": "sha512-
|
1045
|
+
"version": "1.8.3",
|
1046
|
+
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.8.3.tgz",
|
1047
|
+
"integrity": "sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw==",
|
1050
1048
|
"requires": {
|
1051
|
-
"@babel/runtime": "^7.
|
1049
|
+
"@babel/runtime": "^7.8.7"
|
1052
1050
|
}
|
1053
1051
|
},
|
1054
1052
|
"yargs": {
|
@@ -49,7 +49,7 @@ describe 'AbstractControllerBase' do
|
|
49
49
|
expect(appmap).to match(<<-CREATE_CALL.strip)
|
50
50
|
event: call
|
51
51
|
defined_class: Api::UsersController
|
52
|
-
method_id:
|
52
|
+
method_id: build_user
|
53
53
|
path: app/controllers/api/users_controller.rb
|
54
54
|
lineno: 23
|
55
55
|
static: false
|