-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
189 lines (174 loc) · 19.8 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
// Generated by CoffeeScript 1.12.6
(function() {
var debug, domready, invariate, observable, pkg, request, riot, socketio, zappa,
hasProp = {}.hasOwnProperty;
pkg = {
name: 'zappajs-client'
};
debug = (require('debug'))(pkg.name);
request = require('superagent');
socketio = require('socket.io-client');
domready = require('domready');
observable = (riot = require('riot')).observable;
invariate = require('invariate');
riot.route = require('riot-route');
zappa = function(options, f) {
var build_ctx, context, ev, io, ref, ref1, share;
if (typeof options === 'function') {
ref = [{}, options], options = ref[0], f = ref[1];
}
if (options == null) {
options = {};
}
context = {};
ev = context.ev = observable();
if (options.io !== false) {
io = context.io = socketio((ref1 = options.io) != null ? ref1 : {});
}
context.request = request;
context.riot = riot;
context.include = function(m) {
var ref2;
return (ref2 = m.include) != null ? ref2.call(context, context) : void 0;
};
build_ctx = function(o) {
var ctx, k, v;
ctx = {
ev: context.ev,
io: context.io,
request: context.request,
riot: context.riot,
emit: context.emit,
on: context.on
};
for (k in o) {
if (!hasProp.call(o, k)) continue;
v = o[k];
ctx[k] = v;
}
return ctx;
};
context.ready = function(f) {
return context.ev.on('ready', function() {
var ctx;
ctx = build_ctx({
include: context.include,
settings: context.settings,
get: context.get,
route: context.route,
start: context.start,
share: share
});
return f.apply(ctx);
});
};
context.start = function() {
riot.route.start();
return riot.route.exec();
};
context.get = context.route = invariate(function(k, v) {
return riot.route(k, function() {
var ctx;
ctx = build_ctx({
params: arguments,
query: riot.route.query()
});
return v.apply(ctx, arguments);
});
});
context.on = invariate(function(event, action) {
return io.on(event, function(data, ack) {
var ctx;
ctx = build_ctx({
event: event,
data: data,
ack: ack
});
return action.apply(ctx, arguments);
});
});
context.emit = invariate.acked(function(event, data, ack) {
return io.emit.call(io, event, data, function(ack_data) {
var ctx;
ctx = build_ctx({
event: event,
data: ack_data
});
return ack.apply(ctx, arguments);
});
});
if (options.io === false) {
context.on = function() {
return debug('Socket.IO is disabled');
};
context.emit = function() {
return debug('Socket.IO is disabled');
};
}
if (f != null) {
f.call(context, context);
}
if (options.io === false) {
domready(function() {
debug('DOM is ready');
return ev.trigger('ready');
});
return context;
}
share = function(next) {
var channel_name, ref2, ref3, ref4, uri, zappa_prefix, zappa_server;
zappa_prefix = (ref2 = context.settings.zappa_prefix) != null ? ref2 : '/zappa';
channel_name = (ref3 = context.settings.zappa_channel) != null ? ref3 : '__local';
zappa_server = (ref4 = options.zappa_server) != null ? ref4 : '';
uri = "" + zappa_server + zappa_prefix + "/socket/" + channel_name + "/" + io.id;
debug("Requesting " + uri);
return request.get(uri).accept('json')["catch"](function(error) {
return {
body: {
key: null
}
};
}).then(function(arg) {
var key;
key = arg.body.key;
if (key != null) {
debug("Sending __zappa_key to server", {
key: key
});
return io.emit('__zappa_key', {
key: key
}, next);
} else {
return typeof next === "function" ? next({
key: null
}) : void 0;
}
});
};
io.on('connect', function() {
debug("Connect");
io.emit('__zappa_settings', null, function(settings) {
debug('Received settings', settings);
context.settings = settings;
return share(function(arg) {
var key;
key = arg.key;
debug('Received key', key);
context.key = key;
return domready(function() {
debug('DOM is ready');
return ev.trigger('ready');
});
});
});
return debug("Waiting for Zappa settings");
});
return context;
};
module.exports = zappa;
module.exports.request = request;
module.exports.io = socketio;
module.exports.riot = riot;
}).call(this);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5jb2ZmZWUubWQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFJO0FBQUEsTUFBQSwyRUFBQTtJQUFBOztFQUFBLEdBQUEsR0FBTTtJQUFBLElBQUEsRUFBTSxnQkFBTjs7O0VBQ04sS0FBQSxHQUFRLENBQUMsT0FBQSxDQUFRLE9BQVIsQ0FBRCxDQUFBLENBQWtCLEdBQUcsQ0FBQyxJQUF0Qjs7RUFDUixPQUFBLEdBQVUsT0FBQSxDQUFRLFlBQVI7O0VBQ1YsUUFBQSxHQUFXLE9BQUEsQ0FBUSxrQkFBUjs7RUFDWCxRQUFBLEdBQVcsT0FBQSxDQUFRLFVBQVI7O0VBQ1YsYUFBYyxDQUFBLElBQUEsR0FBTyxPQUFBLENBQVEsTUFBUixDQUFQOztFQUNmLFNBQUEsR0FBWSxPQUFBLENBQVEsV0FBUjs7RUFDWixJQUFJLENBQUMsS0FBTCxHQUFhLE9BQUEsQ0FBUSxZQUFSOztFQUViLEtBQUEsR0FBUSxTQUFDLE9BQUQsRUFBUyxDQUFUO0FBQ04sUUFBQTtJQUFBLElBQUcsT0FBTyxPQUFQLEtBQWtCLFVBQXJCO01BQ0UsTUFBYyxDQUFDLEVBQUQsRUFBSSxPQUFKLENBQWQsRUFBQyxnQkFBRCxFQUFTLFdBRFg7OztNQUVBLFVBQVc7O0lBRVgsT0FBQSxHQUFVO0lBV1YsRUFBQSxHQUFLLE9BQU8sQ0FBQyxFQUFSLEdBQWEsVUFBQSxDQUFBO0lBQ2xCLElBQU8sT0FBTyxDQUFDLEVBQVIsS0FBYyxLQUFyQjtNQUNFLEVBQUEsR0FBSyxPQUFPLENBQUMsRUFBUixHQUFhLFFBQUEsc0NBQXNCLEVBQXRCLEVBRHBCOztJQUVBLE9BQU8sQ0FBQyxPQUFSLEdBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxJQUFSLEdBQWU7SUFDZixPQUFPLENBQUMsT0FBUixHQUFrQixTQUFDLENBQUQ7QUFDaEIsVUFBQTs4Q0FBUyxDQUFFLElBQVgsQ0FBZ0IsT0FBaEIsRUFBeUIsT0FBekI7SUFEZ0I7SUFLbEIs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UUFBRDtRQUVoQyxLQUFBLENBQU0sbUJBQU4sRUFBMkIsUUFBM0I7UUFDQSxPQUFPLENBQUMsUUFBUixHQUFtQjtlQUluQixLQUFBLENBQU0sU0FBQyxHQUFEO0FBQ0osY0FBQTtVQURNLE1BQUQ7VUFDTCxLQUFBLENBQU0sY0FBTixFQUFzQixHQUF0QjtVQUtBLE9BQU8sQ0FBQyxHQUFSLEdBQWM7aUJBSWQsUUFBQSxDQUFTLFNBQUE7WUFDUCxLQUFBLENBQU0sY0FBTjttQkFDQSxFQUFFLENBQUMsT0FBSCxDQUFXLE9BQVg7VUFGTyxDQUFUO1FBVkksQ0FBTjtNQVBnQyxDQUFsQzthQXFCQSxLQUFBLENBQU0sNEJBQU47SUExQmUsQ0FBakI7V0E0QkE7RUF6T007O0VBMk9SLE1BQU0sQ0FBQyxPQUFQLEdBQWlCOztFQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQWYsR0FBeUI7O0VBQ3pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBZixHQUFvQjs7RUFDcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFmLEdBQXNCO0FBdlB0QiIsInNvdXJjZXNDb250ZW50IjpbIiAgICBwa2cgPSBuYW1lOiAnemFwcGFqcy1jbGllbnQnXG4gICAgZGVidWcgPSAocmVxdWlyZSAnZGVidWcnKSBwa2cubmFtZVxuICAgIHJlcXVlc3QgPSByZXF1aXJlICdzdXBlcmFnZW50J1xuICAgIHNvY2tldGlvID0gcmVxdWlyZSAnc29ja2V0LmlvLWNsaWVudCdcbiAgICBkb21yZWFkeSA9IHJlcXVpcmUgJ2RvbXJlYWR5J1xuICAgIHtvYnNlcnZhYmxlfSA9IHJpb3QgPSByZXF1aXJlICdyaW90J1xuICAgIGludmFyaWF0ZSA9IHJlcXVpcmUgJ2ludmFyaWF0ZSdcbiAgICByaW90LnJvdXRlID0gcmVxdWlyZSAncmlvdC1yb3V0ZSdcblxuICAgIHphcHBhID0gKG9wdGlvbnMsZikgLT5cbiAgICAgIGlmIHR5cGVvZiBvcHRpb25zIGlzICdmdW5jdGlvbidcbiAgICAgICAgW29wdGlvbnMsZl0gPSBbe30sb3B0aW9uc11cbiAgICAgIG9wdGlvbnMgPz0ge31cblxuICAgICAgY29udGV4dCA9IHt9XG5cbkNvbnRleHRcbj09PT09PT1cblxuVGhlIFphcHBhSlMtQ2xpZW50IGNvbnRleHQgY29udGFpbnMgdGhlIGZvbGxvd2luZyBvYmplY3RzOlxuKiBgQGlvYCwgdGhlIFNvY2tldC5JTyBjbGllbnQuXG4qIGBAcmVxdWVzdGAsIGEgUHJvbWlzaWZpZWQgYHN1cGVyYWdlbnRgIFJFU1QgY2xpZW50LlxuKiBgQHJpb3RgLCB0aGUgcmlvdGpzIG1vZHVsZS5cbiogYEBldmAsIGEgW3Jpb3Qtb2JzZXJ2YWJsZV0oaHR0cHM6Ly9naXRodWIuY29tL3Jpb3Qvb2JzZXJ2YWJsZS90cmVlL21hc3Rlci9kb2MpIC0tIGJhc2ljYWxseSB5b3UgY2FuIHJ1biBgLm9uYCBhbmQgYC50cmlnZ2VyYCBvbiBpdC5cblxuICAgICAgZXYgPSBjb250ZXh0LmV2ID0gb2JzZXJ2YWJsZSgpXG4gICAgICB1bmxlc3Mgb3B0aW9ucy5pbyBpcyBmYWxzZVxuICAgICAgICBpbyA9IGNvbnRleHQuaW8gPSBzb2NrZXRpbyBvcHRpb25zLmlvID8ge31cbiAgICAgIGNvbnRleHQucmVxdWVzdCA9IHJlcXVlc3RcbiAgICAgIGNvbnRleHQucmlvdCA9IHJpb3RcbiAgICAgIGNvbnRleHQuaW5jbHVkZSA9IChtKSAtPlxuICAgICAgICBtLmluY2x1ZGU/LmNhbGwgY29udGV4dCwgY29udGV4dFxuXG5UaGVzZSBvYmplY3RzIGFyZSBhbHdheXMgYXZhaWxhYmxlIGluc2lkZSBoYW5kbGVycyBhcyB3ZWxsIVxuXG4gICAgICBidWlsZF9jdHggPSAobykgLT5cbiAgICAgICAgY3R4ID1cbiAgICAgICAgICBldjogY29udGV4dC5ldlxuICAgICAgICAgIGlvOiBjb250ZXh0LmlvXG4gICAgICAgICAgcmVxdWVzdDogY29udGV4dC5yZXF1ZXN0XG4gICAgICAgICAgcmlvdDogY29udGV4dC5yaW90XG4gICAgICAgICAgZW1pdDogY29udGV4dC5lbWl0XG4gICAgICAgICAgb246IGNvbnRleHQub25cbiAgICAgICAgY3R4W2tdID0gdiBmb3Igb3duIGssdiBvZiBvXG4gICAgICAgIGN0eFxuXG5UaGUgWmFwcGFKUy1DbGllbnQgY29udGV4dCBhbHNvIGNvbnRhaW5zOlxuKiBgQGluY2x1ZGUgbWAgZXhlY3V0ZXMgYG0uaW5jbHVkZWAgd2l0aGluIHRoZSBaYXBwYUpTIGNvbnRleHQgaXRzZWxmLlxuXG5SZWFkeVxuPT09PT1cblxuV2hlbiBhbGwgdGhlIFphcHBhSlMtQ2xpZW50IGhhbmRzaGFrZSBpcyBkb25lLCBhbmQgb25jZSB0aGUgRE9NIGlzIHJlYWR5LCB0aGUgY2FsbGJhY2sgb2YgYEByZWFkeWAgaXMgY2FsbGVkIHdpdGggaXRzIGNvbnRleHQgc2V0IHRvIHRoZSBaYXBwYUpTLUNsaWVudCBjb250ZXh0LlxuXG5gYGBcbkByZWFkeSAtPlxuICBAZW1pdCAncmVhZHknXG4gIEByZXF1ZXN0LmdldCAnL2RhdGEuanNvbidcbiAgLnRoZW4gKGRhdGEpIC0+IGFsZXJ0IGRhdGFcbiAgIyBldGMuXG5gYGBcblxuICAgICAgY29udGV4dC5yZWFkeSA9IChmKSAtPlxuICAgICAgICBjb250ZXh0LmV2Lm9uICdyZWFkeScsIC0+XG4gICAgICAgICAgY3R4ID0gYnVpbGRfY3R4XG4gICAgICAgICAgICBpbmNsdWRlOiBjb250ZXh0LmluY2x1ZGVcbiAgICAgICAgICAgIHNldHRpbmdzOiBjb250ZXh0LnNldHRpbmdzXG4gICAgICAgICAgICBnZXQ6IGNvbnRleHQuZ2V0XG4gICAgICAgICAgICByb3V0ZTogY29udGV4dC5yb3V0ZVxuICAgICAgICAgICAgc3RhcnQ6IGNvbnRleHQuc3RhcnRcbiAgICAgICAgICAgIHNoYXJlOiBzaGFyZVxuICAgICAgICAgIGYuYXBwbHkgY3R4XG5cblJvdXRlclxuPT09PT09XG5cblRoZSByb3V0ZXIgaXMgW3Jpb3QncyByb3V0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9yaW90L3JvdXRlL3RyZWUvbWFzdGVyL2RvYykuIEhvd2V2ZXIgaXQgaXMgbm90IHN0YXJ0ZWQgdW50aWwgeW91IGV4cGxpY2l0ZWx5IGNhbGwgYEBzdGFydCgpYCwgc28gZmVlbCBmcmVlIHRvIHVzZSB5b3VyIG93biByb3V0ZXIgaW5zdGVhZCBpZiB5b3UnZCBsaWtlLlxuXG4qIGBAc3RhcnQoKWAgaXMgcmVxdWlyZWQgdG8gc3RhcnQgdGhlIFJpb3Qgcm91dGVyLlxuXG4gICAgICBjb250ZXh0LnN0YXJ0ID0gLT5cbiAgICAgICAgcmlvdC5yb3V0ZS5zdGFydCgpXG4gICAgICAgIHJpb3Qucm91dGUuZXhlYygpXG5cbiogYEBnZXRgIGNhbiBiZSB1c2VkIHRoZSBzYW1lIHdheSBhcyBaYXBwYUpTJyBgQGdldGA7IGV4Y2VwdCBpdCB3b3JrcyBvbiB0aGUgaGFzaC1wYXRoLCBub3QgdGhlIFVSSSBwYXRoLlxuICBZb3UgY2FuIHVzZSBgQHJvdXRlYCBpZiB5b3UgcHJlZmVyIHRvIHVzZSB0aGUgcmlvdGpzIG5hbWUgaW5zdGVhZCBvZiBgQGdldGAuXG5cbiAgICAgIGNvbnRleHQuZ2V0ID0gY29udGV4dC5yb3V0ZSA9IGludmFyaWF0ZSAoayx2KSAtPlxuICAgICAgICByaW90LnJvdXRlIGssIC0+XG5cblJvdXRlIGNvbnRleHRcbi0tLS0tLS0tLS0tLS1cblxuKiBgcGFyYW1zYCBjb250YWlucyB0aGUgKHBvc2l0aW9uYWwpIHBhcmFtZXRlcnMgaW4gYW4gYXJyYXkuXG4qIGBxdWVyeWAgY29udGFpbnMgdGhlIG9wdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlcnMgYXMgYW4gb2JqZWN0LlxuXG5Vc2UgJy4uJyBhdCB0aGUgZW5kIG9mIGEgcGF0aCB0byBtYXRjaCBxdWVyeSBhcmd1bWVudHMuXG5cbkZvciBleGFtcGxlIHRvIGNhcHR1cmUgYC9mb28/YmFyPTNgXG5gYGBcbkBnZXQgJy9mb28uLic6IC0+IEBxdWVyeS5iYXJcbmBgYFxuXG4gICAgICAgICAgY3R4ID0gYnVpbGRfY3R4XG4gICAgICAgICAgICBwYXJhbXM6IGFyZ3VtZW50c1xuICAgICAgICAgICAgcXVlcnk6IHJpb3Qucm91dGUucXVlcnkoKVxuICAgICAgICAgIHYuYXBwbHkgY3R4LCBhcmd1bWVudHNcblxuU29ja2V0LklPXG49PT09PT09PT1cblxuQSBzb2NrZXQuaW8gY2xpZW50IGlzIGluY2x1ZGVkLCB5b3UgY2FuIGhhbmRsZSBpbmNvbWluZyBtZXNzYWdlcyBmcm9tIHRoZSBzZXJ2ZXIgdXNpbmcgYEBvbmAgYW5kIHNlbmQgbWVzc2FnZXMgYmFjayB1c2luZyBgQGVtaXRgLlxuXG4gICAgICBjb250ZXh0Lm9uID0gaW52YXJpYXRlIChldmVudCxhY3Rpb24pIC0+XG4gICAgICAgIGlvLm9uIGV2ZW50LCAoZGF0YSxhY2spIC0+XG5cbk1lc3NhZ2UgaGFuZGxlciBjb250ZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5UaGUgc2FtZSBjb250ZXh0IGlzIHByb3ZpZGVkIGZvciBgQG9uYCBoYW5kbGVyIGFzIGluIHNlcnZlci1zaWRlIFphcHBhSlM6XG4qIGBAZXZlbnRgIGNvbnRhaW5zIHRoZSBldmVudCdzIG5hbWU7XG4qIGBAZGF0YWAgY29udGFpbnMgdGhlIG9wdGlvbmFsIGV2ZW50J3MgZGF0YTtcbiogYEBhY2tgIGlzIHByb3ZpZGVkIGlmIHRoZSBzZW5kZXIgcmVxdWVzdGVkIGFja25vd2xlZGdtZW50LlxuXG5BZGRpdGlvbmFsbHksIGBAZGF0YWAgYW5kIGBAYWNrYCBhcmUgcHJvdmlkZWQgYXMgcmVndWxhciBhcmd1bWVudHMgaWYgeW91J2QgcmF0aGVyIHVzZSB0aGF0LlxuXG4gICAgICAgICAgY3R4ID0gYnVpbGRfY3R4XG4gICAgICAgICAgICBldmVudDogZXZlbnRcbiAgICAgICAgICAgIGRhdGE6IGRhdGFcbiAgICAgICAgICAgIGFjazogYWNrXG4gICAgICAgICAgYWN0aW9uLmFwcGx5IGN0eCwgYXJndW1lbnRzXG5cbiAgICAgIGNvbnRleHQuZW1pdCA9IGludmFyaWF0ZS5hY2tlZCAoZXZlbnQsZGF0YSxhY2spIC0+XG4gICAgICAgIGlvLmVtaXQuY2FsbCBpbywgZXZlbnQsIGRhdGEsIChhY2tfZGF0YSkgLT5cblxuQWNrIGNvbnRleHRcbi0tLS0tLS0tLS0tXG5cbldoZW4gZW1pdHRpbmcgZXZlbnQsIHlvdSBtaWdodCBwcm92aWRlIGEgYGFja2AgY2FsbGJhY2suXG5cbiogYEBldmVudGAgY29udGFpbnMgdGhlIGV2ZW50J3MgbmFtZTtcbiogYEBkYXRhYCBjb250YWlucyB0aGUgb3B0aW9uYWwgYWNrIGRhdGEuXG5cbiAgICAgICAgICBjdHggPSBidWlsZF9jdHhcbiAgICAgICAgICAgIGV2ZW50OiBldmVudFxuICAgICAgICAgICAgZGF0YTogYWNrX2RhdGFcbiAgICAgICAgICBhY2suYXBwbHkgY3R4LCBhcmd1bWVudHNcblxuRGlzYWJsZSBTb2NrZXQuaW8gb24gb3B0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgICBpZiBvcHRpb25zLmlvIGlzIGZhbHNlXG4gICAgICAgIGNvbnRleHQub24gPSAtPlxuICAgICAgICAgIGRlYnVnICdTb2NrZXQuSU8gaXMgZGlzYWJsZWQnXG4gICAgICAgIGNvbnRleHQuZW1pdCA9IC0+XG4gICAgICAgICAgZGVidWcgJ1NvY2tldC5JTyBpcyBkaXNhYmxlZCdcblxuQXBwbHkgVXNlciBGdW5jdGlvblxuPT09PT09PT09PT09PT09PT09PVxuXG4gICAgICBpZiBmP1xuICAgICAgICBmLmNhbGwgY29udGV4dCwgY29udGV4dFxuXG5Mb2NhbC1vbmx5XG4tLS0tLS0tLS0tXG5cbklmIHRoZSBgaW9gIG9wdGlvbiBpcyBmYWxzZSwgZG8gbm90IHdhaXQgZm9yIElPIGNvbm5lY3QuXG5cbiAgICAgIGlmIG9wdGlvbnMuaW8gaXMgZmFsc2VcbiAgICAgICAgZG9tcmVhZHkgLT5cbiAgICAgICAgICBkZWJ1ZyAnRE9NIGlzIHJlYWR5J1xuICAgICAgICAgIGV2LnRyaWdnZXIgJ3JlYWR5J1xuICAgICAgICByZXR1cm4gY29udGV4dFxuXG5BdXRvbWF0aWNhbGx5IGJpbmRpbmcgRXhwcmVzc0pTIGFuZCBTb2NrZXQuSU9cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5UaGUgbWFpbiBwdXJwb3NlIG9mIFphcHBhSlMtQ2xpZW50IGlzIHRvIGF1dG9tYXRpY2FsbHkgYmluZCB0aGUgRXhwcmVzc0pzIGFuZCB0aGUgU29ja2V0LklPIGBAc2Vzc2lvbmAgb2JqZWN0cyBvbiB0aGUgc2VydmVyIHNpZGUsIHNvIHRoYXQgYWxsIGNvZGUgb24gdGhlIHNlcnZlciBnYWlucyBhY2Nlc3MgdG8gdGhlIHNhbWUgc2Vzc2lvbiBvYmplY3QuXG5UaGlzIHdvcmtzIGV2ZW4gaWYgdGhlIEV4cHJlc3NKUyBhbmQgdGhlIFNvY2tldC5JTyBjb2RlIGFyZSBydW5uaW5nIG9uIGRpZmZlcmVudCBzZXJ2ZXJzLlxuXG5TaGFyZVxuLS0tLS1cblxuVGhlIGdvYWwgb2YgdGhlIGBzaGFyZWAgZnVuY3Rpb24gaXMgdG8gYmluZCB0aGUgc29ja2V0IElEIHdpdGggdGhlIEV4cHJlc3NKUyBzZXNzaW9uLCB0aGVuIHByb3ZpZGUgdGhlIHNlc3Npb24gSUQgYmFjayB0byB0aGUgc29ja2V0LklPIHNlcnZlci5cblxuICAgICAgc2hhcmUgPSAobmV4dCkgLT5cbiAgICAgICAgemFwcGFfcHJlZml4ID0gY29udGV4dC5zZXR0aW5ncy56YXBwYV9wcmVmaXggPyAnL3phcHBhJ1xuICAgICAgICBjaGFubmVsX25hbWUgPSBjb250ZXh0LnNldHRpbmdzLnphcHBhX2NoYW5uZWwgPyAnX19sb2NhbCdcbiAgICAgICAgemFwcGFfc2VydmVyID0gb3B0aW9ucy56YXBwYV9zZXJ2ZXIgPyAnJ1xuXG5MZXQgdGhlIEV4cHJlc3Mgc2VydmVyIHNhdmUgaXRzIHNlc3Npb24uaWQgYW5kIGJpbmQgaXQgdG8gdGhlIGtleS5cblxuICAgICAgICB1cmkgPSBcIiN7emFwcGFfc2VydmVyfSN7emFwcGFfcHJlZml4fS9zb2NrZXQvI3tjaGFubmVsX25hbWV9LyN7aW8uaWR9XCJcbiAgICAgICAgZGVidWcgXCJSZXF1ZXN0aW5nICN7dXJpfVwiXG4gICAgICAgIHJlcXVlc3RcbiAgICAgICAgLmdldCB1cmlcbiAgICAgICAgLmFjY2VwdCAnanNvbidcbiAgICAgICAgLmNhdGNoIChlcnJvcikgLT5cbiAgICAgICAgICBib2R5OiBrZXk6IG51bGxcbiAgICAgICAgLnRoZW4gKHtib2R5OntrZXl9fSkgLT5cblxuTGV0IHRoZSBzb2NrZXQuaW8gc2VydmVyIGtub3cgaG93IHRvIHJldHJpZXZlIHRoZSBzZXNzaW9uLmlkIGJ5IHByb3ZpZGluZyBpdCB0aGUga2V5LlxuXG4gICAgICAgICAgaWYga2V5P1xuICAgICAgICAgICAgZGVidWcgXCJTZW5kaW5nIF9femFwcGFfa2V5IHRvIHNlcnZlclwiLCB7a2V5fVxuICAgICAgICAgICAgaW8uZW1pdCAnX196YXBwYV9rZXknLCB7a2V5fSwgbmV4dFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIG5leHQ/IGtleTogbnVsbFxuXG5PbiBJTyBjb25uZWN0XG4tLS0tLS0tLS0tLS0tXG5cbldoZW4gdGhlIElPIHNvY2tldCBpcyBjb25uZWN0ZWQsXG5cbiAgICAgIGlvLm9uICdjb25uZWN0JywgLT5cbiAgICAgICAgZGVidWcgXCJDb25uZWN0XCJcblxucmV0cmlldmUgdGhlIFphcHBhIGFwcGxpY2F0aW9uIHNldHRpbmdzLFxuXG4gICAgICAgIGlvLmVtaXQgJ19femFwcGFfc2V0dGluZ3MnLCBudWxsLCAoc2V0dGluZ3MpIC0+XG5cbiAgICAgICAgICBkZWJ1ZyAnUmVjZWl2ZWQgc2V0dGluZ3MnLCBzZXR0aW5nc1xuICAgICAgICAgIGNvbnRleHQuc2V0dGluZ3MgPSBzZXR0aW5nc1xuXG50aGVuIGJpbmQgdGhlIHNvY2tldCBpbiB0aGUgRXhwcmVzc0pTIHNlc3Npb24sIGFuZCBwcm92aWRlcyB0aGUgRXhwcmVzc0pTIHNlc3Npb24gSUQgdG8gdGhlIFNvY2tldC5JTyBzZXJ2ZXIuXG5cbiAgICAgICAgICBzaGFyZSAoe2tleX0pIC0+XG4gICAgICAgICAgICBkZWJ1ZyAnUmVjZWl2ZWQga2V5Jywga2V5XG5cbldlIGRvIG5vdCBzYXZlIHRoZSBrZXkgaW5zaWRlIHRoZSBjb250ZXh0IHVudGlsIGFsbCB0aGUgc3RlcHMgYXJlIGNvbXBsZXRlZC5cbk5vdGU6IFRoZSBrZXkgaXMgbm9ybWFsbHkgbm90IG5lZWRlZC5cblxuICAgICAgICAgICAgY29udGV4dC5rZXkgPSBrZXlcblxuRmluYWxseSwgb25jZSB0aGUgRE9NIGlzIHJlYWR5LCB0cmlnZ2VyIGEgYHJlYWR5YCBldmVudCBzbyB0aGF0IG91ciBjbGllbnQtc2lkZSBhcHBsaWNhdGlvbiBtYXkgc3RhcnQuXG5cbiAgICAgICAgICAgIGRvbXJlYWR5IC0+XG4gICAgICAgICAgICAgIGRlYnVnICdET00gaXMgcmVhZHknXG4gICAgICAgICAgICAgIGV2LnRyaWdnZXIgJ3JlYWR5J1xuXG4gICAgICAgIGRlYnVnIFwiV2FpdGluZyBmb3IgWmFwcGEgc2V0dGluZ3NcIlxuXG4gICAgICBjb250ZXh0XG5cbiAgICBtb2R1bGUuZXhwb3J0cyA9IHphcHBhXG4gICAgbW9kdWxlLmV4cG9ydHMucmVxdWVzdCA9IHJlcXVlc3RcbiAgICBtb2R1bGUuZXhwb3J0cy5pbyA9IHNvY2tldGlvXG4gICAgbW9kdWxlLmV4cG9ydHMucmlvdCA9IHJpb3RcbiJdfQ==
//# sourceURL=/srv/home/stephane/Artisan/Managed/Node/zappajs-client/index.coffee.md