@plasmicapp/loader-edge 1.0.68 → 1.0.70
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.
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +2 -1
- package/dist/index.esm.js.map +2 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +2 -2
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare const getActiveVariation: (opts: {
|
|
|
14
14
|
splits: Split[];
|
|
15
15
|
traits: Record<string, string | number | boolean>;
|
|
16
16
|
path: string;
|
|
17
|
+
enableUnseededExperiments?: boolean;
|
|
17
18
|
}) => Record<string, string>;
|
|
18
19
|
|
|
19
20
|
export declare const getMiddlewareResponse: (opts: {
|
package/dist/index.esm.js
CHANGED
|
@@ -102,12 +102,13 @@ var getMiddlewareResponse = (opts) => {
|
|
|
102
102
|
};
|
|
103
103
|
};
|
|
104
104
|
var getActiveVariation = (opts) => {
|
|
105
|
-
const { splits, traits, path } = opts;
|
|
105
|
+
const { splits, traits, path, enableUnseededExperiments } = opts;
|
|
106
106
|
return getActiveVariationSplits({
|
|
107
107
|
splits,
|
|
108
108
|
traits: __spreadValues({
|
|
109
109
|
pageUrl: path
|
|
110
110
|
}, traits),
|
|
111
|
+
enableUnseededExperiments,
|
|
111
112
|
getKnownValue: () => void 0,
|
|
112
113
|
updateKnownValue: () => null,
|
|
113
114
|
getRandomValue: (key) => {
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/variation.ts"],
|
|
4
|
-
"sourcesContent": ["export { describeVariation } from \"@plasmicapp/loader-splits\";\nexport {\n generateAllPaths,\n generateAllPathsWithTraits,\n getActiveVariation,\n getMiddlewareResponse,\n rewriteWithoutTraits,\n rewriteWithTraits,\n} from \"./variation\";\n", "import type { Split } from \"@plasmicapp/loader-fetcher\";\nimport {\n getActiveVariation as getActiveVariationSplits,\n getSeededRandomFunction,\n} from \"@plasmicapp/loader-splits\";\n\nexport const DELIMITER = \"__pm__\";\nexport const PLASMIC_SEED = \"plasmic_seed\";\nconst DEFAULT_PLASMIC_SEED_RANGE = 16;\n\ntype Traits = Record<string, string | number | boolean>;\n\nconst getSeed = (seedRange: number = DEFAULT_PLASMIC_SEED_RANGE) => {\n return `${Math.floor(Math.random() * seedRange)}`;\n};\n\nexport const rewriteWithoutTraits = (url: string) => {\n const [path, ...traitssArr] = url.split(DELIMITER);\n const traits = traitssArr.reduce((acc, elem) => {\n const [key, value] = elem.split(\"=\");\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n return {\n path:\n path === \"/\"\n ? path\n : path.endsWith(\"/\")\n ? path.substring(0, path.length - 1)\n : path,\n traits,\n };\n};\n\nconst expandTraits = (traits: Traits) => {\n const cmp = (a: string, b: string) => {\n return a < b ? -1 : a > b ? 1 : 0;\n };\n return Object.keys(traits)\n .sort(cmp)\n .map((key) => `${DELIMITER}${key}=${traits[key]}`)\n .join(\"\");\n};\n\nexport const rewriteWithTraits = (path: string, traits: Traits) => {\n if (Object.keys(traits).length === 0) {\n return path;\n }\n\n return `${path}${path.endsWith(\"/\") ? \"\" : \"/\"}${expandTraits(traits)}`;\n};\n\nexport const generateAllPaths = (\n path: string,\n seedRange: number = DEFAULT_PLASMIC_SEED_RANGE\n) => {\n return generateAllPathsWithTraits(path, {}, seedRange);\n};\n\n/**\n * Generates all possible paths with the given traits. Should be used to enable fallback false\n */\nexport function generateAllPathsWithTraits(\n path: string,\n traitValues: Record<string, string[]> = {},\n seedRange = DEFAULT_PLASMIC_SEED_RANGE\n) {\n const traitsCombinations = [{}];\n traitsCombinations.push(\n ...Array(seedRange)\n .fill(0)\n .map((_, idx) => ({\n [PLASMIC_SEED]: idx,\n }))\n );\n for (const [trait, possibleValues] of Object.entries(traitValues)) {\n const newCombinations = [];\n for (const traitValue of possibleValues) {\n for (const combination of traitsCombinations) {\n newCombinations.push({\n ...combination,\n [trait]: traitValue,\n });\n }\n }\n traitsCombinations.push(...newCombinations);\n }\n return traitsCombinations.map((traits) => rewriteWithTraits(path, traits));\n}\n\nexport const getMiddlewareResponse = (opts: {\n path: string;\n traits: Traits;\n cookies: Record<string, string>;\n seedRange?: number;\n}) => {\n const newCookies: { key: string; value: string }[] = [];\n\n const seedRange = Number.isInteger(opts.seedRange)\n ? opts.seedRange\n : DEFAULT_PLASMIC_SEED_RANGE;\n const seed = opts.cookies[PLASMIC_SEED] || getSeed(seedRange);\n\n let traits = opts.traits;\n if (seedRange && seedRange > 0) {\n traits = {\n ...traits,\n [PLASMIC_SEED]: seed,\n };\n\n if (!opts.cookies[PLASMIC_SEED]) {\n newCookies.push({\n key: PLASMIC_SEED,\n value: seed,\n });\n }\n }\n return {\n pathname: rewriteWithTraits(opts.path, traits),\n cookies: newCookies,\n };\n};\n\nexport const getActiveVariation = (opts: {\n splits: Split[];\n traits: Record<string, string | number | boolean>;\n path: string;\n}) => {\n const { splits, traits, path } = opts;\n return getActiveVariationSplits({\n splits,\n traits: {\n pageUrl: path,\n ...traits,\n },\n getKnownValue: () => undefined,\n updateKnownValue: () => null,\n getRandomValue: (key) => {\n const rand = getSeededRandomFunction((traits[PLASMIC_SEED] ?? \"\") + key);\n return rand();\n },\n });\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["export { describeVariation } from \"@plasmicapp/loader-splits\";\nexport {\n generateAllPaths,\n generateAllPathsWithTraits,\n getActiveVariation,\n getMiddlewareResponse,\n rewriteWithoutTraits,\n rewriteWithTraits,\n} from \"./variation\";\n", "import type { Split } from \"@plasmicapp/loader-fetcher\";\nimport {\n getActiveVariation as getActiveVariationSplits,\n getSeededRandomFunction,\n} from \"@plasmicapp/loader-splits\";\n\nexport const DELIMITER = \"__pm__\";\nexport const PLASMIC_SEED = \"plasmic_seed\";\nconst DEFAULT_PLASMIC_SEED_RANGE = 16;\n\ntype Traits = Record<string, string | number | boolean>;\n\nconst getSeed = (seedRange: number = DEFAULT_PLASMIC_SEED_RANGE) => {\n return `${Math.floor(Math.random() * seedRange)}`;\n};\n\nexport const rewriteWithoutTraits = (url: string) => {\n const [path, ...traitssArr] = url.split(DELIMITER);\n const traits = traitssArr.reduce((acc, elem) => {\n const [key, value] = elem.split(\"=\");\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n return {\n path:\n path === \"/\"\n ? path\n : path.endsWith(\"/\")\n ? path.substring(0, path.length - 1)\n : path,\n traits,\n };\n};\n\nconst expandTraits = (traits: Traits) => {\n const cmp = (a: string, b: string) => {\n return a < b ? -1 : a > b ? 1 : 0;\n };\n return Object.keys(traits)\n .sort(cmp)\n .map((key) => `${DELIMITER}${key}=${traits[key]}`)\n .join(\"\");\n};\n\nexport const rewriteWithTraits = (path: string, traits: Traits) => {\n if (Object.keys(traits).length === 0) {\n return path;\n }\n\n return `${path}${path.endsWith(\"/\") ? \"\" : \"/\"}${expandTraits(traits)}`;\n};\n\nexport const generateAllPaths = (\n path: string,\n seedRange: number = DEFAULT_PLASMIC_SEED_RANGE\n) => {\n return generateAllPathsWithTraits(path, {}, seedRange);\n};\n\n/**\n * Generates all possible paths with the given traits. Should be used to enable fallback false\n */\nexport function generateAllPathsWithTraits(\n path: string,\n traitValues: Record<string, string[]> = {},\n seedRange = DEFAULT_PLASMIC_SEED_RANGE\n) {\n const traitsCombinations = [{}];\n traitsCombinations.push(\n ...Array(seedRange)\n .fill(0)\n .map((_, idx) => ({\n [PLASMIC_SEED]: idx,\n }))\n );\n for (const [trait, possibleValues] of Object.entries(traitValues)) {\n const newCombinations = [];\n for (const traitValue of possibleValues) {\n for (const combination of traitsCombinations) {\n newCombinations.push({\n ...combination,\n [trait]: traitValue,\n });\n }\n }\n traitsCombinations.push(...newCombinations);\n }\n return traitsCombinations.map((traits) => rewriteWithTraits(path, traits));\n}\n\nexport const getMiddlewareResponse = (opts: {\n path: string;\n traits: Traits;\n cookies: Record<string, string>;\n seedRange?: number;\n}) => {\n const newCookies: { key: string; value: string }[] = [];\n\n const seedRange = Number.isInteger(opts.seedRange)\n ? opts.seedRange\n : DEFAULT_PLASMIC_SEED_RANGE;\n const seed = opts.cookies[PLASMIC_SEED] || getSeed(seedRange);\n\n let traits = opts.traits;\n if (seedRange && seedRange > 0) {\n traits = {\n ...traits,\n [PLASMIC_SEED]: seed,\n };\n\n if (!opts.cookies[PLASMIC_SEED]) {\n newCookies.push({\n key: PLASMIC_SEED,\n value: seed,\n });\n }\n }\n return {\n pathname: rewriteWithTraits(opts.path, traits),\n cookies: newCookies,\n };\n};\n\nexport const getActiveVariation = (opts: {\n splits: Split[];\n traits: Record<string, string | number | boolean>;\n path: string;\n enableUnseededExperiments?: boolean;\n}) => {\n const { splits, traits, path, enableUnseededExperiments } = opts;\n return getActiveVariationSplits({\n splits,\n traits: {\n pageUrl: path,\n ...traits,\n },\n enableUnseededExperiments,\n getKnownValue: () => undefined,\n updateKnownValue: () => null,\n getRandomValue: (key: string) => {\n const rand = getSeededRandomFunction((traits[PLASMIC_SEED] ?? \"\") + key);\n return rand();\n },\n });\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/index.js
CHANGED
|
@@ -126,12 +126,13 @@ var getMiddlewareResponse = (opts) => {
|
|
|
126
126
|
};
|
|
127
127
|
};
|
|
128
128
|
var getActiveVariation = (opts) => {
|
|
129
|
-
const { splits, traits, path } = opts;
|
|
129
|
+
const { splits, traits, path, enableUnseededExperiments } = opts;
|
|
130
130
|
return (0, import_loader_splits.getActiveVariation)({
|
|
131
131
|
splits,
|
|
132
132
|
traits: __spreadValues({
|
|
133
133
|
pageUrl: path
|
|
134
134
|
}, traits),
|
|
135
|
+
enableUnseededExperiments,
|
|
135
136
|
getKnownValue: () => void 0,
|
|
136
137
|
updateKnownValue: () => null,
|
|
137
138
|
getRandomValue: (key) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/variation.ts"],
|
|
4
|
-
"sourcesContent": ["export { describeVariation } from \"@plasmicapp/loader-splits\";\nexport {\n generateAllPaths,\n generateAllPathsWithTraits,\n getActiveVariation,\n getMiddlewareResponse,\n rewriteWithoutTraits,\n rewriteWithTraits,\n} from \"./variation\";\n", "import type { Split } from \"@plasmicapp/loader-fetcher\";\nimport {\n getActiveVariation as getActiveVariationSplits,\n getSeededRandomFunction,\n} from \"@plasmicapp/loader-splits\";\n\nexport const DELIMITER = \"__pm__\";\nexport const PLASMIC_SEED = \"plasmic_seed\";\nconst DEFAULT_PLASMIC_SEED_RANGE = 16;\n\ntype Traits = Record<string, string | number | boolean>;\n\nconst getSeed = (seedRange: number = DEFAULT_PLASMIC_SEED_RANGE) => {\n return `${Math.floor(Math.random() * seedRange)}`;\n};\n\nexport const rewriteWithoutTraits = (url: string) => {\n const [path, ...traitssArr] = url.split(DELIMITER);\n const traits = traitssArr.reduce((acc, elem) => {\n const [key, value] = elem.split(\"=\");\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n return {\n path:\n path === \"/\"\n ? path\n : path.endsWith(\"/\")\n ? path.substring(0, path.length - 1)\n : path,\n traits,\n };\n};\n\nconst expandTraits = (traits: Traits) => {\n const cmp = (a: string, b: string) => {\n return a < b ? -1 : a > b ? 1 : 0;\n };\n return Object.keys(traits)\n .sort(cmp)\n .map((key) => `${DELIMITER}${key}=${traits[key]}`)\n .join(\"\");\n};\n\nexport const rewriteWithTraits = (path: string, traits: Traits) => {\n if (Object.keys(traits).length === 0) {\n return path;\n }\n\n return `${path}${path.endsWith(\"/\") ? \"\" : \"/\"}${expandTraits(traits)}`;\n};\n\nexport const generateAllPaths = (\n path: string,\n seedRange: number = DEFAULT_PLASMIC_SEED_RANGE\n) => {\n return generateAllPathsWithTraits(path, {}, seedRange);\n};\n\n/**\n * Generates all possible paths with the given traits. Should be used to enable fallback false\n */\nexport function generateAllPathsWithTraits(\n path: string,\n traitValues: Record<string, string[]> = {},\n seedRange = DEFAULT_PLASMIC_SEED_RANGE\n) {\n const traitsCombinations = [{}];\n traitsCombinations.push(\n ...Array(seedRange)\n .fill(0)\n .map((_, idx) => ({\n [PLASMIC_SEED]: idx,\n }))\n );\n for (const [trait, possibleValues] of Object.entries(traitValues)) {\n const newCombinations = [];\n for (const traitValue of possibleValues) {\n for (const combination of traitsCombinations) {\n newCombinations.push({\n ...combination,\n [trait]: traitValue,\n });\n }\n }\n traitsCombinations.push(...newCombinations);\n }\n return traitsCombinations.map((traits) => rewriteWithTraits(path, traits));\n}\n\nexport const getMiddlewareResponse = (opts: {\n path: string;\n traits: Traits;\n cookies: Record<string, string>;\n seedRange?: number;\n}) => {\n const newCookies: { key: string; value: string }[] = [];\n\n const seedRange = Number.isInteger(opts.seedRange)\n ? opts.seedRange\n : DEFAULT_PLASMIC_SEED_RANGE;\n const seed = opts.cookies[PLASMIC_SEED] || getSeed(seedRange);\n\n let traits = opts.traits;\n if (seedRange && seedRange > 0) {\n traits = {\n ...traits,\n [PLASMIC_SEED]: seed,\n };\n\n if (!opts.cookies[PLASMIC_SEED]) {\n newCookies.push({\n key: PLASMIC_SEED,\n value: seed,\n });\n }\n }\n return {\n pathname: rewriteWithTraits(opts.path, traits),\n cookies: newCookies,\n };\n};\n\nexport const getActiveVariation = (opts: {\n splits: Split[];\n traits: Record<string, string | number | boolean>;\n path: string;\n}) => {\n const { splits, traits, path } = opts;\n return getActiveVariationSplits({\n splits,\n traits: {\n pageUrl: path,\n ...traits,\n },\n getKnownValue: () => undefined,\n updateKnownValue: () => null,\n getRandomValue: (key) => {\n const rand = getSeededRandomFunction((traits[PLASMIC_SEED] ?? \"\") + key);\n return rand();\n },\n });\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["export { describeVariation } from \"@plasmicapp/loader-splits\";\nexport {\n generateAllPaths,\n generateAllPathsWithTraits,\n getActiveVariation,\n getMiddlewareResponse,\n rewriteWithoutTraits,\n rewriteWithTraits,\n} from \"./variation\";\n", "import type { Split } from \"@plasmicapp/loader-fetcher\";\nimport {\n getActiveVariation as getActiveVariationSplits,\n getSeededRandomFunction,\n} from \"@plasmicapp/loader-splits\";\n\nexport const DELIMITER = \"__pm__\";\nexport const PLASMIC_SEED = \"plasmic_seed\";\nconst DEFAULT_PLASMIC_SEED_RANGE = 16;\n\ntype Traits = Record<string, string | number | boolean>;\n\nconst getSeed = (seedRange: number = DEFAULT_PLASMIC_SEED_RANGE) => {\n return `${Math.floor(Math.random() * seedRange)}`;\n};\n\nexport const rewriteWithoutTraits = (url: string) => {\n const [path, ...traitssArr] = url.split(DELIMITER);\n const traits = traitssArr.reduce((acc, elem) => {\n const [key, value] = elem.split(\"=\");\n return {\n ...acc,\n [key]: value,\n };\n }, {});\n return {\n path:\n path === \"/\"\n ? path\n : path.endsWith(\"/\")\n ? path.substring(0, path.length - 1)\n : path,\n traits,\n };\n};\n\nconst expandTraits = (traits: Traits) => {\n const cmp = (a: string, b: string) => {\n return a < b ? -1 : a > b ? 1 : 0;\n };\n return Object.keys(traits)\n .sort(cmp)\n .map((key) => `${DELIMITER}${key}=${traits[key]}`)\n .join(\"\");\n};\n\nexport const rewriteWithTraits = (path: string, traits: Traits) => {\n if (Object.keys(traits).length === 0) {\n return path;\n }\n\n return `${path}${path.endsWith(\"/\") ? \"\" : \"/\"}${expandTraits(traits)}`;\n};\n\nexport const generateAllPaths = (\n path: string,\n seedRange: number = DEFAULT_PLASMIC_SEED_RANGE\n) => {\n return generateAllPathsWithTraits(path, {}, seedRange);\n};\n\n/**\n * Generates all possible paths with the given traits. Should be used to enable fallback false\n */\nexport function generateAllPathsWithTraits(\n path: string,\n traitValues: Record<string, string[]> = {},\n seedRange = DEFAULT_PLASMIC_SEED_RANGE\n) {\n const traitsCombinations = [{}];\n traitsCombinations.push(\n ...Array(seedRange)\n .fill(0)\n .map((_, idx) => ({\n [PLASMIC_SEED]: idx,\n }))\n );\n for (const [trait, possibleValues] of Object.entries(traitValues)) {\n const newCombinations = [];\n for (const traitValue of possibleValues) {\n for (const combination of traitsCombinations) {\n newCombinations.push({\n ...combination,\n [trait]: traitValue,\n });\n }\n }\n traitsCombinations.push(...newCombinations);\n }\n return traitsCombinations.map((traits) => rewriteWithTraits(path, traits));\n}\n\nexport const getMiddlewareResponse = (opts: {\n path: string;\n traits: Traits;\n cookies: Record<string, string>;\n seedRange?: number;\n}) => {\n const newCookies: { key: string; value: string }[] = [];\n\n const seedRange = Number.isInteger(opts.seedRange)\n ? opts.seedRange\n : DEFAULT_PLASMIC_SEED_RANGE;\n const seed = opts.cookies[PLASMIC_SEED] || getSeed(seedRange);\n\n let traits = opts.traits;\n if (seedRange && seedRange > 0) {\n traits = {\n ...traits,\n [PLASMIC_SEED]: seed,\n };\n\n if (!opts.cookies[PLASMIC_SEED]) {\n newCookies.push({\n key: PLASMIC_SEED,\n value: seed,\n });\n }\n }\n return {\n pathname: rewriteWithTraits(opts.path, traits),\n cookies: newCookies,\n };\n};\n\nexport const getActiveVariation = (opts: {\n splits: Split[];\n traits: Record<string, string | number | boolean>;\n path: string;\n enableUnseededExperiments?: boolean;\n}) => {\n const { splits, traits, path, enableUnseededExperiments } = opts;\n return getActiveVariationSplits({\n splits,\n traits: {\n pageUrl: path,\n ...traits,\n },\n enableUnseededExperiments,\n getKnownValue: () => undefined,\n updateKnownValue: () => null,\n getRandomValue: (key: string) => {\n const rand = getSeededRandomFunction((traits[PLASMIC_SEED] ?? \"\") + key);\n return rand();\n },\n });\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_loader_splits", "getActiveVariationSplits"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0.
|
|
2
|
+
"version": "1.0.70",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"types": "./dist/index.d.ts",
|
|
5
5
|
"main": "./dist/index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
}
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@plasmicapp/loader-splits": "1.0.
|
|
42
|
+
"@plasmicapp/loader-splits": "1.0.64"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@plasmicapp/loader-fetcher": "1.0.55"
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"access": "public"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "37a24687d1fa3163a96582525f54cc0ffd849792"
|
|
51
51
|
}
|