@jsonjoy.com/util
Advanced tools
| export type Token = TokenLiteral | TokenPick | TokenRepeat | TokenRange | TokenList; | ||
| export type TokenLiteral = string; | ||
| export type TokenPick = [type: 'pick', from: string[]]; | ||
| export type TokenRepeat = [type: 'repeat', min: number, max: number, pattern: Token]; | ||
| export type TokenRange = [type: 'range', min: number, max: number]; | ||
| export type TokenList = [type: 'list', what: Token[]]; | ||
| export declare function randomString(token: Token): string; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.randomString = void 0; | ||
| function randomString(token) { | ||
| if (typeof token === 'string') | ||
| return token; | ||
| const rnd = Math.random(); | ||
| switch (token[0]) { | ||
| case 'pick': { | ||
| const set = token[1]; | ||
| return set[Math.floor(rnd * set.length)]; | ||
| } | ||
| case 'repeat': { | ||
| const min = token[1]; | ||
| const max = token[2]; | ||
| const pattern = token[3]; | ||
| const count = Math.floor(rnd * (max - min + 1)) + min; | ||
| let str = ''; | ||
| for (let i = 0; i < count; i++) | ||
| str += randomString(pattern); | ||
| return str; | ||
| } | ||
| case 'range': { | ||
| const min = token[1]; | ||
| const max = token[2]; | ||
| const codePoint = Math.floor(rnd * (max - min + 1)) + min; | ||
| return String.fromCodePoint(codePoint); | ||
| } | ||
| case 'list': | ||
| return token[1].map(randomString).join(''); | ||
| default: | ||
| throw new Error('Invalid token type'); | ||
| } | ||
| } | ||
| exports.randomString = randomString; | ||
| //# sourceMappingURL=string.js.map |
| {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/json-random/string.ts"],"names":[],"mappings":";;;AAoCA,SAAgB,YAAY,CAAC,KAAY;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACtD,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;gBAAE,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;YAC7D,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1D,OAAO,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AA5BD,oCA4BC"} |
@@ -1,3 +0,1 @@ | ||
| export * from './types'; | ||
| export * from './compile'; | ||
| export * from './Codegen'; | ||
| export * from '@jsonjoy.com/codegen'; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const tslib_1 = require("tslib"); | ||
| tslib_1.__exportStar(require("./types"), exports); | ||
| tslib_1.__exportStar(require("./compile"), exports); | ||
| tslib_1.__exportStar(require("./Codegen"), exports); | ||
| tslib_1.__exportStar(require("@jsonjoy.com/codegen"), exports); | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,oDAA0B;AAC1B,oDAA0B"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC"} |
| export * from './RandomJson'; | ||
| export * from './string'; |
@@ -5,2 +5,3 @@ "use strict"; | ||
| tslib_1.__exportStar(require("./RandomJson"), exports); | ||
| tslib_1.__exportStar(require("./string"), exports); | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/json-random/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/json-random/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,mDAAyB"} |
@@ -0,1 +1,2 @@ | ||
| import { Token } from './string'; | ||
| type JsonValue = unknown; | ||
@@ -13,5 +14,6 @@ export type NodeType = 'null' | 'boolean' | 'number' | 'string' | 'binary' | 'array' | 'object'; | ||
| export interface RandomJsonOptions { | ||
| rootNode: 'object' | 'array' | undefined; | ||
| rootNode: 'object' | 'array' | 'string' | undefined; | ||
| nodeCount: number; | ||
| odds: NodeOdds; | ||
| strings?: Token; | ||
| } | ||
@@ -36,2 +38,3 @@ type ContainerNode = unknown[] | object; | ||
| protected generate(type: NodeType): unknown; | ||
| protected generateString(): string; | ||
| pickNodeType(): NodeType; | ||
@@ -38,0 +41,0 @@ protected pickContainerType(): 'array' | 'object'; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.RandomJson = void 0; | ||
| const string_1 = require("./string"); | ||
| const defaultOpts = { | ||
@@ -192,11 +193,17 @@ rootNode: 'object', | ||
| this.opts.odds.object; | ||
| this.root = | ||
| this.opts.rootNode === 'object' | ||
| ? {} | ||
| : this.opts.rootNode === 'array' | ||
| ? [] | ||
| : this.pickContainerType() === 'object' | ||
| ? {} | ||
| : []; | ||
| this.containers.push(this.root); | ||
| if (this.opts.rootNode === 'string') { | ||
| this.root = this.generateString(); | ||
| this.opts.nodeCount = 0; | ||
| } | ||
| else { | ||
| this.root = | ||
| this.opts.rootNode === 'object' | ||
| ? {} | ||
| : this.opts.rootNode === 'array' | ||
| ? [] | ||
| : this.pickContainerType() === 'object' | ||
| ? {} | ||
| : []; | ||
| this.containers.push(this.root); | ||
| } | ||
| } | ||
@@ -232,3 +239,3 @@ create() { | ||
| case 'string': | ||
| return RandomJson.genString(); | ||
| return this.generateString(); | ||
| case 'binary': | ||
@@ -242,2 +249,6 @@ return RandomJson.genBinary(); | ||
| } | ||
| generateString() { | ||
| const strings = this.opts.strings; | ||
| return strings ? (0, string_1.randomString)(strings) : RandomJson.genString(); | ||
| } | ||
| pickNodeType() { | ||
@@ -244,0 +255,0 @@ const odd = Math.random() * this.totalOdds; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"RandomJson.js","sourceRoot":"","sources":["../../src/json-random/RandomJson.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"RandomJson.js","sourceRoot":"","sources":["../../src/json-random/RandomJson.ts"],"names":[],"mappings":"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"} |
+3
-2
@@ -7,3 +7,3 @@ { | ||
| }, | ||
| "version": "1.8.1", | ||
| "version": "1.9.0", | ||
| "description": "Various helper utilities", | ||
@@ -62,3 +62,4 @@ "author": { | ||
| "dependencies": { | ||
| "@jsonjoy.com/buffers": "^1.0.0" | ||
| "@jsonjoy.com/buffers": "^1.0.0", | ||
| "@jsonjoy.com/codegen": "^1.0.0" | ||
| }, | ||
@@ -65,0 +66,0 @@ "devDependencies": { |
| import type { JavaScriptLinked } from './types'; | ||
| export declare class CodegenStepExecJs { | ||
| readonly js: string; | ||
| constructor(js: string); | ||
| } | ||
| type JsonSerializerStep = CodegenStepExecJs | unknown; | ||
| export interface CodegenOptions<Linkable = Record<string, unknown>> { | ||
| args?: string[]; | ||
| name?: string; | ||
| prologue?: string; | ||
| epilogue?: string | (() => string); | ||
| processSteps?: (steps: JsonSerializerStep[]) => CodegenStepExecJs[]; | ||
| linkable?: Linkable; | ||
| } | ||
| export type CodegenGenerateOptions = Pick<CodegenOptions, 'name' | 'args' | 'prologue' | 'epilogue'>; | ||
| export declare class Codegen<Fn extends (...deps: any[]) => any = (...deps: unknown[]) => unknown, Linkable = Record<string, unknown>> { | ||
| protected steps: JsonSerializerStep[]; | ||
| options: Required<CodegenOptions<Linkable>>; | ||
| constructor(opts: CodegenOptions<Linkable>); | ||
| js(js: string): void; | ||
| var(expression?: string): string; | ||
| if(condition: string, then: () => void, otherwise?: () => void): void; | ||
| while(condition: string, block: () => void): void; | ||
| doWhile(block: () => void, condition: string): void; | ||
| switch(expression: string, cases: [match: string | number | boolean | null, block: () => void, noBreak?: boolean][], def?: () => void): void; | ||
| return(expression: string): void; | ||
| step(step: unknown): void; | ||
| protected registerCounter: number; | ||
| getRegister(): string; | ||
| r(): string; | ||
| protected dependencies: unknown[]; | ||
| protected dependencyNames: string[]; | ||
| linkDependency(dep: unknown, name?: string): string; | ||
| linkDependencies(deps: unknown[]): string[]; | ||
| protected linked: { | ||
| [key: string]: 1; | ||
| }; | ||
| link(name: keyof Linkable): void; | ||
| protected constants: string[]; | ||
| protected constantNames: string[]; | ||
| addConstant(constant: string, name?: string): string; | ||
| addConstants(constants: string[]): string[]; | ||
| generate(opts?: CodegenGenerateOptions): JavaScriptLinked<Fn>; | ||
| compile(opts?: CodegenGenerateOptions): Fn; | ||
| } | ||
| export {}; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.Codegen = exports.CodegenStepExecJs = void 0; | ||
| const _1 = require("."); | ||
| class CodegenStepExecJs { | ||
| constructor(js) { | ||
| this.js = js; | ||
| } | ||
| } | ||
| exports.CodegenStepExecJs = CodegenStepExecJs; | ||
| class Codegen { | ||
| constructor(opts) { | ||
| this.steps = []; | ||
| this.dependencies = []; | ||
| this.dependencyNames = []; | ||
| this.linked = {}; | ||
| this.constants = []; | ||
| this.constantNames = []; | ||
| this.options = { | ||
| args: ['r0'], | ||
| name: '', | ||
| prologue: '', | ||
| epilogue: '', | ||
| processSteps: (steps) => steps.filter((step) => step instanceof CodegenStepExecJs), | ||
| linkable: {}, | ||
| ...opts, | ||
| }; | ||
| this.registerCounter = this.options.args.length; | ||
| } | ||
| js(js) { | ||
| this.steps.push(new CodegenStepExecJs(js)); | ||
| } | ||
| var(expression) { | ||
| const r = this.getRegister(); | ||
| if (expression) | ||
| this.js('var ' + r + ' = ' + expression + ';'); | ||
| else | ||
| this.js('var ' + r + ';'); | ||
| return r; | ||
| } | ||
| if(condition, then, otherwise) { | ||
| this.js('if (' + condition + ') {'); | ||
| then(); | ||
| if (otherwise) { | ||
| this.js('} else {'); | ||
| otherwise(); | ||
| } | ||
| this.js('}'); | ||
| } | ||
| while(condition, block) { | ||
| this.js('while (' + condition + ') {'); | ||
| block(); | ||
| this.js('}'); | ||
| } | ||
| doWhile(block, condition) { | ||
| this.js('do {'); | ||
| block(); | ||
| this.js('} while (' + condition + ');'); | ||
| } | ||
| switch(expression, cases, def) { | ||
| this.js('switch (' + expression + ') {'); | ||
| for (const [match, block, noBreak] of cases) { | ||
| this.js('case ' + match + ': {'); | ||
| block(); | ||
| if (!noBreak) | ||
| this.js('break;'); | ||
| this.js('}'); | ||
| } | ||
| if (def) { | ||
| this.js('default: {'); | ||
| def(); | ||
| this.js('}'); | ||
| } | ||
| this.js('}'); | ||
| } | ||
| return(expression) { | ||
| this.js('return ' + expression + ';'); | ||
| } | ||
| step(step) { | ||
| this.steps.push(step); | ||
| } | ||
| getRegister() { | ||
| return `r${this.registerCounter++}`; | ||
| } | ||
| r() { | ||
| return this.getRegister(); | ||
| } | ||
| linkDependency(dep, name = 'd' + this.dependencies.length) { | ||
| this.dependencies.push(dep); | ||
| this.dependencyNames.push(name); | ||
| return name; | ||
| } | ||
| linkDependencies(deps) { | ||
| return deps.map((dep) => this.linkDependency(dep)); | ||
| } | ||
| link(name) { | ||
| if (this.linked[name]) | ||
| return; | ||
| this.linked[name] = 1; | ||
| this.linkDependency(this.options.linkable[name], name); | ||
| } | ||
| addConstant(constant, name = 'c' + this.constants.length) { | ||
| this.constants.push(constant); | ||
| this.constantNames.push(name); | ||
| return name; | ||
| } | ||
| addConstants(constants) { | ||
| return constants.map((constant) => this.addConstant(constant)); | ||
| } | ||
| generate(opts = {}) { | ||
| const { name, args, prologue, epilogue } = { ...this.options, ...opts }; | ||
| const steps = this.options.processSteps(this.steps); | ||
| const js = `(function(${this.dependencyNames.join(', ')}) { | ||
| ${this.constants.map((constant, index) => `var ${this.constantNames[index]} = (${constant});`).join('\n')} | ||
| return ${name ? `function ${name}` : 'function'}(${args.join(',')}){ | ||
| ${prologue} | ||
| ${steps.map((step) => step.js).join('\n')} | ||
| ${typeof epilogue === 'function' ? epilogue() : epilogue || ''} | ||
| }})`; | ||
| return { | ||
| deps: this.dependencies, | ||
| js: js, | ||
| }; | ||
| } | ||
| compile(opts) { | ||
| const closure = this.generate(opts); | ||
| return (0, _1.compileClosure)(closure); | ||
| } | ||
| } | ||
| exports.Codegen = Codegen; | ||
| //# sourceMappingURL=Codegen.js.map |
| {"version":3,"file":"Codegen.js","sourceRoot":"","sources":["../../src/codegen/Codegen.ts"],"names":[],"mappings":"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"} |
| import { JavaScriptLinked } from '.'; | ||
| import { JavaScript } from './types'; | ||
| export declare const compile: <T>(js: JavaScript<T>) => T; | ||
| export declare const compileClosure: <T>(fn: JavaScriptLinked<T, any>) => T; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.compileClosure = exports.compile = void 0; | ||
| const compile = (js) => eval(js); | ||
| exports.compile = compile; | ||
| const compileClosure = (fn) => (0, exports.compile)(fn.js)(...fn.deps); | ||
| exports.compileClosure = compileClosure; | ||
| //# sourceMappingURL=compile.js.map |
| {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/codegen/compile.ts"],"names":[],"mappings":";;;AAIO,MAAM,OAAO,GAAG,CAAI,EAAiB,EAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAAhD,QAAA,OAAO,WAAyC;AAEtD,MAAM,cAAc,GAAG,CAAI,EAA4B,EAAK,EAAE,CAAC,IAAA,eAAO,EAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAApF,QAAA,cAAc,kBAAsE"} |
| export declare const dynamicFunction: <F extends (...args: any[]) => any>(implementation: F) => [fn: F, set: (fn: F) => void]; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.dynamicFunction = void 0; | ||
| const dynamicFunction = (implementation) => { | ||
| const proxy = ((...args) => implementation(...args)); | ||
| const set = (f) => { | ||
| implementation = f; | ||
| }; | ||
| return [proxy, set]; | ||
| }; | ||
| exports.dynamicFunction = dynamicFunction; | ||
| //# sourceMappingURL=dynamicFunction.js.map |
| {"version":3,"file":"dynamicFunction.js","sourceRoot":"","sources":["../../src/codegen/dynamicFunction.ts"],"names":[],"mappings":";;;AAOO,MAAM,eAAe,GAAG,CAC7B,cAAiB,EACc,EAAE;IACjC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAM,CAAC;IAC1D,MAAM,GAAG,GAAG,CAAC,CAAI,EAAE,EAAE;QACnB,cAAc,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;IACF,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC;AARW,QAAA,eAAe,mBAQ1B"} |
| export declare const createSwitch: <F extends (...args: any[]) => any>(fn: F, codegen: () => F) => F; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.createSwitch = void 0; | ||
| const dynamicFunction_1 = require("./dynamicFunction"); | ||
| const createSwitch = (fn, codegen) => { | ||
| let counter = 0; | ||
| const [proxy, set] = (0, dynamicFunction_1.dynamicFunction)((...args) => { | ||
| if (counter > 2) | ||
| set(codegen()); | ||
| counter++; | ||
| return fn(...args); | ||
| }); | ||
| return proxy; | ||
| }; | ||
| exports.createSwitch = createSwitch; | ||
| //# sourceMappingURL=switch.js.map |
| {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/codegen/switch.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAM3C,MAAM,YAAY,GAAG,CAAoC,EAAK,EAAE,OAAgB,EAAK,EAAE;IAC5F,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAA,iCAAe,EAAC,CAAC,GAAG,IAAI,EAAE,EAAE;QAC/C,IAAI,OAAO,GAAG,CAAC;YAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,KAAU,CAAC;AACpB,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB"} |
| import type { Brand } from '../types'; | ||
| export type JavaScript<T> = Brand<string, T, 'JavaScript'>; | ||
| export type JavaScriptClosure<Js, D extends unknown[] = unknown[]> = JavaScript<(...deps: D) => Js>; | ||
| export interface JavaScriptLinked<Js, Dependencies extends unknown[] = unknown[]> { | ||
| deps: Dependencies; | ||
| js: JavaScriptClosure<Js, Dependencies>; | ||
| } |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=types.js.map |
| {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/codegen/types.ts"],"names":[],"mappings":""} |
| export declare const emitStringMatch: (expression: string, offset: string, match: string) => string; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.emitStringMatch = void 0; | ||
| const emitStringMatch = (expression, offset, match) => { | ||
| const conditions = []; | ||
| for (let i = 0; i < match.length; i++) | ||
| conditions.push(`${match.charCodeAt(i)} === ${expression}.charCodeAt(${offset} + ${i})`); | ||
| return conditions.join(' && '); | ||
| }; | ||
| exports.emitStringMatch = emitStringMatch; | ||
| //# sourceMappingURL=helpers.js.map |
| {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/codegen/util/helpers.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE;IACnF,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QACnC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,UAAU,eAAe,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3F,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B"} |
| export declare class JsExpression { | ||
| private expression; | ||
| private _wasUsed; | ||
| private _expression?; | ||
| private _listeners; | ||
| constructor(expression: () => string); | ||
| get wasUsed(): boolean; | ||
| use(): string; | ||
| chain(use: (expr: string) => string): JsExpression; | ||
| addListener(listener: (expr: string) => void): void; | ||
| } |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.JsExpression = void 0; | ||
| class JsExpression { | ||
| constructor(expression) { | ||
| this.expression = expression; | ||
| this._wasUsed = false; | ||
| this._listeners = []; | ||
| } | ||
| get wasUsed() { | ||
| return this._wasUsed; | ||
| } | ||
| use() { | ||
| if (this._wasUsed) | ||
| return this._expression; | ||
| this._wasUsed = true; | ||
| const expression = (this._expression = this.expression()); | ||
| for (const listener of this._listeners) | ||
| listener(expression); | ||
| return expression; | ||
| } | ||
| chain(use) { | ||
| return new JsExpression(() => use(this.use())); | ||
| } | ||
| addListener(listener) { | ||
| this._listeners.push(listener); | ||
| } | ||
| } | ||
| exports.JsExpression = JsExpression; | ||
| //# sourceMappingURL=JsExpression.js.map |
| {"version":3,"file":"JsExpression.js","sourceRoot":"","sources":["../../../src/codegen/util/JsExpression.ts"],"names":[],"mappings":";;;AAcA,MAAa,YAAY;IAKvB,YAAoB,UAAwB;QAAxB,eAAU,GAAV,UAAU,CAAc;QAJpC,aAAQ,GAAY,KAAK,CAAC;QAE1B,eAAU,GAA+B,EAAE,CAAC;IAEL,CAAC;IAEhD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,GAAG;QACR,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,WAAY,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU;YAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7D,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,GAA6B;QACxC,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAEM,WAAW,CAAC,QAAgC;QACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;CACF;AA1BD,oCA0BC"} |
| export declare const normalizeAccessor: (accessor: string) => string; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.normalizeAccessor = void 0; | ||
| const normalizeAccessor = (accessor) => { | ||
| if (/^[a-z_][a-z_0-9]*$/i.test(accessor)) { | ||
| return '.' + accessor; | ||
| } | ||
| else { | ||
| return `[${JSON.stringify(accessor)}]`; | ||
| } | ||
| }; | ||
| exports.normalizeAccessor = normalizeAccessor; | ||
| //# sourceMappingURL=normalizeAccessor.js.map |
| {"version":3,"file":"normalizeAccessor.js","sourceRoot":"","sources":["../../../src/codegen/util/normalizeAccessor.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAU,EAAE;IAC5D,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO,GAAG,GAAG,QAAQ,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;IACzC,CAAC;AACH,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"} |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Potential vulnerability
Supply chain riskInitial human review suggests the presence of a vulnerability in this package. It is pending further analysis and confirmation.
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
0
-100%117580
-10.53%3
50%219
-8.75%1604
-12.73%+ Added
+ Added