new license file version [CI SKIP]
This commit is contained in:
@@ -0,0 +1,188 @@
|
||||
import { AssignmentExpression, Node, Program } from 'estree';
|
||||
import { SourceMap } from 'magic-string';
|
||||
interface BaseNode {
|
||||
start: number;
|
||||
end: number;
|
||||
type: string;
|
||||
children?: TemplateNode[];
|
||||
[prop_name: string]: any;
|
||||
}
|
||||
export interface Fragment extends BaseNode {
|
||||
type: 'Fragment';
|
||||
children: TemplateNode[];
|
||||
}
|
||||
export interface Text extends BaseNode {
|
||||
type: 'Text';
|
||||
data: string;
|
||||
}
|
||||
export interface MustacheTag extends BaseNode {
|
||||
type: 'MustacheTag' | 'RawMustacheTag';
|
||||
expression: Node;
|
||||
}
|
||||
export interface Comment extends BaseNode {
|
||||
type: 'Comment';
|
||||
data: string;
|
||||
ignores: string[];
|
||||
}
|
||||
export interface ConstTag extends BaseNode {
|
||||
type: 'ConstTag';
|
||||
expression: AssignmentExpression;
|
||||
}
|
||||
interface DebugTag extends BaseNode {
|
||||
type: 'DebugTag';
|
||||
identifiers: Node[];
|
||||
}
|
||||
export declare type DirectiveType = 'Action' | 'Animation' | 'Binding' | 'Class' | 'StyleDirective' | 'EventHandler' | 'Let' | 'Ref' | 'Transition';
|
||||
interface BaseDirective extends BaseNode {
|
||||
type: DirectiveType;
|
||||
name: string;
|
||||
}
|
||||
interface BaseExpressionDirective extends BaseDirective {
|
||||
type: DirectiveType;
|
||||
expression: null | Node;
|
||||
name: string;
|
||||
modifiers: string[];
|
||||
}
|
||||
export interface Element extends BaseNode {
|
||||
type: 'InlineComponent' | 'SlotTemplate' | 'Title' | 'Slot' | 'Element' | 'Head' | 'Options' | 'Window' | 'Body';
|
||||
attributes: Array<BaseDirective | Attribute | SpreadAttribute>;
|
||||
name: string;
|
||||
}
|
||||
export interface Attribute extends BaseNode {
|
||||
type: 'Attribute';
|
||||
name: string;
|
||||
value: any[];
|
||||
}
|
||||
export interface SpreadAttribute extends BaseNode {
|
||||
type: 'Spread';
|
||||
expression: Node;
|
||||
}
|
||||
export interface Transition extends BaseExpressionDirective {
|
||||
type: 'Transition';
|
||||
intro: boolean;
|
||||
outro: boolean;
|
||||
}
|
||||
export declare type Directive = BaseDirective | BaseExpressionDirective | Transition;
|
||||
export declare type TemplateNode = Text | ConstTag | DebugTag | MustacheTag | BaseNode | Element | Attribute | SpreadAttribute | Directive | Transition | Comment;
|
||||
export interface Parser {
|
||||
readonly template: string;
|
||||
readonly filename?: string;
|
||||
index: number;
|
||||
stack: Node[];
|
||||
html: Node;
|
||||
css: Node;
|
||||
js: Node;
|
||||
meta_tags: {};
|
||||
}
|
||||
export interface Script extends BaseNode {
|
||||
type: 'Script';
|
||||
context: string;
|
||||
content: Program;
|
||||
}
|
||||
export interface Style extends BaseNode {
|
||||
type: 'Style';
|
||||
attributes: any[];
|
||||
children: any[];
|
||||
content: {
|
||||
start: number;
|
||||
end: number;
|
||||
styles: string;
|
||||
};
|
||||
}
|
||||
export interface Ast {
|
||||
html: TemplateNode;
|
||||
css?: Style;
|
||||
instance?: Script;
|
||||
module?: Script;
|
||||
}
|
||||
export interface Warning {
|
||||
start?: {
|
||||
line: number;
|
||||
column: number;
|
||||
pos?: number;
|
||||
};
|
||||
end?: {
|
||||
line: number;
|
||||
column: number;
|
||||
};
|
||||
pos?: number;
|
||||
code: string;
|
||||
message: string;
|
||||
filename?: string;
|
||||
frame?: string;
|
||||
toString: () => string;
|
||||
}
|
||||
export declare type ModuleFormat = 'esm' | 'cjs';
|
||||
export declare type EnableSourcemap = boolean | {
|
||||
js: boolean;
|
||||
css: boolean;
|
||||
};
|
||||
export declare type CssHashGetter = (args: {
|
||||
name: string;
|
||||
filename: string | undefined;
|
||||
css: string;
|
||||
hash: (input: string) => string;
|
||||
}) => string;
|
||||
export interface CompileOptions {
|
||||
format?: ModuleFormat;
|
||||
name?: string;
|
||||
filename?: string;
|
||||
generate?: 'dom' | 'ssr' | false;
|
||||
errorMode?: 'throw' | 'warn';
|
||||
varsReport?: 'full' | 'strict' | false;
|
||||
sourcemap?: object | string;
|
||||
enableSourcemap?: EnableSourcemap;
|
||||
outputFilename?: string;
|
||||
cssOutputFilename?: string;
|
||||
sveltePath?: string;
|
||||
dev?: boolean;
|
||||
accessors?: boolean;
|
||||
immutable?: boolean;
|
||||
hydratable?: boolean;
|
||||
legacy?: boolean;
|
||||
customElement?: boolean;
|
||||
tag?: string;
|
||||
css?: 'injected' | 'external' | 'none' | boolean;
|
||||
loopGuardTimeout?: number;
|
||||
namespace?: string;
|
||||
cssHash?: CssHashGetter;
|
||||
preserveComments?: boolean;
|
||||
preserveWhitespace?: boolean;
|
||||
}
|
||||
export interface ParserOptions {
|
||||
filename?: string;
|
||||
customElement?: boolean;
|
||||
css?: 'injected' | 'external' | 'none' | boolean;
|
||||
}
|
||||
export interface Visitor {
|
||||
enter: (node: Node) => void;
|
||||
leave?: (node: Node) => void;
|
||||
}
|
||||
export interface AppendTarget {
|
||||
slots: Record<string, string>;
|
||||
slot_stack: string[];
|
||||
}
|
||||
export interface Var {
|
||||
name: string;
|
||||
export_name?: string;
|
||||
injected?: boolean;
|
||||
module?: boolean;
|
||||
mutated?: boolean;
|
||||
reassigned?: boolean;
|
||||
referenced?: boolean;
|
||||
referenced_from_script?: boolean;
|
||||
writable?: boolean;
|
||||
global?: boolean;
|
||||
internal?: boolean;
|
||||
initialised?: boolean;
|
||||
hoistable?: boolean;
|
||||
subscribable?: boolean;
|
||||
is_reactive_dependency?: boolean;
|
||||
imported?: boolean;
|
||||
is_reactive_static?: boolean;
|
||||
}
|
||||
export interface CssResult {
|
||||
code: string;
|
||||
map: SourceMap;
|
||||
}
|
||||
export {};
|
||||
@@ -0,0 +1,5 @@
|
||||
var convert = require('./convert'),
|
||||
func = convert('forEach', require('../forEach'));
|
||||
|
||||
func.placeholder = require('./placeholder');
|
||||
module.exports = func;
|
||||
@@ -0,0 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = require('./async').iterator;
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"connectable.d.ts","sourceRoot":"","sources":["../../../../src/internal/observable/connectable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAMrE,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC;;;OAGG;IACH,SAAS,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;IAChC;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAUD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAE,iBAAiB,CAAC,CAAC,CAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,CAwBxH"}
|
||||
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
var __read = (this && this.__read) || function (o, n) {
|
||||
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
||||
if (!m) return o;
|
||||
var i = m.call(o), r, ar = [], e;
|
||||
try {
|
||||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
||||
}
|
||||
catch (error) { e = { error: error }; }
|
||||
finally {
|
||||
try {
|
||||
if (r && !r.done && (m = i["return"])) m.call(i);
|
||||
}
|
||||
finally { if (e) throw e.error; }
|
||||
}
|
||||
return ar;
|
||||
};
|
||||
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
||||
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
||||
to[j] = from[i];
|
||||
return to;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.zip = void 0;
|
||||
var zip_1 = require("../observable/zip");
|
||||
var lift_1 = require("../util/lift");
|
||||
function zip() {
|
||||
var sources = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
sources[_i] = arguments[_i];
|
||||
}
|
||||
return lift_1.operate(function (source, subscriber) {
|
||||
zip_1.zip.apply(void 0, __spreadArray([source], __read(sources))).subscribe(subscriber);
|
||||
});
|
||||
}
|
||||
exports.zip = zip;
|
||||
//# sourceMappingURL=zip.js.map
|
||||
@@ -0,0 +1,177 @@
|
||||
import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';
|
||||
import { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';
|
||||
export var PART_TYPE;
|
||||
(function (PART_TYPE) {
|
||||
PART_TYPE[PART_TYPE["literal"] = 0] = "literal";
|
||||
PART_TYPE[PART_TYPE["object"] = 1] = "object";
|
||||
})(PART_TYPE || (PART_TYPE = {}));
|
||||
function mergeLiteral(parts) {
|
||||
if (parts.length < 2) {
|
||||
return parts;
|
||||
}
|
||||
return parts.reduce(function (all, part) {
|
||||
var lastPart = all[all.length - 1];
|
||||
if (!lastPart ||
|
||||
lastPart.type !== PART_TYPE.literal ||
|
||||
part.type !== PART_TYPE.literal) {
|
||||
all.push(part);
|
||||
}
|
||||
else {
|
||||
lastPart.value += part.value;
|
||||
}
|
||||
return all;
|
||||
}, []);
|
||||
}
|
||||
export function isFormatXMLElementFn(el) {
|
||||
return typeof el === 'function';
|
||||
}
|
||||
// TODO(skeleton): add skeleton support
|
||||
export function formatToParts(els, locales, formatters, formats, values, currentPluralValue,
|
||||
// For debugging
|
||||
originalMessage) {
|
||||
// Hot path for straight simple msg translations
|
||||
if (els.length === 1 && isLiteralElement(els[0])) {
|
||||
return [
|
||||
{
|
||||
type: PART_TYPE.literal,
|
||||
value: els[0].value,
|
||||
},
|
||||
];
|
||||
}
|
||||
var result = [];
|
||||
for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {
|
||||
var el = els_1[_i];
|
||||
// Exit early for string parts.
|
||||
if (isLiteralElement(el)) {
|
||||
result.push({
|
||||
type: PART_TYPE.literal,
|
||||
value: el.value,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
// TODO: should this part be literal type?
|
||||
// Replace `#` in plural rules with the actual numeric value.
|
||||
if (isPoundElement(el)) {
|
||||
if (typeof currentPluralValue === 'number') {
|
||||
result.push({
|
||||
type: PART_TYPE.literal,
|
||||
value: formatters.getNumberFormat(locales).format(currentPluralValue),
|
||||
});
|
||||
}
|
||||
continue;
|
||||
}
|
||||
var varName = el.value;
|
||||
// Enforce that all required values are provided by the caller.
|
||||
if (!(values && varName in values)) {
|
||||
throw new MissingValueError(varName, originalMessage);
|
||||
}
|
||||
var value = values[varName];
|
||||
if (isArgumentElement(el)) {
|
||||
if (!value || typeof value === 'string' || typeof value === 'number') {
|
||||
value =
|
||||
typeof value === 'string' || typeof value === 'number'
|
||||
? String(value)
|
||||
: '';
|
||||
}
|
||||
result.push({
|
||||
type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,
|
||||
value: value,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
// Recursively format plural and select parts' option — which can be a
|
||||
// nested pattern structure. The choosing of the option to use is
|
||||
// abstracted-by and delegated-to the part helper object.
|
||||
if (isDateElement(el)) {
|
||||
var style = typeof el.style === 'string'
|
||||
? formats.date[el.style]
|
||||
: isDateTimeSkeleton(el.style)
|
||||
? el.style.parsedOptions
|
||||
: undefined;
|
||||
result.push({
|
||||
type: PART_TYPE.literal,
|
||||
value: formatters
|
||||
.getDateTimeFormat(locales, style)
|
||||
.format(value),
|
||||
});
|
||||
continue;
|
||||
}
|
||||
if (isTimeElement(el)) {
|
||||
var style = typeof el.style === 'string'
|
||||
? formats.time[el.style]
|
||||
: isDateTimeSkeleton(el.style)
|
||||
? el.style.parsedOptions
|
||||
: formats.time.medium;
|
||||
result.push({
|
||||
type: PART_TYPE.literal,
|
||||
value: formatters
|
||||
.getDateTimeFormat(locales, style)
|
||||
.format(value),
|
||||
});
|
||||
continue;
|
||||
}
|
||||
if (isNumberElement(el)) {
|
||||
var style = typeof el.style === 'string'
|
||||
? formats.number[el.style]
|
||||
: isNumberSkeleton(el.style)
|
||||
? el.style.parsedOptions
|
||||
: undefined;
|
||||
if (style && style.scale) {
|
||||
value =
|
||||
value *
|
||||
(style.scale || 1);
|
||||
}
|
||||
result.push({
|
||||
type: PART_TYPE.literal,
|
||||
value: formatters
|
||||
.getNumberFormat(locales, style)
|
||||
.format(value),
|
||||
});
|
||||
continue;
|
||||
}
|
||||
if (isTagElement(el)) {
|
||||
var children = el.children, value_1 = el.value;
|
||||
var formatFn = values[value_1];
|
||||
if (!isFormatXMLElementFn(formatFn)) {
|
||||
throw new InvalidValueTypeError(value_1, 'function', originalMessage);
|
||||
}
|
||||
var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);
|
||||
var chunks = formatFn(parts.map(function (p) { return p.value; }));
|
||||
if (!Array.isArray(chunks)) {
|
||||
chunks = [chunks];
|
||||
}
|
||||
result.push.apply(result, chunks.map(function (c) {
|
||||
return {
|
||||
type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,
|
||||
value: c,
|
||||
};
|
||||
}));
|
||||
}
|
||||
if (isSelectElement(el)) {
|
||||
var opt = el.options[value] || el.options.other;
|
||||
if (!opt) {
|
||||
throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);
|
||||
}
|
||||
result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));
|
||||
continue;
|
||||
}
|
||||
if (isPluralElement(el)) {
|
||||
var opt = el.options["=".concat(value)];
|
||||
if (!opt) {
|
||||
if (!Intl.PluralRules) {
|
||||
throw new FormatError("Intl.PluralRules is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-pluralrules\"\n", ErrorCode.MISSING_INTL_API, originalMessage);
|
||||
}
|
||||
var rule = formatters
|
||||
.getPluralRules(locales, { type: el.pluralType })
|
||||
.select(value - (el.offset || 0));
|
||||
opt = el.options[rule] || el.options.other;
|
||||
}
|
||||
if (!opt) {
|
||||
throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);
|
||||
}
|
||||
result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
return mergeLiteral(result);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"reduce.d.ts","sourceRoot":"","sources":["../../../../src/internal/operators/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACtH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { SvelteComponentTyped } from "svelte";
|
||||
import type { DataHandler } from './core';
|
||||
declare const __propDef: {
|
||||
props: {
|
||||
handler: DataHandler;
|
||||
orderBy?: any;
|
||||
};
|
||||
events: {
|
||||
[evt: string]: CustomEvent<any>;
|
||||
};
|
||||
slots: {
|
||||
default: {};
|
||||
};
|
||||
};
|
||||
export type ThProps = typeof __propDef.props;
|
||||
export type ThEvents = typeof __propDef.events;
|
||||
export type ThSlots = typeof __propDef.slots;
|
||||
export default class Th extends SvelteComponentTyped<ThProps, ThEvents, ThSlots> {
|
||||
}
|
||||
export {};
|
||||
@@ -0,0 +1,47 @@
|
||||
'use strict';
|
||||
|
||||
var hasSymbols = require('has-symbols')();
|
||||
var GetIntrinsic = require('get-intrinsic');
|
||||
var callBound = require('call-bind/callBound');
|
||||
var isString = require('is-string');
|
||||
|
||||
var $iterator = GetIntrinsic('%Symbol.iterator%', true);
|
||||
var $stringSlice = callBound('String.prototype.slice');
|
||||
var $String = GetIntrinsic('%String%');
|
||||
|
||||
module.exports = function getIteratorMethod(ES, iterable) {
|
||||
var usingIterator;
|
||||
if (hasSymbols) {
|
||||
usingIterator = ES.GetMethod(iterable, $iterator);
|
||||
} else if (ES.IsArray(iterable)) {
|
||||
usingIterator = function () {
|
||||
var i = -1;
|
||||
var arr = this; // eslint-disable-line no-invalid-this
|
||||
return {
|
||||
next: function () {
|
||||
i += 1;
|
||||
return {
|
||||
done: i >= arr.length,
|
||||
value: arr[i]
|
||||
};
|
||||
}
|
||||
};
|
||||
};
|
||||
} else if (isString(iterable)) {
|
||||
usingIterator = function () {
|
||||
var i = 0;
|
||||
return {
|
||||
next: function () {
|
||||
var nextIndex = ES.AdvanceStringIndex($String(iterable), i, true);
|
||||
var value = $stringSlice(iterable, i, nextIndex);
|
||||
i = nextIndex;
|
||||
return {
|
||||
done: nextIndex > iterable.length,
|
||||
value: value
|
||||
};
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
return usingIterator;
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
module.exports={A:{A:{"2":"J D E F A CC","130":"B"},B:{"1":"Y Z a b c d e i j k l m n o p q r s t u f H","16":"C K","260":"L G","1028":"P Q R S T U V W X","5124":"M N O"},C:{"1":"o p q r s t u f H xB yB","2":"0 1 2 3 4 5 6 7 8 9 DC tB I v J D E F A B C K L G M N O w g x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB EC FC","5124":"m n","7172":"dB eB fB gB hB iB jB kB h lB mB nB oB pB P Q R wB S T U V W X Y Z a b c d e i j k l","7746":"XB YB uB ZB vB aB bB cB"},D:{"1":"Y Z a b c d e i j k l m n o p q r s t u f H xB yB GC","2":"0 1 2 3 4 5 6 7 8 9 I v J D E F A B C K L G M N O w g x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB","260":"SB TB UB VB WB XB YB","1028":"uB ZB vB aB bB cB dB eB fB gB hB iB jB kB h lB mB nB oB pB P Q R S T U V W X"},E:{"2":"I v J D E F HC zB IC JC KC LC","1028":"G MC NC 2B 3B 4B 5B sB 6B 7B 8B 9B OC","3076":"A B C K L 0B qB rB 1B"},F:{"1":"nB oB pB P Q R wB S T U V W X Y Z a b c d e","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O w g x y z AB BB CB DB EB PC QC RC SC qB AC TC rB","260":"FB GB HB IB JB KB LB","1028":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB h lB mB"},G:{"2":"E zB UC BC VC WC XC YC ZC aC","16":"bC","1028":"cC dC eC fC gC hC iC jC kC lC mC nC 2B 3B 4B 5B sB 6B 7B 8B 9B"},H:{"2":"oC"},I:{"1":"f","2":"tB I pC qC rC sC BC tC uC"},J:{"2":"D A"},K:{"1":"h","2":"A B C qB AC rB"},L:{"1":"H"},M:{"1":"H"},N:{"2":"A B"},O:{"1028":"vC"},P:{"1":"g 5C sB 6C 7C 8C","2":"I wC xC","1028":"yC zC 0C 0B 1C 2C 3C 4C"},Q:{"1028":"1B"},R:{"1":"9C"},S:{"2":"AD BD"}},B:1,C:"Streams"};
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../../src/internal/util/identity.ts"],"names":[],"mappings":"AA0CA,MAAM,UAAU,QAAQ,CAAI,CAAI;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC"}
|
||||
@@ -0,0 +1,2 @@
|
||||
export {};
|
||||
//# sourceMappingURL=timerHandle.js.map
|
||||
@@ -0,0 +1,23 @@
|
||||
/**
|
||||
Create a type with the keys of the given type changed to `string` type.
|
||||
|
||||
Use-case: Changing interface values to strings in order to use them in a form model.
|
||||
|
||||
@example
|
||||
```
|
||||
import type {Stringified} from 'type-fest';
|
||||
|
||||
type Car = {
|
||||
model: string;
|
||||
speed: number;
|
||||
}
|
||||
|
||||
const carForm: Stringified<Car> = {
|
||||
model: 'Foo',
|
||||
speed: '101'
|
||||
};
|
||||
```
|
||||
|
||||
@category Object
|
||||
*/
|
||||
export type Stringified<ObjectType> = {[KeyType in keyof ObjectType]: string};
|
||||
@@ -0,0 +1,864 @@
|
||||
8.1.0 / 2019-06-28
|
||||
------------------
|
||||
|
||||
- Add support for promisified `fs.realpath.native` in Node v9.2+ ([#650](https://github.com/jprichardson/node-fs-extra/issues/650), [#682](https://github.com/jprichardson/node-fs-extra/pull/682))
|
||||
- Update `graceful-fs` dependency ([#700](https://github.com/jprichardson/node-fs-extra/pull/700))
|
||||
- Use `graceful-fs` everywhere ([#700](https://github.com/jprichardson/node-fs-extra/pull/700))
|
||||
|
||||
8.0.1 / 2019-05-13
|
||||
------------------
|
||||
|
||||
- Fix bug `Maximum call stack size exceeded` error in `util/stat` ([#679](https://github.com/jprichardson/node-fs-extra/pull/679))
|
||||
|
||||
8.0.0 / 2019-05-11
|
||||
------------------
|
||||
|
||||
**NOTE:** Node.js v6 support is deprecated, and will be dropped in the next major release.
|
||||
|
||||
- Use `renameSync()` under the hood in `moveSync()`
|
||||
- Fix bug with bind-mounted directories in `copy*()` ([#613](https://github.com/jprichardson/node-fs-extra/issues/613), [#618](https://github.com/jprichardson/node-fs-extra/pull/618))
|
||||
- Fix bug in `move()` with case-insensitive file systems
|
||||
- Use `fs.stat()`'s `bigint` option in `copy*()` & `move*()` where possible ([#657](https://github.com/jprichardson/node-fs-extra/issues/657))
|
||||
|
||||
7.0.1 / 2018-11-07
|
||||
------------------
|
||||
|
||||
- Fix `removeSync()` on Windows, in some cases, it would error out with `ENOTEMPTY` ([#646](https://github.com/jprichardson/node-fs-extra/pull/646))
|
||||
- Document `mode` option for `ensureDir*()` ([#587](https://github.com/jprichardson/node-fs-extra/pull/587))
|
||||
- Don't include documentation files in npm package tarball ([#642](https://github.com/jprichardson/node-fs-extra/issues/642), [#643](https://github.com/jprichardson/node-fs-extra/pull/643))
|
||||
|
||||
7.0.0 / 2018-07-16
|
||||
------------------
|
||||
|
||||
- **BREAKING:** Refine `copy*()` handling of symlinks to properly detect symlinks that point to the same file. ([#582](https://github.com/jprichardson/node-fs-extra/pull/582))
|
||||
- Fix bug with copying write-protected directories ([#600](https://github.com/jprichardson/node-fs-extra/pull/600))
|
||||
- Universalify `fs.lchmod()` ([#596](https://github.com/jprichardson/node-fs-extra/pull/596))
|
||||
- Add `engines` field to `package.json` ([#580](https://github.com/jprichardson/node-fs-extra/pull/580))
|
||||
|
||||
6.0.1 / 2018-05-09
|
||||
------------------
|
||||
|
||||
- Fix `fs.promises` `ExperimentalWarning` on Node v10.1.0 ([#578](https://github.com/jprichardson/node-fs-extra/pull/578))
|
||||
|
||||
6.0.0 / 2018-05-01
|
||||
------------------
|
||||
|
||||
- Drop support for Node.js versions 4, 5, & 7 ([#564](https://github.com/jprichardson/node-fs-extra/pull/564))
|
||||
- Rewrite `move` to use `fs.rename` where possible ([#549](https://github.com/jprichardson/node-fs-extra/pull/549))
|
||||
- Don't convert relative paths to absolute paths for `filter` ([#554](https://github.com/jprichardson/node-fs-extra/pull/554))
|
||||
- `copy*`'s behavior when `preserveTimestamps` is `false` has been OS-dependent since 5.0.0, but that's now explicitly noted in the docs ([#563](https://github.com/jprichardson/node-fs-extra/pull/563))
|
||||
- Fix subdirectory detection for `copy*` & `move*` ([#541](https://github.com/jprichardson/node-fs-extra/pull/541))
|
||||
- Handle case-insensitive paths correctly in `copy*` ([#568](https://github.com/jprichardson/node-fs-extra/pull/568))
|
||||
|
||||
5.0.0 / 2017-12-11
|
||||
------------------
|
||||
|
||||
Significant refactor of `copy()` & `copySync()`, including breaking changes. No changes to other functions in this release.
|
||||
|
||||
Huge thanks to **[@manidlou](https://github.com/manidlou)** for doing most of the work on this release.
|
||||
|
||||
- The `filter` option can no longer be a RegExp (must be a function). This was deprecated since fs-extra v1.0.0. [#512](https://github.com/jprichardson/node-fs-extra/pull/512)
|
||||
- `copy()`'s `filter` option can now be a function that returns a Promise. [#518](https://github.com/jprichardson/node-fs-extra/pull/518)
|
||||
- `copy()` & `copySync()` now use `fs.copyFile()`/`fs.copyFileSync()` in environments that support it (currently Node 8.5.0+). Older Node versions still get the old implementation. [#505](https://github.com/jprichardson/node-fs-extra/pull/505)
|
||||
- Don't allow copying a directory into itself. [#83](https://github.com/jprichardson/node-fs-extra/issues/83)
|
||||
- Handle copying between identical files. [#198](https://github.com/jprichardson/node-fs-extra/issues/198)
|
||||
- Error out when copying an empty folder to a path that already exists. [#464](https://github.com/jprichardson/node-fs-extra/issues/464)
|
||||
- Don't create `dest`'s parent if the `filter` function aborts the `copy()` operation. [#517](https://github.com/jprichardson/node-fs-extra/pull/517)
|
||||
- Fix `writeStream` not being closed if there was an error in `copy()`. [#516](https://github.com/jprichardson/node-fs-extra/pull/516)
|
||||
|
||||
4.0.3 / 2017-12-05
|
||||
------------------
|
||||
|
||||
- Fix wrong `chmod` values in `fs.remove()` [#501](https://github.com/jprichardson/node-fs-extra/pull/501)
|
||||
- Fix `TypeError` on systems that don't have some `fs` operations like `lchown` [#520](https://github.com/jprichardson/node-fs-extra/pull/520)
|
||||
|
||||
4.0.2 / 2017-09-12
|
||||
------------------
|
||||
|
||||
- Added `EOL` option to `writeJson*` & `outputJson*` (via upgrade to jsonfile v4)
|
||||
- Added promise support to [`fs.copyFile()`](https://nodejs.org/api/fs.html#fs_fs_copyfile_src_dest_flags_callback) in Node 8.5+
|
||||
- Added `.js` extension to `main` field in `package.json` for better tooling compatibility. [#485](https://github.com/jprichardson/node-fs-extra/pull/485)
|
||||
|
||||
4.0.1 / 2017-07-31
|
||||
------------------
|
||||
|
||||
### Fixed
|
||||
|
||||
- Previously, `ensureFile()` & `ensureFileSync()` would do nothing if the path was a directory. Now, they error out for consistency with `ensureDir()`. [#465](https://github.com/jprichardson/node-fs-extra/issues/465), [#466](https://github.com/jprichardson/node-fs-extra/pull/466), [#470](https://github.com/jprichardson/node-fs-extra/issues/470)
|
||||
|
||||
4.0.0 / 2017-07-14
|
||||
------------------
|
||||
|
||||
### Changed
|
||||
|
||||
- **BREAKING:** The promisified versions of `fs.read()` & `fs.write()` now return objects. See [the docs](docs/fs-read-write.md) for details. [#436](https://github.com/jprichardson/node-fs-extra/issues/436), [#449](https://github.com/jprichardson/node-fs-extra/pull/449)
|
||||
- `fs.move()` now errors out when destination is a subdirectory of source. [#458](https://github.com/jprichardson/node-fs-extra/pull/458)
|
||||
- Applied upstream fixes from `rimraf` to `fs.remove()` & `fs.removeSync()`. [#459](https://github.com/jprichardson/node-fs-extra/pull/459)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Got `fs.outputJSONSync()` working again; it was broken due to refactoring. [#428](https://github.com/jprichardson/node-fs-extra/pull/428)
|
||||
|
||||
Also clarified the docs in a few places.
|
||||
|
||||
3.0.1 / 2017-05-04
|
||||
------------------
|
||||
|
||||
- Fix bug in `move()` & `moveSync()` when source and destination are the same, and source does not exist. [#415](https://github.com/jprichardson/node-fs-extra/pull/415)
|
||||
|
||||
3.0.0 / 2017-04-27
|
||||
------------------
|
||||
|
||||
### Added
|
||||
|
||||
- **BREAKING:** Added Promise support. All asynchronous native fs methods and fs-extra methods now return a promise if the callback is not passed. [#403](https://github.com/jprichardson/node-fs-extra/pull/403)
|
||||
- `pathExists()`, a replacement for the deprecated `fs.exists`. `pathExists` has a normal error-first callback signature. Also added `pathExistsSync`, an alias to `fs.existsSync`, for completeness. [#406](https://github.com/jprichardson/node-fs-extra/pull/406)
|
||||
|
||||
### Removed
|
||||
|
||||
- **BREAKING:** Removed support for setting the default spaces for `writeJson()`, `writeJsonSync()`, `outputJson()`, & `outputJsonSync()`. This was undocumented. [#402](https://github.com/jprichardson/node-fs-extra/pull/402)
|
||||
|
||||
### Changed
|
||||
|
||||
- Upgraded jsonfile dependency to v3.0.0:
|
||||
- **BREAKING:** Changed behavior of `throws` option for `readJsonSync()`; now does not throw filesystem errors when `throws` is `false`.
|
||||
- **BREAKING:** `writeJson()`, `writeJsonSync()`, `outputJson()`, & `outputJsonSync()` now output minified JSON by default for consistency with `JSON.stringify()`; set the `spaces` option to `2` to override this new behavior. [#402](https://github.com/jprichardson/node-fs-extra/pull/402)
|
||||
- Use `Buffer.allocUnsafe()` instead of `new Buffer()` in environments that support it. [#394](https://github.com/jprichardson/node-fs-extra/pull/394)
|
||||
|
||||
### Fixed
|
||||
|
||||
- `removeSync()` silently failed on Windows in some cases. Now throws an `EBUSY` error. [#408](https://github.com/jprichardson/node-fs-extra/pull/408)
|
||||
|
||||
2.1.2 / 2017-03-16
|
||||
------------------
|
||||
|
||||
### Fixed
|
||||
|
||||
- Weird windows bug that resulted in `ensureDir()`'s callback being called twice in some cases. This bug may have also affected `remove()`. See [#392](https://github.com/jprichardson/node-fs-extra/issues/392), [#393](https://github.com/jprichardson/node-fs-extra/pull/393)
|
||||
|
||||
2.1.1 / 2017-03-15
|
||||
------------------
|
||||
|
||||
### Fixed
|
||||
|
||||
- Reverted [`5597bd`](https://github.com/jprichardson/node-fs-extra/commit/5597bd5b67f7d060f5f5bf26e9635be48330f5d7), this broke compatibility with Node.js versions v4+ but less than `v4.5.0`.
|
||||
- Remove `Buffer.alloc()` usage in `moveSync()`.
|
||||
|
||||
2.1.0 / 2017-03-15
|
||||
------------------
|
||||
|
||||
Thanks to [Mani Maghsoudlou (@manidlou)](https://github.com/manidlou) & [Jan Peer Stöcklmair (@JPeer264)](https://github.com/JPeer264) for their extraordinary help with this release!
|
||||
|
||||
### Added
|
||||
- `moveSync()` See [#309], [#381](https://github.com/jprichardson/node-fs-extra/pull/381). ([@manidlou](https://github.com/manidlou))
|
||||
- `copy()` and `copySync()`'s `filter` option now gets the destination path passed as the second parameter. [#366](https://github.com/jprichardson/node-fs-extra/pull/366) ([@manidlou](https://github.com/manidlou))
|
||||
|
||||
### Changed
|
||||
- Use `Buffer.alloc()` instead of deprecated `new Buffer()` in `copySync()`. [#380](https://github.com/jprichardson/node-fs-extra/pull/380) ([@manidlou](https://github.com/manidlou))
|
||||
- Refactored entire codebase to use ES6 features supported by Node.js v4+ [#355](https://github.com/jprichardson/node-fs-extra/issues/355). [(@JPeer264)](https://github.com/JPeer264)
|
||||
- Refactored docs. ([@manidlou](https://github.com/manidlou))
|
||||
|
||||
### Fixed
|
||||
|
||||
- `move()` shouldn't error out when source and dest are the same. [#377](https://github.com/jprichardson/node-fs-extra/issues/377), [#378](https://github.com/jprichardson/node-fs-extra/pull/378) ([@jdalton](https://github.com/jdalton))
|
||||
|
||||
2.0.0 / 2017-01-16
|
||||
------------------
|
||||
|
||||
### Removed
|
||||
- **BREAKING:** Removed support for Node `v0.12`. The Node foundation stopped officially supporting it
|
||||
on Jan 1st, 2017.
|
||||
- **BREAKING:** Remove `walk()` and `walkSync()`. `walkSync()` was only part of `fs-extra` for a little
|
||||
over two months. Use [klaw](https://github.com/jprichardson/node-klaw) instead of `walk()`, in fact, `walk()` was just
|
||||
an alias to klaw. For `walkSync()` use [klaw-sync](https://github.com/mawni/node-klaw-sync). See: [#338], [#339]
|
||||
|
||||
### Changed
|
||||
- **BREAKING:** Renamed `clobber` to `overwrite`. This affects `copy()`, `copySync()`, and `move()`. [#330], [#333]
|
||||
- Moved docs, to `docs/`. [#340]
|
||||
|
||||
### Fixed
|
||||
- Apply filters to directories in `copySync()` like in `copy()`. [#324]
|
||||
- A specific condition when disk is under heavy use, `copy()` can fail. [#326]
|
||||
|
||||
|
||||
1.0.0 / 2016-11-01
|
||||
------------------
|
||||
|
||||
After five years of development, we finally have reach the 1.0.0 milestone! Big thanks goes
|
||||
to [Ryan Zim](https://github.com/RyanZim) for leading the charge on this release!
|
||||
|
||||
### Added
|
||||
- `walkSync()`
|
||||
|
||||
### Changed
|
||||
- **BREAKING**: dropped Node v0.10 support.
|
||||
- disabled `rimaf` globbing, wasn't used. [#280]
|
||||
- deprecate `copy()/copySync()` option `filter` if it's a `RegExp`. `filter` should now be a function.
|
||||
- inline `rimraf`. This is temporary and was done because `rimraf` depended upon the beefy `glob` which `fs-extra` does not use. [#300]
|
||||
|
||||
### Fixed
|
||||
- bug fix proper closing of file handle on `utimesMillis()` [#271]
|
||||
- proper escaping of files with dollar signs [#291]
|
||||
- `copySync()` failed if user didn't own file. [#199], [#301]
|
||||
|
||||
|
||||
0.30.0 / 2016-04-28
|
||||
-------------------
|
||||
- Brought back Node v0.10 support. I didn't realize there was still demand. Official support will end **2016-10-01**.
|
||||
|
||||
0.29.0 / 2016-04-27
|
||||
-------------------
|
||||
- **BREAKING**: removed support for Node v0.10. If you still want to use Node v0.10, everything should work except for `ensureLink()/ensureSymlink()`. Node v0.12 is still supported but will be dropped in the near future as well.
|
||||
|
||||
0.28.0 / 2016-04-17
|
||||
-------------------
|
||||
- **BREAKING**: removed `createOutputStream()`. Use https://www.npmjs.com/package/create-output-stream. See: [#192][#192]
|
||||
- `mkdirs()/mkdirsSync()` check for invalid win32 path chars. See: [#209][#209], [#237][#237]
|
||||
- `mkdirs()/mkdirsSync()` if drive not mounted, error. See: [#93][#93]
|
||||
|
||||
0.27.0 / 2016-04-15
|
||||
-------------------
|
||||
- add `dereference` option to `copySync()`. [#235][#235]
|
||||
|
||||
0.26.7 / 2016-03-16
|
||||
-------------------
|
||||
- fixed `copy()` if source and dest are the same. [#230][#230]
|
||||
|
||||
0.26.6 / 2016-03-15
|
||||
-------------------
|
||||
- fixed if `emptyDir()` does not have a callback: [#229][#229]
|
||||
|
||||
0.26.5 / 2016-01-27
|
||||
-------------------
|
||||
- `copy()` with two arguments (w/o callback) was broken. See: [#215][#215]
|
||||
|
||||
0.26.4 / 2016-01-05
|
||||
-------------------
|
||||
- `copySync()` made `preserveTimestamps` default consistent with `copy()` which is `false`. See: [#208][#208]
|
||||
|
||||
0.26.3 / 2015-12-17
|
||||
-------------------
|
||||
- fixed `copy()` hangup in copying blockDevice / characterDevice / `/dev/null`. See: [#193][#193]
|
||||
|
||||
0.26.2 / 2015-11-02
|
||||
-------------------
|
||||
- fixed `outputJson{Sync}()` spacing adherence to `fs.spaces`
|
||||
|
||||
0.26.1 / 2015-11-02
|
||||
-------------------
|
||||
- fixed `copySync()` when `clogger=true` and the destination is read only. See: [#190][#190]
|
||||
|
||||
0.26.0 / 2015-10-25
|
||||
-------------------
|
||||
- extracted the `walk()` function into its own module [`klaw`](https://github.com/jprichardson/node-klaw).
|
||||
|
||||
0.25.0 / 2015-10-24
|
||||
-------------------
|
||||
- now has a file walker `walk()`
|
||||
|
||||
0.24.0 / 2015-08-28
|
||||
-------------------
|
||||
- removed alias `delete()` and `deleteSync()`. See: [#171][#171]
|
||||
|
||||
0.23.1 / 2015-08-07
|
||||
-------------------
|
||||
- Better handling of errors for `move()` when moving across devices. [#170][#170]
|
||||
- `ensureSymlink()` and `ensureLink()` should not throw errors if link exists. [#169][#169]
|
||||
|
||||
0.23.0 / 2015-08-06
|
||||
-------------------
|
||||
- added `ensureLink{Sync}()` and `ensureSymlink{Sync}()`. See: [#165][#165]
|
||||
|
||||
0.22.1 / 2015-07-09
|
||||
-------------------
|
||||
- Prevent calling `hasMillisResSync()` on module load. See: [#149][#149].
|
||||
Fixes regression that was introduced in `0.21.0`.
|
||||
|
||||
0.22.0 / 2015-07-09
|
||||
-------------------
|
||||
- preserve permissions / ownership in `copy()`. See: [#54][#54]
|
||||
|
||||
0.21.0 / 2015-07-04
|
||||
-------------------
|
||||
- add option to preserve timestamps in `copy()` and `copySync()`. See: [#141][#141]
|
||||
- updated `graceful-fs@3.x` to `4.x`. This brings in features from `amazing-graceful-fs` (much cleaner code / less hacks)
|
||||
|
||||
0.20.1 / 2015-06-23
|
||||
-------------------
|
||||
- fixed regression caused by latest jsonfile update: See: https://github.com/jprichardson/node-jsonfile/issues/26
|
||||
|
||||
0.20.0 / 2015-06-19
|
||||
-------------------
|
||||
- removed `jsonfile` aliases with `File` in the name, they weren't documented and probably weren't in use e.g.
|
||||
this package had both `fs.readJsonFile` and `fs.readJson` that were aliases to each other, now use `fs.readJson`.
|
||||
- preliminary walker created. Intentionally not documented. If you use it, it will almost certainly change and break your code.
|
||||
- started moving tests inline
|
||||
- upgraded to `jsonfile@2.1.0`, can now pass JSON revivers/replacers to `readJson()`, `writeJson()`, `outputJson()`
|
||||
|
||||
0.19.0 / 2015-06-08
|
||||
-------------------
|
||||
- `fs.copy()` had support for Node v0.8, dropped support
|
||||
|
||||
0.18.4 / 2015-05-22
|
||||
-------------------
|
||||
- fixed license field according to this: [#136][#136] and https://github.com/npm/npm/releases/tag/v2.10.0
|
||||
|
||||
0.18.3 / 2015-05-08
|
||||
-------------------
|
||||
- bugfix: handle `EEXIST` when clobbering on some Linux systems. [#134][#134]
|
||||
|
||||
0.18.2 / 2015-04-17
|
||||
-------------------
|
||||
- bugfix: allow `F_OK` ([#120][#120])
|
||||
|
||||
0.18.1 / 2015-04-15
|
||||
-------------------
|
||||
- improved windows support for `move()` a bit. https://github.com/jprichardson/node-fs-extra/commit/92838980f25dc2ee4ec46b43ee14d3c4a1d30c1b
|
||||
- fixed a lot of tests for Windows (appveyor)
|
||||
|
||||
0.18.0 / 2015-03-31
|
||||
-------------------
|
||||
- added `emptyDir()` and `emptyDirSync()`
|
||||
|
||||
0.17.0 / 2015-03-28
|
||||
-------------------
|
||||
- `copySync` added `clobber` option (before always would clobber, now if `clobber` is `false` it throws an error if the destination exists).
|
||||
**Only works with files at the moment.**
|
||||
- `createOutputStream()` added. See: [#118][#118]
|
||||
|
||||
0.16.5 / 2015-03-08
|
||||
-------------------
|
||||
- fixed `fs.move` when `clobber` is `true` and destination is a directory, it should clobber. [#114][#114]
|
||||
|
||||
0.16.4 / 2015-03-01
|
||||
-------------------
|
||||
- `fs.mkdirs` fix infinite loop on Windows. See: See https://github.com/substack/node-mkdirp/pull/74 and https://github.com/substack/node-mkdirp/issues/66
|
||||
|
||||
0.16.3 / 2015-01-28
|
||||
-------------------
|
||||
- reverted https://github.com/jprichardson/node-fs-extra/commit/1ee77c8a805eba5b99382a2591ff99667847c9c9
|
||||
|
||||
|
||||
0.16.2 / 2015-01-28
|
||||
-------------------
|
||||
- fixed `fs.copy` for Node v0.8 (support is temporary and will be removed in the near future)
|
||||
|
||||
0.16.1 / 2015-01-28
|
||||
-------------------
|
||||
- if `setImmediate` is not available, fall back to `process.nextTick`
|
||||
|
||||
0.16.0 / 2015-01-28
|
||||
-------------------
|
||||
- bugfix `fs.move()` into itself. Closes [#104]
|
||||
- bugfix `fs.move()` moving directory across device. Closes [#108]
|
||||
- added coveralls support
|
||||
- bugfix: nasty multiple callback `fs.copy()` bug. Closes [#98]
|
||||
- misc fs.copy code cleanups
|
||||
|
||||
0.15.0 / 2015-01-21
|
||||
-------------------
|
||||
- dropped `ncp`, imported code in
|
||||
- because of previous, now supports `io.js`
|
||||
- `graceful-fs` is now a dependency
|
||||
|
||||
0.14.0 / 2015-01-05
|
||||
-------------------
|
||||
- changed `copy`/`copySync` from `fs.copy(src, dest, [filters], callback)` to `fs.copy(src, dest, [options], callback)` [#100][#100]
|
||||
- removed mockfs tests for mkdirp (this may be temporary, but was getting in the way of other tests)
|
||||
|
||||
0.13.0 / 2014-12-10
|
||||
-------------------
|
||||
- removed `touch` and `touchSync` methods (they didn't handle permissions like UNIX touch)
|
||||
- updated `"ncp": "^0.6.0"` to `"ncp": "^1.0.1"`
|
||||
- imported `mkdirp` => `minimist` and `mkdirp` are no longer dependences, should now appease people who wanted `mkdirp` to be `--use_strict` safe. See [#59]([#59][#59])
|
||||
|
||||
0.12.0 / 2014-09-22
|
||||
-------------------
|
||||
- copy symlinks in `copySync()` [#85][#85]
|
||||
|
||||
0.11.1 / 2014-09-02
|
||||
-------------------
|
||||
- bugfix `copySync()` preserve file permissions [#80][#80]
|
||||
|
||||
0.11.0 / 2014-08-11
|
||||
-------------------
|
||||
- upgraded `"ncp": "^0.5.1"` to `"ncp": "^0.6.0"`
|
||||
- upgrade `jsonfile": "^1.2.0"` to `jsonfile": "^2.0.0"` => on write, json files now have `\n` at end. Also adds `options.throws` to `readJsonSync()`
|
||||
see https://github.com/jprichardson/node-jsonfile#readfilesyncfilename-options for more details.
|
||||
|
||||
0.10.0 / 2014-06-29
|
||||
------------------
|
||||
* bugfix: upgaded `"jsonfile": "~1.1.0"` to `"jsonfile": "^1.2.0"`, bumped minor because of `jsonfile` dep change
|
||||
from `~` to `^`. [#67]
|
||||
|
||||
0.9.1 / 2014-05-22
|
||||
------------------
|
||||
* removed Node.js `0.8.x` support, `0.9.0` was published moments ago and should have been done there
|
||||
|
||||
0.9.0 / 2014-05-22
|
||||
------------------
|
||||
* upgraded `ncp` from `~0.4.2` to `^0.5.1`, [#58]
|
||||
* upgraded `rimraf` from `~2.2.6` to `^2.2.8`
|
||||
* upgraded `mkdirp` from `0.3.x` to `^0.5.0`
|
||||
* added methods `ensureFile()`, `ensureFileSync()`
|
||||
* added methods `ensureDir()`, `ensureDirSync()` [#31]
|
||||
* added `move()` method. From: https://github.com/andrewrk/node-mv
|
||||
|
||||
|
||||
0.8.1 / 2013-10-24
|
||||
------------------
|
||||
* copy failed to return an error to the callback if a file doesn't exist (ulikoehler [#38], [#39])
|
||||
|
||||
0.8.0 / 2013-10-14
|
||||
------------------
|
||||
* `filter` implemented on `copy()` and `copySync()`. (Srirangan / [#36])
|
||||
|
||||
0.7.1 / 2013-10-12
|
||||
------------------
|
||||
* `copySync()` implemented (Srirangan / [#33])
|
||||
* updated to the latest `jsonfile` version `1.1.0` which gives `options` params for the JSON methods. Closes [#32]
|
||||
|
||||
0.7.0 / 2013-10-07
|
||||
------------------
|
||||
* update readme conventions
|
||||
* `copy()` now works if destination directory does not exist. Closes [#29]
|
||||
|
||||
0.6.4 / 2013-09-05
|
||||
------------------
|
||||
* changed `homepage` field in package.json to remove NPM warning
|
||||
|
||||
0.6.3 / 2013-06-28
|
||||
------------------
|
||||
* changed JSON spacing default from `4` to `2` to follow Node conventions
|
||||
* updated `jsonfile` dep
|
||||
* updated `rimraf` dep
|
||||
|
||||
0.6.2 / 2013-06-28
|
||||
------------------
|
||||
* added .npmignore, [#25]
|
||||
|
||||
0.6.1 / 2013-05-14
|
||||
------------------
|
||||
* modified for `strict` mode, closes [#24]
|
||||
* added `outputJson()/outputJsonSync()`, closes [#23]
|
||||
|
||||
0.6.0 / 2013-03-18
|
||||
------------------
|
||||
* removed node 0.6 support
|
||||
* added node 0.10 support
|
||||
* upgraded to latest `ncp` and `rimraf`.
|
||||
* optional `graceful-fs` support. Closes [#17]
|
||||
|
||||
|
||||
0.5.0 / 2013-02-03
|
||||
------------------
|
||||
* Removed `readTextFile`.
|
||||
* Renamed `readJSONFile` to `readJSON` and `readJson`, same with write.
|
||||
* Restructured documentation a bit. Added roadmap.
|
||||
|
||||
0.4.0 / 2013-01-28
|
||||
------------------
|
||||
* Set default spaces in `jsonfile` from 4 to 2.
|
||||
* Updated `testutil` deps for tests.
|
||||
* Renamed `touch()` to `createFile()`
|
||||
* Added `outputFile()` and `outputFileSync()`
|
||||
* Changed creation of testing diretories so the /tmp dir is not littered.
|
||||
* Added `readTextFile()` and `readTextFileSync()`.
|
||||
|
||||
0.3.2 / 2012-11-01
|
||||
------------------
|
||||
* Added `touch()` and `touchSync()` methods.
|
||||
|
||||
0.3.1 / 2012-10-11
|
||||
------------------
|
||||
* Fixed some stray globals.
|
||||
|
||||
0.3.0 / 2012-10-09
|
||||
------------------
|
||||
* Removed all CoffeeScript from tests.
|
||||
* Renamed `mkdir` to `mkdirs`/`mkdirp`.
|
||||
|
||||
0.2.1 / 2012-09-11
|
||||
------------------
|
||||
* Updated `rimraf` dep.
|
||||
|
||||
0.2.0 / 2012-09-10
|
||||
------------------
|
||||
* Rewrote module into JavaScript. (Must still rewrite tests into JavaScript)
|
||||
* Added all methods of [jsonfile](https://github.com/jprichardson/node-jsonfile)
|
||||
* Added Travis-CI.
|
||||
|
||||
0.1.3 / 2012-08-13
|
||||
------------------
|
||||
* Added method `readJSONFile`.
|
||||
|
||||
0.1.2 / 2012-06-15
|
||||
------------------
|
||||
* Bug fix: `deleteSync()` didn't exist.
|
||||
* Verified Node v0.8 compatibility.
|
||||
|
||||
0.1.1 / 2012-06-15
|
||||
------------------
|
||||
* Fixed bug in `remove()`/`delete()` that wouldn't execute the function if a callback wasn't passed.
|
||||
|
||||
0.1.0 / 2012-05-31
|
||||
------------------
|
||||
* Renamed `copyFile()` to `copy()`. `copy()` can now copy directories (recursively) too.
|
||||
* Renamed `rmrf()` to `remove()`.
|
||||
* `remove()` aliased with `delete()`.
|
||||
* Added `mkdirp` capabilities. Named: `mkdir()`. Hides Node.js native `mkdir()`.
|
||||
* Instead of exporting the native `fs` module with new functions, I now copy over the native methods to a new object and export that instead.
|
||||
|
||||
0.0.4 / 2012-03-14
|
||||
------------------
|
||||
* Removed CoffeeScript dependency
|
||||
|
||||
0.0.3 / 2012-01-11
|
||||
------------------
|
||||
* Added methods rmrf and rmrfSync
|
||||
* Moved tests from Jasmine to Mocha
|
||||
|
||||
|
||||
[#344]: https://github.com/jprichardson/node-fs-extra/issues/344 "Licence Year"
|
||||
[#343]: https://github.com/jprichardson/node-fs-extra/pull/343 "Add klaw-sync link to readme"
|
||||
[#342]: https://github.com/jprichardson/node-fs-extra/pull/342 "allow preserveTimestamps when use move"
|
||||
[#341]: https://github.com/jprichardson/node-fs-extra/issues/341 "mkdirp(path.dirname(dest) in move() logic needs cleaning up [question]"
|
||||
[#340]: https://github.com/jprichardson/node-fs-extra/pull/340 "Move docs to seperate docs folder [documentation]"
|
||||
[#339]: https://github.com/jprichardson/node-fs-extra/pull/339 "Remove walk() & walkSync() [feature-walk]"
|
||||
[#338]: https://github.com/jprichardson/node-fs-extra/issues/338 "Remove walk() and walkSync() [feature-walk]"
|
||||
[#337]: https://github.com/jprichardson/node-fs-extra/issues/337 "copy doesn't return a yieldable value"
|
||||
[#336]: https://github.com/jprichardson/node-fs-extra/pull/336 "Docs enhanced walk sync [documentation, feature-walk]"
|
||||
[#335]: https://github.com/jprichardson/node-fs-extra/pull/335 "Refactor move() tests [feature-move]"
|
||||
[#334]: https://github.com/jprichardson/node-fs-extra/pull/334 "Cleanup lib/move/index.js [feature-move]"
|
||||
[#333]: https://github.com/jprichardson/node-fs-extra/pull/333 "Rename clobber to overwrite [feature-copy, feature-move]"
|
||||
[#332]: https://github.com/jprichardson/node-fs-extra/pull/332 "BREAKING: Drop Node v0.12 & io.js support"
|
||||
[#331]: https://github.com/jprichardson/node-fs-extra/issues/331 "Add support for chmodr [enhancement, future]"
|
||||
[#330]: https://github.com/jprichardson/node-fs-extra/pull/330 "BREAKING: Do not error when copy destination exists & clobber: false [feature-copy]"
|
||||
[#329]: https://github.com/jprichardson/node-fs-extra/issues/329 "Does .walk() scale to large directories? [question]"
|
||||
[#328]: https://github.com/jprichardson/node-fs-extra/issues/328 "Copying files corrupts [feature-copy, needs-confirmed]"
|
||||
[#327]: https://github.com/jprichardson/node-fs-extra/pull/327 "Use writeStream 'finish' event instead of 'close' [bug, feature-copy]"
|
||||
[#326]: https://github.com/jprichardson/node-fs-extra/issues/326 "fs.copy fails with chmod error when disk under heavy use [bug, feature-copy]"
|
||||
[#325]: https://github.com/jprichardson/node-fs-extra/issues/325 "ensureDir is difficult to promisify [enhancement]"
|
||||
[#324]: https://github.com/jprichardson/node-fs-extra/pull/324 "copySync() should apply filter to directories like copy() [bug, feature-copy]"
|
||||
[#323]: https://github.com/jprichardson/node-fs-extra/issues/323 "Support for `dest` being a directory when using `copy*()`?"
|
||||
[#322]: https://github.com/jprichardson/node-fs-extra/pull/322 "Add fs-promise as fs-extra-promise alternative"
|
||||
[#321]: https://github.com/jprichardson/node-fs-extra/issues/321 "fs.copy() with clobber set to false return EEXIST error [feature-copy]"
|
||||
[#320]: https://github.com/jprichardson/node-fs-extra/issues/320 "fs.copySync: Error: EPERM: operation not permitted, unlink "
|
||||
[#319]: https://github.com/jprichardson/node-fs-extra/issues/319 "Create directory if not exists"
|
||||
[#318]: https://github.com/jprichardson/node-fs-extra/issues/318 "Support glob patterns [enhancement, future]"
|
||||
[#317]: https://github.com/jprichardson/node-fs-extra/pull/317 "Adding copy sync test for src file without write perms"
|
||||
[#316]: https://github.com/jprichardson/node-fs-extra/pull/316 "Remove move()'s broken limit option [feature-move]"
|
||||
[#315]: https://github.com/jprichardson/node-fs-extra/pull/315 "Fix move clobber tests to work around graceful-fs bug."
|
||||
[#314]: https://github.com/jprichardson/node-fs-extra/issues/314 "move() limit option [documentation, enhancement, feature-move]"
|
||||
[#313]: https://github.com/jprichardson/node-fs-extra/pull/313 "Test that remove() ignores glob characters."
|
||||
[#312]: https://github.com/jprichardson/node-fs-extra/pull/312 "Enhance walkSync() to return items with path and stats [feature-walk]"
|
||||
[#311]: https://github.com/jprichardson/node-fs-extra/issues/311 "move() not work when dest name not provided [feature-move]"
|
||||
[#310]: https://github.com/jprichardson/node-fs-extra/issues/310 "Edit walkSync to return items like what walk emits [documentation, enhancement, feature-walk]"
|
||||
[#309]: https://github.com/jprichardson/node-fs-extra/issues/309 "moveSync support [enhancement, feature-move]"
|
||||
[#308]: https://github.com/jprichardson/node-fs-extra/pull/308 "Fix incorrect anchor link"
|
||||
[#307]: https://github.com/jprichardson/node-fs-extra/pull/307 "Fix coverage"
|
||||
[#306]: https://github.com/jprichardson/node-fs-extra/pull/306 "Update devDeps, fix lint error"
|
||||
[#305]: https://github.com/jprichardson/node-fs-extra/pull/305 "Re-add Coveralls"
|
||||
[#304]: https://github.com/jprichardson/node-fs-extra/pull/304 "Remove path-is-absolute [enhancement]"
|
||||
[#303]: https://github.com/jprichardson/node-fs-extra/pull/303 "Document copySync filter inconsistency [documentation, feature-copy]"
|
||||
[#302]: https://github.com/jprichardson/node-fs-extra/pull/302 "fix(console): depreciated -> deprecated"
|
||||
[#301]: https://github.com/jprichardson/node-fs-extra/pull/301 "Remove chmod call from copySync [feature-copy]"
|
||||
[#300]: https://github.com/jprichardson/node-fs-extra/pull/300 "Inline Rimraf [enhancement, feature-move, feature-remove]"
|
||||
[#299]: https://github.com/jprichardson/node-fs-extra/pull/299 "Warn when filter is a RegExp [feature-copy]"
|
||||
[#298]: https://github.com/jprichardson/node-fs-extra/issues/298 "API Docs [documentation]"
|
||||
[#297]: https://github.com/jprichardson/node-fs-extra/pull/297 "Warn about using preserveTimestamps on 32-bit node"
|
||||
[#296]: https://github.com/jprichardson/node-fs-extra/pull/296 "Improve EEXIST error message for copySync [enhancement]"
|
||||
[#295]: https://github.com/jprichardson/node-fs-extra/pull/295 "Depreciate using regular expressions for copy's filter option [documentation]"
|
||||
[#294]: https://github.com/jprichardson/node-fs-extra/pull/294 "BREAKING: Refactor lib/copy/ncp.js [feature-copy]"
|
||||
[#293]: https://github.com/jprichardson/node-fs-extra/pull/293 "Update CI configs"
|
||||
[#292]: https://github.com/jprichardson/node-fs-extra/issues/292 "Rewrite lib/copy/ncp.js [enhancement, feature-copy]"
|
||||
[#291]: https://github.com/jprichardson/node-fs-extra/pull/291 "Escape '$' in replacement string for async file copying"
|
||||
[#290]: https://github.com/jprichardson/node-fs-extra/issues/290 "Exclude files pattern while copying using copy.config.js [question]"
|
||||
[#289]: https://github.com/jprichardson/node-fs-extra/pull/289 "(Closes #271) lib/util/utimes: properly close file descriptors in the event of an error"
|
||||
[#288]: https://github.com/jprichardson/node-fs-extra/pull/288 "(Closes #271) lib/util/utimes: properly close file descriptors in the event of an error"
|
||||
[#287]: https://github.com/jprichardson/node-fs-extra/issues/287 "emptyDir() callback arguments are inconsistent [enhancement, feature-remove]"
|
||||
[#286]: https://github.com/jprichardson/node-fs-extra/pull/286 "Added walkSync function"
|
||||
[#285]: https://github.com/jprichardson/node-fs-extra/issues/285 "CITGM test failing on s390"
|
||||
[#284]: https://github.com/jprichardson/node-fs-extra/issues/284 "outputFile method is missing a check to determine if existing item is a folder or not"
|
||||
[#283]: https://github.com/jprichardson/node-fs-extra/pull/283 "Apply filter also on directories and symlinks for copySync()"
|
||||
[#282]: https://github.com/jprichardson/node-fs-extra/pull/282 "Apply filter also on directories and symlinks for copySync()"
|
||||
[#281]: https://github.com/jprichardson/node-fs-extra/issues/281 "remove function executes 'successfully' but doesn't do anything?"
|
||||
[#280]: https://github.com/jprichardson/node-fs-extra/pull/280 "Disable rimraf globbing"
|
||||
[#279]: https://github.com/jprichardson/node-fs-extra/issues/279 "Some code is vendored instead of included [awaiting-reply]"
|
||||
[#278]: https://github.com/jprichardson/node-fs-extra/issues/278 "copy() does not preserve file/directory ownership"
|
||||
[#277]: https://github.com/jprichardson/node-fs-extra/pull/277 "Mention defaults for clobber and dereference options"
|
||||
[#276]: https://github.com/jprichardson/node-fs-extra/issues/276 "Cannot connect to Shared Folder [awaiting-reply]"
|
||||
[#275]: https://github.com/jprichardson/node-fs-extra/issues/275 "EMFILE, too many open files on Mac OS with JSON API"
|
||||
[#274]: https://github.com/jprichardson/node-fs-extra/issues/274 "Use with memory-fs? [enhancement, future]"
|
||||
[#273]: https://github.com/jprichardson/node-fs-extra/pull/273 "tests: rename `remote.test.js` to `remove.test.js`"
|
||||
[#272]: https://github.com/jprichardson/node-fs-extra/issues/272 "Copy clobber flag never err even when true [bug, feature-copy]"
|
||||
[#271]: https://github.com/jprichardson/node-fs-extra/issues/271 "Unclosed file handle on futimes error"
|
||||
[#270]: https://github.com/jprichardson/node-fs-extra/issues/270 "copy not working as desired on Windows [feature-copy, platform-windows]"
|
||||
[#269]: https://github.com/jprichardson/node-fs-extra/issues/269 "Copying with preserveTimeStamps: true is inaccurate using 32bit node [feature-copy]"
|
||||
[#268]: https://github.com/jprichardson/node-fs-extra/pull/268 "port fix for mkdirp issue #111"
|
||||
[#267]: https://github.com/jprichardson/node-fs-extra/issues/267 "WARN deprecated wrench@1.5.9: wrench.js is deprecated!"
|
||||
[#266]: https://github.com/jprichardson/node-fs-extra/issues/266 "fs-extra"
|
||||
[#265]: https://github.com/jprichardson/node-fs-extra/issues/265 "Link the `fs.stat fs.exists` etc. methods for replace the `fs` module forever?"
|
||||
[#264]: https://github.com/jprichardson/node-fs-extra/issues/264 "Renaming a file using move fails when a file inside is open (at least on windows) [wont-fix]"
|
||||
[#263]: https://github.com/jprichardson/node-fs-extra/issues/263 "ENOSYS: function not implemented, link [needs-confirmed]"
|
||||
[#262]: https://github.com/jprichardson/node-fs-extra/issues/262 "Add .exists() and .existsSync()"
|
||||
[#261]: https://github.com/jprichardson/node-fs-extra/issues/261 "Cannot read property 'prototype' of undefined"
|
||||
[#260]: https://github.com/jprichardson/node-fs-extra/pull/260 "use more specific path for method require"
|
||||
[#259]: https://github.com/jprichardson/node-fs-extra/issues/259 "Feature Request: isEmpty"
|
||||
[#258]: https://github.com/jprichardson/node-fs-extra/issues/258 "copy files does not preserve file timestamp"
|
||||
[#257]: https://github.com/jprichardson/node-fs-extra/issues/257 "Copying a file on windows fails"
|
||||
[#256]: https://github.com/jprichardson/node-fs-extra/pull/256 "Updated Readme "
|
||||
[#255]: https://github.com/jprichardson/node-fs-extra/issues/255 "Update rimraf required version"
|
||||
[#254]: https://github.com/jprichardson/node-fs-extra/issues/254 "request for readTree, readTreeSync, walkSync method"
|
||||
[#253]: https://github.com/jprichardson/node-fs-extra/issues/253 "outputFile does not touch mtime when file exists"
|
||||
[#252]: https://github.com/jprichardson/node-fs-extra/pull/252 "Fixing problem when copying file with no write permission"
|
||||
[#251]: https://github.com/jprichardson/node-fs-extra/issues/251 "Just wanted to say thank you"
|
||||
[#250]: https://github.com/jprichardson/node-fs-extra/issues/250 "`fs.remove()` not removing files (works with `rm -rf`)"
|
||||
[#249]: https://github.com/jprichardson/node-fs-extra/issues/249 "Just a Question ... Remove Servers"
|
||||
[#248]: https://github.com/jprichardson/node-fs-extra/issues/248 "Allow option to not preserve permissions for copy"
|
||||
[#247]: https://github.com/jprichardson/node-fs-extra/issues/247 "Add TypeScript typing directly in the fs-extra package"
|
||||
[#246]: https://github.com/jprichardson/node-fs-extra/issues/246 "fse.remove() && fse.removeSync() don't throw error on ENOENT file"
|
||||
[#245]: https://github.com/jprichardson/node-fs-extra/issues/245 "filter for empty dir [enhancement]"
|
||||
[#244]: https://github.com/jprichardson/node-fs-extra/issues/244 "copySync doesn't apply the filter to directories"
|
||||
[#243]: https://github.com/jprichardson/node-fs-extra/issues/243 "Can I request fs.walk() to be synchronous?"
|
||||
[#242]: https://github.com/jprichardson/node-fs-extra/issues/242 "Accidentally truncates file names ending with $$ [bug, feature-copy]"
|
||||
[#241]: https://github.com/jprichardson/node-fs-extra/pull/241 "Remove link to createOutputStream"
|
||||
[#240]: https://github.com/jprichardson/node-fs-extra/issues/240 "walkSync request"
|
||||
[#239]: https://github.com/jprichardson/node-fs-extra/issues/239 "Depreciate regular expressions for copy's filter [documentation, feature-copy]"
|
||||
[#238]: https://github.com/jprichardson/node-fs-extra/issues/238 "Can't write to files while in a worker thread."
|
||||
[#237]: https://github.com/jprichardson/node-fs-extra/issues/237 ".ensureDir(..) fails silently when passed an invalid path..."
|
||||
[#236]: https://github.com/jprichardson/node-fs-extra/issues/236 "[Removed] Filed under wrong repo"
|
||||
[#235]: https://github.com/jprichardson/node-fs-extra/pull/235 "Adds symlink dereference option to `fse.copySync` (#191)"
|
||||
[#234]: https://github.com/jprichardson/node-fs-extra/issues/234 "ensureDirSync fails silent when EACCES: permission denied on travis-ci"
|
||||
[#233]: https://github.com/jprichardson/node-fs-extra/issues/233 "please make sure the first argument in callback is error object [feature-copy]"
|
||||
[#232]: https://github.com/jprichardson/node-fs-extra/issues/232 "Copy a folder content to its child folder. "
|
||||
[#231]: https://github.com/jprichardson/node-fs-extra/issues/231 "Adding read/write/output functions for YAML"
|
||||
[#230]: https://github.com/jprichardson/node-fs-extra/pull/230 "throw error if src and dest are the same to avoid zeroing out + test"
|
||||
[#229]: https://github.com/jprichardson/node-fs-extra/pull/229 "fix 'TypeError: callback is not a function' in emptyDir"
|
||||
[#228]: https://github.com/jprichardson/node-fs-extra/pull/228 "Throw error when target is empty so file is not accidentally zeroed out"
|
||||
[#227]: https://github.com/jprichardson/node-fs-extra/issues/227 "Uncatchable errors when there are invalid arguments [feature-move]"
|
||||
[#226]: https://github.com/jprichardson/node-fs-extra/issues/226 "Moving to the current directory"
|
||||
[#225]: https://github.com/jprichardson/node-fs-extra/issues/225 "EBUSY: resource busy or locked, unlink"
|
||||
[#224]: https://github.com/jprichardson/node-fs-extra/issues/224 "fse.copy ENOENT error"
|
||||
[#223]: https://github.com/jprichardson/node-fs-extra/issues/223 "Suspicious behavior of fs.existsSync"
|
||||
[#222]: https://github.com/jprichardson/node-fs-extra/pull/222 "A clearer description of emtpyDir function"
|
||||
[#221]: https://github.com/jprichardson/node-fs-extra/pull/221 "Update README.md"
|
||||
[#220]: https://github.com/jprichardson/node-fs-extra/pull/220 "Non-breaking feature: add option 'passStats' to copy methods."
|
||||
[#219]: https://github.com/jprichardson/node-fs-extra/pull/219 "Add closing parenthesis in copySync example"
|
||||
[#218]: https://github.com/jprichardson/node-fs-extra/pull/218 "fix #187 #70 options.filter bug"
|
||||
[#217]: https://github.com/jprichardson/node-fs-extra/pull/217 "fix #187 #70 options.filter bug"
|
||||
[#216]: https://github.com/jprichardson/node-fs-extra/pull/216 "fix #187 #70 options.filter bug"
|
||||
[#215]: https://github.com/jprichardson/node-fs-extra/pull/215 "fse.copy throws error when only src and dest provided [bug, documentation, feature-copy]"
|
||||
[#214]: https://github.com/jprichardson/node-fs-extra/pull/214 "Fixing copySync anchor tag"
|
||||
[#213]: https://github.com/jprichardson/node-fs-extra/issues/213 "Merge extfs with this repo"
|
||||
[#212]: https://github.com/jprichardson/node-fs-extra/pull/212 "Update year to 2016 in README.md and LICENSE"
|
||||
[#211]: https://github.com/jprichardson/node-fs-extra/issues/211 "Not copying all files"
|
||||
[#210]: https://github.com/jprichardson/node-fs-extra/issues/210 "copy/copySync behave differently when copying a symbolic file [bug, documentation, feature-copy]"
|
||||
[#209]: https://github.com/jprichardson/node-fs-extra/issues/209 "In Windows invalid directory name causes infinite loop in ensureDir(). [bug]"
|
||||
[#208]: https://github.com/jprichardson/node-fs-extra/pull/208 "fix options.preserveTimestamps to false in copy-sync by default [feature-copy]"
|
||||
[#207]: https://github.com/jprichardson/node-fs-extra/issues/207 "Add `compare` suite of functions"
|
||||
[#206]: https://github.com/jprichardson/node-fs-extra/issues/206 "outputFileSync"
|
||||
[#205]: https://github.com/jprichardson/node-fs-extra/issues/205 "fix documents about copy/copySync [documentation, feature-copy]"
|
||||
[#204]: https://github.com/jprichardson/node-fs-extra/pull/204 "allow copy of block and character device files"
|
||||
[#203]: https://github.com/jprichardson/node-fs-extra/issues/203 "copy method's argument options couldn't be undefined [bug, feature-copy]"
|
||||
[#202]: https://github.com/jprichardson/node-fs-extra/issues/202 "why there is not a walkSync method?"
|
||||
[#201]: https://github.com/jprichardson/node-fs-extra/issues/201 "clobber for directories [feature-copy, future]"
|
||||
[#200]: https://github.com/jprichardson/node-fs-extra/issues/200 "'copySync' doesn't work in sync"
|
||||
[#199]: https://github.com/jprichardson/node-fs-extra/issues/199 "fs.copySync fails if user does not own file [bug, feature-copy]"
|
||||
[#198]: https://github.com/jprichardson/node-fs-extra/issues/198 "handle copying between identical files [feature-copy]"
|
||||
[#197]: https://github.com/jprichardson/node-fs-extra/issues/197 "Missing documentation for `outputFile` `options` 3rd parameter [documentation]"
|
||||
[#196]: https://github.com/jprichardson/node-fs-extra/issues/196 "copy filter: async function and/or function called with `fs.stat` result [future]"
|
||||
[#195]: https://github.com/jprichardson/node-fs-extra/issues/195 "How to override with outputFile?"
|
||||
[#194]: https://github.com/jprichardson/node-fs-extra/pull/194 "allow ensureFile(Sync) to provide data to be written to created file"
|
||||
[#193]: https://github.com/jprichardson/node-fs-extra/issues/193 "`fs.copy` fails silently if source file is /dev/null [bug, feature-copy]"
|
||||
[#192]: https://github.com/jprichardson/node-fs-extra/issues/192 "Remove fs.createOutputStream()"
|
||||
[#191]: https://github.com/jprichardson/node-fs-extra/issues/191 "How to copy symlinks to target as normal folders [feature-copy]"
|
||||
[#190]: https://github.com/jprichardson/node-fs-extra/pull/190 "copySync to overwrite destination file if readonly and clobber true"
|
||||
[#189]: https://github.com/jprichardson/node-fs-extra/pull/189 "move.test fix to support CRLF on Windows"
|
||||
[#188]: https://github.com/jprichardson/node-fs-extra/issues/188 "move.test failing on windows platform"
|
||||
[#187]: https://github.com/jprichardson/node-fs-extra/issues/187 "Not filter each file, stops on first false [feature-copy]"
|
||||
[#186]: https://github.com/jprichardson/node-fs-extra/issues/186 "Do you need a .size() function in this module? [future]"
|
||||
[#185]: https://github.com/jprichardson/node-fs-extra/issues/185 "Doesn't work on NodeJS v4.x"
|
||||
[#184]: https://github.com/jprichardson/node-fs-extra/issues/184 "CLI equivalent for fs-extra"
|
||||
[#183]: https://github.com/jprichardson/node-fs-extra/issues/183 "with clobber true, copy and copySync behave differently if destination file is read only [bug, feature-copy]"
|
||||
[#182]: https://github.com/jprichardson/node-fs-extra/issues/182 "ensureDir(dir, callback) second callback parameter not specified"
|
||||
[#181]: https://github.com/jprichardson/node-fs-extra/issues/181 "Add ability to remove file securely [enhancement, wont-fix]"
|
||||
[#180]: https://github.com/jprichardson/node-fs-extra/issues/180 "Filter option doesn't work the same way in copy and copySync [bug, feature-copy]"
|
||||
[#179]: https://github.com/jprichardson/node-fs-extra/issues/179 "Include opendir"
|
||||
[#178]: https://github.com/jprichardson/node-fs-extra/issues/178 "ENOTEMPTY is thrown on removeSync "
|
||||
[#177]: https://github.com/jprichardson/node-fs-extra/issues/177 "fix `remove()` wildcards (introduced by rimraf) [feature-remove]"
|
||||
[#176]: https://github.com/jprichardson/node-fs-extra/issues/176 "createOutputStream doesn't emit 'end' event"
|
||||
[#175]: https://github.com/jprichardson/node-fs-extra/issues/175 "[Feature Request].moveSync support [feature-move, future]"
|
||||
[#174]: https://github.com/jprichardson/node-fs-extra/pull/174 "Fix copy formatting and document options.filter"
|
||||
[#173]: https://github.com/jprichardson/node-fs-extra/issues/173 "Feature Request: writeJson should mkdirs"
|
||||
[#172]: https://github.com/jprichardson/node-fs-extra/issues/172 "rename `clobber` flags to `overwrite`"
|
||||
[#171]: https://github.com/jprichardson/node-fs-extra/issues/171 "remove unnecessary aliases"
|
||||
[#170]: https://github.com/jprichardson/node-fs-extra/pull/170 "More robust handling of errors moving across virtual drives"
|
||||
[#169]: https://github.com/jprichardson/node-fs-extra/pull/169 "suppress ensureLink & ensureSymlink dest exists error"
|
||||
[#168]: https://github.com/jprichardson/node-fs-extra/pull/168 "suppress ensurelink dest exists error"
|
||||
[#167]: https://github.com/jprichardson/node-fs-extra/pull/167 "Adds basic (string, buffer) support for ensureFile content [future]"
|
||||
[#166]: https://github.com/jprichardson/node-fs-extra/pull/166 "Adds basic (string, buffer) support for ensureFile content"
|
||||
[#165]: https://github.com/jprichardson/node-fs-extra/pull/165 "ensure for link & symlink"
|
||||
[#164]: https://github.com/jprichardson/node-fs-extra/issues/164 "Feature Request: ensureFile to take optional argument for file content"
|
||||
[#163]: https://github.com/jprichardson/node-fs-extra/issues/163 "ouputJson not formatted out of the box [bug]"
|
||||
[#162]: https://github.com/jprichardson/node-fs-extra/pull/162 "ensure symlink & link"
|
||||
[#161]: https://github.com/jprichardson/node-fs-extra/pull/161 "ensure symlink & link"
|
||||
[#160]: https://github.com/jprichardson/node-fs-extra/pull/160 "ensure symlink & link"
|
||||
[#159]: https://github.com/jprichardson/node-fs-extra/pull/159 "ensure symlink & link"
|
||||
[#158]: https://github.com/jprichardson/node-fs-extra/issues/158 "Feature Request: ensureLink and ensureSymlink methods"
|
||||
[#157]: https://github.com/jprichardson/node-fs-extra/issues/157 "writeJson isn't formatted"
|
||||
[#156]: https://github.com/jprichardson/node-fs-extra/issues/156 "Promise.promisifyAll doesn't work for some methods"
|
||||
[#155]: https://github.com/jprichardson/node-fs-extra/issues/155 "Readme"
|
||||
[#154]: https://github.com/jprichardson/node-fs-extra/issues/154 "/tmp/millis-test-sync"
|
||||
[#153]: https://github.com/jprichardson/node-fs-extra/pull/153 "Make preserveTimes also work on read-only files. Closes #152"
|
||||
[#152]: https://github.com/jprichardson/node-fs-extra/issues/152 "fs.copy fails for read-only files with preserveTimestamp=true [feature-copy]"
|
||||
[#151]: https://github.com/jprichardson/node-fs-extra/issues/151 "TOC does not work correctly on npm [documentation]"
|
||||
[#150]: https://github.com/jprichardson/node-fs-extra/issues/150 "Remove test file fixtures, create with code."
|
||||
[#149]: https://github.com/jprichardson/node-fs-extra/issues/149 "/tmp/millis-test-sync"
|
||||
[#148]: https://github.com/jprichardson/node-fs-extra/issues/148 "split out `Sync` methods in documentation"
|
||||
[#147]: https://github.com/jprichardson/node-fs-extra/issues/147 "Adding rmdirIfEmpty"
|
||||
[#146]: https://github.com/jprichardson/node-fs-extra/pull/146 "ensure test.js works"
|
||||
[#145]: https://github.com/jprichardson/node-fs-extra/issues/145 "Add `fs.exists` and `fs.existsSync` if it doesn't exist."
|
||||
[#144]: https://github.com/jprichardson/node-fs-extra/issues/144 "tests failing"
|
||||
[#143]: https://github.com/jprichardson/node-fs-extra/issues/143 "update graceful-fs"
|
||||
[#142]: https://github.com/jprichardson/node-fs-extra/issues/142 "PrependFile Feature"
|
||||
[#141]: https://github.com/jprichardson/node-fs-extra/pull/141 "Add option to preserve timestamps"
|
||||
[#140]: https://github.com/jprichardson/node-fs-extra/issues/140 "Json file reading fails with 'utf8'"
|
||||
[#139]: https://github.com/jprichardson/node-fs-extra/pull/139 "Preserve file timestamp on copy. Closes #138"
|
||||
[#138]: https://github.com/jprichardson/node-fs-extra/issues/138 "Preserve timestamps on copying files"
|
||||
[#137]: https://github.com/jprichardson/node-fs-extra/issues/137 "outputFile/outputJson: Unexpected end of input"
|
||||
[#136]: https://github.com/jprichardson/node-fs-extra/pull/136 "Update license attribute"
|
||||
[#135]: https://github.com/jprichardson/node-fs-extra/issues/135 "emptyDir throws Error if no callback is provided"
|
||||
[#134]: https://github.com/jprichardson/node-fs-extra/pull/134 "Handle EEXIST error when clobbering dir"
|
||||
[#133]: https://github.com/jprichardson/node-fs-extra/pull/133 "Travis runs with `sudo: false`"
|
||||
[#132]: https://github.com/jprichardson/node-fs-extra/pull/132 "isDirectory method"
|
||||
[#131]: https://github.com/jprichardson/node-fs-extra/issues/131 "copySync is not working iojs 1.8.4 on linux [feature-copy]"
|
||||
[#130]: https://github.com/jprichardson/node-fs-extra/pull/130 "Please review additional features."
|
||||
[#129]: https://github.com/jprichardson/node-fs-extra/pull/129 "can you review this feature?"
|
||||
[#128]: https://github.com/jprichardson/node-fs-extra/issues/128 "fsExtra.move(filepath, newPath) broken;"
|
||||
[#127]: https://github.com/jprichardson/node-fs-extra/issues/127 "consider using fs.access to remove deprecated warnings for fs.exists"
|
||||
[#126]: https://github.com/jprichardson/node-fs-extra/issues/126 " TypeError: Object #<Object> has no method 'access'"
|
||||
[#125]: https://github.com/jprichardson/node-fs-extra/issues/125 "Question: What do the *Sync function do different from non-sync"
|
||||
[#124]: https://github.com/jprichardson/node-fs-extra/issues/124 "move with clobber option 'ENOTEMPTY'"
|
||||
[#123]: https://github.com/jprichardson/node-fs-extra/issues/123 "Only copy the content of a directory"
|
||||
[#122]: https://github.com/jprichardson/node-fs-extra/pull/122 "Update section links in README to match current section ids."
|
||||
[#121]: https://github.com/jprichardson/node-fs-extra/issues/121 "emptyDir is undefined"
|
||||
[#120]: https://github.com/jprichardson/node-fs-extra/issues/120 "usage bug caused by shallow cloning methods of 'graceful-fs'"
|
||||
[#119]: https://github.com/jprichardson/node-fs-extra/issues/119 "mkdirs and ensureDir never invoke callback and consume CPU indefinitely if provided a path with invalid characters on Windows"
|
||||
[#118]: https://github.com/jprichardson/node-fs-extra/pull/118 "createOutputStream"
|
||||
[#117]: https://github.com/jprichardson/node-fs-extra/pull/117 "Fixed issue with slash separated paths on windows"
|
||||
[#116]: https://github.com/jprichardson/node-fs-extra/issues/116 "copySync can only copy directories not files [documentation, feature-copy]"
|
||||
[#115]: https://github.com/jprichardson/node-fs-extra/issues/115 ".Copy & .CopySync [feature-copy]"
|
||||
[#114]: https://github.com/jprichardson/node-fs-extra/issues/114 "Fails to move (rename) directory to non-empty directory even with clobber: true"
|
||||
[#113]: https://github.com/jprichardson/node-fs-extra/issues/113 "fs.copy seems to callback early if the destination file already exists"
|
||||
[#112]: https://github.com/jprichardson/node-fs-extra/pull/112 "Copying a file into an existing directory"
|
||||
[#111]: https://github.com/jprichardson/node-fs-extra/pull/111 "Moving a file into an existing directory "
|
||||
[#110]: https://github.com/jprichardson/node-fs-extra/pull/110 "Moving a file into an existing directory"
|
||||
[#109]: https://github.com/jprichardson/node-fs-extra/issues/109 "fs.move across windows drives fails"
|
||||
[#108]: https://github.com/jprichardson/node-fs-extra/issues/108 "fse.move directories across multiple devices doesn't work"
|
||||
[#107]: https://github.com/jprichardson/node-fs-extra/pull/107 "Check if dest path is an existing dir and copy or move source in it"
|
||||
[#106]: https://github.com/jprichardson/node-fs-extra/issues/106 "fse.copySync crashes while copying across devices D: [feature-copy]"
|
||||
[#105]: https://github.com/jprichardson/node-fs-extra/issues/105 "fs.copy hangs on iojs"
|
||||
[#104]: https://github.com/jprichardson/node-fs-extra/issues/104 "fse.move deletes folders [bug]"
|
||||
[#103]: https://github.com/jprichardson/node-fs-extra/issues/103 "Error: EMFILE with copy"
|
||||
[#102]: https://github.com/jprichardson/node-fs-extra/issues/102 "touch / touchSync was removed ?"
|
||||
[#101]: https://github.com/jprichardson/node-fs-extra/issues/101 "fs-extra promisified"
|
||||
[#100]: https://github.com/jprichardson/node-fs-extra/pull/100 "copy: options object or filter to pass to ncp"
|
||||
[#99]: https://github.com/jprichardson/node-fs-extra/issues/99 "ensureDir() modes [future]"
|
||||
[#98]: https://github.com/jprichardson/node-fs-extra/issues/98 "fs.copy() incorrect async behavior [bug]"
|
||||
[#97]: https://github.com/jprichardson/node-fs-extra/pull/97 "use path.join; fix copySync bug"
|
||||
[#96]: https://github.com/jprichardson/node-fs-extra/issues/96 "destFolderExists in copySync is always undefined."
|
||||
[#95]: https://github.com/jprichardson/node-fs-extra/pull/95 "Using graceful-ncp instead of ncp"
|
||||
[#94]: https://github.com/jprichardson/node-fs-extra/issues/94 "Error: EEXIST, file already exists '../mkdirp/bin/cmd.js' on fs.copySync() [enhancement, feature-copy]"
|
||||
[#93]: https://github.com/jprichardson/node-fs-extra/issues/93 "Confusing error if drive not mounted [enhancement]"
|
||||
[#92]: https://github.com/jprichardson/node-fs-extra/issues/92 "Problems with Bluebird"
|
||||
[#91]: https://github.com/jprichardson/node-fs-extra/issues/91 "fs.copySync('/test', '/haha') is different with 'cp -r /test /haha' [enhancement]"
|
||||
[#90]: https://github.com/jprichardson/node-fs-extra/issues/90 "Folder creation and file copy is Happening in 64 bit machine but not in 32 bit machine"
|
||||
[#89]: https://github.com/jprichardson/node-fs-extra/issues/89 "Error: EEXIST using fs-extra's fs.copy to copy a directory on Windows"
|
||||
[#88]: https://github.com/jprichardson/node-fs-extra/issues/88 "Stacking those libraries"
|
||||
[#87]: https://github.com/jprichardson/node-fs-extra/issues/87 "createWriteStream + outputFile = ?"
|
||||
[#86]: https://github.com/jprichardson/node-fs-extra/issues/86 "no moveSync?"
|
||||
[#85]: https://github.com/jprichardson/node-fs-extra/pull/85 "Copy symlinks in copySync"
|
||||
[#84]: https://github.com/jprichardson/node-fs-extra/issues/84 "Push latest version to npm ?"
|
||||
[#83]: https://github.com/jprichardson/node-fs-extra/issues/83 "Prevent copying a directory into itself [feature-copy]"
|
||||
[#82]: https://github.com/jprichardson/node-fs-extra/pull/82 "README updates for move"
|
||||
[#81]: https://github.com/jprichardson/node-fs-extra/issues/81 "fd leak after fs.move"
|
||||
[#80]: https://github.com/jprichardson/node-fs-extra/pull/80 "Preserve file mode in copySync"
|
||||
[#79]: https://github.com/jprichardson/node-fs-extra/issues/79 "fs.copy only .html file empty"
|
||||
[#78]: https://github.com/jprichardson/node-fs-extra/pull/78 "copySync was not applying filters to directories"
|
||||
[#77]: https://github.com/jprichardson/node-fs-extra/issues/77 "Create README reference to bluebird"
|
||||
[#76]: https://github.com/jprichardson/node-fs-extra/issues/76 "Create README reference to typescript"
|
||||
[#75]: https://github.com/jprichardson/node-fs-extra/issues/75 "add glob as a dep? [question]"
|
||||
[#74]: https://github.com/jprichardson/node-fs-extra/pull/74 "including new emptydir module"
|
||||
[#73]: https://github.com/jprichardson/node-fs-extra/pull/73 "add dependency status in readme"
|
||||
[#72]: https://github.com/jprichardson/node-fs-extra/pull/72 "Use svg instead of png to get better image quality"
|
||||
[#71]: https://github.com/jprichardson/node-fs-extra/issues/71 "fse.copy not working on Windows 7 x64 OS, but, copySync does work"
|
||||
[#70]: https://github.com/jprichardson/node-fs-extra/issues/70 "Not filter each file, stops on first false [bug]"
|
||||
[#69]: https://github.com/jprichardson/node-fs-extra/issues/69 "How to check if folder exist and read the folder name"
|
||||
[#68]: https://github.com/jprichardson/node-fs-extra/issues/68 "consider flag to readJsonSync (throw false) [enhancement]"
|
||||
[#67]: https://github.com/jprichardson/node-fs-extra/issues/67 "docs for readJson incorrectly states that is accepts options"
|
||||
[#66]: https://github.com/jprichardson/node-fs-extra/issues/66 "ENAMETOOLONG"
|
||||
[#65]: https://github.com/jprichardson/node-fs-extra/issues/65 "exclude filter in fs.copy"
|
||||
[#64]: https://github.com/jprichardson/node-fs-extra/issues/64 "Announce: mfs - monitor your fs-extra calls"
|
||||
[#63]: https://github.com/jprichardson/node-fs-extra/issues/63 "Walk"
|
||||
[#62]: https://github.com/jprichardson/node-fs-extra/issues/62 "npm install fs-extra doesn't work"
|
||||
[#61]: https://github.com/jprichardson/node-fs-extra/issues/61 "No longer supports node 0.8 due to use of `^` in package.json dependencies"
|
||||
[#60]: https://github.com/jprichardson/node-fs-extra/issues/60 "chmod & chown for mkdirs"
|
||||
[#59]: https://github.com/jprichardson/node-fs-extra/issues/59 "Consider including mkdirp and making fs-extra '--use_strict' safe [question]"
|
||||
[#58]: https://github.com/jprichardson/node-fs-extra/issues/58 "Stack trace not included in fs.copy error"
|
||||
[#57]: https://github.com/jprichardson/node-fs-extra/issues/57 "Possible to include wildcards in delete?"
|
||||
[#56]: https://github.com/jprichardson/node-fs-extra/issues/56 "Crash when have no access to write to destination file in copy "
|
||||
[#55]: https://github.com/jprichardson/node-fs-extra/issues/55 "Is it possible to have any console output similar to Grunt copy module?"
|
||||
[#54]: https://github.com/jprichardson/node-fs-extra/issues/54 "`copy` does not preserve file ownership and permissons"
|
||||
[#53]: https://github.com/jprichardson/node-fs-extra/issues/53 "outputFile() - ability to write data in appending mode"
|
||||
[#52]: https://github.com/jprichardson/node-fs-extra/pull/52 "This fixes (what I think) is a bug in copySync"
|
||||
[#51]: https://github.com/jprichardson/node-fs-extra/pull/51 "Add a Bitdeli Badge to README"
|
||||
[#50]: https://github.com/jprichardson/node-fs-extra/issues/50 "Replace mechanism in createFile"
|
||||
[#49]: https://github.com/jprichardson/node-fs-extra/pull/49 "update rimraf to v2.2.6"
|
||||
[#48]: https://github.com/jprichardson/node-fs-extra/issues/48 "fs.copy issue [bug]"
|
||||
[#47]: https://github.com/jprichardson/node-fs-extra/issues/47 "Bug in copy - callback called on readStream 'close' - Fixed in ncp 0.5.0"
|
||||
[#46]: https://github.com/jprichardson/node-fs-extra/pull/46 "update copyright year"
|
||||
[#45]: https://github.com/jprichardson/node-fs-extra/pull/45 "Added note about fse.outputFile() being the one that overwrites"
|
||||
[#44]: https://github.com/jprichardson/node-fs-extra/pull/44 "Proposal: Stream support"
|
||||
[#43]: https://github.com/jprichardson/node-fs-extra/issues/43 "Better error reporting "
|
||||
[#42]: https://github.com/jprichardson/node-fs-extra/issues/42 "Performance issue?"
|
||||
[#41]: https://github.com/jprichardson/node-fs-extra/pull/41 "There does seem to be a synchronous version now"
|
||||
[#40]: https://github.com/jprichardson/node-fs-extra/issues/40 "fs.copy throw unexplained error ENOENT, utime "
|
||||
[#39]: https://github.com/jprichardson/node-fs-extra/pull/39 "Added regression test for copy() return callback on error"
|
||||
[#38]: https://github.com/jprichardson/node-fs-extra/pull/38 "Return err in copy() fstat cb, because stat could be undefined or null"
|
||||
[#37]: https://github.com/jprichardson/node-fs-extra/issues/37 "Maybe include a line reader? [enhancement, question]"
|
||||
[#36]: https://github.com/jprichardson/node-fs-extra/pull/36 "`filter` parameter `fs.copy` and `fs.copySync`"
|
||||
[#35]: https://github.com/jprichardson/node-fs-extra/pull/35 "`filter` parameter `fs.copy` and `fs.copySync` "
|
||||
[#34]: https://github.com/jprichardson/node-fs-extra/issues/34 "update docs to include options for JSON methods [enhancement]"
|
||||
[#33]: https://github.com/jprichardson/node-fs-extra/pull/33 "fs_extra.copySync"
|
||||
[#32]: https://github.com/jprichardson/node-fs-extra/issues/32 "update to latest jsonfile [enhancement]"
|
||||
[#31]: https://github.com/jprichardson/node-fs-extra/issues/31 "Add ensure methods [enhancement]"
|
||||
[#30]: https://github.com/jprichardson/node-fs-extra/issues/30 "update package.json optional dep `graceful-fs`"
|
||||
[#29]: https://github.com/jprichardson/node-fs-extra/issues/29 "Copy failing if dest directory doesn't exist. Is this intended?"
|
||||
[#28]: https://github.com/jprichardson/node-fs-extra/issues/28 "homepage field must be a string url. Deleted."
|
||||
[#27]: https://github.com/jprichardson/node-fs-extra/issues/27 "Update Readme"
|
||||
[#26]: https://github.com/jprichardson/node-fs-extra/issues/26 "Add readdir recursive method. [enhancement]"
|
||||
[#25]: https://github.com/jprichardson/node-fs-extra/pull/25 "adding an `.npmignore` file"
|
||||
[#24]: https://github.com/jprichardson/node-fs-extra/issues/24 "[bug] cannot run in strict mode [bug]"
|
||||
[#23]: https://github.com/jprichardson/node-fs-extra/issues/23 "`writeJSON()` should create parent directories"
|
||||
[#22]: https://github.com/jprichardson/node-fs-extra/pull/22 "Add a limit option to mkdirs()"
|
||||
[#21]: https://github.com/jprichardson/node-fs-extra/issues/21 "touch() in 0.10.0"
|
||||
[#20]: https://github.com/jprichardson/node-fs-extra/issues/20 "fs.remove yields callback before directory is really deleted"
|
||||
[#19]: https://github.com/jprichardson/node-fs-extra/issues/19 "fs.copy err is empty array"
|
||||
[#18]: https://github.com/jprichardson/node-fs-extra/pull/18 "Exposed copyFile Function"
|
||||
[#17]: https://github.com/jprichardson/node-fs-extra/issues/17 "Use `require('graceful-fs')` if found instead of `require('fs')`"
|
||||
[#16]: https://github.com/jprichardson/node-fs-extra/pull/16 "Update README.md"
|
||||
[#15]: https://github.com/jprichardson/node-fs-extra/issues/15 "Implement cp -r but sync aka copySync. [enhancement]"
|
||||
[#14]: https://github.com/jprichardson/node-fs-extra/issues/14 "fs.mkdirSync is broken in 0.3.1"
|
||||
[#13]: https://github.com/jprichardson/node-fs-extra/issues/13 "Thoughts on including a directory tree / file watcher? [enhancement, question]"
|
||||
[#12]: https://github.com/jprichardson/node-fs-extra/issues/12 "copyFile & copyFileSync are global"
|
||||
[#11]: https://github.com/jprichardson/node-fs-extra/issues/11 "Thoughts on including a file walker? [enhancement, question]"
|
||||
[#10]: https://github.com/jprichardson/node-fs-extra/issues/10 "move / moveFile API [enhancement]"
|
||||
[#9]: https://github.com/jprichardson/node-fs-extra/issues/9 "don't import normal fs stuff into fs-extra"
|
||||
[#8]: https://github.com/jprichardson/node-fs-extra/pull/8 "Update rimraf to latest version"
|
||||
[#6]: https://github.com/jprichardson/node-fs-extra/issues/6 "Remove CoffeeScript development dependency"
|
||||
[#5]: https://github.com/jprichardson/node-fs-extra/issues/5 "comments on naming"
|
||||
[#4]: https://github.com/jprichardson/node-fs-extra/issues/4 "version bump to 0.2"
|
||||
[#3]: https://github.com/jprichardson/node-fs-extra/pull/3 "Hi! I fixed some code for you!"
|
||||
[#2]: https://github.com/jprichardson/node-fs-extra/issues/2 "Merge with fs.extra and mkdirp"
|
||||
[#1]: https://github.com/jprichardson/node-fs-extra/issues/1 "file-extra npm !exist"
|
||||
@@ -0,0 +1 @@
|
||||
module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.33666,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00543,"89":0.00543,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00543,"96":0.00543,"97":0,"98":0,"99":0,"100":0.00543,"101":0.00543,"102":0.01629,"103":0,"104":0.00543,"105":0.00543,"106":0,"107":0,"108":0.01086,"109":0.29865,"110":0.14118,"111":0,"112":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0.01086,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.01086,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01086,"50":0,"51":0,"52":0,"53":0,"54":0.01086,"55":0,"56":0,"57":0.02172,"58":0.03801,"59":0.00543,"60":0,"61":0,"62":0,"63":0.02715,"64":0.01086,"65":0.00543,"66":0,"67":0,"68":0.00543,"69":0,"70":0.03258,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.02715,"80":0.01086,"81":0,"83":0,"84":0,"85":0,"86":0.00543,"87":0.02172,"88":0.02172,"89":1.31406,"90":0.00543,"91":0.00543,"92":0.00543,"93":0.00543,"94":0,"95":0.00543,"96":0.07059,"97":0.01086,"98":0,"99":0.01086,"100":0,"101":0.00543,"102":0.02172,"103":0.00543,"104":0.01629,"105":0.01086,"106":0.00543,"107":0.0543,"108":0.22263,"109":14.65014,"110":5.63091,"111":0,"112":0,"113":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.01629,"64":0.00543,"65":0,"66":0,"67":0.01629,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00543,"80":0,"81":0,"82":0,"83":0.00543,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00543,"94":0.13032,"95":0.1629,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0.00543,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.01086,"91":0,"92":0.01086,"93":0,"94":0,"95":0,"96":0,"97":0.02172,"98":0.00543,"99":0,"100":0,"101":0,"102":0,"103":0.02172,"104":0,"105":0,"106":0.00543,"107":0.01629,"108":0.02715,"109":0.72219,"110":0.96111},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00543,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00543,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00543,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.03801,"16.0":0.01086,"16.1":0.02172,"16.2":0.07059,"16.3":0.09774,"16.4":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00881,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.32957,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00881,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.00881,"12.2-12.5":0.04257,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.01688,"14.0-14.4":0,"14.5-14.8":0.42279,"15.0-15.1":0.03376,"15.2-15.3":0.05065,"15.4":0.04257,"15.5":0.05945,"15.6":0.33838,"16.0":0.00881,"16.1":1.60673,"16.2":2.33413,"16.3":1.58104,"16.4":0},P:{"4":0.16277,"20":0.34588,"5.0-5.4":0,"6.2-6.4":0.02035,"7.2-7.4":0.1119,"8.2":0,"9.2":0.01017,"10.1":0,"11.1-11.2":0.02035,"12.0":0.02035,"13.0":0.01017,"14.0":0,"15.0":0.01017,"16.0":0.01017,"17.0":0.01017,"18.0":0.3764,"19.0":0.3764},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0.00139,"2.3":0,"4.1":0.0347,"4.2-4.3":0.05829,"4.4":0,"4.4.3-4.4.4":0.13879},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.04344,"5.5":0},N:{"10":0,"11":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},O:{"0":2.9248},H:{"0":0.22931},L:{"0":58.83212},R:{_:"0"},M:{"0":0.11425},Q:{"13.1":0}};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = require('./async').some;
|
||||
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Brian Donovan
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
|
||||
var convert = require('./convert'),
|
||||
func = convert('fill', require('../fill'));
|
||||
|
||||
func.placeholder = require('./placeholder');
|
||||
module.exports = func;
|
||||
@@ -0,0 +1,4 @@
|
||||
export { onDestroy, setContext, getContext, getAllContexts, hasContext, tick, createEventDispatcher, SvelteComponent, SvelteComponentTyped } from './index';
|
||||
export declare function onMount(): void;
|
||||
export declare function beforeUpdate(): void;
|
||||
export declare function afterUpdate(): void;
|
||||
@@ -0,0 +1,10 @@
|
||||
// Build out our basic SafeString type
|
||||
function SafeString(string) {
|
||||
this.string = string;
|
||||
}
|
||||
|
||||
SafeString.prototype.toString = SafeString.prototype.toHTML = function() {
|
||||
return '' + this.string;
|
||||
};
|
||||
|
||||
export default SafeString;
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"_u64.js","sourceRoot":"","sources":["src/_u64.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACvC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAExB,+EAA+E;AAC/E,SAAgB,OAAO,CAAC,CAAS,EAAE,EAAE,GAAG,KAAK;IAC3C,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IAClF,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACpF,CAAC;AAHD,0BAGC;AAED,SAAgB,KAAK,CAAC,GAAa,EAAE,EAAE,GAAG,KAAK;IAC7C,IAAI,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACzB;IACD,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AARD,sBAQC;AAEM,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAA9E,QAAA,KAAK,SAAyE;AAC3F,uBAAuB;AACvB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3D,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/E,oCAAoC;AACpC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAChF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF,gEAAgE;AAChE,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACvF,+CAA+C;AAC/C,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5C,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5C,mCAAmC;AACnC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAChF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAChF,+DAA+D;AAC/D,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAEvF,8EAA8E;AAC9E,0EAA0E;AAC1E,4CAA4C;AAC5C,SAAgB,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;IAChE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9D,CAAC;AAHD,kBAGC;AACD,qCAAqC;AACrC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3F,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE,CAChE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE,CAC/D,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE,CAC5E,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE,CAC3E,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACjE,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE,CACxF,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEvD,kBAAkB;AAClB,MAAM,GAAG,GAAG;IACV,OAAO,EAAE,KAAK,EAAE,KAAK,EAAL,aAAK;IACrB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC9B,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC9B,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;CAC9C,CAAC;AACF,kBAAe,GAAG,CAAC"}
|
||||
@@ -0,0 +1,2 @@
|
||||
# side-channel
|
||||
Store information about any JS value in a side channel. Uses WeakMap if available.
|
||||
@@ -0,0 +1,37 @@
|
||||
var isInteger = require('./isInteger');
|
||||
|
||||
/** Used as references for various `Number` constants. */
|
||||
var MAX_SAFE_INTEGER = 9007199254740991;
|
||||
|
||||
/**
|
||||
* Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754
|
||||
* double precision number which isn't the result of a rounded unsafe integer.
|
||||
*
|
||||
* **Note:** This method is based on
|
||||
* [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @since 4.0.0
|
||||
* @category Lang
|
||||
* @param {*} value The value to check.
|
||||
* @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.
|
||||
* @example
|
||||
*
|
||||
* _.isSafeInteger(3);
|
||||
* // => true
|
||||
*
|
||||
* _.isSafeInteger(Number.MIN_VALUE);
|
||||
* // => false
|
||||
*
|
||||
* _.isSafeInteger(Infinity);
|
||||
* // => false
|
||||
*
|
||||
* _.isSafeInteger('3');
|
||||
* // => false
|
||||
*/
|
||||
function isSafeInteger(value) {
|
||||
return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
|
||||
}
|
||||
|
||||
module.exports = isSafeInteger;
|
||||
@@ -0,0 +1,7 @@
|
||||
import { mergeMap } from './mergeMap';
|
||||
import { identity } from '../util/identity';
|
||||
export function mergeAll(concurrent) {
|
||||
if (concurrent === void 0) { concurrent = Infinity; }
|
||||
return mergeMap(identity, concurrent);
|
||||
}
|
||||
//# sourceMappingURL=mergeAll.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"publishBehavior.d.ts","sourceRoot":"","sources":["../../../../src/internal/operators/publishBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAM1G"}
|
||||
@@ -0,0 +1,2 @@
|
||||
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("preact")):"function"==typeof define&&define.amd?define(["exports","preact"],t):t((n||self).preactTestUtils={},n.preact)}(this,function(n,t){function e(){return t.options.t=t.options.debounceRendering,t.options.debounceRendering=function(n){return t.options.o=n},function(){return t.options.o&&t.options.o()}}var r=function(n){return null!=n&&"function"==typeof n.then},o=0;function i(){t.options.o&&(t.options.o(),delete t.options.o),void 0!==t.options.t?(t.options.debounceRendering=t.options.t,delete t.options.t):t.options.debounceRendering=void 0}n.act=function(n){if(++o>1){var f=n();return r(f)?f.then(function(){--o}):(--o,Promise.resolve())}var u,c,l=t.options.requestAnimationFrame,d=e();t.options.requestAnimationFrame=function(n){return u=n};var a,p,s=function(){try{for(d();u;)c=u,u=null,c(),d()}catch(n){a||(a=n)}finally{i()}t.options.requestAnimationFrame=l,--o};try{p=n()}catch(n){a=n}if(r(p))return p.then(s,function(n){throw s(),n});if(s(),a)throw a;return Promise.resolve()},n.setupRerender=e,n.teardown=i});
|
||||
//# sourceMappingURL=testUtils.umd.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"connectable.js","sourceRoot":"","sources":["../../../../src/internal/observable/connectable.ts"],"names":[],"mappings":";;;AACA,sCAAqC;AAErC,4CAA2C;AAC3C,iCAAgC;AAsBhC,IAAM,cAAc,GAA+B;IACjD,SAAS,EAAE,cAAM,OAAA,IAAI,iBAAO,EAAW,EAAtB,CAAsB;IACvC,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAUF,SAAgB,WAAW,CAAI,MAA0B,EAAE,MAA6C;IAA7C,uBAAA,EAAA,uBAA6C;IAEtG,IAAI,UAAU,GAAwB,IAAI,CAAC;IACnC,IAAA,SAAS,GAA+B,MAAM,UAArC,EAAE,KAA6B,MAAM,kBAAX,EAAxB,iBAAiB,mBAAG,IAAI,KAAA,CAAY;IACvD,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;IAE1B,IAAM,MAAM,GAAQ,IAAI,uBAAU,CAAI,UAAC,UAAU;QAC/C,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAKH,MAAM,CAAC,OAAO,GAAG;QACf,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;YACpC,UAAU,GAAG,aAAK,CAAC,cAAM,OAAA,MAAM,EAAN,CAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,iBAAiB,EAAE;gBACrB,UAAU,CAAC,GAAG,CAAC,cAAM,OAAA,CAAC,OAAO,GAAG,SAAS,EAAE,CAAC,EAAvB,CAAuB,CAAC,CAAC;aAC/C;SACF;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAxBD,kCAwBC"}
|
||||
@@ -0,0 +1,20 @@
|
||||
var coreJsData = require('./_coreJsData');
|
||||
|
||||
/** Used to detect methods masquerading as native. */
|
||||
var maskSrcKey = (function() {
|
||||
var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
|
||||
return uid ? ('Symbol(src)_1.' + uid) : '';
|
||||
}());
|
||||
|
||||
/**
|
||||
* Checks if `func` has its source masked.
|
||||
*
|
||||
* @private
|
||||
* @param {Function} func The function to check.
|
||||
* @returns {boolean} Returns `true` if `func` is masked, else `false`.
|
||||
*/
|
||||
function isMasked(func) {
|
||||
return !!maskSrcKey && (maskSrcKey in func);
|
||||
}
|
||||
|
||||
module.exports = isMasked;
|
||||
@@ -0,0 +1,10 @@
|
||||
export type UpdateGroupContact = {
|
||||
id: number;
|
||||
firstname: string;
|
||||
middlename?: string;
|
||||
lastname: string;
|
||||
address?: any;
|
||||
phone?: string;
|
||||
email?: string;
|
||||
groups?: any;
|
||||
};
|
||||
@@ -0,0 +1,54 @@
|
||||
'use strict';
|
||||
const errorEx = require('error-ex');
|
||||
const fallback = require('json-parse-even-better-errors');
|
||||
const {default: LinesAndColumns} = require('lines-and-columns');
|
||||
const {codeFrameColumns} = require('@babel/code-frame');
|
||||
|
||||
const JSONError = errorEx('JSONError', {
|
||||
fileName: errorEx.append('in %s'),
|
||||
codeFrame: errorEx.append('\n\n%s\n')
|
||||
});
|
||||
|
||||
const parseJson = (string, reviver, filename) => {
|
||||
if (typeof reviver === 'string') {
|
||||
filename = reviver;
|
||||
reviver = null;
|
||||
}
|
||||
|
||||
try {
|
||||
try {
|
||||
return JSON.parse(string, reviver);
|
||||
} catch (error) {
|
||||
fallback(string, reviver);
|
||||
throw error;
|
||||
}
|
||||
} catch (error) {
|
||||
error.message = error.message.replace(/\n/g, '');
|
||||
const indexMatch = error.message.match(/in JSON at position (\d+) while parsing/);
|
||||
|
||||
const jsonError = new JSONError(error);
|
||||
if (filename) {
|
||||
jsonError.fileName = filename;
|
||||
}
|
||||
|
||||
if (indexMatch && indexMatch.length > 0) {
|
||||
const lines = new LinesAndColumns(string);
|
||||
const index = Number(indexMatch[1]);
|
||||
const location = lines.locationForIndex(index);
|
||||
|
||||
const codeFrame = codeFrameColumns(
|
||||
string,
|
||||
{start: {line: location.line + 1, column: location.column + 1}},
|
||||
{highlightCode: true}
|
||||
);
|
||||
|
||||
jsonError.codeFrame = codeFrame;
|
||||
}
|
||||
|
||||
throw jsonError;
|
||||
}
|
||||
};
|
||||
|
||||
parseJson.JSONError = JSONError;
|
||||
|
||||
module.exports = parseJson;
|
||||
@@ -0,0 +1,252 @@
|
||||
// jscs:disable requireUseStrict
|
||||
|
||||
var test = require('tape');
|
||||
|
||||
var functionBind = require('../implementation');
|
||||
var getCurrentContext = function () { return this; };
|
||||
|
||||
test('functionBind is a function', function (t) {
|
||||
t.equal(typeof functionBind, 'function');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('non-functions', function (t) {
|
||||
var nonFunctions = [true, false, [], {}, 42, 'foo', NaN, /a/g];
|
||||
t.plan(nonFunctions.length);
|
||||
for (var i = 0; i < nonFunctions.length; ++i) {
|
||||
try { functionBind.call(nonFunctions[i]); } catch (ex) {
|
||||
t.ok(ex instanceof TypeError, 'throws when given ' + String(nonFunctions[i]));
|
||||
}
|
||||
}
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('without a context', function (t) {
|
||||
t.test('binds properly', function (st) {
|
||||
var args, context;
|
||||
var namespace = {
|
||||
func: functionBind.call(function () {
|
||||
args = Array.prototype.slice.call(arguments);
|
||||
context = this;
|
||||
})
|
||||
};
|
||||
namespace.func(1, 2, 3);
|
||||
st.deepEqual(args, [1, 2, 3]);
|
||||
st.equal(context, getCurrentContext.call());
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('binds properly, and still supplies bound arguments', function (st) {
|
||||
var args, context;
|
||||
var namespace = {
|
||||
func: functionBind.call(function () {
|
||||
args = Array.prototype.slice.call(arguments);
|
||||
context = this;
|
||||
}, undefined, 1, 2, 3)
|
||||
};
|
||||
namespace.func(4, 5, 6);
|
||||
st.deepEqual(args, [1, 2, 3, 4, 5, 6]);
|
||||
st.equal(context, getCurrentContext.call());
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('returns properly', function (st) {
|
||||
var args;
|
||||
var namespace = {
|
||||
func: functionBind.call(function () {
|
||||
args = Array.prototype.slice.call(arguments);
|
||||
return this;
|
||||
}, null)
|
||||
};
|
||||
var context = namespace.func(1, 2, 3);
|
||||
st.equal(context, getCurrentContext.call(), 'returned context is namespaced context');
|
||||
st.deepEqual(args, [1, 2, 3], 'passed arguments are correct');
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('returns properly with bound arguments', function (st) {
|
||||
var args;
|
||||
var namespace = {
|
||||
func: functionBind.call(function () {
|
||||
args = Array.prototype.slice.call(arguments);
|
||||
return this;
|
||||
}, null, 1, 2, 3)
|
||||
};
|
||||
var context = namespace.func(4, 5, 6);
|
||||
st.equal(context, getCurrentContext.call(), 'returned context is namespaced context');
|
||||
st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct');
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('called as a constructor', function (st) {
|
||||
var thunkify = function (value) {
|
||||
return function () { return value; };
|
||||
};
|
||||
st.test('returns object value', function (sst) {
|
||||
var expectedReturnValue = [1, 2, 3];
|
||||
var Constructor = functionBind.call(thunkify(expectedReturnValue), null);
|
||||
var result = new Constructor();
|
||||
sst.equal(result, expectedReturnValue);
|
||||
sst.end();
|
||||
});
|
||||
|
||||
st.test('does not return primitive value', function (sst) {
|
||||
var Constructor = functionBind.call(thunkify(42), null);
|
||||
var result = new Constructor();
|
||||
sst.notEqual(result, 42);
|
||||
sst.end();
|
||||
});
|
||||
|
||||
st.test('object from bound constructor is instance of original and bound constructor', function (sst) {
|
||||
var A = function (x) {
|
||||
this.name = x || 'A';
|
||||
};
|
||||
var B = functionBind.call(A, null, 'B');
|
||||
|
||||
var result = new B();
|
||||
sst.ok(result instanceof B, 'result is instance of bound constructor');
|
||||
sst.ok(result instanceof A, 'result is instance of original constructor');
|
||||
sst.end();
|
||||
});
|
||||
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('with a context', function (t) {
|
||||
t.test('with no bound arguments', function (st) {
|
||||
var args, context;
|
||||
var boundContext = {};
|
||||
var namespace = {
|
||||
func: functionBind.call(function () {
|
||||
args = Array.prototype.slice.call(arguments);
|
||||
context = this;
|
||||
}, boundContext)
|
||||
};
|
||||
namespace.func(1, 2, 3);
|
||||
st.equal(context, boundContext, 'binds a context properly');
|
||||
st.deepEqual(args, [1, 2, 3], 'supplies passed arguments');
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('with bound arguments', function (st) {
|
||||
var args, context;
|
||||
var boundContext = {};
|
||||
var namespace = {
|
||||
func: functionBind.call(function () {
|
||||
args = Array.prototype.slice.call(arguments);
|
||||
context = this;
|
||||
}, boundContext, 1, 2, 3)
|
||||
};
|
||||
namespace.func(4, 5, 6);
|
||||
st.equal(context, boundContext, 'binds a context properly');
|
||||
st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'supplies bound and passed arguments');
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('returns properly', function (st) {
|
||||
var boundContext = {};
|
||||
var args;
|
||||
var namespace = {
|
||||
func: functionBind.call(function () {
|
||||
args = Array.prototype.slice.call(arguments);
|
||||
return this;
|
||||
}, boundContext)
|
||||
};
|
||||
var context = namespace.func(1, 2, 3);
|
||||
st.equal(context, boundContext, 'returned context is bound context');
|
||||
st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context');
|
||||
st.deepEqual(args, [1, 2, 3], 'passed arguments are correct');
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('returns properly with bound arguments', function (st) {
|
||||
var boundContext = {};
|
||||
var args;
|
||||
var namespace = {
|
||||
func: functionBind.call(function () {
|
||||
args = Array.prototype.slice.call(arguments);
|
||||
return this;
|
||||
}, boundContext, 1, 2, 3)
|
||||
};
|
||||
var context = namespace.func(4, 5, 6);
|
||||
st.equal(context, boundContext, 'returned context is bound context');
|
||||
st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context');
|
||||
st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct');
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('passes the correct arguments when called as a constructor', function (st) {
|
||||
var expected = { name: 'Correct' };
|
||||
var namespace = {
|
||||
Func: functionBind.call(function (arg) {
|
||||
return arg;
|
||||
}, { name: 'Incorrect' })
|
||||
};
|
||||
var returned = new namespace.Func(expected);
|
||||
st.equal(returned, expected, 'returns the right arg when called as a constructor');
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('has the new instance\'s context when called as a constructor', function (st) {
|
||||
var actualContext;
|
||||
var expectedContext = { foo: 'bar' };
|
||||
var namespace = {
|
||||
Func: functionBind.call(function () {
|
||||
actualContext = this;
|
||||
}, expectedContext)
|
||||
};
|
||||
var result = new namespace.Func();
|
||||
st.equal(result instanceof namespace.Func, true);
|
||||
st.notEqual(actualContext, expectedContext);
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('bound function length', function (t) {
|
||||
t.test('sets a correct length without thisArg', function (st) {
|
||||
var subject = functionBind.call(function (a, b, c) { return a + b + c; });
|
||||
st.equal(subject.length, 3);
|
||||
st.equal(subject(1, 2, 3), 6);
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('sets a correct length with thisArg', function (st) {
|
||||
var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {});
|
||||
st.equal(subject.length, 3);
|
||||
st.equal(subject(1, 2, 3), 6);
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('sets a correct length without thisArg and first argument', function (st) {
|
||||
var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1);
|
||||
st.equal(subject.length, 2);
|
||||
st.equal(subject(2, 3), 6);
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('sets a correct length with thisArg and first argument', function (st) {
|
||||
var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1);
|
||||
st.equal(subject.length, 2);
|
||||
st.equal(subject(2, 3), 6);
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('sets a correct length without thisArg and too many arguments', function (st) {
|
||||
var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1, 2, 3, 4);
|
||||
st.equal(subject.length, 0);
|
||||
st.equal(subject(), 6);
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('sets a correct length with thisArg and too many arguments', function (st) {
|
||||
var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1, 2, 3, 4);
|
||||
st.equal(subject.length, 0);
|
||||
st.equal(subject(), 6);
|
||||
st.end();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,3 @@
|
||||
export type HandleLogout = {
|
||||
token?: string;
|
||||
};
|
||||
@@ -0,0 +1,20 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const env_replace_1 = require("./env-replace");
|
||||
const ENV = {
|
||||
foo: 'foo_value',
|
||||
bar: 'bar_value',
|
||||
};
|
||||
test.each([
|
||||
['-${foo}-${bar}', '-foo_value-bar_value'],
|
||||
['\\${foo}', '${foo}'],
|
||||
['\\${zoo}', '${zoo}'],
|
||||
['\\\\${foo}', '\\foo_value'],
|
||||
])('success %s => %s', (settingValue, expected) => {
|
||||
const actual = (0, env_replace_1.envReplace)(settingValue, ENV);
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
test('fail when the env variable is not found', () => {
|
||||
expect(() => (0, env_replace_1.envReplace)('${baz}', ENV)).toThrow(`Failed to replace env in config: \${baz}`);
|
||||
});
|
||||
//# sourceMappingURL=env-replace.spec.js.map
|
||||
@@ -0,0 +1 @@
|
||||
module.exports={A:{A:{"2":"J D E F A B CC"},B:{"1":"C K L G M N O P Q R S T U V W X Y Z a b c d e i j k l m n o p q r s t u f H"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB uB ZB vB aB bB cB dB eB fB gB hB iB jB kB h lB mB nB oB pB P Q R wB S T U V W X Y Z a b c d e i j k l m n o p q r s t u f H xB yB","2":"0 DC tB I v J D E F A B C K L G M N O w g x y z EC FC"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB uB ZB vB aB bB cB dB eB fB gB hB iB jB kB h lB mB nB oB pB P Q R S T U V W X Y Z a b c d e i j k l m n o p q r s t u f H xB yB GC","2":"I v J D E F A B C K","33":"0 1 2 3 4 5 6 7 8 9 L G M N O w g x y z"},E:{"1":"G MC NC 2B 3B 4B 5B sB 6B 7B 8B 9B OC","2":"I v HC zB IC","33":"J D E F A B C K L JC KC LC 0B qB rB 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB h lB mB nB oB pB P Q R wB S T U V W X Y Z a b c d e","2":"F B C PC QC RC SC qB AC TC rB","33":"G M N O w g x"},G:{"1":"mC nC 2B 3B 4B 5B sB 6B 7B 8B 9B","2":"zB UC BC VC","33":"E WC XC YC ZC aC bC cC dC eC fC gC hC iC jC kC lC"},H:{"2":"oC"},I:{"1":"f","2":"tB I pC qC rC sC BC tC uC"},J:{"2":"D A"},K:{"1":"h","2":"A B C qB AC rB"},L:{"1":"H"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"vC"},P:{"1":"I g wC xC yC zC 0C 0B 1C 2C 3C 4C 5C sB 6C 7C 8C"},Q:{"1":"1B"},R:{"1":"9C"},S:{"1":"AD BD"}},B:2,C:"Web Audio API"};
|
||||
@@ -0,0 +1,26 @@
|
||||
import { Fetch } from "./Fetch";
|
||||
import { Signal } from "./Signal";
|
||||
/**
|
||||
* Octokit-specific request options which are ignored for the actual request, but can be used by Octokit or plugins to manipulate how the request is sent or how a response is handled
|
||||
*/
|
||||
export type RequestRequestOptions = {
|
||||
/**
|
||||
* Node only. Useful for custom proxy, certificate, or dns lookup.
|
||||
*
|
||||
* @see https://nodejs.org/api/http.html#http_class_http_agent
|
||||
*/
|
||||
agent?: unknown;
|
||||
/**
|
||||
* Custom replacement for built-in fetch method. Useful for testing or request hooks.
|
||||
*/
|
||||
fetch?: Fetch;
|
||||
/**
|
||||
* Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests.
|
||||
*/
|
||||
signal?: Signal;
|
||||
/**
|
||||
* Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). `options.request.signal` is recommended instead.
|
||||
*/
|
||||
timeout?: number;
|
||||
[option: string]: any;
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
var createWrap = require('./_createWrap');
|
||||
|
||||
/** Used to compose bitmasks for function metadata. */
|
||||
var WRAP_FLIP_FLAG = 512;
|
||||
|
||||
/**
|
||||
* Creates a function that invokes `func` with arguments reversed.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @since 4.0.0
|
||||
* @category Function
|
||||
* @param {Function} func The function to flip arguments for.
|
||||
* @returns {Function} Returns the new flipped function.
|
||||
* @example
|
||||
*
|
||||
* var flipped = _.flip(function() {
|
||||
* return _.toArray(arguments);
|
||||
* });
|
||||
*
|
||||
* flipped('a', 'b', 'c', 'd');
|
||||
* // => ['d', 'c', 'b', 'a']
|
||||
*/
|
||||
function flip(func) {
|
||||
return createWrap(func, WRAP_FLIP_FLAG);
|
||||
}
|
||||
|
||||
module.exports = flip;
|
||||
@@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.skipLast = void 0;
|
||||
var identity_1 = require("../util/identity");
|
||||
var lift_1 = require("../util/lift");
|
||||
var OperatorSubscriber_1 = require("./OperatorSubscriber");
|
||||
function skipLast(skipCount) {
|
||||
return skipCount <= 0
|
||||
?
|
||||
identity_1.identity
|
||||
: lift_1.operate(function (source, subscriber) {
|
||||
var ring = new Array(skipCount);
|
||||
var seen = 0;
|
||||
source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {
|
||||
var valueIndex = seen++;
|
||||
if (valueIndex < skipCount) {
|
||||
ring[valueIndex] = value;
|
||||
}
|
||||
else {
|
||||
var index = valueIndex % skipCount;
|
||||
var oldValue = ring[index];
|
||||
ring[index] = value;
|
||||
subscriber.next(oldValue);
|
||||
}
|
||||
}));
|
||||
return function () {
|
||||
ring = null;
|
||||
};
|
||||
});
|
||||
}
|
||||
exports.skipLast = skipLast;
|
||||
//# sourceMappingURL=skipLast.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"name":"jsonfile","version":"4.0.0","files":{"package.json":{"checkedAt":1678883671995,"integrity":"sha512-flVrlmkKu6ILRzmJHDjWi+EJpVhzQci7hCEE07/caXD7My+4Ze3vPda7SOZLkXslwlSDDwLZsqVc3awW1xCQQQ==","mode":436,"size":711},"README.md":{"checkedAt":1678883671995,"integrity":"sha512-TBGKisHTQOJ5MEMgiVVfdzMInGETN1M9eWaY5d92ADvQ2akICEBmjyb1oKq+r3Yaf4or8LAaGJj5g5KZ4ge/SA==","mode":436,"size":4310},"index.js":{"checkedAt":1678883671995,"integrity":"sha512-cwbofC11DDmGdZng4NmxD1U2yr5VNaJpHbZxjWyK0QWj9//3RAroQbKBLpzAvdEJ2XNwCNF2UvCNawhIf00MMA==","mode":436,"size":2838},"LICENSE":{"checkedAt":1678883671995,"integrity":"sha512-6/WQp+rdpUzBvftzJ/PZ38k8jrqeKNPBN8qnjiE22ItdnKHifX7Zq8c7CVo9XkIifI73MhcW8dsRue02GAdOKQ==","mode":436,"size":1110},"CHANGELOG.md":{"checkedAt":1678883671998,"integrity":"sha512-FH7+GObw4jU2j5jUF8SrXgZKLBOuQZQU2jDWW7YHB2bSiZgfbjIIlorkb+ks64g8ftEa7sxQMR5eXwfuY81eOg==","mode":436,"size":7958}}}
|
||||
@@ -0,0 +1,458 @@
|
||||
import test from 'ava';
|
||||
import sinon from 'sinon';
|
||||
import { RequestError } from '@octokit/request-error';
|
||||
import GitHub from '../lib/plugin/github/GitHub.js';
|
||||
import { factory, runTasks } from './util/index.js';
|
||||
import {
|
||||
interceptAuthentication,
|
||||
interceptCollaborator,
|
||||
interceptListReleases,
|
||||
interceptCreate,
|
||||
interceptUpdate,
|
||||
interceptAsset
|
||||
} from './stub/github.js';
|
||||
|
||||
const tokenRef = 'GITHUB_TOKEN';
|
||||
const pushRepo = 'git://github.com/user/repo';
|
||||
const host = 'github.com';
|
||||
const git = { changelog: '' };
|
||||
const requestErrorOptions = { request: { url: '', headers: {} }, response: { headers: {} } };
|
||||
|
||||
test.serial('should check token and perform checks', async t => {
|
||||
const tokenRef = 'MY_GITHUB_TOKEN';
|
||||
const options = { github: { release: true, tokenRef, pushRepo } };
|
||||
const github = factory(GitHub, { options });
|
||||
|
||||
process.env[tokenRef] = '123'; // eslint-disable-line require-atomic-updates
|
||||
|
||||
interceptAuthentication();
|
||||
interceptCollaborator();
|
||||
await t.notThrowsAsync(github.init());
|
||||
});
|
||||
|
||||
test.serial('should check token and warn', async t => {
|
||||
const tokenRef = 'MY_GITHUB_TOKEN';
|
||||
const options = { github: { release: true, tokenRef, pushRepo } };
|
||||
const github = factory(GitHub, { options });
|
||||
delete process.env[tokenRef];
|
||||
|
||||
await t.notThrowsAsync(github.init());
|
||||
|
||||
t.is(github.log.warn.args[0][0], 'Environment variable "MY_GITHUB_TOKEN" is required for automated GitHub Releases.');
|
||||
t.is(github.log.warn.args[1][0], 'Falling back to web-based GitHub Release.');
|
||||
});
|
||||
|
||||
test('should release and upload assets', async t => {
|
||||
const options = {
|
||||
git,
|
||||
github: {
|
||||
pushRepo,
|
||||
tokenRef,
|
||||
release: true,
|
||||
releaseName: 'Release ${tagName}',
|
||||
releaseNotes: 'echo Custom notes',
|
||||
assets: 'test/resources/file-v${version}.txt'
|
||||
}
|
||||
};
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('2.0.1');
|
||||
|
||||
interceptAuthentication();
|
||||
interceptCollaborator();
|
||||
interceptCreate({ body: { tag_name: '2.0.2', name: 'Release 2.0.2', body: 'Custom notes' } });
|
||||
interceptAsset({ body: '*' });
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, 'https://github.com/user/repo/releases/tag/2.0.2');
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
test('should create a pre-release and draft release notes', async t => {
|
||||
const options = {
|
||||
git,
|
||||
github: {
|
||||
pushRepo,
|
||||
tokenRef,
|
||||
release: true,
|
||||
releaseName: 'Release ${tagName}',
|
||||
preRelease: true,
|
||||
draft: true
|
||||
}
|
||||
};
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('2.0.1');
|
||||
|
||||
interceptAuthentication();
|
||||
interceptCollaborator();
|
||||
interceptCreate({ body: { tag_name: '2.0.2', name: 'Release 2.0.2', prerelease: true, draft: true } });
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, 'https://github.com/user/repo/releases/tag/2.0.2');
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
test('should create auto-generated release notes', async t => {
|
||||
const options = {
|
||||
git,
|
||||
github: {
|
||||
pushRepo,
|
||||
tokenRef,
|
||||
release: true,
|
||||
releaseName: 'Release ${tagName}',
|
||||
autoGenerate: true
|
||||
}
|
||||
};
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('2.0.1');
|
||||
|
||||
interceptAuthentication();
|
||||
interceptCollaborator();
|
||||
interceptCreate({ body: { tag_name: '2.0.2', name: 'Release 2.0.2', generate_release_notes: true, body: '' } });
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, 'https://github.com/user/repo/releases/tag/2.0.2');
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
test('should update release and upload assets', async t => {
|
||||
const asset = 'file1';
|
||||
const options = {
|
||||
increment: false,
|
||||
git,
|
||||
github: {
|
||||
update: true,
|
||||
pushRepo,
|
||||
tokenRef,
|
||||
release: true,
|
||||
releaseName: 'Release ${tagName}',
|
||||
releaseNotes: 'echo Custom notes',
|
||||
assets: `test/resources/${asset}`
|
||||
}
|
||||
};
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('2.0.1');
|
||||
exec.withArgs('git rev-list 2.0.1 --tags --max-count=1').resolves('a123456');
|
||||
exec.withArgs('git describe --tags --abbrev=0 "a123456^"').resolves('2.0.1');
|
||||
|
||||
interceptAuthentication();
|
||||
interceptCollaborator();
|
||||
interceptListReleases({ tag_name: '2.0.1' });
|
||||
interceptUpdate({ body: { tag_name: '2.0.1', name: 'Release 2.0.1', body: 'Custom notes' } });
|
||||
interceptAsset({ body: asset });
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, 'https://github.com/user/repo/releases/tag/2.0.1');
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
test('should create new release for unreleased tag', async t => {
|
||||
const options = {
|
||||
increment: false,
|
||||
git,
|
||||
github: {
|
||||
update: true,
|
||||
pushRepo,
|
||||
tokenRef,
|
||||
release: true,
|
||||
releaseName: 'Release ${tagName}',
|
||||
releaseNotes: 'echo Custom notes'
|
||||
}
|
||||
};
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('2.0.1');
|
||||
exec.withArgs('git rev-list 2.0.1 --tags --max-count=1').resolves('b123456');
|
||||
exec.withArgs('git describe --tags --abbrev=0 "b123456^"').resolves('2.0.1');
|
||||
|
||||
interceptAuthentication();
|
||||
interceptCollaborator();
|
||||
interceptListReleases({ tag_name: '2.0.0' });
|
||||
interceptCreate({ body: { tag_name: '2.0.1', name: 'Release 2.0.1', body: 'Custom notes' } });
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, 'https://github.com/user/repo/releases/tag/2.0.1');
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
test('should release to enterprise host', async t => {
|
||||
const options = { git, github: { tokenRef, pushRepo: 'git://github.example.org/user/repo' } };
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git remote get-url origin').resolves(`https://github.example.org/user/repo`);
|
||||
exec.withArgs('git config --get remote.origin.url').resolves(`https://github.example.org/user/repo`);
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves(`1.0.0`);
|
||||
|
||||
const remote = { api: 'https://github.example.org/api/v3', host: 'github.example.org' };
|
||||
interceptAuthentication(remote);
|
||||
interceptCollaborator(remote);
|
||||
interceptCreate(Object.assign({ body: { tag_name: '1.0.1' } }, remote));
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, `https://github.example.org/user/repo/releases/tag/1.0.1`);
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
test('should release to alternative host and proxy', async t => {
|
||||
const remote = { api: 'https://custom.example.org/api/v3', host: 'custom.example.org' };
|
||||
interceptAuthentication(remote);
|
||||
interceptCollaborator(remote);
|
||||
interceptCreate(Object.assign({ body: { tag_name: '1.0.1' } }, remote));
|
||||
const options = {
|
||||
git,
|
||||
github: {
|
||||
tokenRef,
|
||||
pushRepo: `git://custom.example.org/user/repo`,
|
||||
host: 'custom.example.org',
|
||||
proxy: 'http://proxy:8080'
|
||||
}
|
||||
};
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('1.0.0');
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, `https://custom.example.org/user/repo/releases/tag/1.0.1`);
|
||||
t.is(github.options.proxy, 'http://proxy:8080');
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
test('should release to git.pushRepo', async t => {
|
||||
const remote = { api: 'https://custom.example.org/api/v3', host: 'custom.example.org' };
|
||||
interceptCreate(Object.assign({ body: { tag_name: '1.0.1' } }, remote));
|
||||
const options = { git: { pushRepo: 'upstream', changelog: '' }, github: { tokenRef, skipChecks: true } };
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('1.0.0');
|
||||
exec.withArgs('git remote get-url upstream').resolves('https://custom.example.org/user/repo');
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, 'https://custom.example.org/user/repo/releases/tag/1.0.1');
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
const testSkipOnActions = process.env.GITHUB_ACTIONS ? test.skip : test;
|
||||
|
||||
testSkipOnActions('should throw for unauthenticated user', async t => {
|
||||
const options = { github: { tokenRef, pushRepo, host } };
|
||||
const github = factory(GitHub, { options });
|
||||
const stub = sinon.stub(github.client.users, 'getAuthenticated');
|
||||
stub.throws(new RequestError('Bad credentials', 401, requestErrorOptions));
|
||||
|
||||
await t.throwsAsync(runTasks(github), {
|
||||
message: /^Could not authenticate with GitHub using environment variable "GITHUB_TOKEN"/
|
||||
});
|
||||
|
||||
t.is(stub.callCount, 1);
|
||||
stub.restore();
|
||||
});
|
||||
|
||||
testSkipOnActions('should throw for non-collaborator', async t => {
|
||||
interceptAuthentication({ username: 'john' });
|
||||
const options = { github: { tokenRef, pushRepo, host } };
|
||||
const github = factory(GitHub, { options });
|
||||
const stub = sinon.stub(github.client.repos, 'checkCollaborator');
|
||||
stub.throws(new RequestError('HttpError', 401, requestErrorOptions));
|
||||
|
||||
await t.throwsAsync(runTasks(github), { message: /^User john is not a collaborator for user\/repo/ });
|
||||
|
||||
stub.restore();
|
||||
});
|
||||
|
||||
test.serial('should skip authentication and collaborator checks when running on GitHub Actions', async t => {
|
||||
const { GITHUB_ACTIONS, GITHUB_ACTOR } = process.env;
|
||||
if (!GITHUB_ACTIONS) {
|
||||
process.env.GITHUB_ACTIONS = 1;
|
||||
process.env.GITHUB_ACTOR = 'webpro';
|
||||
}
|
||||
|
||||
const options = { github: { tokenRef } };
|
||||
const github = factory(GitHub, { options });
|
||||
const authStub = sinon.stub(github, 'isAuthenticated');
|
||||
const collaboratorStub = sinon.stub(github, 'isCollaborator');
|
||||
|
||||
await t.notThrowsAsync(github.init());
|
||||
|
||||
t.is(authStub.callCount, 0);
|
||||
t.is(collaboratorStub.callCount, 0);
|
||||
t.is(github.getContext('username'), process.env.GITHUB_ACTOR);
|
||||
|
||||
authStub.restore();
|
||||
collaboratorStub.restore();
|
||||
|
||||
if (!GITHUB_ACTIONS) {
|
||||
process.env.GITHUB_ACTIONS = GITHUB_ACTIONS || '';
|
||||
process.env.GITHUB_ACTOR = GITHUB_ACTOR || '';
|
||||
}
|
||||
});
|
||||
|
||||
test('should handle octokit client error (without retries)', async t => {
|
||||
const github = factory(GitHub, { options: { github: { tokenRef, pushRepo, host } } });
|
||||
const stub = sinon.stub(github.client.repos, 'createRelease');
|
||||
stub.throws(new RequestError('Not found', 404, requestErrorOptions));
|
||||
interceptAuthentication();
|
||||
interceptCollaborator();
|
||||
|
||||
await t.throwsAsync(runTasks(github), { message: /^404 \(Not found\)/ });
|
||||
|
||||
t.is(stub.callCount, 1);
|
||||
stub.restore();
|
||||
});
|
||||
|
||||
test('should handle octokit client error (with retries)', async t => {
|
||||
const options = { github: { tokenRef, pushRepo, host, retryMinTimeout: 0 } };
|
||||
const github = factory(GitHub, { options });
|
||||
const stub = sinon.stub(github.client.repos, 'createRelease');
|
||||
stub.throws(new RequestError('Request failed', 500, requestErrorOptions));
|
||||
interceptAuthentication();
|
||||
interceptCollaborator();
|
||||
|
||||
await t.throwsAsync(runTasks(github), { message: /^500 \(Request failed\)/ });
|
||||
|
||||
t.is(stub.callCount, 3);
|
||||
stub.restore();
|
||||
});
|
||||
|
||||
test('should not call octokit client in dry run', async t => {
|
||||
const options = { 'dry-run': true, git, github: { tokenRef, pushRepo, releaseName: 'R ${version}', assets: ['*'] } };
|
||||
const github = factory(GitHub, { options });
|
||||
const spy = sinon.spy(github, 'client', ['get']);
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('v1.0.0');
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
t.is(spy.get.callCount, 0);
|
||||
t.is(github.log.exec.args[1][0], 'octokit repos.createRelease "R 1.0.1" (v1.0.1)');
|
||||
t.is(github.log.exec.lastCall.args[0], 'octokit repos.uploadReleaseAssets');
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, 'https://github.com/user/repo/releases/tag/v1.0.1');
|
||||
spy.get.restore();
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
test('should skip checks', async t => {
|
||||
const options = { github: { tokenRef, skipChecks: true } };
|
||||
const github = factory(GitHub, { options });
|
||||
await t.notThrowsAsync(github.init());
|
||||
});
|
||||
|
||||
test('should generate GitHub web release url', async t => {
|
||||
const options = {
|
||||
github: {
|
||||
pushRepo,
|
||||
release: true,
|
||||
web: true,
|
||||
releaseName: 'Release ${tagName}',
|
||||
releaseNotes: 'echo Custom notes'
|
||||
}
|
||||
};
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('2.0.1');
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(
|
||||
releaseUrl,
|
||||
'https://github.com/user/repo/releases/new?tag=2.0.2&title=Release+2.0.2&body=Custom+notes&prerelease=false'
|
||||
);
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
test('should generate GitHub web release url for enterprise host', async t => {
|
||||
const options = {
|
||||
git,
|
||||
github: {
|
||||
pushRepo: 'git@custom.example.org:user/repo',
|
||||
release: true,
|
||||
web: true,
|
||||
host: 'custom.example.org',
|
||||
releaseName: 'The Launch',
|
||||
releaseNotes: 'echo It happened'
|
||||
}
|
||||
};
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('2.0.1');
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(
|
||||
releaseUrl,
|
||||
'https://custom.example.org/user/repo/releases/new?tag=2.0.2&title=The+Launch&body=It+happened&prerelease=false'
|
||||
);
|
||||
exec.restore();
|
||||
});
|
||||
|
||||
// eslint-disable-next-line ava/no-skip-test
|
||||
test.skip('should truncate long body', async t => {
|
||||
const releaseNotes = 'a'.repeat(125001);
|
||||
const body = 'a'.repeat(124000) + '...';
|
||||
const options = {
|
||||
git,
|
||||
github: {
|
||||
pushRepo,
|
||||
tokenRef,
|
||||
release: true,
|
||||
releaseName: 'Release ${tagName}',
|
||||
releaseNotes: 'echo ' + releaseNotes
|
||||
}
|
||||
};
|
||||
const github = factory(GitHub, { options });
|
||||
const exec = sinon.stub(github.shell, 'exec').callThrough();
|
||||
exec.withArgs('git log --pretty=format:"* %s (%h)" ${from}...${to}').resolves('');
|
||||
exec.withArgs('git describe --tags --match=* --abbrev=0').resolves('2.0.1');
|
||||
|
||||
interceptAuthentication();
|
||||
interceptCollaborator();
|
||||
interceptCreate({ body: { tag_name: '2.0.2', name: 'Release 2.0.2', body } });
|
||||
|
||||
await runTasks(github);
|
||||
|
||||
const { isReleased, releaseUrl } = github.getContext();
|
||||
t.true(isReleased);
|
||||
t.is(releaseUrl, 'https://github.com/user/repo/releases/tag/2.0.2');
|
||||
exec.restore();
|
||||
});
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"root": true,
|
||||
|
||||
"extends": "@ljharb",
|
||||
|
||||
"rules": {
|
||||
"id-length": 0,
|
||||
"new-cap": [2, {
|
||||
"capIsNewExceptions": [
|
||||
"GetIntrinsic",
|
||||
],
|
||||
}],
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Code coverage report for csv2json/libs/core/CSVError.js</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../../base.css" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1>
|
||||
<a href="../../../index.html">All files</a> / <a href="index.html">csv2json/libs/core</a> CSVError.js
|
||||
</h1>
|
||||
<div class='clearfix'>
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>0/17</span>
|
||||
</div>
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/2</span>
|
||||
</div>
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/5</span>
|
||||
</div>
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>0/17</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
<a name='L4'></a><a href='#L4'>4</a>
|
||||
<a name='L5'></a><a href='#L5'>5</a>
|
||||
<a name='L6'></a><a href='#L6'>6</a>
|
||||
<a name='L7'></a><a href='#L7'>7</a>
|
||||
<a name='L8'></a><a href='#L8'>8</a>
|
||||
<a name='L9'></a><a href='#L9'>9</a>
|
||||
<a name='L10'></a><a href='#L10'>10</a>
|
||||
<a name='L11'></a><a href='#L11'>11</a>
|
||||
<a name='L12'></a><a href='#L12'>12</a>
|
||||
<a name='L13'></a><a href='#L13'>13</a>
|
||||
<a name='L14'></a><a href='#L14'>14</a>
|
||||
<a name='L15'></a><a href='#L15'>15</a>
|
||||
<a name='L16'></a><a href='#L16'>16</a>
|
||||
<a name='L17'></a><a href='#L17'>17</a>
|
||||
<a name='L18'></a><a href='#L18'>18</a>
|
||||
<a name='L19'></a><a href='#L19'>19</a>
|
||||
<a name='L20'></a><a href='#L20'>20</a>
|
||||
<a name='L21'></a><a href='#L21'>21</a>
|
||||
<a name='L22'></a><a href='#L22'>22</a>
|
||||
<a name='L23'></a><a href='#L23'>23</a>
|
||||
<a name='L24'></a><a href='#L24'>24</a>
|
||||
<a name='L25'></a><a href='#L25'>25</a>
|
||||
<a name='L26'></a><a href='#L26'>26</a>
|
||||
<a name='L27'></a><a href='#L27'>27</a>
|
||||
<a name='L28'></a><a href='#L28'>28</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-no"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">var util = <span class="cstat-no" title="statement not covered" >require("util");</span>
|
||||
<span class="cstat-no" title="statement not covered" >module.exports = CSVError;</span>
|
||||
function <span class="fstat-no" title="function not covered" >CSVError(</span>err, index, extra) {
|
||||
<span class="cstat-no" title="statement not covered" > Error.call(this, "");</span>
|
||||
<span class="cstat-no" title="statement not covered" > this.err = err;</span>
|
||||
<span class="cstat-no" title="statement not covered" > this.line = index;</span>
|
||||
<span class="cstat-no" title="statement not covered" > this.extra = extra;</span>
|
||||
<span class="cstat-no" title="statement not covered" > this.message = "Error: " + err + ". JSON Line number: " + index + (extra ? " near: " + extra : "");</span>
|
||||
<span class="cstat-no" title="statement not covered" > this.name = "CSV Error";</span>
|
||||
}
|
||||
<span class="cstat-no" title="statement not covered" >util.inherits(CSVError, Error);</span>
|
||||
|
||||
<span class="cstat-no" title="statement not covered" >CSVError.prototype.toString = <span class="fstat-no" title="function not covered" >fu</span>nction() {</span>
|
||||
<span class="cstat-no" title="statement not covered" > return JSON.stringify([this.err, this.line, this.extra]);</span>
|
||||
};
|
||||
|
||||
<span class="cstat-no" title="statement not covered" >CSVError.column_mismatched = <span class="fstat-no" title="function not covered" >fu</span>nction(index, extra) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > return new CSVError("column_mismatched", index, extra);</span>
|
||||
};
|
||||
|
||||
<span class="cstat-no" title="statement not covered" >CSVError.unclosed_quote = <span class="fstat-no" title="function not covered" >fu</span>nction(index, extra) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > return new CSVError("unclosed_quote", index, extra);</span>
|
||||
};
|
||||
|
||||
<span class="cstat-no" title="statement not covered" >CSVError.fromArray = <span class="fstat-no" title="function not covered" >fu</span>nction(arr) {</span>
|
||||
<span class="cstat-no" title="statement not covered" > return new CSVError(arr[0], arr[1], arr[2]);</span>
|
||||
};
|
||||
</pre></td></tr>
|
||||
</table></pre>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage
|
||||
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri May 11 2018 21:20:20 GMT+0100 (IST)
|
||||
</div>
|
||||
</div>
|
||||
<script src="../../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
if (typeof prettyPrint === 'function') {
|
||||
prettyPrint();
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<script src="../../../sorter.js"></script>
|
||||
<script src="../../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,29 @@
|
||||
/**
|
||||
@deprecated Use the built-in [`Awaited` type](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#the-awaited-type-and-promise-improvements) instead.
|
||||
|
||||
Returns the type that is wrapped inside a `Promise` type.
|
||||
If the type is a nested Promise, it is unwrapped recursively until a non-Promise type is obtained.
|
||||
If the type is not a `Promise`, the type itself is returned.
|
||||
|
||||
@example
|
||||
```
|
||||
import type {PromiseValue} from 'type-fest';
|
||||
|
||||
type AsyncData = Promise<string>;
|
||||
let asyncData: AsyncData = Promise.resolve('ABC');
|
||||
|
||||
type Data = PromiseValue<AsyncData>;
|
||||
let data: Data = await asyncData;
|
||||
|
||||
// Here's an example that shows how this type reacts to non-Promise types.
|
||||
type SyncData = PromiseValue<string>;
|
||||
let syncData: SyncData = getSyncData();
|
||||
|
||||
// Here's an example that shows how this type reacts to recursive Promise types.
|
||||
type RecursiveAsyncData = Promise<Promise<string>>;
|
||||
let recursiveAsyncData: PromiseValue<RecursiveAsyncData> = await Promise.resolve(Promise.resolve('ABC'));
|
||||
```
|
||||
|
||||
@category Async
|
||||
*/
|
||||
export type PromiseValue<PromiseType> = PromiseType extends PromiseLike<infer Value> ? PromiseValue<Value> : PromiseType;
|
||||
@@ -0,0 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = require('./async').pickLimit;
|
||||
@@ -0,0 +1 @@
|
||||
{"name":"d","version":"1.0.1","files":{"package.json":{"checkedAt":1678883668421,"integrity":"sha512-8GFCuBwA8tShQOglNhws9PEM8gqL5RxT0VTGgp9w277bFRofmjarciUi+WCwweT7lwih6DxuqcNYqXpW4VxUZA==","mode":420,"size":1490},".editorconfig":{"checkedAt":1678883668421,"integrity":"sha512-7+3K8iHeevDcCQ3hwjl+TuBHPSyswpx6Hfy7XrO7McXMQe7VLSEqS8e2f/TncWfbBHQvzoghrPEG38f8ibkLww==","mode":448,"size":263},"CHANGELOG.md":{"checkedAt":1678883668421,"integrity":"sha512-eGsZSNh7eaSCi69KQw65xnJPNQ6aKtJqQUk9reHuM2AomUeK1Kl8FioQA4e8wE+YuurOApgn7yaReBW41bAjeg==","mode":420,"size":324},"index.js":{"checkedAt":1678883668421,"integrity":"sha512-+zH9gU3awygeq5w7gM+3T8WmxJvnXpmgxJsDHKHJ9dOAiYDpoP31gQzAVg4EMjnpglRa/obKjbSxIDyY5pcVAQ==","mode":420,"size":1545},"lazy.js":{"checkedAt":1678883668421,"integrity":"sha512-1MgwdJf+bTXrbal7N1Nntz97En0e6xXog+s8COcnLFQYVNMIEiZrqTGEX8pPDq4SIfwp8Ikog85QYEefBS7h7A==","mode":420,"size":3924},"LICENSE":{"checkedAt":1678883668421,"integrity":"sha512-wBINe6YmCgsIktIi7R3eMLEdtYCgwaHN4g/lUlpehsFshJXVGDr9Gk94f17QSF2Q3bm99uVxRaO3BKukwuQukw==","mode":420,"size":773},"README.md":{"checkedAt":1678883668429,"integrity":"sha512-/o9QfgTx6xEtfna09e3GL+NrRos75jOt+i4GKLqH/J3N5+Bb2gmPp1exnY1bjqQf0IOLcuD6E9rRp7TjXpfLQg==","mode":420,"size":3382},".github/FUNDING.yml":{"checkedAt":1678883668429,"integrity":"sha512-wrzRL/hrdY6tLUYwSAR0Vz7+iNUXPYQq0blqyubRSz/kNcWd5jMbu37xegKpX54S0SvJyiQFS9ntUlhZJBZCpg==","mode":420,"size":18},"test/index.js":{"checkedAt":1678883668429,"integrity":"sha512-Nb0Gj2/077kLgiNSulvE9m1sSrdpd6X/mF0xVDo6ut3AmXp4mPvXW2J0avf/srKS402jZY+DKwyPU0gHqtTZEA==","mode":420,"size":6267},"test/lazy.js":{"checkedAt":1678883668429,"integrity":"sha512-9ycXJzTffRDMcNhjFCfIXzl9PpIRLyCCHgdsDeonUXI5pyJXIOCfEDvQFZ9JBPRPU1zmrN9J4Z1w0mOBdzNyYw==","mode":420,"size":2832},"test/auto-bind.js":{"checkedAt":1678883668429,"integrity":"sha512-zqLMXRvwzJHKW9oYLQASrBv9wdKjq6MJ7BlXfyeZd/tzZQdsG1t9rjbpICh3gy2j6hhweiYdHKF6LGLJrF2JyQ==","mode":420,"size":253},"auto-bind.js":{"checkedAt":1678883668429,"integrity":"sha512-pyhU4aRTgq9fD0uru3yq3J+zS610WmRqTCLam/3sZPIVLznqJ0HMgZ0cUpOPiH7SAwTi/P9hOE247h/iVSPpnA==","mode":420,"size":1236},"CHANGES":{"checkedAt":1678883668436,"integrity":"sha512-DpeX4lf7hTU+ec0XJcMhy73Btgpbsgh0w4qYWWr+lmaxtIqIsfIfYHItCCXdxuXpmsK87tTYhtstdW+Ty92oZg==","mode":420,"size":486}}}
|
||||
@@ -0,0 +1,5 @@
|
||||
var convert = require('./convert'),
|
||||
func = convert('join', require('../join'));
|
||||
|
||||
func.placeholder = require('./placeholder');
|
||||
module.exports = func;
|
||||
@@ -0,0 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
var defined = require('../');
|
||||
var opts = { y: false, w: 4 };
|
||||
var x = defined(opts.x, opts.y, opts.w, 8);
|
||||
console.log(x);
|
||||
@@ -0,0 +1 @@
|
||||
const e=require("mri"),t="__all__",i="__default__",s="\n";function r(e){if(!e.length)return"";let t=function(e){let t=0,i=0,s=0,r=e.length;if(r)for(;r--;)i=e[r].length,i>t&&(s=r,t=i);return e[s].length}(e.map(e=>e[0]))+4;return e.map(e=>e[0]+" ".repeat(t-e[0].length)+e[1]+(null==e[2]?"":` (default ${e[2]})`))}function n(e){return e}function l(e,t,i){if(!t||!t.length)return"";let r=0,n="";for(n+="\n "+e;r<t.length;r++)n+="\n "+i(t[r]);return n+s}function a(e,t,i=1){let s=l("ERROR",[t],n);s+=`\n Run \`$ ${e} --help\` for more info.\n`,console.error(s),process.exit(i)}class o{constructor(e,s){let[r,...n]=e.split(/\s+/);s=s||n.length>0,this.bin=r,this.ver="0.0.0",this.default="",this.tree={},this.command(t),this.command([i].concat(s?n:"<command>").join(" ")),this.single=s,this.curr=""}command(e,t,i={}){if(this.single)throw new Error('Disable "single" mode to add commands');let s=[],r=[],n=/(\[|<)/;if(e.split(/\s+/).forEach(e=>{(n.test(e.charAt(0))?r:s).push(e)}),s=s.join(" "),s in this.tree)throw new Error("Command already exists: "+s);return s.includes("__")||r.unshift(s),r=r.join(" "),this.curr=s,i.default&&(this.default=s),this.tree[s]={usage:r,alibi:[],options:[],alias:{},default:{},examples:[]},i.alias&&this.alias(i.alias),t&&this.describe(t),this}describe(e){return this.tree[this.curr||i].describe=Array.isArray(e)?e:function(e){return(e||"").replace(/([.?!])\s*(?=[A-Z])/g,"$1|").split("|")}(e),this}alias(...e){if(this.single)throw new Error('Cannot call `alias()` in "single" mode');if(!this.curr)throw new Error("Cannot call `alias()` before defining a command");return(this.tree[this.curr].alibi=this.tree[this.curr].alibi.concat(...e)).forEach(e=>this.tree[e]=this.curr),this}option(e,i,s){let r=this.tree[this.curr||t],[n,l]=function(e){return(e||"").split(/^-{1,2}|,|\s+-{1,2}|\s+/).filter(Boolean)}(e);if(l&&l.length>1&&([n,l]=[l,n]),e="--"+n,l&&l.length>0){e=`-${l}, ${e}`;let t=r.alias[l];r.alias[l]=(t||[]).concat(n)}let a=[e,i||""];return void 0!==s?(a.push(s),r.default[n]=s):l||(r.default[n]=void 0),r.options.push(a),this}action(e){return this.tree[this.curr||i].handler=e,this}example(e){return this.tree[this.curr||i].examples.push(e),this}version(e){return this.ver=e,this}parse(s,r={}){s=s.slice();let n,l,o,h,u=2,c=e(s.slice(u),{alias:{h:"help",v:"version"}}),f=this.single,p=this.bin,d="";if(f)h=this.tree[i];else{let e,t=1,i=c._.length+1;for(;t<i;t++)if(n=c._.slice(0,t).join(" "),e=this.tree[n],"string"==typeof e)l=(d=e).split(" "),s.splice(s.indexOf(c._[0]),t,...l),t+=l.length-t;else if(e)d=n;else if(d)break;if(h=this.tree[d],o=void 0===h,o)if(this.default)d=this.default,h=this.tree[d],s.unshift(d),u++;else if(n)return a(p,"Invalid command: "+n)}if(c.help)return this.help(!f&&!o&&d);if(c.version)return this._version();if(!f&&void 0===h)return a(p,"No command specified.");let g=this.tree[t];r.alias=Object.assign(g.alias,h.alias,r.alias),r.default=Object.assign(g.default,h.default,r.default),n=d.split(" "),l=s.indexOf(n[0],2),~l&&s.splice(l,n.length);let m=e(s.slice(u),r);if(!m||"string"==typeof m)return a(p,m||"Parsed unknown option flag(s)!");let b=h.usage.split(/\s+/),_=b.filter(e=>"<"===e.charAt(0)),v=m._.splice(0,_.length);if(v.length<_.length)return d&&(p+=" "+d),a(p,"Insufficient arguments!");b.filter(e=>"["===e.charAt(0)).forEach(e=>{v.push(m._.shift())}),v.push(m);let $=h.handler;return r.lazy?{args:v,name:d,handler:$}:$.apply(null,v)}help(e){console.log(function(e,a,o,h){let u="",c=a[o],f="$ "+e,p=a[t],d=e=>`${f} ${e}`.replace(/\s+/g," "),g=[["-h, --help","Displays this message"]];if(o===i&&g.unshift(["-v, --version","Displays current version"]),c.options=(c.options||[]).concat(p.options,g),c.options.length>0&&(c.usage+=" [options]"),u+=l("Description",c.describe,n),u+=l("Usage",[c.usage],d),h||o!==i)h||o===i||(u+=l("Aliases",c.alibi,d));else{let e,t=/^__/,i="",o=[];for(e in a)"string"==typeof a[e]||t.test(e)||o.push([e,(a[e].describe||[""])[0]])<3&&(i+=`\n ${f} ${e} --help`);u+=l("Available Commands",r(o),n),u+="\n For more info, run any command with the `--help` flag"+i+s}return u+=l("Options",r(c.options),n),u+=l("Examples",c.examples.map(d),n),u}(this.bin,this.tree,e||i,this.single))}_version(){console.log(`${this.bin}, ${this.ver}`)}}module.exports=(e,t)=>new o(e,t);
|
||||
@@ -0,0 +1,54 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.throttle = exports.defaultThrottleConfig = void 0;
|
||||
var lift_1 = require("../util/lift");
|
||||
var OperatorSubscriber_1 = require("./OperatorSubscriber");
|
||||
var innerFrom_1 = require("../observable/innerFrom");
|
||||
exports.defaultThrottleConfig = {
|
||||
leading: true,
|
||||
trailing: false,
|
||||
};
|
||||
function throttle(durationSelector, config) {
|
||||
if (config === void 0) { config = exports.defaultThrottleConfig; }
|
||||
return lift_1.operate(function (source, subscriber) {
|
||||
var leading = config.leading, trailing = config.trailing;
|
||||
var hasValue = false;
|
||||
var sendValue = null;
|
||||
var throttled = null;
|
||||
var isComplete = false;
|
||||
var endThrottling = function () {
|
||||
throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();
|
||||
throttled = null;
|
||||
if (trailing) {
|
||||
send();
|
||||
isComplete && subscriber.complete();
|
||||
}
|
||||
};
|
||||
var cleanupThrottling = function () {
|
||||
throttled = null;
|
||||
isComplete && subscriber.complete();
|
||||
};
|
||||
var startThrottle = function (value) {
|
||||
return (throttled = innerFrom_1.innerFrom(durationSelector(value)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));
|
||||
};
|
||||
var send = function () {
|
||||
if (hasValue) {
|
||||
hasValue = false;
|
||||
var value = sendValue;
|
||||
sendValue = null;
|
||||
subscriber.next(value);
|
||||
!isComplete && startThrottle(value);
|
||||
}
|
||||
};
|
||||
source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) {
|
||||
hasValue = true;
|
||||
sendValue = value;
|
||||
!(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));
|
||||
}, function () {
|
||||
isComplete = true;
|
||||
!(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();
|
||||
}));
|
||||
});
|
||||
}
|
||||
exports.throttle = throttle;
|
||||
//# sourceMappingURL=throttle.js.map
|
||||
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.arrRemove = void 0;
|
||||
function arrRemove(arr, item) {
|
||||
if (arr) {
|
||||
var index = arr.indexOf(item);
|
||||
0 <= index && arr.splice(index, 1);
|
||||
}
|
||||
}
|
||||
exports.arrRemove = arrRemove;
|
||||
//# sourceMappingURL=arrRemove.js.map
|
||||
@@ -0,0 +1,143 @@
|
||||
/**
|
||||
* The `readline/promise` module provides an API for reading lines of input from a Readable stream one line at a time.
|
||||
*
|
||||
* @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/readline/promises.js)
|
||||
* @since v17.0.0
|
||||
*/
|
||||
declare module 'readline/promises' {
|
||||
import { Interface as _Interface, ReadLineOptions, Completer, AsyncCompleter, Direction } from 'node:readline';
|
||||
import { Abortable } from 'node:events';
|
||||
|
||||
class Interface extends _Interface {
|
||||
/**
|
||||
* The rl.question() method displays the query by writing it to the output, waits for user input to be provided on input,
|
||||
* then invokes the callback function passing the provided input as the first argument.
|
||||
*
|
||||
* When called, rl.question() will resume the input stream if it has been paused.
|
||||
*
|
||||
* If the readlinePromises.Interface was created with output set to null or undefined the query is not written.
|
||||
*
|
||||
* If the question is called after rl.close(), it returns a rejected promise.
|
||||
*
|
||||
* Example usage:
|
||||
*
|
||||
* ```js
|
||||
* const answer = await rl.question('What is your favorite food? ');
|
||||
* console.log(`Oh, so your favorite food is ${answer}`);
|
||||
* ```
|
||||
*
|
||||
* Using an AbortSignal to cancel a question.
|
||||
*
|
||||
* ```js
|
||||
* const signal = AbortSignal.timeout(10_000);
|
||||
*
|
||||
* signal.addEventListener('abort', () => {
|
||||
* console.log('The food question timed out');
|
||||
* }, { once: true });
|
||||
*
|
||||
* const answer = await rl.question('What is your favorite food? ', { signal });
|
||||
* console.log(`Oh, so your favorite food is ${answer}`);
|
||||
* ```
|
||||
*
|
||||
* @since v17.0.0
|
||||
* @param query A statement or query to write to output, prepended to the prompt.
|
||||
*/
|
||||
question(query: string): Promise<string>;
|
||||
question(query: string, options: Abortable): Promise<string>;
|
||||
}
|
||||
|
||||
class Readline {
|
||||
/**
|
||||
* @param stream A TTY stream.
|
||||
*/
|
||||
constructor(stream: NodeJS.WritableStream, options?: { autoCommit?: boolean });
|
||||
/**
|
||||
* The `rl.clearLine()` method adds to the internal list of pending action an action that clears current line of the associated `stream` in a specified direction identified by `dir`.
|
||||
* Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor.
|
||||
*/
|
||||
clearLine(dir: Direction): this;
|
||||
/**
|
||||
* The `rl.clearScreenDown()` method adds to the internal list of pending action an action that clears the associated `stream` from the current position of the cursor down.
|
||||
* Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor.
|
||||
*/
|
||||
clearScreenDown(): this;
|
||||
/**
|
||||
* The `rl.commit()` method sends all the pending actions to the associated `stream` and clears the internal list of pending actions.
|
||||
*/
|
||||
commit(): Promise<void>;
|
||||
/**
|
||||
* The `rl.cursorTo()` method adds to the internal list of pending action an action that moves cursor to the specified position in the associated `stream`.
|
||||
* Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor.
|
||||
*/
|
||||
cursorTo(x: number, y?: number): this;
|
||||
/**
|
||||
* The `rl.moveCursor()` method adds to the internal list of pending action an action that moves the cursor relative to its current position in the associated `stream`.
|
||||
* Call `rl.commit()` to see the effect of this method, unless autoCommit: true was passed to the constructor.
|
||||
*/
|
||||
moveCursor(dx: number, dy: number): this;
|
||||
/**
|
||||
* The `rl.rollback()` method clears the internal list of pending actions without sending it to the associated `stream`.
|
||||
*/
|
||||
rollback(): this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The `readlinePromises.createInterface()` method creates a new `readlinePromises.Interface` instance.
|
||||
*
|
||||
* ```js
|
||||
* const readlinePromises = require('node:readline/promises');
|
||||
* const rl = readlinePromises.createInterface({
|
||||
* input: process.stdin,
|
||||
* output: process.stdout
|
||||
* });
|
||||
* ```
|
||||
*
|
||||
* Once the `readlinePromises.Interface` instance is created, the most common case is to listen for the `'line'` event:
|
||||
*
|
||||
* ```js
|
||||
* rl.on('line', (line) => {
|
||||
* console.log(`Received: ${line}`);
|
||||
* });
|
||||
* ```
|
||||
*
|
||||
* If `terminal` is `true` for this instance then the `output` stream will get the best compatibility if it defines an `output.columns` property,
|
||||
* and emits a `'resize'` event on the `output`, if or when the columns ever change (`process.stdout` does this automatically when it is a TTY).
|
||||
*
|
||||
* ## Use of the `completer` function
|
||||
*
|
||||
* The `completer` function takes the current line entered by the user as an argument, and returns an `Array` with 2 entries:
|
||||
*
|
||||
* - An Array with matching entries for the completion.
|
||||
* - The substring that was used for the matching.
|
||||
*
|
||||
* For instance: `[[substr1, substr2, ...], originalsubstring]`.
|
||||
*
|
||||
* ```js
|
||||
* function completer(line) {
|
||||
* const completions = '.help .error .exit .quit .q'.split(' ');
|
||||
* const hits = completions.filter((c) => c.startsWith(line));
|
||||
* // Show all completions if none found
|
||||
* return [hits.length ? hits : completions, line];
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* The `completer` function can also returns a `Promise`, or be asynchronous:
|
||||
*
|
||||
* ```js
|
||||
* async function completer(linePartial) {
|
||||
* await someAsyncWork();
|
||||
* return [['123'], linePartial];
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
function createInterface(
|
||||
input: NodeJS.ReadableStream,
|
||||
output?: NodeJS.WritableStream,
|
||||
completer?: Completer | AsyncCompleter,
|
||||
terminal?: boolean,
|
||||
): Interface;
|
||||
function createInterface(options: ReadLineOptions): Interface;
|
||||
}
|
||||
declare module 'node:readline/promises' {
|
||||
export * from 'readline/promises';
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
module.exports = (function(){
|
||||
var AssertionError = (function() {
|
||||
function AssertionError(a) {
|
||||
this.constructor$(a);
|
||||
this.message = a;
|
||||
this.name = "AssertionError";
|
||||
}
|
||||
AssertionError.prototype = new Error();
|
||||
AssertionError.prototype.constructor = AssertionError;
|
||||
AssertionError.prototype.constructor$ = Error;
|
||||
return AssertionError;
|
||||
})();
|
||||
|
||||
function getParams(args) {
|
||||
var params = [];
|
||||
for (var i = 0; i < args.length; ++i) params.push("arg" + i);
|
||||
return params;
|
||||
}
|
||||
|
||||
function nativeAssert(callName, args, expect) {
|
||||
try {
|
||||
var params = getParams(args);
|
||||
var constructorArgs = params;
|
||||
constructorArgs.push("return " +
|
||||
callName + "("+ params.join(",") + ");");
|
||||
var fn = Function.apply(null, constructorArgs);
|
||||
return fn.apply(null, args);
|
||||
} catch (e) {
|
||||
if (!(e instanceof SyntaxError)) {
|
||||
throw e;
|
||||
} else {
|
||||
return expect;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return function assert(boolExpr, message) {
|
||||
if (boolExpr === true) return;
|
||||
|
||||
if (typeof boolExpr === "string" &&
|
||||
boolExpr.charAt(0) === "%") {
|
||||
var nativeCallName = boolExpr;
|
||||
var $_len = arguments.length;var args = new Array(Math.max($_len - 2, 0)); for(var $_i = 2; $_i < $_len; ++$_i) {args[$_i - 2] = arguments[$_i];};
|
||||
if (nativeAssert(nativeCallName, args, message) === message) return;
|
||||
message = (nativeCallName + " !== " + message);
|
||||
}
|
||||
|
||||
var ret = new AssertionError(message);
|
||||
if (Error.captureStackTrace) {
|
||||
Error.captureStackTrace(ret, assert);
|
||||
}
|
||||
throw ret;
|
||||
};
|
||||
})();
|
||||
@@ -0,0 +1,73 @@
|
||||
var common = require('./common');
|
||||
var fs = require('fs');
|
||||
|
||||
common.register('grep', _grep, {
|
||||
globStart: 2, // don't glob-expand the regex
|
||||
canReceivePipe: true,
|
||||
cmdOptions: {
|
||||
'v': 'inverse',
|
||||
'l': 'nameOnly',
|
||||
'i': 'ignoreCase',
|
||||
},
|
||||
});
|
||||
|
||||
//@
|
||||
//@ ### grep([options,] regex_filter, file [, file ...])
|
||||
//@ ### grep([options,] regex_filter, file_array)
|
||||
//@
|
||||
//@ Available options:
|
||||
//@
|
||||
//@ + `-v`: Invert `regex_filter` (only print non-matching lines).
|
||||
//@ + `-l`: Print only filenames of matching files.
|
||||
//@ + `-i`: Ignore case.
|
||||
//@
|
||||
//@ Examples:
|
||||
//@
|
||||
//@ ```javascript
|
||||
//@ grep('-v', 'GLOBAL_VARIABLE', '*.js');
|
||||
//@ grep('GLOBAL_VARIABLE', '*.js');
|
||||
//@ ```
|
||||
//@
|
||||
//@ Reads input string from given files and returns a string containing all lines of the
|
||||
//@ file that match the given `regex_filter`.
|
||||
function _grep(options, regex, files) {
|
||||
// Check if this is coming from a pipe
|
||||
var pipe = common.readFromPipe();
|
||||
|
||||
if (!files && !pipe) common.error('no paths given', 2);
|
||||
|
||||
files = [].slice.call(arguments, 2);
|
||||
|
||||
if (pipe) {
|
||||
files.unshift('-');
|
||||
}
|
||||
|
||||
var grep = [];
|
||||
if (options.ignoreCase) {
|
||||
regex = new RegExp(regex, 'i');
|
||||
}
|
||||
files.forEach(function (file) {
|
||||
if (!fs.existsSync(file) && file !== '-') {
|
||||
common.error('no such file or directory: ' + file, 2, { continue: true });
|
||||
return;
|
||||
}
|
||||
|
||||
var contents = file === '-' ? pipe : fs.readFileSync(file, 'utf8');
|
||||
if (options.nameOnly) {
|
||||
if (contents.match(regex)) {
|
||||
grep.push(file);
|
||||
}
|
||||
} else {
|
||||
var lines = contents.split('\n');
|
||||
lines.forEach(function (line) {
|
||||
var matched = line.match(regex);
|
||||
if ((options.inverse && !matched) || (!options.inverse && matched)) {
|
||||
grep.push(line);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return grep.join('\n') + '\n';
|
||||
}
|
||||
module.exports = _grep;
|
||||
@@ -0,0 +1,139 @@
|
||||
/* Generated by `npm run build`, do not edit! */
|
||||
|
||||
"use strict"
|
||||
|
||||
var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g
|
||||
|
||||
var acorn = require("acorn")
|
||||
var tt = acorn.tokTypes
|
||||
|
||||
function maybeParseFieldValue(field) {
|
||||
if (this.eat(tt.eq)) {
|
||||
var oldInFieldValue = this._inStaticFieldValue
|
||||
this._inStaticFieldValue = true
|
||||
field.value = this.parseExpression()
|
||||
this._inStaticFieldValue = oldInFieldValue
|
||||
} else { field.value = null }
|
||||
}
|
||||
|
||||
var privateClassElements = require("../private-class-elements")
|
||||
|
||||
module.exports = function(Parser) {
|
||||
var ExtendedParser = privateClassElements(Parser)
|
||||
|
||||
return /*@__PURE__*/(function (ExtendedParser) {
|
||||
function anonymous () {
|
||||
ExtendedParser.apply(this, arguments);
|
||||
}
|
||||
|
||||
if ( ExtendedParser ) anonymous.__proto__ = ExtendedParser;
|
||||
anonymous.prototype = Object.create( ExtendedParser && ExtendedParser.prototype );
|
||||
anonymous.prototype.constructor = anonymous;
|
||||
|
||||
anonymous.prototype.parseClassElement = function parseClassElement (_constructorAllowsSuper) {
|
||||
var this$1 = this;
|
||||
|
||||
if (this.eat(tt.semi)) { return null }
|
||||
|
||||
var node = this.startNode()
|
||||
|
||||
var tryContextual = function (k, noLineBreak) {
|
||||
if (typeof noLineBreak == "undefined") { noLineBreak = false }
|
||||
var start = this$1.start, startLoc = this$1.startLoc
|
||||
if (!this$1.eatContextual(k)) { return false }
|
||||
if (this$1.type !== tt.parenL && (!noLineBreak || !this$1.canInsertSemicolon())) { return true }
|
||||
if (node.key) { this$1.unexpected() }
|
||||
node.computed = false
|
||||
node.key = this$1.startNodeAt(start, startLoc)
|
||||
node.key.name = k
|
||||
this$1.finishNode(node.key, "Identifier")
|
||||
return false
|
||||
}
|
||||
|
||||
node.static = tryContextual("static")
|
||||
if (!node.static) { return ExtendedParser.prototype.parseClassElement.apply(this, arguments) }
|
||||
|
||||
var isGenerator = this.eat(tt.star)
|
||||
var isAsync = false
|
||||
if (!isGenerator) {
|
||||
// Special-case for `async`, since `parseClassMember` currently looks
|
||||
// for `(` to determine whether `async` is a method name
|
||||
if (this.options.ecmaVersion >= 8 && this.isContextual("async")) {
|
||||
skipWhiteSpace.lastIndex = this.pos
|
||||
var skip = skipWhiteSpace.exec(this.input)
|
||||
var next = this.input.charAt(this.pos + skip[0].length)
|
||||
if (next === ";" || next === "=") {
|
||||
node.key = this.parseIdent(true)
|
||||
node.computed = false
|
||||
maybeParseFieldValue.call(this, node)
|
||||
this.finishNode(node, "FieldDefinition")
|
||||
this.semicolon()
|
||||
return node
|
||||
} else if (this.options.ecmaVersion >= 8 && tryContextual("async", true)) {
|
||||
isAsync = true
|
||||
isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)
|
||||
}
|
||||
} else if (tryContextual("get")) {
|
||||
node.kind = "get"
|
||||
} else if (tryContextual("set")) {
|
||||
node.kind = "set"
|
||||
}
|
||||
}
|
||||
if (this.type === this.privateNameToken) {
|
||||
this.parsePrivateClassElementName(node)
|
||||
if (this.type !== tt.parenL) {
|
||||
if (node.key.name === "prototype") {
|
||||
this.raise(node.key.start, "Classes may not have a private static property named prototype")
|
||||
}
|
||||
maybeParseFieldValue.call(this, node)
|
||||
this.finishNode(node, "FieldDefinition")
|
||||
this.semicolon()
|
||||
return node
|
||||
}
|
||||
} else if (!node.key) {
|
||||
this.parsePropertyName(node)
|
||||
if ((node.key.name || node.key.value) === "prototype" && !node.computed) {
|
||||
this.raise(node.key.start, "Classes may not have a static property named prototype")
|
||||
}
|
||||
}
|
||||
if (!node.kind) { node.kind = "method" }
|
||||
this.parseClassMethod(node, isGenerator, isAsync)
|
||||
if (!node.kind && (node.key.name || node.key.value) === "constructor" && !node.computed) {
|
||||
this.raise(node.key.start, "Classes may not have a static field named constructor")
|
||||
}
|
||||
if (node.kind === "get" && node.value.params.length !== 0) {
|
||||
this.raiseRecoverable(node.value.start, "getter should have no params")
|
||||
}
|
||||
if (node.kind === "set" && node.value.params.length !== 1) {
|
||||
this.raiseRecoverable(node.value.start, "setter should have exactly one param")
|
||||
}
|
||||
if (node.kind === "set" && node.value.params[0].type === "RestElement") {
|
||||
this.raiseRecoverable(node.value.params[0].start, "Setter cannot use rest params")
|
||||
}
|
||||
|
||||
return node
|
||||
|
||||
};
|
||||
|
||||
// Parse public static fields
|
||||
anonymous.prototype.parseClassMethod = function parseClassMethod (method, isGenerator, isAsync, _allowsDirectSuper) {
|
||||
if (isGenerator || isAsync || method.kind != "method" || !method.static || this.options.ecmaVersion < 8 || this.type == tt.parenL) {
|
||||
return ExtendedParser.prototype.parseClassMethod.apply(this, arguments)
|
||||
}
|
||||
maybeParseFieldValue.call(this, method)
|
||||
delete method.kind
|
||||
method = this.finishNode(method, "FieldDefinition")
|
||||
this.semicolon()
|
||||
return method
|
||||
};
|
||||
|
||||
// Prohibit arguments in class field initializers
|
||||
anonymous.prototype.parseIdent = function parseIdent (liberal, isBinding) {
|
||||
var ident = ExtendedParser.prototype.parseIdent.call(this, liberal, isBinding)
|
||||
if (this._inStaticFieldValue && ident.name == "arguments") { this.raise(ident.start, "A static class field initializer may not contain arguments") }
|
||||
return ident
|
||||
};
|
||||
|
||||
return anonymous;
|
||||
}(ExtendedParser))
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "build", {
|
||||
enumerable: true,
|
||||
get: ()=>build
|
||||
});
|
||||
const _fs = /*#__PURE__*/ _interopRequireDefault(require("fs"));
|
||||
const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
||||
const _plugin = require("./plugin");
|
||||
function _interopRequireDefault(obj) {
|
||||
return obj && obj.__esModule ? obj : {
|
||||
default: obj
|
||||
};
|
||||
}
|
||||
async function build(args, configs) {
|
||||
let input = args["--input"];
|
||||
let shouldWatch = args["--watch"];
|
||||
// TODO: Deprecate this in future versions
|
||||
if (!input && args["_"][1]) {
|
||||
console.error("[deprecation] Running tailwindcss without -i, please provide an input file.");
|
||||
input = args["--input"] = args["_"][1];
|
||||
}
|
||||
if (input && input !== "-" && !_fs.default.existsSync(input = _path.default.resolve(input))) {
|
||||
console.error(`Specified input file ${args["--input"]} does not exist.`);
|
||||
process.exit(9);
|
||||
}
|
||||
if (args["--config"] && !_fs.default.existsSync(args["--config"] = _path.default.resolve(args["--config"]))) {
|
||||
console.error(`Specified config file ${args["--config"]} does not exist.`);
|
||||
process.exit(9);
|
||||
}
|
||||
// TODO: Reference the @config path here if exists
|
||||
let configPath = args["--config"] ? args["--config"] : ((defaultPath)=>_fs.default.existsSync(defaultPath) ? defaultPath : null)(_path.default.resolve(`./${configs.tailwind}`));
|
||||
let processor = await (0, _plugin.createProcessor)(args, configPath);
|
||||
if (shouldWatch) {
|
||||
// Abort the watcher if stdin is closed to avoid zombie processes
|
||||
// You can disable this behavior with --watch=always
|
||||
if (args["--watch"] !== "always") {
|
||||
process.stdin.on("end", ()=>process.exit(0));
|
||||
}
|
||||
process.stdin.resume();
|
||||
await processor.watch();
|
||||
} else {
|
||||
await processor.build();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
module.exports = require('stream');
|
||||
@@ -0,0 +1,9 @@
|
||||
import { ObservableInput } from '../types';
|
||||
import { Observable } from '../Observable';
|
||||
/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */
|
||||
export declare function partition<T, U extends T, A>(source: ObservableInput<T>, predicate: (this: A, value: T, index: number) => value is U, thisArg: A): [Observable<U>, Observable<Exclude<T, U>>];
|
||||
export declare function partition<T, U extends T>(source: ObservableInput<T>, predicate: (value: T, index: number) => value is U): [Observable<U>, Observable<Exclude<T, U>>];
|
||||
/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */
|
||||
export declare function partition<T, A>(source: ObservableInput<T>, predicate: (this: A, value: T, index: number) => boolean, thisArg: A): [Observable<T>, Observable<T>];
|
||||
export declare function partition<T>(source: ObservableInput<T>, predicate: (value: T, index: number) => boolean): [Observable<T>, Observable<T>];
|
||||
//# sourceMappingURL=partition.d.ts.map
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,208 @@
|
||||
// Generated by CoffeeScript 1.12.7
|
||||
(function() {
|
||||
var Netmask, atob, chr, chr0, chrA, chra, ip2long, long2ip;
|
||||
|
||||
long2ip = function(long) {
|
||||
var a, b, c, d;
|
||||
a = (long & (0xff << 24)) >>> 24;
|
||||
b = (long & (0xff << 16)) >>> 16;
|
||||
c = (long & (0xff << 8)) >>> 8;
|
||||
d = long & 0xff;
|
||||
return [a, b, c, d].join('.');
|
||||
};
|
||||
|
||||
ip2long = function(ip) {
|
||||
var b, c, i, j, n, ref;
|
||||
b = [];
|
||||
for (i = j = 0; j <= 3; i = ++j) {
|
||||
if (ip.length === 0) {
|
||||
break;
|
||||
}
|
||||
if (i > 0) {
|
||||
if (ip[0] !== '.') {
|
||||
throw new Error('Invalid IP');
|
||||
}
|
||||
ip = ip.substring(1);
|
||||
}
|
||||
ref = atob(ip), n = ref[0], c = ref[1];
|
||||
ip = ip.substring(c);
|
||||
b.push(n);
|
||||
}
|
||||
if (ip.length !== 0) {
|
||||
throw new Error('Invalid IP');
|
||||
}
|
||||
switch (b.length) {
|
||||
case 1:
|
||||
if (b[0] > 0xFFFFFFFF) {
|
||||
throw new Error('Invalid IP');
|
||||
}
|
||||
return b[0] >>> 0;
|
||||
case 2:
|
||||
if (b[0] > 0xFF || b[1] > 0xFFFFFF) {
|
||||
throw new Error('Invalid IP');
|
||||
}
|
||||
return (b[0] << 24 | b[1]) >>> 0;
|
||||
case 3:
|
||||
if (b[0] > 0xFF || b[1] > 0xFF || b[2] > 0xFFFF) {
|
||||
throw new Error('Invalid IP');
|
||||
}
|
||||
return (b[0] << 24 | b[1] << 16 | b[2]) >>> 0;
|
||||
case 4:
|
||||
if (b[0] > 0xFF || b[1] > 0xFF || b[2] > 0xFF || b[3] > 0xFF) {
|
||||
throw new Error('Invalid IP');
|
||||
}
|
||||
return (b[0] << 24 | b[1] << 16 | b[2] << 8 | b[3]) >>> 0;
|
||||
default:
|
||||
throw new Error('Invalid IP');
|
||||
}
|
||||
};
|
||||
|
||||
chr = function(b) {
|
||||
return b.charCodeAt(0);
|
||||
};
|
||||
|
||||
chr0 = chr('0');
|
||||
|
||||
chra = chr('a');
|
||||
|
||||
chrA = chr('A');
|
||||
|
||||
atob = function(s) {
|
||||
var base, dmax, i, n, start;
|
||||
n = 0;
|
||||
base = 10;
|
||||
dmax = '9';
|
||||
i = 0;
|
||||
if (s.length > 1 && s[i] === '0') {
|
||||
if (s[i + 1] === 'x' || s[i + 1] === 'X') {
|
||||
i += 2;
|
||||
base = 16;
|
||||
} else if ('0' <= s[i + 1] && s[i + 1] <= '9') {
|
||||
i++;
|
||||
base = 8;
|
||||
dmax = '7';
|
||||
}
|
||||
}
|
||||
start = i;
|
||||
while (i < s.length) {
|
||||
if ('0' <= s[i] && s[i] <= dmax) {
|
||||
n = (n * base + (chr(s[i]) - chr0)) >>> 0;
|
||||
} else if (base === 16) {
|
||||
if ('a' <= s[i] && s[i] <= 'f') {
|
||||
n = (n * base + (10 + chr(s[i]) - chra)) >>> 0;
|
||||
} else if ('A' <= s[i] && s[i] <= 'F') {
|
||||
n = (n * base + (10 + chr(s[i]) - chrA)) >>> 0;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
if (n > 0xFFFFFFFF) {
|
||||
throw new Error('too large');
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (i === start) {
|
||||
throw new Error('empty octet');
|
||||
}
|
||||
return [n, i];
|
||||
};
|
||||
|
||||
Netmask = (function() {
|
||||
function Netmask(net, mask) {
|
||||
var error, i, j, ref;
|
||||
if (typeof net !== 'string') {
|
||||
throw new Error("Missing `net' parameter");
|
||||
}
|
||||
if (!mask) {
|
||||
ref = net.split('/', 2), net = ref[0], mask = ref[1];
|
||||
}
|
||||
if (!mask) {
|
||||
mask = 32;
|
||||
}
|
||||
if (typeof mask === 'string' && mask.indexOf('.') > -1) {
|
||||
try {
|
||||
this.maskLong = ip2long(mask);
|
||||
} catch (error1) {
|
||||
error = error1;
|
||||
throw new Error("Invalid mask: " + mask);
|
||||
}
|
||||
for (i = j = 32; j >= 0; i = --j) {
|
||||
if (this.maskLong === (0xffffffff << (32 - i)) >>> 0) {
|
||||
this.bitmask = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (mask || mask === 0) {
|
||||
this.bitmask = parseInt(mask, 10);
|
||||
this.maskLong = 0;
|
||||
if (this.bitmask > 0) {
|
||||
this.maskLong = (0xffffffff << (32 - this.bitmask)) >>> 0;
|
||||
}
|
||||
} else {
|
||||
throw new Error("Invalid mask: empty");
|
||||
}
|
||||
try {
|
||||
this.netLong = (ip2long(net) & this.maskLong) >>> 0;
|
||||
} catch (error1) {
|
||||
error = error1;
|
||||
throw new Error("Invalid net address: " + net);
|
||||
}
|
||||
if (!(this.bitmask <= 32)) {
|
||||
throw new Error("Invalid mask for ip4: " + mask);
|
||||
}
|
||||
this.size = Math.pow(2, 32 - this.bitmask);
|
||||
this.base = long2ip(this.netLong);
|
||||
this.mask = long2ip(this.maskLong);
|
||||
this.hostmask = long2ip(~this.maskLong);
|
||||
this.first = this.bitmask <= 30 ? long2ip(this.netLong + 1) : this.base;
|
||||
this.last = this.bitmask <= 30 ? long2ip(this.netLong + this.size - 2) : long2ip(this.netLong + this.size - 1);
|
||||
this.broadcast = this.bitmask <= 30 ? long2ip(this.netLong + this.size - 1) : void 0;
|
||||
}
|
||||
|
||||
Netmask.prototype.contains = function(ip) {
|
||||
if (typeof ip === 'string' && (ip.indexOf('/') > 0 || ip.split('.').length !== 4)) {
|
||||
ip = new Netmask(ip);
|
||||
}
|
||||
if (ip instanceof Netmask) {
|
||||
return this.contains(ip.base) && this.contains(ip.broadcast || ip.last);
|
||||
} else {
|
||||
return (ip2long(ip) & this.maskLong) >>> 0 === (this.netLong & this.maskLong) >>> 0;
|
||||
}
|
||||
};
|
||||
|
||||
Netmask.prototype.next = function(count) {
|
||||
if (count == null) {
|
||||
count = 1;
|
||||
}
|
||||
return new Netmask(long2ip(this.netLong + (this.size * count)), this.mask);
|
||||
};
|
||||
|
||||
Netmask.prototype.forEach = function(fn) {
|
||||
var index, lastLong, long;
|
||||
long = ip2long(this.first);
|
||||
lastLong = ip2long(this.last);
|
||||
index = 0;
|
||||
while (long <= lastLong) {
|
||||
fn(long2ip(long), long, index);
|
||||
index++;
|
||||
long++;
|
||||
}
|
||||
};
|
||||
|
||||
Netmask.prototype.toString = function() {
|
||||
return this.base + "/" + this.bitmask;
|
||||
};
|
||||
|
||||
return Netmask;
|
||||
|
||||
})();
|
||||
|
||||
exports.ip2long = ip2long;
|
||||
|
||||
exports.long2ip = long2ip;
|
||||
|
||||
exports.Netmask = Netmask;
|
||||
|
||||
}).call(this);
|
||||
@@ -0,0 +1,16 @@
|
||||
import { Octokit } from "@octokit/core";
|
||||
import { PaginateInterface } from "./types";
|
||||
export { PaginateInterface } from "./types";
|
||||
export { PaginatingEndpoints } from "./types";
|
||||
export { composePaginateRest } from "./compose-paginate";
|
||||
export { isPaginatingEndpoint, paginatingEndpoints, } from "./paginating-endpoints";
|
||||
/**
|
||||
* @param octokit Octokit instance
|
||||
* @param options Options passed to Octokit constructor
|
||||
*/
|
||||
export declare function paginateRest(octokit: Octokit): {
|
||||
paginate: PaginateInterface;
|
||||
};
|
||||
export declare namespace paginateRest {
|
||||
var VERSION: string;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
import { Observable } from '../Observable';
|
||||
import { EMPTY } from './empty';
|
||||
export function range(start, count, scheduler) {
|
||||
if (count == null) {
|
||||
count = start;
|
||||
start = 0;
|
||||
}
|
||||
if (count <= 0) {
|
||||
return EMPTY;
|
||||
}
|
||||
const end = count + start;
|
||||
return new Observable(scheduler
|
||||
?
|
||||
(subscriber) => {
|
||||
let n = start;
|
||||
return scheduler.schedule(function () {
|
||||
if (n < end) {
|
||||
subscriber.next(n++);
|
||||
this.schedule();
|
||||
}
|
||||
else {
|
||||
subscriber.complete();
|
||||
}
|
||||
});
|
||||
}
|
||||
:
|
||||
(subscriber) => {
|
||||
let n = start;
|
||||
while (n < end && !subscriber.closed) {
|
||||
subscriber.next(n++);
|
||||
}
|
||||
subscriber.complete();
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=range.js.map
|
||||
@@ -0,0 +1,273 @@
|
||||
|
||||
|
||||
export const SIGNALS=[
|
||||
{
|
||||
name:"SIGHUP",
|
||||
number:1,
|
||||
action:"terminate",
|
||||
description:"Terminal closed",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGINT",
|
||||
number:2,
|
||||
action:"terminate",
|
||||
description:"User interruption with CTRL-C",
|
||||
standard:"ansi"},
|
||||
|
||||
{
|
||||
name:"SIGQUIT",
|
||||
number:3,
|
||||
action:"core",
|
||||
description:"User interruption with CTRL-\\",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGILL",
|
||||
number:4,
|
||||
action:"core",
|
||||
description:"Invalid machine instruction",
|
||||
standard:"ansi"},
|
||||
|
||||
{
|
||||
name:"SIGTRAP",
|
||||
number:5,
|
||||
action:"core",
|
||||
description:"Debugger breakpoint",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGABRT",
|
||||
number:6,
|
||||
action:"core",
|
||||
description:"Aborted",
|
||||
standard:"ansi"},
|
||||
|
||||
{
|
||||
name:"SIGIOT",
|
||||
number:6,
|
||||
action:"core",
|
||||
description:"Aborted",
|
||||
standard:"bsd"},
|
||||
|
||||
{
|
||||
name:"SIGBUS",
|
||||
number:7,
|
||||
action:"core",
|
||||
description:
|
||||
"Bus error due to misaligned, non-existing address or paging error",
|
||||
standard:"bsd"},
|
||||
|
||||
{
|
||||
name:"SIGEMT",
|
||||
number:7,
|
||||
action:"terminate",
|
||||
description:"Command should be emulated but is not implemented",
|
||||
standard:"other"},
|
||||
|
||||
{
|
||||
name:"SIGFPE",
|
||||
number:8,
|
||||
action:"core",
|
||||
description:"Floating point arithmetic error",
|
||||
standard:"ansi"},
|
||||
|
||||
{
|
||||
name:"SIGKILL",
|
||||
number:9,
|
||||
action:"terminate",
|
||||
description:"Forced termination",
|
||||
standard:"posix",
|
||||
forced:true},
|
||||
|
||||
{
|
||||
name:"SIGUSR1",
|
||||
number:10,
|
||||
action:"terminate",
|
||||
description:"Application-specific signal",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGSEGV",
|
||||
number:11,
|
||||
action:"core",
|
||||
description:"Segmentation fault",
|
||||
standard:"ansi"},
|
||||
|
||||
{
|
||||
name:"SIGUSR2",
|
||||
number:12,
|
||||
action:"terminate",
|
||||
description:"Application-specific signal",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGPIPE",
|
||||
number:13,
|
||||
action:"terminate",
|
||||
description:"Broken pipe or socket",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGALRM",
|
||||
number:14,
|
||||
action:"terminate",
|
||||
description:"Timeout or timer",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGTERM",
|
||||
number:15,
|
||||
action:"terminate",
|
||||
description:"Termination",
|
||||
standard:"ansi"},
|
||||
|
||||
{
|
||||
name:"SIGSTKFLT",
|
||||
number:16,
|
||||
action:"terminate",
|
||||
description:"Stack is empty or overflowed",
|
||||
standard:"other"},
|
||||
|
||||
{
|
||||
name:"SIGCHLD",
|
||||
number:17,
|
||||
action:"ignore",
|
||||
description:"Child process terminated, paused or unpaused",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGCLD",
|
||||
number:17,
|
||||
action:"ignore",
|
||||
description:"Child process terminated, paused or unpaused",
|
||||
standard:"other"},
|
||||
|
||||
{
|
||||
name:"SIGCONT",
|
||||
number:18,
|
||||
action:"unpause",
|
||||
description:"Unpaused",
|
||||
standard:"posix",
|
||||
forced:true},
|
||||
|
||||
{
|
||||
name:"SIGSTOP",
|
||||
number:19,
|
||||
action:"pause",
|
||||
description:"Paused",
|
||||
standard:"posix",
|
||||
forced:true},
|
||||
|
||||
{
|
||||
name:"SIGTSTP",
|
||||
number:20,
|
||||
action:"pause",
|
||||
description:"Paused using CTRL-Z or \"suspend\"",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGTTIN",
|
||||
number:21,
|
||||
action:"pause",
|
||||
description:"Background process cannot read terminal input",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGBREAK",
|
||||
number:21,
|
||||
action:"terminate",
|
||||
description:"User interruption with CTRL-BREAK",
|
||||
standard:"other"},
|
||||
|
||||
{
|
||||
name:"SIGTTOU",
|
||||
number:22,
|
||||
action:"pause",
|
||||
description:"Background process cannot write to terminal output",
|
||||
standard:"posix"},
|
||||
|
||||
{
|
||||
name:"SIGURG",
|
||||
number:23,
|
||||
action:"ignore",
|
||||
description:"Socket received out-of-band data",
|
||||
standard:"bsd"},
|
||||
|
||||
{
|
||||
name:"SIGXCPU",
|
||||
number:24,
|
||||
action:"core",
|
||||
description:"Process timed out",
|
||||
standard:"bsd"},
|
||||
|
||||
{
|
||||
name:"SIGXFSZ",
|
||||
number:25,
|
||||
action:"core",
|
||||
description:"File too big",
|
||||
standard:"bsd"},
|
||||
|
||||
{
|
||||
name:"SIGVTALRM",
|
||||
number:26,
|
||||
action:"terminate",
|
||||
description:"Timeout or timer",
|
||||
standard:"bsd"},
|
||||
|
||||
{
|
||||
name:"SIGPROF",
|
||||
number:27,
|
||||
action:"terminate",
|
||||
description:"Timeout or timer",
|
||||
standard:"bsd"},
|
||||
|
||||
{
|
||||
name:"SIGWINCH",
|
||||
number:28,
|
||||
action:"ignore",
|
||||
description:"Terminal window size changed",
|
||||
standard:"bsd"},
|
||||
|
||||
{
|
||||
name:"SIGIO",
|
||||
number:29,
|
||||
action:"terminate",
|
||||
description:"I/O is available",
|
||||
standard:"other"},
|
||||
|
||||
{
|
||||
name:"SIGPOLL",
|
||||
number:29,
|
||||
action:"terminate",
|
||||
description:"Watched event",
|
||||
standard:"other"},
|
||||
|
||||
{
|
||||
name:"SIGINFO",
|
||||
number:29,
|
||||
action:"ignore",
|
||||
description:"Request for process information",
|
||||
standard:"other"},
|
||||
|
||||
{
|
||||
name:"SIGPWR",
|
||||
number:30,
|
||||
action:"terminate",
|
||||
description:"Device running out of power",
|
||||
standard:"systemv"},
|
||||
|
||||
{
|
||||
name:"SIGSYS",
|
||||
number:31,
|
||||
action:"core",
|
||||
description:"Invalid system call",
|
||||
standard:"other"},
|
||||
|
||||
{
|
||||
name:"SIGUNUSED",
|
||||
number:31,
|
||||
action:"terminate",
|
||||
description:"Invalid system call",
|
||||
standard:"other"}];
|
||||
//# sourceMappingURL=core.js.map
|
||||
@@ -0,0 +1,87 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Code coverage report for csv2json/src/Worker.ts</title>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="../../prettify.css" />
|
||||
<link rel="stylesheet" href="../../base.css" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<style type='text/css'>
|
||||
.coverage-summary .sorter {
|
||||
background-image: url(../../sort-arrow-sprite.png);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div class='pad1'>
|
||||
<h1>
|
||||
<a href="../../index.html">All files</a> / <a href="index.html">csv2json/src</a> Worker.ts
|
||||
</h1>
|
||||
<div class='clearfix'>
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>0/1</span>
|
||||
</div>
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">0% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>0/0</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="quiet">
|
||||
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
||||
</p>
|
||||
</div>
|
||||
<div class='status-line low'></div>
|
||||
<pre><table class="coverage">
|
||||
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
||||
<a name='L2'></a><a href='#L2'>2</a>
|
||||
<a name='L3'></a><a href='#L3'>3</a>
|
||||
<a name='L4'></a><a href='#L4'>4</a>
|
||||
<a name='L5'></a><a href='#L5'>5</a>
|
||||
<a name='L6'></a><a href='#L6'>6</a>
|
||||
<a name='L7'></a><a href='#L7'>7</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Converter } from "./Converter";
|
||||
|
||||
export class Worker {
|
||||
<span class="fstat-no" title="function not covered" > co</span>nstructor(converter: Converter) {
|
||||
|
||||
}
|
||||
}</pre></td></tr>
|
||||
</table></pre>
|
||||
<div class='push'></div><!-- for sticky footer -->
|
||||
</div><!-- /wrapper -->
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage
|
||||
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri May 11 2018 21:36:07 GMT+0100 (IST)
|
||||
</div>
|
||||
</div>
|
||||
<script src="../../prettify.js"></script>
|
||||
<script>
|
||||
window.onload = function () {
|
||||
if (typeof prettyPrint === 'function') {
|
||||
prettyPrint();
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<script src="../../sorter.js"></script>
|
||||
<script src="../../block-navigation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,2 @@
|
||||
import { Node } from 'estree';
|
||||
export default function replace_object(node: Node, replacement: Node): import("estree").Property | import("estree").CatchClause | import("estree").ClassDeclaration | import("estree").ClassExpression | import("estree").ClassBody | import("estree").ArrayExpression | import("estree").ArrowFunctionExpression | import("estree").AssignmentExpression | import("estree").AwaitExpression | import("estree").BinaryExpression | import("estree").SimpleCallExpression | import("estree").NewExpression | import("estree").ChainExpression | import("estree").ConditionalExpression | import("estree").FunctionExpression | import("estree").Identifier | import("estree").ImportExpression | import("estree").SimpleLiteral | import("estree").RegExpLiteral | import("estree").BigIntLiteral | import("estree").LogicalExpression | import("estree").MemberExpression | import("estree").MetaProperty | import("estree").ObjectExpression | import("estree").SequenceExpression | import("estree").TaggedTemplateExpression | import("estree").TemplateLiteral | import("estree").ThisExpression | import("estree").UnaryExpression | import("estree").UpdateExpression | import("estree").YieldExpression | import("estree").FunctionDeclaration | import("estree").MethodDefinition | import("estree").ImportDeclaration | import("estree").ExportNamedDeclaration | import("estree").ExportDefaultDeclaration | import("estree").ExportAllDeclaration | import("estree").ImportSpecifier | import("estree").ImportDefaultSpecifier | import("estree").ImportNamespaceSpecifier | import("estree").ExportSpecifier | import("estree").ObjectPattern | import("estree").ArrayPattern | import("estree").RestElement | import("estree").AssignmentPattern | import("estree").PrivateIdentifier | import("estree").Program | import("estree").PropertyDefinition | import("estree").SpreadElement | import("estree").ExpressionStatement | import("estree").BlockStatement | import("estree").StaticBlock | import("estree").EmptyStatement | import("estree").DebuggerStatement | import("estree").WithStatement | import("estree").ReturnStatement | import("estree").LabeledStatement | import("estree").BreakStatement | import("estree").ContinueStatement | import("estree").IfStatement | import("estree").SwitchStatement | import("estree").ThrowStatement | import("estree").TryStatement | import("estree").WhileStatement | import("estree").DoWhileStatement | import("estree").ForStatement | import("estree").ForInStatement | import("estree").ForOfStatement | import("estree").VariableDeclaration | import("estree").Super | import("estree").SwitchCase | import("estree").TemplateElement | import("estree").VariableDeclarator;
|
||||
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.LookupMatcher = void 0;
|
||||
var utils_1 = require("./utils");
|
||||
var BestAvailableLocale_1 = require("./BestAvailableLocale");
|
||||
/**
|
||||
* https://tc39.es/ecma402/#sec-lookupmatcher
|
||||
* @param availableLocales
|
||||
* @param requestedLocales
|
||||
* @param getDefaultLocale
|
||||
*/
|
||||
function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
|
||||
var result = { locale: '' };
|
||||
for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
|
||||
var locale = requestedLocales_1[_i];
|
||||
var noExtensionLocale = locale.replace(utils_1.UNICODE_EXTENSION_SEQUENCE_REGEX, '');
|
||||
var availableLocale = (0, BestAvailableLocale_1.BestAvailableLocale)(availableLocales, noExtensionLocale);
|
||||
if (availableLocale) {
|
||||
result.locale = availableLocale;
|
||||
if (locale !== noExtensionLocale) {
|
||||
result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
result.locale = getDefaultLocale();
|
||||
return result;
|
||||
}
|
||||
exports.LookupMatcher = LookupMatcher;
|
||||
@@ -0,0 +1,15 @@
|
||||
var test = require('tape');
|
||||
var equal = require('../');
|
||||
|
||||
test('0 values', function (t) {
|
||||
t.ok(equal( 0, 0), ' 0 === 0');
|
||||
t.ok(equal( 0, +0), ' 0 === +0');
|
||||
t.ok(equal(+0, +0), '+0 === +0');
|
||||
t.ok(equal(-0, -0), '-0 === -0');
|
||||
|
||||
t.notOk(equal(-0, 0), '-0 !== 0');
|
||||
t.notOk(equal(-0, +0), '-0 !== +0');
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user