feat: 초기 프로젝트 설정 및 룰.md 파일 추가

This commit is contained in:
2025-07-28 09:53:31 +09:00
commit 09a4d38512
8165 changed files with 1021855 additions and 0 deletions

73
api.hyungi.net/node_modules/amp-message/Readme.md generated vendored Normal file
View File

@@ -0,0 +1,73 @@
# amp-message
High level [AMP](https://github.com/visionmedia/node-amp) `Message` implementation for manipulating, encoding and decoding AMP messages.
## Installation
```
$ npm install amp-message
```
## Example
Encoding a message:
```js
var Message = require('amp-message');
var msg = new Message;
console.log(msg.toBuffer());
// => <Buffer 10>
msg.push('foo');
msg.push('bar');
msg.push('baz');
console.log(msg.toBuffer());
// => <Buffer 13 00 05 73 3a 66 6f 6f 00 05 73 3a 62 61 72 00 05 73 3a 62 61 7a>
msg.push({ foo: 'bar' });
console.log(msg.toBuffer());
// => <Buffer 14 00 05 73 3a 66 6f 6f 00 05 73 3a 62 61 72 00 05 73 3a 62 61 7a 00 0f 6a 3a 7b 22 66 6f 6f 22 3a 22 62 61 72 22 7d>
msg.push(new Buffer('image data'));
console.log(msg.toBuffer());
// => <Buffer 15 00 05 73 3a 66 6f 6f 00 05 73 3a 62 61 72 00 05 73 3a 62 61 7a 00 0f 6a 3a 7b 22 66 6f 6f 22 3a 22 62 61 72 22 7d 00 0a 69 6d 61 67 65 20 64 61 74 ... >
```
Decoding a message:
```js
var Message = require('..');
var msg = new Message;
msg.push('foo')
msg.push({ hello: 'world' })
msg.push(new Buffer('hello'))
var other = new Message(msg.toBuffer());
console.log(other.shift());
console.log(other.shift());
console.log(other.shift());
```
## API
### Message
Initialize an empty message.
### Message(buffer)
Decode the `buffer` AMP message to populate the `Message`.
### Message(args)
Initialize a messeage populated with `args`.
# License
MIT

170
api.hyungi.net/node_modules/amp-message/index.js generated vendored Normal file
View File

@@ -0,0 +1,170 @@
/**
* Module dependencies.
*/
var fmt = require('util').format;
var amp = require('amp');
/**
* Proxy methods.
*/
var methods = [
'push',
'pop',
'shift',
'unshift'
];
/**
* Expose `Message`.
*/
module.exports = Message;
/**
* Initialize an AMP message with the
* given `args` or message buffer.
*
* @param {Array|Buffer} args or blob
* @api public
*/
function Message(args) {
if (Buffer.isBuffer(args)) args = decode(args);
this.args = args || [];
}
// proxy methods
methods.forEach(function(method){
Message.prototype[method] = function(){
return this.args[method].apply(this.args, arguments);
};
});
/**
* Inspect the message.
*
* @return {String}
* @api public
*/
Message.prototype.inspect = function(){
return fmt('<Message args=%d size=%d>',
this.args.length,
this.toBuffer().length);
};
/**
* Return an encoded AMP message.
*
* @return {Buffer}
* @api public
*/
Message.prototype.toBuffer = function(){
return encode(this.args);
};
/**
* Decode `msg` and unpack all args.
*
* @param {Buffer} msg
* @return {Array}
* @api private
*/
function decode(msg) {
var args = amp.decode(msg);
for (var i = 0; i < args.length; i++) {
args[i] = unpack(args[i]);
}
return args;
}
/**
* Encode and pack all `args`.
*
* @param {Array} args
* @return {Buffer}
* @api private
*/
function encode(args) {
var tmp = new Array(args.length);
for (var i = 0; i < args.length; i++) {
tmp[i] = pack(args[i]);
}
return amp.encode(tmp);
}
/**
* Pack `arg`.
*
* @param {Mixed} arg
* @return {Buffer}
* @api private
*/
function pack(arg) {
// blob
if (Buffer.isBuffer(arg)) return arg;
// string
if ('string' == typeof arg) return new Buffer('s:' + arg);
// undefined
if (arg === undefined) arg = null;
// json
return new Buffer('j:' + JSON.stringify(arg));
}
/**
* Unpack `arg`.
*
* @param {Buffer} arg
* @return {Mixed}
* @api private
*/
function unpack(arg) {
// json
if (isJSON(arg)) return JSON.parse(arg.slice(2));
// string
if (isString(arg)) return arg.slice(2).toString();
// blob
return arg;
}
/**
* String argument.
*/
function isString(arg) {
return 115 == arg[0] && 58 == arg[1];
}
/**
* JSON argument.
*/
function isJSON(arg) {
return 106 == arg[0] && 58 == arg[1];
}
/**
* ID argument.
*/
function isId(arg) {
return 105 == arg[0] && 58 == arg[1];
}

26
api.hyungi.net/node_modules/amp-message/package.json generated vendored Normal file
View File

@@ -0,0 +1,26 @@
{
"name": "amp-message",
"version": "0.1.2",
"repository": "visionmedia/node-amp-message",
"description": "Higher level Message object for the AMP protocol",
"keywords": [
"amp",
"actor",
"message",
"messaging",
"zmq",
"zeromq"
],
"dependencies": {
"amp": "0.3.1"
},
"files": [
"index.js"
],
"devDependencies": {
"matcha": "~0.4.0",
"mocha": "*",
"should": "*"
},
"license": "MIT"
}