@vltpkg/dot-prop 1.0.0-rc.3 → 1.0.0-rc.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -20,4 +20,3 @@ export declare const get: (ogObject: Arg, path: string, defaultValue?: unknown)
|
|
|
20
20
|
export declare const set: <T extends Arg>(object: T, path: string, value: unknown) => T;
|
|
21
21
|
export declare const del: (object: Arg, path: string) => boolean;
|
|
22
22
|
export declare const has: (object: Arg, path: string) => boolean;
|
|
23
|
-
//# sourceMappingURL=index.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,66 +1,57 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vltpkg/dot-prop",
|
|
3
3
|
"description": "Get and manipulate an object using strings",
|
|
4
|
-
"version": "1.0.0-rc.
|
|
4
|
+
"version": "1.0.0-rc.30",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/vltpkg/vltpkg.git",
|
|
8
8
|
"directory": "src/dot-prop"
|
|
9
9
|
},
|
|
10
|
-
"author":
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"dialects": [
|
|
15
|
-
"esm"
|
|
16
|
-
],
|
|
17
|
-
"exports": {
|
|
18
|
-
"./package.json": "./package.json",
|
|
19
|
-
".": "./src/index.ts"
|
|
20
|
-
}
|
|
10
|
+
"author": {
|
|
11
|
+
"name": "vlt technology inc.",
|
|
12
|
+
"email": "support@vlt.sh",
|
|
13
|
+
"url": "http://vlt.sh"
|
|
21
14
|
},
|
|
22
15
|
"devDependencies": {
|
|
23
|
-
"@eslint/js": "^9.
|
|
24
|
-
"@types/node": "^22.
|
|
25
|
-
"eslint": "^9.
|
|
26
|
-
"prettier": "^3.
|
|
27
|
-
"tap": "^21.
|
|
28
|
-
"tshy": "^3.0.2",
|
|
16
|
+
"@eslint/js": "^9.39.1",
|
|
17
|
+
"@types/node": "^22.19.2",
|
|
18
|
+
"eslint": "^9.39.1",
|
|
19
|
+
"prettier": "^3.7.4",
|
|
20
|
+
"tap": "^21.5.0",
|
|
29
21
|
"typedoc": "~0.27.9",
|
|
30
22
|
"typescript": "5.7.3",
|
|
31
|
-
"typescript-eslint": "^8.
|
|
23
|
+
"typescript-eslint": "^8.49.0"
|
|
32
24
|
},
|
|
33
25
|
"license": "MIT",
|
|
34
26
|
"engines": {
|
|
35
|
-
"node": ">=22"
|
|
27
|
+
"node": ">=22.22.0"
|
|
28
|
+
},
|
|
29
|
+
"scripts": {
|
|
30
|
+
"format": "prettier --write . --log-level warn --ignore-path ../../.prettierignore --cache",
|
|
31
|
+
"format:check": "prettier --check . --ignore-path ../../.prettierignore --cache",
|
|
32
|
+
"lint": "eslint . --fix",
|
|
33
|
+
"lint:check": "eslint .",
|
|
34
|
+
"prepack": "tsc -p tsconfig.publish.json && ../../scripts/update-dist-exports.ts",
|
|
35
|
+
"snap": "tap",
|
|
36
|
+
"test": "tap",
|
|
37
|
+
"posttest": "tsc --noEmit",
|
|
38
|
+
"typecheck": "tsc --noEmit"
|
|
36
39
|
},
|
|
37
40
|
"tap": {
|
|
38
41
|
"extends": "../../tap-config.yaml"
|
|
39
42
|
},
|
|
40
43
|
"prettier": "../../.prettierrc.js",
|
|
41
|
-
"module": "./dist/
|
|
44
|
+
"module": "./dist/index.js",
|
|
42
45
|
"type": "module",
|
|
43
46
|
"exports": {
|
|
44
47
|
"./package.json": "./package.json",
|
|
45
48
|
".": {
|
|
46
49
|
"import": {
|
|
47
|
-
"
|
|
48
|
-
"default": "./dist/esm/index.js"
|
|
50
|
+
"default": "./dist/index.js"
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
},
|
|
52
54
|
"files": [
|
|
53
55
|
"dist"
|
|
54
|
-
]
|
|
55
|
-
|
|
56
|
-
"format": "prettier --write . --log-level warn --ignore-path ../../.prettierignore --cache",
|
|
57
|
-
"format:check": "prettier --check . --ignore-path ../../.prettierignore --cache",
|
|
58
|
-
"lint": "eslint . --fix",
|
|
59
|
-
"lint:check": "eslint .",
|
|
60
|
-
"snap": "tap",
|
|
61
|
-
"test": "tap",
|
|
62
|
-
"posttest": "tsc --noEmit",
|
|
63
|
-
"tshy": "tshy",
|
|
64
|
-
"typecheck": "tsc --noEmit"
|
|
65
|
-
}
|
|
66
|
-
}
|
|
56
|
+
]
|
|
57
|
+
}
|
package/dist/esm/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAA;AAChC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;AACpD,MAAM,MAAM,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAA;AAYtC,eAAO,MAAM,UAAU;;;;;;CAMb,CAAA;AAEV,MAAM,MAAM,SAAS,GACjB,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,GAC5C,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAEjB,eAAO,MAAM,KAAK;;;;;CAKR,CAAA;AAEV,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAA;AAkLrD,eAAO,MAAM,GAAG,aACJ,GAAG,QACP,MAAM,iBACG,OAAO,KACrB,OA6BF,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,GAAG,UACvB,CAAC,QACH,MAAM,SACL,OAAO,KACb,CAuBF,CAAA;AAED,eAAO,MAAM,GAAG,WAAY,GAAG,QAAQ,MAAM,KAAG,OAuB/C,CAAA;AAED,eAAO,MAAM,GAAG,WAAY,GAAG,QAAQ,MAAM,KAAG,OAoB/C,CAAA"}
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export type ArrayArg = unknown[]\nexport type ObjectArg = Record<PropertyKey, unknown>\nexport type Arg = ArrayArg | ObjectArg\n\nconst DISALLOWED_KEYS = new Set([\n '__proto__',\n 'prototype',\n 'constructor',\n])\n\nconst DIGITS = new Set('0123456789')\n\nconst ARRAY_PUSH = Symbol('ARRAY_PUSH')\n\nexport const Characters = {\n Escape: '\\\\',\n Dot: '.',\n Empty: '',\n LeftBracket: '[',\n RightBracket: ']',\n} as const\n\nexport type Character =\n | (typeof Characters)[keyof typeof Characters]\n | (string & {})\n\nexport const Parts = {\n Start: 'start',\n Index: 'index',\n IndexEnd: 'indexEnd',\n Property: 'property',\n} as const\n\nexport type Part = (typeof Parts)[keyof typeof Parts]\n\nconst checkInvalidCharacter = (\n part: Part | Character,\n current: Part | Character,\n msg?: string,\n) => {\n if (current === part) {\n if (msg === undefined) {\n switch (current) {\n case Parts.Index:\n msg = 'character in an index'\n break\n case Parts.IndexEnd:\n msg = 'character after an index'\n break\n /* c8 ignore next 3 */\n default:\n msg = ''\n break\n }\n }\n throw new Error(`Invalid ${msg}`.trim())\n }\n}\n\nconst getPathSegments = (path: string, allowEmptyIndex = false) => {\n const segments = []\n\n let currentSegment: Character = Characters.Empty\n let currentPart: Part = Parts.Start\n let isIgnoring = false\n\n for (const character of path.split('') as Character[]) {\n switch (character) {\n case Characters.Escape: {\n checkInvalidCharacter(Parts.Index, currentPart)\n checkInvalidCharacter(Parts.IndexEnd, currentPart)\n\n if (isIgnoring) currentSegment += character\n\n currentPart = Parts.Property\n isIgnoring = !isIgnoring\n break\n }\n\n case Characters.Dot: {\n checkInvalidCharacter(Parts.Index, currentPart)\n\n if (currentPart === Parts.IndexEnd) {\n currentPart = Parts.Property\n break\n }\n\n if (isIgnoring) {\n isIgnoring = false\n currentSegment += character\n break\n }\n\n if (DISALLOWED_KEYS.has(currentSegment)) return []\n\n segments.push(currentSegment)\n currentSegment = Characters.Empty\n currentPart = Parts.Property\n break\n }\n\n case Characters.LeftBracket: {\n checkInvalidCharacter(Parts.Index, currentPart)\n\n if (currentPart === Parts.IndexEnd) {\n currentPart = Parts.Index\n break\n }\n\n if (isIgnoring) {\n isIgnoring = false\n currentSegment += character\n break\n }\n\n if (currentPart === Parts.Property) {\n if (DISALLOWED_KEYS.has(currentSegment)) return []\n\n segments.push(currentSegment)\n currentSegment = Characters.Empty\n }\n\n currentPart = Parts.Index\n break\n }\n\n case Characters.RightBracket: {\n if (currentPart === Parts.Index) {\n if (allowEmptyIndex)\n checkInvalidCharacter(\n Characters.Empty,\n currentSegment,\n 'empty index',\n )\n segments.push(\n currentSegment === Characters.Empty ?\n ARRAY_PUSH\n : Number.parseInt(currentSegment, 10),\n )\n currentPart = Parts.IndexEnd\n currentSegment = Characters.Empty\n break\n }\n\n // Falls through\n }\n\n default: {\n if (!DIGITS.has(character))\n checkInvalidCharacter(Parts.Index, currentPart)\n checkInvalidCharacter(Parts.IndexEnd, currentPart)\n\n if (currentPart === Parts.Start) currentPart = Parts.Property\n\n if (isIgnoring) {\n isIgnoring = false\n currentSegment += Characters.Escape\n }\n\n currentSegment += character\n }\n }\n }\n\n if (isIgnoring) currentSegment += Characters.Escape\n\n checkInvalidCharacter(\n Parts.Index,\n currentPart,\n 'index was not closed',\n )\n\n if (currentPart === Parts.Property) {\n if (DISALLOWED_KEYS.has(currentSegment)) return []\n segments.push(currentSegment)\n } else if (currentPart === Parts.Start) {\n segments.push(Characters.Empty)\n }\n\n return segments\n}\n\nconst isObject = (value: unknown): value is ObjectArg =>\n value !== null && typeof value === 'object'\n\nconst isLast = (arr: ArrayArg, i: number) => i === arr.length - 1\n\nconst isStringIndex = (\n object: unknown,\n key: PropertyKey,\n): key is string => {\n if (\n typeof key !== 'symbol' &&\n typeof key !== 'number' &&\n Array.isArray(object)\n ) {\n const index = Number.parseInt(key, 10)\n return (\n Number.isInteger(index) &&\n object[index] === object[key as unknown as number]\n )\n }\n return false\n}\n\nconst assertNotStringIndex = (object: unknown, key: PropertyKey) => {\n if (isStringIndex(object, key)) {\n throw new Error('Cannot use string index')\n }\n}\n\nexport const get = (\n ogObject: Arg,\n path: string,\n defaultValue?: unknown,\n): unknown => {\n let object: unknown = ogObject\n\n const pathArray = getPathSegments(path, true)\n if (!pathArray.length) {\n return defaultValue\n }\n\n for (const [index, key] of pathArray.entries()) {\n if (isStringIndex(object, key)) {\n object = isLast(pathArray, index) ? undefined : null\n } else {\n object = (object as ObjectArg)[key]\n }\n\n if (\n (object === undefined || object === null) &&\n !isLast(pathArray, index)\n ) {\n // `object` is either `undefined` or `null` so we want to stop the loop,\n // and if this is not the last bit of the path, and if it didn't return\n // `undefined` it would return `null` if `object` is `null` but we want\n // `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied\n // value, not `null`\n return defaultValue\n }\n }\n\n return object === undefined ? defaultValue : object\n}\n\nexport const set = <T extends Arg>(\n object: T,\n path: string,\n value: unknown,\n): T => {\n const root = object\n const pathArray = getPathSegments(path)\n\n for (const [index, key] of pathArray.entries()) {\n assertNotStringIndex(object, key)\n\n if (isLast(pathArray, index)) {\n if (key === ARRAY_PUSH) {\n ;(object as ArrayArg).push(value)\n } else {\n ;(object as ObjectArg)[key as number] = value\n }\n } else if (!isObject((object as ObjectArg)[key])) {\n const next = pathArray[index + 1]\n ;(object as ObjectArg)[key as number] =\n typeof next === 'number' || next === ARRAY_PUSH ? [] : {}\n }\n\n object = (object as ObjectArg)[key as number] as T\n }\n\n return root\n}\n\nexport const del = (object: Arg, path: string): boolean => {\n const pathArray = getPathSegments(path)\n\n for (const [index, key] of pathArray.entries()) {\n assertNotStringIndex(object, key)\n\n if (isLast(pathArray, index)) {\n if (Array.isArray(object)) {\n object.splice(key as number, 1)\n } else {\n delete object[key as number]\n }\n return true\n }\n\n object = object[key as number] as Arg\n\n if (!isObject(object)) {\n return false\n }\n }\n\n return false\n}\n\nexport const has = (object: Arg, path: string): boolean => {\n const pathArray = getPathSegments(path)\n\n if (!pathArray.length) {\n return false\n }\n\n for (const key of pathArray) {\n if (\n !isObject(object) ||\n !(key in object) ||\n isStringIndex(object, key)\n ) {\n return false\n }\n\n object = object[key] as Arg\n }\n\n return true\n}\n"]}
|
package/dist/esm/package.json
DELETED